Imported Upstream version 2.1.16 upstream/2.1.16
authorDongHun Kwak <dh0128.kwak@samsung.com>
Tue, 9 Feb 2021 07:00:15 +0000 (16:00 +0900)
committerDongHun Kwak <dh0128.kwak@samsung.com>
Tue, 9 Feb 2021 07:00:15 +0000 (16:00 +0900)
647 files changed:
AUTHORS
COPYING
COPYING.CC0 [new file with mode: 0644]
COPYING.LIB
Makefile.am
NEWS
acinclude.m4
agent/Makefile.am
agent/agent.h
agent/cache.c
agent/call-pinentry.c
agent/call-scd.c
agent/command-ssh.c
agent/command.c
agent/cvt-openpgp.c
agent/cvt-openpgp.h
agent/divert-scd.c
agent/findkey.c
agent/genkey.c
agent/gpg-agent.c
agent/keyformat.txt
agent/learncard.c
agent/pkdecrypt.c
agent/pksign.c
agent/preset-passphrase.c
agent/protect-tool.c
agent/protect.c
agent/t-protect.c
agent/trans.c
agent/trustlist.c
agent/w32main.c
agent/w32main.h
am/cmacros.am
autogen.sh
build-aux/speedo/w32/exdll.h
build-aux/speedo/w32/g4wihelp.c
common/Makefile.am
common/agent-opt.c
common/argparse.h
common/asshelp.c
common/asshelp.h
common/asshelp2.c
common/audit.c
common/audit.h
common/b64dec.c
common/b64enc.c
common/call-gpg.c
common/call-gpg.h
common/ccparray.c
common/ccparray.h
common/common-defs.h
common/convert.c
common/dotlock.c
common/dotlock.h
common/dynload.h
common/exechelp-posix.c
common/exechelp-w32.c
common/exechelp-w32ce.c
common/exechelp.h
common/exectool.c
common/exectool.h
common/fwddecl.h
common/get-passphrase.c
common/get-passphrase.h
common/gettime.c
common/gettime.h
common/gpgrlhelp.c
common/helpfile.c
common/homedir.c
common/host2net.h
common/i18n.c
common/init.c
common/init.h
common/iobuf.c
common/iobuf.h
common/keyserver.h
common/localename.c
common/logging.c
common/logging.h
common/mapstrings.c
common/mbox-util.c
common/mbox-util.h
common/membuf.c
common/membuf.h
common/miscellaneous.c
common/mischelp.c
common/mischelp.h
common/mkdir_p.c
common/mkdir_p.h
common/name-value.c
common/name-value.h
common/openpgp-oid.c
common/openpgpdefs.h
common/percent.c
common/recsel.c
common/recsel.h
common/server-help.c
common/server-help.h
common/session-env.c
common/session-env.h
common/sexp-parse.h
common/sexputil.c
common/shareddefs.h
common/signal.c
common/simple-pwquery.c
common/simple-pwquery.h
common/ssh-utils.c
common/ssh-utils.h
common/status.c
common/status.h
common/stringhelp.c
common/stringhelp.h
common/strlist.c
common/strlist.h
common/sysutils.c
common/sysutils.h
common/t-b64.c
common/t-ccparray.c
common/t-convert.c
common/t-dotlock.c
common/t-exechelp.c
common/t-exectool.c
common/t-gettime.c
common/t-helpfile.c
common/t-mapstrings.c
common/t-mbox-util.c
common/t-name-value.c
common/t-openpgp-oid.c
common/t-percent.c
common/t-recsel.c
common/t-session-env.c
common/t-sexputil.c
common/t-ssh-utils.c
common/t-stringhelp.c
common/t-strlist.c
common/t-support.c
common/t-support.h
common/t-sysutils.c
common/t-timestuff.c
common/t-w32-reg.c
common/t-zb32.c
common/tlv.c
common/tlv.h
common/ttyio.c
common/ttyio.h
common/types.h
common/userids.c
common/userids.h
common/utf8conv.c
common/utf8conv.h
common/util.h
common/utilproto.h
common/w32-reg.c
common/w32help.h
common/xasprintf.c
common/xreadline.c
common/yesno.c
common/zb32.c
common/zb32.h
configure.ac
dirmngr/Makefile.am
dirmngr/cdblib.c
dirmngr/certcache.c
dirmngr/crlcache.c
dirmngr/crlcache.h
dirmngr/crlfetch.c
dirmngr/crlfetch.h
dirmngr/dirmngr-client.c
dirmngr/dirmngr.c
dirmngr/dirmngr.h
dirmngr/dirmngr_ldap.c
dirmngr/dns-stuff.c
dirmngr/dns-stuff.h
dirmngr/http.c
dirmngr/http.h
dirmngr/ks-action.c
dirmngr/ks-action.h
dirmngr/ks-engine-finger.c
dirmngr/ks-engine-hkp.c
dirmngr/ks-engine-http.c
dirmngr/ks-engine-kdns.c
dirmngr/ks-engine-ldap.c
dirmngr/ks-engine.h
dirmngr/ldap-parse-uri.c
dirmngr/ldap-parse-uri.h
dirmngr/ldap-wrapper-ce.c
dirmngr/ldap-wrapper.c
dirmngr/ldap-wrapper.h
dirmngr/ldapserver.h
dirmngr/loadswdb.c [new file with mode: 0644]
dirmngr/server.c
dirmngr/t-dns-stuff.c
dirmngr/t-http.c
dirmngr/t-ldap-parse-uri.c
dirmngr/t-support.h
dirmngr/w32-ldap-help.h
doc/DETAILS
doc/HACKING
doc/Makefile.am
doc/Notes
doc/TRANSLATE
doc/contrib.texi
doc/debugging.texi
doc/dirmngr.texi
doc/examples/README
doc/examples/systemd-user/README [new file with mode: 0644]
doc/examples/systemd-user/dirmngr.service [new file with mode: 0644]
doc/examples/systemd-user/dirmngr.socket [new file with mode: 0644]
doc/examples/systemd-user/gpg-agent-browser.socket [new file with mode: 0644]
doc/examples/systemd-user/gpg-agent-extra.socket [new file with mode: 0644]
doc/examples/systemd-user/gpg-agent-ssh.socket [new file with mode: 0644]
doc/examples/systemd-user/gpg-agent.service [new file with mode: 0644]
doc/examples/systemd-user/gpg-agent.socket [new file with mode: 0644]
doc/faq.org
doc/glossary.texi
doc/gpg-agent.texi
doc/gpg.texi
doc/gpgsm.texi
doc/gpgv.texi
doc/gpl.texi
doc/help.be.txt
doc/help.ca.txt
doc/help.cs.txt
doc/help.da.txt
doc/help.de.txt
doc/help.el.txt
doc/help.eo.txt
doc/help.es.txt
doc/help.et.txt
doc/help.fi.txt
doc/help.fr.txt
doc/help.gl.txt
doc/help.hu.txt
doc/help.id.txt
doc/help.it.txt
doc/help.ja.txt
doc/help.nb.txt
doc/help.pl.txt
doc/help.pt.txt
doc/help.pt_BR.txt
doc/help.ro.txt
doc/help.ru.txt
doc/help.sk.txt
doc/help.sv.txt
doc/help.tr.txt
doc/help.txt
doc/help.zh_CN.txt
doc/help.zh_TW.txt
doc/howto-create-a-server-cert.texi
doc/instguide.texi
doc/opt-homedir.texi
doc/scdaemon.texi
doc/specify-user-id.texi
doc/sysnotes.texi
doc/tools.texi
doc/yat2m.c
g10/ChangeLog-2011
g10/Makefile.am
g10/armor.c
g10/build-packet.c
g10/call-agent.c
g10/call-agent.h
g10/call-dirmngr.c
g10/call-dirmngr.h
g10/card-util.c
g10/cipher.c
g10/compress-bz2.c
g10/compress.c
g10/cpr.c
g10/dearmor.c
g10/decrypt-data.c
g10/decrypt.c
g10/dek.h
g10/delkey.c
g10/ecdh.c
g10/encrypt.c
g10/exec.c
g10/exec.h
g10/export.c
g10/filter.h
g10/free-packet.c
g10/getkey.c
g10/gpg.c
g10/gpg.h
g10/gpgcompose.c
g10/gpgsql.c
g10/gpgsql.h
g10/gpgv.c
g10/helptext.c
g10/import.c
g10/kbnode.c
g10/keydb.c
g10/keydb.h
g10/keyedit.c
g10/keygen.c
g10/keyid.c
g10/keylist.c
g10/keyring.c
g10/keyring.h
g10/keyserver-internal.h
g10/keyserver.c
g10/main.h
g10/mainproc.c
g10/mdfilter.c
g10/migrate.c
g10/misc.c
g10/openfile.c
g10/options.h
g10/packet.h
g10/parse-packet.c
g10/passphrase.c
g10/photoid.c
g10/photoid.h
g10/pkclist.c
g10/pkglue.c
g10/pkglue.h
g10/plaintext.c
g10/progress.c
g10/pubkey-enc.c
g10/revoke.c
g10/rmd160.c
g10/rmd160.h
g10/seckey-cert.c
g10/server.c
g10/seskey.c
g10/sig-check.c
g10/sign.c
g10/skclist.c
g10/sqrtu32.c [new file with mode: 0644]
g10/sqrtu32.h [new file with mode: 0644]
g10/t-keydb-get-keyblock.c
g10/t-keydb.c
g10/t-rmd160.c
g10/t-stutter.c
g10/tdbdump.c
g10/tdbio.c
g10/tdbio.h
g10/test-stubs.c
g10/test.c
g10/textfilter.c
g10/tofu.c
g10/tofu.h
g10/trust.c
g10/trustdb.c
g10/trustdb.h
g10/verify.c
g10/zlib-riscos.h
g13/Makefile.am
g13/backend.c
g13/backend.h
g13/be-dmcrypt.c
g13/be-dmcrypt.h
g13/be-encfs.c
g13/be-encfs.h
g13/be-truecrypt.c
g13/be-truecrypt.h
g13/call-syshelp.c
g13/call-syshelp.h
g13/create.c
g13/create.h
g13/g13-common.c
g13/g13-common.h
g13/g13-syshelp.c
g13/g13-syshelp.h
g13/g13.c
g13/g13.h
g13/g13tuple.c
g13/g13tuple.h
g13/keyblob.c
g13/keyblob.h
g13/mount.c
g13/mount.h
g13/mountinfo.c
g13/mountinfo.h
g13/runner.c
g13/runner.h
g13/server.c
g13/server.h
g13/sh-blockdev.c
g13/sh-cmd.c
g13/sh-dmcrypt.c
g13/suspend.c
g13/suspend.h
g13/t-g13tuple.c
kbx/Makefile.am
kbx/kbxutil.c
kbx/keybox-blob.c
kbx/keybox-defs.h
kbx/keybox-dump.c
kbx/keybox-file.c
kbx/keybox-init.c
kbx/keybox-openpgp.c
kbx/keybox-search-desc.h
kbx/keybox-search.c
kbx/keybox-update.c
kbx/keybox-util.c
kbx/keybox.h
m4/pkg.m4
po/ca.po
po/cs.po
po/da.po
po/de.po
po/el.po
po/eo.po
po/es.po
po/et.po
po/fi.po
po/fr.po
po/gl.po
po/hu.po
po/id.po
po/it.po
po/ja.po
po/nb.po
po/pl.po
po/pt.po
po/ro.po
po/ru.po
po/sk.po
po/sv.po
po/tr.po
po/uk.po
po/zh_CN.po
po/zh_TW.po
scd/Makefile.am
scd/apdu.c
scd/apdu.h
scd/app-common.h
scd/app-dinsig.c
scd/app-geldkarte.c
scd/app-help.c
scd/app-nks.c
scd/app-openpgp.c
scd/app-p15.c
scd/app-sc-hsm.c
scd/app.c
scd/atr.c
scd/atr.h
scd/ccid-driver.c
scd/ccid-driver.h
scd/command.c
scd/iso7816.c
scd/iso7816.h
scd/scdaemon.c
scd/scdaemon.h
sm/Makefile.am
sm/base64.c
sm/call-agent.c
sm/call-dirmngr.c
sm/certchain.c
sm/certcheck.c
sm/certdump.c
sm/certlist.c
sm/certreqgen-ui.c
sm/certreqgen.c
sm/decrypt.c
sm/delete.c
sm/encrypt.c
sm/export.c
sm/fingerprint.c
sm/gpgsm.c
sm/gpgsm.h
sm/import.c
sm/keydb.c
sm/keydb.h
sm/keylist.c
sm/minip12.c
sm/minip12.h
sm/misc.c
sm/passphrase.c
sm/passphrase.h
sm/qualified.c
sm/server.c
sm/sign.c
sm/verify.c
tests/Makefile.am
tests/asschk.c
tests/fake-pinentries/README.txt [new file with mode: 0644]
tests/fake-pinentries/fake-pinentry.php [new file with mode: 0755]
tests/fake-pinentries/fake-pinentry.pl [new file with mode: 0755]
tests/fake-pinentries/fake-pinentry.py [new file with mode: 0755]
tests/fake-pinentries/fake-pinentry.sh [new file with mode: 0755]
tests/gpgscm/Makefile.am
tests/gpgscm/Manual.txt
tests/gpgscm/ffi-private.h
tests/gpgscm/ffi.c
tests/gpgscm/ffi.h
tests/gpgscm/ffi.scm
tests/gpgscm/init.scm
tests/gpgscm/lib.scm
tests/gpgscm/main.c
tests/gpgscm/private.h
tests/gpgscm/repl.scm
tests/gpgscm/scheme-config.h
tests/gpgscm/scheme-private.h
tests/gpgscm/scheme.c
tests/gpgscm/scheme.h
tests/gpgscm/t-child.c
tests/gpgscm/t-child.scm
tests/gpgscm/tests.scm
tests/migrations/Makefile.am
tests/openpgp/4gb-packet.scm
tests/openpgp/4gb-packet.test [deleted file]
tests/openpgp/Makefile.am
tests/openpgp/README
tests/openpgp/armdetach.scm
tests/openpgp/armdetach.test [deleted file]
tests/openpgp/armdetachm.scm
tests/openpgp/armdetachm.test [deleted file]
tests/openpgp/armencrypt.scm
tests/openpgp/armencrypt.test [deleted file]
tests/openpgp/armencryptp.scm
tests/openpgp/armencryptp.test [deleted file]
tests/openpgp/armor.scm
tests/openpgp/armor.test [deleted file]
tests/openpgp/armsignencrypt.scm
tests/openpgp/armsignencrypt.test [deleted file]
tests/openpgp/armsigs.scm
tests/openpgp/armsigs.test [deleted file]
tests/openpgp/clearsig.scm
tests/openpgp/clearsig.test [deleted file]
tests/openpgp/conventional-mdc.scm
tests/openpgp/conventional-mdc.test [deleted file]
tests/openpgp/conventional.scm
tests/openpgp/conventional.test [deleted file]
tests/openpgp/decrypt-dsa.scm
tests/openpgp/decrypt-dsa.test [deleted file]
tests/openpgp/decrypt.scm
tests/openpgp/decrypt.test [deleted file]
tests/openpgp/default-key.scm
tests/openpgp/default-key.test [deleted file]
tests/openpgp/defs.inc [deleted file]
tests/openpgp/defs.scm
tests/openpgp/detach.scm
tests/openpgp/detach.test [deleted file]
tests/openpgp/detachm.scm
tests/openpgp/detachm.test [deleted file]
tests/openpgp/ecc.scm
tests/openpgp/ecc.test [deleted file]
tests/openpgp/encrypt-dsa.scm
tests/openpgp/encrypt-dsa.test [deleted file]
tests/openpgp/encrypt.scm
tests/openpgp/encrypt.test [deleted file]
tests/openpgp/encryptp.scm
tests/openpgp/encryptp.test [deleted file]
tests/openpgp/export.scm
tests/openpgp/export.test [deleted file]
tests/openpgp/fake-pinentry.c
tests/openpgp/finish.test [deleted file]
tests/openpgp/genkey1024.scm
tests/openpgp/genkey1024.test [deleted file]
tests/openpgp/gpgtar.scm
tests/openpgp/gpgtar.test [deleted file]
tests/openpgp/gpgv-forged-keyring.scm
tests/openpgp/import.scm
tests/openpgp/import.test [deleted file]
tests/openpgp/issue2015.scm
tests/openpgp/issue2346.scm
tests/openpgp/issue2417.scm
tests/openpgp/issue2419.scm
tests/openpgp/key-selection.scm [new file with mode: 0644]
tests/openpgp/key-selection/0.asc [new file with mode: 0644]
tests/openpgp/key-selection/1.asc [new file with mode: 0644]
tests/openpgp/key-selection/2.asc [new file with mode: 0644]
tests/openpgp/key-selection/3.asc [new file with mode: 0644]
tests/openpgp/key-selection/4.asc [new file with mode: 0644]
tests/openpgp/mds.scm
tests/openpgp/mds.test [deleted file]
tests/openpgp/multisig.scm
tests/openpgp/multisig.test [deleted file]
tests/openpgp/pinentry.sh [deleted file]
tests/openpgp/quick-key-manipulation.scm [new file with mode: 0755]
tests/openpgp/quick-key-manipulation.test [deleted file]
tests/openpgp/run-tests.scm
tests/openpgp/seat.scm
tests/openpgp/seat.test [deleted file]
tests/openpgp/setup.scm
tests/openpgp/shell.scm [moved from tests/openpgp/finish.scm with 70% similarity, mode: 0644]
tests/openpgp/signencrypt-dsa.scm
tests/openpgp/signencrypt-dsa.test [deleted file]
tests/openpgp/signencrypt.scm
tests/openpgp/signencrypt.test [deleted file]
tests/openpgp/sigs-dsa.scm
tests/openpgp/sigs-dsa.test [deleted file]
tests/openpgp/sigs.scm
tests/openpgp/sigs.test [deleted file]
tests/openpgp/ssh.scm
tests/openpgp/tofu.scm
tests/openpgp/tofu.test [deleted file]
tests/openpgp/tofu/cross-sigs/871C2247-1.gpg [new file with mode: 0644]
tests/openpgp/tofu/cross-sigs/871C2247-1.txt [new file with mode: 0644]
tests/openpgp/tofu/cross-sigs/871C2247-2.gpg [new file with mode: 0644]
tests/openpgp/tofu/cross-sigs/871C2247-2.txt [new file with mode: 0644]
tests/openpgp/tofu/cross-sigs/871C2247-3.gpg [new file with mode: 0644]
tests/openpgp/tofu/cross-sigs/871C2247-3.txt [new file with mode: 0644]
tests/openpgp/tofu/cross-sigs/871C2247-4.gpg [new file with mode: 0644]
tests/openpgp/tofu/cross-sigs/871C2247-secret.gpg [new file with mode: 0644]
tests/openpgp/tofu/cross-sigs/EC38277E-1.gpg [new file with mode: 0644]
tests/openpgp/tofu/cross-sigs/EC38277E-1.txt [new file with mode: 0644]
tests/openpgp/tofu/cross-sigs/EC38277E-2.gpg [new file with mode: 0644]
tests/openpgp/tofu/cross-sigs/EC38277E-2.txt [new file with mode: 0644]
tests/openpgp/tofu/cross-sigs/EC38277E-3.txt [new file with mode: 0644]
tests/openpgp/tofu/cross-sigs/EC38277E-secret.gpg [new file with mode: 0644]
tests/openpgp/tofu/cross-sigs/README [new file with mode: 0644]
tests/openpgp/use-exact-key.scm
tests/openpgp/use-exact-key.test [deleted file]
tests/openpgp/verify.scm
tests/openpgp/verify.test [deleted file]
tests/openpgp/version.scm
tests/openpgp/version.test [deleted file]
tests/pkits/Makefile.am
tests/pkits/README
tools/Makefile.am
tools/applygnupgdefaults
tools/call-dirmngr.c
tools/call-dirmngr.h
tools/ccidmon.c
tools/gpg-check-pattern.c
tools/gpg-connect-agent.c
tools/gpg-wks-client.c
tools/gpg-wks-server.c
tools/gpg-wks.h
tools/gpgconf-comp.c
tools/gpgconf.c
tools/gpgconf.h
tools/gpgparsemail.c
tools/gpgsplit.c
tools/gpgtar-create.c
tools/gpgtar-extract.c
tools/gpgtar-list.c
tools/gpgtar.c
tools/gpgtar.h
tools/make-dns-cert.c
tools/mime-maker.c
tools/mime-maker.h
tools/mime-parser.c
tools/mime-parser.h
tools/mk-tdata.c [deleted file]
tools/rfc822parse.c
tools/rfc822parse.h
tools/send-mail.c
tools/send-mail.h
tools/sockprox.c
tools/symcryptrun.c
tools/watchgnupg.c
tools/wks-receive.c
tools/wks-util.c

diff --git a/AUTHORS b/AUTHORS
index 861258f..2bbacd9 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -197,6 +197,9 @@ Werner Koch <wk@gnupg.org>
 Yann E. MORIN <yann.morin.1998@free.fr>
 2016-07-10:20160710093202.GA3688@free.fr:
 
+Arnaud Fontaine <arnaud.fontaine at ssi.gouv.fr>
+2016-10-17:580484F4.8040806@ssi.gouv.fr:
+
 
 Other authors
 =============
@@ -227,8 +230,10 @@ or later.
 
 Note that some files are under a combination of the GNU Lesser General
 Public License, version 3 and the GNU General Public License, version
-2.  A few other files carry the all permissive license note as found
-at the bottom of this file.
+2.  A few files carry an all permissive license note as found at the
+bottom of this file.  Some small files are distributed under the
+Creative Commons Zero (CC0-1.0-Universal) license which basically puts
+them into the public domain.
 
 
 =========
diff --git a/COPYING b/COPYING
index 4432540..ccbbaf6 100644 (file)
--- a/COPYING
+++ b/COPYING
@@ -2,7 +2,7 @@
                    GNU GENERAL PUBLIC LICENSE
                       Version 3, 29 June 2007
 
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
@@ -77,7 +77,7 @@ modification follow.
 
   "Copyright" also means copyright-like laws that apply to other kinds of
 works, such as semiconductor masks.
+
   "The Program" refers to any copyrightable work licensed under this
 License.  Each licensee is addressed as "you".  "Licensees" and
 "recipients" may be individuals or organizations.
@@ -510,7 +510,7 @@ actual knowledge that, but for the patent license, your conveying the
 covered work in a country, or your recipient's use of the covered work
 in a country, would infringe one or more identifiable patents in that
 country that you have reason to believe are valid.
-  
+
   If, pursuant to or in connection with a single transaction or
 arrangement, you convey, or propagate by procuring conveyance of, a
 covered work, and grant a patent license to some of the parties
@@ -646,7 +646,7 @@ the "copyright" line and a pointer to where the full notice is found.
     GNU General Public License for more details.
 
     You should have received a copy of the GNU General Public License
-    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+    along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 Also add information on how to contact you by electronic and paper mail.
 
@@ -665,12 +665,12 @@ might be different; for a GUI interface, you would use an "about box".
   You should also get your employer (if you work as a programmer) or school,
 if any, to sign a "copyright disclaimer" for the program, if necessary.
 For more information on this, and how to apply and follow the GNU GPL, see
-<http://www.gnu.org/licenses/>.
+<https://www.gnu.org/licenses/>.
 
   The GNU General Public License does not permit incorporating your program
 into proprietary programs.  If your program is a subroutine library, you
 may consider it more useful to permit linking proprietary applications with
 the library.  If this is what you want to do, use the GNU Lesser General
 Public License instead of this License.  But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
+<https://www.gnu.org/philosophy/why-not-lgpl.html>.
 
diff --git a/COPYING.CC0 b/COPYING.CC0
new file mode 100644 (file)
index 0000000..02ba366
--- /dev/null
@@ -0,0 +1,123 @@
+[Note that only a few files are distributed under this license.]
+
+Creative Commons Legal Code
+
+CC0 1.0 Universal
+
+    CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
+    LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
+    ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
+    INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
+    REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
+    PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
+    THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
+    HEREUNDER.
+
+Statement of Purpose
+
+The laws of most jurisdictions throughout the world automatically confer
+exclusive Copyright and Related Rights (defined below) upon the creator
+and subsequent owner(s) (each and all, an "owner") of an original work of
+authorship and/or a database (each, a "Work").
+
+Certain owners wish to permanently relinquish those rights to a Work for
+the purpose of contributing to a commons of creative, cultural and
+scientific works ("Commons") that the public can reliably and without fear
+of later claims of infringement build upon, modify, incorporate in other
+works, reuse and redistribute as freely as possible in any form whatsoever
+and for any purposes, including without limitation commercial purposes.
+These owners may contribute to the Commons to promote the ideal of a free
+culture and the further production of creative, cultural and scientific
+works, or to gain reputation or greater distribution for their Work in
+part through the use and efforts of others.
+
+For these and/or other purposes and motivations, and without any
+expectation of additional consideration or compensation, the person
+associating CC0 with a Work (the "Affirmer"), to the extent that he or she
+is an owner of Copyright and Related Rights in the Work, voluntarily
+elects to apply CC0 to the Work and publicly distribute the Work under its
+terms, with knowledge of his or her Copyright and Related Rights in the
+Work and the meaning and intended legal effect of CC0 on those rights.
+
+1. Copyright and Related Rights. A Work made available under CC0 may be
+protected by copyright and related or neighboring rights ("Copyright and
+Related Rights"). Copyright and Related Rights include, but are not
+limited to, the following:
+
+  i. the right to reproduce, adapt, distribute, perform, display,
+     communicate, and translate a Work;
+ ii. moral rights retained by the original author(s) and/or performer(s);
+iii. publicity and privacy rights pertaining to a person's image or
+     likeness depicted in a Work;
+ iv. rights protecting against unfair competition in regards to a Work,
+     subject to the limitations in paragraph 4(a), below;
+  v. rights protecting the extraction, dissemination, use and reuse of data
+     in a Work;
+ vi. database rights (such as those arising under Directive 96/9/EC of the
+     European Parliament and of the Council of 11 March 1996 on the legal
+     protection of databases, and under any national implementation
+     thereof, including any amended or successor version of such
+     directive); and
+vii. other similar, equivalent or corresponding rights throughout the
+     world based on applicable law or treaty, and any national
+     implementations thereof.
+
+2. Waiver. To the greatest extent permitted by, but not in contravention
+of, applicable law, Affirmer hereby overtly, fully, permanently,
+irrevocably and unconditionally waives, abandons, and surrenders all of
+Affirmer's Copyright and Related Rights and associated claims and causes
+of action, whether now known or unknown (including existing as well as
+future claims and causes of action), in the Work (i) in all territories
+worldwide, (ii) for the maximum duration provided by applicable law or
+treaty (including future time extensions), (iii) in any current or future
+medium and for any number of copies, and (iv) for any purpose whatsoever,
+including without limitation commercial, advertising or promotional
+purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
+member of the public at large and to the detriment of Affirmer's heirs and
+successors, fully intending that such Waiver shall not be subject to
+revocation, rescission, cancellation, termination, or any other legal or
+equitable action to disrupt the quiet enjoyment of the Work by the public
+as contemplated by Affirmer's express Statement of Purpose.
+
+3. Public License Fallback. Should any part of the Waiver for any reason
+be judged legally invalid or ineffective under applicable law, then the
+Waiver shall be preserved to the maximum extent permitted taking into
+account Affirmer's express Statement of Purpose. In addition, to the
+extent the Waiver is so judged Affirmer hereby grants to each affected
+person a royalty-free, non transferable, non sublicensable, non exclusive,
+irrevocable and unconditional license to exercise Affirmer's Copyright and
+Related Rights in the Work (i) in all territories worldwide, (ii) for the
+maximum duration provided by applicable law or treaty (including future
+time extensions), (iii) in any current or future medium and for any number
+of copies, and (iv) for any purpose whatsoever, including without
+limitation commercial, advertising or promotional purposes (the
+"License"). The License shall be deemed effective as of the date CC0 was
+applied by Affirmer to the Work. Should any part of the License for any
+reason be judged legally invalid or ineffective under applicable law, such
+partial invalidity or ineffectiveness shall not invalidate the remainder
+of the License, and in such case Affirmer hereby affirms that he or she
+will not (i) exercise any of his or her remaining Copyright and Related
+Rights in the Work or (ii) assert any associated claims and causes of
+action with respect to the Work, in either case contrary to Affirmer's
+express Statement of Purpose.
+
+4. Limitations and Disclaimers.
+
+ a. No trademark or patent rights held by Affirmer are waived, abandoned,
+    surrendered, licensed or otherwise affected by this document.
+ b. Affirmer offers the Work as-is and makes no representations or
+    warranties of any kind concerning the Work, express, implied,
+    statutory or otherwise, including without limitation warranties of
+    title, merchantability, fitness for a particular purpose, non
+    infringement, or the absence of latent or other defects, accuracy, or
+    the present or absence of errors, whether or not discoverable, all to
+    the greatest extent permissible under applicable law.
+ c. Affirmer disclaims responsibility for clearing rights of other persons
+    that may apply to the Work or any use thereof, including without
+    limitation any person's Copyright and Related Rights in the Work.
+    Further, Affirmer disclaims responsibility for obtaining any necessary
+    consents, permissions or other rights required for any use of the
+    Work.
+ d. Affirmer understands and acknowledges that Creative Commons is not a
+    party to this document and has no duty or obligation with respect to
+    this CC0 or use of the Work.
index fc8a5de..4cd6920 100644 (file)
@@ -1,7 +1,9 @@
+[Note that only a few files are distributed under this license.]
+
                   GNU LESSER GENERAL PUBLIC LICENSE
                        Version 3, 29 June 2007
 
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
@@ -10,7 +12,7 @@
 the terms and conditions of version 3 of the GNU General Public
 License, supplemented by the additional permissions listed below.
 
-  0. Additional Definitions. 
+  0. Additional Definitions.
 
   As used herein, "this License" refers to version 3 of the GNU Lesser
 General Public License, and the "GNU GPL" refers to version 3 of the GNU
@@ -111,7 +113,7 @@ the following:
        a copy of the Library already present on the user's computer
        system, and (b) will operate properly with a modified version
        of the Library that is interface-compatible with the Linked
-       Version. 
+       Version.
 
    e) Provide Installation Information, but only if you would otherwise
    be required to provide such information under section 6 of the
index bf12302..5eeac11 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 ## Process this file with automake to produce Makefile.in
 
@@ -25,8 +25,8 @@ DISTCHECK_CONFIGURE_FLAGS = --enable-symcryptrun --enable-g13 \
 GITLOG_TO_CHANGELOG=gitlog-to-changelog
 
 EXTRA_DIST = build-aux/config.rpath build-aux/potomo autogen.sh autogen.rc \
-            ChangeLog-2011 po/ChangeLog-2011 build-aux/ChangeLog-2011 \
-            VERSION README.GIT build-aux/gitlog-to-changelog \
+            ChangeLog-2011 po/ChangeLog-2011 build-aux/ChangeLog-2011     \
+            VERSION README.GIT build-aux/gitlog-to-changelog COPYING.CC0  \
             build-aux/git-log-fix build-aux/git-log-footer \
             build-aux/getswdb.sh                           \
             build-aux/speedo.mk                            \
@@ -90,15 +90,9 @@ else
 doc =
 endif
 
-if RUN_TESTS
-tests = tests
-else
-tests =
-endif
-
 SUBDIRS = m4 common kbx \
           ${gpg} ${sm} ${agent} ${scd} ${g13} ${dirmngr} \
-          ${tools} po ${doc} ${tests}
+          ${tools} po ${doc} tests
 
 dist_doc_DATA = README
 
diff --git a/NEWS b/NEWS
index cbe6645..0eccb91 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,75 @@
+Noteworthy changes in version 2.1.16 (2016-11-18)
+-------------------------------------------------
+
+ * gpg: New algorithm for selecting the best ranked public key when
+   using a mail address with -r, -R, or --locate-key.
+
+ * gpg: New option --with-tofu-info to print a new "tfs" record in
+   colon formatted key listings.
+
+ * gpg: New option --compliance as an alternative way to specify
+   options like --rfc2440, --rfc4880, et al.
+
+ * gpg: Many changes to the TOFU implementation.
+
+ * gpg: Improve usability of --quick-gen-key.
+
+ * gpg: In --verbose mode print a diagnostic when a pinentry is
+   launched.
+
+ * gpg: Remove code which warns for old versions of gnome-keyring.
+
+ * gpg: New option --override-session-key-fd.
+
+ * gpg: Option --output does now work with --verify.
+
+ * gpgv: New option --output to allow saving the verified data.
+
+ * gpgv: New option --enable-special-filenames.
+
+ * agent, dirmngr: New --supervised mode for use by systemd and alike.
+
+ * agent: By default listen on all available sockets using standard
+   names.
+
+ * agent: Invoke scdaemon with --homedir.
+
+ * dirmngr: On Linux now detects the removal of its own socket and
+   terminates.
+
+ * scd: Support ECC key generation.
+
+ * scd: Support more card readers.
+
+ * dirmngr: New option --allow-version-check to download a software
+   version database in the background.
+
+ * dirmngr: Use system provided CAs if no --hkp-cacert is given.
+
+ * dirmngr: Use a default keyserver if none is explicitly set
+
+ * gpgconf: New command --query-swdb to check software versions
+   against an copy of an online database.
+
+ * gpgconf: Print the socket directory with --list-dirs.
+
+ * tools: The WKS tools now support draft version -02.
+
+ * tools: Always build gpg-wks-client and install under libexec.
+
+ * tools: New option --supported for gpg-wks-client.
+
+ * The log-file option now accepts a value "socket://" to log to the
+   socket named "S.log" in the standard socket directory.
+
+ * Provide fake pinentries for use by tests cases of downstream
+   developers.
+
+ * Fixed many bugs and regressions.
+
+ * Many changes and improvements for the test suite.
+
+
 Noteworthy changes in version 2.1.15 (2016-08-18)
 -------------------------------------------------
 
@@ -339,7 +411,7 @@ Noteworthy changes in version 2.1.9 (2015-10-09)
 
  * agent: Fix ssh fingerprint computation for nistp384 and EdDSA.
 
- * agent: Fix crash during passprase entry on some platforms.
+ * agent: Fix crash during passphrase entry on some platforms.
 
  * scd: Change timeout to fix problems with some 2.1 cards.
 
@@ -2600,7 +2672,7 @@ Noteworthy changes in version 0.4.2 (1998-10-18)
       prime product.
 
     * --import now only looks for KEYBLOCK headers, so you can now simply
-      remove the "- " in front of such a header if someone accidently signed
+      remove the "- " in front of such a header if someone accidentally signed
       such a message or the keyblock is part of a cleartext signed message.
 
     * --with-colons now lists the key expiration time and not anymore
index 724c085..690dc42 100644 (file)
@@ -14,7 +14,7 @@ dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 dnl GNU General Public License for more details.
 dnl
 dnl You should have received a copy of the GNU General Public License
-dnl along with this program; if not, see <http://www.gnu.org/licenses/>.
+dnl along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 dnl GNUPG_CHECK_TYPEDEF(TYPE, HAVE_NAME)
 dnl Check whether a typedef exists and create a #define $2 if it exists
@@ -113,7 +113,7 @@ AC_DEFUN([GNUPG_CHECK_ENDIAN],
             ;;
       esac
     fi
-    AC_MSG_CHECKING(endianess)
+    AC_MSG_CHECKING(endianness)
     AC_CACHE_VAL(gnupg_cv_c_endian,
       [ gnupg_cv_c_endian=unknown
         # See if sys/param.h defines the BYTE_ORDER macro.
index 1970088..045566e 100644 (file)
@@ -13,7 +13,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 ## Process this file with automake to produce Makefile.in
 
@@ -64,7 +64,8 @@ pwquery_libs = ../common/libsimple-pwquery.a
 endif
 
 
-gpg_agent_CFLAGS = $(AM_CFLAGS) $(LIBASSUAN_CFLAGS) $(NPTH_CFLAGS)
+gpg_agent_CFLAGS = $(AM_CFLAGS) $(LIBASSUAN_CFLAGS) $(NPTH_CFLAGS) \
+               $(INCICONV)
 gpg_agent_LDADD = $(commonpth_libs) \
                 $(LIBGCRYPT_LIBS) $(LIBASSUAN_LIBS) $(NPTH_LIBS) \
                $(GPG_ERROR_LIBS) $(LIBINTL) $(NETLIBS) $(LIBICONV) \
@@ -76,7 +77,8 @@ gpg_protect_tool_SOURCES = \
        protect-tool.c \
        protect.c cvt-openpgp.c
 
-gpg_protect_tool_CFLAGS = $(AM_CFLAGS) $(LIBASSUAN_CFLAGS)
+gpg_protect_tool_CFLAGS = $(AM_CFLAGS) $(LIBASSUAN_CFLAGS) \
+       $(INCICONV)
 gpg_protect_tool_LDADD = $(common_libs) $(LIBGCRYPT_LIBS) $(LIBASSUAN_LIBS) \
          $(GPG_ERROR_LIBS) $(LIBINTL) $(NETLIBS) $(LIBICONV)
 
index fe5ffba..2dfbf5c 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef AGENT_H
@@ -122,7 +122,7 @@ struct
 
   /* If set, a passphrase history will be written and checked at each
      passphrase change.  */
-  int enable_passhrase_history;
+  int enable_passphrase_history;
 
   int running_detached; /* We are running detached from the tty. */
 
@@ -154,12 +154,12 @@ struct
   int keep_tty;      /* Don't switch the TTY (for pinentry) on request */
   int keep_display;  /* Don't switch the DISPLAY (for pinentry) on request */
 
-  /* This global options indicates the use of an extra socket. Note
+  /* This global option indicates the use of an extra socket. Note
      that we use a hack for cleanup handling in gpg-agent.c: If the
      value is less than 2 the name has not yet been malloced. */
   int extra_socket;
 
-  /* This global options indicates the use of an extra socket for web
+  /* This global option indicates the use of an extra socket for web
      browsers. Note that we use a hack for cleanup handling in
      gpg-agent.c: If the value is less than 2 the name has not yet
      been malloced. */
@@ -349,7 +349,8 @@ void agent_sighup_action (void);
 int map_pk_openpgp_to_gcry (int openpgp_algo);
 
 /*-- command.c --*/
-gpg_error_t agent_inq_pinentry_launched (ctrl_t ctrl, unsigned long pid);
+gpg_error_t agent_inq_pinentry_launched (ctrl_t ctrl, unsigned long pid,
+                                         const char *extra);
 gpg_error_t agent_write_status (ctrl_t ctrl, const char *keyword, ...)
      GPGRT_ATTR_SENTINEL(0);
 gpg_error_t agent_print_status (ctrl_t ctrl, const char *keyword,
@@ -490,6 +491,9 @@ gpg_error_t s2k_hash_passphrase (const char *passphrase, int hashalgo,
                                  const unsigned char *s2ksalt,
                                  unsigned int s2kcount,
                                  unsigned char *key, size_t keylen);
+gpg_error_t agent_write_shadow_key (const unsigned char *grip,
+                                    const char *serialno, const char *keyid,
+                                    const unsigned char *pkbuf, int force);
 
 
 /*-- trustlist.c --*/
index 83107a6..f58eaea 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 0f24086..fa00bf9 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -225,6 +225,7 @@ getinfo_pid_cb (void *opaque, const void *buffer, size_t length)
   return 0;
 }
 
+
 /* Fork off the pin entry if this has not already been done.  Note,
    that this function must always be used to acquire the lock for the
    pinentry - we will serialize _all_ pinentry calls.
@@ -243,6 +244,7 @@ start_pinentry (ctrl_t ctrl)
   unsigned long pinentry_pid;
   const char *value;
   struct timespec abstime;
+  char *flavor_version;
   int err;
 
   npth_clock_gettime (&abstime);
@@ -354,6 +356,19 @@ start_pinentry (ctrl_t ctrl)
   if (DBG_IPC)
     log_debug ("connection to PIN entry established\n");
 
+  value = session_env_getenv (ctrl->session_env, "PINENTRY_USER_DATA");
+  if (value != NULL)
+    {
+      char *optstr;
+      if (asprintf (&optstr, "OPTION pinentry-user-data=%s", value) < 0 )
+       return unlock_pinentry (out_of_core ());
+      rc = assuan_transact (entry_ctx, optstr, NULL, NULL, NULL, NULL, NULL,
+                           NULL);
+      xfree (optstr);
+      if (rc && gpg_err_code (rc) != GPG_ERR_UNKNOWN_OPTION)
+        return unlock_pinentry (rc);
+    }
+
   rc = assuan_transact (entry_ctx,
                         opt.no_grab? "OPTION no-grab":"OPTION grab",
                         NULL, NULL, NULL, NULL, NULL, NULL);
@@ -526,6 +541,25 @@ start_pinentry (ctrl_t ctrl)
     }
 
 
+  /* Ask the pinentry for its version and flavor and streo that as a
+   * string in MB.  This information is useful for helping users to
+   * figure out Pinentry problems.  */
+  {
+    membuf_t mb;
+
+    init_membuf (&mb, 256);
+    if (assuan_transact (entry_ctx, "GETINFO flavor",
+                         put_membuf_cb, &mb, NULL, NULL, NULL, NULL))
+      put_membuf_str (&mb, "unknown");
+    put_membuf_str (&mb, " ");
+    if (assuan_transact (entry_ctx, "GETINFO version",
+                         put_membuf_cb, &mb, NULL, NULL, NULL, NULL))
+      put_membuf_str (&mb, "unknown");
+    put_membuf (&mb, "", 1);
+    flavor_version = get_membuf (&mb, NULL);
+  }
+
+
   /* Now ask the Pinentry for its PID.  If the Pinentry is new enough
      it will send the pid back and we will use an inquire to notify
      our client.  The client may answer the inquiry either with END or
@@ -542,7 +576,7 @@ start_pinentry (ctrl_t ctrl)
     log_error ("pinentry did not return a PID\n");
   else
     {
-      rc = agent_inq_pinentry_launched (ctrl, pinentry_pid);
+      rc = agent_inq_pinentry_launched (ctrl, pinentry_pid, flavor_version);
       if (gpg_err_code (rc) == GPG_ERR_CANCELED
           || gpg_err_code (rc) == GPG_ERR_FULLY_CANCELED)
         return unlock_pinentry (gpg_err_make (GPG_ERR_SOURCE_DEFAULT,
@@ -550,6 +584,8 @@ start_pinentry (ctrl_t ctrl)
       rc = 0;
     }
 
+  xfree (flavor_version);
+
   return 0;
 }
 
@@ -734,8 +770,7 @@ setup_qualitybar (ctrl_t ctrl)
   /* TRANSLATORS: This string is displayed by Pinentry as the label
      for the quality bar.  */
   tmpstr = try_percent_escape (L_("Quality:"), "\t\r\n\f\v");
-  snprintf (line, DIM(line)-1, "SETQUALITYBAR %s", tmpstr? tmpstr:"");
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "SETQUALITYBAR %s", tmpstr? tmpstr:"");
   xfree (tmpstr);
   rc = assuan_transact (entry_ctx, line, NULL, NULL, NULL, NULL, NULL, NULL);
   if (rc == 103 /*(Old assuan error code)*/
@@ -763,8 +798,7 @@ setup_qualitybar (ctrl_t ctrl)
     }
   tmpstr = try_percent_escape (tooltip, "\t\r\n\f\v");
   xfree (tmpstr2);
-  snprintf (line, DIM(line)-1, "SETQUALITYBAR_TT %s", tmpstr? tmpstr:"");
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "SETQUALITYBAR_TT %s", tmpstr? tmpstr:"");
   xfree (tmpstr);
   rc = assuan_transact (entry_ctx, line, NULL, NULL, NULL, NULL, NULL, NULL);
   if (rc == 103 /*(Old assuan error code)*/
@@ -887,27 +921,25 @@ agent_askpin (ctrl_t ctrl,
   if (keyinfo && (cache_mode == CACHE_MODE_NORMAL
                   || cache_mode == CACHE_MODE_USER
                   || cache_mode == CACHE_MODE_SSH))
-    snprintf (line, DIM(line)-1, "SETKEYINFO %c/%s",
+    snprintf (line, DIM(line), "SETKEYINFO %c/%s",
              cache_mode == CACHE_MODE_USER? 'u' :
              cache_mode == CACHE_MODE_SSH? 's' : 'n',
              keyinfo);
   else
-    snprintf (line, DIM(line)-1, "SETKEYINFO --clear");
+    snprintf (line, DIM(line), "SETKEYINFO --clear");
 
   rc = assuan_transact (entry_ctx, line,
                        NULL, NULL, NULL, NULL, NULL, NULL);
   if (rc && gpg_err_code (rc) != GPG_ERR_ASS_UNKNOWN_CMD)
     return unlock_pinentry (rc);
 
-  snprintf (line, DIM(line)-1, "SETDESC %s", desc_text);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "SETDESC %s", desc_text);
   rc = assuan_transact (entry_ctx, line, NULL, NULL, NULL, NULL, NULL, NULL);
   if (rc)
     return unlock_pinentry (rc);
 
-  snprintf (line, DIM(line)-1, "SETPROMPT %s",
+  snprintf (line, DIM(line), "SETPROMPT %s",
             prompt_text? prompt_text : is_pin? L_("PIN:") : L_("Passphrase:"));
-  line[DIM(line)-1] = 0;
   rc = assuan_transact (entry_ctx, line, NULL, NULL, NULL, NULL, NULL, NULL);
   if (rc)
     return unlock_pinentry (rc);
@@ -924,8 +956,7 @@ agent_askpin (ctrl_t ctrl,
 
   if (initial_errtext)
     {
-      snprintf (line, DIM(line)-1, "SETERROR %s", initial_errtext);
-      line[DIM(line)-1] = 0;
+      snprintf (line, DIM(line), "SETERROR %s", initial_errtext);
       rc = assuan_transact (entry_ctx, line,
                             NULL, NULL, NULL, NULL, NULL, NULL);
       if (rc)
@@ -934,9 +965,8 @@ agent_askpin (ctrl_t ctrl,
 
   if (pininfo->with_repeat)
     {
-      snprintf (line, DIM(line)-1, "SETREPEATERROR %s",
+      snprintf (line, DIM(line), "SETREPEATERROR %s",
                 L_("does not match - try again"));
-      line[DIM(line)-1] = 0;
       rc = assuan_transact (entry_ctx, line,
                             NULL, NULL, NULL, NULL, NULL, NULL);
       if (rc)
@@ -956,9 +986,8 @@ agent_askpin (ctrl_t ctrl,
           /* TRANSLATORS: The string is appended to an error message in
              the pinentry.  The %s is the actual error message, the
              two %d give the current and maximum number of tries. */
-          snprintf (line, DIM(line)-1, L_("SETERROR %s (try %d of %d)"),
+          snprintf (line, DIM(line), L_("SETERROR %s (try %d of %d)"),
                     errtext, pininfo->failed_tries+1, pininfo->max_tries);
-          line[DIM(line)-1] = 0;
           rc = assuan_transact (entry_ctx, line,
                                 NULL, NULL, NULL, NULL, NULL, NULL);
           if (rc)
@@ -968,8 +997,7 @@ agent_askpin (ctrl_t ctrl,
 
       if (pininfo->with_repeat)
         {
-          snprintf (line, DIM(line)-1, "SETREPEAT %s", L_("Repeat:"));
-          line[DIM(line)-1] = 0;
+          snprintf (line, DIM(line), "SETREPEAT %s", L_("Repeat:"));
           rc = assuan_transact (entry_ctx, line,
                                 NULL, NULL, NULL, NULL, NULL, NULL);
           if (rc)
@@ -1100,12 +1128,12 @@ agent_get_passphrase (ctrl_t ctrl,
   if (keyinfo && (cache_mode == CACHE_MODE_NORMAL
                   || cache_mode == CACHE_MODE_USER
                   || cache_mode == CACHE_MODE_SSH))
-    snprintf (line, DIM(line)-1, "SETKEYINFO %c/%s",
+    snprintf (line, DIM(line), "SETKEYINFO %c/%s",
              cache_mode == CACHE_MODE_USER? 'u' :
              cache_mode == CACHE_MODE_SSH? 's' : 'n',
              keyinfo);
   else
-    snprintf (line, DIM(line)-1, "SETKEYINFO --clear");
+    snprintf (line, DIM(line), "SETKEYINFO --clear");
 
   rc = assuan_transact (entry_ctx, line,
                        NULL, NULL, NULL, NULL, NULL, NULL);
@@ -1114,16 +1142,14 @@ agent_get_passphrase (ctrl_t ctrl,
 
 
   if (desc)
-    snprintf (line, DIM(line)-1, "SETDESC %s", desc);
+    snprintf (line, DIM(line), "SETDESC %s", desc);
   else
-    snprintf (line, DIM(line)-1, "RESET");
-  line[DIM(line)-1] = 0;
+    snprintf (line, DIM(line), "RESET");
   rc = assuan_transact (entry_ctx, line, NULL, NULL, NULL, NULL, NULL, NULL);
   if (rc)
     return unlock_pinentry (rc);
 
-  snprintf (line, DIM(line)-1, "SETPROMPT %s", prompt);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "SETPROMPT %s", prompt);
   rc = assuan_transact (entry_ctx, line, NULL, NULL, NULL, NULL, NULL, NULL);
   if (rc)
     return unlock_pinentry (rc);
@@ -1137,8 +1163,7 @@ agent_get_passphrase (ctrl_t ctrl,
 
   if (errtext)
     {
-      snprintf (line, DIM(line)-1, "SETERROR %s", errtext);
-      line[DIM(line)-1] = 0;
+      snprintf (line, DIM(line), "SETERROR %s", errtext);
       rc = assuan_transact (entry_ctx, line, NULL, NULL, NULL, NULL, NULL, NULL);
       if (rc)
         return unlock_pinentry (rc);
@@ -1205,10 +1230,9 @@ agent_get_confirmation (ctrl_t ctrl,
     return rc;
 
   if (desc)
-    snprintf (line, DIM(line)-1, "SETDESC %s", desc);
+    snprintf (line, DIM(line), "SETDESC %s", desc);
   else
-    snprintf (line, DIM(line)-1, "RESET");
-  line[DIM(line)-1] = 0;
+    snprintf (line, DIM(line), "RESET");
   rc = assuan_transact (entry_ctx, line, NULL, NULL, NULL, NULL, NULL, NULL);
   /* Most pinentries out in the wild return the old Assuan error code
      for canceled which gets translated to an assuan Cancel error and
@@ -1221,8 +1245,7 @@ agent_get_confirmation (ctrl_t ctrl,
 
   if (ok)
     {
-      snprintf (line, DIM(line)-1, "SETOK %s", ok);
-      line[DIM(line)-1] = 0;
+      snprintf (line, DIM(line), "SETOK %s", ok);
       rc = assuan_transact (entry_ctx,
                             line, NULL, NULL, NULL, NULL, NULL, NULL);
       if (rc)
@@ -1235,8 +1258,7 @@ agent_get_confirmation (ctrl_t ctrl,
          the standard cancel.  */
       if (with_cancel)
         {
-          snprintf (line, DIM(line)-1, "SETNOTOK %s", notok);
-          line[DIM(line)-1] = 0;
+          snprintf (line, DIM(line), "SETNOTOK %s", notok);
           rc = assuan_transact (entry_ctx,
                                 line, NULL, NULL, NULL, NULL, NULL, NULL);
         }
@@ -1245,8 +1267,7 @@ agent_get_confirmation (ctrl_t ctrl,
 
       if (gpg_err_code (rc) == GPG_ERR_ASS_UNKNOWN_CMD)
        {
-         snprintf (line, DIM(line)-1, "SETCANCEL %s", notok);
-         line[DIM(line)-1] = 0;
+         snprintf (line, DIM(line), "SETCANCEL %s", notok);
          rc = assuan_transact (entry_ctx, line,
                                 NULL, NULL, NULL, NULL, NULL, NULL);
        }
@@ -1282,10 +1303,9 @@ agent_show_message (ctrl_t ctrl, const char *desc, const char *ok_btn)
     return rc;
 
   if (desc)
-    snprintf (line, DIM(line)-1, "SETDESC %s", desc);
+    snprintf (line, DIM(line), "SETDESC %s", desc);
   else
-    snprintf (line, DIM(line)-1, "RESET");
-  line[DIM(line)-1] = 0;
+    snprintf (line, DIM(line), "RESET");
   rc = assuan_transact (entry_ctx, line, NULL, NULL, NULL, NULL, NULL, NULL);
   /* Most pinentries out in the wild return the old Assuan error code
      for canceled which gets translated to an assuan Cancel error and
@@ -1298,8 +1318,7 @@ agent_show_message (ctrl_t ctrl, const char *desc, const char *ok_btn)
 
   if (ok_btn)
     {
-      snprintf (line, DIM(line)-1, "SETOK %s", ok_btn);
-      line[DIM(line)-1] = 0;
+      snprintf (line, DIM(line), "SETOK %s", ok_btn);
       rc = assuan_transact (entry_ctx, line, NULL, NULL, NULL,
                             NULL, NULL, NULL);
       if (rc)
@@ -1354,18 +1373,16 @@ agent_popup_message_start (ctrl_t ctrl, const char *desc, const char *ok_btn)
     return rc;
 
   if (desc)
-    snprintf (line, DIM(line)-1, "SETDESC %s", desc);
+    snprintf (line, DIM(line), "SETDESC %s", desc);
   else
-    snprintf (line, DIM(line)-1, "RESET");
-  line[DIM(line)-1] = 0;
+    snprintf (line, DIM(line), "RESET");
   rc = assuan_transact (entry_ctx, line, NULL, NULL, NULL, NULL, NULL, NULL);
   if (rc)
     return unlock_pinentry (rc);
 
   if (ok_btn)
     {
-      snprintf (line, DIM(line)-1, "SETOK %s", ok_btn);
-      line[DIM(line)-1] = 0;
+      snprintf (line, DIM(line), "SETOK %s", ok_btn);
       rc = assuan_transact (entry_ctx, line, NULL,NULL,NULL,NULL,NULL,NULL);
       if (rc)
         return unlock_pinentry (rc);
@@ -1465,7 +1482,7 @@ agent_clear_passphrase (ctrl_t ctrl,
   if (rc)
     return rc;
 
-  snprintf (line, DIM(line)-1, "CLEARPASSPHRASE %c/%s",
+  snprintf (line, DIM(line), "CLEARPASSPHRASE %c/%s",
            cache_mode == CACHE_MODE_USER? 'u' :
            cache_mode == CACHE_MODE_SSH? 's' : 'n',
            keyinfo);
index b776840..ba59c18 100644 (file)
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -195,10 +195,11 @@ start_scd (ctrl_t ctrl)
   gpg_error_t err = 0;
   const char *pgmname;
   assuan_context_t ctx = NULL;
-  const char *argv[3];
+  const char *argv[5];
   assuan_fd_t no_close_list[3];
   int i;
   int rc;
+  char *abs_homedir = NULL;
 
   if (opt.disable_scdaemon)
     return gpg_error (GPG_ERR_NOT_SUPPORTED);
@@ -313,7 +314,22 @@ start_scd (ctrl_t ctrl)
 
   argv[0] = pgmname;
   argv[1] = "--multi-server";
-  argv[2] = NULL;
+  if (gnupg_default_homedir_p ())
+    argv[2] = NULL;
+  else
+    {
+      abs_homedir = make_absfilename_try (gnupg_homedir (), NULL);
+      if (!abs_homedir)
+        {
+          log_error ("error building filename: %s\n",
+                     gpg_strerror (gpg_error_from_syserror ()));
+          goto leave;
+        }
+
+      argv[2] = "--homedir";
+      argv[3] = abs_homedir;
+      argv[4] = NULL;
+    }
 
   i=0;
   if (!opt.running_detached)
@@ -393,6 +409,7 @@ start_scd (ctrl_t ctrl)
   primary_scd_ctx_reusable = 0;
 
  leave:
+  xfree (abs_homedir);
   if (err)
     {
       unlock_scd (ctrl, err);
@@ -929,8 +946,7 @@ agent_card_pkdecrypt (ctrl_t ctrl,
   inqparm.getpin_cb_arg = getpin_cb_arg;
   inqparm.passthru = 0;
   inqparm.any_inq_seen = 0;
-  snprintf (line, DIM(line)-1, "PKDECRYPT %s", keyid);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "PKDECRYPT %s", keyid);
   rc = assuan_transact (ctrl->scd_local->ctx, line,
                         put_membuf_cb, &data,
                         inq_needpin, &inqparm,
@@ -969,8 +985,7 @@ agent_card_readcert (ctrl_t ctrl,
     return rc;
 
   init_membuf (&data, 1024);
-  snprintf (line, DIM(line)-1, "READCERT %s", id);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "READCERT %s", id);
   rc = assuan_transact (ctrl->scd_local->ctx, line,
                         put_membuf_cb, &data,
                         NULL, NULL,
@@ -1005,8 +1020,7 @@ agent_card_readkey (ctrl_t ctrl, const char *id, unsigned char **r_buf)
     return rc;
 
   init_membuf (&data, 1024);
-  snprintf (line, DIM(line)-1, "READKEY %s", id);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "READKEY %s", id);
   rc = assuan_transact (ctrl->scd_local->ctx, line,
                         put_membuf_cb, &data,
                         NULL, NULL,
@@ -1071,8 +1085,7 @@ agent_card_writekey (ctrl_t ctrl,  int force, const char *serialno,
   if (rc)
     return rc;
 
-  snprintf (line, DIM(line)-1, "WRITEKEY %s%s", force ? "--force " : "", id);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "WRITEKEY %s%s", force ? "--force " : "", id);
   parms.ctx = ctrl->scd_local->ctx;
   parms.getpin_cb = getpin_cb;
   parms.getpin_cb_arg = getpin_cb_arg;
index 83a27ed..95cef41 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /* Only v2 of the ssh-agent protocol is implemented.  Relevant RFCs
@@ -1127,7 +1127,7 @@ confirm_flag_from_sshcontrol (const char *hexgrip)
 
 /* Open the ssh control file for reading.  This is a public version of
    open_control_file.  The caller must use ssh_close_control_file to
-   release the retruned handle.  */
+   release the returned handle.  */
 ssh_control_file_t
 ssh_open_control_file (void)
 {
@@ -1253,7 +1253,7 @@ ssh_receive_mpint_list (estream_t stream, int secret,
   elems_n = strlen (elems);
   elems_public = spec->elems_key_public;
 
-  /* Check that either noth, CERT and the WITH_CERT flag, are given or
+  /* Check that either both, CERT and the WITH_CERT flag, are given or
      none of them.  */
   if (!(!!(spec->flags & SPEC_FLAG_WITH_CERT) ^ !cert))
     {
@@ -2474,39 +2474,9 @@ card_key_available (ctrl_t ctrl, gcry_sexp_t *r_pk, char **cardsn)
   if ( agent_key_available (grip) )
     {
       /* (Shadow)-key is not available in our key storage.  */
-      unsigned char *shadow_info;
-      unsigned char *tmp;
-
-      shadow_info = make_shadow_info (serialno, authkeyid);
-      if (!shadow_info)
-        {
-          err = gpg_error_from_syserror ();
-          xfree (pkbuf);
-          gcry_sexp_release (s_pk);
-          xfree (serialno);
-          xfree (authkeyid);
-          return err;
-        }
-      err = agent_shadow_key (pkbuf, shadow_info, &tmp);
-      xfree (shadow_info);
-      if (err)
-        {
-          log_error (_("shadowing the key failed: %s\n"), gpg_strerror (err));
-          xfree (pkbuf);
-          gcry_sexp_release (s_pk);
-          xfree (serialno);
-          xfree (authkeyid);
-          return err;
-        }
-      xfree (pkbuf);
-      pkbuf = tmp;
-      pkbuflen = gcry_sexp_canon_len (pkbuf, 0, NULL, NULL);
-      assert (pkbuflen);
-
-      err = agent_write_private_key (grip, pkbuf, pkbuflen, 0);
+      err = agent_write_shadow_key (grip, serialno, authkeyid, pkbuf, 0);
       if (err)
         {
-          log_error (_("error writing key: %s\n"), gpg_strerror (err));
           xfree (pkbuf);
           gcry_sexp_release (s_pk);
           xfree (serialno);
index 9522f89..a2d4931 100644 (file)
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /* FIXME: we should not use the default assuan buffering but setup
@@ -74,21 +74,28 @@ struct server_local_s
      operations.  It defaults to true but may be set on a per
      connection base.  The global option opt.ignore_cache_for_signing
      takes precedence over this flag.  */
-  int use_cache_for_signing;
+  unsigned int use_cache_for_signing : 1;
 
-  /* An allocated description for the next key operation.  This is
-     used if a pinnetry needs to be popped up.  */
-  char *keydesc;
+  /* Flag to suppress I/O logging during a command.  */
+  unsigned int pause_io_logging : 1;
+
+  /* Flag indicating that the connection is from ourselves.  */
+  unsigned int connect_from_self : 1;
 
-  /* Flags to suppress I/O logging during a command.  */
-  int pause_io_logging;
+  /* Helper flag for io_monitor to allow suppressing of our own
+   * greeting in some cases.  See io_monitor for details.  */
+  unsigned int greeting_seen : 1;
 
-  /* If this flags is set to true the agent will be terminated after
+  /* If this flag is set to true the agent will be terminated after
      the end of the current session.  */
-  int stopme;
+  unsigned int stopme : 1;
 
   /* Flag indicating whether pinentry notifications shall be done. */
-  int allow_pinentry_notify;
+  unsigned int allow_pinentry_notify : 1;
+
+  /* An allocated description for the next key operation.  This is
+     used if a pinnetry needs to be popped up.  */
+  char *keydesc;
 
   /* Malloced KEK (Key-Encryption-Key) for the import_key command.  */
   void *import_key;
@@ -355,14 +362,15 @@ agent_print_status (ctrl_t ctrl, const char *keyword, const char *format, ...)
    that might disturb some older clients, this is only done if enabled
    via an option.  Returns an gpg error code. */
 gpg_error_t
-agent_inq_pinentry_launched (ctrl_t ctrl, unsigned long pid)
+agent_inq_pinentry_launched (ctrl_t ctrl, unsigned long pid, const char *extra)
 {
-  char line[100];
+  char line[256];
 
   if (!ctrl || !ctrl->server_local
       || !ctrl->server_local->allow_pinentry_notify)
     return 0;
-  snprintf (line, DIM(line)-1, "PINENTRY_LAUNCHED %lu", pid);
+  snprintf (line, DIM(line), "PINENTRY_LAUNCHED %lu%s%s",
+            pid, extra?" ":"", extra? extra:"");
   return assuan_inquire (ctrl->server_local->assuan_ctx, line, NULL, NULL, 0);
 }
 
@@ -384,7 +392,9 @@ progress_cb (ctrl_t ctrl, const char *what, int printchar,
 }
 
 
-/* Helper to print a message while leaving a command.  */
+/* Helper to print a message while leaving a command.  Note that this
+ * function does not call assuan_set_error; the caller may do this
+ * prior to calling us.  */
 static gpg_error_t
 leave_cmd (assuan_context_t ctx, gpg_error_t err)
 {
@@ -981,8 +991,10 @@ cmd_genkey (assuan_context_t ctx, char *line)
 \f
 static const char hlp_readkey[] =
   "READKEY <hexstring_with_keygrip>\n"
+  "        --card <keyid>\n"
   "\n"
-  "Return the public key for the given keygrip.";
+  "Return the public key for the given keygrip or keyid.\n"
+  "With --card, private key file with card information will be created.";
 static gpg_error_t
 cmd_readkey (assuan_context_t ctx, char *line)
 {
@@ -990,35 +1002,78 @@ cmd_readkey (assuan_context_t ctx, char *line)
   int rc;
   unsigned char grip[20];
   gcry_sexp_t s_pkey = NULL;
+  unsigned char *pkbuf = NULL;
+  char *serialno = NULL;
+  size_t pkbuflen;
+  const char *opt_card;
 
   if (ctrl->restricted)
     return leave_cmd (ctx, gpg_error (GPG_ERR_FORBIDDEN));
 
-  rc = parse_keygrip (ctx, line, grip);
-  if (rc)
-    return rc; /* Return immediately as this is already an Assuan error code.*/
+  opt_card = has_option_name (line, "--card");
+  line = skip_options (line);
 
-  rc = agent_public_key_from_file (ctrl, grip, &s_pkey);
-  if (!rc)
+  if (opt_card)
     {
-      size_t len;
-      unsigned char *buf;
+      const char *keyid = opt_card;
 
-      len = gcry_sexp_sprint (s_pkey, GCRYSEXP_FMT_CANON, NULL, 0);
-      assert (len);
-      buf = xtrymalloc (len);
-      if (!buf)
-        rc = gpg_error_from_syserror ();
-      else
+      rc = agent_card_getattr (ctrl, "SERIALNO", &serialno);
+      if (rc)
         {
-          len = gcry_sexp_sprint (s_pkey, GCRYSEXP_FMT_CANON, buf, len);
-          assert (len);
-          rc = assuan_send_data (ctx, buf, len);
-          xfree (buf);
+          log_error (_("error getting serial number of card: %s\n"),
+                     gpg_strerror (rc));
+          goto leave;
+        }
+
+      rc = agent_card_readkey (ctrl, keyid, &pkbuf);
+      if (rc)
+        goto leave;
+      pkbuflen = gcry_sexp_canon_len (pkbuf, 0, NULL, NULL);
+      rc = gcry_sexp_sscan (&s_pkey, NULL, (char*)pkbuf, pkbuflen);
+      if (rc)
+        goto leave;
+
+      if (!gcry_pk_get_keygrip (s_pkey, grip))
+        {
+          rc = gcry_pk_testkey (s_pkey);
+          if (rc == 0)
+            rc = gpg_error (GPG_ERR_INTERNAL);
+
+          goto leave;
         }
-      gcry_sexp_release (s_pkey);
+
+      rc = agent_write_shadow_key (grip, serialno, keyid, pkbuf, 0);
+      if (rc)
+        goto leave;
+
+      rc = assuan_send_data (ctx, pkbuf, pkbuflen);
     }
+  else
+    {
+      rc = parse_keygrip (ctx, line, grip);
+      if (rc)
+        goto leave;
 
+      rc = agent_public_key_from_file (ctrl, grip, &s_pkey);
+      if (!rc)
+        {
+          pkbuflen = gcry_sexp_sprint (s_pkey, GCRYSEXP_FMT_CANON, NULL, 0);
+          log_assert (pkbuflen);
+          pkbuf = xtrymalloc (pkbuflen);
+          if (!pkbuf)
+            rc = gpg_error_from_syserror ();
+          else
+            {
+              gcry_sexp_sprint (s_pkey, GCRYSEXP_FMT_CANON, pkbuf, pkbuflen);
+              rc = assuan_send_data (ctx, pkbuf, pkbuflen);
+            }
+        }
+    }
+
+ leave:
+  xfree (serialno);
+  xfree (pkbuf);
+  gcry_sexp_release (s_pkey);
   return leave_cmd (ctx, rc);
 }
 
@@ -2992,7 +3047,7 @@ option_handler (assuan_context_t ctx, const char *key, const char *value)
       err = session_env_setenv (ctrl->session_env, "PINENTRY_USER_DATA", value);
     }
   else if (!strcmp (key, "use-cache-for-signing"))
-    ctrl->server_local->use_cache_for_signing = *value? atoi (value) : 0;
+    ctrl->server_local->use_cache_for_signing = *value? !!atoi (value) : 0;
   else if (!strcmp (key, "allow-pinentry-notify"))
     ctrl->server_local->allow_pinentry_notify = 1;
   else if (!strcmp (key, "pinentry-mode"))
@@ -3052,6 +3107,29 @@ io_monitor (assuan_context_t ctx, void *hook, int direction,
 
   (void) hook;
 
+  /* We want to suppress all Assuan log messages for connections from
+   * self.  However, assuan_get_pid works only after
+   * assuan_accept. Now, assuan_accept already logs a line ending with
+   * the process id.  We use this hack here to get the peers pid so
+   * that we can compare it to our pid.  We should add an assuan
+   * function to return the pid for a file descriptor and use that to
+   * detect connections to self.  */
+  if (ctx && !ctrl->server_local->greeting_seen
+      && direction == ASSUAN_IO_TO_PEER)
+    {
+      ctrl->server_local->greeting_seen = 1;
+      if (linelen > 32
+          && !strncmp (line, "OK Pleased to meet you, process ", 32)
+          && strtoul (line+32, NULL, 10) == getpid ())
+        return ASSUAN_IO_MONITOR_NOLOG;
+    }
+
+
+  /* Do not log self-connections.  This makes the log cleaner because
+   * we won't see the check-our-own-socket calls.  */
+  if (ctx && ctrl->server_local->connect_from_self)
+    return ASSUAN_IO_MONITOR_NOLOG;
+
   /* Note that we only check for the uppercase name.  This allows the user to
      see the logging for debugging if using a non-upercase command
      name. */
@@ -3146,7 +3224,7 @@ register_commands (assuan_context_t ctx)
 /* Startup the server.  If LISTEN_FD and FD is given as -1, this is a
    simple piper server, otherwise it is a regular server.  CTRL is the
    control structure for this connection; it has only the basic
-   intialization. */
+   initialization. */
 void
 start_command_handler (ctrl_t ctrl, gnupg_fd_t listen_fd, gnupg_fd_t fd)
 {
@@ -3202,6 +3280,7 @@ start_command_handler (ctrl_t ctrl, gnupg_fd_t listen_fd, gnupg_fd_t fd)
   ctrl->server_local = xcalloc (1, sizeof *ctrl->server_local);
   ctrl->server_local->assuan_ctx = ctx;
   ctrl->server_local->use_cache_for_signing = 1;
+
   ctrl->digest.raw_value = 0;
 
   assuan_set_io_monitor (ctx, io_monitor, NULL);
@@ -3220,6 +3299,8 @@ start_command_handler (ctrl_t ctrl, gnupg_fd_t listen_fd, gnupg_fd_t fd)
           break;
         }
 
+      ctrl->server_local->connect_from_self = (assuan_get_pid (ctx)==getpid ());
+
       rc = assuan_process (ctx);
       if (rc)
         {
index eb420b0..510b6ff 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 9a4fc3d..23092f6 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 #ifndef GNUPG_AGENT_CVT_OPENPGP_H
 #define GNUPG_AGENT_CVT_OPENPGP_H
index 5d3b1ef..7b07008 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index c5ab0e9..1b187ba 100644 (file)
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -152,17 +152,26 @@ agent_write_private_key (const unsigned char *grip,
   if (!fp)
     {
       gpg_error_t tmperr = gpg_error_from_syserror ();
-      log_error ("can't create '%s': %s\n", fname, gpg_strerror (tmperr));
-      xfree (fname);
-      return tmperr;
-    }
 
-  /* See if an existing key is in extended format.  */
-  if (force)
+      if (force && gpg_err_code (tmperr) == GPG_ERR_ENOENT)
+        {
+          fp = es_fopen (fname, "wbx,mode=-rw");
+          if (!fp)
+            tmperr = gpg_error_from_syserror ();
+        }
+      if (!fp)
+        {
+          log_error ("can't create '%s': %s\n", fname, gpg_strerror (tmperr));
+          xfree (fname);
+          return tmperr;
+        }
+    }
+  else if (force)
     {
       gpg_error_t rc;
       char first;
 
+      /* See if an existing key is in extended format.  */
       if (es_fread (&first, 1, 1, fp) != 1)
         {
           rc = gpg_error_from_syserror ();
@@ -1492,3 +1501,39 @@ agent_delete_key (ctrl_t ctrl, const char *desc_text,
   gcry_sexp_release (s_skey);
   return err;
 }
+
+
+/* Write an S-expression formatted shadow key to our key storage.
+   Shadow key is created by an S-expression public key in PKBUF and
+   card's SERIALNO and the IDSTRING.  With FORCE passed as true an
+   existing key with the given GRIP will get overwritten.  */
+gpg_error_t
+agent_write_shadow_key (const unsigned char *grip,
+                        const char *serialno, const char *keyid,
+                        const unsigned char *pkbuf, int force)
+{
+  gpg_error_t err;
+  unsigned char *shadow_info;
+  unsigned char *shdkey;
+  size_t len;
+
+  shadow_info = make_shadow_info (serialno, keyid);
+  if (!shadow_info)
+    return gpg_error_from_syserror ();
+
+  err = agent_shadow_key (pkbuf, shadow_info, &shdkey);
+  xfree (shadow_info);
+  if (err)
+    {
+      log_error ("shadowing the key failed: %s\n", gpg_strerror (err));
+      return err;
+    }
+
+  len = gcry_sexp_canon_len (shdkey, 0, NULL, NULL);
+  err = agent_write_private_key (grip, shdkey, len, force);
+  xfree (shdkey);
+  if (err)
+    log_error ("error writing key: %s\n", gpg_strerror (err));
+
+  return err;
+}
index 12c3e34..8a43d89 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index b8a5a3e..1433f7f 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -87,6 +87,7 @@ enum cmd_and_opt_values
   oLogFile,
   oServer,
   oDaemon,
+  oSupervised,
   oBatch,
 
   oPinentryProgram,
@@ -149,6 +150,9 @@ static ARGPARSE_OPTS opts[] = {
 
   ARGPARSE_s_n (oDaemon,  "daemon", N_("run in daemon mode (background)")),
   ARGPARSE_s_n (oServer,  "server", N_("run in server mode (foreground)")),
+#ifndef HAVE_W32_SYSTEM
+  ARGPARSE_s_n (oSupervised,  "supervised", N_("run in supervised mode")),
+#endif
   ARGPARSE_s_n (oVerbose, "verbose", N_("verbose")),
   ARGPARSE_s_n (oQuiet,          "quiet",     N_("be somewhat more quiet")),
   ARGPARSE_s_n (oSh,     "sh",        N_("sh-style command output")),
@@ -318,6 +322,12 @@ static int check_own_socket_running;
 /* Flags to indicate that check_own_socket shall not be called.  */
 static int disable_check_own_socket;
 
+/* Flag indicating that we are in supervised mode.  */
+static int is_supervised;
+
+/* Flag to inhibit socket removal in cleanup.  */
+static int inhibit_socket_removal;
+
 /* It is possible that we are currently running under setuid permissions */
 static int maybe_setuid = 1;
 
@@ -374,9 +384,9 @@ static pid_t parent_pid = (pid_t)(-1);
 static int active_connections;
 
 /* This object is used to dispatch progress messages from Libgcrypt to
- * the right thread.  Given that we won't have at max a few dozen
- * connections at the same time using a linked list is the easiest way
- * to handle this. */
+ * the right thread.  Given that we will have at max only a few dozen
+ * connections at a time, using a linked list is the easiest way to
+ * handle this. */
 struct progress_dispatch_s
 {
   struct progress_dispatch_s *next;
@@ -563,6 +573,168 @@ remove_socket (char *name, char *redir_name)
 }
 
 
+/* Discover which inherited file descriptors correspond to which
+ * services/sockets offered by gpg-agent, using the LISTEN_FDS and
+ * LISTEN_FDNAMES convention.  The understood labels are "ssh",
+ * "extra", and "browser".  "std" or other labels will be interpreted
+ * as the standard socket.
+ *
+ * This function is designed to log errors when the expected file
+ * descriptors don't make sense, but to do its best to continue to
+ * work even in the face of minor misconfigurations.
+ *
+ * For more information on the LISTEN_FDS convention, see
+ * sd_listen_fds(3) on certain Linux distributions.
+ */
+#ifndef HAVE_W32_SYSTEM
+static void
+map_supervised_sockets (gnupg_fd_t *r_fd,
+                        gnupg_fd_t *r_fd_extra,
+                        gnupg_fd_t *r_fd_browser,
+                        gnupg_fd_t *r_fd_ssh)
+{
+  struct {
+    const char *label;
+    int **fdaddr;
+    char **nameaddr;
+  } tbl[] = {
+    { "ssh",     &r_fd_ssh,     &socket_name_ssh },
+    { "browser", &r_fd_browser, &socket_name_browser },
+    { "extra",   &r_fd_extra,   &socket_name_extra },
+    { "std",     &r_fd,         &socket_name }  /* (Must be the last item.)  */
+  };
+  const char *envvar;
+  char **fdnames;
+  int nfdnames;
+  int fd_count;
+
+  *r_fd = *r_fd_extra = *r_fd_browser = *r_fd_ssh = -1;
+
+  /* Print a warning if LISTEN_PID does not match outr pid.  */
+  envvar = getenv ("LISTEN_PID");
+  if (!envvar)
+    log_error ("no LISTEN_PID environment variable found in "
+               "--supervised mode (ignoring)\n");
+  else if (strtoul (envvar, NULL, 10) != (unsigned long)getpid ())
+    log_error ("environment variable LISTEN_PID (%lu) does not match"
+               " our pid (%lu) in --supervised mode (ignoring)\n",
+               (unsigned long)strtoul (envvar, NULL, 10),
+               (unsigned long)getpid ());
+
+  /* Parse LISTEN_FDNAMES into the array FDNAMES.  */
+  envvar = getenv ("LISTEN_FDNAMES");
+  if (envvar)
+    {
+      fdnames = strtokenize (envvar, ":");
+      if (!fdnames)
+        {
+          log_error ("strtokenize failed: %s\n",
+                     gpg_strerror (gpg_error_from_syserror ()));
+          agent_exit (1);
+        }
+      for (nfdnames=0; fdnames[nfdnames]; nfdnames++)
+        ;
+    }
+  else
+    {
+      fdnames = NULL;
+      nfdnames = 0;
+    }
+
+  /* Parse LISTEN_FDS into fd_count or provide a replacement.  */
+  envvar = getenv ("LISTEN_FDS");
+  if (envvar)
+    fd_count = atoi (envvar);
+  else if (fdnames)
+    {
+      log_error ("no LISTEN_FDS environment variable found in --supervised"
+                 " mode (relying on LISTEN_FDNAMES instead)\n");
+      fd_count = nfdnames;
+    }
+  else
+    {
+      log_error ("no LISTEN_FDS or LISTEN_FDNAMES environment variables "
+                "found in --supervised mode"
+                " (assuming 1 active descriptor)\n");
+      fd_count = 1;
+    }
+
+  if (fd_count < 1)
+    {
+      log_error ("--supervised mode expects at least one file descriptor"
+                 " (was told %d, carrying on as though it were 1)\n",
+                 fd_count);
+      fd_count = 1;
+    }
+
+  /* Assign the descriptors to the return values.  */
+  if (!fdnames)
+    {
+      struct stat statbuf;
+
+      if (fd_count != 1)
+        log_error ("no LISTEN_FDNAMES and LISTEN_FDS (%d) != 1"
+                   " in --supervised mode."
+                   " (ignoring all sockets but the first one)\n",
+                   fd_count);
+      if (fstat (3, &statbuf) == -1 && errno ==EBADF)
+        log_fatal ("file descriptor 3 must be valid in --supervised mode"
+                   " if LISTEN_FDNAMES is not set\n");
+      *r_fd = 3;
+      socket_name = gnupg_get_socket_name (3);
+    }
+  else if (fd_count != nfdnames)
+    {
+      log_fatal ("number of items in LISTEN_FDNAMES (%d) does not match "
+                 "LISTEN_FDS (%d) in --supervised mode\n",
+                 nfdnames, fd_count);
+    }
+  else
+    {
+      int i, j, fd;
+      char *name;
+
+      for (i = 0; i < nfdnames; i++)
+        {
+          for (j = 0; j < DIM (tbl); j++)
+            {
+              if (!strcmp (fdnames[i], tbl[j].label) || j == DIM(tbl)-1)
+                {
+                  fd = 3 + i;
+                  if (**tbl[j].fdaddr == -1)
+                    {
+                      name = gnupg_get_socket_name (fd);
+                      if (name)
+                        {
+                          **tbl[j].fdaddr = fd;
+                          *tbl[j].nameaddr = name;
+                          log_info ("using fd %d for %s socket (%s)\n",
+                                    fd, tbl[j].label, name);
+                        }
+                      else
+                        {
+                          log_error ("cannot listen on fd %d for %s socket\n",
+                                     fd, tbl[j].label);
+                          close (fd);
+                        }
+                    }
+                  else
+                    {
+                      log_error ("cannot listen on more than one %s socket\n",
+                                 tbl[j].label);
+                      close (fd);
+                    }
+                  break;
+                }
+            }
+        }
+    }
+
+  xfree (fdnames);
+}
+#endif /*!HAVE_W32_SYSTEM*/
+
+
 /* Cleanup code for this program.  This is either called has an atexit
    handler or directly.  */
 static void
@@ -574,12 +746,15 @@ cleanup (void)
     return;
   done = 1;
   deinitialize_module_cache ();
-  remove_socket (socket_name, redir_socket_name);
-  if (opt.extra_socket > 1)
-    remove_socket (socket_name_extra, redir_socket_name_extra);
-  if (opt.browser_socket > 1)
-    remove_socket (socket_name_browser, redir_socket_name_browser);
-  remove_socket (socket_name_ssh, redir_socket_name_ssh);
+  if (!is_supervised && !inhibit_socket_removal)
+    {
+      remove_socket (socket_name, redir_socket_name);
+      if (opt.extra_socket > 1)
+        remove_socket (socket_name_extra, redir_socket_name_extra);
+      if (opt.browser_socket > 1)
+        remove_socket (socket_name_browser, redir_socket_name_browser);
+      remove_socket (socket_name_ssh, redir_socket_name_ssh);
+    }
 }
 
 
@@ -614,7 +789,7 @@ parse_rereadable_options (ARGPARSE_ARGS *pargs, int reread)
       opt.min_passphrase_nonalpha = MIN_PASSPHRASE_NONALPHA;
       opt.check_passphrase_pattern = NULL;
       opt.max_passphrase_days = MAX_PASSPHRASE_DAYS;
-      opt.enable_passhrase_history = 0;
+      opt.enable_passphrase_history = 0;
       opt.ignore_cache_for_signing = 0;
       opt.allow_mark_trusted = 1;
       opt.allow_external_cache = 1;
@@ -681,7 +856,7 @@ parse_rereadable_options (ARGPARSE_ARGS *pargs, int reread)
       opt.max_passphrase_days = pargs->r.ret_ulong;
       break;
     case oEnablePassphraseHistory:
-      opt.enable_passhrase_history = 1;
+      opt.enable_passphrase_history = 1;
       break;
 
     case oIgnoreCacheForSigning: opt.ignore_cache_for_signing = 1; break;
@@ -715,6 +890,39 @@ finalize_rereadable_options (void)
 }
 
 
+static void
+thread_init_once (void)
+{
+  static int npth_initialized = 0;
+
+  if (!npth_initialized)
+    {
+      npth_initialized++;
+      npth_init ();
+    }
+  gpgrt_set_syscall_clamp (npth_unprotect, npth_protect);
+  /* Now that we have set the syscall clamp we need to tell Libgcrypt
+   * that it should get them from libgpg-error.  Note that Libgcrypt
+   * has already been initialized but at that point nPth was not
+   * initialized and thus Libgcrypt could not set its system call
+   * clamp.  */
+#if GCRYPT_VERSION_NUMBER >= 0x010800 /* 1.8.0 */
+  gcry_control (GCRYCTL_REINIT_SYSCALL_CLAMP, 0, 0);
+#endif
+}
+
+
+static void
+initialize_modules (void)
+{
+  thread_init_once ();
+  assuan_set_system_hooks (ASSUAN_SYSTEM_NPTH);
+  initialize_module_cache ();
+  initialize_module_call_pinentry ();
+  initialize_module_call_scd ();
+  initialize_module_trustlist ();
+}
+
 
 /* The main entry point.  */
 int
@@ -762,16 +970,13 @@ main (int argc, char **argv )
   i18n_init ();
   init_common_subsystems (&argc, &argv);
 
-  npth_init ();
-
   malloc_hooks.malloc = gcry_malloc;
   malloc_hooks.realloc = gcry_realloc;
   malloc_hooks.free = gcry_free;
   assuan_set_malloc_hooks (&malloc_hooks);
   assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
-  assuan_set_system_hooks (ASSUAN_SYSTEM_NPTH);
   assuan_sock_init ();
-  setup_libassuan_logging (&opt.debug);
+  setup_libassuan_logging (&opt.debug, NULL);
 
   setup_libgcrypt_logging ();
   gcry_control (GCRYCTL_USE_SECURE_RNDPOOL);
@@ -931,6 +1136,7 @@ main (int argc, char **argv )
         case oSh: csh_style = 0; break;
         case oServer: pipe_server = 1; break;
         case oDaemon: is_daemon = 1; break;
+        case oSupervised: is_supervised = 1; break;
 
         case oDisplay: default_display = xstrdup (pargs.r.ret_str); break;
         case oTTYname: default_ttyname = xstrdup (pargs.r.ret_str); break;
@@ -1030,9 +1236,9 @@ main (int argc, char **argv )
     bind_textdomain_codeset (PACKAGE_GT, "UTF-8");
 #endif
 
-  if (!pipe_server && !is_daemon && !gpgconf_list)
+  if (!pipe_server && !is_daemon && !gpgconf_list && !is_supervised)
     {
-     /* We have been called without any options and thus we merely
+     /* We have been called without any command and thus we merely
         check whether an agent is already running.  We do this right
         here so that we don't clobber a logfile with this check but
         print the status directly to stderr. */
@@ -1042,6 +1248,32 @@ main (int argc, char **argv )
       agent_exit (0);
     }
 
+  if (is_supervised)
+    ;
+  else if (!opt.extra_socket)
+    opt.extra_socket = 1;
+  else if (socket_name_extra
+           && (!strcmp (socket_name_extra, "none")
+               || !strcmp (socket_name_extra, "/dev/null")))
+    {
+      /* User requested not to create this socket.  */
+      opt.extra_socket = 0;
+      socket_name_extra = NULL;
+    }
+
+  if (is_supervised)
+    ;
+  else if (!opt.browser_socket)
+    opt.browser_socket = 1;
+  else if (socket_name_browser
+           && (!strcmp (socket_name_browser, "none")
+               || !strcmp (socket_name_browser, "/dev/null")))
+    {
+      /* User requested not to create this socket.  */
+      opt.browser_socket = 0;
+      socket_name_browser = NULL;
+    }
+
   set_debug ();
 
   if (atexit (cleanup))
@@ -1051,16 +1283,12 @@ main (int argc, char **argv )
       exit (1);
     }
 
-  initialize_module_cache ();
-  initialize_module_call_pinentry ();
-  initialize_module_call_scd ();
-  initialize_module_trustlist ();
-
   /* Try to create missing directories. */
   create_directories ();
 
   if (debug_wait && pipe_server)
     {
+      thread_init_once ();
       log_debug ("waiting for debugger - my pid is %u .....\n",
                  (unsigned int)getpid());
       gnupg_sleep (debug_wait);
@@ -1167,6 +1395,8 @@ main (int argc, char **argv )
       /* This is the simple pipe based server */
       ctrl_t ctrl;
 
+      initialize_modules ();
+
       ctrl = xtrycalloc (1, sizeof *ctrl);
       if (!ctrl)
         {
@@ -1187,6 +1417,50 @@ main (int argc, char **argv )
       agent_deinit_default_ctrl (ctrl);
       xfree (ctrl);
     }
+  else if (is_supervised)
+    {
+#ifndef HAVE_W32_SYSTEM
+      gnupg_fd_t fd, fd_extra, fd_browser, fd_ssh;
+
+      initialize_modules ();
+
+      /* when supervised and sending logs to stderr, the process
+         supervisor should handle log entry metadata (pid, name,
+         timestamp) */
+      if (!logfile)
+        log_set_prefix (NULL, 0);
+
+      log_info ("%s %s starting in supervised mode.\n",
+                strusage(11), strusage(13) );
+
+      /* See below in "regular server mode" on why we remove certain
+       * envvars.  */
+      if (!opt.keep_display)
+        gnupg_unsetenv ("DISPLAY");
+      gnupg_unsetenv ("INSIDE_EMACS");
+
+      /* Virtually create the sockets.  Note that we use -1 here
+       * because the whole thing works only on Unix. */
+      map_supervised_sockets (&fd, &fd_extra, &fd_browser, &fd_ssh);
+      if (fd == -1)
+        log_fatal ("no standard socket provided\n");
+
+#ifdef HAVE_SIGPROCMASK
+      if (startup_signal_mask_valid)
+        {
+          if (sigprocmask (SIG_SETMASK, &startup_signal_mask, NULL))
+            log_error ("error restoring signal mask: %s\n",
+                       strerror (errno));
+        }
+      else
+        log_info ("no saved signal mask\n");
+#endif /*HAVE_SIGPROCMASK*/
+
+      log_info ("listening on: std=%d extra=%d browser=%d ssh=%d\n",
+                fd, fd_extra, fd_browser, fd_ssh);
+      handle_connections (fd, fd_extra, fd_browser, fd_ssh);
+#endif /*!HAVE_W32_SYSTEM*/
+    }
   else if (!is_daemon)
     ; /* NOTREACHED */
   else
@@ -1199,6 +1473,8 @@ main (int argc, char **argv )
       pid_t pid;
 #endif
 
+      initialize_modules ();
+
       /* Remove the DISPLAY variable so that a pinentry does not
          default to a specific display.  There is still a default
          display when gpg-agent was started using --display or a
@@ -1222,7 +1498,11 @@ main (int argc, char **argv )
 
       if (opt.extra_socket)
         {
-          socket_name_extra = create_socket_name (socket_name_extra, 0);
+          if (socket_name_extra)
+            socket_name_extra = create_socket_name (socket_name_extra, 0);
+          else
+            socket_name_extra = create_socket_name
+              /**/                (GPG_AGENT_EXTRA_SOCK_NAME, 1);
           opt.extra_socket = 2; /* Indicate that it has been malloced.  */
           fd_extra = create_server_socket (socket_name_extra, 0, 0,
                                            &redir_socket_name_extra,
@@ -1231,20 +1511,21 @@ main (int argc, char **argv )
 
       if (opt.browser_socket)
         {
-          socket_name_browser = create_socket_name (socket_name_browser, 0);
+          if (socket_name_browser)
+            socket_name_browser = create_socket_name (socket_name_browser, 0);
+          else
+            socket_name_browser= create_socket_name
+              /**/                 (GPG_AGENT_BROWSER_SOCK_NAME, 1);
           opt.browser_socket = 2; /* Indicate that it has been malloced.  */
           fd_browser = create_server_socket (socket_name_browser, 0, 0,
                                              &redir_socket_name_browser,
                                              &socket_nonce_browser);
         }
 
-      if (ssh_support)
-        {
-          socket_name_ssh = create_socket_name (GPG_AGENT_SSH_SOCK_NAME, 1);
-          fd_ssh = create_server_socket (socket_name_ssh, 0, 1,
-                                         &redir_socket_name_ssh,
-                                         &socket_nonce_ssh);
-        }
+      socket_name_ssh = create_socket_name (GPG_AGENT_SSH_SOCK_NAME, 1);
+      fd_ssh = create_server_socket (socket_name_ssh, 0, 1,
+                                     &redir_socket_name_ssh,
+                                     &socket_nonce_ssh);
 
       /* If we are going to exec a program in the parent, we record
          the PID, so that the child may check whether the program is
@@ -1310,8 +1591,7 @@ main (int argc, char **argv )
            *socket_name_extra = 0;
          if (opt.browser_socket)
            *socket_name_browser = 0;
-         if (ssh_support)
-           *socket_name_ssh = 0;
+          *socket_name_ssh = 0;
 
           if (argc)
             { /* Run the program given on the commandline.  */
@@ -1370,6 +1650,8 @@ main (int argc, char **argv )
          This is the child
        */
 
+      initialize_modules ();
+
       /* Detach from tty and put process into a new session */
       if (!nodetach )
         {
@@ -1473,6 +1755,15 @@ agent_libgcrypt_progress_cb (void *data, const char *what, int printchar,
       break;
   if (dispatch && dispatch->cb)
     dispatch->cb (dispatch->ctrl, what, printchar, current, total);
+
+  /* Libgcrypt < 1.8 does not know about nPth and thus when it reads
+   * from /dev/random this will block the process.  To mitigate this
+   * problem we take a short nap when Libgcrypt tells us that it needs
+   * more entropy.  This way other threads have chance to run.  */
+#if GCRYPT_VERSION_NUMBER < 0x010800 /* 1.8.0 */
+  if (what && !strcmp (what, "need_entropy"))
+    npth_usleep (100000); /* 100ms */
+#endif
 }
 
 
@@ -2303,12 +2594,12 @@ do_start_connection_thread (ctrl_t ctrl)
 {
   active_connections++;
   agent_init_default_ctrl (ctrl);
-  if (opt.verbose)
+  if (opt.verbose && !DBG_IPC)
     log_info (_("handler 0x%lx for fd %d started\n"),
               (unsigned long) npth_self(), FD2INT(ctrl->thread_startup.fd));
 
   start_command_handler (ctrl, GNUPG_INVALID_FD, ctrl->thread_startup.fd);
-  if (opt.verbose)
+  if (opt.verbose && !DBG_IPC)
     log_info (_("handler 0x%lx for fd %d terminated\n"),
               (unsigned long) npth_self(), FD2INT(ctrl->thread_startup.fd));
 
@@ -2407,6 +2698,7 @@ handle_connections (gnupg_fd_t listen_fd,
                     gnupg_fd_t listen_fd_browser,
                     gnupg_fd_t listen_fd_ssh)
 {
+  gpg_error_t err;
   npth_attr_t tattr;
   struct sockaddr_un paddr;
   socklen_t plen;
@@ -2422,6 +2714,7 @@ handle_connections (gnupg_fd_t listen_fd,
   HANDLE events[2];
   unsigned int events_set;
 #endif
+  int my_inotify_fd = -1;
   struct {
     const char *name;
     void *(*func) (void *arg);
@@ -2459,6 +2752,15 @@ handle_connections (gnupg_fd_t listen_fd,
 # endif
 #endif
 
+  if (disable_check_own_socket)
+    my_inotify_fd = -1;
+  else if ((err = gnupg_inotify_watch_socket (&my_inotify_fd, socket_name)))
+    {
+      if (gpg_err_code (err) != GPG_ERR_NOT_SUPPORTED)
+        log_info ("error enabling fast daemon termination: %s\n",
+                  gpg_strerror (err));
+    }
+
   /* On Windows we need to fire up a separate thread to listen for
      requests from Putty (an SSH client), so we can replace Putty's
      Pageant (its ssh-agent implementation). */
@@ -2500,6 +2802,12 @@ handle_connections (gnupg_fd_t listen_fd,
       if (FD2INT (listen_fd_ssh) > nfd)
         nfd = FD2INT (listen_fd_ssh);
     }
+  if (my_inotify_fd != -1)
+    {
+      FD_SET (my_inotify_fd, &fdset);
+      if (my_inotify_fd > nfd)
+        nfd = my_inotify_fd;
+    }
 
   listentbl[0].l_fd = listen_fd;
   listentbl[1].l_fd = listen_fd_extra;
@@ -2574,6 +2882,14 @@ handle_connections (gnupg_fd_t listen_fd,
           ctrl_t ctrl;
           npth_t thread;
 
+          if (my_inotify_fd != -1
+              && FD_ISSET (my_inotify_fd, &read_fdset)
+              && gnupg_inotify_has_name (my_inotify_fd, GPG_AGENT_SOCK_NAME))
+            {
+              shutdown_pending = 1;
+              log_info ("socket file has been removed - shutting down\n");
+            }
+
           for (idx=0; idx < DIM(listentbl); idx++)
             {
               if (listentbl[idx].l_fd == GNUPG_INVALID_FD)
@@ -2620,6 +2936,8 @@ handle_connections (gnupg_fd_t listen_fd,
         }
     }
 
+  if (my_inotify_fd != -1)
+    close (my_inotify_fd);
   cleanup ();
   log_info (_("%s %s stopped\n"), strusage(11), strusage(13));
   npth_attr_destroy (&tattr);
@@ -2657,6 +2975,7 @@ check_own_socket_thread (void *arg)
       log_error ("can't allocate assuan context: %s\n", gpg_strerror (rc));
       goto leave;
     }
+  assuan_set_flag (ctx, ASSUAN_NO_LOGGING, 1);
 
   rc = assuan_socket_connect (ctx, sockname, (pid_t)(-1), 0);
   if (rc)
@@ -2693,11 +3012,8 @@ check_own_socket_thread (void *arg)
   if (rc)
     {
       /* We may not remove the socket as it is now in use by another
-         server.  Setting the name to empty does this.  */
-      if (socket_name)
-        *socket_name = 0;
-      if (socket_name_ssh)
-        *socket_name_ssh = 0;
+         server. */
+      inhibit_socket_removal = 1;
       shutdown_pending = 2;
       log_info ("this process is useless - shutting down\n");
     }
index ddfb44b..e80496e 100644 (file)
@@ -363,8 +363,8 @@ optional.  The oder of the "key" lists and the order of the "value"
 lists mut match, that is the first "key"-list is associated with the
 first "value" list in the encrypted_octet_string.
 
-The protection mode etc. is indentical to the protection mode as
-decribed for the private key format.
+The protection mode etc. is identical to the protection mode as
+described for the private key format.
 
 list of the secret key parameters.  The protected-at expression is
 optional; the isotimestamp is 15 bytes long (e.g. "19610711T172000").
index e9304fb..57bce7a 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -381,8 +381,7 @@ agent_handle_learn (ctrl_t ctrl, int send, void *assuan_context, int force)
 
   for (item = parm.info; item; item = item->next)
     {
-      unsigned char *pubkey, *shdkey;
-      size_t n;
+      unsigned char *pubkey;
 
       if (opt.verbose)
         log_info ("          id: %s    (grip=%s)\n", item->id, item->hexgrip);
@@ -410,33 +409,10 @@ agent_handle_learn (ctrl_t ctrl, int send, void *assuan_context, int force)
           goto leave;
         }
 
-      {
-        unsigned char *shadow_info = make_shadow_info (serialno, item->id);
-        if (!shadow_info)
-          {
-            rc = gpg_error (GPG_ERR_ENOMEM);
-            xfree (pubkey);
-            goto leave;
-          }
-        rc = agent_shadow_key (pubkey, shadow_info, &shdkey);
-        xfree (shadow_info);
-      }
+      rc = agent_write_shadow_key (grip, serialno, item->id, pubkey, force);
       xfree (pubkey);
       if (rc)
-        {
-          log_error ("shadowing the key failed: %s\n", gpg_strerror (rc));
-          goto leave;
-        }
-      n = gcry_sexp_canon_len (shdkey, 0, NULL, NULL);
-      assert (n);
-
-      rc = agent_write_private_key (grip, shdkey, n, force);
-      xfree (shdkey);
-      if (rc)
-        {
-          log_error ("error writing key: %s\n", gpg_strerror (rc));
-          goto leave;
-        }
+        goto leave;
 
       if (opt.verbose)
         log_info ("          id: %s - shadow key created\n", item->id);
index 8c09b8c..3d0f5aa 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 9011be2..b347608 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -189,25 +189,21 @@ do_encode_dsa (const byte *md, size_t mdlen, int pkalgo, gcry_sexp_t pkey,
       return gpg_error (GPG_ERR_INV_LENGTH);
     }
 
+  /* ECDSA 521 is special has it is larger than the largest hash
+     we have (SHA-512).  Thus we chnage the size for further
+     processing to 512.  */
+  if (pkalgo == GCRY_PK_ECDSA && qbits > 512)
+    qbits = 512;
+
   /* Check if we're too short.  Too long is safe as we'll
-   * automatically left-truncate.
-   *
-   * This check would require the use of SHA512 with ECDSA 512. I
-   * think this is overkill to fail in this case.  Therefore, relax
-   * the check, but only for ECDSA keys.  We may need to adjust it
-   * later for general case.  (Note that the check is really a bug for
-   * ECDSA 521 as the only hash that matches it is SHA 512, but 512 <
-   * 521 ).
-   */
-  if (mdlen < ((pkalgo==GCRY_PK_ECDSA && qbits > 521) ? 512 : qbits)/8)
+     automatically left-truncate.  */
+  if (mdlen < qbits/8)
     {
       log_error (_("a %zu bit hash is not valid for a %u bit %s key\n"),
                  mdlen*8,
                  gcry_pk_get_nbits (pkey),
                  gcry_pk_algo_name (pkalgo));
-      /* FIXME: we need to check the requirements for ECDSA.  */
-      if (mdlen < 20 || pkalgo == GCRY_PK_DSA)
-        return gpg_error (GPG_ERR_INV_LENGTH);
+      return gpg_error (GPG_ERR_INV_LENGTH);
     }
 
   /* Truncate.  */
index a104977..ae6f0ce 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index dbf7811..2312744 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -611,7 +611,7 @@ main (int argc, char **argv )
   else if (argc > 1)
     usage (1);
 
-  /* Allocate an CTRL object.  An empty object should sufficent.  */
+  /* Allocate an CTRL object.  An empty object should be sufficient.  */
   ctrl = xtrycalloc (1, sizeof *ctrl);
   if (!ctrl)
     {
index 68e4081..e205869 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 431eccf..1d3c8ec 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 9e48889..ff1a34e 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /* To avoid any problems with the gettext implementation (there used
index b8df3fd..9d33259 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index d907fe5..375bbdf 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 7a6cc1c..d1106b2 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef AGENT_W32MAIN_H
index 8bd839c..9610e4e 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 localedir = $(datadir)/locale
 
index 10cc203..92c6df8 100755 (executable)
@@ -311,7 +311,7 @@ if [ "$myhost" = "w32" ]; then
     $tsdir/configure --enable-maintainer-mode ${SILENT} \
              --prefix=${w32root}  \
              --host=${host} --build=${build} SYSROOT=${w32root} \
-             PKG_CONFIG_LIBDIR=${w32root} \
+             PKG_CONFIG_LIBDIR=${w32root}/lib/pkgconfig \
              ${configure_opts} ${extraoptions} "$@"
     rc=$?
     exit $rc
index e5ba3bb..bb13ae0 100644 (file)
@@ -23,7 +23,7 @@
  * 3. This notice may not be removed or altered from any source
  *    distribution.
  ************************************************************
- * 2005-11-14 wk  Applied license text to orginal exdll.h file from
+ * 2005-11-14 wk  Applied license text to original exdll.h file from
  *                NSIS 2.0.4 and did some formatting changes.
  */
 
index d2c93e7..012e4af 100644 (file)
@@ -23,7 +23,7 @@
  ************************************************************
  * The code for the splash screen has been taken from the Splash
  * plugin of the NSIS 2.04 distribution.  That code comes without
- * explicit copyright notices in tyhe source files or author names, it
+ * explicit copyright notices in the source files or author names, it
  * seems that it has been written by Justin Frankel; not sure about
  * the year, though. [wk 2005-11-28]
  *
@@ -70,12 +70,12 @@ dummy (HWND hwndParent, int string_size, char *variables,
   // do your stuff here
   {
     char buf[1024];
-    snprintf (buf, sizeof buf - 1, "$R0=%s\r\n$R1=%s\r\n",
+    snprintf (buf, sizeof buf, "$R0=%s\r\n$R1=%s\r\n",
               getuservariable(INST_R0),
               getuservariable(INST_R1));
     MessageBox (g_hwndParent,buf,0,MB_OK);
 
-    snprintf (buf, sizeof buf - 1,
+    snprintf (buf, sizeof buf,
              "autoclose    =%d\r\n"
              "all_user_var =%d\r\n"
              "exec_error   =%d\r\n"
@@ -278,7 +278,7 @@ void
 service_error (const char *str)
 {
   char buf[1024];
-  snprintf (buf, sizeof (buf) - 1, "error: %s: ec=%d\r\n", str,
+  snprintf (buf, sizeof (buf), "error: %s: ec=%d\r\n", str,
            GetLastError ());
   MessageBox(g_hwndParent, buf, 0, MB_OK);
 
@@ -575,7 +575,7 @@ service_stop (HWND hwndParent, int string_size, char *variables,
       if (GetTickCount () - start_time > timeout)
        {
          char buf[1024];
-         snprintf (buf, sizeof (buf) - 1,
+         snprintf (buf, sizeof (buf),
                    "time out waiting for service %s to stop\r\n",
                    service_name);
          MessageBox (g_hwndParent, buf, 0, MB_OK);
index 422fcf6..72e3fb4 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 ## Process this file with automake to produce Makefile.in
 
@@ -88,7 +88,6 @@ common_sources = \
        helpfile.c \
        mkdir_p.c mkdir_p.h \
        strlist.c strlist.h \
-       call-gpg.c call-gpg.h \
        exectool.c exectool.h \
        server-help.c server-help.h \
        name-value.c name-value.h \
@@ -114,11 +113,14 @@ endif
 without_npth_sources = \
         get-passphrase.c get-passphrase.h
 
+# Sources only useful with NPTH.
+with_npth_sources = \
+        call-gpg.c call-gpg.h
 
 libcommon_a_SOURCES = $(common_sources) $(without_npth_sources)
 libcommon_a_CFLAGS = $(AM_CFLAGS) $(LIBASSUAN_CFLAGS) -DWITHOUT_NPTH=1
 
-libcommonpth_a_SOURCES = $(common_sources)
+libcommonpth_a_SOURCES = $(common_sources) $(with_npth_sources)
 libcommonpth_a_CFLAGS = $(AM_CFLAGS) $(LIBASSUAN_CFLAGS) $(NPTH_CFLAGS)
 
 if !HAVE_W32CE_SYSTEM
@@ -175,7 +177,7 @@ endif
 t_extra_src = t-support.h
 
 t_common_cflags = $(KSBA_CFLAGS) $(LIBGCRYPT_CFLAGS) \
-                  $(LIBASSUAN_CFLAGS) $(GPG_ERROR_CFLAGS)
+                  $(LIBASSUAN_CFLAGS) $(GPG_ERROR_CFLAGS) $(INCICONV)
 t_common_ldadd = libcommon.a \
                  $(LIBGCRYPT_LIBS) $(LIBASSUAN_LIBS) $(GPG_ERROR_LIBS) \
                 $(LIBINTL) $(LIBICONV)
index 4317ba3..b324482 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 10b838f..81e881d 100644 (file)
@@ -25,7 +25,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_ARGPARSE_H
index c03e67b..2cab310 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 static int log_cats;
 #define TEST_LOG_CAT(x) (!! (log_cats & (1 << (x - 1))))
 
+/* The assuan log monitor used to temporary inhibit log messages from
+ * assuan.  */
+static int (*my_log_monitor) (assuan_context_t ctx,
+                              unsigned int cat,
+                              const char *msg);
+
 
 static int
 my_libassuan_log_handler (assuan_context_t ctx, void *hook,
@@ -76,8 +82,6 @@ my_libassuan_log_handler (assuan_context_t ctx, void *hook,
 {
   unsigned int dbgval;
 
-  (void)ctx;
-
   if (! TEST_LOG_CAT (cat))
     return 0;
 
@@ -85,6 +89,9 @@ my_libassuan_log_handler (assuan_context_t ctx, void *hook,
   if (!(dbgval & 1024))
     return 0; /* Assuan debugging is not enabled.  */
 
+  if (ctx && my_log_monitor && !my_log_monitor (ctx, cat, msg))
+    return 0; /* Temporary disabled.  */
+
   if (msg)
     log_string (GPGRT_LOG_DEBUG, msg);
 
@@ -95,7 +102,10 @@ my_libassuan_log_handler (assuan_context_t ctx, void *hook,
 /* Setup libassuan to use our own logging functions.  Should be used
    early at startup.  */
 void
-setup_libassuan_logging (unsigned int *debug_var_address)
+setup_libassuan_logging (unsigned int *debug_var_address,
+                         int (*log_monitor)(assuan_context_t ctx,
+                                            unsigned int cat,
+                                            const char *msg))
 {
   char *flagstr;
 
@@ -104,9 +114,11 @@ setup_libassuan_logging (unsigned int *debug_var_address)
     log_cats = atoi (flagstr);
   else /* Default to log the control channel.  */
     log_cats = (1 << (ASSUAN_LOG_CONTROL - 1));
+  my_log_monitor = log_monitor;
   assuan_set_log_cb (my_libassuan_log_handler, debug_var_address);
 }
 
+
 /* Change the Libassuan log categories to those given by NEWCATS.
    NEWCATS is 0 the default category of ASSUAN_LOG_CONTROL is
    selected.  Note, that setup_libassuan_logging overrides the values
@@ -255,48 +267,7 @@ static gpg_error_t
 lock_spawning (lock_spawn_t *lock, const char *homedir, const char *name,
                int verbose)
 {
-#ifdef HAVE_W32_SYSTEM
-  int waitrc;
-  int timeout = (!strcmp (name, "agent")
-                 ? SECS_TO_WAIT_FOR_AGENT
-                 : SECS_TO_WAIT_FOR_DIRMNGR);
-
-  (void)homedir; /* Not required. */
-
-  *lock = CreateMutexW
-    (NULL, FALSE,
-     !strcmp (name, "agent")?   L"spawn_"GNUPG_NAME"_agent_sentinel":
-     !strcmp (name, "dirmngr")? L"spawn_"GNUPG_NAME"_dirmngr_sentinel":
-     /*                    */   L"spawn_"GNUPG_NAME"_unknown_sentinel");
-  if (!*lock)
-    {
-      log_error ("failed to create the spawn_%s mutex: %s\n",
-                 name, w32_strerror (-1));
-      return gpg_error (GPG_ERR_GENERAL);
-    }
-
- retry:
-  waitrc = WaitForSingleObject (*lock, 1000);
-  if (waitrc == WAIT_OBJECT_0)
-    return 0;
-
-  if (waitrc == WAIT_TIMEOUT && timeout)
-    {
-      timeout--;
-      if (verbose)
-        log_info ("another process is trying to start the %s ... (%ds)\n",
-                  name, timeout);
-      goto retry;
-    }
-  if (waitrc == WAIT_TIMEOUT)
-    log_info ("error waiting for the spawn_%s mutex: timeout\n", name);
-  else
-    log_info ("error waiting for the spawn_%s mutex: (code=%d) %s\n",
-              name, waitrc, w32_strerror (-1));
-  return gpg_error (GPG_ERR_GENERAL);
-#else /*!HAVE_W32_SYSTEM*/
   char *fname;
-
   (void)verbose;
 
   *lock = NULL;
@@ -321,7 +292,6 @@ lock_spawning (lock_spawn_t *lock, const char *homedir, const char *name,
     return gpg_error_from_syserror ();
 
   return 0;
-#endif /*!HAVE_W32_SYSTEM*/
 }
 
 
@@ -331,15 +301,8 @@ unlock_spawning (lock_spawn_t *lock, const char *name)
 {
   if (*lock)
     {
-#ifdef HAVE_W32_SYSTEM
-      if (!ReleaseMutex (*lock))
-        log_error ("failed to release the spawn_%s mutex: %s\n",
-                   name, w32_strerror (-1));
-      CloseHandle (*lock);
-#else /*!HAVE_W32_SYSTEM*/
       (void)name;
       dotlock_destroy (*lock);
-#endif /*!HAVE_W32_SYSTEM*/
       *lock = NULL;
     }
 }
@@ -677,7 +640,7 @@ start_new_dirmngr (assuan_context_t *r_ctx,
    0 is returned and R_VERSION receives a malloced string with the
    version which must be freed by the caller.  On error NULL is stored
    at R_VERSION and an error code returned.  Mode is in general 0 but
-   certian values may be used to modify the used version command:
+   certain values may be used to modify the used version command:
 
       MODE == 0 = Use "GETINFO version"
       MODE == 2 - Use "SCD GETINFO version"
index 4eb1d92..f169d87 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_ASSHELP_H
 
 /*-- asshelp.c --*/
 
-void setup_libassuan_logging (unsigned int *debug_var_address);
+void setup_libassuan_logging (unsigned int *debug_var_address,
+                              int (*log_monitor)(assuan_context_t ctx,
+                                                 unsigned int cat,
+                                                 const char *msg));
 void set_libassuan_log_cats (unsigned int newcats);
 
 
index 0a70d2b..f85c1e6 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index efd5fcd..7d545a3 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index b324a28..4ef2645 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_AUDIT_H
index c84c35a..74cf933 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index af861fc..d633048 100644 (file)
@@ -17,7 +17,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -169,7 +169,7 @@ enc_start (struct b64state *state, FILE *fp, estream_t stream,
    the armor lines, with TITLE being an empty string, we don't write
    the header lines and furthermore even don't write any linefeeds.
    If TITLE starts with "PGP " the OpenPGP CRC checksum will be
-   written as well.  With TITLE beeing NULL, we merely don't write
+   written as well.  With TITLE being NULL, we merely don't write
    header but make sure that lines are not too long. Note, that we
    don't write any output unless at least one byte get written using
    b64enc_write. */
index 0bda1d3..d42325a 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 19993ef..fd7d2e6 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_CALL_GPG_H
index d3c2833..ff3eb40 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 241d42d..1ecf95b 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_CCPARRAY_H
index ab5ed34..b1928e6 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_COMMON_DEFS_H
index 30e5a60..6d03adc 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -176,7 +176,7 @@ bin2hexcolon (const void *buffer, size_t length, char *stringbuf)
    store that at BUFFER.  HEXSTRING is either delimited by end of
    string or a white space character.  The function makes sure that
    the resulting string in BUFFER is terminated by a Nul byte.  Note
-   that the retruned string may include embedded Nul bytes; the extra
+   that the returned string may include embedded Nul bytes; the extra
    Nul byte at the end is used to make sure tha the result can always
    be used as a C-string.
 
index 26005bf..7ebd523 100644 (file)
@@ -26,7 +26,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  *
  * ALTERNATIVELY, this file may be distributed under the terms of the
  * following license, in which case the provisions of this license are
index c317c37..78a7e73 100644 (file)
@@ -25,7 +25,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  *
  * ALTERNATIVELY, this file may be distributed under the terms of the
  * following license, in which case the provisions of this license are
index 6ba02ff..61930d2 100644 (file)
@@ -25,7 +25,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_DYNLOAD_H
index 943f20a..7237993 100644 (file)
@@ -25,7 +25,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -583,11 +583,123 @@ gnupg_spawn_process_fd (const char *pgmname, const char *argv[],
 }
 
 
+\f
+
+/* Waiting for child processes.
+
+   waitpid(2) may return information about terminated children that we
+   did not yet request, and there is no portable way to wait for a
+   specific set of children.
+
+   As a workaround, we store the results of children for later use.
+
+   XXX: This assumes that PIDs are not reused too quickly.  */
+
+struct terminated_child
+{
+  pid_t pid;
+  int exitcode;
+  struct terminated_child *next;
+};
+
+struct terminated_child *terminated_children;
+
+
+static gpg_error_t
+store_result (pid_t pid, int exitcode)
+{
+  struct terminated_child *c;
+
+  c = xtrymalloc (sizeof *c);
+  if (c == NULL)
+    return gpg_err_code_from_syserror ();
+
+  c->pid = pid;
+  c->exitcode = exitcode;
+  c->next = terminated_children;
+  terminated_children = c;
+
+  return 0;
+}
+
+
+static int
+get_result (pid_t pid, int *r_exitcode)
+{
+  struct terminated_child *c, **prevp;
+
+  for (prevp = &terminated_children, c = terminated_children;
+       c;
+       prevp = &c->next, c = c->next)
+    if (c->pid == pid)
+      {
+        *prevp = c->next;
+        *r_exitcode = c->exitcode;
+        xfree (c);
+        return 1;
+      }
+
+  return 0;
+}
+
+
 /* See exechelp.h for a description.  */
 gpg_error_t
 gnupg_wait_process (const char *pgmname, pid_t pid, int hang, int *r_exitcode)
 {
-  return gnupg_wait_processes (&pgmname, &pid, 1, hang, r_exitcode);
+  gpg_err_code_t ec;
+  int i, status;
+
+  if (r_exitcode)
+    *r_exitcode = -1;
+
+  if (pid == (pid_t)(-1))
+    return gpg_error (GPG_ERR_INV_VALUE);
+
+#ifdef USE_NPTH
+  i = npth_waitpid (pid, &status, hang? 0:WNOHANG);
+#else
+  while ((i=waitpid (pid, &status, hang? 0:WNOHANG)) == (pid_t)(-1)
+        && errno == EINTR);
+#endif
+
+  if (i == (pid_t)(-1))
+    {
+      ec = gpg_err_code_from_errno (errno);
+      log_error (_("waiting for process %d to terminate failed: %s\n"),
+                 (int)pid, strerror (errno));
+    }
+  else if (!i)
+    {
+      ec = GPG_ERR_TIMEOUT; /* Still running.  */
+    }
+  else if (WIFEXITED (status) && WEXITSTATUS (status) == 127)
+    {
+      log_error (_("error running '%s': probably not installed\n"), pgmname);
+      ec = GPG_ERR_CONFIGURATION;
+    }
+  else if (WIFEXITED (status) && WEXITSTATUS (status))
+    {
+      if (!r_exitcode)
+        log_error (_("error running '%s': exit status %d\n"), pgmname,
+                   WEXITSTATUS (status));
+      else
+        *r_exitcode = WEXITSTATUS (status);
+      ec = GPG_ERR_GENERAL;
+    }
+  else if (!WIFEXITED (status))
+    {
+      log_error (_("error running '%s': terminated\n"), pgmname);
+      ec = GPG_ERR_GENERAL;
+    }
+  else
+    {
+      if (r_exitcode)
+        *r_exitcode = 0;
+      ec = 0;
+    }
+
+  return gpg_err_make (GPG_ERR_SOURCE_DEFAULT, ec);
 }
 
 /* See exechelp.h for a description.  */
@@ -597,17 +709,29 @@ gnupg_wait_processes (const char **pgmnames, pid_t *pids, size_t count,
 {
   gpg_err_code_t ec = 0;
   size_t i, left;
+  int *dummy = NULL;
 
-  for (i = 0; i < count; i++)
+  if (r_exitcodes == NULL)
     {
-      if (r_exitcodes)
-        r_exitcodes[i] = -1;
+      dummy = r_exitcodes = xtrymalloc (sizeof *r_exitcodes * count);
+      if (dummy == NULL)
+        return gpg_err_code_from_syserror ();
+    }
+
+  for (i = 0, left = count; i < count; i++)
+    {
+      int status = -1;
 
       if (pids[i] == (pid_t)(-1))
         return my_error (GPG_ERR_INV_VALUE);
+
+      /* See if there was a previously stored result for this pid.  */
+      if (get_result (pids[i], &status))
+        left -= 1;
+
+      r_exitcodes[i] = status;
     }
 
-  left = count;
   while (left > 0)
     {
       pid_t pid;
@@ -639,43 +763,57 @@ gnupg_wait_processes (const char **pgmnames, pid_t *pids, size_t count,
               break;
 
           if (i == count)
-            /* No match, ignore this pid.  */
-            continue;
-
-          /* Process PIDS[i] died.  */
-          left -= 1;
-
-          if (WIFEXITED (status) && WEXITSTATUS (status) == 127)
             {
-              log_error (_("error running '%s': probably not installed\n"),
-                         pgmnames[i]);
-              ec = GPG_ERR_CONFIGURATION;
-            }
-          else if (WIFEXITED (status) && WEXITSTATUS (status))
-            {
-              if (!r_exitcodes)
-                log_error (_("error running '%s': exit status %d\n"),
-                           pgmnames[i], WEXITSTATUS (status));
-              else
-                r_exitcodes[i] = WEXITSTATUS (status);
-              ec = GPG_ERR_GENERAL;
+              /* No match, store this result.  */
+              ec = store_result (pid, status);
+              if (ec)
+                break;
+              continue;
             }
-          else if (!WIFEXITED (status))
+
+          /* Process PIDS[i] died.  */
+          if (r_exitcodes[i] != (pid_t) -1)
             {
-              log_error (_("error running '%s': terminated\n"), pgmnames[i]);
+              log_error ("PID %d was reused", pid);
               ec = GPG_ERR_GENERAL;
+              break;
             }
-          else
-            {
-              if (r_exitcodes)
-                r_exitcodes[i] = 0;
-            }
+
+          left -= 1;
+          r_exitcodes[i] = status;
         }
     }
 
+  if (ec == 0)
+    for (i = 0; i < count; i++)
+      {
+        if (WIFEXITED (r_exitcodes[i]) && WEXITSTATUS (r_exitcodes[i]) == 127)
+          {
+            log_error (_("error running '%s': probably not installed\n"),
+                       pgmnames[i]);
+            ec = GPG_ERR_CONFIGURATION;
+          }
+        else if (WIFEXITED (r_exitcodes[i]) && WEXITSTATUS (r_exitcodes[i]))
+          {
+            if (dummy)
+              log_error (_("error running '%s': exit status %d\n"),
+                         pgmnames[i], WEXITSTATUS (r_exitcodes[i]));
+            else
+              r_exitcodes[i] = WEXITSTATUS (r_exitcodes[i]);
+            ec = GPG_ERR_GENERAL;
+          }
+        else if (!WIFEXITED (r_exitcodes[i]))
+          {
+            log_error (_("error running '%s': terminated\n"), pgmnames[i]);
+            ec = GPG_ERR_GENERAL;
+          }
+      }
+
+  xfree (dummy);
   return gpg_err_make (GPG_ERR_SOURCE_DEFAULT, ec);
 }
 
+\f
 
 void
 gnupg_release_process (pid_t pid)
index b2d2457..a7a6db3 100644 (file)
@@ -25,7 +25,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 # define handle_to_pid(a) ((int)(a))
 
 
+/* Helper */
+static inline gpg_error_t
+my_error_from_syserror (void)
+{
+  return gpg_err_make (default_errsource, gpg_err_code_from_syserror ());
+}
+
+static inline gpg_error_t
+my_error (int errcode)
+{
+  return gpg_err_make (default_errsource, errcode);
+}
+
+
 /* Return the maximum number of currently allowed open file
    descriptors.  Only useful on POSIX systems but returns a value on
    other systems too.  */
@@ -219,7 +233,7 @@ build_w32_commandline (const char *pgmname, const char * const *argv,
 
   buf = p = xtrymalloc (n);
   if (!buf)
-    return gpg_error_from_syserror ();
+    return my_error_from_syserror ();
 
   p = build_w32_commandline_copy (p, pgmname);
   for (i=0; argv[i]; i++)
@@ -287,13 +301,14 @@ w32_open_null (int for_write)
 
 
 static gpg_error_t
-do_create_pipe (int filedes[2], int flags)
+create_pipe_and_estream (int filedes[2], int flags,
+                         estream_t *r_fp, int outbound, int nonblock)
 {
   gpg_error_t err = 0;
   HANDLE fds[2];
 
   filedes[0] = filedes[1] = -1;
-  err = gpg_error (GPG_ERR_GENERAL);
+  err = my_error (GPG_ERR_GENERAL);
   if (!create_inheritable_pipe (fds, flags))
     {
       filedes[0] = _open_osfhandle (handle_to_fd (fds[0]), O_RDONLY);
@@ -316,6 +331,25 @@ do_create_pipe (int filedes[2], int flags)
             err = 0;
         }
     }
+
+  if (! err && r_fp)
+    {
+      if (!outbound)
+        *r_fp = es_fdopen (filedes[0], nonblock? "r,nonblock" : "r");
+      else
+        *r_fp = es_fdopen (filedes[1], nonblock? "w,nonblock" : "w");
+      if (!*r_fp)
+        {
+          err = my_error_from_syserror ();
+          log_error (_("error creating a stream for a pipe: %s\n"),
+                     gpg_strerror (err));
+          close (filedes[0]);
+          close (filedes[1]);
+          filedes[0] = filedes[1] = -1;
+          return err;
+        }
+    }
+
   return err;
 }
 
@@ -325,10 +359,8 @@ do_create_pipe (int filedes[2], int flags)
 gpg_error_t
 gnupg_create_inbound_pipe (int filedes[2], estream_t *r_fp, int nonblock)
 {
-  if (r_fp)
-    return gpg_error (GPG_ERR_NOT_IMPLEMENTED);
-  else
-    return do_create_pipe (filedes, INHERIT_WRITE);
+  return create_pipe_and_estream (filedes, INHERIT_WRITE,
+                                  r_fp, 0, nonblock);
 }
 
 
@@ -338,10 +370,8 @@ gnupg_create_inbound_pipe (int filedes[2], estream_t *r_fp, int nonblock)
 gpg_error_t
 gnupg_create_outbound_pipe (int filedes[2], estream_t *r_fp, int nonblock)
 {
-  if (r_fp)
-    return gpg_error (GPG_ERR_NOT_IMPLEMENTED);
-  else
-    return do_create_pipe (filedes, INHERIT_READ);
+  return create_pipe_and_estream (filedes, INHERIT_READ,
+                                  r_fp, 1, nonblock);
 }
 
 
@@ -350,7 +380,8 @@ gnupg_create_outbound_pipe (int filedes[2], estream_t *r_fp, int nonblock)
 gpg_error_t
 gnupg_create_pipe (int filedes[2])
 {
-  return do_create_pipe (filedes, INHERIT_BOTH);
+  return create_pipe_and_estream (filedes, INHERIT_BOTH,
+                                  NULL, 0, 0);
 }
 
 
@@ -387,6 +418,7 @@ gnupg_spawn_process (const char *pgmname, const char *argv[],
   int i;
   es_syshd_t syshd;
   gpg_err_source_t errsource = default_errsource;
+  int nonblock = !!(flags & GNUPG_SPAWN_NONBLOCK);
 
   (void)except; /* Not yet used.  */
 
@@ -409,7 +441,7 @@ gnupg_spawn_process (const char *pgmname, const char *argv[],
 
       syshd.type = ES_SYSHD_HANDLE;
       syshd.u.handle = inpipe[1];
-      infp = es_sysopen (&syshd, "w");
+      infp = es_sysopen (&syshd, nonblock? "w,nonblock" : "w");
       if (!infp)
         {
           err = gpg_err_make (errsource, gpg_err_code_from_syserror ());
@@ -433,7 +465,7 @@ gnupg_spawn_process (const char *pgmname, const char *argv[],
 
       syshd.type = ES_SYSHD_HANDLE;
       syshd.u.handle = outpipe[0];
-      outfp = es_sysopen (&syshd, "r");
+      outfp = es_sysopen (&syshd, nonblock? "r,nonblock" : "r");
       if (!outfp)
         {
           err = gpg_err_make (errsource, gpg_err_code_from_syserror ());
@@ -463,7 +495,7 @@ gnupg_spawn_process (const char *pgmname, const char *argv[],
 
       syshd.type = ES_SYSHD_HANDLE;
       syshd.u.handle = errpipe[0];
-      errfp = es_sysopen (&syshd, "r");
+      errfp = es_sysopen (&syshd, nonblock? "r,nonblock" : "r");
       if (!errfp)
         {
           err = gpg_err_make (errsource, gpg_err_code_from_syserror ());
@@ -662,7 +694,7 @@ gnupg_spawn_process_fd (const char *pgmname, const char *argv[],
                       ))
     {
       log_error ("CreateProcess failed: %s\n", w32_strerror (-1));
-      err = gpg_error (GPG_ERR_GENERAL);
+      err = my_error (GPG_ERR_GENERAL);
     }
   else
     err = 0;
@@ -707,7 +739,7 @@ gnupg_wait_processes (const char **pgmnames, pid_t *pids, size_t count,
 
   procs = xtrycalloc (count, sizeof *procs);
   if (procs == NULL)
-    return gpg_error_from_syserror ();
+    return my_error_from_syserror ();
 
   for (i = 0; i < count; i++)
     {
@@ -715,7 +747,7 @@ gnupg_wait_processes (const char **pgmnames, pid_t *pids, size_t count,
         r_exitcodes[i] = -1;
 
       if (pids[i] == (pid_t)(-1))
-        return gpg_error (GPG_ERR_INV_VALUE);
+        return my_error (GPG_ERR_INV_VALUE);
 
       procs[i] = fd_to_handle (pids[i]);
     }
@@ -818,7 +850,7 @@ gnupg_spawn_process_detached (const char *pgmname, const char *argv[],
   (void)envp;
 
   if (access (pgmname, X_OK))
-    return gpg_error_from_syserror ();
+    return my_error_from_syserror ();
 
   /* Prepare security attributes.  */
   memset (&sec_attr, 0, sizeof sec_attr );
@@ -856,7 +888,7 @@ gnupg_spawn_process_detached (const char *pgmname, const char *argv[],
     {
       log_error ("CreateProcess(detached) failed: %s\n", w32_strerror (-1));
       xfree (cmdline);
-      return gpg_error (GPG_ERR_GENERAL);
+      return my_error (GPG_ERR_GENERAL);
     }
   xfree (cmdline);
   cmdline = NULL;
index 9e72cef..ec9f014 100644 (file)
@@ -25,7 +25,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index c43cd25..6f2653b 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_EXECHELP_H
index e46071c..4593abd 100644 (file)
@@ -25,7 +25,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -248,7 +248,14 @@ copy_buffer_do_copy (struct copy_buffer *c, estream_t source, estream_t sink)
     return 0;  /* Done copying.  */
 
 
+  nwritten = 0;
   err = sink? es_write (sink, c->writep, c->nread, &nwritten) : 0;
+
+  assert (nwritten <= c->nread);
+  c->writep += nwritten;
+  c->nread -= nwritten;
+  assert (c->writep - c->buffer <= sizeof c->buffer);
+
   if (err)
     {
       if (errno == EAGAIN)
@@ -257,11 +264,6 @@ copy_buffer_do_copy (struct copy_buffer *c, estream_t source, estream_t sink)
       return my_error_from_syserror ();
     }
 
-  assert (nwritten <= c->nread);
-  c->writep += nwritten;
-  c->nread -= nwritten;
-  assert (c->writep - c->buffer <= sizeof c->buffer);
-
   if (sink && es_fflush (sink) && errno != EAGAIN)
     err = my_error_from_syserror ();
 
index 94091fd..27bbfc9 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_EXECTOOL_H
index f9d7536..b945406 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_FWDDECL_H
index 8f3137b..c24b40e 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -136,7 +136,7 @@ default_inq_cb (void *opaque, const char *line)
    PROMPT is the prompt string to label the entry box, it may be NULL
    for a default one.  DESC_MSG is a longer description to be
    displayed above the entry box, if may be NULL for a default one.
-   If USE_SECMEM is true, the returned passphrase is retruned in
+   If USE_SECMEM is true, the returned passphrase is returned in
    secure memory.  The length of all these strings is limited; they
    need to fit in their encoded form into a standard Assuan line (i.e
    less then about 950 characters).  All strings shall be UTF-8.  */
@@ -181,7 +181,7 @@ gnupg_get_passphrase (const char *cache_id,
     if (!(arg4 = percent_plus_escape (desc_msg)))
       goto no_mem;
 
-  snprintf (line, DIM(line)-1,
+  snprintf (line, DIM(line),
             "GET_PASSPHRASE --data %s--repeat=%d -- %s %s %s %s",
             check_quality? "--check ":"",
             repeat,
@@ -189,7 +189,6 @@ gnupg_get_passphrase (const char *cache_id,
             arg2? arg2:"X",
             arg3? arg3:"X",
             arg4? arg4:"X");
-  line[DIM(line)-1] = 0;
   xfree (arg2);
   xfree (arg3);
   xfree (arg4);
@@ -203,7 +202,7 @@ gnupg_get_passphrase (const char *cache_id,
                          default_inq_cb, NULL, NULL, NULL);
 
   /* Older Pinentries return the old assuan error code for canceled
-     which gets translated bt libassuan to GPG_ERR_ASS_CANCELED and
+     which gets translated by libassuan to GPG_ERR_ASS_CANCELED and
      not to the code for a user cancel.  Fix this here. */
   if (err && gpg_err_source (err)
       && gpg_err_code (err) == GPG_ERR_ASS_CANCELED)
@@ -250,8 +249,7 @@ gnupg_clear_passphrase (const char *cache_id)
   if (err)
     return err;
 
-  snprintf (line, DIM(line)-1, "CLEAR_PASSPHRASE %s", cache_id);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "CLEAR_PASSPHRASE %s", cache_id);
   return assuan_transact (agent_ctx, line, NULL, NULL,
                           default_inq_cb, NULL, NULL, NULL);
 }
index 7e5cac0..afdbe78 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_GET_PASSPHRASE_H
index dd9c196..e5da4fb 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -60,6 +60,9 @@ time_t
 gnupg_get_time ()
 {
   time_t current = time (NULL);
+  if (current == (time_t)(-1))
+    log_fatal ("time() failed\n");
+
   if (timemode == NORMAL)
     return current;
   else if (timemode == FROZEN)
@@ -99,22 +102,16 @@ void
 gnupg_get_isotime (gnupg_isotime_t timebuf)
 {
   time_t atime = gnupg_get_time ();
+  struct tm *tp;
+  struct tm tmbuf;
 
-  if (atime == (time_t)(-1))
+  tp = gnupg_gmtime (&atime, &tmbuf);
+  if (!tp)
     *timebuf = 0;
   else
-    {
-      struct tm *tp;
-      struct tm tmbuf;
-
-      tp = gnupg_gmtime (&atime, &tmbuf);
-      if (!tp)
-        *timebuf = 0;
-      else
-        snprintf (timebuf, 16, "%04d%02d%02dT%02d%02d%02d",
-                  1900 + tp->tm_year, tp->tm_mon+1, tp->tm_mday,
-                  tp->tm_hour, tp->tm_min, tp->tm_sec);
-    }
+    snprintf (timebuf, 16, "%04d%02d%02dT%02d%02d%02d",
+              1900 + tp->tm_year, tp->tm_mon+1, tp->tm_mday,
+              tp->tm_hour, tp->tm_min, tp->tm_sec);
 }
 
 
@@ -164,9 +161,6 @@ u32
 make_timestamp (void)
 {
   time_t t = gnupg_get_time ();
-
-  if (t == (time_t)-1)
-    log_fatal ("gnupg_get_time() failed\n");
   return (u32)t;
 }
 
@@ -746,10 +740,10 @@ rfctimestamp (u32 stamp)
   if (!tp)
     return NULL;
   return xtryasprintf ("%.3s, %02d %.3s %04d %02d:%02d:%02d +0000",
-                       ("SunMonTueWedThuFriSat" + (tp->tm_wday%7)*3),
+                       &"SunMonTueWedThuFriSat"[(tp->tm_wday%7)*3],
                        tp->tm_mday,
-                       ("JanFebMarAprMayJunJulAugSepOctNovDec"
-                        + (tp->tm_mon%12)*3),
+                       &"JanFebMarAprMayJunJulAugSepOctNovDec"
+                       [(tp->tm_mon%12)*3],
                        tp->tm_year + 1900,
                        tp->tm_hour,
                        tp->tm_min,
index 08cb3b1..73f1886 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_GETTIME_H
index e2fdb9a..680d999 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /* This module may by used by applications to initializes readline
index 0fb4e02..7cb01a4 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 574561a..59b7135 100644 (file)
@@ -25,7 +25,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -953,6 +953,13 @@ gnupg_module_name (int which)
       X(bindir, GPG_NAME);
 #endif
 
+    case GNUPG_MODULE_NAME_GPGV:
+#if USE_GPG2_HACK
+      X(bindir, GPG_NAME "v2");
+#else
+      X(bindir, GPG_NAME "v");
+#endif
+
     case GNUPG_MODULE_NAME_CONNECT_AGENT:
       X(bindir, "gpg-connect-agent");
 
index be5e520..9eeaf24 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_HOST2NET_H
index 413fa9a..b5a2864 100644 (file)
@@ -23,7 +23,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 591c854..86b71e5 100644 (file)
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 
-#ifdef WITHOUT_NPTH /* Give the Makefile a chance to build without Pth.  */
-#undef HAVE_NPTH
-#undef USE_NPTH
-#endif
-
 #ifdef HAVE_W32_SYSTEM
 # ifdef HAVE_WINSOCK2_H
 #  include <winsock2.h>
 # endif
 # include <windows.h>
 #endif
-#ifdef HAVE_NPTH
-# include <npth.h>
-#endif
 #ifdef HAVE_W32CE_SYSTEM
 # include <assuan.h> /* For _assuan_w32ce_finish_pipe. */
 #endif
@@ -197,9 +189,6 @@ _init_common_subsystems (gpg_err_source_t errsource, int *argcp, char ***argvp)
   /* Initialize the Estream library. */
   gpgrt_init ();
   gpgrt_set_alloc_func (gcry_realloc);
-#ifdef USE_NPTH
-  gpgrt_set_syscall_clamp (npth_unprotect, npth_protect);
-#endif
 
   /* Special hack for Windows CE: We extract some options from arg
      to setup the standard handles.  */
@@ -222,6 +211,9 @@ _init_common_subsystems (gpg_err_source_t errsource, int *argcp, char ***argvp)
 
   /* --version et al shall use estream as well.  */
   argparse_register_outfnc (writestring_via_estream);
+
+  /* Logging shall use the standard socket directory as fallback.  */
+  log_set_socket_dir_cb (gnupg_socketdir);
 }
 
 
index 530a479..28462a7 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_INIT_H
index 06d0b61..ed90bd7 100644 (file)
@@ -26,7 +26,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index a8ca4dc..4fa5660 100644 (file)
@@ -25,7 +25,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_IOBUF_H
index 200378d..850798e 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_KEYSERVER_H
index 876fdb0..2650ea7 100644 (file)
@@ -23,7 +23,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public
- * License along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * License along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 /* Written by Ulrich Drepper <drepper@gnu.org>, 1995.  */
 /* Win32 code written by Tor Lillqvist <tml@iki.fi>.  */
index c70ba35..ca1341c 100644 (file)
@@ -26,7 +26,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  */
 
 
@@ -104,6 +104,7 @@ static int with_pid;
 static int no_registry;
 #endif
 static int (*get_pid_suffix_cb)(unsigned long *r_value);
+static const char * (*socket_dir_cb)(void);
 static int running_detached;
 static int force_prefixes;
 
@@ -219,6 +220,7 @@ fun_writer (void *cookie_arg, const void *buffer, size_t size)
 #ifndef HAVE_W32_SYSTEM
       struct sockaddr_un srvr_addr_un;
 #endif
+      const char *name_for_err = "";
       size_t addrlen;
       struct sockaddr *srvr_addr = NULL;
       unsigned short port = 0;
@@ -237,23 +239,41 @@ fun_writer (void *cookie_arg, const void *buffer, size_t size)
           pf = PF_INET;
         }
 #ifndef HAVE_W32_SYSTEM
-      else if (!strncmp (name, "socket://", 9) && name[9])
+      else if (!strncmp (name, "socket://", 9))
         name += 9;
 #endif
 
       if (af == AF_LOCAL)
         {
-#ifdef HAVE_W32_SYSTEM
           addrlen = 0;
-#else
+#ifndef HAVE_W32_SYSTEM
           memset (&srvr_addr, 0, sizeof srvr_addr);
           srvr_addr_un.sun_family = af;
-          strncpy (srvr_addr_un.sun_path,
-                   name, sizeof (srvr_addr_un.sun_path)-1);
-          srvr_addr_un.sun_path[sizeof (srvr_addr_un.sun_path)-1] = 0;
-          srvr_addr = (struct sockaddr *)&srvr_addr_un;
-          addrlen = SUN_LEN (&srvr_addr_un);
-#endif
+          if (!*name && (name = socket_dir_cb ()) && *name)
+            {
+              if (strlen (name) + 7 < sizeof (srvr_addr_un.sun_path)-1)
+                {
+                  strncpy (srvr_addr_un.sun_path,
+                           name, sizeof (srvr_addr_un.sun_path)-1);
+                  strcat (srvr_addr_un.sun_path, "/S.log");
+                  srvr_addr_un.sun_path[sizeof (srvr_addr_un.sun_path)-1] = 0;
+                  srvr_addr = (struct sockaddr *)&srvr_addr_un;
+                  addrlen = SUN_LEN (&srvr_addr_un);
+                  name_for_err = srvr_addr_un.sun_path;
+                }
+            }
+          else
+            {
+              if (*name && strlen (name) < sizeof (srvr_addr_un.sun_path)-1)
+                {
+                  strncpy (srvr_addr_un.sun_path,
+                           name, sizeof (srvr_addr_un.sun_path)-1);
+                  srvr_addr_un.sun_path[sizeof (srvr_addr_un.sun_path)-1] = 0;
+                  srvr_addr = (struct sockaddr *)&srvr_addr_un;
+                  addrlen = SUN_LEN (&srvr_addr_un);
+                }
+            }
+#endif /*!HAVE_W32SYSTEM*/
         }
       else
         {
@@ -352,8 +372,8 @@ fun_writer (void *cookie_arg, const void *buffer, size_t size)
             {
               if (!cookie->quiet && !running_detached
                   && isatty (es_fileno (es_stderr)))
-                es_fprintf (es_stderr, "can't connect to '%s': %s\n",
-                            cookie->name, strerror(errno));
+                es_fprintf (es_stderr, "can't connect to '%s%s': %s\n",
+                            cookie->name, name_for_err, strerror(errno));
               sock_close (cookie->fd);
               cookie->fd = -1;
             }
@@ -462,7 +482,7 @@ set_file_fd (const char *name, int fd)
   if (name && !strncmp (name, "tcp://", 6) && name[6])
     want_socket = 1;
 #ifndef HAVE_W32_SYSTEM
-  else if (name && !strncmp (name, "socket://", 9) && name[9])
+  else if (name && !strncmp (name, "socket://", 9))
     want_socket = 2;
 #endif /*HAVE_W32_SYSTEM*/
 #ifdef HAVE_W32CE_SYSTEM
@@ -554,6 +574,15 @@ log_set_fd (int fd)
 }
 
 
+/* Set a function to retrieve the directory name of a socket if
+ * only "socket://" has been given to log_set_file.  */
+void
+log_set_socket_dir_cb (const char *(*fnc)(void))
+{
+  socket_dir_cb = fnc;
+}
+
+
 void
 log_set_pid_suffix_cb (int (*cb)(unsigned long *r_value))
 {
index 2f0b504..64b999d 100644 (file)
@@ -26,7 +26,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_LOGGING_H
@@ -42,6 +42,7 @@ int  log_get_errorcount (int clear);
 void log_inc_errorcount (void);
 void log_set_file( const char *name );
 void log_set_fd (int fd);
+void log_set_socket_dir_cb (const char *(*fnc)(void));
 void log_set_pid_suffix_cb (int (*cb)(unsigned long *r_value));
 void log_set_prefix (const char *text, unsigned int flags);
 const char *log_get_prefix (unsigned int *flags);
index 5c5bec9..614fddd 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 2029324..c1f05b8 100644 (file)
@@ -5,27 +5,21 @@
  * This file is part of GnuPG.
  *
  * This file is free software; you can redistribute it and/or modify
- * it under the terms of either
- *
- *   - the GNU Lesser General Public License as published by the Free
- *     Software Foundation; either version 3 of the License, or (at
- *     your option) any later version.
- *
- * or
- *
- *   - 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.
- *
- * or both in parallel, as here.
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
  *
  * This file 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.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
+ */
+
+/* NB: GPGME uses the same code to reflect our idea on how to extract
+ * a mail address from a user id.
  */
 
 #include <config.h>
index 4dd48ec..bce003f 100644 (file)
@@ -4,27 +4,17 @@
  * This file is part of GnuPG.
  *
  * This file is free software; you can redistribute it and/or modify
- * it under the terms of either
- *
- *   - the GNU Lesser General Public License as published by the Free
- *     Software Foundation; either version 3 of the License, or (at
- *     your option) any later version.
- *
- * or
- *
- *   - 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.
- *
- * or both in parallel, as here.
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
  *
  * This file 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.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 #ifndef GNUPG_COMMON_MBOX_UTIL_H
 #define GNUPG_COMMON_MBOX_UTIL_H
index fde24f6..4c1a844 100644 (file)
@@ -25,7 +25,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index a1610b6..1497bcd 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_MEMBUF_H
index 1327649..9924943 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 5662191..fd8f675 100644 (file)
@@ -25,7 +25,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 3911202..1ad146e 100644 (file)
@@ -26,7 +26,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_MISCHELP_H
index 37b44ec..c26cfee 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 28f38d1..1e939b3 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef MKDIR_P_H
index 0b32a44..1018668 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /*
@@ -665,7 +665,7 @@ do_nvc_parse (nvc_t *result, int *errlinep, estream_t stream,
 
   if (errlinep)
     *errlinep = 0;
-  while ((len = es_read_line (stream, &buf, &buf_len, NULL)))
+  while ((len = es_read_line (stream, &buf, &buf_len, NULL)) > 0)
     {
       char *p;
       if (errlinep)
@@ -735,6 +735,11 @@ do_nvc_parse (nvc_t *result, int *errlinep, estream_t stream,
          goto leave;
        }
     }
+  if (len < 0)
+    {
+      err = gpg_error_from_syserror ();
+      goto leave;
+    }
 
   /* Add the final entry.  */
   if (raw_value)
index f5f17e6..db9270a 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_NAME_VALUE_H
index 7c93547..270bdf1 100644 (file)
@@ -25,7 +25,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -68,7 +68,7 @@ static const char oid_ed25519[] =
   { 0x09, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xda, 0x47, 0x0f, 0x01 };
 
 /* The OID for Curve25519 in OpenPGP format.  */
-static const char oid_crv25519[] =
+static const char oid_cv25519[] =
   { 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x97, 0x55, 0x01, 0x05, 0x01 };
 
 
@@ -298,7 +298,7 @@ openpgp_oid_is_ed25519 (gcry_mpi_t a)
 
 
 int
-openpgp_oid_is_crv25519 (gcry_mpi_t a)
+openpgp_oid_is_cv25519 (gcry_mpi_t a)
 {
   const unsigned char *buf;
   unsigned int nbits;
@@ -309,8 +309,8 @@ openpgp_oid_is_crv25519 (gcry_mpi_t a)
 
   buf = gcry_mpi_get_opaque (a, &nbits);
   n = (nbits+7)/8;
-  return (n == DIM (oid_crv25519)
-          && !memcmp (buf, oid_crv25519, DIM (oid_crv25519)));
+  return (n == DIM (oid_cv25519)
+          && !memcmp (buf, oid_cv25519, DIM (oid_cv25519)));
 }
 
 
@@ -424,8 +424,8 @@ openpgp_is_curve_supported (const char *name, int *r_algo)
     *r_algo = 0;
   for (idx = 0; idx < DIM (oidtable) && oidtable[idx].name; idx++)
     {
-      if (!strcmp (name, (oidtable[idx].alias? oidtable[idx].alias
-                          /**/               : oidtable[idx].name))
+      if ((!strcmp (name, oidtable[idx].name)
+           || (oidtable[idx].alias && !strcmp (name, (oidtable[idx].alias))))
           && curve_supported_p (oidtable[idx].name))
         {
           if (r_algo)
index 2c0ace2..3d5d306 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_OPENPGPDEFS_H
index 0cab99a..569c5fd 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 5dc685f..66c1c5e 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -48,7 +48,11 @@ typedef enum
     SELECT_LE,
     SELECT_GE,
     SELECT_LT,
-    SELECT_GT
+    SELECT_GT,
+    SELECT_STRLE, /* String is less or equal.  */
+    SELECT_STRGE,
+    SELECT_STRLT,
+    SELECT_STRGT
   } select_op_t;
 
 
@@ -347,6 +351,26 @@ recsel_parse_expr (recsel_expr_t *selector, const char *expression)
       se->op = SELECT_ISTRUE;
       s += 2;
     }
+  else if (!strncmp (s, "-le", 3))
+    {
+      se->op = SELECT_STRLE;
+      s += 3;
+    }
+  else if (!strncmp (s, "-ge", 3))
+    {
+      se->op = SELECT_STRGE;
+      s += 3;
+    }
+  else if (!strncmp (s, "-lt", 3))
+    {
+      se->op = SELECT_STRLT;
+      s += 3;
+    }
+  else if (!strncmp (s, "-gt", 3))
+    {
+      se->op = SELECT_STRGT;
+      s += 3;
+    }
   else
     {
       log_error ("invalid operator in expression\n");
@@ -467,7 +491,12 @@ recsel_dump (recsel_expr_t selector)
                  se->op == SELECT_LT?      "< ":
                  se->op == SELECT_LE?      "<=":
                  se->op == SELECT_GT?      "> ":
-                 se->op == SELECT_GE?      ">=":"[oops]",
+                 se->op == SELECT_GE?      ">=":
+                 se->op == SELECT_STRLT?   "-lt":
+                 se->op == SELECT_STRLE?   "-le":
+                 se->op == SELECT_STRGT?   "-gt":
+                 se->op == SELECT_STRGE?   "-ge":
+                 /**/                      "[oops]",
                  se->value);
     }
   log_debug ("--- End selectors ---\n");
@@ -541,6 +570,30 @@ recsel_select (recsel_expr_t selector,
             case SELECT_LE:
               result = (numvalue <= se->numvalue);
               break;
+            case SELECT_STRGT:
+              if (se->xcase)
+                result = strcmp (value, se->value) > 0;
+              else
+                result = strcasecmp (value, se->value) > 0;
+              break;
+            case SELECT_STRGE:
+              if (se->xcase)
+                result = strcmp (value, se->value) >= 0;
+              else
+                result = strcasecmp (value, se->value) >= 0;
+              break;
+            case SELECT_STRLT:
+              if (se->xcase)
+                result = strcmp (value, se->value) < 0;
+              else
+                result = strcasecmp (value, se->value) < 0;
+              break;
+            case SELECT_STRLE:
+              if (se->xcase)
+                result = strcmp (value, se->value) <= 0;
+              else
+                result = strcasecmp (value, se->value) <= 0;
+              break;
             }
         }
 
@@ -558,7 +611,7 @@ recsel_select (recsel_expr_t selector,
       else
         {
           /* This expression evaluated to false and thus the
-           * conjuction evaluates to false.  We skip over the
+           * conjunction evaluates to false.  We skip over the
            * remaining expressions of this conjunction and continue
            * with the next disjunction if any.  */
           do
index be67afc..0e0a792 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 #ifndef GNUPG_COMMON_RECSEL_H
 #define GNUPG_COMMON_RECSEL_H
index 2a59dc6..53a888a 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 6df9e2c..9e3d7ad 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_SERVER_HELP_H
index 8c3dbb5..1bc3a2b 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -372,7 +372,7 @@ session_env_getenv_or_default (session_env_t se, const char *name,
 
 /* List the entire environment stored in SE.  The caller initially
    needs to set the value of ITERATOR to 0 and then call this function
-   until it returns NULL.  The value is retruned at R_VALUE.  If
+   until it returns NULL.  The value is returned at R_VALUE.  If
    R_DEFAULT is not NULL, the default flag is stored on return.  The
    default flag indicates that the value has been taken from the
    process' environment.  The caller must not change the returned
index 1173ed5..8709e22 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_SESSION_ENV_H
index 442d106..9b14f77 100644 (file)
@@ -22,7 +22,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef SEXP_PARSE_H
index 5063546..0c5c730 100644 (file)
@@ -25,7 +25,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /* This file implements a few utility functions useful when working
index 604b7e9..1594f66 100644 (file)
@@ -22,7 +22,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_SHAREDDEFS_H
index b202f0f..ccfa8e6 100644 (file)
@@ -25,7 +25,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -134,7 +134,7 @@ got_fatal_signal (int sig)
             {
               if (value >= i || ((any || i==1) && !(value/i)))
                 {
-                  (void)write (2, "0123456789"+(value/i), 1);
+                  (void)write (2, &"0123456789"[value/i], 1);
                   if ((value/i))
                     any = 1;
                   value %= i;
index 240451b..c74317f 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /* This module is intended as a simple client implementation to
@@ -101,10 +101,7 @@ static int
 agent_send_option (assuan_context_t ctx, const char *name, const char *value)
 {
   int err;
-  char buf[200];
-  int nread;
   char *line;
-  int i;
 
   line = spwq_malloc (7 + strlen (name) + 1 + strlen (value) + 2);
   if (!line)
@@ -241,12 +238,7 @@ static int
 agent_open (assuan_context_t *ctx)
 {
   int rc;
-  int fd;
-  char *infostr, *p;
-  struct sockaddr_un client_addr;
-  size_t len;
-  char line[200];
-  int nread;
+  char *infostr;
 
   infostr = default_gpg_agent_info;
   if ( !infostr || !*infostr )
@@ -285,6 +277,7 @@ agent_open (assuan_context_t *ctx)
  errout:
   assuan_release (*ctx);
   *ctx = NULL;
+  return rc;
 }
 
 
@@ -373,13 +366,14 @@ simple_pwquery (const char *cacheid,
                 int opt_check,
                 int *errorcode)
 {
+  int rc;
   assuan_context_t ctx;
   membuf_t data;
-  int nread;
   char *result = NULL;
   char *pw = NULL;
   char *p;
-  int rc, i;
+  size_t n;
+
 
   rc = agent_open (&ctx);
   if (rc)
@@ -437,9 +431,6 @@ simple_pwquery (const char *cacheid,
 
     if (rc)
       {
-        void *p;
-        size_t n;
-
         p = get_membuf (&data, &n);
         if (p)
           wipememory (p, n);
@@ -490,8 +481,6 @@ int
 simple_query (const char *query)
 {
   assuan_context_t ctx;
-  char response[500];
-  int have = 0;
   int rc;
 
   rc = agent_open (&ctx);
index 2b87b11..f98a396 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef SIMPLE_PWQUERY_H
index 58586a1..60aa07b 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index dcf0787..36d38a3 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_SSH_UTILS_H
index a16e7b4..50afce4 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 079a04a..3de4aa5 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_STATUS_H
index b5d9f4c..dea2212 100644 (file)
@@ -28,7 +28,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -49,6 +49,7 @@
 # include <windows.h>
 #endif
 #include <assert.h>
+#include <limits.h>
 
 #include "util.h"
 #include "common-defs.h"
@@ -1356,9 +1357,9 @@ parse_version_number (const char *s, int *number)
 
 /* This function breaks up the complete string-representation of the
    version number S, which is of the following struture: <major
-   number>.<minor number>.<micro number><patch level>.  The major,
-   minor and micro number components will be stored in *MAJOR, *MINOR
-   and *MICRO.
+   number>.<minor number>[.<micro number>]<patch level>.  The major,
+   minor, and micro number components will be stored in *MAJOR, *MINOR
+   and *MICRO.  If MICRO is not given 0 is used instead.
 
    On success, the last component, the patch level, will be returned;
    in failure, NULL will be returned.  */
@@ -1385,32 +1386,50 @@ parse_version_string (const char *s, int *major, int *minor, int *micro)
 }
 
 
-/* Check that the version string MY_VERSION is greater or equal than
-   REQ_VERSION.  Returns true if the condition is satisfied or false
-   if not.  This works with 3 part and two part version strings; for a
-   two part version string the micor part is assumed to be 0.  */
+/* Compare the version string MY_VERSION to the version string
+ * REQ_VERSION.  Returns -1, 0, or 1 if MY_VERSION is found,
+ * respectively, to be less than, to match, or be greater than
+ * REQ_VERSION.  This function works for three and two part version
+ * strings; for a two part version string the micro part is assumed to
+ * be 0.  Patch levels are compared as strings.  If a version number
+ * is invalid INT_MIN is returned.  If REQ_VERSION is given as NULL
+ * the function returns 0 if MY_VERSION is parsable version string. */
 int
 compare_version_strings (const char *my_version, const char *req_version)
 {
   int my_major, my_minor, my_micro;
   int rq_major, rq_minor, rq_micro;
-
-  if (!my_version || !req_version)
-    return 0;
-
-  if (!parse_version_string (my_version, &my_major, &my_minor, &my_micro))
-    return 0;
-  if (!parse_version_string(req_version, &rq_major, &rq_minor, &rq_micro))
-    return 0;
-
-  if (my_major > rq_major
-      || (my_major == rq_major && my_minor > rq_minor)
-      || (my_major == rq_major && my_minor == rq_minor
-         && my_micro >= rq_micro))
+  const char *my_patch, *rq_patch;
+  int result;
+
+  if (!my_version)
+    return INT_MIN;
+
+  my_patch = parse_version_string (my_version, &my_major, &my_minor, &my_micro);
+  if (!my_patch)
+    return INT_MIN;
+  if (!req_version)
+    return 0; /* MY_VERSION can be parsed.  */
+  rq_patch = parse_version_string (req_version, &rq_major, &rq_minor,&rq_micro);
+  if (!rq_patch)
+    return INT_MIN;
+
+  if (my_major == rq_major)
     {
-      return 1;
+      if (my_minor == rq_minor)
+        {
+          if (my_micro == rq_micro)
+            result = strcmp (my_patch, rq_patch);
+          else
+            result = my_micro - rq_micro;
+        }
+      else
+        result = my_minor - rq_minor;
     }
-  return 0;
+  else
+    result = my_major - rq_major;
+
+  return !result? 0 : result < 0 ? -1 : 1;
 }
 
 
index 79d2284..d0156d5 100644 (file)
@@ -27,7 +27,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_STRINGHELP_H
index d4f8644..02881cd 100644 (file)
@@ -26,7 +26,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 45f5543..d74bc4d 100644 (file)
@@ -25,7 +25,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_STRLIST_H
index 0f7b7f5..c7df872 100644 (file)
@@ -26,7 +26,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -49,8 +49,8 @@
 # include <asm/sysinfo.h>
 # include <asm/unistd.h>
 #endif
+#include <time.h>
 #ifdef HAVE_SETRLIMIT
-# include <time.h>
 # include <sys/time.h>
 # include <sys/resource.h>
 #endif
 #  include <winsock2.h>
 # endif
 # include <windows.h>
+#else /*!HAVE_W32_SYSTEM*/
+# include <sys/socket.h>
+# include <sys/un.h>
 #endif
+#ifdef HAVE_INOTIFY_INIT
+# include <sys/inotify.h>
+#endif /*HAVE_INOTIFY_INIT*/
 #ifdef HAVE_NPTH
 # include <npth.h>
 #endif
 #define tohex(n) ((n) < 10 ? ((n) + '0') : (((n) - 10) + 'A'))
 
 
+static GPGRT_INLINE gpg_error_t
+my_error_from_syserror (void)
+{
+  return gpg_err_make (default_errsource, gpg_err_code_from_syserror ());
+}
+
+static GPGRT_INLINE gpg_error_t
+my_error (int e)
+{
+  return gpg_err_make (default_errsource, (e));
+}
+
+
+
 #if defined(__linux__) && defined(__alpha__) && __GLIBC__ < 2
 #warning using trap_unaligned
 static int
@@ -287,6 +307,50 @@ gnupg_sleep (unsigned int seconds)
 }
 
 
+/* Wrapper around the platforms usleep function.  This one won't wake
+ * up before the sleep time has really elapsed.  When build with nPth
+ * it merely calls npth_usleep and thus suspends only the current
+ * thread. */
+void
+gnupg_usleep (unsigned int usecs)
+{
+#if defined(USE_NPTH)
+
+  npth_usleep (usecs);
+
+#elif defined(HAVE_W32_SYSTEM)
+
+  Sleep ((usecs + 999) / 1000);
+
+#elif defined(HAVE_NANOSLEEP)
+
+  if (usecs)
+    {
+      struct timespec req;
+      struct timespec rem;
+
+      req.tv_sec = 0;
+      req.tv_nsec = usecs * 1000;
+
+      while (nanosleep (&req, &rem) < 0 && errno == EINTR)
+        req = rem;
+    }
+
+#else /*Standard Unix*/
+
+  if (usecs)
+    {
+      struct timeval tv;
+
+      tv.tv_sec  = usecs / 1000000;
+      tv.tv_usec = usecs % 1000000;
+      select (0, NULL, NULL, NULL, &tv);
+    }
+
+#endif
+}
+
+
 /* This function is a NOP for POSIX systems but required under Windows
    as the file handles as returned by OS calls (like CreateFile) are
    different from the libc file descriptors (like open). This function
@@ -554,6 +618,76 @@ gnupg_remove (const char *fname)
 }
 
 
+/* Wrapper for rename(2) to handle Windows peculiarities.  If
+ * BLOCK_SIGNALS is not NULL and points to a variable set to true, all
+ * signals will be blocked by calling gnupg_block_all_signals; the
+ * caller needs to call gnupg_unblock_all_signals if that variable is
+ * still set to true on return. */
+gpg_error_t
+gnupg_rename_file (const char *oldname, const char *newname, int *block_signals)
+{
+  gpg_error_t err = 0;
+
+  if (block_signals && *block_signals)
+    gnupg_block_all_signals ();
+
+#ifdef HAVE_DOSISH_SYSTEM
+  {
+    int wtime = 0;
+
+    gnupg_remove (newname);
+  again:
+    if (rename (oldname, newname))
+      {
+        if (GetLastError () == ERROR_SHARING_VIOLATION)
+          {
+            /* Another process has the file open.  We do not use a
+             * lock for read but instead we wait until the other
+             * process has closed the file.  This may take long but
+             * that would also be the case with a dotlock approach for
+             * read and write.  Note that we don't need this on Unix
+             * due to the inode concept.
+             *
+             * So let's wait until the rename has worked.  The retry
+             * intervals are 50, 100, 200, 400, 800, 50ms, ...  */
+            if (!wtime || wtime >= 800)
+              wtime = 50;
+            else
+              wtime *= 2;
+
+            if (wtime >= 800)
+              log_info (_("waiting for file '%s' to become accessible ...\n"),
+                        oldname);
+
+            Sleep (wtime);
+            goto again;
+          }
+        err = my_error_from_syserror ();
+      }
+  }
+#else /* Unix */
+  {
+#ifdef __riscos__
+    gnupg_remove (newname);
+#endif
+    if (rename (oldname, newname) )
+      err = my_error_from_syserror ();
+  }
+#endif /* Unix */
+
+  if (block_signals && *block_signals && err)
+    {
+      gnupg_unblock_all_signals ();
+      *block_signals = 0;
+    }
+
+  if (err)
+    log_error (_("renaming '%s' to '%s' failed: %s\n"),
+               oldname, newname, gpg_strerror (err));
+  return err;
+}
+
+
 #ifndef HAVE_W32_SYSTEM
 static mode_t
 modestr_to_mode (const char *modestr)
@@ -737,39 +871,51 @@ gnupg_setenv (const char *name, const char *value, int overwrite)
   (void)value;
   (void)overwrite;
   return 0;
-#elif defined(HAVE_W32_SYSTEM)
-  if (!overwrite)
-    {
-      char tmpbuf[10];
-      if (GetEnvironmentVariable (name, tmpbuf, sizeof tmpbuf))
-        return 0; /* Exists but overwrite was not requested.  */
-    }
-  if (!SetEnvironmentVariable (name, value))
-    {
-      gpg_err_set_errno (EINVAL); /* (Might also be ENOMEM.) */
-      return -1;
-    }
-  return 0;
-#elif defined(HAVE_SETENV)
+#else /*!W32CE*/
+# ifdef HAVE_W32_SYSTEM
+  /*  Windows maintains (at least) two sets of environment variables.
+      One set can be accessed by GetEnvironmentVariable and
+      SetEnvironmentVariable.  This set is inherited by the children.
+      The other set is maintained in the C runtime, and is accessed
+      using getenv and putenv.  We try to keep them in sync by
+      modifying both sets.  */
+  {
+    int exists;
+    char tmpbuf[10];
+    exists = GetEnvironmentVariable (name, tmpbuf, sizeof tmpbuf);
+
+    if ((! exists || overwrite) && !SetEnvironmentVariable (name, value))
+      {
+        gpg_err_set_errno (EINVAL); /* (Might also be ENOMEM.) */
+        return -1;
+      }
+  }
+# endif /*W32*/
+
+# ifdef HAVE_SETENV
   return setenv (name, value, overwrite);
-#else
-  char *buf;
-
-  (void)overwrite;
-  if (!name || !value)
+# else /*!HAVE_SETENV*/
+  if (! getenv (name) || overwrite)
     {
-      gpg_err_set_errno (EINVAL);
-      return -1;
+      char *buf;
+
+      (void)overwrite;
+      if (!name || !value)
+        {
+          gpg_err_set_errno (EINVAL);
+          return -1;
+        }
+      buf = strconcat (name, "=", value, NULL);
+      if (!buf)
+        return -1;
+# if __GNUC__
+#  warning no setenv - using putenv but leaking memory.
+# endif
+      return putenv (buf);
     }
-  buf = xtrymalloc (strlen (name) + 1 + strlen (value) + 1);
-  if (!buf)
-    return -1;
-  strcpy (stpcpy (stpcpy (buf, name), "="), value);
-#if __GNUC__
-# warning no setenv - using putenv but leaking memory.
-#endif
-  return putenv (buf);
-#endif
+  return 0;
+# endif /*!HAVE_SETENV*/
+#endif /*!W32CE*/
 }
 
 
@@ -779,31 +925,42 @@ gnupg_unsetenv (const char *name)
 #ifdef HAVE_W32CE_SYSTEM
   (void)name;
   return 0;
-#elif defined(HAVE_W32_SYSTEM)
+#else /*!W32CE*/
+# ifdef HAVE_W32_SYSTEM
+  /*  Windows maintains (at least) two sets of environment variables.
+      One set can be accessed by GetEnvironmentVariable and
+      SetEnvironmentVariable.  This set is inherited by the children.
+      The other set is maintained in the C runtime, and is accessed
+      using getenv and putenv.  We try to keep them in sync by
+      modifying both sets.  */
   if (!SetEnvironmentVariable (name, NULL))
     {
       gpg_err_set_errno (EINVAL); /* (Might also be ENOMEM.) */
       return -1;
     }
-  return 0;
-#elif defined(HAVE_UNSETENV)
-  return unsetenv (name);
-#else
-  char *buf;
+# endif /*W32*/
 
-  if (!name)
-    {
-      gpg_err_set_errno (EINVAL);
+# ifdef HAVE_UNSETENV
+  return unsetenv (name);
+# else /*!HAVE_UNSETENV*/
+  {
+    char *buf;
+
+    if (!name)
+      {
+        gpg_err_set_errno (EINVAL);
+        return -1;
+      }
+    buf = xtrystrdup (name);
+    if (!buf)
       return -1;
-    }
-  buf = xtrystrdup (name);
-  if (!buf)
-    return -1;
-#if __GNUC__
-# warning no unsetenv - trying putenv but leaking memory.
-#endif
-  return putenv (buf);
-#endif
+#  if __GNUC__
+#   warning no unsetenv - trying putenv but leaking memory.
+#  endif
+    return putenv (buf);
+  }
+# endif /*!HAVE_UNSETENV*/
+#endif /*!W32CE*/
 }
 
 
@@ -929,3 +1086,164 @@ w32_get_user_sid (void)
   return sid;
 }
 #endif /*HAVE_W32_SYSTEM*/
+
+
+\f
+/* Support for inotify under Linux.  */
+
+/* Store a new inotify file handle for SOCKET_NAME at R_FD or return
+ * an error code. */
+gpg_error_t
+gnupg_inotify_watch_socket (int *r_fd, const char *socket_name)
+{
+#if HAVE_INOTIFY_INIT
+  gpg_error_t err;
+  char *fname;
+  int fd;
+  char *p;
+
+  *r_fd = -1;
+
+  if (!socket_name)
+    return my_error (GPG_ERR_INV_VALUE);
+
+  fname = xtrystrdup (socket_name);
+  if (!fname)
+    return my_error_from_syserror ();
+
+  fd = inotify_init ();
+  if (fd == -1)
+    {
+      err = my_error_from_syserror ();
+      xfree (fname);
+      return err;
+    }
+
+  /* We need to watch the directory for the file because there won't
+   * be an IN_DELETE_SELF for a socket file.  To handle a removal of
+   * the directory we also watch the directory itself. */
+  p = strrchr (fname, '/');
+  if (p)
+    *p = 0;
+  if (inotify_add_watch (fd, fname,
+                         (IN_DELETE|IN_DELETE_SELF|IN_EXCL_UNLINK)) == -1)
+    {
+      err = my_error_from_syserror ();
+      close (fd);
+      xfree (fname);
+      return err;
+    }
+
+  xfree (fname);
+
+  *r_fd = fd;
+  return 0;
+#else /*!HAVE_INOTIFY_INIT*/
+
+  (void)socket_name;
+  *r_fd = -1;
+  return my_error (GPG_ERR_NOT_SUPPORTED);
+
+#endif /*!HAVE_INOTIFY_INIT*/
+}
+
+
+/* Read an inotify event and return true if it matches NAME or if it
+ * sees an IN_DELETE_SELF event for the directory of NAME.  */
+int
+gnupg_inotify_has_name (int fd, const char *name)
+{
+#if USE_NPTH && HAVE_INOTIFY_INIT
+#define BUFSIZE_FOR_INOTIFY (sizeof (struct inotify_event) + 255 + 1)
+  union {
+    struct inotify_event ev;
+    char _buf[sizeof (struct inotify_event) + 255 + 1];
+  } buf;
+  struct inotify_event *evp;
+  int n;
+
+  n = npth_read (fd, &buf, sizeof buf);
+  /* log_debug ("notify read: n=%d\n", n); */
+  evp = &buf.ev;
+  while (n >= sizeof (struct inotify_event))
+    {
+      /* log_debug ("             mask=%x len=%u name=(%s)\n", */
+      /*        evp->mask, (unsigned int)evp->len, evp->len? evp->name:""); */
+      if ((evp->mask & IN_UNMOUNT))
+        {
+          /* log_debug ("             found (dir unmounted)\n"); */
+          return 3; /* Directory was unmounted.  */
+        }
+      if ((evp->mask & IN_DELETE_SELF))
+        {
+          /* log_debug ("             found (dir removed)\n"); */
+          return 2; /* Directory was removed.  */
+        }
+      if ((evp->mask & IN_DELETE))
+        {
+          if (evp->len >= strlen (name) && !strcmp (evp->name, name))
+            {
+              /* log_debug ("             found (file removed)\n"); */
+              return 1; /* File was removed.  */
+            }
+        }
+      n -= sizeof (*evp) + evp->len;
+      evp = (struct inotify_event *)(void *)
+        ((char *)evp + sizeof (*evp) + evp->len);
+    }
+
+#else /*!(USE_NPTH && HAVE_INOTIFY_INIT)*/
+
+  (void)fd;
+  (void)name;
+
+#endif  /*!(USE_NPTH && HAVE_INOTIFY_INIT)*/
+
+  return 0; /* Not found.  */
+}
+
+
+/* Return a malloc'ed string that is the path to the passed
+ * unix-domain socket (or return NULL if this is not a valid
+ * unix-domain socket).  We use a plain int here because it is only
+ * used on Linux.
+ *
+ * FIXME: This function needs to be moved to libassuan.  */
+#ifndef HAVE_W32_SYSTEM
+char *
+gnupg_get_socket_name (int fd)
+{
+  struct sockaddr_un un;
+  socklen_t len = sizeof(un);
+  char *name = NULL;
+
+  if (getsockname (fd, (struct sockaddr*)&un, &len) != 0)
+    log_error ("could not getsockname(%d): %s\n", fd,
+               gpg_strerror (my_error_from_syserror ()));
+  else if (un.sun_family != AF_UNIX)
+    log_error ("file descriptor %d is not a unix-domain socket\n", fd);
+  else if (len <= offsetof (struct sockaddr_un, sun_path))
+    log_error ("socket name not present for file descriptor %d\n", fd);
+  else if (len > sizeof(un))
+    log_error ("socket name for file descriptor %d was truncated "
+               "(passed %zu bytes, wanted %u)\n", fd, sizeof(un), len);
+  else
+    {
+      size_t namelen = len - offsetof (struct sockaddr_un, sun_path);
+
+      /* log_debug ("file descriptor %d has path %s (%zu octets)\n", fd, */
+      /*            un.sun_path, namelen); */
+      name = xtrymalloc (namelen + 1);
+      if (!name)
+        log_error ("failed to allocate memory for name of fd %d: %s\n",
+                   fd, gpg_strerror (my_error_from_syserror ()));
+      else
+        {
+          memcpy (name, un.sun_path, namelen);
+          name[namelen] = 0;
+        }
+    }
+
+  return name;
+}
+#endif /*!HAVE_W32_SYSTEM*/
index ba66ce6..fef6ba1 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_SYSUTILS_H
@@ -54,18 +54,26 @@ const unsigned char *get_session_marker (size_t *rlen);
 unsigned int get_uint_nonce (void);
 /*int check_permissions (const char *path,int extension,int checkonly);*/
 void gnupg_sleep (unsigned int seconds);
+void gnupg_usleep (unsigned int usecs);
 int translate_sys2libc_fd (gnupg_fd_t fd, int for_write);
 int translate_sys2libc_fd_int (int fd, int for_write);
 FILE *gnupg_tmpfile (void);
 void gnupg_reopen_std (const char *pgmname);
 void gnupg_allow_set_foregound_window (pid_t pid);
 int  gnupg_remove (const char *fname);
+gpg_error_t gnupg_rename_file (const char *oldname, const char *newname,
+                               int *block_signals);
 int  gnupg_mkdir (const char *name, const char *modestr);
 int gnupg_chmod (const char *name, const char *modestr);
 char *gnupg_mkdtemp (char *template);
 int  gnupg_setenv (const char *name, const char *value, int overwrite);
 int  gnupg_unsetenv (const char *name);
 char *gnupg_getcwd (void);
+char *gnupg_get_socket_name (int fd);
+
+gpg_error_t gnupg_inotify_watch_socket (int *r_fd, const char *socket_name);
+int gnupg_inotify_has_name (int fd, const char *name);
+
 
 #ifdef HAVE_W32_SYSTEM
 void *w32_get_user_sid (void);
index c86c920..3b63872 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /*
index 0512346..eb96526 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 68824e0..e25de90 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index d509426..f7aee09 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /* Note: This is a standalone test program which does not rely on any
index 3a47dc8..cf967fc 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index bbbf8fa..8b6ee6a 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 8a222b7..9d9881a 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 4c77c9a..0e2c79f 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 8f4c650..0856c3c 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index ff48f6c..979d4b3 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 3b01431..57f685f 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index afb6ebe..cb5709d 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index c148c22..145a89b 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index fe2a7b9..f52d085 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -171,6 +171,8 @@ test_2_getval (void *cookie, const char *name)
     return "    ";
   else if (!strcmp (name, "letters"))
     return "abcde";
+  else if (!strcmp (name, "str1"))
+    return "aaa";
   else
     return cookie;
 }
@@ -264,6 +266,37 @@ run_test_2 (void)
 
 
   FREEEXPR();
+  ADDEXPR ("str1 -gt aa");
+  if (!recsel_select (se, test_2_getval, NULL))
+    fail (0, 0);
+  FREEEXPR();
+  ADDEXPR ("str1 -gt aaa");
+  if (recsel_select (se, test_2_getval, NULL))
+    fail (0, 0);
+  FREEEXPR();
+  ADDEXPR ("str1 -ge aaa");
+  if (!recsel_select (se, test_2_getval, NULL))
+    fail (0, 0);
+  FREEEXPR();
+  ADDEXPR ("str1 -lt aab");
+  if (!recsel_select (se, test_2_getval, NULL))
+    fail (0, 0);
+  FREEEXPR();
+  ADDEXPR ("str1 -le aaa");
+  if (!recsel_select (se, test_2_getval, NULL))
+    fail (0, 0);
+
+  FREEEXPR();
+  ADDEXPR ("-c str1 -lt AAB");
+  if (recsel_select (se, test_2_getval, NULL))
+    fail (0, 0);
+  FREEEXPR();
+  ADDEXPR ("str1 -lt AAB");
+  if (!recsel_select (se, test_2_getval, NULL))
+    fail (0, 0);
+
+
+  FREEEXPR();
   ADDEXPR ("uid -n");
   if (!recsel_select (se, test_2_getval, NULL))
     fail (0, 0);
index c5c7b0e..aa9d596 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 77f8199..ceb8280 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 961f451..f63ea95 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index ccadf02..d86d896 100644 (file)
@@ -26,7 +26,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -40,6 +40,7 @@
 #endif
 #include <unistd.h>
 #include <sys/types.h>
+#include <limits.h>
 
 #include "t-support.h"
 #include "stringhelp.h"
@@ -903,45 +904,63 @@ static void
 test_compare_version_strings (void)
 {
   struct { const char *a; const char *b; int okay; } tests[] = {
-    { "1.0.0",   "1.0.0", 1 },
+    { "1.0.0",   "1.0.0", 0 },
     { "1.0.0-",  "1.0.0", 1 },
     { "1.0.0-1", "1.0.0", 1 },
     { "1.0.0.1", "1.0.0", 1 },
-    { "1.0.0",   "1.0.1", 0 },
-    { "1.0.0-",  "1.0.1", 0 },
-    { "1.0.0-1", "1.0.1", 0 },
-    { "1.0.0.1", "1.0.1", 0 },
-    { "1.0.0",   "1.1.0", 0 },
-    { "1.0.0-",  "1.1.0", 0 },
-    { "1.0.0-1", "1.1.0", 0 },
-    { "1.0.0.1", "1.1.0", 0 },
-
-    { "1.0.0",   "1.0.0-", 1 },
-    { "1.0.0",   "1.0.0-1", 1 },
-    { "1.0.0",   "1.0.0.1", 1 },
+    { "1.0.0",   "1.0.1", -1 },
+    { "1.0.0-",  "1.0.1", -1 },
+    { "1.0.0-1", "1.0.1", -1 },
+    { "1.0.0.1", "1.0.1", -1 },
+    { "1.0.0",   "1.1.0", -1 },
+    { "1.0.0-",  "1.1.0", -1 },
+    { "1.0.0-1", "1.1.0", -1 },
+    { "1.0.0.1", "1.1.0", -1 },
+
+    { "1.0.0",   "1.0.0-", -1 },
+    { "1.0.0",   "1.0.0-1", -1 },
+    { "1.0.0",   "1.0.0.1", -1 },
     { "1.1.0",   "1.0.0", 1 },
     { "1.1.1",   "1.1.0", 1 },
-    { "1.1.2",   "1.1.2", 1 },
+    { "1.1.2",   "1.1.2", 0 },
     { "1.1.2",   "1.0.2", 1 },
     { "1.1.2",   "0.0.2", 1 },
-    { "1.1.2",   "1.1.3", 0 },
+    { "1.1.2",   "1.1.3", -1 },
 
     { "0.99.1",  "0.9.9", 1 },
-    { "0.9.1",   "0.91.0", 0 },
+    { "0.9.1",   "0.91.0", -1 },
 
     { "1.5.3",   "1.5",  1 },
-    { "1.5.0",   "1.5",  1 },
-    { "1.4.99",  "1.5",  0 },
+    { "1.5.0",   "1.5",  0 },
+    { "1.4.99",  "1.5",  -1 },
     { "1.5",     "1.4.99",  1 },
-    { "1.5",     "1.5.0",  1 },
-    { "1.5",     "1.5.1",  0 },
+    { "1.5",     "1.5.0",  0 },
+    { "1.5",     "1.5.1",  -1 },
 
     { "1.5.3-x17",   "1.5-23",  1 },
 
     { "1.5.3a",   "1.5.3",  1 },
-    { "1.5.3a",   "1.5.3b",  1 },
-
-    { NULL, NULL, 0 }
+    { "1.5.3a",   "1.5.3b",  -1 },
+
+    { "3.1.4-ab", "3.1.4-ab", 0 },
+    { "3.1.4-ab", "3.1.4-ac", -1 },
+    { "3.1.4-ac", "3.1.4-ab", 1 },
+    { "3.1.4-ab", "3.1.4-abb", -1 },
+    { "3.1.4-abb", "3.1.4-ab", 1 },
+
+    { "",       "",   INT_MIN },
+    { NULL,     "",   INT_MIN },
+    { "1.2.3",  "",   INT_MIN },
+    { "1.2.3",  "2",  INT_MIN },
+
+    /* Test cases for validity of A.  */
+    { "",      NULL, INT_MIN },
+    { "1",     NULL, INT_MIN },
+    { "1.",    NULL, 0       },
+    { "1.0",   NULL, 0       },
+    { "1.0.",  NULL, 0       },
+    { "a1.2",  NULL, INT_MIN },
+    { NULL,    NULL, INT_MIN }
   };
   int idx;
   int res;
index e49d5a7..bd835ca 100644 (file)
@@ -25,7 +25,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 7dd8f0a..8ed0a62 100644 (file)
@@ -25,7 +25,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index cda6759..5449a56 100644 (file)
@@ -25,7 +25,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_T_SUPPORT_H
index 68c3e41..79f8385 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index a80aaff..1e524f5 100644 (file)
@@ -25,7 +25,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index a26afe9..48ea0d4 100644 (file)
@@ -25,7 +25,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index c46d47f..956c2f5 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 1a6c18f..6813c58 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 05ddaa4..ba4ea2e 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef SCD_TLV_H
index 6167412..5fb620d 100644 (file)
@@ -25,7 +25,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 0a66d86..004aa85 100644 (file)
@@ -25,7 +25,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 #ifndef GNUPG_COMMON_TTYIO_H
 #define GNUPG_COMMON_TTYIO_H
index 0767a27..7d85a35 100644 (file)
@@ -25,7 +25,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_TYPES_H
index b761d14..01f2cd8 100644 (file)
@@ -26,7 +26,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index dcb6f4a..c60bc33 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_USERIDS_H
index 83e6eae..bce9e3a 100644 (file)
@@ -26,7 +26,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index def35de..1c6c584 100644 (file)
@@ -25,7 +25,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_UTF8CONF_H
index 1c3cce9..2f82fb0 100644 (file)
@@ -25,7 +25,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_UTIL_H
@@ -206,7 +206,7 @@ size_t percent_unescape_inplace (char *string, int nulrepl);
 gpg_error_t openpgp_oid_from_str (const char *string, gcry_mpi_t *r_mpi);
 char *openpgp_oid_to_str (gcry_mpi_t a);
 int openpgp_oid_is_ed25519 (gcry_mpi_t a);
-int openpgp_oid_is_crv25519 (gcry_mpi_t a);
+int openpgp_oid_is_cv25519 (gcry_mpi_t a);
 const char *openpgp_curve_to_oid (const char *name, unsigned int *r_nbits);
 const char *openpgp_oid_to_curve (const char *oid, int canon);
 const char *openpgp_enum_curves (int *idxp);
@@ -244,6 +244,7 @@ char *_gnupg_socketdir_internal (int skip_checks, unsigned *r_info);
 #define GNUPG_MODULE_NAME_CONNECT_AGENT 9
 #define GNUPG_MODULE_NAME_GPGCONF       10
 #define GNUPG_MODULE_NAME_DIRMNGR_LDAP  11
+#define GNUPG_MODULE_NAME_GPGV          12
 const char *gnupg_module_name (int which);
 void gnupg_module_name_flush_some (void);
 
index 5bb9dd1..7467f6b 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /* This file is in general included via util.h but sometimes we do not
index 6afb599..2d64215 100644 (file)
@@ -25,7 +25,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index be6dd3e..e495e34 100644 (file)
@@ -25,7 +25,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_W32HELP_H
index 8adf2e4..00ff66a 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index f3c43df..b17579f 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 7803349..58de63d 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 54bd5d4..517321e 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 1fb41ec..47bb1f8 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_ZB32_H
index 95a8f17..1b77a45 100644 (file)
@@ -15,7 +15,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 # Process this file with autoconf to produce a configure script.
 AC_PREREQ(2.61)
@@ -28,7 +28,7 @@ min_automake_version="1.14"
 m4_define([mym4_package],[gnupg])
 m4_define([mym4_major], [2])
 m4_define([mym4_minor], [1])
-m4_define([mym4_micro], [15])
+m4_define([mym4_micro], [16])
 
 # To start a new development series, i.e a new major or minor number
 # you need to mark an arbitrary commit before the first beta release
@@ -200,7 +200,7 @@ test -n "$GNUPG_PROTECT_TOOL_PGM" \
       && show_gnupg_protect_tool_pgm="$GNUPG_PROTECT_TOOL_PGM"
 
 AC_ARG_WITH(dirmngr-ldap-pgm,
-    [  --with-dirmngr-ldap-pgm=PATH  Use PATH as the default for the dirmnge ldap wrapper)],
+    [  --with-dirmngr-ldap-pgm=PATH  Use PATH as the default for the dirmngr ldap wrapper)],
           GNUPG_DIRMNGR_LDAP_PGM="$withval", GNUPG_DIRMNGR_LDAP_PGM="" )
 AC_SUBST(GNUPG_DIRMNGR_LDAP_PGM)
 AM_CONDITIONAL(GNUPG_DIRMNGR_LDAP_PGM, test -n "$GNUPG_DIRMNGR_LDAP_PGM")
@@ -626,7 +626,6 @@ have_dosish_system=no
 have_w32_system=no
 have_w32ce_system=no
 have_android_system=no
-run_tests=yes
 use_simple_gettext=no
 use_ldapwrapper=yes
 mmap_needed=yes
@@ -643,7 +642,6 @@ case "${host}" in
         have_dosish_system=yes
         have_w32_system=yes
         require_iconv=no
-        run_tests=no
         use_ldapwrapper=no  # Fixme: Do this only for CE.
         case "${host}" in
           *-mingw32ce*)
@@ -702,7 +700,6 @@ case "${host}" in
         # Android is fully utf-8 and we do not want to use iconv to
         # keeps things simple
         require_iconv=no
-        run_tests=no
         ;;
     *)
        ;;
@@ -733,11 +730,6 @@ if test "$have_android_system" = yes; then
 fi
 AM_CONDITIONAL(HAVE_ANDROID_SYSTEM, test "$have_android_system" = yes)
 
-if test "$run_tests" = yes; then
-   AC_DEFINE(RUN_TESTS,1, [Defined if we should run the tests])
-fi
-AM_CONDITIONAL(RUN_TESTS, test "$run_tests" = yes)
-
 
 # (These need to go after AC_PROG_CC so that $EXEEXT is defined)
 AC_DEFINE_UNQUOTED(EXEEXT,"$EXEEXT",[The executable file extension, if any])
@@ -1074,8 +1066,15 @@ if test x"$use_dns_srv" = xyes || test x"$use_dns_cert" = xyes; then
                    AC_SEARCH_LIBS(__res_query,resolv bind,,have_resolver=no))
     AC_SEARCH_LIBS(dn_expand,resolv bind,,
                    AC_SEARCH_LIBS(__dn_expand,resolv bind,,have_resolver=no))
-    AC_SEARCH_LIBS(dn_skipname,resolv bind,,
-                   AC_SEARCH_LIBS(__dn_skipname,resolv bind,,have_resolver=no))
+
+    # macOS renames dn_skipname into res_9_dn_skipname in <resolv.h>,
+    # and for some reason fools us into believing we don't need
+    # -lresolv even if we do.  Since the test program checking for the
+    # symbol does not include <resolv.h>, we need to check for the
+    # renamed symbol explicitly.
+    AC_SEARCH_LIBS(res_9_dn_skipname,resolv bind,,
+        AC_SEARCH_LIBS(dn_skipname,resolv bind,,
+            AC_SEARCH_LIBS(__dn_skipname,resolv bind,,have_resolver=no)))
 
     if test x"$have_resolver" != xno ; then
 
@@ -1388,6 +1387,24 @@ AC_CHECK_FUNCS([memicmp stpcpy strsep strlwr strtoul memmove stricmp strtol \
                 flockfile funlockfile getpwnam getpwuid \
                 getenv inet_pton strpbrk])
 
+# On some systems (e.g. Solaris) nanosleep requires linking to librl.
+# Given that we use nanosleep only as an optimization over a select
+# based wait function we want it only if it is available in libc.
+_save_libs="$LIBS"
+AC_SEARCH_LIBS([nanosleep], [],
+               [AC_DEFINE(HAVE_NANOSLEEP,1,
+                [Define to 1 if you have the `nanosleep' function in libc.])])
+LIBS="$_save_libs"
+
+
+# See whether libc supports the Linux inotify interface
+case "${host}" in
+    *-*-linux*)
+        AC_CHECK_FUNCS([inotify_init])
+        ;;
+esac
+
+
 if test "$have_android_system" = yes; then
    # On Android ttyname is a stub but prints an error message.
    AC_DEFINE(HAVE_BROKEN_TTYNAME,1,
@@ -1678,9 +1695,6 @@ AM_CONDITIONAL(ENABLE_CARD_SUPPORT, test "$card_support" = yes)
 AM_CONDITIONAL(NO_TRUST_MODELS,     test "$use_trust_models" = no)
 AM_CONDITIONAL(USE_TOFU,            test "$use_tofu" = yes)
 
-AM_CONDITIONAL(RUN_GPG_TESTS,
-               test x$cross_compiling = xno -a "$build_gpg" = yes )
-
 #
 # Set some defines for use gpgconf.
 #
@@ -1738,6 +1752,10 @@ AC_DEFINE_UNQUOTED(GPGTAR_NAME, "gpgtar", [The name of the gpgtar tool])
 
 AC_DEFINE_UNQUOTED(GPG_AGENT_SOCK_NAME, "S.gpg-agent",
                    [The name of the agent socket])
+AC_DEFINE_UNQUOTED(GPG_AGENT_EXTRA_SOCK_NAME, "S.gpg-agent.extra",
+                   [The name of the agent socket for remote access])
+AC_DEFINE_UNQUOTED(GPG_AGENT_BROWSER_SOCK_NAME, "S.gpg-agent.browser",
+                   [The name of the agent socket for browsers])
 AC_DEFINE_UNQUOTED(GPG_AGENT_SSH_SOCK_NAME, "S.gpg-agent.ssh",
                    [The name of the agent socket for ssh])
 AC_DEFINE_UNQUOTED(DIRMNGR_INFO_NAME, "DIRMNGR_INFO",
@@ -1746,6 +1764,9 @@ AC_DEFINE_UNQUOTED(SCDAEMON_SOCK_NAME, "S.scdaemon",
                    [The name of the SCdaemon socket])
 AC_DEFINE_UNQUOTED(DIRMNGR_SOCK_NAME, "S.dirmngr",
                    [The name of the dirmngr socket])
+AC_DEFINE_UNQUOTED(DIRMNGR_DEFAULT_KEYSERVER,
+                   "hkps://hkps.pool.sks-keyservers.net",
+      [The default keyserver for dirmngr to use, if none is explicitly given])
 
 AC_DEFINE_UNQUOTED(GPGEXT_GPG, "gpg", [The standard binary file suffix])
 
index 64bc058..2a18a50 100644 (file)
@@ -15,7 +15,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 ## Process this file with automake to produce Makefile.in
 
@@ -28,8 +28,8 @@ if USE_LDAPWRAPPER
 libexec_PROGRAMS = dirmngr_ldap
 endif
 
-noinst_PROGRAMS = $(module_tests) $(module_maint_tests)
-TESTS = $(module_tests)
+noinst_PROGRAMS = $(module_tests) $(module_net_tests) $(module_maint_tests)
+TESTS = $(module_tests) $(module_net_tests)
 
 AM_CPPFLAGS = -I$(top_srcdir)/common
 
@@ -40,10 +40,6 @@ AM_CFLAGS = $(LIBGCRYPT_CFLAGS) $(KSBA_CFLAGS) $(LIBASSUAN_CFLAGS)   \
             $(LIBGNUTLS_CFLAGS)
 
 
-BUILT_SOURCES = no-libgcrypt.c
-
-CLEANFILES = no-libgcrypt.c
-
 if HAVE_W32_SYSTEM
 ldap_url = ldap-url.h ldap-url.c
 else
@@ -60,6 +56,7 @@ noinst_HEADERS = dirmngr.h crlcache.h crlfetch.h misc.h
 
 dirmngr_SOURCES = dirmngr.c dirmngr.h server.c crlcache.c crlfetch.c   \
        certcache.c certcache.h \
+       loadswdb.c \
        cdb.h cdblib.c misc.c dirmngr-err.h  \
        ocsp.c ocsp.h validate.c validate.h  \
        dns-stuff.c dns-stuff.h \
@@ -93,9 +90,9 @@ if USE_LDAPWRAPPER
 dirmngr_ldap_SOURCES = dirmngr_ldap.c $(ldap_url)
 dirmngr_ldap_CFLAGS = $(GPG_ERROR_CFLAGS) $(LIBGCRYPT_CFLAGS)
 dirmngr_ldap_LDFLAGS =
-dirmngr_ldap_LDADD = $(libcommon) no-libgcrypt.o \
+dirmngr_ldap_LDADD = $(libcommon) \
                     $(GPG_ERROR_LIBS) $(LIBGCRYPT_LIBS) $(LDAPLIBS) \
-                    $(LBER_LIBS) $(LIBINTL) $(LIBICONV)
+                    $(LBER_LIBS) $(LIBINTL) $(LIBICONV) $(NETLIBS)
 endif
 
 dirmngr_client_SOURCES = dirmngr-client.c
@@ -104,9 +101,6 @@ dirmngr_client_LDADD = $(libcommon) \
                        $(LIBGCRYPT_LIBS) $(NETLIBS) $(LIBINTL) $(LIBICONV)
 dirmngr_client_LDFLAGS = $(extra_bin_ldflags)
 
-no-libgcrypt.c : $(top_srcdir)/tools/no-libgcrypt.c
-       cat $(top_srcdir)/tools/no-libgcrypt.c > no-libgcrypt.c
-
 
 t_common_src = t-support.h
 t_common_ldadd = $(libcommon) $(LIBASSUAN_LIBS) $(LIBGCRYPT_LIBS) \
@@ -114,12 +108,20 @@ t_common_ldadd = $(libcommon) $(LIBASSUAN_LIBS) $(LIBGCRYPT_LIBS) \
                  $(NTBTLS_LIBS) $(LIBGNUTLS_LIBS) \
                  $(DNSLIBS) $(LIBINTL) $(LIBICONV)
 
-module_tests = t-dns-stuff
+module_tests =
 
 if USE_LDAP
 module_tests += t-ldap-parse-uri
 endif
 
+# Test which need a network connections are only used in maintainer mode.
+if MAINTAINER_MODE
+module_net_tests = t-dns-stuff
+else
+module_net_tests =
+endif
+
+# Tests which are only for manually testing are only build in maintainer-mode.
 if MAINTAINER_MODE
 module_maint_tests = t-http
 else
index 52c17c9..c04690f 100644 (file)
@@ -298,16 +298,15 @@ cdb_find(struct cdb *cdbp, const void *key, cdbi_t klen)
    possible to have many than one record with the same key in a
    database, and these routines allow enumeration of all of them.
    cdb_findinit() initializes search structure pointed to by cdbfp.
-   It will return negative value on error or 0 on success.  cdb_find­
-   next() attempts to find next matching key, setting value position
-   and length in cdbfp structure.  It will return positive value if
-   given key was found, 0 if there is no more such key(s), or negative
-   value on error.  To access value position and length after
+   It will return negative value on error or 0 on success.
+   cdb_findnext() attempts to find next matching key, setting value
+   position and length in cdbfp structure.  It will return positive
+   value if given key was found, 0 if there is no more such key(s), or
+   negative value on error.  To access value position and length after
    successeful call to cdb_findnext() (when it returned positive
    result), use cdb_datapos() and cdb_datalen() macros with cdbp
    pointer.  It is error to use cdb_findnext() after it returned 0 or
-   error condition.  These routines is a bit slower than
-   cdb_find().
+   error condition.  These routines is a bit slower than cdb_find().
 
    Setting KEY to NULL will start a sequential search through the
    entire DB.
index 9e741c1..ad85d99 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 388754b..07fa5b1 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /*
@@ -2408,7 +2408,7 @@ crl_cache_load (ctrl_t ctrl, const char *filename)
   estream_t fp;
   ksba_reader_t reader;
 
-  fp = es_fopen (filename, "r");
+  fp = es_fopen (filename, "rb");
   if (!fp)
     {
       err = gpg_error_from_errno (errno);
index 6e9dc28..0e60def 100644 (file)
@@ -1,5 +1,5 @@
 /* crlcache.h - LDAP access
- *      Copyright (C) 2002 Klarälvdalens Datakonsult AB
+ *      Copyright (C) 2002 Klarälvdalens Datakonsult AB
  *
  * This file is part of DirMngr.
  *
index 7e814f5..8fe6e0b 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index dd28238..cf4a3c0 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef CRLFETCH_H
index 9b004cc..01cface 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 0667e59..7214d49 100644 (file)
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -39,6 +39,9 @@
 #ifdef HAVE_SIGNAL_H
 # include <signal.h>
 #endif
+#ifdef HAVE_INOTIFY_INIT
+# include <sys/inotify.h>
+#endif /*HAVE_INOTIFY_INIT*/
 #include <npth.h>
 
 #include "dirmngr-err.h"
@@ -85,6 +88,7 @@ enum cmd_and_opt_values {
 
   aServer,
   aDaemon,
+  aSupervised,
   aListCRLs,
   aLoadCRL,
   aFetchCRL,
@@ -127,6 +131,7 @@ enum cmd_and_opt_values {
   oFakedSystemTime,
   oForce,
   oAllowOCSP,
+  oAllowVersionCheck,
   oSocketName,
   oLDAPWrapperProgram,
   oHTTPWrapperProgram,
@@ -134,6 +139,7 @@ enum cmd_and_opt_values {
   oUseTor,
   oKeyServer,
   oNameServer,
+  oDisableCheckOwnSocket,
   aTest
 };
 
@@ -145,6 +151,9 @@ static ARGPARSE_OPTS opts[] = {
 
   ARGPARSE_c (aServer,   "server",  N_("run in server mode (foreground)") ),
   ARGPARSE_c (aDaemon,   "daemon",  N_("run in daemon mode (background)") ),
+#ifndef HAVE_W32_SYSTEM
+  ARGPARSE_c (aSupervised,  "supervised", N_("run in supervised mode")),
+#endif
   ARGPARSE_c (aListCRLs, "list-crls", N_("list the contents of the CRL cache")),
   ARGPARSE_c (aLoadCRL,  "load-crl",  N_("|FILE|load CRL from FILE into cache")),
   ARGPARSE_c (aFetchCRL, "fetch-crl", N_("|URL|fetch a CRL from URL")),
@@ -168,6 +177,8 @@ static ARGPARSE_OPTS opts[] = {
   ARGPARSE_s_n (oBatch,    "batch",       N_("run without asking a user")),
   ARGPARSE_s_n (oForce,    "force",       N_("force loading of outdated CRLs")),
   ARGPARSE_s_n (oAllowOCSP, "allow-ocsp", N_("allow sending OCSP requests")),
+  ARGPARSE_s_n (oAllowVersionCheck, "allow-version-check",
+                N_("allow online software version check")),
   ARGPARSE_s_n (oDisableHTTP, "disable-http", N_("inhibit the use of HTTP")),
   ARGPARSE_s_n (oDisableLDAP, "disable-ldap", N_("inhibit the use of LDAP")),
   ARGPARSE_s_n (oIgnoreHTTPDP,"ignore-http-dp",
@@ -218,6 +229,7 @@ static ARGPARSE_OPTS opts[] = {
   ARGPARSE_s_i (oGnutlsDebug, "gnutls-debug", "@"),
   ARGPARSE_s_i (oGnutlsDebug, "tls-debug", "@"),
   ARGPARSE_s_i (oDebugWait, "debug-wait", "@"),
+  ARGPARSE_s_n (oDisableCheckOwnSocket, "disable-check-own-socket", "@"),
   ARGPARSE_s_n (oNoGreeting, "no-greeting", "@"),
   ARGPARSE_s_s (oHomedir, "homedir", "@"),
   ARGPARSE_s_s (oLDAPWrapperProgram, "ldap-wrapper-program", "@"),
@@ -274,20 +286,20 @@ static int opt_gnutls_debug = -1;
 /* Flag indicating that a shutdown has been requested.  */
 static volatile int shutdown_pending;
 
+/* Flags to indicate that we shall not watch our own socket. */
+static int disable_check_own_socket;
+
 /* Counter for the active connections.  */
 static int active_connections;
 
-/* The timer tick used for housekeeping stuff.  For Windows we use a
-   longer period as the SetWaitableTimer seems to signal earlier than
-   the 2 seconds.  All values are in seconds. */
-#if defined(HAVE_W32CE_SYSTEM)
-# define TIMERTICK_INTERVAL         (60)
-#elif defined(HAVE_W32_SYSTEM)
-# define TIMERTICK_INTERVAL          (4)
-#else
-# define TIMERTICK_INTERVAL          (2)
-#endif
+/* This flag is set by any network access and used by the housekeeping
+ * thread to run background network tasks.  */
+static int network_activity_seen;
 
+/* The timer tick used for housekeeping stuff.  */
+#define TIMERTICK_INTERVAL         (60)
+
+/* How oft to run the housekeeping.  */
 #define HOUSEKEEPING_INTERVAL      (600)
 
 
@@ -316,6 +328,7 @@ static void cleanup (void);
 static ldap_server_t parse_ldapserver_file (const char* filename);
 #endif /*USE_LDAP*/
 static fingerprint_list_t parse_ocsp_signer (const char *string);
+static void netactivity_action (void);
 static void handle_connections (assuan_fd_t listen_fd);
 
 /* NPth wrapper function definitions. */
@@ -513,6 +526,7 @@ parse_rereadable_options (ARGPARSE_ARGS *pargs, int reread)
       opt.ignore_ldap_dp = 0;
       opt.ignore_ocsp_service_url = 0;
       opt.allow_ocsp = 0;
+      opt.allow_version_check = 0;
       opt.ocsp_responder = NULL;
       opt.ocsp_max_clock_skew = 10 * 60;      /* 10 minutes.  */
       opt.ocsp_max_period = 90 * 86400;       /* 90 days.  */
@@ -528,6 +542,7 @@ parse_rereadable_options (ARGPARSE_ARGS *pargs, int reread)
       http_register_tls_ca (NULL);
       FREE_STRLIST (opt.keyserver);
       /* Note: We do not allow resetting of opt.use_tor at runtime.  */
+      disable_check_own_socket = 0;
       return 1;
     }
 
@@ -554,6 +569,8 @@ parse_rereadable_options (ARGPARSE_ARGS *pargs, int reread)
         }
       break;
 
+    case oDisableCheckOwnSocket: disable_check_own_socket = 1; break;
+
     case oLDAPWrapperProgram:
       opt.ldap_wrapper_program = pargs->r.ret_str;
       break;
@@ -572,6 +589,7 @@ parse_rereadable_options (ARGPARSE_ARGS *pargs, int reread)
     case oIgnoreOCSPSvcUrl: opt.ignore_ocsp_service_url = 1; break;
 
     case oAllowOCSP: opt.allow_ocsp = 1; break;
+    case oAllowVersionCheck: opt.allow_version_check = 1; break;
     case oOCSPResponder: opt.ocsp_responder = pargs->r.ret_str; break;
     case oOCSPSigner:
       opt.ocsp_signer = parse_ocsp_signer (pargs->r.ret_str);
@@ -586,15 +604,9 @@ parse_rereadable_options (ARGPARSE_ARGS *pargs, int reread)
       {
         char *tmpname;
 
-        /* Do tilde expansion and print a warning if the file can't be
-           accessed.  */
-        tmpname = make_absfilename_try (pargs->r.ret_str, NULL);
-        if (!tmpname || access (tmpname, F_OK))
-          log_info (_("can't access '%s': %s\n"),
-                    tmpname? tmpname : pargs->r.ret_str,
-                    gpg_strerror (gpg_error_from_syserror()));
-        else
-          http_register_tls_ca (tmpname);
+        /* Do tilde expansion and make path absolute.  */
+        tmpname = make_absfilename (pargs->r.ret_str, NULL);
+        http_register_tls_ca (tmpname);
         xfree (tmpname);
       }
       break;
@@ -636,6 +648,23 @@ pid_suffix_callback (unsigned long *r_suffix)
 #endif /*!HAVE_W32_SYSTEM*/
 
 
+static void
+thread_init (void)
+{
+  npth_init ();
+  gpgrt_set_syscall_clamp (npth_unprotect, npth_protect);
+
+  /* Now with NPth running we can set the logging callback.  Our
+     windows implementation does not yet feature the NPth TLS
+     functions.  */
+#ifndef HAVE_W32_SYSTEM
+  if (npth_key_create (&my_tlskey_current_fd, NULL) == 0)
+    if (npth_setspecific (my_tlskey_current_fd, NULL) == 0)
+      log_set_pid_suffix_cb (pid_suffix_callback);
+#endif /*!HAVE_W32_SYSTEM*/
+}
+
+
 int
 main (int argc, char **argv)
 {
@@ -669,8 +698,6 @@ main (int argc, char **argv)
   i18n_init ();
   init_common_subsystems (&argc, &argv);
 
-  npth_init ();
-
   gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
 
  /* Check that the libraries are suitable.  Do it here because
@@ -702,7 +729,7 @@ main (int argc, char **argv)
   assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
   assuan_set_system_hooks (ASSUAN_SYSTEM_NPTH);
   assuan_sock_init ();
-  setup_libassuan_logging (&opt.debug);
+  setup_libassuan_logging (&opt.debug, dirmngr_assuan_log_monitor);
 
   setup_libgcrypt_logging ();
 
@@ -711,15 +738,6 @@ main (int argc, char **argv)
   if (shell && strlen (shell) >= 3 && !strcmp (shell+strlen (shell)-3, "csh") )
     csh_style = 1;
 
-    /* Now with NPth running we can set the logging callback.  Our
-     windows implementation does not yet feature the NPth TLS
-     functions.  */
-#ifndef HAVE_W32_SYSTEM
-  if (npth_key_create (&my_tlskey_current_fd, NULL) == 0)
-    if (npth_setspecific (my_tlskey_current_fd, NULL) == 0)
-      log_set_pid_suffix_cb (pid_suffix_callback);
-#endif /*!HAVE_W32_SYSTEM*/
-
   /* Reset rereadable options to default values. */
   parse_rereadable_options (NULL, 0);
 
@@ -797,6 +815,7 @@ main (int argc, char **argv)
         {
         case aServer:
         case aDaemon:
+        case aSupervised:
         case aShutdown:
         case aFlush:
        case aListCRLs:
@@ -966,15 +985,57 @@ main (int argc, char **argv)
           log_debug ("... okay\n");
         }
 
+
+      thread_init ();
+      cert_cache_init ();
+      crl_cache_init ();
 #if USE_LDAP
       ldap_wrapper_launch_thread ();
 #endif /*USE_LDAP*/
+      http_register_netactivity_cb (netactivity_action);
+      start_command_handler (ASSUAN_INVALID_FD);
+      shutdown_reaper ();
+    }
+#ifndef HAVE_W32_SYSTEM
+  else if (cmd == aSupervised)
+    {
+      /* In supervised mode, we expect file descriptor 3 to be an
+         already opened, listening socket.
+
+         We will also not detach from the controlling process or close
+         stderr; the supervisor should handle all of that.  */
+      struct stat statbuf;
+      if (fstat (3, &statbuf) == -1 && errno == EBADF)
+        {
+          log_error ("file descriptor 3 must be validin --supervised mode\n");
+          dirmngr_exit (1);
+        }
+      socket_name = gnupg_get_socket_name (3);
+
+      /* Now start with logging to a file if this is desired. */
+      if (logfile)
+        {
+          log_set_file (logfile);
+          log_set_prefix (NULL, (GPGRT_LOG_WITH_PREFIX
+                                 |GPGRT_LOG_WITH_TIME
+                                 |GPGRT_LOG_WITH_PID));
+          current_logfile = xstrdup (logfile);
+        }
+      else
+        log_set_prefix (NULL, 0);
 
+      thread_init ();
       cert_cache_init ();
       crl_cache_init ();
-      start_command_handler (ASSUAN_INVALID_FD);
+#if USE_LDAP
+      ldap_wrapper_launch_thread ();
+#endif /*USE_LDAP*/
+      http_register_netactivity_cb (netactivity_action);
+      handle_connections (3);
+      assuan_sock_close (3);
       shutdown_reaper ();
     }
+#endif /*HAVE_W32_SYSTEM*/
   else if (cmd == aDaemon)
     {
       assuan_fd_t fd;
@@ -1144,8 +1205,18 @@ main (int argc, char **argv)
           for (i=0; i <= 2; i++)
             {
               if (!log_test_fd (i) && i != fd )
-                close (i);
+                {
+                  if ( !close (i)
+                       && open ("/dev/null", i? O_WRONLY : O_RDONLY) == -1)
+                    {
+                      log_error ("failed to open '%s': %s\n",
+                                 "/dev/null", strerror (errno));
+                      cleanup ();
+                      dirmngr_exit (1);
+                    }
+                }
             }
+
           if (setsid() == -1)
             {
               log_error ("setsid() failed: %s\n", strerror(errno) );
@@ -1164,12 +1235,13 @@ main (int argc, char **argv)
         }
 #endif
 
+      thread_init ();
+      cert_cache_init ();
+      crl_cache_init ();
 #if USE_LDAP
       ldap_wrapper_launch_thread ();
 #endif /*USE_LDAP*/
-
-      cert_cache_init ();
-      crl_cache_init ();
+      http_register_netactivity_cb (netactivity_action);
       handle_connections (fd);
       assuan_sock_close (fd);
       shutdown_reaper ();
@@ -1192,11 +1264,12 @@ main (int argc, char **argv)
       memset (&ctrlbuf, 0, sizeof ctrlbuf);
       dirmngr_init_default_ctrl (&ctrlbuf);
 
+      thread_init ();
+      cert_cache_init ();
+      crl_cache_init ();
 #if USE_LDAP
       ldap_wrapper_launch_thread ();
 #endif /*USE_LDAP*/
-      cert_cache_init ();
-      crl_cache_init ();
       if (!argc)
         rc = crl_cache_load (&ctrlbuf, NULL);
       else
@@ -1217,11 +1290,12 @@ main (int argc, char **argv)
       memset (&ctrlbuf, 0, sizeof ctrlbuf);
       dirmngr_init_default_ctrl (&ctrlbuf);
 
+      thread_init ();
+      cert_cache_init ();
+      crl_cache_init ();
 #if USE_LDAP
       ldap_wrapper_launch_thread ();
 #endif /*USE_LDAP*/
-      cert_cache_init ();
-      crl_cache_init ();
       rc = crl_fetch (&ctrlbuf, argv[0], &reader);
       if (rc)
         log_error (_("fetching CRL from '%s' failed: %s\n"),
@@ -1251,15 +1325,6 @@ main (int argc, char **argv)
       char *filename;
       char *filename_esc;
 
-#ifdef HAVE_W32_SYSTEM
-      /* On Windows systems, dirmngr always runs as system daemon, and
-        the per-user configuration is never used.  So we short-cut
-        everything to use the global system configuration of dirmngr
-        above, and here we set the no change flag to make these
-        read-only.  */
-      flags |= GC_OPT_FLAG_NO_CHANGE;
-#endif
-
       /* First the configuration file.  This is not an option, but it
         is vital information for GPG Conf.  */
       if (!opt.config_filename)
@@ -1297,6 +1362,7 @@ main (int argc, char **argv)
       es_printf ("max-replies:%lu:%u\n",
               flags | GC_OPT_FLAG_DEFAULT, DEFAULT_MAX_REPLIES);
       es_printf ("allow-ocsp:%lu:\n", flags | GC_OPT_FLAG_NONE);
+      es_printf ("allow-version-check:%lu:\n", flags | GC_OPT_FLAG_NONE);
       es_printf ("ocsp-responder:%lu:\n", flags | GC_OPT_FLAG_NONE);
       es_printf ("ocsp-signer:%lu:\n", flags | GC_OPT_FLAG_NONE);
 
@@ -1638,6 +1704,16 @@ dirmngr_sighup_action (void)
 }
 
 
+/* This function is called if some network activity was done.  At this
+ * point we know the we have a network and we can decide whether to
+ * run scheduled background tasks soon.  The function should return
+ * quickly and only trigger actions for another thread. */
+static void
+netactivity_action (void)
+{
+  network_activity_seen = 1;
+}
+
 
 /* The signal handler. */
 #ifndef HAVE_W32_SYSTEM
@@ -1694,6 +1770,7 @@ housekeeping_thread (void *arg)
 {
   static int sentinel;
   time_t curtime;
+  struct server_control_s ctrlbuf;
 
   (void)arg;
 
@@ -1704,12 +1781,23 @@ housekeeping_thread (void *arg)
       return NULL;
     }
   sentinel++;
-  if (opt.verbose)
+  if (opt.verbose > 1)
     log_info ("starting housekeeping\n");
 
+  memset (&ctrlbuf, 0, sizeof ctrlbuf);
+  dirmngr_init_default_ctrl (&ctrlbuf);
+
   ks_hkp_housekeeping (curtime);
+  if (network_activity_seen)
+    {
+      network_activity_seen = 0;
+      if (opt.use_tor || opt.allow_version_check)
+        dirmngr_load_swdb (&ctrlbuf, 0);
+    }
 
-  if (opt.verbose)
+  dirmngr_deinit_default_ctrl (&ctrlbuf);
+
+  if (opt.verbose > 1)
     log_info ("ready with housekeeping\n");
   sentinel--;
   return NULL;
@@ -1747,20 +1835,6 @@ time_for_housekeeping_p (time_t curtime)
 static void
 handle_tick (void)
 {
-  /* Under Windows we don't use signals and need a way for the loop to
-     check for the shutdown flag.  */
-#ifdef HAVE_W32_SYSTEM
-  if (shutdown_pending)
-    log_info (_("SIGTERM received - shutting down ...\n"));
-  if (shutdown_pending > 2)
-    {
-      log_info (_("shutdown forced\n"));
-      log_info ("%s %s stopped\n", strusage(11), strusage(13) );
-      cleanup ();
-      dirmngr_exit (0);
-    }
-#endif /*HAVE_W32_SYSTEM*/
-
   if (time_for_housekeeping_p (gnupg_get_time ()))
     {
       npth_t thread;
@@ -1840,6 +1914,35 @@ start_connection_thread (void *arg)
 }
 
 
+#ifdef HAVE_INOTIFY_INIT
+/* Read an inotify event and return true if it matches NAME.  */
+static int
+my_inotify_is_name (int fd, const char *name)
+{
+  union {
+    struct inotify_event ev;
+    char _buf[sizeof (struct inotify_event) + 100 + 1];
+  } buf;
+  int n;
+  const char *s;
+
+  s = strrchr (name, '/');
+  if (s && s[1])
+    name = s + 1;
+
+  n = npth_read (fd, &buf, sizeof buf);
+  if (n < sizeof (struct inotify_event))
+    return 0;
+  if (buf.ev.len < strlen (name)+1)
+    return 0;
+  if (strcmp (buf.ev.name, name))
+    return 0; /* Not the desired file.  */
+
+  return 1; /* Found.  */
+}
+#endif /*HAVE_INOTIFY_INIT*/
+
+
 /* Main loop in daemon mode. */
 static void
 handle_connections (assuan_fd_t listen_fd)
@@ -1857,6 +1960,9 @@ handle_connections (assuan_fd_t listen_fd)
   struct timespec curtime;
   struct timespec timeout;
   int saved_errno;
+#ifdef HAVE_INOTIFY_INIT
+  int my_inotify_fd;
+#endif /*HAVE_INOTIFY_INIT*/
 
   npth_attr_init (&tattr);
   npth_attr_setdetachstate (&tattr, NPTH_CREATE_DETACHED);
@@ -1871,12 +1977,43 @@ handle_connections (assuan_fd_t listen_fd)
   npth_sigev_fini ();
 #endif
 
+#ifdef HAVE_INOTIFY_INIT
+  if (disable_check_own_socket)
+    my_inotify_fd = -1;
+  else if ((my_inotify_fd = inotify_init ()) == -1)
+    log_info ("error enabling fast daemon termination: %s\n",
+              strerror (errno));
+  else
+    {
+      /* We need to watch the directory for the file because there
+       * won't be an IN_DELETE_SELF for a socket file.  */
+      char *slash = strrchr (socket_name, '/');
+      log_assert (slash && slash[1]);
+      *slash = 0;
+      if (inotify_add_watch (my_inotify_fd, socket_name, IN_DELETE) == -1)
+        {
+          close (my_inotify_fd);
+          my_inotify_fd = -1;
+        }
+      *slash = '/';
+    }
+#endif /*HAVE_INOTIFY_INIT*/
+
+
   /* Setup the fdset.  It has only one member.  This is because we use
      pth_select instead of pth_accept to properly sync timeouts with
      to full second.  */
   FD_ZERO (&fdset);
   FD_SET (FD2INT (listen_fd), &fdset);
   nfd = FD2INT (listen_fd);
+#ifdef HAVE_INOTIFY_INIT
+  if (my_inotify_fd != -1)
+    {
+      FD_SET (my_inotify_fd, &fdset);
+      if (my_inotify_fd > nfd)
+        nfd = my_inotify_fd;
+    }
+#endif /*HAVE_INOTIFY_INIT*/
 
   npth_clock_gettime (&abstime);
   abstime.tv_sec += TIMERTICK_INTERVAL;
@@ -1928,11 +2065,28 @@ handle_connections (assuan_fd_t listen_fd)
        }
 
       if (ret <= 0)
-       /* Interrupt or timeout.  Will be handled when calculating the
-          next timeout.  */
-       continue;
+        {
+          /* Interrupt or timeout.  Will be handled when calculating the
+             next timeout.  */
+          continue;
+        }
+
+      if (shutdown_pending)
+        {
+          /* Do not anymore accept connections.  */
+          continue;
+        }
+
+#ifdef HAVE_INOTIFY_INIT
+      if (my_inotify_fd != -1 && FD_ISSET (my_inotify_fd, &read_fdset)
+          && my_inotify_is_name (my_inotify_fd, socket_name))
+        {
+          shutdown_pending = 1;
+          log_info ("socket file has been removed - shutting down\n");
+        }
+#endif /*HAVE_INOTIFY_INIT*/
 
-      if (!shutdown_pending && FD_ISSET (FD2INT (listen_fd), &read_fdset))
+      if (FD_ISSET (FD2INT (listen_fd), &read_fdset))
        {
           plen = sizeof paddr;
          fd = INT2FD (npth_accept (FD2INT(listen_fd),
@@ -1949,9 +2103,8 @@ handle_connections (assuan_fd_t listen_fd)
 
               memset (&argval, 0, sizeof argval);
               argval.afd = fd;
-              snprintf (threadname, sizeof threadname-1,
+              snprintf (threadname, sizeof threadname,
                         "conn fd=%d", FD2INT(fd));
-              threadname[sizeof threadname -1] = 0;
 
               ret = npth_create (&thread, &tattr,
                                  start_connection_thread, argval.aptr);
@@ -1967,7 +2120,20 @@ handle_connections (assuan_fd_t listen_fd)
        }
     }
 
+#ifdef HAVE_INOTIFY_INIT
+  if (my_inotify_fd != -1)
+    close (my_inotify_fd);
+#endif /*HAVE_INOTIFY_INIT*/
   npth_attr_destroy (&tattr);
   cleanup ();
   log_info ("%s %s stopped\n", strusage(11), strusage(13));
 }
+
+const char*
+dirmngr_get_current_socket_name (void)
+{
+  if (socket_name)
+    return socket_name;
+  else
+    return dirmngr_socket_name ();
+}
index 6127386..da1c4be 100644 (file)
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef DIRMNGR_H
@@ -32,6 +32,7 @@
 #include "../common/util.h"
 #include "../common/membuf.h"
 #include "../common/sysutils.h" /* (gnupg_fd_t) */
+#include "../common/asshelp.h"  /* (assuan_context_t) */
 #include "../common/i18n.h"
 #include "http.h"     /* (parsed_uri_t) */
 
@@ -91,6 +92,7 @@ struct
 
   int running_detached; /* We are running in detached mode.  */
   int use_tor;          /* Tor mode has been enabled.  */
+  int allow_version_check; /* --allow-version-check is active.  */
 
   int force;          /* Force loading outdated CRLs. */
 
@@ -183,6 +185,7 @@ void dirmngr_exit( int );  /* Wrapper for exit() */
 void dirmngr_init_default_ctrl (ctrl_t ctrl);
 void dirmngr_deinit_default_ctrl (ctrl_t ctrl);
 void dirmngr_sighup_action (void);
+const char* dirmngr_get_current_socket_name (void);
 
 
 /*-- Various housekeeping functions.  --*/
@@ -196,11 +199,16 @@ ksba_cert_t get_issuing_cert_local (ctrl_t ctrl, const char *issuer);
 ksba_cert_t get_cert_local_ski (ctrl_t ctrl,
                                 const char *name, ksba_sexp_t keyid);
 gpg_error_t get_istrusted_from_client (ctrl_t ctrl, const char *hexfpr);
+int dirmngr_assuan_log_monitor (assuan_context_t ctx, unsigned int cat,
+                                const char *msg);
 void start_command_handler (gnupg_fd_t fd);
 gpg_error_t dirmngr_status (ctrl_t ctrl, const char *keyword, ...);
 gpg_error_t dirmngr_status_help (ctrl_t ctrl, const char *text);
 gpg_error_t dirmngr_tick (ctrl_t ctrl);
 
 
+/*-- loadswdb.c --*/
+gpg_error_t dirmngr_load_swdb (ctrl_t ctrl, int force);
+
 
 #endif /*DIRMNGR_H*/
index c5702b1..a0acb8e 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 191719e..6849af4 100644 (file)
@@ -25,7 +25,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -195,6 +195,21 @@ map_eai_to_gpg_error (int ec)
   return err;
 }
 
+#ifdef USE_ADNS
+static gpg_error_t
+map_adns_status_to_gpg_error (adns_status status)
+{
+  gpg_err_code_t ec;
+
+  switch (status)
+    {
+    /* case adns_s_netunreach: ec = GPG_ERR_ENETUNREACH; break; */
+    default: ec = GPG_ERR_GENERAL; break;
+    }
+  return gpg_error (ec);
+}
+#endif /*USE_ADNS*/
+
 
 #ifdef USE_ADNS
 /* Init ADNS and store the new state at R_STATE.  Returns 0 on
@@ -278,7 +293,7 @@ resolve_name_adns (const char *name, unsigned short port,
   my_protect ();
   if (ret)
     {
-      err = gpg_error_from_syserror ();
+      err = gpg_error (gpg_err_code_from_errno (ret));
       log_error ("DNS query failed: %s\n", gpg_strerror (err));
       goto leave;
     }
@@ -286,6 +301,9 @@ resolve_name_adns (const char *name, unsigned short port,
   err = gpg_error (GPG_ERR_NOT_FOUND);
   if (answer->status != adns_s_ok || answer->type != adns_r_addr)
     {
+      err = map_adns_status_to_gpg_error (answer->status);
+      if (gpg_err_code (err) == GPG_ERR_GENERAL)
+        err = gpg_error (GPG_ERR_NOT_FOUND);
       log_error ("DNS query returned an error: %s (%s)\n",
                  adns_strerror (answer->status),
                  adns_errabbrev (answer->status));
@@ -682,8 +700,8 @@ get_dns_cert (const char *name, int want_certtype,
   my_protect ();
   if (ret)
     {
-      err = gpg_error_from_syserror ();
-      /* log_error ("DNS query failed: %s\n", strerror (errno)); */
+      err = gpg_error (gpg_err_code_from_errno (ret));
+      /* log_error ("DNS query failed: %s\n", gpg_strerror (err)); */
       adns_finish (state);
       return err;
     }
@@ -692,7 +710,9 @@ get_dns_cert (const char *name, int want_certtype,
       /* log_error ("DNS query returned an error: %s (%s)\n", */
       /*            adns_strerror (answer->status), */
       /*            adns_errabbrev (answer->status)); */
-      err = gpg_error (GPG_ERR_NOT_FOUND);
+      err = map_adns_status_to_gpg_error (answer->status);
+      if (gpg_err_code (err) == GPG_ERR_GENERAL)
+        err = gpg_error (GPG_ERR_NOT_FOUND);
       goto leave;
     }
 
@@ -990,7 +1010,7 @@ get_dns_cert (const char *name, int want_certtype,
   if (r_key)
     *r_key = NULL;
   if (r_keylen)
-    *r_keylen = NULL;
+    *r_keylen = 0;
   *r_fpr = NULL;
   *r_fprlen = 0;
   *r_url = NULL;
@@ -1036,7 +1056,7 @@ getsrv (const char *name,struct srventry **list)
     my_protect ();
     if (rc)
       {
-        log_error ("DNS query failed: %s\n", strerror (errno));
+        log_error ("DNS query failed: %s\n", strerror (rc));
         adns_finish (state);
         return -1;
       }
@@ -1095,7 +1115,9 @@ getsrv (const char *name,struct srventry **list)
     if (tor_mode)
       return -1;
 
+    my_unprotect ();
     r = res_query (name, C_IN, T_SRV, answer, sizeof answer);
+    my_protect ();
     if (r < sizeof (HEADER) || r > sizeof answer
         || header->rcode != NOERROR || !(count=ntohs (header->ancount)))
       return 0; /* Error or no record found.  */
@@ -1281,7 +1303,7 @@ get_dns_cname (const char *name, char **r_cname)
     my_protect ();
     if (rc)
       {
-        err = gpg_error_from_syserror ();
+        err = gpg_error (gpg_err_code_from_errno (rc));
         log_error ("DNS query failed: %s\n", gpg_strerror (err));
         adns_finish (state);
         return err;
@@ -1289,7 +1311,7 @@ get_dns_cname (const char *name, char **r_cname)
     if (answer->status != adns_s_ok
         || answer->type != adns_r_cname || answer->nrrs != 1)
       {
-        err = gpg_error (GPG_ERR_GENERAL);
+        err = map_adns_status_to_gpg_error (answer->status);
         log_error ("DNS query returned an error or no records: %s (%s)\n",
                    adns_strerror (answer->status),
                    adns_errabbrev (answer->status));
index ee5132d..10e6d8d 100644 (file)
@@ -25,7 +25,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 #ifndef GNUPG_DIRMNGR_DNS_STUFF_H
 #define GNUPG_DIRMNGR_DNS_STUFF_H
index ac8238c..bc62c82 100644 (file)
@@ -27,7 +27,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /* Simple HTTP client implementation.  We try to keep the code as
@@ -261,6 +261,9 @@ static gpg_error_t (*tls_callback) (http_t, http_session_t, int);
 /* The list of files with trusted CA certificates.  */
 static strlist_t tls_ca_certlist;
 
+/* The global callback for net activity.  */
+static void (*netactivity_cb)(void);
+
 
 \f
 #if defined(HAVE_W32_SYSTEM) && !defined(HTTP_NO_WSASTARTUP)
@@ -492,6 +495,11 @@ http_register_tls_ca (const char *fname)
     }
   else
     {
+      /* Warn if we can't access right now, but register it anyway in
+         case it becomes accessible later */
+      if (access (fname, F_OK))
+        log_info (_("can't access '%s': %s\n"), fname,
+                  gpg_strerror (gpg_error_from_syserror()));
       sl = add_to_strlist (&tls_ca_certlist, fname);
       if (*sl->d && !strcmp (sl->d + strlen (sl->d) - 4, ".pem"))
         sl->flags = 1;
@@ -499,6 +507,25 @@ http_register_tls_ca (const char *fname)
 }
 
 
+/* Register a callback which is called every time the HTTP mode has
+ * made a successful connection to some server.  */
+void
+http_register_netactivity_cb (void (*cb)(void))
+{
+  netactivity_cb = cb;
+}
+
+
+/* Call the netactivity callback if any.  */
+static void
+notify_netactivity (void)
+{
+  if (netactivity_cb)
+    netactivity_cb ();
+}
+
+
+
 #ifdef USE_TLS
 /* Free the TLS session associated with SESS, if any.  */
 static void
@@ -586,6 +613,8 @@ http_session_new (http_session_t *r_session, const char *tls_priority,
     const char *errpos;
     int rc;
     strlist_t sl;
+    int add_system_cas = !!(flags & HTTP_FLAG_TRUST_SYS);
+    int is_hkps_pool;
 
     rc = gnutls_certificate_allocate_credentials (&sess->certcred);
     if (rc < 0)
@@ -596,13 +625,14 @@ http_session_new (http_session_t *r_session, const char *tls_priority,
         goto leave;
       }
 
+    is_hkps_pool = (intended_hostname
+                    && !ascii_strcasecmp (intended_hostname,
+                                          "hkps.pool.sks-keyservers.net"));
+
     /* If the user has not specified a CA list, and they are looking
      * for the hkps pool from sks-keyservers.net, then default to
      * Kristian's certificate authority:  */
-    if (!tls_ca_certlist
-        && intended_hostname
-        && !ascii_strcasecmp (intended_hostname,
-                              "hkps.pool.sks-keyservers.net"))
+    if (!tls_ca_certlist && is_hkps_pool)
       {
         char *pemname = make_filename_try (gnupg_datadir (),
                                            "sks-keyservers.netCA.pem", NULL);
@@ -635,10 +665,12 @@ http_session_new (http_session_t *r_session, const char *tls_priority,
               log_info ("setting CA from file '%s' failed: %s\n",
                         sl->d, gnutls_strerror (rc));
           }
+        if (!tls_ca_certlist && !is_hkps_pool)
+          add_system_cas = 1;
       }
 
     /* Add system certificates to the session.  */
-    if ((flags & HTTP_FLAG_TRUST_SYS))
+    if (add_system_cas)
       {
 #if GNUTLS_VERSION_NUMBER >= 0x030014
         static int shown;
@@ -2279,6 +2311,8 @@ connect_server (const char *server, unsigned short port,
             *r_host_not_found = 1;
           log_error ("can't connect to '%s': %s\n", server, strerror (errno));
         }
+      else
+        notify_netactivity ();
       return sock;
 
 #else /*!ASSUAN_SOCK_TOR*/
@@ -2371,7 +2405,10 @@ connect_server (const char *server, unsigned short port,
           if (ret)
             last_errno = errno;
           else
-            connected = 1;
+            {
+              connected = 1;
+              notify_netactivity ();
+            }
         }
       free_dns_addrinfo (aibuf);
     }
index 569ccea..2a36fda 100644 (file)
@@ -26,7 +26,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 #ifndef GNUPG_COMMON_HTTP_H
 #define GNUPG_COMMON_HTTP_H
@@ -98,6 +98,8 @@ typedef struct http_context_s *http_t;
 
 void http_register_tls_callback (gpg_error_t (*cb)(http_t,http_session_t,int));
 void http_register_tls_ca (const char *fname);
+void http_register_netactivity_cb (void (*cb)(void));
+
 
 gpg_error_t http_session_new (http_session_t *r_session,
                               const char *tls_priority,
index 21aa646..1087bb5 100644 (file)
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index c373bf9..d576ef0 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef DIRMNGR_KS_ACTION_H
index 96e092d..b1f02ad 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index bcc1750..3b5e75d 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -447,45 +447,48 @@ map_host (ctrl_t ctrl, const char *name, int force_reselect,
         }
       hi = hosttable[idx];
 
-#ifdef USE_DNS_SRV
-      /* Check for SRV records.  */
-      srvrecord = xtryasprintf ("_hkp._tcp.%s", name);
-      if (srvrecord == NULL)
-        {
-          err = gpg_error_from_syserror ();
-          xfree (reftbl);
-          return err;
-        }
-
-      srvscount = getsrv (srvrecord, &srvs);
-      xfree (srvrecord);
-      if (srvscount < 0)
+#ifdef USE_DNS_SRV
+      if (!is_ip_address (name))
         {
-          err = gpg_error_from_syserror ();
-          xfree (reftbl);
-          return err;
-        }
-
-      if (srvscount > 0)
-        {
-          int i;
-          is_pool = srvscount > 1;
+          /* Check for SRV records.  */
+          srvrecord = xtryasprintf ("_hkp._tcp.%s", name);
+          if (srvrecord == NULL)
+            {
+              err = gpg_error_from_syserror ();
+              xfree (reftbl);
+              return err;
+            }
 
-          for (i = 0; i < srvscount; i++)
+          srvscount = getsrv (srvrecord, &srvs);
+          xfree (srvrecord);
+          if (srvscount < 0)
             {
-              err = resolve_dns_name (srvs[i].target, 0,
-                                      AF_UNSPEC, SOCK_STREAM,
-                                      &ai, &cname);
-              if (err)
-                continue;
-              dirmngr_tick (ctrl);
-              add_host (name, is_pool, ai, srvs[i].port,
-                        reftbl, reftblsize, &refidx);
+              err = gpg_error_from_syserror ();
+              xfree (reftbl);
+              return err;
             }
 
-          xfree (srvs);
+          if (srvscount > 0)
+            {
+              int i;
+              is_pool = srvscount > 1;
+
+              for (i = 0; i < srvscount; i++)
+                {
+                  err = resolve_dns_name (srvs[i].target, 0,
+                                          AF_UNSPEC, SOCK_STREAM,
+                                          &ai, &cname);
+                  if (err)
+                    continue;
+                  dirmngr_tick (ctrl);
+                  add_host (name, is_pool, ai, srvs[i].port,
+                            reftbl, reftblsize, &refidx);
+                }
+
+              xfree (srvs);
+            }
         }
-#endif /* USE_DNS_SRV */
+#endif /* USE_DNS_SRV */
 
       /* Find all A records for this entry and put them into the pool
          list - if any.  */
index adee04f..4c4ab1e 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 748274d..d49d046 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index ad2110e..ee55bf2 100644 (file)
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -513,12 +513,13 @@ my_ldap_connect (parsed_uri_t uri, LDAP **ldap_connp,
 #endif /* LDAP_OPT_X_TLS_CACERTFILE && HAVE_LDAP_SET_OPTION */
 #endif
 
-#ifndef HAVE_LDAP_START_TLS_S
+#ifdef HAVE_LDAP_START_TLS_S
   if (uri->use_tls)
     {
       /* XXX: We need an option to determine whether to abort if the
         certificate is bad or not.  Right now we conservatively
         default to checking the certificate and aborting.  */
+#ifndef HAVE_W32_SYSTEM
       int check_cert = LDAP_OPT_X_TLS_HARD; /* LDAP_OPT_X_TLS_NEVER */
 
       err = ldap_set_option (ldap_conn,
@@ -528,8 +529,21 @@ my_ldap_connect (parsed_uri_t uri, LDAP **ldap_connp,
          log_error ("Failed to set TLS option on LDAP connection.\n");
          goto out;
        }
+#else
+      /* On Windows, the certificates are checked by default.  If the
+        option to disable checking mentioned above is ever
+        implemented, the way to do that on Windows is to install a
+        callback routine using ldap_set_option (..,
+        LDAP_OPT_SERVER_CERTIFICATE, ..); */
+#endif
 
-      err = ldap_start_tls_s (ldap_conn, NULL, NULL);
+      err = ldap_start_tls_s (ldap_conn,
+#ifdef HAVE_W32_SYSTEM
+                             /* ServerReturnValue, result */
+                             NULL, NULL,
+#endif
+                             /* ServerControls, ClientControls */
+                             NULL, NULL);
       if (err)
        {
          log_error ("Failed to connect to LDAP server with TLS.\n");
index cb48f7f..b5b4dd0 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef DIRMNGR_KS_ENGINE_H
index 62f8f6d..9671496 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 1ef1b91..bdbb6c3 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef DIRMNGR_LDAP_PARSE_URI_H
index ce63ea6..478e694 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /*
index 5fa3eac..b9931a0 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /*
index f7f5680..a015efa 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef LDAP_WRAPPER_H
index 8056e67..b6eb452 100644 (file)
@@ -14,7 +14,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+   along with this program; if not, see <https://www.gnu.org/licenses/>.  */
 
 #ifndef LDAPSERVER_H
 #define LDAPSERVER_H
diff --git a/dirmngr/loadswdb.c b/dirmngr/loadswdb.c
new file mode 100644 (file)
index 0000000..bc56c2a
--- /dev/null
@@ -0,0 +1,394 @@
+/* loadswdb.c - Load the swdb file from versions.gnupg.org
+ * Copyright (C) 2016 g10 Code GmbH
+ *
+ * This file is part of GnuPG.
+ *
+ * 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 3 of the License, or
+ * (at your option) any later version.
+ *
+ * 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "dirmngr.h"
+#include "../common/ccparray.h"
+#include "../common/exectool.h"
+#include "misc.h"
+#include "ks-engine.h"
+
+
+/* Get the time from the current swdb file and store it at R_FILEDATE
+ * and R_VERIFIED.  If the file does not exist 0 is stored at there.
+ * The function returns 0 on sucess or an error code.  */
+static gpg_error_t
+time_of_saved_swdb (const char *fname, time_t *r_filedate, time_t *r_verified)
+{
+  gpg_error_t err;
+  estream_t fp = NULL;
+  char *line = NULL;
+  size_t length_of_line = 0;
+  size_t  maxlen;
+  ssize_t len;
+  char *fields[2];
+  gnupg_isotime_t isot;
+  time_t filedate = (time_t)(-1);
+  time_t verified = (time_t)(-1);
+
+  *r_filedate = 0;
+  *r_verified = 0;
+
+  fp = es_fopen (fname, "r");
+  err = fp? 0 : gpg_error_from_syserror ();
+  if (err)
+    {
+      if (gpg_err_code (err) == GPG_ERR_ENOENT)
+        err = 0; /* No file - assume time is the year of Unix.  */
+      goto leave;
+    }
+
+  /* Note that the parser uses the first occurance of a matching
+   * values and ignores possible duplicated values.  */
+  maxlen = 2048; /* Set limit.  */
+  while ((len = es_read_line (fp, &line, &length_of_line, &maxlen)) > 0)
+    {
+      if (!maxlen)
+        {
+          err = gpg_error (GPG_ERR_LINE_TOO_LONG);
+          goto leave;
+        }
+      /* Strip newline and carriage return, if present.  */
+      while (len > 0 && (line[len - 1] == '\n' || line[len - 1] == '\r'))
+       line[--len] = '\0';
+
+      if (split_fields (line, fields, DIM (fields)) < DIM(fields))
+        continue; /* Skip empty lines and names w/o a value.  */
+      if (*fields[0] == '#')
+        continue; /* Skip comments.  */
+
+      /* Record the meta data.  */
+      if (filedate == (time_t)(-1) && !strcmp (fields[0], ".filedate"))
+        {
+          if (string2isotime (isot, fields[1]))
+            filedate = isotime2epoch (isot);
+        }
+      else if (verified == (time_t)(-1) && !strcmp (fields[0], ".verified"))
+        {
+          if (string2isotime (isot, fields[1]))
+            verified = isotime2epoch (isot);
+        }
+    }
+  if (len < 0 || es_ferror (fp))
+    {
+      err = gpg_error_from_syserror ();
+      goto leave;
+    }
+  if (filedate == (time_t)(-1) || verified == (time_t)(-1))
+    {
+      err = gpg_error (GPG_ERR_INV_TIME);
+      goto leave;
+    }
+
+  *r_filedate = filedate;
+  *r_verified = verified;
+
+ leave:
+  if (err)
+    log_error (_("error reading '%s': %s\n"), fname, gpg_strerror (err));
+  xfree (line);
+  es_fclose (fp);
+  return err;
+}
+
+
+
+/* Read a file from URL and return it as an estream memory buffer at
+ * R_FP.  */
+static gpg_error_t
+fetch_file (ctrl_t ctrl, const char *url, estream_t *r_fp)
+{
+  gpg_error_t err;
+  estream_t fp = NULL;
+  estream_t httpfp = NULL;
+  size_t nread, nwritten;
+  char buffer[1024];
+
+  if ((err = ks_http_fetch (ctrl, url, &httpfp)))
+    goto leave;
+
+  /* We now read the data from the web server into a memory buffer.
+   * To avoid excessive memory use in case of a ill behaving server we
+   * put a 64 k size limit on the buffer.  As of today the actual size
+   * of the swdb.lst file is 3k.  */
+  fp = es_fopenmem (64*1024, "rw");
+  if (!fp)
+    {
+      err = gpg_error_from_syserror ();
+      log_error ("error allocating memory buffer: %s\n", gpg_strerror (err));
+      goto leave;
+    }
+
+  for (;;)
+    {
+      if (es_read (httpfp, buffer, sizeof buffer, &nread))
+        {
+          err = gpg_error_from_syserror ();
+          log_error ("error reading '%s': %s\n",
+                     es_fname_get (httpfp), gpg_strerror (err));
+          goto leave;
+        }
+
+      if (!nread)
+        break; /* Ready.  */
+      if (es_write (fp, buffer, nread, &nwritten))
+        {
+          err = gpg_error_from_syserror ();
+          log_error ("error writing '%s': %s\n",
+                     es_fname_get (fp), gpg_strerror (err));
+          goto leave;
+        }
+      else if (nread != nwritten)
+        {
+          err = gpg_error (GPG_ERR_EIO);
+          log_error ("error writing '%s': %s\n",
+                     es_fname_get (fp), "short write");
+          goto leave;
+        }
+    }
+
+  es_rewind (fp);
+  *r_fp = fp;
+  fp = NULL;
+
+ leave:
+  es_fclose (httpfp);
+  es_fclose (fp);
+  return err;
+}
+
+
+/* Communication object for verify_status_cb.  */
+struct verify_status_parm_s
+{
+  time_t sigtime;
+  int anyvalid;
+};
+
+static void
+verify_status_cb (void *opaque, const char *keyword, char *args)
+{
+  struct verify_status_parm_s *parm = opaque;
+
+  /* We care only about the first valid signature.  */
+  if (!strcmp (keyword, "VALIDSIG") && !parm->anyvalid)
+    {
+      char *fields[3];
+
+      parm->anyvalid = 1;
+      if (split_fields (args, fields, DIM (fields)) >= 3)
+        parm->sigtime = parse_timestamp (fields[2], NULL);
+    }
+}
+
+
+
+/* Load the swdb file into the current home directory.  Do this onlky
+ * when needed unless FORCE is set which will always get a new
+ * copy.  */
+gpg_error_t
+dirmngr_load_swdb (ctrl_t ctrl, int force)
+{
+  gpg_error_t err;
+  char *fname = NULL;      /* The swdb.lst file.  */
+  char *tmp_fname = NULL;  /* The temporary swdb.lst file.  */
+  char *keyfile_fname = NULL;
+  estream_t swdb = NULL;
+  estream_t swdb_sig = NULL;
+  ccparray_t ccp;
+  const char **argv = NULL;
+  struct verify_status_parm_s verify_status_parm = { (time_t)(-1), 0 };
+  estream_t outfp = NULL;
+  time_t now = gnupg_get_time ();
+  time_t filedate = 0;  /* ".filedate" from our swdb.  */
+  time_t verified = 0;  /* ".verified" from our swdb.  */
+  gnupg_isotime_t isotime;
+
+
+  fname = make_filename_try (gnupg_homedir (), "swdb.lst", NULL);
+  if (!fname)
+    {
+      err = gpg_error_from_syserror ();
+      goto leave;
+    }
+
+  /* Check whether there is a need to get an update.  */
+  if (!force)
+    {
+      static int not_older_than;
+      static time_t lastcheck;
+
+      if (!not_older_than)
+        {
+          /* To balance access to the server we use a random time from
+           * 5 to 7 days for update checks.  */
+          not_older_than = 5 * 86400;
+          not_older_than += (get_uint_nonce () % (2*86400));
+        }
+
+      if (now - lastcheck < 3600)
+        {
+          /* We checked our swdb file in the last hour - don't check
+           * again to avoid unnecessary disk access.  */
+          err = 0;
+          goto leave;
+        }
+      lastcheck = now;
+
+      err = time_of_saved_swdb (fname, &filedate, &verified);
+      if (gpg_err_code (err) == GPG_ERR_INV_TIME)
+        err = 0; /* Force reading. */
+      if (err)
+        goto leave;
+      if (filedate >= now)
+        goto leave; /* Current or newer.  */
+      if (now - filedate < not_older_than)
+        goto leave; /* Our copy is pretty new (not older than 7 days).  */
+      if (verified > now && now - verified < 3*3600)
+        goto leave; /* We downloaded and verified in the last 3 hours.  */
+    }
+
+  /* Create the filename of the file with the keys. */
+  keyfile_fname = make_filename_try (gnupg_datadir (), "distsigkey.gpg", NULL);
+  if (!keyfile_fname)
+    goto leave;
+
+  /* Fetch the swdb from the web.  */
+  err = fetch_file (ctrl, "https://versions.gnupg.org/swdb.lst", &swdb);
+  if (err)
+    goto leave;
+  err = fetch_file (ctrl, "https://versions.gnupg.org/swdb.lst.sig", &swdb_sig);
+  if (err)
+    goto leave;
+
+  /* Run gpgv.  */
+  ccparray_init (&ccp, 0);
+  ccparray_put (&ccp, "--enable-special-filenames");
+  ccparray_put (&ccp, "--status-fd=2");
+  ccparray_put (&ccp, "--keyring");
+  ccparray_put (&ccp, keyfile_fname);
+  ccparray_put (&ccp, "--");
+  ccparray_put (&ccp, "-&@INEXTRA@");
+  ccparray_put (&ccp, "-");
+  ccparray_put (&ccp, NULL);
+  argv = ccparray_get (&ccp, NULL);
+  if (!argv)
+    {
+      err = gpg_error_from_syserror ();
+      goto leave;
+    }
+
+  err = gnupg_exec_tool_stream (gnupg_module_name (GNUPG_MODULE_NAME_GPGV),
+                                argv, swdb, swdb_sig, NULL,
+                                verify_status_cb, &verify_status_parm);
+  if (!err && verify_status_parm.sigtime == (time_t)(-1))
+    err = gpg_error (verify_status_parm.anyvalid? GPG_ERR_BAD_SIGNATURE
+                     /**/                       : GPG_ERR_INV_TIME      );
+  if (err)
+    goto leave;
+
+  /* If our swdb is not older than the downloaded one.  We don't
+   * bother to update.  */
+  if (!force && filedate >= verify_status_parm.sigtime)
+    goto leave;
+
+  /* Create a file name for a temporary file in the home directory.
+   * We will later rename that file to the real name.  */
+  {
+    char *tmpstr;
+
+#ifdef HAVE_W32_SYSTEM
+    tmpstr = es_bsprintf ("tmp-%u-swdb", (unsigned int)getpid ());
+#else
+    tmpstr = es_bsprintf (".#%u.swdb", (unsigned int)getpid ());
+#endif
+    if (!tmpstr)
+      {
+        err = gpg_error_from_syserror ();
+        goto leave;
+      }
+    tmp_fname = make_filename_try (gnupg_homedir (), tmpstr, NULL);
+    xfree (tmpstr);
+    if (!tmp_fname)
+      {
+        err = gpg_error_from_syserror ();
+        goto leave;
+      }
+  }
+
+  outfp = es_fopen (tmp_fname, "w");
+  if (!outfp)
+    {
+      err = gpg_error_from_syserror ();
+      log_error (_("error creating '%s': %s\n"), tmp_fname, gpg_strerror (err));
+      goto leave;
+    }
+
+  epoch2isotime (isotime, verify_status_parm.sigtime);
+  es_fprintf (outfp, ".filedate %s\n", isotime);
+  epoch2isotime (isotime, now);
+  es_fprintf (outfp, ".verified %s\n", isotime);
+
+  if (es_fseek (swdb, 0, SEEK_SET))
+    {
+      err = gpg_error_from_syserror ();
+      goto leave;
+    }
+
+  err = copy_stream (swdb, outfp);
+  if (err)
+    {
+      /* Well, it might also be a reading error, but that is pretty
+       * unlikely for a memory stream.  */
+      log_error (_("error writing '%s': %s\n"), tmp_fname, gpg_strerror (err));
+      goto leave;
+    }
+
+  if (es_fclose (outfp))
+    {
+      err = gpg_error_from_syserror ();
+      log_error (_("error writing '%s': %s\n"), tmp_fname, gpg_strerror (err));
+      goto leave;
+    }
+  outfp = NULL;
+
+  err = gnupg_rename_file (tmp_fname, fname, NULL);
+  if (err)
+    goto leave;
+  xfree (tmp_fname);
+  tmp_fname = NULL;
+
+
+ leave:
+  es_fclose (outfp);
+  if (tmp_fname)
+    gnupg_remove (tmp_fname);  /* This is a temporary file.  */
+  xfree (argv);
+  es_fclose (swdb_sig);
+  es_fclose (swdb);
+  xfree (keyfile_fname);
+  xfree (tmp_fname);
+  xfree (fname);
+  return err;
+}
index 3ac4160..0088498 100644 (file)
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -95,6 +95,13 @@ struct server_local_s
 
   /* State variable private to is_tor_running.  */
   int tor_state;
+
+  /* If the first both flags are set the assuan logging of data lines
+   * is suppressed.  The count variable is used to show the number of
+   * non-logged bytes.  */
+  size_t inhibit_data_logging_count;
+  unsigned int inhibit_data_logging : 1;
+  unsigned int inhibit_data_logging_now : 1;
 };
 
 
@@ -175,9 +182,14 @@ leave_cmd (assuan_context_t ctx, gpg_error_t err)
 static gpg_error_t
 data_line_write (assuan_context_t ctx, const void *buffer_arg, size_t size)
 {
+  ctrl_t ctrl = assuan_get_pointer (ctx);
   const char *buffer = buffer_arg;
   gpg_error_t err;
 
+  /* If we do not want logging, enable it it here.  */
+  if (ctrl && ctrl->server_local && ctrl->server_local->inhibit_data_logging)
+    ctrl->server_local->inhibit_data_logging_now = 1;
+
   if (opt.verbose && buffer && size)
     {
       /* Ease reading of output by sending a physical line at each LF.  */
@@ -193,14 +205,14 @@ data_line_write (assuan_context_t ctx, const void *buffer_arg, size_t size)
           if (err)
             {
               gpg_err_set_errno (EIO);
-              return err;
+              goto leave;
             }
           buffer += n;
           nbytes -= n;
           if (nbytes && (err=assuan_send_data (ctx, NULL, 0))) /* Flush line. */
             {
               gpg_err_set_errno (EIO);
-              return err;
+              goto leave;
             }
         }
       while (nbytes);
@@ -211,11 +223,18 @@ data_line_write (assuan_context_t ctx, const void *buffer_arg, size_t size)
       if (err)
         {
           gpg_err_set_errno (EIO);  /* For use by data_line_cookie_write.  */
-          return err;
+          goto leave;
         }
     }
 
-  return 0;
+ leave:
+  if (ctrl && ctrl->server_local && ctrl->server_local->inhibit_data_logging)
+    {
+      ctrl->server_local->inhibit_data_logging_now = 0;
+      ctrl->server_local->inhibit_data_logging_count += size;
+    }
+
+  return err;
 }
 
 
@@ -237,6 +256,16 @@ data_line_cookie_close (void *cookie)
 {
   assuan_context_t ctx = cookie;
 
+  if (DBG_IPC)
+    {
+      ctrl_t ctrl = assuan_get_pointer (ctx);
+
+      if (ctrl && ctrl->server_local
+          && ctrl->server_local->inhibit_data_logging
+          && ctrl->server_local->inhibit_data_logging_count)
+        log_debug ("(%zu bytes sent via D lines not shown)\n",
+                   ctrl->server_local->inhibit_data_logging_count);
+    }
   if (assuan_send_data (ctx, NULL, 0))
     {
       gpg_err_set_errno (EIO);
@@ -275,7 +304,7 @@ strcpy_escaped_plus (char *d, const unsigned char *s)
 
 
 /* This function returns true if a Tor server is running.  The sattus
-   is cached for the current conenction.  */
+   is cached for the current connection.  */
 static int
 is_tor_running (ctrl_t ctrl)
 {
@@ -794,10 +823,10 @@ cmd_dns_cert (assuan_context_t ctx, char *line)
 
 \f
 static const char hlp_wkd_get[] =
-  "WKD_GET [--submission-address] <user_id>\n"
+  "WKD_GET [--submission-address|--policy-flags] <user_id>\n"
   "\n"
-  "Return the key or the submission address for <user_id>\n"
-  "from a Web Key Directory.";
+  "Return the key or other info for <user_id>\n"
+  "from the Web Key Directory.";
 static gpg_error_t
 cmd_wkd_get (assuan_context_t ctx, char *line)
 {
@@ -809,8 +838,11 @@ cmd_wkd_get (assuan_context_t ctx, char *line)
   char *uri = NULL;
   char *encodedhash = NULL;
   int opt_submission_addr;
+  int opt_policy_flags;
+  int no_log = 0;
 
   opt_submission_addr = has_option (line, "--submission-address");
+  opt_policy_flags = has_option (line, "--policy-flags");
   line = skip_options (line);
 
   mbox = mailbox_from_userid (line);
@@ -836,6 +868,13 @@ cmd_wkd_get (assuan_context_t ctx, char *line)
                        "/.well-known/openpgpkey/submission-address",
                        NULL);
     }
+  else if (opt_policy_flags)
+    {
+      uri = strconcat ("https://",
+                       domain,
+                       "/.well-known/openpgpkey/policy",
+                       NULL);
+    }
   else
     {
       uri = strconcat ("https://",
@@ -843,6 +882,7 @@ cmd_wkd_get (assuan_context_t ctx, char *line)
                        "/.well-known/openpgpkey/hu/",
                        encodedhash,
                        NULL);
+      no_log = 1;
     }
   if (!uri)
     {
@@ -860,8 +900,13 @@ cmd_wkd_get (assuan_context_t ctx, char *line)
                        "error setting up a data stream");
     else
       {
+        if (no_log)
+          ctrl->server_local->inhibit_data_logging = 1;
+        ctrl->server_local->inhibit_data_logging_now = 0;
+        ctrl->server_local->inhibit_data_logging_count = 0;
         err = ks_action_fetch (ctrl, uri, outfp);
         es_fclose (outfp);
+        ctrl->server_local->inhibit_data_logging = 0;
       }
   }
 
@@ -1321,7 +1366,7 @@ lookup_cert_by_pattern (assuan_context_t ctx, char *line,
         }
     }
 
-  /* First look through the internal cache.  The certifcates retruned
+  /* First look through the internal cache.  The certifcates returned
      here are not counted towards the truncation limit.  */
   if (single && !cache_only)
     ; /* Do not read from the local cache in this case.  */
@@ -1765,7 +1810,11 @@ ensure_keyserver (ctrl_t ctrl)
   if (ctrl->server_local->keyservers)
     return 0; /* Already set for this session.  */
   if (!opt.keyserver)
-    return 0; /* No global option set.  */
+    {
+      /* No global option set.  Fall back to default:  */
+      return make_keyserver_item (DIRMNGR_DEFAULT_KEYSERVER,
+                                  &ctrl->server_local->keyservers);
+    }
 
   for (sl = opt.keyserver; sl; sl = sl->next)
     {
@@ -2070,8 +2119,12 @@ cmd_ks_get (assuan_context_t ctx, char *line)
     err = set_error (GPG_ERR_ASS_GENERAL, "error setting up a data stream");
   else
     {
+      ctrl->server_local->inhibit_data_logging = 1;
+      ctrl->server_local->inhibit_data_logging_now = 0;
+      ctrl->server_local->inhibit_data_logging_count = 0;
       err = ks_action_get (ctrl, ctrl->server_local->keyservers, list, outfp);
       es_fclose (outfp);
+      ctrl->server_local->inhibit_data_logging = 0;
     }
 
  leave:
@@ -2104,8 +2157,12 @@ cmd_ks_fetch (assuan_context_t ctx, char *line)
     err = set_error (GPG_ERR_ASS_GENERAL, "error setting up a data stream");
   else
     {
+      ctrl->server_local->inhibit_data_logging = 1;
+      ctrl->server_local->inhibit_data_logging_now = 0;
+      ctrl->server_local->inhibit_data_logging_count = 0;
       err = ks_action_fetch (ctrl, line, outfp);
       es_fclose (outfp);
+      ctrl->server_local->inhibit_data_logging = 0;
     }
 
  leave:
@@ -2184,6 +2241,22 @@ cmd_ks_put (assuan_context_t ctx, char *line)
 }
 
 
+\f
+static const char hlp_loadswdb[] =
+  "LOADSWDB [--force]\n"
+  "\n"
+  "Load and verify the swdb.lst from the Net.";
+static gpg_error_t
+cmd_loadswdb (assuan_context_t ctx, char *line)
+{
+  ctrl_t ctrl = assuan_get_pointer (ctx);
+  gpg_error_t err;
+
+  err = dirmngr_load_swdb (ctrl, has_option (line, "--force"));
+
+  return leave_cmd (ctx, err);
+}
+
 
 \f
 static const char hlp_getinfo[] =
@@ -2217,7 +2290,7 @@ cmd_getinfo (assuan_context_t ctx, char *line)
     }
   else if (!strcmp (line, "socket_name"))
     {
-      const char *s = dirmngr_socket_name ();
+      const char *s = dirmngr_get_current_socket_name ();
       err = assuan_send_data (ctx, s, strlen (s));
     }
   else if (!strcmp (line, "tor"))
@@ -2287,7 +2360,6 @@ cmd_reloaddirmngr (assuan_context_t ctx, char *line)
 }
 
 
-
 \f
 /* Tell the assuan library about our commands. */
 static int
@@ -2315,6 +2387,7 @@ register_commands (assuan_context_t ctx)
     { "KS_FETCH",   cmd_ks_fetch,   hlp_ks_fetch },
     { "KS_PUT",     cmd_ks_put,     hlp_ks_put },
     { "GETINFO",    cmd_getinfo,    hlp_getinfo },
+    { "LOADSWDB",   cmd_loadswdb,   hlp_loadswdb },
     { "KILLDIRMNGR",cmd_killdirmngr,hlp_killdirmngr },
     { "RELOADDIRMNGR",cmd_reloaddirmngr,hlp_reloaddirmngr },
     { NULL, NULL }
@@ -2347,6 +2420,30 @@ reset_notify (assuan_context_t ctx, char *line)
 }
 
 
+/* This function is called by our assuan log handler to test whether a
+ * log message shall really be printed.  The function must return
+ * false to inhibit the logging of MSG.  CAT gives the requested log
+ * category.  MSG might be NULL. */
+int
+dirmngr_assuan_log_monitor (assuan_context_t ctx, unsigned int cat,
+                            const char *msg)
+{
+  ctrl_t ctrl = assuan_get_pointer (ctx);
+
+  (void)cat;
+  (void)msg;
+
+  if (!ctrl || !ctrl->server_local)
+    return 1; /* Can't decide - allow logging.  */
+
+  if (!ctrl->server_local->inhibit_data_logging)
+    return 1; /* Not requested - allow logging.  */
+
+  /* Disallow logging if *_now is true.  */
+  return !ctrl->server_local->inhibit_data_logging_now;
+}
+
+
 /* Startup the server and run the main command loop.  With FD = -1,
    use stdin/stdout. */
 void
index 05b39a0..5e8bf22 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 59959c4..a87382a 100644 (file)
@@ -26,7 +26,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 145b47a..932ca7d 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 99fd267..f773f1e 100644 (file)
@@ -25,7 +25,7 @@
  *
  * You should have received a copies of the GNU General Public License
  * and the GNU Lesser General Public License along with this program;
- * if not, see <http://www.gnu.org/licenses/>.
+ * if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef DIRMNGR_T_SUPPORT_H
index 80668d9..566a346 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef W32_LDAP_HELP_H
index dc8ba1f..a264e53 100644 (file)
@@ -15,6 +15,7 @@ This is the DETAILS file for GnuPG which specifies some internals and
 parts of the external API for GPG and GPGSM.
 
 * Format of the colon listings
+
   The format is a based on colon separated record, each recods starts
   with a tag string and extends to the end of the line.  Here is an
   example:
@@ -35,7 +36,9 @@ Note that new version of GnuPG or the use of certain options may add
 new fields to the output.  Parsers should not assume a limit on the
 number of fields per line.  Some fields are not yet used or only used
 with certain record types; parsers should ignore fields they are not
-aware of.
+aware of.  New versions of GnuPG or the use of certain options may add
+new types of records as well.  Parsers should ignore any record whose
+type they do not recognize for forward-compatibility.
 
 The double =--with-fingerprint= prints the fingerprint for the subkeys
 too.  Old versions of gpg used a slightly different format and required
@@ -52,7 +55,7 @@ described here.
     - sub :: Subkey (secondary key)
     - sec :: Secret key
     - ssb :: Secret subkey (secondary key)
-    - uid :: User id (only field 10 is used).
+    - uid :: User id
     - uat :: User attribute (same as user id except for field 10).
     - sig :: Signature
     - rev :: Revocation signature
@@ -60,6 +63,7 @@ described here.
     - pkd :: Public key data [*]
     - grp :: Keygrip
     - rvk :: Revocation key
+    - tfs :: TOFU statistics [*]
     - tru :: Trust database information [*]
     - spk :: Signature subpacket [*]
     - cfg :: Configuration data [*]
@@ -90,7 +94,7 @@ described here.
            ultimately valid.
     - w :: The key has a well known private part.
     - s :: The key has special validity.  This means that it might be
-           self-signed and expected to be used in the STEED sytem.
+           self-signed and expected to be used in the STEED system.
 
     If the validity information is given for a UID or UAT record, it
     describes the validity calculated based on this user ID.  If given
@@ -119,7 +123,7 @@ described here.
 
     The creation date of the key is given in UTC.  For UID and UAT
     records, this is used for the self-signature date.  Note that the
-    date is usally printed in seconds since epoch, however, we are
+    date is usually printed in seconds since epoch, however, we are
     migrating to an ISO 8601 format (e.g. "19660205T091500").  This is
     currently only relevant for X.509.  A simple way to detect the new
     format is to scan for the 'T'.  Note that old versions of gpg
@@ -135,7 +139,7 @@ described here.
     Used for serial number in crt records.  For UID and UAT records,
     this is a hash of the user ID contents used to represent that
     exact user ID.  For trust signatures, this is the trust depth
-    seperated by the trust value by a space.
+    separated by the trust value by a space.
 
 *** Field 9 -  Ownertrust
 
@@ -213,10 +217,6 @@ described here.
 
     For pub, sub, sec, and ssb records this field is used for the ECC
     curve name.
-*** Field 18 - TOFU Policy
-
-    This is the TOFU policy.  It is either good, bad, unknown, ask or
-    auto.  This is only shows for uid records.
 
 ** Special fields
 
@@ -230,6 +230,22 @@ pkd:0:1024:B665B1435F4C2 .... FF26ABB:
     !--------- index (eg. DSA goes from 0 to 3: p,q,g,y)
 #+end_example
 
+*** TFS - TOFU statistics
+
+    This field may follows a UID record to convey information about
+    the TOFU database.  The information is similar to a TOFU_STATS
+    status line.
+
+    - Field 2 :: tfs record version (must be 1)
+    - Field 3 :: validity -  A number with validity code.
+    - Field 4 :: signcount - The number of signatures seen.
+    - Field 5 :: encrcount - The number of encryptions done.
+    - Field 6 :: policy - A string with the policy
+    - Field 7 :: signture-first-seen - a timestamp or 0 if not known.
+    - Field 8 :: signature-most-recent-seen - a timestamp or 0 if not known.
+    - Field 9 :: encryption-first-done - a timestamp or 0 if not known.
+    - Field 10 :: encryption-most-recent-done - a timestamp or 0 if not known.
+
 *** TRU - Trust database information
     Example for a "tru" trust base record:
 #+begin_example
@@ -344,8 +360,10 @@ pkd:0:1024:B665B1435F4C2 .... FF26ABB:
 
   Every line is prefixed with "[GNUPG:] ", followed by a keyword with
   the type of the status line and some arguments depending on the type
-  (maybe none); an application should always be prepared to see new
-  keyworkds or more arguments in future versions.
+  (maybe none); an application should always be willing to ignore
+  unknown keywords that may be emitted by future versions of GnuPG.
+  Also, new versions of GnuPG may add arguments to existing keywords.
+  Any additional arguments should be ignored for forward-compatibility.
 
 ** General status codes
 *** NEWSIG [<signers_uid>]
@@ -701,9 +719,10 @@ pkd:0:1024:B665B1435F4C2 .... FF26ABB:
     This status identifies the key and the userid for all following
     Tofu information.  The fingerprint is the fingerprint of the
     primary key and the mbox is in general the addr-spec part of the
-    userid encoded in UTF-8 and percent escaped.
+    userid encoded in UTF-8 and percent escaped.  The fingerprint is
+    identical for all TOFU_USER lines up to a NEWSIG line.
 
-*** TOFU_STATS <validity> <sign-count> 0 [<policy> [<tm1> <tm2>]]
+*** TOFU_STATS <validity> <sign-count> 0 [<policy> [<tm1> <tm2> <tm3> <tm4>]]
 
     Statistics for the current user id.
 
@@ -722,9 +741,11 @@ pkd:0:1024:B665B1435F4C2 .... FF26ABB:
     - ask     :: Policy is "ask"
     - unknown :: Policy is not known.
 
-    TM1 gives the number of seconds since the the first messages was
-    verified.  TM2 gives the number of seconds since the most recent
-    message was verified.
+    TM1 ist the time the first message was verified.  TM2 is the time
+    the most recent message was verified.  TM3 is the time the first
+    message was encrypted.  TM4 is the most recent encryption. All may
+    either be seconds since Epoch or an ISO time string
+    (yyyymmddThhmmss).
 
 *** TOFU_STATS_SHORT <long_string>
 
@@ -914,7 +935,7 @@ pkd:0:1024:B665B1435F4C2 .... FF26ABB:
     commencing with a letter or such a string prefixed with a
     numerical error code and an underscore; e.g.: "151011327_EOF".
 *** SUCCESS [<location>]
-    Postive confirmation that an operation succeeded.  It is used
+    Positive confirmation that an operation succeeded.  It is used
     similar to ISO-C's EXIT_SUCCESS.  <location> is optional but if
     given should not contain spaces.  Used only with a few commands.
 
@@ -971,7 +992,7 @@ pkd:0:1024:B665B1435F4C2 .... FF26ABB:
     <name> is a percent-plus escaped filename describing the
     mountpoint for the current operation (e.g. used by "g13 --mount").
     This may either be the specified mountpoint or one randomly
-    choosen by g13.
+    chosen by g13.
 
 *** PINENTRY_LAUNCHED <pid>
     This status line is emitted by gpg to notify a client that a
index 94e65d8..e717479 100644 (file)
@@ -38,28 +38,31 @@ are delimited by a comma (e.g. =scd,w32:=). Commonly found keywords
 are
 
  - agent   :: The gpg-agent component
- - ssh     :: The ssh-agent part of the agent
+ - build   :: Changes to the build system
+ - ccid    :: The CCID driver in scdaemon
  - common  :: Code in common
- - iobuf   :: The IOBUF system in common
+ - dirmngr :: The dirmngr component
+ - doc     :: Documentation changes
  - gpg     :: The gpg or gpgv components
- - gpgsm   :: The gpgsm component
+ - sm      :: The gpgsm component (also "gpgsm")
+ - gpgscm  :: The regression test driver
+ - indent  :: Indentation and similar changes
+ - iobuf   :: The IOBUF system in common
+ - po      :: Translations
  - scd     :: The scdaemon component
- - ccid    :: The CCID driver in scdaemon
- - dirmngr :: The dirmngr component
- - wks     :: The web key service tools
+ - speedo  :: Speedo build system specific changes
+ - ssh     :: The ssh-agent part of the agent
+ - tests   :: The regressions tests
  - tools   :: Other code in tools
  - w32     :: Windows related code
- - po      :: Translations
- - build   :: Changes to the build system
- - speedo  :: Speedo build system specific changes
- - doc     :: Documentation changes
- - indent  :: Indentation and similar changes
+ - wks     :: The web key service tools
+ - yat2m   :: The yat2m tool.
 
 Typo fixes and documentation updates don't need a ChangeLog entry;
 thus you would use a commit message like
 
 #+begin_example
-Fix typo in a comment
+doc: Fix typo in a comment
 
 --
 #+end_example
@@ -128,9 +131,28 @@ Note that such a comment will be removed if the git commit option
   - Only certain C99 features may be used (see below); in general
     stick to C90.
   - Please do not use C++ =//= style comments.
+  - Do not use comments like:
+#+begin_src
+      if (foo)
+        /* Now that we know that foo is true we can call bar.  */
+        bar ();
+#+end_src
+    instead write the comment on the if line or before it.  You may
+    also use a block and put the comment inside.
+  - Please use asterisks on the left of longer comments.  This makes
+    it easier to read without syntax highlighting, on printouts, and
+    for blind people.
   - Try to fit lines into 80 columns.
   - Ignore signed/unsigned pointer mismatches
   - No arithmetic on void pointers; cast to char* first.
+  - Do not use
+#+begin_src
+      if ( 42 == foo )
+#+end_src
+    this is harder to read and modern compilers are pretty good in
+    detecing accidential assignments.  It is also suggested not to
+    compare to 0 or NULL but to test the value direct or with a '!';
+    this makes it easier to see that a boolean test is done.
   - We use our own printf style functions like =es_printf=, and
     =gpgrt_asprintf= (or the =es_asprintf= macro) which implement most
     C99 features with the exception of =wchar_t= (which should anyway
@@ -145,12 +167,17 @@ Note that such a comment will be removed if the git commit option
   - Always use xfree() instead of free().  If it is not easy to see
     that the freed variable is not anymore used, explicitly set the
     variable to NULL.
+  - New code shall in general use xtrymalloc or xtrycalloc and check
+    for an error (use gpg_error_from_errno()).
   - Init function local variables only if needed so that the compiler
     can do a better job in detecting uninitialized variables which may
     indicate a problem with the code.
   - Never init static or file local variables to 0 to make sure they
     end up in BSS.
-  - Use --enable-maintainer-mode with configure.
+  - But extra parenthesis around terms with binary operators to make
+    it clear that the binary operator was indeed intended.
+  - Use --enable-maintainer-mode with configure so that all suitable
+    warnings are enabled.
 
 ** Variable names
 
@@ -326,7 +353,7 @@ Note that such a comment will be removed if the git commit option
                       and related constants
   - g10/openfile.c :: Create/Open Files
   - g10/keyserver.h :: Keyserver access dispatcher.
-  - g10/packet.h   :: Defintion of OpenPGP structures.
+  - g10/packet.h   :: Definition of OpenPGP structures.
   - g10/passphrase.c :: Passphrase handling code
 
   - g10/pubkey-enc.c :: Process a public key encoded packet.
index 52ac398..53cd639 100644 (file)
@@ -13,7 +13,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 ## Process this file with automake to produce Makefile.in
 
@@ -21,7 +21,14 @@ AM_CPPFLAGS =
 
 include $(top_srcdir)/am/cmacros.am
 
-examples = examples/README examples/scd-event examples/trustlist.txt \
+examples = examples/README examples/scd-event examples/trustlist.txt   \
+          examples/systemd-user/README                                 \
+          examples/systemd-user/dirmngr.service                        \
+          examples/systemd-user/dirmngr.socket                         \
+          examples/systemd-user/gpg-agent.service                      \
+          examples/systemd-user/gpg-agent.socket                       \
+          examples/systemd-user/gpg-agent-ssh.socket                   \
+          examples/systemd-user/gpg-agent-extra.socket                 \
           examples/gpgconf.conf examples/pwpattern.list
 
 helpfiles = help.txt help.be.txt help.ca.txt help.cs.txt               \
index 3598bc7..19241b7 100644 (file)
--- a/doc/Notes
+++ b/doc/Notes
@@ -7,7 +7,7 @@ There are two ways:
 
   1. Let gpg-agent do this for you.  Since version 1.9.9 you need to
      add the option --allow-mark-trusted  gpg-agent.conf or when
-     invoking gpg-agent.  Everytime gpgsm notices an untrusted root
+     invoking gpg-agent.  Every time gpgsm notices an untrusted root
      certificate gpg-agent will pop up a dialog to ask whether this
      certificate should be trusted.  This is similar to whatmost
      browsers do.
@@ -22,7 +22,7 @@ There are two ways:
      the fingerprints of the trusted root certificates. There are
      comments on the top explaining the simple format.  The current
      CVS version allows for colons in the fingerprint, so you can
-     easily cut and paste it from whereever you know that this is the
+     easily cut and paste it from wherever you know that this is the
      correct fingerprint.
 
 An example for an entry in the trustlist.txt is:
@@ -199,12 +199,12 @@ dirmngr
         libgcrypt
         libksba
         libassuan [statically linked]
-        libldap [system libary]
-        liblber [system libary]
-        libsasl [system libary, required by libldap]
-        libdb2  [system libary, required by libsasl]
-        libcrypt [system libary, required by libsasl - OOPS]
-        libpam  [system libary, required by libsasl]
+        libldap [system library]
+        liblber [system library]
+        libsasl [system library, required by libldap]
+        libdb2  [system library, required by libsasl]
+        libcrypt [system library, required by libsasl - OOPS]
+        libpam  [system library, required by libsasl]
         [Standard system libraries]
 
 pinentry-curses 
index eb0de97..7c3e544 100644 (file)
@@ -8,9 +8,9 @@ strings can accept multiple values that mean essentially the same
 thing.
 
 For example, the string "yes" in English is "sí" in Spanish.  However,
-some users will type "si" (without the accent).  To accomodate both
+some users will type "si" (without the accent).  To accommodate both
 users, you can translate the string "yes" as "sí|si".  You can have
-any number of alternate matches seperated by the | character like
+any number of alternate matches separated by the | character like
 "sí|si|seguro".
 
 The strings that can be handled in this way are of the form "yes|yes",
index bb558bd..8a4fc86 100644 (file)
@@ -13,10 +13,10 @@ the maintainer if you have been left out or some of your contributions
 are not listed.
 
 David Shaw, Matthew Skala, Michael Roth, Niklas Hernaeus, Nils
-Ellmenreich, Rémi Guyomarch, Stefan Bellon, Timo Schulz and Werner
+Ellmenreich, Rémi Guyomarch, Stefan Bellon, Timo Schulz and Werner
 Koch wrote the code.  Birger Langkjer, Daniel Resare, Dokianakis
-Theofanis, Edmund GRIMLEY EVANS, Gaël Quéri, Gregory Steuck, Nagy
-Ferenc László, Ivo Timmermans, Jacobo Tarri'o Barreiro, Janusz
+Theofanis, Edmund GRIMLEY EVANS, Gaël Quéri, Gregory Steuck, Nagy
+Ferenc László, Ivo Timmermans, Jacobo Tarri'o Barreiro, Janusz
 Aleksander Urbanowicz, Jedi Lin, Jouni Hiltunen, Laurentiu Buzdugan,
 Magda Procha'zkova', Michael Anckaert, Michal Majer, Marco d'Itri,
 Nilgun Belma Buguner, Pedro Morais, Tedi Heriyanto, Thiago Jung
@@ -26,7 +26,7 @@ and maintains the GNU Privacy Handbook. David Scribner is the current
 FAQ editor.  Lorenzo Cappelletti maintains the web site.
 
 The new modularized architecture of gnupg 1.9 as well as the X.509/CMS
-part has been developed as part of the Ägypten project.  Direct
+part has been developed as part of the Ägypten project.  Direct
 contributors to this project are: Bernhard Herzog, who did extensive
 testing and tracked down a lot of bugs.  Bernhard Reiter, who made sure
 that we met the specifications and the deadlines. He did extensive
@@ -57,8 +57,8 @@ Lannert, Dimitri, Dirk Lattermann, Dirk Meyer, Disastry, Douglas
 Calvert, Ed Boraas, Edmund GRIMLEY EVANS, Edwin Woudt, Enzo
 Michelangeli, Ernst Molitor, Fabio Coatti, Felix von Leitner, fish
 stiqz, Florian Weimer, Francesco Potorti, Frank Donahoe, Frank
-Heckenbach, Frank Stajano, Frank Tobin, Gabriel Rosenkoetter, Gaël
-Quéri, Gene Carter, Geoff Keating, Georg Schwarz, Giampaolo Tomassoni,
+Heckenbach, Frank Stajano, Frank Tobin, Gabriel Rosenkoetter, Gaël
+Quéri, Gene Carter, Geoff Keating, Georg Schwarz, Giampaolo Tomassoni,
 Gilbert Fernandes, Greg Louis, Greg Troxel, Gregory Steuck, Gregery
 Barton, Harald Denker, Holger Baust, Hendrik Buschkamp, Holger
 Schurig, Holger Smolinski, Holger Trapp, Hugh Daniel, Huy Le, Ian
@@ -66,7 +66,7 @@ McKellar, Ivo Timmermans, Jan Krueger, Jan Niehusmann, Janusz
 A. Urbanowicz, James Troup, Jean-loup Gailly, Jeff Long, Jeffery Von
 Ronne, Jens Bachem, Jeroen C. van Gelderen, J Horacio MG, J. Michael
 Ashley, Jim Bauer, Jim Small, Joachim Backes, Joe Rhett, John
-A. Martin, Johnny Teveßen, Jörg Schilling, Jos Backus, Joseph Walton,
+A. Martin, Johnny Teveßen, Jörg Schilling, Jos Backus, Joseph Walton,
 Juan F. Codagnone, Jun Kuriyama, Kahil D. Jallad, Karl Fogel, Karsten
 Thygesen, Katsuhiro Kondou, Kazu Yamamoto, Keith Clayton, Kevin Ryde,
 Klaus Singvogel, Kurt Garloff, Lars Kellogg-Stedman, L. Sassaman, M
@@ -77,10 +77,10 @@ Skala, Matthew Wilcox, Matthias Urlichs, Max Valianskiy, Michael
 Engels, Michael Fischer v. Mollard, Michael Roth, Michael Sobolev,
 Michael Tokarev, Nicolas Graner, Mike McEwan, Neal H Walfield, Nelson
 H. F. Beebe, NIIBE Yutaka, Niklas Hernaeus, Nimrod Zimerman, N J Doye,
-Oliver Haakert, Oskari Jääskeläinen, Pascal Scheffers, Paul D. Smith,
+Oliver Haakert, Oskari Jääskeläinen, Pascal Scheffers, Paul D. Smith,
 Per Cederqvist, Phil Blundell, Philippe Laliberte, Peter Fales, Peter
 Gutmann, Peter Marschall, Peter Valchev, Piotr Krukowiecki, QingLong,
-Ralph Gillen, Rat, Reinhard Wobst, Rémi Guyomarch, Reuben Sumner,
+Ralph Gillen, Rat, Reinhard Wobst, Rémi Guyomarch, Reuben Sumner,
 Richard Outerbridge, Robert Joop, Roddy Strachan, Roger Sondermann,
 Roland Rosenfeld, Roman Pavlik, Ross Golder, Ryan Malayter, Sam
 Roberts, Sami Tolvanen, Sean MacLennan, Sebastian Klemke, Serge
@@ -89,13 +89,13 @@ Stefan Keller, Steffen Ullrich, Steffen Zahn, Steven Bakker, Steven
 Murdoch, Susanne Schultz, Ted Cabeen, Thiago Jung Bauermann, Thijmen
 Klok, Thomas Roessler, Tim Mooney, Timo Schulz, Todd Vierling, TOGAWA
 Satoshi, Tom Spindler, Tom Zerucha, Tomas Fasth, Tommi Komulainen,
-Thomas Klausner, Tomasz Kozlowski, Thomas Mikkelsen, Ulf Möller, Urko
+Thomas Klausner, Tomasz Kozlowski, Thomas Mikkelsen, Ulf Möller, Urko
 Lusa, Vincent P. Broman, Volker Quetschke, W Lewis, Walter Hofmann,
 Walter Koch, Wayne Chapeskie, Wim Vandeputte, Winona Brown, Yosiaki
 IIDA, Yoshihiro Kajiki and Gerlinde Klaes.
 
 This software has been made possible by the previous work of Chris
-Wedgwood, Jean-loup Gailly, Jon Callas, Mark Adler, Martin Hellmann
+Wedgwood, Jean-loup Gailly, Jon Callas, Mark Adler, Martin Hellman,
 Paul Kendall, Philip R. Zimmermann, Peter Gutmann, Philip A. Nelson,
 Taher Elgamal, Torbjorn Granlund, Whitfield Diffie, some unknown NSA
 mathematicians and all the folks who have worked hard to create
index debdd40..7fde49a 100644 (file)
@@ -10,7 +10,7 @@ there is a need to track down problems.  We call this debugging in a
 reminiscent to the moth jamming a relay in a Mark II box back in 1947.
 
 Most of the problems a merely configuration and user problems but
-nevertheless there are the most annoying ones and responsible for many
+nevertheless they are the most annoying ones and responsible for many
 gray hairs.  We try to give some guidelines here on how to identify and
 solve the problem at hand.
 
@@ -41,7 +41,7 @@ information and indices.  The commonly used one is the file
 @file{pubring.kbx} in the @file{.gnupg} directory. It contains all
 X.509 certificates as well as OpenPGP keys@footnote{Well, OpenPGP keys
 are not implemented, @command{gpg} still used the keyring file
-@file{pubring.gpg}.
+@file{pubring.gpg}.}.
 
 @noindent
 When called the standard way, e.g.:
@@ -86,7 +86,7 @@ should not occur but sometimes things go wrong), run it using
 
 
 @node Debugging Hints
-@section Various hints on debugging.
+@section Various hints on debugging
 
 @itemize @bullet
 
@@ -108,10 +108,10 @@ backend and may change from release to release.
 For development, the best logging method on WindowsCE is the use of
 remote debugging using a log file name of @file{tcp://<ip-addr>:<port>}.
 The command @command{watchgnupg} may be used on the remote host to listen
-on the given port. (@pxref{option watchgnupg --tcp}).  For in the field
+on the given port (@pxref{option watchgnupg --tcp}).  For in the field
 tests it is better to make use of the logging facility provided by the
 @command{gpgcedev} driver (part of libassuan); this is enabled by using
-a log file name of @file{GPG2:}. (@pxref{option --log-file}).
+a log file name of @file{GPG2:} (@pxref{option --log-file}).
 
 @end itemize
 
@@ -131,7 +131,7 @@ but Dirmngr's OCSP feature has not been enabled using
 
 The far most common reason for this is that the environment variable
 @code{GPG_TTY} has not been set correctly.  Make sure that it has been
-set to a real tty devce and not just to @samp{/dev/tty};
+set to a real tty device and not just to @samp{/dev/tty};
 i.e. @samp{GPG_TTY=tty} is plainly wrong; what you want is
 @samp{GPG_TTY=`tty`} --- note the back ticks.  Also make sure that
 this environment variable gets exported, that is you should follow up
@@ -162,7 +162,7 @@ making use of ssh.
 
 @item Exporting a secret key without a certificate
 
-I may happen that you have created a certificate request using
+It may happen that you have created a certificate request using
 @command{gpgsm} but not yet received and imported the certificate from
 the CA.  However, you want to export the secret key to another machine
 right now to import the certificate over there then.  You can do this
@@ -258,7 +258,7 @@ can't do anything about it without actually downloading the keys.
 @c ***  Architecture Details  *****************
 @c ********************************************
 @node Architecture Details
-@section How the whole thing works internally.
+@section How the whole thing works internally
 
 
 @menu
@@ -266,9 +266,8 @@ can't do anything about it without actually downloading the keys.
 * GnuPG-1 and GnuPG-2::   Relationship between GnuPG 1.4 and 2.x.
 @end menu
 
-
 @node Component interaction
-@subsection How the components work together.
+@subsection How the components work together
 
 
 @float Figure,fig:moduleoverview
@@ -278,7 +277,7 @@ can't do anything about it without actually downloading the keys.
 
 
 @node GnuPG-1 and GnuPG-2
-@subsection  Relationship between GnuPG 1.4 and 2.x.
+@subsection  Relationship between GnuPG 1.4 and 2.x
 
 Here is a little picture showing how the different GnuPG versions make
 use of a smartcard:
index d52fb89..be4e97a 100644 (file)
@@ -66,7 +66,7 @@ abbreviate this command.
 @item --help, -h
 @opindex help
 Print a usage message summarizing the most useful command-line options.
-Not that you cannot abbreviate this command.
+Note that you cannot abbreviate this command.
 
 @item --dump-options
 @opindex dump-options
@@ -82,8 +82,16 @@ This is only used for testing.
 @item --daemon
 @opindex daemon
 Run in background daemon mode and listen for commands on a socket.
-Note that this also changes the default home directory and enables the
-internal certificate validation code.  This mode is deprecated.
+This is the way @command{dirmngr} is started on demand by the other
+GnuPG components.  To force starting @command{dirmngr} it is in
+general best to use @code{gpgconf --launch dirmngr}.
+
+@item --supervised
+@opindex supervised
+Run in the foreground, sending logs to stderr, and listening on file
+descriptor 3, which must already be bound to a listening socket.  This
+is useful when running under systemd or other similar process
+supervision schemes.  This option is not supported on Windows.
 
 @item --list-crls
 @opindex list-crls
@@ -102,7 +110,7 @@ so that @code{gpgsm} can help dirmngr.
 @item --fetch-crl @var{url}
 @opindex fetch-crl
 This command requires an URL as additional argument, and it will make
-dirmngr try to retrieve an import the CRL from that @var{url} into
+dirmngr try to retrieve and import the CRL from that @var{url} into
 it's cache.  This is mainly useful for debugging purposes.  The
 @command{dirmngr-client} provides the same feature for a running dirmngr.
 
@@ -134,21 +142,11 @@ per-user configuration file.  The default configuration file is named
 @item --homedir @var{dir}
 @opindex options
 Set the name of the home directory to @var{dir}.  This option is only
-effective when used on the command line.  The default depends on the
-running mode:
-
-@table @asis
-
-@item With @code{--daemon} given on the commandline
-the directory named @file{@value{SYSCONFDIR}} is used for configuration files
-and @file{@value{LOCALCACHEDIR}} for cached CRLs.
-
-@item Without @code{--daemon} given on the commandline
+effective when used on the command line.  The default os
 the directory named @file{.gnupg} directly below the home directory
 of the user unless the environment variable @code{GNUPGHOME} has been set
 in which case its value will be used.  All kind of data is stored below
 this directory.
-@end table
 
 
 @item -v
@@ -163,7 +161,8 @@ verbose commands to @sc{dirmngr}, such as @option{-vv}.
 @item --log-file @var{file}
 @opindex log-file
 Append all logging output to @var{file}.  This is very helpful in
-seeing what the agent actually does.
+seeing what the agent actually does.  Use @file{socket://} to log to
+socket.
 
 @item --debug-level @var{level}
 @opindex debug-level
@@ -195,7 +194,7 @@ however carefully selected to best aid in debugging.
 
 @item --debug @var{flags}
 @opindex debug
-This option is only useful for debugging and the behaviour may change at
+This option is only useful for debugging and the behavior may change at
 any time without notice.  FLAGS are bit encoded and may be given in
 usual C-Syntax.
 
@@ -213,6 +212,12 @@ When running in server mode, wait @var{n} seconds before entering the
 actual processing loop and print the pid.  This gives time to attach a
 debugger.
 
+@item --disable-check-own-socket
+@opindex disable-check-own-socket
+On some platforms @command{dirmngr} is able to detect the removal of
+its socket file and shutdown itself.  This option disable this
+self-test for debugging purposes.
+
 @item -s
 @itemx --sh
 @itemx -c
@@ -222,7 +227,7 @@ debugger.
 @opindex c
 @opindex csh
 Format the info output in daemon mode for use with the standard Bourne
-shell respective the C-shell . The default ist to guess it based on the
+shell respective the C-shell. The default is to guess it based on the
 environment variable @code{SHELL} which is in almost all cases
 sufficient.
 
@@ -239,6 +244,15 @@ this still leaks the DNS queries; e.g. to lookup the hosts in a
 keyserver pool.  Certain other features are disabled if this mode is
 active.
 
+@item --allow-version-check
+@opindex allow-version-check
+Allow Dirmngr to connect to @code{https://versions.gnupg.org} to get
+the list of current software versions.  If this option is enabled, or
+if @option{use-tor} is active, the list is retrieved when the local
+copy does not exist or is older than 5 to 7 days.  See the option
+@option{--query-swdb} of the command @command{gpgconf} for more
+details.
+
 @item --keyserver @var{name}
 @opindex keyserver
 Use @var{name} as your keyserver.  This is the server that @command{gpg}
@@ -263,6 +277,8 @@ service (.onion), Dirmngr selects the keyserver to use depending on
 whether Tor is locally running or not.  The check for a running Tor is
 done for each new connection.
 
+If no keyserver is explicitly configured, dirmngr will use the
+built-in default of hkps://hkps.pool.sks-keyservers.net.
 
 @item --nameserver @var{ipaddr}
 @opindex nameserver
@@ -331,8 +347,7 @@ configured LDAP server if the connection using the "proxy" failed.
 @opindex ldapserverlist-file
 Read the list of LDAP servers to consult for CRLs and certificates from
 file instead of the default per-user ldap server list file. The default
-value for @var{file} is @file{dirmngr_ldapservers.conf} or
-@file{ldapservers.conf} when running in @option{--daemon} mode.
+value for @var{file} is @file{dirmngr_ldapservers.conf}.
 
 This server list file contains one LDAP server per line in the format
 
@@ -357,11 +372,11 @@ out. The default is currently 100 seconds.  0 will never timeout.
 
 @item --add-servers
 @opindex add-servers
-This options makes dirmngr add any servers it discovers when validating
+This option makes dirmngr add any servers it discovers when validating
 certificates against CRLs to the internal list of servers to consult for
 certificates and CRLs.
 
-This options is useful when trying to validate a certificate that has
+This option is useful when trying to validate a certificate that has
 a CRL distribution point that points to a server that is not already
 listed in the ldapserverlist. Dirmngr will always go to this server and
 try to download the CRL, but chances are high that the certificate used
@@ -390,8 +405,8 @@ not contain information about an assigned responder.  Note, that
 @item --ocsp-signer @var{fpr}|@var{file}
 @opindex ocsp-signer
 Use the certificate with the fingerprint @var{fpr} to check the
-responses of the default OCSP Responder.  Alternativly a filename can be
-given in which case the respinse is expected to be signed by one of the
+responses of the default OCSP Responder.  Alternatively a filename can be
+given in which case the response is expected to be signed by one of the
 certificates described in that file.  Any argument which contains a
 slash, dot or tilde is considered a filename.  Usual filename expansion
 takes place: A tilde at the start followed by a slash is replaced by the
@@ -412,7 +427,7 @@ prefix with a hash mark are ignored.
 @item --ocsp-max-clock-skew @var{n}
 @opindex ocsp-max-clock-skew
 The number of seconds a skew between the OCSP responder and them local
-clock is accepted.  Default is 600 (20 minutes).
+clock is accepted.  Default is 600 (10 minutes).
 
 @item --ocsp-max-period @var{n}
 @opindex ocsp-max-period
@@ -448,6 +463,11 @@ the file is in PEM format a suffix of @code{.pem} is expected for
 @var{file}.  This option may be given multiple times to add more
 root certificates.  Tilde expansion is supported.
 
+If no @code{hkp-cacert} directive is present, dirmngr will make a
+reasonable choice: if the keyserver in question is the special pool
+@code{hkps.pool.sks-keyservers.net}, it will use the bundled root
+certificate for that pool.  Otherwise, it will use the system CAs.
+
 @end table
 
 
@@ -486,10 +506,10 @@ Note that for OCSP responses the certificate specified using the option
 
 @item /etc/gnupg/extra-certs
 This directory may contain extra certificates which are preloaded
-into the interal cache on startup. Applications using dirmngr (e.g. gpgsm)
+into the internal cache on startup. Applications using dirmngr (e.g. gpgsm)
 can request cached certificates to complete a trust chain.
 This is convenient in cases you have a couple intermediate CA certificates
-or certificates ususally used to sign OCSP responses.
+or certificates usually used to sign OCSP responses.
 These certificates are first tried before going
 out to the net to look for them.  These certificates must also be
 @acronym{DER} encoded and suffixed with @file{.crt} or @file{.der}.
@@ -532,7 +552,7 @@ certificates have been loaded correctly.
 @c
 @mansect signals
 @node Dirmngr Signals
-@section Use of signals.
+@section Use of signals
 
 A running @command{dirmngr} may be controlled by signals, i.e. using
 the @command{kill} command to send a signal to the process.
@@ -543,7 +563,7 @@ Here is a list of supported signals:
 
 @item SIGHUP
 @cpindex SIGHUP
-This signals flushes all internally cached CRLs as well as any cached
+This signal flushes all internally cached CRLs as well as any cached
 certificates.  Then the certificate cache is reinitialized as on
 startup.  Options are re-read from the configuration file.  Instead of
 sending this signal it is better to use
@@ -740,7 +760,7 @@ this the root certificate:
   C: END
 @end example
 
-Only this answer will let Dirmngr consider the CRL as valid.
+Only this answer will let Dirmngr consider the certificate as valid.
 
 
 @node Dirmngr CHECKCRL
@@ -749,7 +769,7 @@ Only this answer will let Dirmngr consider the CRL as valid.
 Check whether the certificate with FINGERPRINT (SHA-1 hash of the
 entire X.509 certificate blob) is valid or not by consulting the CRL
 responsible for this certificate.  If the fingerprint has not been
-given or the certificate is not know, the function inquires the
+given or the certificate is not known, the function inquires the
 certificate using:
 
 @example
@@ -777,7 +797,7 @@ revoked or one of the usual error codes from libgpg-error.
 @end example
 
 Check whether the certificate with @var{fingerprint} (the SHA-1 hash of
-the entire X.509 certificate blob) is valid by consulting the appropiate
+the entire X.509 certificate blob) is valid by consulting the appropriate
 OCSP responder.  If the fingerprint has not been given or the
 certificate is not known by Dirmngr, the function inquires the
 certificate using:
@@ -809,7 +829,7 @@ revoked or one of the usual error codes from libgpg-error.
 
 Put a certificate into the internal cache.  This command might be
 useful if a client knows in advance certificates required for a test and
-wnats to make sure they get added to the internal cache.  It is also
+wants to make sure they get added to the internal cache.  It is also
 helpful for debugging.  To get the actual certificate, this command
 immediately inquires it using
 
@@ -824,7 +844,7 @@ as a binary blob.
 
 @noindent
 The return code is 0 for success; i.e. the certificate has not been
-succesfully cached or one of the usual error codes from libgpg-error.
+successfully cached or one of the usual error codes from libgpg-error.
 
 @node Dirmngr VALIDATE
 @subsection Validate a certificate for debugging
@@ -876,7 +896,7 @@ as a binary blob.
 @c @var{fingerprint} is optional and expected to be the SHA-1 has of the
 @c DER encoding of the certificate under question.  It is to be HEX
 @c encoded.  The rationale for sending the fingerprint is that it allows
-@c dirmngr to reply immediatly if it has already cached such a request.  If
+@c dirmngr to reply immediately if it has already cached such a request.  If
 @c this is not the case and no certificate has been found in dirmngr's
 @c internal certificate storage, dirmngr will request the certificate using
 @c the Assuan inquiry
@@ -898,7 +918,7 @@ as a binary blob.
 @c available for the certificate and the certificate itself is not listed
 @c in this CRL, @code{GPG_ERR_CERT_REVOKED} to indicate that the certificate is
 @c listed in the CRL or @code{GPG_ERR_NO_CRL_KNOWN} in cases where no CRL or no
-@c information is available.  The first two codes are immediatly returned to
+@c information is available.  The first two codes are immediately returned to
 @c the caller and the processing of this request has been done.
 @c
 @c Only the @code{GPG_ERR_NO_CRL_KNOWN} needs more attention: Dirmngr now
@@ -934,7 +954,7 @@ as a binary blob.
 @c     * Try to load a CRL from all configured servers (ldapservers.conf)
 @c       in turn.  The first server returning a CRL is used.
 @c     * @code(crl_cache_insert) is then used to actually insert the CRL
-@c       into the cache.  If this failed we give up immediatley without
+@c       into the cache.  If this failed we give up immediately without
 @c       checking the rest of the servers from the first step.
 @c * Ready.
 @c
@@ -1006,7 +1026,7 @@ as a binary blob.
 @c sure that @code{validate_cert_chain} does not try to lookup the CRL we
 @c are currently processing. This would be a catch-22 and may indicate a
 @c broken PKI.  However, due to overlapping expiring times and imprecise
-@c clocks thsi may actually happen.
+@c clocks this may actually happen.
 @c
 @c For historical reasons the Assuan command ISVALID is a bit different
 @c to CHECKCRL but this is mainly due to different calling conventions.
@@ -1065,8 +1085,8 @@ as a binary blob.
 @c If the issuer's certificate has been found, the signature of the
 @c actual certificate is checked and in case this fails the error
 @c #code{GPG_ERR_BAD_CERT_CHAIN} is returned.  If the signature checks out, the
-@c maximum cahin length of the issueing certificate is checked as well as
-@c the capiblity of the certificate (i.e. whether he may be used for
+@c maximum chain length of the issuing certificate is checked as well as
+@c the capability of the certificate (i.e. whether he may be used for
 @c certificate signing).  Then the certificate is prepended to our list
 @c representing the certificate chain.  Finally the loop is continued now
 @c with the issuer's certificate as the current certificate.
index 3444822..77ee807 100644 (file)
@@ -3,7 +3,9 @@ Files in this directory:
 
 scd-event       A handler script used with scdaemon
 
-trustlist.txt   A list of trustworthy root certificates 
+trustlist.txt   A list of trustworthy root certificates
                 (Please check yourself whether you actually trust them)
 
 gpgconf.conf    A sample configuration file for gpgconf.
+
+systemd-user    Sample files for a Linux-only init system.
diff --git a/doc/examples/systemd-user/README b/doc/examples/systemd-user/README
new file mode 100644 (file)
index 0000000..43122f5
--- /dev/null
@@ -0,0 +1,66 @@
+Socket-activated dirmngr and gpg-agent with systemd
+===================================================
+
+When used on a GNU/Linux system supervised by systemd, you can ensure
+that the GnuPG daemons dirmngr and gpg-agent are launched
+automatically the first time they're needed, and shut down cleanly at
+session logout.  This is done by enabling user services via
+socket-activation.
+
+System distributors
+-------------------
+
+The *.service and *.socket files (from this directory) should be
+placed in /usr/lib/systemd/user/ alongside other user-session services
+and sockets.
+
+To enable socket-activated dirmngr for all accounts on the system,
+use:
+
+    systemctl --user --global enable dirmngr.socket
+
+To enable socket-activated gpg-agent for all accounts on the system,
+use:
+
+    systemctl --user --global enable gpg-agent.socket
+
+Additionally, you can enable socket-activated gpg-agent ssh-agent
+emulation for all accounts on the system with:
+
+    systemctl --user --global enable gpg-agent-ssh.socket
+
+You can also enable restricted ("--extra-socket"-style) gpg-agent
+sockets for all accounts on the system with:
+
+    systemctl --user --global enable gpg-agent-extra.socket
+
+Individual users
+----------------
+
+A user on a system with systemd where this has not been installed
+system-wide can place these files in ~/.config/systemd/user/ to make
+them available.
+
+If a given service isn't installed system-wide, or if it's installed
+system-wide but not globally enabled, individual users will still need
+to enable them.  For example, to enable socket-activated dirmngr for
+all future sessions:
+
+    systemctl --user enable dirmngr.socket
+
+To enable socket-activated gpg-agent with ssh support, do:
+
+    systemctl --user enable gpg-agent.socket gpg-agent-ssh.socket
+
+These changes won't take effect until your next login after you've
+fully logged out (be sure to terminate any running daemons before
+logging out).
+
+If you'd rather try a socket-activated GnuPG daemon in an
+already-running session without logging out (with or without enabling
+it for all future sessions), kill any existing daemon and start the
+user socket directly.  For example, to set up socket-activated dirmgnr
+in the current session:
+
+    gpgconf --kill dirmngr
+    systemctl --user start dirmngr.socket
diff --git a/doc/examples/systemd-user/dirmngr.service b/doc/examples/systemd-user/dirmngr.service
new file mode 100644 (file)
index 0000000..c79dfc5
--- /dev/null
@@ -0,0 +1,10 @@
+[Unit]
+Description=GnuPG network certificate management daemon
+Documentation=man:dirmngr(8)
+Requires=dirmngr.socket
+After=dirmngr.socket
+## This is a socket-activated service:
+RefuseManualStart=true
+
+[Service]
+ExecStart=/usr/bin/dirmngr --supervised
diff --git a/doc/examples/systemd-user/dirmngr.socket b/doc/examples/systemd-user/dirmngr.socket
new file mode 100644 (file)
index 0000000..ebabf89
--- /dev/null
@@ -0,0 +1,11 @@
+[Unit]
+Description=GnuPG network certificate management daemon
+Documentation=man:dirmngr(8)
+
+[Socket]
+ListenStream=%t/gnupg/S.dirmngr
+SocketMode=0600
+DirectoryMode=0700
+
+[Install]
+WantedBy=sockets.target
diff --git a/doc/examples/systemd-user/gpg-agent-browser.socket b/doc/examples/systemd-user/gpg-agent-browser.socket
new file mode 100644 (file)
index 0000000..bc8d344
--- /dev/null
@@ -0,0 +1,13 @@
+[Unit]
+Description=GnuPG cryptographic agent and passphrase cache (access for web browsers)
+Documentation=man:gpg-agent(1)
+
+[Socket]
+ListenStream=%t/gnupg/S.gpg-agent.browser
+FileDescriptorName=browser
+Service=gpg-agent.service
+SocketMode=0600
+DirectoryMode=0700
+
+[Install]
+WantedBy=sockets.target
diff --git a/doc/examples/systemd-user/gpg-agent-extra.socket b/doc/examples/systemd-user/gpg-agent-extra.socket
new file mode 100644 (file)
index 0000000..5b87d09
--- /dev/null
@@ -0,0 +1,13 @@
+[Unit]
+Description=GnuPG cryptographic agent and passphrase cache (restricted)
+Documentation=man:gpg-agent(1)
+
+[Socket]
+ListenStream=%t/gnupg/S.gpg-agent.extra
+FileDescriptorName=extra
+Service=gpg-agent.service
+SocketMode=0600
+DirectoryMode=0700
+
+[Install]
+WantedBy=sockets.target
diff --git a/doc/examples/systemd-user/gpg-agent-ssh.socket b/doc/examples/systemd-user/gpg-agent-ssh.socket
new file mode 100644 (file)
index 0000000..798c1d9
--- /dev/null
@@ -0,0 +1,13 @@
+[Unit]
+Description=GnuPG cryptographic agent (ssh-agent emulation)
+Documentation=man:gpg-agent(1) man:ssh-add(1) man:ssh-agent(1) man:ssh(1)
+
+[Socket]
+ListenStream=%t/gnupg/S.gpg-agent.ssh
+FileDescriptorName=ssh
+Service=gpg-agent.service
+SocketMode=0600
+DirectoryMode=0700
+
+[Install]
+WantedBy=sockets.target
diff --git a/doc/examples/systemd-user/gpg-agent.service b/doc/examples/systemd-user/gpg-agent.service
new file mode 100644 (file)
index 0000000..9ab9220
--- /dev/null
@@ -0,0 +1,10 @@
+[Unit]
+Description=GnuPG cryptographic agent and passphrase cache
+Documentation=man:gpg-agent(1)
+Requires=gpg-agent.socket
+After=gpg-agent.socket
+## This is a socket-activated service:
+RefuseManualStart=true
+
+[Service]
+ExecStart=/usr/bin/gpg-agent --supervised
diff --git a/doc/examples/systemd-user/gpg-agent.socket b/doc/examples/systemd-user/gpg-agent.socket
new file mode 100644 (file)
index 0000000..4257c2c
--- /dev/null
@@ -0,0 +1,12 @@
+[Unit]
+Description=GnuPG cryptographic agent and passphrase cache
+Documentation=man:gpg-agent(1)
+
+[Socket]
+ListenStream=%t/gnupg/S.gpg-agent
+FileDescriptorName=std
+SocketMode=0600
+DirectoryMode=0700
+
+[Install]
+WantedBy=sockets.target
index e4e9187..22d07f0 100644 (file)
@@ -14,7 +14,7 @@
 #        org-mode format for easier maintenance.
 
 #+begin_html
-<a href="/"><img src="http://gnupg.org/share/logo-gnupg-light-purple-bg.png" class="logo-link" /></a>
+<a href="/"><img src="https://gnupg.org/share/logo-gnupg-light-purple-bg.png" class="logo-link" /></a>
 #+end_html
 
 *WARNING: This FAQ is heavily outdated*.  Mentioned versions of GnuPG
@@ -73,7 +73,7 @@ update this FAQ in the next month.  See the section "Changes" for recent updates
     item to note is that starting with GnuPG version 1.1.92 the file
     containing user options and settings has been renamed from "options"
     to "gpg.conf". Information in the FAQ that relates to the options
-    file may be interchangable with the newer gpg.conf file in many
+    file may be interchangeable with the newer gpg.conf file in many
     instances. See question
     [[#gnupg-no-longer-installs-a-options-file-is-it-missing][GnuPG no longer installs a ~/.gnupg/options file. Is it missing?]]
     for details.
@@ -491,7 +491,7 @@ update this FAQ in the next month.  See the section "Changes" for recent updates
    On a secure machine:
 
    1. If you want to do automatic signing, create a signing subkey for
-      your key.  Use the interactive key editing menu by issueing the
+      your key.  Use the interactive key editing menu by issuing the
       command
       : gpg --edit-key keyID
       enter "addkey" and select the DSA key type).
@@ -651,7 +651,7 @@ update this FAQ in the next month.  See the section "Changes" for recent updates
    :CUSTOM_ID: how-do-i-verify-signed-packages
    :END:
 
-   must first have the vendor, organisation, or issueing person's key
+   must first have the vendor, organisation, or issuing person's key
    Before you can verify the signature that accompanies a package, you
    imported into your public keyring. To prevent GnuPG warning
    messages the key should also be validated (or locally signed).
@@ -1278,7 +1278,7 @@ update this FAQ in the next month.  See the section "Changes" for recent updates
     and where it is easy to exchange the passphrases (e.g. with your boy
     friend or your wife). The advantage is that you can change the
     passphrase from time to time and decrease the risk, that many old
-    messages may be decrypted by people who accidently got your passphrase.
+    messages may be decrypted by people who accidentally got your passphrase.
 
     You can add and copy keys to and from your keyring with the 'gpg
     --import' and 'gpg --export' command. 'gpg --export-secret-keys' will
index 1c72e50..8c786a7 100644 (file)
@@ -61,7 +61,7 @@ on a disk; the latter is often called a Soft-PSE.
 @item Shell model
 The standard model for validation of certificates under X.509.  At the
 time of the verification all certificates must be valid and not expired.
-See also @emph{Chain mode}.
+See also @emph{Chain model}.
 
 
 @item X.509
index b481dd6..3177af4 100644 (file)
@@ -76,7 +76,7 @@ the included Secure Shell Agent you may start the agent using:
 @c   interface that the owner has access to, but the supplicant does not).
 @c
 @c   The rationale for this separation is that it allows access to the
-@c   secret key to be tightly controled and audited, and it doesn't permit
+@c   secret key to be tightly controlled and audited, and it doesn't permit
 @c   the the supplicant to either copy the key or to override the owner's
 @c   intentions.
 
@@ -85,6 +85,14 @@ gpg-connect-agent /bye
 @end example
 
 @noindent
+If you want to manually terminate the currently-running agent, you can
+safely do so with:
+
+@example
+gpgconf --kill gpg-agent
+@end example
+
+@noindent
 @efindex GPG_TTY
 You should always add the following lines to your @code{.bashrc} or
 whatever initialization file is used for all shell invocations:
@@ -108,7 +116,7 @@ one (e.g. @file{@value{BINDIR}/pinentry}).
 
 @manpause
 @noindent
-@xref{Option Index},for an index to @command{GPG-AGENT}'s commands and options.
+@xref{Option Index}, for an index to @command{GPG-AGENT}'s commands and options.
 @mancont
 
 @menu
@@ -158,6 +166,20 @@ As an alternative you may create a new process as a child of
 gpg-agent: @code{gpg-agent --daemon /bin/sh}.  This way you get a new
 shell with the environment setup properly; after you exit from this
 shell, gpg-agent terminates within a few seconds.
+
+@item --supervised
+@opindex supervised
+Run in the foreground, sending logs by default to stderr, and
+listening on provided file descriptors, which must already be bound to
+listening sockets.  This command is useful when running under systemd
+or other similar process supervision schemes.  This option is not
+supported on Windows.
+
+In --supervised mode, different file descriptors can be provided for
+use as different socket types (e.g. ssh, extra) as long as they are
+identified in the environment variable @code{LISTEN_FDNAMES} (see
+sd_listen_fds(3) on some Linux distributions for more information on
+this convention).
 @end table
 
 @mansect options
@@ -230,7 +252,7 @@ however carefully selected to best aid in debugging.
 
 @item --debug @var{flags}
 @opindex debug
-This option is only useful for debugging and the behaviour may change at
+This option is only useful for debugging and the behavior may change at
 any time without notice.  FLAGS are bit encoded and may be given in
 usual C-Syntax. The currently defined bits are:
 
@@ -246,7 +268,7 @@ memory allocation
 @item 6  (64)
 caching
 @item 7  (128)
-show memory statistics.
+show memory statistics
 @item 9  (512)
 write hashed data to files named @code{dbgmd-000*}
 @item 10 (1024)
@@ -312,11 +334,12 @@ should in general not be used to avoid X-sniffing attacks.
 @item --log-file @var{file}
 @opindex log-file
 @efindex HKCU\Software\GNU\GnuPG:DefaultLogFile
-Append all logging output to @var{file}.  This is very helpful in seeing
-what the agent actually does.  If neither a log file nor a log file
-descriptor has been set on a Windows platform, the Registry entry
-@code{HKCU\Software\GNU\GnuPG:DefaultLogFile}, if set, is used to specify
-the logging output.
+Append all logging output to @var{file}.  This is very helpful in
+seeing what the agent actually does. Use @file{socket://} to log to
+socket.  If neither a log file nor a log file descriptor has been set
+on a Windows platform, the Registry entry
+@code{HKCU\Software\GNU\GnuPG:DefaultLogFile}, if set, is used to
+specify the logging output.
 
 
 @anchor{option --no-allow-mark-trusted}
@@ -365,7 +388,7 @@ version of the used Pinentry.
 @opindex ignore-cache-for-signing
 This option will let @command{gpg-agent} bypass the passphrase cache for all
 signing operation.  Note that there is also a per-session option to
-control this behaviour but this command line option takes precedence.
+control this behavior but this command line option takes precedence.
 
 @item --default-cache-ttl @var{n}
 @opindex default-cache-ttl
@@ -536,6 +559,10 @@ pinentry to pop up at the @code{tty} or display you started the agent.
 @anchor{option --extra-socket}
 @item --extra-socket @var{name}
 @opindex extra-socket
+The extra socket is created by default, you may use this option to
+change the name of the socket.  To disable the creation of the socket
+use ``none'' or ``/dev/null'' for @var{name}.
+
 Also listen on native gpg-agent connections on the given socket.  The
 intended use for this extra socket is to setup a Unix domain socket
 forwarding from a remote machine to this socket on the local machine.
@@ -551,7 +578,8 @@ remote machine.
 @opindex enable-ssh-support
 @opindex enable-putty-support
 
-Enable the OpenSSH Agent protocol.
+The OpenSSH Agent protocol is always enabled, but @command{gpg-agent}
+will only set the @code{SSH_AUTH_SOCK} variable if this flag is given.
 
 In this mode of operation, the agent does not only implement the
 gpg-agent protocol, but also the agent protocol used by OpenSSH
@@ -660,7 +688,7 @@ trustworthy enough into this file.  Places where to look for the
 fingerprint of a root certificate are letters received from the CA or
 the website of the CA (after making 100% sure that this is indeed the
 website of that CA).  You may want to consider disallowing interactive
-updates of this file by using the @xref{option --no-allow-mark-trusted}.
+updates of this file by using the @ref{option --no-allow-mark-trusted}.
 It might even be advisable to change the permissions to read-only so
 that this file can't be changed inadvertently.
 
@@ -707,7 +735,7 @@ that key.  The flag is automatically set if a new key was loaded into
 @code{gpg-agent} using the option @option{-c} of the @code{ssh-add}
 command.
 
-The keygrip may be prefixed with a @code{!} to disable an entry entry.
+The keygrip may be prefixed with a @code{!} to disable an entry.
 
 The following example lists exactly one key.  Note that keys available
 through a OpenPGP smartcard in the active smartcard reader are
@@ -744,7 +772,7 @@ a small helper script is provided to create these files (@pxref{addgnupghome}).
 @c
 @mansect signals
 @node Agent Signals
-@section Use of some signals.
+@section Use of some signals
 A running @command{gpg-agent} may be controlled by signals, i.e. using
 the @command{kill} command to send a signal to the process.
 
@@ -938,7 +966,7 @@ Here is an example session:
    S: # session key follows
    S: S PADDING 0
    S: D (value 1234567890ABCDEF0)
-   S: OK descryption successful
+   S: OK decryption successful
 @end smallexample
 @end cartouche
 
@@ -950,7 +978,7 @@ that the padding has been removed.
 @node Agent PKSIGN
 @subsection Signing a Hash
 
-The client ask the agent to sign a given hash value.  A default key
+The client asks the agent to sign a given hash value.  A default key
 will be chosen if no key has been set.  To set a key a client first
 uses:
 
@@ -960,7 +988,7 @@ uses:
 
 This can be used multiple times to create multiple signature, the list
 of keys is reset with the next PKSIGN command or a RESET.  The server
-test whether the key is a valid key to sign something and responds with
+tests whether the key is a valid key to sign something and responds with
 okay.
 
 @example
@@ -992,7 +1020,7 @@ The actual signing is done using
    PKSIGN <options>
 @end example
 
-Options are not yet defined, but my later be used to choose among
+Options are not yet defined, but may later be used to choose among
 different algorithms.  The agent does then some checks, asks for the
 passphrase and as a result the server returns the signature as an SPKI
 like S-expression in "D" lines:
@@ -1112,7 +1140,7 @@ are to be used for this.
 
 There is no actual need because we can expect that secret keys
 created by a 3rd party are stored on a smartcard.  If we have
-generated the key ourself, we do not need to import it.
+generated the key ourselves, we do not need to import it.
 
 @node Agent EXPORT
 @subsection Export a Secret Key
@@ -1201,7 +1229,7 @@ Format the fingerprint according to gpg rules for a v4 keys.
 @item @@FPR@@
 Choose an appropriate format to format the fingerprint.
 @item @@@@
-Replaced by a single @code{@@}
+Replaced by a single @code{@@}.
 @end table
 
 @node Agent GET_PASSPHRASE
@@ -1291,7 +1319,7 @@ passphrase will be retrieved from the pinentry module unless the
 retrieved from the client.
 
 The @var{timeout} parameter keeps the passphrase cached for the specified
-number of seconds. A value of @code{-1} means infinate while @code{0} means
+number of seconds. A value of @code{-1} means infinite while @code{0} means
 the default (currently only a timeout of -1 is allowed, which means to never
 expire it).
 
@@ -1340,8 +1368,8 @@ least one of the keygrips corresponds to an available secret key.
   LEARN [--send]
 @end example
 
-This command is used to register a smartcard.  With the --send
-option given the certificates are send back.
+This command is used to register a smartcard.  With the @option{--send}
+option given the certificates are sent back.
 
 
 @node Agent PASSWD
@@ -1475,8 +1503,7 @@ following values are defined:
   Use a loopback pinentry.  This fakes a pinentry by using inquiries
   back to the caller to ask for a passphrase.  This option may only be
   set if the agent has been configured for that.
-  To disable this feature use @xref{option --no-allow-loopback-pinentry}.
-
+  To disable this feature use @ref{option --no-allow-loopback-pinentry}.
   @end table
 
 @item cache-ttl-opt-preset
@@ -1497,8 +1524,9 @@ much slower or faster than the actual box.
 
 @mansect see also
 @ifset isman
-@command{gpg2}(1),
+@command{@gpgname}(1),
 @command{gpgsm}(1),
+@command{gpgconf}(1),
 @command{gpg-connect-agent}(1),
 @command{scdaemon}(1)
 @end ifset
index fbcaa15..e3756e9 100644 (file)
@@ -193,7 +193,7 @@ Make a detached signature.
 @item --encrypt
 @itemx -e
 @opindex encrypt
-Encrypt data. This option may be combined with @option{--sign} (for a
+Encrypt data. This command may be combined with @option{--sign} (for a
 signed and encrypted message), @option{--symmetric} (for a message that
 may be decrypted via a secret key or a passphrase), or @option{--sign}
 and @option{--symmetric} together (for a signed message that may be
@@ -204,7 +204,7 @@ decrypted via a secret key or a passphrase).
 @opindex symmetric
 Encrypt with a symmetric cipher using a passphrase. The default
 symmetric cipher used is @value{GPGSYMENCALGO}, but may be chosen with the
-@option{--cipher-algo} option. This option may be combined with
+@option{--cipher-algo} option. This command may be combined with
 @option{--sign} (for a signed and symmetrically encrypted message),
 @option{--encrypt} (for a message that may be decrypted via a secret key
 or a passphrase), or @option{--sign} and @option{--encrypt} together
@@ -284,7 +284,7 @@ Avoid using the output of this command in scripts or other programs as
 it is likely to change as GnuPG changes.  See @option{--with-colons}
 for a machine-parseable key listing command that is appropriate for
 use in scripts and other programs.  Never use the regular output for
-scripts - it is only for human consumption.
+scripts --- it is only for human consumption.
 
 @item --list-secret-keys
 @itemx -K
@@ -379,7 +379,7 @@ safeguard against accidental deletion of multiple keys.
 
 @item --delete-secret-keys @code{name}
 @opindex delete-secret-keys
-gRemove key from the secret keyring. In batch mode the key must be
+Remove key from the secret keyring. In batch mode the key must be
 specified by fingerprint.  The option @option{--yes} can be used to
 advice gpg-agent not to request a confirmation.  This extra
 pre-caution is done because @command{gpg} can't be sure that the
@@ -420,7 +420,7 @@ exported keys are written to STDOUT or to the file given with option
 @option{--armor} to allow easy printing of the key for paper backup;
 however the external tool @command{paperkey} does a better job for
 creating backups on paper.  Note that exporting a secret key can be a
-security risk if the exported keys are send over an insecure channel.
+security risk if the exported keys are sent over an insecure channel.
 
 The second form of the command has the special property to render the
 secret part of the primary key useless; this is a GNU extension to
@@ -533,7 +533,7 @@ corrupted trustdb.  Example:
 Update the trustdb with the ownertrust values stored in @code{files} (or
 STDIN if not given); existing values will be overwritten.  In case of a
 severely damaged trustdb and if you have a recent backup of the
-ownertrust values (e.g. in the file @file{otrust.txt}, you may re-create
+ownertrust values (e.g. in the file @file{otrust.txt}), you may re-create
 the trustdb using these commands:
 @c man:.RS
 @example
@@ -598,7 +598,7 @@ fingerprint (preferred) or their keyid.
 @node OpenPGP Key Management
 @subsection How to manage your keys
 
-This section explains the main commands for key management
+This section explains the main commands for key management.
 
 @table @gnupgtabopt
 
@@ -608,19 +608,21 @@ This is a simple command to generate a standard key with one user id.
 In contrast to @option{--gen-key} the key is generated directly
 without the need to answer a bunch of prompts.  Unless the option
 @option{--yes} is given, the key creation will be canceled if the
-given user id already exists in the key ring.
+given user id already exists in the keyring.
 
 If invoked directly on the console without any special options an
 answer to a ``Continue?'' style confirmation prompt is required.  In
-case the user id already exists in the key ring a second prompt to
+case the user id already exists in the keyring a second prompt to
 force the creation of the key will show up.
 
-If any of the optional arguments are given, only the primary key is
-created and no prompts are shown.  For a description of these optional
-arguments see the command @code{--quick-addkey}.  The @code{usage}
-accepts also the value ``cert'' which can be used to create a
-certification only primary key; the default is to a create
-certification and signing key.
+If @code{algo} or @code{usage} are given, only the primary key is
+created and no prompts are shown.  To specify an expiration date but
+still create a primary and subkey use ``default'' or
+``future-default'' for @code{algo} and ``default'' for @code{usage}.
+For a description of these optional arguments see the command
+@code{--quick-addkey}.  The @code{usage} accepts also the value
+``cert'' which can be used to create a certification only primary key;
+the default is to a create certification and signing key.
 
 If this command is used with @option{--batch},
 @option{--pinentry-mode} has been set to @code{loopback}, and one of
@@ -637,13 +639,15 @@ Directly add a subkey to the key identified by the fingerprint
 added.  If any of the arguments are given a more specific subkey is
 added.
 
-@code{algo} may be any of the supported algorithms or curve names given
-in the format as used by key listings.  To use the default algorithm
-the string ``default'' or ``-'' can be used. Supported algorithms are
-``rsa'', ``dsa'', ``elg'', ``ed25519'', ``cv25519'', and other ECC
-curves.  For example the string ``rsa'' adds an RSA key with the
-default key length; a string ``rsa4096'' requests that the key length
-is 4096 bits.
+@code{algo} may be any of the supported algorithms or curve names
+given in the format as used by key listings.  To use the default
+algorithm the string ``default'' or ``-'' can be used.  Supported
+algorithms are ``rsa'', ``dsa'', ``elg'', ``ed25519'', ``cv25519'',
+and other ECC curves.  For example the string ``rsa'' adds an RSA key
+with the default key length; a string ``rsa4096'' requests that the
+key length is 4096 bits.  The string ``future-default'' is an alias
+for the algorithm which will likely be used as default algorithm in
+future versions of gpg.
 
 Depending on the given @code{algo} the subkey may either be an
 encryption subkey or a signing subkey.  If an algorithm is capable of
@@ -719,12 +723,12 @@ line.
 
   @item sign
   @opindex keyedit:sign
-  Make a signature on key of user @code{name} If the key is not yet
-  signed by the default user (or the users given with -u), the program
+  Make a signature on key of user @code{name}. If the key is not yet
+  signed by the default user (or the users given with @option{-u}), the program
   displays the information of the key again, together with its
   fingerprint and asks whether it should be signed. This question is
   repeated for all users specified with
-  -u.
+  @option{-u}.
 
   @item lsign
   @opindex keyedit:lsign
@@ -953,17 +957,17 @@ signing.
   currently have them. Cross-certification signatures protect against a
   subtle attack against signing subkeys. See
   @option{--require-cross-certification}.  All new keys generated have
-  this signature by default, so this option is only useful to bring
+  this signature by default, so this command is only useful to bring
   older keys up to date.
 
   @item save
   @opindex keyedit:save
-  Save all changes to the key rings and quit.
+  Save all changes to the keyrings and quit.
 
   @item quit
   @opindex keyedit:quit
   Quit the program without updating the
-  key rings.
+  keyrings.
 @end table
 
 @c man:.RS
@@ -1078,7 +1082,7 @@ behaviour and to change the default configuration.
 * GPG Input and Output::        Input and Output.
 * OpenPGP Options::             OpenPGP protocol specific options.
 * Compliance Options::          Compliance options.
-* GPG Esoteric Options::        Doing things one usually don't want to do.
+* GPG Esoteric Options::        Doing things one usually doesn't want to do.
 * Deprecated Options::          Deprecated options.
 @end menu
 
@@ -1425,7 +1429,7 @@ Valid values for @code{name} are:
 
   @item koi8-r
   @opindex display-charset:koi8-r
-  The usual Russian set (rfc1489).
+  The usual Russian set (RFC-1489).
 
   @item utf-8
   @opindex display-charset:utf-8
@@ -1436,7 +1440,7 @@ Valid values for @code{name} are:
 @item --utf8-strings
 @itemx --no-utf8-strings
 @opindex utf8-strings
-Assume that command line arguments are given as UTF8 strings. The
+Assume that command line arguments are given as UTF-8 strings. The
 default (@option{--no-utf8-strings}) is to assume that arguments are
 encoded in the character set as specified by
 @option{--display-charset}. These options affect all following
@@ -1590,7 +1594,7 @@ Set what trust model GnuPG should follow. The models are:
   keys and email addresses (which are extracted from user ids and
   normalized).  There are five policies, which can be set manually
   using the @option{--tofu-policy} option.  The default policy can be
-  set using the @option{--tofu-default-policy} policy.
+  set using the @option{--tofu-default-policy} option.
 
   The TOFU policies are: @code{auto}, @code{good}, @code{unknown},
   @code{bad} and @code{ask}.  The @code{auto} policy is used by
@@ -1652,7 +1656,7 @@ mechanisms, in the order they are to be tried:
 @table @asis
 
   @item cert
-  Locate a key using DNS CERT, as specified in rfc4398.
+  Locate a key using DNS CERT, as specified in RFC-4398.
 
   @item pka
   Locate a key using DNS PKA.
@@ -1804,7 +1808,7 @@ are available for all keyserver types, some common options are:
   @option{--recv-keys} command as a whole. Defaults to 30 seconds.
 
   @item http-proxy=@code{value}
-  This options is deprecated.
+  This option is deprecated.
   Set the proxy to use for HTTP and HKP keyservers.
   This overrides any proxy defined in @file{dirmngr.conf}.
 
@@ -1839,7 +1843,7 @@ key signer (defaults to 3)
 @item --tofu-default-policy @code{auto|good|unknown|bad|ask}
 @opindex tofu-default-policy
 The default TOFU policy (defaults to @code{auto}).  For more
-information about the meaning of this option, @xref{trust-model-tofu}.
+information about the meaning of this option, @pxref{trust-model-tofu}.
 
 @item --max-cert-depth @code{n}
 @opindex max-cert-depth
@@ -1849,7 +1853,7 @@ Maximum depth of a certification chain (default is 5).
 @opindex no-sig-cache
 Do not cache the verification status of key signatures.
 Caching gives a much better performance in key listings. However, if
-you suspect that your public keyring is not save against write
+you suspect that your public keyring is not safe against write
 modifications, you can use this option to disable the caching. It
 probably does not make sense to disable it because all kind of damage
 can be done if someone else has write access to your public keyring.
@@ -2058,7 +2062,7 @@ keys can be used.
 Disable the use of all @option{--encrypt-to} and
 @option{--hidden-encrypt-to} keys.
 
-@item --group @code{name=value}
+@item --group @code{name=value}
 @opindex group
 Sets up a named group, which is similar to aliases in email programs.
 Any time the group name is a recipient (@option{-r} or
@@ -2153,7 +2157,8 @@ Assume the input data is not in ASCII armored format.
 @item --output @var{file}
 @itemx -o @var{file}
 @opindex output
-Write output to @var{file}.
+Write output to @var{file}.  To write to stdout use @code{-} as the
+filename.
 
 @item --max-output @code{n}
 @opindex max-output
@@ -2169,7 +2174,7 @@ stop by the OS limits. Defaults to 0, which means "no limit".
 @opindex input-size-hint
 This option can be used to tell GPG the size of the input data in
 bytes.  @var{n} must be a positive base-10 number.  This option is
-only useful if the input is not taken from a file.  GPG may use thos
+only useful if the input is not taken from a file.  GPG may use this
 hint to optimize its buffer allocation strategy.  It is also used by
 the @option{--status-fd} line ``PROGRESS'' to provide a value for
 ``total'' if that is not available by other means.
@@ -2193,7 +2198,7 @@ opposite meaning. The options are:
   a formerly deleted key does not automatically gain an ownertrust
   values merely due to import.  On the other hand it is sometimes
   necessary to re-import a trusted set of keys again but keeping
-  already assigned ownertrust values.  This can be achived by using
+  already assigned ownertrust values.  This can be achieved by using
   this option.
 
   @item repair-pks-subkey-bug
@@ -2254,9 +2259,13 @@ The available filter types are:
   This filter will keep a user id packet and its dependent packets in
   the keyblock if the expression evaluates to true.
 
+  @item drop-subkey
+  This filter drops the selected subkeys.
+  Currently only implemented for --export-filter.
+
   @item drop-sig
   This filter drops the selected key signatures on user ids.
-  Self-signatures are not consideres.
+  Self-signatures are not considered.
   Currently only implemented for --import-filter.
 
 @end table
@@ -2276,9 +2285,23 @@ The available properties are:
   The addr-spec part of a user id with mailbox or the empty string.
   (keep-uid)
 
+  @item key_algo
+  A number with the public key algorithm of a key or subkey packet.
+  (drop-subkey)
+
+  @item key_created
+  @itemx key_created_d
+  The first is the timestamp a public key or subkey packet was
+  created.  The second is the same but given as an ISO string,
+  e.g. "2016-08-17". (drop-subkey)
+
   @item primary
   Boolean indicating whether the user id is the primary one.  (keep-uid)
 
+  @item secret
+  Boolean indicating whether a key or subkey is a secret one.
+  drop-subkey)
+
   @item sig_created
   @itemx sig_created_d
   The first is the timestamp a signature packet was created.  The
@@ -2400,7 +2423,7 @@ this is implicitly enable for secret keys.
 
 @item --with-wkd-hash
 @opindex with-wkd-hash
-Print a Web Key Directory indentifier along with each user ID in key
+Print a Web Key Directory identifier along with each user ID in key
 listings.  This is an experimental feature and semantics may change.
 
 @item --with-secret
@@ -2414,7 +2437,7 @@ done with @code{--with-colons}.
 @c ********  OPENPGP OPTIONS  ****************
 @c *******************************************
 @node OpenPGP Options
-@subsection OpenPGP protocol specific options.
+@subsection OpenPGP protocol specific options
 
 @table @gnupgtabopt
 
@@ -2575,7 +2598,7 @@ Set up all options to be as PGP 6 compliant as possible. This
 restricts you to the ciphers IDEA (if the IDEA plugin is installed),
 3DES, and CAST5, the hashes MD5, SHA1 and RIPEMD160, and the
 compression algorithms none and ZIP. This also disables
---throw-keyids, and making signatures with signing subkeys as PGP 6
+@option{--throw-keyids}, and making signatures with signing subkeys as PGP 6
 does not understand signatures made by signing subkeys.
 
 This option implies @option{--disable-mdc --escape-from-lines}.
@@ -2595,6 +2618,12 @@ this does is disable @option{--throw-keyids} and set
 @option{--escape-from-lines}.  All algorithms are allowed except for the
 SHA224, SHA384, and SHA512 digests.
 
+@item --compliance @var{string}
+@opindex compliance
+This option can be used instead of one of the options above.  Valid
+values for @var{string} are the above option names (without the double
+dash) and possibly others as shown when using "help" for @var{value}.
+
 @end table
 
 
@@ -2602,7 +2631,7 @@ SHA224, SHA384, and SHA512 digests.
 @c ********  ESOTERIC OPTIONS  ***************
 @c *******************************************
 @node GPG Esoteric Options
-@subsection Doing things one usually doesn't want to do.
+@subsection Doing things one usually doesn't want to do
 
 @table @gnupgtabopt
 
@@ -2614,7 +2643,7 @@ Don't make any changes (this is not completely implemented).
 @item --list-only
 @opindex list-only
 Changes the behaviour of some commands. This is like @option{--dry-run} but
-different in some cases. The semantic of this command may be extended in
+different in some cases. The semantic of this option may be extended in
 the future. Currently it only skips the actual decryption pass and
 therefore enables a fast listing of the encryption keys.
 
@@ -2697,9 +2726,8 @@ Write log output to file descriptor @code{n} and not to STDERR.
 @item --log-file @code{file}
 @itemx --logger-file @code{file}
 @opindex log-file
-Same as @option{--logger-fd}, except the logger data is written to file
-@code{file}.  Note that @option{--log-file} is only implemented for
-GnuPG-2.
+Same as @option{--logger-fd}, except the logger data is written to
+file @code{file}.  Use @file{socket://} to log to socket.
 
 @item --attribute-fd @code{n}
 @opindex attribute-fd
@@ -2730,8 +2758,8 @@ protected by the signature.
 @opindex emit-version
 Force inclusion of the version string in ASCII armored output.  If
 given once only the name of the program and the major number is
-emitted, given twice the minor is also emitted, given triple
-the micro is added, and given quad an operating system identification
+emitted, given twice the minor is also emitted, given thrice
+the micro is added, and given four times an operating system identification
 is also emitted.  @option{--no-emit-version} (default) disables the version
 line.
 
@@ -2748,7 +2776,7 @@ must contain a '@@' character in the form keyname@@domain.example.com
 is to help prevent pollution of the IETF reserved notation
 namespace. The @option{--expert} flag overrides the '@@'
 check. @code{value} may be any printable string; it will be encoded in
-UTF8, so you should check that your @option{--display-charset} is set
+UTF-8, so you should check that your @option{--display-charset} is set
 correctly. If you prefix @code{name} with an exclamation mark (!), the
 notation data will be flagged as critical
 (rfc4880:5.2.3.16). @option{--sig-notation} sets a notation for data
@@ -2793,7 +2821,7 @@ The same %-expandos used for notation data are available here as well.
 @opindex set-filename
 Use @code{string} as the filename which is stored inside messages.
 This overrides the default, which is to use the actual filename of the
-file being encrypted.  Using the empty string for @var{string}
+file being encrypted.  Using the empty string for @code{string}
 effectively removes the filename from the output.
 
 @item --for-your-eyes-only
@@ -3090,13 +3118,17 @@ inappropriate plaintext so they can take action against the offending
 user.
 
 @item --override-session-key @code{string}
+@itemx --override-session-key-fd @code{fd}
 @opindex override-session-key
-Don't use the public key but the session key @code{string}. The format
-of this string is the same as the one printed by
-@option{--show-session-key}. This option is normally not used but comes
-handy in case someone forces you to reveal the content of an encrypted
-message; using this option you can do this without handing out the
-secret key.
+Don't use the public key but the session key @code{string} respective
+the session key taken from the first line read from file descriptor
+@code{fd}.  The format of this string is the same as the one printed
+by @option{--show-session-key}. This option is normally not used but
+comes handy in case someone forces you to reveal the content of an
+encrypted message; using this option you can do this without handing
+out the secret key.  Note that using @option{--override-session-key}
+may reveal the session key to all local users via the global process
+table.
 
 @item --ask-sig-expire
 @itemx --no-ask-sig-expire
@@ -3149,7 +3181,7 @@ workaround!
 
 @item --enable-special-filenames
 @opindex enable-special-filenames
-This options enables a mode in which filenames of the form
+This option enables a mode in which filenames of the form
 @file{-&n}, where n is a non-negative decimal number,
 refer to the file descriptor n and not to a file with that name.
 
@@ -3302,7 +3334,7 @@ files; They all live in in the current home directory (@pxref{option
 
   @item ~/.gnupg/pubring.kbx
   @efindex pubring.kbx
-  The public keyring using a different format.  This file is sharred
+  The public keyring using a different format.  This file is shared
   with @command{gpgsm}.  You should backup this file.
 
   @item ~/.gnupg/pubring.kbx.lock
@@ -3381,7 +3413,6 @@ Operation is further controlled by a few environment variables:
   language selection done through the Registry.  If used and set to a
   valid and available language name (@var{langid}), the file with the
   translation is loaded from
-
   @code{@var{gpgdir}/gnupg.nls/@var{langid}.mo}.  Here @var{gpgdir} is the
   directory out of which the gpg binary has been loaded.  If it can't be
   loaded the Registry is tried and as last resort the native Windows
@@ -3420,14 +3451,16 @@ show keys
 show fingerprint
 
 @item gpg --verify @code{pgpfile}
-@itemx gpg --verify @code{sigfile}
-Verify the signature of the file but do not output the data. The
-second form is used for detached signatures, where @code{sigfile}
-is the detached signature (either ASCII armored or binary) and
-are the signed data; if this is not given, the name of
-the file holding the signed data is constructed by cutting off the
-extension (".asc" or ".sig") of @code{sigfile} or by asking the
-user for the filename.
+@itemx gpg --verify @code{sigfile} [@code{datafile}]
+Verify the signature of the file but do not output the data unless
+requested.  The second form is used for detached signatures, where
+@code{sigfile} is the detached signature (either ASCII armored or
+binary) and @code{datafile} are the signed data; if this is not given, the name of the
+file holding the signed data is constructed by cutting off the
+extension (".asc" or ".sig") of @code{sigfile} or by asking the user
+for the filename.  If the option @option{--output} is also used the
+signed data is written to the file specified by that option; use
+@code{-} to write the signed data to stdout.
 @end table
 
 
@@ -3501,12 +3534,24 @@ The supported operators (@var{op}) are:
   @item  <
   The numerical value of the field must be LT than the value.
 
-  @item  >=
+  @item  >
   The numerical value of the field must be GT than the value.
 
   @item  >=
   The numerical value of the field must be GE than the value.
 
+  @item  -le
+  The string value of the field must be less or equal than the value.
+
+  @item  -lt
+  The string value of the field must be less than the value.
+
+  @item  -gt
+  The string value of the field must be greater than the value.
+
+  @item  -ge
+  The string value of the field must be greater or equal than the value.
+
   @item  -n
   True if value is not empty (no value allowed).
 
@@ -3768,7 +3813,7 @@ can be handled.  See also @samp{Key-Type} above.
 
 @item Subkey-Length: @var{nbits}
 Length of the secondary key (subkey) in bits.  The default is returned
-by running the command @samp{@gpgname --gpgconf-list}".
+by running the command @samp{@gpgname --gpgconf-list}.
 
 @item Subkey-Usage: @var{usage-list}
 Key usage lists for a subkey; similar to @samp{Key-Usage}.
index dae26b2..e3e852c 100644 (file)
@@ -108,7 +108,7 @@ abbreviate this command.
 @table @gnupgtabopt
 @item --encrypt
 @opindex encrypt
-Perform an encryption.  The keys the data is encrypted too must be set
+Perform an encryption.  The keys the data is encrypted to must be set
 using the option @option{--recipient}.
 
 @item --decrypt
@@ -136,7 +136,7 @@ Run in server mode and wait for commands on the @code{stdin}.
 Behave as a Dirmngr client issuing the request @var{command} with the
 optional list of @var{args}.  The output of the Dirmngr is printed
 stdout.  Please note that file names given as arguments should have an
-absolute file name (i.e. commencing with @code{/} because they are
+absolute file name (i.e. commencing with @code{/}) because they are
 passed verbatim to the Dirmngr and the working directory of the
 Dirmngr might not be the same as the one of this client.  Currently it
 is not possible to pass data via stdin to the Dirmngr.  @var{command}
@@ -258,7 +258,7 @@ Export the private key and the certificate identified by @var{key-id} in
 a PKCS#12 format. When used with the @code{--armor} option a few
 informational lines are prepended to the output.  Note, that the PKCS#12
 format is not very secure and this command is only provided if there is
-no other way to exchange the private key. (@pxref{option --p12-charset})
+no other way to exchange the private key. (@xref{option --p12-charset}.)
 
 @item --export-secret-key-p8 @var{key-id}
 @itemx --export-secret-key-raw @var{key-id}
@@ -384,6 +384,7 @@ Do not print a warning when the so called "secure memory" cannot be used.
 @item --log-file @var{file}
 @opindex log-file
 When running in server mode, append all logging output to @var{file}.
+Use @file{socket://} to log to socket.
 
 @end table
 
@@ -568,7 +569,7 @@ When doing a key listing, do a full validation check for each key and
 print the result.  This is usually a slow operation because it
 requires a CRL lookup and other operations.
 
-When used along with --import, a validation of the certificate to
+When used along with @option{--import}, a validation of the certificate to
 import is done and only imported if it succeeds the test.  Note that
 this does not affect an already available certificate in the DB.
 This option is therefore useful to simply verify a certificate.
@@ -580,7 +581,7 @@ certificate.
 
 @item --with-keygrip
 Include the keygrip in standard key listings.  Note that the keygrip is
-always listed in --with-colons mode.
+always listed in @option{--with-colons} mode.
 
 @item --with-secret
 @opindex with-secret
@@ -593,7 +594,7 @@ done with @code{--with-colons}.
 @c *************  CMS OPTIONS  ***************
 @c *******************************************
 @node CMS Options
-@subsection How to change how the CMS is created.
+@subsection How to change how the CMS is created
 
 @table @gnupgtabopt
 @item --include-certs @var{n}
@@ -624,7 +625,7 @@ interoperability problems.
 @c ********  ESOTERIC OPTIONS  ***************
 @c *******************************************
 @node Esoteric Options
-@subsection Doing things one usually do not want to do.
+@subsection Doing things one usually do not want to do
 
 
 @table @gnupgtabopt
@@ -635,7 +636,7 @@ Sometimes signatures are broken in that they announce a different digest
 algorithm than actually used.  @command{gpgsm} uses a one-pass data
 processing model and thus needs to rely on the announced digest
 algorithms to properly hash the data.  As a workaround this option may
-be used to tell gpg to also hash the data using the algorithm
+be used to tell @command{gpgsm} to also hash the data using the algorithm
 @var{name}; this slows processing down a little bit but allows verification of
 such broken signatures.  If @command{gpgsm} prints an error like
 ``digest algo 8 has not been enabled'' you may want to try this option,
@@ -702,7 +703,7 @@ memory allocation
 @item 6  (64)
 caching
 @item 7  (128)
-show memory statistics.
+show memory statistics
 @item 9  (512)
 write hashed data to files named @code{dbgmd-000*}
 @item 10 (1024)
@@ -833,8 +834,8 @@ They are defined as certificates capable of creating legally binding
 signatures in the same way as handwritten signatures are.  Comments
 start with a hash mark and empty lines are ignored.  Lines do have a
 length limit but this is not a serious limitation as the format of the
-entries is fixed and checked by gpgsm: A non-comment line starts with
-optional whitespace, followed by exactly 40 hex character, white space
+entries is fixed and checked by @command{gpgsm}: A non-comment line starts with
+optional whitespace, followed by exactly 40 hex characters, white space
 and a lowercased 2 letter country code.  Additional data delimited with
 by a white space is current ignored but might late be used for other
 purposes.
@@ -851,7 +852,7 @@ updated; new distributions of this software should come with an updated
 list but it is still the responsibility of the Administrator to check
 that this list is correct.
 
-Everytime @command{gpgsm} uses a certificate for signing or verification
+Every time @command{gpgsm} uses a certificate for signing or verification
 this file will be consulted to check whether the certificate under
 question has ultimately been issued by one of these CAs.  If this is the
 case the user will be informed that the verified signature represents a
@@ -892,7 +893,7 @@ into the directory @file{/etc/skel/.gnupg/} so that newly created users
 start up with a working configuration.  For existing users a small
 helper script is provided to create these files (@pxref{addgnupghome}).
 
-For internal purposes gpgsm creates and maintains a few other files;
+For internal purposes @command{gpgsm} creates and maintains a few other files;
 they all live in in the current home directory (@pxref{option
 --homedir}).  Only @command{gpgsm} may modify these files.
 
@@ -987,7 +988,7 @@ these status codes:
 
 @item The signature is invalid
 This means that the signature verification failed (this is an indication
-of af a transfer error, a program error or tampering with the message).
+of a transfer error, a program error or tampering with the message).
 @command{gpgsm} issues one of these status codes sequences:
   @table @code
   @item  @code{BADSIG}
@@ -1074,7 +1075,7 @@ parameter.  The only supported value for @var{algo} is @samp{rsa}.
 The requested length of a generated key in bits.  Defaults to 2048.
 
 @item Key-Grip: @var{hexstring}
-This is optional and used to generate a CSR or certificatet for an
+This is optional and used to generate a CSR or certificate for an
 already existing key.  Key-Length will be ignored when given.
 
 @item Key-Usage: @var{usage-list}
@@ -1109,11 +1110,11 @@ certificate signing request):
 @item Serial: @var{sn}
 If this parameter is given an X.509 certificate will be generated.
 @var{sn} is expected to be a hex string representing an unsigned
-integer of arbitary length.  The special value @samp{random} can be
+integer of arbitrary length.  The special value @samp{random} can be
 used to create a 64 bit random serial number.
 
 @item Issuer-DN: @var{issuer-name}
-This is the DN name of the issuer in rfc2253 format.  If it is not set
+This is the DN name of the issuer in RFC-2253 format.  If it is not set
 it will default to the subject DN and a special GnuPG extension will
 be included in the certificate to mark it as a standalone certificate.
 
@@ -1152,7 +1153,7 @@ default is @samp{sha256}.
 @c ***************           *****************
 @c *******************************************
 @node GPGSM Protocol
-@section The Protocol the Server Mode Uses.
+@section The Protocol the Server Mode Uses
 
 Description of the protocol used to access @command{GPGSM}.
 @command{GPGSM} does implement the Assuan protocol and in addition
@@ -1226,11 +1227,11 @@ correct.
 
 Set the file descriptor to be used for the output (i.e. the encrypted
 message). Obviously the pipe must be open at that point, the server
-establishes its own end.  If the server returns an error he client
+establishes its own end.  If the server returns an error the client
 should consider this session failed.
 
-The option armor encodes the output in @acronym{PEM} format, the
-@code{--base64} option applies just a base 64 encoding.  No option
+The option @option{--armor} encodes the output in @acronym{PEM} format, the
+@option{--base64} option applies just a base-64 encoding.  No option
 creates binary output (@acronym{BER}).
 
 The actual encryption is done using the command
@@ -1256,19 +1257,19 @@ closed.
 @subsection Decrypting a message
 
 Input and output FDs are set the same way as in encryption, but
-@code{INPUT} refers to the ciphertext and output to the plaintext. There
+@code{INPUT} refers to the ciphertext and @code{OUTPUT} to the plaintext. There
 is no need to set recipients.  @command{GPGSM} automatically strips any
 @acronym{S/MIME} headers from the input, so it is valid to pass an
 entire MIME part to the INPUT pipe.
 
-The encryption is done by using the command
+The decryption is done by using the command
 
 @example
   DECRYPT
 @end example
 
 It performs the decrypt operation after doing some check on the internal
-state. (e.g. that all needed data has been set).  Because it utilizes
+state (e.g. that all needed data has been set).  Because it utilizes
 the GPG-Agent for the session key decryption, there is no need to ask
 the client for a protecting passphrase - GpgAgent takes care of this by
 requesting this from the user.
@@ -1296,8 +1297,8 @@ requested, only the signature is written.
   SIGN [--detached]
 @end example
 
-Sign the data set with the INPUT command and write it to the sink set by
-OUTPUT.  With @code{--detached}, a detached signature is created
+Sign the data set with the @code{INPUT} command and write it to the sink set by
+@code{OUTPUT}.  With @code{--detached}, a detached signature is created
 (surprise).
 
 The key used for signing is the default one or the one specified in
@@ -1308,7 +1309,7 @@ possible to use the command
   SIGNER @var{userID}
 @end example
 
-to the signer's key.  @var{userID} should be the
+to set the signer's key.  @var{userID} should be the
 internal representation of the key; the server may accept any other way
 of specification.  If this is a valid and trusted recipient the server
 does respond with OK, otherwise the return is an ERR with the reason why
@@ -1317,13 +1318,13 @@ this key.  If the policy is not to sign at all if not all
 keys are valid, the client has to take care of this.  All
 @code{SIGNER} commands are cumulative until a @code{RESET} is done.
 Note that a @code{SIGN} does not reset this list of signers which is in
-contrats to the @code{RECIPIENT} command.
+contrast to the @code{RECIPIENT} command.
 
 
 @node GPGSM VERIFY
 @subsection Verifying a Message
 
-To verify a mesage the command:
+To verify a message the command:
 
 @example
   VERIFY
@@ -1386,7 +1387,7 @@ in turn this requires that the usual escape quoting rules are done.
 
 Lists only the keys where a secret key is available.
 
-The list commands  commands are affected by the option
+The list commands are affected by the option
 
 @example
   OPTION list-mode=@var{mode}
@@ -1421,14 +1422,14 @@ required: Spaces are to be translated into "+" or into "%20"; in turn
 this requires that the usual escape quoting rules are done.
 
 If the @option{--data} option has not been given, the format of the
-output depends on what was set with the OUTPUT command.  When using
+output depends on what was set with the @code{OUTPUT} command.  When using
 @acronym{PEM} encoding a few informational lines are prepended.
 
-If the @option{--data} has been given, a target set via OUTPUT is
+If the @option{--data} has been given, a target set via @code{OUTPUT} is
 ignored and the data is returned inline using standard
 @code{D}-lines. This avoids the need for an extra file descriptor.  In
 this case the options @option{--armor} and @option{--base64} may be used
-in the same way as with the OUTPUT command.
+in the same way as with the @code{OUTPUT} command.
 
 
 @node GPGSM IMPORT
@@ -1468,7 +1469,7 @@ The certificates must be specified unambiguously otherwise an error is
 returned.
 
 @node GPGSM GETAUDITLOG
-@subsection Retrieve an audit log.
+@subsection Retrieve an audit log
 @anchor{gpgsm-cmd getauditlog}
 
 This command is used to retrieve an audit log.
@@ -1478,7 +1479,7 @@ GETAUDITLOG [--data] [--html]
 @end example
 
 If @option{--data} is used, the audit log is send using D-lines
-instead of being sent to the file descriptor given by an OUTPUT
+instead of being sent to the file descriptor given by an @code{OUTPUT}
 command.  If @option{--html} is used, the output is formatted as an
 XHTML block. This is designed to be incorporated into a HTML
 document.
@@ -1511,7 +1512,7 @@ started with option @option{--disable-dirmngr}.
 @end table
 
 @node GPGSM OPTION
-@subsection  Session options.
+@subsection  Session options
 
 The standard Assuan option handler supports these options.
 
@@ -1569,7 +1570,7 @@ signers certicate and all other positive values include up to
 @item list-to-output
 If @var{value} is true the output of the list commands
 (@pxref{gpgsm-cmd listkeys}) is written to the file descriptor set
-with the last OUTPUT command.  If @var{value} is false the output is
+with the last @code{OUTPUT} command.  If @var{value} is false the output is
 written via data lines; this is the default.
 
 @item with-validation
@@ -1587,15 +1588,15 @@ are marked by the list commands.
 @item validation-model
 This option overrides the command line option
 @option{validation-model} for the session.
-(@pxref{gpgsm-option --validation-model}.)
+(@xref{gpgsm-option --validation-model}.)
 
 @item with-key-data
 This option globally enables the command line option
-@option{--with-key-data}.  (@pxref{gpgsm-option --with-key-data}.)
+@option{--with-key-data}.  (@xref{gpgsm-option --with-key-data}.)
 
 @item enable-audit-log
 If @var{value} is true data to write an audit log is gathered.
-(@pxref{gpgsm-cmd getauditlog}.)
+(@xref{gpgsm-cmd getauditlog}.)
 
 @item allow-pinentry-notify
 If this option is used notifications about the launch of a Pinentry
index 1d9a81e..0608a3f 100644 (file)
@@ -92,6 +92,16 @@ are replaced by the HOME directory. If the filename
 does not contain a slash, it is assumed to be in the
 home-directory ("~/.gnupg" if --homedir is not used).
 
+@item --output @var{file}
+@itemx -o @var{file}
+@opindex output
+Write output to @var{file}; to write to stdout use @code{-}.  This
+option can be used to get the signed text from a cleartext or binary
+signature; it also works for detached signatures, but in that case
+this option is in general not useful.  Note that an existing file will
+be overwritten.
+
+
 @item --status-fd @var{n}
 @opindex status-fd
 Write special status strings to the file descriptor @var{n}.  See the
@@ -118,6 +128,12 @@ supplied multiple times if multiple algorithms should be considered
 weak.  MD5 is always considered weak, and does not need to be listed
 explicitly.
 
+@item --enable-special-filenames
+@opindex enable-special-filenames
+This option enables a mode in which filenames of the form
+@file{-&n}, where n is a non-negative decimal number,
+refer to the file descriptor n and not to a file with that name.
+
 @end table
 
 @mansect return value
index d13e9e4..931a93d 100644 (file)
@@ -6,7 +6,7 @@
 @c This file is intended to be included in another file.
 
 @display
-Copyright @copyright{} 2007 Free Software Foundation, Inc. @url{http://fsf.org/}
+Copyright @copyright{} 2007 Free Software Foundation, Inc. @url{https://fsf.org/}
 
 Everyone is permitted to copy and distribute verbatim copies of this
 license document, but changing it is not allowed.
@@ -696,7 +696,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with this program.  If not, see @url{http://www.gnu.org/licenses/}.
+along with this program.  If not, see @url{https://www.gnu.org/licenses/}.
 @end example
 
 @noindent
@@ -722,11 +722,11 @@ use an ``about box''.
 You should also get your employer (if you work as a programmer) or school,
 if any, to sign a ``copyright disclaimer'' for the program, if necessary.
 For more information on this, and how to apply and follow the GNU GPL, see
-@url{http://www.gnu.org/licenses/}.
+@url{https://www.gnu.org/licenses/}.
 
 The GNU General Public License does not permit incorporating your
 program into proprietary programs.  If your program is a subroutine
 library, you may consider it more useful to permit linking proprietary
 applications with the library.  If this is what you want to do, use
 the GNU Lesser General Public License instead of this License.  But
-first, please read @url{http://www.gnu.org/philosophy/why-not-lgpl.html}.
+first, please read @url{https://www.gnu.org/philosophy/why-not-lgpl.html}.
index 36c9ffb..0ac3be7 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 .#gpg.edit_ownertrust.value
@@ -228,7 +228,7 @@ self-signatures will be advanced by one second.
 
 .#gpg.passphrase.enter
 # fixme: Please translate and remove the hash mark from the key line.
-Please enter the passhrase; this is a secret sentence 
+Please enter the passphrase; this is a secret sentence
 
 .
 
index 36c9ffb..0ac3be7 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 .#gpg.edit_ownertrust.value
@@ -228,7 +228,7 @@ self-signatures will be advanced by one second.
 
 .#gpg.passphrase.enter
 # fixme: Please translate and remove the hash mark from the key line.
-Please enter the passhrase; this is a secret sentence 
+Please enter the passphrase; this is a secret sentence
 
 .
 
index 36c9ffb..0ac3be7 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 .#gpg.edit_ownertrust.value
@@ -228,7 +228,7 @@ self-signatures will be advanced by one second.
 
 .#gpg.passphrase.enter
 # fixme: Please translate and remove the hash mark from the key line.
-Please enter the passhrase; this is a secret sentence 
+Please enter the passphrase; this is a secret sentence
 
 .
 
index 36c9ffb..0ac3be7 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 .#gpg.edit_ownertrust.value
@@ -228,7 +228,7 @@ self-signatures will be advanced by one second.
 
 .#gpg.passphrase.enter
 # fixme: Please translate and remove the hash mark from the key line.
-Please enter the passhrase; this is a secret sentence 
+Please enter the passphrase; this is a secret sentence
 
 .
 
index 7b2fffe..ce0ce14 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 # Die Datei help.txt beschreibt das verwendete Format.
index 36c9ffb..0ac3be7 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 .#gpg.edit_ownertrust.value
@@ -228,7 +228,7 @@ self-signatures will be advanced by one second.
 
 .#gpg.passphrase.enter
 # fixme: Please translate and remove the hash mark from the key line.
-Please enter the passhrase; this is a secret sentence 
+Please enter the passphrase; this is a secret sentence
 
 .
 
index 36c9ffb..0ac3be7 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 .#gpg.edit_ownertrust.value
@@ -228,7 +228,7 @@ self-signatures will be advanced by one second.
 
 .#gpg.passphrase.enter
 # fixme: Please translate and remove the hash mark from the key line.
-Please enter the passhrase; this is a secret sentence 
+Please enter the passphrase; this is a secret sentence
 
 .
 
index 42e531b..d59f214 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 .gpg.edit_ownertrust.value
index 36c9ffb..0ac3be7 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 .#gpg.edit_ownertrust.value
@@ -228,7 +228,7 @@ self-signatures will be advanced by one second.
 
 .#gpg.passphrase.enter
 # fixme: Please translate and remove the hash mark from the key line.
-Please enter the passhrase; this is a secret sentence 
+Please enter the passphrase; this is a secret sentence
 
 .
 
index 9f92246..4286cc0 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 .gpg.edit_ownertrust.value
index c18fea0..4e4e7da 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 .gpg.edit_ownertrust.value
index 36c9ffb..0ac3be7 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 .#gpg.edit_ownertrust.value
@@ -228,7 +228,7 @@ self-signatures will be advanced by one second.
 
 .#gpg.passphrase.enter
 # fixme: Please translate and remove the hash mark from the key line.
-Please enter the passhrase; this is a secret sentence 
+Please enter the passphrase; this is a secret sentence
 
 .
 
index 1440dae..81b3991 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 .gpg.edit_ownertrust.value
index ae9e808..c07492f 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 .gpg.edit_ownertrust.value
index db6127f..675f8c0 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 .gpg.edit_ownertrust.value
index 0a538b8..c503de6 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 .#pinentry.qualitybar.tooltip
 # [ このエントリは有効にするには、上記のキーの # を削除してください。]
index 36c9ffb..0ac3be7 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 .#gpg.edit_ownertrust.value
@@ -228,7 +228,7 @@ self-signatures will be advanced by one second.
 
 .#gpg.passphrase.enter
 # fixme: Please translate and remove the hash mark from the key line.
-Please enter the passhrase; this is a secret sentence 
+Please enter the passphrase; this is a secret sentence
 
 .
 
index ef719a8..c5444b6 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 .gpg.edit_ownertrust.value
index dac17c0..da9a181 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 .gpg.edit_ownertrust.value
index 25a23c3..e88265c 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 .gpg.edit_ownertrust.value
index f655fdf..b26dd53 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 .gpg.edit_ownertrust.value
index 5a98cb3..b78e1ff 100644 (file)
@@ -15,7 +15,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 # The translated revision was taken from HEAD b8bb16c6c08d3c2947f1ff67
 # which is the same as the revision from STABLE-BRANCH-2-0 776bee6d370
index a0fa4aa..9e50c76 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 .gpg.edit_ownertrust.value
index 36c9ffb..0ac3be7 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 .#gpg.edit_ownertrust.value
@@ -228,7 +228,7 @@ self-signatures will be advanced by one second.
 
 .#gpg.passphrase.enter
 # fixme: Please translate and remove the hash mark from the key line.
-Please enter the passhrase; this is a secret sentence 
+Please enter the passphrase; this is a secret sentence
 
 .
 
index 15bdf8e..086f191 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 .gpg.edit_ownertrust.value
index e92cfbe..38f25cd 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 # Note that this help file needs to be UTF-8 encoded.  When looking
@@ -312,7 +312,7 @@ self-signatures will be advanced by one second.
 .gpg.passphrase.enter
 # (keep a leading empty line)
 
-Please enter the passhrase; this is a secret sentence.
+Please enter the passphrase; this is a secret sentence.
 .
 
 
@@ -358,8 +358,19 @@ revocation certificate.  Please keep this text concise.
 An empty line ends the text.
 .
 
-
-
+.gpg.tofu.conflict
+# tofu.c
+TOFU has detected another key with the same (or a very similar) email
+address.  It might be that the user created a new key.  In this case,
+you can safely trust the new key (but, confirm this by asking the
+person).  However, it could also be that the key is a forgery or there
+is an active Man-in-the-Middle (MitM) attack.  In this case, you
+should mark the key as being bad, so that it is untrusted.  Marking a
+key as being untrusted means that any signatures will be considered
+bad and attempts to encrypt to the key will be flagged.  If you are
+unsure and can't currently check, you should select either accept once
+or reject once.
+.
 
 .gpgsm.root-cert-not-trusted
 # This text gets displayed by the audit log if
index e000fa0..7b199c2 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 .gpg.edit_ownertrust.value
index 800dad9..5665b70 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 # 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 
 .gpg.edit_ownertrust.value
index 496c9ee..ea0ce71 100644 (file)
@@ -145,7 +145,6 @@ When it is ready, you should see the final notice:
 
 @cartouche
 @example
-  gpgsm: certificate request created
   Ready.  You should now send this request to your CA.
 @end example
 @end cartouche
@@ -207,7 +206,7 @@ followed by a Ctrl-D
 @end example
 @end cartouche
 
-gpgsm tells you that it has imported the certificate. It is now
+@command{gpgsm} tells you that it has imported the certificate. It is now
 associated with the key you used when creating the request. The root
 certificate has not been found, so you may want to import it from the
 CACert website.
index 76d8de1..bf99a5c 100644 (file)
@@ -4,7 +4,7 @@
 @c For copying conditions, see the file gnupg.texi.
 
 @node Installation
-@chapter A short installation guide.
+@chapter A short installation guide
 
 Unfortunately the installation guide has not been finished in time.
 Instead of delaying the release of GnuPG 2.0 even further, I decided to
@@ -12,14 +12,14 @@ release without that guide.  The chapter on gpg-agent and gpgsm do
 include brief information on how to set up the whole thing.  Please
 watch the GnuPG website for updates of the documentation.  In the
 meantime you may search the GnuPG mailing list archives or ask on the
-gnupg-users mailing listsfor advise on how to solve problems or how to
+gnupg-users mailing list for advise on how to solve problems or how to
 get that whole thing up and running.
 
 ** Building the software
 
-Building the software is decribed in the file @file{INSTALL}.  Given
+Building the software is described in the file @file{INSTALL}.  Given
 that you are already reading this documentation we can only give some
-extra hints
+extra hints.
 
 To comply with the rules on GNU systems you should have build time
 configured @command{gnupg} using:
@@ -62,7 +62,7 @@ user installation this can be done once for all users on a machine.
 Specific changes on a per-user base are also possible.
 @end itemize
 
-@c decribe how to maintain trustlist.txt and /etc/gnupg/trustlist.txt.
+@c describe how to maintain trustlist.txt and /etc/gnupg/trustlist.txt.
 
 
 @c ** How to get the ssh support running
index e1ce077..07993d2 100644 (file)
@@ -16,8 +16,8 @@ considered, all other ways to set a home directory are ignored.
 
 @efindex gpgconf.ctl
 To install GnuPG as a portable application under Windows, create an
-empty file name @file{gpgconf.ctl} in the same directory as the tool
-@file{gpgconf.exe}.  The root of the installation is than that
+empty file named @file{gpgconf.ctl} in the same directory as the tool
+@file{gpgconf.exe}.  The root of the installation is then that
 directory; or, if @file{gpgconf.exe} has been installed directly below
 a directory named @file{bin}, its parent directory.  You also need to
 make sure that the following directories exist and are writable:
index c145814..4cf44bc 100644 (file)
@@ -66,22 +66,22 @@ only one command is allowed.
 @table @gnupgtabopt
 @item --version
 @opindex version
-Print the program version and licensing information.  Not that you can
+Print the program version and licensing information.  Note that you cannot
 abbreviate this command.
 
 @item --help, -h
 @opindex help
 Print a usage message summarizing the most useful command-line options.
-Not that you can abbreviate this command.
+Note that you cannot abbreviate this command.
 
 @item --dump-options
 @opindex dump-options
-Print a list of all available options and commands.  Not that you can
+Print a list of all available options and commands.  Note that you cannot
 abbreviate this command.
 
 @item --server
 @opindex server
-Run in server mode and wait for commands on the @code{stdin}.  This is
+Run in server mode and wait for commands on the @code{stdin}.  The
 default mode is to create a socket and listen for commands there.
 
 @item --multi-server
@@ -160,7 +160,7 @@ helpers to debug problems.
 
 @item --debug @var{flags}
 @opindex debug
-This option is only useful for debugging and the behaviour may change at
+This option is only useful for debugging and the behavior may change at
 any time without notice.  FLAGS are bit encoded and may be given in
 usual C-Syntax. The currently defined bits are:
 
@@ -176,7 +176,7 @@ memory allocation
 @item 6  (64)
 caching
 @item 7  (128)
-show memory statistics.
+show memory statistics
 @item 9  (512)
 write hashed data to files named @code{dbgmd-000*}
 @item 10 (1024)
@@ -213,7 +213,7 @@ insertions.
 @opindex debug-allow-core-dump
 For security reasons we won't create a core dump when the process
 aborts.  For debugging purposes it is sometimes better to allow core
-dump.  This options enables it and also changes the working directory to
+dump.  This option enables it and also changes the working directory to
 @file{/tmp} when running in @option{--server} mode.
 
 @item --debug-log-tid
@@ -239,7 +239,8 @@ debugging.
 @item --log-file @var{file}
 @opindex log-file
 Append all logging output to @var{file}.  This is very helpful in
-seeing what the agent actually does.
+seeing what the agent actually does.  Use @file{socket://} to log to
+socket.
 
 
 @item --pcsc-driver @var{library}
@@ -312,10 +313,10 @@ Even if a card reader features a pinpad, do not try to use it.
 @opindex allow-admin
 This option disables the use of admin class commands for card
 applications where this is supported.  Currently we support it for the
-OpenPGP card. This commands is useful to inhibit accidental access to
+OpenPGP card. This option is useful to inhibit accidental access to
 admin class command which could ultimately lock the card through wrong
 PIN numbers.  Note that GnuPG versions older than 2.0.11 featured an
-@option{--allow-admin} command which was required to use such admin
+@option{--allow-admin} option which was required to use such admin
 commands.  This option has no more effect today because the default is
 now to allow admin commands.
 
@@ -389,7 +390,7 @@ comes with almost all German banking cards.
 @node SmartCard-HSM
 @subsection The SmartCard-HSM card application ``sc-hsm''
 
-This application adds read/only support for keys and certificates
+This application adds read-only support for keys and certificates
 stored on a @uref{http://www.smartcard-hsm.com, SmartCard-HSM}.
 
 To generate keys and store certifiates you may use
@@ -432,12 +433,12 @@ name may be changed on the command line (@pxref{option --options}).
 
 @item scd-event
 @cindex scd-event
-If this file is present and executable, it will be called on veyer card
-reader's status changed. An example of this script is provided with the
+If this file is present and executable, it will be called on every card
+reader's status change An example of this script is provided with the
 distribution
 
 @item reader_@var{n}.status
-This file is created by @command{sdaemon} to let other applications now
+This file is created by @command{scdaemon} to let other applications now
 about reader status changes.  Its use is now deprecated in favor of
 @file{scd-event}.
 
@@ -468,7 +469,7 @@ $ scdaemon --server -v
 
 The SC-Daemon should be started by the system to provide access to
 external tokens.  Using Smartcards on a multi-user system does not
-make much sense expect for system services, but in this case no
+make much sense except for system services, but in this case no
 regular user accounts are hosted on the machine.
 
 A client connects to the SC-Daemon by connecting to the socket named
@@ -489,7 +490,7 @@ synchronizing access to a token between sessions.
 * Scdaemon SETATTR::      Update an attribute's value.
 * Scdaemon WRITEKEY::     Write a key to a card.
 * Scdaemon GENKEY::       Generate a new key on-card.
-* Scdaemon RANDOM::       Return random bytes generate on-card.
+* Scdaemon RANDOM::       Return random bytes generated on-card.
 * Scdaemon PASSWD::       Change PINs.
 * Scdaemon CHECKPIN::     Perform a VERIFY operation.
 * Scdaemon RESTART::      Restart connection
@@ -532,7 +533,7 @@ the @code{0x5A} tag in the GDO file (FIX=0x2F02).
 @end example
 
 Learn all useful information of the currently inserted card.  When
-used without the force options, the command might do an INQUIRE
+used without the @option{--force} option, the command might do an INQUIRE
 like this:
 
 @example
@@ -560,7 +561,7 @@ returned in @var{hexstring_with_keygrip}.
 
 This function is used to read a certificate identified by
 @var{hexified_certid} from the card.  With OpenPGP cards the keyid
-@code{OpenPGP.3} may be used to rad the certificate of version 2 cards.
+@code{OpenPGP.3} may be used to read the certificate of version 2 cards.
 
 
 @node Scdaemon READKEY
@@ -621,23 +622,23 @@ using the command
 
 where @var{keyid} is the hexified ID of the key to be used.
 
-If the card is ware of the apdding format a status line with padding
+If the card is aware of the apdding format a status line with padding
 information is send before the plaintext data.  The key for this
 status line is @code{PADDING} with the only defined value being 0 and
 meaning padding has been removed.
 
 @node Scdaemon GETATTR
-@subsection Read an attribute's value.
+@subsection Read an attribute's value
 
 TO BE WRITTEN.
 
 @node Scdaemon SETATTR
-@subsection Update an attribute's value.
+@subsection Update an attribute's value
 
 TO BE WRITTEN.
 
 @node Scdaemon WRITEKEY
-@subsection Write a key to a card.
+@subsection Write a key to a card
 
 @example
   WRITEKEY [--force] @var{keyid}
@@ -656,18 +657,18 @@ actual card application.
 
 
 @node Scdaemon GENKEY
-@subsection Generate a new key on-card.
+@subsection Generate a new key on-card
 
 TO BE WRITTEN.
 
 @node Scdaemon RANDOM
-@subsection Return random bytes generate on-card.
+@subsection Return random bytes generated on-card
 
 TO BE WRITTEN.
 
 
 @node Scdaemon PASSWD
-@subsection Change PINs.
+@subsection Change PINs
 
 @example
    PASSWD [--reset] [--nullpin] @var{chvno}
@@ -679,7 +680,7 @@ is used to initialize the PIN of TCOS cards (6 byte NullPIN only).
 
 
 @node Scdaemon CHECKPIN
-@subsection Perform a VERIFY operation.
+@subsection Perform a VERIFY operation
 
 @example
   CHECKPIN @var{idstr}
@@ -708,7 +709,7 @@ and only if the retry counter is still at 3.
 
 
 @node Scdaemon RESTART
-@subsection Perform a RESTART operation.
+@subsection Perform a RESTART operation
 
 @example
   RESTART
@@ -726,7 +727,7 @@ command; i.e. to select another application.
 
 
 @node Scdaemon APDU
-@subsection Send a verbatim APDU to the card.
+@subsection Send a verbatim APDU to the card
 
 @example
   APDU [--atr] [--more] [--exlen[=@var{n}]] [@var{hexstring}]
index c49edad..b363c2a 100644 (file)
@@ -99,9 +99,9 @@ This uses a substring search but considers only the mail address
 @item By exact match on the subject's DN.
 This is indicated by a leading slash, directly followed by the RFC-2253
 encoded DN of the subject.  Note that you can't use the string printed
-by "gpgsm --list-keys" because that one as been reordered and modified
-for better readability; use --with-colons to print the raw (but standard
-escaped) RFC-2253 string
+by @code{gpgsm --list-keys} because that one has been reordered and modified
+for better readability; use @option{--with-colons} to print the raw
+(but standard escaped) RFC-2253 string.
 
 @cartouche
 @example
@@ -111,7 +111,7 @@ escaped) RFC-2253 string
 
 @item By exact match on the issuer's DN.
 This is indicated by a leading hash mark, directly followed by a slash
-and then directly followed by the rfc2253 encoded DN of the issuer.
+and then directly followed by the RFC-2253 encoded DN of the issuer.
 This should return the Root cert of the issuer.  See note above.
 
 @cartouche
@@ -132,7 +132,7 @@ RFC-2253 encoded DN of the issuer. See note above.
 @end example
 @end cartouche
 
-@item By keygrip
+@item By keygrip.
 This is indicated by an ampersand followed by the 40 hex digits of a
 keygrip.  @command{gpgsm} prints the keygrip when using the command
 @option{--dump-cert}.  It does not yet work for OpenPGP keys.
index dec07bd..f8cc212 100644 (file)
@@ -3,7 +3,7 @@
 @c For copying conditions, see the file gnupg.texi.
 
 @node System Notes
-@chapter Notes pertaining to certain OSes.
+@chapter Notes pertaining to certain OSes
 
 GnuPG has been developed on GNU/Linux systems and is know to work on
 almost all Free OSes.  All modern POSIX systems should be supported
index d6cf56e..b1ed615 100644 (file)
@@ -103,12 +103,14 @@ This waits for connections on the local socket
 @file{/home/foo/.gnupg/S.log} and shows all log entries.  To make this
 work the option @option{log-file} needs to be used with all modules
 which logs are to be shown.  The value for that option must be given
-with a special prefix (e.g. in the conf file):
+with a special prefix (e.g. in the conf files):
 
 @example
 log-file socket:///home/foo/.gnupg/S.log
 @end example
 
+If only @code{socket://} is used a default socket file named
+@file{S.log} in the standard socket directory is used.
 For debugging purposes it is also possible to do remote logging.  Take
 care if you use this feature because the information is send in the
 clear over the network.  Use this syntax in the conf files:
@@ -147,7 +149,7 @@ name for remote debugging.
 @c
 @manpage addgnupghome.8
 @node addgnupghome
-@section Create .gnupg home directories.
+@section Create .gnupg home directories
 @ifset manverb
 .B addgnupghome
 \- Create .gnupg home directories
@@ -164,7 +166,7 @@ name for remote debugging.
 If GnuPG is installed on a system with existing user accounts, it is
 sometimes required to populate the GnuPG home directory with existing
 files.  Especially a @file{trustlist.txt} and a keybox with some
-initial certificates are often desired.  This scripts help to do this
+initial certificates are often desired.  This script helps to do this
 by copying all files from @file{/etc/skel/.gnupg} to the home
 directories of the accounts given on the command line.  It takes care
 not to overwrite existing GnuPG home directories.
@@ -182,7 +184,7 @@ addgnupghome account1 account2 ... accountn
 @c
 @manpage gpgconf.1
 @node gpgconf
-@section Modify .gnupg home directories.
+@section Modify .gnupg home directories
 @ifset manverb
 .B gpgconf
 \- Modify .gnupg home directories
@@ -219,7 +221,7 @@ guarantees.}
 
 @command{gpgconf} provides access to the configuration of one or more
 components of the GnuPG system.  These components correspond more or
-less to the programs that exist in the GnuPG framework, like GnuPG,
+less to the programs that exist in the GnuPG framework, like GPG,
 GPGSM, DirMngr, etc.  But this is not a strict one-to-one
 relationship.  Not all configuration options are available through
 @command{gpgconf}.  @command{gpgconf} provides a generic and abstract
@@ -244,10 +246,11 @@ throughout this section.
 * Invoking gpgconf::       List of all commands and options.
 * Format conventions::     Formatting conventions relevant for all commands.
 * Listing components::     List all gpgconf components.
-* Checking programs::      Check all programs know to gpgconf.
+* Checking programs::      Check all programs known to gpgconf.
 * Listing options::        List all options of a component.
 * Changing options::       Changing options of a component.
 * Listing global options:: List all global options.
+* Querying versions::      Get and compare software versions.
 * Files used by gpgconf::  What files are used by gpgconf.
 @end menu
 
@@ -300,6 +303,21 @@ List the global configuration file in a colon separated format.  If
 Run a syntax check on the global configuration file.  If @var{filename}
 is given, check that file instead.
 
+
+@item --query-swdb @var{package_name} [@var{version_string}]
+Returns the current version for @var{package_name} and if
+@var{version_string} is given also an indicator on whether an update
+is available.  The actual file with the software version is
+automatically downloaded and checked by @command{dirmngr}.
+@command{dirmngr} uses a thresholds to avoid download the file too
+often and it does this by default only if it can be done via Tor.  To
+force an update of that file this command can be used:
+
+@example
+       gpg-connect-agent --dirmngr 'loadswdb --force' /bye
+@end example
+
+
 @item --reload [@var{component}]
 @opindex reload
 Reload all or the given component. This is basically the same as sending
@@ -317,9 +335,9 @@ may use this command to ensure that they are started.
 @item --kill [@var{component}]
 @opindex kill
 Kill the given component.  Components which support killing are
-gpg-agent and scdaemon.  Components which don't support reloading are
-ignored.  Note that as of now reload and kill have the same effect for
-scdaemon.
+@command{gpg-agent} and @command{scdaemon}.  Components which don't
+support reloading are ignored.  Note that as of now reload and kill
+have the same effect for @command{scdaemon}.
 
 @item --create-socketdir
 @opindex create-socketdir
@@ -420,8 +438,8 @@ is de-escaped by replacing all occurrences of @code{%XY} by the byte
 that has the hexadecimal value @code{XY}.  @code{X} and @code{Y} are
 from the set @code{0-9a-f}.
 
-@item localised
-Some fields contain strings that are described to be @emph{localised}.
+@item localized
+Some fields contain strings that are described to be @emph{localized}.
 Such strings are translated to the active language and formatted in
 the active character set.
 
@@ -485,7 +503,7 @@ quote character is only needed to be able to differentiate between no
 value and the empty string as value.
 
 @item string list
-If the option takes a number argument and it can occur more than once,
+If the option takes a string argument and it can occur more than once,
 then the option argument is either empty, or it is a comma-separated
 list of string arguments as described above.
 @end table
@@ -505,7 +523,7 @@ the locale environment of the @command{gpgconf} program.
 The command @code{--list-components} will list all components that can
 be configured with @command{gpgconf}.  Usually, one component will
 correspond to one GnuPG-related program and contain the options of
-that programs configuration file that can be modified using
+that program's configuration file that can be modified using
 @command{gpgconf}.  However, this is not necessarily the case.  A
 component might also be a group of selected options from several
 programs, or contain entirely virtual options that have a special
@@ -518,7 +536,7 @@ an atomic way with a single operation.  The GUI could for example
 provide a menu with one entry for each component, or a window with one
 tabulator sheet per component.
 
-The command argument @code{--list-components} lists all available
+The command @code{--list-components} lists all available
 components, one per line.  The format of each line is:
 
 @code{@var{name}:@var{description}:@var{pgmname}:}
@@ -563,7 +581,7 @@ components.  It runs each program to test whether it is installed and
 runnable.  This also includes a syntax check of all config file options
 of the program.
 
-The command argument @code{--check-programs} lists all available
+The command @code{--check-programs} lists all available
 programs, one per line.  The format of each line is:
 
 @code{@var{name}:@var{description}:@var{pgmname}:@var{avail}:@var{okay}:@var{cfgfile}:@var{line}:@var{error}:}
@@ -638,7 +656,7 @@ Every component contains one or more options.  Options may be gathered
 into option groups to allow the GUI to give visual hints to the user
 about which options are related.
 
-The command argument @code{@w{--list-options @var{component}}} lists
+The command @code{@w{--list-options @var{component}}} lists
 all options (and the groups they belong to) in the component
 @var{component}, one per line.  @var{component} must be the string in
 the field @var{name} in the output of the @code{--list-components}
@@ -697,9 +715,9 @@ If this flag is set, and the @code{optional arg} flag is set, then the
 option has a special meaning if no argument is given.
 
 @item no change (128)
-If this flag is set, gpgconf ignores requests to change the value.  GUI
-frontends should grey out this option.  Note, that manual changes of the
-configuration files are still possible.
+If this flag is set, @command{gpgconf} ignores requests to change the
+value.  GUI frontends should grey out this option.  Note, that manual
+changes of the configuration files are still possible.
 @end table
 
 @item level
@@ -802,14 +820,14 @@ error and abort the operation.
 @item argname
 This field is only defined for options with an argument type
 @var{type} that is not @code{0}.  In this case it may contain a
-@emph{percent-escaped} and @emph{localised string} that gives a short
+@emph{percent-escaped} and @emph{localized string} that gives a short
 name for the argument.  The field may also be empty, though, in which
 case a short name is not known.
 
 @item default
 This field is defined only for options for which the @code{default} or
 @code{default desc} flag is set.  If the @code{default} flag is set,
-its format is that of an @emph{option argument} (@xref{Format
+its format is that of an @emph{option argument} (@pxref{Format
 conventions}, for details).  If the default value is empty, then no
 default is known.  Otherwise, the value specifies the default value
 for this option.  If the @code{default desc} flag is set, the field is
@@ -819,7 +837,7 @@ not given.
 @item argdef
 This field is defined only for options for which the @code{optional
 arg} flag is set.  If the @code{no arg desc} flag is not set, its
-format is that of an @emph{option argument} (@xref{Format
+format is that of an @emph{option argument} (@pxref{Format
 conventions}, for details).  If the default value is empty, then no
 default is known.  Otherwise, the value specifies the default argument
 for this option.  If the @code{no arg desc} flag is set, the field is
@@ -923,7 +941,7 @@ This is the group field of the key.  It is percent escaped.
 This describes a rule record. All rule records up to the next key record
 make up a rule set for that key.  The format of a rule record is:
 
-  @code{r:::@var{component}:@var{option}:@var{flags}:@var{value}:}
+  @code{r:::@var{component}:@var{option}:@var{flag}:@var{value}:}
 
 @table @var
 @item component
@@ -951,6 +969,85 @@ Unknown record types should be ignored.  Note that there is intentionally
 no feature to change the global option file through @command{gpgconf}.
 
 
+@node Querying versions
+@subsection Get and compare software versions.
+
+The GnuPG Project operates a server to query the current versions of
+software packages related to GnuPG.  @command{gpgconf} can be used to
+access this online database.  To allow for offline operations, this
+feature works by having @command{dirmngr} download a file from
+@code{https://versions.gnupg.org}, checking the signature of that file
+and storing the file in the GnuPG home directory.  If
+@command{gpgconf} is used and @command{dirmngr} is running, it may ask
+@command{dirmngr} to refresh that file before itself uses the file.
+
+The command @option{--query-swdb} returns information for the given
+package in a colon delimited format:
+
+@table @var
+
+@item name
+This is the name of the package as requested.  Note that "gnupg" is a
+special name which is replaced by the actual package implementing this
+version of GnuPG.  For this name it is also not required to specify a
+version because @command{gpgconf} takes its own version in this case.
+
+@item iversion
+The currently installed version or an empty string.  The value is
+taken from the command line argument but may be provided by gpg
+if not given.
+
+@item status
+The status of the software package according to this table:
+@table @code
+@item -
+No information available.  This is either because no current version
+has been specified or due to an error.
+@item ?
+The given name is not known in the online database.
+@item u
+An update of the software is available.
+@item c
+The installed version of the software is current.
+@item n
+The installed version is already newer than the released version.
+@end table
+
+@item urgency
+If the value (the empty string should be considered as zero) is
+greater than zero an important update is available.
+
+@item error
+This returns an @command{gpg-error} error code to distinguish between
+various failure modes.
+
+@item filedate
+This gives the date of the file with the version numbers in standard
+ISO format (@code{yyyymmddThhmmss}).  The date has been extracted by
+@command{dirmngr} from the signature of the file.
+
+@item verified
+This gives the date in ISO format the file was downloaded.  This value
+can be used to evaluate the freshness of the information.
+
+@item version
+This returns the version string for the requested software from the
+file.
+
+@item reldate
+This returns the release date in ISO format.
+
+@item size
+This returns the size of the package as decimal number of bytes.
+
+@item hash
+This returns a hexified SHA-2 hash of the package.
+
+@end table
+
+@noindent
+More fields may be added in future to the output.
+
 
 @mansect files
 @node Files used by gpgconf
@@ -963,6 +1060,12 @@ no feature to change the global option file through @command{gpgconf}.
   If this file exists, it is processed as a global configuration file.
   A commented example can be found in the @file{examples} directory of
   the distribution.
+
+@item @var{GNUPGHOME}/swdb.lst
+@cindex swdb.lst
+  A file with current software versions.  @command{dirmngr} creates
+  this file on demand from an online resource.
+
 @end table
 
 
@@ -983,7 +1086,7 @@ no feature to change the global option file through @command{gpgconf}.
 @c
 @manpage applygnupgdefaults.8
 @node applygnupgdefaults
-@section Run gpgconf for all users.
+@section Run gpgconf for all users
 @ifset manverb
 .B applygnupgdefaults
 \- Run gpgconf --apply-defaults for all users.
@@ -1016,7 +1119,7 @@ applygnupgdefaults
 @c   GPG-PRESET-PASSPHRASE
 @c
 @node gpg-preset-passphrase
-@section Put a passphrase into the cache.
+@section Put a passphrase into the cache
 @manpage gpg-preset-passphrase.1
 @ifset manverb
 .B gpg-preset-passphrase
@@ -1052,7 +1155,7 @@ this passphrase presetting by starting @command{gpg-agent} with the
 
 @manpause
 @node Invoking gpg-preset-passphrase
-@subsection List of all commands and options.
+@subsection List of all commands and options
 @mancont
 
 @noindent
@@ -1119,7 +1222,7 @@ for other users.
 @c   GPG-CONNECT-AGENT
 @c
 @node gpg-connect-agent
-@section Communicate with a running agent.
+@section Communicate with a running agent
 @manpage gpg-connect-agent.1
 @ifset manverb
 .B gpg-connect-agent
@@ -1135,9 +1238,9 @@ for other users.
 @mansect description
 The @command{gpg-connect-agent} is a utility to communicate with a
 running @command{gpg-agent}.  It is useful to check out the commands
-gpg-agent provides using the Assuan interface.  It might also be useful
-for scripting simple applications.  Input is expected at stdin and out
-put gets printed to stdout.
+@command{gpg-agent} provides using the Assuan interface.  It might
+also be useful for scripting simple applications.  Input is expected
+at stdin and output gets printed to stdout.
 
 It is very similar to running @command{gpg-agent} in server mode; but
 here we connect to a running instance.
@@ -1149,7 +1252,7 @@ here we connect to a running instance.
 
 @manpause
 @node Invoking gpg-connect-agent
-@subsection List of all options.
+@subsection List of all options
 
 @noindent
 @command{gpg-connect-agent} is invoked this way:
@@ -1206,7 +1309,7 @@ be used to directly connect to any Assuan style socket server.
 @itemx --exec
 @opindex exec
 Take the rest of the command line as a program and it's arguments and
-execute it as an assuan server. Here is how you would run @command{gpgsm}:
+execute it as an Assuan server. Here is how you would run @command{gpgsm}:
 @smallexample
  gpg-connect-agent --exec gpgsm --server
 @end smallexample
@@ -1215,7 +1318,7 @@ Note that you may not use options on the command line in this case.
 @item --no-ext-connect
 @opindex no-ext-connect
 When using @option{-S} or @option{--exec}, @command{gpg-connect-agent}
-connects to the assuan server in extended mode to allow descriptor
+connects to the Assuan server in extended mode to allow descriptor
 passing.  This option makes it use the old mode.
 
 @item --no-autostart
@@ -1249,7 +1352,7 @@ a new line always starts with a D and a space.
 
 @mansect control commands
 @node Controlling gpg-connect-agent
-@subsection Control commands.
+@subsection Control commands
 
 While reading Assuan commands, gpg-agent also allows a few special
 commands to control its operation.  These control commands all start
@@ -1444,7 +1547,7 @@ string @code{true} or @code{yes}.  The evaluation is done by passing
 Run commands from @var{file}.
 
 @item /bye
-Terminate the connection and the program
+Terminate the connection and the program.
 
 @item /help
 Print a list of available control commands.
@@ -1564,7 +1667,7 @@ Do the check using the OCSP protocol and ignore any CRLs.
 
 @item --force-default-responder
 @opindex force-default-responder
-When checking using the OCSP protocl, force the use of the default OCSP
+When checking using the OCSP protocol, force the use of the default OCSP
 responder.  That is not to use the Reponder as given by the certificate.
 
 @item --ping
@@ -1650,7 +1753,7 @@ debugging.  Run it with @code{--help} for usage information.
 @c   SYMCRYPTRUN
 @c
 @node symcryptrun
-@section Call a simple symmetric encryption tool.
+@section Call a simple symmetric encryption tool
 @manpage symcryptrun.1
 @ifset manverb
 .B symcryptrun
@@ -1671,14 +1774,15 @@ debugging.  Run it with @code{--help} for usage information.
 @end ifset
 
 @mansect description
-Sometimes simple encryption tools are already in use for a long time and
-there might be a desire to integrate them into the GnuPG framework.  The
-protocols and encryption methods might be non-standard or not even
-properly documented, so that a full-fledged encryption tool with an
-interface like gpg is not doable.  @command{symcryptrun} provides a
-solution: It operates by calling the external encryption/decryption
-module and provides a passphrase for a key using the standard
-@command{pinentry} based mechanism through @command{gpg-agent}.
+Sometimes simple encryption tools are already in use for a long time
+and there might be a desire to integrate them into the GnuPG
+framework.  The protocols and encryption methods might be non-standard
+or not even properly documented, so that a full-fledged encryption
+tool with an interface like @command{gpg} is not doable.
+@command{symcryptrun} provides a solution: It operates by calling the
+external encryption/decryption module and provides a passphrase for a
+key using the standard @command{pinentry} based mechanism through
+@command{gpg-agent}.
 
 Note, that @command{symcryptrun} is only available if GnuPG has been
 configured with @samp{--enable-symcryptrun} at build time.
@@ -1689,7 +1793,7 @@ configured with @samp{--enable-symcryptrun} at build time.
 
 @manpause
 @node Invoking symcryptrun
-@subsection List of all commands and options.
+@subsection List of all commands and options
 
 @noindent
 @command{symcryptrun} is invoked this way:
@@ -1737,8 +1841,8 @@ Try to be as quiet as possible.
 
 @item --log-file @var{file}
 @opindex log-file
-Append all logging output to @var{file}.  Default is to write logging
-information to STDERR.
+Append all logging output to @var{file}.  Use @file{socket://} to log
+to socket.  Default is to write logging information to STDERR.
 
 @end table
 
@@ -1777,7 +1881,8 @@ The possible exit status codes of @command{symcryptrun} are:
 @node gpg-zip
 @section Encrypt or sign files into an archive
 @ifset manverb
-.B gpg-zip \- Encrypt or sign files into an archive
+.B gpg-zip
+\- Encrypt or sign files into an archive
 @end ifset
 
 @mansect synopsis
index 9b76f19..23fc6ba 100644 (file)
@@ -729,7 +729,8 @@ proc_texi_cmd (FILE *fp, const char *command, const char *rest, size_t len,
     { "asis",    7 },
     { "anchor",  7 },
     { "cartouche", 1 },
-    { "xref",    0, "see: [", "]" },
+    { "ref",     0, "[", "]" },
+    { "xref",    0, "See: [", "]" },
     { "pxref",   0, "see: [", "]" },
     { "uref",    0, "(\\fB", "\\fR)" },
     { "footnote",0, " ([", "])" },
index 31359d8..37da37b 100644 (file)
        to all foo-fd options.
        * gpgv.c, openfile.c, ringedit.c, tdbio.c: Minor fixes.  Mainly
        replaced hardcoded path separators with EXTSEP_S like macros.
-       * passprase.c [__riscos__]: Disabled agent stuff
+       * passphrase.c [__riscos__]: Disabled agent stuff
        * trustdb.c (check_trust): Changed r_trustlevel to signed int to
        avoid mismatch problems in pkclist.c
        * pkclist.c (add_ownertrust): Ditto.
@@ -11583,7 +11583,7 @@ Mon May  4 09:35:53 1998  Werner Koch  (wk@isil.d.shuttle.de)
        changed all callers.
 
        * passphrase.c (make_dek_from_passphrase): Removed
-       * (get_passhrase_hash): Changed name to passphrase_to_dek, add arg,
+       * (get_passphrase_hash): Changed name to passphrase_to_dek, add arg,
        changed all callers.
 
        * all: Introduced the new ELG identifier and added support for the
index fc33e83..604be93 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 ## Process this file with automake to produce Makefile.in
 
@@ -74,7 +74,7 @@ trust_source = trustdb.c trustdb.h tdbdump.c tdbio.c tdbio.h
 endif
 
 if USE_TOFU
-tofu_source = tofu.h tofu.c gpgsql.c gpgsql.h
+tofu_source = tofu.h tofu.c gpgsql.c gpgsql.h sqrtu32.c sqrtu32.h
 else
 tofu_source =
 endif
index 9e58520..c80e902 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -1436,7 +1436,7 @@ unarmor_pump (UnarmorPump x, int c)
       case STA_wait_dash:
         x->state = c == '-'? STA_first_dash : STA_wait_newline;
         break;
-      case STA_first_dash: /* just need for initalization */
+      case STA_first_dash: /* just need for initialization */
         x->pos = 0;
         x->state = STA_compare_header;
       case STA_compare_header:
index 86d42ef..ad46a02 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -1002,17 +1002,12 @@ build_sig_subpkt_from_sig (PKT_signature *sig, PKT_public_key *pksk)
         build_sig_subpkt (sig, SIGSUBPKT_ISSUER, buf, 8);
       }
 
-    /* For a future v5 keys we write the ISSUER_FPR subpacket.  We
-     * also write that for a v4 key is experimental support for
-     * RFC4880bis is requested.  */
-    if (pksk->version > 4 || opt.flags.rfc4880bis)
+    /* Write the new ISSUER_FPR subpacket.  */
+    fingerprint_from_pk (pksk, buf+1, &fprlen);
+    if (fprlen == 20)
       {
-        fingerprint_from_pk (pksk, buf+1, &fprlen);
-        if (fprlen == 20)
-          {
-            buf[0] = pksk->version;
-            build_sig_subpkt (sig, SIGSUBPKT_ISSUER_FPR, buf, 21);
-          }
+        buf[0] = pksk->version;
+        build_sig_subpkt (sig, SIGSUBPKT_ISSUER_FPR, buf, 21);
       }
 
     /* Write the timestamp.  */
index a023654..1d4bd66 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -103,13 +103,6 @@ struct cache_nonce_parm_s
 };
 
 
-struct scd_genkey_parm_s
-{
-  struct agent_card_genkey_s *cgk;
-  char *savedbytes;     /* Malloced space to save key parameter chunks.  */
-};
-
-
 static gpg_error_t learn_status_cb (void *opaque, const char *line);
 
 
@@ -189,69 +182,6 @@ default_inq_cb (void *opaque, const char *line)
 }
 
 
-/* Check whether gnome-keyring hijacked the gpg-agent.  */
-static void
-check_hijacking (assuan_context_t ctx)
-{
-  membuf_t mb;
-  char *string;
-
-  init_membuf (&mb, 64);
-
-  /* AGENT_ID is a command implemented by gnome-keyring-daemon.  It
-     does not return any data but an OK line with a remark.  */
-  if (assuan_transact (ctx, "AGENT_ID",
-                       put_membuf_cb, &mb, NULL, NULL, NULL, NULL))
-    {
-      xfree (get_membuf (&mb, NULL));
-      return; /* Error - Probably not hijacked.  */
-    }
-  put_membuf (&mb, "", 1);
-  string = get_membuf (&mb, NULL);
-  if (!string || !*string)
-    {
-      /* Definitely hijacked - show a warning prompt.  */
-      static int shown;
-      const char warn1[] =
-        "The GNOME keyring manager hijacked the GnuPG agent.";
-      const char warn2[] =
-        "GnuPG will not work properly - please configure that "
-        "tool to not interfere with the GnuPG system!";
-      log_info ("WARNING: %s\n", warn1);
-      log_info ("WARNING: %s\n", warn2);
-      /*                 (GPG_ERR_SOURCRE_GPG, GPG_ERR_NO_AGENT) */
-      write_status_text (STATUS_ERROR, "check_hijacking 33554509");
-      xfree (string);
-      string = strconcat (warn1, "\n\n", warn2, NULL);
-      if (string && !shown && !opt.batch)
-        {
-          /* NB: The Pinentry based prompt will only work if a
-             gnome-keyring manager passes invalid commands on to the
-             original gpg-agent.  */
-          char *cmd, *cmdargs;
-
-          cmdargs = percent_plus_escape (string);
-          cmd = strconcat ("GET_CONFIRMATION ", cmdargs, NULL);
-          xfree (cmdargs);
-          if (cmd)
-            {
-              struct default_inq_parm_s dfltparm;
-
-              memset (&dfltparm, 0, sizeof dfltparm);
-              dfltparm.ctx = ctx;
-              assuan_transact (ctx, cmd, NULL, NULL,
-                               default_inq_cb, &dfltparm,
-                               NULL, NULL);
-              xfree (cmd);
-              shown = 1;
-            }
-        }
-    }
-  xfree (string);
-}
-
-
-
 /* Print a warning if the server's version number is less than our
    version number.  Returns an error code on a connection problem.  */
 static gpg_error_t
@@ -265,7 +195,7 @@ warn_version_mismatch (assuan_context_t ctx, const char *servername, int mode)
   if (err)
     log_error (_("error getting version from '%s': %s\n"),
                servername, gpg_strerror (err));
-  else if (!compare_version_strings (serverversion, myversion))
+  else if (compare_version_strings (serverversion, myversion) < 0)
     {
       char *warn;
 
@@ -346,8 +276,6 @@ start_agent (ctrl_t ctrl, int for_card)
                   write_status_error ("set_pinentry_mode", rc);
                 }
             }
-
-          check_hijacking (agent_ctx);
         }
     }
 
@@ -696,15 +624,7 @@ learn_status_cb (void *opaque, const char *line)
         parm->key_attr[keyno].nbits = strtoul (line+n+3, NULL, 10);
       else if (algo == PUBKEY_ALGO_ECDH || algo == PUBKEY_ALGO_ECDSA
                || algo == PUBKEY_ALGO_EDDSA)
-        {
-          const char *curve;
-
-          for (i = 0; (curve = openpgp_enum_curves (&i));)
-            if (!strcmp (curve, line+n))
-              break;
-
-          parm->key_attr[keyno].curve = curve;
-        }
+        parm->key_attr[keyno].curve = openpgp_is_curve_supported (line+n, NULL);
     }
   else if (keywordlen == 12 && !memcmp (keyword, "PRIVATE-DO-", 11)
            && strchr("1234", keyword[11]))
@@ -798,7 +718,7 @@ agent_scd_apdu (const char *hexapdu, unsigned int *r_sw)
 
       init_membuf (&mb, 256);
 
-      snprintf (line, DIM(line)-1, "SCD APDU %s", hexapdu);
+      snprintf (line, DIM(line), "SCD APDU %s", hexapdu);
       err = assuan_transact (agent_ctx, line,
                              put_membuf_cb, &mb, NULL, NULL, NULL, NULL);
       if (!err)
@@ -829,15 +749,14 @@ agent_keytocard (const char *hexgrip, int keyno, int force,
   struct default_inq_parm_s parm;
 
   memset (&parm, 0, sizeof parm);
-  parm.ctx = agent_ctx;
 
-  snprintf (line, DIM(line)-1, "KEYTOCARD %s%s %s OPENPGP.%d %s",
+  snprintf (line, DIM(line), "KEYTOCARD %s%s %s OPENPGP.%d %s",
             force?"--force ": "", hexgrip, serialno, keyno, timestamp);
-  line[DIM(line)-1] = 0;
 
   rc = start_agent (NULL, 1);
   if (rc)
     return rc;
+  parm.ctx = agent_ctx;
 
   rc = assuan_transact (agent_ctx, line, NULL, NULL, default_inq_cb, &parm,
                         NULL, NULL);
@@ -974,8 +893,7 @@ agent_scd_writecert (const char *certidstr,
 
   memset (&parms, 0, sizeof parms);
 
-  snprintf (line, DIM(line)-1, "SCD WRITECERT %s", certidstr);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "SCD WRITECERT %s", certidstr);
   dfltparm.ctx = agent_ctx;
   parms.dflt = &dfltparm;
   parms.certdata = certdata;
@@ -1028,8 +946,7 @@ agent_scd_writekey (int keyno, const char *serialno,
 
   memset (&parms, 0, sizeof parms);
 
-  snprintf (line, DIM(line)-1, "SCD WRITEKEY --force OPENPGP.%d", keyno);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "SCD WRITEKEY --force OPENPGP.%d", keyno);
   dfltparm.ctx = agent_ctx;
   parms.dflt = &dfltparm;
   parms.keydata = keydata;
@@ -1044,149 +961,64 @@ agent_scd_writekey (int keyno, const char *serialno,
 
 
 \f
-static gpg_error_t
-scd_genkey_cb_append_savedbytes (struct scd_genkey_parm_s *parm,
-                                 const char *line)
-{
-  gpg_error_t err = 0;
-  char *p;
-
-  if (!parm->savedbytes)
-    {
-      parm->savedbytes = xtrystrdup (line);
-      if (!parm->savedbytes)
-        err = gpg_error_from_syserror ();
-    }
-  else
-    {
-      p = xtrymalloc (strlen (parm->savedbytes) + strlen (line) + 1);
-      if (!p)
-        err = gpg_error_from_syserror ();
-      else
-        {
-          strcpy (stpcpy (p, parm->savedbytes), line);
-          xfree (parm->savedbytes);
-          parm->savedbytes = p;
-        }
-    }
-
-  return err;
-}
-
 /* Status callback for the SCD GENKEY command. */
 static gpg_error_t
 scd_genkey_cb (void *opaque, const char *line)
 {
-  struct scd_genkey_parm_s *parm = opaque;
+  u32 *createtime = opaque;
   const char *keyword = line;
   int keywordlen;
-  gpg_error_t rc = 0;
 
   for (keywordlen=0; *line && !spacep (line); line++, keywordlen++)
     ;
   while (spacep (line))
     line++;
 
-  if (keywordlen == 7 && !memcmp (keyword, "KEY-FPR", keywordlen))
-    {
-      parm->cgk->fprvalid = unhexify_fpr (line, parm->cgk->fpr);
-    }
-  else if (keywordlen == 8 && !memcmp (keyword, "KEY-DATA", keywordlen))
-    {
-      gcry_mpi_t a;
-      const char *name = line;
-
-      while (*line && !spacep (line))
-        line++;
-      while (spacep (line))
-        line++;
-
-      if (*name == '-' && spacep (name+1))
-        rc = scd_genkey_cb_append_savedbytes (parm, line);
-      else
-        {
-          if (parm->savedbytes)
-            {
-              rc = scd_genkey_cb_append_savedbytes (parm, line);
-              if (!rc)
-                rc = gcry_mpi_scan (&a, GCRYMPI_FMT_HEX,
-                                    parm->savedbytes, 0, NULL);
-            }
-          else
-            rc = gcry_mpi_scan (&a, GCRYMPI_FMT_HEX, line, 0, NULL);
-          if (rc)
-            log_error ("error parsing received key data: %s\n",
-                       gpg_strerror (rc));
-          else if (*name == 'n' && spacep (name+1))
-            parm->cgk->n = a;
-          else if (*name == 'e' && spacep (name+1))
-            parm->cgk->e = a;
-          else
-            {
-              log_info ("unknown parameter name in received key data\n");
-              gcry_mpi_release (a);
-              rc = gpg_error (GPG_ERR_INV_PARAMETER);
-            }
-
-          xfree (parm->savedbytes);
-          parm->savedbytes = NULL;
-        }
-    }
-  else if (keywordlen == 14 && !memcmp (keyword,"KEY-CREATED-AT", keywordlen))
+ if (keywordlen == 14 && !memcmp (keyword,"KEY-CREATED-AT", keywordlen))
     {
-      parm->cgk->created_at = (u32)strtoul (line, NULL, 10);
+      *createtime = (u32)strtoul (line, NULL, 10);
     }
   else if (keywordlen == 8 && !memcmp (keyword, "PROGRESS", keywordlen))
     {
       write_status_text (STATUS_PROGRESS, line);
     }
 
-  return rc;
+  return 0;
 }
 
-/* Send a GENKEY command to the SCdaemon.  SERIALNO is not used in
-   this implementation.  If CREATEDATE is not 0, it will be passed to
-   SCDAEMON so that the key is created with this timestamp.  INFO will
-   receive information about the generated key.  */
+/* Send a GENKEY command to the SCdaemon.  If *CREATETIME is not 0,
+  the value will be passed to SCDAEMON with --timestamp option so that
+  the key is created with this.  Otherwise, timestamp was generated by
+  SCDEAMON.  On success, creation time is stored back to
+  CREATETIME.  */
 int
-agent_scd_genkey (struct agent_card_genkey_s *info, int keyno, int force,
-                  const char *serialno, u32 createtime)
+agent_scd_genkey (int keyno, int force, u32 *createtime)
 {
   int rc;
   char line[ASSUAN_LINELENGTH];
   gnupg_isotime_t tbuf;
-  struct scd_genkey_parm_s parms;
   struct default_inq_parm_s dfltparm;
 
   memset (&dfltparm, 0, sizeof dfltparm);
 
-  (void)serialno;
-
-  memset (&parms, 0, sizeof parms);
-  parms.cgk = info;
-
   rc = start_agent (NULL, 1);
   if (rc)
     return rc;
 
-  if (createtime)
-    epoch2isotime (tbuf, createtime);
+  if (*createtime)
+    epoch2isotime (tbuf, *createtime);
   else
     *tbuf = 0;
 
-  snprintf (line, DIM(line)-1, "SCD GENKEY %s%s %s %d",
+  snprintf (line, DIM(line), "SCD GENKEY %s%s %s %d",
             *tbuf? "--timestamp=":"", tbuf,
             force? "--force":"",
             keyno);
-  line[DIM(line)-1] = 0;
 
   dfltparm.ctx = agent_ctx;
-  memset (info, 0, sizeof *info);
   rc = assuan_transact (agent_ctx, line,
                         NULL, NULL, default_inq_cb, &dfltparm,
-                        scd_genkey_cb, &parms);
-
-  xfree (parms.savedbytes);
+                        scd_genkey_cb, createtime);
 
   status_sc_op_failure (rc);
   return rc;
@@ -1309,8 +1141,7 @@ agent_scd_readcert (const char *certidstr,
 
   init_membuf (&data, 2048);
 
-  snprintf (line, DIM(line)-1, "SCD READCERT %s", certidstr);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "SCD READCERT %s", certidstr);
   rc = assuan_transact (agent_ctx, line,
                         put_membuf_cb, &data,
                         default_inq_cb, &dfltparm,
@@ -1360,8 +1191,7 @@ agent_scd_change_pin (int chvno, const char *serialno)
     return rc;
   dfltparm.ctx = agent_ctx;
 
-  snprintf (line, DIM(line)-1, "SCD PASSWD %s %d", reset, chvno);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "SCD PASSWD %s %d", reset, chvno);
   rc = assuan_transact (agent_ctx, line,
                         NULL, NULL,
                         default_inq_cb, &dfltparm,
@@ -1388,8 +1218,7 @@ agent_scd_checkpin  (const char *serialno)
     return rc;
   dfltparm.ctx = agent_ctx;
 
-  snprintf (line, DIM(line)-1, "SCD CHECKPIN %s", serialno);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "SCD CHECKPIN %s", serialno);
   rc = assuan_transact (agent_ctx, line,
                         NULL, NULL,
                         default_inq_cb, &dfltparm,
@@ -1459,7 +1288,7 @@ agent_get_passphrase (const char *cache_id,
     if (!(arg4 = percent_plus_escape (desc_msg)))
       goto no_mem;
 
-  snprintf (line, DIM(line)-1,
+  snprintf (line, DIM(line),
             "GET_PASSPHRASE --data --repeat=%d%s -- %s %s %s %s",
             repeat,
             check? " --check --qualitybar":"",
@@ -1467,7 +1296,6 @@ agent_get_passphrase (const char *cache_id,
             arg2? arg2:"X",
             arg3? arg3:"X",
             arg4? arg4:"X");
-  line[DIM(line)-1] = 0;
   xfree (arg1);
   xfree (arg2);
   xfree (arg3);
@@ -1516,8 +1344,7 @@ agent_clear_passphrase (const char *cache_id)
     return rc;
   dfltparm.ctx = agent_ctx;
 
-  snprintf (line, DIM(line)-1, "CLEAR_PASSPHRASE %s", cache_id);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "CLEAR_PASSPHRASE %s", cache_id);
   return assuan_transact (agent_ctx, line,
                           NULL, NULL,
                           default_inq_cb, &dfltparm,
@@ -1545,8 +1372,7 @@ gpg_agent_get_confirmation (const char *desc)
   tmp = percent_plus_escape (desc);
   if (!tmp)
     return gpg_error_from_syserror ();
-  snprintf (line, DIM(line)-1, "GET_CONFIRMATION %s", tmp);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "GET_CONFIRMATION %s", tmp);
   xfree (tmp);
 
   rc = assuan_transact (agent_ctx, line,
@@ -1732,8 +1558,7 @@ agent_get_keyinfo (ctrl_t ctrl, const char *hexkeygrip,
   if (!hexkeygrip || strlen (hexkeygrip) != 40)
     return gpg_error (GPG_ERR_INV_VALUE);
 
-  snprintf (line, DIM(line)-1, "KEYINFO %s", hexkeygrip);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "KEYINFO %s", hexkeygrip);
 
   err = assuan_transact (agent_ctx, line, NULL, NULL, NULL, NULL,
                          keyinfo_status_cb, &keyinfo);
@@ -1919,7 +1744,8 @@ agent_readkey (ctrl_t ctrl, int fromcard, const char *hexkeygrip,
   if (err)
     return err;
 
-  snprintf (line, DIM(line)-1, "%sREADKEY %s", fromcard? "SCD ":"", hexkeygrip);
+  snprintf (line, DIM(line), "READKEY %s%s", fromcard? "--card ":"",
+            hexkeygrip);
 
   init_membuf (&data, 1024);
   err = assuan_transact (agent_ctx, line,
@@ -1983,16 +1809,14 @@ agent_pksign (ctrl_t ctrl, const char *cache_nonce,
   if (err)
     return err;
 
-  snprintf (line, DIM(line)-1, "SIGKEY %s", keygrip);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "SIGKEY %s", keygrip);
   err = assuan_transact (agent_ctx, line, NULL, NULL, NULL, NULL, NULL, NULL);
   if (err)
     return err;
 
   if (desc)
     {
-      snprintf (line, DIM(line)-1, "SETKEYDESC %s", desc);
-      line[DIM(line)-1] = 0;
+      snprintf (line, DIM(line), "SETKEYDESC %s", desc);
       err = assuan_transact (agent_ctx, line,
                             NULL, NULL, NULL, NULL, NULL, NULL);
       if (err)
@@ -2123,8 +1947,7 @@ agent_pkdecrypt (ctrl_t ctrl, const char *keygrip, const char *desc,
 
   if (desc)
     {
-      snprintf (line, DIM(line)-1, "SETKEYDESC %s", desc);
-      line[DIM(line)-1] = 0;
+      snprintf (line, DIM(line), "SETKEYDESC %s", desc);
       err = assuan_transact (agent_ctx, line,
                             NULL, NULL, NULL, NULL, NULL, NULL);
       if (err)
@@ -2216,7 +2039,7 @@ agent_keywrap_key (ctrl_t ctrl, int forexport, void **r_kek, size_t *r_keklen)
     return err;
   dfltparm.ctx = agent_ctx;
 
-  snprintf (line, DIM(line)-1, "KEYWRAP_KEY %s",
+  snprintf (line, DIM(line), "KEYWRAP_KEY %s",
             forexport? "--export":"--import");
 
   init_membuf_secure (&data, 64);
@@ -2278,8 +2101,7 @@ agent_import_key (ctrl_t ctrl, const char *desc, char **cache_nonce_addr,
 
   if (desc)
     {
-      snprintf (line, DIM(line)-1, "SETKEYDESC %s", desc);
-      line[DIM(line)-1] = 0;
+      snprintf (line, DIM(line), "SETKEYDESC %s", desc);
       err = assuan_transact (agent_ctx, line,
                             NULL, NULL, NULL, NULL, NULL, NULL);
       if (err)
@@ -2339,14 +2161,14 @@ agent_export_key (ctrl_t ctrl, const char *hexkeygrip, const char *desc,
 
   if (desc)
     {
-      snprintf (line, DIM(line)-1, "SETKEYDESC %s", desc);
+      snprintf (line, DIM(line), "SETKEYDESC %s", desc);
       err = assuan_transact (agent_ctx, line,
                              NULL, NULL, NULL, NULL, NULL, NULL);
       if (err)
         return err;
     }
 
-  snprintf (line, DIM(line)-1, "EXPORT_KEY %s%s%s %s",
+  snprintf (line, DIM(line), "EXPORT_KEY %s%s%s %s",
             openpgp_protected ? "--openpgp ":"",
             cache_nonce_addr && *cache_nonce_addr? "--cache-nonce=":"",
             cache_nonce_addr && *cache_nonce_addr? *cache_nonce_addr:"",
@@ -2398,14 +2220,14 @@ agent_delete_key (ctrl_t ctrl, const char *hexkeygrip, const char *desc,
 
   if (desc)
     {
-      snprintf (line, DIM(line)-1, "SETKEYDESC %s", desc);
+      snprintf (line, DIM(line), "SETKEYDESC %s", desc);
       err = assuan_transact (agent_ctx, line,
                              NULL, NULL, NULL, NULL, NULL, NULL);
       if (err)
         return err;
     }
 
-  snprintf (line, DIM(line)-1, "DELETE_KEY%s %s",
+  snprintf (line, DIM(line), "DELETE_KEY%s %s",
             force? " --force":"", hexkeygrip);
   err = assuan_transact (agent_ctx, line, NULL, NULL,
                          default_inq_cb, &dfltparm,
@@ -2444,7 +2266,7 @@ agent_passwd (ctrl_t ctrl, const char *hexkeygrip, const char *desc, int verify,
 
   if (desc)
     {
-      snprintf (line, DIM(line)-1, "SETKEYDESC %s", desc);
+      snprintf (line, DIM(line), "SETKEYDESC %s", desc);
       err = assuan_transact (agent_ctx, line,
                              NULL, NULL, NULL, NULL, NULL, NULL);
       if (err)
@@ -2452,12 +2274,12 @@ agent_passwd (ctrl_t ctrl, const char *hexkeygrip, const char *desc, int verify,
     }
 
   if (verify)
-    snprintf (line, DIM(line)-1, "PASSWD %s%s --verify %s",
+    snprintf (line, DIM(line), "PASSWD %s%s --verify %s",
               cache_nonce_addr && *cache_nonce_addr? "--cache-nonce=":"",
               cache_nonce_addr && *cache_nonce_addr? *cache_nonce_addr:"",
               hexkeygrip);
   else
-    snprintf (line, DIM(line)-1, "PASSWD %s%s %s%s %s",
+    snprintf (line, DIM(line), "PASSWD %s%s %s%s %s",
               cache_nonce_addr && *cache_nonce_addr? "--cache-nonce=":"",
               cache_nonce_addr && *cache_nonce_addr? *cache_nonce_addr:"",
               passwd_nonce_addr && *passwd_nonce_addr? "--passwd-nonce=":"",
index d85a6fd..e4fea57 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 #ifndef GNUPG_G10_CALL_AGENT_H
 #define GNUPG_G10_CALL_AGENT_H
@@ -68,13 +68,6 @@ struct agent_card_info_s
   unsigned int status_indicator;
 };
 
-struct agent_card_genkey_s {
-  char fprvalid;
-  char fpr[20];
-  u32  created_at;
-  gcry_mpi_t n;
-  gcry_mpi_t e;
-};
 
 
 /* Release the card info structure. */
@@ -107,8 +100,7 @@ int agent_scd_writekey (int keyno, const char *serialno,
                         const unsigned char *keydata, size_t keydatalen);
 
 /* Send a GENKEY command to the SCdaemon. */
-int agent_scd_genkey (struct agent_card_genkey_s *info, int keyno, int force,
-                      const char *serialno, u32 createtime);
+int agent_scd_genkey (int keyno, int force, u32 *createtime);
 
 /* Send a READKEY command to the SCdaemon. */
 int agent_scd_readcert (const char *certidstr,
index 75a7f46..4be9da1 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -145,7 +145,7 @@ warn_version_mismatch (assuan_context_t ctx, const char *servername)
   if (err)
     log_error (_("error getting version from '%s': %s\n"),
                servername, gpg_strerror (err));
-  else if (!compare_version_strings (serverversion, myversion))
+  else if (compare_version_strings (serverversion, myversion) < 0)
     {
       char *warn;
 
@@ -600,6 +600,8 @@ ks_get_data_cb (void *opaque, const void *data, size_t datalen)
    don't need to escape the patterns before sending them to the
    server.
 
+   If QUICK is set the dirmngr is advised to use a shorter timeout.
+
    If R_SOURCE is not NULL the source of the data is stored as a
    malloced string there.  If a source is not known NULL is stored.
 
@@ -609,7 +611,7 @@ ks_get_data_cb (void *opaque, const void *data, size_t datalen)
    are able to ask for (1000-10-1)/(2+8+1) = 90 keys at once.  */
 gpg_error_t
 gpg_dirmngr_ks_get (ctrl_t ctrl, char **pattern,
-                    keyserver_spec_t override_keyserver,
+                    keyserver_spec_t override_keyserver, int quick,
                     estream_t *r_fp, char **r_source)
 {
   gpg_error_t err;
@@ -655,7 +657,7 @@ gpg_dirmngr_ks_get (ctrl_t ctrl, char **pattern,
 
   /* Lump all patterns into one string.  */
   init_membuf (&mb, 1024);
-  put_membuf_str (&mb, "KS_GET --");
+  put_membuf_str (&mb, quick? "KS_GET --quick --" : "KS_GET --");
   for (idx=0; pattern[idx]; idx++)
     {
       put_membuf (&mb, " ", 1); /* Append Delimiter.  */
@@ -1289,11 +1291,11 @@ gpg_dirmngr_get_pka (ctrl_t ctrl, const char *userid,
 
 \f
 /* Ask the dirmngr to retrieve a key via the Web Key Directory
- * protocol.  On success a new estream with the key is stored at
- * R_KEY.
+ * protocol.  If QUICK is set the dirmngr is advised to use a shorter
+ * timeout.  On success a new estream with the key is stored at R_KEY.
  */
 gpg_error_t
-gpg_dirmngr_wkd_get (ctrl_t ctrl, const char *name, estream_t *r_key)
+gpg_dirmngr_wkd_get (ctrl_t ctrl, const char *name, int quick, estream_t *r_key)
 {
   gpg_error_t err;
   assuan_context_t ctx;
@@ -1306,7 +1308,7 @@ gpg_dirmngr_wkd_get (ctrl_t ctrl, const char *name, estream_t *r_key)
   if (err)
     return err;
 
-  line = es_bsprintf ("WKD_GET -- %s", name);
+  line = es_bsprintf ("WKD_GET%s -- %s", quick?" --quick":"", name);
   if (!line)
     {
       err = gpg_error_from_syserror ();
index 4dc1e30..95a8c4a 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 #ifndef GNUPG_G10_CALL_DIRMNGR_H
 #define GNUPG_G10_CALL_DIRMNGR_H
@@ -26,7 +26,7 @@ gpg_error_t gpg_dirmngr_ks_search (ctrl_t ctrl, const char *searchstr,
                                    gpg_error_t (*cb)(void*, int, char *),
                                    void *cb_value);
 gpg_error_t gpg_dirmngr_ks_get (ctrl_t ctrl, char *pattern[],
-                                keyserver_spec_t override_keyserver,
+                                keyserver_spec_t override_keyserver, int quick,
                                 estream_t *r_fp, char **r_source);
 gpg_error_t gpg_dirmngr_ks_fetch (ctrl_t ctrl,
                                   const char *url, estream_t *r_fp);
@@ -40,7 +40,7 @@ gpg_error_t gpg_dirmngr_dns_cert (ctrl_t ctrl,
 gpg_error_t gpg_dirmngr_get_pka (ctrl_t ctrl, const char *userid,
                                  unsigned char **r_fpr, size_t *r_fprlen,
                                  char **r_url);
-gpg_error_t gpg_dirmngr_wkd_get (ctrl_t ctrl, const char *name,
+gpg_error_t gpg_dirmngr_wkd_get (ctrl_t ctrl, const char *name, int quick,
                                  estream_t *r_key);
 
 
index 2cb44f9..e358572 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -476,7 +476,7 @@ card_status (estream_t fp, char *serialno, size_t serialnobuflen)
 
       es_fprintf (fp, "forcepin:%d:::\n", !info.chv1_cached);
       for (i=0; i < DIM (info.key_attr); i++)
-        if (info.key_attr[0].algo == PUBKEY_ALGO_RSA)
+        if (info.key_attr[i].algo == PUBKEY_ALGO_RSA)
           es_fprintf (fp, "keyattr:%d:%d:%u:\n", i+1,
                       info.key_attr[i].algo, info.key_attr[i].nbits);
         else if (info.key_attr[i].algo == PUBKEY_ALGO_ECDH
@@ -568,7 +568,18 @@ card_status (estream_t fp, char *serialno, size_t serialnobuflen)
             else if (info.key_attr[i].algo == PUBKEY_ALGO_ECDH
                      || info.key_attr[i].algo == PUBKEY_ALGO_ECDSA
                      || info.key_attr[i].algo == PUBKEY_ALGO_EDDSA)
-              tty_fprintf (fp, " %s", info.key_attr[i].curve);
+              {
+                const char *curve_for_print = "?";
+
+                if (info.key_attr[i].curve)
+                  {
+                    const char *oid;
+                    oid = openpgp_curve_to_oid (info.key_attr[i].curve, NULL);
+                    if (oid)
+                      curve_for_print = openpgp_oid_to_curve (oid, 0);
+                  }
+                tty_fprintf (fp, " %s", curve_for_print);
+              }
           tty_fprintf (fp, "\n");
         }
       tty_fprintf (fp,    "Max. PIN lengths .: %d %d %d\n",
@@ -747,7 +758,7 @@ fetch_url (ctrl_t ctrl)
         }
       else if (info.fpr1valid)
        {
-          rc = keyserver_import_fprint (ctrl, info.fpr1, 20, opt.keyserver);
+          rc = keyserver_import_fprint (ctrl, info.fpr1, 20, opt.keyserver, 0);
        }
     }
 
@@ -1277,7 +1288,7 @@ show_keysize_warning (void)
    select the prompt.  Returns 0 to use the default size (i.e. NBITS)
    or the selected size.  */
 static unsigned int
-ask_card_keysize (int keyno, unsigned int nbits)
+ask_card_rsa_keysize (int keyno, unsigned int nbits)
 {
   unsigned int min_nbits = 1024;
   unsigned int max_nbits = 4096;
@@ -1327,7 +1338,7 @@ ask_card_keysize (int keyno, unsigned int nbits)
 /* Change the size of key KEYNO (0..2) to NBITS and show an error
    message if that fails.  */
 static gpg_error_t
-do_change_keysize (int keyno, unsigned int nbits)
+do_change_rsa_keysize (int keyno, unsigned int nbits)
 {
   gpg_error_t err;
   char args[100];
@@ -1406,15 +1417,18 @@ generate_card_keys (ctrl_t ctrl)
 
       for (keyno = 0; keyno < DIM (info.key_attr); keyno++)
         {
-          nbits = ask_card_keysize (keyno, info.key_attr[keyno].nbits);
-          if (nbits && do_change_keysize (keyno, nbits))
+          if (info.key_attr[keyno].algo == PUBKEY_ALGO_RSA)
             {
-              /* Error: Better read the default key size again.  */
-              agent_release_card_info (&info);
-              if (get_info_for_key_operation (&info))
-                goto leave;
-              /* Ask again for this key size. */
-              keyno--;
+              nbits = ask_card_rsa_keysize (keyno, info.key_attr[keyno].nbits);
+              if (nbits && do_change_rsa_keysize (keyno, nbits))
+                {
+                  /* Error: Better read the default key size again.  */
+                  agent_release_card_info (&info);
+                  if (get_info_for_key_operation (&info))
+                    goto leave;
+                  /* Ask again for this key size. */
+                  keyno--;
+                }
             }
         }
       /* Note that INFO has not be synced.  However we will only use
@@ -1483,18 +1497,21 @@ card_generate_subkey (KBNODE pub_keyblock)
      key size.  */
   if (info.is_v2 && info.extcap.aac)
     {
-      unsigned int nbits;
-
-    ask_again:
-      nbits = ask_card_keysize (keyno-1, info.key_attr[keyno-1].nbits);
-      if (nbits && do_change_keysize (keyno-1, nbits))
+      if (info.key_attr[keyno-1].algo == PUBKEY_ALGO_RSA)
         {
-          /* Error: Better read the default key size again.  */
-          agent_release_card_info (&info);
-          err = get_info_for_key_operation (&info);
-          if (err)
-            goto leave;
-          goto ask_again;
+          unsigned int nbits;
+
+        ask_again:
+          nbits = ask_card_rsa_keysize (keyno-1, info.key_attr[keyno-1].nbits);
+          if (nbits && do_change_rsa_keysize (keyno-1, nbits))
+            {
+              /* Error: Better read the default key size again.  */
+              agent_release_card_info (&info);
+              err = get_info_for_key_operation (&info);
+              if (err)
+                goto leave;
+              goto ask_again;
+            }
         }
       /* Note that INFO has not be synced.  However we will only use
          the serialnumber and thus it won't harm.  */
index ae7ba17..98f398e 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 128eadf..22cefd9 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index c34beec..fbc8097 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /* Note that the code in compress-bz2.c is nearly identical to the
index 9d8fec9..c20c3f4 100644 (file)
--- a/g10/cpr.c
+++ b/g10/cpr.c
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -53,9 +53,9 @@ progress_cb (void *ctx, const char *what, int printchar,
   (void)ctx;
 
   if ( printchar == '\n' && !strcmp (what, "primegen") )
-    snprintf (buf, sizeof buf -1, "%.20s X 100 100", what );
+    snprintf (buf, sizeof buf, "%.20s X 100 100", what );
   else
-    snprintf (buf, sizeof buf -1, "%.20s %c %d %d",
+    snprintf (buf, sizeof buf, "%.20s %c %d %d",
               what, printchar=='\n'?'X':printchar, current, total );
   write_status_text (STATUS_PROGRESS, buf);
 }
@@ -183,6 +183,33 @@ write_status_text (int no, const char *text)
   write_status_strings (no, text, NULL);
 }
 
+
+/* Write a status line with code NO followed by the outout of the
+ * printf style FORMAT.  The caller needs to make sure that LFs and
+ * CRs are not printed.  */
+void
+write_status_printf (int no, const char *format, ...)
+{
+  va_list arg_ptr;
+
+  if (!statusfp || !status_currently_allowed (no) )
+    return;  /* Not enabled or allowed. */
+
+  es_fputs ("[GNUPG:] ", statusfp);
+  es_fputs (get_status_string (no), statusfp);
+  if (format)
+    {
+      es_putc ( ' ', statusfp);
+      va_start (arg_ptr, format);
+      es_vfprintf (statusfp, format, arg_ptr);
+      va_end (arg_ptr);
+    }
+  es_putc ('\n', statusfp);
+  if (es_fflush (statusfp) && opt.exit_on_status_write_error)
+    g10_exit (0);
+}
+
+
 /* Write an ERROR status line using a full gpg-error error value.  */
 void
 write_status_error (const char *where, gpg_error_t err)
@@ -329,7 +356,7 @@ write_status_begin_signing (gcry_md_hd_t md)
           ga = map_md_openpgp_to_gcry (i);
           if (ga && gcry_md_is_enabled (md, ga) && buflen+10 < DIM(buf))
             {
-              snprintf (buf+buflen, DIM(buf) - buflen - 1,
+              snprintf (buf+buflen, DIM(buf) - buflen,
                         "%sH%d", buflen? " ":"",i);
               buflen += strlen (buf+buflen);
             }
index 38c3a3c..6217dda 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 96d2177..585b150 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 27f51f6..751b7be 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 1a879e3..666810c 100644 (file)
--- a/g10/dek.h
+++ b/g10/dek.h
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 #ifndef G10_DEK_H
 #define G10_DEK_H
index 966c571..06aca9e 100644 (file)
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index af1d844..89e8cf1 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -132,11 +132,29 @@ pk_ecdh_encrypt_with_shared_point (int is_encrypt, gcry_mpi_t shared_mpi,
         return err;
       }
 
+    /* Expected size of the x component */
     secret_x_size = (nbits+7)/8;
-    log_assert (nbytes >= secret_x_size);
+
+    /* Extract X from the result.  It must be in the format of:
+           04 || X || Y
+           40 || X
+           41 || X
+
+       Since it always comes with the prefix, it's larger than X.  In
+       old experimental version of libgcrypt, there is a case where it
+       returns X with no prefix of 40, so, nbytes == secret_x_size
+       is allowed.  */
+    if (nbytes < secret_x_size)
+      {
+        xfree (secret_x);
+        return gpg_error (GPG_ERR_BAD_DATA);
+      }
+
+    /* Remove the prefix.  */
     if ((nbytes & 1))
-      /* Remove the "04" prefix of non-compressed format.  */
       memmove (secret_x, secret_x+1, secret_x_size);
+
+    /* Clear the rest of data.  */
     if (nbytes - secret_x_size)
       memset (secret_x+secret_x_size, 0, nbytes-secret_x_size);
 
@@ -235,8 +253,8 @@ pk_ecdh_encrypt_with_shared_point (int is_encrypt, gcry_mpi_t shared_mpi,
         return err;
       }
     gcry_md_write(h, "\x00\x00\x00\x01", 4);      /* counter = 1 */
-    gcry_md_write(h, secret_x, secret_x_size);   /* x of the point X */
-    gcry_md_write(h, message, message_size);/* KDF parameters */
+    gcry_md_write(h, secret_x, secret_x_size);    /* x of the point X */
+    gcry_md_write(h, message, message_size);      /* KDF parameters */
 
     gcry_md_final (h);
 
index 2985408..5268946 100644 (file)
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 30108eb..b868a1f 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /*
index 51304ad..1cb1c72 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef _EXEC_H_
index 8c15868..6a5597c 100644 (file)
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -62,11 +62,13 @@ struct export_stats_s
 
 /* A global variable to store the selector created from
  * --export-filter keep-uid=EXPR.
+ * --export-filter drop-subkey=EXPR.
  *
  * FIXME: We should put this into the CTRL object but that requires a
  * lot more changes right now.
  */
 static recsel_expr_t export_keep_uid;
+static recsel_expr_t export_drop_subkey;
 
 
 
@@ -88,6 +90,8 @@ cleanup_export_globals (void)
 {
   recsel_release (export_keep_uid);
   export_keep_uid = NULL;
+  recsel_release (export_drop_subkey);
+  export_drop_subkey = NULL;
 }
 
 
@@ -142,6 +146,14 @@ parse_export_options(char *str,unsigned int *options,int noisy)
  *                - uid  :: The entire user ID.
  *                - mbox :: The mail box part of the user ID.
  *                - primary :: Evaluate to true for the primary user ID.
+ *
+ *  - drop-subkey :: If the expression evaluates to true for a subkey
+ *                packet that subkey and all it dependencies will be
+ *                remove from the keyblock.  The expression may use these
+ *                variables:
+ *
+ *                - secret   :: 1 for a secret subkey, else 0.
+ *                - key_algo :: Public key algorithm id
  */
 gpg_error_t
 parse_and_set_export_filter (const char *string)
@@ -153,6 +165,8 @@ parse_and_set_export_filter (const char *string)
 
   if (!strncmp (string, "keep-uid=", 9))
     err = recsel_parse_expr (&export_keep_uid, string+9);
+  else if (!strncmp (string, "drop-subkey=", 12))
+    err = recsel_parse_expr (&export_drop_subkey, string+12);
   else
     err = gpg_error (GPG_ERR_INV_NAME);
 
@@ -1293,37 +1307,6 @@ write_keyblock_to_output (kbnode_t keyblock, int with_armor,
 }
 
 
-/* Helper for apply_keep_uid_filter.  */
-static const char *
-filter_getval (void *cookie, const char *propname)
-{
-  kbnode_t node = cookie;
-  const char *result;
-
-  if (node->pkt->pkttype == PKT_USER_ID)
-    {
-      if (!strcmp (propname, "uid"))
-        result = node->pkt->pkt.user_id->name;
-      else if (!strcmp (propname, "mbox"))
-        {
-          if (!node->pkt->pkt.user_id->mbox)
-            {
-              node->pkt->pkt.user_id->mbox
-                = mailbox_from_userid (node->pkt->pkt.user_id->name);
-            }
-          return node->pkt->pkt.user_id->mbox;
-        }
-      else if (!strcmp (propname, "primary"))
-        result = node->pkt->pkt.user_id->is_primary? "1":"0";
-      else
-        result = NULL;
-    }
-  else
-    result = NULL;
-
-  return result;
-}
-
 /*
  * Apply the keep-uid filter to the keyblock.  The deleted nodes are
  * marked and thus the caller should call commit_kbnode afterwards.
@@ -1338,7 +1321,7 @@ apply_keep_uid_filter (kbnode_t keyblock, recsel_expr_t selector)
     {
       if (node->pkt->pkttype == PKT_USER_ID)
         {
-          if (!recsel_select (selector, filter_getval, node))
+          if (!recsel_select (selector, impex_filter_getval, node))
             {
               /* log_debug ("keep-uid: deleting '%s'\n", */
               /*            node->pkt->pkt.user_id->name); */
@@ -1360,6 +1343,38 @@ apply_keep_uid_filter (kbnode_t keyblock, recsel_expr_t selector)
 }
 
 
+/*
+ * Apply the drop-subkey filter to the keyblock.  The deleted nodes are
+ * marked and thus the caller should call commit_kbnode afterwards.
+ * KEYBLOCK must not have any blocks marked as deleted.
+ */
+static void
+apply_drop_subkey_filter (kbnode_t keyblock, recsel_expr_t selector)
+{
+  kbnode_t node;
+
+  for (node = keyblock->next; node; node = node->next )
+    {
+      if (node->pkt->pkttype == PKT_PUBLIC_SUBKEY
+          || node->pkt->pkttype == PKT_SECRET_SUBKEY)
+        {
+          if (recsel_select (selector, impex_filter_getval, node))
+            {
+              log_debug ("drop-subkey: deleting a key\n");
+              /* The subkey packet and all following packets up to the
+               * next subkey.  */
+              delete_kbnode (node);
+              for (; node->next
+                     && node->next->pkt->pkttype != PKT_PUBLIC_SUBKEY
+                     && node->next->pkt->pkttype != PKT_SECRET_SUBKEY ;
+                   node = node->next)
+                delete_kbnode (node->next);
+           }
+        }
+    }
+}
+
+
 /* Print DANE or PKA records for all user IDs in KEYBLOCK to OUT.  The
  * data for the record is taken from (DATA,DATELEN).  PK is the public
  * key packet with the primary key. */
@@ -1953,6 +1968,13 @@ do_export_stream (ctrl_t ctrl, iobuf_t out, strlist_t users, int secret,
           commit_kbnode (&keyblock);
         }
 
+      if (export_drop_subkey)
+        {
+          commit_kbnode (&keyblock);
+          apply_drop_subkey_filter (keyblock, export_drop_subkey);
+          commit_kbnode (&keyblock);
+        }
+
       /* And write it. */
       err = do_export_one_keyblock (ctrl, keyblock, keyid,
                                     out_help? out_help : out,
index c3c7966..7accd7d 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 #ifndef G10_FILTER_H
 #define G10_FILTER_H
index 516e9a1..6038d26 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -114,11 +114,8 @@ release_public_key_parts (PKT_public_key *pk)
       xfree (pk->prefs);
       pk->prefs = NULL;
     }
-  if (pk->user_id)
-    {
-      free_user_id (pk->user_id);
-      pk->user_id = NULL;
-    }
+  free_user_id (pk->user_id);
+  pk->user_id = NULL;
   if (pk->revkey)
     {
       xfree(pk->revkey);
@@ -293,6 +290,9 @@ free_comment( PKT_comment *rem )
 void
 free_attributes(PKT_user_id *uid)
 {
+  if (!uid)
+    return;
+
   xfree(uid->attribs);
   xfree(uid->attrib_data);
 
@@ -304,70 +304,94 @@ free_attributes(PKT_user_id *uid)
 void
 free_user_id (PKT_user_id *uid)
 {
-    log_assert (uid->ref > 0);
-    if (--uid->ref)
-        return;
-
-    free_attributes(uid);
-    xfree (uid->prefs);
-    xfree (uid->namehash);
-    xfree (uid->mbox);
-    xfree (uid);
+  if (!uid)
+    return;
+
+  log_assert (uid->ref > 0);
+  if (--uid->ref)
+    return;
+
+  free_attributes(uid);
+  xfree (uid->prefs);
+  xfree (uid->namehash);
+  xfree (uid->mbox);
+  xfree (uid);
 }
 
 void
 free_compressed( PKT_compressed *zd )
 {
-    if( zd->buf ) { /* have to skip some bytes */
-       /* don't have any information about the length, so
-        * we assume this is the last packet */
-       while( iobuf_read( zd->buf, NULL, 1<<30 ) != -1 )
-           ;
+  if (!zd)
+    return;
+
+  if (zd->buf)
+    {
+      /* We need to skip some bytes.  Because don't have any
+       * information about the length, so we assume this is the last
+       * packet */
+      while (iobuf_read( zd->buf, NULL, 1<<30 ) != -1)
+        ;
     }
-    xfree(zd);
+  xfree(zd);
 }
 
 void
 free_encrypted( PKT_encrypted *ed )
 {
-    if( ed->buf ) { /* have to skip some bytes */
-       if( ed->is_partial ) {
-           while( iobuf_read( ed->buf, NULL, 1<<30 ) != -1 )
-               ;
+  if (!ed)
+    return;
+
+  if (ed->buf)
+    {
+      /* We need to skip some bytes. */
+      if (ed->is_partial)
+        {
+          while (iobuf_read( ed->buf, NULL, 1<<30 ) != -1)
+            ;
        }
-       else {
-          while( ed->len ) { /* skip the packet */
-              int n = iobuf_read( ed->buf, NULL, ed->len );
-              if( n == -1 )
-                  ed->len = 0;
-              else
-                  ed->len -= n;
-          }
+      else
+        {
+          while (ed->len)
+            {
+              /* Skip the packet. */
+              int n = iobuf_read( ed->buf, NULL, ed->len );
+              if (n == -1)
+                ed->len = 0;
+              else
+                ed->len -= n;
+            }
        }
     }
-    xfree(ed);
+  xfree (ed);
 }
 
 
 void
 free_plaintext( PKT_plaintext *pt )
 {
-    if( pt->buf ) { /* have to skip some bytes */
-       if( pt->is_partial ) {
-           while( iobuf_read( pt->buf, NULL, 1<<30 ) != -1 )
-               ;
-       }
-       else {
-          while( pt->len ) { /* skip the packet */
-              int n = iobuf_read( pt->buf, NULL, pt->len );
-              if( n == -1 )
-                  pt->len = 0;
-              else
-                  pt->len -= n;
-          }
+  if (!pt)
+    return;
+
+  if (pt->buf)
+    { /* We need to skip some bytes.  */
+      if (pt->is_partial)
+        {
+          while (iobuf_read( pt->buf, NULL, 1<<30 ) != -1)
+            ;
+        }
+      else
+        {
+          while( pt->len )
+            { /* Skip the packet.  */
+              int n = iobuf_read( pt->buf, NULL, pt->len );
+              if (n == -1)
+                pt->len = 0;
+              else
+                pt->len -= n;
+            }
        }
     }
-    xfree(pt);
+  xfree (pt);
 }
 
 /****************
index 90083ba..f0e33c5 100644 (file)
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -1203,6 +1203,9 @@ get_pubkey_byname (ctrl_t ctrl, GETKEY_CTX * retctx, PKT_public_key * pk,
   int nodefault = 0;
   int anylocalfirst = 0;
 
+  /* If RETCTX is not NULL, then RET_KDBHD must be NULL.  */
+  log_assert (retctx == NULL || ret_kdbhd == NULL);
+
   if (retctx)
     *retctx = NULL;
 
@@ -1210,25 +1213,26 @@ get_pubkey_byname (ctrl_t ctrl, GETKEY_CTX * retctx, PKT_public_key * pk,
   is_mbox = is_valid_mailbox (name);
 
   /* The auto-key-locate feature works as follows: there are a number
-     of methods to look up keys.  By default, the local keyring is
-     tried first.  Then, each method listed in the --auto-key-locate is
-     tried in the order it appears.
-
-     This can be changed as follows:
-
-       - if nodefault appears anywhere in the list of options, then
-         the local keyring is not tried first, or,
-
-       - if local appears anywhere in the list of options, then the
-         local keyring is not tried first, but in the order in which
-         it was listed in the --auto-key-locate option.
-
-     Note: we only save the search context in RETCTX if the local
-     method is the first method tried (either explicitly or
-     implicitly).  */
+   * of methods to look up keys.  By default, the local keyring is
+   * tried first.  Then, each method listed in the --auto-key-locate is
+   * tried in the order it appears.
+   *
+   * This can be changed as follows:
+   *
+   *   - if nodefault appears anywhere in the list of options, then
+   *     the local keyring is not tried first, or,
+   *
+   *   - if local appears anywhere in the list of options, then the
+   *     local keyring is not tried first, but in the order in which
+   *     it was listed in the --auto-key-locate option.
+   *
+   * Note: we only save the search context in RETCTX if the local
+   * method is the first method tried (either explicitly or
+   * implicitly).  */
   if (!no_akl)
-    /* auto-key-locate is enabled.  */
     {
+      /* auto-key-locate is enabled.  */
+
       /* nodefault is true if "nodefault" or "local" appear.  */
       for (akl = opt.auto_key_locate; akl; akl = akl->next)
        if (akl->type == AKL_NODEFAULT || akl->type == AKL_LOCAL)
@@ -1248,24 +1252,26 @@ get_pubkey_byname (ctrl_t ctrl, GETKEY_CTX * retctx, PKT_public_key * pk,
     }
 
   if (!nodefault)
-    /* "nodefault" didn't occur.  Thus, "local" is implicitly the
-       first method to try.  */
-    anylocalfirst = 1;
+    {
+      /* "nodefault" didn't occur.  Thus, "local" is implicitly the
+       *  first method to try.  */
+      anylocalfirst = 1;
+    }
 
   if (nodefault && is_mbox)
-    /* Either "nodefault" or "local" (explicitly) appeared in the auto
-       key locate list and NAME appears to be an email address.  Don't
-       try the local keyring.  */
     {
+      /* Either "nodefault" or "local" (explicitly) appeared in the
+       * auto key locate list and NAME appears to be an email address.
+       * Don't try the local keyring.  */
       rc = GPG_ERR_NO_PUBKEY;
     }
   else
-    /* Either "nodefault" and "local" don't appear in the auto key
-       locate list (in which case we try the local keyring first) or
-       NAME does not appear to be an email address (in which case we
-       only try the local keyring).  In this case, lookup NAME in the
-       local keyring.  */
     {
+      /* Either "nodefault" and "local" don't appear in the auto key
+       * locate list (in which case we try the local keyring first) or
+       * NAME does not appear to be an email address (in which case we
+       * only try the local keyring).  In this case, lookup NAME in
+       * the local keyring.  */
       add_to_strlist (&namelist, name);
       rc = key_byname (retctx, namelist, pk, 0,
                       include_unusable, ret_keyblock, ret_kdbhd);
@@ -1274,11 +1280,11 @@ get_pubkey_byname (ctrl_t ctrl, GETKEY_CTX * retctx, PKT_public_key * pk,
   /* If the requested name resembles a valid mailbox and automatic
      retrieval has been enabled, we try to import the key. */
   if (gpg_err_code (rc) == GPG_ERR_NO_PUBKEY && !no_akl && is_mbox)
-    /* NAME wasn't present in the local keyring (or we didn't try the
-       local keyring).  Since the auto key locate feature is enabled
-       and NAME appears to be an email address, try the auto locate
-       feature.  */
     {
+      /* NAME wasn't present in the local keyring (or we didn't try
+       * the local keyring).  Since the auto key locate feature is
+       * enabled and NAME appears to be an email address, try the auto
+       * locate feature.  */
       for (akl = opt.auto_key_locate; akl; akl = akl->next)
        {
          unsigned char *fpr = NULL;
@@ -1333,7 +1339,7 @@ get_pubkey_byname (ctrl_t ctrl, GETKEY_CTX * retctx, PKT_public_key * pk,
            case AKL_WKD:
              mechanism = "WKD";
              glo_ctrl.in_auto_key_retrieve++;
-             rc = keyserver_import_wkd (ctrl, name, &fpr, &fpr_len);
+             rc = keyserver_import_wkd (ctrl, name, 0, &fpr, &fpr_len);
              glo_ctrl.in_auto_key_retrieve--;
              break;
 
@@ -1346,9 +1352,9 @@ get_pubkey_byname (ctrl_t ctrl, GETKEY_CTX * retctx, PKT_public_key * pk,
 
            case AKL_KEYSERVER:
              /* Strictly speaking, we don't need to only use a valid
-                mailbox for the getname search, but it helps cut down
-                on the problem of searching for something like "john"
-                and getting a whole lot of keys back. */
+              * mailbox for the getname search, but it helps cut down
+              * on the problem of searching for something like "john"
+              * and getting a whole lot of keys back. */
              if (keyserver_any_configured (ctrl))
                {
                  mechanism = "keyserver";
@@ -1379,12 +1385,12 @@ get_pubkey_byname (ctrl_t ctrl, GETKEY_CTX * retctx, PKT_public_key * pk,
            }
 
          /* Use the fingerprint of the key that we actually fetched.
-            This helps prevent problems where the key that we fetched
-            doesn't have the same name that we used to fetch it.  In
-            the case of CERT and PKA, this is an actual security
-            requirement as the URL might point to a key put in by an
-            attacker.  By forcing the use of the fingerprint, we
-            won't use the attacker's key here. */
+          * This helps prevent problems where the key that we fetched
+          * doesn't have the same name that we used to fetch it.  In
+          * the case of CERT and PKA, this is an actual security
+          * requirement as the URL might point to a key put in by an
+          * attacker.  By forcing the use of the fingerprint, we
+          * won't use the attacker's key here. */
          if (!rc && fpr)
            {
              char fpr_string[MAX_FINGERPRINT_LEN * 2 + 1];
@@ -1404,7 +1410,7 @@ get_pubkey_byname (ctrl_t ctrl, GETKEY_CTX * retctx, PKT_public_key * pk,
            }
          else if (!rc && !fpr && !did_akl_local)
             { /* The acquisition method said no failure occurred, but
-                 it didn't return a fingerprint.  That's a failure.  */
+               * it didn't return a fingerprint.  That's a failure.  */
               no_fingerprint = 1;
              rc = GPG_ERR_NO_PUBKEY;
            }
@@ -1413,9 +1419,9 @@ get_pubkey_byname (ctrl_t ctrl, GETKEY_CTX * retctx, PKT_public_key * pk,
 
          if (!rc && !did_akl_local)
             { /* There was no error and we didn't do a local lookup.
-                This means that we imported a key into the local
-                keyring.  Try to read the imported key from the
-                keyring.  */
+              * This means that we imported a key into the local
+              * keyring.  Try to read the imported key from the
+              * keyring.  */
              if (retctx)
                {
                  getkey_end (*retctx);
@@ -1459,6 +1465,221 @@ get_pubkey_byname (ctrl_t ctrl, GETKEY_CTX * retctx, PKT_public_key * pk,
 }
 
 
+\f
+
+/* Comparison machinery for get_best_pubkey_byname.  */
+
+/* First we have a struct to cache computed information about the key
+ * in question.  */
+struct pubkey_cmp_cookie
+{
+  int valid;                   /* Is this cookie valid?  */
+  PKT_public_key key;          /* The key.  */
+  PKT_user_id *uid;            /* The matching UID packet.  */
+  unsigned int validity;       /* Computed validity of (KEY, UID).  */
+  u32 creation_time;           /* Creation time of the newest subkey
+                                   capable of encryption.  */
+};
+
+
+/* Then we have a series of helper functions.  */
+static int
+key_is_ok (const PKT_public_key *key)
+{
+  return (! key->has_expired && ! key->flags.revoked
+          && key->flags.valid && ! key->flags.disabled);
+}
+
+
+static int
+uid_is_ok (const PKT_public_key *key, const PKT_user_id *uid)
+{
+  return key_is_ok (key) && ! uid->is_revoked;
+}
+
+
+static int
+subkey_is_ok (const PKT_public_key *sub)
+{
+  return ! sub->flags.revoked && sub->flags.valid && ! sub->flags.disabled;
+}
+
+
+/* Finally this function compares a NEW key to the former candidate
+ * OLD.  Returns < 0 if the old key is worse, > 0 if the old key is
+ * better, == 0 if it is a tie.  */
+static int
+pubkey_cmp (ctrl_t ctrl, const char *name, struct pubkey_cmp_cookie *old,
+            struct pubkey_cmp_cookie *new, KBNODE new_keyblock)
+{
+  kbnode_t n;
+
+  new->creation_time = 0;
+  for (n = find_next_kbnode (new_keyblock, PKT_PUBLIC_SUBKEY);
+       n; n = find_next_kbnode (n, PKT_PUBLIC_SUBKEY))
+    {
+      PKT_public_key *sub = n->pkt->pkt.public_key;
+
+      if ((sub->pubkey_usage & PUBKEY_USAGE_ENC) == 0)
+        continue;
+
+      if (! subkey_is_ok (sub))
+        continue;
+
+      if (sub->timestamp > new->creation_time)
+        new->creation_time = sub->timestamp;
+    }
+
+  for (n = find_next_kbnode (new_keyblock, PKT_USER_ID);
+       n; n = find_next_kbnode (n, PKT_USER_ID))
+    {
+      PKT_user_id *uid = n->pkt->pkt.user_id;
+      char *mbox = mailbox_from_userid (uid->name);
+      int match = mbox ? strcasecmp (name, mbox) == 0 : 0;
+
+      xfree (mbox);
+      if (! match)
+        continue;
+
+      new->uid = scopy_user_id (uid);
+      new->validity =
+        get_validity (ctrl, &new->key, uid, NULL, 0) & TRUST_MASK;
+      new->valid = 1;
+
+      if (! old->valid)
+        return -1;     /* No OLD key.  */
+
+      if (! uid_is_ok (&old->key, old->uid) && uid_is_ok (&new->key, uid))
+        return -1;     /* Validity of the NEW key is better.  */
+
+      if (old->validity < new->validity)
+        return -1;     /* Validity of the NEW key is better.  */
+
+      if (old->validity == new->validity && uid_is_ok (&new->key, uid)
+          && old->creation_time < new->creation_time)
+        return -1;     /* Both keys are of the same validity, but the
+                           NEW key is newer.  */
+    }
+
+  /* Stick with the OLD key.  */
+  return 1;
+}
+
+
+/* This function works like get_pubkey_byname, but if the name
+ * resembles a mail address, the results are ranked and only the best
+ * result is returned.  */
+int
+get_best_pubkey_byname (ctrl_t ctrl, GETKEY_CTX *retctx, PKT_public_key *pk,
+                        const char *name, KBNODE *ret_keyblock,
+                        int include_unusable, int no_akl)
+{
+  int rc;
+  struct getkey_ctx_s *ctx = NULL;
+
+  if (retctx)
+    *retctx = NULL;
+
+  rc = get_pubkey_byname (ctrl, &ctx, pk, name, ret_keyblock,
+                          NULL, include_unusable, no_akl);
+  if (rc)
+    {
+      if (ctx)
+        getkey_end (ctx);
+      return rc;
+    }
+
+  if (is_valid_mailbox (name) && ctx)
+    {
+      /* Rank results and return only the most relevant key.  */
+      struct pubkey_cmp_cookie best = { 0 }, new;
+      KBNODE new_keyblock;
+      while (getkey_next (ctx, &new.key, &new_keyblock) == 0)
+        {
+          int diff = pubkey_cmp (ctrl, name, &best, &new, new_keyblock);
+          release_kbnode (new_keyblock);
+          if (diff < 0)
+            {
+              /* New key is better.  */
+              release_public_key_parts (&best.key);
+              free_user_id (best.uid);
+              best = new;
+            }
+          else if (diff > 0)
+            {
+              /* Old key is better.  */
+              release_public_key_parts (&new.key);
+              free_user_id (new.uid);
+            }
+          else
+            {
+              /* A tie.  Keep the old key.  */
+              release_public_key_parts (&new.key);
+              free_user_id (new.uid);
+            }
+        }
+      getkey_end (ctx);
+      ctx = NULL;
+      free_user_id (best.uid);
+
+      if (best.valid)
+        {
+          if (retctx || ret_keyblock)
+            {
+              ctx = xtrycalloc (1, sizeof **retctx);
+              if (! ctx)
+                rc = gpg_error_from_syserror ();
+              else
+                {
+                  ctx->kr_handle = keydb_new ();
+                  if (! ctx->kr_handle)
+                    {
+                      xfree (ctx);
+                      *retctx = NULL;
+                      rc = gpg_error_from_syserror ();
+                    }
+                  else
+                    {
+                      u32 *keyid = pk_keyid (&best.key);
+                      ctx->exact = 1;
+                      ctx->nitems = 1;
+                      ctx->items[0].mode = KEYDB_SEARCH_MODE_LONG_KID;
+                      ctx->items[0].u.kid[0] = keyid[0];
+                      ctx->items[0].u.kid[1] = keyid[1];
+
+                      if (ret_keyblock)
+                        {
+                          release_kbnode (*ret_keyblock);
+                          *ret_keyblock = NULL;
+                          rc = getkey_next (ctx, NULL, ret_keyblock);
+                        }
+                    }
+                }
+            }
+
+          if (pk)
+            *pk = best.key;
+          else
+            release_public_key_parts (&best.key);
+        }
+    }
+
+  if (rc && ctx)
+    {
+      getkey_end (ctx);
+      ctx = NULL;
+    }
+
+  if (retctx && ctx)
+    *retctx = ctx;
+  else
+    getkey_end (ctx);
+
+  return rc;
+}
+
+\f
+
 /* Get a public key from a file.
  *
  * PK is the buffer to store the key.  The caller needs to make sure
@@ -1927,12 +2148,12 @@ getkey_byname (ctrl_t ctrl, getkey_ctx_t *retctx, PKT_public_key *pk,
  * If PK is not NULL, the public key of the next result is returned in
  * *PK.  Note: The self-signed data has already been merged into the
  * public key using merge_selfsigs.  Free *PK by calling
- * release_public_key_parts (or, if PK was allocated using xfree, you
+ * release_public_key_parts (or, if PK was allocated using xmalloc, you
  * can use free_public_key, which calls release_public_key_parts(PK)
  * and then xfree(PK)).
  *
  * RET_KEYBLOCK can be given as NULL; if it is not NULL it the entire
- * found keyblock wis retruned hich must be released with
+ * found keyblock is returned which must be released with
  * release_kbnode.  If the function returns an error NULL is stored at
  * RET_KEYBLOCK.
  *
@@ -1942,6 +2163,7 @@ gpg_error_t
 getkey_next (getkey_ctx_t ctx, PKT_public_key *pk, kbnode_t *ret_keyblock)
 {
   int rc; /* Fixme:  Make sure this is proper gpg_error */
+  KBNODE keyblock = NULL;
   KBNODE found_key = NULL;
 
   /* We need to disable the caching so that for an exact key search we
@@ -1950,9 +2172,19 @@ getkey_next (getkey_ctx_t ctx, PKT_public_key *pk, kbnode_t *ret_keyblock)
      used without respecting the current file pointer!  */
   keydb_disable_caching (ctx->kr_handle);
 
+  /* FOUND_KEY is only valid as long as RET_KEYBLOCK is.  If the
+   * caller wants PK, but not RET_KEYBLOCK, we need hand in our own
+   * keyblock.  */
+  if (pk && ret_keyblock == NULL)
+      ret_keyblock = &keyblock;
+
   rc = lookup (ctx, ret_keyblock, &found_key, ctx->want_secret);
-  if (!rc && pk && ret_keyblock)
-    pk_from_block (pk, *ret_keyblock, found_key);
+  if (!rc && pk)
+    {
+      log_assert (found_key);
+      pk_from_block (pk, NULL, found_key);
+      release_kbnode (keyblock);
+    }
 
   return rc;
 }
@@ -3105,6 +3337,9 @@ merge_selfsigs (KBNODE keyblock)
  * in CTX.  If so, return the node of an appropriate key or subkey.
  * Otherwise, return NULL if there was no appropriate key.
  *
+ * Note that we do not return a reference, i.e. the result must not be
+ * freed using 'release_kbnode'.
+ *
  * In case the primary key is not required, select a suitable subkey.
  * We need the primary key if PUBKEY_USAGE_CERT is set in REQ_USAGE or
  * we are in PGP6 or PGP7 mode and PUBKEY_USAGE_SIG is set in
@@ -3365,8 +3600,7 @@ finish_lookup (kbnode_t keyblock, unsigned int req_usage, int want_exact,
   if (latest_key)
     {
       pk = latest_key->pkt->pkt.public_key;
-      if (pk->user_id)
-       free_user_id (pk->user_id);
+      free_user_id (pk->user_id);
       pk->user_id = scopy_user_id (foundu);
     }
 
@@ -3424,7 +3658,12 @@ print_status_key_considered (kbnode_t keyblock, unsigned int flags)
    all of the self-signed data into the keys, subkeys and user id
    packets (see the merge_selfsigs for details).
 
-   On success the key's keyblock is stored at *RET_KEYBLOCK.  */
+   On success the key's keyblock is stored at *RET_KEYBLOCK, and the
+   specific subkey is stored at *RET_FOUND_KEY.  Note that we do not
+   return a reference in *RET_FOUND_KEY, i.e. the result must not be
+   freed using 'release_kbnode', and it is only valid until
+   *RET_KEYBLOCK is deallocated.  Therefore, if RET_FOUND_KEY is not
+   NULL, then RET_KEYBLOCK must not be NULL.  */
 static int
 lookup (getkey_ctx_t ctx, kbnode_t *ret_keyblock, kbnode_t *ret_found_key,
        int want_secret)
@@ -3435,6 +3674,7 @@ lookup (getkey_ctx_t ctx, kbnode_t *ret_keyblock, kbnode_t *ret_found_key,
   KBNODE found_key = NULL;
   unsigned int infoflags;
 
+  log_assert (ret_found_key == NULL || ret_keyblock != NULL);
   if (ret_keyblock)
     *ret_keyblock = NULL;
 
@@ -3496,8 +3736,10 @@ lookup (getkey_ctx_t ctx, kbnode_t *ret_keyblock, kbnode_t *ret_found_key,
   if (!rc)
     {
       if (ret_keyblock)
-        *ret_keyblock = keyblock; /* Return the keyblock.  */
-      keyblock = NULL;
+        {
+          *ret_keyblock = keyblock; /* Return the keyblock.  */
+          keyblock = NULL;
+        }
     }
   else if (gpg_err_code (rc) == GPG_ERR_NOT_FOUND && no_suitable_key)
     rc = want_secret? GPG_ERR_UNUSABLE_SECKEY : GPG_ERR_UNUSABLE_PUBKEY;
@@ -3620,17 +3862,14 @@ enum_secret_keys (ctrl_t ctrl, void **context, PKT_public_key *sk)
                     c->state++;
                   break;
 
-                case 3: /* Init search context to try all keys.  */
-                  if (opt.try_all_secrets)
+                case 3: /* Init search context to enum all secret keys.  */
+                  err = getkey_bynames (&c->ctx, NULL, NULL, 1, &keyblock);
+                  if (err)
                     {
-                      err = getkey_bynames (&c->ctx, NULL, NULL, 1, &keyblock);
-                      if (err)
-                        {
-                          release_kbnode (keyblock);
-                          keyblock = NULL;
-                          getkey_end (c->ctx);
-                          c->ctx = NULL;
-                        }
+                      release_kbnode (keyblock);
+                      keyblock = NULL;
+                      getkey_end (c->ctx);
+                      c->ctx = NULL;
                     }
                   c->state++;
                   break;
index e02efe4..c54facb 100644 (file)
--- a/g10/gpg.c
+++ b/g10/gpg.c
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -193,6 +193,11 @@ enum cmd_and_opt_values
     oWithKeygrip,
     oWithSecret,
     oWithWKDHash,
+    oWithColons,
+    oWithKeyData,
+    oWithTofuInfo,
+    oWithSigList,
+    oWithSigCheck,
     oAnswerYes,
     oAnswerNo,
     oKeyring,
@@ -219,6 +224,7 @@ enum cmd_and_opt_values
     oMarginalsNeeded,
     oMaxCertDepth,
     oLoadExtension,
+    oCompliance,
     oGnuPG,
     oRFC2440,
     oRFC4880,
@@ -227,6 +233,7 @@ enum cmd_and_opt_values
     oPGP6,
     oPGP7,
     oPGP8,
+    oDE_VS,
     oRFC2440Text,
     oNoRFC2440Text,
     oCipherAlgo,
@@ -259,10 +266,6 @@ enum cmd_and_opt_values
     oNoOptions,
     oNoBatch,
     oHomedir,
-    oWithColons,
-    oWithKeyData,
-    oWithSigList,
-    oWithSigCheck,
     oSkipVerify,
     oSkipHiddenRecipients,
     oNoSkipHiddenRecipients,
@@ -340,6 +343,7 @@ enum cmd_and_opt_values
     oIgnoreMDCError,
     oShowSessionKey,
     oOverrideSessionKey,
+    oOverrideSessionKeyFD,
     oNoRandomSeedFile,
     oAutoKeyRetrieve,
     oNoAutoKeyRetrieve,
@@ -612,6 +616,7 @@ static ARGPARSE_OPTS opts[] = {
 
   ARGPARSE_s_s (oLoadExtension, "load-extension", "@"),  /* Dummy.  */
 
+  ARGPARSE_s_s (oCompliance, "compliance",   "@"),
   ARGPARSE_s_n (oGnuPG, "gnupg",   "@"),
   ARGPARSE_s_n (oGnuPG, "no-pgp2", "@"),
   ARGPARSE_s_n (oGnuPG, "no-pgp6", "@"),
@@ -699,6 +704,7 @@ static ARGPARSE_OPTS opts[] = {
   ARGPARSE_s_s (oHomedir, "homedir", "@"),
   ARGPARSE_s_n (oNoBatch, "no-batch", "@"),
   ARGPARSE_s_n (oWithColons, "with-colons", "@"),
+  ARGPARSE_s_n (oWithTofuInfo,"with-tofu-info", "@"),
   ARGPARSE_s_n (oWithKeyData,"with-key-data", "@"),
   ARGPARSE_s_n (oWithSigList,"with-sig-list", "@"),
   ARGPARSE_s_n (oWithSigCheck,"with-sig-check", "@"),
@@ -771,6 +777,7 @@ static ARGPARSE_OPTS opts[] = {
   ARGPARSE_s_n (oIgnoreMDCError, "ignore-mdc-error", "@"),
   ARGPARSE_s_n (oShowSessionKey, "show-session-key", "@"),
   ARGPARSE_s_s (oOverrideSessionKey, "override-session-key", "@"),
+  ARGPARSE_s_i (oOverrideSessionKeyFD, "override-session-key-fd", "@"),
   ARGPARSE_s_n (oNoRandomSeedFile,  "no-random-seed-file", "@"),
   ARGPARSE_s_n (oAutoKeyRetrieve, "auto-key-retrieve", "@"),
   ARGPARSE_s_n (oNoAutoKeyRetrieve, "no-auto-key-retrieve", "@"),
@@ -914,6 +921,7 @@ static void add_notation_data( const char *string, int which );
 static void add_policy_url( const char *string, int which );
 static void add_keyserver_url( const char *string, int which );
 static void emergency_cleanup (void);
+static void read_sessionkey_from_fd (int fd);
 
 
 static char *
@@ -1188,15 +1196,15 @@ set_debug (const char *level)
       g10_exit (2);
     }
 
-  if (opt.debug & DBG_MEMORY_VALUE )
+  if ((opt.debug & DBG_MEMORY_VALUE))
     memory_debug_mode = 1;
-  if (opt.debug & DBG_MEMSTAT_VALUE )
+  if ((opt.debug & DBG_MEMSTAT_VALUE))
     memory_stat_debug_mode = 1;
-  if (opt.debug & DBG_MPI_VALUE)
+  if (DBG_MPI)
     gcry_control (GCRYCTL_SET_DEBUG_FLAGS, 2);
-  if (opt.debug & DBG_CRYPTO_VALUE )
+  if (DBG_CRYPTO)
     gcry_control (GCRYCTL_SET_DEBUG_FLAGS, 1);
-  if (opt.debug & DBG_IOBUF_VALUE )
+  if ((opt.debug & DBG_IOBUF_VALUE))
     iobuf_debug_mode = 1;
   gcry_control (GCRYCTL_SET_VERBOSITY, (int)opt.verbose);
 
@@ -2008,7 +2016,7 @@ parse_tofu_policy (const char *policystr)
 
   if (!ascii_strcasecmp (policystr, "help"))
     {
-      log_info (_("available TOFU policies:\n"));
+      log_info (_("valid values for option '%s':\n"), "--tofu-policy");
       for (i=0; i < DIM (list); i++)
         log_info ("  %s\n", list[i].keyword);
       g10_exit (1);
@@ -2025,6 +2033,113 @@ parse_tofu_policy (const char *policystr)
   g10_exit (1);
 }
 
+
+/* Parse the value of --compliance.  */
+static int
+parse_compliance_option (const char *string)
+{
+  struct { const char *keyword; enum cmd_and_opt_values option; } list[] = {
+    { "gnupg",      oGnuPG },
+    { "openpgp",    oOpenPGP },
+    { "rfc4880bis", oRFC4880bis },
+    { "rfc4880",    oRFC4880 },
+    { "rfc2440",    oRFC2440 },
+    { "pgp6",       oPGP6 },
+    { "pgp7",       oPGP7 },
+    { "pgp8",       oPGP8 },
+    { "de-vs",      oDE_VS }
+  };
+  int i;
+
+  if (!ascii_strcasecmp (string, "help"))
+    {
+      log_info (_("valid values for option '%s':\n"), "--compliance");
+      for (i=0; i < DIM (list); i++)
+        log_info ("  %s\n", list[i].keyword);
+      g10_exit (1);
+    }
+
+  for (i=0; i < DIM (list); i++)
+    if (!ascii_strcasecmp (string, list[i].keyword))
+      return list[i].option;
+
+  log_error (_("invalid value for option '%s'\n"), "--compliance");
+  if (!opt.quiet)
+    log_info (_("(use \"help\" to list choices)\n"));
+  g10_exit (1);
+}
+
+
+
+/* Helper to set compliance related options.  This is a separte
+ * function so that it can also be used by the --compliance option
+ * parser.  */
+static void
+set_compliance_option (enum cmd_and_opt_values option)
+{
+  switch (option)
+    {
+    case oRFC4880bis:
+      opt.flags.rfc4880bis = 1;
+      /* fall through.  */
+    case oOpenPGP:
+    case oRFC4880:
+      /* This is effectively the same as RFC2440, but with
+         "--enable-dsa2 --no-rfc2440-text --escape-from-lines
+         --require-cross-certification". */
+      opt.compliance = CO_RFC4880;
+      opt.flags.dsa2 = 1;
+      opt.flags.require_cross_cert = 1;
+      opt.rfc2440_text = 0;
+      opt.allow_non_selfsigned_uid = 1;
+      opt.allow_freeform_uid = 1;
+      opt.escape_from = 1;
+      opt.not_dash_escaped = 0;
+      opt.def_cipher_algo = 0;
+      opt.def_digest_algo = 0;
+      opt.cert_digest_algo = 0;
+      opt.compress_algo = -1;
+      opt.s2k_mode = 3; /* iterated+salted */
+      opt.s2k_digest_algo = DIGEST_ALGO_SHA1;
+      opt.s2k_cipher_algo = CIPHER_ALGO_3DES;
+      break;
+    case oRFC2440:
+      opt.compliance = CO_RFC2440;
+      opt.flags.dsa2 = 0;
+      opt.rfc2440_text = 1;
+      opt.allow_non_selfsigned_uid = 1;
+      opt.allow_freeform_uid = 1;
+      opt.escape_from = 0;
+      opt.not_dash_escaped = 0;
+      opt.def_cipher_algo = 0;
+      opt.def_digest_algo = 0;
+      opt.cert_digest_algo = 0;
+      opt.compress_algo = -1;
+      opt.s2k_mode = 3; /* iterated+salted */
+      opt.s2k_digest_algo = DIGEST_ALGO_SHA1;
+      opt.s2k_cipher_algo = CIPHER_ALGO_3DES;
+      break;
+    case oPGP6:  opt.compliance = CO_PGP6;  break;
+    case oPGP7:  opt.compliance = CO_PGP7;  break;
+    case oPGP8:  opt.compliance = CO_PGP8;  break;
+    case oGnuPG: opt.compliance = CO_GNUPG; break;
+
+    case oDE_VS:
+      set_compliance_option (oOpenPGP);
+      opt.compliance = CO_DE_VS;
+      /* Fixme: Change other options.  */
+      break;
+
+    default:
+      BUG ();
+    }
+}
+
+
+
+
+
+
 /* This function called to initialized a new control object.  It is
    assumed that this object has been zeroed out before calling this
    function. */
@@ -2150,6 +2265,7 @@ main (int argc, char **argv)
     int eyes_only=0;
     int multifile=0;
     int pwfd = -1;
+    int ovrseskeyfd = -1;
     int fpr_maybe_cmd = 0; /* --fingerprint maybe a command.  */
     int any_explicit_recipient = 0;
     int require_secmem = 0;
@@ -2315,7 +2431,7 @@ main (int argc, char **argv)
     malloc_hooks.free = gcry_free;
     assuan_set_malloc_hooks (&malloc_hooks);
     assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
-    setup_libassuan_logging (&opt.debug);
+    setup_libassuan_logging (&opt.debug, NULL);
 
     /* Try for a version specific config file first */
     default_configname = get_default_configname ();
@@ -2375,11 +2491,16 @@ main (int argc, char **argv)
       {
        switch( pargs.r_opt )
          {
-         case aCheckKeys:
          case aListConfig:
          case aListGcryptConfig:
           case aGPGConfList:
           case aGPGConfTest:
+            set_cmd (&cmd, pargs.r_opt);
+            /* Do not register a keyring for these commands.  */
+            default_keyring = -1;
+            break;
+
+         case aCheckKeys:
          case aListPackets:
          case aImport:
          case aFastImport:
@@ -2650,6 +2771,8 @@ main (int argc, char **argv)
          case oHomedir: break;
          case oNoBatch: opt.batch = 0; break;
 
+          case oWithTofuInfo: opt.with_tofu_info = 1; break;
+
          case oWithKeyData: opt.with_key_data=1; /*FALLTHRU*/
          case oWithColons: opt.with_colons=':'; break;
 
@@ -2693,52 +2816,24 @@ main (int argc, char **argv)
             /* Dummy so that gpg 1.4 conf files can work. Should
                eventually be removed.  */
            break;
+
+          case oCompliance:
+            set_compliance_option (parse_compliance_option (pargs.r.ret_str));
+            break;
+          case oOpenPGP:
+          case oRFC2440:
+          case oRFC4880:
           case oRFC4880bis:
-            opt.flags.rfc4880bis = 1;
-            /* fall thru.  */
-         case oOpenPGP:
-         case oRFC4880:
-           /* This is effectively the same as RFC2440, but with
-              "--enable-dsa2 --no-rfc2440-text --escape-from-lines
-              --require-cross-certification". */
-           opt.compliance = CO_RFC4880;
-           opt.flags.dsa2 = 1;
-           opt.flags.require_cross_cert = 1;
-           opt.rfc2440_text = 0;
-           opt.allow_non_selfsigned_uid = 1;
-           opt.allow_freeform_uid = 1;
-           opt.escape_from = 1;
-           opt.not_dash_escaped = 0;
-           opt.def_cipher_algo = 0;
-           opt.def_digest_algo = 0;
-           opt.cert_digest_algo = 0;
-           opt.compress_algo = -1;
-            opt.s2k_mode = 3; /* iterated+salted */
-           opt.s2k_digest_algo = DIGEST_ALGO_SHA1;
-           opt.s2k_cipher_algo = CIPHER_ALGO_3DES;
-           break;
-         case oRFC2440:
-           opt.compliance = CO_RFC2440;
-           opt.flags.dsa2 = 0;
-           opt.rfc2440_text = 1;
-           opt.allow_non_selfsigned_uid = 1;
-           opt.allow_freeform_uid = 1;
-           opt.escape_from = 0;
-           opt.not_dash_escaped = 0;
-           opt.def_cipher_algo = 0;
-           opt.def_digest_algo = 0;
-           opt.cert_digest_algo = 0;
-           opt.compress_algo = -1;
-            opt.s2k_mode = 3; /* iterated+salted */
-           opt.s2k_digest_algo = DIGEST_ALGO_SHA1;
-           opt.s2k_cipher_algo = CIPHER_ALGO_3DES;
-           break;
-         case oPGP6:  opt.compliance = CO_PGP6;  break;
-         case oPGP7:  opt.compliance = CO_PGP7;  break;
-         case oPGP8:  opt.compliance = CO_PGP8;  break;
-         case oGnuPG: opt.compliance = CO_GNUPG; break;
-         case oRFC2440Text: opt.rfc2440_text=1; break;
-         case oNoRFC2440Text: opt.rfc2440_text=0; break;
+          case oPGP6:
+          case oPGP7:
+          case oPGP8:
+          case oGnuPG:
+            set_compliance_option (pargs.r_opt);
+            break;
+
+          case oRFC2440Text: opt.rfc2440_text=1; break;
+          case oNoRFC2440Text: opt.rfc2440_text=0; break;
+
          case oSetFilename:
             if(utf8_strings)
               opt.set_filename = pargs.r.ret_str;
@@ -3198,6 +3293,9 @@ main (int argc, char **argv)
          case oOverrideSessionKey:
                opt.override_session_key = pargs.r.ret_str;
                break;
+         case oOverrideSessionKeyFD:
+                ovrseskeyfd = translate_sys2libc_fd_int (pargs.r.ret_int, 0);
+               break;
          case oMergeOnly:
                deprecated_warning(configname,configlineno,"--merge-only",
                                   "--import-options ","merge-only");
@@ -3765,8 +3863,11 @@ main (int argc, char **argv)
       g10_exit(0);
 
 
-    if( pwfd != -1 )  /* Read the passphrase now. */
-       read_passphrase_from_fd( pwfd );
+    if (pwfd != -1)  /* Read the passphrase now. */
+      read_passphrase_from_fd (pwfd);
+
+    if (ovrseskeyfd != -1 )  /* Read the sessionkey now. */
+      read_sessionkey_from_fd (ovrseskeyfd);
 
     fname = argc? *argv : NULL;
 
@@ -3785,6 +3886,8 @@ main (int argc, char **argv)
       case aGenRandom:
       case aDeArmor:
       case aEnArmor:
+      case aListConfig:
+      case aListGcryptConfig:
        break;
       case aFixTrustDB:
       case aExportOwnerTrust:
@@ -4660,6 +4763,8 @@ main (int argc, char **argv)
          if (! hd)
             g10_exit (1);
 
+          tofu_begin_batch_update (ctrl);
+
          for (i = 1; i < argc; i ++)
            {
              KEYDB_SEARCH_DESC desc;
@@ -4717,8 +4822,9 @@ main (int argc, char **argv)
                g10_exit (1);
            }
 
-         keydb_release (hd);
+          tofu_end_batch_update (ctrl);
 
+         keydb_release (hd);
        }
 #endif /*USE_TOFU*/
        break;
@@ -5116,3 +5222,34 @@ add_keyserver_url( const char *string, int which )
   if(critical)
     sl->flags |= 1;
 }
+
+
+static void
+read_sessionkey_from_fd (int fd)
+{
+  int i, len;
+  char *line;
+
+  for (line = NULL, i = len = 100; ; i++ )
+    {
+      if (i >= len-1 )
+        {
+          char *tmp = line;
+          len += 100;
+          line = xmalloc_secure (len);
+          if (tmp)
+            {
+              memcpy (line, tmp, i);
+              xfree (tmp);
+            }
+          else
+            i=0;
+       }
+      if (read (fd, line + i, 1) != 1 || line[i] == '\n')
+        break;
+    }
+  line[i] = 0;
+  log_debug ("seskey: %s\n", line);
+  gpgrt_annotate_leaked_object (line);
+  opt.override_session_key = line;
+}
index 1aaff2f..3bf023b 100644 (file)
--- a/g10/gpg.h
+++ b/g10/gpg.h
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 #ifndef GNUPG_G10_GPG_H
 #define GNUPG_G10_GPG_H
@@ -60,7 +60,7 @@ struct dirmngr_local_s;
 typedef struct dirmngr_local_s *dirmngr_local_t;
 
 /* Object used to describe a keyblok node.  */
-typedef struct kbnode_struct *KBNODE;
+typedef struct kbnode_struct *KBNODE;   /* Deprecated use kbnode_t. */
 typedef struct kbnode_struct *kbnode_t;
 
 /* TOFU database meta object.  */
@@ -82,8 +82,7 @@ struct server_control_s
   /* Local data for tofu.c  */
   struct {
     tofu_dbs_t dbs;
-    int    batch_update_ref;
-    time_t batch_update_started;
+    int batch_updated_wanted;
   } tofu;
 
 };
index e3bb013..512cb45 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -710,7 +710,7 @@ public_key (const char *option, int argc, char *argv[], void *cookie)
   return processed;
 }
 \f
-struct siginfo
+struct signinfo
 {
   /* Key with which to sign.  */
   kbnode_t issuer_kb;
@@ -789,7 +789,7 @@ sig_issuer (const char *option, int argc, char *argv[], void *cookie)
   gpg_error_t err;
   KEYDB_HANDLE hd;
   KEYDB_SEARCH_DESC desc;
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
 
   if (argc == 0)
     log_fatal ("Usage: %s KEYID\n", option);
@@ -824,7 +824,7 @@ sig_issuer_keyid (const char *option, int argc, char *argv[], void *cookie)
 {
   gpg_error_t err;
   KEYDB_SEARCH_DESC desc;
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
 
   if (argc == 0)
     log_fatal ("Usage: %s KEYID|self\n", option);
@@ -853,7 +853,7 @@ sig_issuer_keyid (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_pk (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   int i;
   char *tail = NULL;
 
@@ -893,7 +893,7 @@ sig_pk (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_user_id (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   int i;
   char *tail = NULL;
 
@@ -922,7 +922,7 @@ sig_user_id (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_class (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   int i;
   char *tail = NULL;
 
@@ -942,7 +942,7 @@ sig_class (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_digest (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   int i;
   char *tail = NULL;
 
@@ -962,7 +962,7 @@ sig_digest (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_timestamp (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   char *tail = NULL;
 
   if (argc == 0)
@@ -979,7 +979,7 @@ sig_timestamp (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_expiration (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   int is_expiration = strcmp (option, "--expiration") == 0;
   u32 *i = is_expiration ? &si->expiration : &si->key_expiration;
 
@@ -999,7 +999,7 @@ sig_expiration (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_int_list (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   int nvalues = 1;
   char *values = xmalloc (nvalues * sizeof (values[0]));
   char *tail = argv[0];
@@ -1069,7 +1069,7 @@ sig_int_list (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_flag (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   int range[2] = {0, 255};
   char *tail;
   int v;
@@ -1115,7 +1115,7 @@ sig_flag (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_trust_level (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   int i;
   char *tail;
 
@@ -1143,7 +1143,7 @@ sig_trust_level (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_string_arg (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   char *p = argv[0];
   char **s;
 
@@ -1173,7 +1173,7 @@ static int
 sig_revocation_key (const char *option, int argc, char *argv[], void *cookie)
 {
   gpg_error_t err;
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   int v;
   char *tail;
   PKT_public_key pk;
@@ -1213,7 +1213,7 @@ sig_revocation_key (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_notation (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   int is_blob = strcmp (option, "--notation") != 0;
   struct notation *notation;
   char *p = argv[0];
@@ -1330,7 +1330,7 @@ sig_notation (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_big_endian_arg (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   char *p = argv[0];
   int i;
   int l;
@@ -1385,7 +1385,7 @@ sig_big_endian_arg (const char *option, int argc, char *argv[], void *cookie)
 static int
 sig_reason_for_revocation (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   int v;
   char *tail;
 
@@ -1410,7 +1410,7 @@ sig_reason_for_revocation (const char *option, int argc, char *argv[], void *coo
 static int
 sig_corrupt (const char *option, int argc, char *argv[], void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
 
   (void) option;
   (void) argc;
@@ -1560,7 +1560,7 @@ static struct option sig_options[] = {
 static int
 mksubpkt_callback (PKT_signature *sig, void *cookie)
 {
-  struct siginfo *si = cookie;
+  struct signinfo *si = cookie;
   int i;
 
   if (si->key_expiration)
@@ -1675,7 +1675,7 @@ signature (const char *option, int argc, char *argv[], void *cookie)
 {
   gpg_error_t err;
   iobuf_t out = cookie;
-  struct siginfo si;
+  struct signinfo si;
   int processed;
   PKT_public_key *pk;
   PKT_signature *sig;
index 72f51b5..661bd35 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -131,25 +131,25 @@ gpgsql_stepx (sqlite3 *db,
           t = va_arg (va, enum gpgsql_arg_type);
           switch (t)
             {
-            case SQLITE_ARG_INT:
+            case GPGSQL_ARG_INT:
               {
                 int value = va_arg (va, int);
                 err = sqlite3_bind_int (stmt, i, value);
                 break;
               }
-            case SQLITE_ARG_LONG_LONG:
+            case GPGSQL_ARG_LONG_LONG:
               {
                 long long value = va_arg (va, long long);
                 err = sqlite3_bind_int64 (stmt, i, value);
                 break;
               }
-            case SQLITE_ARG_STRING:
+            case GPGSQL_ARG_STRING:
               {
                 char *text = va_arg (va, char *);
                 err = sqlite3_bind_text (stmt, i, text, -1, SQLITE_STATIC);
                 break;
               }
-            case SQLITE_ARG_BLOB:
+            case GPGSQL_ARG_BLOB:
               {
                 char *blob = va_arg (va, void *);
                 long long length = va_arg (va, long long);
@@ -170,7 +170,7 @@ gpgsql_stepx (sqlite3 *db,
 
     }
   t = va_arg (va, enum gpgsql_arg_type);
-  log_assert (t == SQLITE_ARG_END);
+  log_assert (t == GPGSQL_ARG_END);
   va_end (va);
 
   for (;;)
index a540684..0d69039 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_GPGSQL_H
 
 enum gpgsql_arg_type
   {
-    SQLITE_ARG_END = 0xdead001,
-    SQLITE_ARG_INT,
-    SQLITE_ARG_LONG_LONG,
-    SQLITE_ARG_STRING,
+    GPGSQL_ARG_END = 0xdead001,
+    GPGSQL_ARG_INT,
+    GPGSQL_ARG_LONG_LONG,
+    GPGSQL_ARG_STRING,
     /* This takes two arguments: the blob as a void * and the length
        of the blob as a long long.  */
-    SQLITE_ARG_BLOB
+    GPGSQL_ARG_BLOB
   };
 
 int gpgsql_exec_printf (sqlite3 *db,
-                     int (*callback)(void*,int,char**,char**), void *cookie,
-                     char **errmsg,
-                     const char *sql, ...);
+                        int (*callback)(void*,int,char**,char**), void *cookie,
+                        char **errmsg,
+                        const char *sql, ...);
 
 typedef int (*gpgsql_stepx_callback) (void *cookie,
                                       /* number of columns.  */
index 4ef3e8b..d9f2898 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -55,6 +55,7 @@ enum cmd_and_opt_values {
   aNull = 0,
   oQuiet         = 'q',
   oVerbose       = 'v',
+  oOutput        = 'o',
   oBatch         = 500,
   oKeyring,
   oIgnoreTimeConflict,
@@ -62,6 +63,7 @@ enum cmd_and_opt_values {
   oLoggerFD,
   oHomedir,
   oWeakDigest,
+  oEnableSpecialFilenames,
   aTest
 };
 
@@ -73,6 +75,7 @@ static ARGPARSE_OPTS opts[] = {
   ARGPARSE_s_n (oQuiet,   "quiet",   N_("be somewhat more quiet")),
   ARGPARSE_s_s (oKeyring, "keyring",
                 N_("|FILE|take the keys from the keyring FILE")),
+  ARGPARSE_s_s (oOutput, "output", N_("|FILE|write output to FILE")),
   ARGPARSE_s_n (oIgnoreTimeConflict, "ignore-time-conflict",
                 N_("make timestamp conflicts only a warning")),
   ARGPARSE_s_i (oStatusFD, "status-fd",
@@ -81,6 +84,7 @@ static ARGPARSE_OPTS opts[] = {
   ARGPARSE_s_s (oHomedir, "homedir", "@"),
   ARGPARSE_s_s (oWeakDigest, "weak-digest",
                 N_("|ALGO|reject signatures made with ALGO")),
+  ARGPARSE_s_n (oEnableSpecialFilenames, "enable-special-filenames", "@"),
 
   ARGPARSE_end ()
 };
@@ -165,6 +169,7 @@ main( int argc, char **argv )
   opt.no_sig_cache = 1;
   opt.flags.require_cross_cert = 1;
   opt.batch = 1;
+  opt.answer_yes = 1;
 
   opt.weak_digests = NULL;
 
@@ -188,6 +193,7 @@ main( int argc, char **argv )
           gcry_control (GCRYCTL_SET_VERBOSITY, (int)opt.verbose);
           break;
         case oKeyring: append_to_strlist( &nrings, pargs.r.ret_str); break;
+        case oOutput: opt.outfile = pargs.r.ret_str; break;
         case oStatusFD: set_status_fd( pargs.r.ret_int ); break;
         case oLoggerFD:
           log_set_fd (translate_sys2libc_fd_int (pargs.r.ret_int, 1));
@@ -197,6 +203,9 @@ main( int argc, char **argv )
           additional_weak_digest(pargs.r.ret_str);
           break;
         case oIgnoreTimeConflict: opt.ignore_time_conflict = 1; break;
+        case oEnableSpecialFilenames:
+          iobuf_enable_special_filenames (1);
+          break;
         default : pargs.err = ARGPARSE_PRINT_ERROR; break;
        }
     }
@@ -354,21 +363,23 @@ keyserver_any_configured (ctrl_t ctrl)
 }
 
 int
-keyserver_import_keyid (u32 *keyid, void *dummy)
+keyserver_import_keyid (u32 *keyid, void *dummy, int quick)
 {
   (void)keyid;
   (void)dummy;
+  (void)quick;
   return -1;
 }
 
 int
 keyserver_import_fprint (ctrl_t ctrl, const byte *fprint,size_t fprint_len,
-                        struct keyserver_spec *keyserver)
+                        struct keyserver_spec *keyserver, int quick)
 {
   (void)ctrl;
   (void)fprint;
   (void)fprint_len;
   (void)keyserver;
+  (void)quick;
   return -1;
 }
 
@@ -388,11 +399,12 @@ keyserver_import_pka (const char *name,unsigned char *fpr)
 }
 
 gpg_error_t
-keyserver_import_wkd (ctrl_t ctrl, const char *name,
+keyserver_import_wkd (ctrl_t ctrl, const char *name, int quick,
                       unsigned char **fpr, size_t *fpr_len)
 {
   (void)ctrl;
   (void)name;
+  (void)quick;
   (void)fpr;
   (void)fpr_len;
   return GPG_ERR_BUG;
@@ -661,6 +673,17 @@ export_pubkey_buffer (ctrl_t ctrl, const char *keyspec, unsigned int options,
 }
 
 gpg_error_t
+tofu_write_tfs_record (ctrl_t ctrl, estream_t fp,
+                       PKT_public_key *pk, const char *user_id)
+{
+  (void)ctrl;
+  (void)fp;
+  (void)pk;
+  (void)user_id;
+  return gpg_error (GPG_ERR_GENERAL);
+}
+
+gpg_error_t
 tofu_get_policy (ctrl_t ctrl, PKT_public_key *pk, PKT_user_id *user_id,
                 enum tofu_policy *policy)
 {
index 7bca1db..730f699 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index f7cb923..590959d 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -76,16 +76,22 @@ struct import_stats_s
 #define NODE_FLAG_A  8
 
 
-/* Global variables to store selector created from
+/* A an object and a global instance to store selectors created from
  * --import-filter keep-uid=EXPR.
  * --import-filter drop-sig=EXPR.
  *
  * FIXME: We should put this into the CTRL object but that requires a
- * lot more changes right now.
+ * lot more changes right now.  For now we use save and restore
+ * function to temporary change them.
  */
-static recsel_expr_t import_keep_uid;
-static recsel_expr_t import_drop_sig;
-
+/* Definition of the import filters.  */
+struct import_filter_s
+{
+  recsel_expr_t keep_uid;
+  recsel_expr_t drop_sig;
+};
+/* The current instance.  */
+struct import_filter_s import_filter;
 
 
 static int import (ctrl_t ctrl,
@@ -109,6 +115,7 @@ static int import_revoke_cert (kbnode_t node, struct import_stats_s *stats);
 static int chk_self_sigs (kbnode_t keyblock, u32 *keyid, int *non_self);
 static int delete_inv_parts (kbnode_t keyblock,
                              u32 *keyid, unsigned int options);
+static int any_uid_left (kbnode_t keyblock);
 static int merge_blocks (kbnode_t keyblock_orig,
                         kbnode_t keyblock, u32 *keyid,
                         int *n_uids, int *n_sigs, int *n_subk );
@@ -120,12 +127,18 @@ static int merge_keysigs (kbnode_t dst, kbnode_t src, int *n_sigs);
 
 \f
 static void
+release_import_filter (import_filter_t filt)
+{
+  recsel_release (filt->keep_uid);
+  filt->keep_uid = NULL;
+  recsel_release (filt->drop_sig);
+  filt->drop_sig = NULL;
+}
+
+static void
 cleanup_import_globals (void)
 {
-  recsel_release (import_keep_uid);
-  import_keep_uid = NULL;
-  recsel_release (import_drop_sig);
-  import_drop_sig = NULL;
+  release_import_filter (&import_filter);
 }
 
 
@@ -201,9 +214,9 @@ parse_and_set_import_filter (const char *string)
   register_mem_cleanup_func (cleanup_import_globals);
 
   if (!strncmp (string, "keep-uid=", 9))
-    err = recsel_parse_expr (&import_keep_uid, string+9);
+    err = recsel_parse_expr (&import_filter.keep_uid, string+9);
   else if (!strncmp (string, "drop-sig=", 9))
-    err = recsel_parse_expr (&import_drop_sig, string+9);
+    err = recsel_parse_expr (&import_filter.drop_sig, string+9);
   else
     err = gpg_error (GPG_ERR_INV_NAME);
 
@@ -211,6 +224,36 @@ parse_and_set_import_filter (const char *string)
 }
 
 
+/* Save the current import filters, return them, and clear the current
+ * filters.  Returns NULL on error and sets ERRNO.  */
+import_filter_t
+save_and_clear_import_filter (void)
+{
+  import_filter_t filt;
+
+  filt = xtrycalloc (1, sizeof *filt);
+  if (!filt)
+    return NULL;
+  *filt = import_filter;
+  memset (&import_filter, 0, sizeof import_filter);
+
+  return filt;
+}
+
+
+/* Release the current import filters and restore them from NEWFILT.
+ * Ownership of NEWFILT is moved to this function.  */
+void
+restore_import_filter (import_filter_t filt)
+{
+  if (filt)
+    {
+      release_import_filter (&import_filter);
+      import_filter = *filt;
+      xfree (filt);
+    }
+}
+
 
 import_stats_t
 import_new_stats_handle (void)
@@ -465,7 +508,7 @@ import_keys_es_stream (ctrl_t ctrl, estream_t fp,
   int rc;
   iobuf_t inp;
 
-  inp = iobuf_esopen (fp, "r", 1);
+  inp = iobuf_esopen (fp, "rb", 1);
   if (!inp)
     {
       rc = gpg_error_from_syserror ();
@@ -1103,9 +1146,9 @@ check_prefs (ctrl_t ctrl, kbnode_t keyblock)
 }
 
 
-/* Helper for apply_keep_uid_filter and apply_drop_sig_filter.  */
-static const char *
-filter_getval (void *cookie, const char *propname)
+/* Helper for apply_*_filter in im,port.c and export.c.  */
+const char *
+impex_filter_getval (void *cookie, const char *propname)
 {
   /* FIXME: Malloc our static buffers and access them via the cookie.  */
   kbnode_t node = cookie;
@@ -1157,6 +1200,35 @@ filter_getval (void *cookie, const char *propname)
       else
         result = NULL;
     }
+  else if (node->pkt->pkttype == PKT_PUBLIC_KEY
+           || node->pkt->pkttype == PKT_SECRET_KEY
+           || node->pkt->pkttype == PKT_PUBLIC_SUBKEY
+           || node->pkt->pkttype == PKT_SECRET_SUBKEY)
+    {
+      PKT_public_key *pk = node->pkt->pkt.public_key;
+
+      if (!strcmp (propname, "secret"))
+        {
+          result = (node->pkt->pkttype == PKT_SECRET_KEY
+                    || node->pkt->pkttype == PKT_SECRET_SUBKEY)? "1":"0";
+        }
+      else if (!strcmp (propname, "key_algo"))
+        {
+          snprintf (numbuf, sizeof numbuf, "%d", pk->pubkey_algo);
+          result = numbuf;
+        }
+      if (!strcmp (propname, "key_created"))
+        {
+          snprintf (numbuf, sizeof numbuf, "%lu", (ulong)pk->timestamp);
+          result = numbuf;
+        }
+      else if (!strcmp (propname, "key_created_d"))
+        {
+          result = datestr_from_pk (pk);
+        }
+      else
+        result = NULL;
+    }
   else
     result = NULL;
 
@@ -1178,7 +1250,7 @@ apply_keep_uid_filter (kbnode_t keyblock, recsel_expr_t selector)
     {
       if (node->pkt->pkttype == PKT_USER_ID)
         {
-          if (!recsel_select (selector, filter_getval, node))
+          if (!recsel_select (selector, impex_filter_getval, node))
             {
 
               /* log_debug ("keep-uid: deleting '%s'\n", */
@@ -1237,7 +1309,7 @@ apply_drop_sig_filter (kbnode_t keyblock, recsel_expr_t selector)
 
       if (IS_UID_SIG(sig) || IS_UID_REV(sig))
         {
-          if (recsel_select (selector, filter_getval, node))
+          if (recsel_select (selector, impex_filter_getval, node))
             delete_kbnode (node);
         }
     }
@@ -1273,6 +1345,7 @@ import_one (ctrl_t ctrl,
   size_t an;
   char pkstrbuf[PUBKEY_STRING_SIZE];
   int merge_keys_done = 0;
+  int any_filter = 0;
 
   /* Get the key and print some info about it. */
   node = find_kbnode( keyblock, PKT_PUBLIC_KEY );
@@ -1380,17 +1453,29 @@ import_one (ctrl_t ctrl,
   commit_kbnode (&keyblock);
 
   /* Apply import filter.  */
-  if (import_keep_uid)
+  if (import_filter.keep_uid)
     {
-      apply_keep_uid_filter (keyblock, import_keep_uid);
+      apply_keep_uid_filter (keyblock, import_filter.keep_uid);
       commit_kbnode (&keyblock);
+      any_filter = 1;
     }
-  if (import_drop_sig)
+  if (import_filter.drop_sig)
     {
-      apply_drop_sig_filter (keyblock, import_drop_sig);
+      apply_drop_sig_filter (keyblock, import_filter.drop_sig);
       commit_kbnode (&keyblock);
+      any_filter = 1;
     }
 
+  /* If we ran any filter we need to check that at least one user id
+   * is left in the keyring.  Note that we do not use log_error in
+   * this case. */
+  if (any_filter && !any_uid_left (keyblock))
+    {
+      if (!opt.quiet )
+        log_info ( _("key %s: no valid user IDs\n"), keystr_from_pk (pk));
+      stats->no_user_id++;
+      return 0;
+    }
 
   /* Show the key in the form it is merged or inserted.  We skip this
    * if "import-export" is also active without --armor or the output
@@ -2672,6 +2757,19 @@ delete_inv_parts (kbnode_t keyblock, u32 *keyid, unsigned int options)
   return nvalid;
 }
 
+/* This function returns true if any UID is left in the keyring.  */
+static int
+any_uid_left (kbnode_t keyblock)
+{
+  kbnode_t node;
+
+  for (node=keyblock->next; node; node = node->next)
+    if (node->pkt->pkttype == PKT_USER_ID)
+      return 1;
+  return 0;
+}
+
+
 
 /****************
  * It may happen that the imported keyblock has duplicated user IDs.
@@ -2856,7 +2954,7 @@ revocation_present (ctrl_t ctrl, kbnode_t keyblock)
                              keyserver_import_fprint (ctrl,
                                                        sig->revkey[idx].fpr,
                                                        MAX_FINGERPRINT_LEN,
-                                                       opt.keyserver);
+                                                       opt.keyserver, 0);
 
                              /* Do we have it now? */
                              rc=get_pubkey_byfprint_fast (NULL,
index e814fa8..6700dc0 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index e49e25f..1467b2d 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -64,6 +64,8 @@ static int used_resources;
    to the struct resource_item's TOKEN.  */
 static void *primary_keydb;
 
+/* Whether we have successfully registered any resource.  */
+static int any_registered;
 
 /* This is a simple cache used to return the last result of a
    successful fingerprint search.  This works only for keybox resources
@@ -277,7 +279,7 @@ maybe_create_keyring_or_box (char *filename, int is_box, int force_create)
 
   /* A quick test whether the filename already exists. */
   if (!access (filename, F_OK))
-    return 0;
+    return !access (filename, R_OK)? 0 : gpg_error (GPG_ERR_EACCES);
 
   /* If we don't want to create a new file at all, there is no need to
      go any further - bail out right here.  */
@@ -415,7 +417,7 @@ maybe_create_keyring_or_box (char *filename, int is_box, int force_create)
      that the detection magic will work the next time it is used.  */
   if (is_box)
     {
-      FILE *fp = fopen (filename, "w");
+      FILE *fp = fopen (filename, "wb");
       if (!fp)
         rc = gpg_error_from_syserror ();
       else
@@ -616,8 +618,6 @@ keydb_search_desc_dump (struct keydb_search_desc *desc)
 gpg_error_t
 keydb_add_resource (const char *url, unsigned int flags)
 {
-  /* Whether we have successfully registered a resource.  */
-  static int any_registered;
   /* The file named by the URL (i.e., without the prototype).  */
   const char *resname = url;
 
@@ -819,7 +819,11 @@ keydb_add_resource (const char *url, unsigned int flags)
 
  leave:
   if (err)
-    log_error (_("keyblock resource '%s': %s\n"), filename, gpg_strerror (err));
+    {
+      log_error (_("keyblock resource '%s': %s\n"),
+                 filename, gpg_strerror (err));
+      write_status_error ("add_keyblock_resource", err);
+    }
   else
     any_registered = 1;
   xfree (filename);
@@ -1875,6 +1879,12 @@ keydb_search (KEYDB_HANDLE hd, KEYDB_SEARCH_DESC *desc,
   if (!hd)
     return gpg_error (GPG_ERR_INV_ARG);
 
+  if (!any_registered)
+    {
+      write_status_error ("keydb_search", gpg_error (GPG_ERR_KEYRING_OPEN));
+      return gpg_error (GPG_ERR_NOT_FOUND);
+    }
+
   if (DBG_CLOCK)
     log_clock ("keydb_search enter");
 
index 35512bb..815b17e 100644 (file)
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef G10_KEYDB_H
@@ -324,6 +324,13 @@ int get_pubkey_byname (ctrl_t ctrl,
                        KBNODE *ret_keyblock, KEYDB_HANDLE *ret_kdbhd,
                       int include_unusable, int no_akl );
 
+/* Likewise, but only return the best match if NAME resembles a mail
+ * address.  */
+int get_best_pubkey_byname (ctrl_t ctrl,
+                           GETKEY_CTX *retctx, PKT_public_key *pk,
+                           const char *name, KBNODE *ret_keyblock,
+                           int include_unusable, int no_akl);
+
 /* Get a public key directly from file FNAME.  */
 gpg_error_t get_pubkey_fromfile (ctrl_t ctrl,
                                  PKT_public_key *pk, const char *fname);
index 4c833f8..795be05 100644 (file)
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -408,20 +408,31 @@ check_all_keysigs (KBNODE kb, int only_selected, int only_selfsigs)
 
   /* First we look for duplicates.  */
   {
-    int nsigs = 0;
-    KBNODE *sigs;
+    int nsigs;
+    kbnode_t *sigs;
     int i;
     int last_i;
 
     /* Count the sigs.  */
-    for (n = kb; n; n = n->next)
-      if (is_deleted_kbnode (n))
-        continue;
-      else if (n->pkt->pkttype == PKT_SIGNATURE)
-        nsigs ++;
+    for (nsigs = 0, n = kb; n; n = n->next)
+      {
+        if (is_deleted_kbnode (n))
+          continue;
+        else if (n->pkt->pkttype == PKT_SIGNATURE)
+          nsigs ++;
+      }
+
+    if (!nsigs)
+      return 0; /* No signatures at all.  */
 
     /* Add them all to the SIGS array.  */
-    sigs = xmalloc_clear (sizeof (*sigs) * nsigs);
+    sigs = xtrycalloc (nsigs, sizeof *sigs);
+    if (!sigs)
+      {
+        log_error (_("error allocating memory: %s\n"),
+                   gpg_strerror (gpg_error_from_syserror ()));
+        return 0;
+      }
 
     i = 0;
     for (n = kb; n; n = n->next)
@@ -2767,7 +2778,7 @@ keyedit_menu (ctrl_t ctrl, const char *username, strlist_t locusr,
                goto leave;
              break;
            }
-         /* fall thru */
+         /* fall through */
        case cmdSAVE:
          if (modified)
            {
@@ -2921,6 +2932,8 @@ keyedit_quick_adduid (ctrl_t ctrl, const char *username, const char *newuid)
 
   fix_keyblock (&keyblock);
 
+  merge_keys_and_selfsig (keyblock);
+
   if (menu_adduid (ctrl, keyblock, 0, NULL, uidstring))
     {
       err = keydb_update_keyblock (kdbhd, keyblock);
@@ -2940,7 +2953,7 @@ keyedit_quick_adduid (ctrl_t ctrl, const char *username, const char *newuid)
   keydb_release (kdbhd);
 }
 
-/* Unattended revokation of a keyid.  USERNAME specifies the
+/* Unattended revocation of a keyid.  USERNAME specifies the
    key. UIDTOREV is the user id revoke from the key.  */
 void
 keyedit_quick_revuid (ctrl_t ctrl, const char *username, const char *uidtorev)
@@ -3304,7 +3317,7 @@ keyedit_quick_addkey (ctrl_t ctrl, const char *fpr, const char *algostr,
       goto leave;
     }
 
-  /* Create the subkey.  Noet that the called function already prints
+  /* Create the subkey.  Note that the called function already prints
    * an error message. */
   if (!generate_subkeypair (ctrl, keyblock, algostr, usagestr, expirestr))
     modified = 1;
@@ -4308,7 +4321,10 @@ menu_adduid (ctrl_t ctrl, kbnode_t pub_keyblock,
   if (!uid)
     {
       if (uidstring)
-        log_error ("%s", _("Such a user ID already exists on this key!\n"));
+        {
+          write_status_error ("adduid", gpg_error (304));
+          log_error ("%s", _("Such a user ID already exists on this key!\n"));
+        }
       return 0;
     }
 
@@ -4333,7 +4349,7 @@ menu_adduid (ctrl_t ctrl, kbnode_t pub_keyblock,
     add_kbnode (pub_keyblock, node);
   pkt = xmalloc_clear (sizeof *pkt);
   pkt->pkttype = PKT_SIGNATURE;
-  pkt->pkt.signature = copy_signature (NULL, sig);
+  pkt->pkt.signature = sig;
   if (pub_where)
     insert_kbnode (node, new_kbnode (pkt), 0);
   else
index 2b3d328..d249556 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
 #define DEFAULT_STD_SUBKEYUSE  PUBKEY_USAGE_ENC
 #define DEFAULT_STD_SUBCURVE   NULL
 
+#define FUTURE_STD_ALGO        PUBKEY_ALGO_EDDSA
+#define FUTURE_STD_KEYSIZE     0
+#define FUTURE_STD_KEYUSE      (PUBKEY_USAGE_CERT|PUBKEY_USAGE_SIG)
+#define FUTURE_STD_CURVE       "Ed25519"
+#define FUTURE_STD_SUBALGO     PUBKEY_ALGO_ECDH
+#define FUTURE_STD_SUBKEYSIZE  0
+#define FUTURE_STD_SUBKEYUSE   PUBKEY_USAGE_ENC
+#define FUTURE_STD_SUBCURVE    "Curve25519"
+
 /* Flag bits used during key generation.  */
 #define KEYGEN_FLAG_NO_PROTECTION 1
 #define KEYGEN_FLAG_TRANSIENT_KEY 2
@@ -143,11 +152,11 @@ static gpg_error_t parse_algo_usage_expire (ctrl_t ctrl, int for_subkey,
                                      u32 *r_expire,
                                      unsigned int *r_nbits, char **r_curve);
 static void do_generate_keypair (ctrl_t ctrl, struct para_data_s *para,
-                                struct output_control_s *outctrl, int card );
+                                 struct output_control_s *outctrl, int card );
 static int write_keyblock (iobuf_t out, kbnode_t node);
-static gpg_error_t gen_card_key (int algo, int keyno, int is_primary,
-                                 kbnode_t pub_root,
-                                 u32 *timestamp, u32 expireval);
+static gpg_error_t gen_card_key (int keyno, int algo, int is_primary,
+                                 kbnode_t pub_root, u32 *timestamp,
+                                 u32 expireval);
 
 
 static void
@@ -171,8 +180,9 @@ print_status_key_created (int letter, PKT_public_key *pk, const char *handle)
           *p++ = ' ';
           fingerprint_from_pk (pk, array, &n);
           s = array;
+          /* Fixme: Use bin2hex */
           for (i=0; i < n ; i++, s++, p += 2)
-            sprintf (p, "%02X", *s);
+            snprintf (p, 3, "%02X", *s);
         }
     }
   if (*handle)
@@ -247,7 +257,7 @@ keygen_add_key_expire (PKT_signature *sig, void *opaque)
 
       buf[0] = (u >> 24) & 0xff;
       buf[1] = (u >> 16) & 0xff;
-      buf[2] = (u >>   8) & 0xff;
+      buf[2] = (u >>  8) & 0xff;
       buf[3] = u & 0xff;
       build_sig_subpkt (sig, SIGSUBPKT_KEY_EXPIRE, buf, 4);
     }
@@ -1875,24 +1885,27 @@ ask_algo (ctrl_t ctrl, int addmode, int *r_subkey_algo, unsigned int *r_usage,
     tty_printf (_("   (%d) RSA and RSA (default)\n"), 1 );
 #endif
 
-  if (!addmode)
+  if (!addmode && opt.compliance != CO_DE_VS)
     tty_printf (_("   (%d) DSA and Elgamal\n"), 2 );
 
-  tty_printf (_("   (%d) DSA (sign only)\n"), 3 );
+  if (opt.compliance != CO_DE_VS)
+    tty_printf (_("   (%d) DSA (sign only)\n"), 3 );
 #if GPG_USE_RSA
   tty_printf (_("   (%d) RSA (sign only)\n"), 4 );
 #endif
 
   if (addmode)
     {
-      tty_printf (_("   (%d) Elgamal (encrypt only)\n"), 5 );
+      if (opt.compliance != CO_DE_VS)
+        tty_printf (_("   (%d) Elgamal (encrypt only)\n"), 5 );
 #if GPG_USE_RSA
       tty_printf (_("   (%d) RSA (encrypt only)\n"), 6 );
 #endif
     }
   if (opt.expert)
     {
-      tty_printf (_("   (%d) DSA (set your own capabilities)\n"), 7 );
+      if (opt.compliance != CO_DE_VS)
+        tty_printf (_("   (%d) DSA (set your own capabilities)\n"), 7 );
 #if GPG_USE_RSA
       tty_printf (_("   (%d) RSA (set your own capabilities)\n"), 8 );
 #endif
@@ -1920,7 +1933,13 @@ ask_algo (ctrl_t ctrl, int addmode, int *r_subkey_algo, unsigned int *r_usage,
       answer = cpr_get ("keygen.algo", _("Your selection? "));
       cpr_kill_prompt ();
       algo = *answer? atoi (answer) : 1;
-      if ((algo == 1 || !strcmp (answer, "rsa+rsa")) && !addmode)
+
+      if (opt.compliance == CO_DE_VS
+          && (algo == 2 || algo == 3 || algo == 5 || algo == 7))
+        {
+          tty_printf (_("Invalid selection.\n"));
+        }
+      else if ((algo == 1 || !strcmp (answer, "rsa+rsa")) && !addmode)
         {
           algo = PUBKEY_ALGO_RSA;
           *r_subkey_algo = PUBKEY_ALGO_RSA;
@@ -2041,7 +2060,7 @@ static void
 get_keysize_range (int algo,
                    unsigned int *min, unsigned int *def, unsigned int *max)
 {
-  *min = 1024;
+  *min = opt.compliance == CO_DE_VS ? 2048: 1024;
   *def = DEFAULT_STD_KEYSIZE;
   *max = 4096;
 
@@ -2187,26 +2206,27 @@ ask_curve (int *algo, int *subkey_algo)
      numbers in the menu regardless on how Gpg was configured.  */
   struct {
     const char *name;
-    int available;   /* Available in Libycrypt (runtime checked) */
-    int expert_only;
     const char* eddsa_curve; /* Corresponding EdDSA curve.  */
     const char *pretty_name;
-    int supported;   /* Supported by gpg.  */
+    unsigned int supported : 1;   /* Supported by gpg.     */
+    unsigned int de_vs : 1;       /* Allowed in CO_DE_VS.  */
+    unsigned int expert_only : 1; /* Only with --expert    */
+    unsigned int available : 1;   /* Available in Libycrypt (runtime checked) */
   } curves[] = {
 #if GPG_USE_ECDSA || GPG_USE_ECDH
 # define MY_USE_ECDSADH 1
 #else
 # define MY_USE_ECDSADH 0
 #endif
-    { "Curve25519",      0, 0, "Ed25519", "Curve 25519", GPG_USE_EDDSA  },
-    { "Curve448",        0, 1, "Ed448",   "Curve 448",   0/*reserved*/  },
-    { "NIST P-256",      0, 1, NULL, NULL,               MY_USE_ECDSADH },
-    { "NIST P-384",      0, 0, NULL, NULL,               MY_USE_ECDSADH },
-    { "NIST P-521",      0, 1, NULL, NULL,               MY_USE_ECDSADH },
-    { "brainpoolP256r1", 0, 1, NULL, "Brainpool P-256",  MY_USE_ECDSADH },
-    { "brainpoolP384r1", 0, 1, NULL, "Brainpool P-384",  MY_USE_ECDSADH },
-    { "brainpoolP512r1", 0, 1, NULL, "Brainpool P-512",  MY_USE_ECDSADH },
-    { "secp256k1",       0, 1, NULL, NULL,               MY_USE_ECDSADH },
+    { "Curve25519",      "Ed25519", "Curve 25519", !!GPG_USE_EDDSA, 0, 0, 0 },
+    { "Curve448",        "Ed448",   "Curve 448",   0/*reserved*/  , 0, 1, 0 },
+    { "NIST P-256",      NULL, NULL,               MY_USE_ECDSADH,  0, 1, 0 },
+    { "NIST P-384",      NULL, NULL,               MY_USE_ECDSADH,  0, 0, 0 },
+    { "NIST P-521",      NULL, NULL,               MY_USE_ECDSADH,  0, 1, 0 },
+    { "brainpoolP256r1", NULL, "Brainpool P-256",  MY_USE_ECDSADH,  1, 1, 0 },
+    { "brainpoolP384r1", NULL, "Brainpool P-384",  MY_USE_ECDSADH,  1, 1, 0 },
+    { "brainpoolP512r1", NULL, "Brainpool P-512",  MY_USE_ECDSADH,  1, 1, 0 },
+    { "secp256k1",       NULL, NULL,               MY_USE_ECDSADH,  0, 1, 0 },
   };
 #undef MY_USE_ECDSADH
   int idx;
@@ -2224,7 +2244,13 @@ ask_curve (int *algo, int *subkey_algo)
       curves[idx].available = 0;
       if (!curves[idx].supported)
         continue;
-      if (!opt.expert && curves[idx].expert_only)
+
+      if (opt.compliance==CO_DE_VS)
+        {
+          if (!curves[idx].de_vs)
+            continue; /* Not allowed.  */
+        }
+      else if (!opt.expert && curves[idx].expert_only)
         continue;
 
       /* We need to switch from the ECDH name of the curve to the
@@ -2330,7 +2356,8 @@ parse_expire_string( const char *string )
   u32 curtime = make_timestamp ();
   time_t tt;
 
-  if (!*string)
+  if (!string || !*string || !strcmp (string, "none")
+      || !strcmp (string, "never") || !strcmp (string, "-"))
     seconds = 0;
   else if (!strncmp (string, "seconds=", 8))
     seconds = atoi (string+8);
@@ -2347,7 +2374,7 @@ parse_expire_string( const char *string )
   return seconds;
 }
 
-/* Parsean Creation-Date string which is either "1986-04-26" or
+/* Parse a Creation-Date string which is either "1986-04-26" or
    "19860426T042640".  Returns 0 on error. */
 static u32
 parse_creation_string (const char *string)
@@ -2418,13 +2445,7 @@ ask_expire_interval(int object,const char *def_expire)
          {
            char *prompt;
 
-#define PROMPTSTRING _("Signature is valid for? (%s) ")
-           /* This will actually end up larger than necessary because
-              of the 2 bytes for '%s' */
-           prompt=xmalloc(strlen(PROMPTSTRING)+strlen(def_expire)+1);
-           sprintf(prompt,PROMPTSTRING,def_expire);
-#undef PROMPTSTRING
-
+           prompt = xasprintf (_("Signature is valid for? (%s) "), def_expire);
            answer = cpr_get("siggen.valid",prompt);
            xfree(prompt);
 
@@ -3604,6 +3625,7 @@ quick_generate_keypair (ctrl_t ctrl, const char *uid, const char *algostr,
                  || !cpr_get_answer_is_yes_def ("quick_keygen.force",
                                                 _("Create anyway? (y/N) "), 0))
           {
+            write_status_error ("genkey", gpg_error (304));
             log_inc_errorcount ();  /* we used log_info */
             goto leave;
           }
@@ -3612,12 +3634,49 @@ quick_generate_keypair (ctrl_t ctrl, const char *uid, const char *algostr,
   }
 
 
-  if (!strcmp (algostr, "test-default"))
+  if ((!*algostr || !strcmp (algostr, "default")
+       || !strcmp (algostr, "future-default"))
+      && (!*usagestr || !strcmp (usagestr, "default")
+          || !strcmp (usagestr, "-")))
     {
-      para = quickgen_set_para (para, 0, PUBKEY_ALGO_EDDSA, 0, "Ed25519", 0);
-      para = quickgen_set_para (para, 1, PUBKEY_ALGO_ECDH,  0, "Curve25519", 0);
+      if (!strcmp (algostr, "future-default"))
+        {
+          para = quickgen_set_para (para, 0,
+                                    FUTURE_STD_ALGO, FUTURE_STD_KEYSIZE,
+                                    FUTURE_STD_CURVE, 0);
+          para = quickgen_set_para (para, 1,
+                                    FUTURE_STD_SUBALGO,  FUTURE_STD_SUBKEYSIZE,
+                                    FUTURE_STD_SUBCURVE, 0);
+        }
+      else
+        {
+          para = quickgen_set_para (para, 0,
+                                    DEFAULT_STD_ALGO, DEFAULT_STD_KEYSIZE,
+                                    DEFAULT_STD_CURVE, 0);
+          para = quickgen_set_para (para, 1,
+                                    DEFAULT_STD_SUBALGO, DEFAULT_STD_SUBKEYSIZE,
+                                    DEFAULT_STD_SUBCURVE, 0);
+        }
+
+      if (*expirestr)
+        {
+          u32 expire;
+
+          expire = parse_expire_string (expirestr);
+          if (expire == (u32)-1 )
+            {
+              err = gpg_error (GPG_ERR_INV_VALUE);
+              log_error (_("Key generation failed: %s\n"), gpg_strerror (err));
+              goto leave;
+            }
+          r = xmalloc_clear (sizeof *r + 20);
+          r->key = pKEYEXPIRE;
+          r->u.expire = expire;
+          r->next = para;
+          para = r;
+        }
     }
-  else if (*algostr || *usagestr || *expirestr)
+  else
     {
       /* Extended unattended mode.  Creates only the primary key. */
       int algo;
@@ -3641,15 +3700,6 @@ quick_generate_keypair (ctrl_t ctrl, const char *uid, const char *algostr,
       r->next = para;
       para = r;
     }
-  else
-    {
-      para = quickgen_set_para (para, 0,
-                                DEFAULT_STD_ALGO, DEFAULT_STD_KEYSIZE,
-                                DEFAULT_STD_CURVE, 0);
-      para = quickgen_set_para (para, 1,
-                                DEFAULT_STD_SUBALGO, DEFAULT_STD_SUBKEYSIZE,
-                                DEFAULT_STD_SUBCURVE, 0);
-    }
 
   /* If the pinentry loopback mode is not and we have a static
      passphrase (i.e. set with --passphrase{,-fd,-file} while in batch
@@ -3718,17 +3768,26 @@ generate_keypair (ctrl_t ctrl, int full, const char *fname,
   if (card_serialno)
     {
 #ifdef ENABLE_CARD_SUPPORT
+      gpg_error_t err;
+      struct agent_card_info_s info;
+
+      memset (&info, 0, sizeof (info));
+      err = agent_scd_getattr ("KEY-ATTR", &info);
+      if (err)
+        {
+          log_error (_("error getting current key info: %s\n"), gpg_strerror (err));
+          return;
+        }
+
       r = xcalloc (1, sizeof *r + strlen (card_serialno) );
       r->key = pSERIALNO;
       strcpy( r->u.value, card_serialno);
       r->next = para;
       para = r;
 
-      algo = PUBKEY_ALGO_RSA;
-
       r = xcalloc (1, sizeof *r + 20 );
       r->key = pKEYTYPE;
-      sprintf( r->u.value, "%d", algo );
+      sprintf( r->u.value, "%d", info.key_attr[0].algo );
       r->next = para;
       para = r;
       r = xcalloc (1, sizeof *r + 20 );
@@ -3739,7 +3798,7 @@ generate_keypair (ctrl_t ctrl, int full, const char *fname,
 
       r = xcalloc (1, sizeof *r + 20 );
       r->key = pSUBKEYTYPE;
-      sprintf( r->u.value, "%d", algo );
+      sprintf( r->u.value, "%d", info.key_attr[1].algo );
       r->next = para;
       para = r;
       r = xcalloc (1, sizeof *r + 20 );
@@ -3747,10 +3806,28 @@ generate_keypair (ctrl_t ctrl, int full, const char *fname,
       strcpy (r->u.value, "encrypt");
       r->next = para;
       para = r;
+      if (info.key_attr[1].algo == PUBKEY_ALGO_RSA)
+        {
+          r = xcalloc (1, sizeof *r + 20 );
+          r->key = pSUBKEYLENGTH;
+          sprintf( r->u.value, "%u", info.key_attr[1].nbits);
+          r->next = para;
+          para = r;
+        }
+      else if (info.key_attr[1].algo == PUBKEY_ALGO_ECDSA
+               || info.key_attr[1].algo == PUBKEY_ALGO_EDDSA
+               || info.key_attr[1].algo == PUBKEY_ALGO_ECDH)
+        {
+          r = xcalloc (1, sizeof *r + strlen (info.key_attr[1].curve));
+          r->key = pSUBKEYCURVE;
+          strcpy (r->u.value, info.key_attr[1].curve);
+          r->next = para;
+          para = r;
+        }
 
       r = xcalloc (1, sizeof *r + 20 );
       r->key = pAUTHKEYTYPE;
-      sprintf( r->u.value, "%d", algo );
+      sprintf( r->u.value, "%d", info.key_attr[2].algo );
       r->next = para;
       para = r;
 
@@ -4199,8 +4276,8 @@ do_generate_keypair (ctrl_t ctrl, struct para_data_s *para,
                      get_parameter_passphrase (para),
                      &cache_nonce, NULL);
   else
-    err = gen_card_key (PUBKEY_ALGO_RSA, 1, 1, pub_root,
-                        &timestamp,
+    err = gen_card_key (1, get_parameter_algo( para, pKEYTYPE, NULL ),
+                        1, pub_root, &timestamp,
                         get_parameter_u32 (para, pKEYEXPIRE));
 
   /* Get the pointer to the generated public key packet.  */
@@ -4238,8 +4315,8 @@ do_generate_keypair (ctrl_t ctrl, struct para_data_s *para,
 
   if (!err && card && get_parameter (para, pAUTHKEYTYPE))
     {
-      err = gen_card_key (PUBKEY_ALGO_RSA, 3, 0, pub_root,
-                          &timestamp,
+      err = gen_card_key (3, get_parameter_algo( para, pAUTHKEYTYPE, NULL ),
+                          0, pub_root, &timestamp,
                           get_parameter_u32 (para, pKEYEXPIRE));
       if (!err)
         err = write_keybinding (pub_root, pri_psk, NULL,
@@ -4278,7 +4355,8 @@ do_generate_keypair (ctrl_t ctrl, struct para_data_s *para,
         }
       else
         {
-          err = gen_card_key (PUBKEY_ALGO_RSA, 2, 0, pub_root, &timestamp,
+          err = gen_card_key (2, get_parameter_algo (para, pSUBKEYTYPE, NULL),
+                              0, pub_root, &timestamp,
                               get_parameter_u32 (para, pKEYEXPIRE));
         }
 
@@ -4416,9 +4494,17 @@ parse_algo_usage_expire (ctrl_t ctrl, int for_subkey,
   if (!algostr || !*algostr
       || !strcmp (algostr, "default") || !strcmp (algostr, "-"))
     {
-      algo = for_subkey? DEFAULT_STD_SUBALGO : DEFAULT_STD_ALGO;
-      use = for_subkey?  DEFAULT_STD_SUBKEYUSE : DEFAULT_STD_KEYUSE;
-      nbits = for_subkey?DEFAULT_STD_SUBKEYSIZE : DEFAULT_STD_KEYSIZE;
+      algo  = for_subkey? DEFAULT_STD_SUBALGO    : DEFAULT_STD_ALGO;
+      use   = for_subkey? DEFAULT_STD_SUBKEYUSE  : DEFAULT_STD_KEYUSE;
+      nbits = for_subkey? DEFAULT_STD_SUBKEYSIZE : DEFAULT_STD_KEYSIZE;
+      curve = for_subkey? DEFAULT_STD_SUBCURVE   : DEFAULT_STD_CURVE;
+    }
+  else if (!strcmp (algostr, "future-default"))
+    {
+      algo  = for_subkey? FUTURE_STD_SUBALGO    : FUTURE_STD_ALGO;
+      use   = for_subkey? FUTURE_STD_SUBKEYUSE  : FUTURE_STD_KEYUSE;
+      nbits = for_subkey? FUTURE_STD_SUBKEYSIZE : FUTURE_STD_KEYSIZE;
+      curve = for_subkey? FUTURE_STD_SUBCURVE   : FUTURE_STD_CURVE;
     }
   else if (*algostr == '&' && strlen (algostr) == 41)
     {
@@ -4462,7 +4548,7 @@ parse_algo_usage_expire (ctrl_t ctrl, int for_subkey,
         use = PUBKEY_USAGE_ENC;
     }
   else
-    return gpg_error (GPG_ERR_INV_CURVE);
+    return gpg_error (GPG_ERR_UNKNOWN_CURVE);
 
   /* Parse the usage string.  */
   if (!usagestr || !*usagestr
@@ -4490,11 +4576,7 @@ parse_algo_usage_expire (ctrl_t ctrl, int for_subkey,
     return gpg_error (GPG_ERR_WRONG_KEY_USAGE);
 
   /* Parse the expire string.  */
-  if (!expirestr || !*expirestr || !strcmp (expirestr, "none")
-      || !strcmp (expirestr, "never") || !strcmp (expirestr, "-"))
-    expire = 0;
-  else
-    expire = parse_expire_string (expirestr);
+  expire = parse_expire_string (expirestr);
   if (expire == (u32)-1 )
     return gpg_error (GPG_ERR_INV_VALUE);
 
@@ -4706,15 +4788,25 @@ generate_card_subkeypair (kbnode_t pub_keyblock,
   gpg_error_t err = 0;
   kbnode_t node;
   PKT_public_key *pri_pk = NULL;
-  int algo;
   unsigned int use;
   u32 expire;
   u32 cur_time;
   struct para_data_s *para = NULL;
   PKT_public_key *sub_pk = NULL;
+  int algo;
+  struct agent_card_info_s info;
 
   log_assert (keyno >= 1 && keyno <= 3);
 
+  memset (&info, 0, sizeof (info));
+  err = agent_scd_getattr ("KEY-ATTR", &info);
+  if (err)
+    {
+      log_error (_("error getting current key info: %s\n"), gpg_strerror (err));
+      return err;
+    }
+  algo = info.key_attr[keyno-1].algo;
+
   para = xtrycalloc (1, sizeof *para + strlen (serialno) );
   if (!para)
     {
@@ -4757,7 +4849,6 @@ generate_card_subkeypair (kbnode_t pub_keyblock,
       goto leave;
     }
 
-  algo = PUBKEY_ALGO_RSA;
   expire = ask_expire_interval (0, NULL);
   if (keyno == 1)
     use = PUBKEY_USAGE_SIG;
@@ -4774,7 +4865,7 @@ generate_card_subkeypair (kbnode_t pub_keyblock,
 
   /* Note, that depending on the backend, the card key generation may
      update CUR_TIME.  */
-  err = gen_card_key (algo, keyno, 0, pub_keyblock, &cur_time, expire);
+  err = gen_card_key (keyno, algo, 0, pub_keyblock, &cur_time, expire);
   /* Get the pointer to the generated public subkey packet.  */
   if (!err)
     {
@@ -4822,17 +4913,18 @@ write_keyblock( IOBUF out, KBNODE node )
 
 /* Note that timestamp is an in/out arg. */
 static gpg_error_t
-gen_card_key (int algo, int keyno, int is_primary, kbnode_t pub_root,
+gen_card_key (int keyno, int algo, int is_primary, kbnode_t pub_root,
               u32 *timestamp, u32 expireval)
 {
 #ifdef ENABLE_CARD_SUPPORT
   gpg_error_t err;
-  struct agent_card_genkey_s info;
   PACKET *pkt;
   PKT_public_key *pk;
+  char keyid[10];
+  unsigned char *public;
+  gcry_sexp_t s_key;
 
-  if (algo != PUBKEY_ALGO_RSA)
-    return gpg_error (GPG_ERR_PUBKEY_ALGO);
+  snprintf (keyid, DIM(keyid), "OPENPGP.%d", keyno);
 
   pk = xtrycalloc (1, sizeof *pk );
   if (!pk)
@@ -4845,7 +4937,7 @@ gen_card_key (int algo, int keyno, int is_primary, kbnode_t pub_root,
     }
 
   /* Note: SCD knows the serialnumber, thus there is no point in passing it.  */
-  err = agent_scd_genkey (&info, keyno, 1, NULL, *timestamp);
+  err = agent_scd_genkey (keyno, 1, timestamp);
   /*  The code below is not used because we force creation of
    *  the a card key (3rd arg).
    * if (gpg_err_code (rc) == GPG_ERR_EEXIST)
@@ -4855,16 +4947,9 @@ gen_card_key (int algo, int keyno, int is_primary, kbnode_t pub_root,
    *     tty_printf ("\n");
    *     if ( cpr_get_answer_is_yes( "keygen.card.replace_key",
    *                                 _("Replace existing key? ")))
-   *       rc = agent_scd_genkey (&info, keyno, 1);
+   *       rc = agent_scd_genkey (keyno, 1, timestamp);
    *   }
   */
-  if (!err && (!info.n || !info.e))
-    {
-      log_error ("communication error with SCD\n");
-      gcry_mpi_release (info.n);
-      gcry_mpi_release (info.e);
-      err =  gpg_error (GPG_ERR_GENERAL);
-    }
   if (err)
     {
       log_error ("key generation failed: %s\n", gpg_strerror (err));
@@ -4873,30 +4958,40 @@ gen_card_key (int algo, int keyno, int is_primary, kbnode_t pub_root,
       return err;
     }
 
-  /* Send the learn command so that the agent creates a shadow key for
+  /* Send the READKEY command so that the agent creates a shadow key for
      card key.  We need to do that now so that we are able to create
      the self-signatures. */
-  err = agent_scd_learn (NULL, 0);
+  err = agent_readkey (NULL, 1, keyid, &public);
+  if (err)
+    return err;
+  err = gcry_sexp_sscan (&s_key, NULL, public,
+                         gcry_sexp_canon_len (public, 0, NULL, NULL));
+  xfree (public);
+  if (err)
+    return err;
+
+  if (algo == PUBKEY_ALGO_RSA)
+    err = key_from_sexp (pk->pkey, s_key, "public-key", "ne");
+  else if (algo == PUBKEY_ALGO_ECDSA
+           || algo == PUBKEY_ALGO_EDDSA
+           || algo == PUBKEY_ALGO_ECDH )
+    err = ecckey_from_sexp (pk->pkey, s_key, algo);
+  else
+    err = gpg_error (GPG_ERR_PUBKEY_ALGO);
+  gcry_sexp_release (s_key);
+
   if (err)
     {
-      /* Oops: Card removed during generation.  */
-      log_error (_("OpenPGP card not available: %s\n"), gpg_strerror (err));
-      xfree (pkt);
-      xfree (pk);
+      log_error ("key_from_sexp failed: %s\n", gpg_strerror (err) );
+      free_public_key (pk);
       return err;
     }
 
-  if (*timestamp != info.created_at)
-    log_info ("NOTE: the key does not use the suggested creation date\n");
-  *timestamp = info.created_at;
-
-  pk->timestamp = info.created_at;
+  pk->timestamp = *timestamp;
   pk->version = 4;
   if (expireval)
     pk->expiredate = pk->timestamp + expireval;
   pk->pubkey_algo = algo;
-  pk->pkey[0] = info.n;
-  pk->pkey[1] = info.e;
 
   pkt->pkttype = is_primary ? PKT_PUBLIC_KEY : PKT_PUBLIC_SUBKEY;
   pkt->pkt.public_key = pk;
@@ -4904,7 +4999,6 @@ gen_card_key (int algo, int keyno, int is_primary, kbnode_t pub_root,
 
   return 0;
 #else
-  (void)algo;
   (void)keyno;
   (void)is_primary;
   (void)pub_root;
index 84990a3..dd098fd 100644 (file)
@@ -17,7 +17,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -403,6 +403,8 @@ keystr (u32 *keyid)
   static char keyid_str[KEYID_STR_SIZE];
   int format = opt.keyid_format;
 
+  if (format == KF_DEFAULT)
+    format = KF_NONE;
   if (format == KF_NONE)
     format = KF_LONG;
 
@@ -919,7 +921,7 @@ keygrip_from_pk (PKT_public_key *pk, unsigned char *array)
                                    pk->pubkey_algo == PUBKEY_ALGO_EDDSA?
                                    "(public-key(ecc(curve%s)(flags eddsa)(q%m)))":
                                    (pk->pubkey_algo == PUBKEY_ALGO_ECDH
-                                    && openpgp_oid_is_crv25519 (pk->pkey[0]))?
+                                    && openpgp_oid_is_cv25519 (pk->pkey[0]))?
                                    "(public-key(ecc(curve%s)(flags djb-tweak)(q%m)))":
                                    "(public-key(ecc(curve%s)(q%m)))",
                                    curve, pk->pkey[1]);
index 59344b2..0523be0 100644 (file)
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -650,7 +650,7 @@ locate_one (ctrl_t ctrl, strlist_t names)
 
   for (sl = names; sl; sl = sl->next)
     {
-      rc = get_pubkey_byname (ctrl, &ctx, NULL, sl->d, &keyblock, NULL, 1, 0);
+      rc = get_best_pubkey_byname (ctrl, &ctx, NULL, sl->d, &keyblock, 1, 0);
       if (rc)
        {
          if (gpg_err_code (rc) != GPG_ERR_NO_PUBKEY)
@@ -909,7 +909,7 @@ list_keyblock_print (ctrl_t ctrl, kbnode_t keyblock, int secret, int fpr,
   /* Print the "pub" line and in KF_NONE mode the fingerprint.  */
   print_key_line (es_stdout, pk, secret);
 
-  if (fpr && opt.keyid_format != KF_NONE)
+  if (fpr)
     print_fingerprint (NULL, pk, 0);
 
   if (opt.with_keygrip && hexgrip)
@@ -1183,9 +1183,10 @@ list_keyblock_colon (ctrl_t ctrl, kbnode_t keyblock,
   PKT_public_key *pk;
   u32 keyid[2];
   int trustletter = 0;
+  int trustletter_print;
+  int ownertrust_print;
   int ulti_hack = 0;
   int i;
-  char *p;
   char *hexgrip_buffer = NULL;
   const char *hexgrip = NULL;
   char *serialno = NULL;
@@ -1217,31 +1218,38 @@ list_keyblock_colon (ctrl_t ctrl, kbnode_t keyblock,
     stubkey = 1;  /* Key not found.  */
 
   keyid_from_pk (pk, keyid);
-  es_fputs (secret? "sec:":"pub:", es_stdout);
   if (!pk->flags.valid)
-    es_putc ('i', es_stdout);
+    trustletter_print = 'i';
   else if (pk->flags.revoked)
-    es_putc ('r', es_stdout);
+    trustletter_print = 'r';
   else if (pk->has_expired)
-    es_putc ('e', es_stdout);
+    trustletter_print = 'e';
   else if (opt.fast_list_mode || opt.no_expensive_trust_checks)
-    ;
+    trustletter_print = 0;
   else
     {
       trustletter = get_validity_info (ctrl, pk, NULL);
       if (trustletter == 'u')
         ulti_hack = 1;
-      es_putc (trustletter, es_stdout);
+      trustletter_print = trustletter;
     }
 
+  if (!opt.fast_list_mode && !opt.no_expensive_trust_checks)
+    ownertrust_print = get_ownertrust_info (pk);
+  else
+    ownertrust_print = 0;
+
+  es_fputs (secret? "sec:":"pub:", es_stdout);
+  if (trustletter_print)
+    es_putc (trustletter_print, es_stdout);
   es_fprintf (es_stdout, ":%u:%d:%08lX%08lX:%s:%s::",
           nbits_from_pk (pk),
           pk->pubkey_algo,
           (ulong) keyid[0], (ulong) keyid[1],
           colon_datestr_from_pk (pk), colon_strtime (pk->expiredate));
 
-  if (!opt.fast_list_mode && !opt.no_expensive_trust_checks)
-    es_putc (get_ownertrust_info (pk), es_stdout);
+  if (ownertrust_print)
+    es_putc (ownertrust_print, es_stdout);
   es_putc (':', es_stdout);
 
   es_putc (':', es_stdout);
@@ -1286,31 +1294,27 @@ list_keyblock_colon (ctrl_t ctrl, kbnode_t keyblock,
     {
       if (node->pkt->pkttype == PKT_USER_ID)
        {
-         char *str;
          PKT_user_id *uid = node->pkt->pkt.user_id;
+          int uid_validity;
+
+         if (attrib_fp && uid->attrib_data != NULL)
+           dump_attribs (uid, pk);
 
-         if (attrib_fp && node->pkt->pkt.user_id->attrib_data != NULL)
-           dump_attribs (node->pkt->pkt.user_id, pk);
-         /*
-          * Fixme: We need a valid flag here too
-          */
-         str = uid->attrib_data ? "uat" : "uid";
          if (uid->is_revoked)
-           es_fprintf (es_stdout, "%s:r::::", str);
+           uid_validity = 'r';
          else if (uid->is_expired)
-           es_fprintf (es_stdout, "%s:e::::", str);
+           uid_validity = 'e';
          else if (opt.no_expensive_trust_checks)
-           es_fprintf (es_stdout, "%s:::::", str);
-         else
-           {
-             int uid_validity;
+           uid_validity = 0;
+         else if (ulti_hack)
+            uid_validity = 'u';
+          else
+            uid_validity = get_validity_info (ctrl, pk, uid);
 
-             if (!ulti_hack)
-               uid_validity = get_validity_info (ctrl, pk, uid);
-             else
-               uid_validity = 'u';
-             es_fprintf (es_stdout, "%s:%c::::", str, uid_validity);
-           }
+          es_fputs (uid->attrib_data? "uat:":"uid:", es_stdout);
+          if (uid_validity)
+            es_putc (uid_validity, es_stdout);
+          es_fputs ("::::", es_stdout);
 
          es_fprintf (es_stdout, "%s:", colon_strtime (uid->created));
          es_fprintf (es_stdout, "%s:", colon_strtime (uid->expiredate));
@@ -1326,18 +1330,16 @@ list_keyblock_colon (ctrl_t ctrl, kbnode_t keyblock,
            es_fprintf (es_stdout, "%u %lu", uid->numattribs, uid->attrib_len);
          else
            es_write_sanitized (es_stdout, uid->name, uid->len, ":", NULL);
-         es_fprintf (es_stdout, "::::::::");
-         if (opt.trust_model == TM_TOFU || opt.trust_model == TM_TOFU_PGP)
-           {
-#ifdef USE_TOFU
-             enum tofu_policy policy;
-             if (! tofu_get_policy (ctrl, pk, uid, &policy)
-                 && policy != TOFU_POLICY_NONE)
-               es_fprintf (es_stdout, "%s", tofu_policy_str (policy));
-#endif /*USE_TOFU*/
-           }
          es_putc (':', es_stdout);
          es_putc ('\n', es_stdout);
+#ifdef USE_TOFU
+         if (!uid->attrib_data && opt.with_tofu_info
+              && (opt.trust_model == TM_TOFU || opt.trust_model == TM_TOFU_PGP))
+           {
+              /* Print a "tfs" record.  */
+              tofu_write_tfs_record (ctrl, es_stdout, pk, uid->name);
+           }
+#endif /*USE_TOFU*/
        }
       else if (node->pkt->pkttype == PKT_PUBLIC_SUBKEY)
        {
@@ -1425,6 +1427,8 @@ list_keyblock_colon (ctrl_t ctrl, kbnode_t keyblock,
          char *sigstr;
          size_t fplen;
          byte fparray[MAX_FINGERPRINT_LEN];
+          char *siguid;
+          size_t siguidlen;
 
          if (sig->sig_class == 0x20 || sig->sig_class == 0x28
              || sig->sig_class == 0x30)
@@ -1484,6 +1488,16 @@ list_keyblock_colon (ctrl_t ctrl, kbnode_t keyblock,
              rc = 0;
              sigrc = ' ';
            }
+
+         if (sigrc != '%' && sigrc != '?' && !opt.fast_list_mode)
+            siguid = get_user_id (sig->keyid, &siguidlen);
+          else
+            {
+              siguid = NULL;
+              siguidlen = 0;
+            }
+
+
          es_fputs (sigstr, es_stdout);
          es_putc (':', es_stdout);
          if (sigrc != ' ')
@@ -1504,17 +1518,11 @@ list_keyblock_colon (ctrl_t ctrl, kbnode_t keyblock,
 
          if (sigrc == '%')
            es_fprintf (es_stdout, "[%s] ", gpg_strerror (rc));
-         else if (sigrc == '?')
-           ;
-         else if (!opt.fast_list_mode)
-           {
-             size_t n;
-             p = get_user_id (sig->keyid, &n);
-             es_write_sanitized (es_stdout, p, n, ":", NULL);
-             xfree (p);
-           }
+         else if (siguid)
+            es_write_sanitized (es_stdout, siguid, siguidlen, ":", NULL);
+
          es_fprintf (es_stdout, ":%02x%c::", sig->sig_class,
-                 sig->flags.exportable ? 'x' : 'l');
+                      sig->flags.exportable ? 'x' : 'l');
 
          if (opt.no_sig_cache && opt.check_sigs && fprokay)
            {
@@ -1528,6 +1536,7 @@ list_keyblock_colon (ctrl_t ctrl, kbnode_t keyblock,
            print_subpackets_colon (sig);
 
          /* fixme: check or list other sigs here */
+          xfree (siguid);
        }
     }
 
@@ -1679,7 +1688,7 @@ print_fingerprint (estream_t override_fp, PKT_public_key *pk, int mode)
     }
 
   if (!opt.fingerprint && !opt.with_fingerprint
-      && opt.with_subkey_fingerprint && opt.keyid_format == KF_NONE)
+      && opt.with_subkey_fingerprint)
     compact = 1;
 
   if (pk->main_keyid[0] == pk->keyid[0]
@@ -1871,7 +1880,10 @@ print_key_line (estream_t fp, PKT_public_key *pk, int secret)
 
   tty_fprintf (fp, "\n");
 
-  if (pk->flags.primary && opt.keyid_format == KF_NONE)
+  /* if the user hasn't explicitly asked for human-readable
+     fingerprints, show compact fpr of primary key: */
+  if (pk->flags.primary &&
+      !opt.fingerprint && !opt.with_fingerprint)
     print_fingerprint (fp, pk, 20);
 }
 
index aa73290..f1281e9 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -1351,12 +1351,12 @@ rename_tmp_file (const char *bakfname, const char *tmpfname, const char *fname)
 
   /* First make a backup file. */
   block = 1;
-  rc = keybox_file_rename (fname, bakfname, &block);
+  rc = gnupg_rename_file (fname, bakfname, &block);
   if (rc)
     goto fail;
 
   /* then rename the file */
-  rc = keybox_file_rename (tmpfname, fname, NULL);
+  rc = gnupg_rename_file (tmpfname, fname, NULL);
   if (block)
     {
       gnupg_unblock_all_signals ();
index 14d9f42..07f3835 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GPG_KEYRING_H
index f57dcaa..77b362e 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef _KEYSERVER_INTERNAL_H_
@@ -35,9 +35,9 @@ int keyserver_any_configured (ctrl_t ctrl);
 int keyserver_export (ctrl_t ctrl, strlist_t users);
 int keyserver_import (ctrl_t ctrl, strlist_t users);
 int keyserver_import_fprint (ctrl_t ctrl, const byte *fprint,size_t fprint_len,
-                             struct keyserver_spec *keyserver);
+                             struct keyserver_spec *keyserver, int quick);
 int keyserver_import_keyid (ctrl_t ctrl, u32 *keyid,
-                            struct keyserver_spec *keyserver);
+                            struct keyserver_spec *keyserver, int quick);
 gpg_error_t keyserver_refresh (ctrl_t ctrl, strlist_t users);
 gpg_error_t keyserver_search (ctrl_t ctrl, strlist_t tokens);
 int keyserver_fetch (ctrl_t ctrl, strlist_t urilist);
@@ -45,7 +45,7 @@ int keyserver_import_cert (ctrl_t ctrl, const char *name, int dane_mode,
                            unsigned char **fpr,size_t *fpr_len);
 gpg_error_t keyserver_import_pka (ctrl_t ctrl, const char *name,
                                   unsigned char **fpr,size_t *fpr_len);
-gpg_error_t keyserver_import_wkd (ctrl_t ctrl, const char *name,
+gpg_error_t keyserver_import_wkd (ctrl_t ctrl, const char *name, int quick,
                                   unsigned char **fpr, size_t *fpr_len);
 int keyserver_import_name (ctrl_t ctrl,
                            const char *name,unsigned char **fpr,size_t *fpr_len,
index 2e2d6a4..9148e7d 100644 (file)
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -41,6 +41,7 @@
 #include "keyserver-internal.h"
 #include "util.h"
 #include "membuf.h"
+#include "mbox-util.h"
 #include "call-dirmngr.h"
 
 #ifdef HAVE_W32_SYSTEM
@@ -107,6 +108,7 @@ static struct parse_options keyserver_opts[]=
 static gpg_error_t keyserver_get (ctrl_t ctrl,
                                   KEYDB_SEARCH_DESC *desc, int ndesc,
                                   struct keyserver_spec *override_keyserver,
+                                  int quick,
                                   unsigned char **r_fpr, size_t *r_fprlen);
 static gpg_error_t keyserver_put (ctrl_t ctrl, strlist_t keyspecs);
 
@@ -792,7 +794,7 @@ show_prompt (ctrl_t ctrl, KEYDB_SEARCH_DESC *desc, int numdesc,
           }
         for (idx = 0; idx < numidx; idx++)
           selarray[idx] = desc[numarray[idx]-1];
-        err = keyserver_get (ctrl, selarray, numidx, NULL, NULL, NULL);
+        err = keyserver_get (ctrl, selarray, numidx, NULL, 0, NULL, NULL);
         xfree (selarray);
       }
     }
@@ -1124,7 +1126,7 @@ keyserver_import (ctrl_t ctrl, strlist_t users)
     }
 
   if(count>0)
-    rc=keyserver_get (ctrl, desc, count, NULL, NULL, NULL);
+    rc = keyserver_get (ctrl, desc, count, NULL, 0, NULL, NULL);
 
   xfree(desc);
 
@@ -1153,13 +1155,13 @@ keyserver_import_name (ctrl_t ctrl, const char *name,
   desc.mode = KEYDB_SEARCH_MODE_EXACT;
   desc.u.name = name;
 
-  return keyserver_get (ctrl, &desc, 1, keyserver, fpr, fprlen);
+  return keyserver_get (ctrl, &desc, 1, keyserver, 0, fpr, fprlen);
 }
 
 
 int
 keyserver_import_fprint (ctrl_t ctrl, const byte *fprint,size_t fprint_len,
-                        struct keyserver_spec *keyserver)
+                        struct keyserver_spec *keyserver, int quick)
 {
   KEYDB_SEARCH_DESC desc;
 
@@ -1176,12 +1178,12 @@ keyserver_import_fprint (ctrl_t ctrl, const byte *fprint,size_t fprint_len,
 
   /* TODO: Warn here if the fingerprint we got doesn't match the one
      we asked for? */
-  return keyserver_get (ctrl, &desc, 1, keyserver, NULL, NULL);
+  return keyserver_get (ctrl, &desc, 1, keyserver, quick, NULL, NULL);
 }
 
 int
 keyserver_import_keyid (ctrl_t ctrl,
-                        u32 *keyid,struct keyserver_spec *keyserver)
+                        u32 *keyid,struct keyserver_spec *keyserver, int quick)
 {
   KEYDB_SEARCH_DESC desc;
 
@@ -1191,7 +1193,7 @@ keyserver_import_keyid (ctrl_t ctrl,
   desc.u.kid[0]=keyid[0];
   desc.u.kid[1]=keyid[1];
 
-  return keyserver_get (ctrl, &desc,1, keyserver, NULL, NULL);
+  return keyserver_get (ctrl, &desc, 1, keyserver, quick, NULL, NULL);
 }
 
 /* code mostly stolen from do_export_stream */
@@ -1421,7 +1423,7 @@ keyserver_refresh (ctrl_t ctrl, strlist_t users)
              /* We use the keyserver structure we parsed out before.
                 Note that a preferred keyserver without a scheme://
                 will be interpreted as hkp:// */
-             err = keyserver_get (ctrl, &desc[i], 1, keyserver, NULL, NULL);
+             err = keyserver_get (ctrl, &desc[i], 1, keyserver, 0, NULL, NULL);
              if (err)
                log_info(_("WARNING: unable to refresh key %s"
                           " via %s: %s\n"),keystr_from_desc(&desc[i]),
@@ -1455,7 +1457,7 @@ keyserver_refresh (ctrl_t ctrl, strlist_t users)
             }
           xfree (tmpuri);
 
-          err = keyserver_get (ctrl, desc, numdesc, NULL, NULL, NULL);
+          err = keyserver_get (ctrl, desc, numdesc, NULL, 0, NULL, NULL);
         }
     }
 
@@ -1580,6 +1582,7 @@ keyserver_get_chunk (ctrl_t ctrl, KEYDB_SEARCH_DESC *desc, int ndesc,
                      int *r_ndesc_used,
                      import_stats_t stats_handle,
                      struct keyserver_spec *override_keyserver,
+                     int quick,
                      unsigned char **r_fpr, size_t *r_fprlen)
 
 {
@@ -1603,11 +1606,11 @@ keyserver_get_chunk (ctrl_t ctrl, KEYDB_SEARCH_DESC *desc, int ndesc,
 
   /* Note that we break the loop as soon as our estimation of the to
      be used line length reaches the limit.  But we do this only if we
-     have processed at leas one search requests so that an overlong
+     have processed at least one search requests so that an overlong
      single request will be rejected only later by gpg_dirmngr_ks_get
      but we are sure that R_NDESC_USED has been updated.  This avoids
      a possible indefinite loop.  */
-  linelen = 9; /* "KS_GET --" */
+  linelen = 17; /* "KS_GET --quick --" */
   for (npat=idx=0; idx < ndesc; idx++)
     {
       int quiet = 0;
@@ -1711,7 +1714,7 @@ keyserver_get_chunk (ctrl_t ctrl, KEYDB_SEARCH_DESC *desc, int ndesc,
      this is different from NPAT.  */
   *r_ndesc_used = idx;
 
-  err = gpg_dirmngr_ks_get (ctrl, pattern, override_keyserver,
+  err = gpg_dirmngr_ks_get (ctrl, pattern, override_keyserver, quick,
                             &datastream, &source);
   for (idx=0; idx < npat; idx++)
     xfree (pattern[idx]);
@@ -1754,10 +1757,11 @@ keyserver_get_chunk (ctrl_t ctrl, KEYDB_SEARCH_DESC *desc, int ndesc,
    (DESC,NDESC).  Allowed search modes are keyid, fingerprint, and
    exact searches.  OVERRIDE_KEYSERVER gives an optional override
    keyserver. If (R_FPR,R_FPRLEN) are not NULL, they may return the
-   fingerprint of a single imported key.  */
+   fingerprint of a single imported key.  If QUICK is set, dirmngr is
+   advised to use a shorter timeout. */
 static gpg_error_t
 keyserver_get (ctrl_t ctrl, KEYDB_SEARCH_DESC *desc, int ndesc,
-               struct keyserver_spec *override_keyserver,
+               struct keyserver_spec *override_keyserver, int quick,
                unsigned char **r_fpr, size_t *r_fprlen)
 {
   gpg_error_t err;
@@ -1770,7 +1774,7 @@ keyserver_get (ctrl_t ctrl, KEYDB_SEARCH_DESC *desc, int ndesc,
   for (;;)
     {
       err = keyserver_get_chunk (ctrl, desc, ndesc, &ndesc_used, stats_handle,
-                                 override_keyserver, r_fpr, r_fprlen);
+                                 override_keyserver, quick, r_fpr, r_fprlen);
       if (!err)
         any_good = 1;
       if (err || ndesc_used >= ndesc)
@@ -1945,7 +1949,7 @@ keyserver_import_cert (ctrl_t ctrl, const char *name, int dane_mode,
          spec = parse_keyserver_uri (url, 1);
          if(spec)
            {
-             err = keyserver_import_fprint (ctrl, *fpr,*fpr_len,spec);
+             err = keyserver_import_fprint (ctrl, *fpr, *fpr_len, spec, 0);
              free_keyserver_spec(spec);
            }
        }
@@ -1954,7 +1958,8 @@ keyserver_import_cert (ctrl_t ctrl, const char *name, int dane_mode,
          /* If only a fingerprint is provided, try and fetch it from
             the configured keyserver. */
 
-         err = keyserver_import_fprint (ctrl, *fpr,*fpr_len,opt.keyserver);
+         err = keyserver_import_fprint (ctrl,
+                                         *fpr, *fpr_len, opt.keyserver, 0);
        }
       else
        log_info(_("no keyserver known\n"));
@@ -1988,7 +1993,7 @@ keyserver_import_pka (ctrl_t ctrl, const char *name,
       spec = parse_keyserver_uri (url, 1);
       if (spec)
        {
-         err = keyserver_import_fprint (ctrl, *fpr, *fpr_len, spec);
+         err = keyserver_import_fprint (ctrl, *fpr, *fpr_len, spec, 0);
          free_keyserver_spec (spec);
        }
     }
@@ -2007,33 +2012,59 @@ keyserver_import_pka (ctrl_t ctrl, const char *name,
 
 /* Import a key using the Web Key Directory protocol.  */
 gpg_error_t
-keyserver_import_wkd (ctrl_t ctrl, const char *name,
+keyserver_import_wkd (ctrl_t ctrl, const char *name, int quick,
                       unsigned char **fpr, size_t *fpr_len)
 {
   gpg_error_t err;
+  char *mbox;
   estream_t key;
 
-  err = gpg_dirmngr_wkd_get (ctrl, name, &key);
+  /* We want to work on the mbox.  That is what dirmngr will do anyway
+   * and we need the mbox for the import filter anyway.  */
+  mbox = mailbox_from_userid (name);
+  if (!mbox)
+    {
+      err = gpg_error_from_syserror ();
+      if (gpg_err_code (err) == GPG_ERR_EINVAL)
+        err = gpg_error (GPG_ERR_INV_USER_ID);
+      return err;
+    }
+
+  err = gpg_dirmngr_wkd_get (ctrl, mbox, quick, &key);
   if (err)
     ;
   else if (key)
     {
       int armor_status = opt.no_armor;
+      import_filter_t save_filt;
 
       /* Keys returned via WKD are in binary format. */
       opt.no_armor = 1;
+      save_filt = save_and_clear_import_filter ();
+      if (!save_filt)
+        err = gpg_error_from_syserror ();
+      else
+        {
+          char *filtstr = es_bsprintf ("keep-uid=mbox = %s", mbox);
+          err = filtstr? 0 : gpg_error_from_syserror ();
+          if (!err)
+            err = parse_and_set_import_filter (filtstr);
+          xfree (filtstr);
+          if (!err)
+            err = import_keys_es_stream (ctrl, key, NULL, fpr, fpr_len,
+                                         IMPORT_NO_SECKEY,
+                                         NULL, NULL);
 
-      err = import_keys_es_stream (ctrl, key, NULL, fpr, fpr_len,
-                                   (opt.keyserver_options.import_options
-                                    | IMPORT_NO_SECKEY),
-                                   NULL, NULL);
+        }
 
+      restore_import_filter (save_filt);
       opt.no_armor = armor_status;
 
       es_fclose (key);
       key = NULL;
     }
 
+  xfree (mbox);
   return err;
 }
 
index 0956f66..63aec47 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 #ifndef G10_MAIN_H
 #define G10_MAIN_H
@@ -191,6 +191,8 @@ void write_status_error (const char *where, gpg_error_t err);
 void write_status_errcode (const char *where, int errcode);
 void write_status_failure (const char *where, gpg_error_t err);
 void write_status_text ( int no, const char *text );
+void write_status_printf (int no, const char *format,
+                          ...) GPGRT_ATTR_PRINTF(2,3);
 void write_status_strings (int no, const char *text,
                            ...) GPGRT_ATTR_SENTINEL(0);
 void write_status_buffer ( int no,
@@ -346,10 +348,16 @@ gcry_mpi_t encode_md_value (PKT_public_key *pk,
 /*-- import.c --*/
 struct import_stats_s;
 typedef struct import_stats_s *import_stats_t;
+struct import_filter_s;
+typedef struct import_filter_s *import_filter_t;
 typedef gpg_error_t (*import_screener_t)(kbnode_t keyblock, void *arg);
 
 int parse_import_options(char *str,unsigned int *options,int noisy);
+
 gpg_error_t parse_and_set_import_filter (const char *string);
+import_filter_t save_and_clear_import_filter (void);
+void            restore_import_filter (import_filter_t filt);
+
 gpg_error_t read_key_from_file (ctrl_t ctrl, const char *fname,
                                 kbnode_t *r_keyblock);
 void import_keys (ctrl_t ctrl, char **fnames, int nnames,
@@ -366,6 +374,7 @@ gpg_error_t import_old_secring (ctrl_t ctrl, const char *fname);
 import_stats_t import_new_stats_handle (void);
 void import_release_stats_handle (import_stats_t hd);
 void import_print_stats (import_stats_t hd);
+const char *impex_filter_getval (void *cookie, const char *propname);
 gpg_error_t transfer_secret_keys (ctrl_t ctrl, struct import_stats_s *stats,
                                   kbnode_t sec_keyblock, int batch, int force);
 
index 3d3f88b..c1819f0 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -757,7 +757,12 @@ proc_plaintext( CTX c, PACKET *pkt )
 
   if (!rc)
     {
-      rc = handle_plaintext (pt, &c->mfx, c->sigs_only, clearsig);
+      /* It we are in --verify mode, we do not want to output the
+       * signed text.  However, if --output is also used we do what
+       * has been requested and write out the signed data.  */
+      rc = handle_plaintext (pt, &c->mfx,
+                             (opt.outfp || opt.outfile)? 0 :  c->sigs_only,
+                             clearsig);
       if (gpg_err_code (rc) == GPG_ERR_EACCES && !c->sigs_only)
         {
           /* Can't write output but we hash it anyway to check the
@@ -839,12 +844,13 @@ proc_compressed (CTX c, PACKET *pkt)
 
 
 /*
- * check the signature
- * Returns: 0 = valid signature or an error code
+ * Check the signature.  If R_PK is not NULL a copy of the public key
+ * used to verify the signature will be stored tehre, or NULL if not
+ * found.  Returns: 0 = valid signature or an error code
  */
 static int
 do_check_sig (CTX c, kbnode_t node, int *is_selfsig,
-             int *is_expkey, int *is_revkey)
+             int *is_expkey, int *is_revkey, PKT_public_key **r_pk)
 {
   PKT_signature *sig;
   gcry_md_hd_t md = NULL;
@@ -852,6 +858,9 @@ do_check_sig (CTX c, kbnode_t node, int *is_selfsig,
   gcry_md_hd_t md_good = NULL;
   int algo, rc;
 
+  if (r_pk)
+    *r_pk = NULL;
+
   log_assert (node->pkt->pkttype == PKT_SIGNATURE);
   if (is_selfsig)
     *is_selfsig = 0;
@@ -926,19 +935,29 @@ do_check_sig (CTX c, kbnode_t node, int *is_selfsig,
 
   /* We only get here if we are checking the signature of a binary
      (0x00) or text document (0x01).  */
-  rc = check_signature2 (sig, md, NULL, is_expkey, is_revkey, NULL);
+  rc = check_signature2 (sig, md, NULL, is_expkey, is_revkey, r_pk);
   if (! rc)
     md_good = md;
   else if (gpg_err_code (rc) == GPG_ERR_BAD_SIGNATURE && md2)
     {
-      rc = check_signature2 (sig, md2, NULL, is_expkey, is_revkey, NULL);
-      if (! rc)
-       md_good = md2;
+      PKT_public_key *pk2;
+
+      rc = check_signature2 (sig, md2, NULL, is_expkey, is_revkey,
+                             r_pk? &pk2 : NULL);
+      if (!rc)
+        {
+          md_good = md2;
+          if (r_pk)
+            {
+              free_public_key (*r_pk);
+              *r_pk = pk2;
+            }
+        }
     }
 
   if (md_good)
     {
-      unsigned char *buffer = gcry_md_read (md_good, 0);
+      unsigned char *buffer = gcry_md_read (md_good, sig->digest_algo);
       sig->digest_len = gcry_md_get_algo_dlen (map_md_openpgp_to_gcry (algo));
       memcpy (sig->digest, buffer, sig->digest_len);
     }
@@ -1096,7 +1115,7 @@ list_node (CTX c, kbnode_t node)
       if (opt.check_sigs)
         {
           fflush (stdout);
-          rc2 = do_check_sig (c, node, &is_selfsig, NULL, NULL);
+          rc2 = do_check_sig (c, node, &is_selfsig, NULL, NULL, NULL);
           switch (gpg_err_code (rc2))
             {
             case 0:                      sigrc = '!'; break;
@@ -1603,10 +1622,8 @@ check_sig_and_print (CTX c, kbnode_t node)
   int rc;
   int is_expkey = 0;
   int is_revkey = 0;
-  char pkstrbuf[PUBKEY_STRING_SIZE];
   char *issuer_fpr;
-
-  *pkstrbuf = 0;
+  PKT_public_key *pk = NULL;  /* The public key for the signature or NULL. */
 
   if (opt.skip_verify)
     {
@@ -1731,7 +1748,7 @@ check_sig_and_print (CTX c, kbnode_t node)
     write_status_text (STATUS_NEWSIG, NULL);
 
   astr = openpgp_pk_algo_name ( sig->pubkey_algo );
-  if (opt.flags.rfc4880bis && (issuer_fpr = issuer_fpr_string (sig)))
+  if ((issuer_fpr = issuer_fpr_string (sig)))
     {
       log_info (_("Signature made %s\n"), asctimestamp(sig->timestamp));
       log_info (_("               using %s key %s\n"),
@@ -1754,7 +1771,7 @@ check_sig_and_print (CTX c, kbnode_t node)
   if (sig->signers_uid)
     log_info (_("               issuer \"%s\"\n"), sig->signers_uid);
 
-  rc = do_check_sig (c, node, NULL, &is_expkey, &is_revkey );
+  rc = do_check_sig (c, node, NULL, &is_expkey, &is_revkey, &pk);
 
   /* If the key isn't found, check for a preferred keyserver.  */
   if (gpg_err_code (rc) == GPG_ERR_NO_PUBKEY && sig->flags.pref_ks)
@@ -1783,11 +1800,14 @@ check_sig_and_print (CTX c, kbnode_t node)
                 {
                   int res;
 
+                  free_public_key (pk);
+                  pk = NULL;
                   glo_ctrl.in_auto_key_retrieve++;
-                  res = keyserver_import_keyid (c->ctrl, sig->keyid,spec);
+                  res = keyserver_import_keyid (c->ctrl, sig->keyid,spec, 1);
                   glo_ctrl.in_auto_key_retrieve--;
                   if (!res)
-                    rc = do_check_sig(c, node, NULL, &is_expkey, &is_revkey );
+                    rc = do_check_sig (c, node, NULL,
+                                       &is_expkey, &is_revkey, &pk);
                   free_keyserver_spec (spec);
 
                   if (!rc)
@@ -1815,24 +1835,24 @@ check_sig_and_print (CTX c, kbnode_t node)
           spec = parse_keyserver_uri (uri, 1);
           if (spec)
             {
+              free_public_key (pk);
+              pk = NULL;
               glo_ctrl.in_auto_key_retrieve++;
-              res = keyserver_import_keyid (c->ctrl, sig->keyid, spec);
+              res = keyserver_import_keyid (c->ctrl, sig->keyid, spec, 1);
               glo_ctrl.in_auto_key_retrieve--;
               free_keyserver_spec (spec);
               if (!res)
-                rc = do_check_sig (c, node, NULL, &is_expkey, &is_revkey );
+                rc = do_check_sig (c, node, NULL, &is_expkey, &is_revkey, &pk);
             }
         }
     }
 
-  /* If the above methods didn't work, our next try is to use locate
+  /* If the above methods didn't work, our next try is to locate
    * the key via its fingerprint from a keyserver.  This requires
    * that the signers fingerprint is encoded in the signature.  We
    * favor this over the WKD method (to be tried next), because an
-   * arbitrary keyserver is less subject to web bug like
-   * monitoring.  */
+   * arbitrary keyserver is less subject to web bug like monitoring.  */
   if (gpg_err_code (rc) == GPG_ERR_NO_PUBKEY
-      && opt.flags.rfc4880bis
       && (opt.keyserver_options.options&KEYSERVER_AUTO_KEY_RETRIEVE)
       && keyserver_any_configured (c->ctrl))
     {
@@ -1844,11 +1864,13 @@ check_sig_and_print (CTX c, kbnode_t node)
       if (p && n == 21 && p[0] == 4)
         {
           /* v4 packet with a SHA-1 fingerprint.  */
+          free_public_key (pk);
+          pk = NULL;
           glo_ctrl.in_auto_key_retrieve++;
-          res = keyserver_import_fprint (c->ctrl, p+1, n-1, opt.keyserver);
+          res = keyserver_import_fprint (c->ctrl, p+1, n-1, opt.keyserver, 1);
           glo_ctrl.in_auto_key_retrieve--;
           if (!res)
-            rc = do_check_sig (c, node, NULL, &is_expkey, &is_revkey );
+            rc = do_check_sig (c, node, NULL, &is_expkey, &is_revkey, &pk);
         }
     }
 
@@ -1862,13 +1884,15 @@ check_sig_and_print (CTX c, kbnode_t node)
     {
       int res;
 
+      free_public_key (pk);
+      pk = NULL;
       glo_ctrl.in_auto_key_retrieve++;
-      res = keyserver_import_wkd (c->ctrl, sig->signers_uid, NULL, NULL);
+      res = keyserver_import_wkd (c->ctrl, sig->signers_uid, 1, NULL, NULL);
       glo_ctrl.in_auto_key_retrieve--;
       /* Fixme: If the fingerprint is embedded in the signature,
        * compare it to the fingerprint of the returned key.  */
       if (!res)
-        rc = do_check_sig (c, node, NULL, &is_expkey, &is_revkey );
+        rc = do_check_sig (c, node, NULL, &is_expkey, &is_revkey, &pk);
     }
 
   /* If the above methods did't work, our next try is to use a
@@ -1879,11 +1903,13 @@ check_sig_and_print (CTX c, kbnode_t node)
     {
       int res;
 
+      free_public_key (pk);
+      pk = NULL;
       glo_ctrl.in_auto_key_retrieve++;
-      res = keyserver_import_keyid (c->ctrl, sig->keyid, opt.keyserver );
+      res = keyserver_import_keyid (c->ctrl, sig->keyid, opt.keyserver, 1);
       glo_ctrl.in_auto_key_retrieve--;
       if (!res)
-        rc = do_check_sig (c, node, NULL, &is_expkey, &is_revkey );
+        rc = do_check_sig (c, node, NULL, &is_expkey, &is_revkey, &pk);
     }
 
   if (!rc || gpg_err_code (rc) == GPG_ERR_BAD_SIGNATURE)
@@ -1892,7 +1918,7 @@ check_sig_and_print (CTX c, kbnode_t node)
       int count = 0;
       int statno;
       char keyid_str[50];
-      PKT_public_key *pk = NULL;
+      PKT_public_key *mainpk = NULL;
 
       if (rc)
         statno = STATUS_BADSIG;
@@ -1905,6 +1931,10 @@ check_sig_and_print (CTX c, kbnode_t node)
       else
         statno = STATUS_GOODSIG;
 
+      /* FIXME: We should have the public key in PK and thus the
+       * keyboock has already been fetched.  Thus we could use the
+       * fingerprint or PK itself to lookup the entire keyblock.  That
+       * would best be done with a cache.  */
       keyblock = get_pubkeyblock (sig->keyid);
 
       snprintf (keyid_str, sizeof keyid_str, "%08lX%08lX [uncertain] ",
@@ -1918,7 +1948,7 @@ check_sig_and_print (CTX c, kbnode_t node)
 
           if (un->pkt->pkttype==PKT_PUBLIC_KEY)
             {
-              pk=un->pkt->pkt.public_key;
+              mainpk = un->pkt->pkt.public_key;
               continue;
             }
           if (un->pkt->pkttype != PKT_USER_ID)
@@ -1935,7 +1965,7 @@ check_sig_and_print (CTX c, kbnode_t node)
           if (un->pkt->pkt.user_id->attrib_data)
             continue;
 
-          log_assert (pk);
+          log_assert (mainpk);
 
          /* Since this is just informational, don't actually ask the
             user to update any trust information.  (Note: we register
@@ -1943,7 +1973,8 @@ check_sig_and_print (CTX c, kbnode_t node)
             does not print a LF we need to compute the validity
             before calling that function.  */
           if ((opt.verify_options & VERIFY_SHOW_UID_VALIDITY))
-            valid = get_validity (c->ctrl, pk, un->pkt->pkt.user_id, NULL, 0);
+            valid = get_validity (c->ctrl, mainpk, un->pkt->pkt.user_id,
+                                  NULL, 0);
           else
             valid = 0; /* Not used.  */
 
@@ -1956,13 +1987,11 @@ check_sig_and_print (CTX c, kbnode_t node)
           else
             log_printf ("\n");
 
-          /* Get a string description of the algo for informational
-             output we want to print later.  It is convenient to do it
-             here because we already have the right public key. */
-          pubkey_string (pk, pkstrbuf, sizeof pkstrbuf);
           count++;
        }
 
+      log_assert (mainpk);
+
       /* In case we did not found a valid valid textual userid above
          we print the first user id packet or a "[?]" instead along
          with the "Good|Expired|Bad signature" line.  */
@@ -2019,13 +2048,13 @@ check_sig_and_print (CTX c, kbnode_t node)
               /* If this user id has attribute data, print that.  */
               if (un->pkt->pkt.user_id->attrib_data)
                 {
-                  dump_attribs (un->pkt->pkt.user_id, pk);
+                  dump_attribs (un->pkt->pkt.user_id, mainpk);
 
                   if (opt.verify_options&VERIFY_SHOW_PHOTOS)
                     show_photos (c->ctrl,
                                  un->pkt->pkt.user_id->attribs,
                                  un->pkt->pkt.user_id->numattribs,
-                                 pk ,un->pkt->pkt.user_id);
+                                 mainpk ,un->pkt->pkt.user_id);
                 }
 
               p = utf8_to_native (un->pkt->pkt.user_id->name,
@@ -2046,15 +2075,14 @@ check_sig_and_print (CTX c, kbnode_t node)
                       actually ask the user to update any trust
                       information.  */
                     valid = (trust_value_to_string
-                             (get_validity (c->ctrl, pk,
-                                            un->pkt->pkt.user_id, sig, 0)));
+                             (get_validity (c->ctrl, mainpk,
+                                            un->pkt->pkt.user_id, NULL, 0)));
                   log_printf (" [%s]\n",valid);
                 }
               else
                 log_printf ("\n");
             }
        }
-      release_kbnode( keyblock );
 
       /* For good signatures print notation data.  */
       if (!rc)
@@ -2079,53 +2107,26 @@ check_sig_and_print (CTX c, kbnode_t node)
         }
 
       /* For good signatures print the VALIDSIG status line.  */
-      if (!rc && is_status_enabled ())
+      if (!rc && is_status_enabled () && pk)
         {
-          PKT_public_key *vpk = xmalloc_clear (sizeof *vpk);
-
-          if (!get_pubkey (vpk, sig->keyid))
-            {
-              byte array[MAX_FINGERPRINT_LEN], *p;
-              char buf[MAX_FINGERPRINT_LEN*4+90], *bufp;
-              size_t i, n;
-
-              bufp = buf;
-              fingerprint_from_pk (vpk, array, &n);
-              p = array;
-              for(i=0; i < n ; i++, p++, bufp += 2)
-                sprintf (bufp, "%02X", *p );
-              /* TODO: Replace the reserved '0' in the field below
-                 with bits for status flags (policy url, notation,
-                 etc.).  Remember to make the buffer larger to match! */
-              sprintf (bufp, " %s %lu %lu %d 0 %d %d %02X ",
-                       strtimestamp( sig->timestamp ),
-                       (ulong)sig->timestamp,(ulong)sig->expiredate,
-                       sig->version,sig->pubkey_algo,sig->digest_algo,
-                       sig->sig_class);
-              bufp = bufp + strlen (bufp);
-              if (!vpk->flags.primary)
-                {
-                  u32 akid[2];
-
-                  akid[0] = vpk->main_keyid[0];
-                  akid[1] = vpk->main_keyid[1];
-                  free_public_key (vpk);
-                  vpk = xmalloc_clear (sizeof *vpk);
-                  if (get_pubkey (vpk, akid))
-                    {
-                      /* Impossible error, we simply return a zeroed out fpr */
-                      n = MAX_FINGERPRINT_LEN < 20? MAX_FINGERPRINT_LEN : 20;
-                      memset (array, 0, n);
-                    }
-                  else
-                    fingerprint_from_pk( vpk, array, &n );
-                }
-              p = array;
-              for (i=0; i < n ; i++, p++, bufp += 2)
-                sprintf(bufp, "%02X", *p );
-              write_status_text (STATUS_VALIDSIG, buf);
-           }
-          free_public_key (vpk);
+          char pkhex[MAX_FINGERPRINT_LEN*2+1];
+          char mainpkhex[MAX_FINGERPRINT_LEN*2+1];
+
+          hexfingerprint (pk, pkhex, sizeof pkhex);
+          hexfingerprint (mainpk, mainpkhex, sizeof mainpkhex);
+
+          /* TODO: Replace the reserved '0' in the field below with
+             bits for status flags (policy url, notation, etc.).  */
+          write_status_printf (STATUS_VALIDSIG,
+                               "%s %s %lu %lu %d 0 %d %d %02X %s",
+                               pkhex,
+                               strtimestamp (sig->timestamp),
+                               (ulong)sig->timestamp,
+                               (ulong)sig->expiredate,
+                               sig->version, sig->pubkey_algo,
+                               sig->digest_algo,
+                               sig->sig_class,
+                               mainpkhex);
        }
 
       /* For good signatures compute and print the trust information.
@@ -2148,12 +2149,20 @@ check_sig_and_print (CTX c, kbnode_t node)
         log_info (_("Signature expires %s\n"), asctimestamp(sig->expiredate));
 
       if (opt.verbose)
-        log_info (_("%s signature, digest algorithm %s%s%s\n"),
-                  sig->sig_class==0x00?_("binary"):
-                  sig->sig_class==0x01?_("textmode"):_("unknown"),
-                  gcry_md_algo_name (sig->digest_algo),
-                  *pkstrbuf?_(", key algorithm "):"",
-                  pkstrbuf);
+        {
+          char pkstrbuf[PUBKEY_STRING_SIZE];
+
+          if (pk)
+            pubkey_string (pk, pkstrbuf, sizeof pkstrbuf);
+          else
+            *pkstrbuf = 0;
+
+          log_info (_("%s signature, digest algorithm %s%s%s\n"),
+                    sig->sig_class==0x00?_("binary"):
+                    sig->sig_class==0x01?_("textmode"):_("unknown"),
+                    gcry_md_algo_name (sig->digest_algo),
+                    *pkstrbuf?_(", key algorithm "):"", pkstrbuf);
+        }
 
       /* Print final warnings.  */
       if (!rc && !c->signed_data.used)
@@ -2194,6 +2203,9 @@ check_sig_and_print (CTX c, kbnode_t node)
             }
         }
 
+      free_public_key (pk);
+      pk = NULL;
+      release_kbnode( keyblock );
       if (rc)
         g10_errors_seen = 1;
       if (opt.batch && rc)
@@ -2235,7 +2247,7 @@ proc_tree (CTX c, kbnode_t node)
 
   /* We must skip our special plaintext marker packets here because
      they may be the root packet.  These packets are only used in
-     addional checks and skipping them here doesn't matter.  */
+     additional checks and skipping them here doesn't matter.  */
   while (node
          && node->pkt->pkttype == PKT_GPG_CONTROL
           && node->pkt->pkt.gpg_control->control == CTRLPKT_PLAINTEXT_MARK)
@@ -2348,11 +2360,16 @@ proc_tree (CTX c, kbnode_t node)
           for (; n1; (n1 = find_next_kbnode(n1, PKT_SIGNATURE)))
             {
               /* We can't currently handle multiple signatures of
-                 different classes or digests (we'd pretty much have
-                 to run a different hash context for each), but if
-                 they are all the same, make an exception. */
+               * different classes (we'd pretty much have to run a
+               * different hash context for each), but if they are all
+               * the same and it is detached signature, we make an
+               * exception.  Note that the old code also disallowed
+               * multiple signatures if the digest algorithms are
+               * different.  We softened this restriction only for
+               * detached signatures, to be on the safe side. */
               if (n1->pkt->pkt.signature->sig_class != class
-                  || n1->pkt->pkt.signature->digest_algo != hash)
+                  || (c->any.data
+                      && n1->pkt->pkt.signature->digest_algo != hash))
                 {
                   multiple_ok = 0;
                   log_info (_("WARNING: multiple signatures detected.  "
@@ -2374,6 +2391,17 @@ proc_tree (CTX c, kbnode_t node)
           if (rc)
             goto detached_hash_err;
 
+          if (multiple_ok)
+            {
+              /* If we have and want to handle multiple signatures we
+               * need to enable all hash algorithms for the context.  */
+              for (n1 = node; (n1 = find_next_kbnode (n1, PKT_SIGNATURE)); )
+                if (!openpgp_md_test_algo (n1->pkt->pkt.signature->digest_algo))
+                  gcry_md_enable (c->mfx.md,
+                                  map_md_openpgp_to_gcry
+                                  (n1->pkt->pkt.signature->digest_algo));
+            }
+
           if (RFC2440 || RFC4880)
             ; /* Strict RFC mode.  */
           else if (sig->digest_algo == DIGEST_ALGO_SHA1
@@ -2381,7 +2409,9 @@ proc_tree (CTX c, kbnode_t node)
                    && sig->sig_class == 0x01)
             {
               /* Enable a workaround for a pgp5 bug when the detached
-               * signature has been created in textmode.  */
+               * signature has been created in textmode.  Note that we
+               * do not implement this for multiple signatures with
+               * different hash algorithms. */
               rc = gcry_md_open (&c->mfx.md2, sig->digest_algo, 0);
               if (rc)
                 goto detached_hash_err;
index 0dbbc3c..69b226c 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index a9da5a0..6ff1014 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index d2537cf..4b9ad99 100644 (file)
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -1252,6 +1252,7 @@ compliance_option_string(void)
     case CO_PGP6:    return "--pgp6";
     case CO_PGP7:    return "--pgp7";
     case CO_PGP8:    return "--pgp8";
+    case CO_DE_VS:   return "--compliance=de-vs";
     }
 
   return ver;
@@ -1287,6 +1288,10 @@ compliance_failure(void)
     case CO_PGP8:
       ver="PGP 8.x";
       break;
+
+    case CO_DE_VS:
+      ver="DE-VS applications";
+      break;
     }
 
   log_info(_("this message may not be usable by %s\n"),ver);
index 006ff35..f62deec 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -148,9 +148,9 @@ ask_outfile_name( const char *name, size_t namelen )
   n = strlen(s) + (defname?strlen (defname):0) + 10;
   prompt = xmalloc (n);
   if (defname)
-    snprintf (prompt, n-1, "%s [%s]: ", s, defname );
+    snprintf (prompt, n, "%s [%s]: ", s, defname );
   else
-    snprintf (prompt, n-1, "%s: ", s );
+    snprintf (prompt, n, "%s: ", s );
   tty_enable_completion(NULL);
   fname = cpr_get ("openfile.askoutname", prompt );
   cpr_kill_prompt ();
index 6b8f649..8ed2cdb 100644 (file)
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 #ifndef G10_OPTIONS_H
 #define G10_OPTIONS_H
@@ -81,6 +81,7 @@ struct
   int with_fingerprint; /* Option --with-fingerprint active.  */
   int with_subkey_fingerprint; /* Option --with-subkey-fingerprint active.  */
   int with_keygrip;     /* Option --with-keygrip active.  */
+  int with_tofu_info;   /* Option --with-tofu_info active.  */
   int with_secret;      /* Option --with-secret active.  */
   int with_wkd_hash;    /* Option --with-wkd-hash.  */
   int fingerprint; /* list fingerprints */
@@ -139,7 +140,7 @@ struct
   enum
     {
       CO_GNUPG, CO_RFC4880, CO_RFC2440,
-      CO_PGP6, CO_PGP7, CO_PGP8
+      CO_PGP6, CO_PGP7, CO_PGP8, CO_DE_VS
     } compliance;
   enum
     {
@@ -304,6 +305,7 @@ struct {
 
 /* Tests for the debugging flags.  */
 #define DBG_PACKET (opt.debug & DBG_PACKET_VALUE)
+#define DBG_MPI    (opt.debug & DBG_MPI_VALUE)
 #define DBG_CRYPTO (opt.debug & DBG_CRYPTO_VALUE)
 #define DBG_FILTER (opt.debug & DBG_FILTER_VALUE)
 #define DBG_CACHE  (opt.debug & DBG_CACHE_VALUE)
@@ -316,7 +318,7 @@ struct {
 #define DBG_LOOKUP  (opt.debug & DBG_LOOKUP_VALUE)
 #define DBG_EXTPROG (opt.debug & DBG_EXTPROG_VALUE)
 
-/* FIXME: We need to check whey we did not put this into opt. */
+/* FIXME: We need to check why we did not put this into opt. */
 #define DBG_MEMORY    memory_debug_mode
 #define DBG_MEMSTAT   memory_stat_debug_mode
 
@@ -325,7 +327,7 @@ EXTERN_UNLESS_MAIN_MODULE int memory_stat_debug_mode;
 
 
 /* Compatibility flags.  */
-#define GNUPG   (opt.compliance==CO_GNUPG)
+#define GNUPG   (opt.compliance==CO_GNUPG || opt.compliance==CO_DE_VS)
 #define RFC2440 (opt.compliance==CO_RFC2440)
 #define RFC4880 (opt.compliance==CO_RFC4880)
 #define PGP6    (opt.compliance==CO_PGP6)
index 9c9e909..65f60a9 100644 (file)
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef G10_PACKET_H
@@ -802,13 +802,13 @@ int cmp_user_ids( PKT_user_id *a, PKT_user_id *b );
 int check_signature (PKT_signature *sig, gcry_md_hd_t digest);
 
 /* Check a signature.  Looks up the public key from the key db.  (If
  RET_PK is not NULL, it is returned in *RET_PK.)  DIGEST contains a
  valid hash context that already includes the signed data.  This
  function adds the relevant meta-data to the hash before finalizing
  it and verifying the signature.  */
-int check_signature2 (PKT_signature *sig, gcry_md_hd_t digest,
-                     u32 *r_expiredate, int *r_expired, int *r_revoked,
-                     PKT_public_key *ret_pk);
* R_PK is not NULL, it is stored at RET_PK.)  DIGEST contains a
* valid hash context that already includes the signed data.  This
* function adds the relevant meta-data to the hash before finalizing
* it and verifying the signature.  */
+gpg_error_t check_signature2 (PKT_signature *sig, gcry_md_hd_t digest,
+                              u32 *r_expiredate, int *r_expired, int *r_revoked,
+                              PKT_public_key **r_pk);
 
 
 /*-- pubkey-enc.c --*/
index 9a733b5..38cfdd9 100644 (file)
@@ -17,7 +17,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -220,7 +220,7 @@ set_packet_list_mode (int mode)
       else
         listfp = es_stderr;
 
-      if (opt.debug && DBG_MPI_VALUE)
+      if (DBG_MPI)
         mpi_print_mode = 1;
     }
   return old;
index be71b68..ccd232a 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -347,7 +347,7 @@ passphrase_to_dek (int cipher_algo, STRING2KEY *s2k,
     {
       char buf[50];
 
-      snprintf (buf, sizeof buf -1, "%d %d %d",
+      snprintf (buf, sizeof buf, "%d %d %d",
                 cipher_algo, s2k->mode, s2k->hash_algo );
       write_status_text ( STATUS_NEED_PASSPHRASE_SYM, buf );
     }
@@ -447,7 +447,7 @@ emit_status_need_passphrase (u32 *keyid, u32 *mainkeyid, int pubkey_algo)
   write_status_text (STATUS_USERID_HINT, us);
   xfree (us);
 
-  snprintf (buf, sizeof buf -1, "%08lX%08lX %08lX%08lX %d 0",
+  snprintf (buf, sizeof buf, "%08lX%08lX %08lX%08lX %d 0",
             (ulong)keyid[0],
             (ulong)keyid[1],
             (ulong)(mainkeyid? mainkeyid[0]:keyid[0]),
index e188653..b61ed1b 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 9fc758e..fc7ec6f 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /* Photo ID functions */
index 63d32d1..51e8f27 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -428,7 +428,7 @@ do_we_trust( PKT_public_key *pk, unsigned int trustlevel )
     default:
       log_error ("invalid trustlevel %u returned from validation layer\n",
                 trustlevel);
-      /* fall thru */
+      /* fall through */
     case TRUST_UNKNOWN:
     case TRUST_UNDEFINED:
       log_info(_("%s: There is no assurance this key belongs"
@@ -449,6 +449,13 @@ do_we_trust( PKT_public_key *pk, unsigned int trustlevel )
       if( opt.verbose )
        log_info(_("This key belongs to us\n"));
       return 1; /* yes */
+
+    case TRUST_NEVER:
+      /* This can be returned by TOFU, which can return negative
+         assertions.  */
+      log_info(_("%s: This key is bad!  It has been marked as untrusted!\n"),
+               keystr_from_pk(pk));
+      return 0; /* no */
     }
 
   return 1; /*NOTREACHED*/
@@ -472,10 +479,16 @@ do_we_trust_pre( PKT_public_key *pk, unsigned int trustlevel )
       print_fingerprint (NULL, pk, 2);
       tty_printf("\n");
 
-      tty_printf(
-              _("It is NOT certain that the key belongs to the person named\n"
-                "in the user ID.  If you *really* know what you are doing,\n"
-                "you may answer the next question with yes.\n"));
+      if ((trustlevel & TRUST_MASK) == TRUST_NEVER)
+        tty_printf(
+          _("This key has is bad!  It has been marked as untrusted!  If you\n"
+            "*really* know what you are doing, you may answer the next\n"
+            "question with yes.\n"));
+      else
+        tty_printf(
+          _("It is NOT certain that the key belongs to the person named\n"
+            "in the user ID.  If you *really* know what you are doing,\n"
+            "you may answer the next question with yes.\n"));
 
       tty_printf("\n");
 
@@ -642,7 +655,7 @@ check_signatures_trust (ctrl_t ctrl, PKT_signature *sig)
     default:
       log_error ("invalid trustlevel %u returned from validation layer\n",
                  trustlevel);
-      /* fall thru */
+      /* fall through */
     case TRUST_UNKNOWN:
     case TRUST_UNDEFINED:
       write_trust_status (STATUS_TRUST_UNDEFINED, trustlevel);
@@ -654,7 +667,8 @@ check_signatures_trust (ctrl_t ctrl, PKT_signature *sig)
       break;
 
     case TRUST_NEVER:
-      /* currently we won't get that status */
+      /* This level can be returned by TOFU, which supports negative
+       * assertions.  */
       write_trust_status (STATUS_TRUST_NEVER, trustlevel);
       log_info(_("WARNING: We do NOT trust this key!\n"));
       log_info(_("         The signature is probably a FORGERY.\n"));
@@ -824,7 +838,7 @@ find_and_check_key (ctrl_t ctrl, const char *name, unsigned int use,
   if (from_file)
     rc = get_pubkey_fromfile (ctrl, pk, name);
   else
-    rc = get_pubkey_byname (ctrl, NULL, pk, name, NULL, NULL, 0, 0);
+    rc = get_best_pubkey_byname (ctrl, NULL, pk, name, NULL, 0, 0);
   if (rc)
     {
       int code;
@@ -1300,6 +1314,29 @@ build_pk_list (ctrl_t ctrl, strlist_t rcpts, PK_LIST *ret_pk_list)
       rc = GPG_ERR_NO_USER_ID;
     }
 
+#ifdef USE_TOFU
+  if (! rc && (opt.trust_model == TM_TOFU_PGP || opt.trust_model == TM_TOFU))
+    {
+      PK_LIST iter;
+      for (iter = pk_list; iter; iter = iter->next)
+        {
+          int rc2;
+
+          /* Note: we already resolved any conflict when looking up
+             the key.  Don't annoy the user again if she selected
+             accept once.  */
+          rc2 = tofu_register_encryption (ctrl, iter->pk, NULL, 0);
+          if (rc2)
+            log_info ("WARNING: Failed to register encryption to %s"
+                      " with TOFU engine\n",
+                      keystr (pk_main_keyid (iter->pk)));
+          else if (DBG_TRUST)
+            log_debug ("Registered encryption to %s with TOFU DB.\n",
+                      keystr (pk_main_keyid (iter->pk)));
+        }
+    }
+#endif /*USE_TOFU*/
+
  fail:
 
   if ( rc )
index 232c489..ce24a2e 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -58,6 +58,7 @@ pk_verify (pubkey_algo_t pkalgo, gcry_mpi_t hash,
 {
   gcry_sexp_t s_sig, s_hash, s_pkey;
   int rc;
+  unsigned int neededfixedlen = 0;
 
   /* Make a sexp from pkey.  */
   if (pkalgo == PUBKEY_ALGO_DSA)
@@ -103,6 +104,9 @@ pk_verify (pubkey_algo_t pkalgo, gcry_mpi_t hash,
                                 curve, pkey[1]);
           xfree (curve);
         }
+
+      if (openpgp_oid_is_ed25519 (pkey[0]))
+        neededfixedlen = 256 / 8;
     }
   else
     return GPG_ERR_PUBKEY_ALGO;
@@ -144,11 +148,59 @@ pk_verify (pubkey_algo_t pkalgo, gcry_mpi_t hash,
     }
   else if (pkalgo == PUBKEY_ALGO_EDDSA)
     {
-      if (!data[0] || !data[1])
+      gcry_mpi_t r = data[0];
+      gcry_mpi_t s = data[1];
+      size_t rlen, slen, n;  /* (bytes) */
+      char buf[64];
+
+      log_assert (neededfixedlen <= sizeof buf);
+
+      if (!r || !s)
+        rc = gpg_error (GPG_ERR_BAD_MPI);
+      else if ((rlen = (gcry_mpi_get_nbits (r)+7)/8) > neededfixedlen || !rlen)
+        rc = gpg_error (GPG_ERR_BAD_MPI);
+      else if ((slen = (gcry_mpi_get_nbits (s)+7)/8) > neededfixedlen || !slen)
         rc = gpg_error (GPG_ERR_BAD_MPI);
       else
-        rc = gcry_sexp_build (&s_sig, NULL,
-                              "(sig-val(eddsa(r%M)(s%M)))", data[0], data[1]);
+        {
+          /* We need to fixup the length in case of leading zeroes.
+           * OpenPGP does not allow leading zeroes and the parser for
+           * the signature packet has no information on the use curve,
+           * thus we need to do it here.  We won't do it for opaque
+           * MPIs under the assumption that they are known to be fine;
+           * we won't see them here anyway but the check is anyway
+           * required.  Fixme: A nifty feature for gcry_sexp_build
+           * would be a format to left pad the value (e.g. "%*M"). */
+          rc = 0;
+
+          if (rlen < neededfixedlen
+              && !gcry_mpi_get_flag (r, GCRYMPI_FLAG_OPAQUE)
+              && !(rc=gcry_mpi_print (GCRYMPI_FMT_USG, buf, sizeof buf, &n, r)))
+            {
+              log_assert (n < neededfixedlen);
+              memmove (buf + (neededfixedlen - n), buf, n);
+              memset (buf, 0, neededfixedlen - n);
+              r = gcry_mpi_set_opaque_copy (NULL, buf, neededfixedlen * 8);
+            }
+          if (slen < neededfixedlen
+              && !gcry_mpi_get_flag (s, GCRYMPI_FLAG_OPAQUE)
+              && !(rc=gcry_mpi_print (GCRYMPI_FMT_USG, buf, sizeof buf, &n, s)))
+            {
+              log_assert (n < neededfixedlen);
+              memmove (buf + (neededfixedlen - n), buf, n);
+              memset (buf, 0, neededfixedlen - n);
+              s = gcry_mpi_set_opaque_copy (NULL, buf, neededfixedlen * 8);
+            }
+
+          if (!rc)
+            rc = gcry_sexp_build (&s_sig, NULL,
+                                  "(sig-val(eddsa(r%M)(s%M)))", r, s);
+
+          if (r != data[0])
+            gcry_mpi_release (r);
+          if (s != data[1])
+            gcry_mpi_release (s);
+        }
     }
   else if (pkalgo == PUBKEY_ALGO_ELGAMAL || pkalgo == PUBKEY_ALGO_ELGAMAL_E)
     {
@@ -227,7 +279,7 @@ pk_encrypt (pubkey_algo_t algo, gcry_mpi_t *resarr, gcry_mpi_t data,
             rc = gpg_error_from_syserror ();
           else
             {
-              int with_djb_tweak_flag = openpgp_oid_is_crv25519 (pkey[0]);
+              int with_djb_tweak_flag = openpgp_oid_is_cv25519 (pkey[0]);
 
               /* Now use the ephemeral secret to compute the shared point.  */
               rc = gcry_sexp_build (&s_pkey, NULL,
index ba1097c..77a3801 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_G10_PKGLUE_H
index c9fb67c..bdf5592 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index f151657..feb639e 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 0df9bfa..117744f 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 15a91ac..68fc44a 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 8eb005f..7c77ca5 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /* For historic reasons gpg uses RIPE-MD160 to to identify names in
index 551898b..f186b72 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 #ifndef G10_RMD160_H
 #define G10_RMD160_H
index f61d21b..61cc2ea 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #error Not anymore used - only kept for reference in the repository.
index 258f08a..b89f0be 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -770,6 +770,20 @@ gpg_server (ctrl_t ctrl)
 gpg_error_t
 gpg_proxy_pinentry_notify (ctrl_t ctrl, const unsigned char *line)
 {
+  if (opt.verbose)
+    {
+      char *linecopy = xtrystrdup (line);
+      char *fields[4];
+
+      if (linecopy
+          && split_fields (linecopy, fields, DIM (fields)) >= 4
+          && !strcmp (fields[0], "PINENTRY_LAUNCHED"))
+        log_info (_("pinentry launched (pid %s, flavor %s, version %s)\n"),
+                  fields[1], fields[2], fields[3]);
+
+      xfree (linecopy);
+    }
+
   if (!ctrl || !ctrl->server_local
       || !ctrl->server_local->allow_pinentry_notify)
     {
index e5385af..b2f7169 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 334add7..4df29af 100644 (file)
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -84,23 +84,29 @@ check_signature (PKT_signature *sig, gcry_md_hd_t digest)
  * revoked (0 otherwise).  Note: PK being revoked does not cause this
  * function to fail.
  *
- * If PK is not NULL, the public key is saved in *PK on success.
+ * If R_PK is not NULL, the public key is stored at that address if it
+ * was found; other wise NULL is stored.
  *
  * Returns 0 on success.  An error code otherwise.  */
-int
+gpg_error_t
 check_signature2 (PKT_signature *sig, gcry_md_hd_t digest, u32 *r_expiredate,
-                 int *r_expired, int *r_revoked, PKT_public_key *pk )
+                 int *r_expired, int *r_revoked, PKT_public_key **r_pk)
 {
     int rc=0;
-    int pk_internal;
+    PKT_public_key *pk;
 
-    if (pk)
-      pk_internal = 0;
-    else
-      {
-       pk_internal = 1;
-       pk = xmalloc_clear( sizeof *pk );
-      }
+    if (r_expiredate)
+      *r_expiredate = 0;
+    if (r_expired)
+      *r_expired = 0;
+    if (r_revoked)
+      *r_revoked = 0;
+    if (r_pk)
+      *r_pk = NULL;
+
+    pk = xtrycalloc (1, sizeof *pk);
+    if (!pk)
+      return gpg_error_from_syserror ();
 
     if ( (rc=openpgp_md_test_algo(sig->digest_algo)) )
       ; /* We don't have this digest. */
@@ -114,14 +120,14 @@ check_signature2 (PKT_signature *sig, gcry_md_hd_t digest, u32 *r_expiredate,
           header is missing or does not match the actual sig. */
 
         log_info(_("WARNING: signature digest conflict in message\n"));
-       rc = GPG_ERR_GENERAL;
+       rc = gpg_error (GPG_ERR_GENERAL);
       }
     else if( get_pubkey( pk, sig->keyid ) )
-       rc = GPG_ERR_NO_PUBKEY;
+      rc = gpg_error (GPG_ERR_NO_PUBKEY);
     else if(!pk->flags.valid)
       {
         /* You cannot have a good sig from an invalid key.  */
-        rc = GPG_ERR_BAD_PUBKEY;
+        rc = gpg_error (GPG_ERR_BAD_PUBKEY);
       }
     else
       {
@@ -136,7 +142,7 @@ check_signature2 (PKT_signature *sig, gcry_md_hd_t digest, u32 *r_expiredate,
           them as their own.  The attacker couldn't actually use the
           subkey, but they could try and claim ownership of any
           signatures issued by it. */
-       if(rc==0 && !pk->flags.primary && pk->flags.backsig < 2)
+       if (!rc && !pk->flags.primary && pk->flags.backsig < 2)
          {
            if (!pk->flags.backsig)
              {
@@ -148,27 +154,17 @@ check_signature2 (PKT_signature *sig, gcry_md_hd_t digest, u32 *r_expiredate,
                      error.  TODO: change the default to require this
                      after more keys have backsigs. */
                if(opt.flags.require_cross_cert)
-                 rc = GPG_ERR_GENERAL;
+                 rc = gpg_error (GPG_ERR_GENERAL);
              }
            else if(pk->flags.backsig == 1)
              {
                log_info(_("WARNING: signing subkey %s has an invalid"
                           " cross-certification\n"),keystr_from_pk(pk));
-               rc = GPG_ERR_GENERAL;
+               rc = gpg_error (GPG_ERR_GENERAL);
              }
          }
       }
 
-    if (pk_internal || rc)
-      {
-       release_public_key_parts (pk);
-       if (pk_internal)
-         xfree (pk);
-       else
-         /* Be very sure that the caller doesn't try to use *PK.  */
-         memset (pk, 0, sizeof (*pk));
-      }
-
     if( !rc && sig->sig_class < 2 && is_status_enabled() ) {
        /* This signature id works best with DLP algorithms because
         * they use a random parameter for every signature.  Instead of
@@ -235,6 +231,14 @@ check_signature2 (PKT_signature *sig, gcry_md_hd_t digest, u32 *r_expiredate,
        xfree (buffer);
     }
 
+    if (r_pk)
+      *r_pk = pk;
+    else
+      {
+       release_public_key_parts (pk);
+        xfree (pk);
+      }
+
     return rc;
 }
 
index e5fbd9d..a391128 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 4cd7f33..cedbce7 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
diff --git a/g10/sqrtu32.c b/g10/sqrtu32.c
new file mode 100644 (file)
index 0000000..11513b0
--- /dev/null
@@ -0,0 +1,244 @@
+/* sqrtu32.c - Return the very approximate sqrt of an unsigned integer.
+ *
+ * This file by g10 Code GmbH
+ *
+ * To the extent possible under law, the person who associated CC0 with
+ * g10 Code GmbH has waived all copyright and related or neighboring rights
+ * to this file.
+ *
+ * You should have received a copy of the CC0 legalcode along with this
+ * work.  If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+ */
+
+/* The R code to generate the following table.  */
+#if 0
+{
+  m = 2^32 - 1
+  last.i = 0
+  last.sqrt = 0
+  i = 0
+  while (i < m) {
+    if (sqrt(i) - last.sqrt > 0.05 * last.sqrt) {
+      cat(paste0("  if (i <= ", last.i, "u) return ", last.sqrt, ";\n"));
+      last.i = i
+      last.sqrt = sqrt(i)
+    }
+    i = i + max(1, floor(last.sqrt / 10))
+  }
+  cat(paste0("  return ", sqrt(m), ";\n"))
+}
+#endif
+
+float
+sqrtu32 (unsigned int i)
+{
+  if (i <= 0u) return 0;
+  if (i <= 1u) return 1;
+  if (i <= 2u) return 1.4142135623731;
+  if (i <= 3u) return 1.73205080756888;
+  if (i <= 4u) return 2;
+  if (i <= 5u) return 2.23606797749979;
+  if (i <= 6u) return 2.44948974278318;
+  if (i <= 7u) return 2.64575131106459;
+  if (i <= 8u) return 2.82842712474619;
+  if (i <= 9u) return 3;
+  if (i <= 10u) return 3.16227766016838;
+  if (i <= 12u) return 3.46410161513775;
+  if (i <= 14u) return 3.74165738677394;
+  if (i <= 16u) return 4;
+  if (i <= 18u) return 4.24264068711928;
+  if (i <= 20u) return 4.47213595499958;
+  if (i <= 23u) return 4.79583152331272;
+  if (i <= 26u) return 5.09901951359278;
+  if (i <= 29u) return 5.3851648071345;
+  if (i <= 32u) return 5.65685424949238;
+  if (i <= 36u) return 6;
+  if (i <= 40u) return 6.32455532033676;
+  if (i <= 45u) return 6.70820393249937;
+  if (i <= 50u) return 7.07106781186548;
+  if (i <= 56u) return 7.48331477354788;
+  if (i <= 62u) return 7.87400787401181;
+  if (i <= 69u) return 8.30662386291807;
+  if (i <= 77u) return 8.77496438739212;
+  if (i <= 85u) return 9.21954445729289;
+  if (i <= 94u) return 9.69535971483266;
+  if (i <= 104u) return 10.1980390271856;
+  if (i <= 115u) return 10.7238052947636;
+  if (i <= 127u) return 11.2694276695846;
+  if (i <= 141u) return 11.8743420870379;
+  if (i <= 156u) return 12.4899959967968;
+  if (i <= 172u) return 13.114877048604;
+  if (i <= 190u) return 13.7840487520902;
+  if (i <= 210u) return 14.4913767461894;
+  if (i <= 232u) return 15.2315462117278;
+  if (i <= 256u) return 16;
+  if (i <= 283u) return 16.8226038412607;
+  if (i <= 313u) return 17.6918060129541;
+  if (i <= 346u) return 18.6010752377383;
+  if (i <= 382u) return 19.5448202856921;
+  if (i <= 422u) return 20.5426385841741;
+  if (i <= 466u) return 21.5870331449229;
+  if (i <= 514u) return 22.6715680975093;
+  if (i <= 568u) return 23.832750575626;
+  if (i <= 628u) return 25.0599281722833;
+  if (i <= 694u) return 26.343879744639;
+  if (i <= 766u) return 27.6767050061961;
+  if (i <= 846u) return 29.086079144498;
+  if (i <= 934u) return 30.5614135798723;
+  if (i <= 1030u) return 32.0936130717624;
+  if (i <= 1138u) return 33.734255586866;
+  if (i <= 1255u) return 35.4259791678367;
+  if (i <= 1384u) return 37.2021504754766;
+  if (i <= 1528u) return 39.0896405713841;
+  if (i <= 1687u) return 41.0731055558257;
+  if (i <= 1863u) return 43.1624837098145;
+  if (i <= 2055u) return 45.3321078265725;
+  if (i <= 2267u) return 47.6130234284697;
+  if (i <= 2503u) return 50.029991005396;
+  if (i <= 2763u) return 52.5642464038057;
+  if (i <= 3048u) return 55.208694967369;
+  if (i <= 3363u) return 57.9913786695919;
+  if (i <= 3708u) return 60.8933493905533;
+  if (i <= 4092u) return 63.9687423668779;
+  if (i <= 4512u) return 67.1714224949867;
+  if (i <= 4980u) return 70.5691150575094;
+  if (i <= 5491u) return 74.1012820401914;
+  if (i <= 6058u) return 77.8331548891602;
+  if (i <= 6681u) return 81.7373843476778;
+  if (i <= 7369u) return 85.842879728024;
+  if (i <= 8129u) return 90.160967164289;
+  if (i <= 8966u) return 94.6889645101265;
+  if (i <= 9893u) return 99.4635611668917;
+  if (i <= 10910u) return 104.450945424156;
+  if (i <= 12030u) return 109.68135666557;
+  if (i <= 13270u) return 115.195486022674;
+  if (i <= 14634u) return 120.971070921936;
+  if (i <= 16134u) return 127.019683514013;
+  if (i <= 17790u) return 133.379158791769;
+  if (i <= 19623u) return 140.08211877324;
+  if (i <= 21639u) return 147.102005424807;
+  if (i <= 23865u) return 154.483008774428;
+  if (i <= 26325u) return 162.24980739588;
+  if (i <= 29029u) return 170.378989314997;
+  if (i <= 32021u) return 178.94412535761;
+  if (i <= 35319u) return 187.933498876597;
+  if (i <= 38955u) return 197.370210518204;
+  if (i <= 42964u) return 207.277591649459;
+  if (i <= 47384u) return 217.678662252413;
+  if (i <= 52256u) return 228.595712995673;
+  if (i <= 57624u) return 240.049994792751;
+  if (i <= 63552u) return 252.09522010542;
+  if (i <= 70077u) return 264.720607433573;
+  if (i <= 77279u) return 277.991007048789;
+  if (i <= 85217u) return 291.919509454233;
+  if (i <= 93975u) return 306.553421119387;
+  if (i <= 103635u) return 321.923904051874;
+  if (i <= 114259u) return 338.022188620806;
+  if (i <= 125974u) return 354.928161745444;
+  if (i <= 138889u) return 372.678145321134;
+  if (i <= 153134u) return 391.323395671662;
+  if (i <= 168851u) return 410.914833025044;
+  if (i <= 186194u) return 431.5020278052;
+  if (i <= 205286u) return 453.084980991425;
+  if (i <= 226346u) return 475.758342018298;
+  if (i <= 249564u) return 499.563809738055;
+  if (i <= 275191u) return 524.586503829445;
+  if (i <= 303427u) return 550.842082633489;
+  if (i <= 334557u) return 578.409024825858;
+  if (i <= 368871u) return 607.347511726195;
+  if (i <= 406731u) return 637.754655020251;
+  if (i <= 448437u) return 669.654388472143;
+  if (i <= 494439u) return 703.163565609027;
+  if (i <= 545119u) return 738.321745582507;
+  if (i <= 601037u) return 775.265760884614;
+  if (i <= 662714u) return 814.072478345755;
+  if (i <= 730673u) return 854.794127261062;
+  if (i <= 805643u) return 897.576180610872;
+  if (i <= 888235u) return 942.46220083354;
+  if (i <= 979321u) return 989.60648744842;
+  if (i <= 1079771u) return 1039.1203010239;
+  if (i <= 1190496u) return 1091.09852900643;
+  if (i <= 1312576u) return 1145.67709237813;
+  if (i <= 1447210u) return 1203.00041562753;
+  if (i <= 1595650u) return 1263.19040528338;
+  if (i <= 1759324u) return 1326.3951145869;
+  if (i <= 1939768u) return 1392.75554208195;
+  if (i <= 2138677u) return 1462.42162183141;
+  if (i <= 2357969u) return 1535.5679730966;
+  if (i <= 2599709u) return 1612.3613118653;
+  if (i <= 2866325u) return 1693.02244521448;
+  if (i <= 3160216u) return 1777.69963717159;
+  if (i <= 3484303u) return 1866.62877937741;
+  if (i <= 3841609u) return 1960.00229591702;
+  if (i <= 4235569u) return 2058.04980503388;
+  if (i <= 4669759u) return 2160.962517028;
+  if (i <= 5148415u) return 2269.011899484;
+  if (i <= 5676351u) return 2382.50939137708;
+  if (i <= 6258261u) return 2501.65165440754;
+  if (i <= 6899761u) return 2626.73961404628;
+  if (i <= 7607161u) return 2758.10822847835;
+  if (i <= 8387061u) return 2896.04229941484;
+  if (i <= 9246836u) return 3040.86106226509;
+  if (i <= 10194708u) return 3192.91528230863;
+  if (i <= 11239752u) return 3352.57393654487;
+  if (i <= 12392152u) return 3520.24885483967;
+  if (i <= 13662520u) return 3696.2846210756;
+  if (i <= 15063244u) return 3881.13952338743;
+  if (i <= 16607484u) return 4075.22809177597;
+  if (i <= 18309965u) return 4279.01448934214;
+  if (i <= 20187057u) return 4493.00089027367;
+  if (i <= 22256498u) return 4717.67930236891;
+  if (i <= 24538022u) return 4953.58678131311;
+  if (i <= 27053612u) return 5201.30868147623;
+  if (i <= 29826772u) return 5461.3892005606;
+  if (i <= 32884372u) return 5734.48968958878;
+  if (i <= 36255331u) return 6021.23998857378;
+  if (i <= 39972079u) return 6322.34758614235;
+  if (i <= 44069335u) return 6638.47384569677;
+  if (i <= 48587017u) return 6970.43879537006;
+  if (i <= 53567779u) return 7319.00122967608;
+  if (i <= 59059051u) return 7684.98867923694;
+  if (i <= 65113195u) return 8069.27475055844;
+  if (i <= 71787681u) return 8472.76112020161;
+  if (i <= 79146417u) return 8896.4272042208;
+  if (i <= 87259431u) return 9341.27566234934;
+  if (i <= 96204349u) return 9808.38156884203;
+  if (i <= 106066089u) return 10298.8392064349;
+  if (i <= 116938503u) return 10813.8107529215;
+  if (i <= 128925712u) return 11354.5458737899;
+  if (i <= 142141652u) return 11922.3173921851;
+  if (i <= 156711468u) return 12518.445111115;
+  if (i <= 172775559u) return 13144.4117023167;
+  if (i <= 190485651u) return 13801.6539226283;
+  if (i <= 210011271u) return 14491.7656274175;
+  if (i <= 231537615u) return 15216.360110092;
+  if (i <= 255271299u) return 15977.2118656542;
+  if (i <= 281438144u) return 16776.1182637701;
+  if (i <= 310285898u) return 17614.9339482156;
+  if (i <= 342091319u) return 18495.710827108;
+  if (i <= 377155755u) return 19420.4983200741;
+  if (i <= 415815149u) return 20391.5460178967;
+  if (i <= 458436366u) return 21411.1271538889;
+  if (i <= 505427034u) return 22481.7044282679;
+  if (i <= 557234442u) return 23605.8137330616;
+  if (i <= 614351162u) return 24786.1082463544;
+  if (i <= 677324576u) return 26025.4601496304;
+  if (i <= 746751140u) return 27326.7477025716;
+  if (i <= 823293584u) return 28693.0929667751;
+  if (i <= 907682350u) return 30127.7670928331;
+  if (i <= 1000720018u) return 31634.1590373444;
+  if (i <= 1103296108u) return 33215.9014328981;
+  if (i <= 1216386121u) return 34876.7274984337;
+  if (i <= 1341067293u) return 36620.5856452351;
+  if (i <= 1478527787u) return 38451.6291852504;
+  if (i <= 1630078462u) return 40374.2301722274;
+  if (i <= 1797161818u) return 42392.9453800983;
+  if (i <= 1981371802u) return 44512.60273226;
+  if (i <= 2184466481u) return 46738.2764016817;
+  if (i <= 2408377949u) return 49075.2274472569;
+  if (i <= 2655239305u) return 51529.014205591;
+  if (i <= 2927404009u) return 54105.4896382983;
+  if (i <= 3227464249u) return 56810.7758176211;
+  if (i <= 3558280241u) return 59651.3222066368;
+  return 65535.9999923706;
+}
diff --git a/g10/sqrtu32.h b/g10/sqrtu32.h
new file mode 100644 (file)
index 0000000..566784d
--- /dev/null
@@ -0,0 +1,14 @@
+/* sqrtu32.h - Return the very approximate sqrt of an unsigned integer.
+ *
+ * This file by g10 Code GmbH
+ *
+ * To the extent possible under law, the person who associated CC0 with
+ * g10 Code GmbH has waived all copyright and related or neighboring rights
+ * to this file.
+ *
+ * You should have received a copy of the CC0 legalcode along with this
+ * work.  If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
+ */
+
+/* Return the very approximate square root of an unsigned integer.  */
+float sqrtu32 (unsigned int i);
index cab1448..993d879 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include "test.c"
index 3606e2e..5eb8d01 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include "test.c"
index ea2933f..e79d15d 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index f3fc653..a2e9666 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /* This test is based on the paper: "An Attack on CFB Mode Encryption
index 4c3d7a8..41a0258 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 02fa91e..c1cb312 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 2e15ffe..1f66b03 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef G10_TDBIO_H
index c5f2f79..8560f9d 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -169,21 +169,23 @@ keyserver_any_configured (ctrl_t ctrl)
 }
 
 int
-keyserver_import_keyid (u32 *keyid, void *dummy)
+keyserver_import_keyid (u32 *keyid, void *dummy, int quick)
 {
   (void)keyid;
   (void)dummy;
+  (void)quick;
   return -1;
 }
 
 int
 keyserver_import_fprint (ctrl_t ctrl, const byte *fprint,size_t fprint_len,
-                        struct keyserver_spec *keyserver)
+                        struct keyserver_spec *keyserver, int quick)
 {
   (void)ctrl;
   (void)fprint;
   (void)fprint_len;
   (void)keyserver;
+  (void)quick;
   return -1;
 }
 
@@ -203,11 +205,12 @@ keyserver_import_pka (const char *name,unsigned char *fpr)
 }
 
 gpg_error_t
-keyserver_import_wkd (ctrl_t ctrl, const char *name,
+keyserver_import_wkd (ctrl_t ctrl, const char *name, int quick,
                       unsigned char **fpr, size_t *fpr_len)
 {
   (void)ctrl;
   (void)name;
+  (void)quick;
   (void)fpr;
   (void)fpr_len;
   return GPG_ERR_BUG;
@@ -474,6 +477,17 @@ export_pubkey_buffer (ctrl_t ctrl, const char *keyspec, unsigned int options,
 }
 
 gpg_error_t
+tofu_write_tfs_record (ctrl_t ctrl, estream_t fp,
+                       PKT_public_key *pk, const char *user_id)
+{
+  (void)ctrl;
+  (void)fp;
+  (void)pk;
+  (void)user_id;
+  return gpg_error (GPG_ERR_GENERAL);
+}
+
+gpg_error_t
 tofu_get_policy (ctrl_t ctrl, PKT_public_key *pk, PKT_user_id *user_id,
                 enum tofu_policy *policy)
 {
index e9e2074..734458a 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 6ca4f88..cb5d444 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index ef14e85..2c9d17c 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /* TODO:
 #include <sys/stat.h>
 #include <stdarg.h>
 #include <sqlite3.h>
+#include <time.h>
+#include <utime.h>
+#include <fcntl.h>
+#include <unistd.h>
 
 #include "gpg.h"
 #include "types.h"
@@ -41,6 +45,7 @@
 #include "mkdir_p.h"
 #include "gpgsql.h"
 #include "status.h"
+#include "sqrtu32.h"
 
 #include "tofu.h"
 
 struct tofu_dbs_s
 {
   sqlite3 *db;
+  char *want_lock_file;
+  time_t want_lock_file_ctime;
 
   struct
   {
     sqlite3_stmt *savepoint_batch;
     sqlite3_stmt *savepoint_batch_commit;
 
-    sqlite3_stmt *savepoint_inner;
-    sqlite3_stmt *savepoint_inner_commit;
-
     sqlite3_stmt *record_binding_get_old_policy;
     sqlite3_stmt *record_binding_update;
     sqlite3_stmt *record_binding_update2;
     sqlite3_stmt *get_policy_select_policy_and_conflict;
     sqlite3_stmt *get_trust_bindings_with_this_email;
     sqlite3_stmt *get_trust_gather_other_user_ids;
-    sqlite3_stmt *get_trust_gather_other_keys;
+    sqlite3_stmt *get_trust_gather_signature_stats;
+    sqlite3_stmt *get_trust_gather_encryption_stats;
     sqlite3_stmt *register_already_seen;
     sqlite3_stmt *register_insert;
   } s;
 
-  int batch_update;
+  int in_batch_transaction;
+  int in_transaction;
+  time_t batch_update_started;
 };
 
 
@@ -96,22 +103,19 @@ struct tofu_dbs_s
 /* If a message is signed a couple of hours in the future, just assume
    some clock skew.  */
 #define TIME_AGO_FUTURE_IGNORE (2 * 60 * 60)
-#if 0
-#  define TIME_AGO_UNIT_SMALL 60
-#  define TIME_AGO_MEDIUM_THRESHOLD (60 * TIME_AGO_UNIT_SMALL)
-#  define TIME_AGO_UNIT_MEDIUM (60 * 60)
-#  define TIME_AGO_LARGE_THRESHOLD (24 * 60 * TIME_AGO_UNIT_SMALL)
-#  define TIME_AGO_UNIT_LARGE (24 * 60 * 60)
-#else
-#  define TIME_AGO_UNIT_SMALL (24 * 60 * 60)
-#  define TIME_AGO_MEDIUM_THRESHOLD (4 * TIME_AGO_UNIT_SMALL)
-#  define TIME_AGO_UNIT_MEDIUM (7 * 24 * 60 * 60)
-#  define TIME_AGO_LARGE_THRESHOLD (28 * TIME_AGO_UNIT_SMALL)
-#  define TIME_AGO_UNIT_LARGE (30 * 24 * 60 * 60)
-#endif
+/* Days.  */
+#define TIME_AGO_UNIT_SMALL (24 * 60 * 60)
+#define TIME_AGO_SMALL_THRESHOLD (7 * TIME_AGO_UNIT_SMALL)
+/* Months.  */
+#define TIME_AGO_UNIT_MEDIUM (30 * 24 * 60 * 60)
+#define TIME_AGO_MEDIUM_THRESHOLD (2 * TIME_AGO_UNIT_MEDIUM)
+/* Years.  */
+#define TIME_AGO_UNIT_LARGE (365 * 24 * 60 * 60)
+#define TIME_AGO_LARGE_THRESHOLD (2 * TIME_AGO_UNIT_LARGE)
 
 /* Local prototypes.  */
 static gpg_error_t end_transaction (ctrl_t ctrl, int only_batch);
+static char *email_from_user_id (const char *user_id);
 
 
 \f
@@ -162,7 +166,9 @@ tofu_policy_to_trust_level (enum tofu_policy policy)
 
 
 \f
-/* Start a transaction on DB.  */
+/* Start a transaction on DB.  If ONLY_BATCH is set, then this will
+   start a batch transaction if we haven't started a batch transaction
+   and one has been requested.  */
 static gpg_error_t
 begin_transaction (ctrl_t ctrl, int only_batch)
 {
@@ -172,29 +178,57 @@ begin_transaction (ctrl_t ctrl, int only_batch)
 
   log_assert (dbs);
 
-  if (ctrl->tofu.batch_update_ref
-      && ctrl->tofu.batch_update_started != gnupg_get_time ())
-    {
-      /* We've been in batch update mode for a while (on average, more
-       * than 500 ms).  To prevent starving other gpg processes, we
-       * drop and retake the batch lock.
-       *
-       * Note: if we wanted higher resolution, we could use
-       * npth_clock_gettime.  */
-      if (dbs->batch_update)
-        end_transaction (ctrl, 1);
-
-      ctrl->tofu.batch_update_started = gnupg_get_time ();
+  /* If we've been in batch update mode for a while (on average, more
+   * than 500 ms), to prevent starving other gpg processes, we drop
+   * and retake the batch lock.
+   *
+   * Note: if we wanted higher resolution, we could use
+   * npth_clock_gettime.  */
+  if (/* No real transactions.  */
+      dbs->in_transaction == 0
+      /* There is an open batch transaction.  */
+      && dbs->in_batch_transaction
+      /* And some time has gone by since it was started.  */
+      && dbs->batch_update_started != gnupg_get_time ())
+    {
+      struct stat statbuf;
+
+      /* If we are in a batch update, then batch updates better have
+         been enabled.  */
+      log_assert (ctrl->tofu.batch_updated_wanted);
+
+      /* Check if another process wants to run.  (We just ignore any
+       * stat failure.  A waiter might have to wait a bit longer, but
+       * otherwise there should be no impact.)  */
+      if (stat (dbs->want_lock_file, &statbuf) == 0
+          && statbuf.st_ctime != dbs->want_lock_file_ctime)
+        {
+          end_transaction (ctrl, 2);
 
-      /* Yield to allow another process a chance to run.  */
-      gpgrt_yield ();
+          /* Yield to allow another process a chance to run.  Note:
+           * testing suggests that anything less than a 100ms tends to
+           * not result in the other process getting the lock.  */
+          gnupg_usleep (100000);
+        }
+      else
+        dbs->batch_update_started = gnupg_get_time ();
     }
 
-  if (ctrl->tofu.batch_update_ref && !dbs->batch_update)
+  if (/* We don't have an open batch transaction.  */
+      !dbs->in_batch_transaction
+      && (/* Batch mode is enabled or we are starting a new transaction.  */
+          ctrl->tofu.batch_updated_wanted || dbs->in_transaction == 0))
     {
+      struct stat statbuf;
+
+      /* We are in batch mode, but we don't have an open batch
+       * transaction.  Since the batch save point must be the outer
+       * save point, it must be taken before the inner save point.  */
+      log_assert (dbs->in_transaction == 0);
+
       rc = gpgsql_stepx (dbs->db, &dbs->s.savepoint_batch,
                           NULL, NULL, &err,
-                          "savepoint batch;", SQLITE_ARG_END);
+                          "begin immediate transaction;", GPGSQL_ARG_END);
       if (rc)
         {
           log_error (_("error beginning transaction on TOFU database: %s\n"),
@@ -203,15 +237,22 @@ begin_transaction (ctrl_t ctrl, int only_batch)
           return gpg_error (GPG_ERR_GENERAL);
         }
 
-      dbs->batch_update = 1;
+      dbs->in_batch_transaction = 1;
+      dbs->batch_update_started = gnupg_get_time ();
+
+      if (stat (dbs->want_lock_file, &statbuf) == 0)
+        dbs->want_lock_file_ctime = statbuf.st_ctime;
     }
 
   if (only_batch)
     return 0;
 
-  rc = gpgsql_stepx (dbs->db, &dbs->s.savepoint_inner,
-                      NULL, NULL, &err,
-                      "savepoint inner;", SQLITE_ARG_END);
+  log_assert (dbs->in_transaction >= 0);
+  dbs->in_transaction ++;
+
+  rc = gpgsql_exec_printf (dbs->db, NULL, NULL, &err,
+                           "savepoint inner%d;",
+                           dbs->in_transaction);
   if (rc)
     {
       log_error (_("error beginning transaction on TOFU database: %s\n"),
@@ -235,37 +276,52 @@ end_transaction (ctrl_t ctrl, int only_batch)
   int rc;
   char *err = NULL;
 
-  if (!dbs)
-    return 0;  /* Shortcut to allow for easier cleanup code.  */
-
-  if ((!ctrl->tofu.batch_update_ref || only_batch == 2) && dbs->batch_update)
+  if (only_batch || (! only_batch && dbs->in_transaction == 1))
     {
-      /* The batch transaction is still in open, but we left batch
-       * mode.  */
-      dbs->batch_update = 0;
+      if (!dbs)
+        return 0;  /* Shortcut to allow for easier cleanup code.  */
 
-      rc = gpgsql_stepx (dbs->db, &dbs->s.savepoint_batch_commit,
-                          NULL, NULL, &err,
-                          "release batch;", SQLITE_ARG_END);
-      if (rc)
+      /* If we are releasing the batch transaction, then we better not
+         be in a normal transaction.  */
+      if (only_batch)
+        log_assert (dbs->in_transaction == 0);
+
+      if (/* Batch mode disabled?  */
+          (!ctrl->tofu.batch_updated_wanted || only_batch == 2)
+          /* But, we still have an open batch transaction?  */
+          && dbs->in_batch_transaction)
         {
-          log_error (_("error committing transaction on TOFU database: %s\n"),
-                     err);
-          sqlite3_free (err);
-          return gpg_error (GPG_ERR_GENERAL);
+          /* The batch transaction is still in open, but we've left
+           * batch mode.  */
+          dbs->in_batch_transaction = 0;
+          dbs->in_transaction = 0;
+
+          rc = gpgsql_stepx (dbs->db, &dbs->s.savepoint_batch_commit,
+                             NULL, NULL, &err,
+                             "commit transaction;", GPGSQL_ARG_END);
+          if (rc)
+            {
+              log_error (_("error committing transaction on TOFU database: %s\n"),
+                         err);
+              sqlite3_free (err);
+              return gpg_error (GPG_ERR_GENERAL);
+            }
+
+          return 0;
         }
 
-      /* Releasing an outer transaction releases an open inner
-         transactions.  We're done.  */
-      return 0;
+      if (only_batch)
+        return 0;
     }
 
-  if (only_batch)
-    return 0;
+  log_assert (dbs);
+  log_assert (dbs->in_transaction > 0);
+
+  rc = gpgsql_exec_printf (dbs->db, NULL, NULL, &err,
+                           "release inner%d;", dbs->in_transaction);
+
+  dbs->in_transaction --;
 
-  rc = gpgsql_stepx (dbs->db, &dbs->s.savepoint_inner_commit,
-                      NULL, NULL, &err,
-                      "release inner;", SQLITE_ARG_END);
   if (rc)
     {
       log_error (_("error committing transaction on TOFU database: %s\n"),
@@ -285,20 +341,16 @@ rollback_transaction (ctrl_t ctrl)
   int rc;
   char *err = NULL;
 
-  if (!dbs)
-    return 0;  /* Shortcut to allow for easier cleanup code.  */
+  log_assert (dbs);
+  log_assert (dbs->in_transaction > 0);
 
-  if (dbs->batch_update)
-    {
-      /* Just undo the most recent update; don't revert any progress
-         made by the batch transaction.  */
-      rc = sqlite3_exec (dbs->db, "rollback to inner;", NULL, NULL, &err);
-    }
-  else
-    {
-      /* Rollback the whole she-bang.  */
-      rc = sqlite3_exec (dbs->db, "rollback;", NULL, NULL, &err);
-    }
+  /* Be careful to not any progress made by closed transactions in
+     batch mode.  */
+  rc = gpgsql_exec_printf (dbs->db, NULL, NULL, &err,
+                           "rollback to inner%d;",
+                           dbs->in_transaction);
+
+  dbs->in_transaction --;
 
   if (rc)
     {
@@ -314,22 +366,36 @@ rollback_transaction (ctrl_t ctrl)
 void
 tofu_begin_batch_update (ctrl_t ctrl)
 {
-  if (!ctrl->tofu.batch_update_ref)
-    ctrl->tofu.batch_update_started = gnupg_get_time ();
-
-  ctrl->tofu.batch_update_ref ++;
+  ctrl->tofu.batch_updated_wanted ++;
 }
 
 void
 tofu_end_batch_update (ctrl_t ctrl)
 {
-  log_assert (ctrl->tofu.batch_update_ref > 0);
-  ctrl->tofu.batch_update_ref --;
+  log_assert (ctrl->tofu.batch_updated_wanted > 0);
+  ctrl->tofu.batch_updated_wanted --;
+  end_transaction (ctrl, 1);
+}
 
-  if (!ctrl->tofu.batch_update_ref)
-    end_transaction (ctrl, 1);
+/* Suspend any extant batch transaction (it is safe to call this even
+   no batch transaction has been started).  Note: you cannot suspend a
+   batch transaction if you are in a normal transaction.  The batch
+   transaction can be resumed explicitly by calling
+   tofu_resume_batch_transaction or implicitly by starting a normal
+   transaction.  */
+static void
+tofu_suspend_batch_transaction (ctrl_t ctrl)
+{
+  end_transaction (ctrl, 2);
 }
 
+/* Resume a batch transaction if there is no extant batch transaction
+   and one has been requested using tofu_begin_batch_transaction.  */
+static void
+tofu_resume_batch_transaction (ctrl_t ctrl)
+{
+  begin_transaction (ctrl, 1);
+}
 
 
 \f
@@ -567,7 +633,7 @@ initdb (sqlite3 *db)
        "create table bindings\n"
        " (oid INTEGER PRIMARY KEY AUTOINCREMENT,\n"
        "  fingerprint TEXT, email TEXT, user_id TEXT, time INTEGER,\n"
-       "  policy BOOLEAN CHECK (policy in (%d, %d, %d, %d, %d)),\n"
+       "  policy INTEGER CHECK (policy in (%d, %d, %d, %d, %d)),\n"
        "  conflict STRING,\n"
        "  unique (fingerprint, email));\n"
        "create index bindings_fingerprint_email\n"
@@ -612,6 +678,19 @@ initdb (sqlite3 *db)
     }
 
  out:
+  if (! rc)
+    {
+      /* Early version of the v1 format did not include the encryption
+         table.  Add it.  */
+      sqlite3_exec (db,
+                    "create table if not exists encryptions"
+                    " (binding INTEGER NOT NULL,"
+                    "  time INTEGER);"
+                    "create index if not exists encryptions_binding"
+                    " on encryptions (binding);\n",
+                    NULL, NULL, &err);
+    }
+
   if (rc)
     {
       rc = sqlite3_exec (db, "rollback;", NULL, NULL, &err);
@@ -637,6 +716,34 @@ initdb (sqlite3 *db)
     }
 }
 
+static int
+busy_handler (void *cookie, int call_count)
+{
+  ctrl_t ctrl = cookie;
+  tofu_dbs_t dbs = ctrl->tofu.dbs;
+
+  (void) call_count;
+
+  /* Update the lock file time stamp so that the current owner knows
+     that we want the lock.  */
+  if (dbs)
+    {
+      /* Note: we don't fail if we can't create the lock file: this
+         process will have to wait a bit longer, but otherwise nothing
+         horrible should happen.  */
+
+      int fd = open (dbs->want_lock_file, O_CREAT|O_WRONLY|O_TRUNC,
+                     S_IRUSR|S_IRGRP|S_IROTH|S_IWUSR);
+      if (fd == -1)
+        log_debug ("TOFU: Error opening '%s': %s\n",
+                   dbs->want_lock_file, strerror (errno));
+      else
+        close (fd);
+    }
+
+  /* Call again.  */
+  return 1;
+}
 
 /* Create a new DB handle.  Returns NULL on error.  */
 /* FIXME: Change to return an error code for better reporting by the
@@ -661,12 +768,14 @@ opendbs (ctrl_t ctrl)
           sqlite3_close (db);
           db = NULL;
         }
-      xfree (filename);
 
       /* If a DB is locked wait up to 5 seconds for the lock to be cleared
          before failing.  */
       if (db)
-        sqlite3_busy_timeout (db, 5 * 1000);
+        {
+          sqlite3_busy_timeout (db, 5 * 1000);
+          sqlite3_busy_handler (db, busy_handler, ctrl);
+        }
 
       if (db && initdb (db))
         {
@@ -678,7 +787,10 @@ opendbs (ctrl_t ctrl)
         {
           ctrl->tofu.dbs = xmalloc_clear (sizeof *ctrl->tofu.dbs);
           ctrl->tofu.dbs->db = db;
+          ctrl->tofu.dbs->want_lock_file = xasprintf ("%s-want-lock", filename);
         }
+
+      xfree (filename);
     }
   else
     log_assert (ctrl->tofu.dbs->db);
@@ -698,16 +810,18 @@ tofu_closedbs (ctrl_t ctrl)
   if (!dbs)
     return;  /* Not initialized.  */
 
-  if (dbs->batch_update)
-    end_transaction (ctrl, 2);
+  log_assert (dbs->in_transaction == 0);
+
+  end_transaction (ctrl, 2);
 
-  /* Arghh, that is asurprising use of the struct.  */
+  /* Arghh, that is a surprising use of the struct.  */
   for (statements = (void *) &dbs->s;
        (void *) statements < (void *) &(&dbs->s)[1];
        statements ++)
     sqlite3_finalize (*statements);
 
   sqlite3_close (dbs->db);
+  xfree (dbs->want_lock_file);
   xfree (dbs);
   ctrl->tofu.dbs = NULL;
 }
@@ -744,15 +858,13 @@ get_single_long_cb2 (void *cookie, int argc, char **argv, char **azColName,
    If SHOW_OLD is set, the binding's old policy is displayed.  */
 static gpg_error_t
 record_binding (tofu_dbs_t dbs, const char *fingerprint, const char *email,
-               const char *user_id, enum tofu_policy policy, int show_old)
+               const char *user_id, enum tofu_policy policy,
+                const char *conflict,
+                int show_old, time_t now)
 {
   char *fingerprint_pp = format_hexfingerprint (fingerprint, NULL, 0);
   gpg_error_t rc;
   char *err = NULL;
-  /* policy_old needs to be a long and not an enum tofu_policy,
-     because we pass it by reference to get_single_long_cb2, which
-     expects a long.  */
-  long policy_old = TOFU_POLICY_NONE;
 
   if (! (policy == TOFU_POLICY_AUTO
         || policy == TOFU_POLICY_GOOD
@@ -762,44 +874,44 @@ record_binding (tofu_dbs_t dbs, const char *fingerprint, const char *email,
     log_bug ("%s: Bad value for policy (%d)!\n", __func__, policy);
 
 
-  if (show_old)
+  if (DBG_TRUST || show_old)
     {
       /* Get the old policy.  Since this is just for informational
        * purposes, there is no need to start a transaction or to die
        * if there is a failure.  */
+
+      /* policy_old needs to be a long and not an enum tofu_policy,
+         because we pass it by reference to get_single_long_cb2, which
+         expects a long.  */
+      long policy_old = TOFU_POLICY_NONE;
+
       rc = gpgsql_stepx
        (dbs->db, &dbs->s.record_binding_get_old_policy,
          get_single_long_cb2, &policy_old, &err,
         "select policy from bindings where fingerprint = ? and email = ?",
-        SQLITE_ARG_STRING, fingerprint, SQLITE_ARG_STRING, email,
-         SQLITE_ARG_END);
+        GPGSQL_ARG_STRING, fingerprint, GPGSQL_ARG_STRING, email,
+         GPGSQL_ARG_END);
       if (rc)
        {
          log_debug ("TOFU: Error reading from binding database"
-                    " (reading policy for <%s, %s>): %s\n",
+                    " (reading policy for <key: %s, user id: %s>): %s\n",
                     fingerprint, email, err);
          sqlite3_free (err);
        }
-    }
 
-  if (DBG_TRUST)
-    {
       if (policy_old != TOFU_POLICY_NONE)
-       log_debug ("Changing TOFU trust policy for binding <%s, %s>"
-                  " from %s to %s.\n",
-                  fingerprint, email,
-                  tofu_policy_str (policy_old),
-                  tofu_policy_str (policy));
+        (show_old ? log_info : log_debug)
+          ("Changing TOFU trust policy for binding"
+           " <key: %s, user id: %s> from %s to %s.\n",
+           fingerprint, show_old ? user_id : email,
+           tofu_policy_str (policy_old),
+           tofu_policy_str (policy));
       else
-       log_debug ("Set TOFU trust policy for binding <%s, %s> to %s.\n",
-                  fingerprint, email,
-                  tofu_policy_str (policy));
-    }
-
-  if (policy_old == policy)
-    {
-      rc = 0;
-      goto leave; /* Nothing to do.  */
+        (show_old ? log_info : log_debug)
+          ("Setting TOFU trust policy for new binding"
+           " <key: %s, user id: %s> to %s.\n",
+           fingerprint, show_old ? user_id : email,
+           tofu_policy_str (policy));
     }
 
   if (opt.dry_run)
@@ -812,21 +924,24 @@ record_binding (tofu_dbs_t dbs, const char *fingerprint, const char *email,
   rc = gpgsql_stepx
     (dbs->db, &dbs->s.record_binding_update, NULL, NULL, &err,
      "insert or replace into bindings\n"
-     " (oid, fingerprint, email, user_id, time, policy)\n"
+     " (oid, fingerprint, email, user_id, time, policy, conflict)\n"
      " values (\n"
      /* If we don't explicitly reuse the OID, then SQLite will
        reallocate a new one.  We just need to search for the OID
        based on the fingerprint and email since they are unique.  */
      "  (select oid from bindings where fingerprint = ? and email = ?),\n"
-     "  ?, ?, ?, strftime('%s','now'), ?);",
-     SQLITE_ARG_STRING, fingerprint, SQLITE_ARG_STRING, email,
-     SQLITE_ARG_STRING, fingerprint, SQLITE_ARG_STRING, email,
-     SQLITE_ARG_STRING, user_id, SQLITE_ARG_INT, (int) policy,
-     SQLITE_ARG_END);
+     "  ?, ?, ?, ?, ?, ?);",
+     GPGSQL_ARG_STRING, fingerprint, GPGSQL_ARG_STRING, email,
+     GPGSQL_ARG_STRING, fingerprint, GPGSQL_ARG_STRING, email,
+     GPGSQL_ARG_STRING, user_id,
+     GPGSQL_ARG_LONG_LONG, (long long) now,
+     GPGSQL_ARG_INT, (int) policy,
+     GPGSQL_ARG_STRING, conflict ? conflict : "",
+     GPGSQL_ARG_END);
   if (rc)
     {
       log_error (_("error updating TOFU database: %s\n"), err);
-      print_further_info (" insert bindings <%s, %s> = %s",
+      print_further_info (" insert bindings <key: %s, user id: %s> = %s",
                           fingerprint, email, tofu_policy_str (policy));
       sqlite3_free (err);
       goto leave;
@@ -893,6 +1008,10 @@ struct signature_stats
   /* Number of signatures during this time.  */
   unsigned long count;
 
+  /* If the corresponding key/user id has been expired / revoked.  */
+  int is_expired;
+  int is_revoked;
+
   /* The key that generated this signature.  */
   char fingerprint[1];
 };
@@ -916,7 +1035,7 @@ signature_stats_prepend (struct signature_stats **statsp,
                         unsigned long count)
 {
   struct signature_stats *stats =
-    xmalloc (sizeof (*stats) + strlen (fingerprint));
+    xmalloc_clear (sizeof (*stats) + strlen (fingerprint));
 
   stats->next = *statsp;
   *statsp = stats;
@@ -1016,14 +1135,15 @@ get_policy (tofu_dbs_t dbs, const char *fingerprint, const char *email,
                       strings_collect_cb2, &strlist, &err,
                       "select policy, conflict from bindings\n"
                       " where fingerprint = ? and email = ?",
-                      SQLITE_ARG_STRING, fingerprint,
-                      SQLITE_ARG_STRING, email,
-                      SQLITE_ARG_END);
+                      GPGSQL_ARG_STRING, fingerprint,
+                      GPGSQL_ARG_STRING, email,
+                      GPGSQL_ARG_END);
   if (rc)
     {
       log_error (_("error reading TOFU database: %s\n"), err);
       print_further_info ("checking for existing bad bindings");
       sqlite3_free (err);
+      rc = gpg_error (GPG_ERR_GENERAL);
       goto out;
     }
 
@@ -1071,7 +1191,7 @@ get_policy (tofu_dbs_t dbs, const char *fingerprint, const char *email,
 
   /* If CONFLICT is set, then policy should be TOFU_POLICY_ASK.  But,
      just in case, we do the check again here and ignore the conflict
-     is POLICY is not TOFU_POLICY_ASK.  */
+     if POLICY is not TOFU_POLICY_ASK.  */
   if (conflict)
     {
       if (policy == TOFU_POLICY_ASK && *strlist->next->d)
@@ -1098,15 +1218,15 @@ get_policy (tofu_dbs_t dbs, const char *fingerprint, const char *email,
 /* Format the first part of a conflict message and return that as a
  * malloced string.  */
 static char *
-format_conflict_msg_part1 (int policy, const char *conflict,
-                           const char *fingerprint, const char *email)
+format_conflict_msg_part1 (int policy, strlist_t conflict_set,
+                           const char *email)
 {
   estream_t fp;
-  char *binding;
-  int binding_shown = 0;
+  char *fingerprint;
   char *tmpstr, *text;
 
-  binding = xasprintf ("<%s, %s>", fingerprint, email);
+  log_assert (conflict_set);
+  fingerprint = conflict_set->d;
 
   fp = es_fopenmem (0, "rw,samethread");
   if (!fp)
@@ -1115,37 +1235,31 @@ format_conflict_msg_part1 (int policy, const char *conflict,
 
   if (policy == TOFU_POLICY_NONE)
     {
-      es_fprintf (fp, _("The binding %s is NOT known."), binding);
+      es_fprintf (fp,
+                  _("This is the first time the email address \"%s\" is "
+                    "being used with key %s."),
+                  email, fingerprint);
       es_fputs ("  ", fp);
-      binding_shown = 1;
     }
-  else if (policy == TOFU_POLICY_ASK
-           /* If there the conflict is with itself, then don't
-            * display this message.  */
-           && conflict && strcmp (conflict, fingerprint))
+  else if (policy == TOFU_POLICY_ASK && conflict_set->next)
     {
-      es_fprintf (fp,
-                  _("The key with fingerprint %s raised a conflict "
-                    "with the binding %s."
-                    "  Since this binding's policy was 'auto', it was "
-                    "changed to 'ask'."),
-                  conflict, binding);
+      int conflicts = strlist_length (conflict_set);
+      es_fprintf (fp, _("The email address \"%s\" is associated with %d keys!"),
+                  email, conflicts);
+      if (opt.verbose)
+        es_fprintf (fp,
+                    _("  Since this binding's policy was 'auto', it has been "
+                      "changed to 'ask'."));
       es_fputs ("  ", fp);
-      binding_shown = 1;
     }
 
-  /* TRANSLATORS: The %s%s is replaced by either a fingerprint and a
-     blank or by two empty strings.  */
   es_fprintf (fp,
-              _("Please indicate whether you believe the binding %s%s"
-                "is legitimate (the key belongs to the stated owner) "
-                "or a forgery (bad)."),
-              binding_shown ? "" : binding,
-              binding_shown ? "" : " ");
+              _("Please indicate whether this email address should"
+                " be associated with key %s or whether you think someone"
+                " is impersonating \"%s\"."),
+              fingerprint, email);
   es_fputc ('\n', fp);
 
-  xfree (binding);
-
   es_fputc (0, fp);
   if (es_fclose_snatch (fp, (void **)&tmpstr, NULL))
     log_fatal ("error snatching memory stream\n");
@@ -1156,11 +1270,183 @@ format_conflict_msg_part1 (int policy, const char *conflict,
 }
 
 
+/* Return 1 if A signed B and B signed A.  */
+static int
+cross_sigs (const char *email, kbnode_t a, kbnode_t b)
+{
+  int i;
+
+  PKT_public_key *a_pk = a->pkt->pkt.public_key;
+  PKT_public_key *b_pk = b->pkt->pkt.public_key;
+
+  char a_keyid[33];
+  char b_keyid[33];
+
+  if (DBG_TRUST)
+    {
+      format_keyid (pk_main_keyid (a_pk),
+                    KF_LONG, a_keyid, sizeof (a_keyid));
+      format_keyid (pk_main_keyid (b_pk),
+                    KF_LONG, b_keyid, sizeof (b_keyid));
+    }
+
+  for (i = 0; i < 2; i ++)
+    {
+      /* See if SIGNER signed SIGNEE.  */
+
+      kbnode_t signer = i == 0 ? a : b;
+      kbnode_t signee = i == 0 ? b : a;
+
+      PKT_public_key *signer_pk = signer->pkt->pkt.public_key;
+      u32 *signer_kid = pk_main_keyid (signer_pk);
+      kbnode_t n;
+
+      int saw_email = 0;
+
+      /* Iterate over SIGNEE's keyblock and see if there is a valid
+         signature from SIGNER.  */
+      for (n = signee; n; n = n->next)
+        {
+          PKT_signature *sig;
+
+          if (n->pkt->pkttype == PKT_USER_ID)
+            {
+              if (saw_email)
+                /* We're done: we've processed all signatures on the
+                   user id.  */
+                break;
+              else
+                {
+                  /* See if this is the matching user id.  */
+                  PKT_user_id *user_id = n->pkt->pkt.user_id;
+                  char *email2 = email_from_user_id (user_id->name);
+
+                  if (strcmp (email, email2) == 0)
+                    saw_email = 1;
+
+                  xfree (email2);
+                }
+            }
+
+          if (! saw_email)
+            continue;
+
+          if (n->pkt->pkttype != PKT_SIGNATURE)
+            continue;
+
+          sig = n->pkt->pkt.signature;
+
+          if (! (sig->sig_class == 0x10
+                 || sig->sig_class == 0x11
+                 || sig->sig_class == 0x12
+                 || sig->sig_class == 0x13))
+            /* Not a signature over a user id.  */
+            continue;
+
+          /* SIG is on SIGNEE's keyblock.  If SIG was generated by the
+             signer, then it's a match.  */
+          if (keyid_cmp (sig->keyid, signer_kid) == 0)
+            /* Match!  */
+            break;
+        }
+      if (! n)
+        /* We didn't find a signature from signer over signee.  */
+        {
+          if (DBG_TRUST)
+            log_debug ("No cross sig between %s and %s\n",
+                       a_keyid, b_keyid);
+          return 0;
+        }
+    }
+
+  /* A signed B and B signed A.  */
+  if (DBG_TRUST)
+    log_debug ("Cross sig between %s and %s\n",
+               a_keyid, b_keyid);
+
+  return 1;
+}
+
+/* Return whether the key was signed by an ultimately trusted key.  */
+static int
+signed_by_utk (const char *email, kbnode_t a)
+{
+  kbnode_t n;
+  int saw_email = 0;
+
+  for (n = a; n; n = n->next)
+    {
+      PKT_signature *sig;
+
+      if (n->pkt->pkttype == PKT_USER_ID)
+        {
+          if (saw_email)
+            /* We're done: we've processed all signatures on the
+               user id.  */
+            break;
+          else
+            {
+              /* See if this is the matching user id.  */
+              PKT_user_id *user_id = n->pkt->pkt.user_id;
+              char *email2 = email_from_user_id (user_id->name);
+
+              if (strcmp (email, email2) == 0)
+                saw_email = 1;
+
+              xfree (email2);
+            }
+        }
+
+      if (! saw_email)
+        continue;
+
+      if (n->pkt->pkttype != PKT_SIGNATURE)
+        continue;
+
+      sig = n->pkt->pkt.signature;
+
+      if (! (sig->sig_class == 0x10
+             || sig->sig_class == 0x11
+             || sig->sig_class == 0x12
+             || sig->sig_class == 0x13))
+        /* Not a signature over a user id.  */
+        continue;
+
+      /* SIG is on SIGNEE's keyblock.  If SIG was generated by the
+         signer, then it's a match.  */
+      if (tdb_keyid_is_utk (sig->keyid))
+        {
+          /* Match!  */
+          if (DBG_TRUST)
+            log_debug ("TOFU: %s is signed by an ultimately trusted key.\n",
+                       pk_keyid_str (a->pkt->pkt.public_key));
+
+          return 1;
+        }
+    }
+
+  if (DBG_TRUST)
+    log_debug ("TOFU: %s is NOT signed by an ultimately trusted key.\n",
+               pk_keyid_str (a->pkt->pkt.public_key));
+
+  return 0;
+}
+
+
+enum
+  {
+    BINDING_NEW = 1 << 0,
+    BINDING_CONFLICT = 1 << 1,
+    BINDING_EXPIRED = 1 << 2,
+    BINDING_REVOKED = 1 << 3
+  };
+
+
 /* Ask the user about the binding.  There are three ways we could end
  * up here:
  *
  *   - This is a new binding and there is a conflict
- *     (policy == TOFU_POLICY_NONE && bindings_with_this_email_count > 0),
+ *     (policy == TOFU_POLICY_NONE && conflict_set_count > 1),
  *
  *   - This is a new binding and opt.tofu_default_policy is set to
  *     ask.  (policy == TOFU_POLICY_NONE && opt.tofu_default_policy ==
@@ -1168,59 +1454,73 @@ format_conflict_msg_part1 (int policy, const char *conflict,
  *
  *   - The policy is ask (the user deferred last time) (policy ==
  *     TOFU_POLICY_ASK).
+ *
+ * Note: this function must not be called while in a transaction!
+ *
+ * CONFLICT_SET includes all of the conflicting bindings
+ * with FINGERPRINT first.  FLAGS is a bit-wise or of
+ * BINDING_NEW, etc.
  */
 static void
-ask_about_binding (tofu_dbs_t dbs,
+ask_about_binding (ctrl_t ctrl,
                    enum tofu_policy *policy,
                    int *trust_level,
-                   int bindings_with_this_email_count,
-                   strlist_t bindings_with_this_email,
-                   char *conflict,
+                   strlist_t conflict_set,
                    const char *fingerprint,
                    const char *email,
-                   const char *user_id)
+                   const char *user_id,
+                   time_t now)
 {
+  tofu_dbs_t dbs;
+  strlist_t iter;
+  int conflict_set_count = strlist_length (conflict_set);
   char *sqerr = NULL;
   int rc;
   estream_t fp;
   strlist_t other_user_ids = NULL;
   struct signature_stats *stats = NULL;
   struct signature_stats *stats_iter = NULL;
-  char *prompt;
+  char *prompt = NULL;
   char *choices;
 
+  dbs = ctrl->tofu.dbs;
+  log_assert (dbs);
+  log_assert (dbs->in_transaction == 0);
+
   fp = es_fopenmem (0, "rw,samethread");
   if (!fp)
     log_fatal ("error creating memory stream: %s\n",
                gpg_strerror (gpg_error_from_syserror()));
 
   {
-    char *text = format_conflict_msg_part1 (*policy, conflict,
-                                            fingerprint, email);
+    char *text = format_conflict_msg_part1 (*policy, conflict_set, email);
     es_fputs (text, fp);
     es_fputc ('\n', fp);
     xfree (text);
   }
 
+  begin_transaction (ctrl, 0);
+
   /* Find other user ids associated with this key and whether the
    * bindings are marked as good or bad.  */
   rc = gpgsql_stepx
     (dbs->db, &dbs->s.get_trust_gather_other_user_ids,
      strings_collect_cb2, &other_user_ids, &sqerr,
      "select user_id, policy from bindings where fingerprint = ?;",
-     SQLITE_ARG_STRING, fingerprint, SQLITE_ARG_END);
+     GPGSQL_ARG_STRING, fingerprint, GPGSQL_ARG_END);
   if (rc)
     {
       log_error (_("error gathering other user IDs: %s\n"), sqerr);
       sqlite3_free (sqerr);
       sqerr = NULL;
+      rc = gpg_error (GPG_ERR_GENERAL);
     }
 
   if (other_user_ids)
     {
       strlist_t strlist_iter;
 
-      es_fprintf (fp, _("Known user IDs associated with this key:\n"));
+      es_fprintf (fp, _("This key's user IDs:\n"));
       for (strlist_iter = other_user_ids;
            strlist_iter;
            strlist_iter = strlist_iter->next)
@@ -1244,45 +1544,85 @@ ask_about_binding (tofu_dbs_t dbs,
       free_strlist (other_user_ids);
     }
 
-  /* Find other keys associated with this email address.  */
-  /* FIXME: When generating the statistics, do we want the time
-     embedded in the signature (column 'sig_time') or the time that
-     we first verified the signature (column 'time').  */
-  rc = gpgsql_stepx
-    (dbs->db, &dbs->s.get_trust_gather_other_keys,
-     signature_stats_collect_cb, &stats, &sqerr,
-     "select fingerprint, policy, time_ago, count(*)\n"
-     " from (select bindings.*,\n"
-     "        case\n"
-     /* From the future (but if its just a couple of hours in the
-      * future don't turn it into a warning)?  Or should we use
-      * small, medium or large units?  (Note: whatever we do, we
-      * keep the value in seconds.  Then when we group, everything
-      * that rounds to the same number of seconds is grouped.)  */
-     "         when delta < -("STRINGIFY (TIME_AGO_FUTURE_IGNORE)") then -1\n"
-     "         when delta < ("STRINGIFY (TIME_AGO_MEDIUM_THRESHOLD)")\n"
-     "          then max(0,\n"
-     "                   round(delta / ("STRINGIFY (TIME_AGO_UNIT_SMALL)"))\n"
-     "               * ("STRINGIFY (TIME_AGO_UNIT_SMALL)"))\n"
-     "         when delta < ("STRINGIFY (TIME_AGO_LARGE_THRESHOLD)")\n"
-     "          then round(delta / ("STRINGIFY (TIME_AGO_UNIT_MEDIUM)"))\n"
-     "               * ("STRINGIFY (TIME_AGO_UNIT_MEDIUM)")\n"
-     "         else round(delta / ("STRINGIFY (TIME_AGO_UNIT_LARGE)"))\n"
-     "              * ("STRINGIFY (TIME_AGO_UNIT_LARGE)")\n"
-     "        end time_ago,\n"
-     "        delta time_ago_raw\n"
-     "       from bindings\n"
-     "       left join\n"
-     "         (select *,\n"
-     "            cast(strftime('%s','now') - sig_time as real) delta\n"
-     "           from signatures) ss\n"
-     "        on ss.binding = bindings.oid)\n"
-     " where email = ?\n"
-     " group by fingerprint, time_ago\n"
-     /* Make sure the current key is first.  */
-     " order by fingerprint = ? asc, fingerprint desc, time_ago desc;\n",
-     SQLITE_ARG_STRING, email, SQLITE_ARG_STRING, fingerprint,
-     SQLITE_ARG_END);
+  /* Get the stats for all the keys in CONFLICT_SET.  */
+  strlist_rev (&conflict_set);
+  for (iter = conflict_set; iter && ! rc; iter = iter->next)
+    {
+#define STATS_SQL(table, time, sign)                         \
+         "select fingerprint, policy, time_ago, count(*)\n" \
+         " from\n" \
+         "  (select bindings.*,\n" \
+         "     "sign" case\n" \
+         "       when delta ISNULL then 1\n" \
+         /* From the future (but if its just a couple of hours in the \
+          * future don't turn it into a warning)?  Or should we use \
+          * small, medium or large units?  (Note: whatever we do, we \
+          * keep the value in seconds.  Then when we group, everything \
+          * that rounds to the same number of seconds is grouped.)  */ \
+         "      when delta < -("STRINGIFY (TIME_AGO_FUTURE_IGNORE)") then 2\n" \
+         "      when delta < ("STRINGIFY (TIME_AGO_SMALL_THRESHOLD)")\n" \
+         "       then 3\n" \
+         "      when delta < ("STRINGIFY (TIME_AGO_MEDIUM_THRESHOLD)")\n" \
+         "       then 4\n" \
+         "      when delta < ("STRINGIFY (TIME_AGO_LARGE_THRESHOLD)")\n" \
+         "       then 5\n" \
+         "      else 6\n" \
+         "     end time_ago,\n" \
+         "    delta time_ago_raw\n" \
+         "   from bindings\n" \
+         "   left join\n" \
+         "     (select *,\n" \
+         "        cast(? - " time " as real) delta\n" \
+         "       from " table ") ss\n" \
+         "    on ss.binding = bindings.oid)\n" \
+         " where email = ? and fingerprint = ?\n" \
+         " group by time_ago\n" \
+         /* Make sure the current key is first.  */ \
+         " order by time_ago desc;\n"
+
+      /* Use the time when we saw the signature, not when the
+         signature was created as that can be forged.  */
+      rc = gpgsql_stepx
+        (dbs->db, &dbs->s.get_trust_gather_signature_stats,
+         signature_stats_collect_cb, &stats, &sqerr,
+         STATS_SQL ("signatures", "time", ""),
+         GPGSQL_ARG_LONG_LONG, (long long) now,
+         GPGSQL_ARG_STRING, email,
+         GPGSQL_ARG_STRING, iter->d,
+         GPGSQL_ARG_END);
+      if (rc)
+        {
+          rc = gpg_error (GPG_ERR_GENERAL);
+          break;
+        }
+
+      if (!stats || strcmp (iter->d, stats->fingerprint) != 0)
+        /* No stats for this binding.  Add a dummy entry.  */
+        signature_stats_prepend (&stats, iter->d, TOFU_POLICY_AUTO, 1, 1);
+
+      rc = gpgsql_stepx
+        (dbs->db, &dbs->s.get_trust_gather_encryption_stats,
+         signature_stats_collect_cb, &stats, &sqerr,
+         STATS_SQL ("encryptions", "time", "-"),
+         GPGSQL_ARG_LONG_LONG, (long long) now,
+         GPGSQL_ARG_STRING, email,
+         GPGSQL_ARG_STRING, iter->d,
+         GPGSQL_ARG_END);
+      if (rc)
+        {
+          rc = gpg_error (GPG_ERR_GENERAL);
+          break;
+        }
+
+#undef STATS_SQL
+
+      if (!stats || strcmp (iter->d, stats->fingerprint) != 0
+          || stats->time_ago > 0)
+        /* No stats for this binding.  Add a dummy entry.  */
+        signature_stats_prepend (&stats, iter->d, TOFU_POLICY_AUTO, -1, 1);
+    }
+  end_transaction (ctrl, 0);
+  strlist_rev (&conflict_set);
   if (rc)
     {
       strlist_t strlist_iter;
@@ -1295,9 +1635,9 @@ ask_about_binding (tofu_dbs_t dbs,
                                " associated with %d key:\n",
                                "The email address \"%s\" is"
                                " associated with %d keys:\n",
-                               bindings_with_this_email_count),
-                  email, bindings_with_this_email_count);
-      for (strlist_iter = bindings_with_this_email;
+                               conflict_set_count),
+                  email, conflict_set_count);
+      for (strlist_iter = conflict_set;
            strlist_iter;
            strlist_iter = strlist_iter->next)
         es_fprintf (fp, "  %s\n", strlist_iter->d);
@@ -1305,20 +1645,21 @@ ask_about_binding (tofu_dbs_t dbs,
   else
     {
       char *key = NULL;
+      strlist_t binding;
+      int seen_in_past = 0;
 
-      if (! stats || strcmp (stats->fingerprint, fingerprint))
-        {
-          /* If we have already added this key to the DB, then it will
-           * be first (see the above select).  Since the first key on
-           * the list is not this key, we must not yet have verified any
-           * messages signed by this key.  Add a dummy entry.  */
-          signature_stats_prepend (&stats, fingerprint, TOFU_POLICY_AUTO, 0, 0);
-        }
-
-      es_fprintf (fp, _("Statistics for keys with the email address \"%s\":\n"),
+      es_fprintf (fp, _("Statistics for keys"
+                        " with the email address \"%s\":\n"),
                   email);
       for (stats_iter = stats; stats_iter; stats_iter = stats_iter->next)
         {
+#if 0
+          log_debug ("%s: time_ago: %ld; count: %ld\n",
+                     stats_iter->fingerprint,
+                     stats_iter->time_ago,
+                     stats_iter->count);
+#endif
+
           if (! key || strcmp (key, stats_iter->fingerprint))
             {
               int this_key;
@@ -1328,6 +1669,26 @@ ask_about_binding (tofu_dbs_t dbs,
               this_key = strcmp (key, fingerprint) == 0;
               key_pp = format_hexfingerprint (key, NULL, 0);
               es_fprintf (fp, "  %s (", key_pp);
+
+              /* Find the associated binding.  */
+              for (binding = conflict_set;
+                   binding;
+                   binding = binding->next)
+                if (strcmp (key, binding->d) == 0)
+                  break;
+              log_assert (binding);
+
+              if ((binding->flags & BINDING_REVOKED))
+                {
+                  es_fprintf (fp, _("revoked"));
+                  es_fprintf (fp, _(", "));
+                }
+              else if ((binding->flags & BINDING_EXPIRED))
+                {
+                  es_fprintf (fp, _("expired"));
+                  es_fprintf (fp, _(", "));
+                }
+
               if (this_key)
                 es_fprintf (fp, _("this key"));
               else
@@ -1335,44 +1696,68 @@ ask_about_binding (tofu_dbs_t dbs,
                             tofu_policy_str (stats_iter->policy));
               es_fputs ("):\n", fp);
               xfree (key_pp);
+
+              seen_in_past = 0;
             }
 
+          if (labs(stats_iter->time_ago) == 1)
+            {
+              /* The 1 in this case is the NULL entry.  */
+              log_assert (stats_iter->count == 1);
+              stats_iter->count = 0;
+            }
+          seen_in_past += stats_iter->count;
+
           es_fputs ("    ", fp);
-          if (stats_iter->time_ago == -1)
-            es_fprintf (fp, ngettext("%ld message signed in the future.",
-                                     "%ld messages signed in the future.",
-                                     stats_iter->count), stats_iter->count);
+          /* TANSLATORS: This string is concatenated with one of
+           * the day/week/month strings to form one sentence.  */
+          if (stats_iter->time_ago > 0)
+            es_fprintf (fp, ngettext("Verified %d message",
+                                     "Verified %d messages",
+                                     seen_in_past), seen_in_past);
+          else
+            es_fprintf (fp, ngettext("Encrypted %d message",
+                                     "Encrypted %d messages",
+                                     seen_in_past), seen_in_past);
+
+          if (!stats_iter->count)
+            es_fputs (".", fp);
+          else if (labs(stats_iter->time_ago) == 2)
+            {
+              es_fprintf (fp, "in the future.");
+              /* Reset it.  */
+              seen_in_past = 0;
+            }
           else
             {
-              long t_scaled = time_ago_scale (stats_iter->time_ago);
-
-              /* TANSLATORS: This string is concatenated with one of
-               * the day/week/month strings to form one sentence.  */
-              es_fprintf (fp, ngettext("%ld message signed",
-                                       "%ld messages signed",
-                                       stats_iter->count), stats_iter->count);
-              if (!stats_iter->count)
-                es_fputs (".", fp);
-              else if (stats_iter->time_ago < TIME_AGO_UNIT_MEDIUM)
-                es_fprintf (fp, ngettext(" over the past %ld day.",
-                                         " over the past %ld days.",
-                                         t_scaled), t_scaled);
-              else if (stats_iter->time_ago < TIME_AGO_UNIT_LARGE)
-                es_fprintf (fp, ngettext(" over the past %ld week.",
-                                         " over the past %ld weeks.",
-                                         t_scaled), t_scaled);
+              if (labs(stats_iter->time_ago) == 3)
+                es_fprintf (fp, ngettext(" over the past day.",
+                                         " over the past %d days.",
+                                         seen_in_past),
+                            TIME_AGO_SMALL_THRESHOLD
+                            / TIME_AGO_UNIT_SMALL);
+              else if (labs(stats_iter->time_ago) == 4)
+                es_fprintf (fp, ngettext(" over the past month.",
+                                         " over the past %d months.",
+                                         seen_in_past),
+                            TIME_AGO_MEDIUM_THRESHOLD
+                            / TIME_AGO_UNIT_MEDIUM);
+              else if (labs(stats_iter->time_ago) == 5)
+                es_fprintf (fp, ngettext(" over the past year.",
+                                         " over the past %d years.",
+                                         seen_in_past),
+                            TIME_AGO_LARGE_THRESHOLD
+                            / TIME_AGO_UNIT_LARGE);
+              else if (labs(stats_iter->time_ago) == 6)
+                es_fprintf (fp, _(" in the past."));
               else
-                es_fprintf (fp, ngettext(" over the past %ld month.",
-                                         " over the past %ld months.",
-                                         t_scaled), t_scaled);
+                log_assert (! "Broken SQL.\n");
             }
           es_fputs ("\n", fp);
         }
     }
 
-
-  if ((*policy == TOFU_POLICY_NONE && bindings_with_this_email_count > 0)
-      || (*policy == TOFU_POLICY_ASK && conflict))
+  if (conflict_set_count > 1 || (conflict_set->flags & BINDING_CONFLICT))
     {
       /* This is a conflict.  */
 
@@ -1385,15 +1770,15 @@ ask_about_binding (tofu_dbs_t dbs,
         {
           /* No translation.  Use the English text.  */
           text =
-            "Normally, there is only a single key associated with an email "
-            "address.  However, people sometimes generate a new key if "
+            "Normally, an email address is associated with a single key.  "
+            "However, people sometimes generate a new key if "
             "their key is too old or they think it might be compromised.  "
             "Alternatively, a new key may indicate a man-in-the-middle "
-            "attack!  Before accepting this key, you should talk to or "
+            "attack!  Before accepting this association, you should talk to or "
             "call the person to make sure this new key is legitimate.";
         }
       textbuf = format_text (text, 0, 72, 80);
-      es_fprintf (fp, "\n%s\n", text);
+      es_fprintf (fp, "\n%s\n", textbuf);
       xfree (textbuf);
     }
 
@@ -1410,6 +1795,10 @@ ask_about_binding (tofu_dbs_t dbs,
    * wrong choise (because he does not see that either).  As a small
    * benefit we allow C-L to redisplay everything.  */
   tty_printf ("%s", prompt);
+
+  /* Suspend any transaction: it could take a while until the user
+     responds.  */
+  tofu_suspend_batch_transaction (ctrl);
   while (1)
     {
       char *response;
@@ -1428,9 +1817,17 @@ ask_about_binding (tofu_dbs_t dbs,
       cpr_kill_prompt ();
       if (*response == CONTROL_L)
         tty_printf ("%s", prompt);
-      else if (strlen (response) == 1)
+      else if (!response[0])
+        /* Default to unknown.  Don't save it.  */
+        {
+          tty_printf (_("Defaulting to unknown."));
+          *policy = TOFU_POLICY_UNKNOWN;
+          break;
+        }
+      else if (!response[1])
         {
           char *choice = strchr (choices, *response);
+
           if (choice)
             {
               int c = ((size_t) choice - (size_t) choices) / 2;
@@ -1462,7 +1859,7 @@ ask_about_binding (tofu_dbs_t dbs,
                 }
 
               if (record_binding (dbs, fingerprint, email, user_id,
-                                  *policy, 0))
+                                  *policy, NULL, 0, now))
                 {
                   /* If there's an error registering the
                    * binding, don't save the signature.  */
@@ -1474,84 +1871,369 @@ ask_about_binding (tofu_dbs_t dbs,
       xfree (response);
     }
 
+  tofu_resume_batch_transaction (ctrl);
+
   xfree (prompt);
 
   signature_stats_free (stats);
 }
 
-
-/* Return the trust level (TRUST_NEVER, etc.) for the binding
- * <FINGERPRINT, EMAIL> (email is already normalized).  If no policy
- * is registered, returns TOFU_POLICY_NONE.  If an error occurs,
- * returns _tofu_GET_TRUST_ERROR.
- *
- * PK is the public key object for FINGERPRINT.
- *
- * USER_ID is the unadulterated user id.
- *
- * If MAY_ASK is set, then we may interact with the user.  This is
- * necessary if there is a conflict or the binding's policy is
- * TOFU_POLICY_ASK.  In the case of a conflict, we set the new
- * conflicting binding's policy to TOFU_POLICY_ASK.  In either case,
- * we return TRUST_UNDEFINED.  */
-static enum tofu_policy
-get_trust (tofu_dbs_t dbs, PKT_public_key *pk,
-           const char *fingerprint, const char *email,
-          const char *user_id, int may_ask)
+/* Return the set of keys that conflict with the binding <fingerprint,
+   email> (including the binding itself, which will be first in the
+   list).  For each returned key also sets BINDING_NEW, etc.  */
+static strlist_t
+build_conflict_set (tofu_dbs_t dbs,
+                    PKT_public_key *pk, const char *fingerprint,
+                    const char *email)
 {
-  enum tofu_policy policy;
-  char *conflict = NULL;
-  int rc;
-  char *sqerr = NULL;
-  strlist_t bindings_with_this_email = NULL;
-  int bindings_with_this_email_count;
-  int change_conflicting_to_ask = 0;
-  int trust_level = TRUST_UNKNOWN;
-
-  if (opt.batch)
-    may_ask = 0;
-
-  /* Make sure _tofu_GET_TRUST_ERROR isn't equal to any of the trust
-     levels.  */
-  log_assert (_tofu_GET_TRUST_ERROR != TRUST_UNKNOWN
-              && _tofu_GET_TRUST_ERROR != TRUST_EXPIRED
-              && _tofu_GET_TRUST_ERROR != TRUST_UNDEFINED
-              && _tofu_GET_TRUST_ERROR != TRUST_NEVER
-              && _tofu_GET_TRUST_ERROR != TRUST_MARGINAL
-              && _tofu_GET_TRUST_ERROR != TRUST_FULLY
-              && _tofu_GET_TRUST_ERROR != TRUST_ULTIMATE);
-
-  policy = get_policy (dbs, fingerprint, email, &conflict);
-  if (policy == TOFU_POLICY_AUTO || policy == TOFU_POLICY_NONE)
-    { /* See if the key is ultimately trusted.  If so, we're done.  */
-      u32 kid[2];
+  gpg_error_t rc;
+  char *sqerr;
+  strlist_t conflict_set = NULL;
+  int conflict_set_count;
+  strlist_t iter;
+  kbnode_t *kb_all;
+  KEYDB_HANDLE hd;
+  int i;
 
-      keyid_from_pk (pk, kid);
+  /* Get the fingerprints of any bindings that share the email address
+   * and whether the bindings have a known conflict.
+   *
+   * Note: if the binding in question is in the DB, it will also be
+   * returned.  Thus, if the result set is empty, then <email,
+   * fingerprint> is a new binding.  */
+  rc = gpgsql_stepx
+    (dbs->db, &dbs->s.get_trust_bindings_with_this_email,
+     strings_collect_cb2, &conflict_set, &sqerr,
+     "select"
+     /* A binding should only appear once, but try not to break in the
+      * case of corruption.  */
+     "  fingerprint || case sum(conflict NOTNULL) when 0 then '' else '!' end"
+     " from bindings where email = ?"
+     "  group by fingerprint"
+     /* Make sure the current key comes first in the result list (if
+        it is present).  */
+     "  order by fingerprint = ? asc, fingerprint desc;",
+     GPGSQL_ARG_STRING, email,
+     GPGSQL_ARG_STRING, fingerprint,
+     GPGSQL_ARG_END);
+  if (rc)
+    {
+      log_error (_("error reading TOFU database: %s\n"), sqerr);
+      print_further_info ("listing fingerprints");
+      sqlite3_free (sqerr);
+      rc = gpg_error (GPG_ERR_GENERAL);
+      return NULL;
+    }
 
-      if (tdb_keyid_is_utk (kid))
+  /* Set BINDING_CONFLICT if the binding has a known conflict.  This
+   * allows us to distinguish between bindings where the user
+   * explicitly set the policy to ask and bindings where we set the
+   * policy to ask due to a conflict.  */
+  for (iter = conflict_set; iter; iter = iter->next)
+    {
+      int l = strlen (iter->d);
+      if (!(l == 2 * MAX_FINGERPRINT_LEN
+            || l == 2 * MAX_FINGERPRINT_LEN + 1))
         {
-          if (policy == TOFU_POLICY_NONE)
-            {
-              if (record_binding (dbs, fingerprint, email, user_id,
-                                  TOFU_POLICY_AUTO, 0) != 0)
-                {
-                  log_error (_("error setting TOFU binding's trust level"
-                               " to %s\n"), "auto");
-                  trust_level = _tofu_GET_TRUST_ERROR;
-                  goto out;
-                }
-            }
+          log_error (_("TOFU db corruption detected.\n"));
+          print_further_info ("fingerprint '%s' is not %d characters long",
+                              iter->d, 2 * MAX_FINGERPRINT_LEN);
+        }
 
-          trust_level = TRUST_ULTIMATE;
-          goto out;
+      if (l >= 1 && iter->d[l - 1] == '!')
+        {
+          iter->flags |= BINDING_CONFLICT;
+          /* Remove the !.  */
+          iter->d[l - 1] = 0;
         }
     }
 
+  /* If the current binding has not yet been recorded, add it to the
+   * list.  (The order by above ensures that if it is present, it will
+   * be first.)  */
+  if (! (conflict_set && strcmp (conflict_set->d, fingerprint) == 0))
+    {
+      add_to_strlist (&conflict_set, fingerprint);
+      conflict_set->flags |= BINDING_NEW;
+    }
+
+  conflict_set_count = strlist_length (conflict_set);
+
+  /* Eliminate false conflicts.  */
+
+  if (conflict_set_count == 1)
+    /* We only have a single key.  There are no false conflicts to
+       eliminate.  But, we do need to set the flags.  */
+    {
+      if (pk->has_expired)
+        conflict_set->flags |= BINDING_EXPIRED;
+      if (pk->flags.revoked)
+        conflict_set->flags |= BINDING_REVOKED;
+
+      return conflict_set;
+    }
+
+  /* If two keys have cross signatures, then they are controlled by
+   * the same person and thus are not in conflict.  */
+  kb_all = xcalloc (sizeof (kb_all[0]), conflict_set_count);
+  hd = keydb_new ();
+  for (i = 0, iter = conflict_set;
+       i < conflict_set_count;
+       i ++, iter = iter->next)
+    {
+      char *fp = iter->d;
+      KEYDB_SEARCH_DESC desc;
+      kbnode_t kb;
+      PKT_public_key *binding_pk;
+      kbnode_t n;
+      int found_user_id;
+
+      rc = keydb_search_reset (hd);
+      if (rc)
+        {
+          log_error (_("resetting keydb: %s\n"),
+                     gpg_strerror (rc));
+          continue;
+        }
+
+      rc = classify_user_id (fp, &desc, 0);
+      if (rc)
+        {
+          log_error (_("error parsing key specification '%s': %s\n"),
+                     fp, gpg_strerror (rc));
+          continue;
+        }
+
+      rc = keydb_search (hd, &desc, 1, NULL);
+      if (rc)
+        {
+          /* Note: it is entirely possible that we don't have the key
+             corresponding to an entry in the TOFU DB.  This can
+             happen if we merge two TOFU DBs, but not the key
+             rings.  */
+          log_info (_("key \"%s\" not found: %s\n"),
+                    fp, gpg_strerror (rc));
+          continue;
+        }
+
+      rc = keydb_get_keyblock (hd, &kb);
+      if (rc)
+        {
+          log_error (_("error reading keyblock: %s\n"),
+                     gpg_strerror (rc));
+          print_further_info ("fingerprint: %s", fp);
+          continue;
+        }
+
+      merge_keys_and_selfsig (kb);
+
+      log_assert (kb->pkt->pkttype == PKT_PUBLIC_KEY);
+
+      kb_all[i] = kb;
+
+      /* Since we have the key block, use this opportunity to figure
+       * out if the binding is expired or revoked.  */
+      binding_pk = kb->pkt->pkt.public_key;
+
+      /* The binding is always expired/revoked if the key is
+       * expired/revoked.  */
+      if (binding_pk->has_expired)
+        iter->flags |= BINDING_EXPIRED;
+      if (binding_pk->flags.revoked)
+        iter->flags |= BINDING_REVOKED;
+
+      /* The binding is also expired/revoked if the user id is
+       * expired/revoked.  */
+      n = kb;
+      found_user_id = 0;
+      while ((n = find_next_kbnode (n, PKT_USER_ID)) && ! found_user_id)
+        {
+          PKT_user_id *user_id2 = n->pkt->pkt.user_id;
+          char *email2;
+
+          if (user_id2->attrib_data)
+            continue;
+
+          email2 = email_from_user_id (user_id2->name);
+
+          if (strcmp (email, email2) == 0)
+            {
+              found_user_id = 1;
+
+              if (user_id2->is_revoked)
+                iter->flags |= BINDING_REVOKED;
+              if (user_id2->is_expired)
+                iter->flags |= BINDING_EXPIRED;
+            }
+
+          xfree (email2);
+        }
+
+      if (! found_user_id)
+        {
+          log_info (_("TOFU db corruption detected.\n"));
+          print_further_info ("user id '%s' not on key block '%s'",
+                              email, fingerprint);
+        }
+    }
+  keydb_release (hd);
+
+  /* Now that we have the key blocks, check for cross sigs.  */
+  {
+    int j;
+    strlist_t *prevp;
+    strlist_t iter_next;
+    int die[conflict_set_count];
+
+    memset (die, 0, sizeof (die));
+
+    for (i = 0; i < conflict_set_count; i ++)
+      {
+        /* Look for cross sigs between this key (i == 0) or a key
+         * that has cross sigs with i == 0 (i.e., transitively) */
+        if (! (i == 0 || die[i]))
+          continue;
+
+        for (j = i + 1; j < conflict_set_count; j ++)
+          /* Be careful: we might not have a key block for a key.  */
+          if (kb_all[i] && kb_all[j] && cross_sigs (email, kb_all[i], kb_all[j]))
+            die[j] = 1;
+      }
+
+    /* Free unconflicting bindings (and all of the key blocks).  */
+    for (iter = conflict_set, prevp = &conflict_set, i = 0;
+         iter;
+         iter = iter_next, i ++)
+      {
+        iter_next = iter->next;
+
+        release_kbnode (kb_all[i]);
+
+        if (die[i])
+          {
+            *prevp = iter_next;
+            iter->next = NULL;
+            free_strlist (iter);
+            conflict_set_count --;
+          }
+        else
+          {
+            prevp = &iter->next;
+          }
+      }
+
+    /* We shouldn't have removed the head.  */
+    log_assert (conflict_set);
+    log_assert (conflict_set_count >= 1);
+  }
+  xfree (kb_all);
+
+  if (DBG_TRUST)
+    {
+      log_debug ("binding <key: %s, email: %s> conflicts:\n",
+                 fingerprint, email);
+      for (iter = conflict_set; iter; iter = iter->next)
+        {
+          log_debug ("  %s:%s%s%s%s\n",
+                     iter->d,
+                     (iter->flags & BINDING_NEW) ? " new" : "",
+                     (iter->flags & BINDING_CONFLICT) ? " known_conflict" : "",
+                     (iter->flags & BINDING_EXPIRED) ? " expired" : "",
+                     (iter->flags & BINDING_REVOKED) ? " revoked" : "");
+        }
+    }
+
+  return conflict_set;
+}
+
+
+/* Return the trust level (TRUST_NEVER, etc.) for the binding
+ * <FINGERPRINT, EMAIL> (email is already normalized).  If no policy
+ * is registered, returns TOFU_POLICY_NONE.  If an error occurs,
+ * returns _tofu_GET_TRUST_ERROR.
+ *
+ * PK is the public key object for FINGERPRINT.
+ *
+ * USER_ID is the unadulterated user id.
+ *
+ * If MAY_ASK is set, then we may interact with the user.  This is
+ * necessary if there is a conflict or the binding's policy is
+ * TOFU_POLICY_ASK.  In the case of a conflict, we set the new
+ * conflicting binding's policy to TOFU_POLICY_ASK.  In either case,
+ * we return TRUST_UNDEFINED.  Note: if MAY_ASK is set, then this
+ * function must not be called while in a transaction!  */
+static enum tofu_policy
+get_trust (ctrl_t ctrl, PKT_public_key *pk,
+           const char *fingerprint, const char *email,
+          const char *user_id, int may_ask, time_t now)
+{
+  tofu_dbs_t dbs = ctrl->tofu.dbs;
+  int in_transaction = 0;
+  enum tofu_policy policy;
+  int rc;
+  char *sqerr = NULL;
+  int change_conflicting_to_ask = 0;
+  strlist_t conflict_set = NULL;
+  int conflict_set_count;
+  int trust_level = TRUST_UNKNOWN;
+  strlist_t iter;
+
+  log_assert (dbs);
+
+  if (may_ask)
+    log_assert (dbs->in_transaction == 0);
+
+  if (opt.batch)
+    may_ask = 0;
+
+  log_assert (keyid_cmp (pk_keyid (pk), pk_main_keyid (pk)) == 0);
+
+  /* Make sure _tofu_GET_TRUST_ERROR isn't equal to any of the trust
+     levels.  */
+  log_assert (_tofu_GET_TRUST_ERROR != TRUST_UNKNOWN
+              && _tofu_GET_TRUST_ERROR != TRUST_EXPIRED
+              && _tofu_GET_TRUST_ERROR != TRUST_UNDEFINED
+              && _tofu_GET_TRUST_ERROR != TRUST_NEVER
+              && _tofu_GET_TRUST_ERROR != TRUST_MARGINAL
+              && _tofu_GET_TRUST_ERROR != TRUST_FULLY
+              && _tofu_GET_TRUST_ERROR != TRUST_ULTIMATE);
+
+  begin_transaction (ctrl, 0);
+  in_transaction = 1;
+
+  policy = get_policy (dbs, fingerprint, email, NULL);
+  {
+    /* See if the key is ultimately trusted.  If so, we're done.  */
+    u32 kid[2];
+
+    keyid_from_pk (pk, kid);
+
+    if (tdb_keyid_is_utk (kid))
+      {
+        if (policy == TOFU_POLICY_NONE)
+          /* New binding.  */
+          {
+            if (record_binding (dbs, fingerprint, email, user_id,
+                                TOFU_POLICY_GOOD, NULL, 0, now) != 0)
+              {
+                log_error (_("error setting TOFU binding's trust level"
+                             " to %s\n"), "good");
+                trust_level = _tofu_GET_TRUST_ERROR;
+                goto out;
+              }
+          }
+
+        trust_level = TRUST_ULTIMATE;
+        goto out;
+      }
+  }
+
   if (policy == TOFU_POLICY_AUTO)
     {
       policy = opt.tofu_default_policy;
       if (DBG_TRUST)
-       log_debug ("TOFU: binding <%s, %s>'s policy is auto (default: %s).\n",
+       log_debug ("TOFU: binding <key: %s, user id: %s>'s policy is"
+                   " auto (default: %s).\n",
                   fingerprint, email,
                   tofu_policy_str (opt.tofu_default_policy));
     }
@@ -1564,19 +2246,13 @@ get_trust (tofu_dbs_t dbs, PKT_public_key *pk,
       /* The saved judgement is auto -> auto, good, unknown or bad.
        * We don't need to ask the user anything.  */
       if (DBG_TRUST)
-       log_debug ("TOFU: Known binding <%s, %s>'s policy: %s\n",
+       log_debug ("TOFU: Known binding <key: %s, user id: %s>'s policy: %s\n",
                   fingerprint, email, tofu_policy_str (policy));
       trust_level = tofu_policy_to_trust_level (policy);
       goto out;
 
     case TOFU_POLICY_ASK:
       /* We need to ask the user what to do.  Case #1 or #2 below.  */
-      if (! may_ask)
-       {
-         trust_level = TRUST_UNDEFINED;
-         goto out;
-       }
-
       break;
 
     case TOFU_POLICY_NONE:
@@ -1606,49 +2282,92 @@ get_trust (tofu_dbs_t dbs, PKT_public_key *pk,
    *
    *   3. We don't have a saved policy (policy == TOFU_POLICY_NONE)
    *      (need to check for a conflict).
+   *
+   * In summary: POLICY is ask or none.
    */
 
-  /* Look for conflicts.  This is needed in all 3 cases.
-   *
-   * Get the fingerprints of any bindings that share the email
-   * address.  Note: if the binding in question is in the DB, it will
-   * also be returned.  Thus, if the result set is empty, then this is
-   * a new binding.  */
-  rc = gpgsql_stepx
-    (dbs->db, &dbs->s.get_trust_bindings_with_this_email,
-     strings_collect_cb2, &bindings_with_this_email, &sqerr,
-     "select distinct fingerprint from bindings where email = ?;",
-     SQLITE_ARG_STRING, email, SQLITE_ARG_END);
-  if (rc)
+  /* Before continuing, see if the key is signed by an ultimately
+   * trusted key.  */
+  {
+    int fingerprint_raw_len = strlen (fingerprint) / 2;
+    char fingerprint_raw[fingerprint_raw_len];
+    int len = 0;
+    int is_signed_by_utk = 0;
+
+    if (fingerprint_raw_len != 20
+        || ((len = hex2bin (fingerprint,
+                            fingerprint_raw, fingerprint_raw_len))
+            != strlen (fingerprint)))
+      {
+        if (DBG_TRUST)
+          log_debug ("TOFU: Bad fingerprint: %s (len: %zd, parsed: %d)\n",
+                     fingerprint, strlen (fingerprint), len);
+      }
+    else
+      {
+        int lookup_err;
+        kbnode_t kb;
+
+        lookup_err = get_pubkey_byfprint (NULL, &kb,
+                                          fingerprint_raw,
+                                          fingerprint_raw_len);
+        if (lookup_err)
+          {
+            if (DBG_TRUST)
+              log_debug ("TOFU: Looking up %s: %s\n",
+                         fingerprint, gpg_strerror (lookup_err));
+          }
+        else
+          {
+            is_signed_by_utk = signed_by_utk (email, kb);
+            release_kbnode (kb);
+          }
+      }
+
+    if (is_signed_by_utk)
+      {
+        if (record_binding (dbs, fingerprint, email, user_id,
+                            TOFU_POLICY_GOOD, NULL, 0, now) != 0)
+          {
+            log_error (_("error setting TOFU binding's trust level"
+                         " to %s\n"), "good");
+            trust_level = _tofu_GET_TRUST_ERROR;
+          }
+        else
+          trust_level = TRUST_FULLY;
+
+        goto out;
+      }
+  }
+
+
+  /* Look for conflicts.  This is needed in all 3 cases.  */
+  conflict_set = build_conflict_set (dbs, pk, fingerprint, email);
+  conflict_set_count = strlist_length (conflict_set);
+  if (conflict_set_count == 0)
     {
-      log_error (_("error reading TOFU database: %s\n"), sqerr);
-      print_further_info ("listing fingerprints");
-      sqlite3_free (sqerr);
+      /* We should always at least have the current binding.  */
+      trust_level = _tofu_GET_TRUST_ERROR;
       goto out;
     }
 
-  bindings_with_this_email_count = strlist_length (bindings_with_this_email);
-  if (bindings_with_this_email_count == 0
+  if (conflict_set_count == 1
+      && (conflict_set->flags & BINDING_NEW)
       && opt.tofu_default_policy != TOFU_POLICY_ASK)
     {
-      /* New binding with no conflict and a concrete default policy.
-       *
-       * We've never observed a binding with this email address
-       * BINDINGS_WITH_THIS_EMAIL_COUNT is 0 and the above query would
-       * return the current binding if it were in the DB) and we have
-       * a default policy, which is not to ask the user.
-       */
+      /* We've never observed a binding with this email address and we
+       * have a default policy, which is not to ask the user.  */
 
       /* If we've seen this binding, then we've seen this email and
-        policy couldn't possibly be TOFU_POLICY_NONE.  */
+       * policy couldn't possibly be TOFU_POLICY_NONE.  */
       log_assert (policy == TOFU_POLICY_NONE);
 
       if (DBG_TRUST)
-       log_debug ("TOFU: New binding <%s, %s>, no conflict.\n",
-                  email, fingerprint);
+       log_debug ("TOFU: New binding <key: %s, user id: %s>, no conflict.\n",
+                  fingerprint, email);
 
       if (record_binding (dbs, fingerprint, email, user_id,
-                         TOFU_POLICY_AUTO, 0) != 0)
+                         TOFU_POLICY_AUTO, NULL, 0, now) != 0)
        {
          log_error (_("error setting TOFU binding's trust level to %s\n"),
                       "auto");
@@ -1660,78 +2379,114 @@ get_trust (tofu_dbs_t dbs, PKT_public_key *pk,
       goto out;
     }
 
-  if (policy == TOFU_POLICY_NONE)
+  if (conflict_set_count == 1
+      && (conflict_set->flags & BINDING_CONFLICT))
     {
-      /* This is a new binding and we have a conflict.  Mark any
-       * conflicting bindings that have an automatic policy as now
-       * requiring confirmation.  Note: we delay this until after we
-       * ask for confirmation so that when the current policy is
-       * printed, it is correct.  */
-      change_conflicting_to_ask = 1;
-    }
+      /* No known conflicts now, but there was a conflict.  This means
+       * at somepoint, there was a conflict and we changed this
+       * binding's policy to ask and set the conflicting key.  The
+       * conflict can go away if there is not a cross sig between the
+       * two keys.  In this case, just silently clear the conflict and
+       * reset the policy to auto.  */
 
-  if (! may_ask)
-    {
-      /* We can only get here in the third case (no saved policy) and
-       * if there is a conflict.  (If the policy was ask (cases #1 and
-       * #2) and we weren't allowed to ask, we'd have already exited).  */
-      log_assert (policy == TOFU_POLICY_NONE);
+      log_assert (policy == TOFU_POLICY_ASK);
+
+      if (DBG_TRUST)
+        log_debug ("TOFU: binding <key: %s, user id: %s> had a conflict, but it's been resolved (probably via  cross sig).\n",
+                   fingerprint, email);
 
       if (record_binding (dbs, fingerprint, email, user_id,
-                         TOFU_POLICY_ASK, 0) != 0)
+                         TOFU_POLICY_AUTO, NULL, 0, now) != 0)
        log_error (_("error setting TOFU binding's trust level to %s\n"),
-                  "ask");
+                  "auto");
+
+      trust_level = tofu_policy_to_trust_level (TOFU_POLICY_AUTO);
+      goto out;
+    }
+
+  /* We have a conflict.  Mark any conflicting bindings that have an
+   * automatic policy as now requiring confirmation.  Note: we delay
+   * this until after we ask for confirmation so that when the current
+   * policy is printed, it is correct.  */
+  change_conflicting_to_ask = 1;
+
+  if (! may_ask)
+    {
+      log_assert (policy == TOFU_POLICY_NONE || policy == TOFU_POLICY_ASK);
+      if (policy == TOFU_POLICY_NONE)
+        {
+          /* We get here in the third case (no saved policy) and if
+           * there is a conflict.  */
+          if (record_binding (dbs, fingerprint, email, user_id,
+                              TOFU_POLICY_ASK,
+                              conflict_set && conflict_set->next
+                              ? conflict_set->next->d : NULL,
+                              0, now) != 0)
+            log_error (_("error setting TOFU binding's trust level to %s\n"),
+                       "ask");
+        }
 
       trust_level = TRUST_UNDEFINED;
       goto out;
     }
 
+  /* We can't be in a normal transaction in ask_about_binding.  */
+  end_transaction (ctrl, 0);
+  in_transaction = 0;
+
   /* If we get here, we need to ask the user about the binding.  */
-  ask_about_binding (dbs,
+  ask_about_binding (ctrl,
                      &policy,
                      &trust_level,
-                     bindings_with_this_email_count,
-                     bindings_with_this_email,
-                     conflict,
+                     conflict_set,
                      fingerprint,
                      email,
-                     user_id);
+                     user_id,
+                     now);
 
  out:
+
   if (change_conflicting_to_ask)
     {
-      if (! may_ask)
+      /* Mark any conflicting bindings that have an automatic policy as
+       * now requiring confirmation.  */
+
+      if (! in_transaction)
         {
-          /* If we weren't allowed to ask, also update this key as
-             conflicting with itself.  */
-          rc = gpgsql_exec_printf
-            (dbs->db, NULL, NULL, &sqerr,
-             "update bindings set policy = %d, conflict = %Q"
-             " where email = %Q"
-             "  and (policy = %d or (policy = %d and fingerprint = %Q));",
-             TOFU_POLICY_ASK, fingerprint, email, TOFU_POLICY_AUTO,
-             TOFU_POLICY_ASK, fingerprint);
+          begin_transaction (ctrl, 0);
+          in_transaction = 1;
         }
-      else
+
+      /* If we weren't allowed to ask, also update this key as
+       * conflicting with itself.  */
+      for (iter = may_ask ? conflict_set->next : conflict_set;
+           iter; iter = iter->next)
         {
           rc = gpgsql_exec_printf
             (dbs->db, NULL, NULL, &sqerr,
              "update bindings set policy = %d, conflict = %Q"
-             " where email = %Q and fingerprint != %Q and policy = %d;",
-             TOFU_POLICY_ASK, fingerprint, email, fingerprint,
-             TOFU_POLICY_AUTO);
+             " where email = %Q and fingerprint = %Q and policy = %d;",
+             TOFU_POLICY_ASK, fingerprint,
+             email, iter->d, TOFU_POLICY_AUTO);
+          if (rc)
+            {
+              log_error (_("error changing TOFU policy: %s\n"), sqerr);
+              print_further_info ("binding: <key: %s, user id: %s>",
+                                  fingerprint, user_id);
+              sqlite3_free (sqerr);
+              sqerr = NULL;
+              rc = gpg_error (GPG_ERR_GENERAL);
+            }
+          else if (DBG_TRUST)
+            log_debug ("Set %s to conflict with %s\n",
+                       iter->d, fingerprint);
         }
-
-      if (rc)
-       {
-         log_error (_("error changing TOFU policy: %s\n"), sqerr);
-         sqlite3_free (sqerr);
-          sqerr = NULL;
-       }
     }
 
-  xfree (conflict);
-  free_strlist (bindings_with_this_email);
+  if (in_transaction)
+    end_transaction (ctrl, 0);
+
+  free_strlist (conflict_set);
 
   return trust_level;
 }
@@ -1821,7 +2576,7 @@ time_ago_str (long long int t)
       first = i;
     }
   i ++;
-  if ((first == -1 || i - first <= 3) && months)
+  if ((first == -1 || i - first <= 3) && count <= 0 && months)
     {
       if (count)
         es_fprintf (fp, ", ");
@@ -1830,7 +2585,7 @@ time_ago_str (long long int t)
       first = i;
     }
   i ++;
-  if ((first == -1 || i - first <= 3) && count < 2 && days)
+  if ((first == -1 || i - first <= 3) && count <= 0 && days)
     {
       if (count)
         es_fprintf (fp, ", ");
@@ -1839,7 +2594,7 @@ time_ago_str (long long int t)
       first = i;
     }
   i ++;
-  if ((first == -1 || i - first <= 3) && count < 2 && hours)
+  if ((first == -1 || i - first <= 3) && count <= 0 && hours)
     {
       if (count)
         es_fprintf (fp, ", ");
@@ -1848,7 +2603,7 @@ time_ago_str (long long int t)
       first = i;
     }
   i ++;
-  if ((first == -1 || i - first <= 3) && count < 2 && minutes)
+  if ((first == -1 || i - first <= 3) && count <= 0 && minutes)
     {
       if (count)
         es_fprintf (fp, ", ");
@@ -1857,7 +2612,7 @@ time_ago_str (long long int t)
       first = i;
     }
   i ++;
-  if ((first == -1 || i - first <= 3) && count < 2)
+  if ((first == -1 || i - first <= 3) && count <= 0)
     {
       if (count)
         es_fprintf (fp, ", ");
@@ -1872,239 +2627,319 @@ time_ago_str (long long int t)
 }
 
 
-/* Write TOFU_STATS status line.  */
+/* If FP is NULL, write TOFU_STATS status line.  If FP is not NULL
+ * write a "tfs" record to that stream. */
 static void
-write_stats_status (long messages, enum tofu_policy policy,
-                    long first_seen_ago, long most_recent_seen_ago)
+write_stats_status (estream_t fp,
+                    enum tofu_policy policy,
+                    unsigned long signature_count,
+                    unsigned long signature_first_seen,
+                    unsigned long signature_most_recent,
+                    unsigned long encryption_count,
+                    unsigned long encryption_first_done,
+                    unsigned long encryption_most_recent)
 {
-  char numbuf1[35];
-  char numbuf2[35];
-  char numbuf3[35];
   const char *validity;
+  unsigned long messages;
+
+  /* Use the euclidean distance (m = sqrt(a^2 + b^2)) rather then the
+     sum of the magnitudes (m = a + b) to ensure a balance between
+     verified signatures and encrypted messages.  */
+  messages = sqrtu32 (signature_count * signature_count
+                      + encryption_count * encryption_count);
 
   if (messages < 1)
     validity = "1"; /* Key without history.  */
-  else if (messages < BASIC_TRUST_THRESHOLD)
+  else if (messages < 2 * BASIC_TRUST_THRESHOLD)
     validity = "2"; /* Key with too little history.  */
-  else if (messages < FULL_TRUST_THRESHOLD)
+  else if (messages < 2 * FULL_TRUST_THRESHOLD)
     validity = "3"; /* Key with enough history for basic trust.  */
   else
     validity = "4"; /* Key with a lot of history.  */
 
-  snprintf (numbuf1, sizeof numbuf1, " %ld", messages);
-  *numbuf2 = *numbuf3 = 0;
-  if (first_seen_ago >= 0 && most_recent_seen_ago >= 0)
+  if (fp)
     {
-      snprintf (numbuf2, sizeof numbuf2, " %ld", first_seen_ago);
-      snprintf (numbuf3, sizeof numbuf3, " %ld", most_recent_seen_ago);
+      es_fprintf (fp, "tfs:1:%s:%lu:%lu:%s:%lu:%lu:%lu:%lu:\n",
+                  validity, signature_count, encryption_count,
+                  tofu_policy_str (policy),
+                  signature_first_seen, signature_most_recent,
+                  encryption_first_done, encryption_most_recent);
+    }
+  else
+    {
+      write_status_printf (STATUS_TOFU_STATS,
+                           "%s %lu %lu %s %lu %lu %lu %lu",
+                           validity,
+                           signature_count,
+                           encryption_count,
+                           tofu_policy_str (policy),
+                           signature_first_seen,
+                           signature_most_recent,
+                           encryption_first_done,
+                           encryption_most_recent);
     }
-
-  write_status_strings (STATUS_TOFU_STATS,
-                        validity, numbuf1, " 0",
-                        " ", tofu_policy_str (policy),
-                        numbuf2, numbuf3,
-                        NULL);
 }
 
-static void
+/* Note: If OUTFP is not NULL, this function merely prints a "tfs" record
+ * to OUTFP.  In this case USER_ID is not required.
+ *
+ * Returns whether the caller should call show_warning after iterating
+ * over all user ids.
+ */
+static int
 show_statistics (tofu_dbs_t dbs, const char *fingerprint,
                 const char *email, const char *user_id,
-                const char *sig_exclude)
+                estream_t outfp, time_t now)
 {
+  enum tofu_policy policy = get_policy (dbs, fingerprint, email, NULL);
+
   char *fingerprint_pp;
   int rc;
   strlist_t strlist = NULL;
   char *err = NULL;
 
+  unsigned long signature_first_seen = 0;
+  unsigned long signature_most_recent = 0;
+  unsigned long signature_count = 0;
+  unsigned long encryption_first_done = 0;
+  unsigned long encryption_most_recent = 0;
+  unsigned long encryption_count = 0;
+
+  int show_warning = 0;
+
+  (void) user_id;
+
   fingerprint_pp = format_hexfingerprint (fingerprint, NULL, 0);
 
+  /* Get the signature stats.  */
   rc = gpgsql_exec_printf
     (dbs->db, strings_collect_cb, &strlist, &err,
-     "select count (*), strftime('%%s','now') - min (signatures.time),\n"
-     "  strftime('%%s','now') - max (signatures.time)\n"
+     "select count (*), min (signatures.time), max (signatures.time)\n"
      " from signatures\n"
      " left join bindings on signatures.binding = bindings.oid\n"
-     " where fingerprint = %Q and email = %Q and sig_digest %s%s%s;",
-     fingerprint, email,
-     /* We want either: sig_digest != 'SIG_EXCLUDE' or sig_digest is
-       not NULL.  */
-     sig_exclude ? "!= '" : "is not NULL",
-     sig_exclude ? sig_exclude : "",
-     sig_exclude ? "'" : "");
+     " where fingerprint = %Q and email = %Q;",
+     fingerprint, email);
   if (rc)
     {
       log_error (_("error reading TOFU database: %s\n"), err);
-      print_further_info ("getting statistics");
+      print_further_info ("getting signature statistics");
       sqlite3_free (err);
+      rc = gpg_error (GPG_ERR_GENERAL);
       goto out;
     }
 
-  write_status_text_and_buffer (STATUS_TOFU_USER, fingerprint,
-                                email, strlen (email), 0);
+  if (strlist)
+    {
+      /* We expect exactly 3 elements.  */
+      log_assert (strlist->next);
+      log_assert (strlist->next->next);
+      log_assert (! strlist->next->next->next);
+
+      string_to_ulong (&signature_count, strlist->d, -1, __LINE__);
+      string_to_ulong (&signature_first_seen, strlist->next->d, -1, __LINE__);
+      string_to_ulong (&signature_most_recent,
+                       strlist->next->next->d, -1, __LINE__);
+
+      free_strlist (strlist);
+      strlist = NULL;
+    }
 
-  if (! strlist)
+  /* Get the encryption stats.  */
+  rc = gpgsql_exec_printf
+    (dbs->db, strings_collect_cb, &strlist, &err,
+     "select count (*), min (encryptions.time), max (encryptions.time)\n"
+     " from encryptions\n"
+     " left join bindings on encryptions.binding = bindings.oid\n"
+     " where fingerprint = %Q and email = %Q;",
+     fingerprint, email);
+  if (rc)
     {
-      log_info (_("Have never verified a message signed by key %s!\n"),
-                fingerprint_pp);
-      write_stats_status (0,  TOFU_POLICY_NONE, -1, -1);
+      log_error (_("error reading TOFU database: %s\n"), err);
+      print_further_info ("getting encryption statistics");
+      sqlite3_free (err);
+      rc = gpg_error (GPG_ERR_GENERAL);
+      goto out;
     }
-  else
+
+  if (strlist)
+    {
+      /* We expect exactly 3 elements.  */
+      log_assert (strlist->next);
+      log_assert (strlist->next->next);
+      log_assert (! strlist->next->next->next);
+
+      string_to_ulong (&encryption_count, strlist->d, -1, __LINE__);
+      string_to_ulong (&encryption_first_done, strlist->next->d, -1, __LINE__);
+      string_to_ulong (&encryption_most_recent,
+                       strlist->next->next->d, -1, __LINE__);
+
+      free_strlist (strlist);
+      strlist = NULL;
+    }
+
+  if (!outfp)
+    write_status_text_and_buffer (STATUS_TOFU_USER, fingerprint,
+                                  email, strlen (email), 0);
+
+  write_stats_status (outfp, policy,
+                      signature_count,
+                      signature_first_seen,
+                      signature_most_recent,
+                      encryption_count,
+                      encryption_first_done,
+                      encryption_most_recent);
+
+  if (!outfp)
     {
-      signed long messages;
-      signed long first_seen_ago;
-      signed long most_recent_seen_ago;
+      estream_t fp;
+      char *msg;
 
-      log_assert (strlist_length (strlist) == 3);
+      fp = es_fopenmem (0, "rw,samethread");
+      if (! fp)
+        log_fatal ("error creating memory stream: %s\n",
+                   gpg_strerror (gpg_error_from_syserror()));
 
-      string_to_long (&messages, strlist->d, -1, __LINE__);
+      es_fprintf (fp, _("%s: "), email);
 
-      if (messages == 0 && *strlist->next->d == '\0')
-        { /* min(NULL) => NULL => "".  */
-          first_seen_ago = -1;
-          most_recent_seen_ago = -1;
+      if (signature_count == 0)
+        {
+          es_fprintf (fp, _("Verified %ld signatures"), 0L);
+          es_fputc ('\n', fp);
         }
       else
-       {
-          string_to_long (&first_seen_ago, strlist->next->d, -1, __LINE__);
-         string_to_long (&most_recent_seen_ago, strlist->next->next->d, -1,
-                          __LINE__);
-       }
+        {
+          char *first_seen_ago_str = time_ago_str (now - signature_first_seen);
+
+          /* TRANSLATORS: The final %s is replaced by a string like
+             "7 months, 1 day, 5 minutes, 0 seconds". */
+          es_fprintf (fp,
+                      ngettext("Verified %ld signature in the past %s",
+                               "Verified %ld signatures in the past %s",
+                               signature_count),
+                      signature_count, first_seen_ago_str);
 
-      if (messages == -1 || first_seen_ago == -1)
+          xfree (first_seen_ago_str);
+        }
+
+      if (encryption_count == 0)
         {
-          write_stats_status (0, TOFU_POLICY_NONE, -1, -1);
-          log_info (_("Failed to collect signature statistics for \"%s\"\n"
-                      "(key %s)\n"),
-                    user_id, fingerprint_pp);
+          es_fprintf (fp, _(", and encrypted %ld messages"), 0L);
         }
       else
-       {
-         enum tofu_policy policy = get_policy (dbs, fingerprint, email, NULL);
-         estream_t fp;
-         char *msg;
+        {
+          char *first_done_ago_str = time_ago_str (now - encryption_first_done);
 
-          write_stats_status (messages, policy,
-                              first_seen_ago, most_recent_seen_ago);
+          /* TRANSLATORS: The final %s is replaced by a string like
+             "7 months, 1 day, 5 minutes, 0 seconds". */
+          es_fprintf (fp,
+                      ngettext(", and encrypted %ld message in the past %s",
+                               ", and encrypted %ld messages in the past %s",
+                               encryption_count),
+                      encryption_count, first_done_ago_str);
 
-         fp = es_fopenmem (0, "rw,samethread");
-         if (! fp)
-            log_fatal ("error creating memory stream: %s\n",
-                       gpg_strerror (gpg_error_from_syserror()));
+          xfree (first_done_ago_str);
+        }
 
-         if (messages == 0)
-            {
-              es_fprintf (fp, _("Verified %ld messages signed by \"%s\"."),
-                          0L, user_id);
-              es_fputc ('\n', fp);
-            }
-         else
-           {
-              char *first_seen_ago_str = time_ago_str (first_seen_ago);
-
-              /* TRANSLATORS: The final %s is replaced by a string like
-                 "7 months, 1 day, 5 minutes, 0 seconds". */
-             es_fprintf (fp,
-                          ngettext("Verified %ld message signed by \"%s\"\n"
-                                   "in the past %s.",
-                                   "Verified %ld messages signed by \"%s\"\n"
-                                   "in the past %s.",
-                                   messages),
-                         messages, user_id, first_seen_ago_str);
-
-              if (messages > 1)
-                {
-                  char *tmpstr = time_ago_str (most_recent_seen_ago);
-                  es_fputs ("  ", fp);
-                  es_fprintf (fp, _("The most recent message was"
-                                    " verified %s ago."), tmpstr);
-                  xfree (tmpstr);
-                }
-              xfree (first_seen_ago_str);
+      if (opt.verbose)
+        {
+          es_fputs ("  ", fp);
+          es_fputc ('(', fp);
+          es_fprintf (fp, _("policy: %s"), tofu_policy_str (policy));
+          es_fputs (").\n", fp);
+        }
+      else
+        es_fputs (".\n", fp);
 
-              if (opt.verbose)
-                {
-                  es_fputs ("  ", fp);
-                  es_fputc ('(', fp);
-                  es_fprintf (fp, _("policy: %s"), tofu_policy_str (policy));
-                  es_fputs (")\n", fp);
-                }
-              else
-                es_fputs ("\n", fp);
-            }
 
-          {
-            char *tmpmsg, *p;
-            es_fputc (0, fp);
-            if (es_fclose_snatch (fp, (void **) &tmpmsg, NULL))
-              log_fatal ("error snatching memory stream\n");
-            msg = format_text (tmpmsg, 0, 72, 80);
-            es_free (tmpmsg);
-
-            /* Print a status line but suppress the trailing LF.
-             * Spaces are not percent escaped. */
-            if (*msg)
-              write_status_buffer (STATUS_TOFU_STATS_LONG,
-                                   msg, strlen (msg)-1, -1);
-
-            /* Remove the non-breaking space markers.  */
-            for (p=msg; *p; p++)
-              if (*p == '~')
-                *p = ' ';
+      {
+        char *tmpmsg, *p;
+        es_fputc (0, fp);
+        if (es_fclose_snatch (fp, (void **) &tmpmsg, NULL))
+          log_fatal ("error snatching memory stream\n");
+        msg = format_text (tmpmsg, 0, 72, 80);
+        es_free (tmpmsg);
 
-          }
+        /* Print a status line but suppress the trailing LF.
+         * Spaces are not percent escaped. */
+        if (*msg)
+          write_status_buffer (STATUS_TOFU_STATS_LONG,
+                               msg, strlen (msg)-1, -1);
 
-         log_string (GPGRT_LOG_INFO, msg);
-          xfree (msg);
-
-         if (policy == TOFU_POLICY_AUTO && messages < BASIC_TRUST_THRESHOLD)
-           {
-             char *set_policy_command;
-             char *text;
-              char *tmpmsg;
-
-             if (messages == 0)
-               log_info (_("Warning: we've have yet to see"
-                            " a message signed by this key!\n"));
-             else if (messages == 1)
-               log_info (_("Warning: we've only seen a"
-                            " single message signed by this key!\n"));
-
-             set_policy_command =
-               xasprintf ("gpg --tofu-policy bad %s", fingerprint);
-
-              tmpmsg = xasprintf
-                (ngettext
-                 ("Warning: if you think you've seen more than %ld message "
-                  "signed by this key, then this key might be a forgery!  "
-                  "Carefully examine the email address for small "
-                  "variations.  If the key is suspect, then use\n"
-                  "  %s\n"
-                  "to mark it as being bad.\n",
-                  "Warning: if you think you've seen more than %ld messages "
-                  "signed by this key, then this key might be a forgery!  "
-                      "Carefully examine the email address for small "
-                  "variations.  If the key is suspect, then use\n"
-                  "  %s\n"
-                  "to mark it as being bad.\n",
-                  messages),
-                  messages, set_policy_command);
-              text = format_text (tmpmsg, 0, 72, 80);
-              xfree (tmpmsg);
-             log_string (GPGRT_LOG_INFO, text);
-              xfree (text);
-
-             es_free (set_policy_command);
-           }
-       }
+        /* Remove the non-breaking space markers.  */
+        for (p=msg; *p; p++)
+          if (*p == '~')
+            *p = ' ';
+      }
+
+      log_string (GPGRT_LOG_INFO, msg);
+      xfree (msg);
+
+      if (policy == TOFU_POLICY_AUTO)
+        {
+          if (signature_count == 0)
+            log_info (_("Warning: we have yet to see"
+                        " a message signed using this key and user id!\n"));
+          else if (signature_count == 1)
+            log_info (_("Warning: we've only seen one message"
+                        " signed using this key and user id!\n"));
+
+          if (encryption_count == 0)
+            log_info (_("Warning: you have yet to encrypt"
+                        " a message to this key!\n"));
+          else if (encryption_count == 1)
+            log_info (_("Warning: you have only encrypted"
+                        " one message to this key!\n"));
+
+          /* Cf. write_stats_status  */
+          if (sqrtu32 (encryption_count * encryption_count
+                       + signature_count * signature_count)
+              < 2 * BASIC_TRUST_THRESHOLD)
+            show_warning = 1;
+        }
     }
 
  out:
-  free_strlist (strlist);
   xfree (fingerprint_pp);
 
-  return;
+  return show_warning;
 }
 
+static void
+show_warning (const char *fingerprint, strlist_t user_id_list)
+{
+  char *set_policy_command;
+  char *text;
+  char *tmpmsg;
+
+  set_policy_command =
+    xasprintf ("gpg --tofu-policy bad %s", fingerprint);
+
+  tmpmsg = xasprintf
+    (ngettext
+     ("Warning: if you think you've seen more signatures "
+      "by this key and user id, then this key might be a "
+      "forgery!  Carefully examine the email address for small "
+      "variations.  If the key is suspect, then use\n"
+      "  %s\n"
+      "to mark it as being bad.\n",
+      "Warning: if you think you've seen more signatures "
+      "by this key and these user ids, then this key might be a "
+      "forgery!  Carefully examine the email addresses for small "
+      "variations.  If the key is suspect, then use\n"
+      "  %s\n"
+      "to mark it as being bad.\n",
+      strlist_length (user_id_list)),
+     set_policy_command);
+
+  text = format_text (tmpmsg, 0, 72, 80);
+  xfree (tmpmsg);
+  log_string (GPGRT_LOG_INFO, text);
+  xfree (text);
+
+  es_free (set_policy_command);
+}
+
+
 /* Extract the email address from a user id and normalize it.  If the
    user id doesn't contain an email address, then we use the whole
    user_id and normalize that.  The returned string must be freed.  */
@@ -2123,8 +2958,9 @@ email_from_user_id (const char *user_id)
   return email;
 }
 
-/* Register the signature with the binding <fingerprint, USER_ID>.
-   The fingerprint is taken from the primary key packet PK.
+/* Register the signature with the bindings <fingerprint, USER_ID>,
+   for each USER_ID in USER_ID_LIST.  The fingerprint is taken from
+   the primary key packet PK.
 
    SIG_DIGEST_BIN is the binary representation of the message's
    digest.  SIG_DIGEST_BIN_LEN is its length.
@@ -2140,161 +2976,275 @@ email_from_user_id (const char *user_id)
    This is necessary if there is a conflict or the binding's policy is
    TOFU_POLICY_ASK.
 
-   This function returns the binding's trust level on return.  If an
-   error occurs, this function returns TRUST_UNKNOWN.  */
-int
-tofu_register (ctrl_t ctrl, PKT_public_key *pk, const char *user_id,
-              const byte *sig_digest_bin, int sig_digest_bin_len,
-              time_t sig_time, const char *origin, int may_ask)
+   This function returns 0 on success and an error code if an error
+   occurred.  */
+gpg_error_t
+tofu_register_signature (ctrl_t ctrl,
+                         PKT_public_key *pk, strlist_t user_id_list,
+                         const byte *sig_digest_bin, int sig_digest_bin_len,
+                         time_t sig_time, const char *origin)
 {
+  time_t now = gnupg_get_time ();
+  gpg_error_t rc;
   tofu_dbs_t dbs;
   char *fingerprint = NULL;
+  strlist_t user_id;
   char *email = NULL;
   char *err = NULL;
-  int rc;
-  int trust_level = TRUST_UNKNOWN;
   char *sig_digest;
   unsigned long c;
-  int already_verified = 0;
-
-  sig_digest = make_radix64_string (sig_digest_bin, sig_digest_bin_len);
 
   dbs = opendbs (ctrl);
   if (! dbs)
     {
+      rc = gpg_error (GPG_ERR_GENERAL);
       log_error (_("error opening TOFU database: %s\n"),
-                 gpg_strerror (GPG_ERR_GENERAL));
-      goto die;
+                 gpg_strerror (rc));
+      return rc;
     }
 
-  fingerprint = hexfingerprint (pk, NULL, 0);
+  /* We do a query and then an insert.  Make sure they are atomic
+     by wrapping them in a transaction.  */
+  rc = begin_transaction (ctrl, 0);
+  if (rc)
+    return rc;
 
-  if (! *user_id)
-    {
-      log_debug ("TOFU: user id is empty.  Can't continue.\n");
-      goto die;
-    }
+  log_assert (keyid_cmp (pk_keyid (pk), pk_main_keyid (pk)) == 0);
 
-  email = email_from_user_id (user_id);
+  sig_digest = make_radix64_string (sig_digest_bin, sig_digest_bin_len);
+  fingerprint = hexfingerprint (pk, NULL, 0);
 
   if (! origin)
     /* The default origin is simply "unknown".  */
     origin = "unknown";
 
-  /* It's necessary to get the trust so that we are certain that the
-     binding has been registered.  */
-  trust_level = get_trust (dbs, pk, fingerprint, email, user_id, may_ask);
-  if (trust_level == _tofu_GET_TRUST_ERROR)
-    /* An error.  */
+  for (user_id = user_id_list; user_id; user_id = user_id->next)
     {
-      trust_level = TRUST_UNKNOWN;
-      goto die;
+      email = email_from_user_id (user_id->d);
+
+      if (DBG_TRUST)
+       log_debug ("TOFU: Registering signature %s with binding"
+                   " <key: %s, user id: %s>\n",
+                  sig_digest, fingerprint, email);
+
+      /* Make sure the binding exists and record any TOFU
+         conflicts.  */
+      if (get_trust (ctrl, pk, fingerprint, email, user_id->d, 0, now)
+          == _tofu_GET_TRUST_ERROR)
+        {
+          rc = gpg_error (GPG_ERR_GENERAL);
+          xfree (email);
+          break;
+        }
+
+      /* If we've already seen this signature before, then don't add
+         it again.  */
+      rc = gpgsql_stepx
+        (dbs->db, &dbs->s.register_already_seen,
+         get_single_unsigned_long_cb2, &c, &err,
+         "select count (*)\n"
+         " from signatures left join bindings\n"
+         "  on signatures.binding = bindings.oid\n"
+         " where fingerprint = ? and email = ? and sig_time = ?\n"
+         "  and sig_digest = ?",
+         GPGSQL_ARG_STRING, fingerprint, GPGSQL_ARG_STRING, email,
+         GPGSQL_ARG_LONG_LONG, (long long) sig_time,
+         GPGSQL_ARG_STRING, sig_digest,
+         GPGSQL_ARG_END);
+      if (rc)
+        {
+          log_error (_("error reading TOFU database: %s\n"), err);
+          print_further_info ("checking existence");
+          sqlite3_free (err);
+          rc = gpg_error (GPG_ERR_GENERAL);
+        }
+      else if (c > 1)
+        /* Duplicates!  This should not happen.  In particular,
+           because <fingerprint, email, sig_time, sig_digest> is the
+           primary key!  */
+        log_debug ("SIGNATURES DB contains duplicate records"
+                   " <key: %s, email: %s, time: 0x%lx, sig: %s,"
+                   " origin: %s>."
+                   "  Please report.\n",
+                   fingerprint, email, (unsigned long) sig_time,
+                   sig_digest, origin);
+      else if (c == 1)
+        {
+          if (DBG_TRUST)
+            log_debug ("Already observed the signature and binding"
+                       " <key: %s, email: %s, time: 0x%lx, sig: %s,"
+                       " origin: %s>\n",
+                       fingerprint, email, (unsigned long) sig_time,
+                       sig_digest, origin);
+        }
+      else if (opt.dry_run)
+        {
+          log_info ("TOFU database update skipped due to --dry-run\n");
+        }
+      else
+        /* This is the first time that we've seen this signature and
+           binding.  Record it.  */
+        {
+          if (DBG_TRUST)
+            log_debug ("TOFU: Saving signature"
+                       " <key: %s, user id: %s, sig: %s>\n",
+                       fingerprint, email, sig_digest);
+
+          log_assert (c == 0);
+
+          rc = gpgsql_stepx
+            (dbs->db, &dbs->s.register_insert, NULL, NULL, &err,
+             "insert into signatures\n"
+             " (binding, sig_digest, origin, sig_time, time)\n"
+             " values\n"
+             " ((select oid from bindings\n"
+             "    where fingerprint = ? and email = ?),\n"
+             "  ?, ?, ?, ?);",
+             GPGSQL_ARG_STRING, fingerprint, GPGSQL_ARG_STRING, email,
+             GPGSQL_ARG_STRING, sig_digest, GPGSQL_ARG_STRING, origin,
+             GPGSQL_ARG_LONG_LONG, (long long) sig_time,
+             GPGSQL_ARG_LONG_LONG, (long long) now,
+             GPGSQL_ARG_END);
+          if (rc)
+            {
+              log_error (_("error updating TOFU database: %s\n"), err);
+              print_further_info ("insert signatures");
+              sqlite3_free (err);
+              rc = gpg_error (GPG_ERR_GENERAL);
+            }
+        }
+
+      xfree (email);
+
+      if (rc)
+        break;
     }
 
-  /* We do a query and then an insert.  Make sure they are atomic
-     by wrapping them in a transaction.  */
-  rc = begin_transaction (ctrl, 0);
   if (rc)
-    goto die;
+    rollback_transaction (ctrl);
+  else
+    rc = end_transaction (ctrl, 0);
 
-  /* If we've already seen this signature before, then don't add
-     it again.  */
-  rc = gpgsql_stepx
-    (dbs->db, &dbs->s.register_already_seen,
-     get_single_unsigned_long_cb2, &c, &err,
-     "select count (*)\n"
-     " from signatures left join bindings\n"
-     "  on signatures.binding = bindings.oid\n"
-     " where fingerprint = ? and email = ? and sig_time = ?\n"
-     "  and sig_digest = ?",
-     SQLITE_ARG_STRING, fingerprint, SQLITE_ARG_STRING, email,
-     SQLITE_ARG_LONG_LONG, (long long) sig_time,
-     SQLITE_ARG_STRING, sig_digest,
-     SQLITE_ARG_END);
-  if (rc)
+  xfree (fingerprint);
+  xfree (sig_digest);
+
+  return rc;
+}
+
+gpg_error_t
+tofu_register_encryption (ctrl_t ctrl,
+                          PKT_public_key *pk, strlist_t user_id_list,
+                          int may_ask)
+{
+  time_t now = gnupg_get_time ();
+  gpg_error_t rc = 0;
+  tofu_dbs_t dbs;
+  kbnode_t kb = NULL;
+  int free_user_id_list = 0;
+  char *fingerprint = NULL;
+  strlist_t user_id;
+  char *err = NULL;
+
+  dbs = opendbs (ctrl);
+  if (! dbs)
     {
-      log_error (_("error reading TOFU database: %s\n"), err);
-      print_further_info ("checking existence");
-      sqlite3_free (err);
-    }
-  else if (c > 1)
-    /* Duplicates!  This should not happen.  In particular,
-       because <fingerprint, email, sig_time, sig_digest> is the
-       primary key!  */
-    log_debug ("SIGNATURES DB contains duplicate records"
-              " <%s, %s, 0x%lx, %s, %s>."
-              "  Please report.\n",
-              fingerprint, email, (unsigned long) sig_time,
-              sig_digest, origin);
-  else if (c == 1)
-    {
-      already_verified = 1;
-      if (DBG_TRUST)
-       log_debug ("Already observed the signature"
-                  " <%s, %s, 0x%lx, %s, %s>\n",
-                  fingerprint, email, (unsigned long) sig_time,
-                  sig_digest, origin);
+      rc = gpg_error (GPG_ERR_GENERAL);
+      log_error (_("error opening TOFU database: %s\n"),
+                 gpg_strerror (rc));
+      return rc;
     }
-  else if (opt.dry_run)
+
+  if (/* We need the key block to find the primary key.  */
+      keyid_cmp (pk_keyid (pk), pk_main_keyid (pk)) != 0
+      /* We need the key block to find all user ids.  */
+      || ! user_id_list)
+    kb = get_pubkeyblock (pk->keyid);
+
+  /* Make sure PK is a primary key.  */
+  if (keyid_cmp (pk_keyid (pk), pk_main_keyid (pk)) != 0)
+    pk = kb->pkt->pkt.public_key;
+
+  if (! user_id_list)
     {
-      log_info ("TOFU database update skipped due to --dry-run\n");
+      /* Use all non-revoked user ids.  Do use expired user ids.  */
+      kbnode_t n = kb;
+
+      while ((n = find_next_kbnode (n, PKT_USER_ID)))
+        {
+         PKT_user_id *uid = n->pkt->pkt.user_id;
+
+          if (uid->is_revoked)
+            continue;
+
+          add_to_strlist (&user_id_list, uid->name);
+        }
+
+      free_user_id_list = 1;
+
+      if (! user_id_list)
+        log_info (_("WARNING: Encrypting to %s, which has no"
+                    "non-revoked user ids.\n"),
+                  keystr (pk->keyid));
     }
-  else
-    /* This is the first time that we've seen this signature.
-       Record it.  */
+
+  fingerprint = hexfingerprint (pk, NULL, 0);
+
+  tofu_begin_batch_update (ctrl);
+  tofu_resume_batch_transaction (ctrl);
+
+  for (user_id = user_id_list; user_id; user_id = user_id->next)
     {
-      if (DBG_TRUST)
-       log_debug ("TOFU: Saving signature <%s, %s, %s>\n",
-                  fingerprint, email, sig_digest);
+      char *email = email_from_user_id (user_id->d);
 
-      log_assert (c == 0);
+      /* Make sure the binding exists and that we recognize any
+         conflicts.  */
+      int tl = get_trust (ctrl, pk, fingerprint, email, user_id->d,
+                          may_ask, now);
+      if (tl == _tofu_GET_TRUST_ERROR)
+        {
+          /* An error.  */
+          rc = gpg_error (GPG_ERR_GENERAL);
+          xfree (email);
+          goto die;
+        }
 
       rc = gpgsql_stepx
-       (dbs->db, &dbs->s.register_insert, NULL, NULL, &err,
-        "insert into signatures\n"
-        " (binding, sig_digest, origin, sig_time, time)\n"
-        " values\n"
-        " ((select oid from bindings\n"
-        "    where fingerprint = ? and email = ?),\n"
-        "  ?, ?, ?, strftime('%s', 'now'));",
-        SQLITE_ARG_STRING, fingerprint, SQLITE_ARG_STRING, email,
-         SQLITE_ARG_STRING, sig_digest, SQLITE_ARG_STRING, origin,
-         SQLITE_ARG_LONG_LONG, (long long) sig_time,
-         SQLITE_ARG_END);
+        (dbs->db, &dbs->s.register_insert, NULL, NULL, &err,
+         "insert into encryptions\n"
+         " (binding, time)\n"
+         " values\n"
+         " ((select oid from bindings\n"
+         "    where fingerprint = ? and email = ?),\n"
+         "  ?);",
+         GPGSQL_ARG_STRING, fingerprint, GPGSQL_ARG_STRING, email,
+         GPGSQL_ARG_LONG_LONG, (long long) now,
+         GPGSQL_ARG_END);
       if (rc)
-       {
-         log_error (_("error updating TOFU database: %s\n"), err);
-          print_further_info ("insert signatures");
-         sqlite3_free (err);
-       }
-    }
+        {
+          log_error (_("error updating TOFU database: %s\n"), err);
+          print_further_info ("insert encryption");
+          sqlite3_free (err);
+          rc = gpg_error (GPG_ERR_GENERAL);
+        }
 
-  /* It only matters whether we abort or commit the transaction
-     (so long as we do something) if we execute the insert.  */
-  if (rc)
-    rc = rollback_transaction (ctrl);
-  else
-    rc = end_transaction (ctrl, 0);
-  if (rc)
-    {
-      sqlite3_free (err);
-      goto die;
+      xfree (email);
     }
 
  die:
-  if (may_ask && trust_level != TRUST_ULTIMATE)
-    /* It's only appropriate to show the statistics in an interactive
-       context.  */
-    show_statistics (dbs, fingerprint, email, user_id,
-                    already_verified ? NULL : sig_digest);
+  tofu_end_batch_update (ctrl);
+
+  if (kb)
+    release_kbnode (kb);
+
+  if (free_user_id_list)
+    free_strlist (user_id_list);
 
-  xfree (email);
   xfree (fingerprint);
-  xfree (sig_digest);
 
-  return trust_level;
+  return rc;
 }
 
+
 /* Combine a trust level returned from the TOFU trust model with a
    trust level returned by the PGP trust model.  This is primarily of
    interest when the trust model is tofu+pgp (TM_TOFU_PGP).
@@ -2358,55 +3308,150 @@ tofu_wot_trust_combine (int tofu_base, int wot_base)
 }
 
 
-/* Return the validity (TRUST_NEVER, etc.) of the binding
-   <FINGERPRINT, USER_ID>.
+/* Write a "tfs" record for a --with-colons listing.  */
+gpg_error_t
+tofu_write_tfs_record (ctrl_t ctrl, estream_t fp,
+                       PKT_public_key *pk, const char *user_id)
+{
+  time_t now = gnupg_get_time ();
+  gpg_error_t err;
+  tofu_dbs_t dbs;
+  char *fingerprint;
+  char *email;
+
+  if (!*user_id)
+    return 0;  /* No TOFU stats possible for an empty ID.  */
+
+  dbs = opendbs (ctrl);
+  if (!dbs)
+    {
+      err = gpg_error (GPG_ERR_GENERAL);
+      log_error (_("error opening TOFU database: %s\n"), gpg_strerror (err));
+      return err;
+    }
+
+  fingerprint = hexfingerprint (pk, NULL, 0);
+  email = email_from_user_id (user_id);
+
+  show_statistics (dbs, fingerprint, email, user_id, fp, now);
+
+  xfree (email);
+  xfree (fingerprint);
+  return 0;
+}
+
+
+/* Return the validity (TRUST_NEVER, etc.) of the bindings
+   <FINGERPRINT, USER_ID>, for each USER_ID in USER_ID_LIST.  If
+   USER_ID_LIST->FLAG is set, then the id is considered to be expired.
 
    PK is the primary key packet.
 
    If MAY_ASK is 1 and the policy is TOFU_POLICY_ASK, then the user
-   will be prompted to choose a different policy.  If MAY_ASK is 0 and
-   the policy is TOFU_POLICY_ASK, then TRUST_UNKNOWN is returned.
+   will be prompted to choose a policy.  If MAY_ASK is 0 and the
+   policy is TOFU_POLICY_ASK, then TRUST_UNKNOWN is returned.
 
    Returns TRUST_UNDEFINED if an error occurs.  */
 int
-tofu_get_validity (ctrl_t ctrl, PKT_public_key *pk, const char *user_id,
+tofu_get_validity (ctrl_t ctrl, PKT_public_key *pk, strlist_t user_id_list,
                   int may_ask)
 {
+  time_t now = gnupg_get_time ();
   tofu_dbs_t dbs;
   char *fingerprint = NULL;
-  char *email = NULL;
-  int trust_level = TRUST_UNDEFINED;
+  strlist_t user_id;
+  int trust_level = TRUST_UNKNOWN;
+  int bindings = 0;
+  int bindings_valid = 0;
+  int need_warning = 0;
 
   dbs = opendbs (ctrl);
   if (! dbs)
     {
       log_error (_("error opening TOFU database: %s\n"),
                  gpg_strerror (GPG_ERR_GENERAL));
-      goto die;
+      return TRUST_UNDEFINED;
     }
 
   fingerprint = hexfingerprint (pk, NULL, 0);
 
-  if (! *user_id)
+  tofu_begin_batch_update (ctrl);
+  /* Start the batch transaction now.  */
+  tofu_resume_batch_transaction (ctrl);
+
+  for (user_id = user_id_list; user_id; user_id = user_id->next, bindings ++)
     {
-      log_debug ("user id is empty."
-                 "  Can't get TOFU validity for this binding.\n");
-      goto die;
-    }
+      char *email = email_from_user_id (user_id->d);
 
-  email = email_from_user_id (user_id);
+      /* Always call get_trust to make sure the binding is
+         registered.  */
+      int tl = get_trust (ctrl, pk, fingerprint, email, user_id->d,
+                          may_ask, now);
+      if (tl == _tofu_GET_TRUST_ERROR)
+        {
+          /* An error.  */
+          trust_level = TRUST_UNDEFINED;
+          xfree (email);
+          goto die;
+        }
+
+      if (DBG_TRUST)
+       log_debug ("TOFU: validity for <key: %s, user id: %s>: %s%s.\n",
+                  fingerprint, email,
+                   trust_value_to_string (tl),
+                   user_id->flags ? " (but expired)" : "");
+
+      if (user_id->flags)
+        tl = TRUST_EXPIRED;
 
-  trust_level = get_trust (dbs, pk, fingerprint, email, user_id, may_ask);
-  if (trust_level == _tofu_GET_TRUST_ERROR)
-    /* An error.  */
-    trust_level = TRUST_UNDEFINED;
+      if (tl != TRUST_EXPIRED)
+        bindings_valid ++;
 
-  if (may_ask && trust_level != TRUST_ULTIMATE)
-    show_statistics (dbs, fingerprint, email, user_id, NULL);
+      if (may_ask && tl != TRUST_ULTIMATE && tl != TRUST_EXPIRED)
+        need_warning |=
+          show_statistics (dbs, fingerprint, email, user_id->d, NULL, now);
+
+      if (tl == TRUST_NEVER)
+        trust_level = TRUST_NEVER;
+      else if (tl == TRUST_EXPIRED)
+        /* Ignore expired bindings in the trust calculation.  */
+        ;
+      else if (tl > trust_level)
+        {
+          /* The expected values: */
+          log_assert (tl == TRUST_UNKNOWN || tl == TRUST_UNDEFINED
+                      || tl == TRUST_MARGINAL || tl == TRUST_FULLY
+                      || tl == TRUST_ULTIMATE);
+
+          /* We assume the following ordering:  */
+          log_assert (TRUST_UNKNOWN < TRUST_UNDEFINED);
+          log_assert (TRUST_UNDEFINED < TRUST_MARGINAL);
+          log_assert (TRUST_MARGINAL < TRUST_FULLY);
+          log_assert (TRUST_FULLY < TRUST_ULTIMATE);
+
+          trust_level = tl;
+        }
+
+      xfree (email);
+    }
+
+  if (need_warning)
+    show_warning (fingerprint, user_id_list);
 
  die:
-  xfree (email);
+  tofu_end_batch_update (ctrl);
+
   xfree (fingerprint);
+
+  if (bindings_valid == 0)
+    {
+      if (DBG_TRUST)
+        log_debug ("no (of %d) valid bindings."
+                   "  Can't get TOFU validity for this set of user ids.\n",
+                   bindings);
+      return TRUST_NEVER;
+    }
+
   return trust_level;
 }
 
@@ -2420,6 +3465,8 @@ tofu_get_validity (ctrl_t ctrl, PKT_public_key *pk, const char *user_id,
 gpg_error_t
 tofu_set_policy (ctrl_t ctrl, kbnode_t kb, enum tofu_policy policy)
 {
+  gpg_error_t err;
+  time_t now = gnupg_get_time ();
   tofu_dbs_t dbs;
   PKT_public_key *pk;
   char *fingerprint = NULL;
@@ -2438,12 +3485,13 @@ tofu_set_policy (ctrl_t ctrl, kbnode_t kb, enum tofu_policy policy)
   if (DBG_TRUST)
     log_debug ("Setting TOFU policy for %s to %s\n",
               keystr (pk->keyid), tofu_policy_str (policy));
-  if (! (pk->main_keyid[0] == pk->keyid[0]
-        && pk->main_keyid[1] == pk->keyid[1]))
+  if (keyid_cmp (pk_main_keyid (pk), pk_keyid (pk)) != 0)
     log_bug ("%s: Passed a subkey, but expecting a primary key.\n", __func__);
 
   fingerprint = hexfingerprint (pk, NULL, 0);
 
+  begin_transaction (ctrl, 0);
+
   for (; kb; kb = kb->next)
     {
       PKT_user_id *user_id;
@@ -2460,13 +3508,26 @@ tofu_set_policy (ctrl_t ctrl, kbnode_t kb, enum tofu_policy policy)
 
       email = email_from_user_id (user_id->name);
 
-      record_binding (dbs, fingerprint, email, user_id->name, policy, 1);
+      err = record_binding (dbs, fingerprint, email, user_id->name,
+                            policy, NULL, 1, now);
+      if (err)
+        {
+          log_error (_("error setting policy for key %s, user id \"%s\": %s"),
+                     fingerprint, email, gpg_strerror (err));
+          xfree (email);
+          break;
+        }
 
       xfree (email);
     }
 
+  if (err)
+    rollback_transaction (ctrl);
+  else
+    end_transaction (ctrl, 0);
+
   xfree (fingerprint);
-  return 0;
+  return err;
 }
 
 /* Set the TOFU policy for all non-revoked user ids in the KEY with
index e3ec819..f114443 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef G10_TOFU_H
@@ -59,7 +59,7 @@ enum tofu_policy
     TOFU_POLICY_ASK = 5,
 
 
-    /* Privat evalue used only within tofu.c.  */
+    /* Privatvalue used only within tofu.c.  */
     _tofu_GET_POLICY_ERROR = 100
   };
 
@@ -72,28 +72,49 @@ const char *tofu_policy_str (enum tofu_policy policy);
    (e.g., TRUST_BAD) in light of the current configuration.  */
 int tofu_policy_to_trust_level (enum tofu_policy policy);
 
-/* Register the binding <PK, USER_ID> and the signature
-   described by SIGS_DIGEST and SIG_TIME, which it generated.  Origin
-   describes where the signed data came from, e.g., "email:claws"
-   (default: "unknown").  If MAY_ASK is 1, then this function may
-   interact with the user in the case of a conflict or if the
-   binding's policy is ask.  This function returns the binding's trust
-   level.  If an error occurs, it returns TRUST_UNKNOWN.  */
-int tofu_register (ctrl_t ctrl, PKT_public_key *pk, const char *user_id,
-                  const byte *sigs_digest, int sigs_digest_len,
-                  time_t sig_time, const char *origin, int may_ask);
+/* Register the bindings <PK, USER_ID>, for each USER_ID in
+   USER_ID_LIST, and the signature described by SIGS_DIGEST and
+   SIG_TIME, which it generated.  Origin describes where the signed
+   data came from, e.g., "email:claws" (default: "unknown").  Note:
+   this function does not interact with the user, If there is a
+   conflict, or if the binding's policy is ask, the actual interaction
+   is deferred until tofu_get_validity is called.  Set the string
+   list FLAG to indicate that a specified user id is expired.  This
+   function returns 0 on success and an error code on failure.  */
+gpg_error_t tofu_register_signature (ctrl_t ctrl, PKT_public_key *pk,
+                                     strlist_t user_id_list,
+                                     const byte *sigs_digest,
+                                     int sigs_digest_len,
+                                     time_t sig_time, const char *origin);
+
+/* Note that an encrypted mail was sent to <PK, USER_ID>, for each
+   USER_ID in USER_ID_LIST.  (If USER_ID_LIST is NULL, then all
+   non-revoked user ids associated with PK are used.)  If MAY_ASK is
+   set, then may interact with the user to resolve a TOFU
+   conflict.  */
+gpg_error_t tofu_register_encryption (ctrl_t ctrl,
+                                      PKT_public_key *pk,
+                                      strlist_t user_id_list,
+                                      int may_ask);
 
 /* Combine a trust level returned from the TOFU trust model with a
    trust level returned by the PGP trust model.  This is primarily of
    interest when the trust model is tofu+pgp (TM_TOFU_PGP).  */
 int tofu_wot_trust_combine (int tofu, int wot);
 
-/* Determine the validity (TRUST_NEVER, etc.) of the binding
-   <PK, USER_ID>.  If MAY_ASK is 1, then this function may
-   interact with the user.  If not, TRUST_UNKNOWN is returned.  If an
-   error occurs, TRUST_UNDEFINED is returned.  */
+/* Write a "tfs" record for a --with-colons listing.  */
+gpg_error_t tofu_write_tfs_record (ctrl_t ctrl, estream_t fp,
+                                   PKT_public_key *pk, const char *user_id);
+
+/* Determine the validity (TRUST_NEVER, etc.) of the binding <PK,
+   USER_ID>.  If MAY_ASK is 1, then this function may interact with
+   the user.  If not, TRUST_UNKNOWN is returned if an interaction is
+   required.  Set the string list FLAGS to indicate that a specified
+   user id is expired.  If an error occurs, TRUST_UNDEFINED is
+   returned.  */
 int tofu_get_validity (ctrl_t ctrl,
-                       PKT_public_key *pk, const char *user_id, int may_ask);
+                       PKT_public_key *pk, strlist_t user_id_list,
+                       int may_ask);
 
 /* Set the policy for all non-revoked user ids in the keyblock KB to
    POLICY.  */
index 8790754..2a829b8 100644 (file)
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index dd74d18..edae6ef 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -36,6 +36,7 @@
 #include "options.h"
 #include "packet.h"
 #include "main.h"
+#include "mbox-util.h"
 #include "i18n.h"
 #include "tdbio.h"
 #include "trustdb.h"
@@ -988,7 +989,7 @@ tdb_get_validity_core (ctrl_t ctrl,
                       int may_ask)
 {
   TRUSTREC trec, vrec;
-  gpg_error_t err;
+  gpg_error_t err = 0;
   ulong recno;
 #ifdef USE_TOFU
   unsigned int tofu_validity = TRUST_UNKNOWN;
@@ -1022,30 +1023,58 @@ tdb_get_validity_core (ctrl_t ctrl,
 #ifdef USE_TOFU
   if (opt.trust_model == TM_TOFU || opt.trust_model == TM_TOFU_PGP)
     {
-      kbnode_t user_id_node = NULL;
-      kbnode_t n = NULL;       /* Silence -Wmaybe-uninitialized.  */
-      int user_ids = 0;
-      int user_ids_expired = 0;
+      kbnode_t kb = NULL;
+      kbnode_t n = NULL;
+      strlist_t user_id_list = NULL;
+      int done = 0;
 
-      /* If the caller didn't supply a user id then iterate over all
-        uids.  */
+      /* If the caller didn't supply a user id then use all uids.  */
       if (! uid)
-       user_id_node = n = get_pubkeyblock (main_pk->keyid);
+       kb = n = get_pubkeyblock (main_pk->keyid);
+
+      if (DBG_TRUST && sig && sig->signers_uid)
+        log_debug ("TOFU: only considering user id: '%s'\n",
+                   sig->signers_uid);
 
-      while (uid
-            || (n = find_next_kbnode (n, PKT_USER_ID)))
+      while (!done && (uid || (n = find_next_kbnode (n, PKT_USER_ID))))
        {
-         unsigned int tl;
          PKT_user_id *user_id;
+          int expired = 0;
 
          if (uid)
-           user_id = uid;
+            {
+              user_id = uid;
+              /* If the caller specified a user id, then we only
+                 process the specified user id and are done after the
+                 first iteration.  */
+              done = 1;
+            }
          else
            user_id = n->pkt->pkt.user_id;
 
+          if (user_id->attrib_data)
+            /* Skip user attributes.  */
+            continue;
+
+          if (sig && sig->signers_uid)
+            /* Make sure the UID matches.  */
+            {
+              char *email = mailbox_from_userid (user_id->name);
+              if (!email || !*email || strcmp (sig->signers_uid, email) != 0)
+                {
+                  if (DBG_TRUST)
+                    log_debug ("TOFU: skipping user id '%s', which does"
+                               " not match the signer's email ('%s')\n",
+                               email, sig->signers_uid);
+                  xfree (email);
+                  continue;
+                }
+              xfree (email);
+            }
+
           /* If the user id is revoked or expired, then skip it.  */
-         if (user_id->is_revoked || user_id->is_expired)
-           {
+          if (user_id->is_revoked || user_id->is_expired)
+            {
               if (DBG_TRUST)
                 {
                   char *s;
@@ -1060,42 +1089,43 @@ tdb_get_validity_core (ctrl_t ctrl,
                              s, user_id->name);
                 }
 
-             continue;
-           }
+              if (user_id->is_revoked)
+                continue;
 
-         user_ids ++;
+              expired = 1;
+            }
 
-         if (sig)
-           tl = tofu_register (ctrl, main_pk, user_id->name,
-                               sig->digest, sig->digest_len,
-                               sig->timestamp, "unknown",
-                               may_ask);
-         else
-           tl = tofu_get_validity (ctrl, main_pk, user_id->name, may_ask);
-
-         if (tl == TRUST_EXPIRED)
-           user_ids_expired ++;
-         else if (tl == TRUST_UNDEFINED || tl == TRUST_UNKNOWN)
-           ;
-         else if (tl == TRUST_NEVER)
-           tofu_validity = TRUST_NEVER;
-         else
-           {
-             log_assert (tl == TRUST_MARGINAL
-                          || tl == TRUST_FULLY
-                          || tl == TRUST_ULTIMATE);
+          add_to_strlist (&user_id_list, user_id->name);
+          user_id_list->flags = expired;
+        }
 
-             if (tl > tofu_validity)
-               /* XXX: We we really want the max?  */
-               tofu_validity = tl;
-           }
+      /* Process the user ids in the order they appear in the key
+         block.  */
+      strlist_rev (&user_id_list);
 
-         if (uid)
-           /* If the caller specified a user id, then we stop
-              now.  */
-           break;
-       }
-      release_kbnode (user_id_node);
+      /* It only makes sense to observe any signature before getting
+         the validity.  This is because if the current signature
+         results in a conflict, then we damn well want to take that
+         into account.  */
+      if (sig)
+        {
+          err = tofu_register_signature (ctrl, main_pk, user_id_list,
+                                         sig->digest, sig->digest_len,
+                                         sig->timestamp, "unknown");
+          if (err)
+            {
+              log_error ("TOFU: error registering signature: %s\n",
+                         gpg_strerror (err));
+
+              tofu_validity = TRUST_UNKNOWN;
+            }
+        }
+      if (! err)
+        tofu_validity = tofu_get_validity (ctrl, main_pk, user_id_list,
+                                           may_ask);
+
+      free_strlist (user_id_list);
+      release_kbnode (kb);
     }
 #endif /*USE_TOFU*/
 
index 47d7b72..77aa79d 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef G10_TRUSTDB_H
index 5cd0bd7..7327e85 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 0f547d3..c8d97b0 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 #ifndef G10_ZLIB_RISCOS_H
 #define G10_ZLIB_RISCOS_H
index 90dd471..c0e7a71 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 ## Process this file with automake to produce Makefile.in
 
index 659c6b7..a495f8a 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index d1cedb3..2805d99 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef G13_BACKEND_H
index c65be08..e048b99 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 189bfee..cc0fce5 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef G13_BE_DMCRYPT_H
index a873541..6c648ab 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 744c16a..1f1b8b3 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef G13_BE_ENCFS_H
index 9d75bdf..e75b936 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index e98c989..d6d1e84 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef G13_BE_TRUECRYPT_H
index 76d181b..adffc6e 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 0e110c9..3e83829 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_G13_CALL_SYSHELP_H
index 0126f5b..573039d 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index ec4224c..ccb954a 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef G13_CREATE_H
index e6adcb8..8370907 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 
index a205081..1fe80d3 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef G13_COMMON_H
index 7976be4..8b8a4a7 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -302,7 +302,7 @@ main ( int argc, char **argv)
   /* Prepare libassuan.  */
   assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
   /*assuan_set_system_hooks (ASSUAN_SYSTEM_NPTH);*/
-  setup_libassuan_logging (&opt.debug);
+  setup_libassuan_logging (&opt.debug, NULL);
 
   /* Setup a default control structure for command line mode.  */
   memset (&ctrl, 0, sizeof ctrl);
index 618b41d..b6adcbd 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef G13_SYSHELP_H
index 7744855..0553c85 100644 (file)
--- a/g13/g13.c
+++ b/g13/g13.c
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -431,7 +431,7 @@ main ( int argc, char **argv)
   /* Prepare libassuan.  */
   assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
   assuan_set_system_hooks (ASSUAN_SYSTEM_NPTH);
-  setup_libassuan_logging (&opt.debug);
+  setup_libassuan_logging (&opt.debug, NULL);
 
   /* Setup a default control structure for command line mode.  */
   memset (&ctrl, 0, sizeof ctrl);
index e694890..9c0acb5 100644 (file)
--- a/g13/g13.h
+++ b/g13/g13.h
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef G13_H
index ddcb467..f79c82d 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index c9dfb47..77d595d 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef G13_G13TUPLE_H
index 8a5b622..81863bb 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 48f0b9c..90fcf60 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef G13_KEYBLOB_H
index b46c8d0..7814d5c 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 0037682..fd403d5 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef G13_MOUNT_H
index 1c4894d..26eca0c 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 95e95f5..ab346bf 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef G13_MOUNTINFO_H
index 35c6843..af2e836 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 3c82143..36181ad 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef G13_RUNNER_H
index 5a273c2..0c4563e 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 41636c8..6338f40 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef G13_SERVER_H
index 4b4dde4..6c12dde 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 8214919..a54f0ae 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -161,8 +161,8 @@ static const char hlp_finddevice[] =
   "FINDDEVICE <name>\n"
   "\n"
   "Find the device matching NAME.  NAME be any identifier from\n"
-  "g13tab permissable for the user.  The corresponding block\n"
-  "device is retruned using a status line.";
+  "g13tab permissible for the user.  The corresponding block\n"
+  "device is returned using a status line.";
 static gpg_error_t
 cmd_finddevice (assuan_context_t ctx, char *line)
 {
index 201f856..bbeab65 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -55,7 +55,7 @@
 
 /* The length in blocks of the space we put at the start and at the
    end of the device.  This space is used to store N copies of the
-   setup area for the actual encrypted container inbetween.  */
+   setup area for the actual encrypted container in between.  */
 #define HEADER_SECTORS (SETUP_AREA_SECTORS * HEADER_SETUP_AREA_COPIES)
 #define FOOTER_SECTORS (SETUP_AREA_SECTORS * FOOTER_SETUP_AREA_COPIES)
 
index 39aeaeb..7bdf738 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 91702eb..21943e7 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef G13_SUSPEND_H
index f986efa..bbd9898 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 95138e0..fe7da1b 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 ## Process this file with automake to produce Makefile.in
 
@@ -61,6 +61,7 @@ kbxutil_SOURCES = kbxutil.c $(common_sources)
 kbxutil_CFLAGS = $(AM_CFLAGS) -DKEYBOX_WITH_X509=1
 kbxutil_LDADD   = ../common/libcommon.a \
                   $(KSBA_LIBS) $(LIBGCRYPT_LIBS) $(extra_libs) \
-                  $(GPG_ERROR_LIBS) $(LIBINTL) $(LIBICONV) $(W32SOCKLIBS)
+                  $(GPG_ERROR_LIBS) $(LIBINTL) $(LIBICONV) $(W32SOCKLIBS) \
+                 $(NETLIBS)
 
 $(PROGRAMS) : ../common/libcommon.a
index 77b134a..dd8477c 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 896f137..73ecfbe 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /*
index d74a7ef..d9c3d3a 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef KEYBOX_DEFS_H
index f4e7c98..0e8f63a 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 59dfe0c..0485e81 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 3b53cd5..6a83f71 100644 (file)
@@ -1,4 +1,4 @@
-/* keybox-init.c - Initalization of the library
+/* keybox-init.c - Initialization of the library
  *     Copyright (C) 2001 Free Software Foundation, Inc.
  *
  * This file is part of GnuPG.
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index a0e4ab9..6885e05 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /* This is a simple OpenPGP parser suitable for all OpenPGP key
index 741f2e8..6298994 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /*
index 681d5c0..ec5aad1 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index e5d4dc8..31171de 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -122,13 +122,13 @@ rename_tmp_file (const char *bakfname, const char *tmpfname,
   if (!secret)
     {
       block = 1;
-      rc = keybox_file_rename (fname, bakfname, &block);
+      rc = gnupg_rename_file (fname, bakfname, &block);
       if (rc)
         goto leave;
     }
 
   /* Then rename the file. */
-  rc = keybox_file_rename (tmpfname, fname, NULL);
+  rc = gnupg_rename_file (tmpfname, fname, NULL);
   if (block)
     {
       gnupg_unblock_all_signals ();
index a2ca3f0..486753c 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -147,73 +147,9 @@ keybox_tmp_names (const char *filename, int for_keyring,
   return 0;
 }
 
-
-/* Wrapper for rename(2) to handle Windows peculiarities.  If
- * BLOCK_SIGNALS is not NULL and points to a variable set to true, all
- * signals will be blocked by calling gnupg_block_all_signals; the
- * caller needs to call gnupg_unblock_all_signals if that variable is
- * still set to true on return. */
 gpg_error_t
 keybox_file_rename (const char *oldname, const char *newname,
                     int *block_signals)
 {
-  gpg_error_t err = 0;
-
-  if (block_signals && *block_signals)
-    gnupg_block_all_signals ();
-
-#ifdef HAVE_DOSISH_SYSTEM
-  {
-    int wtime = 0;
-
-    gnupg_remove (newname);
-  again:
-    if (rename (oldname, newname))
-      {
-        if (GetLastError () == ERROR_SHARING_VIOLATION)
-          {
-            /* Another process has the file open.  We do not use a
-             * lock for read but instead we wait until the other
-             * process has closed the file.  This may take long but
-             * that would also be the case with a dotlock approach for
-             * read and write.  Note that we don't need this on Unix
-             * due to the inode concept.
-             *
-             * So let's wait until the rename has worked.  The retry
-             * intervals are 50, 100, 200, 400, 800, 50ms, ...  */
-            if (!wtime || wtime >= 800)
-              wtime = 50;
-            else
-              wtime *= 2;
-
-            if (wtime >= 800)
-              log_info ("waiting for file '%s' to become accessible ...\n",
-                        oldname);
-
-            Sleep (wtime);
-            goto again;
-          }
-        err = gpg_error_from_syserror ();
-      }
-  }
-#else /* Unix */
-  {
-#ifdef __riscos__
-    gnupg_remove (newname);
-#endif
-    if (rename (oldname, newname) )
-      err = gpg_error_from_syserror ();
-  }
-#endif /* Unix */
-
-  if (block_signals && *block_signals && err)
-    {
-      gnupg_unblock_all_signals ();
-      *block_signals = 0;
-    }
-
-  if (err)
-    log_error ("renaming '%s' to '%s' failed: %s\n",
-               oldname, newname, gpg_strerror (err));
-  return err;
+  return gnupg_rename_file (oldname, newname, block_signals);
 }
index 6180a2f..5c2824a 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef KEYBOX_H
@@ -134,8 +134,6 @@ void keybox_set_malloc_hooks ( void *(*new_alloc_func)(size_t n),
 
 gpg_error_t keybox_tmp_names (const char *filename, int for_keyring,
                               char **r_bakname, char **r_tmpname);
-gpg_error_t keybox_file_rename (const char *oldname, const char *newname,
-                                int *block_signals);
 
 
 #ifdef __cplusplus
index 78953b7..8b115ee 100644 (file)
--- a/m4/pkg.m4
+++ b/m4/pkg.m4
@@ -53,7 +53,7 @@ fi[]dnl
 # to PKG_CHECK_MODULES(), but does not set variables or print errors.
 #
 # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
-# only at the first occurence in configure.ac, so if the first place
+# only at the first occurrence in configure.ac, so if the first place
 # it's called might be skipped (such as if it is within an "if", you
 # have to call PKG_CHECK_EXISTS manually
 # --------------------------------------------------------------
index 51f5650..9df52ad 100644 (file)
--- a/po/ca.po
+++ b/po/ca.po
@@ -176,14 +176,6 @@ msgstr ""
 "no s'ha trobat cap anell secret de escrivible: %s\n"
 "\n"
 
-#, fuzzy, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "no s'ha pogut eliminar el bloc de claus: %s\n"
-
-#, fuzzy, c-format
-msgid "error writing key: %s\n"
-msgstr "error mentre s'escrivia l'anell «%s»: %s\n"
-
 #, c-format
 msgid ""
 "An ssh process requested the use of key%%0A  %s%%0A  (%s)%%0ADo you want to "
@@ -340,6 +332,11 @@ msgstr ""
 msgid "run in server mode (foreground)"
 msgstr ""
 
+#, fuzzy
+#| msgid "Key is superseded"
+msgid "run in supervised mode"
+msgstr "La clau ha estat substituïda"
+
 # Un dels dos és en la llista d'opcions amb --help. Urgh. jm
 msgid "verbose"
 msgstr "detall"
@@ -763,9 +760,9 @@ msgstr "error en la creació de la contrasenya: %s\n"
 msgid "error forking process: %s\n"
 msgstr "error en la lectura de «%s»: %s\n"
 
-#, fuzzy, c-format
-msgid "waiting for processes to terminate failed: %s\n"
-msgstr "ha fallat l'actualització: %s\n"
+#, c-format
+msgid "waiting for process %d to terminate failed: %s\n"
+msgstr ""
 
 #, fuzzy, c-format
 msgid "error running '%s': probably not installed\n"
@@ -780,13 +777,13 @@ msgid "error running '%s': terminated\n"
 msgstr "error en la lectura de «%s»: %s\n"
 
 #, fuzzy, c-format
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "ha fallat l'actualització: %s\n"
+
+#, fuzzy, c-format
 msgid "error getting exit code of process %d: %s\n"
 msgstr "s'ha produït un error mentre s'escrivia l'anell secret «%s»: %s\n"
 
-#, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr ""
-
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to '%s': %s\n"
@@ -810,6 +807,14 @@ msgstr "AVÍS: el propietari és insegur en %s «%s»\n"
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
 msgstr "AVÍS: els permissos són insegurs en %s «%s»\n"
 
+#, fuzzy, c-format
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "ha fallat l'actualització: %s\n"
+
+#, fuzzy, c-format
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "no s'ha pogut crear l'armadura: %s\n"
+
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "yes"
 msgstr "sí|si"
@@ -2278,9 +2283,9 @@ msgstr "mostra en quin anell de claus està una clau llistada"
 msgid "show expiration dates during signature listings"
 msgstr "No hi ha cap signatura corresponent en l'anell secret\n"
 
-#, fuzzy
-msgid "available TOFU policies:\n"
-msgstr "desactiva una clau"
+#, fuzzy, c-format
+msgid "valid values for option '%s':\n"
+msgstr "opcions d'importació no vàlides\n"
 
 #, fuzzy, c-format
 msgid "unknown TOFU policy '%s'\n"
@@ -2290,6 +2295,10 @@ msgid "(use \"help\" to list choices)\n"
 msgstr ""
 
 #, fuzzy, c-format
+msgid "invalid value for option '%s'\n"
+msgstr "opcions d'importació no vàlides\n"
+
+#, fuzzy, c-format
 #| msgid "NOTE: old default options file `%s' ignored\n"
 msgid "Note: old default options file '%s' ignored\n"
 msgstr "NOTA: es descarta el fitxer d'opcions predeterminades antic «%s»\n"
@@ -3098,6 +3107,10 @@ msgid "[self-signature]"
 msgstr "[autosignatura]"
 
 #, fuzzy, c-format
+msgid "error allocating memory: %s\n"
+msgstr "error en crear l'anell «%s»: %s\n"
+
+#, fuzzy, c-format
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
 msgstr "clau %08lX: l'algoritme de clau pública no és suportat\n"
 
@@ -5197,6 +5210,23 @@ msgstr "Aquesta clau pertany probablement al seu propietari\n"
 msgid "This key belongs to us\n"
 msgstr "Aquesta clau és nostra\n"
 
+#, fuzzy, c-format
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr ""
+"No s'han trobat certificats amb confiança no definida.\n"
+"\n"
+
+#, fuzzy
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"NO és segur que la clau pertanya a la persona esmentada en\n"
+"l'ID d'usuari. Si *realment* sabeu què feu, podeu respondre\n"
+"«sí» a la següent pregunta\n"
+"\n"
+
 #, fuzzy
 msgid ""
 "It is NOT certain that the key belongs to the person named\n"
@@ -5881,27 +5911,31 @@ msgid "error updating TOFU database: %s\n"
 msgstr "error mentre s'enviava a «%s»: %s\n"
 
 #, c-format
-msgid "The binding %s is NOT known."
+msgid ""
+"This is the first time the email address \"%s\" is being used with key %s."
 msgstr ""
 
 #, c-format
-msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr ""
+
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error gathering other user IDs: %s\n"
 msgstr "error en crear «%s»: %s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr ""
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "llista claus i ID"
 
 #, fuzzy, c-format
 #| msgid "Policy: "
@@ -5922,41 +5956,47 @@ msgstr[1] ""
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr ""
 
+msgid ", "
+msgstr ""
+
 #, fuzzy
 #| msgid "list keys"
 msgid "this key"
 msgstr "llista claus"
 
-#, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
-msgstr[0] ""
-msgstr[1] ""
-
 #, fuzzy, c-format
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
 msgstr[0] "|algo [fitxers]|imprimeix resums de missatges"
 msgstr[1] "|algo [fitxers]|imprimeix resums de missatges"
 
 #, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+msgid " over the past year."
+msgid_plural " over the past %d years."
 msgstr[0] ""
 msgstr[1] ""
 
+msgid " in the past."
+msgstr ""
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5972,6 +6012,16 @@ msgstr ""
 msgid "(G)ood, (A)ccept once, (U)nknown, (R)eject once, (B)ad? "
 msgstr ""
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "resetting keydb: %s\n"
+msgstr "error mentre s'escrivia l'anell «%s»: %s\n"
+
 #, fuzzy, c-format
 msgid "error setting TOFU binding's trust level to %s\n"
 msgstr "error en la lectura de «%s»: %s\n"
@@ -6019,50 +6069,57 @@ msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
+msgid "%s: "
 msgstr ""
 
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
-msgstr ""
+# Werner FIXME: use ngettext. jm
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "S'han esborrat %d signatures.\n"
 
 #, fuzzy, c-format
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "|algo [fitxers]|imprimeix resums de missatges"
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
+msgstr[0] "|algo [fitxers]|imprimeix resums de missatges"
+msgstr[1] "|algo [fitxers]|imprimeix resums de missatges"
+
+#, fuzzy, c-format
+#| msgid "encrypted with %lu passphrases\n"
+msgid ", and encrypted %ld messages"
+msgstr "xifrat amb %lu contrasenyes\n"
+
+#, fuzzy, c-format
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] "|algo [fitxers]|imprimeix resums de missatges"
+msgstr[1] "|algo [fitxers]|imprimeix resums de missatges"
 
-#, c-format
 msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
-msgstr[0] ""
-msgstr[1] ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
+msgstr ""
 
-#, c-format
-msgid "The most recent message was verified %s ago."
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
 msgstr ""
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
 msgstr ""
 
 #, c-format
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -6072,6 +6129,15 @@ msgstr[1] ""
 msgid "error opening TOFU database: %s\n"
 msgstr "error mentre s'enviava a «%s»: %s\n"
 
+#, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring `%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "s'ha produït un error mentre s'escrivia l'anell públic «%s»: %s\n"
+
 #, fuzzy, c-format
 #| msgid "`%s' is not a valid long keyID\n"
 msgid "'%s' is not a valid long keyID\n"
@@ -6326,22 +6392,24 @@ msgstr "no s'ha pogut emmagatzemar l'empremta digital: %s\n"
 msgid "failed to store the creation date: %s\n"
 msgstr "no s'ha pogut reconstruir la memòria cau de l'anell: %s\n"
 
-#, fuzzy, c-format
-msgid "reading public key failed: %s\n"
-msgstr "no s'ha pogut eliminar el bloc de claus: %s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr ""
-
 msgid "response does not contain the RSA modulus\n"
 msgstr ""
 
 msgid "response does not contain the RSA public exponent\n"
 msgstr ""
 
-msgid "response does not contain the EC public point\n"
+#, fuzzy
+#| msgid "remove keys from the public keyring"
+msgid "response does not contain the EC public key\n"
+msgstr "elimina claus de l'anell públic"
+
+msgid "response does not contain the public key data\n"
 msgstr ""
 
+#, fuzzy, c-format
+msgid "reading public key failed: %s\n"
+msgstr "no s'ha pogut eliminar el bloc de claus: %s\n"
+
 #, c-format
 msgid "using default PIN as %s\n"
 msgstr ""
@@ -8009,6 +8077,9 @@ msgstr ""
 msgid "allow sending OCSP requests"
 msgstr ""
 
+msgid "allow online software version check"
+msgstr ""
+
 msgid "inhibit the use of HTTP"
 msgstr ""
 
@@ -8287,10 +8358,6 @@ msgid "'%s' is an invalid LDAP URL\n"
 msgstr ""
 
 #, fuzzy, c-format
-msgid "error allocating memory: %s\n"
-msgstr "error en crear l'anell «%s»: %s\n"
-
-#, fuzzy, c-format
 msgid "error printing log line: %s\n"
 msgstr "error mentre s'escrivia l'anell «%s»: %s\n"
 
@@ -8764,23 +8831,25 @@ msgstr ""
 msgid "Configuration for OCSP"
 msgstr ""
 
-msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr ""
 
-msgid "GPG Agent"
+msgid "Private Keys"
 msgstr ""
 
-msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr ""
 
-msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr ""
 
-msgid "Key Acquirer"
-msgstr ""
+#, fuzzy
+#| msgid "network error"
+msgid "Network"
+msgstr "error de la xarxa"
 
 #, fuzzy
-msgid "PIN and Passphrase Entry"
+msgid "Passphrase Entry"
 msgstr "la contrasenya és errònia"
 
 #, fuzzy
@@ -8823,6 +8892,11 @@ msgstr "s'ha creat el nou fitxer d'opcions «%s»\n"
 msgid "check global configuration file"
 msgstr "s'ha creat el nou fitxer d'opcions «%s»\n"
 
+#, fuzzy
+#| msgid "update the trust database"
+msgid "query the software version database"
+msgstr "actualitza la base de dades de confiança"
+
 msgid "reload all or a given component"
 msgstr ""
 
@@ -9003,6 +9077,20 @@ msgid ""
 "Check a passphrase given on stdin against the patternfile\n"
 msgstr ""
 
+#, fuzzy
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "no s'ha pogut eliminar el bloc de claus: %s\n"
+
+#, fuzzy
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "desactiva una clau"
+
+#, fuzzy
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "|algo [fitxers]|imprimeix resums de missatges"
+#~ msgstr[1] "|algo [fitxers]|imprimeix resums de missatges"
+
 #~ msgid "communication problem with gpg-agent\n"
 #~ msgstr "hi ha un problema de comunicació amb el gpg-agent\n"
 
@@ -9085,10 +9173,6 @@ msgstr ""
 #~ msgid "1 user ID without valid self-signature detected\n"
 #~ msgstr "Ha estat detectat 1 ID sense autosignatura vàlida\n"
 
-# Werner FIXME: use ngettext. jm
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "S'han esborrat %d signatures.\n"
-
 #, fuzzy
 #~ msgid "User ID \"%s\": %d signatures removed\n"
 #~ msgstr "L'ID d'usuari «%s» està revocat."
@@ -9133,10 +9217,6 @@ msgstr ""
 #~ msgstr "1 signatura errònia\n"
 
 #, fuzzy
-#~ msgid "renaming '%s' to '%s' failed: %s\n"
-#~ msgstr "no s'ha pogut crear l'armadura: %s\n"
-
-#, fuzzy
 #~ msgid "%lu keys cached (%lu signatures)\n"
 #~ msgstr "s'han comprovat %lu claus (%lu signatures)\n"
 
@@ -9798,7 +9878,7 @@ msgstr ""
 #~ "a la llista actual de preferències. Les marques de temps de totes les\n"
 #~ "autosignatures afectades s'avançaran un segon.\n"
 
-#~ msgid "Please enter the passhrase; this is a secret sentence \n"
+#~ msgid "Please enter the passphrase; this is a secret sentence \n"
 #~ msgstr "Introduïu la contrasenya; aquesta ha de ser una frase secreta \n"
 
 #~ msgid ""
@@ -10096,9 +10176,6 @@ msgstr ""
 #~ msgid "bad URI"
 #~ msgstr "l'URI és errònia"
 
-#~ msgid "network error"
-#~ msgstr "error de la xarxa"
-
 # Gènere?  Nombre?  Passat, futur?  ivb
 # Probablement és una clau, femení. jm
 # Werner FIXME: please add translator comment saying *what* is
index d185c57..56e61d9 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -175,14 +175,6 @@ msgid "no suitable card key found: %s\n"
 msgstr "nenalezen žádný vhodný klíč karty: %s\n"
 
 #, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "výroba stínového klíče se nezdařila: %s\n"
-
-#, c-format
-msgid "error writing key: %s\n"
-msgstr "chyba při zápisu klíče: %s\n"
-
-#, c-format
 msgid ""
 "An ssh process requested the use of key%%0A  %s%%0A  (%s)%%0ADo you want to "
 "allow this?"
@@ -332,6 +324,11 @@ msgstr "poběží v režimu démona (na pozadí)"
 msgid "run in server mode (foreground)"
 msgstr "poběží v režimu serveru (na popředí)"
 
+#, fuzzy
+#| msgid "run in server mode"
+msgid "run in supervised mode"
+msgstr "pracovat v režimu serveru"
+
 msgid "verbose"
 msgstr "upovídaný režim"
 
@@ -735,9 +732,8 @@ msgstr "chyba při vytváření proudu pro rouru: %s\n"
 msgid "error forking process: %s\n"
 msgstr "chyba při rozdvojování procesu: %s\n"
 
-#, fuzzy, c-format
-#| msgid "waiting for process %d to terminate failed: %s\n"
-msgid "waiting for processes to terminate failed: %s\n"
+#, c-format
+msgid "waiting for process %d to terminate failed: %s\n"
 msgstr "čekání na konec procesu %d se nezdařilo: %s\n"
 
 #, c-format
@@ -752,15 +748,16 @@ msgstr "chyba v běhu „%s“: návratový kód %d\n"
 msgid "error running '%s': terminated\n"
 msgstr "chyba v běhu „%s“: násilně ukončeno\n"
 
+#, fuzzy, c-format
+#| msgid "waiting for process %d to terminate failed: %s\n"
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "čekání na konec procesu %d se nezdařilo: %s\n"
+
 #, c-format
 msgid "error getting exit code of process %d: %s\n"
 msgstr "chyba při získání návratového kódu procesu %d: %s\n"
 
 #, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr "čekání na konec procesu %d se nezdařilo: %s\n"
-
-#, c-format
 msgid "can't connect to '%s': %s\n"
 msgstr "nelze se připojit k „%s“: %s\n"
 
@@ -781,6 +778,15 @@ msgstr "Varování: vlastnictví %s „%s“ není nastaveno bezpečně\n"
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
 msgstr "Varování: přístupová práva %s „%s“ nejsou bezpečná\n"
 
+#, fuzzy, c-format
+#| msgid "waiting for the agent to come up ... (%ds)\n"
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "čeká se na agenta… (%d s)\n"
+
+#, c-format
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "přejmenování „%s“ na „%s“ se nezdařilo: %s\n"
+
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "yes"
 msgstr "ano"
@@ -2105,8 +2111,10 @@ msgstr "ukazovat název souboru s klíči při výpisu klíčů"
 msgid "show expiration dates during signature listings"
 msgstr "ukazovat data expirace během výpisu podpisů"
 
-msgid "available TOFU policies:\n"
-msgstr "dostupné politiky TOFU:\n"
+#, fuzzy, c-format
+#| msgid "invalid argument for option \"%.50s\"\n"
+msgid "valid values for option '%s':\n"
+msgstr "neplatný argument u volby „%.50s“\n"
 
 #, c-format
 msgid "unknown TOFU policy '%s'\n"
@@ -2115,6 +2123,11 @@ msgstr "neznámá TOFU politika „%s“\n"
 msgid "(use \"help\" to list choices)\n"
 msgstr "(možnosti lze vypsat příkazem „help“)\n"
 
+#, fuzzy, c-format
+#| msgid "invalid argument for option \"%.50s\"\n"
+msgid "invalid value for option '%s'\n"
+msgstr "neplatný argument u volby „%.50s“\n"
+
 #, c-format
 msgid "Note: old default options file '%s' ignored\n"
 msgstr "Poznámka: starý implicitní soubor s možnostmi „%s“ ignorován\n"
@@ -2883,6 +2896,10 @@ msgstr "[revokace]"
 msgid "[self-signature]"
 msgstr "[podpis klíče jím samým]"
 
+#, c-format
+msgid "error allocating memory: %s\n"
+msgstr "chyba při alokování paměti: %s\n"
+
 #, fuzzy, c-format
 #| msgid "key %s: unsupported public key algorithm\n"
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
@@ -4837,6 +4854,26 @@ msgstr "Tento klíč pravděpodobně náleží uvedenému uživateli\n"
 msgid "This key belongs to us\n"
 msgstr "Tento klíč náleží nám (máme odpovídající tajný klíč)\n"
 
+#, fuzzy, c-format
+#| msgid "root certificate has now been marked as trusted\n"
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr "kořenový certifikát byl nyní označen za důvěryhodný\n"
+
+#, fuzzy
+#| msgid ""
+#| "It is NOT certain that the key belongs to the person named\n"
+#| "in the user ID.  If you *really* know what you are doing,\n"
+#| "you may answer the next question with yes.\n"
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"NENÍ jisté, zda tento klíč patří osobě, jejíž jméno je uvedeno\n"
+"v uživatelském ID. Pokud *skutečně* víte, co děláte, můžete na\n"
+"následující otázku odpovědět ano\n"
+"\n"
+
 msgid ""
 "It is NOT certain that the key belongs to the person named\n"
 "in the user ID.  If you *really* know what you are doing,\n"
@@ -5515,19 +5552,21 @@ msgid "error updating TOFU database: %s\n"
 msgstr "chyba při odesílání dat: %s\n"
 
 #, c-format
-msgid "The binding %s is NOT known."
+msgid ""
+"This is the first time the email address \"%s\" is being used with key %s."
 msgstr ""
 
 #, c-format
-msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr ""
+
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
 
 #, fuzzy, c-format
@@ -5535,8 +5574,10 @@ msgstr ""
 msgid "error gathering other user IDs: %s\n"
 msgstr "chyba při zjišťování ID odpovídače: %s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr ""
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "vypsat seznam klíčů a id uživatelů"
 
 #, fuzzy, c-format
 #| msgid "validity: %s"
@@ -5559,47 +5600,53 @@ msgstr[2] ""
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr ""
 
+msgid ", "
+msgstr ""
+
 #, fuzzy
 #| msgid "list keys"
 msgid "this key"
 msgstr "vypsat seznam klíčů"
 
-#, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
 #, fuzzy, c-format
 #| msgid "print message digests"
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
 msgstr[0] "vypsat hash zprávy"
 msgstr[1] "vypsat hash zprávy"
 msgstr[2] "vypsat hash zprávy"
 
 #, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#, c-format
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
 #, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
 #, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+msgid " over the past year."
+msgid_plural " over the past %d years."
 msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
+msgid " in the past."
+msgstr ""
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5615,6 +5662,17 @@ msgstr ""
 msgid "(G)ood, (A)ccept once, (U)nknown, (R)eject once, (B)ad? "
 msgstr ""
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing key: %s\n"
+msgid "resetting keydb: %s\n"
+msgstr "chyba při zápisu klíče: %s\n"
+
 #, fuzzy, c-format
 #| msgid "error setting OCSP target: %s\n"
 msgid "error setting TOFU binding's trust level to %s\n"
@@ -5670,52 +5728,60 @@ msgstr[1] ""
 msgstr[2] ""
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
+msgid "%s: "
 msgstr ""
 
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
-msgstr ""
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "Smazáno %d podpisů.\n"
 
 #, fuzzy, c-format
 #| msgid "print message digests"
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "vypsat hash zprávy"
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
+msgstr[0] "vypsat hash zprávy"
+msgstr[1] "vypsat hash zprávy"
+msgstr[2] "vypsat hash zprávy"
+
+#, fuzzy, c-format
+#| msgid "encrypted with %lu passphrases\n"
+msgid ", and encrypted %ld messages"
+msgstr "zašifrováno s heslem %lu\n"
+
+#, fuzzy, c-format
+#| msgid "print message digests"
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] "vypsat hash zprávy"
+msgstr[1] "vypsat hash zprávy"
+msgstr[2] "vypsat hash zprávy"
 
-#, c-format
 msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
+msgstr ""
 
-#, c-format
-msgid "The most recent message was verified %s ago."
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
 msgstr ""
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
 msgstr ""
 
 #, c-format
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -5728,6 +5794,15 @@ msgid "error opening TOFU database: %s\n"
 msgstr "chyba při odesílání dat: %s\n"
 
 #, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring '%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "chyba při zápisu do souboru veřejných klíčů „%s“: %s\n"
+
+#, c-format
 msgid "'%s' is not a valid long keyID\n"
 msgstr "„%s“ není platný dlouhý keyID\n"
 
@@ -5978,22 +6053,24 @@ msgstr "uložení otisku se nezdařilo: %s\n"
 msgid "failed to store the creation date: %s\n"
 msgstr "uložení data vytvoření se nezdařilo: %s\n"
 
-#, c-format
-msgid "reading public key failed: %s\n"
-msgstr "čtení veřejného klíče se nezdařilo: %s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr "odpověď neobsahuje veřejný klíč\n"
-
 msgid "response does not contain the RSA modulus\n"
 msgstr "odpověď neobsahuje RSA modulus\n"
 
 msgid "response does not contain the RSA public exponent\n"
 msgstr "odpověď neobsahuje veřejný RSA exponent\n"
 
-msgid "response does not contain the EC public point\n"
+#, fuzzy
+#| msgid "response does not contain the EC public point\n"
+msgid "response does not contain the EC public key\n"
 msgstr "odpověď neobsahuje veřejný bod EC\n"
 
+msgid "response does not contain the public key data\n"
+msgstr "odpověď neobsahuje veřejný klíč\n"
+
+#, c-format
+msgid "reading public key failed: %s\n"
+msgstr "čtení veřejného klíče se nezdařilo: %s\n"
+
 #, c-format
 msgid "using default PIN as %s\n"
 msgstr "používám implicitní PIN jako %s\n"
@@ -7564,6 +7641,9 @@ msgstr "vynutí zavedení zastaralých CRL"
 msgid "allow sending OCSP requests"
 msgstr "povolí odesílání OCSP dotazů"
 
+msgid "allow online software version check"
+msgstr ""
+
 msgid "inhibit the use of HTTP"
 msgstr "zakáže použití HTTP"
 
@@ -7819,10 +7899,6 @@ msgid "'%s' is an invalid LDAP URL\n"
 msgstr "„%s“ není platné LDAP URL\n"
 
 #, c-format
-msgid "error allocating memory: %s\n"
-msgstr "chyba při alokování paměti: %s\n"
-
-#, c-format
 msgid "error printing log line: %s\n"
 msgstr "chyba při tisknutí řádku protokolu: %s\n"
 
@@ -8276,22 +8352,32 @@ msgstr "Seznam LDAP serverů"
 msgid "Configuration for OCSP"
 msgstr "Nastavení OCSP"
 
-msgid "GPG for OpenPGP"
+#, fuzzy
+#| msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr "GPG pro OpenPGP"
 
-msgid "GPG Agent"
-msgstr "Agent GPG"
+msgid "Private Keys"
+msgstr ""
 
-msgid "Smartcard Daemon"
+#, fuzzy
+#| msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr "Démon pro čipové karty"
 
-msgid "GPG for S/MIME"
+#, fuzzy
+#| msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr "GPG pro S/MIME"
 
-msgid "Key Acquirer"
-msgstr "Stahovač klíčů"
+#, fuzzy
+#| msgid "network error"
+msgid "Network"
+msgstr "chyba sítě"
 
-msgid "PIN and Passphrase Entry"
+#, fuzzy
+#| msgid "PIN and Passphrase Entry"
+msgid "Passphrase Entry"
 msgstr "Zadávání kódu PIN a hesla"
 
 msgid "Component not suitable for launching"
@@ -8331,6 +8417,11 @@ msgstr "vypsat globální konfigurační soubor"
 msgid "check global configuration file"
 msgstr "zkontrolovat globální konfigurační soubor"
 
+#, fuzzy
+#| msgid "update the trust database"
+msgid "query the software version database"
+msgstr "aktualizovat databázi důvěry"
+
 msgid "reload all or a given component"
 msgstr "znovu načíst všechny nebo zadané komponenty"
 
@@ -8509,6 +8600,26 @@ msgstr ""
 "Syntaxe: gpg-check-pattern [volby] soubor_se_vzorem\n"
 "Prověří heslo zadané na vstupu proti souboru se vzory\n"
 
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "výroba stínového klíče se nezdařila: %s\n"
+
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "dostupné politiky TOFU:\n"
+
+#, fuzzy
+#~| msgid "print message digests"
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "vypsat hash zprávy"
+#~ msgstr[1] "vypsat hash zprávy"
+#~ msgstr[2] "vypsat hash zprávy"
+
+#~ msgid "GPG Agent"
+#~ msgstr "Agent GPG"
+
+#~ msgid "Key Acquirer"
+#~ msgstr "Stahovač klíčů"
+
 #~ msgid "communication problem with gpg-agent\n"
 #~ msgstr "problémy v komunikaci s gpg-agentem\n"
 
@@ -8596,9 +8707,6 @@ msgstr ""
 #~ msgid "1 user ID without valid self-signature detected\n"
 #~ msgstr "objeven 1 identifikátor uživatele bez platného podpisu jím samým\n"
 
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "Smazáno %d podpisů.\n"
-
 #~ msgid "User ID \"%s\": %d signatures removed\n"
 #~ msgstr "Uživatelské ID „%s“: %d podpisů odstraněno\n"
 
@@ -8639,9 +8747,6 @@ msgstr ""
 #~ msgid "1 good signature\n"
 #~ msgstr "1 dobrý podpis\n"
 
-#~ msgid "renaming '%s' to '%s' failed: %s\n"
-#~ msgstr "přejmenování „%s“ na „%s“ se nezdařilo: %s\n"
-
 #~ msgid "%lu keys cached (%lu signatures)\n"
 #~ msgstr "%lu klíčů uloženo v keši (%lu podpisů)\n"
 
@@ -9669,7 +9774,7 @@ msgstr ""
 #~ "na aktuální seznam předvoleb. Časová razítka všech dotčených podpisů\n"
 #~ "klíčů jimi samotnými budou posunuty o jednu vteřinu dopředu.\n"
 
-#~ msgid "Please enter the passhrase; this is a secret sentence \n"
+#~ msgid "Please enter the passphrase; this is a secret sentence \n"
 #~ msgstr "Prosím, vložte heslo; toto je tajná věta \n"
 
 #~ msgid ""
@@ -9953,9 +10058,6 @@ msgstr ""
 #~ msgid "bad URI"
 #~ msgstr "špatné URI"
 
-#~ msgid "network error"
-#~ msgstr "chyba sítě"
-
 #~ msgid "not processed"
 #~ msgstr "nezpracováno"
 
index ab7d352..018bab0 100644 (file)
--- a/po/da.po
+++ b/po/da.po
@@ -172,14 +172,6 @@ msgid "no suitable card key found: %s\n"
 msgstr "ingen egnet kortnøgle fundet: %s\n"
 
 #, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "skygge for nøgle mislykkedes: %s\n"
-
-#, c-format
-msgid "error writing key: %s\n"
-msgstr "fejl ved skrivning af nøgle: %s\n"
-
-#, c-format
 msgid ""
 "An ssh process requested the use of key%%0A  %s%%0A  (%s)%%0ADo you want to "
 "allow this?"
@@ -351,6 +343,11 @@ msgstr "kør i dæmontilstand (baggrunden)"
 msgid "run in server mode (foreground)"
 msgstr "kør i servertilstand (forgrunden)"
 
+#, fuzzy
+#| msgid "run in server mode"
+msgid "run in supervised mode"
+msgstr "kør i servertilstand"
+
 msgid "verbose"
 msgstr "uddybende"
 
@@ -793,9 +790,8 @@ msgstr "fejl ved oprettelse af datakanal: %s\n"
 msgid "error forking process: %s\n"
 msgstr "fejl ved forgrening af proces: %s\n"
 
-#, fuzzy, c-format
-#| msgid "waiting for process %d to terminate failed: %s\n"
-msgid "waiting for processes to terminate failed: %s\n"
+#, c-format
+msgid "waiting for process %d to terminate failed: %s\n"
 msgstr "ventning på at proces %d skulle terminere mislykkedes: %s\n"
 
 #, fuzzy, c-format
@@ -813,14 +809,15 @@ msgstr "fejl ved kørsel af »%s«: afslutningsstatus %d\n"
 msgid "error running '%s': terminated\n"
 msgstr "fejl ved kørsel af »%s«: termineret\n"
 
+#, fuzzy, c-format
+#| msgid "waiting for process %d to terminate failed: %s\n"
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "ventning på at proces %d skulle terminere mislykkedes: %s\n"
+
 #, c-format
 msgid "error getting exit code of process %d: %s\n"
 msgstr "fejl ved indhentelse af afslutningskode for proces %d: %s\n"
 
-#, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr "ventning på at proces %d skulle terminere mislykkedes: %s\n"
-
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to '%s': %s\n"
@@ -841,6 +838,16 @@ msgstr "Advarsel: usikker ejerskab på %s »%s«\n"
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
 msgstr "Advarsel: usikre rettigheder på %s »%s«\n"
 
+#, fuzzy, c-format
+#| msgid "waiting %d seconds for the agent to come up\n"
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "venter %d sekunder på at agenten kommer frem\n"
+
+#, fuzzy, c-format
+#| msgid "renaming `%s' to `%s' failed: %s\n"
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "omdøbelse af »%s« til »%s« mislykkedes: %s\n"
+
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "yes"
 msgstr "ja"
@@ -2232,10 +2239,10 @@ msgstr "vis nøgleringsnavnet i nøglevisninger"
 msgid "show expiration dates during signature listings"
 msgstr "vis udløbsdatoer under underskriftvisninger"
 
-#, fuzzy
-#| msgid "Available keys:\n"
-msgid "available TOFU policies:\n"
-msgstr "Tilgængelige nøgler:\n"
+#, fuzzy, c-format
+#| msgid "missing argument for option \"%.50s\"\n"
+msgid "valid values for option '%s':\n"
+msgstr "manglende parameter for indstilling »%.50s«\n"
 
 #, fuzzy, c-format
 #| msgid "unknown option `%s'\n"
@@ -2246,6 +2253,11 @@ msgid "(use \"help\" to list choices)\n"
 msgstr ""
 
 #, fuzzy, c-format
+#| msgid "missing argument for option \"%.50s\"\n"
+msgid "invalid value for option '%s'\n"
+msgstr "manglende parameter for indstilling »%.50s«\n"
+
+#, fuzzy, c-format
 #| msgid "NOTE: old default options file `%s' ignored\n"
 msgid "Note: old default options file '%s' ignored\n"
 msgstr "BEMÆRK: Gammel standardfil for tilvalg »%s« blev ignoreret\n"
@@ -3041,6 +3053,11 @@ msgid "[self-signature]"
 msgstr "[egenunderskrift]"
 
 #, fuzzy, c-format
+#| msgid "error allocating enough memory: %s\n"
+msgid "error allocating memory: %s\n"
+msgstr "fejl ved allokering af nok hukommelse: %s\n"
+
+#, fuzzy, c-format
 #| msgid "key %s: unsupported public key algorithm\n"
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
 msgstr "nøgle %s: ikke understøttet offentlig nøglealgoritme\n"
@@ -5085,6 +5102,25 @@ msgstr "Denne nøgle tilhører sikkert den navngivne bruger\n"
 msgid "This key belongs to us\n"
 msgstr "Denne nøgle tilhører os\n"
 
+#, fuzzy, c-format
+#| msgid "root certificate has now been marked as trusted\n"
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr "rodcertifikat er nu blevet markeret som troværdig\n"
+
+#, fuzzy
+#| msgid ""
+#| "It is NOT certain that the key belongs to the person named\n"
+#| "in the user ID.  If you *really* know what you are doing,\n"
+#| "you may answer the next question with yes.\n"
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"Det er IKKE sikkert, at nøglen tilhører personen navngivet\n"
+"i bruger-id'et. Hvis du *virkelig* ved hvad du gør,\n"
+"så kan du besvare det næste spørgsmål med ja.\n"
+
 msgid ""
 "It is NOT certain that the key belongs to the person named\n"
 "in the user ID.  If you *really* know what you are doing,\n"
@@ -5764,19 +5800,21 @@ msgid "error updating TOFU database: %s\n"
 msgstr "fejl under afsendelse af %s-kommando: %s\n"
 
 #, c-format
-msgid "The binding %s is NOT known."
+msgid ""
+"This is the first time the email address \"%s\" is being used with key %s."
 msgstr ""
 
 #, c-format
-msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr ""
+
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
 
 #, fuzzy, c-format
@@ -5784,8 +5822,10 @@ msgstr ""
 msgid "error gathering other user IDs: %s\n"
 msgstr "fejl ved indhentelse af ny PIN: %s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr ""
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "vis nøgle og bruger-id'er"
 
 #, fuzzy, c-format
 #| msgid "validity: %s"
@@ -5807,42 +5847,48 @@ msgstr[1] ""
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr ""
 
+msgid ", "
+msgstr ""
+
 #, fuzzy
 #| msgid "list keys"
 msgid "this key"
 msgstr "vis nøgler"
 
-#, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
-msgstr[0] ""
-msgstr[1] ""
-
 #, fuzzy, c-format
 #| msgid "print message digests"
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
 msgstr[0] "vis beskedsammendrag"
 msgstr[1] "vis beskedsammendrag"
 
 #, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+msgid " over the past year."
+msgid_plural " over the past %d years."
 msgstr[0] ""
 msgstr[1] ""
 
+msgid " in the past."
+msgstr ""
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5858,6 +5904,17 @@ msgstr ""
 msgid "(G)ood, (A)ccept once, (U)nknown, (R)eject once, (B)ad? "
 msgstr ""
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing key: %s\n"
+msgid "resetting keydb: %s\n"
+msgstr "fejl ved skrivning af nøgle: %s\n"
+
 #, fuzzy, c-format
 #| msgid "error storing flags: %s\n"
 msgid "error setting TOFU binding's trust level to %s\n"
@@ -5907,51 +5964,58 @@ msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
+msgid "%s: "
 msgstr ""
 
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
-msgstr ""
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "Slettede %d underskrifter.\n"
 
 #, fuzzy, c-format
 #| msgid "print message digests"
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "vis beskedsammendrag"
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
+msgstr[0] "vis beskedsammendrag"
+msgstr[1] "vis beskedsammendrag"
+
+#, fuzzy, c-format
+#| msgid "encrypted with %lu passphrases\n"
+msgid ", and encrypted %ld messages"
+msgstr "krypteret med %lu adgangsfraser\n"
+
+#, fuzzy, c-format
+#| msgid "print message digests"
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] "vis beskedsammendrag"
+msgstr[1] "vis beskedsammendrag"
 
-#, c-format
 msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
-msgstr[0] ""
-msgstr[1] ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
+msgstr ""
 
-#, c-format
-msgid "The most recent message was verified %s ago."
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
 msgstr ""
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
 msgstr ""
 
 #, c-format
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -5962,6 +6026,15 @@ msgstr[1] ""
 msgid "error opening TOFU database: %s\n"
 msgstr "fejl under afsendelse af %s-kommando: %s\n"
 
+#, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring `%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "fejl ved skrivning af offentlig nøglering »%s«: %s\n"
+
 #, fuzzy, c-format
 #| msgid "`%s' is not a valid long keyID\n"
 msgid "'%s' is not a valid long keyID\n"
@@ -6218,13 +6291,6 @@ msgstr "kunne ikke gemme fingeraftrykket: %s\n"
 msgid "failed to store the creation date: %s\n"
 msgstr "kunne ikke gemme oprettelsesdatoen: %s\n"
 
-#, c-format
-msgid "reading public key failed: %s\n"
-msgstr "læsning af offentlig nøgle mislykkedes: %s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr "svar indeholder ikke data for offentlig nøgle\n"
-
 msgid "response does not contain the RSA modulus\n"
 msgstr "svar indeholder ikke RSA modulus'erne\n"
 
@@ -6233,9 +6299,16 @@ msgstr "svar indeholder ikke den RSA-offentlige eksponent\n"
 
 #, fuzzy
 #| msgid "response does not contain the RSA public exponent\n"
-msgid "response does not contain the EC public point\n"
+msgid "response does not contain the EC public key\n"
 msgstr "svar indeholder ikke den RSA-offentlige eksponent\n"
 
+msgid "response does not contain the public key data\n"
+msgstr "svar indeholder ikke data for offentlig nøgle\n"
+
+#, c-format
+msgid "reading public key failed: %s\n"
+msgstr "læsning af offentlig nøgle mislykkedes: %s\n"
+
 #, c-format
 msgid "using default PIN as %s\n"
 msgstr "bruger standard-PIN som %s\n"
@@ -7957,6 +8030,9 @@ msgstr ""
 msgid "allow sending OCSP requests"
 msgstr "tillad PKA-opslag (DNS-forespørgsler)"
 
+msgid "allow online software version check"
+msgstr ""
+
 msgid "inhibit the use of HTTP"
 msgstr ""
 
@@ -8258,11 +8334,6 @@ msgid "'%s' is an invalid LDAP URL\n"
 msgstr ""
 
 #, fuzzy, c-format
-#| msgid "error allocating enough memory: %s\n"
-msgid "error allocating memory: %s\n"
-msgstr "fejl ved allokering af nok hukommelse: %s\n"
-
-#, fuzzy, c-format
 #| msgid "error writing to %s: %s\n"
 msgid "error printing log line: %s\n"
 msgstr "fejl ved skrivning til »%s«: %s\n"
@@ -8791,24 +8862,24 @@ msgstr "LDAP-serverliste"
 msgid "Configuration for OCSP"
 msgstr "Konfiguration for OCSP"
 
-msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr ""
 
-msgid "GPG Agent"
+msgid "Private Keys"
 msgstr ""
 
-msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr ""
 
-msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr ""
 
-msgid "Key Acquirer"
+msgid "Network"
 msgstr ""
 
 #, fuzzy
 #| msgid "Bad Passphrase"
-msgid "PIN and Passphrase Entry"
+msgid "Passphrase Entry"
 msgstr "Ugyldig adgangsfrase"
 
 #, fuzzy
@@ -8853,6 +8924,11 @@ msgid "check global configuration file"
 msgstr "kontroller global konfigurationsfil"
 
 #, fuzzy
+#| msgid "update the trust database"
+msgid "query the software version database"
+msgstr "opdater troværdighedsdatabasen"
+
+#, fuzzy
 #| msgid "list all components"
 msgid "reload all or a given component"
 msgstr "vis alle komponenter"
@@ -9043,6 +9119,21 @@ msgstr ""
 "Syntaks: gpg-check-pattern [tilvalg] mønsterfil\n"
 "Kontroller en adgangsfrase angivet på stdin mod mønsterfilen\n"
 
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "skygge for nøgle mislykkedes: %s\n"
+
+#, fuzzy
+#~| msgid "Available keys:\n"
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "Tilgængelige nøgler:\n"
+
+#, fuzzy
+#~| msgid "print message digests"
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "vis beskedsammendrag"
+#~ msgstr[1] "vis beskedsammendrag"
+
 #~ msgid "communication problem with gpg-agent\n"
 #~ msgstr "kommunikationsproblem med gpg-agent\n"
 
@@ -9129,9 +9220,6 @@ msgstr ""
 #~ msgid "1 user ID without valid self-signature detected\n"
 #~ msgstr "1 bruger-id uden gyldig egenunderskrift detekteret\n"
 
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "Slettede %d underskrifter.\n"
-
 #~ msgid "User ID \"%s\": %d signatures removed\n"
 #~ msgstr "Bruger-id »%s«: %d underskrifter fjernet\n"
 
@@ -9174,11 +9262,6 @@ msgstr ""
 #~ msgid "1 good signature\n"
 #~ msgstr "1 ugyldig underskrift\n"
 
-#, fuzzy
-#~| msgid "renaming `%s' to `%s' failed: %s\n"
-#~ msgid "renaming '%s' to '%s' failed: %s\n"
-#~ msgstr "omdøbelse af »%s« til »%s« mislykkedes: %s\n"
-
 #~ msgid "%lu keys cached (%lu signatures)\n"
 #~ msgstr "%lu nøgler mellemlagret (%lu underskrifter)\n"
 
index 71e5700..aad4cd1 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnupg-2.1.0\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
-"PO-Revision-Date: 2016-08-18 16:52+0200\n"
+"PO-Revision-Date: 2016-11-18 15:40+0100\n"
 "Last-Translator: Werner Koch <wk@gnupg.org>\n"
 "Language-Team: German <de@li.org>\n"
 "Language: de\n"
@@ -154,14 +154,6 @@ msgid "no suitable card key found: %s\n"
 msgstr "keine passender Kartenschlüssel gefunden: %s\n"
 
 #, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "\"Shadowing\" des Schlüssels schlug fehl: %s\n"
-
-#, c-format
-msgid "error writing key: %s\n"
-msgstr "Fehler beim Schreiben des Schlüssels: %s\n"
-
-#, c-format
 msgid ""
 "An ssh process requested the use of key%%0A  %s%%0A  (%s)%%0ADo you want to "
 "allow this?"
@@ -321,6 +313,9 @@ msgstr "Im Daemon Modus ausführen"
 msgid "run in server mode (foreground)"
 msgstr "Im Server Modus ausführen"
 
+msgid "run in supervised mode"
+msgstr "Im \"Supervised\" Modus ausführen"
+
 msgid "verbose"
 msgstr "Detaillierte Informationen"
 
@@ -734,8 +729,8 @@ msgid "error forking process: %s\n"
 msgstr "Fehler beim \"Forken\" des Prozess: %s\n"
 
 #, c-format
-msgid "waiting for processes to terminate failed: %s\n"
-msgstr "Das Warten auf die Beendigung von Prozessen schlug fehl: %s\n"
+msgid "waiting for process %d to terminate failed: %s\n"
+msgstr "Das Warten auf die Beendigung des Prozesses %d schlug fehl: %s\n"
 
 #, c-format
 msgid "error running '%s': probably not installed\n"
@@ -750,12 +745,12 @@ msgid "error running '%s': terminated\n"
 msgstr "Fehler bei Ausführung von `%s': beendet\n"
 
 #, c-format
-msgid "error getting exit code of process %d: %s\n"
-msgstr "Fehler beim Holen des Exitwerte des Prozesses %d: %s\n"
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "Das Warten auf die Beendigung von Prozessen schlug fehl: %s\n"
 
 #, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr "Das Warten auf die Beendigung des Prozesses %d schlug fehl: %s\n"
+msgid "error getting exit code of process %d: %s\n"
+msgstr "Fehler beim Holen des Exitwerte des Prozesses %d: %s\n"
 
 #, c-format
 msgid "can't connect to '%s': %s\n"
@@ -776,6 +771,14 @@ msgstr "WARNUNG: Unsichere Besitzrechte für %s \"%s\"\n"
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
 msgstr "WARNUNG: Unsichere Zugriffsrechte für %s \"%s\"\n"
 
+#, c-format
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "Warte bis auf die Datei '%s' zugegriffen werden kann ...\n"
+
+#, c-format
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "umbenennen von `%s' nach `%s' schlug fehl: %s\n"
+
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "yes"
 msgstr "ja"
@@ -2088,8 +2091,9 @@ msgstr "Anzeigen des Schlüsselbundes, in dem ein Schlüssel drin ist"
 msgid "show expiration dates during signature listings"
 msgstr "Das Ablaufdatum mit den Signaturen anlisten"
 
-msgid "available TOFU policies:\n"
-msgstr "Vorhandene TOFU Regeln:\n"
+#, c-format
+msgid "valid values for option '%s':\n"
+msgstr "Gültige Argumente für Option '%s':\n"
 
 #, c-format
 msgid "unknown TOFU policy '%s'\n"
@@ -2099,6 +2103,10 @@ msgid "(use \"help\" to list choices)\n"
 msgstr "(\"help\" um mögliche Werte anzuzeigen)\n"
 
 #, c-format
+msgid "invalid value for option '%s'\n"
+msgstr "Ungültiges Argument für Option '%s'\n"
+
+#, c-format
 msgid "Note: old default options file '%s' ignored\n"
 msgstr "Hinweis: Alte voreingestellte Optionendatei '%s' wurde ignoriert\n"
 
@@ -2880,6 +2888,10 @@ msgid "[self-signature]"
 msgstr "[Eigenbeglaubigung]"
 
 #, c-format
+msgid "error allocating memory: %s\n"
+msgstr "Fehler beim Allozieren von Speicher: %s\n"
+
+#, c-format
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
 msgstr ""
 "Die Signatur mit den nicht unterstützten Public-Key-Verfahren (%d) kann "
@@ -4854,6 +4866,25 @@ msgstr ""
 "Dieser Schlüssel gehört uns (da wir nämlich den geheimen Schlüssel dazu "
 "haben)\n"
 
+#, fuzzy, c-format
+#| msgid "root certificate has now been marked as trusted\n"
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr "Das Wurzelzertifikat wurde nun als vertrauenswürdig markiert\n"
+
+#, fuzzy
+#| msgid ""
+#| "It is NOT certain that the key belongs to the person named\n"
+#| "in the user ID.  If you *really* know what you are doing,\n"
+#| "you may answer the next question with yes.\n"
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"Es ist NICHT sicher, daß der Schlüssel zu dem in der User-ID\n"
+"Genannten gehört. Wenn Sie *wirklich* wissen, was Sie tun,\n"
+"können Sie die nächste Frage mit ja beantworten\n"
+
 msgid ""
 "It is NOT certain that the key belongs to the person named\n"
 "in the user ID.  If you *really* know what you are doing,\n"
@@ -5525,14 +5556,24 @@ msgstr "Fehler beim Öffner der TOFU Datenbank '%s': %s\n"
 msgid "error updating TOFU database: %s\n"
 msgstr "Fehler beim Schreiben der TOFU Datenbank: %s\n"
 
-#, c-format
-msgid "The binding %s is NOT known."
-msgstr "Die Bindung %s ist NICHT bekannt."
-
-#, c-format
+#, fuzzy, c-format
+#| msgid "The email address \"%s\" is associated with %d key:\n"
+#| msgid_plural "The email address \"%s\" is associated with %d keys:\n"
 msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+"This is the first time the email address \"%s\" is being used with key %s."
+msgstr "Die Email-Adresse \"%s\" ist mit einem Schlüssel assoziert:\n"
+
+#, fuzzy, c-format
+#| msgid "The email address \"%s\" is associated with %d key:\n"
+#| msgid_plural "The email address \"%s\" is associated with %d keys:\n"
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr "Die Email-Adresse \"%s\" ist mit einem Schlüssel assoziert:\n"
+
+#, fuzzy
+#| msgid ""
+#| "The key with fingerprint %s raised a conflict with the binding %s.  Since "
+#| "this binding's policy was 'auto', it was changed to 'ask'."
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 "Der Schlüssel mit dem Fingerabdruck %s steht im Konflikt mit der Bindung "
 "(%s).  Die Richtlinie dieser Bindung wurde deswegen von 'auto' auf 'ask' "
@@ -5540,19 +5581,18 @@ msgstr ""
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
-"Bitte geben Sie Ihre Einschätzung, ob die Bindung %s%s legitim (der "
-"Schlüssel gehört dem angegebenen Besitzer) oder eine Fälschung (ungültig) "
-"ist."
 
 #, c-format
 msgid "error gathering other user IDs: %s\n"
 msgstr "Fehler beim Einsammeln der übrigen User-IDs: %s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr "Bekannte, mit diesem Schlüssel assozierte, User-IDs:\n"
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "Schlüssel und User-IDs auflisten"
 
 #, c-format
 msgid "policy: %s"
@@ -5572,39 +5612,55 @@ msgstr[1] "Die Email-Adresse \"%s\" ist mit %d Schlüsseln assoziert:\n"
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr "Statistik für Schlüssel mit der Email-Adresse \"%s\":\n"
 
+msgid ", "
+msgstr ""
+
 msgid "this key"
 msgstr "dieser Schlüssel"
 
-#, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
-msgstr[0] "%ld Nachricht in der Zukunft signiert."
-msgstr[1] "%ld Nachrichten in der Zukunf signiert."
+#, fuzzy, c-format
+#| msgid "Verified %ld messages signed by \"%s\"."
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
+msgstr[0] "%ld überprüfte Nachrichten von \"%s\"."
+msgstr[1] "%ld überprüfte Nachrichten von \"%s\"."
 
 #, c-format
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
-msgstr[0] "%ld Nachricht signiert"
-msgstr[1] "%ld Nachrichten signiert"
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
+msgstr[0] ""
+msgstr[1] ""
 
-#, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+#, fuzzy, c-format
+#| msgid " over the past %ld day."
+#| msgid_plural " over the past %ld days."
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] " innerhalb des letzten Tages."
 msgstr[1] " innerhalb der letzten %ld Tage."
 
-#, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
-msgstr[0] " innerhalb der letzten Woche."
-msgstr[1] " innerhalb der letzten %ld Wochen."
-
-#, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+#, fuzzy, c-format
+#| msgid " over the past %ld month."
+#| msgid_plural " over the past %ld months."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] " innerhalb des letzten Monats."
 msgstr[1] " innerhalb der letzten %ld Monate."
 
+#, fuzzy, c-format
+#| msgid " over the past %ld day."
+#| msgid_plural " over the past %ld days."
+msgid " over the past year."
+msgid_plural " over the past %d years."
+msgstr[0] " innerhalb des letzten Tages."
+msgstr[1] " innerhalb der letzten %ld Tage."
+
+#, fuzzy
+#| msgid " over the past %ld day."
+#| msgid_plural " over the past %ld days."
+msgid " in the past."
+msgstr " innerhalb des letzten Tages."
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5627,6 +5683,17 @@ msgstr "gGaAuUlLfF"
 msgid "(G)ood, (A)ccept once, (U)nknown, (R)eject once, (B)ad? "
 msgstr "(G)ut, einmal (A)kzeptieren, (U)nbekannt, einmal ab(L)ehnen, (F)alsch?"
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing key: %s\n"
+msgid "resetting keydb: %s\n"
+msgstr "Fehler beim Schreiben des Schlüssels: %s\n"
+
 #, c-format
 msgid "error setting TOFU binding's trust level to %s\n"
 msgstr "Fehler beim Setzen der TOFU Binding Vertrauensstufe auf %s\n"
@@ -5674,28 +5741,23 @@ msgstr[0] "%d~Sekunde"
 msgstr[1] "%d~Sekunden"
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
-msgstr "Es wurde noch keine Nachricht mit dem Schlüssel %s überprüft!\n"
-
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
+msgid "%s: "
 msgstr ""
-"Signaturstatistiken für \"%s\" (Schlüssel %s) konnten nicht gesammelt "
-"werden\n"
 
-#, c-format
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "%ld überprüfte Nachrichten von \"%s\"."
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "%d Beglaubigungen entfernt.\n"
 
-#, c-format
-msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
+#, fuzzy, c-format
+#| msgid ""
+#| "Verified %ld message signed by \"%s\"\n"
+#| "in the past %s."
+#| msgid_plural ""
+#| "Verified %ld messages signed by \"%s\"\n"
+#| "in the past %s."
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
 msgstr[0] ""
 "%ld überprüfte Nachricht von \"%s\"\n"
 "in den letzten %s."
@@ -5703,31 +5765,80 @@ msgstr[1] ""
 "%ld überprüfte Nachrichten von \"%s\"\n"
 "in den letzten %s."
 
-#, c-format
-msgid "The most recent message was verified %s ago."
-msgstr "Die neueste Nachricht wurde vor %s überprüft."
+#, fuzzy, c-format
+#| msgid "encrypted with %lu passphrases\n"
+msgid ", and encrypted %ld messages"
+msgstr "Verschlüsselt mit %lu Passphrases\n"
+
+#, fuzzy, c-format
+#| msgid ""
+#| "Verified %ld message signed by \"%s\"\n"
+#| "in the past %s."
+#| msgid_plural ""
+#| "Verified %ld messages signed by \"%s\"\n"
+#| "in the past %s."
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] ""
+"%ld überprüfte Nachricht von \"%s\"\n"
+"in den letzten %s."
+msgstr[1] ""
+"%ld überprüfte Nachrichten von \"%s\"\n"
+"in den letzten %s."
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+#, fuzzy
+#| msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
 msgstr ""
 "WARNUNG: Wir müssen noch eine mit diesem Schlüssel signierte Nachricht "
 "sehen.\n"
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+#, fuzzy
+#| msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 "WARNUNG: Wir haben nur eine einzige mit diesem Schlüssel signierte Nachricht "
 "gesehen.\n"
 
-#, c-format
+#, fuzzy
+#| msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
+msgstr ""
+"WARNUNG: Wir müssen noch eine mit diesem Schlüssel signierte Nachricht "
+"sehen.\n"
+
+#, fuzzy
+#| msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
+msgstr ""
+"WARNUNG: Wir haben nur eine einzige mit diesem Schlüssel signierte Nachricht "
+"gesehen.\n"
+
+#, fuzzy, c-format
+#| msgid ""
+#| "Warning: if you think you've seen more than %ld message signed by this "
+#| "key, then this key might be a forgery!  Carefully examine the email "
+#| "address for small variations.  If the key is suspect, then use\n"
+#| "  %s\n"
+#| "to mark it as being bad.\n"
+#| msgid_plural ""
+#| "Warning: if you think you've seen more than %ld messages signed by this "
+#| "key, then this key might be a forgery!  Carefully examine the email "
+#| "address for small variations.  If the key is suspect, then use\n"
+#| "  %s\n"
+#| "to mark it as being bad.\n"
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -5750,6 +5861,15 @@ msgid "error opening TOFU database: %s\n"
 msgstr "Fehler beim Öffnen der TOFU Datenbank: %s\n"
 
 #, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring '%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "Fehler beim Schreiben des öff. Schlüsselbundes `%s': %s\n"
+
+#, c-format
 msgid "'%s' is not a valid long keyID\n"
 msgstr "'%s' ist keine gültige lange Schlüssel-ID\n"
 
@@ -6004,21 +6124,21 @@ msgstr "Der Fingerabdruck kann nicht gespeichert werden: %s\n"
 msgid "failed to store the creation date: %s\n"
 msgstr "Das Erzeugungsdatum konnte nicht gespeichert werden: %s\n"
 
-#, c-format
-msgid "reading public key failed: %s\n"
-msgstr "Lesen des öffentlichen Schlüssels fehlgeschlagen: %s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr "Die Antwort enthält keine öffentliche Schlüssel-Daten\n"
-
 msgid "response does not contain the RSA modulus\n"
 msgstr "Die Antwort enthält das RSA-Modulus nicht\n"
 
 msgid "response does not contain the RSA public exponent\n"
 msgstr "Antwort enthält den öffentlichen RSA-Exponenten nicht\n"
 
-msgid "response does not contain the EC public point\n"
-msgstr "Der öffentlichen EC Punkt fehlt in der Antwort\n"
+msgid "response does not contain the EC public key\n"
+msgstr "Der EC Schlüssel fehlt in der Antwort\n"
+
+msgid "response does not contain the public key data\n"
+msgstr "Die Antwort enthält keine öffentliche Schlüssel-Daten\n"
+
+#, c-format
+msgid "reading public key failed: %s\n"
+msgstr "Lesen des öffentlichen Schlüssels fehlgeschlagen: %s\n"
 
 #, c-format
 msgid "using default PIN as %s\n"
@@ -7621,6 +7741,9 @@ msgstr "Laden von abgelaufenen CRLs erzwingen"
 msgid "allow sending OCSP requests"
 msgstr "OCSP Anfragen erlauben"
 
+msgid "allow online software version check"
+msgstr "Online Softwareversionstest erlauben"
+
 msgid "inhibit the use of HTTP"
 msgstr "Sperre die Benutzung von HTTP"
 
@@ -7878,10 +8001,6 @@ msgid "'%s' is an invalid LDAP URL\n"
 msgstr "`%s' ist ein ungültiger LDAP URL\n"
 
 #, c-format
-msgid "error allocating memory: %s\n"
-msgstr "Fehler beim Allozieren von Speicher: %s\n"
-
-#, c-format
 msgid "error printing log line: %s\n"
 msgstr "Fehler beim Schreiben einer Logzeile: %s\n"
 
@@ -8338,23 +8457,23 @@ msgstr "Liste der LDAP Server"
 msgid "Configuration for OCSP"
 msgstr "Konfiguration zu OCSP"
 
-msgid "GPG for OpenPGP"
-msgstr "GPG für OpenPGP"
+msgid "OpenPGP"
+msgstr "OpenPGP"
 
-msgid "GPG Agent"
-msgstr "GPG Agent"
+msgid "Private Keys"
+msgstr "Geheime Schlüssel"
 
-msgid "Smartcard Daemon"
-msgstr "Smartcard Daemon"
+msgid "Smartcards"
+msgstr "Smartcard"
 
-msgid "GPG for S/MIME"
-msgstr "GPG für S/MIME"
+msgid "S/MIME"
+msgstr "S/MIME"
 
-msgid "Key Acquirer"
-msgstr "Schlüsselzugriff"
+msgid "Network"
+msgstr "Netz"
 
-msgid "PIN and Passphrase Entry"
-msgstr "PIN und Passphrase Eingabe"
+msgid "Passphrase Entry"
+msgstr "Passphrase Eingabe"
 
 msgid "Component not suitable for launching"
 msgstr "Komponente unterstützt kein direktes starten"
@@ -8393,6 +8512,9 @@ msgstr "Zeige die globale Konfigurationsdatei an"
 msgid "check global configuration file"
 msgstr "Prüfe die globale Konfigurationsdatei"
 
+msgid "query the software version database"
+msgstr "Abfrage der Datenbank mit Softwareversionen"
+
 msgid "reload all or a given component"
 msgstr "\"reload\" an alle oder eine Komponente senden"
 
@@ -8571,6 +8693,60 @@ msgstr ""
 "Syntax: gpg-check-pattern [optionen] Musterdatei\n"
 "Die von stdin gelesene Passphrase gegen die Musterdatei prüfen\n"
 
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "\"Shadowing\" des Schlüssels schlug fehl: %s\n"
+
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "Vorhandene TOFU Regeln:\n"
+
+#~ msgid "The binding %s is NOT known."
+#~ msgstr "Die Bindung %s ist NICHT bekannt."
+
+#~ msgid ""
+#~ "Please indicate whether you believe the binding %s%sis legitimate (the "
+#~ "key belongs to the stated owner) or a forgery (bad)."
+#~ msgstr ""
+#~ "Bitte geben Sie Ihre Einschätzung, ob die Bindung %s%s legitim (der "
+#~ "Schlüssel gehört dem angegebenen Besitzer) oder eine Fälschung (ungültig) "
+#~ "ist."
+
+#~ msgid "Known user IDs associated with this key:\n"
+#~ msgstr "Bekannte, mit diesem Schlüssel assozierte, User-IDs:\n"
+
+#~ msgid "%ld message signed in the future."
+#~ msgid_plural "%ld messages signed in the future."
+#~ msgstr[0] "%ld Nachricht in der Zukunft signiert."
+#~ msgstr[1] "%ld Nachrichten in der Zukunf signiert."
+
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "%ld Nachricht signiert"
+#~ msgstr[1] "%ld Nachrichten signiert"
+
+#~ msgid " over the past %ld week."
+#~ msgid_plural " over the past %ld weeks."
+#~ msgstr[0] " innerhalb der letzten Woche."
+#~ msgstr[1] " innerhalb der letzten %ld Wochen."
+
+#~ msgid "Have never verified a message signed by key %s!\n"
+#~ msgstr "Es wurde noch keine Nachricht mit dem Schlüssel %s überprüft!\n"
+
+#~ msgid ""
+#~ "Failed to collect signature statistics for \"%s\"\n"
+#~ "(key %s)\n"
+#~ msgstr ""
+#~ "Signaturstatistiken für \"%s\" (Schlüssel %s) konnten nicht gesammelt "
+#~ "werden\n"
+
+#~ msgid "The most recent message was verified %s ago."
+#~ msgstr "Die neueste Nachricht wurde vor %s überprüft."
+
+#~ msgid "GPG Agent"
+#~ msgstr "GPG Agent"
+
+#~ msgid "Key Acquirer"
+#~ msgstr "Schlüsselzugriff"
+
 #~ msgid "communication problem with gpg-agent\n"
 #~ msgstr "Kommunikationsproblem mit GPG-Agent\n"
 
@@ -8742,9 +8918,6 @@ msgstr ""
 #~ msgid "1 user ID without valid self-signature detected\n"
 #~ msgstr "Eine User-ID ohne gültige Eigenbeglaubigung entdeckt\n"
 
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "%d Beglaubigungen entfernt.\n"
-
 #~ msgid "User ID \"%s\": %d signatures removed\n"
 #~ msgstr "User-ID \"%s\": %d Signaturen entfernt\n"
 
@@ -8786,9 +8959,6 @@ msgstr ""
 #~ msgid "1 good signature\n"
 #~ msgstr "1 korrekte Signatur\n"
 
-#~ msgid "renaming '%s' to '%s' failed: %s\n"
-#~ msgstr "umbenennen von `%s' nach `%s' schlug fehl: %s\n"
-
 #~ msgid "%lu keys cached (%lu signatures)\n"
 #~ msgstr "%lu Schlüssel gepuffert (%lu Beglaubigungen)\n"
 
@@ -9616,7 +9786,7 @@ msgstr ""
 #~ "betroffenen\n"
 #~ "Eigenbeglaubigungen werden um eine Sekunde vorgestellt.\n"
 
-#~ msgid "Please enter the passhrase; this is a secret sentence \n"
+#~ msgid "Please enter the passphrase; this is a secret sentence \n"
 #~ msgstr "Bitte geben Sie die Passphrase ein. Dies ist ein geheimer Satz \n"
 
 #~ msgid ""
index 6930a87..705cc78 100644 (file)
--- a/po/el.po
+++ b/po/el.po
@@ -13,12 +13,12 @@ msgstr ""
 "Language-Team: Greek <nls@tux.hellug.gr>\n"
 "Language: el\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-7\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #, fuzzy, c-format
 msgid "failed to acquire the pinentry lock: %s\n"
-msgstr "áðïôõ÷ßá áñ÷éêïðïßçóçò ôçò TrustDB: %s\n"
+msgstr "αποτυχία αρχικοποίησης της TrustDB: %s\n"
 
 #. TRANSLATORS: These are labels for buttons etc used in
 #. Pinentries.  An underscore indicates that the next letter
@@ -46,7 +46,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Do you really want to make your passphrase visible on the screen?"
-msgstr "Óßãïõñá èÝëåôå íá äéáãñáöïýí ôá åðéëåãìÝíá êëåéäéÜ; "
+msgstr "Σίγουρα θέλετε να διαγραφούν τα επιλεγμένα κλειδιά; "
 
 msgid "|pinentry-tt|Make passphrase visible"
 msgstr ""
@@ -54,7 +54,7 @@ msgstr ""
 #, fuzzy
 #| msgid "invalid passphrase"
 msgid "|pinentry-tt|Hide passphrase"
-msgstr "ìç Ýãêõñç öñÜóç êëåéäß"
+msgstr "μη έγκυρη φράση κλειδί"
 
 #. TRANSLATORS: This string is displayed by Pinentry as the label
 #. for the quality bar.
@@ -79,14 +79,14 @@ msgstr ""
 msgid ""
 "Please enter your passphrase, so that the secret key can be unlocked for "
 "this session"
-msgstr "ÐëçêôñïëïãÞóôå ôç öñÜóç êëåéäß· áõôÞ åßíáé ìéá ìõóôéêÞ ðñüôáóç \n"
+msgstr "Πληκτρολογήστε τη φράση κλειδί· αυτή είναι μια μυστική πρόταση \n"
 
 msgid "PIN:"
 msgstr ""
 
 #, fuzzy
 msgid "Passphrase:"
-msgstr "êáêÞ öñÜóç êëåéäß"
+msgstr "κακή φράση κλειδί"
 
 msgid "does not match - try again"
 msgstr ""
@@ -103,44 +103,44 @@ msgstr ""
 
 #, fuzzy
 msgid "PIN too long"
-msgstr "ç ãñáììÞ åßíáé ðïëý ìåãÜëç\n"
+msgstr "η γραμμή είναι πολύ μεγάλη\n"
 
 #, fuzzy
 msgid "Passphrase too long"
-msgstr "ç öñÜóç êëåéäß åßíáé ðïëý ìåãÜëç\n"
+msgstr "η φράση κλειδί είναι πολύ μεγάλη\n"
 
 #, fuzzy
 msgid "Invalid characters in PIN"
-msgstr "Ìç Ýãêõñïò ÷áñáêôÞñáò óôï üíïìá\n"
+msgstr "Μη έγκυρος χαρακτήρας στο όνομα\n"
 
 msgid "PIN too short"
 msgstr ""
 
 #, fuzzy
 msgid "Bad PIN"
-msgstr "êáêü MPI"
+msgstr "κακό MPI"
 
 #, fuzzy
 msgid "Bad Passphrase"
-msgstr "êáêÞ öñÜóç êëåéäß"
+msgstr "κακή φράση κλειδί"
 
 #, fuzzy, c-format
 msgid "ssh keys greater than %d bits are not supported\n"
-msgstr "äåí õðïóôçñßæåôáé ï áëãüñéèìïò ðñïóôáóßáò %d%s\n"
+msgstr "δεν υποστηρίζεται ο αλγόριθμος προστασίας %d%s\n"
 
 #, fuzzy, c-format
 #| msgid "can't create `%s': %s\n"
 msgid "can't create '%s': %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò ôïõ `%s': %s\n"
+msgstr "αδυναμία δημιουργίας του `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't open `%s': %s\n"
 msgid "can't open '%s': %s\n"
-msgstr "áäõíáìßá ðñüóâáóçò óôï `%s': %s\n"
+msgstr "αδυναμία πρόσβασης στο `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error getting serial number of card: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, c-format
 msgid "detected card with S/N: %s\n"
@@ -148,19 +148,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "no authentication key for ssh on card: %s\n"
-msgstr "áäõíáìßá åããñáöÞò ìõóôéêÞò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία εγγραφής μυστικής κλειδοθήκης `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "no suitable card key found: %s\n"
-msgstr "äå âñÝèçêå åããñÜøéìç ìõóôéêÞ êëåéäïèÞêç: %s\n"
-
-#, fuzzy, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "äéáãñáöÞ block êëåéäéþí áðÝôõ÷å: %s\n"
-
-#, fuzzy, c-format
-msgid "error writing key: %s\n"
-msgstr "áäõíáìßá åããñáöÞò ôçò êëåéäïèÞêçò `%s': %s\n"
+msgstr "δε βρέθηκε εγγράψιμη μυστική κλειδοθήκη: %s\n"
 
 #, c-format
 msgid ""
@@ -176,21 +168,21 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "Please enter the passphrase for the ssh key%%0A  %F%%0A  (%c)"
-msgstr "ÐëçêôñïëïãÞóôå ôç öñÜóç êëåéäß· áõôÞ åßíáé ìéá ìõóôéêÞ ðñüôáóç \n"
+msgstr "Πληκτρολογήστε τη φράση κλειδί· αυτή είναι μια μυστική πρόταση \n"
 
 #, fuzzy
 msgid "Please re-enter this passphrase"
-msgstr "áëëáãÞ ôçò öñÜóçò êëåéäß"
+msgstr "αλλαγή της φράσης κλειδί"
 
 #, fuzzy, c-format
 msgid ""
 "Please enter a passphrase to protect the received secret key%%0A   %s%%0A   "
 "%s%%0Awithin gpg-agent's key storage"
-msgstr "ÐëçêôñïëïãÞóôå ôç öñÜóç êëåéäß· áõôÞ åßíáé ìéá ìõóôéêÞ ðñüôáóç \n"
+msgstr "Πληκτρολογήστε τη φράση κλειδί· αυτή είναι μια μυστική πρόταση \n"
 
 #, fuzzy, c-format
 msgid "failed to create stream from socket: %s\n"
-msgstr "%s: áäõíáìßá äçìéïõñãßáò hashtable: %s\n"
+msgstr "%s: αδυναμία δημιουργίας hashtable: %s\n"
 
 msgid "Please insert the card with serial number"
 msgstr ""
@@ -215,27 +207,27 @@ msgstr ""
 
 #, fuzzy
 msgid "Repeat this Reset Code"
-msgstr "ÅðáíáëÜâåôå ôç öñÜóç êëåéäß: "
+msgstr "Επαναλάβετε τη φράση κλειδί: "
 
 #, fuzzy
 msgid "Repeat this PUK"
-msgstr "ÅðáíáëÜâåôå ôç öñÜóç êëåéäß: "
+msgstr "Επαναλάβετε τη φράση κλειδί: "
 
 #, fuzzy
 msgid "Repeat this PIN"
-msgstr "ÅðáíáëÜâåôå ôç öñÜóç êëåéäß: "
+msgstr "Επαναλάβετε τη φράση κλειδί: "
 
 #, fuzzy
 msgid "Reset Code not correctly repeated; try again"
-msgstr "ç öñÜóç êëåéäß äåí åðáíáëÞöèçêå óùóôÜ. ÄïêéìÜóôå îáíÜ"
+msgstr "η φράση κλειδί δεν επαναλήφθηκε σωστά. Δοκιμάστε ξανά"
 
 #, fuzzy
 msgid "PUK not correctly repeated; try again"
-msgstr "ç öñÜóç êëåéäß äåí åðáíáëÞöèçêå óùóôÜ. ÄïêéìÜóôå îáíÜ"
+msgstr "η φράση κλειδί δεν επαναλήφθηκε σωστά. Δοκιμάστε ξανά"
 
 #, fuzzy
 msgid "PIN not correctly repeated; try again"
-msgstr "ç öñÜóç êëåéäß äåí åðáíáëÞöèçêå óùóôÜ. ÄïêéìÜóôå îáíÜ"
+msgstr "η φράση κλειδί δεν επαναλήφθηκε σωστά. Δοκιμάστε ξανά"
 
 #, c-format
 msgid "Please enter the PIN%s%s%s to unlock the card"
@@ -243,19 +235,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error creating temporary file: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, fuzzy, c-format
 msgid "error writing to temporary file: %s\n"
-msgstr "åããñáöÞ óôï  `%s'\n"
+msgstr "εγγραφή στο  `%s'\n"
 
 #, fuzzy
 msgid "Enter new passphrase"
-msgstr "ÐëçêôñïëïãÞóôå ôç öñÜóç êëåéäß\n"
+msgstr "Πληκτρολογήστε τη φράση κλειδί\n"
 
 #, fuzzy
 msgid "Take this one anyway"
-msgstr "×ñÞóç ïðùóäÞðïôå áõôïý ôïõ êëåéäéïý; "
+msgstr "Χρήση οπωσδήποτε αυτού του κλειδιού; "
 
 #, c-format
 msgid ""
@@ -275,8 +267,8 @@ msgstr ""
 #| msgid "Name must be at least 5 characters long\n"
 msgid "A passphrase should be at least %u character long."
 msgid_plural "A passphrase should be at least %u characters long."
-msgstr[0] "Ôï üíïìá ðñÝðåé íá Ý÷åé ôïõëÜ÷éóôïí 5 ÷áñáêôÞñåò\n"
-msgstr[1] "Ôï üíïìá ðñÝðåé íá Ý÷åé ôïõëÜ÷éóôïí 5 ÷áñáêôÞñåò\n"
+msgstr[0] "Το όνομα πρέπει να έχει τουλάχιστον 5 χαρακτήρες\n"
+msgstr[1] "Το όνομα πρέπει να έχει τουλάχιστον 5 χαρακτήρες\n"
 
 #, c-format
 msgid "A passphrase should contain at least %u digit or%%0Aspecial character."
@@ -295,12 +287,12 @@ msgstr ""
 #, fuzzy, c-format
 msgid "Please enter the passphrase to%0Aprotect your new key"
 msgstr ""
-"×ñåéÜæåóôå ìéá ÖñÜóç êëåéäß ãéá íá ðñïóôáôåýóåôå ôï ìõóôéêü êëåéäß.\n"
+"Χρειάζεστε μια Φράση κλειδί για να προστατεύσετε το μυστικό κλειδί.\n"
 "\n"
 
 #, fuzzy
 msgid "Please enter the new passphrase"
-msgstr "áëëáãÞ ôçò öñÜóçò êëåéäß"
+msgstr "αλλαγή της φράσης κλειδί"
 
 #, fuzzy
 msgid ""
@@ -308,7 +300,7 @@ msgid ""
 " "
 msgstr ""
 "@\n"
-"ÅðéëïãÝò:\n"
+"Επιλογές:\n"
 " "
 
 msgid "run in daemon mode (background)"
@@ -317,11 +309,16 @@ msgstr ""
 msgid "run in server mode (foreground)"
 msgstr ""
 
+#, fuzzy
+#| msgid "Key is superseded"
+msgid "run in supervised mode"
+msgstr "Το κλειδί έχει παρακαμθεί"
+
 msgid "verbose"
-msgstr "áíáëõôéêÜ"
+msgstr "αναλυτικά"
 
 msgid "be somewhat more quiet"
-msgstr "Þóõ÷ç Ýîïäïò"
+msgstr "ήσυχη έξοδος"
 
 msgid "sh-style command output"
 msgstr ""
@@ -331,7 +328,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|read options from FILE"
-msgstr "|ÁÑ×ÅÉÏ|öüñôùìá ôïõ áñèñþìáôïò åðÝêôáóçò ÁÑ×ÅÉÏ"
+msgstr "|ΑΡΧΕΙΟ|φόρτωμα του αρθρώματος επέκτασης ΑΡΧΕΙΟ"
 
 msgid "do not detach from the console"
 msgstr ""
@@ -341,7 +338,7 @@ msgstr ""
 
 #, fuzzy
 msgid "use a log file for the server"
-msgstr "áíáæÞôçóç êëåéäéþí óå Ýíá äéáêïìéóôÞ êëåéäéþí"
+msgstr "αναζήτηση κλειδιών σε ένα διακομιστή κλειδιών"
 
 msgid "|PGM|use PGM as the PIN-Entry program"
 msgstr ""
@@ -351,12 +348,12 @@ msgstr ""
 
 #, fuzzy
 msgid "do not use the SCdaemon"
-msgstr "áíáíÝùóç ôçò âÜóçò äåäïìÝíùí åìðéóôïóýíçò"
+msgstr "ανανέωση της βάσης δεδομένων εμπιστοσύνης"
 
 #, fuzzy
 #| msgid "|NAME|set terminal charset to NAME"
 msgid "|NAME|accept some commands via NAME"
-msgstr "|ÏÍÏÌÁ|êáèïñéóìüò ôïõ óåô ÷áñáêôÞñùí ôåñìáôéêïý óå ÏÍÏÌÁ"
+msgstr "|ΟΝΟΜΑ|καθορισμός του σετ χαρακτήρων τερματικού σε ΟΝΟΜΑ"
 
 msgid "ignore requests to change the TTY"
 msgstr ""
@@ -372,14 +369,14 @@ msgstr ""
 
 #, fuzzy
 msgid "disallow the use of an external password cache"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 msgid "disallow clients to mark keys as \"trusted\""
 msgstr ""
 
 #, fuzzy
 msgid "allow presetting passphrase"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 msgid "disallow caller to override the pinentry"
 msgstr ""
@@ -390,23 +387,23 @@ msgstr ""
 #, fuzzy
 #| msgid "not supported"
 msgid "enable ssh support"
-msgstr "äåí õðïóôçñßæåôáé"
+msgstr "δεν υποστηρίζεται"
 
 #, fuzzy
 #| msgid "not supported"
 msgid "enable putty support"
-msgstr "äåí õðïóôçñßæåôáé"
+msgstr "δεν υποστηρίζεται"
 
 #. TRANSLATORS: @EMAIL@ will get replaced by the actual bug
 #. reporting address.  This is so that we can change the
 #. reporting address without breaking the translations.
 #, fuzzy
 msgid "Please report bugs to <@EMAIL@>.\n"
-msgstr "ÁíáöÝñåôå ôá ðñïâëÞìáôá óôï <gnupg-bugs@gnu.org>\n"
+msgstr "Αναφέρετε τα προβλήματα στο <gnupg-bugs@gnu.org>\n"
 
 #, fuzzy
 msgid "Usage: @GPG_AGENT@ [options] (-h for help)"
-msgstr "×ñÞóç: gpg [åðéëïãÝò] [áñ÷åßá] (-h ãéá âïÞèåéá)"
+msgstr "Χρήση: gpg [επιλογές] [αρχεία] (-h για βοήθεια)"
 
 msgid ""
 "Syntax: @GPG_AGENT@ [options] [command [args]]\n"
@@ -420,26 +417,26 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "NOTE: no default option file `%s'\n"
 msgid "Note: no default option file '%s'\n"
-msgstr "ÓÇÌÅÉÙÓÇ: ìç ðñïêáèïñéóìÝíï áñ÷åßï åðéëïãþí `%s'\n"
+msgstr "ΣΗΜΕΙΩΣΗ: μη προκαθορισμένο αρχείο επιλογών `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "option file `%s': %s\n"
 msgid "option file '%s': %s\n"
-msgstr "áñ÷åßï åðéëïãþí `%s': %s\n"
+msgstr "αρχείο επιλογών `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "reading options from `%s'\n"
 msgid "reading options from '%s'\n"
-msgstr "áíÜãíùóç åðéëïãþí áðü `%s'\n"
+msgstr "ανάγνωση επιλογών από `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: \"%s\" is a deprecated option\n"
 msgid "Note: '%s' is not considered an option\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: \"%s\" åßíáé ìéá ìç óõíåéóôþìåíç åðéëïãÞ\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: \"%s\" είναι μια μη συνειστώμενη επιλογή\n"
 
 #, fuzzy, c-format
 msgid "can't create socket: %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò ôïõ %s: %s\n"
+msgstr "αδυναμία δημιουργίας του %s: %s\n"
 
 #, c-format
 msgid "socket name '%s' is too long\n"
@@ -447,48 +444,48 @@ msgstr ""
 
 #, fuzzy
 msgid "a gpg-agent is already running - not starting a new one\n"
-msgstr "ï gpg-agent äåí åßíáé äéáèÝóéìïò óå áõôÞ ôç óõíåäñßá\n"
+msgstr "ο gpg-agent δεν είναι διαθέσιμος σε αυτή τη συνεδρία\n"
 
 #, fuzzy
 msgid "error getting nonce for the socket\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, fuzzy, c-format
 msgid "error binding socket to '%s': %s\n"
-msgstr "óöÜëìá óôç áðïóôïëÞ ðñïò ôï `%s': %s\n"
+msgstr "σφάλμα στη αποστολή προς το `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "can't set permissions of '%s': %s\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ìç áóöáëåßò Üäåéåò óôï %s \"%s\"\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: μη ασφαλείς άδειες στο %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "listen() failed: %s\n"
-msgstr "ç åíçìÝñùóç áðÝôõ÷å: %s\n"
+msgstr "η ενημέρωση απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "listening on socket '%s'\n"
-msgstr "åããñáöÞ ôïõ ìõóôéêïý êëåéäéïý óôï `%s'\n"
+msgstr "εγγραφή του μυστικού κλειδιού στο `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "can't create directory `%s': %s\n"
 msgid "can't create directory '%s': %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò êáôáëüãïõ `%s': %s\n"
+msgstr "αδυναμία δημιουργίας καταλόγου `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "directory '%s' created\n"
-msgstr "%s: êáôÜëïãïò äçìéïõñãÞèçêå\n"
+msgstr "%s: κατάλογος δημιουργήθηκε\n"
 
 #, fuzzy, c-format
 msgid "stat() failed for '%s': %s\n"
-msgstr "trustdb: read áðÝôõ÷å (n=%d): %s\n"
+msgstr "trustdb: read απέτυχε (n=%d): %s\n"
 
 #, fuzzy, c-format
 msgid "can't use '%s' as home directory\n"
-msgstr "%s: áäõíáìßá äçìéïõñãßáò êáôáëüãïõ: %s\n"
+msgstr "%s: αδυναμία δημιουργίας καταλόγου: %s\n"
 
 #, fuzzy, c-format
 msgid "error reading nonce on fd %d: %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, c-format
 msgid "handler 0x%lx for fd %d started\n"
@@ -508,19 +505,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "npth_pselect failed: %s - waiting 1s\n"
-msgstr "ç åíçìÝñùóç ìõóôéêïý áðÝôõ÷å: %s\n"
+msgstr "η ενημέρωση μυστικού απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "%s %s stopped\n"
-msgstr "%s: ðáñáëåßöèçêå: %s\n"
+msgstr "%s: παραλείφθηκε: %s\n"
 
 #, fuzzy
 msgid "no gpg-agent running in this session\n"
-msgstr "ï gpg-agent äåí åßíáé äéáèÝóéìïò óå áõôÞ ôç óõíåäñßá\n"
+msgstr "ο gpg-agent δεν είναι διαθέσιμος σε αυτή τη συνεδρία\n"
 
 #, fuzzy
 msgid "Usage: gpg-preset-passphrase [options] KEYGRIP (-h for help)\n"
-msgstr "×ñÞóç: gpg [åðéëïãÝò] [áñ÷åßá] (-h ãéá âïÞèåéá)"
+msgstr "Χρήση: gpg [επιλογές] [αρχεία] (-h για βοήθεια)"
 
 msgid ""
 "Syntax: gpg-preset-passphrase [options] KEYGRIP\n"
@@ -531,7 +528,7 @@ msgid ""
 "@Commands:\n"
 " "
 msgstr ""
-"@ÅíôïëÝò:\n"
+"@Εντολές:\n"
 " "
 
 msgid ""
@@ -540,12 +537,12 @@ msgid ""
 " "
 msgstr ""
 "@\n"
-"ÅðéëïãÝò:\n"
+"Επιλογές:\n"
 " "
 
 #, fuzzy
 msgid "Usage: gpg-protect-tool [options] (-h for help)\n"
-msgstr "×ñÞóç: gpg [åðéëïãÝò] [áñ÷åßá] (-h ãéá âïÞèåéá)"
+msgstr "Χρήση: gpg [επιλογές] [αρχεία] (-h για βοήθεια)"
 
 msgid ""
 "Syntax: gpg-protect-tool [options] [args]\n"
@@ -554,11 +551,11 @@ msgstr ""
 
 #, fuzzy
 msgid "Please enter the passphrase to unprotect the PKCS#12 object."
-msgstr "ÐëçêôñïëïãÞóôå ôç öñÜóç êëåéäß· áõôÞ åßíáé ìéá ìõóôéêÞ ðñüôáóç \n"
+msgstr "Πληκτρολογήστε τη φράση κλειδί· αυτή είναι μια μυστική πρόταση \n"
 
 #, fuzzy
 msgid "Please enter the passphrase to protect the new PKCS#12 object."
-msgstr "ÐëçêôñïëïãÞóôå ôç öñÜóç êëåéäß· áõôÞ åßíáé ìéá ìõóôéêÞ ðñüôáóç \n"
+msgstr "Πληκτρολογήστε τη φράση κλειδί· αυτή είναι μια μυστική πρόταση \n"
 
 msgid ""
 "Please enter the passphrase to protect the imported object within the GnuPG "
@@ -569,43 +566,43 @@ msgstr ""
 msgid ""
 "Please enter the passphrase or the PIN\n"
 "needed to complete this operation."
-msgstr "ÐëçêôñïëïãÞóôå ôç öñÜóç êëåéäß· áõôÞ åßíáé ìéá ìõóôéêÞ ðñüôáóç \n"
+msgstr "Πληκτρολογήστε τη φράση κλειδί· αυτή είναι μια μυστική πρόταση \n"
 
 #, fuzzy
 msgid "cancelled\n"
-msgstr "Áêýñùóç"
+msgstr "Ακύρωση"
 
 #, fuzzy, c-format
 msgid "error while asking for the passphrase: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, fuzzy, c-format
 msgid "error opening '%s': %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "file '%s', line %d: %s\n"
-msgstr "ôï êëåéäß '%s' äå âñÝèçêå: %s\n"
+msgstr "το κλειδί '%s' δε βρέθηκε: %s\n"
 
 #, fuzzy, c-format
 msgid "statement \"%s\" ignored in '%s', line %d\n"
-msgstr "óöÜëìá áíÜãíùóçò: %s\n"
+msgstr "σφάλμα ανάγνωσης: %s\n"
 
 #, fuzzy, c-format
 msgid "system trustlist '%s' not available\n"
-msgstr "ôìÞìáôá ôïõ ìõóôéêïý êëåéäéïý äåí åßíáé äéáèÝóéìá\n"
+msgstr "τμήματα του μυστικού κλειδιού δεν είναι διαθέσιμα\n"
 
 #, fuzzy, c-format
 msgid "bad fingerprint in '%s', line %d\n"
-msgstr "óöÜëìá áíÜãíùóçò: %s\n"
+msgstr "σφάλμα ανάγνωσης: %s\n"
 
 #, fuzzy, c-format
 msgid "invalid keyflag in '%s', line %d\n"
-msgstr "óöÜëìá: ìç Ýãêõñï áðïôýðùìá\n"
+msgstr "σφάλμα: μη έγκυρο αποτύπωμα\n"
 
 #, fuzzy, c-format
 msgid "error reading '%s', line %d: %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 msgid "error reading list of trusted root certificates\n"
 msgstr ""
@@ -626,7 +623,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Yes"
-msgstr "íáé|íáß"
+msgstr "ναι|ναί"
 
 msgid "No"
 msgstr ""
@@ -666,7 +663,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Change passphrase"
-msgstr "áëëáãÞ ôçò öñÜóçò êëåéäß"
+msgstr "αλλαγή της φράσης κλειδί"
 
 msgid "I'll change it later"
 msgstr ""
@@ -675,11 +672,11 @@ msgstr ""
 msgid ""
 "Do you really want to delete the key identified by keygrip%%0A  %s%%0A  %%C"
 "%%0A?"
-msgstr "Óßãïõñá èÝëåôå íá äéáãñáöïýí ôá åðéëåãìÝíá êëåéäéÜ; "
+msgstr "Σίγουρα θέλετε να διαγραφούν τα επιλεγμένα κλειδιά; "
 
 #, fuzzy
 msgid "Delete key"
-msgstr "åíåñãïðïéåß Ýíá êëåéäß"
+msgstr "ενεργοποιεί ένα κλειδί"
 
 msgid ""
 "Warning: This key is also listed for use with SSH!\n"
@@ -699,100 +696,108 @@ msgstr ""
 
 #, c-format
 msgid "checking created signature failed: %s\n"
-msgstr "áðÝôõ÷å ï Ýëåã÷ïò ôçò õðïãñáöÞò ðïõ äçìéïõñãÞèçêå: %s\n"
+msgstr "απέτυχε ο έλεγχος της υπογραφής που δημιουργήθηκε: %s\n"
 
 msgid "secret key parts are not available\n"
-msgstr "ôìÞìáôá ôïõ ìõóôéêïý êëåéäéïý äåí åßíáé äéáèÝóéìá\n"
+msgstr "τμήματα του μυστικού κλειδιού δεν είναι διαθέσιμα\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "public key algorithm %d (%s) is not supported\n"
-msgstr "äåí õðïóôçñßæåôáé ï áëãüñéèìïò ðñïóôáóßáò %d%s\n"
+msgstr "δεν υποστηρίζεται ο αλγόριθμος προστασίας %d%s\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "protection algorithm %d (%s) is not supported\n"
-msgstr "äåí õðïóôçñßæåôáé ï áëãüñéèìïò ðñïóôáóßáò %d%s\n"
+msgstr "δεν υποστηρίζεται ο αλγόριθμος προστασίας %d%s\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "protection hash algorithm %d (%s) is not supported\n"
-msgstr "äåí õðïóôçñßæåôáé ï áëãüñéèìïò ðñïóôáóßáò %d%s\n"
+msgstr "δεν υποστηρίζεται ο αλγόριθμος προστασίας %d%s\n"
 
 #, fuzzy, c-format
 msgid "error creating a pipe: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, fuzzy, c-format
 msgid "error creating a stream for a pipe: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, fuzzy, c-format
 msgid "error forking process: %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
-#, fuzzy, c-format
-msgid "waiting for processes to terminate failed: %s\n"
-msgstr "ç åíçìÝñùóç áðÝôõ÷å: %s\n"
+#, c-format
+msgid "waiting for process %d to terminate failed: %s\n"
+msgstr ""
 
 #, fuzzy, c-format
 msgid "error running '%s': probably not installed\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error running '%s': exit status %d\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error running '%s': terminated\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy, c-format
-msgid "error getting exit code of process %d: %s\n"
-msgstr "áäõíáìßá åããñáöÞò ìõóôéêÞò êëåéäïèÞêçò `%s': %s\n"
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "η ενημέρωση απέτυχε: %s\n"
 
-#, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr ""
+#, fuzzy, c-format
+msgid "error getting exit code of process %d: %s\n"
+msgstr "αδυναμία εγγραφής μυστικής κλειδοθήκης `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to '%s': %s\n"
-msgstr "áäõíáìßá óýíäåóçò óôï `%s': %s\n"
+msgstr "αδυναμία σύνδεσης στο `%s': %s\n"
 
 #, fuzzy
 msgid "problem setting the gpg-agent options\n"
-msgstr "ðñüâëçìá ìå ôïí agent: agent åðéóôñÝöåé 0x%lx\n"
+msgstr "πρόβλημα με τον agent: agent επιστρέφει 0x%lx\n"
 
 #, c-format
 msgid "can't disable core dumps: %s\n"
-msgstr "áäõíáìßá áðåíåñãïðïßçóçò ôùí core dump: %s\n"
+msgstr "αδυναμία απενεργοποίησης των core dump: %s\n"
 
 #, fuzzy, c-format
 msgid "Warning: unsafe ownership on %s \"%s\"\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ìç áóöáëÞò éäéïêôçóßá óôï %s \"%s\"\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: μη ασφαλής ιδιοκτησία στο %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ìç áóöáëåßò Üäåéåò óôï %s \"%s\"\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: μη ασφαλείς άδειες στο %s \"%s\"\n"
+
+#, fuzzy, c-format
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "η ενημέρωση απέτυχε: %s\n"
+
+#, fuzzy, c-format
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "θωράκιση απέτυχε: %s\n"
 
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "yes"
-msgstr "íáé|íáß"
+msgstr "ναι|ναί"
 
 msgid "yY"
 msgstr "yY"
 
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "no"
-msgstr "ü÷é|ï÷é"
+msgstr "όχι|οχι"
 
 msgid "nN"
 msgstr "nN"
 
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "quit"
-msgstr "ôåñìáôéóìüò"
+msgstr "τερματισμός"
 
 msgid "qQ"
 msgstr "qQ"
@@ -822,7 +827,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error allocating enough memory: %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò ôçò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία δημιουργίας της κλειδοθήκης `%s': %s\n"
 
 #, c-format
 msgid "%s:%u: obsolete option \"%s\" - it has no effect\n"
@@ -830,7 +835,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "WARNING: \"%s%s\" is an obsolete option - it has no effect\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: \"%s\" åßíáé ìéá ìç óõíåéóôþìåíç åðéëïãÞ\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: \"%s\" είναι μια μη συνειστώμενη επιλογή\n"
 
 #, c-format
 msgid "unknown debug flag '%s' ignored\n"
@@ -849,7 +854,7 @@ msgstr ""
 
 #, fuzzy
 msgid "connection to agent is in restricted mode\n"
-msgstr "äåí ìðïñåß íá ãßíåé áõôü óå êáôÜóôáóç äÝóìçò (batchmode)\n"
+msgstr "δεν μπορεί να γίνει αυτό σε κατάσταση δέσμης (batchmode)\n"
 
 #, c-format
 msgid "no running Dirmngr - starting '%s'\n"
@@ -875,63 +880,63 @@ msgstr ""
 
 #, fuzzy
 msgid "|audit-log-result|No certificate"
-msgstr "êáêü ðéóôïðïéçôéêü"
+msgstr "κακό πιστοποιητικό"
 
 #, fuzzy
 msgid "|audit-log-result|Not enabled"
-msgstr "êáêü ðéóôïðïéçôéêü"
+msgstr "κακό πιστοποιητικό"
 
 msgid "|audit-log-result|Error"
 msgstr ""
 
 #, fuzzy
 msgid "|audit-log-result|Not used"
-msgstr "êáêü ðéóôïðïéçôéêü"
+msgstr "κακό πιστοποιητικό"
 
 #, fuzzy
 msgid "|audit-log-result|Okay"
-msgstr "êáêü ðéóôïðïéçôéêü"
+msgstr "κακό πιστοποιητικό"
 
 #, fuzzy
 msgid "|audit-log-result|Skipped"
-msgstr "êáêü ðéóôïðïéçôéêü"
+msgstr "κακό πιστοποιητικό"
 
 #, fuzzy
 msgid "|audit-log-result|Some"
-msgstr "êáêü ðéóôïðïéçôéêü"
+msgstr "κακό πιστοποιητικό"
 
 #, fuzzy
 msgid "Certificate chain available"
-msgstr "êáêü ðéóôïðïéçôéêü"
+msgstr "κακό πιστοποιητικό"
 
 #, fuzzy
 msgid "root certificate missing"
-msgstr "êáêü ðéóôïðïéçôéêü"
+msgstr "κακό πιστοποιητικό"
 
 msgid "Data encryption succeeded"
 msgstr ""
 
 #, fuzzy
 msgid "Data available"
-msgstr "Êëåéäß äéáèÝóéìï óôï: "
+msgstr "Κλειδί διαθέσιμο στο: "
 
 #, fuzzy
 msgid "Session key created"
-msgstr "%s: êëåéäïèÞêç äçìéïõñãÞèçêå\n"
+msgstr "%s: κλειδοθήκη δημιουργήθηκε\n"
 
 #, fuzzy, c-format
 msgid "algorithm: %s"
-msgstr "èùñÜêéóç: %s\n"
+msgstr "θωράκιση: %s\n"
 
 #, fuzzy, c-format
 msgid "unsupported algorithm: %s"
 msgstr ""
 "\n"
-"Õðïóôçñéæüìåíïé áëãüñéèìïé:\n"
+"Υποστηριζόμενοι αλγόριθμοι:\n"
 
 #, fuzzy
 msgid "seems to be not encrypted"
-msgstr "ìç êñõðôïãñáöçìÝíï"
+msgstr "μη κρυπτογραφημένο"
 
 msgid "Number of recipients"
 msgstr ""
@@ -945,73 +950,73 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "data hash algorithm: %s"
-msgstr "ìç Ýãêõñïò áëãüñéèìïò  hash `%s'\n"
+msgstr "μη έγκυρος αλγόριθμος  hash `%s'\n"
 
 #, fuzzy, c-format
 msgid "Signer %d"
-msgstr "ÕðïãñáöÞ Ýëçîå óôéò %s.\n"
+msgstr "Υπογραφή έληξε στις %s.\n"
 
 #, fuzzy, c-format
 msgid "attr hash algorithm: %s"
-msgstr "ìç Ýãêõñïò áëãüñéèìïò  hash `%s'\n"
+msgstr "μη έγκυρος αλγόριθμος  hash `%s'\n"
 
 msgid "Data decryption succeeded"
 msgstr ""
 
 #, fuzzy
 msgid "Encryption algorithm supported"
-msgstr "äåí õðïóôçñßæåôáé ï áëãüñéèìïò ðñïóôáóßáò %d%s\n"
+msgstr "δεν υποστηρίζεται ο αλγόριθμος προστασίας %d%s\n"
 
 #, fuzzy
 msgid "Data verification succeeded"
-msgstr "êáôáóôïëÞ áíÜêëçóçò õðïãñáöÞò\n"
+msgstr "καταστολή ανάκλησης υπογραφής\n"
 
 #, fuzzy
 msgid "Signature available"
-msgstr "ÕðïãñáöÞ Ýëçîå óôéò %s.\n"
+msgstr "Υπογραφή έληξε στις %s.\n"
 
 #, fuzzy
 msgid "Parsing data succeeded"
-msgstr "ÊáëÞ õðïãñáöÞ áðü \""
+msgstr "Καλή υπογραφή από \""
 
 #, fuzzy, c-format
 msgid "bad data hash algorithm: %s"
-msgstr "ìç Ýãêõñïò áëãüñéèìïò  hash `%s'\n"
+msgstr "μη έγκυρος αλγόριθμος  hash `%s'\n"
 
 #, fuzzy, c-format
 msgid "Signature %d"
-msgstr "ÕðïãñáöÞ Ýëçîå óôéò %s.\n"
+msgstr "Υπογραφή έληξε στις %s.\n"
 
 #, fuzzy
 msgid "Certificate chain valid"
-msgstr "Áõôü ôï êëåéäß Ý÷åé ëÞîåé!"
+msgstr "Αυτό το κλειδί έχει λήξει!"
 
 #, fuzzy
 msgid "Root certificate trustworthy"
-msgstr "êáêü ðéóôïðïéçôéêü"
+msgstr "κακό πιστοποιητικό"
 
 #, fuzzy
 msgid "no CRL found for certificate"
-msgstr "êáêü ðéóôïðïéçôéêü"
+msgstr "κακό πιστοποιητικό"
 
 #, fuzzy
 msgid "the available CRL is too old"
-msgstr "Êëåéäß äéáèÝóéìï óôï: "
+msgstr "Κλειδί διαθέσιμο στο: "
 
 #, fuzzy
 msgid "CRL/OCSP check of certificates"
-msgstr "êáêü ðéóôïðïéçôéêü"
+msgstr "κακό πιστοποιητικό"
 
 #, fuzzy
 msgid "Included certificates"
-msgstr "êáêü ðéóôïðïéçôéêü"
+msgstr "κακό πιστοποιητικό"
 
 msgid "No audit log entries."
 msgstr ""
 
 #, fuzzy
 msgid "Unknown operation"
-msgstr "Üãíùóôç Ýêäïóç"
+msgstr "άγνωστη έκδοση"
 
 msgid "Gpg-Agent usable"
 msgstr ""
@@ -1021,52 +1026,52 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "No help available for '%s'."
-msgstr "Äåí õðÜñ÷åé äéáèÝóéìç âïÞèåéá ãéá `%s'"
+msgstr "Δεν υπάρχει διαθέσιμη βοήθεια για `%s'"
 
 #, fuzzy
 msgid "ignoring garbage line"
-msgstr "óöÜëìá óôç ãñáììÞ trailer\n"
+msgstr "σφάλμα στη γραμμή trailer\n"
 
 #, fuzzy
 msgid "[none]"
-msgstr "Üãíùóôï"
+msgstr "άγνωστο"
 
 #, fuzzy
 msgid "argument not expected"
-msgstr "åããñáöÞ ôïõ ìõóôéêïý êëåéäéïý óôï `%s'\n"
+msgstr "εγγραφή του μυστικού κλειδιού στο `%s'\n"
 
 #, fuzzy
 msgid "read error"
-msgstr "óöÜëìá áíÜãíùóçò áñ÷åßïõ"
+msgstr "σφάλμα ανάγνωσης αρχείου"
 
 #, fuzzy
 msgid "keyword too long"
-msgstr "ç ãñáììÞ åßíáé ðïëý ìåãÜëç\n"
+msgstr "η γραμμή είναι πολύ μεγάλη\n"
 
 #, fuzzy
 msgid "missing argument"
-msgstr "ìç Ýãêõñï üñéóìá"
+msgstr "μη έγκυρο όρισμα"
 
 #, fuzzy
 #| msgid "invalid armor"
 msgid "invalid argument"
-msgstr "ìç Ýãêõñç èùñÜêéóç"
+msgstr "μη έγκυρη θωράκιση"
 
 #, fuzzy
 msgid "invalid command"
-msgstr "óõãêñïõüìåíåò åíôïëÝò\n"
+msgstr "συγκρουόμενες εντολές\n"
 
 #, fuzzy
 msgid "invalid alias definition"
-msgstr "ìç Ýãêõñåò åðéëïãÝò åéãáãùãÞò\n"
+msgstr "μη έγκυρες επιλογές ειγαγωγής\n"
 
 #, fuzzy
 msgid "out of core"
-msgstr "ìç åðåîåñãáóìÝíï"
+msgstr "μη επεξεργασμένο"
 
 #, fuzzy
 msgid "invalid option"
-msgstr "ìç Ýãêõñåò åðéëïãÝò åéãáãùãÞò\n"
+msgstr "μη έγκυρες επιλογές ειγαγωγής\n"
 
 #, c-format
 msgid "missing argument for option \"%.50s\"\n"
@@ -1074,7 +1079,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid argument for option \"%.50s\"\n"
-msgstr "ìç Ýãêõñåò åðéëïãÝò åéãáãùãÞò\n"
+msgstr "μη έγκυρες επιλογές ειγαγωγής\n"
 
 #, c-format
 msgid "option \"%.50s\" does not expect an argument\n"
@@ -1082,7 +1087,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid command \"%.50s\"\n"
-msgstr "Ìç Ýãêõñç åíôïëÞ  (äïêéìÜóôå \"help\")\n"
+msgstr "Μη έγκυρη εντολή  (δοκιμάστε \"help\")\n"
 
 #, c-format
 msgid "option \"%.50s\" is ambiguous\n"
@@ -1094,31 +1099,31 @@ msgstr ""
 
 #, fuzzy
 msgid "out of core\n"
-msgstr "ìç åðåîåñãáóìÝíï"
+msgstr "μη επεξεργασμένο"
 
 #, fuzzy, c-format
 msgid "invalid option \"%.50s\"\n"
-msgstr "ìç Ýãêõñåò åðéëïãÝò åéãáãùãÞò\n"
+msgstr "μη έγκυρες επιλογές ειγαγωγής\n"
 
 #, fuzzy, c-format
 msgid "conversion from '%s' to '%s' not available\n"
-msgstr "èùñÜêéóç áðÝôõ÷å: %s\n"
+msgstr "θωράκιση απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "iconv_open failed: %s\n"
-msgstr "áäõíáìßá ðñüóâáóçò ôïõ áñ÷åßïõ: %s\n"
+msgstr "αδυναμία πρόσβασης του αρχείου: %s\n"
 
 #, fuzzy, c-format
 msgid "conversion from '%s' to '%s' failed: %s\n"
-msgstr "èùñÜêéóç áðÝôõ÷å: %s\n"
+msgstr "θωράκιση απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to create temporary file '%s': %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò êáôáëüãïõ `%s': %s\n"
+msgstr "αδυναμία δημιουργίας καταλόγου `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error writing to '%s': %s\n"
-msgstr "áäõíáìßá åããñáöÞò ôçò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία εγγραφής της κλειδοθήκης `%s': %s\n"
 
 #, c-format
 msgid "removing stale lockfile (created by %d)\n"
@@ -1126,18 +1131,18 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "waiting for lock (held by %d%s) %s...\n"
-msgstr "åããñáöÞ ôïõ ìõóôéêïý êëåéäéïý óôï `%s'\n"
+msgstr "εγγραφή του μυστικού κλειδιού στο `%s'\n"
 
 msgid "(deadlock?) "
 msgstr ""
 
 #, fuzzy, c-format
 msgid "lock '%s' not made: %s\n"
-msgstr "ôï äçìüóéï êëåéäß %08lX äåí âñÝèçêå: %s\n"
+msgstr "το δημόσιο κλειδί %08lX δεν βρέθηκε: %s\n"
 
 #, fuzzy, c-format
 msgid "waiting for lock %s...\n"
-msgstr "åããñáöÞ ôïõ ìõóôéêïý êëåéäéïý óôï `%s'\n"
+msgstr "εγγραφή του μυστικού κλειδιού στο `%s'\n"
 
 #, c-format
 msgid "%s is too old (need %s, have %s)\n"
@@ -1145,93 +1150,93 @@ msgstr ""
 
 #, c-format
 msgid "armor: %s\n"
-msgstr "èùñÜêéóç: %s\n"
+msgstr "θωράκιση: %s\n"
 
 msgid "invalid armor header: "
-msgstr "ìç Ýãêõñç åðéêåöáëßäá èùñÜêéóçò: "
+msgstr "μη έγκυρη επικεφαλίδα θωράκισης: "
 
 msgid "armor header: "
-msgstr "åðéêåöáëßäá èùñÜêéóçò: "
+msgstr "επικεφαλίδα θωράκισης: "
 
 msgid "invalid clearsig header\n"
-msgstr "ìç Ýãêõñç åðéêåöáëßäá clearsig\n"
+msgstr "μη έγκυρη επικεφαλίδα clearsig\n"
 
 #, fuzzy
 msgid "unknown armor header: "
-msgstr "åðéêåöáëßäá èùñÜêéóçò: "
+msgstr "επικεφαλίδα θωράκισης: "
 
 msgid "nested clear text signatures\n"
-msgstr "öùëéáóìÝíåò ìç êñõðôïãñáöçìÝíåò õðïãñáöÝò\n"
+msgstr "φωλιασμένες μη κρυπτογραφημένες υπογραφές\n"
 
 #, fuzzy
 msgid "unexpected armor: "
-msgstr "ìç áíáìåíüìåíç èùñÜêéóç:"
+msgstr "μη αναμενόμενη θωράκιση:"
 
 msgid "invalid dash escaped line: "
-msgstr "ìç Ýãêõñç dash escaped ãñáììÞ: "
+msgstr "μη έγκυρη dash escaped γραμμή: "
 
 #, fuzzy, c-format
 msgid "invalid radix64 character %02X skipped\n"
-msgstr "ìç Ýãêõñïò radix64 ÷áñáêôÞñáò %02x ðáñÜâëåøç\n"
+msgstr "μη έγκυρος radix64 χαρακτήρας %02x παράβλεψη\n"
 
 msgid "premature eof (no CRC)\n"
-msgstr "ðñüùñï ôÝëïò áñ÷åßïõ (áðïõóßá CRC)\n"
+msgstr "πρόωρο τέλος αρχείου (απουσία CRC)\n"
 
 msgid "premature eof (in CRC)\n"
-msgstr "ðñüùñï ôÝëïò áñ÷åßïõ (åíôüò CRC)\n"
+msgstr "πρόωρο τέλος αρχείου (εντός CRC)\n"
 
 msgid "malformed CRC\n"
-msgstr "ëÜèïò ìïñöÞ CRC\n"
+msgstr "λάθος μορφή CRC\n"
 
 #, fuzzy, c-format
 msgid "CRC error; %06lX - %06lX\n"
-msgstr "óöÜëìá CRC: %06lx - %06lx\n"
+msgstr "σφάλμα CRC: %06lx - %06lx\n"
 
 #, fuzzy
 msgid "premature eof (in trailer)\n"
-msgstr "ðñüùñï ôÝëïò áñ÷åßïõ (óôï Ôrailer)\n"
+msgstr "πρόωρο τέλος αρχείου (στο Τrailer)\n"
 
 msgid "error in trailer line\n"
-msgstr "óöÜëìá óôç ãñáììÞ trailer\n"
+msgstr "σφάλμα στη γραμμή trailer\n"
 
 msgid "no valid OpenPGP data found.\n"
-msgstr "äå âñÝèçêáí Ýãêõñá OpenPGP äåäïìÝíá.\n"
+msgstr "δε βρέθηκαν έγκυρα OpenPGP δεδομένα.\n"
 
 #, c-format
 msgid "invalid armor: line longer than %d characters\n"
-msgstr "ìç Ýãêõñç èùñÜêéóç: ç ãñáììÞ åßíáé ðÜíù áðü %d ÷áñáêôÞñåò\n"
+msgstr "μη έγκυρη θωράκιση: η γραμμή είναι πάνω από %d χαρακτήρες\n"
 
 msgid ""
 "quoted printable character in armor - probably a buggy MTA has been used\n"
 msgstr ""
-"åêôõðþóéìïò, óå åéóáãùãéêÜ, ÷áñáêôÞñáò óôç èùñÜêéóç - ßóùò Ýãéíå ÷ñÞóç "
-"ðñïâëçìáôéêïý MTA\n"
+"εκτυπώσιμος, σε εισαγωγικά, χαρακτήρας στη θωράκιση - ίσως έγινε χρήση "
+"προβληματικού MTA\n"
 
 #, fuzzy, c-format
 #| msgid "not human readable"
 msgid "[ not human readable (%zu bytes: %s%s) ]"
-msgstr "ìç áíáãíþóéìï"
+msgstr "μη αναγνώσιμο"
 
 msgid ""
 "a notation name must have only printable characters or spaces, and end with "
 "an '='\n"
 msgstr ""
-"Ýíá üíïìá óçìåßùóçò ìðïñåß íá ðåñéÝ÷åé ìüíï åêôõðþóéìïõò ÷áñáêôÞñåò êáé êåíÜ "
-"êáé íá ëÞãåé ìå Ýíá '='\n"
+"ένα όνομα σημείωσης μπορεί να περιέχει μόνο εκτυπώσιμους χαρακτήρες και κενά "
+"και να λήγει με ένα '='\n"
 
 msgid "a user notation name must contain the '@' character\n"
-msgstr "ôï üíïìá óçìåßùóçò ÷ñÞóôç ðñÝðåé íá ðåñéÝ÷åé ôï '@' ÷áñáêôÞñá\n"
+msgstr "το όνομα σημείωσης χρήστη πρέπει να περιέχει το '@' χαρακτήρα\n"
 
 #, fuzzy
 msgid "a notation name must not contain more than one '@' character\n"
-msgstr "ôï üíïìá óçìåßùóçò ÷ñÞóôç ðñÝðåé íá ðåñéÝ÷åé ôï '@' ÷áñáêôÞñá\n"
+msgstr "το όνομα σημείωσης χρήστη πρέπει να περιέχει το '@' χαρακτήρα\n"
 
 msgid "a notation value must not use any control characters\n"
-msgstr "ç ôéìÞ óçìåßùóçò ðñÝðåé íá ìç ÷ñçóéìïðïéåß ÷áñáêôÞñåò control\n"
+msgstr "η τιμή σημείωσης πρέπει να μη χρησιμοποιεί χαρακτήρες control\n"
 
 #, fuzzy
 msgid "a notation name may not contain an '=' character\n"
-msgstr "ôï üíïìá óçìåßùóçò ÷ñÞóôç ðñÝðåé íá ðåñéÝ÷åé ôï '@' ÷áñáêôÞñá\n"
+msgstr "το όνομα σημείωσης χρήστη πρέπει να περιέχει το '@' χαρακτήρα\n"
 
 #, fuzzy
 #| msgid ""
@@ -1239,23 +1244,23 @@ msgstr "
 #| "with an '='\n"
 msgid "a notation name must have only printable characters or spaces\n"
 msgstr ""
-"Ýíá üíïìá óçìåßùóçò ìðïñåß íá ðåñéÝ÷åé ìüíï åêôõðþóéìïõò ÷áñáêôÞñåò êáé êåíÜ "
-"êáé íá ëÞãåé ìå Ýíá '='\n"
+"ένα όνομα σημείωσης μπορεί να περιέχει μόνο εκτυπώσιμους χαρακτήρες και κενά "
+"και να λήγει με ένα '='\n"
 
 msgid "WARNING: invalid notation data found\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: âñÝèçêáí ìç Ýãêõñá äåäïìÝíá óçìåßùóçò\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: βρέθηκαν μη έγκυρα δεδομένα σημείωσης\n"
 
 #, c-format
 msgid "failed to proxy %s inquiry to client\n"
 msgstr ""
 
 msgid "Enter passphrase: "
-msgstr "ÐëçêôñïëïãÞóôå ôç öñÜóç êëåéäß: "
+msgstr "Πληκτρολογήστε τη φράση κλειδί: "
 
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
 msgid "error getting version from '%s': %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò ôçò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία δημιουργίας της κλειδοθήκης `%s': %s\n"
 
 #, c-format
 msgid "server '%s' is older than us (%s < %s)"
@@ -1264,11 +1269,11 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "WARNING: %s overrides %s\n"
 msgid "WARNING: %s\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ôï %s ðáñáêÜìðôåé ôï %s\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: το %s παρακάμπτει το %s\n"
 
 #, fuzzy, c-format
 msgid "OpenPGP card not available: %s\n"
-msgstr "ôï ìõóôéêü êëåéäß äåí åßíáé äéáèÝóéìï"
+msgstr "το μυστικό κλειδί δεν είναι διαθέσιμο"
 
 #, c-format
 msgid "OpenPGP card no. %s detected\n"
@@ -1276,18 +1281,18 @@ msgstr ""
 
 #, fuzzy
 msgid "can't do this in batch mode\n"
-msgstr "äåí ìðïñåß íá ãßíåé áõôü óå êáôÜóôáóç äÝóìçò (batchmode)\n"
+msgstr "δεν μπορεί να γίνει αυτό σε κατάσταση δέσμης (batchmode)\n"
 
 #, fuzzy
 msgid "This command is only available for version 2 cards\n"
-msgstr "ÁõôÞ ç åíôïëÞ áðáãïñåýåôå óå áõôÞ ôçí êáôÜóôáóç %s.\n"
+msgstr "Αυτή η εντολή απαγορεύετε σε αυτή την κατάσταση %s.\n"
 
 #, fuzzy
 msgid "Reset Code not or not anymore available\n"
-msgstr "ôìÞìáôá ôïõ ìõóôéêïý êëåéäéïý äåí åßíáé äéáèÝóéìá\n"
+msgstr "τμήματα του μυστικού κλειδιού δεν είναι διαθέσιμα\n"
 
 msgid "Your selection? "
-msgstr "Ç åðéëïãÞ óáò; "
+msgstr "Η επιλογή σας; "
 
 msgid "[not set]"
 msgstr ""
@@ -1302,11 +1307,11 @@ msgstr "enable"
 
 #, fuzzy
 msgid "unspecified"
-msgstr "Äåí Ý÷åé ïñéóôåß áéôßá"
+msgstr "Δεν έχει οριστεί αιτία"
 
 #, fuzzy
 msgid "not forced"
-msgstr "ìç åðåîåñãáóìÝíï"
+msgstr "μη επεξεργασμένο"
 
 msgid "forced"
 msgstr ""
@@ -1332,7 +1337,7 @@ msgstr ""
 
 #, fuzzy
 msgid "URL to retrieve public key: "
-msgstr "êáíÝíá áíôßóôé÷ï äçìüóéï êëåéäß: %s\n"
+msgstr "κανένα αντίστιχο δημόσιο κλειδί: %s\n"
 
 #, c-format
 msgid "Error: URL too long (limit is %d characters).\n"
@@ -1341,11 +1346,11 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error reading `%s': %s\n"
 msgid "error reading '%s': %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error writing '%s': %s\n"
-msgstr "áäõíáìßá åããñáöÞò ôçò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία εγγραφής της κλειδοθήκης `%s': %s\n"
 
 msgid "Login data (account name): "
 msgstr ""
@@ -1363,42 +1368,42 @@ msgstr ""
 
 #, fuzzy
 msgid "Language preferences: "
-msgstr "áíáùåùìÝíåò åðéëïãÝò"
+msgstr "αναωεωμένες επιλογές"
 
 #, fuzzy
 msgid "Error: invalid length of preference string.\n"
-msgstr "ìç Ýãêõñïò ÷áñáêôÞñáò óôï \"êïñäüíé\" ôçò åðéëïãÞò\n"
+msgstr "μη έγκυρος χαρακτήρας στο \"κορδόνι\" της επιλογής\n"
 
 #, fuzzy
 msgid "Error: invalid characters in preference string.\n"
-msgstr "ìç Ýãêõñïò ÷áñáêôÞñáò óôï \"êïñäüíé\" ôçò åðéëïãÞò\n"
+msgstr "μη έγκυρος χαρακτήρας στο \"κορδόνι\" της επιλογής\n"
 
 msgid "Sex ((M)ale, (F)emale or space): "
 msgstr ""
 
 #, fuzzy
 msgid "Error: invalid response.\n"
-msgstr "óöÜëìá: ìç Ýãêõñï áðïôýðùìá\n"
+msgstr "σφάλμα: μη έγκυρο αποτύπωμα\n"
 
 #, fuzzy
 msgid "CA fingerprint: "
-msgstr "áðåéêüíéóç ôïõ fingerprint"
+msgstr "απεικόνιση του fingerprint"
 
 #, fuzzy
 msgid "Error: invalid formatted fingerprint.\n"
-msgstr "óöÜëìá: ìç Ýãêõñï áðïôýðùìá\n"
+msgstr "σφάλμα: μη έγκυρο αποτύπωμα\n"
 
 #, fuzzy, c-format
 msgid "key operation not possible: %s\n"
-msgstr "Ç äçìéïõñãßá êëåéäéïý áðÝôõ÷å: %s\n"
+msgstr "Η δημιουργία κλειδιού απέτυχε: %s\n"
 
 #, fuzzy
 msgid "not an OpenPGP card"
-msgstr "äå âñÝèçêáí Ýãêõñá OpenPGP äåäïìÝíá.\n"
+msgstr "δε βρέθηκαν έγκυρα OpenPGP δεδομένα.\n"
 
 #, fuzzy, c-format
 msgid "error getting current key info: %s\n"
-msgstr "áäõíáìßá åããñáöÞò ìõóôéêÞò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία εγγραφής μυστικής κλειδοθήκης `%s': %s\n"
 
 msgid "Replace existing key? (y/N) "
 msgstr ""
@@ -1411,19 +1416,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the Signature key? (%u) "
-msgstr "Ôé ìÝãåèïò êëåéäéïý èá èÝëáôå; (1024) "
+msgstr "Τι μέγεθος κλειδιού θα θέλατε; (1024) "
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the Encryption key? (%u) "
-msgstr "Ôé ìÝãåèïò êëåéäéïý èá èÝëáôå; (1024) "
+msgstr "Τι μέγεθος κλειδιού θα θέλατε; (1024) "
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the Authentication key? (%u) "
-msgstr "Ôé ìÝãåèïò êëåéäéïý èá èÝëáôå; (1024) "
+msgstr "Τι μέγεθος κλειδιού θα θέλατε; (1024) "
 
 #, c-format
 msgid "rounded up to %u bits\n"
-msgstr "óôñïããõëïðïéÞèçêå Ýùò ôá %u bits\n"
+msgstr "στρογγυλοποιήθηκε έως τα %u bits\n"
 
 #, c-format
 msgid "%s keysizes must be in the range %u-%u\n"
@@ -1435,14 +1440,14 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error changing size of key %d to %u bits: %s\n"
-msgstr "óöÜëìá óôç áðïóôïëÞ ðñïò ôï `%s': %s\n"
+msgstr "σφάλμα στη αποστολή προς το `%s': %s\n"
 
 msgid "Make off-card backup of encryption key? (Y/n) "
 msgstr ""
 
 #, fuzzy
 msgid "Note: keys are already stored on the card!\n"
-msgstr "ðáñáëåßöèçêå: ìõóôéêü êëåéäß Þäç ðáñþí\n"
+msgstr "παραλείφθηκε: μυστικό κλειδί ήδη παρών\n"
 
 msgid "Replace existing keys? (y/N) "
 msgstr ""
@@ -1456,59 +1461,59 @@ msgstr ""
 
 #, fuzzy
 msgid "Please select the type of key to generate:\n"
-msgstr "Ðáñáêáëþ åðéëÝîôå ôïí ôýðï ôïõ êëåéäéïý ðïõ èÝëåôå:\n"
+msgstr "Παρακαλώ επιλέξτε τον τύπο του κλειδιού που θέλετε:\n"
 
 #, fuzzy
 msgid "   (1) Signature key\n"
-msgstr "ÕðïãñáöÞ Ýëçîå óôéò %s.\n"
+msgstr "Υπογραφή έληξε στις %s.\n"
 
 #, fuzzy
 msgid "   (2) Encryption key\n"
-msgstr "   (%d) RSA (ãéá êñõðôïãñÜöçóç ìüíï)\n"
+msgstr "   (%d) RSA (για κρυπτογράφηση μόνο)\n"
 
 msgid "   (3) Authentication key\n"
 msgstr ""
 
 msgid "Invalid selection.\n"
-msgstr "Ìç Ýãêõñç åðéëïãÞ.\n"
+msgstr "Μη έγκυρη επιλογή.\n"
 
 #, fuzzy
 msgid "Please select where to store the key:\n"
-msgstr "Ðáñáêáëþ åðéëÝîôå ôçí áéôßá ãéá ôçí áíÜêëçóç:\n"
+msgstr "Παρακαλώ επιλέξτε την αιτία για την ανάκληση:\n"
 
 #, fuzzy, c-format
 msgid "KEYTOCARD failed: %s\n"
-msgstr "ç åíçìÝñùóç áðÝôõ÷å: %s\n"
+msgstr "η ενημέρωση απέτυχε: %s\n"
 
 #, fuzzy
 #| msgid "This command is not allowed while in %s mode.\n"
 msgid "This command is not supported by this card\n"
-msgstr "ÁõôÞ ç åíôïëÞ áðáãïñåýåôå óå áõôÞ ôçí êáôÜóôáóç %s.\n"
+msgstr "Αυτή η εντολή απαγορεύετε σε αυτή την κατάσταση %s.\n"
 
 #, fuzzy
 msgid "Note: This command destroys all keys stored on the card!\n"
-msgstr "ðáñáëåßöèçêå: ìõóôéêü êëåéäß Þäç ðáñþí\n"
+msgstr "παραλείφθηκε: μυστικό κλειδί ήδη παρών\n"
 
 #, fuzzy
 msgid "Continue? (y/N) "
-msgstr "Óßãïõñá íá õðïãñáöåß; "
+msgstr "Σίγουρα να υπογραφεί; "
 
 msgid "Really do a factory reset? (enter \"yes\") "
 msgstr ""
 
 msgid "quit this menu"
-msgstr "ôåñìáôéóìüò áõôïý ôïõ ìåíïý"
+msgstr "τερματισμός αυτού του μενού"
 
 #, fuzzy
 msgid "show admin commands"
-msgstr "óõãêñïõüìåíåò åíôïëÝò\n"
+msgstr "συγκρουόμενες εντολές\n"
 
 msgid "show this help"
-msgstr "áðåéêüíéóç áõôÞò ôçò âïÞèåéáò"
+msgstr "απεικόνιση αυτής της βοήθειας"
 
 #, fuzzy
 msgid "list all available data"
-msgstr "Êëåéäß äéáèÝóéìï óôï: "
+msgstr "Κλειδί διαθέσιμο στο: "
 
 msgid "change card holder's name"
 msgstr ""
@@ -1521,25 +1526,25 @@ msgstr ""
 
 #, fuzzy
 msgid "change the login name"
-msgstr "áëëáãÞ ôçò çìåñïìçíßáò ëÞîçò"
+msgstr "αλλαγή της ημερομηνίας λήξης"
 
 #, fuzzy
 msgid "change the language preferences"
-msgstr "áëëáãÞ ôçò åìðéóôïóýíçò éäéïêôÞôç"
+msgstr "αλλαγή της εμπιστοσύνης ιδιοκτήτη"
 
 msgid "change card holder's sex"
 msgstr ""
 
 #, fuzzy
 msgid "change a CA fingerprint"
-msgstr "áðåéêüíéóç ôïõ fingerprint"
+msgstr "απεικόνιση του fingerprint"
 
 msgid "toggle the signature force PIN flag"
 msgstr ""
 
 #, fuzzy
 msgid "generate new keys"
-msgstr "äçìéïõñãßá åíüò íÝïõ æåýãïõò êëåéäéþí"
+msgstr "δημιουργία ενός νέου ζεύγους κλειδιών"
 
 msgid "menu to change or unblock the PIN"
 msgstr ""
@@ -1558,57 +1563,57 @@ msgstr ""
 
 #, fuzzy
 msgid "Admin-only command\n"
-msgstr "óõãêñïõüìåíåò åíôïëÝò\n"
+msgstr "συγκρουόμενες εντολές\n"
 
 #, fuzzy
 msgid "Admin commands are allowed\n"
-msgstr "óõãêñïõüìåíåò åíôïëÝò\n"
+msgstr "συγκρουόμενες εντολές\n"
 
 #, fuzzy
 msgid "Admin commands are not allowed\n"
-msgstr "åããñáöÞ ôïõ ìõóôéêïý êëåéäéïý óôï `%s'\n"
+msgstr "εγγραφή του μυστικού κλειδιού στο `%s'\n"
 
 msgid "Invalid command  (try \"help\")\n"
-msgstr "Ìç Ýãêõñç åíôïëÞ  (äïêéìÜóôå \"help\")\n"
+msgstr "Μη έγκυρη εντολή  (δοκιμάστε \"help\")\n"
 
 msgid "--output doesn't work for this command\n"
-msgstr "--output äåí ëåéôïõñãåß ãéá áõôÞ ôçí åíôïëÞ\n"
+msgstr "--output δεν λειτουργεί για αυτή την εντολή\n"
 
 #, fuzzy, c-format
 #| msgid "can't open `%s'\n"
 msgid "can't open '%s'\n"
-msgstr "áäõíáìßá ðñüóâáóçò ôïõ `%s'\n"
+msgstr "αδυναμία πρόσβασης του `%s'\n"
 
 #, fuzzy, c-format
 msgid "key \"%s\" not found: %s\n"
-msgstr "ôï êëåéäß '%s' äå âñÝèçêå: %s\n"
+msgstr "το κλειδί '%s' δε βρέθηκε: %s\n"
 
 #, c-format
 msgid "error reading keyblock: %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ ìðëïê êëåéäéþí: %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του μπλοκ κλειδιών: %s\n"
 
 #, fuzzy, c-format
 msgid "key \"%s\" not found\n"
-msgstr "ôï êëåéäß '%s' äå âñÝèçêå: %s\n"
+msgstr "το κλειδί '%s' δε βρέθηκε: %s\n"
 
 msgid "(unless you specify the key by fingerprint)\n"
-msgstr "(åêôüò åÜí ðñïóäéïñßóåôå Ýíá êëåéäß áðü áðïôýðùìá)\n"
+msgstr "(εκτός εάν προσδιορίσετε ένα κλειδί από αποτύπωμα)\n"
 
 #, fuzzy
 msgid "can't do this in batch mode without \"--yes\"\n"
-msgstr "äåí ìðïñåß íá ãßíåé áõôü óå êáôÜóôáóç äÝóìçò ÷ùñßò ôï \"--yes\"\n"
+msgstr "δεν μπορεί να γίνει αυτό σε κατάσταση δέσμης χωρίς το \"--yes\"\n"
 
 #, fuzzy
 msgid "Delete this key from the keyring? (y/N) "
-msgstr "ÄéáãñáöÞ áõôïý ôïõ êëåéäéïý áðü ôç êëåéäïèÞêç; "
+msgstr "Διαγραφή αυτού του κλειδιού από τη κλειδοθήκη; "
 
 #, fuzzy
 msgid "This is a secret key! - really delete? (y/N) "
-msgstr "Áõôü åßíáé Ýíá ìõóôéêü êëåéäß! - Óßãïõñá íá äéáãñáöåß; "
+msgstr "Αυτό είναι ένα μυστικό κλειδί! - Σίγουρα να διαγραφεί; "
 
 #, fuzzy, c-format
 msgid "deleting secret %s failed: %s\n"
-msgstr "äéáãñáöÞ block êëåéäéþí áðÝôõ÷å: %s\n"
+msgstr "διαγραφή block κλειδιών απέτυχε: %s\n"
 
 msgid "key"
 msgstr "key"
@@ -1616,146 +1621,146 @@ msgstr "key"
 #, fuzzy
 #| msgid "Pubkey: "
 msgid "subkey"
-msgstr "ÄçìïóÊëåéäß:"
+msgstr "ΔημοσΚλειδί:"
 
 #, c-format
 msgid "deleting keyblock failed: %s\n"
-msgstr "äéáãñáöÞ block êëåéäéþí áðÝôõ÷å: %s\n"
+msgstr "διαγραφή block κλειδιών απέτυχε: %s\n"
 
 msgid "ownertrust information cleared\n"
-msgstr "êáèáñéóìüò ðëçñïöïñéþí åìðéóôïóýíçò-éäéïêôÞôç\n"
+msgstr "καθαρισμός πληροφοριών εμπιστοσύνης-ιδιοκτήτη\n"
 
 #, c-format
 msgid "there is a secret key for public key \"%s\"!\n"
-msgstr "õðÜñ÷åé Ýíá ìõóôéêü êëåéäß ãéá ôï äçìüóéï êëåéäß \"%s\"!\n"
+msgstr "υπάρχει ένα μυστικό κλειδί για το δημόσιο κλειδί \"%s\"!\n"
 
 msgid "use option \"--delete-secret-keys\" to delete it first.\n"
 msgstr ""
-"÷ñçóéìïðïéåßóôå ðñþôá ôçí åðéëïãÞ \"--delete-secret-key\" ãéá äéáãñáöÞ ôïõ.\n"
+"χρησιμοποιείστε πρώτα την επιλογή \"--delete-secret-key\" για διαγραφή του.\n"
 
 #, c-format
 msgid "error creating passphrase: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 msgid "can't use a symmetric ESK packet due to the S2K mode\n"
-msgstr "áäõíáìßá ÷ñÞóçò åíüò óõììåôñéêïý ðáêÝôïõ ESK ëüãù ôçò êáôÜóôáóçò S2K\n"
+msgstr "αδυναμία χρήσης ενός συμμετρικού πακέτου ESK λόγω της κατάστασης S2K\n"
 
 #, c-format
 msgid "using cipher %s\n"
-msgstr "÷ñÞóç ôïõ êñõðôáëãüñéèìïõ: %s\n"
+msgstr "χρήση του κρυπταλγόριθμου: %s\n"
 
 #, fuzzy, c-format
 #| msgid "`%s' already compressed\n"
 msgid "'%s' already compressed\n"
-msgstr "`%s' Þäç óõìðéÝóôçêå\n"
+msgstr "`%s' ήδη συμπιέστηκε\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: `%s' is an empty file\n"
 msgid "WARNING: '%s' is an empty file\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: `%s' åßíáé Ýíá Üäåéï áñ÷åßï\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: `%s' είναι ένα άδειο αρχείο\n"
 
 #, fuzzy, c-format
 #| msgid "reading from `%s'\n"
 msgid "reading from '%s'\n"
-msgstr "áíÜãíùóç áðü `%s'\n"
+msgstr "ανάγνωση από `%s'\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: forcing symmetric cipher %s (%d) violates recipient preferences\n"
 msgstr ""
-"ï åîáíáãêáóìüò óõììåôñéêïý áëãüñéèìïõ %s (%d) ðáñáâéÜæåé ôéò\n"
-"åðéëïãÝò ôïõ ðáñáëÞðôç\n"
+"ο εξαναγκασμός συμμετρικού αλγόριθμου %s (%d) παραβιάζει τις\n"
+"επιλογές του παραλήπτη\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: forcing compression algorithm %s (%d) violates recipient "
 "preferences\n"
 msgstr ""
-"ï åîáíáãêáóìüò ÷ñÞóçò ôïõ áëãïñßèìïõ óõìðßåóçò %s (%d) ðáñáâéÜæåé ôéò\n"
-"åðéëïãÝò ôïõ ðáñáëÞðôç\n"
+"ο εξαναγκασμός χρήσης του αλγορίθμου συμπίεσης %s (%d) παραβιάζει τις\n"
+"επιλογές του παραλήπτη\n"
 
 #, c-format
 msgid "forcing symmetric cipher %s (%d) violates recipient preferences\n"
 msgstr ""
-"ï åîáíáãêáóìüò óõììåôñéêïý áëãüñéèìïõ %s (%d) ðáñáâéÜæåé ôéò\n"
-"åðéëïãÝò ôïõ ðáñáëÞðôç\n"
+"ο εξαναγκασμός συμμετρικού αλγόριθμου %s (%d) παραβιάζει τις\n"
+"επιλογές του παραλήπτη\n"
 
 #, c-format
 msgid "%s/%s encrypted for: \"%s\"\n"
-msgstr "%s/%s êñõðôïãñáöÞèçêå ãéá: \"%s\"\n"
+msgstr "%s/%s κρυπτογραφήθηκε για: \"%s\"\n"
 
 #, c-format
 msgid "you may not use %s while in %s mode\n"
-msgstr "áðáãïñåýåôå ç ÷ñÞóç ôïõ %s óôçí êáôÜóôáóç %s.\n"
+msgstr "απαγορεύετε η χρήση του %s στην κατάσταση %s.\n"
 
 #, c-format
 msgid "%s encrypted data\n"
-msgstr "%s êñõðôïãñáöçìÝíá äåäïìÝíá\n"
+msgstr "%s κρυπτογραφημένα δεδομένα\n"
 
 #, c-format
 msgid "encrypted with unknown algorithm %d\n"
-msgstr "êñõðôïãñáöçìÝíï ìå Üãíùóôï áëãüñéèìï %d\n"
+msgstr "κρυπτογραφημένο με άγνωστο αλγόριθμο %d\n"
 
 msgid ""
 "WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ôï ìÞíõìá êñõðôïãñáöÞèçêå ìå áäýíáìï êëåéäß óôï\n"
-"óõììåôñéêü êñõðôáëãüñéèìï.\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: το μήνυμα κρυπτογραφήθηκε με αδύναμο κλειδί στο\n"
+"συμμετρικό κρυπταλγόριθμο.\n"
 
 msgid "problem handling encrypted packet\n"
-msgstr "ðñüâëçìá óôï ÷åéñéóìü êñõðôïãñáöçìÝíïõ ðáêÝôïõ\n"
+msgstr "πρόβλημα στο χειρισμό κρυπτογραφημένου πακέτου\n"
 
 msgid "no remote program execution supported\n"
-msgstr "äåí õðïóôçñßæåôå ç áðïìáêñõóìÝíç åêôÝëåóç ðñïãñÜììáôïò\n"
+msgstr "δεν υποστηρίζετε η απομακρυσμένη εκτέλεση προγράμματος\n"
 
 msgid ""
 "external program calls are disabled due to unsafe options file permissions\n"
 msgstr ""
-"ïé êëÞóåéò åîùôåñéêþí ðñïãñáììÜôùí áðåíåñãïðïéÞèçêáí ëüãù áíáóöáëþí áäåéþí\n"
-"áñ÷åßïõ\n"
+"οι κλήσεις εξωτερικών προγραμμάτων απενεργοποιήθηκαν λόγω ανασφαλών αδειών\n"
+"αρχείου\n"
 
 #, fuzzy
 msgid "this platform requires temporary files when calling external programs\n"
 msgstr ""
-"áõôÞ ç ðëáôöüñìá áðáéôåß ðñïóùñ. áñ÷åßá óôçí êëÞóç åîùôåñéêþí ðñïãñáììÜôùí\n"
+"αυτή η πλατφόρμα απαιτεί προσωρ. αρχεία στην κλήση εξωτερικών προγραμμάτων\n"
 
 #, fuzzy, c-format
 msgid "unable to execute program '%s': %s\n"
-msgstr "áäõíáìßá åêôÝëåóçò ôïõ %s \"%s\": %s\n"
+msgstr "αδυναμία εκτέλεσης του %s \"%s\": %s\n"
 
 #, fuzzy, c-format
 msgid "unable to execute shell '%s': %s\n"
-msgstr "áäõíáìßá åêôÝëåóçò ôïõ %s \"%s\": %s\n"
+msgstr "αδυναμία εκτέλεσης του %s \"%s\": %s\n"
 
 #, c-format
 msgid "system error while calling external program: %s\n"
-msgstr "óöÜëìá óõóôÞìáôïò êáôÜ ôçí êëÞóç åîùôåñéêïý ðñïãñÜììáôïò: %s\n"
+msgstr "σφάλμα συστήματος κατά την κλήση εξωτερικού προγράμματος: %s\n"
 
 msgid "unnatural exit of external program\n"
-msgstr "áöýóéêç Ýîïäïò ôïõ åîùôåñéêïý ðñïãñÜììáôïò\n"
+msgstr "αφύσικη έξοδος του εξωτερικού προγράμματος\n"
 
 msgid "unable to execute external program\n"
-msgstr "áäõíáìßá åêôÝëåóçò ôïõ åîùôåñéêïý ðñïãñÜììáôïò\n"
+msgstr "αδυναμία εκτέλεσης του εξωτερικού προγράμματος\n"
 
 #, c-format
 msgid "unable to read external program response: %s\n"
-msgstr "áäõíáìßá áíÜãíùóçò ôçò áðÜíôçóçò ôïõ åîùôåñéêïý ðñïãñÜììáôïò: %s\n"
+msgstr "αδυναμία ανάγνωσης της απάντησης του εξωτερικού προγράμματος: %s\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unable to remove tempfile (%s) `%s': %s\n"
 msgid "WARNING: unable to remove tempfile (%s) '%s': %s\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: áäõíáìßá äéáãñáöÞò tempfile (%s) `%s': %s\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: αδυναμία διαγραφής tempfile (%s) `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unable to remove temp directory `%s': %s\n"
 msgid "WARNING: unable to remove temp directory '%s': %s\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: áäõíáìßá äéáãñáöÞò ðñïóùñéíïý öáêÝëïõ `%s': %s\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: αδυναμία διαγραφής προσωρινού φακέλου `%s': %s\n"
 
 #, fuzzy
 msgid "export signatures that are marked as local-only"
 msgstr ""
 "\n"
-"Ç õðïãñáöÞ èá óçìåéùèåß óáí ìç-áíáêáëÝóéìç.\n"
+"Η υπογραφή θα σημειωθεί σαν μη-ανακαλέσιμη.\n"
 "\n"
 
 msgid "export attribute user IDs (generally photo IDs)"
@@ -1763,11 +1768,11 @@ msgstr ""
 
 #, fuzzy
 msgid "export revocation keys marked as \"sensitive\""
-msgstr "äå âñÝèçêáí êëåéäéÜ áíÜêëçóçò ãéá ôï `%s'\n"
+msgstr "δε βρέθηκαν κλειδιά ανάκλησης για το `%s'\n"
 
 #, fuzzy
 msgid "remove unusable parts from key during export"
-msgstr "ìç ÷ñçóéìïðïéÞóéìï ìõóôéêü êëåéäß"
+msgstr "μη χρησιμοποιήσιμο μυστικό κλειδί"
 
 msgid "remove as much as possible from key during export"
 msgstr ""
@@ -1775,41 +1780,41 @@ msgstr ""
 #, fuzzy
 #| msgid "%s: skipped: %s\n"
 msgid " - skipped"
-msgstr "%s: ðáñáëåßöèçêå: %s\n"
+msgstr "%s: παραλείφθηκε: %s\n"
 
 #, fuzzy, c-format
 #| msgid "writing to `%s'\n"
 msgid "writing to '%s'\n"
-msgstr "åããñáöÞ óôï  `%s'\n"
+msgstr "εγγραφή στο  `%s'\n"
 
 #, fuzzy, c-format
 msgid "key %s: key material on-card - skipped\n"
 msgstr ""
-"êëåéäß %08lX: ç õðïãñáöÞ ôïõ õðïêëåéäéïý óå ëÜèïò óçìåßï - ðáñáëåßöèçêå\n"
+"κλειδί %08lX: η υπογραφή του υποκλειδιού σε λάθος σημείο - παραλείφθηκε\n"
 
 #, fuzzy
 msgid "exporting secret keys not allowed\n"
-msgstr "åããñáöÞ ôïõ ìõóôéêïý êëåéäéïý óôï `%s'\n"
+msgstr "εγγραφή του μυστικού κλειδιού στο `%s'\n"
 
 #, fuzzy, c-format
 msgid "key %s: PGP 2.x style key - skipped\n"
-msgstr "êëåéäß %08lX:  êëåéäß ôýðïõ PGP 2.x - ðáñáëåßöèçêå\n"
+msgstr "κλειδί %08lX:  κλειδί τύπου PGP 2.x - παραλείφθηκε\n"
 
 msgid "WARNING: nothing exported\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: äåí Ýãéíå êáììßá åîáãùãÞ\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: δεν έγινε καμμία εξαγωγή\n"
 
 #, fuzzy, c-format
 #| msgid "error creating `%s': %s\n"
 msgid "error creating '%s': %s\n"
-msgstr "óöÜëìá êáôÜ ôç äçìéïõñãßá ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά τη δημιουργία του `%s': %s\n"
 
 #, fuzzy
 msgid "[User ID not found]"
-msgstr "[User id äåí âñÝèçêå]"
+msgstr "[User id δεν βρέθηκε]"
 
 #, fuzzy, c-format
 msgid "(check argument of option '%s')\n"
-msgstr "ìç Ýãêõñåò åðéëïãÝò åéãáãùãÞò\n"
+msgstr "μη έγκυρες επιλογές ειγαγωγής\n"
 
 #, c-format
 msgid "Warning: '%s' should be a long key ID or a fingerprint\n"
@@ -1817,38 +1822,38 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error looking up: %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
 msgid "Warning: %s appears in the keyring %d times\n"
-msgstr "áäõíáìßá äçìéïõñãßáò ôçò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία δημιουργίας της κλειδοθήκης `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "automatically retrieved '%s' via %s\n"
-msgstr "óöÜëìá êáôÜ ôç äçìéïõñãßá ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά τη δημιουργία του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error retrieving '%s' via %s: %s\n"
-msgstr "óöÜëìá êáôÜ ôç äçìéïõñãßá ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά τη δημιουργία του `%s': %s\n"
 
 #, fuzzy
 msgid "No fingerprint"
-msgstr "áðåéêüíéóç ôïõ fingerprint"
+msgstr "απεικόνιση του fingerprint"
 
 #, fuzzy, c-format
 msgid "secret key \"%s\" not found: %s\n"
-msgstr "ôï ìõóôéêü êëåéäß `%s' äå âñÝèçêå: %s\n"
+msgstr "το μυστικό κλειδί `%s' δε βρέθηκε: %s\n"
 
 #, fuzzy, c-format
 #| msgid "|NAME|use NAME as default secret key"
 msgid "Warning: not using '%s' as default key: %s\n"
-msgstr "|ÏÍÏÌÁ|÷ñÞóç ÏÍÏÌÁôïò óáí ðñïêáèïñéóìÝíï ìõóôéêü êëåéäß"
+msgstr "|ΟΝΟΜΑ|χρήση ΟΝΟΜΑτος σαν προκαθορισμένο μυστικό κλειδί"
 
 #, fuzzy, c-format
 #| msgid "|NAME|use NAME as default secret key"
 msgid "using \"%s\" as default secret key for signing\n"
-msgstr "|ÏÍÏÌÁ|÷ñÞóç ÏÍÏÌÁôïò óáí ðñïêáèïñéóìÝíï ìõóôéêü êëåéäß"
+msgstr "|ΟΝΟΜΑ|χρήση ΟΝΟΜΑτος σαν προκαθορισμένο μυστικό κλειδί"
 
 #, c-format
 msgid "all values passed to '%s' ignored\n"
@@ -1857,121 +1862,121 @@ msgstr ""
 #, fuzzy, c-format
 msgid "Invalid key %s made valid by --allow-non-selfsigned-uid\n"
 msgstr ""
-"Ìç Ýãêõñï êëåéäß %08lX Ýãéíå Ýãêõñï áðü ôï --allow-non-selfsigned-uid\n"
+"Μη έγκυρο κλειδί %08lX έγινε έγκυρο από το --allow-non-selfsigned-uid\n"
 
 #, fuzzy, c-format
 msgid "using subkey %s instead of primary key %s\n"
-msgstr "÷ñÞóç ôïõ äåõôåñåýïíôïò êëåéäéïý %08lX áíôß ôïõ ðñùôåýïíôïò %08lX\n"
+msgstr "χρήση του δευτερεύοντος κλειδιού %08lX αντί του πρωτεύοντος %08lX\n"
 
 #, fuzzy
 msgid "make a signature"
-msgstr "äçìéïõñãßá ìéáò ìç ðñïóáñôçìÝíçò õðïãñáöÞò"
+msgstr "δημιουργία μιας μη προσαρτημένης υπογραφής"
 
 #, fuzzy
 msgid "make a clear text signature"
-msgstr "|[áñ÷åßï]|äçìéïõñãßá ìéáò ìç êñõðôïãñáöçìÝíçò õðïãñáöÞò"
+msgstr "|[αρχείο]|δημιουργία μιας μη κρυπτογραφημένης υπογραφής"
 
 msgid "make a detached signature"
-msgstr "äçìéïõñãßá ìéáò ìç ðñïóáñôçìÝíçò õðïãñáöÞò"
+msgstr "δημιουργία μιας μη προσαρτημένης υπογραφής"
 
 msgid "encrypt data"
-msgstr "êñõðôïãñÜöçóç äåäïìÝíùí"
+msgstr "κρυπτογράφηση δεδομένων"
 
 msgid "encryption only with symmetric cipher"
-msgstr "êñõðôïãñÜöçóç ìå ÷ñÞóç ìüíï óõììåôñéêþí áëãïñßèìùí"
+msgstr "κρυπτογράφηση με χρήση μόνο συμμετρικών αλγορίθμων"
 
 msgid "decrypt data (default)"
-msgstr "áðïêñõðôïãñÜöçóç äåäïìÝíùí (ðñïêáèïñéóìÝíï)"
+msgstr "αποκρυπτογράφηση δεδομένων (προκαθορισμένο)"
 
 msgid "verify a signature"
-msgstr "åðáëÞèåõóç ìéáò õðïãñáöÞò"
+msgstr "επαλήθευση μιας υπογραφής"
 
 msgid "list keys"
-msgstr "áðåéêüíéóç ôçò ëßóôáò êëåéäéþí"
+msgstr "απεικόνιση της λίστας κλειδιών"
 
 msgid "list keys and signatures"
-msgstr "áðåéêüíéóç ôçò ëßóôáò êëåéäéþí êáé õðïãñáöþí"
+msgstr "απεικόνιση της λίστας κλειδιών και υπογραφών"
 
 #, fuzzy
 msgid "list and check key signatures"
-msgstr "Ýëåã÷ïò õðïãñáöÞò êëåéäéïý"
+msgstr "έλεγχος υπογραφής κλειδιού"
 
 msgid "list keys and fingerprints"
-msgstr "áðåéêüíéóç ôçò ëßóôáò êëåéäéþí êáé áðïôõðùìÜôùí (fingerprints)"
+msgstr "απεικόνιση της λίστας κλειδιών και αποτυπωμάτων (fingerprints)"
 
 msgid "list secret keys"
-msgstr "áðåéêüíéóç ôçò ëßóôáò ìõóôéêþí êëåéäéþí"
+msgstr "απεικόνιση της λίστας μυστικών κλειδιών"
 
 msgid "generate a new key pair"
-msgstr "äçìéïõñãßá åíüò íÝïõ æåýãïõò êëåéäéþí"
+msgstr "δημιουργία ενός νέου ζεύγους κλειδιών"
 
 #, fuzzy
 #| msgid "generate a new key pair"
 msgid "quickly generate a new key pair"
-msgstr "äçìéïõñãßá åíüò íÝïõ æåýãïõò êëåéäéþí"
+msgstr "δημιουργία ενός νέου ζεύγους κλειδιών"
 
 #, fuzzy
 #| msgid "generate a new key pair"
 msgid "quickly add a new user-id"
-msgstr "äçìéïõñãßá åíüò íÝïõ æåýãïõò êëåéäéþí"
+msgstr "δημιουργία ενός νέου ζεύγους κλειδιών"
 
 #, fuzzy
 #| msgid "generate a new key pair"
 msgid "quickly revoke a user-id"
-msgstr "äçìéïõñãßá åíüò íÝïõ æåýãïõò êëåéäéþí"
+msgstr "δημιουργία ενός νέου ζεύγους κλειδιών"
 
 msgid "full featured key pair generation"
 msgstr ""
 
 msgid "generate a revocation certificate"
-msgstr "äçìéïõñãßá åíüò ðéóôïðïéçôéêïý áíÜêëçóçò"
+msgstr "δημιουργία ενός πιστοποιητικού ανάκλησης"
 
 msgid "remove keys from the public keyring"
-msgstr "áöáßñåóç ôùí êëåéäéþí áðü ôç äçìüóéá êëåéäïèÞêç"
+msgstr "αφαίρεση των κλειδιών από τη δημόσια κλειδοθήκη"
 
 msgid "remove keys from the secret keyring"
-msgstr "áöáßñåóç ôùí êëåéäéþí áðü ôç ìõóôéêÞ êëåéäïèÞêç"
+msgstr "αφαίρεση των κλειδιών από τη μυστική κλειδοθήκη"
 
 #, fuzzy
 #| msgid "sign a key"
 msgid "quickly sign a key"
-msgstr "õðïãñáöÞ åíüò êëåéäéïý"
+msgstr "υπογραφή ενός κλειδιού"
 
 #, fuzzy
 #| msgid "sign a key locally"
 msgid "quickly sign a key locally"
-msgstr "õðïãñáöÞ åíüò êëåéäéïý ôïðéêÜ"
+msgstr "υπογραφή ενός κλειδιού τοπικά"
 
 msgid "sign a key"
-msgstr "õðïãñáöÞ åíüò êëåéäéïý"
+msgstr "υπογραφή ενός κλειδιού"
 
 msgid "sign a key locally"
-msgstr "õðïãñáöÞ åíüò êëåéäéïý ôïðéêÜ"
+msgstr "υπογραφή ενός κλειδιού τοπικά"
 
 msgid "sign or edit a key"
-msgstr "õðïãñáöÞ Þ åðåîåñãáóßá åíüò êëåéäéïý"
+msgstr "υπογραφή ή επεξεργασία ενός κλειδιού"
 
 #, fuzzy
 msgid "change a passphrase"
-msgstr "áëëáãÞ ôçò öñÜóçò êëåéäß"
+msgstr "αλλαγή της φράσης κλειδί"
 
 msgid "export keys"
-msgstr "åîáãùãÞ êëåéäéþí"
+msgstr "εξαγωγή κλειδιών"
 
 msgid "export keys to a keyserver"
-msgstr "åîáãùãÞ êëåéäéþí óå Ýíá äéáêïìéóôÞ êëåéäéþí"
+msgstr "εξαγωγή κλειδιών σε ένα διακομιστή κλειδιών"
 
 msgid "import keys from a keyserver"
-msgstr "åéóáãùãÞ êëåéäéþí áðü Ýíá äéáêïìéóôÞ êëåéäéþí"
+msgstr "εισαγωγή κλειδιών από ένα διακομιστή κλειδιών"
 
 msgid "search for keys on a keyserver"
-msgstr "áíáæÞôçóç êëåéäéþí óå Ýíá äéáêïìéóôÞ êëåéäéþí"
+msgstr "αναζήτηση κλειδιών σε ένα διακομιστή κλειδιών"
 
 msgid "update all keys from a keyserver"
-msgstr "áíáíÝùóç üëùí ôùí êëåéäéþí áðü Ýíá äéáêïìéóôÞ êëåéäéþí"
+msgstr "ανανέωση όλων των κλειδιών από ένα διακομιστή κλειδιών"
 
 msgid "import/merge keys"
-msgstr "åéóáãùãÞ/óõã÷þíåõóç êëåéäéþí"
+msgstr "εισαγωγή/συγχώνευση κλειδιών"
 
 msgid "print the card status"
 msgstr ""
@@ -1983,11 +1988,11 @@ msgid "change a card's PIN"
 msgstr ""
 
 msgid "update the trust database"
-msgstr "áíáíÝùóç ôçò âÜóçò äåäïìÝíùí åìðéóôïóýíçò"
+msgstr "ανανέωση της βάσης δεδομένων εμπιστοσύνης"
 
 #, fuzzy
 msgid "print message digests"
-msgstr "|áëãüñ [áñ÷åßá]| áðåéêüíéóç ðåñéëÞøåùí ôùí ìçíõìÜôùí"
+msgstr "|αλγόρ [αρχεία]| απεικόνιση περιλήψεων των μηνυμάτων"
 
 msgid "run in server mode"
 msgstr ""
@@ -1996,32 +2001,32 @@ msgid "|VALUE|set the TOFU policy for a key"
 msgstr ""
 
 msgid "create ascii armored output"
-msgstr "äçìéïõñãßá ascii èùñáêéóìÝíçò åîüäïõ"
+msgstr "δημιουργία ascii θωρακισμένης εξόδου"
 
 #, fuzzy
 msgid "|USER-ID|encrypt for USER-ID"
-msgstr "|ÏÍÏÌÁ|êñõðôïãñÜöçóç ãéá ÏÍÏÌÁ"
+msgstr "|ΟΝΟΜΑ|κρυπτογράφηση για ΟΝΟΜΑ"
 
 #, fuzzy
 msgid "|USER-ID|use USER-ID to sign or decrypt"
-msgstr "÷ñÞóç áõôÞò ôçò ôáõôüôçôáò (user id) ãéá õðïãñáöÞ Þ áðïêñõðôïãñÜöçóç"
+msgstr "χρήση αυτής της ταυτότητας (user id) για υπογραφή ή αποκρυπτογράφηση"
 
 #, fuzzy
 msgid "|N|set compress level to N (0 disables)"
-msgstr "|N|êáèïñéóìüò åðéðÝäïõ óõìðßåóçò N (0 áðåíåñãïðïéåß)"
+msgstr "|N|καθορισμός επιπέδου συμπίεσης N (0 απενεργοποιεί)"
 
 msgid "use canonical text mode"
-msgstr "÷ñÞóç êáíïíéêÞò êáôÜóôáóçò êåéìÝíïõ"
+msgstr "χρήση κανονικής κατάστασης κειμένου"
 
 #, fuzzy
 msgid "|FILE|write output to FILE"
-msgstr "|ÁÑ×ÅÉÏ|öüñôùìá ôïõ áñèñþìáôïò åðÝêôáóçò ÁÑ×ÅÉÏ"
+msgstr "|ΑΡΧΕΙΟ|φόρτωμα του αρθρώματος επέκτασης ΑΡΧΕΙΟ"
 
 msgid "do not make any changes"
-msgstr "íá ìç ãßíåé êáììßá áëëáãÞ"
+msgstr "να μη γίνει καμμία αλλαγή"
 
 msgid "prompt before overwriting"
-msgstr "åñþôçóç ðñéí ôçí åðéêÜëõøç"
+msgstr "ερώτηση πριν την επικάλυψη"
 
 msgid "use strict OpenPGP behavior"
 msgstr ""
@@ -2031,7 +2036,7 @@ msgid ""
 "(See the man page for a complete listing of all commands and options)\n"
 msgstr ""
 "@\n"
-"(äåßôå ôç óåëßäá man ãéá ìéá ðëÞñç ëßóôá åíôïëþí êáé åðéëïãþí)\n"
+"(δείτε τη σελίδα man για μια πλήρη λίστα εντολών και επιλογών)\n"
 
 msgid ""
 "@\n"
@@ -2044,18 +2049,18 @@ msgid ""
 " --fingerprint [names]      show fingerprints\n"
 msgstr ""
 "@\n"
-"Ðáñáäåßãìáôá:\n"
+"Παραδείγματα:\n"
 "\n"
-" -se -r Bob [áñ÷åßï]          õðïãñáöÞ êáé êñõðôïãñÜöçóç ãéá ôï Bob\n"
-" --clearsign [áñ÷åßï]         äçìéïõñãßá ìç êñõðôïãñáöçìÝíçò õðïãñáöÞò\n"
-" --detach-sign [áñ÷åßï]       äçìéïõñãßá áðïêïììÝíçò õðïãñáöÞò\n"
-" --list-keys [ïíüìáôá]        áðåéêüíéóç êëåéäéþí\n"
-" --fingerprint [ïíüìáôá]      áðåéêüíéóç áðïôõðùìÜôùí (fingerprints)\n"
+" -se -r Bob [αρχείο]          υπογραφή και κρυπτογράφηση για το Bob\n"
+" --clearsign [αρχείο]         δημιουργία μη κρυπτογραφημένης υπογραφής\n"
+" --detach-sign [αρχείο]       δημιουργία αποκομμένης υπογραφής\n"
+" --list-keys [ονόματα]        απεικόνιση κλειδιών\n"
+" --fingerprint [ονόματα]      απεικόνιση αποτυπωμάτων (fingerprints)\n"
 
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: @GPG@ [options] [files] (-h for help)"
-msgstr "×ñÞóç: gpg [åðéëïãÝò] [áñ÷åßá] (-h ãéá âïÞèåéá)"
+msgstr "Χρήση: gpg [επιλογές] [αρχεία] (-h για βοήθεια)"
 
 #, fuzzy
 #| msgid ""
@@ -2067,110 +2072,110 @@ msgid ""
 "Sign, check, encrypt or decrypt\n"
 "Default operation depends on the input data\n"
 msgstr ""
-"Óýíôáîç: gpg [åðéëïãÝò] [áñ÷åßá]\n"
-"õðïãñáöÞ, Ýëåã÷ïò, êñõðôïãñÜöçóç Þ áðïêñõðôïãñÜöçóç\n"
-"ç ðñïêáèïñéóìÝíç ëåéôïõñãßá åîáñôÜôáé áðü ôá äåäïìÝíá åéóüäïõ\n"
+"Σύνταξη: gpg [επιλογές] [αρχεία]\n"
+"υπογραφή, έλεγχος, κρυπτογράφηση ή αποκρυπτογράφηση\n"
+"η προκαθορισμένη λειτουργία εξαρτάται από τα δεδομένα εισόδου\n"
 
 msgid ""
 "\n"
 "Supported algorithms:\n"
 msgstr ""
 "\n"
-"Õðïóôçñéæüìåíïé áëãüñéèìïé:\n"
+"Υποστηριζόμενοι αλγόριθμοι:\n"
 
 msgid "Pubkey: "
-msgstr "ÄçìïóÊëåéäß:"
+msgstr "ΔημοσΚλειδί:"
 
 msgid "Cipher: "
-msgstr "Êñõðôáëãüñéèìïò: "
+msgstr "Κρυπταλγόριθμος: "
 
 msgid "Hash: "
 msgstr "Hash: "
 
 msgid "Compression: "
-msgstr "Óõìðßåóç: "
+msgstr "Συμπίεση: "
 
 #, fuzzy, c-format
 msgid "usage: %s [options] %s\n"
-msgstr "÷ñÞóç: gpg [åðéëïãÝò] "
+msgstr "χρήση: gpg [επιλογές] "
 
 msgid "conflicting commands\n"
-msgstr "óõãêñïõüìåíåò åíôïëÝò\n"
+msgstr "συγκρουόμενες εντολές\n"
 
 #, fuzzy, c-format
 msgid "no = sign found in group definition '%s'\n"
-msgstr "äåí âñÝèçêå ôï óýìâïëï = óôïí ïñéóìü ôçò ïìÜäáò \"%s\"\n"
+msgstr "δεν βρέθηκε το σύμβολο = στον ορισμό της ομάδας \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe ownership on homedir '%s'\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ìç áóöáëÞò éäéïêôçóßá óôï %s \"%s\"\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: μη ασφαλής ιδιοκτησία στο %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe ownership on configuration file '%s'\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ìç áóöáëÞò éäéïêôçóßá óôï %s \"%s\"\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: μη ασφαλής ιδιοκτησία στο %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe ownership on extension '%s'\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ìç áóöáëÞò éäéïêôçóßá óôï %s \"%s\"\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: μη ασφαλής ιδιοκτησία στο %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe permissions on homedir '%s'\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ìç áóöáëåßò Üäåéåò óôï %s \"%s\"\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: μη ασφαλείς άδειες στο %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe permissions on configuration file '%s'\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ìç áóöáëåßò Üäåéåò óôï %s \"%s\"\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: μη ασφαλείς άδειες στο %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe permissions on extension '%s'\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ìç áóöáëåßò Üäåéåò óôï %s \"%s\"\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: μη ασφαλείς άδειες στο %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe enclosing directory ownership on homedir '%s'\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ìç áóöáëÞò éäéïêôçóßáåóþêëåéóôïõ öáêÝëïõ óôï %s \"%s\"\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: μη ασφαλής ιδιοκτησίαεσώκλειστου φακέλου στο %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: unsafe enclosing directory ownership on configuration file '%s'\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ìç áóöáëÞò éäéïêôçóßáåóþêëåéóôïõ öáêÝëïõ óôï %s \"%s\"\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: μη ασφαλής ιδιοκτησίαεσώκλειστου φακέλου στο %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe enclosing directory ownership on extension '%s'\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ìç áóöáëÞò éäéïêôçóßáåóþêëåéóôïõ öáêÝëïõ óôï %s \"%s\"\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: μη ασφαλής ιδιοκτησίαεσώκλειστου φακέλου στο %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe enclosing directory permissions on homedir '%s'\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ìç áóöáëåßò Üäåéåò åóþêëåéóôïõ öáêÝëïõ óôï %s \"%s\"\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: μη ασφαλείς άδειες εσώκλειστου φακέλου στο %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: unsafe enclosing directory permissions on configuration file '%s'\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ìç áóöáëåßò Üäåéåò åóþêëåéóôïõ öáêÝëïõ óôï %s \"%s\"\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: μη ασφαλείς άδειες εσώκλειστου φακέλου στο %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe enclosing directory permissions on extension '%s'\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ìç áóöáëåßò Üäåéåò åóþêëåéóôïõ öáêÝëïõ óôï %s \"%s\"\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: μη ασφαλείς άδειες εσώκλειστου φακέλου στο %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "unknown configuration item '%s'\n"
-msgstr "Üãíùóôï áíôéêåßìåíï ñõèìßóåùò \"%s\"\n"
+msgstr "άγνωστο αντικείμενο ρυθμίσεως \"%s\"\n"
 
 msgid "display photo IDs during key listings"
 msgstr ""
 
 #, fuzzy
 msgid "show key usage information during key listings"
-msgstr "Äåí âñÝèçêå áíôßóôïé÷ç õðïãñáöÞ óôç ìõóôéêÞ êëåéäïèÞêç\n"
+msgstr "Δεν βρέθηκε αντίστοιχη υπογραφή στη μυστική κλειδοθήκη\n"
 
 msgid "show policy URLs during signature listings"
 msgstr ""
 
 #, fuzzy
 msgid "show all notations during signature listings"
-msgstr "Äåí âñÝèçêå áíôßóôïé÷ç õðïãñáöÞ óôç ìõóôéêÞ êëåéäïèÞêç\n"
+msgstr "Δεν βρέθηκε αντίστοιχη υπογραφή στη μυστική κλειδοθήκη\n"
 
 msgid "show IETF standard notations during signature listings"
 msgstr ""
@@ -2180,7 +2185,7 @@ msgstr ""
 
 #, fuzzy
 msgid "show preferred keyserver URLs during signature listings"
-msgstr "ôï URL ðïëéôéêÞò õðïãñáöÞò ðïõ äüèçêå äåí åßíáé Ýãêõñï\n"
+msgstr "το URL πολιτικής υπογραφής που δόθηκε δεν είναι έγκυρο\n"
 
 msgid "show user ID validity during key listings"
 msgstr ""
@@ -2193,86 +2198,90 @@ msgstr ""
 
 #, fuzzy
 msgid "show the keyring name in key listings"
-msgstr "áðåéêüíéóç ôçò êëåéäïèÞêçò óôçí ïðïßá áíáöÝñåôå ôï êëåéäß"
+msgstr "απεικόνιση της κλειδοθήκης στην οποία αναφέρετε το κλειδί"
 
 #, fuzzy
 msgid "show expiration dates during signature listings"
-msgstr "Äåí âñÝèçêå áíôßóôïé÷ç õðïãñáöÞ óôç ìõóôéêÞ êëåéäïèÞêç\n"
+msgstr "Δεν βρέθηκε αντίστοιχη υπογραφή στη μυστική κλειδοθήκη\n"
 
-#, fuzzy
-msgid "available TOFU policies:\n"
-msgstr "áðåíåñãïðïéåß Ýíá êëåéäß"
+#, fuzzy, c-format
+msgid "valid values for option '%s':\n"
+msgstr "μη έγκυρες επιλογές ειγαγωγής\n"
 
 #, fuzzy, c-format
 msgid "unknown TOFU policy '%s'\n"
-msgstr "Üãíùóôïò ðñïêáèïñéóìÝíïò ðáñáëÞðôçò `%s'\n"
+msgstr "άγνωστος προκαθορισμένος παραλήπτης `%s'\n"
 
 msgid "(use \"help\" to list choices)\n"
 msgstr ""
 
 #, fuzzy, c-format
+msgid "invalid value for option '%s'\n"
+msgstr "μη έγκυρες επιλογές ειγαγωγής\n"
+
+#, fuzzy, c-format
 #| msgid "NOTE: old default options file `%s' ignored\n"
 msgid "Note: old default options file '%s' ignored\n"
-msgstr "ÓÇÌÅÉÙÓÇ: áãíïÞèçêå ôï ðáëéü áñ÷åßï ðñïêáèïñéóìÝíùí åðéëïãþí `%s'\n"
+msgstr "ΣΗΜΕΙΩΣΗ: αγνοήθηκε το παλιό αρχείο προκαθορισμένων επιλογών `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "NOTE: %s is not for normal use!\n"
 msgid "Note: %s is not for normal use!\n"
-msgstr "ÓÇÌÅÉÙÓÇ: ôï %s äåí åßíáé ãéá êáíïíéêÞ ÷ñÞóç!\n"
+msgstr "ΣΗΜΕΙΩΣΗ: το %s δεν είναι για κανονική χρήση!\n"
 
 #, fuzzy, c-format
 msgid "'%s' is not a valid signature expiration\n"
-msgstr "ôï %s äåí åßíáé Ýãêõñï óåô ÷áñáêôÞñùí\n"
+msgstr "το %s δεν είναι έγκυρο σετ χαρακτήρων\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" is not a proper mail address\n"
-msgstr "Ìç Ýãêõñç äéåýèõíóç Email\n"
+msgstr "Μη έγκυρη διεύθυνση Email\n"
 
 #, fuzzy, c-format
 msgid "invalid pinentry mode '%s'\n"
-msgstr "ìç Ýãêõñïò áëãüñéèìïò  hash `%s'\n"
+msgstr "μη έγκυρος αλγόριθμος  hash `%s'\n"
 
 #, fuzzy, c-format
 msgid "'%s' is not a valid character set\n"
-msgstr "ôï %s äåí åßíáé Ýãêõñï óåô ÷áñáêôÞñùí\n"
+msgstr "το %s δεν είναι έγκυρο σετ χαρακτήρων\n"
 
 #, fuzzy
 msgid "could not parse keyserver URL\n"
-msgstr "áäõíáìßá åðåîåñãáóßáò ôïõ URI ôïõ äéáêïìéóç êëåéäéþí\n"
+msgstr "αδυναμία επεξεργασίας του URI του διακομιση κλειδιών\n"
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid keyserver options\n"
-msgstr "%s:%d: ìç Ýãêõñåò åðéëïãÝò åîáãùãÞò\n"
+msgstr "%s:%d: μη έγκυρες επιλογές εξαγωγής\n"
 
 #, fuzzy
 msgid "invalid keyserver options\n"
-msgstr "ìç Ýãêõñåò åðéëïãÝò åîáãùãÞò\n"
+msgstr "μη έγκυρες επιλογές εξαγωγής\n"
 
 #, c-format
 msgid "%s:%d: invalid import options\n"
-msgstr "%s:%d: ìç Ýãêõñåò åðéëïãÝò åéãáãùãÞò\n"
+msgstr "%s:%d: μη έγκυρες επιλογές ειγαγωγής\n"
 
 msgid "invalid import options\n"
-msgstr "ìç Ýãêõñåò åðéëïãÝò åéãáãùãÞò\n"
+msgstr "μη έγκυρες επιλογές ειγαγωγής\n"
 
 #, fuzzy, c-format
 msgid "invalid filter option: %s\n"
-msgstr "ìç Ýãêõñåò åðéëïãÝò åéãáãùãÞò\n"
+msgstr "μη έγκυρες επιλογές ειγαγωγής\n"
 
 #, c-format
 msgid "%s:%d: invalid export options\n"
-msgstr "%s:%d: ìç Ýãêõñåò åðéëïãÝò åîáãùãÞò\n"
+msgstr "%s:%d: μη έγκυρες επιλογές εξαγωγής\n"
 
 msgid "invalid export options\n"
-msgstr "ìç Ýãêõñåò åðéëïãÝò åîáãùãÞò\n"
+msgstr "μη έγκυρες επιλογές εξαγωγής\n"
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid list options\n"
-msgstr "%s:%d: ìç Ýãêõñåò åðéëïãÝò åéãáãùãÞò\n"
+msgstr "%s:%d: μη έγκυρες επιλογές ειγαγωγής\n"
 
 #, fuzzy
 msgid "invalid list options\n"
-msgstr "ìç Ýãêõñåò åðéëïãÝò åéãáãùãÞò\n"
+msgstr "μη έγκυρες επιλογές ειγαγωγής\n"
 
 msgid "display photo IDs during signature verification"
 msgstr ""
@@ -2282,7 +2291,7 @@ msgstr ""
 
 #, fuzzy
 msgid "show all notations during signature verification"
-msgstr "ôï %s äåí åßíáé Ýãêõñï óåô ÷áñáêôÞñùí\n"
+msgstr "το %s δεν είναι έγκυρο σετ χαρακτήρων\n"
 
 msgid "show IETF standard notations during signature verification"
 msgstr ""
@@ -2292,18 +2301,18 @@ msgstr ""
 
 #, fuzzy
 msgid "show preferred keyserver URLs during signature verification"
-msgstr "ôï URL ðïëéôéêÞò õðïãñáöÞò ðïõ äüèçêå äåí åßíáé Ýãêõñï\n"
+msgstr "το URL πολιτικής υπογραφής που δόθηκε δεν είναι έγκυρο\n"
 
 #, fuzzy
 msgid "show user ID validity during signature verification"
-msgstr "ôï %s äåí åßíáé Ýãêõñï óåô ÷áñáêôÞñùí\n"
+msgstr "το %s δεν είναι έγκυρο σετ χαρακτήρων\n"
 
 msgid "show revoked and expired user IDs in signature verification"
 msgstr ""
 
 #, fuzzy
 msgid "show only the primary user ID in signature verification"
-msgstr "ôï %s äåí åßíáé Ýãêõñï óåô ÷áñáêôÞñùí\n"
+msgstr "το %s δεν είναι έγκυρο σετ χαρακτήρων\n"
 
 msgid "validate signatures with PKA data"
 msgstr ""
@@ -2313,172 +2322,172 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid verify options\n"
-msgstr "%s:%d: ìç Ýãêõñåò åðéëïãÝò åîáãùãÞò\n"
+msgstr "%s:%d: μη έγκυρες επιλογές εξαγωγής\n"
 
 #, fuzzy
 msgid "invalid verify options\n"
-msgstr "ìç Ýãêõñåò åðéëïãÝò åîáãùãÞò\n"
+msgstr "μη έγκυρες επιλογές εξαγωγής\n"
 
 #, c-format
 msgid "unable to set exec-path to %s\n"
-msgstr "áäõíáìßá ïñéóìïý ôïõ exec-path óå %s\n"
+msgstr "αδυναμία ορισμού του exec-path σε %s\n"
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid auto-key-locate list\n"
-msgstr "%s:%d: ìç Ýãêõñåò åðéëïãÝò åîáãùãÞò\n"
+msgstr "%s:%d: μη έγκυρες επιλογές εξαγωγής\n"
 
 msgid "invalid auto-key-locate list\n"
 msgstr ""
 
 msgid "WARNING: program may create a core file!\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ôï ðñüãñáììá ßóùò äçìéïõñãÞóåé áñ÷åßï core!\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: το πρόγραμμα ίσως δημιουργήσει αρχείο core!\n"
 
 #, c-format
 msgid "WARNING: %s overrides %s\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ôï %s ðáñáêÜìðôåé ôï %s\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: το %s παρακάμπτει το %s\n"
 
 #, c-format
 msgid "%s not allowed with %s!\n"
-msgstr "ôï %s äåí åðéôñÝðåôáé ìå ôï %s!\n"
+msgstr "το %s δεν επιτρέπεται με το %s!\n"
 
 #, c-format
 msgid "%s makes no sense with %s!\n"
-msgstr "ôï %s äåí Ý÷åé êáììßá Ýííïéá ìáæß ìå ôï %s!\n"
+msgstr "το %s δεν έχει καμμία έννοια μαζί με το %s!\n"
 
 msgid "WARNING: running with faked system time: "
 msgstr ""
 
 #, fuzzy, c-format
 msgid "will not run with insecure memory due to %s\n"
-msgstr "åããñáöÞ ôïõ ìõóôéêïý êëåéäéïý óôï `%s'\n"
+msgstr "εγγραφή του μυστικού κλειδιού στο `%s'\n"
 
 msgid "selected cipher algorithm is invalid\n"
-msgstr "ï åðéëåãìÝíïò áëãüñéèìïò êñõðôïãñÜöçóçò äåí åßíáé Ýãêõñïò\n"
+msgstr "ο επιλεγμένος αλγόριθμος κρυπτογράφησης δεν είναι έγκυρος\n"
 
 msgid "selected digest algorithm is invalid\n"
-msgstr "ï åðéëåãìÝíïò áëãüñéèìïò ðåñßëçøçò äåí åßíáé Ýãêõñïò\n"
+msgstr "ο επιλεγμένος αλγόριθμος περίληψης δεν είναι έγκυρος\n"
 
 #, fuzzy
 msgid "selected compression algorithm is invalid\n"
-msgstr "ï åðéëåãìÝíïò áëãüñéèìïò êñõðôïãñÜöçóçò äåí åßíáé Ýãêõñïò\n"
+msgstr "ο επιλεγμένος αλγόριθμος κρυπτογράφησης δεν είναι έγκυρος\n"
 
 msgid "selected certification digest algorithm is invalid\n"
 msgstr ""
-"ï åðéëåãìÝíïò áëãüñéèìïò ðåñßëçøçò ãéá ðéóôïðïßçóç\n"
-"äåí åßíáé Ýãêõñïò\n"
+"ο επιλεγμένος αλγόριθμος περίληψης για πιστοποίηση\n"
+"δεν είναι έγκυρος\n"
 
 msgid "completes-needed must be greater than 0\n"
-msgstr "completes-needed ðñÝðåé íá åßíáé ìåãáëýôåñá áðü 0\n"
+msgstr "completes-needed πρέπει να είναι μεγαλύτερα από 0\n"
 
 msgid "marginals-needed must be greater than 1\n"
-msgstr "marginals-needed ðñÝðåé íá åßíáé ìåãáëýôåñá áðü 1\n"
+msgstr "marginals-needed πρέπει να είναι μεγαλύτερα από 1\n"
 
 #, fuzzy
 msgid "max-cert-depth must be in the range from 1 to 255\n"
-msgstr "max-cert-depth ðñÝðåé íá åßíáé ìåôáîý 1 êáé 255\n"
+msgstr "max-cert-depth πρέπει να είναι μεταξύ 1 και 255\n"
 
 msgid "invalid default-cert-level; must be 0, 1, 2, or 3\n"
-msgstr "ìç Ýãêõñï default-cert-level· ðñÝðåé íá åßíáé 0, 1, 2, Þ 3\n"
+msgstr "μη έγκυρο default-cert-level· πρέπει να είναι 0, 1, 2, ή 3\n"
 
 msgid "invalid min-cert-level; must be 1, 2, or 3\n"
-msgstr "ìç Ýãêõñï min-cert-level· ðñÝðåé íá åßíáé 0, 1, 2, Þ 3\n"
+msgstr "μη έγκυρο min-cert-level· πρέπει να είναι 0, 1, 2, ή 3\n"
 
 #, fuzzy
 #| msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
 msgid "Note: simple S2K mode (0) is strongly discouraged\n"
-msgstr "ÓÇÌÅÉÙÓÇ: ç áðëÞ S2K êáôÜóôáóç (0) ðñÝðåé íá áðïöåýãåôáé\n"
+msgstr "ΣΗΜΕΙΩΣΗ: η απλή S2K κατάσταση (0) πρέπει να αποφεύγεται\n"
 
 msgid "invalid S2K mode; must be 0, 1 or 3\n"
-msgstr "ìç Ýãêõñç êáôÜóôáóç S2K; ðñÝðåé íá åßíáé 0, 1 Þ 3\n"
+msgstr "μη έγκυρη κατάσταση S2K; πρέπει να είναι 0, 1 ή 3\n"
 
 msgid "invalid default preferences\n"
-msgstr "ìç Ýãêõñåò ðñïåðéëïãÝò\n"
+msgstr "μη έγκυρες προεπιλογές\n"
 
 msgid "invalid personal cipher preferences\n"
-msgstr "ìç Ýãêõñåò ðñïåðéëïãÝò ðñïóùðéêïý êñõðôáëãüñéèìïõ\n"
+msgstr "μη έγκυρες προεπιλογές προσωπικού κρυπταλγόριθμου\n"
 
 msgid "invalid personal digest preferences\n"
-msgstr "ìç Ýãêõñåò ðñïåðéëïãÝò ðñïóùðéêïý áëãüñéèìïõ ðåñßëçøçò\n"
+msgstr "μη έγκυρες προεπιλογές προσωπικού αλγόριθμου περίληψης\n"
 
 msgid "invalid personal compress preferences\n"
-msgstr "ìç Ýãêõñåò ðñïåðéëïãÝò ðñïóùðéêïý áëãüñéèìïõ óõìðßåóçò\n"
+msgstr "μη έγκυρες προεπιλογές προσωπικού αλγόριθμου συμπίεσης\n"
 
 #, c-format
 msgid "%s does not yet work with %s\n"
-msgstr "ôï %s áêüìá äå ëåéôïõñãåß ìáæß ìå ôï %s\n"
+msgstr "το %s ακόμα δε λειτουργεί μαζί με το %s\n"
 
 #, fuzzy, c-format
 msgid "you may not use cipher algorithm '%s' while in %s mode\n"
-msgstr "áðáãïñåýåôå ç ÷ñÞóç ôïõ êñõðôáëãüñéèìïõ \"%s\" óôçí êáôÜóôáóç %s\n"
+msgstr "απαγορεύετε η χρήση του κρυπταλγόριθμου \"%s\" στην κατάσταση %s\n"
 
 #, fuzzy, c-format
 msgid "you may not use digest algorithm '%s' while in %s mode\n"
 msgstr ""
-"áðáãïñåýåôå ç ÷ñÞóç ôïõ áëãüñéèìïõ ðåñßëçøçò \"%s\" óôçí êáôÜóôáóç %s\n"
+"απαγορεύετε η χρήση του αλγόριθμου περίληψης \"%s\" στην κατάσταση %s\n"
 
 #, fuzzy, c-format
 msgid "you may not use compression algorithm '%s' while in %s mode\n"
 msgstr ""
-"áðáãïñåýåôå ç ÷ñÞóç ôïõ áëãüñéèìïõ óõìðßåóçò \"%s\" óôçí êáôÜóôáóç %s\n"
+"απαγορεύετε η χρήση του αλγόριθμου συμπίεσης \"%s\" στην κατάσταση %s\n"
 
 #, c-format
 msgid "failed to initialize the TrustDB: %s\n"
-msgstr "áðïôõ÷ßá áñ÷éêïðïßçóçò ôçò TrustDB: %s\n"
+msgstr "αποτυχία αρχικοποίησης της TrustDB: %s\n"
 
 msgid "WARNING: recipients (-r) given without using public key encryption\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: äþèçêáí ðáñáëÞðôåò (-r) ÷þñéò ÷ñÞóç êñõðôïãñÜöçóçò\n"
-"äçìïóßïõ êëåéäéïý\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: δώθηκαν παραλήπτες (-r) χώρις χρήση κρυπτογράφησης\n"
+"δημοσίου κλειδιού\n"
 
 msgid "--store [filename]"
-msgstr "--store [üíïìá áñ÷åßïõ]"
+msgstr "--store [όνομα αρχείου]"
 
 msgid "--symmetric [filename]"
-msgstr "--symmetric [üíïìá áñ÷åßïõ]"
+msgstr "--symmetric [όνομα αρχείου]"
 
 #, fuzzy, c-format
 msgid "symmetric encryption of '%s' failed: %s\n"
-msgstr "áðïêñõðôïãñÜöçóç áðÝôõ÷å: %s\n"
+msgstr "αποκρυπτογράφηση απέτυχε: %s\n"
 
 msgid "--encrypt [filename]"
-msgstr "--encrypt [üíïìá áñ÷åßïõ]"
+msgstr "--encrypt [όνομα αρχείου]"
 
 #, fuzzy
 msgid "--symmetric --encrypt [filename]"
-msgstr "--sign --encrypt [üíïìá áñ÷åßïõ]"
+msgstr "--sign --encrypt [όνομα αρχείου]"
 
 msgid "you cannot use --symmetric --encrypt with --s2k-mode 0\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "you cannot use --symmetric --encrypt while in %s mode\n"
-msgstr "áðáãïñåýåôå ç ÷ñÞóç ôïõ %s óôçí êáôÜóôáóç %s.\n"
+msgstr "απαγορεύετε η χρήση του %s στην κατάσταση %s.\n"
 
 msgid "--sign [filename]"
-msgstr "--sign [üíïìá áñ÷åßïõ]"
+msgstr "--sign [όνομα αρχείου]"
 
 msgid "--sign --encrypt [filename]"
-msgstr "--sign --encrypt [üíïìá áñ÷åßïõ]"
+msgstr "--sign --encrypt [όνομα αρχείου]"
 
 #, fuzzy
 msgid "--symmetric --sign --encrypt [filename]"
-msgstr "--sign --encrypt [üíïìá áñ÷åßïõ]"
+msgstr "--sign --encrypt [όνομα αρχείου]"
 
 msgid "you cannot use --symmetric --sign --encrypt with --s2k-mode 0\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "you cannot use --symmetric --sign --encrypt while in %s mode\n"
-msgstr "áðáãïñåýåôå ç ÷ñÞóç ôïõ %s óôçí êáôÜóôáóç %s.\n"
+msgstr "απαγορεύετε η χρήση του %s στην κατάσταση %s.\n"
 
 msgid "--sign --symmetric [filename]"
-msgstr "--sign --symmetric [üíïìá áñ÷åßïõ]"
+msgstr "--sign --symmetric [όνομα αρχείου]"
 
 msgid "--clearsign [filename]"
-msgstr "--clearsign [üíïìá áñ÷åßïõ]"
+msgstr "--clearsign [όνομα αρχείου]"
 
 msgid "--decrypt [filename]"
-msgstr "--decrypt [üíïìá áñ÷åßïõ]"
+msgstr "--decrypt [όνομα αρχείου]"
 
 msgid "--sign-key user-id"
 msgstr "--sign-key user-id"
@@ -2487,7 +2496,7 @@ msgid "--lsign-key user-id"
 msgstr "--lsign-key user-id"
 
 msgid "--edit-key user-id [commands]"
-msgstr "--edit-key user-id [åíôïëÝò]"
+msgstr "--edit-key user-id [εντολές]"
 
 #, fuzzy
 msgid "--passwd <user-id>"
@@ -2495,97 +2504,97 @@ msgstr "--sign-key user-id"
 
 #, c-format
 msgid "keyserver send failed: %s\n"
-msgstr "keyserver áðïóôïëÞ áðÝôõ÷å: %s\n"
+msgstr "keyserver αποστολή απέτυχε: %s\n"
 
 #, c-format
 msgid "keyserver receive failed: %s\n"
-msgstr "keyserver ëÞøç áðÝôõ÷å: %s\n"
+msgstr "keyserver λήψη απέτυχε: %s\n"
 
 #, c-format
 msgid "key export failed: %s\n"
-msgstr "åîáãùãÞ êëåéäéïý áðÝôõ÷å: %s\n"
+msgstr "εξαγωγή κλειδιού απέτυχε: %s\n"
 
 #, fuzzy, c-format
 #| msgid "key export failed: %s\n"
 msgid "export as ssh key failed: %s\n"
-msgstr "åîáãùãÞ êëåéäéïý áðÝôõ÷å: %s\n"
+msgstr "εξαγωγή κλειδιού απέτυχε: %s\n"
 
 #, c-format
 msgid "keyserver search failed: %s\n"
-msgstr "keyserver áíáæÞôçóç áðÝôõ÷å: %s\n"
+msgstr "keyserver αναζήτηση απέτυχε: %s\n"
 
 #, c-format
 msgid "keyserver refresh failed: %s\n"
-msgstr "keyserver áíáíÝùóç áðÝôõ÷å: %s\n"
+msgstr "keyserver ανανέωση απέτυχε: %s\n"
 
 #, c-format
 msgid "dearmoring failed: %s\n"
-msgstr "áðïèùñÜêéóç áðÝôõ÷å: %s\n"
+msgstr "αποθωράκιση απέτυχε: %s\n"
 
 #, c-format
 msgid "enarmoring failed: %s\n"
-msgstr "èùñÜêéóç áðÝôõ÷å: %s\n"
+msgstr "θωράκιση απέτυχε: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid hash algorithm `%s'\n"
 msgid "invalid hash algorithm '%s'\n"
-msgstr "ìç Ýãêõñïò áëãüñéèìïò  hash `%s'\n"
+msgstr "μη έγκυρος αλγόριθμος  hash `%s'\n"
 
 #, fuzzy, c-format
 msgid "error parsing key specification '%s': %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, c-format
 msgid "'%s' does not appear to be a valid key ID, fingerprint or keygrip\n"
 msgstr ""
 
 msgid "[filename]"
-msgstr "[üíïìá áñ÷åßïõ]"
+msgstr "[όνομα αρχείου]"
 
 msgid "Go ahead and type your message ...\n"
-msgstr "Ìðïñåßôå ôþñá íá åéóáãÜãåôå ôï ìÞíõìá óáò ...\n"
+msgstr "Μπορείτε τώρα να εισαγάγετε το μήνυμα σας ...\n"
 
 msgid "the given certification policy URL is invalid\n"
-msgstr "ôï URL ðïëéôéêÞò ðéóôïðïéçôéêïý ðïõ äüèçêå äåí åßíáé Ýãêõñï\n"
+msgstr "το URL πολιτικής πιστοποιητικού που δόθηκε δεν είναι έγκυρο\n"
 
 msgid "the given signature policy URL is invalid\n"
-msgstr "ôï URL ðïëéôéêÞò õðïãñáöÞò ðïõ äüèçêå äåí åßíáé Ýãêõñï\n"
+msgstr "το URL πολιτικής υπογραφής που δόθηκε δεν είναι έγκυρο\n"
 
 #, fuzzy
 msgid "the given preferred keyserver URL is invalid\n"
-msgstr "ôï URL ðïëéôéêÞò õðïãñáöÞò ðïõ äüèçêå äåí åßíáé Ýãêõñï\n"
+msgstr "το URL πολιτικής υπογραφής που δόθηκε δεν είναι έγκυρο\n"
 
 #, fuzzy
 msgid "|FILE|take the keys from the keyring FILE"
-msgstr "åîáãùãÞ ôùí êëåéäéþí áðü áõôÞ ôç êëåéäïèÞêç"
+msgstr "εξαγωγή των κλειδιών από αυτή τη κλειδοθήκη"
 
 msgid "make timestamp conflicts only a warning"
-msgstr "ïñéóìüò ôùí óõãêñïýóåùí þñáò (timestamp) ìüíï óáí ðñïåéäïðïßçóç"
+msgstr "ορισμός των συγκρούσεων ώρας (timestamp) μόνο σαν προειδοποίηση"
 
 msgid "|FD|write status info to this FD"
-msgstr "|FD|åããñáöÞ ôùí ðëçñïöïñéþí êáôÜóôáóçò óôï FD"
+msgstr "|FD|εγγραφή των πληροφοριών κατάστασης στο FD"
 
 msgid "|ALGO|reject signatures made with ALGO"
 msgstr ""
 
 msgid "Usage: gpgv [options] [files] (-h for help)"
-msgstr "×ñÞóç: gpgv [åðéëïãÝò] [áñ÷åßá] (-h ãéá âïÞèåéá)"
+msgstr "Χρήση: gpgv [επιλογές] [αρχεία] (-h για βοήθεια)"
 
 #, fuzzy
 msgid ""
 "Syntax: gpgv [options] [files]\n"
 "Check signatures against known trusted keys\n"
 msgstr ""
-"Óýíôáîç: gpg [åðéëïãÝò] [áñ÷åßá]\n"
-"¸ëåã÷ïò õðïãñáöþí óå óýãêñéóç ìå ãíùóôÜ åìðéóôåõìÝíá êëåéäéÜ\n"
+"Σύνταξη: gpg [επιλογές] [αρχεία]\n"
+"Έλεγχος υπογραφών σε σύγκριση με γνωστά εμπιστευμένα κλειδιά\n"
 
 msgid "No help available"
-msgstr "Äåí õðÜñ÷åé äéáèÝóéìç âïÞèåéá"
+msgstr "Δεν υπάρχει διαθέσιμη βοήθεια"
 
 #, fuzzy, c-format
 #| msgid "No help available for `%s'"
 msgid "No help available for '%s'"
-msgstr "Äåí õðÜñ÷åé äéáèÝóéìç âïÞèåéá ãéá `%s'"
+msgstr "Δεν υπάρχει διαθέσιμη βοήθεια για `%s'"
 
 msgid "import signatures that are marked as local-only"
 msgstr ""
@@ -2595,22 +2604,22 @@ msgstr ""
 
 #, fuzzy
 msgid "do not clear the ownertrust values during import"
-msgstr "áíáíÝùóç ôçò âÜóçò äåäïìÝíùí åìðéóôïóýíçò"
+msgstr "ανανέωση της βάσης δεδομένων εμπιστοσύνης"
 
 #, fuzzy
 msgid "do not update the trustdb after import"
-msgstr "áíáíÝùóç ôçò âÜóçò äåäïìÝíùí åìðéóôïóýíçò"
+msgstr "ανανέωση της βάσης δεδομένων εμπιστοσύνης"
 
 #, fuzzy
 msgid "show key during import"
-msgstr "áðåéêüíéóç ôïõ fingerprint"
+msgstr "απεικόνιση του fingerprint"
 
 msgid "only accept updates to existing keys"
 msgstr ""
 
 #, fuzzy
 msgid "remove unusable parts from key after import"
-msgstr "ìç ÷ñçóéìïðïéÞóéìï ìõóôéêü êëåéäß"
+msgstr "μη χρησιμοποιήσιμο μυστικό κλειδί"
 
 msgid "remove as much as possible from key after import"
 msgstr ""
@@ -2620,76 +2629,76 @@ msgstr ""
 
 #, c-format
 msgid "skipping block of type %d\n"
-msgstr "ðáñÜëåéøç ôìÞìáôïò ôïõ ôýðïõ %d\n"
+msgstr "παράλειψη τμήματος του τύπου %d\n"
 
 #, fuzzy, c-format
 msgid "%lu keys processed so far\n"
-msgstr "%lu êëåéäéÜ Ý÷ïõí ìÝ÷ñé ôþñá åðåîåñãáóôåß\n"
+msgstr "%lu κλειδιά έχουν μέχρι τώρα επεξεργαστεί\n"
 
 #, c-format
 msgid "Total number processed: %lu\n"
-msgstr "Óõíïëéêüò áñéèìüò ðïõ åðåîåñãÜóôçêáí: %lu\n"
+msgstr "Συνολικός αριθμός που επεξεργάστηκαν: %lu\n"
 
 #, fuzzy, c-format
 #| msgid "      skipped new keys: %lu\n"
 msgid "    skipped PGP-2 keys: %lu\n"
-msgstr "      íÝá êëåéäéÜ ðïõ ðáñáëåßöèçêáí: %lu\n"
+msgstr "      νέα κλειδιά που παραλείφθηκαν: %lu\n"
 
 #, c-format
 msgid "      skipped new keys: %lu\n"
-msgstr "      íÝá êëåéäéÜ ðïõ ðáñáëåßöèçêáí: %lu\n"
+msgstr "      νέα κλειδιά που παραλείφθηκαν: %lu\n"
 
 #, c-format
 msgid "          w/o user IDs: %lu\n"
-msgstr "          ÷ùñßò user ID: %lu\n"
+msgstr "          χωρίς user ID: %lu\n"
 
 #, c-format
 msgid "              imported: %lu"
-msgstr "              åéóá÷èÝíôá: %lu"
+msgstr "              εισαχθέντα: %lu"
 
 #, c-format
 msgid "             unchanged: %lu\n"
-msgstr "             áìåôÜâëçôá: %lu\n"
+msgstr "             αμετάβλητα: %lu\n"
 
 #, c-format
 msgid "          new user IDs: %lu\n"
-msgstr "          íÝá user ID: %lu\n"
+msgstr "          νέα user ID: %lu\n"
 
 #, c-format
 msgid "           new subkeys: %lu\n"
-msgstr "           íÝá õðïêëåéäéÜ: %lu\n"
+msgstr "           νέα υποκλειδιά: %lu\n"
 
 #, c-format
 msgid "        new signatures: %lu\n"
-msgstr "        íÝåò õðïãñáöÝò: %lu\n"
+msgstr "        νέες υπογραφές: %lu\n"
 
 #, c-format
 msgid "   new key revocations: %lu\n"
-msgstr "   íÝåò áíáêëÞóåéò êëåéäéþí: %lu\n"
+msgstr "   νέες ανακλήσεις κλειδιών: %lu\n"
 
 #, c-format
 msgid "      secret keys read: %lu\n"
-msgstr "      áíáãíùóìÝíá ìõóôéêÜ êëåéäéÜ: %lu\n"
+msgstr "      αναγνωσμένα μυστικά κλειδιά: %lu\n"
 
 #, c-format
 msgid "  secret keys imported: %lu\n"
-msgstr "  åéóá÷èÝíôá ìõóôéêÜ êëåéäéÜ: %lu\n"
+msgstr "  εισαχθέντα μυστικά κλειδιά: %lu\n"
 
 #, c-format
 msgid " secret keys unchanged: %lu\n"
-msgstr " áìåôÜâëçôá ìõóôéêÜ êëåéäéÜ: %lu\n"
+msgstr " αμετάβλητα μυστικά κλειδιά: %lu\n"
 
 #, c-format
 msgid "          not imported: %lu\n"
-msgstr "          ìç  åéóá÷èÝíôá: %lu\n"
+msgstr "          μη  εισαχθέντα: %lu\n"
 
 #, fuzzy, c-format
 msgid "    signatures cleaned: %lu\n"
-msgstr "        íÝåò õðïãñáöÝò: %lu\n"
+msgstr "        νέες υπογραφές: %lu\n"
 
 #, fuzzy, c-format
 msgid "      user IDs cleaned: %lu\n"
-msgstr "      áíáãíùóìÝíá ìõóôéêÜ êëåéäéÜ: %lu\n"
+msgstr "      αναγνωσμένα μυστικά κλειδιά: %lu\n"
 
 #, c-format
 msgid ""
@@ -2703,7 +2712,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "         \"%s\": preference for digest algorithm %s\n"
-msgstr "%s õðïãñáöÞ, áëãüñéèìïò ðåñßëçøçò %s\n"
+msgstr "%s υπογραφή, αλγόριθμος περίληψης %s\n"
 
 #, c-format
 msgid "         \"%s\": preference for compression algorithm %s\n"
@@ -2721,131 +2730,131 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "key %s: no user ID\n"
-msgstr "êëåéäß %08lX: äåí õðÜñ÷åé áõôü ôï user ID\n"
+msgstr "κλειδί %08lX: δεν υπάρχει αυτό το user ID\n"
 
 #, fuzzy, c-format
 msgid "key %s: %s\n"
-msgstr "ðáñáëåßöèçêå `%s': %s\n"
+msgstr "παραλείφθηκε `%s': %s\n"
 
 msgid "rejected by import screener"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "key %s: PKS subkey corruption repaired\n"
-msgstr "êëåéäß %08lX: åðéäéüñèùóç öèáñìÝíïõ õðïêëåéäéïý HKP\n"
+msgstr "κλειδί %08lX: επιδιόρθωση φθαρμένου υποκλειδιού HKP\n"
 
 #, fuzzy, c-format
 msgid "key %s: accepted non self-signed user ID \"%s\"\n"
-msgstr "êëåéäß %08lX: äåêôü ìç éäéï-õðïãåãñáììÝíï user ID '%s'\n"
+msgstr "κλειδί %08lX: δεκτό μη ιδιο-υπογεγραμμένο user ID '%s'\n"
 
 #, fuzzy, c-format
 msgid "key %s: no valid user IDs\n"
-msgstr "êëåéäß %08lX: äåí Ý÷åé Ýãêõñá user ID\n"
+msgstr "κλειδί %08lX: δεν έχει έγκυρα user ID\n"
 
 msgid "this may be caused by a missing self-signature\n"
-msgstr "áõôü ìðïñåß íá óõíÝâåé áðü ìéá áðïýóá éäéïûðïãñáöÞ\n"
+msgstr "αυτό μπορεί να συνέβει από μια απούσα ιδιοϋπογραφή\n"
 
 #, fuzzy, c-format
 msgid "key %s: public key not found: %s\n"
-msgstr "êëåéäß %08lX: ìõóôéêü êëåéäß ðïõ äå âñÝèçêå: %s\n"
+msgstr "κλειδί %08lX: μυστικό κλειδί που δε βρέθηκε: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: new key - skipped\n"
-msgstr "êëåéäß %08lX:  íÝï êëåéäß - ðáñáëåßöèçêå\n"
+msgstr "κλειδί %08lX:  νέο κλειδί - παραλείφθηκε\n"
 
 #, c-format
 msgid "no writable keyring found: %s\n"
-msgstr "äåí âñåèçêå åããñÜøéìç êëåéäïèÞêç: %s\n"
+msgstr "δεν βρεθηκε εγγράψιμη κλειδοθήκη: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing keyring `%s': %s\n"
 msgid "error writing keyring '%s': %s\n"
-msgstr "áäõíáìßá åããñáöÞò ôçò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία εγγραφής της κλειδοθήκης `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: public key \"%s\" imported\n"
-msgstr "êëåéäß %08lX: ôï äçìüóéï êëåéäß \"%s\" Ý÷åé åéóá÷èåß\n"
+msgstr "κλειδί %08lX: το δημόσιο κλειδί \"%s\" έχει εισαχθεί\n"
 
 #, fuzzy, c-format
 msgid "key %s: doesn't match our copy\n"
-msgstr "êëåéäß %08lX: äåí ôáéñéÜæåé ìå ôï áíôßãñáöï ìáò\n"
+msgstr "κλειδί %08lX: δεν ταιριάζει με το αντίγραφο μας\n"
 
 #, fuzzy, c-format
 msgid "key %s: can't locate original keyblock: %s\n"
-msgstr "êëåéäß %08lX: áäõíáìßá åíôïðéóìïý ôïõ áñ÷éêïý ôìÞìáôïò êëåéäéïý: %s\n"
+msgstr "κλειδί %08lX: αδυναμία εντοπισμού του αρχικού τμήματος κλειδιού: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: can't read original keyblock: %s\n"
-msgstr "êëåéäß %08lX: áäõíáìßá áíÜãíùóçò ôïõ áñ÷éêïý ôìÞìáôïò êëåéäéïý: %s\n"
+msgstr "κλειδί %08lX: αδυναμία ανάγνωσης του αρχικού τμήματος κλειδιού: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" 1 new user ID\n"
-msgstr "êëåéäß %08lX: \"%s\" 1 íÝï user ID\n"
+msgstr "κλειδί %08lX: \"%s\" 1 νέο user ID\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d new user IDs\n"
-msgstr "êëåéäß %08lX: \"%s\" %d íÝá user ID\n"
+msgstr "κλειδί %08lX: \"%s\" %d νέα user ID\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" 1 new signature\n"
-msgstr "êëåéäß %08lX: \"%s\" 1 íÝá õðïãñáöÞ\n"
+msgstr "κλειδί %08lX: \"%s\" 1 νέα υπογραφή\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d new signatures\n"
-msgstr "êëåéäß %08lX: \"%s\" %d íÝåò õðïãñáöÝò\n"
+msgstr "κλειδί %08lX: \"%s\" %d νέες υπογραφές\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" 1 new subkey\n"
-msgstr "êëåéäß %08lX: \"%s\" 1 íÝï õðïêëåéäß\n"
+msgstr "κλειδί %08lX: \"%s\" 1 νέο υποκλειδί\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d new subkeys\n"
-msgstr "êëåéäß %08lX: \"%s\" %d íÝá õðïêëåéäéÜ\n"
+msgstr "κλειδί %08lX: \"%s\" %d νέα υποκλειδιά\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d signature cleaned\n"
-msgstr "êëåéäß %08lX: \"%s\" %d íÝåò õðïãñáöÝò\n"
+msgstr "κλειδί %08lX: \"%s\" %d νέες υπογραφές\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d signatures cleaned\n"
-msgstr "êëåéäß %08lX: \"%s\" %d íÝåò õðïãñáöÝò\n"
+msgstr "κλειδί %08lX: \"%s\" %d νέες υπογραφές\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d user ID cleaned\n"
-msgstr "êëåéäß %08lX: \"%s\" %d íÝá user ID\n"
+msgstr "κλειδί %08lX: \"%s\" %d νέα user ID\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d user IDs cleaned\n"
-msgstr "êëåéäß %08lX: \"%s\" %d íÝá user ID\n"
+msgstr "κλειδί %08lX: \"%s\" %d νέα user ID\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" not changed\n"
-msgstr "êëåéäß %08lX: \"%s\" áìåôÜâëçôï\n"
+msgstr "κλειδί %08lX: \"%s\" αμετάβλητο\n"
 
 #, fuzzy, c-format
 msgid "key %s: secret key imported\n"
-msgstr "êëåéäß %08lX: ìõóôéêü êëåéäß åéóÞ÷èçêå\n"
+msgstr "κλειδί %08lX: μυστικό κλειδί εισήχθηκε\n"
 
 #, fuzzy, c-format
 #| msgid "skipped: secret key already present\n"
 msgid "key %s: secret key already exists\n"
-msgstr "ðáñáëåßöèçêå: ìõóôéêü êëåéäß Þäç ðáñþí\n"
+msgstr "παραλείφθηκε: μυστικό κλειδί ήδη παρών\n"
 
 #, fuzzy, c-format
 msgid "key %s: error sending to agent: %s\n"
-msgstr "óöÜëìá óôç áðïóôïëÞ ðñïò ôï `%s': %s\n"
+msgstr "σφάλμα στη αποστολή προς το `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "secret key %s: %s\n"
-msgstr "ôï ìõóôéêü êëåéäß `%s' äå âñÝèçêå: %s\n"
+msgstr "το μυστικό κλειδί `%s' δε βρέθηκε: %s\n"
 
 #, fuzzy
 msgid "importing secret keys not allowed\n"
-msgstr "åããñáöÞ ôïõ ìõóôéêïý êëåéäéïý óôï `%s'\n"
+msgstr "εγγραφή του μυστικού κλειδιού στο `%s'\n"
 
 #, fuzzy, c-format
 msgid "key %s: secret key with invalid cipher %d - skipped\n"
-msgstr "êëåéäß %08lX: ìõóôéêü êëåéäß ìå Üêõñï êñõðôáëã. %d - ðáñáëåßöèçêå\n"
+msgstr "κλειδί %08lX: μυστικό κλειδί με άκυρο κρυπταλγ. %d - παραλείφθηκε\n"
 
 #. TRANSLATORS: For smartcard, each private key on
 #. host has a reference (stub) to a smartcard and
@@ -2864,195 +2873,199 @@ msgstr ""
 #, fuzzy, c-format
 msgid "key %s: no public key - can't apply revocation certificate\n"
 msgstr ""
-"êëåéäß %08lX: ü÷é äçìüóéï êëåéäß - áäõíáìßá åöáñìïãÞò ðéóôïðïéçôéêïý "
-"áíÜêëçóçò\n"
+"κλειδί %08lX: όχι δημόσιο κλειδί - αδυναμία εφαρμογής πιστοποιητικού "
+"ανάκλησης\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid revocation certificate: %s - rejected\n"
-msgstr "êëåéäß %08lX: ìç Ýãêõñï ðéóôïðïéçôéêü áíÜêëçóçò: %s - áðüññéøç\n"
+msgstr "κλειδί %08lX: μη έγκυρο πιστοποιητικό ανάκλησης: %s - απόρριψη\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" revocation certificate imported\n"
-msgstr "êëåéäß %08lX: \"%s\" ðéóôïðïéçôéêü áíÜêëçóçò åéóÞ÷èçêå\n"
+msgstr "κλειδί %08lX: \"%s\" πιστοποιητικό ανάκλησης εισήχθηκε\n"
 
 #, fuzzy, c-format
 msgid "key %s: no user ID for signature\n"
-msgstr "êëåéäß %08lX: äåí õðÜñ÷åé user ID ãéá ôçí õðïãñáöÞ\n"
+msgstr "κλειδί %08lX: δεν υπάρχει user ID για την υπογραφή\n"
 
 #, fuzzy, c-format
 msgid "key %s: unsupported public key algorithm on user ID \"%s\"\n"
 msgstr ""
-"êëåéäß %08lX: ìç õðïóôçñéæüìåíïò áëãüñéèìïò äçìïóßïõ êëåéäéïý óôï user id "
+"κλειδί %08lX: μη υποστηριζόμενος αλγόριθμος δημοσίου κλειδιού στο user id "
 "\"%s\"\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid self-signature on user ID \"%s\"\n"
-msgstr "êëåéäß %08lX: ìç Ýãêõñç éäéï-õðïãñáöÞ óôï user id \"%s\"\n"
+msgstr "κλειδί %08lX: μη έγκυρη ιδιο-υπογραφή στο user id \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "key %s: unsupported public key algorithm\n"
-msgstr "êëåéäß %08lX: ìç õðïóôçñéæüìåíïò áëãüñéèìïò äçìïóßïõ êëåéäéïý\n"
+msgstr "κλειδί %08lX: μη υποστηριζόμενος αλγόριθμος δημοσίου κλειδιού\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid direct key signature\n"
-msgstr "êëåéäß %08lX: Üìåóç õðïãñáöÞ êëåéäéïý ðñïóôÝèçêå\n"
+msgstr "κλειδί %08lX: άμεση υπογραφή κλειδιού προστέθηκε\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for key binding\n"
-msgstr "êëåéäß %08lX: äåí õðÜñ÷åé õðïêëåéäß ãéá ôç äÝóìåõóç êëåéäéïý\n"
+msgstr "κλειδί %08lX: δεν υπάρχει υποκλειδί για τη δέσμευση κλειδιού\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid subkey binding\n"
-msgstr "êëåéäß %08lX: ìç Ýãêõñç äÝóìåõóç õðïêëåéäéïý\n"
+msgstr "κλειδί %08lX: μη έγκυρη δέσμευση υποκλειδιού\n"
 
 #, fuzzy, c-format
 msgid "key %s: removed multiple subkey binding\n"
-msgstr "êëåéäß %08lX: áöáéñÝèçêå ç äÝóìåõóç ðïëëáðëïý õðïêëåéäéïý\n"
+msgstr "κλειδί %08lX: αφαιρέθηκε η δέσμευση πολλαπλού υποκλειδιού\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for key revocation\n"
-msgstr "êëåéäß %08lX: äåí õðÜñ÷åé õðïêëåéäß ãéá ôçí áíÜêëçóç êëåéäéïý\n"
+msgstr "κλειδί %08lX: δεν υπάρχει υποκλειδί για την ανάκληση κλειδιού\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid subkey revocation\n"
-msgstr "êëåéäß %08lX: ìç Ýãêõñç áíÜêëçóç õðïêëåéäéïý\n"
+msgstr "κλειδί %08lX: μη έγκυρη ανάκληση υποκλειδιού\n"
 
 #, fuzzy, c-format
 msgid "key %s: removed multiple subkey revocation\n"
-msgstr "êëåéäß %08lX: áöáéñÝèçêå ç áíÜêëçóç ðïëëáðëïý õðïêëåéäéïý\n"
+msgstr "κλειδί %08lX: αφαιρέθηκε η ανάκληση πολλαπλού υποκλειδιού\n"
 
 #, fuzzy, c-format
 msgid "key %s: skipped user ID \"%s\"\n"
-msgstr "êëåéäß %08lX: ðáñáëåßöèçêå user ID '"
+msgstr "κλειδί %08lX: παραλείφθηκε user ID '"
 
 #, fuzzy, c-format
 msgid "key %s: skipped subkey\n"
-msgstr "êëåéäß %08lX: ðáñáëåßöèçêå õðïêëåéäß\n"
+msgstr "κλειδί %08lX: παραλείφθηκε υποκλειδί\n"
 
 #, fuzzy, c-format
 msgid "key %s: non exportable signature (class 0x%02X) - skipped\n"
-msgstr "êëåéäß %08lX: ìç åîáãüìåíç õðïãñáöÞ (êëÜóç %02x) - ðáñáëåßöèçêå\n"
+msgstr "κλειδί %08lX: μη εξαγόμενη υπογραφή (κλάση %02x) - παραλείφθηκε\n"
 
 #, fuzzy, c-format
 msgid "key %s: revocation certificate at wrong place - skipped\n"
 msgstr ""
-"êëåéäß %08lX: ôï ðéóôïðïéçôéêü áíÜêëçóçò óå ëÜèïò óçìåßï - ðáñáëåßöèçêå\n"
+"κλειδί %08lX: το πιστοποιητικό ανάκλησης σε λάθος σημείο - παραλείφθηκε\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid revocation certificate: %s - skipped\n"
-msgstr "êëåéäß %08lX: ìç Ýãêõñï ðéóôïðïéçôéêü áíÜêëçóçò: %s - ðáñáëåßöèçêå\n"
+msgstr "κλειδί %08lX: μη έγκυρο πιστοποιητικό ανάκλησης: %s - παραλείφθηκε\n"
 
 #, fuzzy, c-format
 msgid "key %s: subkey signature in wrong place - skipped\n"
 msgstr ""
-"êëåéäß %08lX: ç õðïãñáöÞ ôïõ õðïêëåéäéïý óå ëÜèïò óçìåßï - ðáñáëåßöèçêå\n"
+"κλειδί %08lX: η υπογραφή του υποκλειδιού σε λάθος σημείο - παραλείφθηκε\n"
 
 #, fuzzy, c-format
 msgid "key %s: unexpected signature class (0x%02X) - skipped\n"
-msgstr "êëåéäß %08lX: ìç áíáìåíþìåíç êëÜóç õðïãñáöÞò (0x%02x) - ðáñáëåßöèçêå\n"
+msgstr "κλειδί %08lX: μη αναμενώμενη κλάση υπογραφής (0x%02x) - παραλείφθηκε\n"
 
 #, fuzzy, c-format
 msgid "key %s: duplicated user ID detected - merged\n"
-msgstr "êëåéäß %08lX: åíôïðßóôçêå äéðëü user ID - åíþèçêáí\n"
+msgstr "κλειδί %08lX: εντοπίστηκε διπλό user ID - ενώθηκαν\n"
 
 #, fuzzy, c-format
 msgid "WARNING: key %s may be revoked: fetching revocation key %s\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: êëåéäß %08lX ìðïñåß íá áíáêëçèåß: ëÞøç êëåéäéïý áíÜêëçóçò "
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: κλειδί %08lX μπορεί να ανακληθεί: λήψη κλειδιού ανάκλησης "
 "%08lX\n"
 
 #, fuzzy, c-format
 msgid "WARNING: key %s may be revoked: revocation key %s not present.\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: êëåéäß %08lX ìðïñåß íá áíáêëçèåß: ôï êëåéäß áíÜêëçóçò %08lX\n"
-"äåí åßíáé ðáñþí.\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: κλειδί %08lX μπορεί να ανακληθεί: το κλειδί ανάκλησης %08lX\n"
+"δεν είναι παρών.\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" revocation certificate added\n"
-msgstr "êëåéäß %08lX: \"%s\" ðéóôïðïéçôéêü áíÜêëçóçò ðñïóôÝèçêå\n"
+msgstr "κλειδί %08lX: \"%s\" πιστοποιητικό ανάκλησης προστέθηκε\n"
 
 #, fuzzy, c-format
 msgid "key %s: direct key signature added\n"
-msgstr "êëåéäß %08lX: Üìåóç õðïãñáöÞ êëåéäéïý ðñïóôÝèçêå\n"
+msgstr "κλειδί %08lX: άμεση υπογραφή κλειδιού προστέθηκε\n"
 
 #, fuzzy, c-format
 msgid "error creating keybox '%s': %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò ôçò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία δημιουργίας της κλειδοθήκης `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
 msgid "error creating keyring '%s': %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò ôçò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία δημιουργίας της κλειδοθήκης `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "keybox '%s' created\n"
-msgstr "êëåéäïèÞêç `%s' äçìéïõñãÞèçêå\n"
+msgstr "κλειδοθήκη `%s' δημιουργήθηκε\n"
 
 #, fuzzy, c-format
 #| msgid "keyring `%s' created\n"
 msgid "keyring '%s' created\n"
-msgstr "êëåéäïèÞêç `%s' äçìéïõñãÞèçêå\n"
+msgstr "κλειδοθήκη `%s' δημιουργήθηκε\n"
 
 #, fuzzy, c-format
 msgid "keyblock resource '%s': %s\n"
-msgstr "óöÜëìá êáôÜ ôç äçìéïõñãßá ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά τη δημιουργία του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error opening key DB: %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, c-format
 msgid "failed to rebuild keyring cache: %s\n"
-msgstr "áðïôõ÷ßá åðáíáäüìçóçò ôçò cache êëåéäïèÞêçò: %s\n"
+msgstr "αποτυχία επαναδόμησης της cache κλειδοθήκης: %s\n"
 
 msgid "[revocation]"
-msgstr "[áíÜêëçóç]"
+msgstr "[ανάκληση]"
 
 msgid "[self-signature]"
-msgstr "[éäéï-õðïãñáöÞ]"
+msgstr "[ιδιο-υπογραφή]"
+
+#, fuzzy, c-format
+msgid "error allocating memory: %s\n"
+msgstr "αδυναμία δημιουργίας της κλειδοθήκης `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
-msgstr "êëåéäß %08lX: ìç õðïóôçñéæüìåíïò áëãüñéèìïò äçìïóßïõ êëåéäéïý\n"
+msgstr "κλειδί %08lX: μη υποστηριζόμενος αλγόριθμος δημοσίου κλειδιού\n"
 
 #, fuzzy, c-format
 msgid ""
 "can't check signature with unsupported message-digest algorithm %d: %s.\n"
-msgstr "%s õðïãñáöÞ, áëãüñéèìïò ðåñßëçøçò %s\n"
+msgstr "%s υπογραφή, αλγόριθμος περίληψης %s\n"
 
 #, fuzzy
 msgid " (reordered signatures follow)"
-msgstr "ÊáëÞ õðïãñáöÞ áðü \""
+msgstr "Καλή υπογραφή από \""
 
 #, fuzzy, c-format
 msgid "key %s:\n"
-msgstr "ðáñáëåßöèçêå `%s': %s\n"
+msgstr "παραλείφθηκε `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "%d duplicate signature removed\n"
 msgid_plural "%d duplicate signatures removed\n"
-msgstr[0] "Ôï user ID \"%s\" áíáêáëåßôå."
-msgstr[1] "Ôï user ID \"%s\" áíáêáëåßôå."
+msgstr[0] "Το user ID \"%s\" ανακαλείτε."
+msgstr[1] "Το user ID \"%s\" ανακαλείτε."
 
 #, fuzzy, c-format
 #| msgid "1 signature not checked due to a missing key\n"
 msgid "%d signature not checked due to a missing key\n"
 msgid_plural "%d signatures not checked due to missing keys\n"
-msgstr[0] "1 õðïãñáöÞ äåí åëÝã÷èçêå ëüãù ÷áìÝíïõ êëåéäéïý\n"
-msgstr[1] "1 õðïãñáöÞ äåí åëÝã÷èçêå ëüãù ÷áìÝíïõ êëåéäéïý\n"
+msgstr[0] "1 υπογραφή δεν ελέγχθηκε λόγω χαμένου κλειδιού\n"
+msgstr[1] "1 υπογραφή δεν ελέγχθηκε λόγω χαμένου κλειδιού\n"
 
 #, fuzzy, c-format
 #| msgid "%d bad signatures\n"
 msgid "%d bad signature\n"
 msgid_plural "%d bad signatures\n"
-msgstr[0] "%d êáêÝò õðïãñáöÝò\n"
-msgstr[1] "%d êáêÝò õðïãñáöÝò\n"
+msgstr[0] "%d κακές υπογραφές\n"
+msgstr[1] "%d κακές υπογραφές\n"
 
 #, fuzzy, c-format
 msgid "%d signature reordered\n"
 msgid_plural "%d signatures reordered\n"
-msgstr[0] "ÊáëÞ õðïãñáöÞ áðü \""
-msgstr[1] "ÊáëÞ õðïãñáöÞ áðü \""
+msgstr[0] "Καλή υπογραφή από \""
+msgstr[1] "Καλή υπογραφή από \""
 
 #, c-format
 msgid ""
@@ -3067,18 +3080,18 @@ msgid ""
 "(by looking at passports, checking fingerprints from different sources, "
 "etc.)\n"
 msgstr ""
-"Ðáñáêáëþ áðïöáóßóôå ðüóï êáëÜ åìðéóôåýåóôå áõôü ôï\n"
-"÷ñÞóôç, þóôå íá ìðïñåß íá åðáëçèåýåé êëåéäéÜ Üëëùí (ìå ôï\n"
-"íá êïéôÜæåé passports êáé fingerprints áðü äéÜöïñåò ðçãÝò...);\n"
+"Παρακαλώ αποφασίστε πόσο καλά εμπιστεύεστε αυτό το\n"
+"χρήστη, ώστε να μπορεί να επαληθεύει κλειδιά άλλων (με το\n"
+"να κοιτάζει passports και fingerprints από διάφορες πηγές...);\n"
 "\n"
 
 #, fuzzy, c-format
 msgid "  %d = I trust marginally\n"
-msgstr " %d = ¸÷ù ìåñéêÞ åìðéóôïóýíç\n"
+msgstr " %d = Έχω μερική εμπιστοσύνη\n"
 
 #, fuzzy, c-format
 msgid "  %d = I trust fully\n"
-msgstr " %d = ¸÷ù ðëÞñç åìðéóôïóýíç\n"
+msgstr " %d = Έχω πλήρη εμπιστοσύνη\n"
 
 msgid ""
 "Please enter the depth of this trust signature.\n"
@@ -3095,183 +3108,183 @@ msgstr ""
 
 #, c-format
 msgid "User ID \"%s\" is revoked."
-msgstr "Ôï user ID \"%s\" áíáêáëåßôå."
+msgstr "Το user ID \"%s\" ανακαλείτε."
 
 msgid "Are you sure you still want to sign it? (y/N) "
-msgstr "Óßãïõñá èÝëåôå áêüìá íá ôï õðïãñÜøåôå; (y/N) "
+msgstr "Σίγουρα θέλετε ακόμα να το υπογράψετε; (y/N) "
 
 msgid "  Unable to sign.\n"
-msgstr "  Áäõíáìßá õðïãñáöÞò.\n"
+msgstr "  Αδυναμία υπογραφής.\n"
 
 #, c-format
 msgid "User ID \"%s\" is expired."
-msgstr "Ôï user ID \"%s\" Ý÷åé Ýëçîå."
+msgstr "Το user ID \"%s\" έχει έληξε."
 
 #, c-format
 msgid "User ID \"%s\" is not self-signed."
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ôï user ID \"%s\" äåí Ý÷åé éäéï-õðïãñáöåß."
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: το user ID \"%s\" δεν έχει ιδιο-υπογραφεί."
 
 #, fuzzy, c-format
 msgid "User ID \"%s\" is signable.  "
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ôï user ID \"%s\" äåí Ý÷åé éäéï-õðïãñáöåß."
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: το user ID \"%s\" δεν έχει ιδιο-υπογραφεί."
 
 #, fuzzy
 msgid "Sign it? (y/N) "
-msgstr "Óßãïõñá íá õðïãñáöåß; "
+msgstr "Σίγουρα να υπογραφεί; "
 
 #, c-format
 msgid ""
 "The self-signature on \"%s\"\n"
 "is a PGP 2.x-style signature.\n"
 msgstr ""
-"Ç éäéï-õðïãñáöÞ óôï \"%s\"\n"
-"åßíáé ìéá õðïãñáöÞ ôýðïõ PGP 2.x.\n"
+"Η ιδιο-υπογραφή στο \"%s\"\n"
+"είναι μια υπογραφή τύπου PGP 2.x.\n"
 
 msgid "Do you want to promote it to an OpenPGP self-signature? (y/N) "
-msgstr "ÈÝëåôå íá ôç ðñïÜãåôå óå ìéá OpenPGP éäéï-õðïãñáöÞ; (y/N) "
+msgstr "Θέλετε να τη προάγετε σε μια OpenPGP ιδιο-υπογραφή; (y/N) "
 
 #, c-format
 msgid ""
 "Your current signature on \"%s\"\n"
 "has expired.\n"
 msgstr ""
-"Ç ðñïõðÜñ÷ïõóá õðïãñáöÞ óáò óôï \"%s\"\n"
-"Ý÷åé ëÞîåé.\n"
+"Η προυπάρχουσα υπογραφή σας στο \"%s\"\n"
+"έχει λήξει.\n"
 
 msgid "Do you want to issue a new signature to replace the expired one? (y/N) "
 msgstr ""
-"ÈÝëåôå íá ïñßóåôå ìéá íÝá õðïãñáöÞ ðñïò áíôéêáôÜóôáóç ôçò ëçãìÝíçò; (y/N) "
+"Θέλετε να ορίσετε μια νέα υπογραφή προς αντικατάσταση της ληγμένης; (y/N) "
 
 #, c-format
 msgid ""
 "Your current signature on \"%s\"\n"
 "is a local signature.\n"
 msgstr ""
-"Ç ðñïõðÜñ÷ïõóá õðïãñáöÞ óáò óôï \"%s\"\n"
-"åßíáé ìéá ôïðéêÞ õðïãñáöÞ.\n"
+"Η προυπάρχουσα υπογραφή σας στο \"%s\"\n"
+"είναι μια τοπική υπογραφή.\n"
 
 msgid "Do you want to promote it to a full exportable signature? (y/N) "
-msgstr "ÈÝëåôå íá ôç ðñïÜãåôå óå ìéá ðëÞñç åîáãþãéìç õðïãñáöÞ; (y/N) "
+msgstr "Θέλετε να τη προάγετε σε μια πλήρη εξαγώγιμη υπογραφή; (y/N) "
 
 #, fuzzy, c-format
 msgid "\"%s\" was already locally signed by key %s\n"
-msgstr "\"%s\" Þäç õðïãñÜöèçêå áðü ôï êëåéäß %08lX\n"
+msgstr "\"%s\" ήδη υπογράφθηκε από το κλειδί %08lX\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" was already signed by key %s\n"
-msgstr "\"%s\" Þäç õðïãñÜöèçêå áðü ôï êëåéäß %08lX\n"
+msgstr "\"%s\" ήδη υπογράφθηκε από το κλειδί %08lX\n"
 
 msgid "Do you want to sign it again anyway? (y/N) "
-msgstr "Óßãïõñá èÝëåôå áêüìá íá ôï îáíáõðïãñÜøåôå; (y/N) "
+msgstr "Σίγουρα θέλετε ακόμα να το ξαναυπογράψετε; (y/N) "
 
 #, fuzzy, c-format
 msgid "Nothing to sign with key %s\n"
-msgstr "Ôßðïôá ãéá íá õðïãñáöåß ìå ôï êëåéäß  %08lX\n"
+msgstr "Τίποτα για να υπογραφεί με το κλειδί  %08lX\n"
 
 msgid "This key has expired!"
-msgstr "Áõôü ôï êëåéäß Ý÷åé ëÞîåé!"
+msgstr "Αυτό το κλειδί έχει λήξει!"
 
 #, c-format
 msgid "This key is due to expire on %s.\n"
-msgstr "Áõôü ôï êëåéäß ðñüêåéôå íá ëÞîåé óôéò %s.\n"
+msgstr "Αυτό το κλειδί πρόκειτε να λήξει στις %s.\n"
 
 msgid "Do you want your signature to expire at the same time? (Y/n) "
-msgstr "ÈÝëåôå ç õðïãáöÞóáò íá ëÞîåé ôáõôü÷ñïíá;  (Y/n) "
+msgstr "Θέλετε η υπογαφήσας να λήξει ταυτόχρονα;  (Y/n) "
 
 msgid ""
 "How carefully have you verified the key you are about to sign actually "
 "belongs\n"
 "to the person named above?  If you don't know what to answer, enter \"0\".\n"
 msgstr ""
-"Åßóôå óßãïõñïé üôé åëÝãîáôå ðñïóåêôéêÜ üôé ôï êëåéäß ðïõ åßóôå Ýôïéìïé íá\n"
-"áíÞêåé ðñÜãìáôé óôï ðñïáíöåñèÝí Üôïìï; ÅÜí äåí îÝñåôå ôé íá áðáíôÞóåôå "
-"ðáôÞóôå\"0\".\n"
+"Είστε σίγουροι ότι ελέγξατε προσεκτικά ότι το κλειδί που είστε έτοιμοι να\n"
+"ανήκει πράγματι στο προανφερθέν άτομο; Εάν δεν ξέρετε τι να απαντήσετε "
+"πατήστε\"0\".\n"
 
 #, c-format
 msgid "   (0) I will not answer.%s\n"
-msgstr "   (0) Äåí áðáíôþ.%s\n"
+msgstr "   (0) Δεν απαντώ.%s\n"
 
 #, c-format
 msgid "   (1) I have not checked at all.%s\n"
-msgstr "   (1) Äåí Ý÷ù åëÝãîåé êáèüëïõ.%s\n"
+msgstr "   (1) Δεν έχω ελέγξει καθόλου.%s\n"
 
 #, c-format
 msgid "   (2) I have done casual checking.%s\n"
-msgstr "   (2) ¸÷ù êÜíåé ôïí óõíÞèç Ýëåã÷ï.%s\n"
+msgstr "   (2) Έχω κάνει τον συνήθη έλεγχο.%s\n"
 
 #, c-format
 msgid "   (3) I have done very careful checking.%s\n"
-msgstr "   (3) ¸÷ù êÜíåé åêôåôáìÝíï Ýëåã÷ï.%s\n"
+msgstr "   (3) Έχω κάνει εκτεταμένο έλεγχο.%s\n"
 
 #, fuzzy
 msgid "Your selection? (enter '?' for more information): "
-msgstr "Ç åðéëïãÞ óáò; (ðëçêôñïëïãÞóôå ? ãéá ðëçñïöïñßåò): "
+msgstr "Η επιλογή σας; (πληκτρολογήστε ? για πληροφορίες): "
 
 #, fuzzy, c-format
 msgid ""
 "Are you sure that you want to sign this key with your\n"
 "key \"%s\" (%s)\n"
 msgstr ""
-"Óßãïõñá èÝëåôå íá õðïãñÜøåôå áõôü ôï êëåéäß\n"
-"ìå ôï êëåéäß óáò: \""
+"Σίγουρα θέλετε να υπογράψετε αυτό το κλειδί\n"
+"με το κλειδί σας: \""
 
 #, fuzzy
 msgid "This will be a self-signature.\n"
 msgstr ""
 "\n"
-"ÁõôÞ èá åßíáé ìéá éäéï-õðïãñáöÞ.\n"
+"Αυτή θα είναι μια ιδιο-υπογραφή.\n"
 
 #, fuzzy
 msgid "WARNING: the signature will not be marked as non-exportable.\n"
 msgstr ""
 "\n"
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ç õðïãñáöÞ äå èá óçìåéùèåß óáí ìç-åîáãþãéìç.\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: η υπογραφή δε θα σημειωθεί σαν μη-εξαγώγιμη.\n"
 
 #, fuzzy
 msgid "WARNING: the signature will not be marked as non-revocable.\n"
 msgstr ""
 "\n"
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: Ç õðïãñáöÞ äå èá óçìåéùèåß óáí ìç-áíáêáëÝóéìç.\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Η υπογραφή δε θα σημειωθεί σαν μη-ανακαλέσιμη.\n"
 "\n"
 
 #, fuzzy
 msgid "The signature will be marked as non-exportable.\n"
 msgstr ""
 "\n"
-"Ç õðïãñáöÞ èá óçìåéùèåß óáí ìç-åîáãþãéìç.\n"
+"Η υπογραφή θα σημειωθεί σαν μη-εξαγώγιμη.\n"
 
 #, fuzzy
 msgid "The signature will be marked as non-revocable.\n"
 msgstr ""
 "\n"
-"Ç õðïãñáöÞ èá óçìåéùèåß óáí ìç-áíáêáëÝóéìç.\n"
+"Η υπογραφή θα σημειωθεί σαν μη-ανακαλέσιμη.\n"
 "\n"
 
 #, fuzzy
 msgid "I have not checked this key at all.\n"
 msgstr ""
 "\n"
-"Äåí Ý÷ù åëÝãîåé êáèüëïõ áõôü ôï êëåéäß.\n"
+"Δεν έχω ελέγξει καθόλου αυτό το κλειδί.\n"
 
 #, fuzzy
 msgid "I have checked this key casually.\n"
 msgstr ""
 "\n"
-"¸÷ù êÜíåé óõíçèéóìÝíï Ýëåã÷ï óå áõôü ôï êëåéäß.\n"
+"Έχω κάνει συνηθισμένο έλεγχο σε αυτό το κλειδί.\n"
 
 #, fuzzy
 msgid "I have checked this key very carefully.\n"
 msgstr ""
 "\n"
-"¸÷ù åëÝãîåé ðïëý ðñïóåêôéêÜ áõôü ôï êëåéäß.\n"
+"Έχω ελέγξει πολύ προσεκτικά αυτό το κλειδί.\n"
 
 #, fuzzy
 msgid "Really sign? (y/N) "
-msgstr "Óßãïõñá íá õðïãñáöåß; "
+msgstr "Σίγουρα να υπογραφεί; "
 
 #, c-format
 msgid "signing failed: %s\n"
-msgstr "ç õðïãñáöÞ áðÝôõ÷å: %s\n"
+msgstr "η υπογραφή απέτυχε: %s\n"
 
 msgid "Key has only stub or on-card key items - no passphrase to change.\n"
 msgstr ""
@@ -3279,56 +3292,56 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error creating passphrase: %s\n"
 msgid "key %s: error changing passphrase: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 msgid "save and quit"
-msgstr "áðïèÞêåõóç êáé Ýîïäïò"
+msgstr "αποθήκευση και έξοδος"
 
 #, fuzzy
 msgid "show key fingerprint"
-msgstr "áðåéêüíéóç ôïõ fingerprint"
+msgstr "απεικόνιση του fingerprint"
 
 #, fuzzy
 msgid "show the keygrip"
-msgstr "Óçìåßùóç õðïãñáöÞò: "
+msgstr "Σημείωση υπογραφής: "
 
 msgid "list key and user IDs"
-msgstr "áðåéêüíéóç ôùí êëåéäéþí êáé ôùí user ID"
+msgstr "απεικόνιση των κλειδιών και των user ID"
 
 msgid "select user ID N"
-msgstr "åðéëïãÞ user ID N"
+msgstr "επιλογή user ID N"
 
 #, fuzzy
 msgid "select subkey N"
-msgstr "åðéëïãÞ user ID N"
+msgstr "επιλογή user ID N"
 
 #, fuzzy
 msgid "check signatures"
-msgstr "áíÜêëçóç õðïãñáöþí"
+msgstr "ανάκληση υπογραφών"
 
 msgid "sign selected user IDs [* see below for related commands]"
 msgstr ""
 
 #, fuzzy
 msgid "sign selected user IDs locally"
-msgstr "õðïãñáöÞ ôïõ êëåéäéïý ôïðéêÜ"
+msgstr "υπογραφή του κλειδιού τοπικά"
 
 #, fuzzy
 msgid "sign selected user IDs with a trust signature"
-msgstr "ÓõìâïõëÞ: ÅðéëÝîôå ôï user ID ãéá õðïãñáöÞ\n"
+msgstr "Συμβουλή: Επιλέξτε το user ID για υπογραφή\n"
 
 msgid "sign selected user IDs with a non-revocable signature"
 msgstr ""
 
 msgid "add a user ID"
-msgstr "ðñïóèÞêç åíüò user ID"
+msgstr "προσθήκη ενός user ID"
 
 msgid "add a photo ID"
-msgstr "ðñïóèÞêç åíüò photo ID"
+msgstr "προσθήκη ενός photo ID"
 
 #, fuzzy
 msgid "delete selected user IDs"
-msgstr "äéáãñáöÞ åíüò user ID"
+msgstr "διαγραφή ενός user ID"
 
 #, fuzzy
 msgid "add a subkey"
@@ -3345,73 +3358,73 @@ msgstr ""
 
 #, fuzzy
 msgid "delete selected subkeys"
-msgstr "äéáãñáöÞ åíüò äåõôåñåýïíôïò êëåéäéïý"
+msgstr "διαγραφή ενός δευτερεύοντος κλειδιού"
 
 msgid "add a revocation key"
-msgstr "ðñïóèÞêç åíüò êëåéäéïý áíÜêëçóçò"
+msgstr "προσθήκη ενός κλειδιού ανάκλησης"
 
 #, fuzzy
 msgid "delete signatures from the selected user IDs"
 msgstr ""
-"Óßãïõñá èÝëåôå íá áíáíåùèïýí ïé ðñïåðéëïãÝò ãéá ôï åðéëåãìÝíï user ID; "
+"Σίγουρα θέλετε να ανανεωθούν οι προεπιλογές για το επιλεγμένο user ID; "
 
 #, fuzzy
 msgid "change the expiration date for the key or selected subkeys"
-msgstr "Äåí ìðïñåßôå íá áëëÜîåôå ôçí çìåñïìçíßá ëÞîçò óå Ýíá v3 êëåéäß\n"
+msgstr "Δεν μπορείτε να αλλάξετε την ημερομηνία λήξης σε ένα v3 κλειδί\n"
 
 #, fuzzy
 msgid "flag the selected user ID as primary"
-msgstr "óçìåßùóç ôïõ user ID óáí ðñùôåýùí"
+msgstr "σημείωση του user ID σαν πρωτεύων"
 
 msgid "list preferences (expert)"
-msgstr "áðåéêüíéóç ðñïåðéëïãþí (åéäéêÝò)"
+msgstr "απεικόνιση προεπιλογών (ειδικές)"
 
 msgid "list preferences (verbose)"
-msgstr "áðåéêüíéóç åðéëïãþí (áíáëõôéêÜ)"
+msgstr "απεικόνιση επιλογών (αναλυτικά)"
 
 #, fuzzy
 msgid "set preference list for the selected user IDs"
 msgstr ""
-"Óßãïõñá èÝëåôå íá áíáíåùèïýí ïé ðñïåðéëïãÝò ãéá ôï åðéëåãìÝíï user ID; "
+"Σίγουρα θέλετε να ανανεωθούν οι προεπιλογές για το επιλεγμένο user ID; "
 
 #, fuzzy
 msgid "set the preferred keyserver URL for the selected user IDs"
-msgstr "áäõíáìßá åðåîåñãáóßáò ôïõ URI ôïõ äéáêïìéóç êëåéäéþí\n"
+msgstr "αδυναμία επεξεργασίας του URI του διακομιση κλειδιών\n"
 
 #, fuzzy
 msgid "set a notation for the selected user IDs"
 msgstr ""
-"Óßãïõñá èÝëåôå íá áíáíåùèïýí ïé ðñïåðéëïãÝò ãéá ôï åðéëåãìÝíï user ID; "
+"Σίγουρα θέλετε να ανανεωθούν οι προεπιλογές για το επιλεγμένο user ID; "
 
 msgid "change the passphrase"
-msgstr "áëëáãÞ ôçò öñÜóçò êëåéäß"
+msgstr "αλλαγή της φράσης κλειδί"
 
 msgid "change the ownertrust"
-msgstr "áëëáãÞ ôçò åìðéóôïóýíçò éäéïêôÞôç"
+msgstr "αλλαγή της εμπιστοσύνης ιδιοκτήτη"
 
 #, fuzzy
 msgid "revoke signatures on the selected user IDs"
-msgstr "Óßãïõñá èÝëåôå íá áíáêëçèïýí üëá ôá åðéëåãìÝíá user ID; "
+msgstr "Σίγουρα θέλετε να ανακληθούν όλα τα επιλεγμένα user ID; "
 
 #, fuzzy
 msgid "revoke selected user IDs"
-msgstr "áíÜêëçóç åíüò user ID"
+msgstr "ανάκληση ενός user ID"
 
 #, fuzzy
 msgid "revoke key or selected subkeys"
-msgstr "áíÜêëçóç åíüò äåõôåñåýïíôïò êëåéäéïý"
+msgstr "ανάκληση ενός δευτερεύοντος κλειδιού"
 
 #, fuzzy
 msgid "enable key"
-msgstr "åíåñãïðïéåß Ýíá êëåéäß"
+msgstr "ενεργοποιεί ένα κλειδί"
 
 #, fuzzy
 msgid "disable key"
-msgstr "áðåíåñãïðïéåß Ýíá êëåéäß"
+msgstr "απενεργοποιεί ένα κλειδί"
 
 #, fuzzy
 msgid "show selected photo IDs"
-msgstr "áðåéêüíéóç photo ID"
+msgstr "απεικόνιση photo ID"
 
 msgid "compact unusable user IDs and remove unusable signatures from key"
 msgstr ""
@@ -3420,10 +3433,10 @@ msgid "compact unusable user IDs and remove all signatures from key"
 msgstr ""
 
 msgid "Secret key is available.\n"
-msgstr "Ôï ìõóôéêü êëåéäß åßíáé äéáèÝóéìï.\n"
+msgstr "Το μυστικό κλειδί είναι διαθέσιμο.\n"
 
 msgid "Need the secret key to do this.\n"
-msgstr "Áðáéôåßôáé ôï ìõóôéêü êëåéäß ãéá íá ãßíåé áõôü.\n"
+msgstr "Απαιτείται το μυστικό κλειδί για να γίνει αυτό.\n"
 
 msgid ""
 "* The 'sign' command may be prefixed with an 'l' for local signatures "
@@ -3433,160 +3446,160 @@ msgid ""
 msgstr ""
 
 msgid "Key is revoked."
-msgstr "Ôï êëåéäß áíáêëÞèçêå."
+msgstr "Το κλειδί ανακλήθηκε."
 
 #, fuzzy
 msgid "Really sign all user IDs? (y/N) "
-msgstr "Óßãïõñá íá õðïãñáöïýí üëá ôá user ID; "
+msgstr "Σίγουρα να υπογραφούν όλα τα user ID; "
 
 #, fuzzy
 msgid "Really sign all text user IDs? (y/N) "
-msgstr "Óßãïõñá íá õðïãñáöïýí üëá ôá user ID; "
+msgstr "Σίγουρα να υπογραφούν όλα τα user ID; "
 
 msgid "Hint: Select the user IDs to sign\n"
-msgstr "ÓõìâïõëÞ: ÅðéëÝîôå ôï user ID ãéá õðïãñáöÞ\n"
+msgstr "Συμβουλή: Επιλέξτε το user ID για υπογραφή\n"
 
 #, fuzzy, c-format
 msgid "Unknown signature type '%s'\n"
-msgstr "Üãíùóôç êëÜóç õðïãñáöÞò"
+msgstr "άγνωστη κλάση υπογραφής"
 
 #, c-format
 msgid "This command is not allowed while in %s mode.\n"
-msgstr "ÁõôÞ ç åíôïëÞ áðáãïñåýåôå óå áõôÞ ôçí êáôÜóôáóç %s.\n"
+msgstr "Αυτή η εντολή απαγορεύετε σε αυτή την κατάσταση %s.\n"
 
 msgid "You must select at least one user ID.\n"
-msgstr "ÐñÝðåé íá åðéëÝîåôå ôï ëéãüôåñï Ýíá user ID.\n"
+msgstr "Πρέπει να επιλέξετε το λιγότερο ένα user ID.\n"
 
 #, c-format
 msgid "(Use the '%s' command.)\n"
 msgstr ""
 
 msgid "You can't delete the last user ID!\n"
-msgstr "Äåí ìðïñåßôå íá äéáãñÜøåôå ôï ôåëåõôáßï user ID!\n"
+msgstr "Δεν μπορείτε να διαγράψετε το τελευταίο user ID!\n"
 
 #, fuzzy
 msgid "Really remove all selected user IDs? (y/N) "
-msgstr "Óßãïõñá èÝëåôå íá äéáãñáöïýí üëá ôá åðéëåãìÝíá user ID; "
+msgstr "Σίγουρα θέλετε να διαγραφούν όλα τα επιλεγμένα user ID; "
 
 #, fuzzy
 msgid "Really remove this user ID? (y/N) "
-msgstr "Óßãïõñá èÝëåôå íá äéáãñáöåß áõôü ôï user ID; "
+msgstr "Σίγουρα θέλετε να διαγραφεί αυτό το user ID; "
 
 #. TRANSLATORS: Please take care: This is about
 #. moving the key and not about removing it.
 #, fuzzy
 msgid "Really move the primary key? (y/N) "
-msgstr "Óßãïõñá èÝëåôå íá äéáãñáöåß áõôü ôï user ID; "
+msgstr "Σίγουρα θέλετε να διαγραφεί αυτό το user ID; "
 
 #, fuzzy
 msgid "You must select exactly one key.\n"
-msgstr "ÐñÝðåé íá åðéëÝîåôå ôïõëÜ÷éóôïí Ýíá êëåéäß.\n"
+msgstr "Πρέπει να επιλέξετε τουλάχιστον ένα κλειδί.\n"
 
 msgid "Command expects a filename argument\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "Can't open '%s': %s\n"
-msgstr "áäõíáìßá ðñüóâáóçò óôï `%s': %s\n"
+msgstr "αδυναμία πρόσβασης στο `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "Error reading backup key from '%s': %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò ôçò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία δημιουργίας της κλειδοθήκης `%s': %s\n"
 
 msgid "You must select at least one key.\n"
-msgstr "ÐñÝðåé íá åðéëÝîåôå ôïõëÜ÷éóôïí Ýíá êëåéäß.\n"
+msgstr "Πρέπει να επιλέξετε τουλάχιστον ένα κλειδί.\n"
 
 #, fuzzy
 msgid "Do you really want to delete the selected keys? (y/N) "
-msgstr "Óßãïõñá èÝëåôå íá äéáãñáöïýí ôá åðéëåãìÝíá êëåéäéÜ; "
+msgstr "Σίγουρα θέλετε να διαγραφούν τα επιλεγμένα κλειδιά; "
 
 #, fuzzy
 msgid "Do you really want to delete this key? (y/N) "
-msgstr "Óßãïõñá èÝëåôå íá äéáãñáöåß áõôü ôï êëåéäß; "
+msgstr "Σίγουρα θέλετε να διαγραφεί αυτό το κλειδί; "
 
 #, fuzzy
 msgid "Really revoke all selected user IDs? (y/N) "
-msgstr "Óßãïõñá èÝëåôå íá áíáêëçèïýí üëá ôá åðéëåãìÝíá user ID; "
+msgstr "Σίγουρα θέλετε να ανακληθούν όλα τα επιλεγμένα user ID; "
 
 #, fuzzy
 msgid "Really revoke this user ID? (y/N) "
-msgstr "Óßãïõñá èÝëåôå íá áíáêëçèåß áõôü ôï user ID; "
+msgstr "Σίγουρα θέλετε να ανακληθεί αυτό το user ID; "
 
 #, fuzzy
 msgid "Do you really want to revoke the entire key? (y/N) "
-msgstr "Óßãïõñá èÝëåôå íá áíáêëçèåß áõôü ôï êëåéäß; "
+msgstr "Σίγουρα θέλετε να ανακληθεί αυτό το κλειδί; "
 
 #, fuzzy
 msgid "Do you really want to revoke the selected subkeys? (y/N) "
-msgstr "Óßãïõñá èÝëåôå íá áíáêëçèïýí ôá åðéëåãìÝíá êëåéäéÜ; "
+msgstr "Σίγουρα θέλετε να ανακληθούν τα επιλεγμένα κλειδιά; "
 
 #, fuzzy
 msgid "Do you really want to revoke this subkey? (y/N) "
-msgstr "Óßãïõñá èÝëåôå íá áíáêëçèåß áõôü ôï êëåéäß; "
+msgstr "Σίγουρα θέλετε να ανακληθεί αυτό το κλειδί; "
 
 msgid "Owner trust may not be set while using a user provided trust database\n"
 msgstr ""
 
 #, fuzzy
 msgid "Set preference list to:\n"
-msgstr "ïñéóìüò áðåéêüíéóçò åðéëïãþí"
+msgstr "ορισμός απεικόνισης επιλογών"
 
 #, fuzzy
 msgid "Really update the preferences for the selected user IDs? (y/N) "
 msgstr ""
-"Óßãïõñá èÝëåôå íá áíáíåùèïýí ïé ðñïåðéëïãÝò ãéá ôï åðéëåãìÝíï user ID; "
+"Σίγουρα θέλετε να ανανεωθούν οι προεπιλογές για το επιλεγμένο user ID; "
 
 #, fuzzy
 msgid "Really update the preferences? (y/N) "
-msgstr "Óßãïõñá íá áíáíåùèïýí ïé ðñïåðéëïãÝò;"
+msgstr "Σίγουρα να ανανεωθούν οι προεπιλογές;"
 
 #, fuzzy
 msgid "Save changes? (y/N) "
-msgstr "ÁðïèÞêåõóç ôùí áëëáãþí; "
+msgstr "Αποθήκευση των αλλαγών; "
 
 #, fuzzy
 msgid "Quit without saving? (y/N) "
-msgstr "Ôåñìáôéóìüò ÷ùñßò áðïèÞêåõóç; "
+msgstr "Τερματισμός χωρίς αποθήκευση; "
 
 #, c-format
 msgid "update failed: %s\n"
-msgstr "ç åíçìÝñùóç áðÝôõ÷å: %s\n"
+msgstr "η ενημέρωση απέτυχε: %s\n"
 
 msgid "Key not changed so no update needed.\n"
-msgstr "Ôï êëåéäß äåí Üëëáîå ïðüôå äåí ÷ñåéÜæåôáé åíçìÝñùóç.\n"
+msgstr "Το κλειδί δεν άλλαξε οπότε δεν χρειάζεται ενημέρωση.\n"
 
 #, fuzzy, c-format
 #| msgid "Key generation failed: %s\n"
 msgid "User ID revocation failed: %s\n"
-msgstr "Ç äçìéïõñãßá êëåéäéïý áðÝôõ÷å: %s\n"
+msgstr "Η δημιουργία κλειδιού απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" is not a fingerprint\n"
-msgstr "óöÜëìá: ìç Ýãêõñï áðïôýðùìá\n"
+msgstr "σφάλμα: μη έγκυρο αποτύπωμα\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" is not the primary fingerprint\n"
-msgstr "áðïôõ÷ßá áñ÷éêïðïßçóçò ôçò TrustDB: %s\n"
+msgstr "αποτυχία αρχικοποίησης της TrustDB: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid value\n"
 msgid "Invalid user ID '%s': %s\n"
-msgstr "ìç Ýãêõñç ôéìÞ\n"
+msgstr "μη έγκυρη τιμή\n"
 
 #, fuzzy
 #| msgid "No such user ID.\n"
 msgid "No matching user IDs."
-msgstr "Äåí õðÜñ÷åé áõôü ôï user ID.\n"
+msgstr "Δεν υπάρχει αυτό το user ID.\n"
 
 #, fuzzy
 msgid "Nothing to sign.\n"
-msgstr "Ôßðïôá ãéá íá õðïãñáöåß ìå ôï êëåéäß  %08lX\n"
+msgstr "Τίποτα για να υπογραφεί με το κλειδί  %08lX\n"
 
 msgid "Digest: "
-msgstr "Ðåñßëçøç: "
+msgstr "Περίληψη: "
 
 msgid "Features: "
-msgstr "Äõíáôüôçôå: "
+msgstr "Δυνατότητε: "
 
 msgid "Keyserver no-modify"
 msgstr ""
@@ -3596,67 +3609,67 @@ msgstr ""
 
 #, fuzzy
 msgid "Notations: "
-msgstr "Óçìåßùóç: "
+msgstr "Σημείωση: "
 
 msgid "There are no preferences on a PGP 2.x-style user ID.\n"
-msgstr "Äåí õðÜñ÷ïõí ðñïåðéëïãÝò óå Ýíá user ID ôýðïõ PGP 2.x.\n"
+msgstr "Δεν υπάρχουν προεπιλογές σε ένα user ID τύπου PGP 2.x.\n"
 
 #, fuzzy, c-format
 msgid "The following key was revoked on %s by %s key %s\n"
-msgstr "Áõôü ôï êëåéäß ìðïñåß íá áíáêëçèåß áðü %s êëåéäß "
+msgstr "Αυτό το κλειδί μπορεί να ανακληθεί από %s κλειδί "
 
 #, fuzzy, c-format
 msgid "This key may be revoked by %s key %s"
-msgstr "Áõôü ôï êëåéäß ìðïñåß íá áíáêëçèåß áðü %s êëåéäß "
+msgstr "Αυτό το κλειδί μπορεί να ανακληθεί από %s κλειδί "
 
 #, fuzzy
 msgid "(sensitive)"
-msgstr " (åõáßóèçôï)"
+msgstr " (ευαίσθητο)"
 
 #, fuzzy, c-format
 msgid "created: %s"
-msgstr "áäõíáìßá äçìéïõñãßáò ôïõ %s: %s\n"
+msgstr "αδυναμία δημιουργίας του %s: %s\n"
 
 #, fuzzy, c-format
 msgid "revoked: %s"
-msgstr "[áíáêëçìÝíï]"
+msgstr "[ανακλημένο]"
 
 #, fuzzy, c-format
 msgid "expired: %s"
-msgstr " [ëÞãåé: %s]"
+msgstr " [λήγει: %s]"
 
 #, fuzzy, c-format
 msgid "expires: %s"
-msgstr " [ëÞãåé: %s]"
+msgstr " [λήγει: %s]"
 
 #, fuzzy, c-format
 msgid "usage: %s"
-msgstr " åìðéóôïóýíç: %c/%c"
+msgstr " εμπιστοσύνη: %c/%c"
 
 msgid "card-no: "
 msgstr ""
 
 #, fuzzy, c-format
 msgid "trust: %s"
-msgstr " åìðéóôïóýíç: %c/%c"
+msgstr " εμπιστοσύνη: %c/%c"
 
 #, c-format
 msgid "validity: %s"
 msgstr ""
 
 msgid "This key has been disabled"
-msgstr "Áõôü ôï êëåéäß Ý÷åé áðåíåñãïðïéçèåß"
+msgstr "Αυτό το κλειδί έχει απενεργοποιηθεί"
 
 msgid ""
 "Please note that the shown key validity is not necessarily correct\n"
 "unless you restart the program.\n"
 msgstr ""
-"Ç åããõñüôçôá ôïõ áðåéêïíéæüìåíïõ êëåéäéïý äåí åßíáé áðáñáßôçôá óùóôÞ\n"
-"åêôüò êáé åÜí åðáíáêêéíÞóåôå ôï ðñüãñáììá.\n"
+"Η εγγυρότητα του απεικονιζόμενου κλειδιού δεν είναι απαραίτητα σωστή\n"
+"εκτός και εάν επανακκινήσετε το πρόγραμμα.\n"
 
 #, fuzzy
 msgid "revoked"
-msgstr "[áíáêëçìÝíï]"
+msgstr "[ανακλημένο]"
 
 #, fuzzy
 msgid "expired"
@@ -3666,8 +3679,8 @@ msgid ""
 "WARNING: no user ID has been marked as primary.  This command may\n"
 "              cause a different user ID to become the assumed primary.\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: äåí Ý÷åé óçìåéùèåß ID ÷ñÞóôç óáí ðñùôåýùí.  ÁõôÞ ç åíôïëÞ\n"
-"              ìðïñåß íá êÜíåé Ýíá Üëëï ID ÷ñÞóôç íá ãßíåé ôï ðñùôåýùí.\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: δεν έχει σημειωθεί ID χρήστη σαν πρωτεύων.  Αυτή η εντολή\n"
+"              μπορεί να κάνει ένα άλλο ID χρήστη να γίνει το πρωτεύων.\n"
 
 msgid "WARNING: Your encryption subkey expires soon.\n"
 msgstr ""
@@ -3675,108 +3688,108 @@ msgstr ""
 #, fuzzy
 #| msgid "You can't change the expiration date of a v3 key\n"
 msgid "You may want to change its expiration date too.\n"
-msgstr "Äåí ìðïñåßôå íá áëëÜîåôå ôçí çìåñïìçíßá ëÞîçò óå Ýíá v3 êëåéäß\n"
+msgstr "Δεν μπορείτε να αλλάξετε την ημερομηνία λήξης σε ένα v3 κλειδί\n"
 
 msgid ""
 "WARNING: This is a PGP2-style key.  Adding a photo ID may cause some "
 "versions\n"
 "         of PGP to reject this key.\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: Áõôü Ýéíáé Ýíá êëåéäß ôýðïõ PGP2. Ç ðñïóèÞêç åíüò photo ID\n"
-"               ìðïñåß íá êÜíåé ìåñéêÝò åêäüóåéò PGP íá ôï áðïññßøïõí.\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Αυτό έιναι ένα κλειδί τύπου PGP2. Η προσθήκη ενός photo ID\n"
+"               μπορεί να κάνει μερικές εκδόσεις PGP να το απορρίψουν.\n"
 
 msgid "Are you sure you still want to add it? (y/N) "
-msgstr "Óßãïõñá áêüìá èÝëåôå íá ôï ðñïóèÝóåôå; (y/N) "
+msgstr "Σίγουρα ακόμα θέλετε να το προσθέσετε; (y/N) "
 
 msgid "You may not add a photo ID to a PGP2-style key.\n"
-msgstr "Äåí ìðïñåßôå íá ðñïóèÝóåôå ìéá photo ID óå Ýíá êëåéäß ôýðïõ PGP2.\n"
+msgstr "Δεν μπορείτε να προσθέσετε μια photo ID σε ένα κλειδί τύπου PGP2.\n"
 
 msgid "Such a user ID already exists on this key!\n"
 msgstr ""
 
 msgid "Delete this good signature? (y/N/q)"
-msgstr "ÄéáãñáöÞ áõôÞò ôçò êáëÞò õðïãñáöÞò; (y/N/q)"
+msgstr "Διαγραφή αυτής της καλής υπογραφής; (y/N/q)"
 
 msgid "Delete this invalid signature? (y/N/q)"
-msgstr "ÄéáãñáöÞ áõôÞò ôçò ìç Ýãêõñçò õðïãñáöÞò; (y/N/q)"
+msgstr "Διαγραφή αυτής της μη έγκυρης υπογραφής; (y/N/q)"
 
 msgid "Delete this unknown signature? (y/N/q)"
-msgstr "ÄéáãñáöÞ áõôÞò ôçò Üãíùóôçò õðïãñáöÞò; (y/N/q)"
+msgstr "Διαγραφή αυτής της άγνωστης υπογραφής; (y/N/q)"
 
 msgid "Really delete this self-signature? (y/N)"
-msgstr "Óßãïõñá íá äéáãñáöåß áõôÞ ç éäéï-õðïãñáöÞ; (y/N)"
+msgstr "Σίγουρα να διαγραφεί αυτή η ιδιο-υπογραφή; (y/N)"
 
 #, fuzzy, c-format
 #| msgid "Deleted %d signature.\n"
 msgid "Deleted %d signature.\n"
 msgid_plural "Deleted %d signatures.\n"
-msgstr[0] "ÄéáãñÜöôçêå %d õðïãñáöÞ.\n"
-msgstr[1] "ÄéáãñÜöôçêå %d õðïãñáöÞ.\n"
+msgstr[0] "Διαγράφτηκε %d υπογραφή.\n"
+msgstr[1] "Διαγράφτηκε %d υπογραφή.\n"
 
 msgid "Nothing deleted.\n"
-msgstr "Ôßðïôá äåí äéáãñÜöôçêå.\n"
+msgstr "Τίποτα δεν διαγράφτηκε.\n"
 
 #, fuzzy
 msgid "invalid"
-msgstr "ìç Ýãêõñç èùñÜêéóç"
+msgstr "μη έγκυρη θωράκιση"
 
 #, fuzzy, c-format
 msgid "User ID \"%s\" compacted: %s\n"
-msgstr "Ôï user ID \"%s\" áíáêáëåßôå."
+msgstr "Το user ID \"%s\" ανακαλείτε."
 
 #, fuzzy, c-format
 msgid "User ID \"%s\": %d signature removed\n"
 msgid_plural "User ID \"%s\": %d signatures removed\n"
-msgstr[0] "Ôï user ID \"%s\" áíáêáëåßôå."
-msgstr[1] "Ôï user ID \"%s\" áíáêáëåßôå."
+msgstr[0] "Το user ID \"%s\" ανακαλείτε."
+msgstr[1] "Το user ID \"%s\" ανακαλείτε."
 
 #, fuzzy, c-format
 msgid "User ID \"%s\": already minimized\n"
-msgstr "ôï user ID \"%s\" Ý÷åé Þäç áíáêëçèåß\n"
+msgstr "το user ID \"%s\" έχει ήδη ανακληθεί\n"
 
 #, fuzzy, c-format
 msgid "User ID \"%s\": already clean\n"
-msgstr "ôï user ID \"%s\" Ý÷åé Þäç áíáêëçèåß\n"
+msgstr "το user ID \"%s\" έχει ήδη ανακληθεί\n"
 
 msgid ""
 "WARNING: This is a PGP 2.x-style key.  Adding a designated revoker may "
 "cause\n"
 "         some versions of PGP to reject this key.\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: Áõôü Ýéíáé Ýíá êëåéäß ôýðïõ PGP 2.x. Ç ðñïóèÞêç åíüò\n"
-"               êáèïñéóìÝíïõ áíáêëçôÞ ìðïñåß íá êÜíåé ìåñéêÝò åêäüóåéò PGP\n"
-"               íá ôï áðïññßøïõí.\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Αυτό έιναι ένα κλειδί τύπου PGP 2.x. Η προσθήκη ενός\n"
+"               καθορισμένου ανακλητή μπορεί να κάνει μερικές εκδόσεις PGP\n"
+"               να το απορρίψουν.\n"
 
 msgid "You may not add a designated revoker to a PGP 2.x-style key.\n"
 msgstr ""
-"Äåí ìðïñåßôå íá ðñïóèÝóåôå Ýíá êáèïñéóìÝíï áíáêëçôÞ óå êëåéäß ôýðïõ PGP2.x.\n"
+"Δεν μπορείτε να προσθέσετε ένα καθορισμένο ανακλητή σε κλειδί τύπου PGP2.x.\n"
 
 msgid "Enter the user ID of the designated revoker: "
-msgstr "ÐëçêôñïëïãÞóôå ôï user ID ôïõ äéïñéóìÝíïõ áíáêëçôÞ: "
+msgstr "Πληκτρολογήστε το user ID του διορισμένου ανακλητή: "
 
 msgid "cannot appoint a PGP 2.x style key as a designated revoker\n"
 msgstr ""
-"áäõíáìßá ïñéóìïý åíüò êëåéäéïý ôýðïõ PGP 2.x, óáí äéïñéóìÝíïõ áíáêëçôÞ\n"
+"αδυναμία ορισμού ενός κλειδιού τύπου PGP 2.x, σαν διορισμένου ανακλητή\n"
 
 msgid "you cannot appoint a key as its own designated revoker\n"
 msgstr ""
-"äå ìðïñåßôå íá ïñßóåôå Ýíá êëåéäß óáí ôï äéïñéóìÝíï áíáêëçôÞ ôïõ åáõôïý ôïõ\n"
+"δε μπορείτε να ορίσετε ένα κλειδί σαν το διορισμένο ανακλητή του εαυτού του\n"
 
 #, fuzzy
 msgid "this key has already been designated as a revoker\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: Áõôü ôï êëåéäß Ý÷åé áíáêëçèåß áðü ôïí ïñéóìÝíï áíáêëçôÞ!\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Αυτό το κλειδί έχει ανακληθεί από τον ορισμένο ανακλητή!\n"
 
 msgid "WARNING: appointing a key as a designated revoker cannot be undone!\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: åÜí ïñßóåôå Ýíá êëåéäß óáí äéïñéóìÝíï áíáêëçôÞ äåí ìðïñåß íá "
-"åðáíÝëèåé!\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: εάν ορίσετε ένα κλειδί σαν διορισμένο ανακλητή δεν μπορεί να "
+"επανέλθει!\n"
 
 #, fuzzy
 msgid ""
 "Are you sure you want to appoint this key as a designated revoker? (y/N) "
 msgstr ""
-"Åßóôå óßãïõñïé üôé èÝëåôå íá ïñßóåôå Ýíá êëåéäß óáí äéïñéóìÝíï áíáêëçôÞ; (y/"
+"Είστε σίγουροι ότι θέλετε να ορίσετε ένα κλειδί σαν διορισμένο ανακλητή; (y/"
 "N): "
 
 #, fuzzy
@@ -3784,70 +3797,70 @@ msgid ""
 "Are you sure you want to change the expiration time for multiple subkeys? (y/"
 "N) "
 msgstr ""
-"Åßóôå óßãïõñïé üôé èÝëåôå íá ïñßóåôå Ýíá êëåéäß óáí äéïñéóìÝíï áíáêëçôÞ; (y/"
+"Είστε σίγουροι ότι θέλετε να ορίσετε ένα κλειδί σαν διορισμένο ανακλητή; (y/"
 "N): "
 
 #, fuzzy
 msgid "Changing expiration time for a subkey.\n"
-msgstr "ÁëëáãÞ çìåñïìçíßáò ëÞîçò ãéá Ýíá äåõôåñåýïí êëåéäß.\n"
+msgstr "Αλλαγή ημερομηνίας λήξης για ένα δευτερεύον κλειδί.\n"
 
 msgid "Changing expiration time for the primary key.\n"
-msgstr "ÁëëáãÞ çìåñïìçíßáò ëÞîçò ãéá Ýíá ðñùôåýïí êëåéäß.\n"
+msgstr "Αλλαγή ημερομηνίας λήξης για ένα πρωτεύον κλειδί.\n"
 
 msgid "You can't change the expiration date of a v3 key\n"
-msgstr "Äåí ìðïñåßôå íá áëëÜîåôå ôçí çìåñïìçíßá ëÞîçò óå Ýíá v3 êëåéäß\n"
+msgstr "Δεν μπορείτε να αλλάξετε την ημερομηνία λήξης σε ένα v3 κλειδί\n"
 
 #, fuzzy, c-format
 msgid "signing subkey %s is already cross-certified\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ôï õðïãñÜöùí õðïêëåéäß %08lX äåí Ý÷åé êáô' áíôéðáñÜóôáóç "
-"ðéóôïðïéçèåß\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: το υπογράφων υποκλειδί %08lX δεν έχει κατ' αντιπαράσταση "
+"πιστοποιηθεί\n"
 
 #, c-format
 msgid "subkey %s does not sign and so does not need to be cross-certified\n"
 msgstr ""
 
 msgid "Please select exactly one user ID.\n"
-msgstr "ÐñÝðåé íá åðéëÝîåôå áêñéâþò Ýíá user ID.\n"
+msgstr "Πρέπει να επιλέξετε ακριβώς ένα user ID.\n"
 
 #, fuzzy, c-format
 msgid "skipping v3 self-signature on user ID \"%s\"\n"
-msgstr "ðáñáëåßöèçêå ç v3 éäéï-õðïãñáöÞ óôï user id \"%s\"\n"
+msgstr "παραλείφθηκε η v3 ιδιο-υπογραφή στο user id \"%s\"\n"
 
 msgid "Enter your preferred keyserver URL: "
 msgstr ""
 
 #, fuzzy
 msgid "Are you sure you want to replace it? (y/N) "
-msgstr "Óßãïõñá èÝëåôå áêüìá íá ôï ÷ñçóéìïðïéÞóåôå; (y/N) "
+msgstr "Σίγουρα θέλετε ακόμα να το χρησιμοποιήσετε; (y/N) "
 
 #, fuzzy
 msgid "Are you sure you want to delete it? (y/N) "
-msgstr "Óßãïõñá èÝëåôå áêüìá íá ôï ÷ñçóéìïðïéÞóåôå; (y/N) "
+msgstr "Σίγουρα θέλετε ακόμα να το χρησιμοποιήσετε; (y/N) "
 
 #, fuzzy
 msgid "Enter the notation: "
-msgstr "Óçìåßùóç õðïãñáöÞò: "
+msgstr "Σημείωση υπογραφής: "
 
 #, fuzzy
 msgid "Proceed? (y/N) "
-msgstr "ÅðéêÜëõøç (y/N); "
+msgstr "Επικάλυψη (y/N); "
 
 #, c-format
 msgid "No user ID with index %d\n"
-msgstr "Äåí õðÜñ÷åé user ID ìå äåßêôç %d\n"
+msgstr "Δεν υπάρχει user ID με δείκτη %d\n"
 
 #, fuzzy, c-format
 msgid "No user ID with hash %s\n"
-msgstr "Äåí õðÜñ÷åé user ID ìå äåßêôç %d\n"
+msgstr "Δεν υπάρχει user ID με δείκτη %d\n"
 
 #, fuzzy, c-format
 msgid "No subkey with key ID '%s'.\n"
-msgstr "Äåí õðÜñ÷åé user ID ìå äåßêôç %d\n"
+msgstr "Δεν υπάρχει user ID με δείκτη %d\n"
 
 #, fuzzy, c-format
 msgid "No subkey with index %d\n"
-msgstr "Äåí õðÜñ÷åé user ID ìå äåßêôç %d\n"
+msgstr "Δεν υπάρχει user ID με δείκτη %d\n"
 
 #, fuzzy, c-format
 msgid "user ID: \"%s\"\n"
@@ -3855,45 +3868,45 @@ msgstr "user ID: \""
 
 #, fuzzy, c-format
 msgid "signed by your key %s on %s%s%s\n"
-msgstr "   õðïãñÜöèçêå áðü %08lX óôéò %s%s%s\n"
+msgstr "   υπογράφθηκε από %08lX στις %s%s%s\n"
 
 msgid " (non-exportable)"
-msgstr " (ìç-åîáãþãéìï)"
+msgstr " (μη-εξαγώγιμο)"
 
 #, c-format
 msgid "This signature expired on %s.\n"
-msgstr "ÁõôÞ ç õðïãñáöÞ Ýëçîå óôéò %s.\n"
+msgstr "Αυτή η υπογραφή έληξε στις %s.\n"
 
 msgid "Are you sure you still want to revoke it? (y/N) "
-msgstr "Óßãïõñá èÝëåôå íá áíáêëçèåß áõôü ôï êëåéäß; "
+msgstr "Σίγουρα θέλετε να ανακληθεί αυτό το κλειδί; "
 
 msgid "Create a revocation certificate for this signature? (y/N) "
-msgstr "Äçìéïõñãßá åíüò ðéóôïðïéçôéêïý áíÜêëçóçò ãéá áõôÞ ôçí õðïãñáöÞ; (y/N)"
+msgstr "Δημιουργία ενός πιστοποιητικού ανάκλησης για αυτή την υπογραφή; (y/N)"
 
 #, fuzzy
 msgid "Not signed by you.\n"
-msgstr "   õðïãñÜöèçêå áðü %08lX óôéò %s%s\n"
+msgstr "   υπογράφθηκε από %08lX στις %s%s\n"
 
 #, fuzzy, c-format
 msgid "You have signed these user IDs on key %s:\n"
-msgstr "¸÷åôå õðïãñÜøåé áõôÜ ôá user ID:\n"
+msgstr "Έχετε υπογράψει αυτά τα user ID:\n"
 
 #, fuzzy
 msgid " (non-revocable)"
-msgstr " (ìç-åîáãþãéìï)"
+msgstr " (μη-εξαγώγιμο)"
 
 #, fuzzy, c-format
 msgid "revoked by your key %s on %s\n"
-msgstr "   áíáêëÞèçêå áðü %08lX óôéò %s\n"
+msgstr "   ανακλήθηκε από %08lX στις %s\n"
 
 msgid "You are about to revoke these signatures:\n"
-msgstr "Óêïðåýåôå íá áíáêáëÝóåôå áõôÝò ôéò õðïãñáöÝò:\n"
+msgstr "Σκοπεύετε να ανακαλέσετε αυτές τις υπογραφές:\n"
 
 msgid "Really create the revocation certificates? (y/N) "
-msgstr "Óßãïõñá íá äçìéïõñãçèïýí ôá ðéóôïðïéçôéêÜ áíÜêëçóçò; (y/N)"
+msgstr "Σίγουρα να δημιουργηθούν τα πιστοποιητικά ανάκλησης; (y/N)"
 
 msgid "no secret key\n"
-msgstr "êáíÝíá ìõóôéêü êëåéäß\n"
+msgstr "κανένα μυστικό κλειδί\n"
 
 #, c-format
 msgid "tried to revoke a non-user ID: %s\n"
@@ -3901,61 +3914,61 @@ msgstr ""
 
 #, c-format
 msgid "user ID \"%s\" is already revoked\n"
-msgstr "ôï user ID \"%s\" Ý÷åé Þäç áíáêëçèåß\n"
+msgstr "το user ID \"%s\" έχει ήδη ανακληθεί\n"
 
 #, c-format
 msgid "WARNING: a user ID signature is dated %d seconds in the future\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ìéá õðïãñáöÞ user ID Ý÷åé çìåñïìçíßá %d äåýôåñá óôï ìÝëëïí\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: μια υπογραφή user ID έχει ημερομηνία %d δεύτερα στο μέλλον\n"
 
 #, fuzzy, c-format
 msgid "Key %s is already revoked.\n"
-msgstr "ôï user ID \"%s\" Ý÷åé Þäç áíáêëçèåß\n"
+msgstr "το user ID \"%s\" έχει ήδη ανακληθεί\n"
 
 #, fuzzy, c-format
 msgid "Subkey %s is already revoked.\n"
-msgstr "ôï user ID \"%s\" Ý÷åé Þäç áíáêëçèåß\n"
+msgstr "το user ID \"%s\" έχει ήδη ανακληθεί\n"
 
 #, fuzzy, c-format
 msgid "Displaying %s photo ID of size %ld for key %s (uid %d)\n"
-msgstr "Áðåéêüíéóç %s photo ID ìåãÝèïõò %ld ãéá ôï êëåéäß 0x%08lX (uid %d)\n"
+msgstr "Απεικόνιση %s photo ID μεγέθους %ld για το κλειδί 0x%08lX (uid %d)\n"
 
 #, fuzzy, c-format
 msgid "preference '%s' duplicated\n"
-msgstr "ç ðñïåðéëïãÞ %c%lu áíôéãñÜöôçêå\n"
+msgstr "η προεπιλογή %c%lu αντιγράφτηκε\n"
 
 #, fuzzy
 msgid "too many cipher preferences\n"
-msgstr "ðÜñá ðïëëÝò `%c' ðñïåðéëïãÝò\n"
+msgstr "πάρα πολλές `%c' προεπιλογές\n"
 
 #, fuzzy
 msgid "too many digest preferences\n"
-msgstr "ðÜñá ðïëëÝò `%c' ðñïåðéëïãÝò\n"
+msgstr "πάρα πολλές `%c' προεπιλογές\n"
 
 #, fuzzy
 msgid "too many compression preferences\n"
-msgstr "ðÜñá ðïëëÝò `%c' ðñïåðéëïãÝò\n"
+msgstr "πάρα πολλές `%c' προεπιλογές\n"
 
 #, fuzzy, c-format
 msgid "invalid item '%s' in preference string\n"
-msgstr "ìç Ýãêõñïò ÷áñáêôÞñáò óôï \"êïñäüíé\" ôçò åðéëïãÞò\n"
+msgstr "μη έγκυρος χαρακτήρας στο \"κορδόνι\" της επιλογής\n"
 
 msgid "writing direct signature\n"
-msgstr "åããñáöÞ Üìåóçò õðïãñáöÞò\n"
+msgstr "εγγραφή άμεσης υπογραφής\n"
 
 msgid "writing self signature\n"
-msgstr "åããñáöÞ éäéï-õðïãñáöÞò\n"
+msgstr "εγγραφή ιδιο-υπογραφής\n"
 
 msgid "writing key binding signature\n"
-msgstr "åããñáöÞ õðïãñáöÞò \"äÝóéìïõ\" êëåéäéïý\n"
+msgstr "εγγραφή υπογραφής \"δέσιμου\" κλειδιού\n"
 
 #, c-format
 msgid "keysize invalid; using %u bits\n"
-msgstr "ìç Ýãêõñï ìÝãåèïò êëåéäéïý, ÷ñÞóç %u bits\n"
+msgstr "μη έγκυρο μέγεθος κλειδιού, χρήση %u bits\n"
 
 #, c-format
 msgid "keysize rounded up to %u bits\n"
-msgstr "óôñïããõëïðïßçóç ôïõ ìÝãåèïò êëåéäéïý Ýùò %u bits\n"
+msgstr "στρογγυλοποίηση του μέγεθος κλειδιού έως %u bits\n"
 
 msgid ""
 "WARNING: some OpenPGP programs can't handle a DSA key with this digest size\n"
@@ -3970,7 +3983,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Encrypt"
-msgstr "êñõðôïãñÜöçóç äåäïìÝíùí"
+msgstr "κρυπτογράφηση δεδομένων"
 
 msgid "Authenticate"
 msgstr ""
@@ -4001,7 +4014,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "   (%c) Toggle the encrypt capability\n"
-msgstr "   (%d) ElGamal (ãéá êñõðôïãñÜöçóç ìüíï)\n"
+msgstr "   (%d) ElGamal (για κρυπτογράφηση μόνο)\n"
 
 #, c-format
 msgid "   (%c) Toggle the authenticate capability\n"
@@ -4012,77 +4025,77 @@ msgid "   (%c) Finished\n"
 msgstr ""
 
 msgid "Please select what kind of key you want:\n"
-msgstr "Ðáñáêáëþ åðéëÝîôå ôïí ôýðï ôïõ êëåéäéïý ðïõ èÝëåôå:\n"
+msgstr "Παρακαλώ επιλέξτε τον τύπο του κλειδιού που θέλετε:\n"
 
 #, fuzzy, c-format
 msgid "   (%d) RSA and RSA (default)\n"
-msgstr "   (%d) DSA êáé ElGamal (ðñïêáèïñéóìÝíï)\n"
+msgstr "   (%d) DSA και ElGamal (προκαθορισμένο)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) DSA and Elgamal\n"
-msgstr "   (%d) DSA êáé ElGamal (ðñïêáèïñéóìÝíï)\n"
+msgstr "   (%d) DSA και ElGamal (προκαθορισμένο)\n"
 
 #, c-format
 msgid "   (%d) DSA (sign only)\n"
-msgstr "   (%d) DSA (ãéá õðïãñáöÞ ìüíï)\n"
+msgstr "   (%d) DSA (για υπογραφή μόνο)\n"
 
 #, c-format
 msgid "   (%d) RSA (sign only)\n"
-msgstr "   (%d) RSA (ãéá õðïãñáöÞ ìüíï)\n"
+msgstr "   (%d) RSA (για υπογραφή μόνο)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) Elgamal (encrypt only)\n"
-msgstr "   (%d) ElGamal (ãéá êñõðôïãñÜöçóç ìüíï)\n"
+msgstr "   (%d) ElGamal (για κρυπτογράφηση μόνο)\n"
 
 #, c-format
 msgid "   (%d) RSA (encrypt only)\n"
-msgstr "   (%d) RSA (ãéá êñõðôïãñÜöçóç ìüíï)\n"
+msgstr "   (%d) RSA (για κρυπτογράφηση μόνο)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) DSA (set your own capabilities)\n"
-msgstr "   (%d) RSA (ãéá êñõðôïãñÜöçóç ìüíï)\n"
+msgstr "   (%d) RSA (για κρυπτογράφηση μόνο)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) RSA (set your own capabilities)\n"
-msgstr "   (%d) RSA (ãéá êñõðôïãñÜöçóç ìüíï)\n"
+msgstr "   (%d) RSA (για κρυπτογράφηση μόνο)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) ECC and ECC\n"
-msgstr "   (%d) DSA êáé ElGamal (ðñïêáèïñéóìÝíï)\n"
+msgstr "   (%d) DSA και ElGamal (προκαθορισμένο)\n"
 
 #, fuzzy, c-format
 #| msgid "   (%d) DSA (sign only)\n"
 msgid "  (%d) ECC (sign only)\n"
-msgstr "   (%d) DSA (ãéá õðïãñáöÞ ìüíï)\n"
+msgstr "   (%d) DSA (για υπογραφή μόνο)\n"
 
 #, fuzzy, c-format
 msgid "  (%d) ECC (set your own capabilities)\n"
-msgstr "   (%d) RSA (ãéá êñõðôïãñÜöçóç ìüíï)\n"
+msgstr "   (%d) RSA (για κρυπτογράφηση μόνο)\n"
 
 #, fuzzy, c-format
 #| msgid "   (%d) RSA (encrypt only)\n"
 msgid "  (%d) ECC (encrypt only)\n"
-msgstr "   (%d) RSA (ãéá êñõðôïãñÜöçóç ìüíï)\n"
+msgstr "   (%d) RSA (για κρυπτογράφηση μόνο)\n"
 
 #, fuzzy, c-format
 msgid "  (%d) Existing key\n"
-msgstr "   (%d) RSA (ãéá êñõðôïãñÜöçóç ìüíï)\n"
+msgstr "   (%d) RSA (για κρυπτογράφηση μόνο)\n"
 
 #, fuzzy
 msgid "Enter the keygrip: "
-msgstr "Óçìåßùóç õðïãñáöÞò: "
+msgstr "Σημείωση υπογραφής: "
 
 msgid "Not a valid keygrip (expecting 40 hex digits)\n"
 msgstr ""
 
 #, fuzzy
 msgid "No key with this keygrip\n"
-msgstr "Äåí õðÜñ÷åé user ID ìå äåßêôç %d\n"
+msgstr "Δεν υπάρχει user ID με δείκτη %d\n"
 
 #, fuzzy, c-format
 #| msgid "rounded up to %u bits\n"
 msgid "rounded to %u bits\n"
-msgstr "óôñïããõëïðïéÞèçêå Ýùò ôá %u bits\n"
+msgstr "στρογγυλοποιήθηκε έως τα %u bits\n"
 
 #, c-format
 msgid "%s keys may be between %u and %u bits long.\n"
@@ -4090,20 +4103,20 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the subkey? (%u) "
-msgstr "Ôé ìÝãåèïò êëåéäéïý èá èÝëáôå; (1024) "
+msgstr "Τι μέγεθος κλειδιού θα θέλατε; (1024) "
 
 #, fuzzy, c-format
 msgid "What keysize do you want? (%u) "
-msgstr "Ôé ìÝãåèïò êëåéäéïý èá èÝëáôå; (1024) "
+msgstr "Τι μέγεθος κλειδιού θα θέλατε; (1024) "
 
 #, c-format
 msgid "Requested keysize is %u bits\n"
-msgstr "Ôï ìÝãåèïò êëåéäéïý ðïõ æçôÞèçêå åßíáé %u bits\n"
+msgstr "Το μέγεθος κλειδιού που ζητήθηκε είναι %u bits\n"
 
 #, fuzzy
 #| msgid "Please select what kind of key you want:\n"
 msgid "Please select which elliptic curve you want:\n"
-msgstr "Ðáñáêáëþ åðéëÝîôå ôïí ôýðï ôïõ êëåéäéïý ðïõ èÝëåôå:\n"
+msgstr "Παρακαλώ επιλέξτε τον τύπο του κλειδιού που θέλετε:\n"
 
 msgid ""
 "Please specify how long the key should be valid.\n"
@@ -4113,12 +4126,12 @@ msgid ""
 "      <n>m = key expires in n months\n"
 "      <n>y = key expires in n years\n"
 msgstr ""
-"Ðáñáêáëþ ïñßóôå ãéá ðüóï êáéñü ôï êëåéäß èá åßíáé Ýãêõñï.\n"
-"         0 = ôï êëåéäß äåí ëÞãåé ðïôÝ\n"
-"      <n>  = ôï êëåéäß ëÞãåé óå n ìÝñåò\n"
-"      <n>w = ôï êëåéäß ëÞãåé óå n åâäïìÜäåò\n"
-"      <n>m = ôï êëåéäß ëÞãåé óå n ìÞíåò\n"
-"      <n>y = ôï êëåéäß ëÞãåé óå n Ýôç\n"
+"Παρακαλώ ορίστε για πόσο καιρό το κλειδί θα είναι έγκυρο.\n"
+"         0 = το κλειδί δεν λήγει ποτέ\n"
+"      <n>  = το κλειδί λήγει σε n μέρες\n"
+"      <n>w = το κλειδί λήγει σε n εβδομάδες\n"
+"      <n>m = το κλειδί λήγει σε n μήνες\n"
+"      <n>y = το κλειδί λήγει σε n έτη\n"
 
 msgid ""
 "Please specify how long the signature should be valid.\n"
@@ -4128,49 +4141,49 @@ msgid ""
 "      <n>m = signature expires in n months\n"
 "      <n>y = signature expires in n years\n"
 msgstr ""
-"Ðáñáêáëþ ïñßóôå ãéá ðüóï êáéñü ôï êëåéäß èá åßíáé Ýãêõñï.\n"
-"         0 = ôï êëåéäß äåí ëÞãåé ðïôÝ\n"
-"      <n>  = ôï êëåéäß ëÞãåé óå n ìÝñåò\n"
-"      <n>w = ôï êëåéäß ëÞãåé óå n åâäïìÜäåò\n"
-"      <n>m = ôï êëåéäß ëÞãåé óå n ìÞíåò\n"
-"      <n>y = ôï êëåéäß ëÞãåé óå n Ýôç\n"
+"Παρακαλώ ορίστε για πόσο καιρό το κλειδί θα είναι έγκυρο.\n"
+"         0 = το κλειδί δεν λήγει ποτέ\n"
+"      <n>  = το κλειδί λήγει σε n μέρες\n"
+"      <n>w = το κλειδί λήγει σε n εβδομάδες\n"
+"      <n>m = το κλειδί λήγει σε n μήνες\n"
+"      <n>y = το κλειδί λήγει σε n έτη\n"
 
 msgid "Key is valid for? (0) "
-msgstr "Ôï êëåéäß åßíáé Ýãêõñï ãéá; (0) "
+msgstr "Το κλειδί είναι έγκυρο για; (0) "
 
 #, fuzzy, c-format
 msgid "Signature is valid for? (%s) "
-msgstr "Ç õðïãñáöÞ Ýéíáé Ýãêõñç ãéá; (0) "
+msgstr "Η υπογραφή έιναι έγκυρη για; (0) "
 
 msgid "invalid value\n"
-msgstr "ìç Ýãêõñç ôéìÞ\n"
+msgstr "μη έγκυρη τιμή\n"
 
 #, fuzzy
 msgid "Key does not expire at all\n"
-msgstr "ôï %s äåí ëÞãåé ðïôÝ\n"
+msgstr "το %s δεν λήγει ποτέ\n"
 
 #, fuzzy
 msgid "Signature does not expire at all\n"
-msgstr "ôï %s äåí ëÞãåé ðïôÝ\n"
+msgstr "το %s δεν λήγει ποτέ\n"
 
 #, fuzzy, c-format
 msgid "Key expires at %s\n"
-msgstr "ôï %s ëÞãåé óôéò %s\n"
+msgstr "το %s λήγει στις %s\n"
 
 #, fuzzy, c-format
 msgid "Signature expires at %s\n"
-msgstr "ÕðïãñáöÞ ëÞãåé óôéò %s.\n"
+msgstr "Υπογραφή λήγει στις %s.\n"
 
 msgid ""
 "Your system can't display dates beyond 2038.\n"
 "However, it will be correctly handled up to 2106.\n"
 msgstr ""
-"Ôï óýóôçìá óáò äåí ìðïñåß íá áðåéêïíßóåé çìåñïìçíßåò ðÝñá ôïõ 2038.\n"
-"¼ìùò, èá ÷åéñßæïíôáé óùóôÜ Ýùò ôï 2106.\n"
+"Το σύστημα σας δεν μπορεί να απεικονίσει ημερομηνίες πέρα του 2038.\n"
+"Όμως, θα χειρίζονται σωστά έως το 2106.\n"
 
 #, fuzzy
 msgid "Is this correct? (y/N) "
-msgstr "Åßíáé áõôü óùóôü (y/n); "
+msgstr "Είναι αυτό σωστό (y/n); "
 
 msgid ""
 "\n"
@@ -4192,44 +4205,44 @@ msgid ""
 "\n"
 msgstr ""
 "\n"
-"×ñåéÜæåóôå Ýíá User-ID ãéá íá áíáãíùñßóåôå Ýíá êëåéäß. Ôï ëïãéóìéêü "
-"êáôáóêåõÜæåé\n"
-"ôï user-id áðü ôï Áëçèéíü ¼íïìá, Ó÷üëéï êáé Äéåýèõíóç Email êÜðùò Ýôóé:\n"
+"Χρειάζεστε ένα User-ID για να αναγνωρίσετε ένα κλειδί. Το λογισμικό "
+"κατασκευάζει\n"
+"το user-id από το Αληθινό Όνομα, Σχόλιο και Διεύθυνση Email κάπως έτσι:\n"
 "    \"Nikolaoy Nikos (toy Ioanni) <nikoln@athens.gr>\"\n"
 "\n"
 
 msgid "Real name: "
-msgstr "Áëçèéíü ¼íïìá: "
+msgstr "Αληθινό Όνομα: "
 
 msgid "Invalid character in name\n"
-msgstr "Ìç Ýãêõñïò ÷áñáêôÞñáò óôï üíïìá\n"
+msgstr "Μη έγκυρος χαρακτήρας στο όνομα\n"
 
 #, c-format
 msgid "The characters '%s' and '%s' may not appear in name\n"
 msgstr ""
 
 msgid "Name may not start with a digit\n"
-msgstr "Ôï üíïìá äåí åðéôñÝðåôáé íá îåêéíÜ ìå áñéèìçôéêü øçößï\n"
+msgstr "Το όνομα δεν επιτρέπεται να ξεκινά με αριθμητικό ψηφίο\n"
 
 msgid "Name must be at least 5 characters long\n"
-msgstr "Ôï üíïìá ðñÝðåé íá Ý÷åé ôïõëÜ÷éóôïí 5 ÷áñáêôÞñåò\n"
+msgstr "Το όνομα πρέπει να έχει τουλάχιστον 5 χαρακτήρες\n"
 
 msgid "Email address: "
-msgstr "Äéåýèõíóç Email: "
+msgstr "Διεύθυνση Email: "
 
 msgid "Not a valid email address\n"
-msgstr "Ìç Ýãêõñç äéåýèõíóç Email\n"
+msgstr "Μη έγκυρη διεύθυνση Email\n"
 
 msgid "Comment: "
-msgstr "Ó÷üëéï: "
+msgstr "Σχόλιο: "
 
 msgid "Invalid character in comment\n"
-msgstr "Ìç Ýãêõñïò ÷áñáêôÞñáò óôï ó÷üëéï\n"
+msgstr "Μη έγκυρος χαρακτήρας στο σχόλιο\n"
 
 #, fuzzy, c-format
 #| msgid "You are using the `%s' character set.\n"
 msgid "You are using the '%s' character set.\n"
-msgstr "×ñçóéìïðïéåßôå ôï `%s' óåô ÷áñáêôÞñùí.\n"
+msgstr "Χρησιμοποιείτε το `%s' σετ χαρακτήρων.\n"
 
 #, c-format
 msgid ""
@@ -4237,12 +4250,12 @@ msgid ""
 "    \"%s\"\n"
 "\n"
 msgstr ""
-"ÅðéëÝîáôå ôï USER-ID:\n"
+"Επιλέξατε το USER-ID:\n"
 "    \"%s\"\n"
 "\n"
 
 msgid "Please don't put the email address into the real name or the comment\n"
-msgstr "Ðáñáêáëþ ìçí ôïðïèåôåßôå ôçí äéåýèõíóç email óôï üíïìá Þ óôï ó÷üëéï\n"
+msgstr "Παρακαλώ μην τοποθετείτε την διεύθυνση email στο όνομα ή στο σχόλιο\n"
 
 #. TRANSLATORS: These are the allowed answers in
 #. lower and uppercase.  Below you will find the matching
@@ -4259,23 +4272,23 @@ msgid "NnCcEeOoQq"
 msgstr "NnCcEeOoQq"
 
 msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
-msgstr "ÁëëáãÞ (N)üíïìá, (C)ó÷üëéï, (E)mail Þ (Q)ôåñìáôéóìüò; "
+msgstr "Αλλαγή (N)όνομα, (C)σχόλιο, (E)mail ή (Q)τερματισμός; "
 
 msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
-msgstr "ÁëëáãÞ (N)üíïìá, (C)ó÷üëéï, (E)mail Þ (O)åíôÜîåé/(Q)ôåñìáôéóìüò; "
+msgstr "Αλλαγή (N)όνομα, (C)σχόλιο, (E)mail ή (O)εντάξει/(Q)τερματισμός; "
 
 #, fuzzy
 #| msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
 msgid "Change (N)ame, (E)mail, or (Q)uit? "
-msgstr "ÁëëáãÞ (N)üíïìá, (C)ó÷üëéï, (E)mail Þ (Q)ôåñìáôéóìüò; "
+msgstr "Αλλαγή (N)όνομα, (C)σχόλιο, (E)mail ή (Q)τερματισμός; "
 
 #, fuzzy
 #| msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
 msgid "Change (N)ame, (E)mail, or (O)kay/(Q)uit? "
-msgstr "ÁëëáãÞ (N)üíïìá, (C)ó÷üëéï, (E)mail Þ (O)åíôÜîåé/(Q)ôåñìáôéóìüò; "
+msgstr "Αλλαγή (N)όνομα, (C)σχόλιο, (E)mail ή (O)εντάξει/(Q)τερματισμός; "
 
 msgid "Please correct the error first\n"
-msgstr "Ðáñáêáëþ, äéïñèþóôå ðñþôá ôï óöÜëìá\n"
+msgstr "Παρακαλώ, διορθώστε πρώτα το σφάλμα\n"
 
 msgid ""
 "We need to generate a lot of random bytes. It is a good idea to perform\n"
@@ -4283,14 +4296,14 @@ msgid ""
 "disks) during the prime generation; this gives the random number\n"
 "generator a better chance to gain enough entropy.\n"
 msgstr ""
-"ÐñÝðåé íá äçìéïõñãçèïýí ðïëëÜ ôõ÷áßá bytes. Åßíáé êáëÞ éäÝá íá êÜíåôå\n"
-"êÜðïéá åñãáóßá (ðëçêôñïëïãÞóôå, ìåôáêéíÞóôå ôï ðïíôßêé, ÷ñçóéìïðïéÞóôå\n"
-"ôïõò äßóêïõò) êáôá ôç äéÜñêåéá õðïëïãéóìïý ðñþôùí áñéèìþí. Áõôü äßíåé\n"
-"óôç ãåííÞôñéá ôõ÷áßùí áñéèìþí ìéá åõêáéñßá íá ìáæÝøåé áñêåôÞ åíôñïðßá.\n"
+"Πρέπει να δημιουργηθούν πολλά τυχαία bytes. Είναι καλή ιδέα να κάνετε\n"
+"κάποια εργασία (πληκτρολογήστε, μετακινήστε το ποντίκι, χρησιμοποιήστε\n"
+"τους δίσκους) κατα τη διάρκεια υπολογισμού πρώτων αριθμών. Αυτό δίνει\n"
+"στη γεννήτρια τυχαίων αριθμών μια ευκαιρία να μαζέψει αρκετή εντροπία.\n"
 
 #, c-format
 msgid "Key generation failed: %s\n"
-msgstr "Ç äçìéïõñãßá êëåéäéïý áðÝôõ÷å: %s\n"
+msgstr "Η δημιουργία κλειδιού απέτυχε: %s\n"
 
 #, c-format
 msgid ""
@@ -4304,121 +4317,121 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "A key for \"%s\" already exists\n"
-msgstr "`%s' Þäç óõìðéÝóôçêå\n"
+msgstr "`%s' ήδη συμπιέστηκε\n"
 
 #, fuzzy
 msgid "Create anyway? (y/N) "
-msgstr "×ñÞóç ïðùóäÞðïôå áõôïý ôïõ êëåéäéïý; "
+msgstr "Χρήση οπωσδήποτε αυτού του κλειδιού; "
 
 #, fuzzy
 msgid "creating anyway\n"
-msgstr "äçìéïõñãßá åíüò íÝïõ æåýãïõò êëåéäéþí"
+msgstr "δημιουργία ενός νέου ζεύγους κλειδιών"
 
 #, c-format
 msgid "Note: Use \"%s %s\" for a full featured key generation dialog.\n"
 msgstr ""
 
 msgid "Key generation canceled.\n"
-msgstr "Ç äçìéïõñãßá êëåéäéïý áíáâëÞèçêå.\n"
+msgstr "Η δημιουργία κλειδιού αναβλήθηκε.\n"
 
 #, fuzzy, c-format
 msgid "can't create backup file '%s': %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò ôïõ `%s': %s\n"
+msgstr "αδυναμία δημιουργίας του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "Note: backup of card key saved to '%s'\n"
-msgstr "ÓÇÌÅÉÙÓÇ: ôï ìõóôéêü êëåéäß %08lX Ýëçîå óôéò %s\n"
+msgstr "ΣΗΜΕΙΩΣΗ: το μυστικό κλειδί %08lX έληξε στις %s\n"
 
 #, fuzzy, c-format
 #| msgid "writing public key to `%s'\n"
 msgid "writing public key to '%s'\n"
-msgstr "åããñáöÞ ôïõ äçìïóßïõ êëåéäéïý óôï `%s'\n"
+msgstr "εγγραφή του δημοσίου κλειδιού στο `%s'\n"
 
 #, c-format
 msgid "no writable public keyring found: %s\n"
-msgstr "äå âñÝèçêå åããñÜøéìç äçìüóéá êëåéäïèÞêç: %s\n"
+msgstr "δε βρέθηκε εγγράψιμη δημόσια κλειδοθήκη: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing public keyring `%s': %s\n"
 msgid "error writing public keyring '%s': %s\n"
-msgstr "áäõíáìßá åããñáöÞò äçìüóéáò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία εγγραφής δημόσιας κλειδοθήκης `%s': %s\n"
 
 msgid "public and secret key created and signed.\n"
-msgstr "ôï äçìüóéï êáé ôï ìõóôéêü êëåéäß äçìéïõñãÞèçêáí êáé õðïãñÜöçêáí.\n"
+msgstr "το δημόσιο και το μυστικό κλειδί δημιουργήθηκαν και υπογράφηκαν.\n"
 
 #, fuzzy
 msgid ""
 "Note that this key cannot be used for encryption.  You may want to use\n"
 "the command \"--edit-key\" to generate a subkey for this purpose.\n"
 msgstr ""
-"Óçìåéþóôå üôé áõôü ôï êëåéäß äåí ìðïñåß íá ÷ñçóéìïðïéçèåß ãéá "
-"êñõðôïãñÜöçóç.\n"
-"Ìðïñåßôå íá ÷ñçóéìïðïéÞóåôå ôçí åíôïëÞ \"--edit-key\" ãéá íá äçìéïõñãçèåß\n"
-"Ýíá äåõôåñåýïí êëåéäß ãéá áõôü ôï ëüãï.\n"
+"Σημειώστε ότι αυτό το κλειδί δεν μπορεί να χρησιμοποιηθεί για "
+"κρυπτογράφηση.\n"
+"Μπορείτε να χρησιμοποιήσετε την εντολή \"--edit-key\" για να δημιουργηθεί\n"
+"ένα δευτερεύον κλειδί για αυτό το λόγο.\n"
 
 #, c-format
 msgid ""
 "key has been created %lu second in future (time warp or clock problem)\n"
 msgstr ""
-"ôï êëåéäß äçìéïõñãÞèçêå %lu äåõôåñüëåðôï óôï ìÝëëïí (÷ñïíïäßíç Þ\n"
-"áðëþò ðñüâëçìá óôï ñïëüé)\n"
+"το κλειδί δημιουργήθηκε %lu δευτερόλεπτο στο μέλλον (χρονοδίνη ή\n"
+"απλώς πρόβλημα στο ρολόι)\n"
 
 #, c-format
 msgid ""
 "key has been created %lu seconds in future (time warp or clock problem)\n"
 msgstr ""
-"ôï êëåéäß äçìéïõñãÞèçêå %lu äåõôåñüëåðôá óôï ìÝëëïí (÷ñïíïäßíç Þ\n"
-"áðëþò ðñüâëçìá óôï ñïëüé)\n"
+"το κλειδί δημιουργήθηκε %lu δευτερόλεπτα στο μέλλον (χρονοδίνη ή\n"
+"απλώς πρόβλημα στο ρολόι)\n"
 
 #, fuzzy
 #| msgid "NOTE: creating subkeys for v3 keys is not OpenPGP compliant\n"
 msgid "Note: creating subkeys for v3 keys is not OpenPGP compliant\n"
 msgstr ""
-"ÓÇÌÅÉÙÓÇ: ç äçìéïõñãßá õðïêëåéäéþí ãéá êëåéäéÜ v3 äåí åßíáé óýìöùíï\n"
-"ìå ôï OpenPGP\n"
+"ΣΗΜΕΙΩΣΗ: η δημιουργία υποκλειδιών για κλειδιά v3 δεν είναι σύμφωνο\n"
+"με το OpenPGP\n"
 
 msgid "Secret parts of primary key are not available.\n"
-msgstr "ÌõóôéêÜ ôìÞìáôá ôïõ êýñéïõ êëåéäéïý äåí åßíáé äéáèÝóéìá.\n"
+msgstr "Μυστικά τμήματα του κύριου κλειδιού δεν είναι διαθέσιμα.\n"
 
 #, fuzzy
 msgid "Secret parts of primary key are stored on-card.\n"
-msgstr "ÌõóôéêÜ ôìÞìáôá ôïõ êýñéïõ êëåéäéïý äåí åßíáé äéáèÝóéìá.\n"
+msgstr "Μυστικά τμήματα του κύριου κλειδιού δεν είναι διαθέσιμα.\n"
 
 #, fuzzy
 msgid "Really create? (y/N) "
-msgstr "Óßãïõñá íá äçìéïõñãçèåß; "
+msgstr "Σίγουρα να δημιουργηθεί; "
 
 msgid "never     "
-msgstr "ðïôÝ     "
+msgstr "ποτέ     "
 
 msgid "Critical signature policy: "
-msgstr "ÐïëéôéêÞ êñßóéìçò õðïãñáöÞò: "
+msgstr "Πολιτική κρίσιμης υπογραφής: "
 
 msgid "Signature policy: "
-msgstr "ÐïëéôéêÞ õðïãñáöÞò: "
+msgstr "Πολιτική υπογραφής: "
 
 msgid "Critical preferred keyserver: "
 msgstr ""
 
 msgid "Critical signature notation: "
-msgstr "Óçìåßùóç êñßóéìçò õðïãñáöÞò: "
+msgstr "Σημείωση κρίσιμης υπογραφής: "
 
 msgid "Signature notation: "
-msgstr "Óçìåßùóç õðïãñáöÞò: "
+msgstr "Σημείωση υπογραφής: "
 
 #, fuzzy, c-format
 #| msgid "%d bad signatures\n"
 msgid "%d good signature\n"
 msgid_plural "%d good signatures\n"
-msgstr[0] "%d êáêÝò õðïãñáöÝò\n"
-msgstr[1] "%d êáêÝò õðïãñáöÝò\n"
+msgstr[0] "%d κακές υπογραφές\n"
+msgstr[1] "%d κακές υπογραφές\n"
 
 #, fuzzy, c-format
 #| msgid "1 signature not checked due to an error\n"
 msgid "%d signature not checked due to an error\n"
 msgid_plural "%d signatures not checked due to errors\n"
-msgstr[0] "1 õðïãñáöÞ äåí åëÝã÷èçêå ëüãï åíüò óöÜëìáôïò\n"
-msgstr[1] "1 õðïãñáöÞ äåí åëÝã÷èçêå ëüãï åíüò óöÜëìáôïò\n"
+msgstr[0] "1 υπογραφή δεν ελέγχθηκε λόγο ενός σφάλματος\n"
+msgstr[1] "1 υπογραφή δεν ελέγχθηκε λόγο ενός σφάλματος\n"
 
 #, c-format
 msgid "Warning: %lu key skipped due to its large size\n"
@@ -4427,38 +4440,38 @@ msgstr[0] ""
 msgstr[1] ""
 
 msgid "Keyring"
-msgstr "ÊëåéäïèÞêç"
+msgstr "Κλειδοθήκη"
 
 msgid "Primary key fingerprint:"
-msgstr "Áðïôýðùìá ðñùôåýùí êëåéäéïý:"
+msgstr "Αποτύπωμα πρωτεύων κλειδιού:"
 
 msgid "     Subkey fingerprint:"
-msgstr "     Áðïôýðùìá õðïêëåéäéïý:"
+msgstr "     Αποτύπωμα υποκλειδιού:"
 
 #. TRANSLATORS: this should fit into 24 bytes so that the
 #. * fingerprint data is properly aligned with the user ID
 msgid " Primary key fingerprint:"
-msgstr " Áðïôýðùìá ðñùôåýùí êëåéäéïý:"
+msgstr " Αποτύπωμα πρωτεύων κλειδιού:"
 
 msgid "      Subkey fingerprint:"
-msgstr "      Áðïôýðùìá õðïêëåéäéïý:"
+msgstr "      Αποτύπωμα υποκλειδιού:"
 
 #, fuzzy
 msgid "      Key fingerprint ="
-msgstr "     Áðïôýðùìá êëåéäéïý ="
+msgstr "     Αποτύπωμα κλειδιού ="
 
 msgid "      Card serial no. ="
 msgstr ""
 
 #, fuzzy, c-format
 msgid "caching keyring '%s'\n"
-msgstr "Ýëåã÷ïò êëåéäïèÞêçò `%s'\n"
+msgstr "έλεγχος κλειδοθήκης `%s'\n"
 
 #, fuzzy, c-format
 msgid "%lu keys cached so far (%lu signature)\n"
 msgid_plural "%lu keys cached so far (%lu signatures)\n"
-msgstr[0] "%lu êëåéäéÜ Ý÷ïõí åëåã÷èåß (%lu õðïãñáöÝò)\n"
-msgstr[1] "%lu êëåéäéÜ Ý÷ïõí åëåã÷èåß (%lu õðïãñáöÝò)\n"
+msgstr[0] "%lu κλειδιά έχουν ελεγχθεί (%lu υπογραφές)\n"
+msgstr[1] "%lu κλειδιά έχουν ελεγχθεί (%lu υπογραφές)\n"
 
 #, c-format
 msgid "%lu key cached"
@@ -4470,12 +4483,12 @@ msgstr[1] ""
 #| msgid "1 bad signature\n"
 msgid " (%lu signature)\n"
 msgid_plural " (%lu signatures)\n"
-msgstr[0] "1 êáêÞ õðïãñáöÞ\n"
-msgstr[1] "1 êáêÞ õðïãñáöÞ\n"
+msgstr[0] "1 κακή υπογραφή\n"
+msgstr[1] "1 κακή υπογραφή\n"
 
 #, c-format
 msgid "%s: keyring created\n"
-msgstr "%s: êëåéäïèÞêç äçìéïõñãÞèçêå\n"
+msgstr "%s: κλειδοθήκη δημιουργήθηκε\n"
 
 msgid "override proxy options set for dirmngr"
 msgstr ""
@@ -4494,7 +4507,7 @@ msgstr ""
 
 #, fuzzy
 msgid "honor the preferred keyserver URL set on the key"
-msgstr "ôï URL ðïëéôéêÞò õðïãñáöÞò ðïõ äüèçêå äåí åßíáé Ýãêõñï\n"
+msgstr "το URL πολιτικής υπογραφής που δόθηκε δεν είναι έγκυρο\n"
 
 msgid "honor the PKA record set on a key when retrieving keys"
 msgstr ""
@@ -4508,7 +4521,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid keyserver protocol (us %d!=handler %d)\n"
-msgstr "ìç Ýãêõñåò åðéëïãÝò åîáãùãÞò\n"
+msgstr "μη έγκυρες επιλογές εξαγωγής\n"
 
 #, c-format
 msgid "\"%s\" not a key ID: skipping\n"
@@ -4517,209 +4530,209 @@ msgstr ""
 #, fuzzy, c-format
 msgid "refreshing %d key from %s\n"
 msgid_plural "refreshing %d keys from %s\n"
-msgstr[0] "áßôçóç êëåéäéïý %08lX áðü ôï %s\n"
-msgstr[1] "áßôçóç êëåéäéïý %08lX áðü ôï %s\n"
+msgstr[0] "αίτηση κλειδιού %08lX από το %s\n"
+msgstr[1] "αίτηση κλειδιού %08lX από το %s\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unable to refresh key %s via %s: %s\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: áäõíáìßá äéáãñáöÞò tempfile (%s) `%s': %s\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: αδυναμία διαγραφής tempfile (%s) `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "key \"%s\" not found on keyserver\n"
-msgstr "ôï êëåéäß '%s' äå âñÝèçêå: %s\n"
+msgstr "το κλειδί '%s' δε βρέθηκε: %s\n"
 
 #, fuzzy
 msgid "key not found on keyserver\n"
-msgstr "ôï êëåéäß '%s' äå âñÝèçêå: %s\n"
+msgstr "το κλειδί '%s' δε βρέθηκε: %s\n"
 
 msgid "no keyserver known (use option --keyserver)\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "requesting key %s from %s server %s\n"
-msgstr "áßôçóç êëåéäéïý %08lX áðü ôï %s\n"
+msgstr "αίτηση κλειδιού %08lX από το %s\n"
 
 #, fuzzy, c-format
 msgid "requesting key %s from %s\n"
-msgstr "áßôçóç êëåéäéïý %08lX áðü ôï %s\n"
+msgstr "αίτηση κλειδιού %08lX από το %s\n"
 
 #, fuzzy
 msgid "no keyserver known\n"
-msgstr "ìç Ýãêõñåò åðéëïãÝò åîáãùãÞò\n"
+msgstr "μη έγκυρες επιλογές εξαγωγής\n"
 
 #, fuzzy, c-format
 msgid "skipped \"%s\": %s\n"
-msgstr "ðáñáëåßöèçêå `%s': %s\n"
+msgstr "παραλείφθηκε `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "sending key %s to %s\n"
 msgstr ""
 "\"\n"
-"õðïãñÜöèçêå ìå ôï êëåéäß óáò %08lX óôéò %s\n"
+"υπογράφθηκε με το κλειδί σας %08lX στις %s\n"
 
 #, fuzzy, c-format
 msgid "requesting key from '%s'\n"
-msgstr "áßôçóç êëåéäéïý %08lX áðü ôï %s\n"
+msgstr "αίτηση κλειδιού %08lX από το %s\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unable to fetch URI %s: %s\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: áäõíáìßá äéáãñáöÞò tempfile (%s) `%s': %s\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: αδυναμία διαγραφής tempfile (%s) `%s': %s\n"
 
 #, c-format
 msgid "weird size for an encrypted session key (%d)\n"
-msgstr "ðáñÜîåíï ìÝãåèïò ãéá Ýíá êëåéäß êñõðôïãñáöçìÝíçò óõíåäñßáò (%d)\n"
+msgstr "παράξενο μέγεθος για ένα κλειδί κρυπτογραφημένης συνεδρίας (%d)\n"
 
 #, c-format
 msgid "%s encrypted session key\n"
-msgstr "%s êëåéäß êñõðôïãñáöçìÝíçò óõíåäñßá\n"
+msgstr "%s κλειδί κρυπτογραφημένης συνεδρία\n"
 
 #, fuzzy, c-format
 msgid "passphrase generated with unknown digest algorithm %d\n"
-msgstr "êñõðôïãñáöçìÝíï ìå Üãíùóôï áëãüñéèìï %d\n"
+msgstr "κρυπτογραφημένο με άγνωστο αλγόριθμο %d\n"
 
 #, fuzzy, c-format
 msgid "public key is %s\n"
-msgstr "äçìüóéï êëåéäß åßíáé %08lX\n"
+msgstr "δημόσιο κλειδί είναι %08lX\n"
 
 msgid "public key encrypted data: good DEK\n"
-msgstr "êñõðôïãñáöçìÝíá äåäïìÝíá ìå äçìüóéï êëåéäß: êáëü DEK\n"
+msgstr "κρυπτογραφημένα δεδομένα με δημόσιο κλειδί: καλό DEK\n"
 
 #, fuzzy, c-format
 msgid "encrypted with %u-bit %s key, ID %s, created %s\n"
-msgstr "êñõðôïãñáöçìÝíï ìå %u-bit %s êëåéäß, ID %08lX, äçìéïõñãÞèçêå %s\n"
+msgstr "κρυπτογραφημένο με %u-bit %s κλειδί, ID %08lX, δημιουργήθηκε %s\n"
 
 #, fuzzy, c-format
 msgid "      \"%s\"\n"
-msgstr "                ãíùóôü óáí \""
+msgstr "                γνωστό σαν \""
 
 #, fuzzy, c-format
 msgid "encrypted with %s key, ID %s\n"
-msgstr "êñõðôïãñáöçìÝíï ìå %s key, ID %08lX\n"
+msgstr "κρυπτογραφημένο με %s key, ID %08lX\n"
 
 #, c-format
 msgid "public key decryption failed: %s\n"
-msgstr "êñõðôïãñÜöçóç ìå äçìüóéï êëåéäß áðÝôõ÷å: %s\n"
+msgstr "κρυπτογράφηση με δημόσιο κλειδί απέτυχε: %s\n"
 
 #, c-format
 msgid "encrypted with %lu passphrases\n"
-msgstr "êñõðôïãñáöçìÝíï ìå %lu öñÜóåéò êëåéäéÜ\n"
+msgstr "κρυπτογραφημένο με %lu φράσεις κλειδιά\n"
 
 msgid "encrypted with 1 passphrase\n"
-msgstr "êñõðôïãñáöçìÝíï ìå 1 öñÜóç êëåéäß\n"
+msgstr "κρυπτογραφημένο με 1 φράση κλειδί\n"
 
 #, c-format
 msgid "assuming %s encrypted data\n"
-msgstr "õðüèåóç %s êñõðôïãñáöçìÝíùí äåäïìÝíùí\n"
+msgstr "υπόθεση %s κρυπτογραφημένων δεδομένων\n"
 
 #, c-format
 msgid "IDEA cipher unavailable, optimistically attempting to use %s instead\n"
 msgstr ""
-"Êñõðôáëãüñéèìïò IDEA ìç äéáèÝóéìïò, áéóéüäïîç ðñïóðÜèåéá ÷ñÞóçò ôïõ\n"
-"%s áíôßèåôá\n"
+"Κρυπταλγόριθμος IDEA μη διαθέσιμος, αισιόδοξη προσπάθεια χρήσης του\n"
+"%s αντίθετα\n"
 
 msgid "WARNING: message was not integrity protected\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: äåí ðñïóôáôåýôçêå ç áêåñáéüôçôá ôïõ ìçýìáôïò\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: δεν προστατεύτηκε η ακεραιότητα του μηύματος\n"
 
 msgid "decryption okay\n"
-msgstr "áðïêñõðôïãñÜöçóç OK\n"
+msgstr "αποκρυπτογράφηση OK\n"
 
 msgid "WARNING: encrypted message has been manipulated!\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ôï êñõðôïãñáöçìÝíï ìÞíõìá Ý÷åé ðåéñá÷èåß!\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: το κρυπτογραφημένο μήνυμα έχει πειραχθεί!\n"
 
 #, c-format
 msgid "decryption failed: %s\n"
-msgstr "áðïêñõðôïãñÜöçóç áðÝôõ÷å: %s\n"
+msgstr "αποκρυπτογράφηση απέτυχε: %s\n"
 
 #, fuzzy
 #| msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
 msgid "Note: sender requested \"for-your-eyes-only\"\n"
-msgstr "ÓÇÌÅÉÙÓÇ: ï áðïóôïëÝáò æÞôçóå \"ãéá-ôá-ìÜôéá-óáò-ìüíï\"\n"
+msgstr "ΣΗΜΕΙΩΣΗ: ο αποστολέας ζήτησε \"για-τα-μάτια-σας-μόνο\"\n"
 
 #, c-format
 msgid "original file name='%.*s'\n"
-msgstr "áñ÷éêü üíïìá áñ÷åßïõ='%.*s'\n"
+msgstr "αρχικό όνομα αρχείου='%.*s'\n"
 
 msgid "WARNING: multiple plaintexts seen\n"
 msgstr ""
 
 msgid "standalone revocation - use \"gpg --import\" to apply\n"
-msgstr "áíåîÜñôçôç áíÜêëçóç - ÷ñçóéìïðïéåßóôå \"gpg --import\" ãéá åöáñìïãÞ\n"
+msgstr "ανεξάρτητη ανάκληση - χρησιμοποιείστε \"gpg --import\" για εφαρμογή\n"
 
 #, fuzzy
 msgid "no signature found\n"
-msgstr "ÊáëÞ õðïãñáöÞ áðü \""
+msgstr "Καλή υπογραφή από \""
 
 #, fuzzy, c-format
 msgid "BAD signature from \"%s\""
-msgstr "ÊÁÊÇ õðïãñáöÞ áðü \""
+msgstr "ΚΑΚΗ υπογραφή από \""
 
 #, fuzzy, c-format
 msgid "Expired signature from \"%s\""
-msgstr "ËçãìÝíç õðïãñáöÞ áðü \""
+msgstr "Ληγμένη υπογραφή από \""
 
 #, fuzzy, c-format
 msgid "Good signature from \"%s\""
-msgstr "ÊáëÞ õðïãñáöÞ áðü \""
+msgstr "Καλή υπογραφή από \""
 
 msgid "signature verification suppressed\n"
-msgstr "êáôáóôïëÞ áíÜêëçóçò õðïãñáöÞò\n"
+msgstr "καταστολή ανάκλησης υπογραφής\n"
 
 #, fuzzy
 msgid "can't handle this ambiguous signature data\n"
-msgstr "áäõíáìßá ÷åéñéóìïý áõôþí ôùí ðïëëáðëþí õðïãñáöþí\n"
+msgstr "αδυναμία χειρισμού αυτών των πολλαπλών υπογραφών\n"
 
 #, fuzzy, c-format
 msgid "Signature made %s\n"
-msgstr "ÕðïãñáöÞ Ýëçîå óôéò %s.\n"
+msgstr "Υπογραφή έληξε στις %s.\n"
 
 #, fuzzy, c-format
 msgid "               using %s key %s\n"
-msgstr "                ãíùóôü óáí \""
+msgstr "                γνωστό σαν \""
 
 #, fuzzy, c-format
 msgid "Signature made %s using %s key ID %s\n"
-msgstr "ÕðïãñáöÞ Ýãéíå óôï %.*s ìå ÷ñÞóç ôïõ êëåéäéïý%s ID %08lX\n"
+msgstr "Υπογραφή έγινε στο %.*s με χρήση του κλειδιού%s ID %08lX\n"
 
 #, fuzzy, c-format
 msgid "               issuer \"%s\"\n"
-msgstr "                ãíùóôü óáí \""
+msgstr "                γνωστό σαν \""
 
 msgid "Key available at: "
-msgstr "Êëåéäß äéáèÝóéìï óôï: "
+msgstr "Κλειδί διαθέσιμο στο: "
 
 msgid "[uncertain]"
-msgstr "[áâÝâáéï]"
+msgstr "[αβέβαιο]"
 
 #, fuzzy, c-format
 msgid "                aka \"%s\""
-msgstr "                ãíùóôü óáí \""
+msgstr "                γνωστό σαν \""
 
 #, c-format
 msgid "Signature expired %s\n"
-msgstr "ÕðïãñáöÞ Ýëçîå óôéò %s.\n"
+msgstr "Υπογραφή έληξε στις %s.\n"
 
 #, c-format
 msgid "Signature expires %s\n"
-msgstr "ÕðïãñáöÞ ëÞãåé óôéò %s.\n"
+msgstr "Υπογραφή λήγει στις %s.\n"
 
 #, fuzzy, c-format
 #| msgid "%s signature, digest algorithm %s\n"
 msgid "%s signature, digest algorithm %s%s%s\n"
-msgstr "%s õðïãñáöÞ, áëãüñéèìïò ðåñßëçøçò %s\n"
+msgstr "%s υπογραφή, αλγόριθμος περίληψης %s\n"
 
 msgid "binary"
-msgstr "äõáäéêü"
+msgstr "δυαδικό"
 
 msgid "textmode"
-msgstr "êáôÜóôáóç-êåéìÝíïõ"
+msgstr "κατάσταση-κειμένου"
 
 msgid "unknown"
-msgstr "Üãíùóôï"
+msgstr "άγνωστο"
 
 #, fuzzy
 #| msgid "unknown pubkey algorithm"
 msgid ", key algorithm "
-msgstr "Üãíùóôïò áëãüñéèìïò äçìïóßïõ êëåéäéïý"
+msgstr "άγνωστος αλγόριθμος δημοσίου κλειδιού"
 
 #, c-format
 msgid "WARNING: not a detached signature; file '%s' was NOT verified!\n"
@@ -4727,206 +4740,206 @@ msgstr ""
 
 #, c-format
 msgid "Can't check signature: %s\n"
-msgstr "Áäõíáìßá åëÝã÷ïõ ôçò õðïãñáöÞò: %s\n"
+msgstr "Αδυναμία ελέγχου της υπογραφής: %s\n"
 
 msgid "not a detached signature\n"
-msgstr "äåí åßíáé áðïêïììÝíç õðïãñáöÞ\n"
+msgstr "δεν είναι αποκομμένη υπογραφή\n"
 
 msgid ""
 "WARNING: multiple signatures detected.  Only the first will be checked.\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: åíôïðéóìüò ðïëëáðëþí õðïãñáöþí. Ìüíï ç ðñþôç èá åëåã÷èåß.\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: εντοπισμός πολλαπλών υπογραφών. Μόνο η πρώτη θα ελεγχθεί.\n"
 
 #, c-format
 msgid "standalone signature of class 0x%02x\n"
-msgstr "áíåîÜñôçôç õðïãñáöÞ êëÜóçò 0x%02x\n"
+msgstr "ανεξάρτητη υπογραφή κλάσης 0x%02x\n"
 
 msgid "old style (PGP 2.x) signature\n"
-msgstr "õðïãñáöÞ ðáëéïý óôõë (PGP 2.x)\n"
+msgstr "υπογραφή παλιού στυλ (PGP 2.x)\n"
 
 #, fuzzy, c-format
 msgid "fstat of '%s' failed in %s: %s\n"
-msgstr "áäõíáìßá ðñüóâáóçò ôïõ áñ÷åßïõ: %s\n"
+msgstr "αδυναμία πρόσβασης του αρχείου: %s\n"
 
 #, fuzzy, c-format
 msgid "fstat(%d) failed in %s: %s\n"
-msgstr "trustdb: read áðÝôõ÷å (n=%d): %s\n"
+msgstr "trustdb: read απέτυχε (n=%d): %s\n"
 
 #, fuzzy, c-format
 msgid "WARNING: using experimental public key algorithm %s\n"
-msgstr "áäõíáìßá ÷åéñéóìïý ôïõ áëãüñéèìïõ äçìïóßïõ êëåéäéïý %d\n"
+msgstr "αδυναμία χειρισμού του αλγόριθμου δημοσίου κλειδιού %d\n"
 
 #, fuzzy
 msgid "WARNING: Elgamal sign+encrypt keys are deprecated\n"
 msgstr ""
-"ï åîáíáãêáóìüò ôïõ áëãüñéèìïõ ðåñßëçøçò %s (%d) ðáñáâéÜæåé ôéò\n"
-"ðñïåðéëïãÝò ôïõ ðáñáëÞðôç\n"
+"ο εξαναγκασμός του αλγόριθμου περίληψης %s (%d) παραβιάζει τις\n"
+"προεπιλογές του παραλήπτη\n"
 
 #, fuzzy, c-format
 msgid "WARNING: using experimental cipher algorithm %s\n"
-msgstr "ìç õëïðïéçìÝíïò áëãüñéèìïò êñõðôïãñÜöçóçò"
+msgstr "μη υλοποιημένος αλγόριθμος κρυπτογράφησης"
 
 #, fuzzy, c-format
 msgid "WARNING: using experimental digest algorithm %s\n"
-msgstr "%s õðïãñáöÞ, áëãüñéèìïò ðåñßëçøçò %s\n"
+msgstr "%s υπογραφή, αλγόριθμος περίληψης %s\n"
 
 #, fuzzy, c-format
 msgid "WARNING: digest algorithm %s is deprecated\n"
 msgstr ""
-"ï åîáíáãêáóìüò ôïõ áëãüñéèìïõ ðåñßëçøçò %s (%d) ðáñáâéÜæåé ôéò\n"
-"ðñïåðéëïãÝò ôïõ ðáñáëÞðôç\n"
+"ο εξαναγκασμός του αλγόριθμου περίληψης %s (%d) παραβιάζει τις\n"
+"προεπιλογές του παραλήπτη\n"
 
 #, fuzzy, c-format
 #| msgid "%s signature, digest algorithm %s\n"
 msgid "Note: signatures using the %s algorithm are rejected\n"
-msgstr "%s õðïãñáöÞ, áëãüñéèìïò ðåñßëçøçò %s\n"
+msgstr "%s υπογραφή, αλγόριθμος περίληψης %s\n"
 
 #, fuzzy, c-format
 msgid "(reported error: %s)\n"
-msgstr "óöÜëìá áíÜãíùóçò: %s\n"
+msgstr "σφάλμα ανάγνωσης: %s\n"
 
 #, fuzzy, c-format
 msgid "(reported error: %s <%s>)\n"
-msgstr "óöÜëìá áíÜãíùóçò: %s\n"
+msgstr "σφάλμα ανάγνωσης: %s\n"
 
 msgid "(further info: "
 msgstr ""
 
 #, c-format
 msgid "%s:%d: deprecated option \"%s\"\n"
-msgstr "%s:%d: ìç óõíåéóôþìåíç åðéëïãÞ \"%s\"\n"
+msgstr "%s:%d: μη συνειστώμενη επιλογή \"%s\"\n"
 
 #, c-format
 msgid "WARNING: \"%s\" is a deprecated option\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: \"%s\" åßíáé ìéá ìç óõíåéóôþìåíç åðéëïãÞ\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: \"%s\" είναι μια μη συνειστώμενη επιλογή\n"
 
 #, c-format
 msgid "please use \"%s%s\" instead\n"
-msgstr "ðáñáêáëþ ÷ñçóéìïðïéÞóôå ôï \"%s%s\" êáëýôåñá\n"
+msgstr "παρακαλώ χρησιμοποιήστε το \"%s%s\" καλύτερα\n"
 
 #, fuzzy, c-format
 msgid "WARNING: \"%s\" is a deprecated command - do not use it\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: \"%s\" åßíáé ìéá ìç óõíåéóôþìåíç åðéëïãÞ\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: \"%s\" είναι μια μη συνειστώμενη επιλογή\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: \"%s\" is obsolete in this file - it only has effect in %s\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: \"%s\" åßíáé ìéá ìç óõíåéóôþìåíç åðéëïãÞ\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: \"%s\" είναι μια μη συνειστώμενη επιλογή\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: \"%s%s\" is an obsolete option - it has no effect except on %s\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: \"%s\" åßíáé ìéá ìç óõíåéóôþìåíç åðéëïãÞ\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: \"%s\" είναι μια μη συνειστώμενη επιλογή\n"
 
 msgid "Uncompressed"
-msgstr "Áóõìðßåóôï"
+msgstr "Ασυμπίεστο"
 
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 #, fuzzy
 msgid "uncompressed|none"
-msgstr "Áóõìðßåóôï"
+msgstr "Ασυμπίεστο"
 
 #, c-format
 msgid "this message may not be usable by %s\n"
-msgstr "áõôü ôï ìÞíõìá ßóùò äåí ìðïñåß íá ÷ñçóéìïðïéçèåß áðü %s\n"
+msgstr "αυτό το μήνυμα ίσως δεν μπορεί να χρησιμοποιηθεί από %s\n"
 
 #, fuzzy, c-format
 msgid "ambiguous option '%s'\n"
-msgstr "áíÜãíùóç åðéëïãþí áðü `%s'\n"
+msgstr "ανάγνωση επιλογών από `%s'\n"
 
 #, fuzzy, c-format
 msgid "unknown option '%s'\n"
-msgstr "Üãíùóôïò ðñïêáèïñéóìÝíïò ðáñáëÞðôçò `%s'\n"
+msgstr "άγνωστος προκαθορισμένος παραλήπτης `%s'\n"
 
 msgid "ECDSA public key is expected to be in SEC encoding multiple of 8 bits\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "unknown weak digest '%s'\n"
-msgstr "Üãíùóôç êëÜóç õðïãñáöÞò"
+msgstr "άγνωστη κλάση υπογραφής"
 
 #, fuzzy, c-format
 #| msgid "File `%s' exists. "
 msgid "File '%s' exists. "
-msgstr "Ôï áñ÷åßï `%s' õðÜñ÷åé Þäç. "
+msgstr "Το αρχείο `%s' υπάρχει ήδη. "
 
 #, fuzzy
 msgid "Overwrite? (y/N) "
-msgstr "ÅðéêÜëõøç (y/N); "
+msgstr "Επικάλυψη (y/N); "
 
 #, c-format
 msgid "%s: unknown suffix\n"
-msgstr "%s: Üãíùóôç êáôÜëçîç\n"
+msgstr "%s: άγνωστη κατάληξη\n"
 
 msgid "Enter new filename"
-msgstr "ÐëçêôñïëïãÞóôå Ýíá íÝï üíïìá áñ÷åßïõ"
+msgstr "Πληκτρολογήστε ένα νέο όνομα αρχείου"
 
 msgid "writing to stdout\n"
-msgstr "åããñáöÞ óôçí stdout\n"
+msgstr "εγγραφή στην stdout\n"
 
 #, fuzzy, c-format
 #| msgid "assuming signed data in `%s'\n"
 msgid "assuming signed data in '%s'\n"
-msgstr "õðüèåóç õðïãåãñáììÝíùí äåäïìÝíùí óôï `%s'\n"
+msgstr "υπόθεση υπογεγραμμένων δεδομένων στο `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "new configuration file `%s' created\n"
 msgid "new configuration file '%s' created\n"
-msgstr "äçìéïõñãÞèçêå íÝï áñ÷åßï åðéëïãþí `%s'\n"
+msgstr "δημιουργήθηκε νέο αρχείο επιλογών `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: options in `%s' are not yet active during this run\n"
 msgid "WARNING: options in '%s' are not yet active during this run\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ïé åðéëïãåò óôï `%s' äåí åßíáé åíåñãÝò óå áõôÞ ôçí åêôÝëåóç\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: οι επιλογες στο `%s' δεν είναι ενεργές σε αυτή την εκτέλεση\n"
 
 #, c-format
 msgid "can't handle public key algorithm %d\n"
-msgstr "áäõíáìßá ÷åéñéóìïý ôïõ áëãüñéèìïõ äçìïóßïõ êëåéäéïý %d\n"
+msgstr "αδυναμία χειρισμού του αλγόριθμου δημοσίου κλειδιού %d\n"
 
 msgid "WARNING: potentially insecure symmetrically encrypted session key\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ðéèáíüí ìç áóöáëÝò êñõðôïãñáöçìÝíï óõììåôñéêÜ êëåéäß\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: πιθανόν μη ασφαλές κρυπτογραφημένο συμμετρικά κλειδί\n"
 
 #, c-format
 msgid "subpacket of type %d has critical bit set\n"
-msgstr "õðïðáêÝôï ôýðïõ %d Ý÷åé ïñéóìÝíï ôï êñéôéêü bit\n"
+msgstr "υποπακέτο τύπου %d έχει ορισμένο το κριτικό bit\n"
 
 #, fuzzy, c-format
 msgid "problem with the agent: %s\n"
-msgstr "ðñüâëçìá ìå ôïí agent: agent åðéóôñÝöåé 0x%lx\n"
+msgstr "πρόβλημα με τον agent: agent επιστρέφει 0x%lx\n"
 
 msgid "Enter passphrase\n"
-msgstr "ÐëçêôñïëïãÞóôå ôç öñÜóç êëåéäß\n"
+msgstr "Πληκτρολογήστε τη φράση κλειδί\n"
 
 msgid "cancelled by user\n"
-msgstr "áêõñþèçêå áðü ôï ÷ñÞóôç\n"
+msgstr "ακυρώθηκε από το χρήστη\n"
 
 #, fuzzy, c-format
 msgid " (main key ID %s)"
-msgstr " (êýñéï êëåéäß, ID %08lX)"
+msgstr " (κύριο κλειδί, ID %08lX)"
 
 #, fuzzy
 msgid "Please enter the passphrase to unlock the OpenPGP secret key:"
-msgstr "ÐëçêôñïëïãÞóôå ôç öñÜóç êëåéäß· áõôÞ åßíáé ìéá ìõóôéêÞ ðñüôáóç \n"
+msgstr "Πληκτρολογήστε τη φράση κλειδί· αυτή είναι μια μυστική πρόταση \n"
 
 #, fuzzy
 msgid "Please enter the passphrase to import the OpenPGP secret key:"
-msgstr "ÐëçêôñïëïãÞóôå ôç öñÜóç êëåéäß· áõôÞ åßíáé ìéá ìõóôéêÞ ðñüôáóç \n"
+msgstr "Πληκτρολογήστε τη φράση κλειδί· αυτή είναι μια μυστική πρόταση \n"
 
 #, fuzzy
 msgid "Please enter the passphrase to export the OpenPGP secret subkey:"
-msgstr "ÐëçêôñïëïãÞóôå ôç öñÜóç êëåéäß· áõôÞ åßíáé ìéá ìõóôéêÞ ðñüôáóç \n"
+msgstr "Πληκτρολογήστε τη φράση κλειδί· αυτή είναι μια μυστική πρόταση \n"
 
 #, fuzzy
 msgid "Please enter the passphrase to export the OpenPGP secret key:"
-msgstr "ÐëçêôñïëïãÞóôå ôç öñÜóç êëåéäß· áõôÞ åßíáé ìéá ìõóôéêÞ ðñüôáóç \n"
+msgstr "Πληκτρολογήστε τη φράση κλειδί· αυτή είναι μια μυστική πρόταση \n"
 
 #, fuzzy
 msgid "Do you really want to permanently delete the OpenPGP secret subkey key:"
-msgstr "Óßãïõñá èÝëåôå íá äéáãñáöïýí ôá åðéëåãìÝíá êëåéäéÜ; "
+msgstr "Σίγουρα θέλετε να διαγραφούν τα επιλεγμένα κλειδιά; "
 
 #, fuzzy
 msgid "Do you really want to permanently delete the OpenPGP secret key:"
-msgstr "Óßãïõñá èÝëåôå íá äéáãñáöïýí ôá åðéëåãìÝíá êëåéäéÜ; "
+msgstr "Σίγουρα θέλετε να διαγραφούν τα επιλεγμένα κλειδιά; "
 
 #, fuzzy, c-format
 msgid ""
@@ -4935,7 +4948,7 @@ msgid ""
 "%u-bit %s key, ID %s,\n"
 "created %s%s.\n"
 "%s"
-msgstr "%u-bit %s êëåéäß, ID %08lX, äçìéïõñãßá %s"
+msgstr "%u-bit %s κλειδί, ID %08lX, δημιουργία %s"
 
 msgid ""
 "\n"
@@ -4945,17 +4958,17 @@ msgid ""
 "Keeping the image close to 240x288 is a good size to use.\n"
 msgstr ""
 "\n"
-"ÄéáëÝîôå ìéá åéêüíá óáí ôï photo ID.  Ç åéêüíá áõôÞ ðñÝðåé íá åßíáé áñ÷åßï\n"
-"JPEG. Èõìçèåßôå üôé ç åéêüíá áðïèçêåýåôáé ìÝóá óôï äçìüóéï êëåéäß óáò.  ÅÜí\n"
-"÷ñçóéìïðïéåßôå ìéá ìåãÜëç åéêüíá ôï êëåéäß óáò áíôßóôïé÷á èá ãßíåé ìåãÜëï!\n"
-"Éäáíßêü ìÝãåèïò ãéá ìéá åéêüíá åßíáé áõôü êïíôÜ óôï 240x288.\n"
+"Διαλέξτε μια εικόνα σαν το photo ID.  Η εικόνα αυτή πρέπει να είναι αρχείο\n"
+"JPEG. Θυμηθείτε ότι η εικόνα αποθηκεύεται μέσα στο δημόσιο κλειδί σας.  Εάν\n"
+"χρησιμοποιείτε μια μεγάλη εικόνα το κλειδί σας αντίστοιχα θα γίνει μεγάλο!\n"
+"Ιδανίκό μέγεθος για μια εικόνα είναι αυτό κοντά στο 240x288.\n"
 
 msgid "Enter JPEG filename for photo ID: "
-msgstr "ÐëçêôñïëïãÞóôå Ýíá üíïìá áñ÷åßïõ ãéá ôï photo ID: "
+msgstr "Πληκτρολογήστε ένα όνομα αρχείου για το photo ID: "
 
 #, fuzzy, c-format
 msgid "unable to open JPEG file '%s': %s\n"
-msgstr "áäõíáìßá ðñüóâáóçò ôïõ áñ÷åßïõ: %s\n"
+msgstr "αδυναμία πρόσβασης του αρχείου: %s\n"
 
 #, c-format
 msgid "This JPEG is really large (%d bytes) !\n"
@@ -4963,38 +4976,38 @@ msgstr ""
 
 #, fuzzy
 msgid "Are you sure you want to use it? (y/N) "
-msgstr "Óßãïõñá èÝëåôå áêüìá íá ôï ÷ñçóéìïðïéÞóåôå; (y/N) "
+msgstr "Σίγουρα θέλετε ακόμα να το χρησιμοποιήσετε; (y/N) "
 
 #, fuzzy, c-format
 msgid "'%s' is not a JPEG file\n"
-msgstr "\"%s\" äåí åßíáé JPEG áñ÷åßï\n"
+msgstr "\"%s\" δεν είναι JPEG αρχείο\n"
 
 msgid "Is this photo correct (y/N/q)? "
-msgstr "Åßíáé áõôÞ ç öùôïãñáößá óùóôÞ (y/N/q); "
+msgstr "Είναι αυτή η φωτογραφία σωστή (y/N/q); "
 
 msgid "unable to display photo ID!\n"
-msgstr "áäõíáìßá áðåéêüíéóçò ôïõ photo ID!\n"
+msgstr "αδυναμία απεικόνισης του photo ID!\n"
 
 msgid "No reason specified"
-msgstr "Äåí Ý÷åé ïñéóôåß áéôßá"
+msgstr "Δεν έχει οριστεί αιτία"
 
 msgid "Key is superseded"
-msgstr "Ôï êëåéäß Ý÷åé ðáñáêáìèåß"
+msgstr "Το κλειδί έχει παρακαμθεί"
 
 msgid "Key has been compromised"
-msgstr "Ôï êëåéäß Ý÷åé åêôåèåß"
+msgstr "Το κλειδί έχει εκτεθεί"
 
 msgid "Key is no longer used"
-msgstr "Ôï êëåéäß äå ÷ñçóéìïðïéåßôáé ðëÝïí"
+msgstr "Το κλειδί δε χρησιμοποιείται πλέον"
 
 msgid "User ID is no longer valid"
-msgstr "Ôï User ID äåí åßíáé ðëÝïí Ýãêõñï"
+msgstr "Το User ID δεν είναι πλέον έγκυρο"
 
 msgid "reason for revocation: "
-msgstr "áéôßá ãéá áíÜêëçóç:"
+msgstr "αιτία για ανάκληση:"
 
 msgid "revocation comment: "
-msgstr "ó÷üëéï áíÜêëçóçò:"
+msgstr "σχόλιο ανάκλησης:"
 
 #. TRANSLATORS: These are the allowed answers in lower and
 #. uppercase.  Below you will find the matching strings which
@@ -5012,41 +5025,41 @@ msgstr "iImMqQsS"
 #, fuzzy
 msgid "No trust value assigned to:\n"
 msgstr ""
-"Äåí äüèçêå áîßá åìðéóôïóýíçò óôï:\n"
+"Δεν δόθηκε αξία εμπιστοσύνης στο:\n"
 "%4u%c/%08lX %s \""
 
 #, fuzzy, c-format
 msgid "  aka \"%s\"\n"
-msgstr "                ãíùóôü óáí \""
+msgstr "                γνωστό σαν \""
 
 #, fuzzy
 msgid ""
 "How much do you trust that this key actually belongs to the named user?\n"
-msgstr "Áõôü ôï êëåéäß ðéèáíþò áíÞêåé óôïí éäéïêôÞôç\n"
+msgstr "Αυτό το κλειδί πιθανώς ανήκει στον ιδιοκτήτη\n"
 
 #, fuzzy, c-format
 msgid "  %d = I don't know or won't say\n"
-msgstr " %d = Äåí îÝñù\n"
+msgstr " %d = Δεν ξέρω\n"
 
 #, fuzzy, c-format
 msgid "  %d = I do NOT trust\n"
-msgstr " %d =  ÄÅÍ Ý÷ù åìðéóôïóýíç\n"
+msgstr " %d =  ΔΕΝ έχω εμπιστοσύνη\n"
 
 #, fuzzy, c-format
 msgid "  %d = I trust ultimately\n"
-msgstr " %d = Åìðéóôåýïìáé áðüëõôá\n"
+msgstr " %d = Εμπιστεύομαι απόλυτα\n"
 
 #, fuzzy
 msgid "  m = back to the main menu\n"
-msgstr " m = ðßóù óôï êõñßùò ìåíïý\n"
+msgstr " m = πίσω στο κυρίως μενού\n"
 
 #, fuzzy
 msgid "  s = skip this key\n"
-msgstr " s = ðáñÜëåéøç áõôïý ôïõ êëåéäéïý\n"
+msgstr " s = παράλειψη αυτού του κλειδιού\n"
 
 #, fuzzy
 msgid "  q = quit\n"
-msgstr " q = ôåñìáôéóìüò\n"
+msgstr " q = τερματισμός\n"
 
 #, c-format
 msgid ""
@@ -5055,31 +5068,46 @@ msgid ""
 msgstr ""
 
 msgid "Your decision? "
-msgstr "Ç áðüöáóç óáò; "
+msgstr "Η απόφαση σας; "
 
 #, fuzzy
 msgid "Do you really want to set this key to ultimate trust? (y/N) "
-msgstr "Óßãïõñá èÝëåôå áõôü ôï êëåéäß íá ïñéóôåß óáí áðüëõôçò åìðéóôïóýíçò; "
+msgstr "Σίγουρα θέλετε αυτό το κλειδί να οριστεί σαν απόλυτης εμπιστοσύνης; "
 
 msgid "Certificates leading to an ultimately trusted key:\n"
-msgstr "ÐéóôïðïéçôéêÜ ðïõ ïäçãïýí óå Ýíá êëåéäß áðüëõôçò åìðéóôïóýíçò:\n"
+msgstr "Πιστοποιητικά που οδηγούν σε ένα κλειδί απόλυτης εμπιστοσύνης:\n"
 
 #, fuzzy, c-format
 msgid "%s: There is no assurance this key belongs to the named user\n"
 msgstr ""
-"%08lX: Äåí õðÜñ÷åé Ýíäåéîç üôé ç õðïãñáöÞ áõôÞ áíÞêåé óôïí éäéïêôÞôç.\n"
+"%08lX: Δεν υπάρχει ένδειξη ότι η υπογραφή αυτή ανήκει στον ιδιοκτήτη.\n"
 
 #, fuzzy, c-format
 msgid "%s: There is limited assurance this key belongs to the named user\n"
 msgstr ""
-"%08lX: Äåí õðÜñ÷åé Ýíäåéîç üôé ç õðïãñáöÞ áõôÞ áíÞêåé óôïí éäéïêôÞôç.\n"
+"%08lX: Δεν υπάρχει ένδειξη ότι η υπογραφή αυτή ανήκει στον ιδιοκτήτη.\n"
 
 #, fuzzy
 msgid "This key probably belongs to the named user\n"
-msgstr "Áõôü ôï êëåéäß ðéèáíþò áíÞêåé óôïí éäéïêôÞôç\n"
+msgstr "Αυτό το κλειδί πιθανώς ανήκει στον ιδιοκτήτη\n"
 
 msgid "This key belongs to us\n"
-msgstr "Áõôü ôï êëåéäß áíÞêåé óå åìÜò\n"
+msgstr "Αυτό το κλειδί ανήκει σε εμάς\n"
+
+#, c-format
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr ""
+
+#, fuzzy
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"ΔΕΝ είναι βέβαιο ότι αυτό το κλειδί ανήκει στο άτομο το οποίο\n"
+"αναφέρετε το user ID. Εάν *πραγματικά* ξέρετε τι κάνετε, μπορείτε\n"
+"να απαντήσετε στην επόμενη ερώτηση καταφατικά\n"
+"\n"
 
 #, fuzzy
 msgid ""
@@ -5087,40 +5115,40 @@ msgid ""
 "in the user ID.  If you *really* know what you are doing,\n"
 "you may answer the next question with yes.\n"
 msgstr ""
-"ÄÅÍ åßíáé âÝâáéï üôé áõôü ôï êëåéäß áíÞêåé óôï Üôïìï ôï ïðïßï\n"
-"áíáöÝñåôå ôï user ID. ÅÜí *ðñáãìáôéêÜ* îÝñåôå ôé êÜíåôå, ìðïñåßôå\n"
-"íá áðáíôÞóåôå óôçí åðüìåíç åñþôçóç êáôáöáôéêÜ\n"
+"ΔΕΝ είναι βέβαιο ότι αυτό το κλειδί ανήκει στο άτομο το οποίο\n"
+"αναφέρετε το user ID. Εάν *πραγματικά* ξέρετε τι κάνετε, μπορείτε\n"
+"να απαντήσετε στην επόμενη ερώτηση καταφατικά\n"
 "\n"
 
 #, fuzzy
 msgid "Use this key anyway? (y/N) "
-msgstr "×ñÞóç ïðùóäÞðïôå áõôïý ôïõ êëåéäéïý; "
+msgstr "Χρήση οπωσδήποτε αυτού του κλειδιού; "
 
 msgid "WARNING: Using untrusted key!\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ×ñÞóç êëåéäéïý ÷ùñßò åìðéóôïóýíç!\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Χρήση κλειδιού χωρίς εμπιστοσύνη!\n"
 
 msgid "WARNING: this key might be revoked (revocation key not present)\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: áõôü ôï êëåéäß ìðïñåß íá áíáêëçèåß (ëåßðåé ôï êëåéäß "
-"áíÜêëçóçò)\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: αυτό το κλειδί μπορεί να ανακληθεί (λείπει το κλειδί "
+"ανάκλησης)\n"
 
 msgid "WARNING: This key has been revoked by its designated revoker!\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: Áõôü ôï êëåéäß Ý÷åé áíáêëçèåß áðü ôïí ïñéóìÝíï áíáêëçôÞ!\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Αυτό το κλειδί έχει ανακληθεί από τον ορισμένο ανακλητή!\n"
 
 msgid "WARNING: This key has been revoked by its owner!\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: Áõôü ôï êëåéäß Ý÷åé áíáêëçèåß áðü ôïí éäéïêôÞôç ôïõ!\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Αυτό το κλειδί έχει ανακληθεί από τον ιδιοκτήτη του!\n"
 
 #, fuzzy
 msgid "         This could mean that the signature is forged.\n"
-msgstr "         Áõôü ìðïñåß íá óçìáßíåé üôé ç õðïãñáöÞ åßíáé ðëáóôïãñáößá.\n"
+msgstr "         Αυτό μπορεί να σημαίνει ότι η υπογραφή είναι πλαστογραφία.\n"
 
 msgid "WARNING: This subkey has been revoked by its owner!\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: Áõôü ôï õðïêëåéäß Ý÷åé áíáêëçèåß áðü ôïí éäéïêôÞôç ôïõ!\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Αυτό το υποκλειδί έχει ανακληθεί από τον ιδιοκτήτη του!\n"
 
 msgid "Note: This key has been disabled.\n"
-msgstr "Óçìåßùóç: Áõôü ôï êëåéäß Ý÷åé áðåíåñãïðïéçèåß.\n"
+msgstr "Σημείωση: Αυτό το κλειδί έχει απενεργοποιηθεί.\n"
 
 #, c-format
 msgid "Note: Verified signer's address is '%s'\n"
@@ -5137,59 +5165,59 @@ msgid "trustlevel adjusted to NEVER due to bad PKA info\n"
 msgstr ""
 
 msgid "Note: This key has expired!\n"
-msgstr "Óçìåßùóç: Áõôü ôï êëåéäß Ý÷åé ëÞîåé!\n"
+msgstr "Σημείωση: Αυτό το κλειδί έχει λήξει!\n"
 
 msgid "WARNING: This key is not certified with a trusted signature!\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: Áõôü ôï êëåéäß äåí Ý÷åé ðéóôïðïéçèåß ìå åìðéóôåýóéìç "
-"õðïãñáöÞ!\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Αυτό το κλειδί δεν έχει πιστοποιηθεί με εμπιστεύσιμη "
+"υπογραφή!\n"
 
 msgid ""
 "         There is no indication that the signature belongs to the owner.\n"
-msgstr "         Äåí õðÜñ÷åé Ýíäåéîç üôé ç õðïãñáöÞ áíÞêåé óôïí éäéïêôÞôç.\n"
+msgstr "         Δεν υπάρχει ένδειξη ότι η υπογραφή ανήκει στον ιδιοκτήτη.\n"
 
 msgid "WARNING: We do NOT trust this key!\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ÄÅÍ åìðéóôåõüìáóôå áõôü ôï êëåéäß!\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: ΔΕΝ εμπιστευόμαστε αυτό το κλειδί!\n"
 
 msgid "         The signature is probably a FORGERY.\n"
-msgstr "         Ç õðïãñáöÞ ìÜëëïí åßíáé ðëáóôïãñáößá.\n"
+msgstr "         Η υπογραφή μάλλον είναι πλαστογραφία.\n"
 
 msgid ""
 "WARNING: This key is not certified with sufficiently trusted signatures!\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: Áõôü ôï êëåéäß äåí Ý÷åé ðéóôïðïéçèåß ìå õðïãñáöÝò\n"
-"áñêåôÞò åìðéóôïóýíçò!\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Αυτό το κλειδί δεν έχει πιστοποιηθεί με υπογραφές\n"
+"αρκετής εμπιστοσύνης!\n"
 
 msgid "         It is not certain that the signature belongs to the owner.\n"
-msgstr "         Äåí åßíáé âÝâáéï üôé ç õðïãñáöÞ áíÞêåé óôïí éäéïêôÞôç.\n"
+msgstr "         Δεν είναι βέβαιο ότι η υπογραφή ανήκει στον ιδιοκτήτη.\n"
 
 #, c-format
 msgid "%s: skipped: %s\n"
-msgstr "%s: ðáñáëåßöèçêå: %s\n"
+msgstr "%s: παραλείφθηκε: %s\n"
 
 #, c-format
 msgid "%s: skipped: public key is disabled\n"
-msgstr "%s: ðáñáëåßöèçêå: ôï äçìüóéï êëåéäß Ý÷åé áðåíåñãïðïéçèåß.\n"
+msgstr "%s: παραλείφθηκε: το δημόσιο κλειδί έχει απενεργοποιηθεί.\n"
 
 #, c-format
 msgid "%s: skipped: public key already present\n"
-msgstr "%s: ðáñáëåßöèçêå: äçìüóéï êëåéäß åßíáé Þäç ðáñüí\n"
+msgstr "%s: παραλείφθηκε: δημόσιο κλειδί είναι ήδη παρόν\n"
 
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't encrypt to '%s'\n"
-msgstr "áäõíáìßá óýíäåóçò óôï `%s': %s\n"
+msgstr "αδυναμία σύνδεσης στο `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "option '%s' given, but no valid default keys given\n"
-msgstr "ìç Ýãêõñïò áëãüñéèìïò  hash `%s'\n"
+msgstr "μη έγκυρος αλγόριθμος  hash `%s'\n"
 
 #, fuzzy, c-format
 msgid "option '%s' given, but option '%s' not given\n"
-msgstr "ìç Ýãêõñïò áëãüñéèìïò  hash `%s'\n"
+msgstr "μη έγκυρος αλγόριθμος  hash `%s'\n"
 
 msgid "You did not specify a user ID. (you may use \"-r\")\n"
-msgstr "Äåí ïñßóôçêå Ýíá user ID. (÷ñçóéìïðïéåßóôå ôï \"-r\")\n"
+msgstr "Δεν ορίστηκε ένα user ID. (χρησιμοποιείστε το \"-r\")\n"
 
 msgid "Current recipients:\n"
 msgstr ""
@@ -5199,127 +5227,127 @@ msgid ""
 "Enter the user ID.  End with an empty line: "
 msgstr ""
 "\n"
-"ÐëçêôñïëïãÞóôå ôï user ID. ÔÝëïò ìå ìéá Üäåéá ãñáììÞ: "
+"Πληκτρολογήστε το user ID. Τέλος με μια άδεια γραμμή: "
 
 msgid "No such user ID.\n"
-msgstr "Äåí õðÜñ÷åé áõôü ôï user ID.\n"
+msgstr "Δεν υπάρχει αυτό το user ID.\n"
 
 msgid "skipped: public key already set as default recipient\n"
 msgstr ""
-"ðáñáëåßöèçêå: äçìüóéï êëåéäß Ý÷åé Þäç ïñéóôåß óáí åî ïñéóìïý ðáñáëÞðôçò\n"
+"παραλείφθηκε: δημόσιο κλειδί έχει ήδη οριστεί σαν εξ ορισμού παραλήπτης\n"
 
 msgid "Public key is disabled.\n"
-msgstr "Ôï äçìüóéï êëåéäß Ý÷åé áðåíåñãïðïéçèåß.\n"
+msgstr "Το δημόσιο κλειδί έχει απενεργοποιηθεί.\n"
 
 msgid "skipped: public key already set\n"
-msgstr "ðáñáëåßöèçêå: äçìüóéï êëåéäß Ý÷åé Þäç ïñéóôåß\n"
+msgstr "παραλείφθηκε: δημόσιο κλειδί έχει ήδη οριστεί\n"
 
 #, fuzzy, c-format
 msgid "unknown default recipient \"%s\"\n"
-msgstr "Üãíùóôïò ðñïêáèïñéóìÝíïò ðáñáëÞðôçò `%s'\n"
+msgstr "άγνωστος προκαθορισμένος παραλήπτης `%s'\n"
 
 msgid "no valid addressees\n"
-msgstr "êáììßá Ýãêõñç äéåýèõíóç\n"
+msgstr "καμμία έγκυρη διεύθυνση\n"
 
 #, fuzzy, c-format
 msgid "Note: key %s has no %s feature\n"
-msgstr "êëåéäß %08lX: äåí õðÜñ÷åé áõôü ôï user ID\n"
+msgstr "κλειδί %08lX: δεν υπάρχει αυτό το user ID\n"
 
 #, fuzzy, c-format
 msgid "Note: key %s has no preference for %s\n"
-msgstr "êëåéäß %08lX: äåí õðÜñ÷åé áõôü ôï user ID\n"
+msgstr "κλειδί %08lX: δεν υπάρχει αυτό το user ID\n"
 
 msgid "data not saved; use option \"--output\" to save it\n"
-msgstr "äåäïìÝíá äåí áðïèçêåýôçêáí. ÁðïèÞêåõóç ìå ôçí åðéëïãÞ \"--output\"\n"
+msgstr "δεδομένα δεν αποθηκεύτηκαν. Αποθήκευση με την επιλογή \"--output\"\n"
 
 msgid "Detached signature.\n"
-msgstr "ÁðïêïììÝíç õðïãñáöÞ.\n"
+msgstr "Αποκομμένη υπογραφή.\n"
 
 msgid "Please enter name of data file: "
-msgstr "ÅéóÜãåôå ôï üíïìá áñ÷åßïõ äåäïìÝíùí: "
+msgstr "Εισάγετε το όνομα αρχείου δεδομένων: "
 
 msgid "reading stdin ...\n"
-msgstr "áíÜãíùóç ôçò stdin ...\n"
+msgstr "ανάγνωση της stdin ...\n"
 
 msgid "no signed data\n"
-msgstr "äåí õðÜñ÷ïõí õðïãåãñáììÝíá äåäïìÝíá\n"
+msgstr "δεν υπάρχουν υπογεγραμμένα δεδομένα\n"
 
 #, fuzzy, c-format
 #| msgid "can't open signed data `%s'\n"
 msgid "can't open signed data '%s'\n"
-msgstr "áäõíáìßá ðñüóâáóçò õðïãåãñáììÝíùí äåäïìÝíùí `%s'\n"
+msgstr "αδυναμία πρόσβασης υπογεγραμμένων δεδομένων `%s'\n"
 
 #, fuzzy, c-format
 msgid "can't open signed data fd=%d: %s\n"
-msgstr "áäõíáìßá ðñüóâáóçò õðïãåãñáììÝíùí äåäïìÝíùí `%s'\n"
+msgstr "αδυναμία πρόσβασης υπογεγραμμένων δεδομένων `%s'\n"
 
 #, fuzzy, c-format
 msgid "anonymous recipient; trying secret key %s ...\n"
-msgstr "áíþíõìïò ðáñáëÞðôçò· äïêéìÞ ìõóôéêïý êëåéäéïý %08lX ...\n"
+msgstr "ανώνυμος παραλήπτης· δοκιμή μυστικού κλειδιού %08lX ...\n"
 
 msgid "okay, we are the anonymous recipient.\n"
-msgstr "åíôÜîåé, åßìáóôå ï áíþíõìïò ðáñáëÞðôçò.\n"
+msgstr "εντάξει, είμαστε ο ανώνυμος παραλήπτης.\n"
 
 msgid "old encoding of the DEK is not supported\n"
-msgstr "ðáëáéÜ êùäéêïðïßçóç ôïõ DEK äåí õðïóôçñßæåôáé\n"
+msgstr "παλαιά κωδικοποίηση του DEK δεν υποστηρίζεται\n"
 
 #, c-format
 msgid "cipher algorithm %d%s is unknown or disabled\n"
-msgstr "ï áëãüñéèìïò êñõðôïãñÜöçóçò %d%s åßíáé Üãíùóôïò Þ áðåíåñãïðïéçìÝíïò\n"
+msgstr "ο αλγόριθμος κρυπτογράφησης %d%s είναι άγνωστος ή απενεργοποιημένος\n"
 
 #, fuzzy, c-format
 msgid "WARNING: cipher algorithm %s not found in recipient preferences\n"
-msgstr "ÓÇÌÅÉÙÓÇ: ï áëãüñéèìïò êñõðôïãñÜöçóçò %d äåí åßíáé óôéò åðéëïãÝò\n"
+msgstr "ΣΗΜΕΙΩΣΗ: ο αλγόριθμος κρυπτογράφησης %d δεν είναι στις επιλογές\n"
 
 #, fuzzy, c-format
 msgid "Note: secret key %s expired at %s\n"
-msgstr "ÓÇÌÅÉÙÓÇ: ôï ìõóôéêü êëåéäß %08lX Ýëçîå óôéò %s\n"
+msgstr "ΣΗΜΕΙΩΣΗ: το μυστικό κλειδί %08lX έληξε στις %s\n"
 
 #, fuzzy
 #| msgid "NOTE: key has been revoked"
 msgid "Note: key has been revoked"
-msgstr "ÓÇÌÅÉÙÓÇ: ôï êëåéäß Ý÷åé áíáêëçèåß"
+msgstr "ΣΗΜΕΙΩΣΗ: το κλειδί έχει ανακληθεί"
 
 #, c-format
 msgid "build_packet failed: %s\n"
-msgstr "build_packet áðÝôõ÷å: %s\n"
+msgstr "build_packet απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s has no user IDs\n"
-msgstr "êëåéäß %08lX: äåí õðÜñ÷åé áõôü ôï user ID\n"
+msgstr "κλειδί %08lX: δεν υπάρχει αυτό το user ID\n"
 
 msgid "To be revoked by:\n"
-msgstr "Ðñïò áíÜêëçóç áðü:\n"
+msgstr "Προς ανάκληση από:\n"
 
 msgid "(This is a sensitive revocation key)\n"
-msgstr "(Áõôü åßíáé Ýíá åõáßóèçôï êëåéäß áíÜêëçóçò)\n"
+msgstr "(Αυτό είναι ένα ευαίσθητο κλειδί ανάκλησης)\n"
 
 #, fuzzy
 #| msgid "Secret key is available.\n"
 msgid "Secret key is not available.\n"
-msgstr "Ôï ìõóôéêü êëåéäß åßíáé äéáèÝóéìï.\n"
+msgstr "Το μυστικό κλειδί είναι διαθέσιμο.\n"
 
 #, fuzzy
 msgid "Create a designated revocation certificate for this key? (y/N) "
-msgstr "Äçìéïõñãßá åíüò ðéóôïðïéçôéêïý áíÜêëçóçò ãéá áõôü ôï êëåéäß; "
+msgstr "Δημιουργία ενός πιστοποιητικού ανάκλησης για αυτό το κλειδί; "
 
 msgid "ASCII armored output forced.\n"
-msgstr "Åîáíáãêáóìüò åîüäïõ óå èùñáêéóìÝíï ASCII.\n"
+msgstr "Εξαναγκασμός εξόδου σε θωρακισμένο ASCII.\n"
 
 #, c-format
 msgid "make_keysig_packet failed: %s\n"
-msgstr "make_keysig_packet áðÝôõ÷å: %s\n"
+msgstr "make_keysig_packet απέτυχε: %s\n"
 
 msgid "Revocation certificate created.\n"
-msgstr "Ðéóôïðïéçôéêü áíÜêëçóçò äçìéïõñãÞèçêå.\n"
+msgstr "Πιστοποιητικό ανάκλησης δημιουργήθηκε.\n"
 
 #, fuzzy, c-format
 msgid "no revocation keys found for \"%s\"\n"
-msgstr "äå âñÝèçêáí êëåéäéÜ áíÜêëçóçò ãéá ôï `%s'\n"
+msgstr "δε βρέθηκαν κλειδιά ανάκλησης για το `%s'\n"
 
 #, fuzzy
 msgid "This is a revocation certificate for the OpenPGP key:"
-msgstr "Äçìéïõñãßá åíüò ðéóôïðïéçôéêïý áíÜêëçóçò ãéá áõôü ôï êëåéäß; "
+msgstr "Δημιουργία ενός πιστοποιητικού ανάκλησης για αυτό το κλειδί; "
 
 msgid ""
 "A revocation certificate is a kind of \"kill switch\" to publicly\n"
@@ -5344,11 +5372,11 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "Revocation certificate created.\n"
 msgid "revocation certificate stored as '%s.rev'\n"
-msgstr "Ðéóôïðïéçôéêü áíÜêëçóçò äçìéïõñãÞèçêå.\n"
+msgstr "Πιστοποιητικό ανάκλησης δημιουργήθηκε.\n"
 
 #, fuzzy, c-format
 msgid "secret key \"%s\" not found\n"
-msgstr "ôï ìõóôéêü êëåéäß `%s' äå âñÝèçêå: %s\n"
+msgstr "το μυστικό κλειδί `%s' δε βρέθηκε: %s\n"
 
 #. TRANSLATORS: The %s prints a key specification which
 #. for example has been given at the command line.  Several lines
@@ -5360,11 +5388,11 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
 msgid "error searching the keyring: %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò ôçò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία δημιουργίας της κλειδοθήκης `%s': %s\n"
 
 #, fuzzy
 msgid "Create a revocation certificate for this key? (y/N) "
-msgstr "Äçìéïõñãßá åíüò ðéóôïðïéçôéêïý áíÜêëçóçò ãéá áõôü ôï êëåéäß; "
+msgstr "Δημιουργία ενός πιστοποιητικού ανάκλησης για αυτό το κλειδί; "
 
 msgid ""
 "Revocation certificate created.\n"
@@ -5375,47 +5403,47 @@ msgid ""
 "your media become unreadable.  But have some caution:  The print system of\n"
 "your machine might store the data and make it available to others!\n"
 msgstr ""
-"Ôï ðéóôïðïéçôéêü áíÜêëçóçò äçìéïõñãÞèçêå.\n"
+"Το πιστοποιητικό ανάκλησης δημιουργήθηκε.\n"
 "\n"
-"Ðáñáêáëþ ìåôáêéíåßóôå ôï óå Ýíá ìÝóï ðïõ ìðïñåß íá êñõöôåß åýêïëá· åÜí ç\n"
-"Mallory áðïêôÞóåé ðñüóâáóç óå áõôü ôï ðéóôïðïéçôéêü ìðïñåß íá á÷ñçóôåýóåé\n"
-"ôï êëåéäß óáò. Åßíáé Ýîõðíï íá ôõðþóåôå áõôü ôï ðéóôïðïéçôéêü êáé íá ôï\n"
-"öõëÜîåôå ìáêñéÜ, ãéá ôçí ðåñßðôùóç ðïõ ôï ìÝóï äåí äéáâÜæåôå ðéá.  ÁëëÜ\n"
-"ðñïóï÷Þ ôï óýóôçìá åêôýðùóçò óôï ìç÷áíçìÜ óáò ìðïñåß íá áðïèçêåýóåé ôçí\n"
-"åêôýðùóç êáé íá ôçí êÜíåé äéáèÝóéìç óå Üëëïõò!\n"
+"Παρακαλώ μετακινείστε το σε ένα μέσο που μπορεί να κρυφτεί εύκολα· εάν η\n"
+"Mallory αποκτήσει πρόσβαση σε αυτό το πιστοποιητικό μπορεί να αχρηστεύσει\n"
+"το κλειδί σας. Είναι έξυπνο να τυπώσετε αυτό το πιστοποιητικό και να το\n"
+"φυλάξετε μακριά, για την περίπτωση που το μέσο δεν διαβάζετε πια.  Αλλά\n"
+"προσοχή το σύστημα εκτύπωσης στο μηχανημά σας μπορεί να αποθηκεύσει την\n"
+"εκτύπωση και να την κάνει διαθέσιμη σε άλλους!\n"
 
 msgid "Please select the reason for the revocation:\n"
-msgstr "Ðáñáêáëþ åðéëÝîôå ôçí áéôßá ãéá ôçí áíÜêëçóç:\n"
+msgstr "Παρακαλώ επιλέξτε την αιτία για την ανάκληση:\n"
 
 msgid "Cancel"
-msgstr "Áêýñùóç"
+msgstr "Ακύρωση"
 
 #, c-format
 msgid "(Probably you want to select %d here)\n"
-msgstr "(Ðéèáíþí íá èÝëåôå íá åðéëÝîåôå ôï %d åäþ)\n"
+msgstr "(Πιθανών να θέλετε να επιλέξετε το %d εδώ)\n"
 
 msgid "Enter an optional description; end it with an empty line:\n"
-msgstr "ÐëçêôñïëïãÞóôå ìéá ðñïáéñåôéêÞ ðåñéãñáöÞ· ôÝëïò ìå ìéá Üäåéá ãñáììÞ:\n"
+msgstr "Πληκτρολογήστε μια προαιρετική περιγραφή· τέλος με μια άδεια γραμμή:\n"
 
 #, c-format
 msgid "Reason for revocation: %s\n"
-msgstr "Áéôßá ãéá áíÜêëçóç: %s\n"
+msgstr "Αιτία για ανάκληση: %s\n"
 
 msgid "(No description given)\n"
-msgstr "(Äåí äþèçêå ðåñéãñáöÞ)\n"
+msgstr "(Δεν δώθηκε περιγραφή)\n"
 
 #, fuzzy
 msgid "Is this okay? (y/N) "
-msgstr "Åßíáé áõôü åíôÜîåé; "
+msgstr "Είναι αυτό εντάξει; "
 
 msgid "weak key created - retrying\n"
-msgstr "äçìéïõñãÞèçêå áäýíáìï êëåéäß - åðáíÜëçøç ðñïóðÜèåéáò\n"
+msgstr "δημιουργήθηκε αδύναμο κλειδί - επανάληψη προσπάθειας\n"
 
 #, c-format
 msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
 msgstr ""
-"áäõíáìßá áðïöõãÞò áäýíáìïõ êëåéäéïý ãéá óõììåôñéêü êñõðôáëãüñéèìï, äïêéìÞ "
-"ãéá %d öïñÝò!\n"
+"αδυναμία αποφυγής αδύναμου κλειδιού για συμμετρικό κρυπταλγόριθμο, δοκιμή "
+"για %d φορές!\n"
 
 #, c-format
 msgid "%s key %s uses an unsafe (%zu bit) hash\n"
@@ -5426,39 +5454,39 @@ msgid "%s key %s requires a %zu bit or larger hash (hash is %s)\n"
 msgstr ""
 
 msgid "WARNING: signature digest conflict in message\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: óýãêñïõóç õðïãñáöÞò ðåñßëçøçò óôï ìÞíõìá\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: σύγκρουση υπογραφής περίληψης στο μήνυμα\n"
 
 #, fuzzy, c-format
 msgid "WARNING: signing subkey %s is not cross-certified\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ôï õðïãñÜöùí õðïêëåéäß %08lX äåí Ý÷åé êáô' áíôéðáñÜóôáóç "
-"ðéóôïðïéçèåß\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: το υπογράφων υποκλειδί %08lX δεν έχει κατ' αντιπαράσταση "
+"πιστοποιηθεί\n"
 
 #, fuzzy, c-format
 msgid "please see %s for more information\n"
-msgstr " i = áðåéêüíéóç ðåñéóóüôåñùí ðëçñïöïñéþí\n"
+msgstr " i = απεικόνιση περισσότερων πληροφοριών\n"
 
 #, fuzzy, c-format
 msgid "WARNING: signing subkey %s has an invalid cross-certification\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ôï õðïãñÜöùí õðïêëåéäß %08lX Ý÷åé Üêõñç êáô' áíôéðáñÜóôáóç "
-"ðéóôïðïßçóç\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: το υπογράφων υποκλειδί %08lX έχει άκυρη κατ' αντιπαράσταση "
+"πιστοποίηση\n"
 
 #, fuzzy, c-format
 msgid "public key %s is %lu second newer than the signature\n"
 msgid_plural "public key %s is %lu seconds newer than the signature\n"
 msgstr[0] ""
-"ôï äçìüóéï êëåéäß %08lX åßíáé %lu äåõôåñüëåðôï íåüôåñï áðü ôçí õðïãñáöÞ\n"
+"το δημόσιο κλειδί %08lX είναι %lu δευτερόλεπτο νεότερο από την υπογραφή\n"
 msgstr[1] ""
-"ôï äçìüóéï êëåéäß %08lX åßíáé %lu äåõôåñüëåðôï íåüôåñï áðü ôçí õðïãñáöÞ\n"
+"το δημόσιο κλειδί %08lX είναι %lu δευτερόλεπτο νεότερο από την υπογραφή\n"
 
 #, fuzzy, c-format
 msgid "public key %s is %lu day newer than the signature\n"
 msgid_plural "public key %s is %lu days newer than the signature\n"
 msgstr[0] ""
-"ôï äçìüóéï êëåéäß %08lX åßíáé %lu äåõôåñüëåðôï íåüôåñï áðü ôçí õðïãñáöÞ\n"
+"το δημόσιο κλειδί %08lX είναι %lu δευτερόλεπτο νεότερο από την υπογραφή\n"
 msgstr[1] ""
-"ôï äçìüóéï êëåéäß %08lX åßíáé %lu äåõôåñüëåðôï íåüôåñï áðü ôçí õðïãñáöÞ\n"
+"το δημόσιο κλειδί %08lX είναι %lu δευτερόλεπτο νεότερο από την υπογραφή\n"
 
 #, fuzzy, c-format
 msgid ""
@@ -5466,258 +5494,258 @@ msgid ""
 msgid_plural ""
 "key %s was created %lu seconds in the future (time warp or clock problem)\n"
 msgstr[0] ""
-"ôï êëåéäß äçìéïõñãÞèçêå %lu äåõôåñüëåðôï óôï ìÝëëïí (÷ñïíïäßíç Þ\n"
-"áðëþò ðñüâëçìá óôï ñïëüé)\n"
+"το κλειδί δημιουργήθηκε %lu δευτερόλεπτο στο μέλλον (χρονοδίνη ή\n"
+"απλώς πρόβλημα στο ρολόι)\n"
 msgstr[1] ""
-"ôï êëåéäß äçìéïõñãÞèçêå %lu äåõôåñüëåðôï óôï ìÝëëïí (÷ñïíïäßíç Þ\n"
-"áðëþò ðñüâëçìá óôï ñïëüé)\n"
+"το κλειδί δημιουργήθηκε %lu δευτερόλεπτο στο μέλλον (χρονοδίνη ή\n"
+"απλώς πρόβλημα στο ρολόι)\n"
 
 #, fuzzy, c-format
 msgid "key %s was created %lu day in the future (time warp or clock problem)\n"
 msgid_plural ""
 "key %s was created %lu days in the future (time warp or clock problem)\n"
 msgstr[0] ""
-"ôï êëåéäß äçìéïõñãÞèçêå %lu äåõôåñüëåðôï óôï ìÝëëïí (÷ñïíïäßíç Þ\n"
-"áðëþò ðñüâëçìá óôï ñïëüé)\n"
+"το κλειδί δημιουργήθηκε %lu δευτερόλεπτο στο μέλλον (χρονοδίνη ή\n"
+"απλώς πρόβλημα στο ρολόι)\n"
 msgstr[1] ""
-"ôï êëåéäß äçìéïõñãÞèçêå %lu äåõôåñüëåðôï óôï ìÝëëïí (÷ñïíïäßíç Þ\n"
-"áðëþò ðñüâëçìá óôï ñïëüé)\n"
+"το κλειδί δημιουργήθηκε %lu δευτερόλεπτο στο μέλλον (χρονοδίνη ή\n"
+"απλώς πρόβλημα στο ρολόι)\n"
 
 #, fuzzy, c-format
 msgid "Note: signature key %s expired %s\n"
-msgstr "ÓÇÌÅÉÙÓÇ: ôï êëåéäß õðïãñáöÞò %08lX Ýëçîå óôéò %s\n"
+msgstr "ΣΗΜΕΙΩΣΗ: το κλειδί υπογραφής %08lX έληξε στις %s\n"
 
 #, fuzzy, c-format
 msgid "Note: signature key %s has been revoked\n"
-msgstr "ÓÇÌÅÉÙÓÇ: ôï êëåéäß Ý÷åé áíáêëçèåß"
+msgstr "ΣΗΜΕΙΩΣΗ: το κλειδί έχει ανακληθεί"
 
 #, fuzzy, c-format
 msgid "assuming bad signature from key %s due to an unknown critical bit\n"
-msgstr "õðüèåóç êáêÞò õðïãñáöÞò áðü êëåéäß %08lX ëüãù Üãíùóôïõ êñßóéìïõ bit\n"
+msgstr "υπόθεση κακής υπογραφής από κλειδί %08lX λόγω άγνωστου κρίσιμου bit\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for subkey revocation signature\n"
-msgstr "êëåéäß %08lX: êáíÝíá õðïêëåéäß ãéá ôï ðáêÝôï áíÜêëçóçò õðïêëåéäéïý\n"
+msgstr "κλειδί %08lX: κανένα υποκλειδί για το πακέτο ανάκλησης υποκλειδιού\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for subkey binding signature\n"
-msgstr "êëåéäß %08lX: äåí õðÜñ÷åé õðïêëåéäß ãéá ôç äÝóìåõóç õðïêëåéäéïý\n"
+msgstr "κλειδί %08lX: δεν υπάρχει υποκλειδί για τη δέσμευση υποκλειδιού\n"
 
 #, c-format
 msgid "WARNING: unable to %%-expand notation (too large).  Using unexpanded.\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: áäõíáìßá óôçí %%-áíÜðôõîç óçìåßùóçò (ðïëõ ìåãÜëç).\n"
-"               ×ñÞóç ìç áíåðôõãìÝíïõ.\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: αδυναμία στην %%-ανάπτυξη σημείωσης (πολυ μεγάλη).\n"
+"               Χρήση μη ανεπτυγμένου.\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: unable to %%-expand policy URL (too large).  Using unexpanded.\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: áäõíáìßá óôç %%-áíÜðôõîç ôïõ url ðïëéôéêÞò (ðïëõ ìåãÜëï).\n"
-"               ×ñÞóç ìç áíåðôõãìÝíïõ.\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: αδυναμία στη %%-ανάπτυξη του url πολιτικής (πολυ μεγάλο).\n"
+"               Χρήση μη ανεπτυγμένου.\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: unable to %%-expand preferred keyserver URL (too large).  Using "
 "unexpanded.\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: áäõíáìßá óôç %%-áíÜðôõîç ôïõ url ðïëéôéêÞò (ðïëõ ìåãÜëï).\n"
-"               ×ñÞóç ìç áíåðôõãìÝíïõ.\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: αδυναμία στη %%-ανάπτυξη του url πολιτικής (πολυ μεγάλο).\n"
+"               Χρήση μη ανεπτυγμένου.\n"
 
 #, fuzzy, c-format
 msgid "%s/%s signature from: \"%s\"\n"
-msgstr "%s õðïãñáöÞ áðü: \"%s\"\n"
+msgstr "%s υπογραφή από: \"%s\"\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: forcing digest algorithm %s (%d) violates recipient preferences\n"
 msgstr ""
-"ï åîáíáãêáóìüò ôïõ áëãüñéèìïõ ðåñßëçøçò %s (%d) ðáñáâéÜæåé ôéò\n"
-"ðñïåðéëïãÝò ôïõ ðáñáëÞðôç\n"
+"ο εξαναγκασμός του αλγόριθμου περίληψης %s (%d) παραβιάζει τις\n"
+"προεπιλογές του παραλήπτη\n"
 
 msgid "signing:"
-msgstr "õðïãñáöÞ:"
+msgstr "υπογραφή:"
 
 #, c-format
 msgid "%s encryption will be used\n"
-msgstr "%s êñõðôïãñÜöçóç èá ÷ñçóéìïðïéçèåß\n"
+msgstr "%s κρυπτογράφηση θα χρησιμοποιηθεί\n"
 
 msgid "key is not flagged as insecure - can't use it with the faked RNG!\n"
 msgstr ""
-"ôï êëåéäß äåí Ý÷åé óçìåéùèåß óáí áíáóöáëÝò - äåí ìðïñåß íá ÷ñçóéìïðïéçèåß ìå "
-"øåýôéêç RNG!\n"
+"το κλειδί δεν έχει σημειωθεί σαν ανασφαλές - δεν μπορεί να χρησιμοποιηθεί με "
+"ψεύτικη RNG!\n"
 
 #, fuzzy, c-format
 msgid "skipped \"%s\": duplicated\n"
-msgstr "ðáñáëåßöèçêå `%s': áíôéãñÜöôçêå\n"
+msgstr "παραλείφθηκε `%s': αντιγράφτηκε\n"
 
 msgid "skipped: secret key already present\n"
-msgstr "ðáñáëåßöèçêå: ìõóôéêü êëåéäß Þäç ðáñþí\n"
+msgstr "παραλείφθηκε: μυστικό κλειδί ήδη παρών\n"
 
 #, fuzzy
 msgid "this is a PGP generated Elgamal key which is not secure for signatures!"
 msgstr ""
-"ðáñáëåßöèçêå `%s': áõôü åßíáé äçìéïõñãçìÝíï áðü PGP êëåéäß ElGamal êáé äåí "
-"åßíáé áóöáëÝò ãéá õðïãñáöÝò!\n"
+"παραλείφθηκε `%s': αυτό είναι δημιουργημένο από PGP κλειδί ElGamal και δεν "
+"είναι ασφαλές για υπογραφές!\n"
 
 #, c-format
 msgid "trust record %lu, type %d: write failed: %s\n"
-msgstr "åããñáöÞ trust %lu, ôýðïò %d: write áðÝôõ÷å: %s\n"
+msgstr "εγγραφή trust %lu, τύπος %d: write απέτυχε: %s\n"
 
 #, c-format
 msgid ""
 "# List of assigned trustvalues, created %s\n"
 "# (Use \"gpg --import-ownertrust\" to restore them)\n"
 msgstr ""
-"# Ëßóôá ôùí êáèïñéóìÝíùí ôéìþí åìðéóôïóýíçò, äçìéïõñãÞèçêå %s\n"
-"# (×ñÞóç ôïõ \"gpg --import-ownertrust\" ãéá åðáíáöïñÜ ôïõò)\n"
+"# Λίστα των καθορισμένων τιμών εμπιστοσύνης, δημιουργήθηκε %s\n"
+"# (Χρήση του \"gpg --import-ownertrust\" για επαναφορά τους)\n"
 
 #, fuzzy, c-format
 msgid "error in '%s': %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy
 msgid "line too long"
-msgstr "ç ãñáììÞ åßíáé ðïëý ìåãÜëç\n"
+msgstr "η γραμμή είναι πολύ μεγάλη\n"
 
 msgid "colon missing"
 msgstr ""
 
 #, fuzzy
 msgid "invalid fingerprint"
-msgstr "óöÜëìá: ìç Ýãêõñï áðïôýðùìá\n"
+msgstr "σφάλμα: μη έγκυρο αποτύπωμα\n"
 
 #, fuzzy
 msgid "ownertrust value missing"
-msgstr "åéóáãùãÞ ôùí ôéìþí åìðéóôïóýíçò"
+msgstr "εισαγωγή των τιμών εμπιστοσύνης"
 
 #, fuzzy, c-format
 msgid "error finding trust record in '%s': %s\n"
-msgstr "óöÜëìá óôçí åýñåóç ôçò åããñáöÞò åìðéóôïóýíçò: %s\n"
+msgstr "σφάλμα στην εύρεση της εγγραφής εμπιστοσύνης: %s\n"
 
 #, fuzzy, c-format
 msgid "read error in '%s': %s\n"
-msgstr "óöÜëìá áíÜãíùóçò: %s\n"
+msgstr "σφάλμα ανάγνωσης: %s\n"
 
 #, c-format
 msgid "trustdb: sync failed: %s\n"
-msgstr "trustdb: sync áðÝôõ÷å: %s\n"
+msgstr "trustdb: sync απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "can't create lock for '%s'\n"
-msgstr "áäõíáìßá äçìéïõñãßáò ôïõ `%s': %s\n"
+msgstr "αδυναμία δημιουργίας του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "can't lock '%s'\n"
-msgstr "áäõíáìßá ðñüóâáóçò ôïõ `%s'\n"
+msgstr "αδυναμία πρόσβασης του `%s'\n"
 
 #, c-format
 msgid "trustdb rec %lu: lseek failed: %s\n"
-msgstr "trustdb rec %lu: áðïôõ÷ßá lseek: %s\n"
+msgstr "trustdb rec %lu: αποτυχία lseek: %s\n"
 
 #, c-format
 msgid "trustdb rec %lu: write failed (n=%d): %s\n"
-msgstr "trustdb rec %lu: áðïôõ÷ßá write (n=%d): %s\n"
+msgstr "trustdb rec %lu: αποτυχία write (n=%d): %s\n"
 
 msgid "trustdb transaction too large\n"
-msgstr "ðïëý ìåãÜëç óõíáëëáãÞ trustdb\n"
+msgstr "πολύ μεγάλη συναλλαγή trustdb\n"
 
 #, c-format
 msgid "%s: directory does not exist!\n"
-msgstr "%s: ï öÜêåëïò äåí õðÜñ÷åé!\n"
+msgstr "%s: ο φάκελος δεν υπάρχει!\n"
 
 #, fuzzy, c-format
 msgid "can't access '%s': %s\n"
-msgstr "áäõíáìßá êëåéóßìáôïò ôïõ `%s': %s\n"
+msgstr "αδυναμία κλεισίματος του `%s': %s\n"
 
 #, c-format
 msgid "%s: failed to create version record: %s"
-msgstr "%s: áðïôõ÷ßá äçìéïõñãßáò ìéáò åããñáöÞò Ýêäïóçò: %s"
+msgstr "%s: αποτυχία δημιουργίας μιας εγγραφής έκδοσης: %s"
 
 #, c-format
 msgid "%s: invalid trustdb created\n"
-msgstr "%s: äçìéïõñãÞèçêå ìç Ýãêõñç trustdb\n"
+msgstr "%s: δημιουργήθηκε μη έγκυρη trustdb\n"
 
 #, c-format
 msgid "%s: trustdb created\n"
-msgstr "%s: äçìéïõñãÞèçêå ç trustdb\n"
+msgstr "%s: δημιουργήθηκε η trustdb\n"
 
 #, fuzzy
 #| msgid "NOTE: trustdb not writable\n"
 msgid "Note: trustdb not writable\n"
-msgstr "ÓÇÌÅÉÙÓÇ: ç trustdb äåí åßíáé åããñÜøéìç\n"
+msgstr "ΣΗΜΕΙΩΣΗ: η trustdb δεν είναι εγγράψιμη\n"
 
 #, c-format
 msgid "%s: invalid trustdb\n"
-msgstr "%s: ìç Ýãêõñç trustdb\n"
+msgstr "%s: μη έγκυρη trustdb\n"
 
 #, c-format
 msgid "%s: failed to create hashtable: %s\n"
-msgstr "%s: áäõíáìßá äçìéïõñãßáò hashtable: %s\n"
+msgstr "%s: αδυναμία δημιουργίας hashtable: %s\n"
 
 #, c-format
 msgid "%s: error updating version record: %s\n"
-msgstr "%s: óöÜëìá óôçí åíçìÝñùóç ôçò åããñáöÞò Ýêäïóçò: %s\n"
+msgstr "%s: σφάλμα στην ενημέρωση της εγγραφής έκδοσης: %s\n"
 
 #, c-format
 msgid "%s: error reading version record: %s\n"
-msgstr "%s: óöÜëìá óôçí áíÜãíùóç ôçò åããñáöÞò Ýêäïóçò: %s\n"
+msgstr "%s: σφάλμα στην ανάγνωση της εγγραφής έκδοσης: %s\n"
 
 #, c-format
 msgid "%s: error writing version record: %s\n"
-msgstr "%s: óöÜëìá óôçí åããñáöÞ ôçò åããñáöÞò Ýêäïóçò: %s\n"
+msgstr "%s: σφάλμα στην εγγραφή της εγγραφής έκδοσης: %s\n"
 
 #, c-format
 msgid "trustdb: lseek failed: %s\n"
-msgstr "trustdb: áðÝôõ÷å lseek: %s\n"
+msgstr "trustdb: απέτυχε lseek: %s\n"
 
 #, c-format
 msgid "trustdb: read failed (n=%d): %s\n"
-msgstr "trustdb: read áðÝôõ÷å (n=%d): %s\n"
+msgstr "trustdb: read απέτυχε (n=%d): %s\n"
 
 #, c-format
 msgid "%s: not a trustdb file\n"
-msgstr "%s: äåí åßíáé trustdb áñ÷åßï\n"
+msgstr "%s: δεν είναι trustdb αρχείο\n"
 
 #, c-format
 msgid "%s: version record with recnum %lu\n"
-msgstr "%s: åããñáöÞ Ýêäïóçò ìå recnum %lu\n"
+msgstr "%s: εγγραφή έκδοσης με recnum %lu\n"
 
 #, c-format
 msgid "%s: invalid file version %d\n"
-msgstr "%s: ìç Ýãêõñç Ýêäïóç áñ÷åßïõ %d\n"
+msgstr "%s: μη έγκυρη έκδοση αρχείου %d\n"
 
 #, c-format
 msgid "%s: error reading free record: %s\n"
-msgstr "%s: óöÜëìá óôçí áíÜãíùóç ôçò åããñáöÞò free : %s\n"
+msgstr "%s: σφάλμα στην ανάγνωση της εγγραφής free : %s\n"
 
 #, c-format
 msgid "%s: error writing dir record: %s\n"
-msgstr "%s: óöÜëìá óôçí åããñáöÞ ôçò åããñáöÞò dir : %s\n"
+msgstr "%s: σφάλμα στην εγγραφή της εγγραφής dir : %s\n"
 
 #, c-format
 msgid "%s: failed to zero a record: %s\n"
-msgstr "%s: áðïôõ÷ßá óôïí ìçäåíéóìü ìéáò åããñáöÞò: %s\n"
+msgstr "%s: αποτυχία στον μηδενισμό μιας εγγραφής: %s\n"
 
 #, c-format
 msgid "%s: failed to append a record: %s\n"
-msgstr "%s: áðïôõ÷ßá óôçí ðñïóèÞêç ìéáò åããñáöÞò: %s\n"
+msgstr "%s: αποτυχία στην προσθήκη μιας εγγραφής: %s\n"
 
 #, fuzzy
 msgid "Error: The trustdb is corrupted.\n"
-msgstr "%s: äçìéïõñãÞèçêå ç trustdb\n"
+msgstr "%s: δημιουργήθηκε η trustdb\n"
 
 #, c-format
 msgid "can't handle text lines longer than %d characters\n"
-msgstr "áäõíáìßá ÷åéñéóìïý ãñáììþí êåéìÝíïõ ìåãáëýôåñåò áðü %d ÷áñáêôÞñåò\n"
+msgstr "αδυναμία χειρισμού γραμμών κειμένου μεγαλύτερες από %d χαρακτήρες\n"
 
 #, c-format
 msgid "input line longer than %d characters\n"
-msgstr "ãñáììÞ åéóüäïõ ìåãáëýôåñç áðü %d ÷áñáêôÞñåò\n"
+msgstr "γραμμή εισόδου μεγαλύτερη από %d χαρακτήρες\n"
 
 #, fuzzy, c-format
 msgid "error beginning transaction on TOFU database: %s\n"
-msgstr "óöÜëìá óôç áðïóôïëÞ ðñïò ôï `%s': %s\n"
+msgstr "σφάλμα στη αποστολή προς το `%s': %s\n"
 
 #, c-format
 msgid "error committing transaction on TOFU database: %s\n"
@@ -5731,61 +5759,65 @@ msgstr ""
 msgid "unsupported TOFU database version: %s\n"
 msgstr ""
 "\n"
-"Õðïóôçñéæüìåíïé áëãüñéèìïé:\n"
+"Υποστηριζόμενοι αλγόριθμοι:\n"
 
 #, fuzzy, c-format
 msgid "error reading TOFU database: %s\n"
-msgstr "óöÜëìá óôç áðïóôïëÞ ðñïò ôï `%s': %s\n"
+msgstr "σφάλμα στη αποστολή προς το `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing secret keyring `%s': %s\n"
 msgid "error determining TOFU database's version: %s\n"
-msgstr "áäõíáìßá åããñáöÞò ìõóôéêÞò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία εγγραφής μυστικής κλειδοθήκης `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "%s: error writing dir record: %s\n"
 msgid "error initializing TOFU database: %s\n"
-msgstr "%s: óöÜëìá óôçí åããñáöÞ ôçò åããñáöÞò dir : %s\n"
+msgstr "%s: σφάλμα στην εγγραφή της εγγραφής dir : %s\n"
 
 #, fuzzy, c-format
 msgid "error opening TOFU database '%s': %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error updating TOFU database: %s\n"
-msgstr "óöÜëìá óôç áðïóôïëÞ ðñïò ôï `%s': %s\n"
+msgstr "σφάλμα στη αποστολή προς το `%s': %s\n"
 
 #, c-format
-msgid "The binding %s is NOT known."
+msgid ""
+"This is the first time the email address \"%s\" is being used with key %s."
 msgstr ""
 
 #, c-format
-msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr ""
+
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error gathering other user IDs: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr ""
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "απεικόνιση των κλειδιών και των user ID"
 
 #, fuzzy, c-format
 #| msgid "Policy: "
 msgid "policy: %s"
-msgstr "ÐïëéôéêÞ: "
+msgstr "Πολιτική: "
 
 #, fuzzy, c-format
 msgid "error gathering signature stats: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, c-format
 msgid "The email address \"%s\" is associated with %d key:\n"
@@ -5797,41 +5829,47 @@ msgstr[1] ""
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr ""
 
+msgid ", "
+msgstr ""
+
 #, fuzzy
 #| msgid "list keys"
 msgid "this key"
-msgstr "áðåéêüíéóç ôçò ëßóôáò êëåéäéþí"
+msgstr "απεικόνιση της λίστας κλειδιών"
+
+#, fuzzy, c-format
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
+msgstr[0] "|αλγόρ [αρχεία]| απεικόνιση περιλήψεων των μηνυμάτων"
+msgstr[1] "|αλγόρ [αρχεία]| απεικόνιση περιλήψεων των μηνυμάτων"
 
 #, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
 msgstr[0] ""
 msgstr[1] ""
 
-#, fuzzy, c-format
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
-msgstr[0] "|áëãüñ [áñ÷åßá]| áðåéêüíéóç ðåñéëÞøåùí ôùí ìçíõìÜôùí"
-msgstr[1] "|áëãüñ [áñ÷åßá]| áðåéêüíéóç ðåñéëÞøåùí ôùí ìçíõìÜôùí"
-
 #, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+msgid " over the past year."
+msgid_plural " over the past %d years."
 msgstr[0] ""
 msgstr[1] ""
 
+msgid " in the past."
+msgstr ""
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5847,13 +5885,23 @@ msgstr ""
 msgid "(G)ood, (A)ccept once, (U)nknown, (R)eject once, (B)ad? "
 msgstr ""
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "resetting keydb: %s\n"
+msgstr "αδυναμία εγγραφής της κλειδοθήκης `%s': %s\n"
+
 #, fuzzy, c-format
 msgid "error setting TOFU binding's trust level to %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error changing TOFU policy: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #. TRANSLATORS: The tilde ('~') is used here to indicate a
 #. * non-breakable space
@@ -5894,50 +5942,56 @@ msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
+msgid "%s: "
 msgstr ""
 
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
-msgstr ""
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "Διαγράφηκαν %d υπογραφές.\n"
 
 #, fuzzy, c-format
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "|áëãüñ [áñ÷åßá]| áðåéêüíéóç ðåñéëÞøåùí ôùí ìçíõìÜôùí"
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
+msgstr[0] "|αλγόρ [αρχεία]| απεικόνιση περιλήψεων των μηνυμάτων"
+msgstr[1] "|αλγόρ [αρχεία]| απεικόνιση περιλήψεων των μηνυμάτων"
+
+#, fuzzy, c-format
+#| msgid "encrypted with %lu passphrases\n"
+msgid ", and encrypted %ld messages"
+msgstr "κρυπτογραφημένο με %lu φράσεις κλειδιά\n"
+
+#, fuzzy, c-format
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] "|αλγόρ [αρχεία]| απεικόνιση περιλήψεων των μηνυμάτων"
+msgstr[1] "|αλγόρ [αρχεία]| απεικόνιση περιλήψεων των μηνυμάτων"
 
-#, c-format
 msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
-msgstr[0] ""
-msgstr[1] ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
+msgstr ""
 
-#, c-format
-msgid "The most recent message was verified %s ago."
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
 msgstr ""
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
 msgstr ""
 
 #, c-format
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -5945,38 +5999,47 @@ msgstr[1] ""
 
 #, fuzzy, c-format
 msgid "error opening TOFU database: %s\n"
-msgstr "óöÜëìá óôç áðïóôïëÞ ðñïò ôï `%s': %s\n"
+msgstr "σφάλμα στη αποστολή προς το `%s': %s\n"
+
+#, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring `%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "αδυναμία εγγραφής δημόσιας κλειδοθήκης `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "`%s' is not a valid long keyID\n"
 msgid "'%s' is not a valid long keyID\n"
-msgstr "`%s' äåí åßíáé Ýãêõñï ìáêñý keyID\n"
+msgstr "`%s' δεν είναι έγκυρο μακρύ keyID\n"
 
 #, fuzzy, c-format
 msgid "key %s: accepted as trusted key\n"
-msgstr "êëåéäß %08lX: áðïäï÷Þ óáí êëåéäß ìå åìðéóôïóýíç\n"
+msgstr "κλειδί %08lX: αποδοχή σαν κλειδί με εμπιστοσύνη\n"
 
 #, fuzzy, c-format
 msgid "key %s occurs more than once in the trustdb\n"
-msgstr "ôï êëåéäß %08lX õðÜñ÷åé ðÜíù áðü ìéá öïñÜ óôçí trustdb\n"
+msgstr "το κλειδί %08lX υπάρχει πάνω από μια φορά στην trustdb\n"
 
 #, fuzzy, c-format
 msgid "key %s: no public key for trusted key - skipped\n"
 msgstr ""
-"êëåéäß %08lX: êáíÝíá äçìüóéï êëåéäß ãéá ôï êëåéäß ìå åìðéóôïóýíç - "
-"ðáñÜëåéøç\n"
+"κλειδί %08lX: κανένα δημόσιο κλειδί για το κλειδί με εμπιστοσύνη - "
+"παράλειψη\n"
 
 #, fuzzy, c-format
 msgid "key %s marked as ultimately trusted\n"
-msgstr "óçìåßùóç êëåéäéïý óáí áðüëõôçò åìðéóôïóýíçò.\n"
+msgstr "σημείωση κλειδιού σαν απόλυτης εμπιστοσύνης.\n"
 
 #, c-format
 msgid "trust record %lu, req type %d: read failed: %s\n"
-msgstr "åããñáöÞ trust %lu, req ôýðïò %d: read áðÝôõ÷å: %s\n"
+msgstr "εγγραφή trust %lu, req τύπος %d: read απέτυχε: %s\n"
 
 #, c-format
 msgid "trust record %lu is not of requested type %d\n"
-msgstr "ç åããñáöÞ trust %lu äåí åßíáé ôïõ æçôïýìåíïõ ôýðïõ %d\n"
+msgstr "η εγγραφή trust %lu δεν είναι του ζητούμενου τύπου %d\n"
 
 msgid "You may try to re-create the trustdb using the commands:\n"
 msgstr ""
@@ -5993,50 +6056,50 @@ msgid "using %s trust model\n"
 msgstr ""
 
 msgid "no need for a trustdb check\n"
-msgstr "äåí õðÜñ÷åé áíÜãêç ãéá Ýëåã÷ï ôçò trustdb\n"
+msgstr "δεν υπάρχει ανάγκη για έλεγχο της trustdb\n"
 
 #, c-format
 msgid "next trustdb check due at %s\n"
-msgstr "åðüìåíïò Ýëåã÷ïò ôçò trustdb èá ãßíåé óôéò %s\n"
+msgstr "επόμενος έλεγχος της trustdb θα γίνει στις %s\n"
 
 #, fuzzy, c-format
 msgid "no need for a trustdb check with '%s' trust model\n"
-msgstr "äåí õðÜñ÷åé áíÜãêç ãéá Ýëåã÷ï ôçò trustdb\n"
+msgstr "δεν υπάρχει ανάγκη για έλεγχο της trustdb\n"
 
 #, fuzzy, c-format
 msgid "no need for a trustdb update with '%s' trust model\n"
-msgstr "äåí õðÜñ÷åé áíÜãêç ãéá Ýëåã÷ï ôçò trustdb\n"
+msgstr "δεν υπάρχει ανάγκη για έλεγχο της trustdb\n"
 
 #, fuzzy, c-format
 msgid "public key %s not found: %s\n"
-msgstr "ôï äçìüóéï êëåéäß %08lX äåí âñÝèçêå: %s\n"
+msgstr "το δημόσιο κλειδί %08lX δεν βρέθηκε: %s\n"
 
 msgid "please do a --check-trustdb\n"
-msgstr "ðáñáêáëþ êÜíôå Ýíá --check-trustdb\n"
+msgstr "παρακαλώ κάντε ένα --check-trustdb\n"
 
 msgid "checking the trustdb\n"
-msgstr "Ýëåã÷ïò ôçò trustdb\n"
+msgstr "έλεγχος της trustdb\n"
 
 #, fuzzy, c-format
 msgid "%d key processed"
 msgid_plural "%d keys processed"
-msgstr[0] "%lu êëåéäéÜ Ý÷ïõí ìÝ÷ñé ôþñá åðåîåñãáóôåß\n"
-msgstr[1] "%lu êëåéäéÜ Ý÷ïõí ìÝ÷ñé ôþñá åðåîåñãáóôåß\n"
+msgstr[0] "%lu κλειδιά έχουν μέχρι τώρα επεξεργαστεί\n"
+msgstr[1] "%lu κλειδιά έχουν μέχρι τώρα επεξεργαστεί\n"
 
 #, fuzzy, c-format
 #| msgid "%d keys processed (%d validity counts cleared)\n"
 msgid " (%d validity count cleared)\n"
 msgid_plural " (%d validity counts cleared)\n"
-msgstr[0] "%d êëåéäéÜ åðåîåñãÜóôçêáí (%d ìåôñÞóåéò åããõñüôçôáò ðÝñáóáí)\n"
-msgstr[1] "%d êëåéäéÜ åðåîåñãÜóôçêáí (%d ìåôñÞóåéò åããõñüôçôáò ðÝñáóáí)\n"
+msgstr[0] "%d κλειδιά επεξεργάστηκαν (%d μετρήσεις εγγυρότητας πέρασαν)\n"
+msgstr[1] "%d κλειδιά επεξεργάστηκαν (%d μετρήσεις εγγυρότητας πέρασαν)\n"
 
 msgid "no ultimately trusted keys found\n"
-msgstr "äå âñÝèçêáí áðüëõôá åìðéóôåýóéìá êëåéäéÜ\n"
+msgstr "δε βρέθηκαν απόλυτα εμπιστεύσιμα κλειδιά\n"
 
 #, fuzzy, c-format
 msgid "public key of ultimately trusted key %s not found\n"
 msgstr ""
-"äå âñÝèçêå ôï äçìüóéï êëåéäß ôïõ áðüëõôá åìðéóôåýóéìïõ êëåéäéïý %08lX\n"
+"δε βρέθηκε το δημόσιο κλειδί του απόλυτα εμπιστεύσιμου κλειδιού %08lX\n"
 
 #, c-format
 msgid ""
@@ -6045,14 +6108,14 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "unable to update trustdb version record: write failed: %s\n"
-msgstr "åããñáöÞ trust %lu, ôýðïò %d: write áðÝôõ÷å: %s\n"
+msgstr "εγγραφή trust %lu, τύπος %d: write απέτυχε: %s\n"
 
 msgid "undefined"
 msgstr ""
 
 #, fuzzy
 msgid "never"
-msgstr "ðïôÝ     "
+msgstr "ποτέ     "
 
 msgid "marginal"
 msgstr ""
@@ -6076,22 +6139,22 @@ msgstr ""
 
 #, fuzzy
 msgid "[ revoked]"
-msgstr "[áíáêëçìÝíï]"
+msgstr "[ανακλημένο]"
 
 #, fuzzy
 msgid "[ expired]"
-msgstr "[ëçãìÝíï]"
+msgstr "[ληγμένο]"
 
 #, fuzzy
 msgid "[ unknown]"
-msgstr "Üãíùóôï"
+msgstr "άγνωστο"
 
 msgid "[  undef ]"
 msgstr ""
 
 #, fuzzy
 msgid "[  never ]"
-msgstr "ðïôÝ     "
+msgstr "ποτέ     "
 
 msgid "[marginal]"
 msgstr ""
@@ -6107,17 +6170,17 @@ msgid ""
 "Please remember that the signature file (.sig or .asc)\n"
 "should be the first file given on the command line.\n"
 msgstr ""
-"áäõíáìßá åðáëÞèåõóçò ôçò õðïãñáöÞò.\n"
-"Ðáñáêáëþ ìçí îå÷íÜôå üôé ôï áñ÷åßï õðïãñáöÞò (.sig or .asc)\n"
-"ðñÝðåé íá åßíáé ôï ðñþôï áñ÷åßï óôç ãñáììÞ åíôïëþí.\n"
+"αδυναμία επαλήθευσης της υπογραφής.\n"
+"Παρακαλώ μην ξεχνάτε ότι το αρχείο υπογραφής (.sig or .asc)\n"
+"πρέπει να είναι το πρώτο αρχείο στη γραμμή εντολών.\n"
 
 #, c-format
 msgid "input line %u too long or missing LF\n"
-msgstr "ãñáììÞ åéóüäïõ %u åßíáé ðïëý ìåãÜëç Þ ôçò ëåßðåé ôï LF\n"
+msgstr "γραμμή εισόδου %u είναι πολύ μεγάλη ή της λείπει το LF\n"
 
 #, fuzzy, c-format
 msgid "can't open fd %d: %s\n"
-msgstr "áäõíáìßá ðñüóâáóçò óôï `%s': %s\n"
+msgstr "αδυναμία πρόσβασης στο `%s': %s\n"
 
 msgid "set debugging flags"
 msgstr ""
@@ -6127,13 +6190,13 @@ msgstr ""
 
 #, fuzzy
 msgid "Usage: kbxutil [options] [files] (-h for help)"
-msgstr "×ñÞóç: gpg [åðéëïãÝò] [áñ÷åßá] (-h ãéá âïÞèåéá)"
+msgstr "Χρήση: gpg [επιλογές] [αρχεία] (-h για βοήθεια)"
 
 #, fuzzy
 msgid ""
 "Syntax: kbxutil [options] [files]\n"
 "List, export, import Keybox data\n"
-msgstr "×ñÞóç: gpg [åðéëïãÝò] [áñ÷åßá] (-h ãéá âïÞèåéá)"
+msgstr "Χρήση: gpg [επιλογές] [αρχεία] (-h για βοήθεια)"
 
 #, c-format
 msgid "RSA modulus missing or not of size %d bits\n"
@@ -6152,19 +6215,19 @@ msgstr ""
 
 #, fuzzy
 msgid "|N|Please enter a new PIN for the standard keys."
-msgstr "áëëáãÞ ôçò öñÜóçò êëåéäß"
+msgstr "αλλαγή της φράσης κλειδί"
 
 #, fuzzy
 msgid "||Please enter the PIN for the standard keys."
-msgstr "áëëáãÞ ôçò öñÜóçò êëåéäß"
+msgstr "αλλαγή της φράσης κλειδί"
 
 #, fuzzy
 msgid "|NP|Please enter a new PIN Unblocking Code (PUK) for the standard keys."
-msgstr "Ðáñáêáëþ åðéëÝîôå ôçí áéôßá ãéá ôçí áíÜêëçóç:\n"
+msgstr "Παρακαλώ επιλέξτε την αιτία για την ανάκληση:\n"
 
 #, fuzzy
 msgid "|P|Please enter the PIN Unblocking Code (PUK) for the standard keys."
-msgstr "Ðáñáêáëþ åðéëÝîôå ôçí áéôßá ãéá ôçí áíÜêëçóç:\n"
+msgstr "Παρακαλώ επιλέξτε την αιτία για την ανάκληση:\n"
 
 msgid "|N|Please enter a new PIN for the key to create qualified signatures."
 msgstr ""
@@ -6184,22 +6247,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting new PIN: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to store the fingerprint: %s\n"
-msgstr "áðïôõ÷ßá áñ÷éêïðïßçóçò ôçò TrustDB: %s\n"
+msgstr "αποτυχία αρχικοποίησης της TrustDB: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to store the creation date: %s\n"
-msgstr "áðïôõ÷ßá åðáíáäüìçóçò ôçò cache êëåéäïèÞêçò: %s\n"
-
-#, fuzzy, c-format
-msgid "reading public key failed: %s\n"
-msgstr "äéáãñáöÞ block êëåéäéþí áðÝôõ÷å: %s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr ""
+msgstr "αποτυχία επαναδόμησης της cache κλειδοθήκης: %s\n"
 
 msgid "response does not contain the RSA modulus\n"
 msgstr ""
@@ -6207,9 +6263,18 @@ msgstr ""
 msgid "response does not contain the RSA public exponent\n"
 msgstr ""
 
-msgid "response does not contain the EC public point\n"
+#, fuzzy
+#| msgid "remove keys from the public keyring"
+msgid "response does not contain the EC public key\n"
+msgstr "αφαίρεση των κλειδιών από τη δημόσια κλειδοθήκη"
+
+msgid "response does not contain the public key data\n"
 msgstr ""
 
+#, fuzzy, c-format
+msgid "reading public key failed: %s\n"
+msgstr "διαγραφή block κλειδιών απέτυχε: %s\n"
+
 #, c-format
 msgid "using default PIN as %s\n"
 msgstr ""
@@ -6224,7 +6289,7 @@ msgstr ""
 
 #, fuzzy
 msgid "||Please enter the PIN"
-msgstr "áëëáãÞ ôçò öñÜóçò êëåéäß"
+msgstr "αλλαγή της φράσης κλειδί"
 
 #, c-format
 msgid "PIN for CHV%d is too short; minimum length is %d\n"
@@ -6232,7 +6297,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "verify CHV%d failed: %s\n"
-msgstr "keyserver áðïóôïëÞ áðÝôõ÷å: %s\n"
+msgstr "keyserver αποστολή απέτυχε: %s\n"
 
 msgid "error retrieving CHV status from card\n"
 msgstr ""
@@ -6251,18 +6316,18 @@ msgstr[1] ""
 #. the start of the string.  Use %%0A to force a linefeed.
 #, fuzzy, c-format
 msgid "|A|Please enter the Admin PIN%%0A[remaining attempts: %d]"
-msgstr "áëëáãÞ ôçò öñÜóçò êëåéäß"
+msgstr "αλλαγή της φράσης κλειδί"
 
 #, fuzzy
 msgid "|A|Please enter the Admin PIN"
-msgstr "áëëáãÞ ôçò öñÜóçò êëåéäß"
+msgstr "αλλαγή της φράσης κλειδί"
 
 msgid "access to admin commands is not configured\n"
 msgstr ""
 
 #, fuzzy
 msgid "||Please enter the Reset Code for the card"
-msgstr "Ðáñáêáëþ åðéëÝîôå ôçí áéôßá ãéá ôçí áíÜêëçóç:\n"
+msgstr "Παρακαλώ επιλέξτε την αιτία για την ανάκληση:\n"
 
 #, c-format
 msgid "Reset Code is too short; minimum length is %d\n"
@@ -6282,34 +6347,34 @@ msgstr ""
 
 #, fuzzy
 msgid "||Please enter the Admin PIN and New Admin PIN"
-msgstr "áëëáãÞ ôçò öñÜóçò êëåéäß"
+msgstr "αλλαγή της φράσης κλειδί"
 
 #, fuzzy
 msgid "||Please enter the PIN and New PIN"
-msgstr "áëëáãÞ ôçò öñÜóçò êëåéäß"
+msgstr "αλλαγή της φράσης κλειδί"
 
 #, fuzzy
 msgid "error reading application data\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ ìðëïê êëåéäéþí: %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του μπλοκ κλειδιών: %s\n"
 
 #, fuzzy
 msgid "error reading fingerprint DO\n"
-msgstr "%s: óöÜëìá óôçí áíÜãíùóç ôçò åããñáöÞò free : %s\n"
+msgstr "%s: σφάλμα στην ανάγνωση της εγγραφής free : %s\n"
 
 #, fuzzy
 msgid "key already exists\n"
-msgstr "`%s' Þäç óõìðéÝóôçêå\n"
+msgstr "`%s' ήδη συμπιέστηκε\n"
 
 msgid "existing key will be replaced\n"
 msgstr ""
 
 #, fuzzy
 msgid "generating new key\n"
-msgstr "äçìéïõñãßá åíüò íÝïõ æåýãïõò êëåéäéþí"
+msgstr "δημιουργία ενός νέου ζεύγους κλειδιών"
 
 #, fuzzy
 msgid "writing new key\n"
-msgstr "äçìéïõñãßá åíüò íÝïõ æåýãïõò êëåéäéþí"
+msgstr "δημιουργία ενός νέου ζεύγους κλειδιών"
 
 msgid "creation timestamp missing\n"
 msgstr ""
@@ -6320,25 +6385,25 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "failed to store the key: %s\n"
-msgstr "áðïôõ÷ßá áñ÷éêïðïßçóçò ôçò TrustDB: %s\n"
+msgstr "αποτυχία αρχικοποίησης της TrustDB: %s\n"
 
 #, fuzzy
 #| msgid "unsupported URI"
 msgid "unsupported curve\n"
-msgstr "ìç õðïóôçñéæüìåíï URI"
+msgstr "μη υποστηριζόμενο URI"
 
 msgid "please wait while key is being generated ...\n"
 msgstr ""
 
 #, fuzzy
 msgid "generating key failed\n"
-msgstr "äéáãñáöÞ block êëåéäéþí áðÝôõ÷å: %s\n"
+msgstr "διαγραφή block κλειδιών απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "key generation completed (%d second)\n"
 msgid_plural "key generation completed (%d seconds)\n"
-msgstr[0] "Ç äçìéïõñãßá êëåéäéïý áðÝôõ÷å: %s\n"
-msgstr[1] "Ç äçìéïõñãßá êëåéäéïý áðÝôõ÷å: %s\n"
+msgstr[0] "Η δημιουργία κλειδιού απέτυχε: %s\n"
+msgstr[1] "Η δημιουργία κλειδιού απέτυχε: %s\n"
 
 msgid "invalid structure of OpenPGP card (DO 0x93)\n"
 msgstr ""
@@ -6348,7 +6413,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "card does not support digest algorithm %s\n"
-msgstr "%s õðïãñáöÞ, áëãüñéèìïò ðåñßëçøçò %s\n"
+msgstr "%s υπογραφή, αλγόριθμος περίληψης %s\n"
 
 #, c-format
 msgid "signatures created so far: %lu\n"
@@ -6360,11 +6425,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "can't access %s - invalid OpenPGP card?\n"
-msgstr "äå âñÝèçêáí Ýãêõñá OpenPGP äåäïìÝíá.\n"
+msgstr "δε βρέθηκαν έγκυρα OpenPGP δεδομένα.\n"
 
 #, fuzzy
 msgid "||Please enter your PIN at the reader's pinpad"
-msgstr "áëëáãÞ ôçò öñÜóçò êëåéäß"
+msgstr "αλλαγή της φράσης κλειδί"
 
 #. TRANSLATORS: Do not translate the "|*|" prefixes but
 #. keep it at the start of the string.  We need this elsewhere
@@ -6380,22 +6445,22 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|write a log to FILE"
-msgstr "|ÁÑ×ÅÉÏ|öüñôùìá ôïõ áñèñþìáôïò åðÝêôáóçò ÁÑ×ÅÉÏ"
+msgstr "|ΑΡΧΕΙΟ|φόρτωμα του αρθρώματος επέκτασης ΑΡΧΕΙΟ"
 
 msgid "|N|connect to reader at port N"
 msgstr ""
 
 #, fuzzy
 msgid "|NAME|use NAME as ct-API driver"
-msgstr "|ÏÍÏÌÁ|÷ñÞóç ôïõ ÏÍÏÌÁôïò ùò ðñïêáèïñéóìÝíïõ ðáñáëÞðôç"
+msgstr "|ΟΝΟΜΑ|χρήση του ΟΝΟΜΑτος ως προκαθορισμένου παραλήπτη"
 
 #, fuzzy
 msgid "|NAME|use NAME as PC/SC driver"
-msgstr "|ÏÍÏÌÁ|÷ñÞóç ôïõ ÏÍÏÌÁôïò ùò ðñïêáèïñéóìÝíïõ ðáñáëÞðôç"
+msgstr "|ΟΝΟΜΑ|χρήση του ΟΝΟΜΑτος ως προκαθορισμένου παραλήπτη"
 
 #, fuzzy
 msgid "do not use the internal CCID driver"
-msgstr "ìç ÷ñÞóç ôåñìáôéêïý"
+msgstr "μη χρήση τερματικού"
 
 msgid "|N|disconnect the card after N seconds of inactivity"
 msgstr ""
@@ -6405,14 +6470,14 @@ msgstr ""
 
 #, fuzzy
 msgid "deny the use of admin card commands"
-msgstr "óõãêñïõüìåíåò åíôïëÝò\n"
+msgstr "συγκρουόμενες εντολές\n"
 
 msgid "use variable length input for pinpad"
 msgstr ""
 
 #, fuzzy
 msgid "Usage: @SCDAEMON@ [options] (-h for help)"
-msgstr "×ñÞóç: gpg [åðéëïãÝò] [áñ÷åßá] (-h ãéá âïÞèåéá)"
+msgstr "Χρήση: gpg [επιλογές] [αρχεία] (-h για βοήθεια)"
 
 msgid ""
 "Syntax: scdaemon [options] [command [args]]\n"
@@ -6432,11 +6497,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid radix64 character %02x skipped\n"
-msgstr "ìç Ýãêõñïò radix64 ÷áñáêôÞñáò %02x ðáñÜâëåøç\n"
+msgstr "μη έγκυρος radix64 χαρακτήρας %02x παράβλεψη\n"
 
 #, fuzzy
 msgid "no dirmngr running in this session\n"
-msgstr "ï gpg-agent äåí åßíáé äéáèÝóéìïò óå áõôÞ ôç óõíåäñßá\n"
+msgstr "ο gpg-agent δεν είναι διαθέσιμος σε αυτή τη συνεδρία\n"
 
 #, c-format
 msgid "validation model requested by certificate: %s"
@@ -6451,7 +6516,7 @@ msgstr "help"
 
 #, fuzzy, c-format
 msgid "critical certificate extension %s is not supported"
-msgstr "äåí õðïóôçñßæåôáé ç Ýêäïóç ðñùôïêüëëïõ %d ôïõ gpg-agent\n"
+msgstr "δεν υποστηρίζεται η έκδοση πρωτοκόλλου %d του gpg-agent\n"
 
 msgid "issuer certificate is not marked as a CA"
 msgstr ""
@@ -6461,15 +6526,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "failed to open '%s': %s\n"
-msgstr "áäõíáìßá ðñüóâáóçò óôï `%s': %s\n"
+msgstr "αδυναμία πρόσβασης στο `%s': %s\n"
 
 #, fuzzy
 msgid "Note: non-critical certificate policy not allowed"
-msgstr "åããñáöÞ ôïõ ìõóôéêïý êëåéäéïý óôï `%s'\n"
+msgstr "εγγραφή του μυστικού κλειδιού στο `%s'\n"
 
 #, fuzzy
 msgid "certificate policy not allowed"
-msgstr "åããñáöÞ ôïõ ìõóôéêïý êëåéäéïý óôï `%s'\n"
+msgstr "εγγραφή του μυστικού κλειδιού στο `%s'\n"
 
 msgid "looking up issuer at external location\n"
 msgstr ""
@@ -6483,19 +6548,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "number of matching certificates: %d\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, fuzzy, c-format
 msgid "dirmngr cache-only key lookup failed: %s\n"
-msgstr "äéáãñáöÞ block êëåéäéþí áðÝôõ÷å: %s\n"
+msgstr "διαγραφή block κλειδιών απέτυχε: %s\n"
 
 #, fuzzy
 msgid "failed to allocate keyDB handle\n"
-msgstr "áðïôõ÷ßá áñ÷éêïðïßçóçò ôçò TrustDB: %s\n"
+msgstr "αποτυχία αρχικοποίησης της TrustDB: %s\n"
 
 #, fuzzy
 msgid "certificate has been revoked"
-msgstr "ÓÇÌÅÉÙÓÇ: ôï êëåéäß Ý÷åé áíáêëçèåß"
+msgstr "ΣΗΜΕΙΩΣΗ: το κλειδί έχει ανακληθεί"
 
 msgid "the status of the certificate is unknown"
 msgstr ""
@@ -6505,7 +6570,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "checking the CRL failed: %s"
-msgstr "áðÝôõ÷å ï Ýëåã÷ïò ôçò õðïãñáöÞò ðïõ äçìéïõñãÞèçêå: %s\n"
+msgstr "απέτυχε ο έλεγχος της υπογραφής που δημιουργήθηκε: %s\n"
 
 #, c-format
 msgid "certificate with invalid validity: %s"
@@ -6516,22 +6581,22 @@ msgstr ""
 
 #, fuzzy
 msgid "root certificate not yet valid"
-msgstr "åããñáöÞ ôïõ ìõóôéêïý êëåéäéïý óôï `%s'\n"
+msgstr "εγγραφή του μυστικού κλειδιού στο `%s'\n"
 
 msgid "intermediate certificate not yet valid"
 msgstr ""
 
 #, fuzzy
 msgid "certificate has expired"
-msgstr "Áõôü ôï êëåéäß Ý÷åé ëÞîåé!"
+msgstr "Αυτό το κλειδί έχει λήξει!"
 
 #, fuzzy
 msgid "root certificate has expired"
-msgstr "Áõôü ôï êëåéäß Ý÷åé ëÞîåé!"
+msgstr "Αυτό το κλειδί έχει λήξει!"
 
 #, fuzzy
 msgid "intermediate certificate has expired"
-msgstr "Áõôü ôï êëåéäß Ý÷åé ëÞîåé!"
+msgstr "Αυτό το κλειδί έχει λήξει!"
 
 #, c-format
 msgid "required certificate attributes missing: %s%s%s"
@@ -6539,7 +6604,7 @@ msgstr ""
 
 #, fuzzy
 msgid "certificate with invalid validity"
-msgstr "Áõôü ôï êëåéäß Ý÷åé ëÞîåé!"
+msgstr "Αυτό το κλειδί έχει λήξει!"
 
 msgid "signature not created during lifetime of certificate"
 msgstr ""
@@ -6552,22 +6617,22 @@ msgstr ""
 
 #, fuzzy
 msgid "  (  signature created at "
-msgstr "        íÝåò õðïãñáöÝò: %lu\n"
+msgstr "        νέες υπογραφές: %lu\n"
 
 #, fuzzy
 msgid "  (certificate created at "
-msgstr "Ðéóôïðïéçôéêü áíÜêëçóçò äçìéïõñãÞèçêå.\n"
+msgstr "Πιστοποιητικό ανάκλησης δημιουργήθηκε.\n"
 
 #, fuzzy
 msgid "  (certificate valid from "
-msgstr "êáêü ðéóôïðïéçôéêü"
+msgstr "κακό πιστοποιητικό"
 
 msgid "  (     issuer valid from "
 msgstr ""
 
 #, fuzzy, c-format
 msgid "fingerprint=%s\n"
-msgstr "áðåéêüíéóç ôïõ fingerprint"
+msgstr "απεικόνιση του fingerprint"
 
 msgid "root certificate has now been marked as trusted\n"
 msgstr ""
@@ -6583,7 +6648,7 @@ msgstr ""
 
 #, fuzzy
 msgid "no issuer found in certificate"
-msgstr "äçìéïõñãßá åíüò ðéóôïðïéçôéêïý áíÜêëçóçò"
+msgstr "δημιουργία ενός πιστοποιητικού ανάκλησης"
 
 msgid "self-signed certificate has a BAD signature"
 msgstr ""
@@ -6593,7 +6658,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "checking the trust list failed: %s\n"
-msgstr "áðÝôõ÷å ï Ýëåã÷ïò ôçò õðïãñáöÞò ðïõ äçìéïõñãÞèçêå: %s\n"
+msgstr "απέτυχε ο έλεγχος της υπογραφής που δημιουργήθηκε: %s\n"
 
 msgid "certificate chain too long\n"
 msgstr ""
@@ -6603,7 +6668,7 @@ msgstr ""
 
 #, fuzzy
 msgid "certificate has a BAD signature"
-msgstr "åðáëÞèåõóç ìéáò õðïãñáöÞò"
+msgstr "επαλήθευση μιας υπογραφής"
 
 msgid "found another possible matching CA certificate - trying again"
 msgstr ""
@@ -6614,15 +6679,15 @@ msgstr ""
 
 #, fuzzy
 msgid "certificate is good\n"
-msgstr "ç ðñïåðéëïãÞ %c%lu áíôéãñÜöôçêå\n"
+msgstr "η προεπιλογή %c%lu αντιγράφτηκε\n"
 
 #, fuzzy
 msgid "intermediate certificate is good\n"
-msgstr "Ðéóôïðïéçôéêü áíÜêëçóçò äçìéïõñãÞèçêå.\n"
+msgstr "Πιστοποιητικό ανάκλησης δημιουργήθηκε.\n"
 
 #, fuzzy
 msgid "root certificate is good\n"
-msgstr "êáêü ðéóôïðïéçôéêü"
+msgstr "κακό πιστοποιητικό"
 
 msgid "switching to chain model"
 msgstr ""
@@ -6640,11 +6705,11 @@ msgstr ""
 
 #, fuzzy
 msgid "none"
-msgstr "ü÷é|ï÷é"
+msgstr "όχι|οχι"
 
 #, fuzzy
 msgid "[Error - invalid encoding]"
-msgstr "óöÜëìá: ìç Ýãêõñï áðïôýðùìá\n"
+msgstr "σφάλμα: μη έγκυρο αποτύπωμα\n"
 
 msgid "[Error - out of core]"
 msgstr ""
@@ -6654,7 +6719,7 @@ msgstr ""
 
 #, fuzzy
 msgid "[Error - invalid DN]"
-msgstr "óöÜëìá: ìç Ýãêõñï áðïôýðùìá\n"
+msgstr "σφάλμα: μη έγκυρο αποτύπωμα\n"
 
 #, fuzzy, c-format
 msgid ""
@@ -6664,17 +6729,17 @@ msgid ""
 "S/N %s, ID 0x%08lX,\n"
 "created %s, expires %s.\n"
 msgstr ""
-"×ñåéÜæåóôå ìéá öñÜóç êëåéäß ãéá íá îåêëåéäþóåôå ôï ìõóôéêü êëåéäß ãéá ôï "
-"÷ñÞóôç:\n"
+"Χρειάζεστε μια φράση κλειδί για να ξεκλειδώσετε το μυστικό κλειδί για το "
+"χρήστη:\n"
 "\"%.*s\"\n"
-"%u-bit %s êëåéäß, ID %08lX, äçìéïõñãßá %s%s\n"
+"%u-bit %s κλειδί, ID %08lX, δημιουργία %s%s\n"
 
 msgid "no key usage specified - assuming all usages\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting key usage information: %s\n"
-msgstr "áäõíáìßá åããñáöÞò ìõóôéêÞò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία εγγραφής μυστικής κλειδοθήκης `%s': %s\n"
 
 msgid "certificate should not have been used for certification\n"
 msgstr ""
@@ -6696,7 +6761,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "line %d: invalid algorithm\n"
-msgstr "ìç Ýãêõñïò áëãüñéèìïò  hash `%s'\n"
+msgstr "μη έγκυρος αλγόριθμος  hash `%s'\n"
 
 #, c-format
 msgid "line %d: invalid key length %u (valid are %d to %d)\n"
@@ -6708,19 +6773,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "line %d: invalid subject name label '%.*s'\n"
-msgstr "ìç Ýãêõñïò áëãüñéèìïò  hash `%s'\n"
+msgstr "μη έγκυρος αλγόριθμος  hash `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid subject name '%s' at pos %d\n"
-msgstr "ìç Ýãêõñïò áëãüñéèìïò  hash `%s'\n"
+msgstr "μη έγκυρος αλγόριθμος  hash `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: not a valid email address\n"
-msgstr "Ìç Ýãêõñç äéåýèõíóç Email\n"
+msgstr "Μη έγκυρη διεύθυνση Email\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid serial number\n"
-msgstr "ìç Ýãêõñïò áëãüñéèìïò  hash `%s'\n"
+msgstr "μη έγκυρος αλγόριθμος  hash `%s'\n"
 
 #, c-format
 msgid "line %d: invalid issuer name label '%.*s'\n"
@@ -6732,39 +6797,39 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "line %d: invalid date given\n"
-msgstr "ìç Ýãêõñïò áëãüñéèìïò  hash `%s'\n"
+msgstr "μη έγκυρος αλγόριθμος  hash `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: error getting signing key by keygrip '%s': %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò ôçò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία δημιουργίας της κλειδοθήκης `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid hash algorithm given\n"
-msgstr "ìç Ýãêõñïò áëãüñéèìïò  hash `%s'\n"
+msgstr "μη έγκυρος αλγόριθμος  hash `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid authority-key-id\n"
-msgstr "ìç Ýãêõñïò áëãüñéèìïò  hash `%s'\n"
+msgstr "μη έγκυρος αλγόριθμος  hash `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid subject-key-id\n"
-msgstr "êëåéäß %08lX: ìç Ýãêõñç äÝóìåõóç õðïêëåéäéïý\n"
+msgstr "κλειδί %08lX: μη έγκυρη δέσμευση υποκλειδιού\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid extension syntax\n"
-msgstr "ìç Ýãêõñïò áëãüñéèìïò  hash `%s'\n"
+msgstr "μη έγκυρος αλγόριθμος  hash `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: error reading key '%s' from card: %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò ôçò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία δημιουργίας της κλειδοθήκης `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: error getting key by keygrip '%s': %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò ôçò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία δημιουργίας της κλειδοθήκης `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: key generation failed: %s <%s>\n"
-msgstr "Ç äçìéïõñãßá êëåéäéïý áðÝôõ÷å: %s\n"
+msgstr "Η δημιουργία κλειδιού απέτυχε: %s\n"
 
 msgid ""
 "To complete this certificate request please enter the passphrase for the key "
@@ -6773,11 +6838,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "   (%d) RSA\n"
-msgstr "   (%d) RSA (ãéá õðïãñáöÞ ìüíï)\n"
+msgstr "   (%d) RSA (για υπογραφή μόνο)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) Existing key\n"
-msgstr "   (%d) RSA (ãéá êñõðôïãñÜöçóç ìüíï)\n"
+msgstr "   (%d) RSA (για κρυπτογράφηση μόνο)\n"
 
 #, c-format
 msgid "   (%d) Existing key from card\n"
@@ -6785,15 +6850,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error reading the card: %s\n"
-msgstr "%s: óöÜëìá óôçí áíÜãíùóç ôçò åããñáöÞò free : %s\n"
+msgstr "%s: σφάλμα στην ανάγνωση της εγγραφής free : %s\n"
 
 #, fuzzy, c-format
 msgid "Serial number of the card: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, fuzzy
 msgid "Available keys:\n"
-msgstr "áðåíåñãïðïéåß Ýíá êëåéäß"
+msgstr "απενεργοποιεί ένα κλειδί"
 
 #, c-format
 msgid "Possible actions for a %s key:\n"
@@ -6801,26 +6866,26 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "   (%d) sign, encrypt\n"
-msgstr "   (%d) RSA (õðïãñáöÞ êáé êñõðôïãñÜöçóç)\n"
+msgstr "   (%d) RSA (υπογραφή και κρυπτογράφηση)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) sign\n"
-msgstr "   (%d) DSA (ãéá õðïãñáöÞ ìüíï)\n"
+msgstr "   (%d) DSA (για υπογραφή μόνο)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) encrypt\n"
-msgstr "   (%d) RSA (ãéá êñõðôïãñÜöçóç ìüíï)\n"
+msgstr "   (%d) RSA (για κρυπτογράφηση μόνο)\n"
 
 msgid "Enter the X.509 subject name: "
 msgstr ""
 
 #, fuzzy
 msgid "No subject name given\n"
-msgstr "(Äåí äþèçêå ðåñéãñáöÞ)\n"
+msgstr "(Δεν δώθηκε περιγραφή)\n"
 
 #, fuzzy, c-format
 msgid "Invalid subject name label '%.*s'\n"
-msgstr "ìç Ýãêõñïò áëãüñéèìïò  hash `%s'\n"
+msgstr "μη έγκυρος αλγόριθμος  hash `%s'\n"
 
 #. TRANSLATORS: The 22 in the second string is the
 #. length of the first string up to the "%s".  Please
@@ -6829,35 +6894,35 @@ msgstr "
 #. drop everything after the number.
 #, fuzzy, c-format
 msgid "Invalid subject name '%s'\n"
-msgstr "ìç Ýãêõñïò áëãüñéèìïò  hash `%s'\n"
+msgstr "μη έγκυρος αλγόριθμος  hash `%s'\n"
 
 msgid "22 translator: see certreg-ui.c:gpgsm_gencertreq_tty"
 msgstr ""
 
 #, fuzzy
 msgid "Enter email addresses"
-msgstr "Äéåýèõíóç Email: "
+msgstr "Διεύθυνση Email: "
 
 #, fuzzy
 msgid " (end with an empty line):\n"
 msgstr ""
 "\n"
-"ÐëçêôñïëïãÞóôå ôï user ID. ÔÝëïò ìå ìéá Üäåéá ãñáììÞ: "
+"Πληκτρολογήστε το user ID. Τέλος με μια άδεια γραμμή: "
 
 #, fuzzy
 msgid "Enter DNS names"
-msgstr "ÐëçêôñïëïãÞóôå Ýíá íÝï üíïìá áñ÷åßïõ"
+msgstr "Πληκτρολογήστε ένα νέο όνομα αρχείου"
 
 #, fuzzy
 msgid " (optional; end with an empty line):\n"
-msgstr "ÐëçêôñïëïãÞóôå ìéá ðñïáéñåôéêÞ ðåñéãñáöÞ· ôÝëïò ìå ìéá Üäåéá ãñáììÞ:\n"
+msgstr "Πληκτρολογήστε μια προαιρετική περιγραφή· τέλος με μια άδεια γραμμή:\n"
 
 msgid "Enter URIs"
 msgstr ""
 
 #, fuzzy
 msgid "Create self-signed certificate? (y/N) "
-msgstr "Äçìéïõñãßá åíüò ðéóôïðïéçôéêïý áíÜêëçóçò ãéá áõôü ôï êëåéäß; "
+msgstr "Δημιουργία ενός πιστοποιητικού ανάκλησης για αυτό το κλειδί; "
 
 msgid "These parameters are used:\n"
 msgstr ""
@@ -6868,7 +6933,7 @@ msgstr ""
 #, fuzzy
 #| msgid "Revocation certificate created.\n"
 msgid "Now creating certificate request.  "
-msgstr "Ðéóôïðïéçôéêü áíÜêëçóçò äçìéïõñãÞèçêå.\n"
+msgstr "Πιστοποιητικό ανάκλησης δημιουργήθηκε.\n"
 
 msgid "This may take a while ...\n"
 msgstr ""
@@ -6890,43 +6955,43 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "certificate '%s' not found: %s\n"
-msgstr "ôï êëåéäß '%s' äå âñÝèçêå: %s\n"
+msgstr "το κλειδί '%s' δε βρέθηκε: %s\n"
 
 #, fuzzy, c-format
 msgid "error locking keybox: %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ ìðëïê êëåéäéþí: %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του μπλοκ κλειδιών: %s\n"
 
 #, fuzzy, c-format
 msgid "duplicated certificate '%s' deleted\n"
-msgstr "Ðéóôïðïéçôéêü áíÜêëçóçò äçìéïõñãÞèçêå.\n"
+msgstr "Πιστοποιητικό ανάκλησης δημιουργήθηκε.\n"
 
 #, fuzzy, c-format
 msgid "certificate '%s' deleted\n"
-msgstr "ç ðñïåðéëïãÞ %c%lu áíôéãñÜöôçêå\n"
+msgstr "η προεπιλογή %c%lu αντιγράφτηκε\n"
 
 #, fuzzy, c-format
 msgid "deleting certificate \"%s\" failed: %s\n"
-msgstr "äéáãñáöÞ block êëåéäéþí áðÝôõ÷å: %s\n"
+msgstr "διαγραφή block κλειδιών απέτυχε: %s\n"
 
 #, fuzzy
 msgid "no valid recipients given\n"
-msgstr "(Äåí äþèçêå ðåñéãñáöÞ)\n"
+msgstr "(Δεν δώθηκε περιγραφή)\n"
 
 #, fuzzy
 msgid "list external keys"
-msgstr "áðåéêüíéóç ôçò ëßóôáò ìõóôéêþí êëåéäéþí"
+msgstr "απεικόνιση της λίστας μυστικών κλειδιών"
 
 #, fuzzy
 msgid "list certificate chain"
-msgstr "êáêü ðéóôïðïéçôéêü"
+msgstr "κακό πιστοποιητικό"
 
 #, fuzzy
 msgid "import certificates"
-msgstr "êáêü ðéóôïðïéçôéêü"
+msgstr "κακό πιστοποιητικό"
 
 #, fuzzy
 msgid "export certificates"
-msgstr "êáêü ðéóôïðïéçôéêü"
+msgstr "κακό πιστοποιητικό"
 
 msgid "register a smartcard"
 msgstr ""
@@ -6939,7 +7004,7 @@ msgstr ""
 
 #, fuzzy
 msgid "create base-64 encoded output"
-msgstr "äçìéïõñãßá ascii èùñáêéóìÝíçò åîüäïõ"
+msgstr "δημιουργία ascii θωρακισμένης εξόδου"
 
 msgid "assume input is in PEM format"
 msgstr ""
@@ -6969,46 +7034,46 @@ msgid "fetch missing issuer certificates"
 msgstr ""
 
 msgid "don't use the terminal at all"
-msgstr "ìç ÷ñÞóç ôåñìáôéêïý"
+msgstr "μη χρήση τερματικού"
 
 msgid "|FILE|write a server mode log to FILE"
 msgstr ""
 
 #, fuzzy
 msgid "|FILE|write an audit log to FILE"
-msgstr "|ÁÑ×ÅÉÏ|öüñôùìá ôïõ áñèñþìáôïò åðÝêôáóçò ÁÑ×ÅÉÏ"
+msgstr "|ΑΡΧΕΙΟ|φόρτωμα του αρθρώματος επέκτασης ΑΡΧΕΙΟ"
 
 msgid "batch mode: never ask"
-msgstr "êáôÜóôáóç batch: íá ìç ãßíïíôáé åñùôÞóåéò"
+msgstr "κατάσταση batch: να μη γίνονται ερωτήσεις"
 
 msgid "assume yes on most questions"
-msgstr "áðÜíôçóç íáé óôéò ðåñéóóüôåñåò åñùôÞóåéò"
+msgstr "απάντηση ναι στις περισσότερες ερωτήσεις"
 
 msgid "assume no on most questions"
-msgstr "áðÜíôçóç ü÷é óôéò ðåñéóóüôåñåò åñùôÞóåéò"
+msgstr "απάντηση όχι στις περισσότερες ερωτήσεις"
 
 #, fuzzy
 msgid "|FILE|add keyring to the list of keyrings"
-msgstr "ðñïóèÞêç áõôïý ôïõ êëåéäéïý óôç ëßóôá ôùí êëåéäïèçêþí"
+msgstr "προσθήκη αυτού του κλειδιού στη λίστα των κλειδοθηκών"
 
 #, fuzzy
 msgid "|USER-ID|use USER-ID as default secret key"
-msgstr "|ÏÍÏÌÁ|÷ñÞóç ÏÍÏÌÁôïò óáí ðñïêáèïñéóìÝíï ìõóôéêü êëåéäß"
+msgstr "|ΟΝΟΜΑ|χρήση ΟΝΟΜΑτος σαν προκαθορισμένο μυστικό κλειδί"
 
 #, fuzzy
 msgid "|SPEC|use this keyserver to lookup keys"
-msgstr "|ÄÉÁÊÏÌÉÓÔÇÓ|÷ñÞóç áõôïý ôïõ äéáêïìéóôÞ êëåéäéþí ãéá áíáæÞôçóç"
+msgstr "|ΔΙΑΚΟΜΙΣΤΗΣ|χρήση αυτού του διακομιστή κλειδιών για αναζήτηση"
 
 msgid "|NAME|use cipher algorithm NAME"
-msgstr "|ÏÍÏÌÁ|÷ñÞóç áëãüñéèìïõ êñõðôïãñÜöçóçò ÏÍÏÌÁ"
+msgstr "|ΟΝΟΜΑ|χρήση αλγόριθμου κρυπτογράφησης ΟΝΟΜΑ"
 
 msgid "|NAME|use message digest algorithm NAME"
-msgstr "|ÏÍÏÌÁ|÷ñÞóç áëãüñéèìïõ ðåñßëçøçò ìçíýìáôïò ÏÍÏÌÁ "
+msgstr "|ΟΝΟΜΑ|χρήση αλγόριθμου περίληψης μηνύματος ΟΝΟΜΑ "
 
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: @GPGSM@ [options] [files] (-h for help)"
-msgstr "×ñÞóç: gpg [åðéëïãÝò] [áñ÷åßá] (-h ãéá âïÞèåéá)"
+msgstr "Χρήση: gpg [επιλογές] [αρχεία] (-h για βοήθεια)"
 
 #, fuzzy
 msgid ""
@@ -7016,21 +7081,21 @@ msgid ""
 "Sign, check, encrypt or decrypt using the S/MIME protocol\n"
 "Default operation depends on the input data\n"
 msgstr ""
-"Óýíôáîç: gpg [åðéëïãÝò] [áñ÷åßá]\n"
-"õðïãñáöÞ, Ýëåã÷ïò, êñõðôïãñÜöçóç Þ áðïêñõðôïãñÜöçóç\n"
-"ç ðñïêáèïñéóìÝíç ëåéôïõñãßá åîáñôÜôáé áðü ôá äåäïìÝíá åéóüäïõ\n"
+"Σύνταξη: gpg [επιλογές] [αρχεία]\n"
+"υπογραφή, έλεγχος, κρυπτογράφηση ή αποκρυπτογράφηση\n"
+"η προκαθορισμένη λειτουργία εξαρτάται από τα δεδομένα εισόδου\n"
 
 #, fuzzy, c-format
 msgid "Note: won't be able to encrypt to '%s': %s\n"
-msgstr "áäõíáìßá óýíäåóçò óôï `%s': %s\n"
+msgstr "αδυναμία σύνδεσης στο `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "unknown validation model '%s'\n"
-msgstr "Üãíùóôïò ðñïêáèïñéóìÝíïò ðáñáëÞðôçò `%s'\n"
+msgstr "άγνωστος προκαθορισμένος παραλήπτης `%s'\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: no hostname given\n"
-msgstr "(Äåí äþèçêå ðåñéãñáöÞ)\n"
+msgstr "(Δεν δώθηκε περιγραφή)\n"
 
 #, c-format
 msgid "%s:%u: password given without user\n"
@@ -7038,49 +7103,49 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "%s:%u: skipping this line\n"
-msgstr " s = ðáñÜëåéøç áõôïý ôïõ êëåéäéïý\n"
+msgstr " s = παράλειψη αυτού του κλειδιού\n"
 
 #, fuzzy
 msgid "could not parse keyserver\n"
-msgstr "áäõíáìßá åðåîåñãáóßáò ôïõ URI ôïõ äéáêïìéóç êëåéäéþí\n"
+msgstr "αδυναμία επεξεργασίας του URI του διακομιση κλειδιών\n"
 
 #, fuzzy, c-format
 msgid "importing common certificates '%s'\n"
-msgstr "åããñáöÞ óôï  `%s'\n"
+msgstr "εγγραφή στο  `%s'\n"
 
 #, fuzzy, c-format
 msgid "can't sign using '%s': %s\n"
-msgstr "áäõíáìßá êëåéóßìáôïò ôïõ `%s': %s\n"
+msgstr "αδυναμία κλεισίματος του `%s': %s\n"
 
 msgid "invalid command (there is no implicit command)\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "total number processed: %lu\n"
-msgstr "Óõíïëéêüò áñéèìüò ðïõ åðåîåñãÜóôçêáí: %lu\n"
+msgstr "Συνολικός αριθμός που επεξεργάστηκαν: %lu\n"
 
 #, fuzzy
 msgid "error storing certificate\n"
-msgstr "äçìéïõñãßá åíüò ðéóôïðïéçôéêïý áíÜêëçóçò"
+msgstr "δημιουργία ενός πιστοποιητικού ανάκλησης"
 
 msgid "basic certificate checks failed - not imported\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting stored flags: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, fuzzy, c-format
 msgid "error importing certificate: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, fuzzy, c-format
 msgid "error reading input: %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy
 msgid "failed to get the fingerprint\n"
-msgstr "áðïôõ÷ßá áñ÷éêïðïßçóçò ôçò TrustDB: %s\n"
+msgstr "αποτυχία αρχικοποίησης της TrustDB: %s\n"
 
 #, c-format
 msgid "problem looking for existing certificate: %s\n"
@@ -7088,19 +7153,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error finding writable keyDB: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, fuzzy, c-format
 msgid "error storing certificate: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, fuzzy, c-format
 msgid "problem re-searching certificate: %s\n"
-msgstr "rev? ðñüâëçìá óôïí Ýëåã÷ï áíÜêëçóçò: %s\n"
+msgstr "rev? πρόβλημα στον έλεγχο ανάκλησης: %s\n"
 
 #, fuzzy, c-format
 msgid "error storing flags: %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 msgid "Error - "
 msgstr ""
@@ -7110,11 +7175,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid formatted fingerprint in '%s', line %d\n"
-msgstr "óöÜëìá: ìç Ýãêõñï áðïôýðùìá\n"
+msgstr "σφάλμα: μη έγκυρο αποτύπωμα\n"
 
 #, fuzzy, c-format
 msgid "invalid country code in '%s', line %d\n"
-msgstr "óöÜëìá: ìç Ýãêõñï áðïôýðùìá\n"
+msgstr "σφάλμα: μη έγκυρο αποτύπωμα\n"
 
 #, c-format
 msgid ""
@@ -7140,7 +7205,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "hash algorithm %d (%s) for signer %d not supported; using %s\n"
-msgstr "äåí õðïóôçñßæåôáé ï áëãüñéèìïò ðñïóôáóßáò %d%s\n"
+msgstr "δεν υποστηρίζεται ο αλγόριθμος προστασίας %d%s\n"
 
 #, c-format
 msgid "hash algorithm used for signer %d: %s (%s)\n"
@@ -7148,18 +7213,18 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "checking for qualified certificate failed: %s\n"
-msgstr "áðÝôõ÷å ï Ýëåã÷ïò ôçò õðïãñáöÞò ðïõ äçìéïõñãÞèçêå: %s\n"
+msgstr "απέτυχε ο έλεγχος της υπογραφής που δημιουργήθηκε: %s\n"
 
 #, fuzzy
 msgid "Signature made "
-msgstr "ÕðïãñáöÞ Ýëçîå óôéò %s.\n"
+msgstr "Υπογραφή έληξε στις %s.\n"
 
 msgid "[date not given]"
 msgstr ""
 
 #, fuzzy, c-format
 msgid " using certificate ID 0x%08lX\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 msgid ""
 "invalid signature: message digest attribute does not match computed one\n"
@@ -7167,21 +7232,21 @@ msgstr ""
 
 #, fuzzy
 msgid "Good signature from"
-msgstr "ÊáëÞ õðïãñáöÞ áðü \""
+msgstr "Καλή υπογραφή από \""
 
 #, fuzzy
 msgid "                aka"
-msgstr "                ãíùóôü óáí \""
+msgstr "                γνωστό σαν \""
 
 #, fuzzy
 msgid "This is a qualified signature\n"
 msgstr ""
 "\n"
-"ÁõôÞ èá åßíáé ìéá éäéï-õðïãñáöÞ.\n"
+"Αυτή θα είναι μια ιδιο-υπογραφή.\n"
 
 #, fuzzy, c-format
 msgid "can't initialize certificate cache lock: %s\n"
-msgstr "áðÝôõ÷å ï Ýëåã÷ïò ôçò õðïãñáöÞò ðïõ äçìéïõñãÞèçêå: %s\n"
+msgstr "απέτυχε ο έλεγχος της υπογραφής που δημιουργήθηκε: %s\n"
 
 #, c-format
 msgid "can't acquire read lock on the certificate cache: %s\n"
@@ -7202,23 +7267,23 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "can't create `%s': %s\n"
 msgid "can't parse certificate '%s': %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò ôïõ `%s': %s\n"
+msgstr "αδυναμία δημιουργίας του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "certificate '%s' already cached\n"
-msgstr "ç ðñïåðéëïãÞ %c%lu áíôéãñÜöôçêå\n"
+msgstr "η προεπιλογή %c%lu αντιγράφτηκε\n"
 
 #, fuzzy, c-format
 msgid "trusted certificate '%s' loaded\n"
-msgstr "Ðéóôïðïéçôéêü áíÜêëçóçò äçìéïõñãÞèçêå.\n"
+msgstr "Πιστοποιητικό ανάκλησης δημιουργήθηκε.\n"
 
 #, fuzzy, c-format
 msgid "certificate '%s' loaded\n"
-msgstr "ç ðñïåðéëïãÞ %c%lu áíôéãñÜöôçêå\n"
+msgstr "η προεπιλογή %c%lu αντιγράφτηκε\n"
 
 #, fuzzy, c-format
 msgid "  SHA1 fingerprint = %s\n"
-msgstr "áðåéêüíéóç ôïõ fingerprint"
+msgstr "απεικόνιση του fingerprint"
 
 msgid "   issuer ="
 msgstr ""
@@ -7228,103 +7293,103 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error loading certificate '%s': %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, fuzzy, c-format
 msgid "permanently loaded certificates: %u\n"
-msgstr "êáêü ðéóôïðïéçôéêü"
+msgstr "κακό πιστοποιητικό"
 
 #, fuzzy, c-format
 msgid "    runtime cached certificates: %u\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, fuzzy
 msgid "certificate already cached\n"
-msgstr "Ðéóôïðïéçôéêü áíÜêëçóçò äçìéïõñãÞèçêå.\n"
+msgstr "Πιστοποιητικό ανάκλησης δημιουργήθηκε.\n"
 
 #, fuzzy
 msgid "certificate cached\n"
-msgstr "ç ðñïåðéëïãÞ %c%lu áíôéãñÜöôçêå\n"
+msgstr "η προεπιλογή %c%lu αντιγράφτηκε\n"
 
 #, fuzzy, c-format
 msgid "error caching certificate: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, fuzzy, c-format
 msgid "invalid SHA1 fingerprint string '%s'\n"
-msgstr "óöÜëìá: ìç Ýãêõñï áðïôýðùìá\n"
+msgstr "σφάλμα: μη έγκυρο αποτύπωμα\n"
 
 #, fuzzy, c-format
 msgid "error fetching certificate by S/N: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, fuzzy, c-format
 msgid "error fetching certificate by subject: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, fuzzy
 msgid "no issuer found in certificate\n"
-msgstr "äçìéïõñãßá åíüò ðéóôïðïéçôéêïý áíÜêëçóçò"
+msgstr "δημιουργία ενός πιστοποιητικού ανάκλησης"
 
 #, fuzzy, c-format
 msgid "error getting authorityKeyIdentifier: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't create directory `%s': %s\n"
 msgid "creating directory '%s'\n"
-msgstr "áäõíáìßá äçìéïõñãßáò êáôáëüãïõ `%s': %s\n"
+msgstr "αδυναμία δημιουργίας καταλόγου `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error creating directory '%s': %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò ôçò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία δημιουργίας της κλειδοθήκης `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "ignoring database dir '%s'\n"
-msgstr "óöÜëìá óôç ãñáììÞ trailer\n"
+msgstr "σφάλμα στη γραμμή trailer\n"
 
 #, fuzzy, c-format
 msgid "error reading directory '%s': %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "removing cache file '%s'\n"
-msgstr "äéáãñáöÞ block êëåéäéþí áðÝôõ÷å: %s\n"
+msgstr "διαγραφή block κλειδιών απέτυχε: %s\n"
 
 #, fuzzy, c-format
 #| msgid "enarmoring failed: %s\n"
 msgid "not removing file '%s'\n"
-msgstr "èùñÜêéóç áðÝôõ÷å: %s\n"
+msgstr "θωράκιση απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "error closing cache file: %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "failed to open cache dir file '%s': %s\n"
-msgstr "áäõíáìßá ðñüóâáóçò óôï `%s': %s\n"
+msgstr "αδυναμία πρόσβασης στο `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error creating new cache dir file '%s': %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing secret keyring `%s': %s\n"
 msgid "error writing new cache dir file '%s': %s\n"
-msgstr "áäõíáìßá åããñáöÞò ìõóôéêÞò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία εγγραφής μυστικής κλειδοθήκης `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error closing new cache dir file '%s': %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "new configuration file `%s' created\n"
 msgid "new cache dir file '%s' created\n"
-msgstr "äçìéïõñãÞèçêå íÝï áñ÷åßï åðéëïãþí `%s'\n"
+msgstr "δημιουργήθηκε νέο αρχείο επιλογών `%s'\n"
 
 #, fuzzy, c-format
 msgid "failed to re-open cache dir file '%s': %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò êáôáëüãïõ `%s': %s\n"
+msgstr "αδυναμία δημιουργίας καταλόγου `%s': %s\n"
 
 #, c-format
 msgid "first record of '%s' is not the version\n"
@@ -7342,11 +7407,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid line detected in '%s' line %u\n"
-msgstr "óöÜëìá: ìç Ýãêõñï áðïôýðùìá\n"
+msgstr "σφάλμα: μη έγκυρο αποτύπωμα\n"
 
 #, fuzzy, c-format
 msgid "duplicate entry detected in '%s' line %u\n"
-msgstr "Ðéóôïðïéçôéêü áíÜêëçóçò äçìéïõñãÞèçêå.\n"
+msgstr "Πιστοποιητικό ανάκλησης δημιουργήθηκε.\n"
 
 #, c-format
 msgid "unsupported record type in '%s' line %u skipped\n"
@@ -7354,22 +7419,22 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid issuer hash in '%s' line %u\n"
-msgstr "óöÜëìá: ìç Ýãêõñï áðïôýðùìá\n"
+msgstr "σφάλμα: μη έγκυρο αποτύπωμα\n"
 
 #, fuzzy, c-format
 msgid "no issuer DN in '%s' line %u\n"
-msgstr "óöÜëìá áíÜãíùóçò: %s\n"
+msgstr "σφάλμα ανάγνωσης: %s\n"
 
 #, fuzzy, c-format
 msgid "invalid timestamp in '%s' line %u\n"
-msgstr "óöÜëìá: ìç Ýãêõñï áðïôýðùìá\n"
+msgstr "σφάλμα: μη έγκυρο αποτύπωμα\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: invalid size of random_seed file - not used\n"
 msgid "WARNING: invalid cache file hash in '%s' line %u\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ìç Ýãêõñï ìÝãåèïò áñ÷åßïõ random_seed - äåí\n"
-"÷ñçóéìïðïéåßôå\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: μη έγκυρο μέγεθος αρχείου random_seed - δεν\n"
+"χρησιμοποιείτε\n"
 
 msgid "detected errors in cache dir file\n"
 msgstr ""
@@ -7379,43 +7444,43 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "failed to create temporary cache dir file '%s': %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò êáôáëüãïõ `%s': %s\n"
+msgstr "αδυναμία δημιουργίας καταλόγου `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error closing '%s': %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error reading `%s': %s\n"
 msgid "error renaming '%s' to '%s': %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "can't hash '%s': %s\n"
-msgstr "áäõíáìßá êëåéóßìáôïò ôïõ `%s': %s\n"
+msgstr "αδυναμία κλεισίματος του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error setting up MD5 hash context: %s\n"
-msgstr "óöÜëìá óôç áðïóôïëÞ ðñïò ôï `%s': %s\n"
+msgstr "σφάλμα στη αποστολή προς το `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error hashing '%s': %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "invalid formatted checksum for '%s'\n"
-msgstr "óöÜëìá: ìç Ýãêõñï áðïôýðùìá\n"
+msgstr "σφάλμα: μη έγκυρο αποτύπωμα\n"
 
 msgid "too many open cache files; can't open anymore\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "opening cache file '%s'\n"
-msgstr "ç õðïãñáöÞ áðÝôõ÷å: %s\n"
+msgstr "η υπογραφή απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "error opening cache file '%s': %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, c-format
 msgid "error initializing cache file '%s' for reading: %s\n"
@@ -7429,12 +7494,12 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "failed to create a new cache object: %s\n"
-msgstr "%s: áäõíáìßá äçìéïõñãßáò hashtable: %s\n"
+msgstr "%s: αδυναμία δημιουργίας hashtable: %s\n"
 
 #, fuzzy, c-format
 #| msgid "No help available for `%s'"
 msgid "no CRL available for issuer id %s\n"
-msgstr "Äåí õðÜñ÷åé äéáèÝóéìç âïÞèåéá ãéá `%s'"
+msgstr "Δεν υπάρχει διαθέσιμη βοήθεια για `%s'"
 
 #, c-format
 msgid "cached CRL for issuer id %s too old; update required\n"
@@ -7463,7 +7528,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "problem reading cache record for S/N %s: %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò ôçò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία δημιουργίας της κλειδοθήκης `%s': %s\n"
 
 #, c-format
 msgid "S/N %s is not valid; reason=%02X  date=%.15s\n"
@@ -7475,12 +7540,12 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting data from cache file: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid hash algorithm `%s'\n"
 msgid "unknown hash algorithm '%s'\n"
-msgstr "ìç Ýãêõñïò áëãüñéèìïò  hash `%s'\n"
+msgstr "μη έγκυρος αλγόριθμος  hash `%s'\n"
 
 #, c-format
 msgid "gcry_md_open for algorithm %d failed: %s\n"
@@ -7489,24 +7554,24 @@ msgstr ""
 #, fuzzy
 #| msgid "invalid response from agent\n"
 msgid "got an invalid S-expression from libksba\n"
-msgstr "ìç Ýãêõñç áðÜíôçóç áðü ôïí agent\n"
+msgstr "μη έγκυρη απάντηση από τον agent\n"
 
 #, fuzzy, c-format
 msgid "converting S-expression failed: %s\n"
-msgstr "áäõíáìßá ðñüóâáóçò ôïõ áñ÷åßïõ: %s\n"
+msgstr "αδυναμία πρόσβασης του αρχείου: %s\n"
 
 #, fuzzy, c-format
 msgid "creating S-expression failed: %s\n"
-msgstr "äéáãñáöÞ block êëåéäéþí áðÝôõ÷å: %s\n"
+msgstr "διαγραφή block κλειδιών απέτυχε: %s\n"
 
 #, fuzzy, c-format
 #| msgid "build_packet failed: %s\n"
 msgid "ksba_crl_parse failed: %s\n"
-msgstr "build_packet áðÝôõ÷å: %s\n"
+msgstr "build_packet απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "error getting update times of CRL: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, c-format
 msgid "update times of this CRL: this=%s next=%s\n"
@@ -7517,15 +7582,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting CRL item: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, fuzzy, c-format
 msgid "error inserting item into temporary cache file: %s\n"
-msgstr "åããñáöÞ óôï  `%s'\n"
+msgstr "εγγραφή στο  `%s'\n"
 
 #, fuzzy, c-format
 msgid "no CRL issuer found in CRL: %s\n"
-msgstr "äçìéïõñãßá åíüò ðéóôïðïéçôéêïý áíÜêëçóçò"
+msgstr "δημιουργία ενός πιστοποιητικού ανάκλησης"
 
 msgid "locating CRL issuer certificate by authorityKeyIdentifier\n"
 msgstr ""
@@ -7533,44 +7598,44 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "signature verification suppressed\n"
 msgid "CRL signature verification failed: %s\n"
-msgstr "êáôáóôïëÞ áíÜêëçóçò õðïãñáöÞò\n"
+msgstr "καταστολή ανάκλησης υπογραφής\n"
 
 #, fuzzy, c-format
 msgid "error checking validity of CRL issuer certificate: %s\n"
-msgstr "áðÝôõ÷å ï Ýëåã÷ïò ôçò õðïãñáöÞò ðïõ äçìéïõñãÞèçêå: %s\n"
+msgstr "απέτυχε ο έλεγχος της υπογραφής που δημιουργήθηκε: %s\n"
 
 #, fuzzy, c-format
 msgid "ksba_crl_new failed: %s\n"
-msgstr "äéáãñáöÞ block êëåéäéþí áðÝôõ÷å: %s\n"
+msgstr "διαγραφή block κλειδιών απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "ksba_crl_set_reader failed: %s\n"
-msgstr "ç åíçìÝñùóç áðÝôõ÷å: %s\n"
+msgstr "η ενημέρωση απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "removed stale temporary cache file '%s'\n"
-msgstr "áäõíáìßá äçìéïõñãßáò êáôáëüãïõ `%s': %s\n"
+msgstr "αδυναμία δημιουργίας καταλόγου `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "problem removing stale temporary cache file '%s': %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò êáôáëüãïõ `%s': %s\n"
+msgstr "αδυναμία δημιουργίας καταλόγου `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error creating temporary cache file '%s': %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, fuzzy, c-format
 #| msgid "update secret failed: %s\n"
 msgid "crl_parse_insert failed: %s\n"
-msgstr "ç åíçìÝñùóç ìõóôéêïý áðÝôõ÷å: %s\n"
+msgstr "η ενημέρωση μυστικού απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "error finishing temporary cache file '%s': %s\n"
-msgstr "åããñáöÞ óôï  `%s'\n"
+msgstr "εγγραφή στο  `%s'\n"
 
 #, fuzzy, c-format
 msgid "error closing temporary cache file '%s': %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, c-format
 msgid "WARNING: new CRL still too old; it expired on %s - loading anyway\n"
@@ -7586,15 +7651,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error reading CRL extensions: %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "creating cache file '%s'\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, fuzzy, c-format
 msgid "problem renaming '%s' to '%s': %s\n"
-msgstr "èùñÜêéóç áðÝôõ÷å: %s\n"
+msgstr "θωράκιση απέτυχε: %s\n"
 
 msgid ""
 "updating the DIR file failed - cache entry will get lost with the next "
@@ -7624,35 +7689,35 @@ msgstr ""
 #| msgid "WARNING: invalid size of random_seed file - not used\n"
 msgid " WARNING: invalid cache record length\n"
 msgstr ""
-"ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ìç Ýãêõñï ìÝãåèïò áñ÷åßïõ random_seed - äåí\n"
-"÷ñçóéìïðïéåßôå\n"
+"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: μη έγκυρο μέγεθος αρχείου random_seed - δεν\n"
+"χρησιμοποιείτε\n"
 
 #, fuzzy, c-format
 msgid "problem reading cache record: %s\n"
-msgstr "%s: óöÜëìá óôçí áíÜãíùóç ôçò åããñáöÞò free : %s\n"
+msgstr "%s: σφάλμα στην ανάγνωση της εγγραφής free : %s\n"
 
 #, fuzzy, c-format
 msgid "problem reading cache key: %s\n"
-msgstr "rev? ðñüâëçìá óôïí Ýëåã÷ï áíÜêëçóçò: %s\n"
+msgstr "rev? πρόβλημα στον έλεγχο ανάκλησης: %s\n"
 
 #, fuzzy, c-format
 msgid "error reading cache entry from db: %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 msgid "End CRL dump\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "crl_fetch via DP failed: %s\n"
-msgstr "ç åíçìÝñùóç áðÝôõ÷å: %s\n"
+msgstr "η ενημέρωση απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "crl_cache_insert via DP failed: %s\n"
-msgstr "áðÝôõ÷å ï Ýëåã÷ïò ôçò õðïãñáöÞò ðïõ äçìéïõñãÞèçêå: %s\n"
+msgstr "απέτυχε ο έλεγχος της υπογραφής που δημιουργήθηκε: %s\n"
 
 #, fuzzy, c-format
 msgid "crl_cache_insert via issuer failed: %s\n"
-msgstr "äéáãñáöÞ block êëåéäéþí áðÝôõ÷å: %s\n"
+msgstr "διαγραφή block κλειδιών απέτυχε: %s\n"
 
 msgid "reader to file mapping table full - waiting\n"
 msgstr ""
@@ -7667,7 +7732,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "%s: error writing dir record: %s\n"
 msgid "error initializing reader object: %s\n"
-msgstr "%s: óöÜëìá óôçí åããñáöÞ ôçò åããñáöÞò dir : %s\n"
+msgstr "%s: σφάλμα στην εγγραφή της εγγραφής dir : %s\n"
 
 #, c-format
 msgid "URL '%s' redirected to '%s' (%u)\n"
@@ -7675,23 +7740,23 @@ msgstr ""
 
 #, fuzzy
 msgid "too many redirections\n"
-msgstr "ðÜñá ðïëëÝò `%c' ðñïåðéëïãÝò\n"
+msgstr "πάρα πολλές `%c' προεπιλογές\n"
 
 #, fuzzy, c-format
 msgid "error retrieving '%s': %s\n"
-msgstr "óöÜëìá êáôÜ ôç äçìéïõñãßá ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά τη δημιουργία του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error retrieving '%s': http status %u\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy
 msgid "CRL access not possible due to Tor mode\n"
-msgstr "ôï êëåéäß '%s' äå âñÝèçêå: %s\n"
+msgstr "το κλειδί '%s' δε βρέθηκε: %s\n"
 
 #, fuzzy, c-format
 msgid "certificate search not possible due to disabled %s\n"
-msgstr "ôï êëåéäß '%s' äå âñÝèçêå: %s\n"
+msgstr "το κλειδί '%s' δε βρέθηκε: %s\n"
 
 msgid "use OCSP instead of CRLs"
 msgstr ""
@@ -7701,19 +7766,19 @@ msgstr ""
 
 #, fuzzy
 msgid "add a certificate to the cache"
-msgstr "Ðéóôïðïéçôéêü áíÜêëçóçò äçìéïõñãÞèçêå.\n"
+msgstr "Πιστοποιητικό ανάκλησης δημιουργήθηκε.\n"
 
 #, fuzzy
 msgid "validate a certificate"
-msgstr "êáêü ðéóôïðïéçôéêü"
+msgstr "κακό πιστοποιητικό"
 
 #, fuzzy
 msgid "lookup a certificate"
-msgstr "êáêü ðéóôïðïéçôéêü"
+msgstr "κακό πιστοποιητικό"
 
 #, fuzzy
 msgid "lookup only locally stored certificates"
-msgstr "êáêü ðéóôïðïéçôéêü"
+msgstr "κακό πιστοποιητικό"
 
 msgid "expect an URL for --lookup"
 msgstr ""
@@ -7726,17 +7791,17 @@ msgstr ""
 
 #, fuzzy
 msgid "expect certificates in PEM format"
-msgstr "êáêü ðéóôïðïéçôéêü"
+msgstr "κακό πιστοποιητικό"
 
 #, fuzzy
 #| msgid "Enter the user ID of the designated revoker: "
 msgid "force the use of the default OCSP responder"
-msgstr "ÐëçêôñïëïãÞóôå ôï user ID ôïõ äéïñéóìÝíïõ áíáêëçôÞ: "
+msgstr "Πληκτρολογήστε το user ID του διορισμένου ανακλητή: "
 
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: dirmngr-client [options] [certfile|pattern] (-h for help)\n"
-msgstr "×ñÞóç: gpg [åðéëïãÝò] [áñ÷åßá] (-h ãéá âïÞèåéá)"
+msgstr "Χρήση: gpg [επιλογές] [αρχεία] (-h για βοήθεια)"
 
 msgid ""
 "Syntax: dirmngr-client [options] [certfile|pattern]\n"
@@ -7747,11 +7812,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error reading certificate from stdin: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, fuzzy, c-format
 msgid "error reading certificate from '%s': %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 msgid "certificate too large to make any sense\n"
 msgstr ""
@@ -7759,51 +7824,51 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to the dirmngr: %s\n"
-msgstr "áäõíáìßá óýíäåóçò óôï `%s': %s\n"
+msgstr "αδυναμία σύνδεσης στο `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "update failed: %s\n"
 msgid "lookup failed: %s\n"
-msgstr "ç åíçìÝñùóç áðÝôõ÷å: %s\n"
+msgstr "η ενημέρωση απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "loading CRL '%s' failed: %s\n"
-msgstr "èùñÜêéóç áðÝôõ÷å: %s\n"
+msgstr "θωράκιση απέτυχε: %s\n"
 
 msgid "a dirmngr daemon is up and running\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "validation of certificate failed: %s\n"
-msgstr "äéáãñáöÞ block êëåéäéþí áðÝôõ÷å: %s\n"
+msgstr "διαγραφή block κλειδιών απέτυχε: %s\n"
 
 #, fuzzy
 msgid "certificate is valid\n"
-msgstr "ç ðñïåðéëïãÞ %c%lu áíôéãñÜöôçêå\n"
+msgstr "η προεπιλογή %c%lu αντιγράφτηκε\n"
 
 #, fuzzy
 msgid "certificate has been revoked\n"
-msgstr "ÓÇÌÅÉÙÓÇ: ôï êëåéäß Ý÷åé áíáêëçèåß"
+msgstr "ΣΗΜΕΙΩΣΗ: το κλειδί έχει ανακληθεί"
 
 #, fuzzy, c-format
 msgid "certificate check failed: %s\n"
-msgstr "äéáãñáöÞ block êëåéäéþí áðÝôõ÷å: %s\n"
+msgstr "διαγραφή block κλειδιών απέτυχε: %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't stat `%s': %s\n"
 msgid "got status: '%s'\n"
-msgstr "áäõíáìßá ëÞøçò ðëçñïöïñéþí ãéá ôï `%s': %s\n"
+msgstr "αδυναμία λήψης πληροφοριών για το `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing secret keyring `%s': %s\n"
 msgid "error writing base64 encoding: %s\n"
-msgstr "áäõíáìßá åããñáöÞò ìõóôéêÞò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία εγγραφής μυστικής κλειδοθήκης `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "unsupported inquiry '%s'\n"
 msgstr ""
 "\n"
-"Õðïóôçñéæüìåíïé áëãüñéèìïé:\n"
+"Υποστηριζόμενοι αλγόριθμοι:\n"
 
 msgid "absolute file name expected\n"
 msgstr ""
@@ -7817,7 +7882,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|load CRL from FILE into cache"
-msgstr "|ÁÑ×ÅÉÏ|öüñôùìá ôïõ áñèñþìáôïò åðÝêôáóçò ÁÑ×ÅÉÏ"
+msgstr "|ΑΡΧΕΙΟ|φόρτωμα του αρθρώματος επέκτασης ΑΡΧΕΙΟ"
 
 msgid "|URL|fetch a CRL from URL"
 msgstr ""
@@ -7833,7 +7898,7 @@ msgstr ""
 
 #, fuzzy
 msgid "run without asking a user"
-msgstr "Ôåñìáôéóìüò ÷ùñßò áðïèÞêåõóç; "
+msgstr "Τερματισμός χωρίς αποθήκευση; "
 
 msgid "force loading of outdated CRLs"
 msgstr ""
@@ -7841,6 +7906,9 @@ msgstr ""
 msgid "allow sending OCSP requests"
 msgstr ""
 
+msgid "allow online software version check"
+msgstr ""
+
 msgid "inhibit the use of HTTP"
 msgstr ""
 
@@ -7867,7 +7935,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|read LDAP server list from FILE"
-msgstr "|ÁÑ×ÅÉÏ|öüñôùìá ôïõ áñèñþìáôïò åðÝêôáóçò ÁÑ×ÅÉÏ"
+msgstr "|ΑΡΧΕΙΟ|φόρτωμα του αρθρώματος επέκτασης ΑΡΧΕΙΟ"
 
 msgid "add new servers discovered in CRL distribution points to serverlist"
 msgstr ""
@@ -7877,7 +7945,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|URL|use OCSP responder at URL"
-msgstr "áäõíáìßá åðåîåñãáóßáò ôïõ URI ôïõ äéáêïìéóç êëåéäéþí\n"
+msgstr "αδυναμία επεξεργασίας του URI του διακομιση κλειδιών\n"
 
 msgid "|FPR|OCSP response signed by FPR"
 msgstr ""
@@ -7901,11 +7969,11 @@ msgid ""
 "options)\n"
 msgstr ""
 "@\n"
-"(äåßôå ôç óåëßäá man ãéá ìéá ðëÞñç ëßóôá åíôïëþí êáé åðéëïãþí)\n"
+"(δείτε τη σελίδα man για μια πλήρη λίστα εντολών και επιλογών)\n"
 
 #, fuzzy
 msgid "Usage: @DIRMNGR@ [options] (-h for help)"
-msgstr "×ñÞóç: gpg [åðéëïãÝò] [áñ÷åßá] (-h ãéá âïÞèåéá)"
+msgstr "Χρήση: gpg [επιλογές] [αρχεία] (-h για βοήθεια)"
 
 msgid ""
 "Syntax: @DIRMNGR@ [options] [command [args]]\n"
@@ -7918,32 +7986,32 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "usage: %s [options] "
-msgstr "÷ñÞóç: gpg [åðéëïãÝò] "
+msgstr "χρήση: gpg [επιλογές] "
 
 #, fuzzy
 #| msgid "%s not allowed with %s!\n"
 msgid "colons are not allowed in the socket name\n"
-msgstr "ôï %s äåí åðéôñÝðåôáé ìå ôï %s!\n"
+msgstr "το %s δεν επιτρέπεται με το %s!\n"
 
 #, fuzzy, c-format
 msgid "fetching CRL from '%s' failed: %s\n"
-msgstr "èùñÜêéóç áðÝôõ÷å: %s\n"
+msgstr "θωράκιση απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "processing CRL from '%s' failed: %s\n"
-msgstr "èùñÜêéóç áðÝôõ÷å: %s\n"
+msgstr "θωράκιση απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: line too long - skipped\n"
-msgstr "ç ãñáììÞ åßíáé ðïëý ìåãÜëç\n"
+msgstr "η γραμμή είναι πολύ μεγάλη\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: invalid fingerprint detected\n"
-msgstr "óöÜëìá: ìç Ýãêõñï áðïôýðùìá\n"
+msgstr "σφάλμα: μη έγκυρο αποτύπωμα\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: read error: %s\n"
-msgstr "óöÜëìá áíÜãíùóçò: %s\n"
+msgstr "σφάλμα ανάγνωσης: %s\n"
 
 #, c-format
 msgid "%s:%u: garbage at end of line ignored\n"
@@ -7964,7 +8032,7 @@ msgstr ""
 
 #, fuzzy
 msgid "shutdown forced\n"
-msgstr "ìç åðåîåñãáóìÝíï"
+msgstr "μη επεξεργασμένο"
 
 msgid "SIGINT received - immediate shutdown\n"
 msgstr ""
@@ -7982,7 +8050,7 @@ msgstr ""
 #, fuzzy
 #| msgid "|NAME|set terminal charset to NAME"
 msgid "|NAME|connect to host NAME"
-msgstr "|ÏÍÏÌÁ|êáèïñéóìüò ôïõ óåô ÷áñáêôÞñùí ôåñìáôéêïý óå ÏÍÏÌÁ"
+msgstr "|ΟΝΟΜΑ|καθορισμός του σετ χαρακτήρων τερματικού σε ΟΝΟΜΑ"
 
 msgid "|N|connect to port N"
 msgstr ""
@@ -7990,7 +8058,7 @@ msgstr ""
 #, fuzzy
 #| msgid "|NAME|use NAME as default recipient"
 msgid "|NAME|use user NAME for authentication"
-msgstr "|ÏÍÏÌÁ|÷ñÞóç ôïõ ÏÍÏÌÁôïò ùò ðñïêáèïñéóìÝíïõ ðáñáëÞðôç"
+msgstr "|ΟΝΟΜΑ|χρήση του ΟΝΟΜΑτος ως προκαθορισμένου παραλήπτη"
 
 msgid "|PASS|use password PASS for authentication"
 msgstr ""
@@ -8010,7 +8078,7 @@ msgstr ""
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: dirmngr_ldap [options] [URL] (-h for help)\n"
-msgstr "×ñÞóç: gpg [åðéëïãÝò] [áñ÷åßá] (-h ãéá âïÞèåéá)"
+msgstr "Χρήση: gpg [επιλογές] [αρχεία] (-h για βοήθεια)"
 
 msgid ""
 "Syntax: dirmngr_ldap [options] [URL]\n"
@@ -8021,7 +8089,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "invalid import options\n"
 msgid "invalid port number %d\n"
-msgstr "ìç Ýãêõñåò åðéëïãÝò åéãáãùãÞò\n"
+msgstr "μη έγκυρες επιλογές ειγαγωγής\n"
 
 #, c-format
 msgid "scanning result for attribute '%s'\n"
@@ -8029,7 +8097,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error writing to stdout: %s\n"
-msgstr "áäõíáìßá åããñáöÞò ôçò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία εγγραφής της κλειδοθήκης `%s': %s\n"
 
 #, c-format
 msgid "          available attribute '%s'\n"
@@ -8037,7 +8105,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "attribute '%s' not found\n"
-msgstr "ôï êëåéäß '%s' äå âñÝèçêå: %s\n"
+msgstr "το κλειδί '%s' δε βρέθηκε: %s\n"
 
 #, c-format
 msgid "found attribute '%s'\n"
@@ -8046,29 +8114,29 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "reading from `%s'\n"
 msgid "processing url '%s'\n"
-msgstr "áíÜãíùóç áðü `%s'\n"
+msgstr "ανάγνωση από `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "          w/o user IDs: %lu\n"
 msgid "          user '%s'\n"
-msgstr "          ÷ùñßò user ID: %lu\n"
+msgstr "          χωρίς user ID: %lu\n"
 
 #, fuzzy, c-format
 msgid "          pass '%s'\n"
-msgstr "                ãíùóôü óáí \""
+msgstr "                γνωστό σαν \""
 
 #, fuzzy, c-format
 msgid "          host '%s'\n"
-msgstr "                ãíùóôü óáí \""
+msgstr "                γνωστό σαν \""
 
 #, fuzzy, c-format
 #| msgid "          not imported: %lu\n"
 msgid "          port %d\n"
-msgstr "          ìç  åéóá÷èÝíôá: %lu\n"
+msgstr "          μη  εισαχθέντα: %lu\n"
 
 #, fuzzy, c-format
 msgid "            DN '%s'\n"
-msgstr "                ãíùóôü óáí \""
+msgstr "                γνωστό σαν \""
 
 #, c-format
 msgid "        filter '%s'\n"
@@ -8076,11 +8144,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "          attr '%s'\n"
-msgstr "                ãíùóôü óáí \""
+msgstr "                γνωστό σαν \""
 
 #, fuzzy, c-format
 msgid "no host name in '%s'\n"
-msgstr "(Äåí äþèçêå ðåñéãñáöÞ)\n"
+msgstr "(Δεν δώθηκε περιγραφή)\n"
 
 #, c-format
 msgid "no attribute given for query '%s'\n"
@@ -8089,44 +8157,40 @@ msgstr ""
 #, fuzzy
 #| msgid "WARNING: using insecure memory!\n"
 msgid "WARNING: using first attribute only\n"
-msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ÷ñÞóç ìç áóöáëïýò ìíÞìçò!\n"
+msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: χρήση μη ασφαλούς μνήμης!\n"
 
 #, fuzzy, c-format
 msgid "LDAP init to '%s:%d' failed: %s\n"
-msgstr "èùñÜêéóç áðÝôõ÷å: %s\n"
+msgstr "θωράκιση απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "binding to '%s:%d' failed: %s\n"
-msgstr "èùñÜêéóç áðÝôõ÷å: %s\n"
+msgstr "θωράκιση απέτυχε: %s\n"
 
 #, fuzzy, c-format
 #| msgid "dearmoring failed: %s\n"
 msgid "searching '%s' failed: %s\n"
-msgstr "áðïèùñÜêéóç áðÝôõ÷å: %s\n"
+msgstr "αποθωράκιση απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "'%s' is not an LDAP URL\n"
-msgstr "\"%s\" äåí åßíáé JPEG áñ÷åßï\n"
+msgstr "\"%s\" δεν είναι JPEG αρχείο\n"
 
 #, c-format
 msgid "'%s' is an invalid LDAP URL\n"
 msgstr ""
 
 #, fuzzy, c-format
-msgid "error allocating memory: %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò ôçò êëåéäïèÞêçò `%s': %s\n"
-
-#, fuzzy, c-format
 msgid "error printing log line: %s\n"
-msgstr "áäõíáìßá åããñáöÞò ôçò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία εγγραφής της κλειδοθήκης `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error reading log from ldap wrapper %d: %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "npth_select failed: %s - waiting 1s\n"
-msgstr "ç åíçìÝñùóç ìõóôéêïý áðÝôõ÷å: %s\n"
+msgstr "η ενημέρωση μυστικού απέτυχε: %s\n"
 
 #, c-format
 msgid "ldap wrapper %d ready"
@@ -8142,7 +8206,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "waiting for ldap wrapper %d failed: %s\n"
-msgstr "ç åíçìÝñùóç áðÝôõ÷å: %s\n"
+msgstr "η ενημέρωση απέτυχε: %s\n"
 
 #, c-format
 msgid "ldap wrapper %d stalled - killing\n"
@@ -8154,7 +8218,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "reading from ldap wrapper %d failed: %s\n"
-msgstr "äéáãñáöÞ block êëåéäéþí áðÝôõ÷å: %s\n"
+msgstr "διαγραφή block κλειδιών απέτυχε: %s\n"
 
 #, c-format
 msgid "invalid char 0x%02x in host name - not added\n"
@@ -8162,11 +8226,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "adding '%s:%d' to the ldap server list\n"
-msgstr "áíáæÞôçóç ôïõ \"%s\" áðü ôï HKP äéáêïìéóôÞ %s\n"
+msgstr "αναζήτηση του \"%s\" από το HKP διακομιστή %s\n"
 
 #, fuzzy, c-format
 msgid "malloc failed: %s\n"
-msgstr "äéáãñáöÞ block êëåéäéþí áðÝôõ÷å: %s\n"
+msgstr "διαγραφή block κλειδιών απέτυχε: %s\n"
 
 #, c-format
 msgid "start_cert_fetch: invalid pattern '%s'\n"
@@ -8178,23 +8242,23 @@ msgstr ""
 #, fuzzy
 #| msgid "%s: invalid file version %d\n"
 msgid "invalid canonical S-expression found\n"
-msgstr "%s: ìç Ýãêõñç Ýêäïóç áñ÷åßïõ %d\n"
+msgstr "%s: μη έγκυρη έκδοση αρχείου %d\n"
 
 #, fuzzy, c-format
 msgid "gcry_md_open failed: %s\n"
-msgstr "áäõíáìßá ðñüóâáóçò ôïõ áñ÷åßïõ: %s\n"
+msgstr "αδυναμία πρόσβασης του αρχείου: %s\n"
 
 #, fuzzy, c-format
 #| msgid "update secret failed: %s\n"
 msgid "oops: ksba_cert_hash failed: %s\n"
-msgstr "ç åíçìÝñùóç ìõóôéêïý áðÝôõ÷å: %s\n"
+msgstr "η ενημέρωση μυστικού απέτυχε: %s\n"
 
 msgid "bad URL encoding detected\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error reading from responder: %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, c-format
 msgid "response from server too large; limit is %d bytes\n"
@@ -8202,34 +8266,34 @@ msgstr ""
 
 #, fuzzy
 msgid "OCSP request not possible due to Tor mode\n"
-msgstr "ôï êëåéäß '%s' äå âñÝèçêå: %s\n"
+msgstr "το κλειδί '%s' δε βρέθηκε: %s\n"
 
 msgid "OCSP request not possible due to disabled HTTP\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error setting OCSP target: %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error building OCSP request: %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error connecting to '%s': %s\n"
-msgstr "áäõíáìßá åããñáöÞò ôçò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία εγγραφής της κλειδοθήκης `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error reading HTTP response for '%s': %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error accessing '%s': http status %u\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error parsing OCSP response for '%s': %s\n"
-msgstr "óöÜëìá óôç áðïóôïëÞ ðñïò ôï `%s': %s\n"
+msgstr "σφάλμα στη αποστολή προς το `%s': %s\n"
 
 #, c-format
 msgid "OCSP responder at '%s' status: %s\n"
@@ -8237,7 +8301,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "hashing the OCSP response for '%s' failed: %s\n"
-msgstr "áðÝôõ÷å ï Ýëåã÷ïò ôçò õðïãñáöÞò ðïõ äçìéïõñãÞèçêå: %s\n"
+msgstr "απέτυχε ο έλεγχος της υπογραφής που δημιουργήθηκε: %s\n"
 
 msgid "not signed by a default OCSP signer's certificate"
 msgstr ""
@@ -8247,34 +8311,34 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "allocating list item failed: %s\n"
-msgstr "äéáãñáöÞ block êëåéäéþí áðÝôõ÷å: %s\n"
+msgstr "διαγραφή block κλειδιών απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "error getting responder ID: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 msgid "no suitable certificate found to verify the OCSP response\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "issuer certificate not found: %s\n"
-msgstr "ôï êëåéäß '%s' äå âñÝèçêå: %s\n"
+msgstr "το κλειδί '%s' δε βρέθηκε: %s\n"
 
 msgid "caller did not return the target certificate\n"
 msgstr ""
 
 #, fuzzy
 msgid "caller did not return the issuing certificate\n"
-msgstr "äçìéïõñãßá åíüò ðéóôïðïéçôéêïý áíÜêëçóçò"
+msgstr "δημιουργία ενός πιστοποιητικού ανάκλησης"
 
 #, fuzzy, c-format
 msgid "failed to allocate OCSP context: %s\n"
-msgstr "áðïôõ÷ßá áñ÷éêïðïßçóçò ôçò TrustDB: %s\n"
+msgstr "αποτυχία αρχικοποίησης της TrustDB: %s\n"
 
 #, fuzzy, c-format
 #| msgid "%s: can't access: %s\n"
 msgid "can't get authorityInfoAccess: %s\n"
-msgstr "%s: áäõíáìßá ðñüóâáóçò: %s\n"
+msgstr "%s: αδυναμία πρόσβασης: %s\n"
 
 msgid "no default OCSP responder defined\n"
 msgstr ""
@@ -8282,7 +8346,7 @@ msgstr ""
 #, fuzzy
 #| msgid "no default secret keyring: %s\n"
 msgid "no default OCSP signer defined\n"
-msgstr "äåí õðÜñ÷åé ðñïêáèïñéóìÝíç êëåéäïèÞêç: %s\n"
+msgstr "δεν υπάρχει προκαθορισμένη κλειδοθήκη: %s\n"
 
 #, c-format
 msgid "using default OCSP responder '%s'\n"
@@ -8291,7 +8355,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "using cipher %s\n"
 msgid "using OCSP responder '%s'\n"
-msgstr "÷ñÞóç ôïõ êñõðôáëãüñéèìïõ: %s\n"
+msgstr "χρήση του κρυπταλγόριθμου: %s\n"
 
 #, c-format
 msgid "failed to establish a hashing context for OCSP: %s\n"
@@ -8299,7 +8363,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting OCSP status for target certificate: %s\n"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 #, c-format
 msgid "certificate status is: %s  (this=%s  next=%s)\n"
@@ -8310,7 +8374,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "certificate has been revoked at: %s due to: %s\n"
-msgstr "ÓÇÌÅÉÙÓÇ: ôï êëåéäß Ý÷åé áíáêëçèåß"
+msgstr "ΣΗΜΕΙΩΣΗ: το κλειδί έχει ανακληθεί"
 
 msgid "OCSP responder returned a status in the future\n"
 msgstr ""
@@ -8323,7 +8387,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "assuan_inquire(%s) failed: %s\n"
-msgstr "ç õðïãñáöÞ áðÝôõ÷å: %s\n"
+msgstr "η υπογραφή απέτυχε: %s\n"
 
 msgid "ldapserver missing"
 msgstr ""
@@ -8333,23 +8397,23 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "assuan_inquire failed: %s\n"
-msgstr "ç õðïãñáöÞ áðÝôõ÷å: %s\n"
+msgstr "η υπογραφή απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "fetch_cert_by_url failed: %s\n"
-msgstr "äéáãñáöÞ block êëåéäéþí áðÝôõ÷å: %s\n"
+msgstr "διαγραφή block κλειδιών απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "error sending data: %s\n"
-msgstr "óöÜëìá óôç áðïóôïëÞ ðñïò ôï `%s': %s\n"
+msgstr "σφάλμα στη αποστολή προς το `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "start_cert_fetch failed: %s\n"
-msgstr "äéáãñáöÞ block êëåéäéþí áðÝôõ÷å: %s\n"
+msgstr "διαγραφή block κλειδιών απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "fetch_next_cert failed: %s\n"
-msgstr "äéáãñáöÞ block êëåéäéþí áðÝôõ÷å: %s\n"
+msgstr "διαγραφή block κλειδιών απέτυχε: %s\n"
 
 #, c-format
 msgid "max_replies %d exceeded\n"
@@ -8357,20 +8421,20 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "can't allocate control structure: %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò ôïõ `%s': %s\n"
+msgstr "αδυναμία δημιουργίας του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "failed to allocate assuan context: %s\n"
-msgstr "%s: áäõíáìßá äçìéïõñãßáò hashtable: %s\n"
+msgstr "%s: αδυναμία δημιουργίας hashtable: %s\n"
 
 #, fuzzy, c-format
 #| msgid "failed to initialize the TrustDB: %s\n"
 msgid "failed to initialize the server: %s\n"
-msgstr "áðïôõ÷ßá áñ÷éêïðïßçóçò ôçò TrustDB: %s\n"
+msgstr "αποτυχία αρχικοποίησης της TrustDB: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to the register commands with Assuan: %s\n"
-msgstr "áðïôõ÷ßá åðáíáäüìçóçò ôçò cache êëåéäïèÞêçò: %s\n"
+msgstr "αποτυχία επαναδόμησης της cache κλειδοθήκης: %s\n"
 
 #, c-format
 msgid "Assuan accept problem: %s\n"
@@ -8379,7 +8443,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "signing failed: %s\n"
 msgid "Assuan processing failed: %s\n"
-msgstr "ç õðïãñáöÞ áðÝôõ÷å: %s\n"
+msgstr "η υπογραφή απέτυχε: %s\n"
 
 msgid "accepting root CA not marked as a CA"
 msgstr ""
@@ -8387,36 +8451,36 @@ msgstr ""
 #, fuzzy
 #| msgid "checking the trustdb\n"
 msgid "CRL checking too deeply nested\n"
-msgstr "Ýëåã÷ïò ôçò trustdb\n"
+msgstr "έλεγχος της trustdb\n"
 
 msgid "not checking CRL for"
 msgstr ""
 
 #, fuzzy
 msgid "checking CRL for"
-msgstr "áðÝôõ÷å ï Ýëåã÷ïò ôçò õðïãñáöÞò ðïõ äçìéïõñãÞèçêå: %s\n"
+msgstr "απέτυχε ο έλεγχος της υπογραφής που δημιουργήθηκε: %s\n"
 
 #, fuzzy
 msgid "selfsigned certificate has a BAD signature"
-msgstr "åðáëÞèåõóç ìéáò õðïãñáöÞò"
+msgstr "επαλήθευση μιας υπογραφής"
 
 #, fuzzy, c-format
 msgid "checking trustworthiness of root certificate failed: %s\n"
-msgstr "áðÝôõ÷å ï Ýëåã÷ïò ôçò õðïãñáöÞò ðïõ äçìéïõñãÞèçêå: %s\n"
+msgstr "απέτυχε ο έλεγχος της υπογραφής που δημιουργήθηκε: %s\n"
 
 #, fuzzy
 msgid "certificate chain is good\n"
-msgstr "ç ðñïåðéëïãÞ %c%lu áíôéãñÜöôçêå\n"
+msgstr "η προεπιλογή %c%lu αντιγράφτηκε\n"
 
 msgid "DSA requires the use of a 160 bit hash algorithm\n"
-msgstr "ï DSA áðáéôåß ôç ÷ñÞóç åíüò 160 bit áëãüñéèìïõ hash\n"
+msgstr "ο DSA απαιτεί τη χρήση ενός 160 bit αλγόριθμου hash\n"
 
 msgid "certificate should not have been used for CRL signing\n"
 msgstr ""
 
 #, fuzzy
 msgid "quiet"
-msgstr "ôåñìáôéóìüò"
+msgstr "τερματισμός"
 
 msgid "print data out hex encoded"
 msgstr ""
@@ -8441,14 +8505,14 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|run commands from FILE on startup"
-msgstr "|ÁÑ×ÅÉÏ|öüñôùìá ôïõ áñèñþìáôïò åðÝêôáóçò ÁÑ×ÅÉÏ"
+msgstr "|ΑΡΧΕΙΟ|φόρτωμα του αρθρώματος επέκτασης ΑΡΧΕΙΟ"
 
 msgid "run /subst on startup"
 msgstr ""
 
 #, fuzzy
 msgid "Usage: @GPG@-connect-agent [options] (-h for help)"
-msgstr "×ñÞóç: gpg [åðéëïãÝò] [áñ÷åßá] (-h ãéá âïÞèåéá)"
+msgstr "Χρήση: gpg [επιλογές] [αρχεία] (-h για βοήθεια)"
 
 msgid ""
 "Syntax: @GPG@-connect-agent [options]\n"
@@ -8465,26 +8529,26 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "receiving line failed: %s\n"
-msgstr "äéáãñáöÞ block êëåéäéþí áðÝôõ÷å: %s\n"
+msgstr "διαγραφή block κλειδιών απέτυχε: %s\n"
 
 #, fuzzy
 msgid "line too long - skipped\n"
-msgstr "ç ãñáììÞ åßíáé ðïëý ìåãÜëç\n"
+msgstr "η γραμμή είναι πολύ μεγάλη\n"
 
 msgid "line shortened due to embedded Nul character\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "unknown command '%s'\n"
-msgstr "Üãíùóôïò ðñïêáèïñéóìÝíïò ðáñáëÞðôçò `%s'\n"
+msgstr "άγνωστος προκαθορισμένος παραλήπτης `%s'\n"
 
 #, fuzzy, c-format
 msgid "sending line failed: %s\n"
-msgstr "ç õðïãñáöÞ áðÝôõ÷å: %s\n"
+msgstr "η υπογραφή απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "error sending standard options: %s\n"
-msgstr "óöÜëìá óôç áðïóôïëÞ ðñïò ôï `%s': %s\n"
+msgstr "σφάλμα στη αποστολή προς το `%s': %s\n"
 
 msgid "Options controlling the diagnostic output"
 msgstr ""
@@ -8524,21 +8588,21 @@ msgstr ""
 
 #, fuzzy
 msgid "|N|expire the passphrase after N days"
-msgstr "|N|÷ñÞóç ôçò êáôÜóôáóçò öñÜóçò êëåéäß N"
+msgstr "|N|χρήση της κατάστασης φράσης κλειδί N"
 
 #, fuzzy
 msgid "do not allow the reuse of old passphrases"
-msgstr "óöÜëìá óôç äçìéïõñãßá ôçò öñÜóçò êëåéäß: %s\n"
+msgstr "σφάλμα στη δημιουργία της φράσης κλειδί: %s\n"
 
 msgid "|N|set the Pinentry timeout to N seconds"
 msgstr ""
 
 msgid "|NAME|use NAME as default secret key"
-msgstr "|ÏÍÏÌÁ|÷ñÞóç ÏÍÏÌÁôïò óáí ðñïêáèïñéóìÝíï ìõóôéêü êëåéäß"
+msgstr "|ΟΝΟΜΑ|χρήση ΟΝΟΜΑτος σαν προκαθορισμένο μυστικό κλειδί"
 
 #, fuzzy
 msgid "|NAME|encrypt to user ID NAME as well"
-msgstr "|ÏÍÏÌÁ|êñõðôïãñÜöçóç ãéá ÏÍÏÌÁ"
+msgstr "|ΟΝΟΜΑ|κρυπτογράφηση για ΟΝΟΜΑ"
 
 msgid "|SPEC|set up email aliases"
 msgstr ""
@@ -8548,7 +8612,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|URL|use keyserver at URL"
-msgstr "áäõíáìßá åðåîåñãáóßáò ôïõ URI ôïõ äéáêïìéóç êëåéäéþí\n"
+msgstr "αδυναμία επεξεργασίας του URI του διακομιση κλειδιών\n"
 
 msgid "allow PKA lookups (DNS requests)"
 msgstr ""
@@ -8561,7 +8625,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|NAME|use encoding NAME for PKCS#12 passphrases"
-msgstr "|ÏÍÏÌÁ|÷ñÞóç áëãüñéèìïõ êñõðôïãñÜöçóçò ÏÍÏÌÁ ãéá öñÜóåéò êëåéäéÜ"
+msgstr "|ΟΝΟΜΑ|χρήση αλγόριθμου κρυπτογράφησης ΟΝΟΜΑ για φράσεις κλειδιά"
 
 msgid "do not check CRLs for root certificates"
 msgstr ""
@@ -8590,28 +8654,30 @@ msgstr ""
 msgid "Configuration for OCSP"
 msgstr ""
 
-msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr ""
 
-msgid "GPG Agent"
+msgid "Private Keys"
 msgstr ""
 
-msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr ""
 
-msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr ""
 
-msgid "Key Acquirer"
-msgstr ""
+#, fuzzy
+#| msgid "network error"
+msgid "Network"
+msgstr "σφάλμα δικτύου"
 
 #, fuzzy
-msgid "PIN and Passphrase Entry"
-msgstr "êáêÞ öñÜóç êëåéäß"
+msgid "Passphrase Entry"
+msgstr "κακή φράση κλειδί"
 
 #, fuzzy
 msgid "Component not suitable for launching"
-msgstr "äåí âñÝèçêå ôï äçìüóéï êëåéäß"
+msgstr "δεν βρέθηκε το δημόσιο κλειδί"
 
 #, c-format
 msgid "External verification of component %s failed"
@@ -8643,11 +8709,16 @@ msgstr ""
 
 #, fuzzy
 msgid "list global configuration file"
-msgstr "Üãíùóôï áíôéêåßìåíï ñõèìßóåùò \"%s\"\n"
+msgstr "άγνωστο αντικείμενο ρυθμίσεως \"%s\"\n"
 
 #, fuzzy
 msgid "check global configuration file"
-msgstr "Üãíùóôï áíôéêåßìåíï ñõèìßóåùò \"%s\"\n"
+msgstr "άγνωστο αντικείμενο ρυθμίσεως \"%s\"\n"
+
+#, fuzzy
+#| msgid "update the trust database"
+msgid "query the software version database"
+msgstr "ανανέωση της βάσης δεδομένων εμπιστοσύνης"
 
 msgid "reload all or a given component"
 msgstr ""
@@ -8659,14 +8730,14 @@ msgid "kill a given component"
 msgstr ""
 
 msgid "use as output file"
-msgstr "÷ñÞóç ùò áñ÷åßïõ åîüäïõ"
+msgstr "χρήση ως αρχείου εξόδου"
 
 msgid "activate changes at runtime, if possible"
 msgstr ""
 
 #, fuzzy
 msgid "Usage: @GPGCONF@ [options] (-h for help)"
-msgstr "×ñÞóç: gpg [åðéëïãÝò] [áñ÷åßá] (-h ãéá âïÞèåéá)"
+msgstr "Χρήση: gpg [επιλογές] [αρχεία] (-h για βοήθεια)"
 
 msgid ""
 "Syntax: @GPGCONF@ [options]\n"
@@ -8678,11 +8749,11 @@ msgstr ""
 
 #, fuzzy
 msgid "Component not found"
-msgstr "äåí âñÝèçêå ôï äçìüóéï êëåéäß"
+msgstr "δεν βρέθηκε το δημόσιο κλειδί"
 
 #, fuzzy
 msgid "No argument allowed"
-msgstr "åããñáöÞ ôïõ ìõóôéêïý êëåéäéïý óôï `%s'\n"
+msgstr "εγγραφή του μυστικού κλειδιού στο `%s'\n"
 
 #, fuzzy
 msgid ""
@@ -8690,23 +8761,23 @@ msgid ""
 "Commands:\n"
 " "
 msgstr ""
-"@ÅíôïëÝò:\n"
+"@Εντολές:\n"
 " "
 
 #, fuzzy
 msgid "decryption modus"
-msgstr "áðïêñõðôïãñÜöçóç OK\n"
+msgstr "αποκρυπτογράφηση OK\n"
 
 #, fuzzy
 msgid "encryption modus"
-msgstr "áðïêñõðôïãñÜöçóç OK\n"
+msgstr "αποκρυπτογράφηση OK\n"
 
 msgid "tool class (confucius)"
 msgstr ""
 
 #, fuzzy
 msgid "program filename"
-msgstr "--store [üíïìá áñ÷åßïõ]"
+msgstr "--store [όνομα αρχείου]"
 
 msgid "secret key file (required)"
 msgstr ""
@@ -8716,7 +8787,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Usage: symcryptrun [options] (-h for help)"
-msgstr "×ñÞóç: gpg [åðéëïãÝò] [áñ÷åßá] (-h ãéá âïÞèåéá)"
+msgstr "Χρήση: gpg [επιλογές] [αρχεία] (-h για βοήθεια)"
 
 msgid ""
 "Syntax: symcryptrun --class CLASS --program PROGRAM --keyfile KEYFILE "
@@ -8726,35 +8797,35 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "%s on %s aborted with status %i\n"
-msgstr "ôï %s äåí åðéôñÝðåôáé ìå ôï %s!\n"
+msgstr "το %s δεν επιτρέπεται με το %s!\n"
 
 #, fuzzy, c-format
 msgid "%s on %s failed with status %i\n"
-msgstr "áäõíáìßá ðñüóâáóçò ôïõ áñ÷åßïõ: %s\n"
+msgstr "αδυναμία πρόσβασης του αρχείου: %s\n"
 
 #, fuzzy, c-format
 msgid "can't create temporary directory '%s': %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò êáôáëüãïõ `%s': %s\n"
+msgstr "αδυναμία δημιουργίας καταλόγου `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "could not open %s for writing: %s\n"
-msgstr "áäõíáìßá ðñüóâáóçò ôïõ %s: %s\n"
+msgstr "αδυναμία πρόσβασης του %s: %s\n"
 
 #, fuzzy, c-format
 msgid "error writing to %s: %s\n"
-msgstr "áäõíáìßá åããñáöÞò ôçò êëåéäïèÞêçò `%s': %s\n"
+msgstr "αδυναμία εγγραφής της κλειδοθήκης `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error reading from %s: %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error closing %s: %s\n"
-msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ôïõ `%s': %s\n"
+msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n"
 
 #, fuzzy
 msgid "no --program option provided\n"
-msgstr "äåí õðïóôçñßæåôå ç áðïìáêñõóìÝíç åêôÝëåóç ðñïãñÜììáôïò\n"
+msgstr "δεν υποστηρίζετε η απομακρυσμένη εκτέλεση προγράμματος\n"
 
 msgid "only --decrypt and --encrypt are supported\n"
 msgstr ""
@@ -8767,11 +8838,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "could not create pipe: %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò ôïõ %s: %s\n"
+msgstr "αδυναμία δημιουργίας του %s: %s\n"
 
 #, fuzzy, c-format
 msgid "could not create pty: %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò ôïõ %s: %s\n"
+msgstr "αδυναμία δημιουργίας του %s: %s\n"
 
 #, c-format
 msgid "could not fork: %s\n"
@@ -8779,23 +8850,23 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "execv failed: %s\n"
-msgstr "ç åíçìÝñùóç áðÝôõ÷å: %s\n"
+msgstr "η ενημέρωση απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "select failed: %s\n"
-msgstr "äéáãñáöÞ block êëåéäéþí áðÝôõ÷å: %s\n"
+msgstr "διαγραφή block κλειδιών απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "read failed: %s\n"
-msgstr "ç åíçìÝñùóç áðÝôõ÷å: %s\n"
+msgstr "η ενημέρωση απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "pty read failed: %s\n"
-msgstr "ç åíçìÝñùóç áðÝôõ÷å: %s\n"
+msgstr "η ενημέρωση απέτυχε: %s\n"
 
 #, fuzzy, c-format
 msgid "waitpid failed: %s\n"
-msgstr "ç åíçìÝñùóç áðÝôõ÷å: %s\n"
+msgstr "η ενημέρωση απέτυχε: %s\n"
 
 #, c-format
 msgid "child aborted with status %i\n"
@@ -8803,11 +8874,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "cannot allocate infile string: %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò ôïõ `%s': %s\n"
+msgstr "αδυναμία δημιουργίας του `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "cannot allocate outfile string: %s\n"
-msgstr "áäõíáìßá äçìéïõñãßáò ôïõ `%s': %s\n"
+msgstr "αδυναμία δημιουργίας του `%s': %s\n"
 
 #, c-format
 msgid "either %s or %s must be given\n"
@@ -8818,35 +8889,49 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "class %s is not supported\n"
-msgstr "äåí õðïóôçñßæåôáé ï áëãüñéèìïò ðñïóôáóßáò %d%s\n"
+msgstr "δεν υποστηρίζεται ο αλγόριθμος προστασίας %d%s\n"
 
 #, fuzzy
 msgid "Usage: gpg-check-pattern [options] patternfile (-h for help)\n"
-msgstr "×ñÞóç: gpg [åðéëïãÝò] [áñ÷åßá] (-h ãéá âïÞèåéá)"
+msgstr "Χρήση: gpg [επιλογές] [αρχεία] (-h για βοήθεια)"
 
 msgid ""
 "Syntax: gpg-check-pattern [options] patternfile\n"
 "Check a passphrase given on stdin against the patternfile\n"
 msgstr ""
 
+#, fuzzy
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "διαγραφή block κλειδιών απέτυχε: %s\n"
+
+#, fuzzy
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "απενεργοποιεί ένα κλειδί"
+
+#, fuzzy
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "|αλγόρ [αρχεία]| απεικόνιση περιλήψεων των μηνυμάτων"
+#~ msgstr[1] "|αλγόρ [αρχεία]| απεικόνιση περιλήψεων των μηνυμάτων"
+
 #~ msgid "communication problem with gpg-agent\n"
-#~ msgstr "ðñüâëçìá åðéêïéíùíßáò ìå ôï gpg-agent\n"
+#~ msgstr "πρόβλημα επικοινωνίας με το gpg-agent\n"
 
 #, fuzzy
 #~ msgid "canceled by user\n"
-#~ msgstr "áêõñþèçêå áðü ôï ÷ñÞóôç\n"
+#~ msgstr "ακυρώθηκε από το χρήστη\n"
 
 #, fuzzy
 #~ msgid "problem with the agent\n"
-#~ msgstr "ðñüâëçìá ìå ôïí agent: agent åðéóôñÝöåé 0x%lx\n"
+#~ msgstr "πρόβλημα με τον agent: agent επιστρέφει 0x%lx\n"
 
 #, fuzzy
 #~ msgid "problem with the agent (unexpected response \"%s\")\n"
-#~ msgstr "ðñüâëçìá ìå ôïí agent: agent åðéóôñÝöåé 0x%lx\n"
+#~ msgstr "πρόβλημα με τον agent: agent επιστρέφει 0x%lx\n"
 
 #, fuzzy
 #~ msgid "unknown TOFU DB format '%s'\n"
-#~ msgstr "Üãíùóôïò ðñïêáèïñéóìÝíïò ðáñáëÞðôçò `%s'\n"
+#~ msgstr "άγνωστος προκαθορισμένος παραλήπτης `%s'\n"
 
 #, fuzzy
 #~ msgid ""
@@ -8856,10 +8941,10 @@ msgstr ""
 #~ "%u-bit %s key, ID %s,\n"
 #~ "created %s%s.\n"
 #~ msgstr ""
-#~ "×ñåéÜæåóôå ìéá öñÜóç êëåéäß ãéá íá îåêëåéäþóåôå ôï ìõóôéêü êëåéäß ãéá ôï "
-#~ "÷ñÞóôç:\n"
+#~ "Χρειάζεστε μια φράση κλειδί για να ξεκλειδώσετε το μυστικό κλειδί για το "
+#~ "χρήστη:\n"
 #~ "\"%.*s\"\n"
-#~ "%u-bit %s êëåéäß, ID %08lX, äçìéïõñãßá %s%s\n"
+#~ "%u-bit %s κλειδί, ID %08lX, δημιουργία %s%s\n"
 
 #, fuzzy
 #~ msgid ""
@@ -8867,62 +8952,59 @@ msgstr ""
 #~ "user: \"%s\"\n"
 #~ msgstr ""
 #~ "\n"
-#~ "×ñåéÜæåóôå ìéá öñÜóç êëåéäß ãéá íá îåêëåéäþóåôå ôï ìõóôéêü êëåéäß\n"
-#~ "ãéá ôï ÷ñÞóôç: \""
+#~ "Χρειάζεστε μια φράση κλειδί για να ξεκλειδώσετε το μυστικό κλειδί\n"
+#~ "για το χρήστη: \""
 
 #, fuzzy
 #~ msgid "%u-bit %s key, ID %s, created %s"
-#~ msgstr "%u-bit %s êëåéäß, ID %08lX, äçìéïõñãßá %s"
+#~ msgstr "%u-bit %s κλειδί, ID %08lX, δημιουργία %s"
 
 #, fuzzy
 #~| msgid "can't create directory `%s': %s\n"
 #~ msgid "can't access directory '%s': %s\n"
-#~ msgstr "áäõíáìßá äçìéïõñãßáò êáôáëüãïõ `%s': %s\n"
+#~ msgstr "αδυναμία δημιουργίας καταλόγου `%s': %s\n"
 
 #~ msgid "you found a bug ... (%s:%d)\n"
-#~ msgstr "âñÞêáôå Ýíá bug ... (%s:%d)\n"
+#~ msgstr "βρήκατε ένα bug ... (%s:%d)\n"
 
 #, fuzzy
 #~| msgid "%d user IDs without valid self-signatures detected\n"
 #~ msgid "%d user ID without valid self-signature detected\n"
 #~ msgid_plural "%d user IDs without valid self-signatures detected\n"
-#~ msgstr[0] "%d user ID áíé÷íåýèçêáí ÷ùñßò Ýãêõñåò éäéï-õðïãñáöÝò\n"
-#~ msgstr[1] "%d user ID áíé÷íåýèçêáí ÷ùñßò Ýãêõñåò éäéï-õðïãñáöÝò\n"
+#~ msgstr[0] "%d user ID ανιχνεύθηκαν χωρίς έγκυρες ιδιο-υπογραφές\n"
+#~ msgstr[1] "%d user ID ανιχνεύθηκαν χωρίς έγκυρες ιδιο-υπογραφές\n"
 
 #~ msgid "moving a key signature to the correct place\n"
-#~ msgstr "ìåôáêßíçóç õðïãñáöÞò êëåéäéïý óôç óùóôÞ èÝóç\n"
+#~ msgstr "μετακίνηση υπογραφής κλειδιού στη σωστή θέση\n"
 
 #~ msgid "%d signatures not checked due to missing keys\n"
-#~ msgstr "%d õðïãñáöÝò äåí åëÝã÷èçêáí ëüãù ÷áìÝíùí êëåéäéþí\n"
+#~ msgstr "%d υπογραφές δεν ελέγχθηκαν λόγω χαμένων κλειδιών\n"
 
 #~ msgid "%d signatures not checked due to errors\n"
-#~ msgstr "%d õðïãñáöÝò äåí åëÝã÷èçêáí ëüãù óöáëìÜôùí\n"
+#~ msgstr "%d υπογραφές δεν ελέγχθηκαν λόγω σφαλμάτων\n"
 
 #~ msgid "1 user ID without valid self-signature detected\n"
-#~ msgstr "1 user ID áíé÷íåýôçêå ÷ùñßò Ýãêõñç éäéï-õðïãñáöÞ\n"
-
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "ÄéáãñÜöçêáí %d õðïãñáöÝò.\n"
+#~ msgstr "1 user ID ανιχνεύτηκε χωρίς έγκυρη ιδιο-υπογραφή\n"
 
 #, fuzzy
 #~ msgid "User ID \"%s\": %d signatures removed\n"
-#~ msgstr "Ôï user ID \"%s\" áíáêáëåßôå."
+#~ msgstr "Το user ID \"%s\" ανακαλείτε."
 
 #~ msgid ""
 #~ "You need a Passphrase to protect your secret key.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "×ñåéÜæåóôå ìéá ÖñÜóç êëåéäß ãéá íá ðñïóôáôåýóåôå ôï ìõóôéêü êëåéäß.\n"
+#~ "Χρειάζεστε μια Φράση κλειδί για να προστατεύσετε το μυστικό κλειδί.\n"
 #~ "\n"
 
 #, fuzzy
 #~ msgid ""
 #~ "Please enter a passphrase to protect the off-card backup of the new "
 #~ "encryption key."
-#~ msgstr "ÐëçêôñïëïãÞóôå ôç öñÜóç êëåéäß· áõôÞ åßíáé ìéá ìõóôéêÞ ðñüôáóç \n"
+#~ msgstr "Πληκτρολογήστε τη φράση κλειδί· αυτή είναι μια μυστική πρόταση \n"
 
 #~ msgid "passphrase not correctly repeated; try again"
-#~ msgstr "ç öñÜóç êëåéäß äåí åðáíáëÞöèçêå óùóôÜ. ÄïêéìÜóôå îáíÜ"
+#~ msgstr "η φράση κλειδί δεν επαναλήφθηκε σωστά. Δοκιμάστε ξανά"
 
 #~ msgid "%s.\n"
 #~ msgstr "%s.\n"
@@ -8933,442 +9015,438 @@ msgstr ""
 #~ "using this program with the option \"--edit-key\".\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Äåí ÷ñåéÜæåóôå ìéá öñÜóç êëåéäß - áõôü åßíáé ìÜëëïí ìéá *êáêÞ* éäÝá!\n"
-#~ "Èá óõíå÷ßóù üðùò êáé íá Ý÷åé. Ìðïñåßôå íá áëëÜîåôå ôç öñÜóç óáò\n"
-#~ "üðïôå èÝëåôå, ìå ôçí åðéëïãÞ \"--edit-key\".\n"
+#~ "Δεν χρειάζεστε μια φράση κλειδί - αυτό είναι μάλλον μια *κακή* ιδέα!\n"
+#~ "Θα συνεχίσω όπως και να έχει. Μπορείτε να αλλάξετε τη φράση σας\n"
+#~ "όποτε θέλετε, με την επιλογή \"--edit-key\".\n"
 #~ "\n"
 
 #, fuzzy
 #~ msgid "storing key onto card failed: %s\n"
-#~ msgstr "äéáãñáöÞ block êëåéäéþí áðÝôõ÷å: %s\n"
+#~ msgstr "διαγραφή block κλειδιών απέτυχε: %s\n"
 
 #, fuzzy
 #~| msgid "1 bad signature\n"
 #~ msgid "1 good signature\n"
-#~ msgstr "1 êáêÞ õðïãñáöÞ\n"
-
-#, fuzzy
-#~ msgid "renaming '%s' to '%s' failed: %s\n"
-#~ msgstr "èùñÜêéóç áðÝôõ÷å: %s\n"
+#~ msgstr "1 κακή υπογραφή\n"
 
 #, fuzzy
 #~ msgid "%lu keys cached (%lu signatures)\n"
-#~ msgstr "%lu êëåéäéÜ Ý÷ïõí åëåã÷èåß (%lu õðïãñáöÝò)\n"
+#~ msgstr "%lu κλειδιά έχουν ελεγχθεί (%lu υπογραφές)\n"
 
 #, fuzzy
 #~ msgid "refreshing 1 key from %s\n"
-#~ msgstr "áßôçóç êëåéäéïý %08lX áðü ôï %s\n"
+#~ msgstr "αίτηση κλειδιού %08lX από το %s\n"
 
 #, fuzzy
 #~ msgid "sending key %s to %s server %s\n"
-#~ msgstr "áíáæÞôçóç ôïõ \"%s\" áðü ôï HKP äéáêïìéóôÞ %s\n"
+#~ msgstr "αναζήτηση του \"%s\" από το HKP διακομιστή %s\n"
 
 #, fuzzy
 #~ msgid "public key %s is %lu seconds newer than the signature\n"
 #~ msgstr ""
-#~ "ôï äçìüóéï êëåéäß %08lX åßíáé %lu äåõôåñüëåðôá íåüôåñï áðü ôçí õðïãñáöÞ\n"
+#~ "το δημόσιο κλειδί %08lX είναι %lu δευτερόλεπτα νεότερο από την υπογραφή\n"
 
 #, fuzzy
 #~ msgid ""
 #~ "key %s was created %lu seconds in the future (time warp or clock "
 #~ "problem)\n"
 #~ msgstr ""
-#~ "ôï êëåéäß äçìéïõñãÞèçêå %lu äåõôåñüëåðôá óôï ìÝëëïí (÷ñïíïäßíç Þ\n"
-#~ "áðëþò ðñüâëçìá óôï ñïëüé)\n"
+#~ "το κλειδί δημιουργήθηκε %lu δευτερόλεπτα στο μέλλον (χρονοδίνη ή\n"
+#~ "απλώς πρόβλημα στο ρολόι)\n"
 
 #, fuzzy
 #~| msgid "can't open the keyring"
 #~ msgid "Failed to open the keyring DB.\n"
-#~ msgstr "áäõíáìßá ðñüóâáóçò óôç êëåéäïèÞêç"
+#~ msgstr "αδυναμία πρόσβασης στη κλειδοθήκη"
 
 #, fuzzy
 #~ msgid "Failed to parse '%s'.\n"
-#~ msgstr "áäõíáìßá ðñüóâáóçò óôï `%s': %s\n"
+#~ msgstr "αδυναμία πρόσβασης στο `%s': %s\n"
 
 #, fuzzy
 #~ msgid "error looking up secret key \"%s\": %s\n"
-#~ msgstr "óöÜëìá êáôÜ ôçí áíÜãíùóç ìõóôéêïý ìðëïê êëåéäéïý `%s': %s\n"
+#~ msgstr "σφάλμα κατά την ανάγνωση μυστικού μπλοκ κλειδιού `%s': %s\n"
 
 #, fuzzy
 #~ msgid "Please select at most one subkey.\n"
-#~ msgstr "Ðáñáêáëþ åðéëÝîôå ôï ðïëý Ýíá äåõôåñåýïí êëåéäß.\n"
+#~ msgstr "Παρακαλώ επιλέξτε το πολύ ένα δευτερεύον κλειδί.\n"
 
 #, fuzzy
 #~ msgid "malformed %s environment variable\n"
-#~ msgstr "êáêïäéáôõðïìÝíç ìåôáâëçôÞ ðåñéâÜëëïíôïò GPG_AGENT_INFO\n"
+#~ msgstr "κακοδιατυπομένη μεταβλητή περιβάλλοντος GPG_AGENT_INFO\n"
 
 #, fuzzy
 #~ msgid "dirmngr protocol version %d is not supported\n"
-#~ msgstr "äåí õðïóôçñßæåôáé ç Ýêäïóç ðñùôïêüëëïõ %d ôïõ gpg-agent\n"
+#~ msgstr "δεν υποστηρίζεται η έκδοση πρωτοκόλλου %d του gpg-agent\n"
 
 #, fuzzy
 #~ msgid "toggle between the secret and public key listings"
-#~ msgstr "áëëáãÞ ìåôáîý ôçò áðåéêüíéóçò ìõóôéêïý êáé äçìüóéïõ êëåéäéïý"
+#~ msgstr "αλλαγή μεταξύ της απεικόνισης μυστικού και δημόσιου κλειδιού"
 
 #~ msgid "Please use the command \"toggle\" first.\n"
-#~ msgstr "Ðáñáêáëþ ÷ñçóéìïðïéåßóôå ôçí åíôïëÞ \"toggle\" ðñþôá.\n"
+#~ msgstr "Παρακαλώ χρησιμοποιείστε την εντολή \"toggle\" πρώτα.\n"
 
 #, fuzzy
 #~ msgid "Passphrase"
-#~ msgstr "êáêÞ öñÜóç êëåéäß"
+#~ msgstr "κακή φράση κλειδί"
 
 #, fuzzy
 #~ msgid "WARNING: keyserver option '%s' is not used on this platform\n"
 #~ msgstr ""
-#~ "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ïé åðéëïãåò óôï `%s' äåí åßíáé åíåñãÝò óå áõôÞ ôçí "
-#~ "åêôÝëåóç\n"
+#~ "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: οι επιλογες στο `%s' δεν είναι ενεργές σε αυτή την "
+#~ "εκτέλεση\n"
 
 #~ msgid "gpg-agent is not available in this session\n"
-#~ msgstr "ï gpg-agent äåí åßíáé äéáèÝóéìïò óå áõôÞ ôç óõíåäñßá\n"
+#~ msgstr "ο gpg-agent δεν είναι διαθέσιμος σε αυτή τη συνεδρία\n"
 
 #, fuzzy
 #~ msgid "use a standard location for the socket"
 #~ msgstr ""
-#~ "Óßãïõñá èÝëåôå íá áíáíåùèïýí ïé ðñïåðéëïãÝò ãéá ôï åðéëåãìÝíï user ID; "
+#~ "Σίγουρα θέλετε να ανανεωθούν οι προεπιλογές για το επιλεγμένο user ID; "
 
 #, fuzzy
 #~ msgid "Usage: gpg-agent [options] (-h for help)"
-#~ msgstr "×ñÞóç: gpg [åðéëïãÝò] [áñ÷åßá] (-h ãéá âïÞèåéá)"
+#~ msgstr "Χρήση: gpg [επιλογές] [αρχεία] (-h για βοήθεια)"
 
 #~ msgid "malformed GPG_AGENT_INFO environment variable\n"
-#~ msgstr "êáêïäéáôõðïìÝíç ìåôáâëçôÞ ðåñéâÜëëïíôïò GPG_AGENT_INFO\n"
+#~ msgstr "κακοδιατυπομένη μεταβλητή περιβάλλοντος GPG_AGENT_INFO\n"
 
 #~ msgid "gpg-agent protocol version %d is not supported\n"
-#~ msgstr "äåí õðïóôçñßæåôáé ç Ýêäïóç ðñùôïêüëëïõ %d ôïõ gpg-agent\n"
+#~ msgstr "δεν υποστηρίζεται η έκδοση πρωτοκόλλου %d του gpg-agent\n"
 
 #, fuzzy
 #~ msgid "can't fdopen pipe for reading: %s\n"
-#~ msgstr "áäõíáìßá ðñüóâáóçò ôïõ áñ÷åßïõ: %s\n"
+#~ msgstr "αδυναμία πρόσβασης του αρχείου: %s\n"
 
 #, fuzzy
 #~ msgid "error creating socket: %s\n"
-#~ msgstr "óöÜëìá êáôÜ ôç äçìéïõñãßá ôïõ `%s': %s\n"
+#~ msgstr "σφάλμα κατά τη δημιουργία του `%s': %s\n"
 
 #, fuzzy
 #~ msgid "host not found"
-#~ msgstr "[User id äåí âñÝèçêå]"
+#~ msgstr "[User id δεν βρέθηκε]"
 
 #, fuzzy
 #~ msgid "unknown key protection algorithm\n"
-#~ msgstr "Üãíùóôïò áëãüñéèìïò ðñïóôáóßáò\n"
+#~ msgstr "άγνωστος αλγόριθμος προστασίας\n"
 
 #, fuzzy
 #~ msgid "secret parts of key are not available\n"
-#~ msgstr "ÌõóôéêÜ ôìÞìáôá ôïõ êýñéïõ êëåéäéïý äåí åßíáé äéáèÝóéìá.\n"
+#~ msgstr "Μυστικά τμήματα του κύριου κλειδιού δεν είναι διαθέσιμα.\n"
 
 #, fuzzy
 #~ msgid "secret key already stored on a card\n"
-#~ msgstr "ðáñáëåßöèçêå: ìõóôéêü êëåéäß Þäç ðáñþí\n"
+#~ msgstr "παραλείφθηκε: μυστικό κλειδί ήδη παρών\n"
 
 #, fuzzy
 #~ msgid "error writing key to card: %s\n"
-#~ msgstr "áäõíáìßá åããñáöÞò ôçò êëåéäïèÞêçò `%s': %s\n"
+#~ msgstr "αδυναμία εγγραφής της κλειδοθήκης `%s': %s\n"
 
 #~ msgid ""
 #~ "you can only encrypt to RSA keys of 2048 bits or less in --pgp2 mode\n"
 #~ msgstr ""
-#~ "êñõðôïãñÜöçóç ìå êëåéäßá RSA áðü 2048 bit Þ ðéï ëßãï ìüíï óå êáôÜóôáóç --"
+#~ "κρυπτογράφηση με κλειδία RSA από 2048 bit ή πιο λίγο μόνο σε κατάσταση --"
 #~ "pgp2\n"
 
 #~ msgid ""
 #~ "unable to use the IDEA cipher for all of the keys you are encrypting to.\n"
 #~ msgstr ""
-#~ "áäõíáìßá ÷ñÞóçò ôïõ êñõðôáëãüñéèìïõ IDEA ãéá üëá ôá êëåéäßá ìå ôá "
-#~ "ïðïßáêñõðôïãñáöåßôå.\n"
+#~ "αδυναμία χρήσης του κρυπταλγόριθμου IDEA για όλα τα κλειδία με τα "
+#~ "οποίακρυπτογραφείτε.\n"
 
 #, fuzzy
 #~ msgid "remove the passphrase from exported subkeys"
-#~ msgstr "áíÜêëçóç åíüò äåõôåñåýïíôïò êëåéäéïý"
+#~ msgstr "ανάκληση ενός δευτερεύοντος κλειδιού"
 
 #, fuzzy
 #~ msgid "key %s: not protected - skipped\n"
-#~ msgstr "êëåéäß %08lX: äåí åßíáé ðñïóôáôåõìÝíï - ðáñáëåßöèçêå\n"
+#~ msgstr "κλειδί %08lX: δεν είναι προστατευμένο - παραλείφθηκε\n"
 
 #, fuzzy
 #~ msgid "failed to unprotect the subkey: %s\n"
-#~ msgstr "áðïôõ÷ßá áñ÷éêïðïßçóçò ôçò TrustDB: %s\n"
+#~ msgstr "αποτυχία αρχικοποίησης της TrustDB: %s\n"
 
 #, fuzzy
 #~ msgid "WARNING: secret key %s does not have a simple SK checksum\n"
-#~ msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ôï ìõóôéêü êëåéäß %08lX äåí Ý÷åé áðëü SK checksum\n"
+#~ msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: το μυστικό κλειδί %08lX δεν έχει απλό SK checksum\n"
 
 #~ msgid "too many entries in pk cache - disabled\n"
-#~ msgstr "ðÜñá ðïëëÝò êáôá÷ùñÞóåéò óôç pk cache - áðåíåñãïðïéÞèçêå\n"
+#~ msgstr "πάρα πολλές καταχωρήσεις στη pk cache - απενεργοποιήθηκε\n"
 
 #, fuzzy
 #~ msgid "no secret subkey for public subkey %s - ignoring\n"
-#~ msgstr "êáíÝíá ìõóôéêü õðïêëåéäß ãéá ôï äçìüóéï õðïêëåéäß %08lX - áãíüçóç\n"
+#~ msgstr "κανένα μυστικό υποκλειδί για το δημόσιο υποκλειδί %08lX - αγνόηση\n"
 
 #, fuzzy
 #~ msgid "key %s: secret key without public key - skipped\n"
-#~ msgstr "êëåéäß %08lX: ìõóôéêü êëåéäß ÷ùñßò äçìüóéï - ðáñáëåßöèçêå\n"
+#~ msgstr "κλειδί %08lX: μυστικό κλειδί χωρίς δημόσιο - παραλείφθηκε\n"
 
 #~ msgid "usage: gpg [options] "
-#~ msgstr "÷ñÞóç: gpg [åðéëïãÝò] "
+#~ msgstr "χρήση: gpg [επιλογές] "
 
 #~ msgid ""
 #~ "you can only make detached or clear signatures while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "ìðïñåßôå íá êÜíåôå áðïêïììÝíåò Þ êáèáñÝò õðïãñáöÝò ìüíï óå --pgp2 "
-#~ "êáôÜóôáóç\n"
+#~ "μπορείτε να κάνετε αποκομμένες ή καθαρές υπογραφές μόνο σε --pgp2 "
+#~ "κατάσταση\n"
 
 #~ msgid "you can't sign and encrypt at the same time while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "äåí ìðïñåßôå íá õðïãñÜöåôå êáé íá êñõðôïãñáöåßôå ôáõôü÷ñïíá óå --pgp2 "
-#~ "êáôÜóôáóç\n"
+#~ "δεν μπορείτε να υπογράφετε και να κρυπτογραφείτε ταυτόχρονα σε --pgp2 "
+#~ "κατάσταση\n"
 
 #~ msgid ""
 #~ "you must use files (and not a pipe) when working with --pgp2 enabled.\n"
 #~ msgstr ""
-#~ "ìüíï áñ÷åßá åðéôñÝðïíôáé (êáé ü÷é pipes) êáôá ôçí êáôáóôáóç --pgp2.\n"
+#~ "μόνο αρχεία επιτρέπονται (και όχι pipes) κατα την κατασταση --pgp2.\n"
 
 #~ msgid "encrypting a message in --pgp2 mode requires the IDEA cipher\n"
 #~ msgstr ""
-#~ "ç êñõðôïãñÜöçóç åíüò ìçíýìáôïò óå --pgp2 êáôÜóôáóç áðáéôåß ôïí áëãïñ. "
+#~ "η κρυπτογράφηση ενός μηνύματος σε --pgp2 κατάσταση απαιτεί τον αλγορ. "
 #~ "IDEA\n"
 
 #, fuzzy
 #~ msgid "create a public key when importing a secret key"
-#~ msgstr "ôï äçìïóßï êëåéäß äåí ôáéñéÜæåé ìå ôï ìõóôéêü!\n"
+#~ msgstr "το δημοσίο κλειδί δεν ταιριάζει με το μυστικό!\n"
 
 #, fuzzy
 #~ msgid "key %s: already in secret keyring\n"
-#~ msgstr "êëåéäß %08lX: Þäç óôç ìõóôéêÞ êëåéäïèÞêç\n"
+#~ msgstr "κλειδί %08lX: ήδη στη μυστική κλειδοθήκη\n"
 
 #, fuzzy
 #~ msgid "key %s: secret key not found: %s\n"
-#~ msgstr "êëåéäß %08lX: äå âñÝèçêå ôï ìõóôéêü êëåéäß: %s\n"
+#~ msgstr "κλειδί %08lX: δε βρέθηκε το μυστικό κλειδί: %s\n"
 
 #, fuzzy
 #~ msgid "NOTE: a key's S/N does not match the card's one\n"
-#~ msgstr "ôï äçìïóßï êëåéäß äåí ôáéñéÜæåé ìå ôï ìõóôéêü!\n"
+#~ msgstr "το δημοσίο κλειδί δεν ταιριάζει με το μυστικό!\n"
 
 #, fuzzy
 #~ msgid "NOTE: primary key is online and stored on card\n"
-#~ msgstr "ðáñáëåßöèçêå: ìõóôéêü êëåéäß Þäç ðáñþí\n"
+#~ msgstr "παραλείφθηκε: μυστικό κλειδί ήδη παρών\n"
 
 #, fuzzy
 #~ msgid "NOTE: secondary key is online and stored on card\n"
-#~ msgstr "ðáñáëåßöèçêå: ìõóôéêü êëåéäß Þäç ðáñþí\n"
+#~ msgstr "παραλείφθηκε: μυστικό κλειδί ήδη παρών\n"
 
 #~ msgid ""
 #~ "You may not make an OpenPGP signature on a PGP 2.x key while in --pgp2 "
 #~ "mode.\n"
 #~ msgstr ""
-#~ "Ìðïñåßôå íá ÷ñçóéìüðïéÞóåôå ìéá OpenPGP õðïãñáöÞ óå Ýíá PGP 2.x ìüíï óå "
-#~ "êáôÜóôáóç --pgp2.\n"
+#~ "Μπορείτε να χρησιμόποιήσετε μια OpenPGP υπογραφή σε ένα PGP 2.x μόνο σε "
+#~ "κατάσταση --pgp2.\n"
 
 #~ msgid "This would make the key unusable in PGP 2.x.\n"
-#~ msgstr "Áõôü èá êÜíåé ôï êëåéäß Ü÷ñçóôï ìå ôï PGP 2.x.\n"
+#~ msgstr "Αυτό θα κάνει το κλειδί άχρηστο με το PGP 2.x.\n"
 
 #~ msgid "This key is not protected.\n"
-#~ msgstr "Áõôü ôï êëåéäß äåí ðñïóôáôåýåôáé.\n"
+#~ msgstr "Αυτό το κλειδί δεν προστατεύεται.\n"
 
 #~ msgid "Key is protected.\n"
-#~ msgstr "Ôï êëåéäß ðñïóôáôåýåôáé.\n"
+#~ msgstr "Το κλειδί προστατεύεται.\n"
 
 #~ msgid "Can't edit this key: %s\n"
-#~ msgstr "Áäýíáôç ç åðåîåñãáóßá áõôïý ôïõ êëåéäéïý:%s\n"
+#~ msgstr "Αδύνατη η επεξεργασία αυτού του κλειδιού:%s\n"
 
 #~ msgid ""
 #~ "Enter the new passphrase for this secret key.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "ÐëçêôñïëïãÞóôå ôçí íÝá öñÜóç êëåéäß ãéá áõôü ôï ìõóôéêü êëåéäß.\n"
+#~ "Πληκτρολογήστε την νέα φράση κλειδί για αυτό το μυστικό κλειδί.\n"
 #~ "\n"
 
 #~ msgid ""
 #~ "You don't want a passphrase - this is probably a *bad* idea!\n"
 #~ "\n"
-#~ msgstr "Äåí èÝëåôå öñÜóç êëåéäß - áõôü åßíáé ìÜëëïí *êáêÞ* éäÝá!\n"
+#~ msgstr "Δεν θέλετε φράση κλειδί - αυτό είναι μάλλον *κακή* ιδέα!\n"
 
 #, fuzzy
 #~ msgid "Do you really want to do this? (y/N) "
-#~ msgstr "Óßãïõñá èÝëåôå íá êÜíåôå áõôü; "
+#~ msgstr "Σίγουρα θέλετε να κάνετε αυτό; "
 
 #~ msgid "Please remove selections from the secret keys.\n"
-#~ msgstr "Ðáñáêáëþ áöáéñÝóôå ôéò åðéëïãÝò áðü ôá ìõóôéêÜ êëåéäéÜ.\n"
+#~ msgstr "Παρακαλώ αφαιρέστε τις επιλογές από τα μυστικά κλειδιά.\n"
 
 #~ msgid "No corresponding signature in secret ring\n"
-#~ msgstr "Äåí âñÝèçêå áíôßóôïé÷ç õðïãñáöÞ óôç ìõóôéêÞ êëåéäïèÞêç\n"
+#~ msgstr "Δεν βρέθηκε αντίστοιχη υπογραφή στη μυστική κλειδοθήκη\n"
 
 #, fuzzy
 #~ msgid "writing secret key stub to `%s'\n"
-#~ msgstr "åããñáöÞ ôïõ ìõóôéêïý êëåéäéïý óôï `%s'\n"
+#~ msgstr "εγγραφή του μυστικού κλειδιού στο `%s'\n"
 
 #~ msgid "writing secret key to `%s'\n"
-#~ msgstr "åããñáöÞ ôïõ ìõóôéêïý êëåéäéïý óôï `%s'\n"
+#~ msgstr "εγγραφή του μυστικού κλειδιού στο `%s'\n"
 
 #~ msgid "no writable secret keyring found: %s\n"
-#~ msgstr "äå âñÝèçêå åããñÜøéìç ìõóôéêÞ êëåéäïèÞêç: %s\n"
+#~ msgstr "δε βρέθηκε εγγράψιμη μυστική κλειδοθήκη: %s\n"
 
 #~ msgid "WARNING: 2 files with confidential information exists.\n"
-#~ msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: 2 áñ÷åßá ìå åìðéóôåõôéêÝò ðëçñïöïñßåò õðÜñ÷ïõí.\n"
+#~ msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: 2 αρχεία με εμπιστευτικές πληροφορίες υπάρχουν.\n"
 
 #~ msgid "%s is the unchanged one\n"
-#~ msgstr "%s åßíáé ôï áìåôÜâëçôï\n"
+#~ msgstr "%s είναι το αμετάβλητο\n"
 
 #~ msgid "%s is the new one\n"
-#~ msgstr "%s åßíáé ôï íÝï\n"
+#~ msgstr "%s είναι το νέο\n"
 
 #~ msgid "Please fix this possible security flaw\n"
-#~ msgstr "Ðáñáêáëþ äéïñèþóôå áõôÞ ôçí ðéèáíÞ \"ôñýðá\" áóöáëåßáò\n"
+#~ msgstr "Παρακαλώ διορθώστε αυτή την πιθανή \"τρύπα\" ασφαλείας\n"
 
 #, fuzzy
 #~ msgid "searching for names from %s server %s\n"
-#~ msgstr "áíáæÞôçóç ôïõ \"%s\" áðü ôï HKP äéáêïìéóôÞ %s\n"
+#~ msgstr "αναζήτηση του \"%s\" από το HKP διακομιστή %s\n"
 
 #, fuzzy
 #~ msgid "searching for names from %s\n"
-#~ msgstr "áíáæÞôçóç ôïõ \"%s\" áðü ôï HKP äéáêïìéóôÞ %s\n"
+#~ msgstr "αναζήτηση του \"%s\" από το HKP διακομιστή %s\n"
 
 #, fuzzy
 #~ msgid "searching for \"%s\" from %s server %s\n"
-#~ msgstr "áíáæÞôçóç ôïõ \"%s\" áðü ôï HKP äéáêïìéóôÞ %s\n"
+#~ msgstr "αναζήτηση του \"%s\" από το HKP διακομιστή %s\n"
 
 #, fuzzy
 #~ msgid "searching for \"%s\" from %s\n"
-#~ msgstr "áíáæÞôçóç ôïõ \"%s\" áðü ôï HKP äéáêïìéóôÞ %s\n"
+#~ msgstr "αναζήτηση του \"%s\" από το HKP διακομιστή %s\n"
 
 #, fuzzy
 #~ msgid "keyserver timed out\n"
-#~ msgstr "óöÜëìá äéáêïìéóôÞ êëåéäéþí"
+#~ msgstr "σφάλμα διακομιστή κλειδιών"
 
 #, fuzzy
 #~ msgid "keyserver internal error\n"
-#~ msgstr "óöÜëìá äéáêïìéóôÞ êëåéäéþí"
+#~ msgstr "σφάλμα διακομιστή κλειδιών"
 
 #, fuzzy
 #~ msgid "keyserver communications error: %s\n"
-#~ msgstr "keyserver ëÞøç áðÝôõ÷å: %s\n"
+#~ msgstr "keyserver λήψη απέτυχε: %s\n"
 
 #, fuzzy
 #~ msgid "WARNING: unable to parse URI %s\n"
-#~ msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: áäõíáìßá äéáãñáöÞò tempfile (%s) `%s': %s\n"
+#~ msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: αδυναμία διαγραφής tempfile (%s) `%s': %s\n"
 
 #~ msgid "invalid root packet detected in proc_tree()\n"
-#~ msgstr "ìç Ýãêõñï ñéæéêü(root) ðáêÝôï áíé÷íåýôçêå óôï proc_tree()\n"
+#~ msgstr "μη έγκυρο ριζικό(root) πακέτο ανιχνεύτηκε στο proc_tree()\n"
 
 #~ msgid "the IDEA cipher plugin is not present\n"
-#~ msgstr "ôï âýóìá ôïõ êñõðôáëãüñéèìïõ IDEA äåí õðÜñ÷åé\n"
+#~ msgstr "το βύσμα του κρυπταλγόριθμου IDEA δεν υπάρχει\n"
 
 #~ msgid "no corresponding public key: %s\n"
-#~ msgstr "êáíÝíá áíôßóôé÷ï äçìüóéï êëåéäß: %s\n"
+#~ msgstr "κανένα αντίστιχο δημόσιο κλειδί: %s\n"
 
 #~ msgid "public key does not match secret key!\n"
-#~ msgstr "ôï äçìïóßï êëåéäß äåí ôáéñéÜæåé ìå ôï ìõóôéêü!\n"
+#~ msgstr "το δημοσίο κλειδί δεν ταιριάζει με το μυστικό!\n"
 
 #~ msgid "unknown protection algorithm\n"
-#~ msgstr "Üãíùóôïò áëãüñéèìïò ðñïóôáóßáò\n"
+#~ msgstr "άγνωστος αλγόριθμος προστασίας\n"
 
 #~ msgid "NOTE: This key is not protected!\n"
-#~ msgstr "ÓÇÌÅÉÙÓÇ: Áõôü ôï êëåéäß äåí ðñïóôáôåýåôáé!\n"
+#~ msgstr "ΣΗΜΕΙΩΣΗ: Αυτό το κλειδί δεν προστατεύεται!\n"
 
 #, fuzzy
 #~ msgid "protection digest %d is not supported\n"
-#~ msgstr "äåí õðïóôçñßæåôáé ï áëãüñéèìïò ðñïóôáóßáò %d%s\n"
+#~ msgstr "δεν υποστηρίζεται ο αλγόριθμος προστασίας %d%s\n"
 
 #~ msgid "Invalid passphrase; please try again"
-#~ msgstr "Ìç Ýãêõñç öñÜóç êëåéäß, äïêéìÜóôå îáíÜ"
+#~ msgstr "Μη έγκυρη φράση κλειδί, δοκιμάστε ξανά"
 
 #~ msgid "%s ...\n"
 #~ msgstr "%s ...\n"
 
 #~ msgid "WARNING: Weak key detected - please change passphrase again.\n"
 #~ msgstr ""
-#~ "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: Áíé÷íåýôçêå áäýíáìï êëåéäß - áëëÜîôå ôç öñÜóç êëåéäß\n"
+#~ "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Ανιχνεύτηκε αδύναμο κλειδί - αλλάξτε τη φράση κλειδί\n"
 
 #~ msgid ""
 #~ "generating the deprecated 16-bit checksum for secret key protection\n"
 #~ msgstr ""
-#~ "äçìéïõñãßá ôïõ ìç óõíåéóôüìåíïõ 16-bit checksum ãéá ôç ðñïóôáóßá ôïõ\n"
-#~ "ìõóôéêïý êëåéäéïý\n"
+#~ "δημιουργία του μη συνειστόμενου 16-bit checksum για τη προστασία του\n"
+#~ "μυστικού κλειδιού\n"
 
 #~ msgid ""
 #~ "you can only detach-sign with PGP 2.x style keys while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "ìðïñåßôå íá õðïãñÜøåôå-áðïêïììÝíá ìå êëåéäéÜ ôýðïõ PGP 2.x ìüíï óå\n"
-#~ "--pgp2 êáôÜóôáóç\n"
+#~ "μπορείτε να υπογράψετε-αποκομμένα με κλειδιά τύπου PGP 2.x μόνο σε\n"
+#~ "--pgp2 κατάσταση\n"
 
 #~ msgid ""
 #~ "you can only clearsign with PGP 2.x style keys while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "ìðïñåßôå íá õðïãñÜøåôå êáèáñÜ ìå êëåéäéÜ ôýðïõ PGP 2.x óå êáôÜóôáóç --"
+#~ "μπορείτε να υπογράψετε καθαρά με κλειδιά τύπου PGP 2.x σε κατάσταση --"
 #~ "pgp2\n"
 
 #, fuzzy
 #~ msgid "Usage: scdaemon [options] (-h for help)"
-#~ msgstr "×ñÞóç: gpg [åðéëïãÝò] [áñ÷åßá] (-h ãéá âïÞèåéá)"
+#~ msgstr "Χρήση: gpg [επιλογές] [αρχεία] (-h για βοήθεια)"
 
 #, fuzzy
 #~ msgid "Usage: gpgsm [options] [files] (-h for help)"
-#~ msgstr "×ñÞóç: gpg [åðéëïãÝò] [áñ÷åßá] (-h ãéá âïÞèåéá)"
+#~ msgstr "Χρήση: gpg [επιλογές] [αρχεία] (-h για βοήθεια)"
 
 #, fuzzy
 #~ msgid "usage: gpgconf [options] "
-#~ msgstr "÷ñÞóç: gpg [åðéëïãÝò] "
+#~ msgstr "χρήση: gpg [επιλογές] "
 
 #, fuzzy
 #~ msgid "failed to allocated keyDB handle\n"
-#~ msgstr "áðïôõ÷ßá áñ÷éêïðïßçóçò ôçò TrustDB: %s\n"
+#~ msgstr "αποτυχία αρχικοποίησης της TrustDB: %s\n"
 
 #~ msgid "Command> "
-#~ msgstr "ÅíôïëÞ> "
+#~ msgstr "Εντολή> "
 
 #~ msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
 #~ msgstr ""
-#~ "ç trustdb åßíáé öèáñìÝíç - ÷ñçóéìïðïéåßóôå ôï \"gpg --fix-trustdb\".\n"
+#~ "η trustdb είναι φθαρμένη - χρησιμοποιείστε το \"gpg --fix-trustdb\".\n"
 
 #~ msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
-#~ msgstr "ÁíáöÝñåôå ôá ðñïâëÞìáôá óôï <gnupg-bugs@gnu.org>\n"
+#~ msgstr "Αναφέρετε τα προβλήματα στο <gnupg-bugs@gnu.org>\n"
 
 #, fuzzy
 #~ msgid "Please report bugs to "
-#~ msgstr "ÁíáöÝñåôå ôá ðñïâëÞìáôá óôï <gnupg-bugs@gnu.org>\n"
+#~ msgstr "Αναφέρετε τα προβλήματα στο <gnupg-bugs@gnu.org>\n"
 
 #, fuzzy
 #~ msgid "DSA keypair will have %u bits.\n"
-#~ msgstr "Ôï æåýãïò êëåéäéþí DSA èá åßíáé 1024 bits.\n"
+#~ msgstr "Το ζεύγος κλειδιών DSA θα είναι 1024 bits.\n"
 
 #~ msgid "Repeat passphrase\n"
-#~ msgstr "ÅðáíáëÜâåôå ôç öñÜóç\n"
+#~ msgstr "Επαναλάβετε τη φράση\n"
 
 #, fuzzy
 #~ msgid "read options from file"
-#~ msgstr "áíÜãíùóç åðéëïãþí áðü `%s'\n"
+#~ msgstr "ανάγνωση επιλογών από `%s'\n"
 
 #~ msgid "|[file]|make a signature"
-#~ msgstr "|[áñ÷åßï]|äçìéïõñãßá ìéáò õðïãñáöÞò"
+#~ msgstr "|[αρχείο]|δημιουργία μιας υπογραφής"
 
 #, fuzzy
 #~ msgid "|[FILE]|make a signature"
-#~ msgstr "|[áñ÷åßï]|äçìéïõñãßá ìéáò õðïãñáöÞò"
+#~ msgstr "|[αρχείο]|δημιουργία μιας υπογραφής"
 
 #, fuzzy
 #~ msgid "|[FILE]|make a clear text signature"
-#~ msgstr "|[áñ÷åßï]|äçìéïõñãßá ìéáò ìç êñõðôïãñáöçìÝíçò õðïãñáöÞò"
+#~ msgstr "|[αρχείο]|δημιουργία μιας μη κρυπτογραφημένης υπογραφής"
 
 #~ msgid "use the default key as default recipient"
-#~ msgstr "÷ñÞóç ôïõ ðñïêáèïñéóìÝíïõ êëåéäéïý ùò ðñïêáèïñéóìÝíïõ ðáñáëÞðôç"
+#~ msgstr "χρήση του προκαθορισμένου κλειδιού ως προκαθορισμένου παραλήπτη"
 
 #~ msgid "force v3 signatures"
-#~ msgstr "åîáíáãêáóìüò ÷ñÞóçò v3 õðïãñáöþí"
+#~ msgstr "εξαναγκασμός χρήσης v3 υπογραφών"
 
 #~ msgid "always use a MDC for encryption"
-#~ msgstr "÷ñÞóç ðÜíôïôå MDC ãéá êñõðôïãñÜöçóç"
+#~ msgstr "χρήση πάντοτε MDC για κρυπτογράφηση"
 
 #~ msgid "add this secret keyring to the list"
-#~ msgstr "ðñïóèÞêç áõôÞò ôçò ìõóôéêÞò êëåéäïèÞêçò óôç ëßóôá"
+#~ msgstr "προσθήκη αυτής της μυστικής κλειδοθήκης στη λίστα"
 
 #~ msgid "|FILE|load extension module FILE"
-#~ msgstr "|ÁÑ×ÅÉÏ|öüñôùìá ôïõ áñèñþìáôïò åðÝêôáóçò ÁÑ×ÅÉÏ"
+#~ msgstr "|ΑΡΧΕΙΟ|φόρτωμα του αρθρώματος επέκτασης ΑΡΧΕΙΟ"
 
 #~ msgid "|N|use compress algorithm N"
-#~ msgstr "|N|÷ñÞóç áëãïñßèìïõ óõìðßåóçò N"
+#~ msgstr "|N|χρήση αλγορίθμου συμπίεσης N"
 
 #, fuzzy
 #~ msgid "remove key from the public keyring"
-#~ msgstr "áöáßñåóç ôùí êëåéäéþí áðü ôç äçìüóéá êëåéäïèÞêç"
+#~ msgstr "αφαίρεση των κλειδιών από τη δημόσια κλειδοθήκη"
 
 #~ msgid ""
 #~ "It's up to you to assign a value here; this value will never be exported\n"
@@ -9376,11 +9454,11 @@ msgstr ""
 #~ "nothing\n"
 #~ "to do with the (implicitly created) web-of-certificates."
 #~ msgstr ""
-#~ "Åßíáé áðüöáóç óáò íá ïñßóåôå ôéìÞ åäþ. ÁõôÞ ç ôéìÞ äåí èá åîá÷èåß\n"
-#~ "ðïôÝ óå ôñßôï ðñüóùðï.  Ôç ÷ñåéáæüìáóôå ãéá åöáñìïãÞ ôïõ éóôïý-"
-#~ "åìðéóôïóýíçò,\n"
-#~ "äåí Ý÷åé ôßðïôá íá êÜíåé ìå ôïí (óéùðçëÜ äçìéïõñãçìÝíï) éóôü-"
-#~ "ðéóôïðïéçôéêþí."
+#~ "Είναι απόφαση σας να ορίσετε τιμή εδώ. Αυτή η τιμή δεν θα εξαχθεί\n"
+#~ "ποτέ σε τρίτο πρόσωπο.  Τη χρειαζόμαστε για εφαρμογή του ιστού-"
+#~ "εμπιστοσύνης,\n"
+#~ "δεν έχει τίποτα να κάνει με τον (σιωπηλά δημιουργημένο) ιστό-"
+#~ "πιστοποιητικών."
 
 #~ msgid ""
 #~ "To build the Web-of-Trust, GnuPG needs to know which keys are\n"
@@ -9388,39 +9466,39 @@ msgstr ""
 #~ "access to the secret key.  Answer \"yes\" to set this key to\n"
 #~ "ultimately trusted\n"
 #~ msgstr ""
-#~ "Ãéá ôç äüìçóç åíüò Éóôïý-Åìðéóôïóýíçò, ôï GnuPG ðñÝðåé íá îÝñåé ðïéÜ "
-#~ "êëåéäéÜ\n"
-#~ "åßíáé ðëÞñçò åìðéóôïóýíçò - áõôÜ åßíáé óõíÞèùò êëåéäéÜ óôá ïðïßá Ý÷åôå\n"
-#~ "ðñüóâáóç óôï ìõóôéêü êëåéäß. ÁðáíôÞóôå \"yes\" (íáé) ãéá íá äïèåß óôï "
-#~ "êëåéäß\n"
-#~ "áõôü ðëÞñç åìðéóôïóýíç\n"
+#~ "Για τη δόμηση ενός Ιστού-Εμπιστοσύνης, το GnuPG πρέπει να ξέρει ποιά "
+#~ "κλειδιά\n"
+#~ "είναι πλήρης εμπιστοσύνης - αυτά είναι συνήθως κλειδιά στα οποία έχετε\n"
+#~ "πρόσβαση στο μυστικό κλειδί. Απαντήστε \"yes\" (ναι) για να δοθεί στο "
+#~ "κλειδί\n"
+#~ "αυτό πλήρη εμπιστοσύνη\n"
 
 #~ msgid "If you want to use this untrusted key anyway, answer \"yes\"."
 #~ msgstr ""
-#~ "ÅÜí èÝëåôå íá ÷ñçóéìïðïéÞóåôå áõôü ôï ìç åìðéóôåõìÝíï êëåéäß, áðáíôÞóôå "
+#~ "Εάν θέλετε να χρησιμοποιήσετε αυτό το μη εμπιστευμένο κλειδί, απαντήστε "
 #~ "\"yes\"."
 
 #~ msgid ""
 #~ "Enter the user ID of the addressee to whom you want to send the message."
 #~ msgstr ""
-#~ "ÐëçêôñïëïãÞóôå ôï user ID ôïõ áðïäÝêôç áõôïý ðïõ èÝëåôå íá óôåßëåôå "
-#~ "ìÞíõìá."
+#~ "Πληκτρολογήστε το user ID του αποδέκτη αυτού που θέλετε να στείλετε "
+#~ "μήνυμα."
 
 #~ msgid ""
 #~ "In general it is not a good idea to use the same key for signing and\n"
 #~ "encryption.  This algorithm should only be used in certain domains.\n"
 #~ "Please consult your security expert first."
 #~ msgstr ""
-#~ "ÃåíéêÜ, äåí åßíáé êáëÞ éäÝá íá ÷ñçóéìïðïéåßôáé ôï ßäéï êëåéäß ãéá "
-#~ "õðïãñáöÞ\n"
-#~ "êáé êñõðôïãñÜöçóç. Áõôüò ï áëãüñéèìïò ðñÝðåé íá ÷ñçóéìïðïéåßôáé ìüíï óå\n"
-#~ "ïñéóìÝíïõò ôüðïõò. Ç óõìâïõëÞ åíüò åéäéêïý óå èÝìáôá áóöÜëåéáò óõíåßóôáôå."
+#~ "Γενικά, δεν είναι καλή ιδέα να χρησιμοποιείται το ίδιο κλειδί για "
+#~ "υπογραφή\n"
+#~ "και κρυπτογράφηση. Αυτός ο αλγόριθμος πρέπει να χρησιμοποιείται μόνο σε\n"
+#~ "ορισμένους τόπους. Η συμβουλή ενός ειδικού σε θέματα ασφάλειας συνείστατε."
 
 #~ msgid "Enter the size of the key"
-#~ msgstr "ÐëçêôñïëïãÞóôå ôï ìÝãåèïò ôïõ êëåéäéïý"
+#~ msgstr "Πληκτρολογήστε το μέγεθος του κλειδιού"
 
 #~ msgid "Answer \"yes\" or \"no\""
-#~ msgstr "ÁðáíôÞóôå \"yes\"(íáé) Þ \"no\"(ü÷é)"
+#~ msgstr "Απαντήστε \"yes\"(ναι) ή \"no\"(όχι)"
 
 #~ msgid ""
 #~ "Enter the required value as shown in the prompt.\n"
@@ -9428,19 +9506,19 @@ msgstr ""
 #~ "get a good error response - instead the system tries to interpret\n"
 #~ "the given value as an interval."
 #~ msgstr ""
-#~ "ÐëçêôñïëïãÞóôå ôçí áðáéôïýìåíç ôéìÞ üðùò áðåéêïíßæåôå.\n"
-#~ "Ìðïñåßôå íá åéóÜãåôå ìéá çìåñïìçíßá ISO (YYYY-MM-DD) áëëÜ\n"
-#~ "äåí èá ëÜâåôå ìéá êáëÞ áðÜíôçóç óöÜëìáôïò - áíôßèåôá ôï óýóôçìá\n"
-#~ "ðñïóðáèåß íá åñìçíåýóåé ôçí ôéìÞ óáí äéÜóôçìá."
+#~ "Πληκτρολογήστε την απαιτούμενη τιμή όπως απεικονίζετε.\n"
+#~ "Μπορείτε να εισάγετε μια ημερομηνία ISO (YYYY-MM-DD) αλλά\n"
+#~ "δεν θα λάβετε μια καλή απάντηση σφάλματος - αντίθετα το σύστημα\n"
+#~ "προσπαθεί να ερμηνεύσει την τιμή σαν διάστημα."
 
 #~ msgid "Enter the name of the key holder"
-#~ msgstr "ÐëçêôñïëïãÞóôå ôï üíïìá ôïõ êëåéäïêñÜôïñá"
+#~ msgstr "Πληκτρολογήστε το όνομα του κλειδοκράτορα"
 
 #~ msgid "please enter an optional but highly suggested email address"
-#~ msgstr "ðëçêôñïëïãÞóôå ðñïáéñåôéêÜ ìéá äéåýèõíóç email (óõíéóôÜôáé)"
+#~ msgstr "πληκτρολογήστε προαιρετικά μια διεύθυνση email (συνιστάται)"
 
 #~ msgid "Please enter an optional comment"
-#~ msgstr "Ðáñáêáëþ ðñïáéñåôéêÜ ðëçêôñïëïãÞóôå Ýíá ó÷üëéï"
+#~ msgstr "Παρακαλώ προαιρετικά πληκτρολογήστε ένα σχόλιο"
 
 #~ msgid ""
 #~ "N  to change the name.\n"
@@ -9449,17 +9527,17 @@ msgstr ""
 #~ "O  to continue with key generation.\n"
 #~ "Q  to to quit the key generation."
 #~ msgstr ""
-#~ "N  ãéá áëëáãÞ ôïõ ïíüìáôïò.\n"
-#~ "C  ãéá áëëáãÞ ôïõ ó÷ïëßïõ.\n"
-#~ "E  ãéá áëëáãÞ ôçò äéåýèõíóçò email.\n"
-#~ "O  ãéá óõíÝ÷åéá ôçò äçìéïõñãßáò êëåéäéïý.\n"
-#~ "Q  ãéá íá ôåñìáôßóåôå ôç äçìéïõñãßá êëåéäéïý."
+#~ "N  για αλλαγή του ονόματος.\n"
+#~ "C  για αλλαγή του σχολίου.\n"
+#~ "E  για αλλαγή της διεύθυνσης email.\n"
+#~ "O  για συνέχεια της δημιουργίας κλειδιού.\n"
+#~ "Q  για να τερματίσετε τη δημιουργία κλειδιού."
 
 #~ msgid ""
 #~ "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
 #~ msgstr ""
-#~ "ÁðáíôÞóôå \"yes\" (Þ áðëÜ \"y\") åÜí åßíáé åíôÜîåé íá äçìéïõñãçèåß ôï "
-#~ "õðïêëåéäß."
+#~ "Απαντήστε \"yes\" (ή απλά \"y\") εάν είναι εντάξει να δημιουργηθεί το "
+#~ "υποκλειδί."
 
 #~ msgid ""
 #~ "When you sign a user ID on a key, you should first verify that the key\n"
@@ -9504,65 +9582,65 @@ msgstr ""
 #~ "\n"
 #~ "If you don't know what the right answer is, answer \"0\"."
 #~ msgstr ""
-#~ "¼ôáí õðïãñÜöåôå Ýíá user ID óå Ýíá êëåéäß, ðñÝðåé ðñþôá íá âåâáéùèåßôå "
-#~ "üôé\n"
-#~ "ôï êëåéäß áíÞêåé óôï ðñüóùðï ðïõ áíáöÝñåôå óôï user ID. Åßíáé ÷ñÞóéìï "
-#~ "ãéáôïõò Üëëïõò, íá îÝñïõí ðüóï ðñïóåêôéêÜ êÜíáôå áõôÞ ôç ðéóôïðïßçóç.\n"
+#~ "Όταν υπογράφετε ένα user ID σε ένα κλειδί, πρέπει πρώτα να βεβαιωθείτε "
+#~ "ότι\n"
+#~ "το κλειδί ανήκει στο πρόσωπο που αναφέρετε στο user ID. Είναι χρήσιμο "
+#~ "γιατους άλλους, να ξέρουν πόσο προσεκτικά κάνατε αυτή τη πιστοποίηση.\n"
 #~ "\n"
-#~ "\"0\" óçìáßíåé ïôé äåí áðáíôÜôå êáôá ðüóï ðñïóåêôéêÜ ðéóôïðïéÞóáôå ôï "
-#~ "êëåéäß.\n"
-#~ "\"1\" óçìáßíåé üôé ðéóôåýåôå ïôé ôï êëåéäß áíÞêåé óôï Üôïìï ðïõ ëÝåé üôé "
-#~ "ôïõ\n"
-#~ "    áíÞêåé, áëëÜ äåí ìðïñåßôå Þ äåí åðéâåâáéþóáôå êáèüëïõ ôï êëåéäß. "
-#~ "Áõôü\n"
-#~ "    åßíáé ÷ñÞóéìï üôáí õðïãñÜöåôå ôï êëåéäß åíüò \"øåõäþíõìïõ\" ÷ñÞóôç.\n"
+#~ "\"0\" σημαίνει οτι δεν απαντάτε κατα πόσο προσεκτικά πιστοποιήσατε το "
+#~ "κλειδί.\n"
+#~ "\"1\" σημαίνει ότι πιστεύετε οτι το κλειδί ανήκει στο άτομο που λέει ότι "
+#~ "του\n"
+#~ "    ανήκει, αλλά δεν μπορείτε ή δεν επιβεβαιώσατε καθόλου το κλειδί. "
+#~ "Αυτό\n"
+#~ "    είναι χρήσιμο όταν υπογράφετε το κλειδί ενός \"ψευδώνυμου\" χρήστη.\n"
 #~ "\n"
-#~ "\"2\" óçìáßíåé üôé êÜíáôå ôçí óõíÞèç ðéóôïðïßçóç ôïõ êëåéäéïý. Ãéá "
-#~ "ðáñÜäåéãìá\n"
-#~ "    áõôü ìðïñåß íá óçìáßíåé üôé ðéóôïðïéÞóáôå ôï êëåéäß êáé åëÝãîáôå ôï\n"
-#~ "    user ID óôï êëåéäß ìå ìéá photo ID.\n"
+#~ "\"2\" σημαίνει ότι κάνατε την συνήθη πιστοποίηση του κλειδιού. Για "
+#~ "παράδειγμα\n"
+#~ "    αυτό μπορεί να σημαίνει ότι πιστοποιήσατε το κλειδί και ελέγξατε το\n"
+#~ "    user ID στο κλειδί με μια photo ID.\n"
 #~ "\n"
-#~ "\"3\" óçìáßíåé üôé êÜíáôå åêôåôáìÝíï Ýëåã÷ï óôï êëåéäß. Ãéá ðáñÜäåéãìá, "
-#~ "áõôü\n"
-#~ "    áõôü ìðïñåß íá óçìáßíåé üôé åëÝãîáôå ôï áðïôýðùìá ôïõ êëåéäéïý ìå "
-#~ "ôïí\n"
-#~ "    éäéïêôÞôç ôïõ êëåéäéïý \"öõóéêÜ\" ðáñþí êáé åëÝãîáôå üôé ôï photo ID "
-#~ "ôïõ\n"
-#~ "    êëåéäéïý åßíáé üìïéï ìå áõôü óå Ýíá äýóêïëá íá ðáñá÷áñá÷èåß Ýããñáöï ð."
-#~ "÷.\n"
-#~ "    ôáõôüôçôá, äéáâáôÞñéï, äßðëùìá ïäÞãçóçò.\n"
+#~ "\"3\" σημαίνει ότι κάνατε εκτεταμένο έλεγχο στο κλειδί. Για παράδειγμα, "
+#~ "αυτό\n"
+#~ "    αυτό μπορεί να σημαίνει ότι ελέγξατε το αποτύπωμα του κλειδιού με "
+#~ "τον\n"
+#~ "    ιδιοκτήτη του κλειδιού \"φυσικά\" παρών και ελέγξατε ότι το photo ID "
+#~ "του\n"
+#~ "    κλειδιού είναι όμοιο με αυτό σε ένα δύσκολα να παραχαραχθεί έγγραφο π."
+#~ "χ.\n"
+#~ "    ταυτότητα, διαβατήριο, δίπλωμα οδήγησης.\n"
 #~ "\n"
-#~ "¸÷åôå õðüøç üôé ôá ðáñáäåßãìáôá ðïõ äþèçêáí óôá \"åðßðåäá\" 2 êáé 3 "
-#~ "åßíáé\n"
-#~ "*ìüíï* ðáñáäåßãìáôá. Óôï ôÝëïò åîáñôÜôå ìüíï áðü åóÜò íá áðïöáóßóåôå ôé\n"
-#~ "óçìáßíåé \"óõíÞèåò\" êáé ôé \"åêôåôôáìÝíï\" óå åóÜò üôáí õðïãñÜöåôå "
-#~ "êëåéäéÜ.\n"
+#~ "Έχετε υπόψη ότι τα παραδείγματα που δώθηκαν στα \"επίπεδα\" 2 και 3 "
+#~ "είναι\n"
+#~ "*μόνο* παραδείγματα. Στο τέλος εξαρτάτε μόνο από εσάς να αποφασίσετε τι\n"
+#~ "σημαίνει \"συνήθες\" και τι \"εκτετταμένο\" σε εσάς όταν υπογράφετε "
+#~ "κλειδιά.\n"
 #~ "\n"
-#~ "ÅÜí äåí îÝñåôå ðïéÜ åßíáé ç óùóôÞ áðÜíôçóç, äþóôå \"0\"."
+#~ "Εάν δεν ξέρετε ποιά είναι η σωστή απάντηση, δώστε \"0\"."
 
 #, fuzzy
 #~ msgid "Answer \"yes\" if you want to sign ALL the user IDs"
-#~ msgstr "ÁðáíôÞóôå \"yes\" åÜí èÝëåôå íá õðïãñÜøåôå ÏËÁ ôá user ID"
+#~ msgstr "Απαντήστε \"yes\" εάν θέλετε να υπογράψετε ΟΛΑ τα user ID"
 
 #~ msgid ""
 #~ "Answer \"yes\" if you really want to delete this user ID.\n"
 #~ "All certificates are then also lost!"
 #~ msgstr ""
-#~ "ÁðáíôÞóôå \"yes\" åÜí ðñáãìáôéêÜ èÝëåôå íá äéáãñáöåß áõôü\n"
-#~ "ôï user ID.  ¼ëá ôá ðéóôïðïéçôéêÜ èá ÷áèïýí ôüôå!"
+#~ "Απαντήστε \"yes\" εάν πραγματικά θέλετε να διαγραφεί αυτό\n"
+#~ "το user ID.  Όλα τα πιστοποιητικά θα χαθούν τότε!"
 
 #~ msgid "Answer \"yes\" if it is okay to delete the subkey"
-#~ msgstr "ÁðáíôÞóôå \"yes\" åÜí åßíáé åíôÜîåé íá äéáãñáöåß ôï õðïêëåéäß"
+#~ msgstr "Απαντήστε \"yes\" εάν είναι εντάξει να διαγραφεί το υποκλειδί"
 
 #~ msgid ""
 #~ "This is a valid signature on the key; you normally don't want\n"
 #~ "to delete this signature because it may be important to establish a\n"
 #~ "trust connection to the key or another key certified by this key."
 #~ msgstr ""
-#~ "ÁõôÞ åßíáé ìéá Ýãêõñç õðïãñáöÞ óôï êëåéäß. ÊáíïíéêÜ äåí èá èÝëáôå\n"
-#~ "íá äéáãñáöåß áõôÞ ç õðïãñáöÞ åðåéäÞ ìðïñåß íá åßíáé áðáñáßôçôç ãéá\n"
-#~ "êáèéÝñùóç ìéá óýíäåóçò åìðéóôïóýíçò óôï êëåéäß Þ óå Ýíá Üëëï êëåéäß\n"
-#~ "ðéóôïðïéçìÝíï áðü áõôü."
+#~ "Αυτή είναι μια έγκυρη υπογραφή στο κλειδί. Κανονικά δεν θα θέλατε\n"
+#~ "να διαγραφεί αυτή η υπογραφή επειδή μπορεί να είναι απαραίτητη για\n"
+#~ "καθιέρωση μια σύνδεσης εμπιστοσύνης στο κλειδί ή σε ένα άλλο κλειδί\n"
+#~ "πιστοποιημένο από αυτό."
 
 #~ msgid ""
 #~ "This signature can't be checked because you don't have the\n"
@@ -9570,18 +9648,18 @@ msgstr ""
 #~ "know which key was used because this signing key might establish\n"
 #~ "a trust connection through another already certified key."
 #~ msgstr ""
-#~ "ÁõôÞ ç õðïãñáöÞ äåí ìðïñåß íá åëåã÷èåß åðåéäÞ äåí Ý÷åôå ôï áíôßóôïé÷ï\n"
-#~ "êëåéäß.  ÐñÝðåé íá áíáâÜëëåôå ôç äéáãñáöÞ ôïõ, ìÝ÷ñé íá ìÜèåôå ðéï "
-#~ "êëåéäß\n"
-#~ "÷ñçóéìïðïéÞèçêå ãéáôß áõôü ôï êëåéäß õðïãñáöÞò ìðïñåß íá êáèéåñþóåé\n"
-#~ "ìéá óýíäåóç åìðéóôïóýíçò ìÝóù åíüò Üëëïõ Þäç ðéóôïðïéçìÝíïõ êëåéäéïý."
+#~ "Αυτή η υπογραφή δεν μπορεί να ελεγχθεί επειδή δεν έχετε το αντίστοιχο\n"
+#~ "κλειδί.  Πρέπει να αναβάλλετε τη διαγραφή του, μέχρι να μάθετε πιο "
+#~ "κλειδί\n"
+#~ "χρησιμοποιήθηκε γιατί αυτό το κλειδί υπογραφής μπορεί να καθιερώσει\n"
+#~ "μια σύνδεση εμπιστοσύνης μέσω ενός άλλου ήδη πιστοποιημένου κλειδιού."
 
 #~ msgid ""
 #~ "The signature is not valid.  It does make sense to remove it from\n"
 #~ "your keyring."
 #~ msgstr ""
-#~ "Ç õðïãñáöÞ äåí åßíáé Ýãêõñç.  Åßíáé óõíåôü íá äéáãñáöåß áðü ôç\n"
-#~ "êëåéäïèÞêç óáò."
+#~ "Η υπογραφή δεν είναι έγκυρη.  Είναι συνετό να διαγραφεί από τη\n"
+#~ "κλειδοθήκη σας."
 
 #~ msgid ""
 #~ "This is a signature which binds the user ID to the key. It is\n"
@@ -9590,40 +9668,40 @@ msgstr ""
 #~ "only if this self-signature is for some reason not valid and\n"
 #~ "a second one is available."
 #~ msgstr ""
-#~ "ÁõôÞ åßíáé ìéá õðïãñáöÞ ðïõ óõíäÝåé ôï user ID óôï êëåéäß. Äåí\n"
-#~ "åßíáé óõíÞèùò êáëÞ éäÝá íá äéáãñáöåß ìéá ôÝôïéá õðïãñáöÞ.  Óôçí\n"
-#~ "ðñáãìáôéêüôçôá ôï GnuPG ßóùò íá ìç ìðïñåß íá ÷ñçóéìïðïéÞóåé áõôü\n"
-#~ "ôï êëåéäß ðéá.  Ïðüôå íá óõíå÷ßóåôå ìüíï åÜí áõôÞ ç éäéï-õðïãñáöÞ ãéá\n"
-#~ "êÜðïéï ëüãï äåí åßíáé Ýãêõñç Þ õðÜñ÷åé ìéá äåýôåñç."
+#~ "Αυτή είναι μια υπογραφή που συνδέει το user ID στο κλειδί. Δεν\n"
+#~ "είναι συνήθως καλή ιδέα να διαγραφεί μια τέτοια υπογραφή.  Στην\n"
+#~ "πραγματικότητα το GnuPG ίσως να μη μπορεί να χρησιμοποιήσει αυτό\n"
+#~ "το κλειδί πια.  Οπότε να συνεχίσετε μόνο εάν αυτή η ιδιο-υπογραφή για\n"
+#~ "κάποιο λόγο δεν είναι έγκυρη ή υπάρχει μια δεύτερη."
 
 #~ msgid ""
 #~ "Change the preferences of all user IDs (or just of the selected ones)\n"
 #~ "to the current list of preferences.  The timestamp of all affected\n"
 #~ "self-signatures will be advanced by one second.\n"
 #~ msgstr ""
-#~ "ÁëëÜîôå ôéò ðñïåðéëïãÝò üëùí ôùí user ID (Þ ìüíï ôùí åðéëåãìÝíùí)\n"
-#~ "óôçí ðñïõðÜñ÷ïõóá ëßóôá ðñïåðéëïãþí.  Ç çìåñïìçíßá üëùí ôùí åðçñåáóìÝíùí\n"
-#~ "éäéï-õðïãñáöþí èá áõîçèåß êáôÜ 1 äåõôåñüëåðôï.\n"
+#~ "Αλλάξτε τις προεπιλογές όλων των user ID (ή μόνο των επιλεγμένων)\n"
+#~ "στην προυπάρχουσα λίστα προεπιλογών.  Η ημερομηνία όλων των επηρεασμένων\n"
+#~ "ιδιο-υπογραφών θα αυξηθεί κατά 1 δευτερόλεπτο.\n"
 
-#~ msgid "Please enter the passhrase; this is a secret sentence \n"
-#~ msgstr "ÐëçêôñïëïãÞóôå ôç öñÜóç êëåéäß· áõôÞ åßíáé ìéá ìõóôéêÞ ðñüôáóç \n"
+#~ msgid "Please enter the passphrase; this is a secret sentence \n"
+#~ msgstr "Πληκτρολογήστε τη φράση κλειδί· αυτή είναι μια μυστική πρόταση \n"
 
 #~ msgid ""
 #~ "Please repeat the last passphrase, so you are sure what you typed in."
-#~ msgstr "Ðáñáêáëþ åðáíáëÜâåôå ôç ôåëåõôáßá öñÜóç êëåéäß, ãéá óéãïõñéÜ."
+#~ msgstr "Παρακαλώ επαναλάβετε τη τελευταία φράση κλειδί, για σιγουριά."
 
 #~ msgid "Give the name of the file to which the signature applies"
-#~ msgstr "Äþóôå ôï üíïìá ôïõ áñ÷åßïõ óôï ïðïßï åöáñìüæåôáé ç õðïãñáöÞ"
+#~ msgstr "Δώστε το όνομα του αρχείου στο οποίο εφαρμόζεται η υπογραφή"
 
 #~ msgid "Answer \"yes\" if it is okay to overwrite the file"
-#~ msgstr "ÁðáíôÞóôå \"yes\" åÜí åßíáé åíôÜîåé íá åðéêáëõöèåß ôï áñ÷åßï"
+#~ msgstr "Απαντήστε \"yes\" εάν είναι εντάξει να επικαλυφθεί το αρχείο"
 
 #~ msgid ""
 #~ "Please enter a new filename. If you just hit RETURN the default\n"
 #~ "file (which is shown in brackets) will be used."
 #~ msgstr ""
-#~ "Ðáñáêáëþ åéóÜãåôå Ýíá íÝï üíïìá áñ÷åßïõ. ÅÜí áðëÜ ðáôÞóåôå RETURN\n"
-#~ "ôï åî'ïñéóìïý áñ÷åßï (áðåéêïíßæåôáé óôéò áãêýëåò) èá ÷ñçóéìïðïéçèåß."
+#~ "Παρακαλώ εισάγετε ένα νέο όνομα αρχείου. Εάν απλά πατήσετε RETURN\n"
+#~ "το εξ'ορισμού αρχείο (απεικονίζεται στις αγκύλες) θα χρησιμοποιηθεί."
 
 #~ msgid ""
 #~ "You should specify a reason for the certification.  Depending on the\n"
@@ -9639,45 +9717,45 @@ msgstr ""
 #~ "      Use this to state that the user ID should not longer be used;\n"
 #~ "      this is normally used to mark an email address invalid.\n"
 #~ msgstr ""
-#~ "ÐñÝðåé íá ïñßóåôå Ýíá ëüãï ãéá ôçí ðéóôïðïßçóç.  ÁíÜëïãá ìå ôá\n"
-#~ "óõìöñáæüìåíá, Ý÷åôå ôç äõíáôüôçôá íá åðéëÝîåôå áðü ôç ëßóôá:\n"
-#~ "  \"Ôï êëåéäß Ý÷åé åêôåèåß\"\n"
-#~ "      ×ñçóéìïðïéåßóôå åÜí ðéóôåýåôå üôé ìç åîïõóéïäïôçìÝíá ðñüóùðá\n"
-#~ "      Ý÷ïõí ðñüóâáóç óôï ìõóôéêü êëåéäß óáò.\n"
-#~ "  \"Ôï êëåéäß Ý÷åé ðáñáêáìèåß\"\n"
-#~ "      ×ñçóéìïðïéåßóôå åÜí Ý÷åôå áíôéêáôáóôÞóåé ôï êëåéäß ìå Ýíá Üëëï.\n"
-#~ "  \"Ôï êëåéäß äåí ÷ñçóéìïðïéåßôå ðëÝïí\"\n"
-#~ "      ×ñçóéìïðïéåßóôå åÜí Ý÷åôå áðïóýñåé áõôü ôï êëåéäß.\n"
-#~ "  \"Ôï user ID äåí åßíáé ðëÝïí Ýãêõñï\"\n"
-#~ "      ×ñçóéìïðïéåßóôå áõôü ãéá íá äçëþóåôå üôé ôï user ID äåí ðñÝðåé\n"
-#~ "      íá ÷ñçóéìïðïéåßôáé ðéá. Ãéá íá ïñßóåôå Üêõñç ìéá äéåýèõíóç email.\n"
+#~ "Πρέπει να ορίσετε ένα λόγο για την πιστοποίηση.  Ανάλογα με τα\n"
+#~ "συμφραζόμενα, έχετε τη δυνατότητα να επιλέξετε από τη λίστα:\n"
+#~ "  \"Το κλειδί έχει εκτεθεί\"\n"
+#~ "      Χρησιμοποιείστε εάν πιστεύετε ότι μη εξουσιοδοτημένα πρόσωπα\n"
+#~ "      έχουν πρόσβαση στο μυστικό κλειδί σας.\n"
+#~ "  \"Το κλειδί έχει παρακαμθεί\"\n"
+#~ "      Χρησιμοποιείστε εάν έχετε αντικαταστήσει το κλειδί με ένα άλλο.\n"
+#~ "  \"Το κλειδί δεν χρησιμοποιείτε πλέον\"\n"
+#~ "      Χρησιμοποιείστε εάν έχετε αποσύρει αυτό το κλειδί.\n"
+#~ "  \"Το user ID δεν είναι πλέον έγκυρο\"\n"
+#~ "      Χρησιμοποιείστε αυτό για να δηλώσετε ότι το user ID δεν πρέπει\n"
+#~ "      να χρησιμοποιείται πια. Για να ορίσετε άκυρη μια διεύθυνση email.\n"
 
 #~ msgid ""
 #~ "If you like, you can enter a text describing why you issue this\n"
 #~ "revocation certificate.  Please keep this text concise.\n"
 #~ "An empty line ends the text.\n"
 #~ msgstr ""
-#~ "ÅÜí åðéèõìåßôå, ìðïñåßôå íá ðëçêôñïëïãÞóåôå Ýíá êåßìåíï ðïõ\n"
-#~ "ðåñéãñÜöåé ôïí ëüãï ðïõ åêäßäåôáé áõôü ôï ðéóôïðïéçôéêü áíÜêëçóçò.\n"
-#~ "Ðáñáêáëþ êñáôÞóôå áõôü ôï êåßìåíï óõíïðôéêü. Ìéá Üäåéá ãñáììÞ\n"
-#~ "ëÞãåé ôï êåßìåíï.\n"
+#~ "Εάν επιθυμείτε, μπορείτε να πληκτρολογήσετε ένα κείμενο που\n"
+#~ "περιγράφει τον λόγο που εκδίδεται αυτό το πιστοποιητικό ανάκλησης.\n"
+#~ "Παρακαλώ κρατήστε αυτό το κείμενο συνοπτικό. Μια άδεια γραμμή\n"
+#~ "λήγει το κείμενο.\n"
 
 #~ msgid "can't put notation data into v3 (PGP 2.x style) signatures\n"
 #~ msgstr ""
-#~ "áäõíáìßá ôïðïèÝôçóçò äåäïìÝíùí óÞìáíóçò óå õðïãñáöÝò v3 (PGP 2.x óôõë)\n"
+#~ "αδυναμία τοποθέτησης δεδομένων σήμανσης σε υπογραφές v3 (PGP 2.x στυλ)\n"
 
 #~ msgid "can't put notation data into v3 (PGP 2.x style) key signatures\n"
 #~ msgstr ""
-#~ "áäõíáìßá ôïðïèÝôçóçò äåäïìÝíùí óÞìáíóçò óå õðïãñáöÝò êëåéäéþí v3 (PGP 2.x "
-#~ "óôõë)\n"
+#~ "αδυναμία τοποθέτησης δεδομένων σήμανσης σε υπογραφές κλειδιών v3 (PGP 2.x "
+#~ "στυλ)\n"
 
 #~ msgid "can't put a policy URL into v3 (PGP 2.x style) signatures\n"
-#~ msgstr "áäõíáìßá ôïðïèÝôçóçò URL ðïëéôéêÞò óå õðïãñáöÝò v3 (PGP 2.x óôõë)\n"
+#~ msgstr "αδυναμία τοποθέτησης URL πολιτικής σε υπογραφές v3 (PGP 2.x στυλ)\n"
 
 #~ msgid "can't put a policy URL into v3 key (PGP 2.x style) signatures\n"
 #~ msgstr ""
-#~ "áäõíáìßá ôïðïèÝôçóçò URL ðïëéôéêÞò óå õðïãñáöÝò êëåéäéïý v3 (PGP 2.x "
-#~ "óôõë)\n"
+#~ "αδυναμία τοποθέτησης URL πολιτικής σε υπογραφές κλειδιού v3 (PGP 2.x "
+#~ "στυλ)\n"
 
 #, fuzzy
 #~ msgid "shelll"
@@ -9687,73 +9765,73 @@ msgstr ""
 #~ msgid ""
 #~ "please see http://www.gnupg.org/download/iconv.html for more information\n"
 #~ msgstr ""
-#~ "äåßôå ôï http://www.gnupg.org/faq.html ãéá ðåñéóóüôåñåò ðëçñïöïñßåò\n"
+#~ "δείτε το http://www.gnupg.org/faq.html για περισσότερες πληροφορίες\n"
 
 #, fuzzy
 #~ msgid "key generation is not available from the commandline\n"
-#~ msgstr "ï gpg-agent äåí åßíáé äéáèÝóéìïò óå áõôÞ ôç óõíåäñßá\n"
+#~ msgstr "ο gpg-agent δεν είναι διαθέσιμος σε αυτή τη συνεδρία\n"
 
 #, fuzzy
 #~ msgid "please use the script \"%s\" to generate a new key\n"
-#~ msgstr "Ðáñáêáëþ åðéëÝîôå ôïí ôýðï ôïõ êëåéäéïý ðïõ èÝëåôå:\n"
+#~ msgstr "Παρακαλώ επιλέξτε τον τύπο του κλειδιού που θέλετε:\n"
 
 #, fuzzy
 #~ msgid "cipher extension `%s' not loaded due to unsafe permissions\n"
 #~ msgstr ""
-#~ "ç åðÝêôáóç ôïõ êñõðôáëãüñéèìïõ \"%s\" äåí öïñôþèçêå åðåéäÞ õðÜñ÷ïõí\n"
-#~ "áíáóöáëåßò Üäåéåò\n"
+#~ "η επέκταση του κρυπταλγόριθμου \"%s\" δεν φορτώθηκε επειδή υπάρχουν\n"
+#~ "ανασφαλείς άδειες\n"
 
 #, fuzzy
 #~ msgid ".\n"
 #~ msgstr "%s.\n"
 
 #~ msgid "problem with the agent - disabling agent use\n"
-#~ msgstr "ðñüâëçìá ìå ôïí agent - áðåíåñãïðïéÞóç ôçò ÷ñÞóçò ôïõ agent\n"
+#~ msgstr "πρόβλημα με τον agent - απενεργοποιήση της χρήσης του agent\n"
 
 #, fuzzy
 #~ msgid "can't query passphrase in batch mode\n"
-#~ msgstr "áäõíáìßá åñþôçóçò ôçò ëÝîçò êëåéäß óå êáôÜóôáóç äÝóìçò\n"
+#~ msgstr "αδυναμία ερώτησης της λέξης κλειδί σε κατάσταση δέσμης\n"
 
 #~ msgid "Repeat passphrase: "
-#~ msgstr "ÅðáíáëÜâåôå ôç öñÜóç êëåéäß: "
+#~ msgstr "Επαναλάβετε τη φράση κλειδί: "
 
 #~ msgid "-k[v][v][v][c] [user-id] [keyring]"
-#~ msgstr "-k[v][v][v][c] [user-id] [êëåéäïèÞêç]"
+#~ msgstr "-k[v][v][v][c] [user-id] [κλειδοθήκη]"
 
 #, fuzzy
 #~ msgid "can't gen prime with pbits=%u qbits=%u\n"
-#~ msgstr "áäõíáìßá ðáñáãùãÞò ðñþôïõ áñéèìïý ìå ëéãüôåñá áðü %d bits\n"
+#~ msgstr "αδυναμία παραγωγής πρώτου αριθμού με λιγότερα από %d bits\n"
 
 #~ msgid "can't generate a prime with less than %d bits\n"
-#~ msgstr "áäõíáìßá ðáñáãùãÞò ðñþôïõ áñéèìïý ìå ëéãüôåñá áðü %d bits\n"
+#~ msgstr "αδυναμία παραγωγής πρώτου αριθμού με λιγότερα από %d bits\n"
 
 #~ msgid "no entropy gathering module detected\n"
-#~ msgstr "äåí åíôïðßóôçêå Üñèñùìá óõëëïãÞò åíôñïðßáò\n"
+#~ msgstr "δεν εντοπίστηκε άρθρωμα συλλογής εντροπίας\n"
 
 #, fuzzy
 #~ msgid "can't lock `%s': %s\n"
-#~ msgstr "áäõíáìßá ðñüóâáóçò ôïõ `%s'\n"
+#~ msgstr "αδυναμία πρόσβασης του `%s'\n"
 
 #~ msgid "`%s' is not a regular file - ignored\n"
-#~ msgstr "`%s' äåí åßíáé êáíïíéêü áñ÷åßï - áãíïÞèçêå\n"
+#~ msgstr "`%s' δεν είναι κανονικό αρχείο - αγνοήθηκε\n"
 
 #~ msgid "note: random_seed file is empty\n"
-#~ msgstr "óçìåßùóç: ôï áñ÷åßï random_seed åßíáé Üäåéï\n"
+#~ msgstr "σημείωση: το αρχείο random_seed είναι άδειο\n"
 
 #~ msgid "can't read `%s': %s\n"
-#~ msgstr "áäõíáìßá áíÜãíùóçò ôïõ `%s': %s\n"
+#~ msgstr "αδυναμία ανάγνωσης του `%s': %s\n"
 
 #~ msgid "note: random_seed file not updated\n"
-#~ msgstr "óçìåßùóç: äåí Ý÷åé áíáíåùèåß ôï áñ÷åßï random_seed\n"
+#~ msgstr "σημείωση: δεν έχει ανανεωθεί το αρχείο random_seed\n"
 
 #~ msgid "can't write `%s': %s\n"
-#~ msgstr "áäõíáìßá åããñáöÞò ôïõ `%s': %s\n"
+#~ msgstr "αδυναμία εγγραφής του `%s': %s\n"
 
 #~ msgid "can't close `%s': %s\n"
-#~ msgstr "áäõíáìßá êëåéóßìáôïò ôïõ `%s': %s\n"
+#~ msgstr "αδυναμία κλεισίματος του `%s': %s\n"
 
 #~ msgid "WARNING: using insecure random number generator!!\n"
-#~ msgstr "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ÷ñÞóç ìç áóöáëïýò ãåííÞôñéáò ôõ÷áßùí áñéèìþí!!\n"
+#~ msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: χρήση μη ασφαλούς γεννήτριας τυχαίων αριθμών!!\n"
 
 #~ msgid ""
 #~ "The random number generator is only a kludge to let\n"
@@ -9762,9 +9840,9 @@ msgstr ""
 #~ "DON'T USE ANY DATA GENERATED BY THIS PROGRAM!!\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Ç ãåííÞôñéá ôõ÷áßùí áñéèìþí åßíáé ðïëý áäýíáìç ãéá áõôÞ ôç ÷ñÞóç\n"
+#~ "Η γεννήτρια τυχαίων αριθμών είναι πολύ αδύναμη για αυτή τη χρήση\n"
 #~ "\n"
-#~ "ÌÇ ×ÑÇÓÉÌÏÐÏÉÇÓÅÔÅ ÄÅÄÏÌÅÍÁ ÐÏÕ Å×ÏÕÍ ÐÁÑÁ×ÈÅÉ ÁÐÏ ÁÕÔÏ ÔÏ ÐÑÏÃÑÁÌÌÁ!!\n"
+#~ "ΜΗ ΧΡΗΣΙΜΟΠΟΙΗΣΕΤΕ ΔΕΔΟΜΕΝΑ ΠΟΥ ΕΧΟΥΝ ΠΑΡΑΧΘΕΙ ΑΠΟ ΑΥΤΟ ΤΟ ΠΡΟΓΡΑΜΜΑ!!\n"
 #~ "\n"
 
 #~ msgid ""
@@ -9772,8 +9850,8 @@ msgstr ""
 #~ "keep you from getting bored, because it will improve the quality\n"
 #~ "of the entropy.\n"
 #~ msgstr ""
-#~ "Ðñáêáë ðåñéìÝíåôå, ç åíôñïðßá óõãêåíôñþíåôáé. ÊÜíôå ìéá Üëëç åñãáóßá\n"
-#~ "ãéá íá ìçí âáñåèåßôå, ãéáôß áõôü èá âåëôéþóåé ôçí ðïéüôçôá ôçò åíôñïðßá.\n"
+#~ "Πρακαλ περιμένετε, η εντροπία συγκεντρώνεται. Κάντε μια άλλη εργασία\n"
+#~ "για να μην βαρεθείτε, γιατί αυτό θα βελτιώσει την ποιότητα της εντροπία.\n"
 
 #~ msgid ""
 #~ "\n"
@@ -9781,222 +9859,219 @@ msgstr ""
 #~ "the OS a chance to collect more entropy! (Need %d more bytes)\n"
 #~ msgstr ""
 #~ "\n"
-#~ "Äåí õðÜñ÷ïõí áñêåôÜ äéáèÝóéìá ôõ÷áßá bytes.  Ðñïôåßíåôáé íá áíáìåßíåôå Þ\n"
-#~ "íá áðáó÷ïëåßôå ôï ëåéôïõñãéêü óýóôçìá ìÝ÷ñé áõôü íá óõãêåíôñþóåé\n"
-#~ "ðåñéóóüôåñç åíôñïðßá! (×ñåéÜæïíôáé %d ðåñéóóüôåñá bytes)\n"
+#~ "Δεν υπάρχουν αρκετά διαθέσιμα τυχαία bytes.  Προτείνεται να αναμείνετε ή\n"
+#~ "να απασχολείτε το λειτουργικό σύστημα μέχρι αυτό να συγκεντρώσει\n"
+#~ "περισσότερη εντροπία! (Χρειάζονται %d περισσότερα bytes)\n"
 
 #, fuzzy
 #~ msgid "card reader not available\n"
-#~ msgstr "ôï ìõóôéêü êëåéäß äåí åßíáé äéáèÝóéìï"
+#~ msgstr "το μυστικό κλειδί δεν είναι διαθέσιμο"
 
 #, fuzzy
 #~ msgid "NOTE: %s is not available in this version\n"
-#~ msgstr "ï gpg-agent äåí åßíáé äéáèÝóéìïò óå áõôÞ ôç óõíåäñßá\n"
+#~ msgstr "ο gpg-agent δεν είναι διαθέσιμος σε αυτή τη συνεδρία\n"
 
 #, fuzzy
 #~ msgid "         algorithms on these user IDs:\n"
-#~ msgstr "¸÷åôå õðïãñÜøåé áõôÜ ôá user ID:\n"
+#~ msgstr "Έχετε υπογράψει αυτά τα user ID:\n"
 
 #~ msgid "general error"
-#~ msgstr "ãåíéêü óöÜëìá"
+#~ msgstr "γενικό σφάλμα"
 
 #~ msgid "unknown packet type"
-#~ msgstr "Üãíùóôïò ôýðïò ðáêÝôïõ"
+#~ msgstr "άγνωστος τύπος πακέτου"
 
 #~ msgid "unknown digest algorithm"
-#~ msgstr "Üãíùóôïò áëãïñéèìïò ðåñßëçøçò"
+#~ msgstr "άγνωστος αλγοριθμος περίληψης"
 
 #~ msgid "bad public key"
-#~ msgstr "êáêü äçìüóéï êëåéäß"
+#~ msgstr "κακό δημόσιο κλειδί"
 
 #~ msgid "bad secret key"
-#~ msgstr "êáêü ìõóôéêü êëåéäß"
+#~ msgstr "κακό μυστικό κλειδί"
 
 #~ msgid "bad signature"
-#~ msgstr "êáêÞ õðïãñáöÞ"
+#~ msgstr "κακή υπογραφή"
 
 #~ msgid "checksum error"
-#~ msgstr "óöÜëìá checksum"
+#~ msgstr "σφάλμα checksum"
 
 #~ msgid "unknown cipher algorithm"
-#~ msgstr "Üãíùóôïò áëãüñéèìïò êñõðôïãñÜöçóçò"
+#~ msgstr "άγνωστος αλγόριθμος κρυπτογράφησης"
 
 #~ msgid "invalid packet"
-#~ msgstr "ìç Ýãêõñï ðáêÝôï"
+#~ msgstr "μη έγκυρο πακέτο"
 
 #~ msgid "no such user id"
-#~ msgstr "Üãíùóôç ôáõôüôçôá ÷ñÞóôç (user id)"
+#~ msgstr "άγνωστη ταυτότητα χρήστη (user id)"
 
 #~ msgid "secret key not available"
-#~ msgstr "ôï ìõóôéêü êëåéäß äåí åßíáé äéáèÝóéìï"
+#~ msgstr "το μυστικό κλειδί δεν είναι διαθέσιμο"
 
 #~ msgid "wrong secret key used"
-#~ msgstr "÷ñÞóç ëÜèïò ìõóôéêïý êëåéäéïý"
+#~ msgstr "χρήση λάθος μυστικού κλειδιού"
 
 #~ msgid "bad key"
-#~ msgstr "êáêü êëåéäß"
+#~ msgstr "κακό κλειδί"
 
 #~ msgid "file write error"
-#~ msgstr "óöÜëìá åããñáöÞò áñ÷åßïõ"
+#~ msgstr "σφάλμα εγγραφής αρχείου"
 
 #~ msgid "unknown compress algorithm"
-#~ msgstr "Üãíùóôïò áëãüñéèìïò óõìðßåóçò"
+#~ msgstr "άγνωστος αλγόριθμος συμπίεσης"
 
 #~ msgid "file open error"
-#~ msgstr "óöÜëìá ðñüóâáóçò áñ÷åßïõ"
+#~ msgstr "σφάλμα πρόσβασης αρχείου"
 
 #~ msgid "file create error"
-#~ msgstr "óöÜëìá äçìéïõñãßáò áñ÷åßïõ"
+#~ msgstr "σφάλμα δημιουργίας αρχείου"
 
 #~ msgid "unimplemented pubkey algorithm"
-#~ msgstr "ìç õëïðïéçìÝíïò áëãüñéèìïò äçìïóßïõ êëåéäéïý"
+#~ msgstr "μη υλοποιημένος αλγόριθμος δημοσίου κλειδιού"
 
 #~ msgid "unimplemented cipher algorithm"
-#~ msgstr "ìç õëïðïéçìÝíïò áëãüñéèìïò êñõðôïãñÜöçóçò"
+#~ msgstr "μη υλοποιημένος αλγόριθμος κρυπτογράφησης"
 
 #~ msgid "unknown signature class"
-#~ msgstr "Üãíùóôç êëÜóç õðïãñáöÞò"
+#~ msgstr "άγνωστη κλάση υπογραφής"
 
 #~ msgid "trust database error"
-#~ msgstr "óöÜëìá ôçò âÜóçò äåäïìÝíùí åìðéóôïóýíçò"
+#~ msgstr "σφάλμα της βάσης δεδομένων εμπιστοσύνης"
 
 #~ msgid "resource limit"
-#~ msgstr "üñéï ðüñïõ"
+#~ msgstr "όριο πόρου"
 
 #~ msgid "invalid keyring"
-#~ msgstr "ìç Ýãêõñç êëåéäïèÞêç"
+#~ msgstr "μη έγκυρη κλειδοθήκη"
 
 #~ msgid "malformed user id"
-#~ msgstr "êáêïäéáôõðùìÝíç ôáõôüôçôá ÷ñÞóôç (user id)"
+#~ msgstr "κακοδιατυπωμένη ταυτότητα χρήστη (user id)"
 
 #~ msgid "file close error"
-#~ msgstr "óöÜëìá êëåéóßìáôïò áñ÷åßïõ"
+#~ msgstr "σφάλμα κλεισίματος αρχείου"
 
 #~ msgid "file rename error"
-#~ msgstr "óöÜëìá ìåôïíïìáóßáò áñ÷åßïõ"
+#~ msgstr "σφάλμα μετονομασίας αρχείου"
 
 #~ msgid "file delete error"
-#~ msgstr "óöÜëìá äéáãñáöÞò áñ÷åßïõ"
+#~ msgstr "σφάλμα διαγραφής αρχείου"
 
 #~ msgid "unexpected data"
-#~ msgstr "ìç áíáìåíüìåíá äåäïìÝíá"
+#~ msgstr "μη αναμενόμενα δεδομένα"
 
 #~ msgid "timestamp conflict"
-#~ msgstr "óýãêñïõóç þñáò (timestamp)"
+#~ msgstr "σύγκρουση ώρας (timestamp)"
 
 #~ msgid "unusable pubkey algorithm"
-#~ msgstr "ìç ÷ñçóéìïðïéÞóéìïò áëãüñéèìïò äçìïóßïõ êëåéäéïý"
+#~ msgstr "μη χρησιμοποιήσιμος αλγόριθμος δημοσίου κλειδιού"
 
 #~ msgid "file exists"
-#~ msgstr "ôï áñ÷åßï õðÜñ÷åé"
+#~ msgstr "το αρχείο υπάρχει"
 
 #~ msgid "weak key"
-#~ msgstr "áäýíáìï êëåéäß"
+#~ msgstr "αδύναμο κλειδί"
 
 #~ msgid "bad URI"
-#~ msgstr "êáêü URI"
-
-#~ msgid "network error"
-#~ msgstr "óöÜëìá äéêôýïõ"
+#~ msgstr "κακό URI"
 
 #~ msgid "not processed"
-#~ msgstr "ìç åðåîåñãáóìÝíï"
+#~ msgstr "μη επεξεργασμένο"
 
 #~ msgid "unusable public key"
-#~ msgstr "ìç ÷ñçóéìïðïéÞóéìï äçìüóéï êëåéäß"
+#~ msgstr "μη χρησιμοποιήσιμο δημόσιο κλειδί"
 
 #~ msgid "unusable secret key"
-#~ msgstr "ìç ÷ñçóéìïðïéÞóéìï ìõóôéêü êëåéäß"
+#~ msgstr "μη χρησιμοποιήσιμο μυστικό κλειδί"
 
 #~ msgid "keyserver error"
-#~ msgstr "óöÜëìá äéáêïìéóôÞ êëåéäéþí"
+#~ msgstr "σφάλμα διακομιστή κλειδιών"
 
 #, fuzzy
 #~ msgid "no card"
-#~ msgstr "ìç êñõðôïãñáöçìÝíï"
+#~ msgstr "μη κρυπτογραφημένο"
 
 #, fuzzy
 #~ msgid "no data"
-#~ msgstr "äåí õðÜñ÷ïõí õðïãåãñáììÝíá äåäïìÝíá\n"
+#~ msgstr "δεν υπάρχουν υπογεγραμμένα δεδομένα\n"
 
 #~ msgid "... this is a bug (%s:%d:%s)\n"
-#~ msgstr "... áõôü åßíáé bug (%s:%d:%s)\n"
+#~ msgstr "... αυτό είναι bug (%s:%d:%s)\n"
 
 #~ msgid "operation is not possible without initialized secure memory\n"
-#~ msgstr "ç ëåéôïõñãßá äåí åßíáé äõíáôÞ ÷ùñßò áñ÷éêïðïéçìÝíç áóöáëÞ ìíÞìç\n"
+#~ msgstr "η λειτουργία δεν είναι δυνατή χωρίς αρχικοποιημένη ασφαλή μνήμη\n"
 
 #~ msgid "(you may have used the wrong program for this task)\n"
-#~ msgstr "(ßóùò ÷ñçóéìïðïéÞóáôå ëÜèïò ðñüãñáììá ãéá áõôÞ ôçí åñãáóßá)\n"
+#~ msgstr "(ίσως χρησιμοποιήσατε λάθος πρόγραμμα για αυτή την εργασία)\n"
 
 #~ msgid ""
 #~ "please see http://www.gnupg.org/why-not-idea.html for more information\n"
 #~ msgstr ""
-#~ "äåßôå ôï http://www.gnupg.org/why-not-idea.html ãéá ðåñéóóüôåñåò "
-#~ "ðëçñïöïñßåò\n"
+#~ "δείτε το http://www.gnupg.org/why-not-idea.html για περισσότερες "
+#~ "πληροφορίες\n"
 
 #, fuzzy
 #~ msgid "all export-clean-* options from above"
-#~ msgstr "áíÜãíùóç åðéëïãþí áðü áñ÷åßï"
+#~ msgstr "ανάγνωση επιλογών από αρχείο"
 
 #, fuzzy
 #~ msgid "all import-clean-* options from above"
-#~ msgstr "áíÜãíùóç åðéëïãþí áðü áñ÷åßï"
+#~ msgstr "ανάγνωση επιλογών από αρχείο"
 
 #, fuzzy
 #~ msgid "expired: %s)"
-#~ msgstr " [ëÞãåé: %s]"
+#~ msgstr " [λήγει: %s]"
 
 #, fuzzy
 #~ msgid "key %s: expired signature from key %s - skipped\n"
 #~ msgstr ""
-#~ "êëåéäß %08lX: ìç áíáìåíþìåíç êëÜóç õðïãñáöÞò (0x%02x) - ðáñáëåßöèçêå\n"
+#~ "κλειδί %08lX: μη αναμενώμενη κλάση υπογραφής (0x%02x) - παραλείφθηκε\n"
 
 #, fuzzy
 #~ msgid "Unable to clean `%s'\n"
-#~ msgstr "áäõíáìßá åêôÝëåóçò ôïõ %s \"%s\": %s\n"
+#~ msgstr "αδυναμία εκτέλεσης του %s \"%s\": %s\n"
 
 #, fuzzy
 #~ msgid "No user IDs are removable.\n"
-#~ msgstr "ôï user ID \"%s\" Ý÷åé Þäç áíáêëçèåß\n"
+#~ msgstr "το user ID \"%s\" έχει ήδη ανακληθεί\n"
 
 #~ msgid "bad passphrase or unknown cipher algorithm (%d)\n"
-#~ msgstr "êáêÞ öñÜóç êëåéäß Üãíùóôïò áëãüñéèìïò êñõðôïãñÜöçóçò (%d)\n"
+#~ msgstr "κακή φράση κλειδί άγνωστος αλγόριθμος κρυπτογράφησης (%d)\n"
 
 #~ msgid "can't set client pid for the agent\n"
-#~ msgstr "áäõíáìßá ïñéóìïý ôïõ pid ôïõ ðåëÜôç óéá ôï agent\n"
+#~ msgstr "αδυναμία ορισμού του pid του πελάτη σια το agent\n"
 
 #~ msgid "can't get server read FD for the agent\n"
-#~ msgstr "áäõíáìßá áíÜãíùóçò ôïõ FD áðü ôï äéáêïìéóôÞ ãéá ôïí agent\n"
+#~ msgstr "αδυναμία ανάγνωσης του FD από το διακομιστή για τον agent\n"
 
 #~ msgid "can't get server write FD for the agent\n"
-#~ msgstr "áäõíáìßá åããñáöÞò ôïõ FD áðü ôï äéáêïìéóôÞ ãéá ôïí agent\n"
+#~ msgstr "αδυναμία εγγραφής του FD από το διακομιστή για τον agent\n"
 
 #~ msgid "select secondary key N"
-#~ msgstr "åðéëïãÞ äåõôåñåýïíôïò êëåéäéïý N"
+#~ msgstr "επιλογή δευτερεύοντος κλειδιού N"
 
 #~ msgid "list signatures"
-#~ msgstr "áðåéêüíéóç õðïãñáöþí"
+#~ msgstr "απεικόνιση υπογραφών"
 
 #~ msgid "sign the key"
-#~ msgstr "õðïãñáöÞ ôïõ êëåéäéïý"
+#~ msgstr "υπογραφή του κλειδιού"
 
 #~ msgid "add a secondary key"
-#~ msgstr "ðñïóèÞêç åíüò äåõôåñåýïíôïò êëåéäéïý"
+#~ msgstr "προσθήκη ενός δευτερεύοντος κλειδιού"
 
 #~ msgid "delete signatures"
-#~ msgstr "äéáãñáöÞ õðïãñáöþí"
+#~ msgstr "διαγραφή υπογραφών"
 
 #~ msgid "change the expire date"
-#~ msgstr "áëëáãÞ ôçò çìåñïìçíßáò ëÞîçò"
+#~ msgstr "αλλαγή της ημερομηνίας λήξης"
 
 #~ msgid "set preference list"
-#~ msgstr "ïñéóìüò áðåéêüíéóçò åðéëïãþí"
+#~ msgstr "ορισμός απεικόνισης επιλογών"
 
 #~ msgid "updated preferences"
-#~ msgstr "áíáùåùìÝíåò åðéëïãÝò"
+#~ msgstr "αναωεωμένες επιλογές"
 
 #~ msgid "No secondary key with index %d\n"
-#~ msgstr "Äåí õðÜñ÷åé äåõôåñåýïí êëåéäß ìå äåßêôç %d\n"
+#~ msgstr "Δεν υπάρχει δευτερεύον κλειδί με δείκτη %d\n"
 
 #~ msgid "--nrsign-key user-id"
 #~ msgstr "--nrsign-key user-id"
@@ -10005,10 +10080,10 @@ msgstr ""
 #~ msgstr "--nrlsign-key user-id"
 
 #~ msgid "sign the key non-revocably"
-#~ msgstr "õðïãñáöÞ ôïõ êëåéäéïý ìç-áíáêáëÝóéìá"
+#~ msgstr "υπογραφή του κλειδιού μη-ανακαλέσιμα"
 
 #~ msgid "sign the key locally and non-revocably"
-#~ msgstr "õðïãñáöÞ ôïõ êëåéäéïý ôïðéêÜ êáé ìç-áíáêáëÝóéìá"
+#~ msgstr "υπογραφή του κλειδιού τοπικά και μη-ανακαλέσιμα"
 
 #~ msgid "q"
 #~ msgstr "q"
@@ -10040,7 +10115,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "generate"
-#~ msgstr "ãåíéêü óöÜëìá"
+#~ msgstr "γενικό σφάλμα"
 
 #~ msgid "passwd"
 #~ msgstr "passwd"
@@ -10108,7 +10183,7 @@ msgstr ""
 #~ msgstr "expire"
 
 #~ msgid "primary"
-#~ msgstr "ðñùôåýùí"
+#~ msgstr "πρωτεύων"
 
 #~ msgid "toggle"
 #~ msgstr "toggle"
@@ -10130,7 +10205,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "keyserver"
-#~ msgstr "óöÜëìá äéáêïìéóôÞ êëåéäéþí"
+#~ msgstr "σφάλμα διακομιστή κλειδιών"
 
 #~ msgid "trust"
 #~ msgstr "trust"
@@ -10155,7 +10230,7 @@ msgstr ""
 
 #~ msgid "digest algorithm `%s' is read-only in this release\n"
 #~ msgstr ""
-#~ "ï áëãüñéèìïò ðåñßëçøçò `%s' åßíáé óå áõôÞ ôçí Ýêäïóç ãéá áíÜãíùóç ìüíï\n"
+#~ "ο αλγόριθμος περίληψης `%s' είναι σε αυτή την έκδοση για ανάγνωση μόνο\n"
 
 #~ msgid ""
 #~ "About to generate a new %s keypair.\n"
@@ -10163,104 +10238,104 @@ msgstr ""
 #~ "              default keysize is 1024 bits\n"
 #~ "    highest suggested keysize is 2048 bits\n"
 #~ msgstr ""
-#~ "Óå äéáäéêáóßá äçìéïõñãßáò åíüò íÝïõ %s keypair.\n"
-#~ "              åëÜ÷éóôï ìÝãåèïò êëåéäéïý åßíáé  768 bits\n"
-#~ "              ðñïêáèïñéóìÝíï ìÝãåèïò êëåéäéïý åßíáé 1024 bits\n"
-#~ "    ìÝãéóôï ðñïôåéíüìåíï ìÝãåèïò êëåéäéïý åßíáé 2048 bits\n"
+#~ "Σε διαδικασία δημιουργίας ενός νέου %s keypair.\n"
+#~ "              ελάχιστο μέγεθος κλειδιού είναι  768 bits\n"
+#~ "              προκαθορισμένο μέγεθος κλειδιού είναι 1024 bits\n"
+#~ "    μέγιστο προτεινόμενο μέγεθος κλειδιού είναι 2048 bits\n"
 
 #~ msgid "DSA only allows keysizes from 512 to 1024\n"
-#~ msgstr "Ï DSA åðéôñÝðåé ìüíï ìÝãåèïò êëåéäéïý áðü 512 Ýùò 1024\n"
+#~ msgstr "Ο DSA επιτρέπει μόνο μέγεθος κλειδιού από 512 έως 1024\n"
 
 #~ msgid "keysize too small; 1024 is smallest value allowed for RSA.\n"
 #~ msgstr ""
-#~ "ôï ìÝãåèïò êëåéäéïý åßíáé ðïëý ìéêñü, 1024 åßíáé ç åëÜ÷éóôç ôéìÞ ãéá "
+#~ "το μέγεθος κλειδιού είναι πολύ μικρό, 1024 είναι η ελάχιστη τιμή για "
 #~ "RSA.\n"
 
 #~ msgid "keysize too small; 768 is smallest value allowed.\n"
 #~ msgstr ""
-#~ "ôï ìÝãåèïò êëåéäéïý åßíáé ðïëý ìéêñü, 768 åßíáé ç åëÜ÷éóôç åðéôñåðüìåíç "
-#~ "ôéìÞ.\n"
+#~ "το μέγεθος κλειδιού είναι πολύ μικρό, 768 είναι η ελάχιστη επιτρεπόμενη "
+#~ "τιμή.\n"
 
 #~ msgid "keysize too large; %d is largest value allowed.\n"
 #~ msgstr ""
-#~ "ôï ìÝãåèïò êëåéäéïý åßíáé ðïëý ìåãÜëï, %d åßíáé ç ìÝãéóôç ôéìÞ ðïõ "
-#~ "åðéôñÝðåôáé.\n"
+#~ "το μέγεθος κλειδιού είναι πολύ μεγάλο, %d είναι η μέγιστη τιμή που "
+#~ "επιτρέπεται.\n"
 
 #~ msgid ""
 #~ "Keysizes larger than 2048 are not suggested because\n"
 #~ "computations take REALLY long!\n"
 #~ msgstr ""
-#~ "ÌåãÝèç êëåéäéþí ìåãáëýôåñá ôïõ 2048 äåí óõíéóôþíôáé ãéáôß\n"
-#~ "ïé õðïëïãéóìïß åßíáé ÷ñïíïâüñïé!\n"
+#~ "Μεγέθη κλειδιών μεγαλύτερα του 2048 δεν συνιστώνται γιατί\n"
+#~ "οι υπολογισμοί είναι χρονοβόροι!\n"
 
 #, fuzzy
 #~ msgid "Are you sure that you want this keysize? (y/N) "
-#~ msgstr "Óßãïõñá èÝëåôå áõôü ôï ìÝãåèïò êëåéäéïý; "
+#~ msgstr "Σίγουρα θέλετε αυτό το μέγεθος κλειδιού; "
 
 #~ msgid ""
 #~ "Okay, but keep in mind that your monitor and keyboard radiation is also "
 #~ "very vulnerable to attacks!\n"
 #~ msgstr ""
-#~ "ÅíôÜîåé, áëëÜ íá Ý÷åôå õð'üøç üôé ç ïèüíç êáé ôï ðëçêôñïëüãéï åßíáé\n"
-#~ "åðßóçò ðïëý ôñùôÜ óå åðéèÝóåéò!\n"
+#~ "Εντάξει, αλλά να έχετε υπ'όψη ότι η οθόνη και το πληκτρολόγιο είναι\n"
+#~ "επίσης πολύ τρωτά σε επιθέσεις!\n"
 
 #~ msgid "Experimental algorithms should not be used!\n"
-#~ msgstr "Ðåéñáìáôéêïß áëãüñéèìïé äåí ðñÝðåé íá ÷ñçóéìïðïéïýíôáé!\n"
+#~ msgstr "Πειραματικοί αλγόριθμοι δεν πρέπει να χρησιμοποιούνται!\n"
 
 #~ msgid ""
 #~ "this cipher algorithm is deprecated; please use a more standard one!\n"
 #~ msgstr ""
-#~ "ç ÷ñÞóç áõôïý ôïõ áëãüñéèìïõ êñõðôïãñÜöçóçò äåí óõíéóôÜôáé. "
-#~ "×ñçóéìïðïéÞóôå Ýíá ðéï óõíçèéóìÝíï!\n"
+#~ "η χρήση αυτού του αλγόριθμου κρυπτογράφησης δεν συνιστάται. "
+#~ "Χρησιμοποιήστε ένα πιο συνηθισμένο!\n"
 
 #~ msgid "sorry, can't do this in batch mode\n"
-#~ msgstr "óõãíþìç, äåí ìðïñåß íá ãßíåé áõôü óå êáôÜóôáóç äÝóìçò (batchmode)\n"
+#~ msgstr "συγνώμη, δεν μπορεί να γίνει αυτό σε κατάσταση δέσμης (batchmode)\n"
 
 #, fuzzy
 #~ msgid "can't open file `%s': %s\n"
-#~ msgstr "áäõíáìßá ðñüóâáóçò ôïõ áñ÷åßïõ: %s\n"
+#~ msgstr "αδυναμία πρόσβασης του αρχείου: %s\n"
 
 #~ msgid "key %08lX: key has been revoked!\n"
-#~ msgstr "êëåéäß %08lX: ôï êëåéäß Ý÷åé áíáêëçèåß!\n"
+#~ msgstr "κλειδί %08lX: το κλειδί έχει ανακληθεί!\n"
 
 #~ msgid "key %08lX: subkey has been revoked!\n"
-#~ msgstr "êëåéäß %08lX: ôï õðïêëåéäß Ý÷åé áíáêëçèåß!\n"
+#~ msgstr "κλειδί %08lX: το υποκλειδί έχει ανακληθεί!\n"
 
 #~ msgid "%08lX: key has expired\n"
-#~ msgstr "%08lX: ôï êëåéäß Ý÷åé ëÞîåé\n"
+#~ msgstr "%08lX: το κλειδί έχει λήξει\n"
 
 #~ msgid "%08lX: We do NOT trust this key\n"
-#~ msgstr "%08lX: ÄÅÍ åìðéóôåõüìáóôå áõôü ôï êëåéäß\n"
+#~ msgstr "%08lX: ΔΕΝ εμπιστευόμαστε αυτό το κλειδί\n"
 
 #, fuzzy
 #~ msgid "   (%d) RSA (auth only)\n"
-#~ msgstr "   (%d) RSA (ãéá õðïãñáöÞ ìüíï)\n"
+#~ msgstr "   (%d) RSA (για υπογραφή μόνο)\n"
 
 #, fuzzy
 #~ msgid "   (%d) RSA (sign and auth)\n"
-#~ msgstr "   (%d) RSA (õðïãñáöÞ êáé êñõðôïãñÜöçóç)\n"
+#~ msgstr "   (%d) RSA (υπογραφή και κρυπτογράφηση)\n"
 
 #, fuzzy
 #~ msgid "   (%d) RSA (encrypt and auth)\n"
-#~ msgstr "   (%d) RSA (ãéá êñõðôïãñÜöçóç ìüíï)\n"
+#~ msgstr "   (%d) RSA (για κρυπτογράφηση μόνο)\n"
 
 #, fuzzy
 #~ msgid "  (%d) RSA (sign, encrypt and auth)\n"
-#~ msgstr "   (%d) RSA (õðïãñáöÞ êáé êñõðôïãñÜöçóç)\n"
+#~ msgstr "   (%d) RSA (υπογραφή και κρυπτογράφηση)\n"
 
 #~ msgid "%s: can't open: %s\n"
-#~ msgstr "%s: áäõíáìßá ðñüóâáóçò ôïõ: %s\n"
+#~ msgstr "%s: αδυναμία πρόσβασης του: %s\n"
 
 #~ msgid "%s: WARNING: empty file\n"
-#~ msgstr "%s: ÐÑÏÅÉÄÏÐÏÉÇÓÇ: Üäåéï áñ÷åßï\n"
+#~ msgstr "%s: ΠΡΟΕΙΔΟΠΟΙΗΣΗ: άδειο αρχείο\n"
 
 #, fuzzy
 #~ msgid "   (%d) I trust marginally\n"
-#~ msgstr " %d = ¸÷ù ìåñéêÞ åìðéóôïóýíç\n"
+#~ msgstr " %d = Έχω μερική εμπιστοσύνη\n"
 
 #, fuzzy
 #~ msgid "   (%d) I trust fully\n"
-#~ msgstr " %d = ¸÷ù ðëÞñç åìðéóôïóýíç\n"
+#~ msgstr " %d = Έχω πλήρη εμπιστοσύνη\n"
 
 #, fuzzy
 #~ msgid "expires"
@@ -10272,219 +10347,219 @@ msgstr ""
 #~ "locally signed with your key %s at %s\n"
 #~ msgstr ""
 #~ "\"\n"
-#~ "õðïãñÜöèçêå ôïðéêÜ ìå ôï êëåéäß óáò %08lX óôéò %s\n"
+#~ "υπογράφθηκε τοπικά με το κλειδί σας %08lX στις %s\n"
 
 #~ msgid "%s: can't create lock\n"
-#~ msgstr "%s: áäõíáìßá äçìéïõñãßáò êëåéäþìáôïò (lock)\n"
+#~ msgstr "%s: αδυναμία δημιουργίας κλειδώματος (lock)\n"
 
 #~ msgid "%s: can't make lock\n"
-#~ msgstr "%s: áäõíáìßá äçìéïõñãßáò êëåéäþìáôïò (lock)\n"
+#~ msgstr "%s: αδυναμία δημιουργίας κλειδώματος (lock)\n"
 
 #~ msgid "%s: can't create: %s\n"
-#~ msgstr "%s: áäõíáìßá äçìéïõñãßáò: %s\n"
+#~ msgstr "%s: αδυναμία δημιουργίας: %s\n"
 
 #~ msgid "If you want to use this revoked key anyway, answer \"yes\"."
 #~ msgstr ""
-#~ "ÅÜí èÝëåôå íá ÷ñçóéìïðïéÞóåôå áõôü ôï áíáêëÞèåí êëåéäß, áðáíôÞóôå \"yes\"."
+#~ "Εάν θέλετε να χρησιμοποιήσετε αυτό το ανακλήθεν κλειδί, απαντήστε \"yes\"."
 
 #~ msgid "Unable to open photo \"%s\": %s\n"
-#~ msgstr "Áäõíáìßá ðñüóâáóçò ôçò öùôïãñáößáò \"%s\": %s\n"
+#~ msgstr "Αδυναμία πρόσβασης της φωτογραφίας \"%s\": %s\n"
 
 #~ msgid "error: missing colon\n"
-#~ msgstr "óöÜëìá: ëåßðåé ç áíù êáé êÜôù ôåëåßá\n"
+#~ msgstr "σφάλμα: λείπει η ανω και κάτω τελεία\n"
 
 #~ msgid "error: no ownertrust value\n"
-#~ msgstr "óöÜëìá: êáììéÜ ôéìÞ åìðéóôïóýíçò éäéïêôÞôç\n"
+#~ msgstr "σφάλμα: καμμιά τιμή εμπιστοσύνης ιδιοκτήτη\n"
 
 #~ msgid " (main key ID %08lX)"
-#~ msgstr " (êýñéï êëåéäß, ID %08lX)"
+#~ msgstr " (κύριο κλειδί, ID %08lX)"
 
 #~ msgid "rev! subkey has been revoked: %s\n"
-#~ msgstr "rev! ôï êëåéäß áíáêëÞèçêå: %s\n"
+#~ msgstr "rev! το κλειδί ανακλήθηκε: %s\n"
 
 #~ msgid "rev- faked revocation found\n"
-#~ msgstr "rev- âñÝèçêå ðáñáðïéçìÝíç áíÜêëçóç\n"
+#~ msgstr "rev- βρέθηκε παραποιημένη ανάκληση\n"
 
 #, fuzzy
 #~ msgid " [expired: %s]"
-#~ msgstr " [ëÞãåé: %s]"
+#~ msgstr " [λήγει: %s]"
 
 #~ msgid " [expires: %s]"
-#~ msgstr " [ëÞãåé: %s]"
+#~ msgstr " [λήγει: %s]"
 
 #, fuzzy
 #~ msgid " [revoked: %s]"
-#~ msgstr "[áíáêëçìÝíï]"
+#~ msgstr "[ανακλημένο]"
 
 #~ msgid ""
 #~ "WARNING: digest `%s' is not part of OpenPGP.  Use at your own risk!\n"
 #~ msgstr ""
-#~ "ÐÑÏÅÉÄÏÐÏÉÇÓÇ: ðåñßëçøç `%s' äåí åßíáé ìÝñïò ôïõ OpenPGP. Åóåßò èá "
-#~ "êñßíåôå ãéá ôçí ÷ñÞóç ôçò!\n"
+#~ "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: περίληψη `%s' δεν είναι μέρος του OpenPGP. Εσείς θα "
+#~ "κρίνετε για την χρήση της!\n"
 
 #~ msgid "|[files]|encrypt files"
-#~ msgstr "|[áñ÷åßá]|êñõðôïãñÜöçóç áñ÷åßùí"
+#~ msgstr "|[αρχεία]|κρυπτογράφηση αρχείων"
 
 #~ msgid "store only"
-#~ msgstr "áðïèÞêåõóç ìüíï"
+#~ msgstr "αποθήκευση μόνο"
 
 #~ msgid "|[files]|decrypt files"
-#~ msgstr "|[áñ÷åßá]|áðïêñõðôïãñÜöçóç áñ÷åßùí"
+#~ msgstr "|[αρχεία]|αποκρυπτογράφηση αρχείων"
 
 #~ msgid "sign a key non-revocably"
-#~ msgstr "õðïãñáöÞ åíüò êëåéäéïý ìç-áíáêáëÝóéìá"
+#~ msgstr "υπογραφή ενός κλειδιού μη-ανακαλέσιμα"
 
 #~ msgid "sign a key locally and non-revocably"
-#~ msgstr "õðïãñáöÞ åíüò êëåéäéïý ôïðéêÜ êáé ìç-áíáêáëÝóéìá"
+#~ msgstr "υπογραφή ενός κλειδιού τοπικά και μη-ανακαλέσιμα"
 
 #~ msgid "list only the sequence of packets"
-#~ msgstr "áðåéêüíéóç ìüíï ôçò áêïëïõèßáò ðáêÝôùí"
+#~ msgstr "απεικόνιση μόνο της ακολουθίας πακέτων"
 
 #~ msgid "export the ownertrust values"
-#~ msgstr "åîáãùãÞ ôùí ôéìþí åìðéóôïóýíçò"
+#~ msgstr "εξαγωγή των τιμών εμπιστοσύνης"
 
 #~ msgid "unattended trust database update"
-#~ msgstr "áíáíÝùóç ôçò ðáñáìåëåéìÝíçò âÜóçò äåäïìÝíùí åìðéóôïóýíçò"
+#~ msgstr "ανανέωση της παραμελειμένης βάσης δεδομένων εμπιστοσύνης"
 
 #~ msgid "fix a corrupted trust database"
-#~ msgstr "äéüñèùóç ìéáò öèáñìÝíçò âÜóçò äåäïìÝíùí åìðéóôïóýíçò"
+#~ msgstr "διόρθωση μιας φθαρμένης βάσης δεδομένων εμπιστοσύνης"
 
 #~ msgid "De-Armor a file or stdin"
-#~ msgstr "Áöáßñåóç-ÈùñÜêéóçò åíüò áñ÷åßïõ Þ stdin"
+#~ msgstr "Αφαίρεση-Θωράκισης ενός αρχείου ή stdin"
 
 #~ msgid "En-Armor a file or stdin"
-#~ msgstr "ÐñïóèÞêç-ÈùñÜêéóçò åíüò áñ÷åßïõ Þ stdin"
+#~ msgstr "Προσθήκη-Θωράκισης ενός αρχείου ή stdin"
 
 #~ msgid "do not force v3 signatures"
-#~ msgstr "ü÷é åîáíáãêáóìüò ÷ñÞóçò v3 õðïãñáöþí"
+#~ msgstr "όχι εξαναγκασμός χρήσης v3 υπογραφών"
 
 #~ msgid "force v4 key signatures"
-#~ msgstr "åîáíáãêáóìüò ÷ñÞóçò v4 õðïãñáöþí"
+#~ msgstr "εξαναγκασμός χρήσης v4 υπογραφών"
 
 #~ msgid "do not force v4 key signatures"
-#~ msgstr "ü÷é åîáíáãêáóìüò ÷ñÞóçò v4 õðïãñáöþí"
+#~ msgstr "όχι εξαναγκασμός χρήσης v4 υπογραφών"
 
 #~ msgid "never use a MDC for encryption"
-#~ msgstr "ðïôÝ ÷ñÞóç MDC ãéá êñõðôïãñÜöçóç"
+#~ msgstr "ποτέ χρήση MDC για κρυπτογράφηση"
 
 #~ msgid "use the gpg-agent"
-#~ msgstr "÷ñÞóç ôïõ gpg-agent"
+#~ msgstr "χρήση του gpg-agent"
 
 #~ msgid "|[file]|write status info to file"
-#~ msgstr "|[áñ÷åßï]|åããñáöÞ ôùí ðëçñïöïñéþí êáôÜóôáóçò óôï áñ÷åßï"
+#~ msgstr "|[αρχείο]|εγγραφή των πληροφοριών κατάστασης στο αρχείο"
 
 #~ msgid "|KEYID|ultimately trust this key"
-#~ msgstr "|KEYID|áðüëõôç åìðéóôïóýíç óå áõôü ôï êëåéäß"
+#~ msgstr "|KEYID|απόλυτη εμπιστοσύνη σε αυτό το κλειδί"
 
 #~ msgid "emulate the mode described in RFC1991"
-#~ msgstr "åîïìïßùóç ôçò êáôÜóôáóçò ðïõ ðåñéãñÜöåôáé óôï RFC1991"
+#~ msgstr "εξομοίωση της κατάστασης που περιγράφεται στο RFC1991"
 
 #~ msgid "set all packet, cipher and digest options to OpenPGP behavior"
 #~ msgstr ""
-#~ "óõìðåñéöïñÜ üëùí ôùí åðéëïãþí ðáêÝôá,áëãüñéèìïé êáé ðåñßëçøç óå OPENPGP"
+#~ "συμπεριφορά όλων των επιλογών πακέτα,αλγόριθμοι και περίληψη σε OPENPGP"
 
 #~ msgid "set all packet, cipher and digest options to PGP 2.x behavior"
 #~ msgstr ""
-#~ "ïñéóìüò üëùí ôùí åðéëïãþí ðáêÝôá,áëãüñéèìïé,ðåñßëçøç óå PGP 2.x "
-#~ "óõìðåñéöïñÜ"
+#~ "ορισμός όλων των επιλογών πακέτα,αλγόριθμοι,περίληψη σε PGP 2.x "
+#~ "συμπεριφορά"
 
 #~ msgid "|NAME|use message digest algorithm NAME for passphrases"
 #~ msgstr ""
-#~ "|ONOMA|÷ñÞóç ôïõ áëãüñéèìïõ ðåñßëçøçò ìçíýìáôïò ÏÍÏÌÁ ãéá öñÜóåéò êëåéäéÜ"
+#~ "|ONOMA|χρήση του αλγόριθμου περίληψης μηνύματος ΟΝΟΜΑ για φράσεις κλειδιά"
 
 #~ msgid "throw keyid field of encrypted packets"
-#~ msgstr "äéáãñáöÞ ôïõ ðåäßïõ keyid ôùí êñõðôïãñáöçìÝíùí ðáêÝôùí"
+#~ msgstr "διαγραφή του πεδίου keyid των κρυπτογραφημένων πακέτων"
 
 #~ msgid "Show Photo IDs"
-#~ msgstr "Áðåéêüíéóç ôùí Photo ID"
+#~ msgstr "Απεικόνιση των Photo ID"
 
 #~ msgid "Don't show Photo IDs"
-#~ msgstr "Ìç áðåéêüíéóç ôùí Photo ID"
+#~ msgstr "Μη απεικόνιση των Photo ID"
 
 #~ msgid "Set command line to view Photo IDs"
-#~ msgstr "Ïñéóìüò ôçò ãñáììÞò åíôïëþí ãéá áðåéêüíéóç ôùí Photo ID"
+#~ msgstr "Ορισμός της γραμμής εντολών για απεικόνιση των Photo ID"
 
 #~ msgid "compress algorithm `%s' is read-only in this release\n"
 #~ msgstr ""
-#~ "ï áëãüñéèìïò óõìðßåóçò `%s' åßíáé óå áõôÞ ôçí Ýêäïóç ãéá áíÜãíùóç ìüíï\n"
+#~ "ο αλγόριθμος συμπίεσης `%s' είναι σε αυτή την έκδοση για ανάγνωση μόνο\n"
 
 #~ msgid "compress algorithm must be in range %d..%d\n"
-#~ msgstr "ï áëãüñéèìïò óõìðßåóçò ðñÝðåé íá åßíáé ìåôáîý %d..%d\n"
+#~ msgstr "ο αλγόριθμος συμπίεσης πρέπει να είναι μεταξύ %d..%d\n"
 
 #~ msgid ""
 #~ "%08lX: It is not sure that this key really belongs to the owner\n"
 #~ "but it is accepted anyway\n"
 #~ msgstr ""
-#~ "%08lX: Äåí åßíáé âÝâáéï üôé áõôü ôï êëåéäß áíÞêåé óôïí éäéïêôÞôç\n"
-#~ "áëëÜ åí ðÜóç ðåñéðôþóåé ãßíåôáé äåêôü\n"
+#~ "%08lX: Δεν είναι βέβαιο ότι αυτό το κλειδί ανήκει στον ιδιοκτήτη\n"
+#~ "αλλά εν πάση περιπτώσει γίνεται δεκτό\n"
 
 #~ msgid "preference %c%lu is not valid\n"
-#~ msgstr "ç ðñïåðéëïãÞ %c%lu äåí åßíáé Ýãêõñç\n"
+#~ msgstr "η προεπιλογή %c%lu δεν είναι έγκυρη\n"
 
 #~ msgid "key %08lX: not a rfc2440 key - skipped\n"
-#~ msgstr "êëåéäß %08lX: äåí åßíáé Ýíá rfc2440 êëåéäß - ðáñáëåßöèçêå\n"
+#~ msgstr "κλειδί %08lX: δεν είναι ένα rfc2440 κλειδί - παραλείφθηκε\n"
 
 #~ msgid ""
 #~ "NOTE: Elgamal primary key detected - this may take some time to import\n"
 #~ msgstr ""
-#~ "ÓÇÌÅÉÙÓÇ: åíôïðéóìüò ðñùôåýïíôïò êëåéäéïý Elgamal - ßóùò ðÜñåé ëßãï "
-#~ "÷ñüíï\n"
-#~ "          ãéá ôçí åéóáãùãÞ ôïõ\n"
+#~ "ΣΗΜΕΙΩΣΗ: εντοπισμός πρωτεύοντος κλειδιού Elgamal - ίσως πάρει λίγο "
+#~ "χρόνο\n"
+#~ "          για την εισαγωγή του\n"
 
 #~ msgid " (default)"
-#~ msgstr " (ðñïêáèïñéóìÝíï)"
+#~ msgstr " (προκαθορισμένο)"
 
 #~ msgid "%s%c %4u%c/%08lX  created: %s expires: %s"
-#~ msgstr "%s%c %4u%c/%08lX  äçìéïõñãßá: %s ëÞîç: %s"
+#~ msgstr "%s%c %4u%c/%08lX  δημιουργία: %s λήξη: %s"
 
 #~ msgid "can't get key from keyserver: %s\n"
-#~ msgstr "áäõíáìßá ëÞøçò ôïõ êëåéäéïý áðü ôï äéáêïìéóôÞ: %s\n"
+#~ msgstr "αδυναμία λήψης του κλειδιού από το διακομιστή: %s\n"
 
 #~ msgid "success sending to `%s' (status=%u)\n"
-#~ msgstr "åðéôõ÷ßá ôçò áðïóôïëÞò óôï `%s' (êáôÜóôáóç=%u)\n"
+#~ msgstr "επιτυχία της αποστολής στο `%s' (κατάσταση=%u)\n"
 
 #~ msgid "failed sending to `%s': status=%u\n"
-#~ msgstr "áðïôõ÷ßá óôçí áðïóôïëÞ ðñïò ôï `%s': êáôÜóôáóç=%u\n"
+#~ msgstr "αποτυχία στην αποστολή προς το `%s': κατάσταση=%u\n"
 
 #~ msgid "this keyserver does not support --search-keys\n"
-#~ msgstr "áõôüò ï keyserver äåí õðïóôçñßæåé --search-keys\n"
+#~ msgstr "αυτός ο keyserver δεν υποστηρίζει --search-keys\n"
 
 #~ msgid "can't search keyserver: %s\n"
-#~ msgstr "áäõíáìßá áíáæÞôçóçò äéáêïìéóôÞ: %s\n"
+#~ msgstr "αδυναμία αναζήτησης διακομιστή: %s\n"
 
 #~ msgid ""
 #~ "key %08lX: this is a PGP generated ElGamal key which is NOT secure for "
 #~ "signatures!\n"
 #~ msgstr ""
-#~ "êëåéäß %08lX: áõôü åßíáé Ýíá ðáñáãþìåíï áðü PGP ElGamal êëåéäß ôï ïðïßï\n"
-#~ "              ÄÅÍ åßíáé áóöáëåò ãéá õðïãñáöÝò!\n"
+#~ "κλειδί %08lX: αυτό είναι ένα παραγώμενο από PGP ElGamal κλειδί το οποίο\n"
+#~ "              ΔΕΝ είναι ασφαλες για υπογραφές!\n"
 
 #~ msgid ""
 #~ "key %08lX has been created %lu second in future (time warp or clock "
 #~ "problem)\n"
 #~ msgstr ""
-#~ "ôï êëåéäß %08lX äçìéïõñãÞèçêå %lu äåõôåñüëåðôï óôï ìÝëëïí (÷ñïíïäßíç Þ\n"
-#~ "áðëþò ðñüâëçìá óôï ñïëüé)\n"
+#~ "το κλειδί %08lX δημιουργήθηκε %lu δευτερόλεπτο στο μέλλον (χρονοδίνη ή\n"
+#~ "απλώς πρόβλημα στο ρολόι)\n"
 
 #~ msgid ""
 #~ "key %08lX has been created %lu seconds in future (time warp or clock "
 #~ "problem)\n"
 #~ msgstr ""
-#~ "ôï êëåéäß %08lX äçìéïõñãÞèçêå %lu äåõôåñüëåðôá óôï ìÝëëïí (÷ñïíïäßíç Þ\n"
-#~ "áðëþò ðñüâëçìá óôï ñïëüé)\n"
+#~ "το κλειδί %08lX δημιουργήθηκε %lu δευτερόλεπτα στο μέλλον (χρονοδίνη ή\n"
+#~ "απλώς πρόβλημα στο ρολόι)\n"
 
 #~ msgid "key %08lX marked as ultimately trusted\n"
-#~ msgstr "ôï êëåéäß %08lX óçìåéþèçêå óáí áðüëõôçò åìðéóôïóýíçò.\n"
+#~ msgstr "το κλειδί %08lX σημειώθηκε σαν απόλυτης εμπιστοσύνης.\n"
 
 #~ msgid "signature from Elgamal signing key %08lX to %08lX skipped\n"
-#~ msgstr "õðïãñáöÞ áðü Elgamal õðïãñÜöùí êëåéäß %08lX óå %08lX ðáñáëÞöèåé\n"
+#~ msgstr "υπογραφή από Elgamal υπογράφων κλειδί %08lX σε %08lX παραλήφθει\n"
 
 #~ msgid "signature from %08lX to Elgamal signing key %08lX skipped\n"
-#~ msgstr "õðïãñáöÞ áðü %08lX óå Elgamal õðïãñÜöùí êëåéäß %08lX ðáñáëÞöèåé\n"
+#~ msgstr "υπογραφή από %08lX σε Elgamal υπογράφων κλειδί %08lX παραλήφθει\n"
 
 #~ msgid "checking at depth %d signed=%d ot(-/q/n/m/f/u)=%d/%d/%d/%d/%d/%d\n"
 #~ msgstr ""
-#~ "Ýëåã÷ïò óå âÜèïò %d õðïãñáöèçêå=%d ot(-/q/n/m/f/u)=%d/%d/%d/%d/%d/%d\n"
+#~ "έλεγχος σε βάθος %d υπογραφθηκε=%d ot(-/q/n/m/f/u)=%d/%d/%d/%d/%d/%d\n"
 
 #~ msgid ""
 #~ "Select the algorithm to use.\n"
@@ -10509,41 +10584,41 @@ msgstr ""
 #~ "in\n"
 #~ "this menu."
 #~ msgstr ""
-#~ "ÅðéëÝîôå ôïí áëãüñéèìï ðïõ èÝëåôå íá ÷ñçóéìïðïéÞóåôå.\n"
+#~ "Επιλέξτε τον αλγόριθμο που θέλετε να χρησιμοποιήσετε.\n"
 #~ "\n"
-#~ "DSA (åðßóçò ãíùóôüò óáí DSS) åßíáé ï áëãüñéèìïò øçöéáêÞò õðïãñáöÞò\n"
-#~ "êáé ìðïñåß íá ÷ñçóéìïðïéçèåß ìüíï ãéá õðïãñáöÝò.  Åßíáé ï ðñïôåéíüìåíïò\n"
-#~ "áëãüñéèìïò åðåéäÞ ç åðáëÞèåõóç ôùí DSA õðïãñáöþí åßíáé ôá÷ýôåñç áðü\n"
-#~ "ôùí õðïãñáöþí ôýðïõ ElGamal.\n"
+#~ "DSA (επίσης γνωστός σαν DSS) είναι ο αλγόριθμος ψηφιακής υπογραφής\n"
+#~ "και μπορεί να χρησιμοποιηθεί μόνο για υπογραφές.  Είναι ο προτεινόμενος\n"
+#~ "αλγόριθμος επειδή η επαλήθευση των DSA υπογραφών είναι ταχύτερη από\n"
+#~ "των υπογραφών τύπου ElGamal.\n"
 #~ "\n"
-#~ "ElGamal åßíáé Ýíáò áëãüñéèìïò ãéá ÷ñÞóç êáé óå õðïãñáöÝò êáé ãéá êñõðôï-\n"
-#~ "ãñÜöçóç. Ôï OpenPGP îå÷ùñßæåé ôéò äýï \"ãåýóåéò\" áõôïý ôïõ áëãüñéèìïõ:\n"
-#~ "Ýíá êñõðôïãñÜöçóçò-ìüíï êáé Ýíá õðïãñáöÞò-êáé-êñõðôïãñÜöçóçò, óôçí\n"
-#~ "ðñáãìáôéêüôçôá åßíáé ï ßäéïò, áëëÜ êÜðïéïé ðáñÜìåôñïé ðñÝðåé íá "
-#~ "åðéëåãïýí\n"
-#~ "ìå Ýíá åéäéêü ôñüðï ãéá íá äçìéïõñãçèåß Ýíá áóöáëÝò êëåéäß ãéá "
-#~ "õðïãñáöÝò.\n"
-#~ "Áõôü ôï ðñüãñáììá ôï êÜíåé, áëëÜ óå Üëëåò OpenPGP õëïðïéÞóåéò äåí\n"
-#~ "åßíáé áðáñáßôçôï íá êáôáëáâáßíïõí áõôü ôï óõíäõáóìü (ãåýóç).\n"
+#~ "ElGamal είναι ένας αλγόριθμος για χρήση και σε υπογραφές και για κρυπτο-\n"
+#~ "γράφηση. Το OpenPGP ξεχωρίζει τις δύο \"γεύσεις\" αυτού του αλγόριθμου:\n"
+#~ "ένα κρυπτογράφησης-μόνο και ένα υπογραφής-και-κρυπτογράφησης, στην\n"
+#~ "πραγματικότητα είναι ο ίδιος, αλλά κάποιοι παράμετροι πρέπει να "
+#~ "επιλεγούν\n"
+#~ "με ένα ειδικό τρόπο για να δημιουργηθεί ένα ασφαλές κλειδί για "
+#~ "υπογραφές.\n"
+#~ "Αυτό το πρόγραμμα το κάνει, αλλά σε άλλες OpenPGP υλοποιήσεις δεν\n"
+#~ "είναι απαραίτητο να καταλαβαίνουν αυτό το συνδυασμό (γεύση).\n"
 #~ "\n"
-#~ "Ôï ðñþôï (ðñùôåýïí) êëåéäß ðñÝðåé íá åßíáé ðÜíôïôå Ýíá êëåéäß éêáíü ãéá\n"
-#~ "õðïãñáöÞ. Áõôüò åßíáé ï ëüãïò ãéá ôïí ïðïßï ï êñõðôïãñÜöçóçò-ìüíï\n"
-#~ "êëåéäß ElGamal äåí åßíáé äéáèÝóéìï óå áõôü ôï ìåíïý."
+#~ "Το πρώτο (πρωτεύον) κλειδί πρέπει να είναι πάντοτε ένα κλειδί ικανό για\n"
+#~ "υπογραφή. Αυτός είναι ο λόγος για τον οποίο ο κρυπτογράφησης-μόνο\n"
+#~ "κλειδί ElGamal δεν είναι διαθέσιμο σε αυτό το μενού."
 
 #~ msgid ""
 #~ "Although these keys are defined in RFC2440 they are not suggested\n"
 #~ "because they are not supported by all programs and signatures created\n"
 #~ "with them are quite large and very slow to verify."
 #~ msgstr ""
-#~ "Áí êáé áõôÜ ôá êëåéäéÜ ðåñéãñÜöïíôáé óôï RFC2440 äåí ðñïôåßíïíôáé\n"
-#~ "åðåéäÞ äåí õðïóôçñßæïíôáé áðü üëá ôá ðñïãñÜììáôá êáé ïé õðïãñáöÝò ðïõ\n"
-#~ "Ý÷ïõí äçìéïõñãçèåß áðü áõôÜ åßíáé ìåãÜëåò êáé ðïëý áñãÝò óôçí åðáëÞèåõóç."
+#~ "Αν και αυτά τα κλειδιά περιγράφονται στο RFC2440 δεν προτείνονται\n"
+#~ "επειδή δεν υποστηρίζονται από όλα τα προγράμματα και οι υπογραφές που\n"
+#~ "έχουν δημιουργηθεί από αυτά είναι μεγάλες και πολύ αργές στην επαλήθευση."
 
 #~ msgid "%lu keys so far checked (%lu signatures)\n"
-#~ msgstr "%lu êëåéäéÜ Ý÷ïõí ìÝ÷ñé ôþñá åëåã÷èåß (%lu õðïãñáöÝò)\n"
+#~ msgstr "%lu κλειδιά έχουν μέχρι τώρα ελεγχθεί (%lu υπογραφές)\n"
 
 #~ msgid "key incomplete\n"
-#~ msgstr "êëåéäß çìéôåëÝò\n"
+#~ msgstr "κλειδί ημιτελές\n"
 
 #~ msgid "key %08lX incomplete\n"
-#~ msgstr "êëåéäß %08lX çìéôåëÝò\n"
+#~ msgstr "κλειδί %08lX ημιτελές\n"
index 686e1ff..20b047a 100644 (file)
--- a/po/eo.po
+++ b/po/eo.po
@@ -1,4 +1,4 @@
-# Mesaøoj por la programo GnuPG
+# Mesaĝoj por la programo GnuPG
 # Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
 # Edmund GRIMLEY EVANS <edmundo@rano.org>, 2000-2002.
 #                      !--- psbl.surriel.com rejected (2011-01-11)
@@ -13,7 +13,7 @@ msgstr ""
 "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
 "Language: eo\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-3\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #, fuzzy, c-format
@@ -47,7 +47,7 @@ msgstr ""
 #, fuzzy
 #| msgid "Do you really want to create a sign and encrypt key? "
 msgid "Do you really want to make your passphrase visible on the screen?"
-msgstr "Æu vi vere volas krei subskriban kaj æifran þlosilon? "
+msgstr "Ĉu vi vere volas krei subskriban kaj ĉifran ŝlosilon? "
 
 msgid "|pinentry-tt|Make passphrase visible"
 msgstr ""
@@ -149,19 +149,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "no authentication key for ssh on card: %s\n"
-msgstr "eraro dum skribado de sekreta þlosilaro '%s': %s\n"
+msgstr "eraro dum skribado de sekreta ŝlosilaro '%s': %s\n"
 
 #, fuzzy, c-format
 msgid "no suitable card key found: %s\n"
-msgstr "neniu skribebla sekreta þlosilaro trovita: %s\n"
-
-#, fuzzy, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "forviþo de þlosilbloko malsukcesis: %s\n"
-
-#, fuzzy, c-format
-msgid "error writing key: %s\n"
-msgstr "eraro dum skribado de þlosilaro '%s': %s\n"
+msgstr "neniu skribebla sekreta ŝlosilaro trovita: %s\n"
 
 #, c-format
 msgid ""
@@ -181,7 +173,7 @@ msgstr "Bonvolu doni la pasfrazon; tio estas sekreta frazo \n"
 
 #, fuzzy
 msgid "Please re-enter this passphrase"
-msgstr "þanøi la pasfrazon"
+msgstr "ŝanĝi la pasfrazon"
 
 #, fuzzy, c-format
 msgid ""
@@ -229,15 +221,15 @@ msgstr "Ripetu pasfrazon: "
 
 #, fuzzy
 msgid "Reset Code not correctly repeated; try again"
-msgstr "la pasfrazo ne estis øuste ripetita; provu denove"
+msgstr "la pasfrazo ne estis ĝuste ripetita; provu denove"
 
 #, fuzzy
 msgid "PUK not correctly repeated; try again"
-msgstr "la pasfrazo ne estis øuste ripetita; provu denove"
+msgstr "la pasfrazo ne estis ĝuste ripetita; provu denove"
 
 #, fuzzy
 msgid "PIN not correctly repeated; try again"
-msgstr "la pasfrazo ne estis øuste ripetita; provu denove"
+msgstr "la pasfrazo ne estis ĝuste ripetita; provu denove"
 
 #, c-format
 msgid "Please enter the PIN%s%s%s to unlock the card"
@@ -257,7 +249,7 @@ msgstr "Donu pasfrazon\n"
 
 #, fuzzy
 msgid "Take this one anyway"
-msgstr "Æu tamen uzi æi tiun þlosilon? "
+msgstr "Ĉu tamen uzi ĉi tiun ŝlosilon? "
 
 #, c-format
 msgid ""
@@ -277,8 +269,8 @@ msgstr ""
 #| msgid "Name must be at least 5 characters long\n"
 msgid "A passphrase should be at least %u character long."
 msgid_plural "A passphrase should be at least %u characters long."
-msgstr[0] "Nomo devas havi almenaý 5 signojn\n"
-msgstr[1] "Nomo devas havi almenaý 5 signojn\n"
+msgstr[0] "Nomo devas havi almenaŭ 5 signojn\n"
+msgstr[1] "Nomo devas havi almenaŭ 5 signojn\n"
 
 #, c-format
 msgid "A passphrase should contain at least %u digit or%%0Aspecial character."
@@ -297,12 +289,12 @@ msgstr ""
 #, fuzzy, c-format
 msgid "Please enter the passphrase to%0Aprotect your new key"
 msgstr ""
-"Vi bezonas pasfrazon por protekti vian sekretan þlosilon.\n"
+"Vi bezonas pasfrazon por protekti vian sekretan ŝlosilon.\n"
 "\n"
 
 #, fuzzy
 msgid "Please enter the new passphrase"
-msgstr "þanøi la pasfrazon"
+msgstr "ŝanĝi la pasfrazon"
 
 #, fuzzy
 msgid ""
@@ -319,6 +311,11 @@ msgstr ""
 msgid "run in server mode (foreground)"
 msgstr ""
 
+#, fuzzy
+#| msgid "Key is superseded"
+msgid "run in supervised mode"
+msgstr "Ŝlosilo estas anstataŭigita."
+
 msgid "verbose"
 msgstr "detala eligo"
 
@@ -343,7 +340,7 @@ msgstr ""
 
 #, fuzzy
 msgid "use a log file for the server"
-msgstr "seræi þlosilojn æe þlosilservilo"
+msgstr "serĉi ŝlosilojn ĉe ŝlosilservilo"
 
 msgid "|PGM|use PGM as the PIN-Entry program"
 msgstr ""
@@ -448,7 +445,7 @@ msgstr "Valida atestilrevoko"
 
 #, fuzzy
 msgid "a gpg-agent is already running - not starting a new one\n"
-msgstr "gpg-agent ne estas disponata en æi tiu sesio\n"
+msgstr "gpg-agent ne estas disponata en ĉi tiu sesio\n"
 
 #, fuzzy
 msgid "error getting nonce for the socket\n"
@@ -468,7 +465,7 @@ msgstr "aktualigo malsukcesis: %s\n"
 
 #, fuzzy, c-format
 msgid "listening on socket '%s'\n"
-msgstr "skribas sekretan þlosilon al '%s'\n"
+msgstr "skribas sekretan ŝlosilon al '%s'\n"
 
 #, fuzzy, c-format
 msgid "can't create directory '%s': %s\n"
@@ -512,11 +509,11 @@ msgstr "aktualigo de sekreto malsukcesis: %s\n"
 
 #, fuzzy, c-format
 msgid "%s %s stopped\n"
-msgstr "\t%lu þlosiloj ignoritaj\n"
+msgstr "\t%lu ŝlosiloj ignoritaj\n"
 
 #, fuzzy
 msgid "no gpg-agent running in this session\n"
-msgstr "gpg-agent ne estas disponata en æi tiu sesio\n"
+msgstr "gpg-agent ne estas disponata en ĉi tiu sesio\n"
 
 #, fuzzy
 msgid "Usage: gpg-preset-passphrase [options] KEYGRIP (-h for help)\n"
@@ -585,7 +582,7 @@ msgstr "eraro dum legado de '%s': %s\n"
 
 #, fuzzy, c-format
 msgid "file '%s', line %d: %s\n"
-msgstr "þlosilo '%s' ne trovita: %s\n"
+msgstr "ŝlosilo '%s' ne trovita: %s\n"
 
 #, fuzzy, c-format
 msgid "statement \"%s\" ignored in '%s', line %d\n"
@@ -593,7 +590,7 @@ msgstr "kiraso: %s\n"
 
 #, fuzzy, c-format
 msgid "system trustlist '%s' not available\n"
-msgstr "sekretaj þlosilpartoj ne estas disponataj\n"
+msgstr "sekretaj ŝlosilpartoj ne estas disponataj\n"
 
 #, fuzzy, c-format
 msgid "bad fingerprint in '%s', line %d\n"
@@ -666,7 +663,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Change passphrase"
-msgstr "þanøi la pasfrazon"
+msgstr "ŝanĝi la pasfrazon"
 
 msgid "I'll change it later"
 msgstr ""
@@ -675,11 +672,11 @@ msgstr ""
 msgid ""
 "Do you really want to delete the key identified by keygrip%%0A  %s%%0A  %%C"
 "%%0A?"
-msgstr "Æu vi vere volas forviþi la elektitajn þlosilojn? "
+msgstr "Ĉu vi vere volas forviŝi la elektitajn ŝlosilojn? "
 
 #, fuzzy
 msgid "Delete key"
-msgstr "þalti þlosilon"
+msgstr "ŝalti ŝlosilon"
 
 msgid ""
 "Warning: This key is also listed for use with SSH!\n"
@@ -702,7 +699,7 @@ msgid "checking created signature failed: %s\n"
 msgstr "kontrolo de kreita subskribo malsukcesis: %s\n"
 
 msgid "secret key parts are not available\n"
-msgstr "sekretaj þlosilpartoj ne estas disponataj\n"
+msgstr "sekretaj ŝlosilpartoj ne estas disponataj\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
@@ -731,9 +728,9 @@ msgstr "eraro dum kreado de pasfrazo: %s\n"
 msgid "error forking process: %s\n"
 msgstr "eraro dum legado de '%s': %s\n"
 
-#, fuzzy, c-format
-msgid "waiting for processes to terminate failed: %s\n"
-msgstr "aktualigo malsukcesis: %s\n"
+#, c-format
+msgid "waiting for process %d to terminate failed: %s\n"
+msgstr ""
 
 #, fuzzy, c-format
 msgid "error running '%s': probably not installed\n"
@@ -748,17 +745,17 @@ msgid "error running '%s': terminated\n"
 msgstr "eraro dum legado de '%s': %s\n"
 
 #, fuzzy, c-format
-msgid "error getting exit code of process %d: %s\n"
-msgstr "eraro dum skribado de sekreta þlosilaro '%s': %s\n"
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "aktualigo malsukcesis: %s\n"
 
-#, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr ""
+#, fuzzy, c-format
+msgid "error getting exit code of process %d: %s\n"
+msgstr "eraro dum skribado de sekreta ŝlosilaro '%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to '%s': %s\n"
-msgstr "ne povas konektiøi al '%s': %s\n"
+msgstr "ne povas konektiĝi al '%s': %s\n"
 
 #, fuzzy
 msgid "problem setting the gpg-agent options\n"
@@ -766,7 +763,7 @@ msgstr "problemo kun agento: agento redonas 0x%lx\n"
 
 #, c-format
 msgid "can't disable core dumps: %s\n"
-msgstr "ne povas malþalti kreadon de core-dosieroj: %s\n"
+msgstr "ne povas malŝalti kreadon de core-dosieroj: %s\n"
 
 #, fuzzy, c-format
 msgid "Warning: unsafe ownership on %s \"%s\"\n"
@@ -776,6 +773,14 @@ msgstr "Averto: malsekura posedeco sur %s \"%s\"\n"
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
 msgstr "Averto: malsekuraj permesoj sur %s \"%s\"\n"
 
+#, fuzzy, c-format
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "aktualigo malsukcesis: %s\n"
+
+#, fuzzy, c-format
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "enkirasigo malsukcesis: %s\n"
+
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 #, fuzzy
 msgid "yes"
@@ -823,7 +828,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error allocating enough memory: %s\n"
-msgstr "eraro dum kreado de þlosilaro '%s': %s\n"
+msgstr "eraro dum kreado de ŝlosilaro '%s': %s\n"
 
 #, c-format
 msgid "%s:%u: obsolete option \"%s\" - it has no effect\n"
@@ -850,7 +855,7 @@ msgstr ""
 
 #, fuzzy
 msgid "connection to agent is in restricted mode\n"
-msgstr "ne povas fari tion en neinteraga reøimo\n"
+msgstr "ne povas fari tion en neinteraga reĝimo\n"
 
 #, c-format
 msgid "no running Dirmngr - starting '%s'\n"
@@ -920,7 +925,7 @@ msgstr "Nenia helpo disponata"
 
 #, fuzzy
 msgid "Session key created"
-msgstr "%s: þlosilaro kreita\n"
+msgstr "%s: ŝlosilaro kreita\n"
 
 #, fuzzy, c-format
 msgid "algorithm: %s"
@@ -934,7 +939,7 @@ msgstr ""
 
 #, fuzzy
 msgid "seems to be not encrypted"
-msgstr "ne æifrita"
+msgstr "ne ĉifrita"
 
 msgid "Number of recipients"
 msgstr ""
@@ -952,7 +957,7 @@ msgstr "nevalida kompendi-metodo '%s'\n"
 
 #, fuzzy, c-format
 msgid "Signer %d"
-msgstr "Æi tiu þlosilo eksvalidiøos je %s.\n"
+msgstr "Ĉi tiu ŝlosilo eksvalidiĝos je %s.\n"
 
 #, fuzzy, c-format
 msgid "attr hash algorithm: %s"
@@ -967,11 +972,11 @@ msgstr "protekto-metodo %d%s ne estas realigita\n"
 
 #, fuzzy
 msgid "Data verification succeeded"
-msgstr "kontrolo de subskribo estas malþaltita\n"
+msgstr "kontrolo de subskribo estas malŝaltita\n"
 
 #, fuzzy
 msgid "Signature available"
-msgstr "Æi tiu þlosilo eksvalidiøos je %s.\n"
+msgstr "Ĉi tiu ŝlosilo eksvalidiĝos je %s.\n"
 
 #, fuzzy
 msgid "Parsing data succeeded"
@@ -983,7 +988,7 @@ msgstr "nevalida kompendi-metodo '%s'\n"
 
 #, fuzzy, c-format
 msgid "Signature %d"
-msgstr "Æi tiu þlosilo eksvalidiøos je %s.\n"
+msgstr "Ĉi tiu ŝlosilo eksvalidiĝos je %s.\n"
 
 #, fuzzy
 msgid "Certificate chain valid"
@@ -1038,11 +1043,11 @@ msgstr "nekonata versio"
 
 #, fuzzy
 msgid "argument not expected"
-msgstr "skribas sekretan þlosilon al '%s'\n"
+msgstr "skribas sekretan ŝlosilon al '%s'\n"
 
 #, fuzzy
 msgid "read error"
-msgstr "legeraro æe dosiero"
+msgstr "legeraro ĉe dosiero"
 
 #, fuzzy
 msgid "keyword too long"
@@ -1123,7 +1128,7 @@ msgstr "%s: ne povas krei dosierujon: %s\n"
 
 #, fuzzy, c-format
 msgid "error writing to '%s': %s\n"
-msgstr "eraro dum skribado de þlosilaro '%s': %s\n"
+msgstr "eraro dum skribado de ŝlosilaro '%s': %s\n"
 
 #, c-format
 msgid "removing stale lockfile (created by %d)\n"
@@ -1131,18 +1136,18 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "waiting for lock (held by %d%s) %s...\n"
-msgstr "skribas sekretan þlosilon al '%s'\n"
+msgstr "skribas sekretan ŝlosilon al '%s'\n"
 
 msgid "(deadlock?) "
 msgstr ""
 
 #, fuzzy, c-format
 msgid "lock '%s' not made: %s\n"
-msgstr "publika þlosilo %08lX ne trovita: %s\n"
+msgstr "publika ŝlosilo %08lX ne trovita: %s\n"
 
 #, fuzzy, c-format
 msgid "waiting for lock %s...\n"
-msgstr "skribas sekretan þlosilon al '%s'\n"
+msgstr "skribas sekretan ŝlosilon al '%s'\n"
 
 #, c-format
 msgid "%s is too old (need %s, have %s)\n"
@@ -1153,17 +1158,17 @@ msgid "armor: %s\n"
 msgstr "kiraso: %s\n"
 
 msgid "invalid armor header: "
-msgstr "nevalida kirasoæapo: "
+msgstr "nevalida kirasoĉapo: "
 
 msgid "armor header: "
-msgstr "kirasoæapo: "
+msgstr "kirasoĉapo: "
 
 msgid "invalid clearsig header\n"
-msgstr "nevalida æapo de klarteksta subskribo\n"
+msgstr "nevalida ĉapo de klarteksta subskribo\n"
 
 #, fuzzy
 msgid "unknown armor header: "
-msgstr "kirasoæapo: "
+msgstr "kirasoĉapo: "
 
 msgid "nested clear text signatures\n"
 msgstr "ingitaj klartekstaj subskriboj\n"
@@ -1209,7 +1214,7 @@ msgstr "nevalida kiraso: linio pli longa ol %d signojn\n"
 msgid ""
 "quoted printable character in armor - probably a buggy MTA has been used\n"
 msgstr ""
-"quoted-printable-signo en kiraso - verþajne cima poþtotransendilo estis "
+"quoted-printable-signo en kiraso - verŝajne cima poŝtotransendilo estis "
 "uzata\n"
 
 #, fuzzy, c-format
@@ -1222,7 +1227,7 @@ msgid ""
 "a notation name must have only printable characters or spaces, and end with "
 "an '='\n"
 msgstr ""
-"notacia nomo devas enhavi nur literojn, ciferojn, punktojn aý substrekojn "
+"notacia nomo devas enhavi nur literojn, ciferojn, punktojn aŭ substrekojn "
 "kaj fini per '='\n"
 
 #, fuzzy
@@ -1243,7 +1248,7 @@ msgstr "notacia valoro ne povas enhavi stirsignojn\n"
 #, fuzzy
 msgid "a notation name must have only printable characters or spaces\n"
 msgstr ""
-"notacia nomo devas enhavi nur literojn, ciferojn, punktojn aý substrekojn "
+"notacia nomo devas enhavi nur literojn, ciferojn, punktojn aŭ substrekojn "
 "kaj fini per '='\n"
 
 msgid "WARNING: invalid notation data found\n"
@@ -1259,7 +1264,7 @@ msgstr "Donu pasfrazon: "
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
 msgid "error getting version from '%s': %s\n"
-msgstr "eraro dum kreado de þlosilaro '%s': %s\n"
+msgstr "eraro dum kreado de ŝlosilaro '%s': %s\n"
 
 #, c-format
 msgid "server '%s' is older than us (%s < %s)"
@@ -1272,7 +1277,7 @@ msgstr "AVERTO: %s nuligas %s\n"
 
 #, fuzzy, c-format
 msgid "OpenPGP card not available: %s\n"
-msgstr "sekreta þlosilo ne havebla"
+msgstr "sekreta ŝlosilo ne havebla"
 
 #, c-format
 msgid "OpenPGP card no. %s detected\n"
@@ -1280,15 +1285,15 @@ msgstr ""
 
 #, fuzzy
 msgid "can't do this in batch mode\n"
-msgstr "ne povas fari tion en neinteraga reøimo\n"
+msgstr "ne povas fari tion en neinteraga reĝimo\n"
 
 #, fuzzy
 msgid "This command is only available for version 2 cards\n"
-msgstr "Tiu komando ne eblas en la reøimo %s.\n"
+msgstr "Tiu komando ne eblas en la reĝimo %s.\n"
 
 #, fuzzy
 msgid "Reset Code not or not anymore available\n"
-msgstr "sekretaj þlosilpartoj ne estas disponataj\n"
+msgstr "sekretaj ŝlosilpartoj ne estas disponataj\n"
 
 msgid "Your selection? "
 msgstr "Via elekto? "
@@ -1336,7 +1341,7 @@ msgstr ""
 
 #, fuzzy
 msgid "URL to retrieve public key: "
-msgstr "skribas publikan þlosilon al '%s'\n"
+msgstr "skribas publikan ŝlosilon al '%s'\n"
 
 #, c-format
 msgid "Error: URL too long (limit is %d characters).\n"
@@ -1349,7 +1354,7 @@ msgstr "eraro dum legado de '%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error writing '%s': %s\n"
-msgstr "eraro dum skribado de þlosilaro '%s': %s\n"
+msgstr "eraro dum skribado de ŝlosilaro '%s': %s\n"
 
 msgid "Login data (account name): "
 msgstr ""
@@ -1371,11 +1376,11 @@ msgstr "aktualigitaj preferoj"
 
 #, fuzzy
 msgid "Error: invalid length of preference string.\n"
-msgstr "nevalida signo en signoæeno\n"
+msgstr "nevalida signo en signoĉeno\n"
 
 #, fuzzy
 msgid "Error: invalid characters in preference string.\n"
-msgstr "nevalida signo en signoæeno\n"
+msgstr "nevalida signo en signoĉeno\n"
 
 msgid "Sex ((M)ale, (F)emale or space): "
 msgstr ""
@@ -1394,7 +1399,7 @@ msgstr "%s: nevalida dosiero-versio %d\n"
 
 #, fuzzy, c-format
 msgid "key operation not possible: %s\n"
-msgstr "Kreado de þlosiloj malsukcesis: %s\n"
+msgstr "Kreado de ŝlosiloj malsukcesis: %s\n"
 
 #, fuzzy
 msgid "not an OpenPGP card"
@@ -1402,7 +1407,7 @@ msgstr "validaj OpenPGP-datenoj ne trovitaj.\n"
 
 #, fuzzy, c-format
 msgid "error getting current key info: %s\n"
-msgstr "eraro dum skribado de sekreta þlosilaro '%s': %s\n"
+msgstr "eraro dum skribado de sekreta ŝlosilaro '%s': %s\n"
 
 msgid "Replace existing key? (y/N) "
 msgstr ""
@@ -1415,19 +1420,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the Signature key? (%u) "
-msgstr "Kiun þlosilgrandon vi deziras? (1024) "
+msgstr "Kiun ŝlosilgrandon vi deziras? (1024) "
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the Encryption key? (%u) "
-msgstr "Kiun þlosilgrandon vi deziras? (1024) "
+msgstr "Kiun ŝlosilgrandon vi deziras? (1024) "
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the Authentication key? (%u) "
-msgstr "Kiun þlosilgrandon vi deziras? (1024) "
+msgstr "Kiun ŝlosilgrandon vi deziras? (1024) "
 
 #, c-format
 msgid "rounded up to %u bits\n"
-msgstr "rondigita øis %u bitoj\n"
+msgstr "rondigita ĝis %u bitoj\n"
 
 #, c-format
 msgid "%s keysizes must be in the range %u-%u\n"
@@ -1446,7 +1451,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Note: keys are already stored on the card!\n"
-msgstr "ignorita: sekreta þlosilo jam æeestas\n"
+msgstr "ignorita: sekreta ŝlosilo jam ĉeestas\n"
 
 msgid "Replace existing keys? (y/N) "
 msgstr ""
@@ -1460,15 +1465,15 @@ msgstr ""
 
 #, fuzzy
 msgid "Please select the type of key to generate:\n"
-msgstr "Bonvolu elekti, kian þlosilon vi deziras:\n"
+msgstr "Bonvolu elekti, kian ŝlosilon vi deziras:\n"
 
 #, fuzzy
 msgid "   (1) Signature key\n"
-msgstr "Æi tiu þlosilo eksvalidiøos je %s.\n"
+msgstr "Ĉi tiu ŝlosilo eksvalidiĝos je %s.\n"
 
 #, fuzzy
 msgid "   (2) Encryption key\n"
-msgstr "   (%d) RSA (nur æifri)\n"
+msgstr "   (%d) RSA (nur ĉifri)\n"
 
 msgid "   (3) Authentication key\n"
 msgstr ""
@@ -1487,28 +1492,28 @@ msgstr "aktualigo malsukcesis: %s\n"
 #, fuzzy
 #| msgid "This command is not allowed while in %s mode.\n"
 msgid "This command is not supported by this card\n"
-msgstr "Tiu komando ne eblas en la reøimo %s.\n"
+msgstr "Tiu komando ne eblas en la reĝimo %s.\n"
 
 #, fuzzy
 msgid "Note: This command destroys all keys stored on the card!\n"
-msgstr "ignorita: sekreta þlosilo jam æeestas\n"
+msgstr "ignorita: sekreta ŝlosilo jam ĉeestas\n"
 
 #, fuzzy
 msgid "Continue? (y/N) "
-msgstr "Æu vere subskribi? "
+msgstr "Ĉu vere subskribi? "
 
 msgid "Really do a factory reset? (enter \"yes\") "
 msgstr ""
 
 msgid "quit this menu"
-msgstr "forlasi æi tiun menuon"
+msgstr "forlasi ĉi tiun menuon"
 
 #, fuzzy
 msgid "show admin commands"
 msgstr "malkongruaj komandoj\n"
 
 msgid "show this help"
-msgstr "montri æi tiun helpon"
+msgstr "montri ĉi tiun helpon"
 
 #, fuzzy
 msgid "list all available data"
@@ -1525,11 +1530,11 @@ msgstr ""
 
 #, fuzzy
 msgid "change the login name"
-msgstr "þanøi la daton de eksvalidiøo"
+msgstr "ŝanĝi la daton de eksvalidiĝo"
 
 #, fuzzy
 msgid "change the language preferences"
-msgstr "þanøi la posedantofidon"
+msgstr "ŝanĝi la posedantofidon"
 
 msgid "change card holder's sex"
 msgstr ""
@@ -1543,7 +1548,7 @@ msgstr ""
 
 #, fuzzy
 msgid "generate new keys"
-msgstr "krei novan þlosilparon"
+msgstr "krei novan ŝlosilparon"
 
 msgid "menu to change or unblock the PIN"
 msgstr ""
@@ -1570,13 +1575,13 @@ msgstr "malkongruaj komandoj\n"
 
 #, fuzzy
 msgid "Admin commands are not allowed\n"
-msgstr "skribas sekretan þlosilon al '%s'\n"
+msgstr "skribas sekretan ŝlosilon al '%s'\n"
 
 msgid "Invalid command  (try \"help\")\n"
 msgstr "Nevalida komando (provu per \"helpo\")\n"
 
 msgid "--output doesn't work for this command\n"
-msgstr "--output ne funkcias por æi tiu komando\n"
+msgstr "--output ne funkcias por ĉi tiu komando\n"
 
 #, fuzzy, c-format
 #| msgid "can't open `%s'\n"
@@ -1585,37 +1590,37 @@ msgstr "ne povas malfermi '%s'\n"
 
 #, fuzzy, c-format
 msgid "key \"%s\" not found: %s\n"
-msgstr "þlosilo '%s' ne trovita: %s\n"
+msgstr "ŝlosilo '%s' ne trovita: %s\n"
 
 #, c-format
 msgid "error reading keyblock: %s\n"
-msgstr "eraro dum legado de þlosilbloko: %s\n"
+msgstr "eraro dum legado de ŝlosilbloko: %s\n"
 
 #, fuzzy, c-format
 msgid "key \"%s\" not found\n"
-msgstr "þlosilo '%s' ne trovita: %s\n"
+msgstr "ŝlosilo '%s' ne trovita: %s\n"
 
 msgid "(unless you specify the key by fingerprint)\n"
 msgstr ""
 
 #, fuzzy
 msgid "can't do this in batch mode without \"--yes\"\n"
-msgstr "ne povas fari tion en neinteraga reøimo sen \"--yes\"\n"
+msgstr "ne povas fari tion en neinteraga reĝimo sen \"--yes\"\n"
 
 #, fuzzy
 msgid "Delete this key from the keyring? (y/N) "
-msgstr "Æu forviþi æi tiun þlosilon de la þlosilaro? "
+msgstr "Ĉu forviŝi ĉi tiun ŝlosilon de la ŝlosilaro? "
 
 #, fuzzy
 msgid "This is a secret key! - really delete? (y/N) "
-msgstr "Tio estas sekreta þlosilo! Æu vere forviþi øin? "
+msgstr "Tio estas sekreta ŝlosilo! Ĉu vere forviŝi ĝin? "
 
 #, fuzzy, c-format
 msgid "deleting secret %s failed: %s\n"
-msgstr "forviþo de þlosilbloko malsukcesis: %s\n"
+msgstr "forviŝo de ŝlosilbloko malsukcesis: %s\n"
 
 msgid "key"
-msgstr "þlosilo"
+msgstr "ŝlosilo"
 
 #, fuzzy
 msgid "subkey"
@@ -1623,17 +1628,17 @@ msgstr "al"
 
 #, c-format
 msgid "deleting keyblock failed: %s\n"
-msgstr "forviþo de þlosilbloko malsukcesis: %s\n"
+msgstr "forviŝo de ŝlosilbloko malsukcesis: %s\n"
 
 msgid "ownertrust information cleared\n"
 msgstr ""
 
 #, c-format
 msgid "there is a secret key for public key \"%s\"!\n"
-msgstr "estas sekreta þlosilo por la publika þlosilo \"%s\"!\n"
+msgstr "estas sekreta ŝlosilo por la publika ŝlosilo \"%s\"!\n"
 
 msgid "use option \"--delete-secret-keys\" to delete it first.\n"
-msgstr "uzu la opcion \"--delete-secret-key\" por forviþi øin unue.\n"
+msgstr "uzu la opcion \"--delete-secret-key\" por forviŝi ĝin unue.\n"
 
 #, c-format
 msgid "error creating passphrase: %s\n"
@@ -1664,13 +1669,13 @@ msgstr "legas el '%s'\n"
 #, fuzzy, c-format
 msgid ""
 "WARNING: forcing symmetric cipher %s (%d) violates recipient preferences\n"
-msgstr "NOTO: æifrad-metodo %d ne trovita en preferoj\n"
+msgstr "NOTO: ĉifrad-metodo %d ne trovita en preferoj\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: forcing compression algorithm %s (%d) violates recipient "
 "preferences\n"
-msgstr "NOTO: æifrad-metodo %d ne trovita en preferoj\n"
+msgstr "NOTO: ĉifrad-metodo %d ne trovita en preferoj\n"
 
 #, c-format
 msgid "forcing symmetric cipher %s (%d) violates recipient preferences\n"
@@ -1678,27 +1683,27 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "%s/%s encrypted for: \"%s\"\n"
-msgstr "%s/%s-æifrita por: %s\n"
+msgstr "%s/%s-ĉifrita por: %s\n"
 
 #, fuzzy, c-format
 msgid "you may not use %s while in %s mode\n"
-msgstr "Tiu komando ne eblas en la reøimo %s.\n"
+msgstr "Tiu komando ne eblas en la reĝimo %s.\n"
 
 #, c-format
 msgid "%s encrypted data\n"
-msgstr "%s-æifritaj datenoj\n"
+msgstr "%s-ĉifritaj datenoj\n"
 
 #, c-format
 msgid "encrypted with unknown algorithm %d\n"
-msgstr "æifrita per nekonata metodo %d\n"
+msgstr "ĉifrita per nekonata metodo %d\n"
 
 msgid ""
 "WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
 msgstr ""
-"AVERTO: mesaøo estis æifrita per malforta þlosilo en la simetria æifro.\n"
+"AVERTO: mesaĝo estis ĉifrita per malforta ŝlosilo en la simetria ĉifro.\n"
 
 msgid "problem handling encrypted packet\n"
-msgstr "problemo æe traktado de æifrita paketo\n"
+msgstr "problemo ĉe traktado de ĉifrita paketo\n"
 
 msgid "no remote program execution supported\n"
 msgstr ""
@@ -1755,7 +1760,7 @@ msgstr ""
 
 #, fuzzy
 msgid "remove unusable parts from key during export"
-msgstr "neuzebla sekreta þlosilo"
+msgstr "neuzebla sekreta ŝlosilo"
 
 msgid "remove as much as possible from key during export"
 msgstr ""
@@ -1772,15 +1777,15 @@ msgstr "skribas al '%s'\n"
 
 #, fuzzy, c-format
 msgid "key %s: key material on-card - skipped\n"
-msgstr "þlosilo %08lX: revokatestilo en maløusta loko - ignorita\n"
+msgstr "ŝlosilo %08lX: revokatestilo en malĝusta loko - ignorita\n"
 
 #, fuzzy
 msgid "exporting secret keys not allowed\n"
-msgstr "skribas sekretan þlosilon al '%s'\n"
+msgstr "skribas sekretan ŝlosilon al '%s'\n"
 
 #, fuzzy, c-format
 msgid "key %s: PGP 2.x style key - skipped\n"
-msgstr "þlosilo %08lX: PGP-2.x-stila þlosilo - ignorita\n"
+msgstr "ŝlosilo %08lX: PGP-2.x-stila ŝlosilo - ignorita\n"
 
 msgid "WARNING: nothing exported\n"
 msgstr "AVERTO: nenio estis eksportita\n"
@@ -1809,7 +1814,7 @@ msgstr "eraro dum legado de '%s': %s\n"
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
 msgid "Warning: %s appears in the keyring %d times\n"
-msgstr "eraro dum kreado de þlosilaro '%s': %s\n"
+msgstr "eraro dum kreado de ŝlosilaro '%s': %s\n"
 
 #, fuzzy, c-format
 msgid "automatically retrieved '%s' via %s\n"
@@ -1825,17 +1830,17 @@ msgstr "Fingrospuro:"
 
 #, fuzzy, c-format
 msgid "secret key \"%s\" not found: %s\n"
-msgstr "þlosilo '%s' ne trovita: %s\n"
+msgstr "ŝlosilo '%s' ne trovita: %s\n"
 
 #, fuzzy, c-format
 #| msgid "|NAME|use NAME as default secret key"
 msgid "Warning: not using '%s' as default key: %s\n"
-msgstr "|NOMO|uzi NOMOn kiel la implicitan sekretan þlosilon"
+msgstr "|NOMO|uzi NOMOn kiel la implicitan sekretan ŝlosilon"
 
 #, fuzzy, c-format
 #| msgid "|NAME|use NAME as default secret key"
 msgid "using \"%s\" as default secret key for signing\n"
-msgstr "|NOMO|uzi NOMOn kiel la implicitan sekretan þlosilon"
+msgstr "|NOMO|uzi NOMOn kiel la implicitan sekretan ŝlosilon"
 
 #, c-format
 msgid "all values passed to '%s' ignored\n"
@@ -1843,11 +1848,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "Invalid key %s made valid by --allow-non-selfsigned-uid\n"
-msgstr "Nevalida þlosilo %08lX validigita per --always-trust\n"
+msgstr "Nevalida ŝlosilo %08lX validigita per --always-trust\n"
 
 #, fuzzy, c-format
 msgid "using subkey %s instead of primary key %s\n"
-msgstr "uzas flankan þlosilon %08lX anstataý la æefa þlosilo %08lX\n"
+msgstr "uzas flankan ŝlosilon %08lX anstataŭ la ĉefa ŝlosilo %08lX\n"
 
 #, fuzzy
 msgid "make a signature"
@@ -1861,50 +1866,50 @@ msgid "make a detached signature"
 msgstr "fari apartan subskribon"
 
 msgid "encrypt data"
-msgstr "æifri datenojn"
+msgstr "ĉifri datenojn"
 
 msgid "encryption only with symmetric cipher"
-msgstr "æifri nur kun simetria æifro"
+msgstr "ĉifri nur kun simetria ĉifro"
 
 msgid "decrypt data (default)"
-msgstr "malæifri datenojn (implicita elekto)"
+msgstr "malĉifri datenojn (implicita elekto)"
 
 msgid "verify a signature"
 msgstr "kontroli subskribon"
 
 msgid "list keys"
-msgstr "listigi þlosilojn"
+msgstr "listigi ŝlosilojn"
 
 msgid "list keys and signatures"
-msgstr "listigi þlosilojn kaj subskribojn"
+msgstr "listigi ŝlosilojn kaj subskribojn"
 
 #, fuzzy
 msgid "list and check key signatures"
-msgstr "kontroli þlosilsubskribojn"
+msgstr "kontroli ŝlosilsubskribojn"
 
 msgid "list keys and fingerprints"
-msgstr "listigi þlosilojn kaj fingroþpurojn"
+msgstr "listigi ŝlosilojn kaj fingroŝpurojn"
 
 msgid "list secret keys"
-msgstr "listigi sekretajn þlosilojn"
+msgstr "listigi sekretajn ŝlosilojn"
 
 msgid "generate a new key pair"
-msgstr "krei novan þlosilparon"
+msgstr "krei novan ŝlosilparon"
 
 #, fuzzy
 #| msgid "generate a new key pair"
 msgid "quickly generate a new key pair"
-msgstr "krei novan þlosilparon"
+msgstr "krei novan ŝlosilparon"
 
 #, fuzzy
 #| msgid "generate a new key pair"
 msgid "quickly add a new user-id"
-msgstr "krei novan þlosilparon"
+msgstr "krei novan ŝlosilparon"
 
 #, fuzzy
 #| msgid "generate a new key pair"
 msgid "quickly revoke a user-id"
-msgstr "krei novan þlosilparon"
+msgstr "krei novan ŝlosilparon"
 
 msgid "full featured key pair generation"
 msgstr ""
@@ -1913,51 +1918,51 @@ msgid "generate a revocation certificate"
 msgstr "krei revokatestilon"
 
 msgid "remove keys from the public keyring"
-msgstr "forigi þlosilojn de la publika þlosilaro"
+msgstr "forigi ŝlosilojn de la publika ŝlosilaro"
 
 msgid "remove keys from the secret keyring"
-msgstr "forigi þlosilojn de la sekreta þlosilaro"
+msgstr "forigi ŝlosilojn de la sekreta ŝlosilaro"
 
 #, fuzzy
 #| msgid "sign a key"
 msgid "quickly sign a key"
-msgstr "subskribi þlosilon"
+msgstr "subskribi ŝlosilon"
 
 #, fuzzy
 #| msgid "sign a key locally"
 msgid "quickly sign a key locally"
-msgstr "subskribi þlosilon loke"
+msgstr "subskribi ŝlosilon loke"
 
 msgid "sign a key"
-msgstr "subskribi þlosilon"
+msgstr "subskribi ŝlosilon"
 
 msgid "sign a key locally"
-msgstr "subskribi þlosilon loke"
+msgstr "subskribi ŝlosilon loke"
 
 msgid "sign or edit a key"
-msgstr "subskribi aý redakti þlosilon"
+msgstr "subskribi aŭ redakti ŝlosilon"
 
 #, fuzzy
 msgid "change a passphrase"
-msgstr "þanøi la pasfrazon"
+msgstr "ŝanĝi la pasfrazon"
 
 msgid "export keys"
-msgstr "eksporti þlosilojn"
+msgstr "eksporti ŝlosilojn"
 
 msgid "export keys to a keyserver"
-msgstr "eksporti þlosilojn al þlosilservilo"
+msgstr "eksporti ŝlosilojn al ŝlosilservilo"
 
 msgid "import keys from a keyserver"
-msgstr "importi þlosilojn de þlosilservilo"
+msgstr "importi ŝlosilojn de ŝlosilservilo"
 
 msgid "search for keys on a keyserver"
-msgstr "seræi þlosilojn æe þlosilservilo"
+msgstr "serĉi ŝlosilojn ĉe ŝlosilservilo"
 
 msgid "update all keys from a keyserver"
-msgstr "aktualigi æiujn þlosilojn de þlosilservilo"
+msgstr "aktualigi ĉiujn ŝlosilojn de ŝlosilservilo"
 
 msgid "import/merge keys"
-msgstr "importi/kunfandi þlosilojn"
+msgstr "importi/kunfandi ŝlosilojn"
 
 msgid "print the card status"
 msgstr ""
@@ -1973,7 +1978,7 @@ msgstr "aktualigi la fido-datenaron"
 
 #, fuzzy
 msgid "print message digests"
-msgstr "|metodo [dosieroj]|presi mesaøo-kompendiojn"
+msgstr "|metodo [dosieroj]|presi mesaĝo-kompendiojn"
 
 msgid "run in server mode"
 msgstr ""
@@ -1986,25 +1991,25 @@ msgstr "krei eligon en askia kiraso"
 
 #, fuzzy
 msgid "|USER-ID|encrypt for USER-ID"
-msgstr "|NOMO|æifri por NOMO"
+msgstr "|NOMO|ĉifri por NOMO"
 
 #, fuzzy
 msgid "|USER-ID|use USER-ID to sign or decrypt"
-msgstr "uzi æi tiun uzantidentigilon por subskribi aý malæifri"
+msgstr "uzi ĉi tiun uzantidentigilon por subskribi aŭ malĉifri"
 
 #, fuzzy
 msgid "|N|set compress level to N (0 disables)"
 msgstr "|N|difini densig-nivelon N (0=nenia)"
 
 msgid "use canonical text mode"
-msgstr "uzi tekstan reøimon"
+msgstr "uzi tekstan reĝimon"
 
 #, fuzzy
 msgid "|FILE|write output to FILE"
 msgstr "|DOSIERO|legi aldonan bibliotekon DOSIERO"
 
 msgid "do not make any changes"
-msgstr "fari neniajn þanøojn"
+msgstr "fari neniajn ŝanĝojn"
 
 msgid "prompt before overwriting"
 msgstr ""
@@ -2017,7 +2022,7 @@ msgid ""
 "(See the man page for a complete listing of all commands and options)\n"
 msgstr ""
 "@\n"
-"(Vidu la manpaøon por kompleta listo de æiuj komandoj kaj opcioj)\n"
+"(Vidu la manpaĝon por kompleta listo de ĉiuj komandoj kaj opcioj)\n"
 
 msgid ""
 "@\n"
@@ -2032,11 +2037,11 @@ msgstr ""
 "@\n"
 "Ekzemploj:\n"
 "\n"
-" -se -r Bob [dosiero]       subskribi kaj æifri por uzanto Bob\n"
+" -se -r Bob [dosiero]       subskribi kaj ĉifri por uzanto Bob\n"
 " --clearsign [dosiero]      fari klartekstan subskribon\n"
 " --detach-sign [dosiero]    fari apartan subskribon\n"
-" --list-keys [nomoj]        montri þlosilojn\n"
-" --fingerprint [nomoj]      montri fingroþpurojn\n"
+" --list-keys [nomoj]        montri ŝlosilojn\n"
+" --fingerprint [nomoj]      montri fingroŝpurojn\n"
 
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
@@ -2054,7 +2059,7 @@ msgid ""
 "Default operation depends on the input data\n"
 msgstr ""
 "Sintakso: gpg [opcioj] [dosieroj]\n"
-"subskribi, kontroli, æifri aý malæifri\n"
+"subskribi, kontroli, ĉifri aŭ malĉifri\n"
 "implicita operacio dependas de la enigataj datenoj\n"
 
 msgid ""
@@ -2147,14 +2152,14 @@ msgstr ""
 
 #, fuzzy
 msgid "show key usage information during key listings"
-msgstr "Mankas responda subskribo en sekreta þlosilaro\n"
+msgstr "Mankas responda subskribo en sekreta ŝlosilaro\n"
 
 msgid "show policy URLs during signature listings"
 msgstr ""
 
 #, fuzzy
 msgid "show all notations during signature listings"
-msgstr "Mankas responda subskribo en sekreta þlosilaro\n"
+msgstr "Mankas responda subskribo en sekreta ŝlosilaro\n"
 
 msgid "show IETF standard notations during signature listings"
 msgstr ""
@@ -2177,15 +2182,15 @@ msgstr ""
 
 #, fuzzy
 msgid "show the keyring name in key listings"
-msgstr "montri, en kiu þlosilaro estas listigita þlosilo"
+msgstr "montri, en kiu ŝlosilaro estas listigita ŝlosilo"
 
 #, fuzzy
 msgid "show expiration dates during signature listings"
-msgstr "Mankas responda subskribo en sekreta þlosilaro\n"
+msgstr "Mankas responda subskribo en sekreta ŝlosilaro\n"
 
-#, fuzzy
-msgid "available TOFU policies:\n"
-msgstr "malþalti þlosilon"
+#, fuzzy, c-format
+msgid "valid values for option '%s':\n"
+msgstr "nevalida kiraso"
 
 #, fuzzy, c-format
 msgid "unknown TOFU policy '%s'\n"
@@ -2195,6 +2200,10 @@ msgid "(use \"help\" to list choices)\n"
 msgstr ""
 
 #, fuzzy, c-format
+msgid "invalid value for option '%s'\n"
+msgstr "nevalida kiraso"
+
+#, fuzzy, c-format
 msgid "Note: old default options file '%s' ignored\n"
 msgstr "NOTO: mankas implicita opcio-dosiero '%s'\n"
 
@@ -2221,7 +2230,7 @@ msgstr "%s ne estas valida signaro\n"
 
 #, fuzzy
 msgid "could not parse keyserver URL\n"
-msgstr "ne povis analizi URI de þlosilservilo\n"
+msgstr "ne povis analizi URI de ŝlosilservilo\n"
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid keyserver options\n"
@@ -2229,7 +2238,7 @@ msgstr "AVERTO: '%s' estas malplena dosiero\n"
 
 #, fuzzy
 msgid "invalid keyserver options\n"
-msgstr "nevalida þlosilaro"
+msgstr "nevalida ŝlosilaro"
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid import options\n"
@@ -2249,7 +2258,7 @@ msgstr "AVERTO: '%s' estas malplena dosiero\n"
 
 #, fuzzy
 msgid "invalid export options\n"
-msgstr "nevalida þlosilaro"
+msgstr "nevalida ŝlosilaro"
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid list options\n"
@@ -2302,7 +2311,7 @@ msgstr "AVERTO: '%s' estas malplena dosiero\n"
 
 #, fuzzy
 msgid "invalid verify options\n"
-msgstr "nevalida þlosilaro"
+msgstr "nevalida ŝlosilaro"
 
 #, c-format
 msgid "unable to set exec-path to %s\n"
@@ -2335,17 +2344,17 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "will not run with insecure memory due to %s\n"
-msgstr "skribas sekretan þlosilon al '%s'\n"
+msgstr "skribas sekretan ŝlosilon al '%s'\n"
 
 msgid "selected cipher algorithm is invalid\n"
-msgstr "elektita æifrad-metodo ne validas\n"
+msgstr "elektita ĉifrad-metodo ne validas\n"
 
 msgid "selected digest algorithm is invalid\n"
 msgstr "elektita kompendi-metodo ne validas\n"
 
 #, fuzzy
 msgid "selected compression algorithm is invalid\n"
-msgstr "elektita æifrad-metodo ne validas\n"
+msgstr "elektita ĉifrad-metodo ne validas\n"
 
 #, fuzzy
 msgid "selected certification digest algorithm is invalid\n"
@@ -2363,19 +2372,19 @@ msgstr "max-cert-depth devas esti inter 1 kaj 255\n"
 
 #, fuzzy
 msgid "invalid default-cert-level; must be 0, 1, 2, or 3\n"
-msgstr "nevalida default-check-level; devas esti 0, 1, 2 aý 3\n"
+msgstr "nevalida default-check-level; devas esti 0, 1, 2 aŭ 3\n"
 
 #, fuzzy
 msgid "invalid min-cert-level; must be 1, 2, or 3\n"
-msgstr "nevalida default-check-level; devas esti 0, 1, 2 aý 3\n"
+msgstr "nevalida default-check-level; devas esti 0, 1, 2 aŭ 3\n"
 
 #, fuzzy
 #| msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
 msgid "Note: simple S2K mode (0) is strongly discouraged\n"
-msgstr "NOTO: simpla S2K-reøimo (0) estas forte malrekomendata\n"
+msgstr "NOTO: simpla S2K-reĝimo (0) estas forte malrekomendata\n"
 
 msgid "invalid S2K mode; must be 0, 1 or 3\n"
-msgstr "nevalida S2K-reøimo; devas esti 0, 1 aý 3\n"
+msgstr "nevalida S2K-reĝimo; devas esti 0, 1 aŭ 3\n"
 
 #, fuzzy
 msgid "invalid default preferences\n"
@@ -2399,15 +2408,15 @@ msgstr "%s ne havas sencon kun %s!\n"
 
 #, fuzzy, c-format
 msgid "you may not use cipher algorithm '%s' while in %s mode\n"
-msgstr "Tiu komando ne eblas en la reøimo %s.\n"
+msgstr "Tiu komando ne eblas en la reĝimo %s.\n"
 
 #, fuzzy, c-format
 msgid "you may not use digest algorithm '%s' while in %s mode\n"
-msgstr "Tiu komando ne eblas en la reøimo %s.\n"
+msgstr "Tiu komando ne eblas en la reĝimo %s.\n"
 
 #, fuzzy, c-format
 msgid "you may not use compression algorithm '%s' while in %s mode\n"
-msgstr "Tiu komando ne eblas en la reøimo %s.\n"
+msgstr "Tiu komando ne eblas en la reĝimo %s.\n"
 
 #, c-format
 msgid "failed to initialize the TrustDB: %s\n"
@@ -2424,7 +2433,7 @@ msgstr "--symmetric [dosiero]"
 
 #, fuzzy, c-format
 msgid "symmetric encryption of '%s' failed: %s\n"
-msgstr "malæifrado malsukcesis: %s\n"
+msgstr "malĉifrado malsukcesis: %s\n"
 
 msgid "--encrypt [filename]"
 msgstr "--encrypt [dosiero]"
@@ -2438,7 +2447,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "you cannot use --symmetric --encrypt while in %s mode\n"
-msgstr "Tiu komando ne eblas en la reøimo %s.\n"
+msgstr "Tiu komando ne eblas en la reĝimo %s.\n"
 
 msgid "--sign [filename]"
 msgstr "--sign [dosiero]"
@@ -2455,7 +2464,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "you cannot use --symmetric --sign --encrypt while in %s mode\n"
-msgstr "Tiu komando ne eblas en la reøimo %s.\n"
+msgstr "Tiu komando ne eblas en la reĝimo %s.\n"
 
 msgid "--sign --symmetric [filename]"
 msgstr "--sign --symmetric [dosiero]"
@@ -2481,19 +2490,19 @@ msgstr "--sign-key uzantidentigilo"
 
 #, fuzzy, c-format
 msgid "keyserver send failed: %s\n"
-msgstr "Kreado de þlosiloj malsukcesis: %s\n"
+msgstr "Kreado de ŝlosiloj malsukcesis: %s\n"
 
 #, fuzzy, c-format
 msgid "keyserver receive failed: %s\n"
-msgstr "listigo de sekretaj þlosiloj malsukcesis: %s\n"
+msgstr "listigo de sekretaj ŝlosiloj malsukcesis: %s\n"
 
 #, fuzzy, c-format
 msgid "key export failed: %s\n"
-msgstr "Kreado de þlosiloj malsukcesis: %s\n"
+msgstr "Kreado de ŝlosiloj malsukcesis: %s\n"
 
 #, fuzzy, c-format
 msgid "export as ssh key failed: %s\n"
-msgstr "Kreado de þlosiloj malsukcesis: %s\n"
+msgstr "Kreado de ŝlosiloj malsukcesis: %s\n"
 
 #, fuzzy, c-format
 msgid "keyserver search failed: %s\n"
@@ -2501,7 +2510,7 @@ msgstr "get_dir_record: search_record malsukcesis: %s\n"
 
 #, fuzzy, c-format
 msgid "keyserver refresh failed: %s\n"
-msgstr "listigo de sekretaj þlosiloj malsukcesis: %s\n"
+msgstr "listigo de sekretaj ŝlosiloj malsukcesis: %s\n"
 
 #, c-format
 msgid "dearmoring failed: %s\n"
@@ -2528,7 +2537,7 @@ msgid "[filename]"
 msgstr "[dosiero]"
 
 msgid "Go ahead and type your message ...\n"
-msgstr "Ektajpu vian mesaøon ...\n"
+msgstr "Ektajpu vian mesaĝon ...\n"
 
 msgid "the given certification policy URL is invalid\n"
 msgstr "la donita gvidlinia URL por atestado ne validas\n"
@@ -2542,7 +2551,7 @@ msgstr "la donita gvidlinia URL por subskriboj ne validas\n"
 
 #, fuzzy
 msgid "|FILE|take the keys from the keyring FILE"
-msgstr "Æu forviþi æi tiun þlosilon de la þlosilaro? "
+msgstr "Ĉu forviŝi ĉi tiun ŝlosilon de la ŝlosilaro? "
 
 #, fuzzy
 msgid "make timestamp conflicts only a warning"
@@ -2594,7 +2603,7 @@ msgstr ""
 
 #, fuzzy
 msgid "remove unusable parts from key after import"
-msgstr "neuzebla sekreta þlosilo"
+msgstr "neuzebla sekreta ŝlosilo"
 
 msgid "remove as much as possible from key after import"
 msgstr ""
@@ -2608,7 +2617,7 @@ msgstr "ignoras blokon de speco %d\n"
 
 #, fuzzy, c-format
 msgid "%lu keys processed so far\n"
-msgstr "%lu þlosiloj jam traktitaj\n"
+msgstr "%lu ŝlosiloj jam traktitaj\n"
 
 #, c-format
 msgid "Total number processed: %lu\n"
@@ -2617,11 +2626,11 @@ msgstr "      Nombro traktita entute: %lu\n"
 #, fuzzy, c-format
 #| msgid "      skipped new keys: %lu\n"
 msgid "    skipped PGP-2 keys: %lu\n"
-msgstr "    ignoritaj novaj þlosiloj: %lu\n"
+msgstr "    ignoritaj novaj ŝlosiloj: %lu\n"
 
 #, c-format
 msgid "      skipped new keys: %lu\n"
-msgstr "    ignoritaj novaj þlosiloj: %lu\n"
+msgstr "    ignoritaj novaj ŝlosiloj: %lu\n"
 
 #, c-format
 msgid "          w/o user IDs: %lu\n"
@@ -2633,7 +2642,7 @@ msgstr "                  importitaj: %lu"
 
 #, c-format
 msgid "             unchanged: %lu\n"
-msgstr "                  neþanøitaj: %lu\n"
+msgstr "                  neŝanĝitaj: %lu\n"
 
 #, c-format
 msgid "          new user IDs: %lu\n"
@@ -2641,7 +2650,7 @@ msgstr "      novaj uzantidentigiloj: %lu\n"
 
 #, c-format
 msgid "           new subkeys: %lu\n"
-msgstr "           novaj subþlosiloj: %lu\n"
+msgstr "           novaj subŝlosiloj: %lu\n"
 
 #, c-format
 msgid "        new signatures: %lu\n"
@@ -2649,19 +2658,19 @@ msgstr "            novaj subskriboj: %lu\n"
 
 #, c-format
 msgid "   new key revocations: %lu\n"
-msgstr "         novaj þlosilrevokoj: %lu\n"
+msgstr "         novaj ŝlosilrevokoj: %lu\n"
 
 #, c-format
 msgid "      secret keys read: %lu\n"
-msgstr "   sekretaj þlosiloj legitaj: %lu\n"
+msgstr "   sekretaj ŝlosiloj legitaj: %lu\n"
 
 #, c-format
 msgid "  secret keys imported: %lu\n"
-msgstr "sekretaj þlosiloj importitaj: %lu\n"
+msgstr "sekretaj ŝlosiloj importitaj: %lu\n"
 
 #, c-format
 msgid " secret keys unchanged: %lu\n"
-msgstr "sekretaj þlosiloj neþanøitaj: %lu\n"
+msgstr "sekretaj ŝlosiloj neŝanĝitaj: %lu\n"
 
 #, fuzzy, c-format
 msgid "          not imported: %lu\n"
@@ -2673,7 +2682,7 @@ msgstr "            novaj subskriboj: %lu\n"
 
 #, fuzzy, c-format
 msgid "      user IDs cleaned: %lu\n"
-msgstr "   sekretaj þlosiloj legitaj: %lu\n"
+msgstr "   sekretaj ŝlosiloj legitaj: %lu\n"
 
 #, c-format
 msgid ""
@@ -2705,7 +2714,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "key %s: no user ID\n"
-msgstr "þlosilo %08lX: mankas uzantidentigilo\n"
+msgstr "ŝlosilo %08lX: mankas uzantidentigilo\n"
 
 #, fuzzy, c-format
 msgid "key %s: %s\n"
@@ -2716,104 +2725,104 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "key %s: PKS subkey corruption repaired\n"
-msgstr "þlosilo %08lX: mankas subþlosilo por þlosilbindado\n"
+msgstr "ŝlosilo %08lX: mankas subŝlosilo por ŝlosilbindado\n"
 
 #, fuzzy, c-format
 msgid "key %s: accepted non self-signed user ID \"%s\"\n"
-msgstr "þlosilo %08lX: akceptis ne-mem-subskribitan uzantidentigilon '"
+msgstr "ŝlosilo %08lX: akceptis ne-mem-subskribitan uzantidentigilon '"
 
 #, fuzzy, c-format
 msgid "key %s: no valid user IDs\n"
-msgstr "þlosilo %08lX: mankas valida uzantidentigilo\n"
+msgstr "ŝlosilo %08lX: mankas valida uzantidentigilo\n"
 
 msgid "this may be caused by a missing self-signature\n"
-msgstr "tio povas esti kaýzata de mankanta mem-subskribo\n"
+msgstr "tio povas esti kaŭzata de mankanta mem-subskribo\n"
 
 #, fuzzy, c-format
 msgid "key %s: public key not found: %s\n"
-msgstr "þlosilo %08lX: publika þlosilo ne trovita: %s\n"
+msgstr "ŝlosilo %08lX: publika ŝlosilo ne trovita: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: new key - skipped\n"
-msgstr "þlosilo %08lX: nova þlosilo - ignorita\n"
+msgstr "ŝlosilo %08lX: nova ŝlosilo - ignorita\n"
 
 #, c-format
 msgid "no writable keyring found: %s\n"
-msgstr "neniu skribebla þlosilaro trovita: %s\n"
+msgstr "neniu skribebla ŝlosilaro trovita: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing keyring `%s': %s\n"
 msgid "error writing keyring '%s': %s\n"
-msgstr "eraro dum skribado de þlosilaro '%s': %s\n"
+msgstr "eraro dum skribado de ŝlosilaro '%s': %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: public key \"%s\" imported\n"
-msgstr "þlosilo %08lX: publika þlosilo importita\n"
+msgstr "ŝlosilo %08lX: publika ŝlosilo importita\n"
 
 #, fuzzy, c-format
 msgid "key %s: doesn't match our copy\n"
-msgstr "þlosilo %08lX: diferencas de nia kopio\n"
+msgstr "ŝlosilo %08lX: diferencas de nia kopio\n"
 
 #, fuzzy, c-format
 msgid "key %s: can't locate original keyblock: %s\n"
-msgstr "þlosilo %08lX: ne povas trovi originalan þlosilblokon: %s\n"
+msgstr "ŝlosilo %08lX: ne povas trovi originalan ŝlosilblokon: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: can't read original keyblock: %s\n"
-msgstr "þlosilo %08lX: ne povas legi originalan þlosilblokon: %s\n"
+msgstr "ŝlosilo %08lX: ne povas legi originalan ŝlosilblokon: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" 1 new user ID\n"
-msgstr "þlosilo %08lX: 1 nova uzantidentigilo\n"
+msgstr "ŝlosilo %08lX: 1 nova uzantidentigilo\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d new user IDs\n"
-msgstr "þlosilo %08lX: %d novaj uzantidentigiloj\n"
+msgstr "ŝlosilo %08lX: %d novaj uzantidentigiloj\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" 1 new signature\n"
-msgstr "þlosilo %08lX: 1 nova subskribo\n"
+msgstr "ŝlosilo %08lX: 1 nova subskribo\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d new signatures\n"
-msgstr "þlosilo %08lX: %d novaj subskriboj\n"
+msgstr "ŝlosilo %08lX: %d novaj subskriboj\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" 1 new subkey\n"
-msgstr "þlosilo %08lX: 1 nova subþlosilo\n"
+msgstr "ŝlosilo %08lX: 1 nova subŝlosilo\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d new subkeys\n"
-msgstr "þlosilo %08lX: %d novaj subþlosiloj\n"
+msgstr "ŝlosilo %08lX: %d novaj subŝlosiloj\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d signature cleaned\n"
-msgstr "þlosilo %08lX: %d novaj subskriboj\n"
+msgstr "ŝlosilo %08lX: %d novaj subskriboj\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d signatures cleaned\n"
-msgstr "þlosilo %08lX: %d novaj subskriboj\n"
+msgstr "ŝlosilo %08lX: %d novaj subskriboj\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d user ID cleaned\n"
-msgstr "þlosilo %08lX: %d novaj uzantidentigiloj\n"
+msgstr "ŝlosilo %08lX: %d novaj uzantidentigiloj\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d user IDs cleaned\n"
-msgstr "þlosilo %08lX: %d novaj uzantidentigiloj\n"
+msgstr "ŝlosilo %08lX: %d novaj uzantidentigiloj\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" not changed\n"
-msgstr "þlosilo %08lX: ne þanøita\n"
+msgstr "ŝlosilo %08lX: ne ŝanĝita\n"
 
 #, fuzzy, c-format
 msgid "key %s: secret key imported\n"
-msgstr "þlosilo %08lX: sekreta þlosilo importita\n"
+msgstr "ŝlosilo %08lX: sekreta ŝlosilo importita\n"
 
 #, fuzzy, c-format
 #| msgid "skipped: secret key already present\n"
 msgid "key %s: secret key already exists\n"
-msgstr "ignorita: sekreta þlosilo jam æeestas\n"
+msgstr "ignorita: sekreta ŝlosilo jam ĉeestas\n"
 
 #, fuzzy, c-format
 msgid "key %s: error sending to agent: %s\n"
@@ -2821,15 +2830,15 @@ msgstr "eraro dum sendo al '%s': %s\n"
 
 #, fuzzy, c-format
 msgid "secret key %s: %s\n"
-msgstr "þlosilo '%s' ne trovita: %s\n"
+msgstr "ŝlosilo '%s' ne trovita: %s\n"
 
 #, fuzzy
 msgid "importing secret keys not allowed\n"
-msgstr "skribas sekretan þlosilon al '%s'\n"
+msgstr "skribas sekretan ŝlosilon al '%s'\n"
 
 #, fuzzy, c-format
 msgid "key %s: secret key with invalid cipher %d - skipped\n"
-msgstr "þlosilo %08lX: sekreta þlosilo sen publika þlosilo - ignorita\n"
+msgstr "ŝlosilo %08lX: sekreta ŝlosilo sen publika ŝlosilo - ignorita\n"
 
 #. TRANSLATORS: For smartcard, each private key on
 #. host has a reference (stub) to a smartcard and
@@ -2848,125 +2857,125 @@ msgstr ""
 #, fuzzy, c-format
 msgid "key %s: no public key - can't apply revocation certificate\n"
 msgstr ""
-"þlosilo %08lX: publika þlosilo mankas - ne povas apliki revokatestilon\n"
+"ŝlosilo %08lX: publika ŝlosilo mankas - ne povas apliki revokatestilon\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid revocation certificate: %s - rejected\n"
-msgstr "þlosilo %08lX: nevalida revokatestilo: %s - malakceptita\n"
+msgstr "ŝlosilo %08lX: nevalida revokatestilo: %s - malakceptita\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" revocation certificate imported\n"
-msgstr "þlosilo %08lX: revokatestilo importita\n"
+msgstr "ŝlosilo %08lX: revokatestilo importita\n"
 
 #, fuzzy, c-format
 msgid "key %s: no user ID for signature\n"
-msgstr "þlosilo %08lX: mankas uzantidentigilo por subskribo\n"
+msgstr "ŝlosilo %08lX: mankas uzantidentigilo por subskribo\n"
 
 #, fuzzy, c-format
 msgid "key %s: unsupported public key algorithm on user ID \"%s\"\n"
-msgstr "þlosilo %08lX: nerealigita publikþlosila metodo\n"
+msgstr "ŝlosilo %08lX: nerealigita publikŝlosila metodo\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid self-signature on user ID \"%s\"\n"
-msgstr "þlosilo %08lX: nevalida mem-subskribo\n"
+msgstr "ŝlosilo %08lX: nevalida mem-subskribo\n"
 
 #, fuzzy, c-format
 msgid "key %s: unsupported public key algorithm\n"
-msgstr "þlosilo %08lX: nerealigita publikþlosila metodo\n"
+msgstr "ŝlosilo %08lX: nerealigita publikŝlosila metodo\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid direct key signature\n"
-msgstr "þlosilo %08lX: rekta þlosilsubskribo aldonita\n"
+msgstr "ŝlosilo %08lX: rekta ŝlosilsubskribo aldonita\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for key binding\n"
-msgstr "þlosilo %08lX: mankas subþlosilo por þlosilbindado\n"
+msgstr "ŝlosilo %08lX: mankas subŝlosilo por ŝlosilbindado\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid subkey binding\n"
-msgstr "þlosilo %08lX: nevalida subþlosila bindado\n"
+msgstr "ŝlosilo %08lX: nevalida subŝlosila bindado\n"
 
 #, fuzzy, c-format
 msgid "key %s: removed multiple subkey binding\n"
-msgstr "þlosilo %08lX: nevalida subþlosila bindado\n"
+msgstr "ŝlosilo %08lX: nevalida subŝlosila bindado\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for key revocation\n"
-msgstr "þlosilo %08lX: mankas subþlosilo por þlosilbindado\n"
+msgstr "ŝlosilo %08lX: mankas subŝlosilo por ŝlosilbindado\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid subkey revocation\n"
-msgstr "þlosilo %08lX.%lu: Valida subþlosilrevoko\n"
+msgstr "ŝlosilo %08lX.%lu: Valida subŝlosilrevoko\n"
 
 #, fuzzy, c-format
 msgid "key %s: removed multiple subkey revocation\n"
-msgstr "þlosilo %08lX: nevalida subþlosila bindado\n"
+msgstr "ŝlosilo %08lX: nevalida subŝlosila bindado\n"
 
 #, fuzzy, c-format
 msgid "key %s: skipped user ID \"%s\"\n"
-msgstr "þlosilo %08lX: ignoris uzantidentigilon '"
+msgstr "ŝlosilo %08lX: ignoris uzantidentigilon '"
 
 #, fuzzy, c-format
 msgid "key %s: skipped subkey\n"
-msgstr "þlosilo %08lX: ignoris subþlosilon\n"
+msgstr "ŝlosilo %08lX: ignoris subŝlosilon\n"
 
 #, fuzzy, c-format
 msgid "key %s: non exportable signature (class 0x%02X) - skipped\n"
-msgstr "þlosilo %08lX: neeksportebla subskribo (klaso %02x) - ignorita\n"
+msgstr "ŝlosilo %08lX: neeksportebla subskribo (klaso %02x) - ignorita\n"
 
 #, fuzzy, c-format
 msgid "key %s: revocation certificate at wrong place - skipped\n"
-msgstr "þlosilo %08lX: revokatestilo en maløusta loko - ignorita\n"
+msgstr "ŝlosilo %08lX: revokatestilo en malĝusta loko - ignorita\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid revocation certificate: %s - skipped\n"
-msgstr "þlosilo %08lX: nevalida revokatestilo: %s - ignorita\n"
+msgstr "ŝlosilo %08lX: nevalida revokatestilo: %s - ignorita\n"
 
 #, fuzzy, c-format
 msgid "key %s: subkey signature in wrong place - skipped\n"
-msgstr "þlosilo %08lX: revokatestilo en maløusta loko - ignorita\n"
+msgstr "ŝlosilo %08lX: revokatestilo en malĝusta loko - ignorita\n"
 
 #, fuzzy, c-format
 msgid "key %s: unexpected signature class (0x%02X) - skipped\n"
-msgstr "þlosilo %08lX: neeksportebla subskribo (klaso %02x) - ignorita\n"
+msgstr "ŝlosilo %08lX: neeksportebla subskribo (klaso %02x) - ignorita\n"
 
 #, fuzzy, c-format
 msgid "key %s: duplicated user ID detected - merged\n"
-msgstr "þlosilo %08lX: trovis ripetitan uzantidentigilon - kunfandita\n"
+msgstr "ŝlosilo %08lX: trovis ripetitan uzantidentigilon - kunfandita\n"
 
 #, fuzzy, c-format
 msgid "WARNING: key %s may be revoked: fetching revocation key %s\n"
-msgstr "AVERTO: Æi tiu þlosilo estas revokita de sia posedanto!\n"
+msgstr "AVERTO: Ĉi tiu ŝlosilo estas revokita de sia posedanto!\n"
 
 #, fuzzy, c-format
 msgid "WARNING: key %s may be revoked: revocation key %s not present.\n"
-msgstr "AVERTO: Æi tiu þlosilo estas revokita de sia posedanto!\n"
+msgstr "AVERTO: Ĉi tiu ŝlosilo estas revokita de sia posedanto!\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" revocation certificate added\n"
-msgstr "þlosilo %08lX: revokatestilo aldonita\n"
+msgstr "ŝlosilo %08lX: revokatestilo aldonita\n"
 
 #, fuzzy, c-format
 msgid "key %s: direct key signature added\n"
-msgstr "þlosilo %08lX: rekta þlosilsubskribo aldonita\n"
+msgstr "ŝlosilo %08lX: rekta ŝlosilsubskribo aldonita\n"
 
 #, fuzzy, c-format
 msgid "error creating keybox '%s': %s\n"
-msgstr "eraro dum kreado de þlosilaro '%s': %s\n"
+msgstr "eraro dum kreado de ŝlosilaro '%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
 msgid "error creating keyring '%s': %s\n"
-msgstr "eraro dum kreado de þlosilaro '%s': %s\n"
+msgstr "eraro dum kreado de ŝlosilaro '%s': %s\n"
 
 #, fuzzy, c-format
 msgid "keybox '%s' created\n"
-msgstr "þlosilaro '%s' kreita\n"
+msgstr "ŝlosilaro '%s' kreita\n"
 
 #, fuzzy, c-format
 #| msgid "keyring `%s' created\n"
 msgid "keyring '%s' created\n"
-msgstr "þlosilaro '%s' kreita\n"
+msgstr "ŝlosilaro '%s' kreita\n"
 
 #, fuzzy, c-format
 msgid "keyblock resource '%s': %s\n"
@@ -2978,7 +2987,7 @@ msgstr "eraro dum legado de '%s': %s\n"
 
 #, c-format
 msgid "failed to rebuild keyring cache: %s\n"
-msgstr "malsukcesis rekonstrui þlosilaran staplon: %s\n"
+msgstr "malsukcesis rekonstrui ŝlosilaran staplon: %s\n"
 
 msgid "[revocation]"
 msgstr "[revoko]"
@@ -2987,8 +2996,12 @@ msgid "[self-signature]"
 msgstr "[mem-subskribo]"
 
 #, fuzzy, c-format
+msgid "error allocating memory: %s\n"
+msgstr "eraro dum kreado de ŝlosilaro '%s': %s\n"
+
+#, fuzzy, c-format
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
-msgstr "þlosilo %08lX: nerealigita publikþlosila metodo\n"
+msgstr "ŝlosilo %08lX: nerealigita publikŝlosila metodo\n"
 
 #, fuzzy, c-format
 msgid ""
@@ -3013,8 +3026,8 @@ msgstr[1] "Uzantidentigilo \"%s\" estas revokita.\n"
 #| msgid "1 signature not checked due to a missing key\n"
 msgid "%d signature not checked due to a missing key\n"
 msgid_plural "%d signatures not checked due to missing keys\n"
-msgstr[0] "1 subskribo ne kontrolita pro manko de þlosilo\n"
-msgstr[1] "1 subskribo ne kontrolita pro manko de þlosilo\n"
+msgstr[0] "1 subskribo ne kontrolita pro manko de ŝlosilo\n"
+msgstr[1] "1 subskribo ne kontrolita pro manko de ŝlosilo\n"
 
 #, fuzzy, c-format
 #| msgid "%d bad signatures\n"
@@ -3042,8 +3055,8 @@ msgid ""
 "(by looking at passports, checking fingerprints from different sources, "
 "etc.)\n"
 msgstr ""
-"Bonvolu decidi, kiagrade vi fidas al æi tiu uzanto øuste\n"
-"kontroli la þlosilojn de aliaj uzantoj (rigardante pasportojn,\n"
+"Bonvolu decidi, kiagrade vi fidas al ĉi tiu uzanto ĝuste\n"
+"kontroli la ŝlosilojn de aliaj uzantoj (rigardante pasportojn,\n"
 "kontrolante fingrospurojn el diversaj fontoj ...)?\n"
 "\n"
 
@@ -3074,7 +3087,7 @@ msgstr "Uzantidentigilo \"%s\" estas revokita.\n"
 
 #, fuzzy
 msgid "Are you sure you still want to sign it? (y/N) "
-msgstr "Æu vi estas certa, ke vi ankoraý volas subskribi øin?\n"
+msgstr "Ĉu vi estas certa, ke vi ankoraŭ volas subskribi ĝin?\n"
 
 msgid "  Unable to sign.\n"
 msgstr ""
@@ -3093,7 +3106,7 @@ msgstr "AVERTO: '%s' estas malplena dosiero\n"
 
 #, fuzzy
 msgid "Sign it? (y/N) "
-msgstr "Æu vere subskribi? "
+msgstr "Ĉu vere subskribi? "
 
 #, fuzzy, c-format
 msgid ""
@@ -3103,7 +3116,7 @@ msgstr ""
 "Via aktuala subskribo sur \"%s\"\n"
 "estas loka subskribo.\n"
 "\n"
-"Æu vi volas igi øin plena eksportebla subskribo?\n"
+"Ĉu vi volas igi ĝin plena eksportebla subskribo?\n"
 
 #, fuzzy
 msgid "Do you want to promote it to an OpenPGP self-signature? (y/N) "
@@ -3111,7 +3124,7 @@ msgstr ""
 "Via aktuala subskribo sur \"%s\"\n"
 "estas loka subskribo.\n"
 "\n"
-"Æu vi volas igi øin plena eksportebla subskribo?\n"
+"Ĉu vi volas igi ĝin plena eksportebla subskribo?\n"
 
 #, fuzzy, c-format
 msgid ""
@@ -3121,11 +3134,11 @@ msgstr ""
 "Via aktuala subskribo sur \"%s\"\n"
 "estas loka subskribo.\n"
 "\n"
-"Æu vi volas igi øin plena eksportebla subskribo?\n"
+"Ĉu vi volas igi ĝin plena eksportebla subskribo?\n"
 
 #, fuzzy
 msgid "Do you want to issue a new signature to replace the expired one? (y/N) "
-msgstr "Æu vi volas, ke via subskribo eksvalidiøu je la sama tempo? (j/n) "
+msgstr "Ĉu vi volas, ke via subskribo eksvalidiĝu je la sama tempo? (j/n) "
 
 #, fuzzy, c-format
 msgid ""
@@ -3135,7 +3148,7 @@ msgstr ""
 "Via aktuala subskribo sur \"%s\"\n"
 "estas loka subskribo.\n"
 "\n"
-"Æu vi volas igi øin plena eksportebla subskribo?\n"
+"Ĉu vi volas igi ĝin plena eksportebla subskribo?\n"
 
 #, fuzzy
 msgid "Do you want to promote it to a full exportable signature? (y/N) "
@@ -3143,41 +3156,41 @@ msgstr ""
 "Via aktuala subskribo sur \"%s\"\n"
 "estas loka subskribo.\n"
 "\n"
-"Æu vi volas igi øin plena eksportebla subskribo?\n"
+"Ĉu vi volas igi ĝin plena eksportebla subskribo?\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" was already locally signed by key %s\n"
-msgstr "\"%s\" jam estis %ssubskribita per þlosilo %08lX\n"
+msgstr "\"%s\" jam estis %ssubskribita per ŝlosilo %08lX\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" was already signed by key %s\n"
-msgstr "\"%s\" jam estis %ssubskribita per þlosilo %08lX\n"
+msgstr "\"%s\" jam estis %ssubskribita per ŝlosilo %08lX\n"
 
 #, fuzzy
 msgid "Do you want to sign it again anyway? (y/N) "
-msgstr "Æu vi estas certa, ke vi ankoraý volas subskribi øin?\n"
+msgstr "Ĉu vi estas certa, ke vi ankoraŭ volas subskribi ĝin?\n"
 
 #, fuzzy, c-format
 msgid "Nothing to sign with key %s\n"
-msgstr "Nenio por subskribi per þlosilo %08lX\n"
+msgstr "Nenio por subskribi per ŝlosilo %08lX\n"
 
 msgid "This key has expired!"
-msgstr "Æi tiu þlosilo eksvalidiøis!"
+msgstr "Ĉi tiu ŝlosilo eksvalidiĝis!"
 
 #, c-format
 msgid "This key is due to expire on %s.\n"
-msgstr "Æi tiu þlosilo eksvalidiøos je %s.\n"
+msgstr "Ĉi tiu ŝlosilo eksvalidiĝos je %s.\n"
 
 #, fuzzy
 msgid "Do you want your signature to expire at the same time? (Y/n) "
-msgstr "Æu vi volas, ke via subskribo eksvalidiøu je la sama tempo? (j/n) "
+msgstr "Ĉu vi volas, ke via subskribo eksvalidiĝu je la sama tempo? (j/n) "
 
 msgid ""
 "How carefully have you verified the key you are about to sign actually "
 "belongs\n"
 "to the person named above?  If you don't know what to answer, enter \"0\".\n"
 msgstr ""
-"Kiom zorge vi kontrolis, ke la þlosilo, kiun vi subskribos, vere apartenas\n"
+"Kiom zorge vi kontrolis, ke la ŝlosilo, kiun vi subskribos, vere apartenas\n"
 "al la supre nomita persono? Se vi ne scias la respondon, donu \"0\".\n"
 
 #, c-format
@@ -3205,12 +3218,12 @@ msgid ""
 "Are you sure that you want to sign this key with your\n"
 "key \"%s\" (%s)\n"
 msgstr ""
-"Æu vi estas tute certa, ke vi volas subskribi æi tiun þlosilon\n"
-"per via þlosilo: \""
+"Ĉu vi estas tute certa, ke vi volas subskribi ĉi tiun ŝlosilon\n"
+"per via ŝlosilo: \""
 
 #, fuzzy
 msgid "This will be a self-signature.\n"
-msgstr "tio povas esti kaýzata de mankanta mem-subskribo\n"
+msgstr "tio povas esti kaŭzata de mankanta mem-subskribo\n"
 
 #, fuzzy
 msgid "WARNING: the signature will not be marked as non-exportable.\n"
@@ -3240,23 +3253,23 @@ msgstr ""
 msgid "I have not checked this key at all.\n"
 msgstr ""
 "\n"
-"Mi tute ne kontrolis æi tiun þlosilon.\n"
+"Mi tute ne kontrolis ĉi tiun ŝlosilon.\n"
 
 #, fuzzy
 msgid "I have checked this key casually.\n"
 msgstr ""
 "\n"
-"Mi malzorge kontrolis æi tiun þlosilon.\n"
+"Mi malzorge kontrolis ĉi tiun ŝlosilon.\n"
 
 #, fuzzy
 msgid "I have checked this key very carefully.\n"
 msgstr ""
 "\n"
-"Mi tre zorge kontrolis æi tiun þlosilon.\n"
+"Mi tre zorge kontrolis ĉi tiun ŝlosilon.\n"
 
 #, fuzzy
 msgid "Really sign? (y/N) "
-msgstr "Æu vere subskribi? "
+msgstr "Ĉu vere subskribi? "
 
 #, c-format
 msgid "signing failed: %s\n"
@@ -3282,7 +3295,7 @@ msgid "show the keygrip"
 msgstr "Subskribo-notacio: "
 
 msgid "list key and user IDs"
-msgstr "listigi þlosilojn kaj uzantidentigilojn"
+msgstr "listigi ŝlosilojn kaj uzantidentigilojn"
 
 msgid "select user ID N"
 msgstr "elekti uzantidentigilon N"
@@ -3300,7 +3313,7 @@ msgstr ""
 
 #, fuzzy
 msgid "sign selected user IDs locally"
-msgstr "subskribi la þlosilon loke"
+msgstr "subskribi la ŝlosilon loke"
 
 #, fuzzy
 msgid "sign selected user IDs with a trust signature"
@@ -3317,7 +3330,7 @@ msgstr "aldoni foto-identigilon"
 
 #, fuzzy
 msgid "delete selected user IDs"
-msgstr "forviþi uzantidentigilon"
+msgstr "forviŝi uzantidentigilon"
 
 #, fuzzy
 msgid "add a subkey"
@@ -3334,23 +3347,23 @@ msgstr ""
 
 #, fuzzy
 msgid "delete selected subkeys"
-msgstr "forviþi flankan þlosilon"
+msgstr "forviŝi flankan ŝlosilon"
 
 #, fuzzy
 msgid "add a revocation key"
-msgstr "aldoni flankan þlosilon"
+msgstr "aldoni flankan ŝlosilon"
 
 #, fuzzy
 msgid "delete signatures from the selected user IDs"
-msgstr "Æu vere aktualigi la preferojn por la elektitaj uzantidentigiloj? "
+msgstr "Ĉu vere aktualigi la preferojn por la elektitaj uzantidentigiloj? "
 
 #, fuzzy
 msgid "change the expiration date for the key or selected subkeys"
-msgstr "Vi ne povas þanøi la daton de eksvalidiøo de v3-þlosilo\n"
+msgstr "Vi ne povas ŝanĝi la daton de eksvalidiĝo de v3-ŝlosilo\n"
 
 #, fuzzy
 msgid "flag the selected user ID as primary"
-msgstr "marku uzantidentigilon kiel æefan"
+msgstr "marku uzantidentigilon kiel ĉefan"
 
 msgid "list preferences (expert)"
 msgstr "listigi preferojn (spertula)"
@@ -3360,25 +3373,25 @@ msgstr "listigi preferojn (detale)"
 
 #, fuzzy
 msgid "set preference list for the selected user IDs"
-msgstr "Æu vere aktualigi la preferojn por la elektitaj uzantidentigiloj? "
+msgstr "Ĉu vere aktualigi la preferojn por la elektitaj uzantidentigiloj? "
 
 #, fuzzy
 msgid "set the preferred keyserver URL for the selected user IDs"
-msgstr "ne povis analizi URI de þlosilservilo\n"
+msgstr "ne povis analizi URI de ŝlosilservilo\n"
 
 #, fuzzy
 msgid "set a notation for the selected user IDs"
-msgstr "Æu vere aktualigi la preferojn por la elektitaj uzantidentigiloj? "
+msgstr "Ĉu vere aktualigi la preferojn por la elektitaj uzantidentigiloj? "
 
 msgid "change the passphrase"
-msgstr "þanøi la pasfrazon"
+msgstr "ŝanĝi la pasfrazon"
 
 msgid "change the ownertrust"
-msgstr "þanøi la posedantofidon"
+msgstr "ŝanĝi la posedantofidon"
 
 #, fuzzy
 msgid "revoke signatures on the selected user IDs"
-msgstr "Æu vere forigi æiujn elektitajn uzantidentigilojn? "
+msgstr "Ĉu vere forigi ĉiujn elektitajn uzantidentigilojn? "
 
 #, fuzzy
 msgid "revoke selected user IDs"
@@ -3386,15 +3399,15 @@ msgstr "aldoni uzantidentigilon"
 
 #, fuzzy
 msgid "revoke key or selected subkeys"
-msgstr "revoki flankan þlosilon"
+msgstr "revoki flankan ŝlosilon"
 
 #, fuzzy
 msgid "enable key"
-msgstr "þalti þlosilon"
+msgstr "ŝalti ŝlosilon"
 
 #, fuzzy
 msgid "disable key"
-msgstr "malþalti þlosilon"
+msgstr "malŝalti ŝlosilon"
 
 #, fuzzy
 msgid "show selected photo IDs"
@@ -3407,10 +3420,10 @@ msgid "compact unusable user IDs and remove all signatures from key"
 msgstr ""
 
 msgid "Secret key is available.\n"
-msgstr "Sekreta þlosilo estas havebla.\n"
+msgstr "Sekreta ŝlosilo estas havebla.\n"
 
 msgid "Need the secret key to do this.\n"
-msgstr "Bezonas la sekretan þlosilon por fari tion.\n"
+msgstr "Bezonas la sekretan ŝlosilon por fari tion.\n"
 
 msgid ""
 "* The 'sign' command may be prefixed with an 'l' for local signatures "
@@ -3421,15 +3434,15 @@ msgstr ""
 
 #, fuzzy
 msgid "Key is revoked."
-msgstr "Þlosilo estas revokita.\n"
+msgstr "Ŝlosilo estas revokita.\n"
 
 #, fuzzy
 msgid "Really sign all user IDs? (y/N) "
-msgstr "Æu vere subskribi æiujn uzantidentigilojn? "
+msgstr "Ĉu vere subskribi ĉiujn uzantidentigilojn? "
 
 #, fuzzy
 msgid "Really sign all text user IDs? (y/N) "
-msgstr "Æu vere subskribi æiujn uzantidentigilojn? "
+msgstr "Ĉu vere subskribi ĉiujn uzantidentigilojn? "
 
 msgid "Hint: Select the user IDs to sign\n"
 msgstr "Sugesto: Elekti la uzantidentigilojn por subskribi\n"
@@ -3440,35 +3453,35 @@ msgstr "nekonata klaso de subskribo"
 
 #, c-format
 msgid "This command is not allowed while in %s mode.\n"
-msgstr "Tiu komando ne eblas en la reøimo %s.\n"
+msgstr "Tiu komando ne eblas en la reĝimo %s.\n"
 
 msgid "You must select at least one user ID.\n"
-msgstr "Vi devas elekti almenaý unu uzantidentigilon.\n"
+msgstr "Vi devas elekti almenaŭ unu uzantidentigilon.\n"
 
 #, c-format
 msgid "(Use the '%s' command.)\n"
 msgstr ""
 
 msgid "You can't delete the last user ID!\n"
-msgstr "Vi ne povas forviþi la lastan uzantidentigilon!\n"
+msgstr "Vi ne povas forviŝi la lastan uzantidentigilon!\n"
 
 #, fuzzy
 msgid "Really remove all selected user IDs? (y/N) "
-msgstr "Æu vere forigi æiujn elektitajn uzantidentigilojn? "
+msgstr "Ĉu vere forigi ĉiujn elektitajn uzantidentigilojn? "
 
 #, fuzzy
 msgid "Really remove this user ID? (y/N) "
-msgstr "Æu vere forigi æi tiun uzantidentigilon? "
+msgstr "Ĉu vere forigi ĉi tiun uzantidentigilon? "
 
 #. TRANSLATORS: Please take care: This is about
 #. moving the key and not about removing it.
 #, fuzzy
 msgid "Really move the primary key? (y/N) "
-msgstr "Æu vere forigi æi tiun uzantidentigilon? "
+msgstr "Ĉu vere forigi ĉi tiun uzantidentigilon? "
 
 #, fuzzy
 msgid "You must select exactly one key.\n"
-msgstr "Vi devas elekti almenaý unu þlosilon.\n"
+msgstr "Vi devas elekti almenaŭ unu ŝlosilon.\n"
 
 msgid "Command expects a filename argument\n"
 msgstr ""
@@ -3479,38 +3492,38 @@ msgstr "ne povas malfermi '%s': %s\n"
 
 #, fuzzy, c-format
 msgid "Error reading backup key from '%s': %s\n"
-msgstr "eraro dum kreado de þlosilaro '%s': %s\n"
+msgstr "eraro dum kreado de ŝlosilaro '%s': %s\n"
 
 msgid "You must select at least one key.\n"
-msgstr "Vi devas elekti almenaý unu þlosilon.\n"
+msgstr "Vi devas elekti almenaŭ unu ŝlosilon.\n"
 
 #, fuzzy
 msgid "Do you really want to delete the selected keys? (y/N) "
-msgstr "Æu vi vere volas forviþi la elektitajn þlosilojn? "
+msgstr "Ĉu vi vere volas forviŝi la elektitajn ŝlosilojn? "
 
 #, fuzzy
 msgid "Do you really want to delete this key? (y/N) "
-msgstr "Æu vi vere volas forviþi æi tiun þlosilon? "
+msgstr "Ĉu vi vere volas forviŝi ĉi tiun ŝlosilon? "
 
 #, fuzzy
 msgid "Really revoke all selected user IDs? (y/N) "
-msgstr "Æu vere forigi æiujn elektitajn uzantidentigilojn? "
+msgstr "Ĉu vere forigi ĉiujn elektitajn uzantidentigilojn? "
 
 #, fuzzy
 msgid "Really revoke this user ID? (y/N) "
-msgstr "Æu vere forigi æi tiun uzantidentigilon? "
+msgstr "Ĉu vere forigi ĉi tiun uzantidentigilon? "
 
 #, fuzzy
 msgid "Do you really want to revoke the entire key? (y/N) "
-msgstr "Æu vi vere volas revoki æi tiun þlosilon? "
+msgstr "Ĉu vi vere volas revoki ĉi tiun ŝlosilon? "
 
 #, fuzzy
 msgid "Do you really want to revoke the selected subkeys? (y/N) "
-msgstr "Æu vi vere volas revoki la elektitajn þlosilojn? "
+msgstr "Ĉu vi vere volas revoki la elektitajn ŝlosilojn? "
 
 #, fuzzy
 msgid "Do you really want to revoke this subkey? (y/N) "
-msgstr "Æu vi vere volas revoki æi tiun þlosilon? "
+msgstr "Ĉu vi vere volas revoki ĉi tiun ŝlosilon? "
 
 msgid "Owner trust may not be set while using a user provided trust database\n"
 msgstr ""
@@ -3521,31 +3534,31 @@ msgstr "agordi liston de preferoj"
 
 #, fuzzy
 msgid "Really update the preferences for the selected user IDs? (y/N) "
-msgstr "Æu vere aktualigi la preferojn por la elektitaj uzantidentigiloj? "
+msgstr "Ĉu vere aktualigi la preferojn por la elektitaj uzantidentigiloj? "
 
 #, fuzzy
 msgid "Really update the preferences? (y/N) "
-msgstr "Æu vere aktualigi la preferojn? "
+msgstr "Ĉu vere aktualigi la preferojn? "
 
 #, fuzzy
 msgid "Save changes? (y/N) "
-msgstr "Æu skribi þanøojn? "
+msgstr "Ĉu skribi ŝanĝojn? "
 
 #, fuzzy
 msgid "Quit without saving? (y/N) "
-msgstr "Æu fini sen skribi þanøojn? "
+msgstr "Ĉu fini sen skribi ŝanĝojn? "
 
 #, c-format
 msgid "update failed: %s\n"
 msgstr "aktualigo malsukcesis: %s\n"
 
 msgid "Key not changed so no update needed.\n"
-msgstr "Þlosilo ne þanøita, do aktualigo ne necesas.\n"
+msgstr "Ŝlosilo ne ŝanĝita, do aktualigo ne necesas.\n"
 
 #, fuzzy, c-format
 #| msgid "Key generation failed: %s\n"
 msgid "User ID revocation failed: %s\n"
-msgstr "Kreado de þlosiloj malsukcesis: %s\n"
+msgstr "Kreado de ŝlosiloj malsukcesis: %s\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" is not a fingerprint\n"
@@ -3567,7 +3580,7 @@ msgstr "Uzantidentigilo ne ekzistas.\n"
 
 #, fuzzy
 msgid "Nothing to sign.\n"
-msgstr "Nenio por subskribi per þlosilo %08lX\n"
+msgstr "Nenio por subskribi per ŝlosilo %08lX\n"
 
 msgid "Digest: "
 msgstr ""
@@ -3590,11 +3603,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "The following key was revoked on %s by %s key %s\n"
-msgstr "Æi tiu þlosilo estas revokebla per %s þlosilo %s%s\n"
+msgstr "Ĉi tiu ŝlosilo estas revokebla per %s ŝlosilo %s%s\n"
 
 #, fuzzy, c-format
 msgid "This key may be revoked by %s key %s"
-msgstr "Æi tiu þlosilo estas revokebla per %s þlosilo %s%s\n"
+msgstr "Ĉi tiu ŝlosilo estas revokebla per %s ŝlosilo %s%s\n"
 
 #, fuzzy
 msgid "(sensitive)"
@@ -3610,11 +3623,11 @@ msgstr "rev"
 
 #, fuzzy, c-format
 msgid "expired: %s"
-msgstr " [eksvalidiøos: %s]"
+msgstr " [eksvalidiĝos: %s]"
 
 #, fuzzy, c-format
 msgid "expires: %s"
-msgstr " [eksvalidiøos: %s]"
+msgstr " [eksvalidiĝos: %s]"
 
 #, fuzzy, c-format
 msgid "usage: %s"
@@ -3632,7 +3645,7 @@ msgid "validity: %s"
 msgstr ""
 
 msgid "This key has been disabled"
-msgstr "Æi tiu þlosilo estas malþaltita"
+msgstr "Ĉi tiu ŝlosilo estas malŝaltita"
 
 msgid ""
 "Please note that the shown key validity is not necessarily correct\n"
@@ -3658,47 +3671,47 @@ msgstr ""
 #, fuzzy
 #| msgid "You can't change the expiration date of a v3 key\n"
 msgid "You may want to change its expiration date too.\n"
-msgstr "Vi ne povas þanøi la daton de eksvalidiøo de v3-þlosilo\n"
+msgstr "Vi ne povas ŝanĝi la daton de eksvalidiĝo de v3-ŝlosilo\n"
 
 msgid ""
 "WARNING: This is a PGP2-style key.  Adding a photo ID may cause some "
 "versions\n"
 "         of PGP to reject this key.\n"
 msgstr ""
-"AVERTO: Æi tiu estas PGP2-stila þlosilo. Aldono de foto-identigilo eble\n"
-"        kaýzos, ke iuj versioj de PGP malakceptos la þlosilon.\n"
+"AVERTO: Ĉi tiu estas PGP2-stila ŝlosilo. Aldono de foto-identigilo eble\n"
+"        kaŭzos, ke iuj versioj de PGP malakceptos la ŝlosilon.\n"
 
 #, fuzzy
 msgid "Are you sure you still want to add it? (y/N) "
-msgstr "Æu vi estas certa, ke vi ankoraý volas aldoni øin? (j/n) "
+msgstr "Ĉu vi estas certa, ke vi ankoraŭ volas aldoni ĝin? (j/n) "
 
 msgid "You may not add a photo ID to a PGP2-style key.\n"
-msgstr "Ne eblas aldoni foto-identigilon al PGP2-stila þlosilo.\n"
+msgstr "Ne eblas aldoni foto-identigilon al PGP2-stila ŝlosilo.\n"
 
 msgid "Such a user ID already exists on this key!\n"
 msgstr ""
 
 msgid "Delete this good signature? (y/N/q)"
-msgstr "Æu forviþi æi tiun bonan subskribon? (j/N/f)"
+msgstr "Ĉu forviŝi ĉi tiun bonan subskribon? (j/N/f)"
 
 msgid "Delete this invalid signature? (y/N/q)"
-msgstr "Æu forviþi æi tiun nevalidan subskribon? (j/N/f)"
+msgstr "Ĉu forviŝi ĉi tiun nevalidan subskribon? (j/N/f)"
 
 msgid "Delete this unknown signature? (y/N/q)"
-msgstr "Æu forviþi æi tiun nekonatan subskribon? (j/N/f)"
+msgstr "Ĉu forviŝi ĉi tiun nekonatan subskribon? (j/N/f)"
 
 msgid "Really delete this self-signature? (y/N)"
-msgstr "Æu vere forviþi æi tiun mem-subskribon? (j/N)"
+msgstr "Ĉu vere forviŝi ĉi tiun mem-subskribon? (j/N)"
 
 #, fuzzy, c-format
 #| msgid "Deleted %d signature.\n"
 msgid "Deleted %d signature.\n"
 msgid_plural "Deleted %d signatures.\n"
-msgstr[0] "Forviþis %d subskribon.\n"
-msgstr[1] "Forviþis %d subskribon.\n"
+msgstr[0] "Forviŝis %d subskribon.\n"
+msgstr[1] "Forviŝis %d subskribon.\n"
 
 msgid "Nothing deleted.\n"
-msgstr "Nenio estis forviþita.\n"
+msgstr "Nenio estis forviŝita.\n"
 
 msgid "invalid"
 msgstr "nevalida"
@@ -3727,16 +3740,16 @@ msgid ""
 "cause\n"
 "         some versions of PGP to reject this key.\n"
 msgstr ""
-"AVERTO: Æi tiu estas PGP2-stila þlosilo. Aldono de foto-identigilo eble\n"
-"        kaýzos, ke iuj versioj de PGP malakceptos la þlosilon.\n"
+"AVERTO: Ĉi tiu estas PGP2-stila ŝlosilo. Aldono de foto-identigilo eble\n"
+"        kaŭzos, ke iuj versioj de PGP malakceptos la ŝlosilon.\n"
 
 #, fuzzy
 msgid "You may not add a designated revoker to a PGP 2.x-style key.\n"
-msgstr "Ne eblas aldoni foto-identigilon al PGP2-stila þlosilo.\n"
+msgstr "Ne eblas aldoni foto-identigilon al PGP2-stila ŝlosilo.\n"
 
 #, fuzzy
 msgid "Enter the user ID of the designated revoker: "
-msgstr "Donu la þlosilgrandon"
+msgstr "Donu la ŝlosilgrandon"
 
 msgid "cannot appoint a PGP 2.x style key as a designated revoker\n"
 msgstr ""
@@ -3746,7 +3759,7 @@ msgstr ""
 
 #, fuzzy
 msgid "this key has already been designated as a revoker\n"
-msgstr "AVERTO: Æi tiu þlosilo estas revokita de sia posedanto!\n"
+msgstr "AVERTO: Ĉi tiu ŝlosilo estas revokita de sia posedanto!\n"
 
 msgid "WARNING: appointing a key as a designated revoker cannot be undone!\n"
 msgstr ""
@@ -3754,23 +3767,23 @@ msgstr ""
 #, fuzzy
 msgid ""
 "Are you sure you want to appoint this key as a designated revoker? (y/N) "
-msgstr "Æu vi estas certa, ke vi ankoraý volas subskribi øin?\n"
+msgstr "Ĉu vi estas certa, ke vi ankoraŭ volas subskribi ĝin?\n"
 
 #, fuzzy
 msgid ""
 "Are you sure you want to change the expiration time for multiple subkeys? (y/"
 "N) "
-msgstr "Æu vi estas certa, ke vi ankoraý volas subskribi øin?\n"
+msgstr "Ĉu vi estas certa, ke vi ankoraŭ volas subskribi ĝin?\n"
 
 #, fuzzy
 msgid "Changing expiration time for a subkey.\n"
-msgstr "Þanøas la daton de eksvalidiøo de flanka þlosilo.\n"
+msgstr "Ŝanĝas la daton de eksvalidiĝo de flanka ŝlosilo.\n"
 
 msgid "Changing expiration time for the primary key.\n"
-msgstr "Þanøas la daton de eksvalidiøo de la æefa þlosilo.\n"
+msgstr "Ŝanĝas la daton de eksvalidiĝo de la ĉefa ŝlosilo.\n"
 
 msgid "You can't change the expiration date of a v3 key\n"
-msgstr "Vi ne povas þanøi la daton de eksvalidiøo de v3-þlosilo\n"
+msgstr "Vi ne povas ŝanĝi la daton de eksvalidiĝo de v3-ŝlosilo\n"
 
 #, fuzzy, c-format
 msgid "signing subkey %s is already cross-certified\n"
@@ -3785,18 +3798,18 @@ msgstr "Bonvolu elekti precize unu uzantidentigilon.\n"
 
 #, fuzzy, c-format
 msgid "skipping v3 self-signature on user ID \"%s\"\n"
-msgstr "þlosilo %08lX: nevalida mem-subskribo\n"
+msgstr "ŝlosilo %08lX: nevalida mem-subskribo\n"
 
 msgid "Enter your preferred keyserver URL: "
 msgstr ""
 
 #, fuzzy
 msgid "Are you sure you want to replace it? (y/N) "
-msgstr "Æu vi estas certa, ke vi ankoraý volas subskribi øin?\n"
+msgstr "Ĉu vi estas certa, ke vi ankoraŭ volas subskribi ĝin?\n"
 
 #, fuzzy
 msgid "Are you sure you want to delete it? (y/N) "
-msgstr "Æu vi estas certa, ke vi ankoraý volas subskribi øin?\n"
+msgstr "Ĉu vi estas certa, ke vi ankoraŭ volas subskribi ĝin?\n"
 
 #, fuzzy
 msgid "Enter the notation: "
@@ -3804,7 +3817,7 @@ msgstr "Subskribo-notacio: "
 
 #, fuzzy
 msgid "Proceed? (y/N) "
-msgstr "Æu surskribi (j/N)? "
+msgstr "Ĉu surskribi (j/N)? "
 
 #, c-format
 msgid "No user ID with index %d\n"
@@ -3835,15 +3848,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "This signature expired on %s.\n"
-msgstr "Æi tiu þlosilo eksvalidiøos je %s.\n"
+msgstr "Ĉi tiu ŝlosilo eksvalidiĝos je %s.\n"
 
 #, fuzzy
 msgid "Are you sure you still want to revoke it? (y/N) "
-msgstr "Æu vi estas certa, ke vi ankoraý volas aldoni øin? (j/n) "
+msgstr "Ĉu vi estas certa, ke vi ankoraŭ volas aldoni ĝin? (j/n) "
 
 #, fuzzy
 msgid "Create a revocation certificate for this signature? (y/N) "
-msgstr "Æu krei revokatestilon por æi tiu subskribo? (j/N)"
+msgstr "Ĉu krei revokatestilon por ĉi tiu subskribo? (j/N)"
 
 #, fuzzy
 msgid "Not signed by you.\n"
@@ -3855,7 +3868,7 @@ msgstr "Vi subskribis la sekvajn uzantidentigilojn:\n"
 
 #, fuzzy
 msgid " (non-revocable)"
-msgstr "subskribi þlosilon nerevokeble"
+msgstr "subskribi ŝlosilon nerevokeble"
 
 #, fuzzy, c-format
 msgid "revoked by your key %s on %s\n"
@@ -3866,10 +3879,10 @@ msgstr "Vi revokos la sekvajn subskribojn:\n"
 
 #, fuzzy
 msgid "Really create the revocation certificates? (y/N) "
-msgstr "Æu vere krei la revokatestilojn? (j/N)"
+msgstr "Ĉu vere krei la revokatestilojn? (j/N)"
 
 msgid "no secret key\n"
-msgstr "mankas sekreta þlosilo\n"
+msgstr "mankas sekreta ŝlosilo\n"
 
 #, c-format
 msgid "tried to revoke a non-user ID: %s\n"
@@ -3913,7 +3926,7 @@ msgstr "tro da '%c'-preferoj\n"
 
 #, fuzzy, c-format
 msgid "invalid item '%s' in preference string\n"
-msgstr "nevalida signo en signoæeno\n"
+msgstr "nevalida signo en signoĉeno\n"
 
 #, fuzzy
 msgid "writing direct signature\n"
@@ -3923,15 +3936,15 @@ msgid "writing self signature\n"
 msgstr "skribas mem-subskribon\n"
 
 msgid "writing key binding signature\n"
-msgstr "skribas þlosilbindan subskribon\n"
+msgstr "skribas ŝlosilbindan subskribon\n"
 
 #, c-format
 msgid "keysize invalid; using %u bits\n"
-msgstr "þlosilgrando nevalida; uzas %u bitojn\n"
+msgstr "ŝlosilgrando nevalida; uzas %u bitojn\n"
 
 #, c-format
 msgid "keysize rounded up to %u bits\n"
-msgstr "þlosilgrando rondigita øis %u bitoj\n"
+msgstr "ŝlosilgrando rondigita ĝis %u bitoj\n"
 
 msgid ""
 "WARNING: some OpenPGP programs can't handle a DSA key with this digest size\n"
@@ -3946,7 +3959,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Encrypt"
-msgstr "æifri datenojn"
+msgstr "ĉifri datenojn"
 
 msgid "Authenticate"
 msgstr ""
@@ -3977,7 +3990,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "   (%c) Toggle the encrypt capability\n"
-msgstr "   (%d) ElGamal (nur æifri)\n"
+msgstr "   (%d) ElGamal (nur ĉifri)\n"
 
 #, c-format
 msgid "   (%c) Toggle the authenticate capability\n"
@@ -3988,7 +4001,7 @@ msgid "   (%c) Finished\n"
 msgstr ""
 
 msgid "Please select what kind of key you want:\n"
-msgstr "Bonvolu elekti, kian þlosilon vi deziras:\n"
+msgstr "Bonvolu elekti, kian ŝlosilon vi deziras:\n"
 
 #, fuzzy, c-format
 msgid "   (%d) RSA and RSA (default)\n"
@@ -4008,19 +4021,19 @@ msgstr "   (%d) RSA (nur subskribi)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) Elgamal (encrypt only)\n"
-msgstr "   (%d) ElGamal (nur æifri)\n"
+msgstr "   (%d) ElGamal (nur ĉifri)\n"
 
 #, c-format
 msgid "   (%d) RSA (encrypt only)\n"
-msgstr "   (%d) RSA (nur æifri)\n"
+msgstr "   (%d) RSA (nur ĉifri)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) DSA (set your own capabilities)\n"
-msgstr "   (%d) RSA (nur æifri)\n"
+msgstr "   (%d) RSA (nur ĉifri)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) RSA (set your own capabilities)\n"
-msgstr "   (%d) RSA (nur æifri)\n"
+msgstr "   (%d) RSA (nur ĉifri)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) ECC and ECC\n"
@@ -4033,16 +4046,16 @@ msgstr "   (%d) DSA (nur subskribi)\n"
 
 #, fuzzy, c-format
 msgid "  (%d) ECC (set your own capabilities)\n"
-msgstr "   (%d) RSA (nur æifri)\n"
+msgstr "   (%d) RSA (nur ĉifri)\n"
 
 #, fuzzy, c-format
 #| msgid "   (%d) RSA (encrypt only)\n"
 msgid "  (%d) ECC (encrypt only)\n"
-msgstr "   (%d) RSA (nur æifri)\n"
+msgstr "   (%d) RSA (nur ĉifri)\n"
 
 #, fuzzy, c-format
 msgid "  (%d) Existing key\n"
-msgstr "   (%d) RSA (nur æifri)\n"
+msgstr "   (%d) RSA (nur ĉifri)\n"
 
 #, fuzzy
 msgid "Enter the keygrip: "
@@ -4058,7 +4071,7 @@ msgstr "Mankas uzantidentigilo kun indekso %d\n"
 #, fuzzy, c-format
 #| msgid "rounded up to %u bits\n"
 msgid "rounded to %u bits\n"
-msgstr "rondigita øis %u bitoj\n"
+msgstr "rondigita ĝis %u bitoj\n"
 
 #, c-format
 msgid "%s keys may be between %u and %u bits long.\n"
@@ -4066,20 +4079,20 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the subkey? (%u) "
-msgstr "Kiun þlosilgrandon vi deziras? (1024) "
+msgstr "Kiun ŝlosilgrandon vi deziras? (1024) "
 
 #, fuzzy, c-format
 msgid "What keysize do you want? (%u) "
-msgstr "Kiun þlosilgrandon vi deziras? (1024) "
+msgstr "Kiun ŝlosilgrandon vi deziras? (1024) "
 
 #, c-format
 msgid "Requested keysize is %u bits\n"
-msgstr "Petita þlosilgrando estas %u bitoj\n"
+msgstr "Petita ŝlosilgrando estas %u bitoj\n"
 
 #, fuzzy
 #| msgid "Please select what kind of key you want:\n"
 msgid "Please select which elliptic curve you want:\n"
-msgstr "Bonvolu elekti, kian þlosilon vi deziras:\n"
+msgstr "Bonvolu elekti, kian ŝlosilon vi deziras:\n"
 
 msgid ""
 "Please specify how long the key should be valid.\n"
@@ -4089,12 +4102,12 @@ msgid ""
 "      <n>m = key expires in n months\n"
 "      <n>y = key expires in n years\n"
 msgstr ""
-"Bonvolu specifi, kiom longe la þlosilo validu.\n"
-"         0 = þlosilo neniam eksvalidiøos\n"
-"      <n>  = þlosilo eksvalidiøos post n tagoj\n"
-"      <n>w = þlosilo eksvalidiøos post n semajnoj\n"
-"      <n>m = þlosilo eksvalidiøos post n monatoj\n"
-"      <n>y = þlosilo eksvalidiøos post n jaroj\n"
+"Bonvolu specifi, kiom longe la ŝlosilo validu.\n"
+"         0 = ŝlosilo neniam eksvalidiĝos\n"
+"      <n>  = ŝlosilo eksvalidiĝos post n tagoj\n"
+"      <n>w = ŝlosilo eksvalidiĝos post n semajnoj\n"
+"      <n>m = ŝlosilo eksvalidiĝos post n monatoj\n"
+"      <n>y = ŝlosilo eksvalidiĝos post n jaroj\n"
 
 msgid ""
 "Please specify how long the signature should be valid.\n"
@@ -4104,49 +4117,49 @@ msgid ""
 "      <n>m = signature expires in n months\n"
 "      <n>y = signature expires in n years\n"
 msgstr ""
-"Bonvolu specifi, kiom longe la þlosilo validu.\n"
-"         0 = þlosilo neniam eksvalidiøos\n"
-"      <n>  = þlosilo eksvalidiøos post n tagoj\n"
-"      <n>w = þlosilo eksvalidiøos post n semajnoj\n"
-"      <n>m = þlosilo eksvalidiøos post n monatoj\n"
-"      <n>y = þlosilo eksvalidiøos post n jaroj\n"
+"Bonvolu specifi, kiom longe la ŝlosilo validu.\n"
+"         0 = ŝlosilo neniam eksvalidiĝos\n"
+"      <n>  = ŝlosilo eksvalidiĝos post n tagoj\n"
+"      <n>w = ŝlosilo eksvalidiĝos post n semajnoj\n"
+"      <n>m = ŝlosilo eksvalidiĝos post n monatoj\n"
+"      <n>y = ŝlosilo eksvalidiĝos post n jaroj\n"
 
 msgid "Key is valid for? (0) "
-msgstr "Þlosilo validu ...? (0) "
+msgstr "Ŝlosilo validu ...? (0) "
 
 #, fuzzy, c-format
 msgid "Signature is valid for? (%s) "
-msgstr "Þlosilo validu por ...? (0) "
+msgstr "Ŝlosilo validu por ...? (0) "
 
 msgid "invalid value\n"
 msgstr "nevalida valoro\n"
 
 #, fuzzy
 msgid "Key does not expire at all\n"
-msgstr "%s neniam eksvalidiøos\n"
+msgstr "%s neniam eksvalidiĝos\n"
 
 #, fuzzy
 msgid "Signature does not expire at all\n"
-msgstr "%s neniam eksvalidiøos\n"
+msgstr "%s neniam eksvalidiĝos\n"
 
 #, fuzzy, c-format
 msgid "Key expires at %s\n"
-msgstr "%s eksvalidiøos je %s\n"
+msgstr "%s eksvalidiĝos je %s\n"
 
 #, fuzzy, c-format
 msgid "Signature expires at %s\n"
-msgstr "Æi tiu þlosilo eksvalidiøos je %s.\n"
+msgstr "Ĉi tiu ŝlosilo eksvalidiĝos je %s.\n"
 
 msgid ""
 "Your system can't display dates beyond 2038.\n"
 "However, it will be correctly handled up to 2106.\n"
 msgstr ""
 "Via sistemo ne povas montri datojn post 2038.\n"
-"Tamen, øi estos øuste traktata øis 2106.\n"
+"Tamen, ĝi estos ĝuste traktata ĝis 2106.\n"
 
 #, fuzzy
 msgid "Is this correct? (y/N) "
-msgstr "Æu tio estas øusta (j/n)? "
+msgstr "Ĉu tio estas ĝusta (j/n)? "
 
 msgid ""
 "\n"
@@ -4168,7 +4181,7 @@ msgid ""
 "\n"
 msgstr ""
 "\n"
-"Vi bezonas uzantidentigilon por identigi vian þlosilon; la programo\n"
+"Vi bezonas uzantidentigilon por identigi vian ŝlosilon; la programo\n"
 "konstruas la uzantidentigilon el Vera Nomo, Komento kaj Retadreso, jene:\n"
 "    \"Heinrich Heine (la poeto) <heinrichh@duesseldorf.de>\"\n"
 "\n"
@@ -4184,10 +4197,10 @@ msgid "The characters '%s' and '%s' may not appear in name\n"
 msgstr ""
 
 msgid "Name may not start with a digit\n"
-msgstr "Nomo ne povas komenciøi per cifero\n"
+msgstr "Nomo ne povas komenciĝi per cifero\n"
 
 msgid "Name must be at least 5 characters long\n"
-msgstr "Nomo devas havi almenaý 5 signojn\n"
+msgstr "Nomo devas havi almenaŭ 5 signojn\n"
 
 msgid "Email address: "
 msgstr "Retadreso: "
@@ -4212,12 +4225,12 @@ msgid ""
 "    \"%s\"\n"
 "\n"
 msgstr ""
-"Vi elektis æi tiun uzantidentigilon:\n"
+"Vi elektis ĉi tiun uzantidentigilon:\n"
 "    \"%s\"\n"
 "\n"
 
 msgid "Please don't put the email address into the real name or the comment\n"
-msgstr "Bonvolu ne meti la retadreson en la veran nomon aý la komenton\n"
+msgstr "Bonvolu ne meti la retadreson en la veran nomon aŭ la komenton\n"
 
 #. TRANSLATORS: These are the allowed answers in
 #. lower and uppercase.  Below you will find the matching
@@ -4234,20 +4247,20 @@ msgid "NnCcEeOoQq"
 msgstr "NnKkAaBbFf"
 
 msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
-msgstr "Þanøu (N)omon, (K)omenton, (A)adreson, aý (F)ini? "
+msgstr "Ŝanĝu (N)omon, (K)omenton, (A)adreson, aŭ (F)ini? "
 
 msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
-msgstr "Þanøu (N)omon, (K)omenton, (A)adreson, aý (B)one/(F)ini? "
+msgstr "Ŝanĝu (N)omon, (K)omenton, (A)adreson, aŭ (B)one/(F)ini? "
 
 #, fuzzy
 #| msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
 msgid "Change (N)ame, (E)mail, or (Q)uit? "
-msgstr "Þanøu (N)omon, (K)omenton, (A)adreson, aý (F)ini? "
+msgstr "Ŝanĝu (N)omon, (K)omenton, (A)adreson, aŭ (F)ini? "
 
 #, fuzzy
 #| msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
 msgid "Change (N)ame, (E)mail, or (O)kay/(Q)uit? "
-msgstr "Þanøu (N)omon, (K)omenton, (A)adreson, aý (B)one/(F)ini? "
+msgstr "Ŝanĝu (N)omon, (K)omenton, (A)adreson, aŭ (B)one/(F)ini? "
 
 msgid "Please correct the error first\n"
 msgstr "Bonvolu korekti la eraron unue\n"
@@ -4259,13 +4272,13 @@ msgid ""
 "generator a better chance to gain enough entropy.\n"
 msgstr ""
 "Ne devas krei multe da stokastaj datenoj. Estas konsilinde fari ion\n"
-"alian (tajpi æe la klavaro, movi la muson, uzi la diskojn) dum la\n"
-"kreado de la primoj; tio donas al la stokastilo pli bonan þancon\n"
-"akiri sufiæe da entropio.\n"
+"alian (tajpi ĉe la klavaro, movi la muson, uzi la diskojn) dum la\n"
+"kreado de la primoj; tio donas al la stokastilo pli bonan ŝancon\n"
+"akiri sufiĉe da entropio.\n"
 
 #, c-format
 msgid "Key generation failed: %s\n"
-msgstr "Kreado de þlosiloj malsukcesis: %s\n"
+msgstr "Kreado de ŝlosiloj malsukcesis: %s\n"
 
 #, c-format
 msgid ""
@@ -4283,18 +4296,18 @@ msgstr "'%s' jam densigita\n"
 
 #, fuzzy
 msgid "Create anyway? (y/N) "
-msgstr "Æu tamen uzi æi tiun þlosilon? "
+msgstr "Ĉu tamen uzi ĉi tiun ŝlosilon? "
 
 #, fuzzy
 msgid "creating anyway\n"
-msgstr "Æu tamen uzi æi tiun þlosilon? "
+msgstr "Ĉu tamen uzi ĉi tiun ŝlosilon? "
 
 #, c-format
 msgid "Note: Use \"%s %s\" for a full featured key generation dialog.\n"
 msgstr ""
 
 msgid "Key generation canceled.\n"
-msgstr "Kreado de þlosiloj nuligita.\n"
+msgstr "Kreado de ŝlosiloj nuligita.\n"
 
 #, fuzzy, c-format
 msgid "can't create backup file '%s': %s\n"
@@ -4302,62 +4315,62 @@ msgstr "ne povas krei '%s': %s\n"
 
 #, fuzzy, c-format
 msgid "Note: backup of card key saved to '%s'\n"
-msgstr "NOTO: sekreta þlosilo %08lX eksvalidiøis je %s\n"
+msgstr "NOTO: sekreta ŝlosilo %08lX eksvalidiĝis je %s\n"
 
 #, fuzzy, c-format
 #| msgid "writing public key to `%s'\n"
 msgid "writing public key to '%s'\n"
-msgstr "skribas publikan þlosilon al '%s'\n"
+msgstr "skribas publikan ŝlosilon al '%s'\n"
 
 #, c-format
 msgid "no writable public keyring found: %s\n"
-msgstr "neniu skribebla publika þlosilaro trovita: %s\n"
+msgstr "neniu skribebla publika ŝlosilaro trovita: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing public keyring `%s': %s\n"
 msgid "error writing public keyring '%s': %s\n"
-msgstr "eraro dum skribado de publika þlosilaro '%s': %s\n"
+msgstr "eraro dum skribado de publika ŝlosilaro '%s': %s\n"
 
 msgid "public and secret key created and signed.\n"
-msgstr "publika kaj sekreta þlosiloj kreitaj kaj subskribitaj.\n"
+msgstr "publika kaj sekreta ŝlosiloj kreitaj kaj subskribitaj.\n"
 
 #, fuzzy
 msgid ""
 "Note that this key cannot be used for encryption.  You may want to use\n"
 "the command \"--edit-key\" to generate a subkey for this purpose.\n"
 msgstr ""
-"Notu, ke æi tiu þlosilo ne estas uzebla por æifrado. Vi eble volos\n"
-"uzi la komandon \"--edit-key\" por krei flankan þlosilon por tiu celo.\n"
+"Notu, ke ĉi tiu ŝlosilo ne estas uzebla por ĉifrado. Vi eble volos\n"
+"uzi la komandon \"--edit-key\" por krei flankan ŝlosilon por tiu celo.\n"
 
 #, c-format
 msgid ""
 "key has been created %lu second in future (time warp or clock problem)\n"
 msgstr ""
-"þlosilo estis kreita %lu sekundon en la estonteco (tempotordo aý "
-"horloøeraro)\n"
+"ŝlosilo estis kreita %lu sekundon en la estonteco (tempotordo aŭ "
+"horloĝeraro)\n"
 
 #, c-format
 msgid ""
 "key has been created %lu seconds in future (time warp or clock problem)\n"
 msgstr ""
-"þlosilo estis kreita %lu sekundojn en la estonteco (tempotordo aý "
-"horloøeraro)\n"
+"ŝlosilo estis kreita %lu sekundojn en la estonteco (tempotordo aŭ "
+"horloĝeraro)\n"
 
 #, fuzzy
 #| msgid "NOTE: creating subkeys for v3 keys is not OpenPGP compliant\n"
 msgid "Note: creating subkeys for v3 keys is not OpenPGP compliant\n"
-msgstr "NOTO: krei subþlosilojn por v3-þlosiloj ne estas OpenPGP-kongrue\n"
+msgstr "NOTO: krei subŝlosilojn por v3-ŝlosiloj ne estas OpenPGP-kongrue\n"
 
 msgid "Secret parts of primary key are not available.\n"
-msgstr "Sekretaj partoj de æefa þlosilo ne estas disponataj.\n"
+msgstr "Sekretaj partoj de ĉefa ŝlosilo ne estas disponataj.\n"
 
 #, fuzzy
 msgid "Secret parts of primary key are stored on-card.\n"
-msgstr "Sekretaj partoj de æefa þlosilo ne estas disponataj.\n"
+msgstr "Sekretaj partoj de ĉefa ŝlosilo ne estas disponataj.\n"
 
 #, fuzzy
 msgid "Really create? (y/N) "
-msgstr "Æu vere krei? "
+msgstr "Ĉu vere krei? "
 
 msgid "never     "
 msgstr ""
@@ -4400,49 +4413,49 @@ msgstr[0] ""
 msgstr[1] ""
 
 msgid "Keyring"
-msgstr "Þlosilaro"
+msgstr "Ŝlosilaro"
 
 #, fuzzy
 msgid "Primary key fingerprint:"
-msgstr "listigi þlosilojn kaj fingroþpurojn"
+msgstr "listigi ŝlosilojn kaj fingroŝpurojn"
 
 #, fuzzy
 msgid "     Subkey fingerprint:"
-msgstr "     Þlosilo-fingrospuro ="
+msgstr "     Ŝlosilo-fingrospuro ="
 
 #. TRANSLATORS: this should fit into 24 bytes so that the
 #. * fingerprint data is properly aligned with the user ID
 #, fuzzy
 msgid " Primary key fingerprint:"
-msgstr "     Þlosilo-fingrospuro ="
+msgstr "     Ŝlosilo-fingrospuro ="
 
 #, fuzzy
 msgid "      Subkey fingerprint:"
-msgstr "     Þlosilo-fingrospuro ="
+msgstr "     Ŝlosilo-fingrospuro ="
 
 #, fuzzy
 msgid "      Key fingerprint ="
-msgstr "     Þlosilo-fingrospuro ="
+msgstr "     Ŝlosilo-fingrospuro ="
 
 msgid "      Card serial no. ="
 msgstr ""
 
 #, fuzzy, c-format
 msgid "caching keyring '%s'\n"
-msgstr "kontrolas þlosilaron '%s'\n"
+msgstr "kontrolas ŝlosilaron '%s'\n"
 
 #, fuzzy, c-format
 msgid "%lu keys cached so far (%lu signature)\n"
 msgid_plural "%lu keys cached so far (%lu signatures)\n"
-msgstr[0] "%lu þlosiloj kontrolitaj (%lu subskriboj)\n"
-msgstr[1] "%lu þlosiloj kontrolitaj (%lu subskriboj)\n"
+msgstr[0] "%lu ŝlosiloj kontrolitaj (%lu subskriboj)\n"
+msgstr[1] "%lu ŝlosiloj kontrolitaj (%lu subskriboj)\n"
 
 #, fuzzy, c-format
 #| msgid "\t%lu keys updated\n"
 msgid "%lu key cached"
 msgid_plural "%lu keys cached"
-msgstr[0] "\t%lu þlosiloj aktualigitaj\n"
-msgstr[1] "\t%lu þlosiloj aktualigitaj\n"
+msgstr[0] "\t%lu ŝlosiloj aktualigitaj\n"
+msgstr[1] "\t%lu ŝlosiloj aktualigitaj\n"
 
 #, fuzzy, c-format
 #| msgid "1 bad signature\n"
@@ -4453,7 +4466,7 @@ msgstr[1] "1 malbona subskribo\n"
 
 #, c-format
 msgid "%s: keyring created\n"
-msgstr "%s: þlosilaro kreita\n"
+msgstr "%s: ŝlosilaro kreita\n"
 
 msgid "override proxy options set for dirmngr"
 msgstr ""
@@ -4486,17 +4499,17 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid keyserver protocol (us %d!=handler %d)\n"
-msgstr "nevalida þlosilaro"
+msgstr "nevalida ŝlosilaro"
 
 #, fuzzy, c-format
 msgid "\"%s\" not a key ID: skipping\n"
-msgstr "%s: ne valida þlosilidentigilo\n"
+msgstr "%s: ne valida ŝlosilidentigilo\n"
 
 #, fuzzy, c-format
 msgid "refreshing %d key from %s\n"
 msgid_plural "refreshing %d keys from %s\n"
-msgstr[0] "petas la þlosilon %08lX de HKP-þlosilservilo %s ...\n"
-msgstr[1] "petas la þlosilon %08lX de HKP-þlosilservilo %s ...\n"
+msgstr[0] "petas la ŝlosilon %08lX de HKP-ŝlosilservilo %s ...\n"
+msgstr[1] "petas la ŝlosilon %08lX de HKP-ŝlosilservilo %s ...\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unable to refresh key %s via %s: %s\n"
@@ -4504,26 +4517,26 @@ msgstr "Averto: malsekura posedeco sur %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "key \"%s\" not found on keyserver\n"
-msgstr "þlosilo '%s' ne trovita: %s\n"
+msgstr "ŝlosilo '%s' ne trovita: %s\n"
 
 #, fuzzy
 msgid "key not found on keyserver\n"
-msgstr "þlosilo '%s' ne trovita: %s\n"
+msgstr "ŝlosilo '%s' ne trovita: %s\n"
 
 msgid "no keyserver known (use option --keyserver)\n"
-msgstr "neniu þlosilservilo konata (uzu la opcion --keyserver)\n"
+msgstr "neniu ŝlosilservilo konata (uzu la opcion --keyserver)\n"
 
 #, fuzzy, c-format
 msgid "requesting key %s from %s server %s\n"
-msgstr "petas la þlosilon %08lX de HKP-þlosilservilo %s ...\n"
+msgstr "petas la ŝlosilon %08lX de HKP-ŝlosilservilo %s ...\n"
 
 #, fuzzy, c-format
 msgid "requesting key %s from %s\n"
-msgstr "petas la þlosilon %08lX de HKP-þlosilservilo %s ...\n"
+msgstr "petas la ŝlosilon %08lX de HKP-ŝlosilservilo %s ...\n"
 
 #, fuzzy
 msgid "no keyserver known\n"
-msgstr "nevalida þlosilaro"
+msgstr "nevalida ŝlosilaro"
 
 #, fuzzy, c-format
 msgid "skipped \"%s\": %s\n"
@@ -4533,11 +4546,11 @@ msgstr "ignoris '%s': %s\n"
 msgid "sending key %s to %s\n"
 msgstr ""
 "\"\n"
-"subskribita per via þlosilo %08lX je %s\n"
+"subskribita per via ŝlosilo %08lX je %s\n"
 
 #, fuzzy, c-format
 msgid "requesting key from '%s'\n"
-msgstr "petas la þlosilon %08lX de HKP-þlosilservilo %s ...\n"
+msgstr "petas la ŝlosilon %08lX de HKP-ŝlosilservilo %s ...\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unable to fetch URI %s: %s\n"
@@ -4549,22 +4562,22 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "%s encrypted session key\n"
-msgstr "%s-æifritaj datenoj\n"
+msgstr "%s-ĉifritaj datenoj\n"
 
 #, fuzzy, c-format
 msgid "passphrase generated with unknown digest algorithm %d\n"
-msgstr "æifrita per nekonata metodo %d\n"
+msgstr "ĉifrita per nekonata metodo %d\n"
 
 #, fuzzy, c-format
 msgid "public key is %s\n"
-msgstr "publika þlosilo estas %08lX\n"
+msgstr "publika ŝlosilo estas %08lX\n"
 
 msgid "public key encrypted data: good DEK\n"
-msgstr "publikþlosile æifritaj datenoj: bona DEK\n"
+msgstr "publikŝlosile ĉifritaj datenoj: bona DEK\n"
 
 #, fuzzy, c-format
 msgid "encrypted with %u-bit %s key, ID %s, created %s\n"
-msgstr "æifrita per %u-bita %s-þlosilo, %08lX, kreita je %s\n"
+msgstr "ĉifrita per %u-bita %s-ŝlosilo, %08lX, kreita je %s\n"
 
 #, fuzzy, c-format
 msgid "      \"%s\"\n"
@@ -4572,11 +4585,11 @@ msgstr "            alinome \""
 
 #, fuzzy, c-format
 msgid "encrypted with %s key, ID %s\n"
-msgstr "æifrita per %s-þlosilo, %08lX\n"
+msgstr "ĉifrita per %s-ŝlosilo, %08lX\n"
 
 #, c-format
 msgid "public key decryption failed: %s\n"
-msgstr "publikþlosila malæifrado malsukcesis: %s\n"
+msgstr "publikŝlosila malĉifrado malsukcesis: %s\n"
 
 #, fuzzy, c-format
 msgid "encrypted with %lu passphrases\n"
@@ -4588,25 +4601,25 @@ msgstr "Ripetu pasfrazon\n"
 
 #, c-format
 msgid "assuming %s encrypted data\n"
-msgstr "supozas %s æifritajn datenojn\n"
+msgstr "supozas %s ĉifritajn datenojn\n"
 
 #, c-format
 msgid "IDEA cipher unavailable, optimistically attempting to use %s instead\n"
-msgstr "Æifro IDEA ne disponata, optimisme provas uzi %s anstataýe\n"
+msgstr "Ĉifro IDEA ne disponata, optimisme provas uzi %s anstataŭe\n"
 
 #, fuzzy
 msgid "WARNING: message was not integrity protected\n"
 msgstr "AVERTO: nenio estis eksportita\n"
 
 msgid "decryption okay\n"
-msgstr "malæifrado sukcesis\n"
+msgstr "malĉifrado sukcesis\n"
 
 msgid "WARNING: encrypted message has been manipulated!\n"
-msgstr "AVERTO: æifrita mesaøo estis manipulita!\n"
+msgstr "AVERTO: ĉifrita mesaĝo estis manipulita!\n"
 
 #, c-format
 msgid "decryption failed: %s\n"
-msgstr "malæifrado malsukcesis: %s\n"
+msgstr "malĉifrado malsukcesis: %s\n"
 
 #, fuzzy
 #| msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
@@ -4621,7 +4634,7 @@ msgid "WARNING: multiple plaintexts seen\n"
 msgstr ""
 
 msgid "standalone revocation - use \"gpg --import\" to apply\n"
-msgstr "memstara revoko - uzu \"gpg --import\" por apliki øin\n"
+msgstr "memstara revoko - uzu \"gpg --import\" por apliki ĝin\n"
 
 #, fuzzy
 msgid "no signature found\n"
@@ -4633,22 +4646,22 @@ msgstr "MALBONA subskribo de \""
 
 #, fuzzy, c-format
 msgid "Expired signature from \"%s\""
-msgstr "Eksvalidiøinta subskribo de \""
+msgstr "Eksvalidiĝinta subskribo de \""
 
 #, fuzzy, c-format
 msgid "Good signature from \"%s\""
 msgstr "Bona subskribo de \""
 
 msgid "signature verification suppressed\n"
-msgstr "kontrolo de subskribo estas malþaltita\n"
+msgstr "kontrolo de subskribo estas malŝaltita\n"
 
 #, fuzzy
 msgid "can't handle this ambiguous signature data\n"
-msgstr "ne povas trakti æi tiujn pluroblajn subskribojn\n"
+msgstr "ne povas trakti ĉi tiujn pluroblajn subskribojn\n"
 
 #, fuzzy, c-format
 msgid "Signature made %s\n"
-msgstr "Æi tiu þlosilo eksvalidiøos je %s.\n"
+msgstr "Ĉi tiu ŝlosilo eksvalidiĝos je %s.\n"
 
 #, fuzzy, c-format
 msgid "               using %s key %s\n"
@@ -4656,7 +4669,7 @@ msgstr "            alinome \""
 
 #, fuzzy, c-format
 msgid "Signature made %s using %s key ID %s\n"
-msgstr "Subskribo farita je %.*s per %s, þlosilo %08lX\n"
+msgstr "Subskribo farita je %.*s per %s, ŝlosilo %08lX\n"
 
 #, fuzzy, c-format
 msgid "               issuer \"%s\"\n"
@@ -4675,11 +4688,11 @@ msgstr "            alinome \""
 
 #, fuzzy, c-format
 msgid "Signature expired %s\n"
-msgstr "Æi tiu þlosilo eksvalidiøos je %s.\n"
+msgstr "Ĉi tiu ŝlosilo eksvalidiĝos je %s.\n"
 
 #, fuzzy, c-format
 msgid "Signature expires %s\n"
-msgstr "Æi tiu þlosilo eksvalidiøos je %s.\n"
+msgstr "Ĉi tiu ŝlosilo eksvalidiĝos je %s.\n"
 
 #, fuzzy, c-format
 msgid "%s signature, digest algorithm %s%s%s\n"
@@ -4687,7 +4700,7 @@ msgstr "%s-subskribo de: %s\n"
 
 #, fuzzy
 msgid "binary"
-msgstr "æefa"
+msgstr "ĉefa"
 
 msgid "textmode"
 msgstr ""
@@ -4699,7 +4712,7 @@ msgstr "nekonata versio"
 #, fuzzy
 #| msgid "unknown pubkey algorithm"
 msgid ", key algorithm "
-msgstr "nekonata publikþlosila metodo"
+msgstr "nekonata publikŝlosila metodo"
 
 #, c-format
 msgid "WARNING: not a detached signature; file '%s' was NOT verified!\n"
@@ -4733,15 +4746,15 @@ msgstr "fido-datenaro: lego malsukcesis (n=%d): %s\n"
 
 #, fuzzy, c-format
 msgid "WARNING: using experimental public key algorithm %s\n"
-msgstr "ne povas trakti publikþlosilan metodon %d\n"
+msgstr "ne povas trakti publikŝlosilan metodon %d\n"
 
 #, fuzzy
 msgid "WARNING: Elgamal sign+encrypt keys are deprecated\n"
-msgstr "NOTO: æifrad-metodo %d ne trovita en preferoj\n"
+msgstr "NOTO: ĉifrad-metodo %d ne trovita en preferoj\n"
 
 #, fuzzy, c-format
 msgid "WARNING: using experimental cipher algorithm %s\n"
-msgstr "nerealigita æifrad-metodo"
+msgstr "nerealigita ĉifrad-metodo"
 
 #, fuzzy, c-format
 msgid "WARNING: using experimental digest algorithm %s\n"
@@ -4749,7 +4762,7 @@ msgstr "%s-subskribo de: %s\n"
 
 #, fuzzy, c-format
 msgid "WARNING: digest algorithm %s is deprecated\n"
-msgstr "NOTO: æifrad-metodo %d ne trovita en preferoj\n"
+msgstr "NOTO: ĉifrad-metodo %d ne trovita en preferoj\n"
 
 #, fuzzy, c-format
 msgid "Note: signatures using the %s algorithm are rejected\n"
@@ -4802,7 +4815,7 @@ msgstr "ne traktita"
 
 #, fuzzy, c-format
 msgid "this message may not be usable by %s\n"
-msgstr "æi tiu mesaøo povas ne esti uzebla de PGP 2.x\n"
+msgstr "ĉi tiu mesaĝo povas ne esti uzebla de PGP 2.x\n"
 
 #, fuzzy, c-format
 msgid "ambiguous option '%s'\n"
@@ -4826,7 +4839,7 @@ msgstr "Dosiero '%s' ekzistas. "
 
 #, fuzzy
 msgid "Overwrite? (y/N) "
-msgstr "Æu surskribi (j/N)? "
+msgstr "Ĉu surskribi (j/N)? "
 
 #, c-format
 msgid "%s: unknown suffix\n"
@@ -4853,14 +4866,14 @@ msgstr ""
 
 #, c-format
 msgid "can't handle public key algorithm %d\n"
-msgstr "ne povas trakti publikþlosilan metodon %d\n"
+msgstr "ne povas trakti publikŝlosilan metodon %d\n"
 
 msgid "WARNING: potentially insecure symmetrically encrypted session key\n"
 msgstr ""
 
 #, c-format
 msgid "subpacket of type %d has critical bit set\n"
-msgstr "subpaketo de speco %d havas þaltitan \"critical bit\"\n"
+msgstr "subpaketo de speco %d havas ŝaltitan \"critical bit\"\n"
 
 #, fuzzy, c-format
 msgid "problem with the agent: %s\n"
@@ -4874,7 +4887,7 @@ msgstr "nuligita de uzanto\n"
 
 #, fuzzy, c-format
 msgid " (main key ID %s)"
-msgstr " (æefþlosilo %08lX)"
+msgstr " (ĉefŝlosilo %08lX)"
 
 #, fuzzy
 msgid "Please enter the passphrase to unlock the OpenPGP secret key:"
@@ -4894,11 +4907,11 @@ msgstr "Bonvolu doni la pasfrazon; tio estas sekreta frazo \n"
 
 #, fuzzy
 msgid "Do you really want to permanently delete the OpenPGP secret subkey key:"
-msgstr "Æu vi vere volas forviþi la elektitajn þlosilojn? "
+msgstr "Ĉu vi vere volas forviŝi la elektitajn ŝlosilojn? "
 
 #, fuzzy
 msgid "Do you really want to permanently delete the OpenPGP secret key:"
-msgstr "Æu vi vere volas forviþi la elektitajn þlosilojn? "
+msgstr "Ĉu vi vere volas forviŝi la elektitajn ŝlosilojn? "
 
 #, fuzzy, c-format
 msgid ""
@@ -4907,7 +4920,7 @@ msgid ""
 "%u-bit %s key, ID %s,\n"
 "created %s%s.\n"
 "%s"
-msgstr "%u-bita %s-þlosilo, %08lX, kreita je %s"
+msgstr "%u-bita %s-ŝlosilo, %08lX, kreita je %s"
 
 msgid ""
 "\n"
@@ -4930,7 +4943,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Are you sure you want to use it? (y/N) "
-msgstr "Æu vi estas certa, ke vi ankoraý volas subskribi øin?\n"
+msgstr "Ĉu vi estas certa, ke vi ankoraŭ volas subskribi ĝin?\n"
 
 #, fuzzy, c-format
 msgid "'%s' is not a JPEG file\n"
@@ -4938,7 +4951,7 @@ msgstr "%s: ne estas fido-datenaro\n"
 
 #, fuzzy
 msgid "Is this photo correct (y/N/q)? "
-msgstr "Æu tio estas øusta (j/n)? "
+msgstr "Ĉu tio estas ĝusta (j/n)? "
 
 #, fuzzy
 msgid "unable to display photo ID!\n"
@@ -4948,13 +4961,13 @@ msgid "No reason specified"
 msgstr "Nenia kialo specifita"
 
 msgid "Key is superseded"
-msgstr "Þlosilo estas anstataýigita."
+msgstr "Ŝlosilo estas anstataŭigita."
 
 msgid "Key has been compromised"
-msgstr "Þlosilo estas kompromitita"
+msgstr "Ŝlosilo estas kompromitita"
 
 msgid "Key is no longer used"
-msgstr "Þlosilo estas ne plu uzata"
+msgstr "Ŝlosilo estas ne plu uzata"
 
 msgid "User ID is no longer valid"
 msgstr "Uzantidentigilo ne plu validas"
@@ -4993,7 +5006,7 @@ msgstr "            alinome \""
 #, fuzzy
 msgid ""
 "How much do you trust that this key actually belongs to the named user?\n"
-msgstr "Æi tiu þlosilo verþajne apartenas al la posedanto\n"
+msgstr "Ĉi tiu ŝlosilo verŝajne apartenas al la posedanto\n"
 
 #, fuzzy, c-format
 msgid "  %d = I don't know or won't say\n"
@@ -5001,7 +5014,7 @@ msgstr " %d = Ne scias\n"
 
 #, fuzzy, c-format
 msgid "  %d = I do NOT trust\n"
-msgstr " %d = Ni NE fidas æi tiun þlosilon\n"
+msgstr " %d = Ni NE fidas ĉi tiun ŝlosilon\n"
 
 #, fuzzy, c-format
 msgid "  %d = I trust ultimately\n"
@@ -5009,11 +5022,11 @@ msgstr " %d = Mi fidas absolute\n"
 
 #, fuzzy
 msgid "  m = back to the main menu\n"
-msgstr " m = reen al la æefmenuo\n"
+msgstr " m = reen al la ĉefmenuo\n"
 
 #, fuzzy
 msgid "  s = skip this key\n"
-msgstr " s = supersalti æi tiun þlosilon\n"
+msgstr " s = supersalti ĉi tiun ŝlosilon\n"
 
 #, fuzzy
 msgid "  q = quit\n"
@@ -5030,27 +5043,44 @@ msgstr "Via decido? "
 
 #, fuzzy
 msgid "Do you really want to set this key to ultimate trust? (y/N) "
-msgstr "Æu vi vere volas þanøi æi tiun þlosilon al absoluta fido? "
+msgstr "Ĉu vi vere volas ŝanĝi ĉi tiun ŝlosilon al absoluta fido? "
 
 msgid "Certificates leading to an ultimately trusted key:\n"
-msgstr "Atestiloj, kiuj kondukas al absolute fidata þlosilo:\n"
+msgstr "Atestiloj, kiuj kondukas al absolute fidata ŝlosilo:\n"
 
 #, fuzzy, c-format
 msgid "%s: There is no assurance this key belongs to the named user\n"
 msgstr ""
-"%08lX: Estas nenia indiko, ke æi tiu þlosilo vere apartenas al la posedanto\n"
+"%08lX: Estas nenia indiko, ke ĉi tiu ŝlosilo vere apartenas al la posedanto\n"
 
 #, fuzzy, c-format
 msgid "%s: There is limited assurance this key belongs to the named user\n"
 msgstr ""
-"%08lX: Estas nenia indiko, ke æi tiu þlosilo vere apartenas al la posedanto\n"
+"%08lX: Estas nenia indiko, ke ĉi tiu ŝlosilo vere apartenas al la posedanto\n"
 
 #, fuzzy
 msgid "This key probably belongs to the named user\n"
-msgstr "Æi tiu þlosilo verþajne apartenas al la posedanto\n"
+msgstr "Ĉi tiu ŝlosilo verŝajne apartenas al la posedanto\n"
 
 msgid "This key belongs to us\n"
-msgstr "Æi tiu þlosilo apartenas al ni\n"
+msgstr "Ĉi tiu ŝlosilo apartenas al ni\n"
+
+#, fuzzy, c-format
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr ""
+"Neniom da atestiloj trovitaj kun nedifinita fidovaloro.\n"
+"\n"
+
+#, fuzzy
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"NE estas certe, ke la ŝlosilo apartenas al sia posedanto.\n"
+"Se vi *vere* scias, kion vi faras, vi povas respondi al\n"
+"la sekva demando per \"jes\"\n"
+"\n"
 
 #, fuzzy
 msgid ""
@@ -5058,38 +5088,38 @@ msgid ""
 "in the user ID.  If you *really* know what you are doing,\n"
 "you may answer the next question with yes.\n"
 msgstr ""
-"NE estas certe, ke la þlosilo apartenas al sia posedanto.\n"
+"NE estas certe, ke la ŝlosilo apartenas al sia posedanto.\n"
 "Se vi *vere* scias, kion vi faras, vi povas respondi al\n"
 "la sekva demando per \"jes\"\n"
 "\n"
 
 #, fuzzy
 msgid "Use this key anyway? (y/N) "
-msgstr "Æu tamen uzi æi tiun þlosilon? "
+msgstr "Ĉu tamen uzi ĉi tiun ŝlosilon? "
 
 msgid "WARNING: Using untrusted key!\n"
-msgstr "AVERTO: Uzas nefidatan þlosilon!\n"
+msgstr "AVERTO: Uzas nefidatan ŝlosilon!\n"
 
 #, fuzzy
 msgid "WARNING: this key might be revoked (revocation key not present)\n"
-msgstr "AVERTO: Æi tiu þlosilo estas revokita de sia posedanto!\n"
+msgstr "AVERTO: Ĉi tiu ŝlosilo estas revokita de sia posedanto!\n"
 
 #, fuzzy
 msgid "WARNING: This key has been revoked by its designated revoker!\n"
-msgstr "AVERTO: Æi tiu þlosilo estas revokita de sia posedanto!\n"
+msgstr "AVERTO: Ĉi tiu ŝlosilo estas revokita de sia posedanto!\n"
 
 msgid "WARNING: This key has been revoked by its owner!\n"
-msgstr "AVERTO: Æi tiu þlosilo estas revokita de sia posedanto!\n"
+msgstr "AVERTO: Ĉi tiu ŝlosilo estas revokita de sia posedanto!\n"
 
 #, fuzzy
 msgid "         This could mean that the signature is forged.\n"
 msgstr "         Tio povas signifi, ke la subskribo estas falsa.\n"
 
 msgid "WARNING: This subkey has been revoked by its owner!\n"
-msgstr "AVERTO: Æi tiu subþlosilo estas revokita de sia posedanto!\n"
+msgstr "AVERTO: Ĉi tiu subŝlosilo estas revokita de sia posedanto!\n"
 
 msgid "Note: This key has been disabled.\n"
-msgstr "Noto: Æi tiu þlosilo estas malþaltita.\n"
+msgstr "Noto: Ĉi tiu ŝlosilo estas malŝaltita.\n"
 
 #, c-format
 msgid "Note: Verified signer's address is '%s'\n"
@@ -5106,10 +5136,10 @@ msgid "trustlevel adjusted to NEVER due to bad PKA info\n"
 msgstr ""
 
 msgid "Note: This key has expired!\n"
-msgstr "Noto: Æi tiu þlosilo eksvalidiøis!\n"
+msgstr "Noto: Ĉi tiu ŝlosilo eksvalidiĝis!\n"
 
 msgid "WARNING: This key is not certified with a trusted signature!\n"
-msgstr "AVERTO: Æi tiu þlosilo ne estas atestita kun fidata subskribo!\n"
+msgstr "AVERTO: Ĉi tiu ŝlosilo ne estas atestita kun fidata subskribo!\n"
 
 msgid ""
 "         There is no indication that the signature belongs to the owner.\n"
@@ -5117,15 +5147,15 @@ msgstr ""
 "         Estas nenia indiko, ke la subskribo apartenas al la posedanto.\n"
 
 msgid "WARNING: We do NOT trust this key!\n"
-msgstr "AVERTO: Ni NE fidas æi tiun þlosilon!\n"
+msgstr "AVERTO: Ni NE fidas ĉi tiun ŝlosilon!\n"
 
 msgid "         The signature is probably a FORGERY.\n"
-msgstr "         La subskribo verþajne estas FALSA.\n"
+msgstr "         La subskribo verŝajne estas FALSA.\n"
 
 msgid ""
 "WARNING: This key is not certified with sufficiently trusted signatures!\n"
 msgstr ""
-"AVERTO: Æi tiu þlosilo ne estas atestita kun sufiæe fidataj subskriboj!\n"
+"AVERTO: Ĉi tiu ŝlosilo ne estas atestita kun sufiĉe fidataj subskriboj!\n"
 
 msgid "         It is not certain that the signature belongs to the owner.\n"
 msgstr "         Ne estas certe, ke la subskribo apartenas al la posedanto.\n"
@@ -5136,16 +5166,16 @@ msgstr "%s: ignorita: %s\n"
 
 #, c-format
 msgid "%s: skipped: public key is disabled\n"
-msgstr "%s: ignorita: publika þlosilo estas malþaltita\n"
+msgstr "%s: ignorita: publika ŝlosilo estas malŝaltita\n"
 
 #, c-format
 msgid "%s: skipped: public key already present\n"
-msgstr "%s: ignorita: publika þlosilo jam æeestas\n"
+msgstr "%s: ignorita: publika ŝlosilo jam ĉeestas\n"
 
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't encrypt to '%s'\n"
-msgstr "ne povas konektiøi al '%s': %s\n"
+msgstr "ne povas konektiĝi al '%s': %s\n"
 
 #, fuzzy, c-format
 msgid "option '%s' given, but no valid default keys given\n"
@@ -5172,13 +5202,13 @@ msgid "No such user ID.\n"
 msgstr "Uzantidentigilo ne ekzistas.\n"
 
 msgid "skipped: public key already set as default recipient\n"
-msgstr "ignorita: publika þlosilo jam difinita kiel implicita ricevonto\n"
+msgstr "ignorita: publika ŝlosilo jam difinita kiel implicita ricevonto\n"
 
 msgid "Public key is disabled.\n"
-msgstr "Publika þlosilo estas malþaltita.\n"
+msgstr "Publika ŝlosilo estas malŝaltita.\n"
 
 msgid "skipped: public key already set\n"
-msgstr "ignorita: publika þlosilo jam agordita\n"
+msgstr "ignorita: publika ŝlosilo jam agordita\n"
 
 #, fuzzy, c-format
 msgid "unknown default recipient \"%s\"\n"
@@ -5189,11 +5219,11 @@ msgstr "mankas validaj adresitoj\n"
 
 #, fuzzy, c-format
 msgid "Note: key %s has no %s feature\n"
-msgstr "þlosilo %08lX: mankas uzantidentigilo\n"
+msgstr "ŝlosilo %08lX: mankas uzantidentigilo\n"
 
 #, fuzzy, c-format
 msgid "Note: key %s has no preference for %s\n"
-msgstr "þlosilo %08lX: mankas uzantidentigilo\n"
+msgstr "ŝlosilo %08lX: mankas uzantidentigilo\n"
 
 msgid "data not saved; use option \"--output\" to save it\n"
 msgstr "datenoj ne savitaj; uzu la opcion \"--output\" por savi ilin\n"
@@ -5221,7 +5251,7 @@ msgstr "ne povas malfermi subskribitan dosieron '%s'\n"
 
 #, fuzzy, c-format
 msgid "anonymous recipient; trying secret key %s ...\n"
-msgstr "nenomita ricevonto; provas per sekreta þlosilo %08lX ...\n"
+msgstr "nenomita ricevonto; provas per sekreta ŝlosilo %08lX ...\n"
 
 msgid "okay, we are the anonymous recipient.\n"
 msgstr "bone; ni estas la nenomita ricevonto.\n"
@@ -5231,19 +5261,19 @@ msgstr "malnova kodado de DEK ne estas realigita\n"
 
 #, c-format
 msgid "cipher algorithm %d%s is unknown or disabled\n"
-msgstr "æifrad-metodo %d%s estas nekonata aý malþaltita\n"
+msgstr "ĉifrad-metodo %d%s estas nekonata aŭ malŝaltita\n"
 
 #, fuzzy, c-format
 msgid "WARNING: cipher algorithm %s not found in recipient preferences\n"
-msgstr "NOTO: æifrad-metodo %d ne trovita en preferoj\n"
+msgstr "NOTO: ĉifrad-metodo %d ne trovita en preferoj\n"
 
 #, fuzzy, c-format
 msgid "Note: secret key %s expired at %s\n"
-msgstr "NOTO: sekreta þlosilo %08lX eksvalidiøis je %s\n"
+msgstr "NOTO: sekreta ŝlosilo %08lX eksvalidiĝis je %s\n"
 
 #, fuzzy
 msgid "Note: key has been revoked"
-msgstr "þlosilo %08lX: þlosilo estas revokita!\n"
+msgstr "ŝlosilo %08lX: ŝlosilo estas revokita!\n"
 
 #, fuzzy, c-format
 msgid "build_packet failed: %s\n"
@@ -5251,7 +5281,7 @@ msgstr "aktualigo malsukcesis: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s has no user IDs\n"
-msgstr "þlosilo %08lX: mankas uzantidentigilo\n"
+msgstr "ŝlosilo %08lX: mankas uzantidentigilo\n"
 
 msgid "To be revoked by:\n"
 msgstr ""
@@ -5262,22 +5292,22 @@ msgstr ""
 #, fuzzy
 #| msgid "Secret key is available.\n"
 msgid "Secret key is not available.\n"
-msgstr "Sekreta þlosilo estas havebla.\n"
+msgstr "Sekreta ŝlosilo estas havebla.\n"
 
 #, fuzzy
 msgid "Create a designated revocation certificate for this key? (y/N) "
-msgstr "Æu krei revokatestilon por æi tiu subskribo? (j/N)"
+msgstr "Ĉu krei revokatestilon por ĉi tiu subskribo? (j/N)"
 
 msgid "ASCII armored output forced.\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "make_keysig_packet failed: %s\n"
-msgstr "listigo de þlosilblokoj malsukcesis: %s\n"
+msgstr "listigo de ŝlosilblokoj malsukcesis: %s\n"
 
 #, fuzzy
 msgid "Revocation certificate created.\n"
-msgstr "þlosilo %08lX: revokatestilo aldonita\n"
+msgstr "ŝlosilo %08lX: revokatestilo aldonita\n"
 
 #, c-format
 msgid "no revocation keys found for \"%s\"\n"
@@ -5285,7 +5315,7 @@ msgstr ""
 
 #, fuzzy
 msgid "This is a revocation certificate for the OpenPGP key:"
-msgstr "Æu krei revokatestilon por æi tiu subskribo? (j/N)"
+msgstr "Ĉu krei revokatestilon por ĉi tiu subskribo? (j/N)"
 
 msgid ""
 "A revocation certificate is a kind of \"kill switch\" to publicly\n"
@@ -5309,11 +5339,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "revocation certificate stored as '%s.rev'\n"
-msgstr "þlosilo %08lX: revokatestilo aldonita\n"
+msgstr "ŝlosilo %08lX: revokatestilo aldonita\n"
 
 #, fuzzy, c-format
 msgid "secret key \"%s\" not found\n"
-msgstr "þlosilo '%s' ne trovita: %s\n"
+msgstr "ŝlosilo '%s' ne trovita: %s\n"
 
 #. TRANSLATORS: The %s prints a key specification which
 #. for example has been given at the command line.  Several lines
@@ -5325,11 +5355,11 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
 msgid "error searching the keyring: %s\n"
-msgstr "eraro dum kreado de þlosilaro '%s': %s\n"
+msgstr "eraro dum kreado de ŝlosilaro '%s': %s\n"
 
 #, fuzzy
 msgid "Create a revocation certificate for this key? (y/N) "
-msgstr "Æu krei revokatestilon por æi tiu subskribo? (j/N)"
+msgstr "Ĉu krei revokatestilon por ĉi tiu subskribo? (j/N)"
 
 msgid ""
 "Revocation certificate created.\n"
@@ -5367,15 +5397,15 @@ msgstr ""
 
 #, fuzzy
 msgid "Is this okay? (y/N) "
-msgstr "Æu tamen uzi æi tiun þlosilon? "
+msgstr "Ĉu tamen uzi ĉi tiun ŝlosilon? "
 
 msgid "weak key created - retrying\n"
-msgstr "malforta þlosilo kreita - provas denove\n"
+msgstr "malforta ŝlosilo kreita - provas denove\n"
 
 #, c-format
 msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
 msgstr ""
-"ne povas eviti malfortajn þlosilojn por simetria æifro; provis %d fojojn!\n"
+"ne povas eviti malfortajn ŝlosilojn por simetria ĉifro; provis %d fojojn!\n"
 
 #, c-format
 msgid "%s key %s uses an unsafe (%zu bit) hash\n"
@@ -5403,14 +5433,14 @@ msgstr ""
 #, fuzzy, c-format
 msgid "public key %s is %lu second newer than the signature\n"
 msgid_plural "public key %s is %lu seconds newer than the signature\n"
-msgstr[0] "la publika þlosilo estas %lu sekundon pli nova ol la subskribo\n"
-msgstr[1] "la publika þlosilo estas %lu sekundon pli nova ol la subskribo\n"
+msgstr[0] "la publika ŝlosilo estas %lu sekundon pli nova ol la subskribo\n"
+msgstr[1] "la publika ŝlosilo estas %lu sekundon pli nova ol la subskribo\n"
 
 #, fuzzy, c-format
 msgid "public key %s is %lu day newer than the signature\n"
 msgid_plural "public key %s is %lu days newer than the signature\n"
-msgstr[0] "la publika þlosilo estas %lu sekundon pli nova ol la subskribo\n"
-msgstr[1] "la publika þlosilo estas %lu sekundon pli nova ol la subskribo\n"
+msgstr[0] "la publika ŝlosilo estas %lu sekundon pli nova ol la subskribo\n"
+msgstr[1] "la publika ŝlosilo estas %lu sekundon pli nova ol la subskribo\n"
 
 #, fuzzy, c-format
 msgid ""
@@ -5418,30 +5448,30 @@ msgid ""
 msgid_plural ""
 "key %s was created %lu seconds in the future (time warp or clock problem)\n"
 msgstr[0] ""
-"þlosilo estis kreita %lu sekundon en la estonteco (tempotordo aý "
-"horloøeraro)\n"
+"ŝlosilo estis kreita %lu sekundon en la estonteco (tempotordo aŭ "
+"horloĝeraro)\n"
 msgstr[1] ""
-"þlosilo estis kreita %lu sekundon en la estonteco (tempotordo aý "
-"horloøeraro)\n"
+"ŝlosilo estis kreita %lu sekundon en la estonteco (tempotordo aŭ "
+"horloĝeraro)\n"
 
 #, fuzzy, c-format
 msgid "key %s was created %lu day in the future (time warp or clock problem)\n"
 msgid_plural ""
 "key %s was created %lu days in the future (time warp or clock problem)\n"
 msgstr[0] ""
-"þlosilo estis kreita %lu sekundon en la estonteco (tempotordo aý "
-"horloøeraro)\n"
+"ŝlosilo estis kreita %lu sekundon en la estonteco (tempotordo aŭ "
+"horloĝeraro)\n"
 msgstr[1] ""
-"þlosilo estis kreita %lu sekundon en la estonteco (tempotordo aý "
-"horloøeraro)\n"
+"ŝlosilo estis kreita %lu sekundon en la estonteco (tempotordo aŭ "
+"horloĝeraro)\n"
 
 #, fuzzy, c-format
 msgid "Note: signature key %s expired %s\n"
-msgstr "NOTO: subskribo-þlosilo %08lX eksvalidiøis je %s\n"
+msgstr "NOTO: subskribo-ŝlosilo %08lX eksvalidiĝis je %s\n"
 
 #, fuzzy, c-format
 msgid "Note: signature key %s has been revoked\n"
-msgstr "þlosilo %08lX: þlosilo estas revokita!\n"
+msgstr "ŝlosilo %08lX: ŝlosilo estas revokita!\n"
 
 #, fuzzy, c-format
 msgid "assuming bad signature from key %s due to an unknown critical bit\n"
@@ -5449,11 +5479,11 @@ msgstr "supozas malbonan subskribon pro nekonata \"critical bit\"\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for subkey revocation signature\n"
-msgstr "þlosilo %08lX: mankas subþlosilo por þlosilbindado\n"
+msgstr "ŝlosilo %08lX: mankas subŝlosilo por ŝlosilbindado\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for subkey binding signature\n"
-msgstr "þlosilo %08lX: mankas subþlosilo por þlosilbindado\n"
+msgstr "ŝlosilo %08lX: mankas subŝlosilo por ŝlosilbindado\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unable to %%-expand notation (too large).  Using unexpanded.\n"
@@ -5483,18 +5513,18 @@ msgstr "%s-subskribo de: %s\n"
 #, fuzzy, c-format
 msgid ""
 "WARNING: forcing digest algorithm %s (%d) violates recipient preferences\n"
-msgstr "NOTO: æifrad-metodo %d ne trovita en preferoj\n"
+msgstr "NOTO: ĉifrad-metodo %d ne trovita en preferoj\n"
 
 msgid "signing:"
 msgstr "subskribas:"
 
 #, c-format
 msgid "%s encryption will be used\n"
-msgstr "%s æifrado estos aplikata\n"
+msgstr "%s ĉifrado estos aplikata\n"
 
 msgid "key is not flagged as insecure - can't use it with the faked RNG!\n"
 msgstr ""
-"þlosilo ne estas markita kiel malsekura - ne povas uzi øin kun falsa "
+"ŝlosilo ne estas markita kiel malsekura - ne povas uzi ĝin kun falsa "
 "stokastilo!\n"
 
 #, fuzzy, c-format
@@ -5502,12 +5532,12 @@ msgid "skipped \"%s\": duplicated\n"
 msgstr "ignoris '%s': ripetita\n"
 
 msgid "skipped: secret key already present\n"
-msgstr "ignorita: sekreta þlosilo jam æeestas\n"
+msgstr "ignorita: sekreta ŝlosilo jam ĉeestas\n"
 
 #, fuzzy
 msgid "this is a PGP generated Elgamal key which is not secure for signatures!"
 msgstr ""
-"ignoris '%s': æi tio estas PGP-kreita ElGamal-þlosilo, kiu ne estas sekura "
+"ignoris '%s': ĉi tio estas PGP-kreita ElGamal-ŝlosilo, kiu ne estas sekura "
 "por subskribado!\n"
 
 #, c-format
@@ -5592,7 +5622,7 @@ msgstr "%s: fido-datenaro kreita\n"
 
 #, fuzzy
 msgid "Note: trustdb not writable\n"
-msgstr "sekretaj þlosilpartoj ne estas disponataj\n"
+msgstr "sekretaj ŝlosilpartoj ne estas disponataj\n"
 
 #, c-format
 msgid "%s: invalid trustdb\n"
@@ -5687,7 +5717,7 @@ msgstr "eraro dum sendo al '%s': %s\n"
 #, fuzzy, c-format
 #| msgid "error writing secret keyring `%s': %s\n"
 msgid "error determining TOFU database's version: %s\n"
-msgstr "eraro dum skribado de sekreta þlosilaro '%s': %s\n"
+msgstr "eraro dum skribado de sekreta ŝlosilaro '%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "%s: error writing dir record: %s\n"
@@ -5703,27 +5733,31 @@ msgid "error updating TOFU database: %s\n"
 msgstr "eraro dum sendo al '%s': %s\n"
 
 #, c-format
-msgid "The binding %s is NOT known."
+msgid ""
+"This is the first time the email address \"%s\" is being used with key %s."
 msgstr ""
 
 #, c-format
-msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr ""
+
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error gathering other user IDs: %s\n"
 msgstr "eraro dum kreado de pasfrazo: %s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr ""
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "listigi ŝlosilojn kaj uzantidentigilojn"
 
 #, fuzzy, c-format
 #| msgid "Policy: "
@@ -5744,41 +5778,47 @@ msgstr[1] ""
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr ""
 
+msgid ", "
+msgstr ""
+
 #, fuzzy
 #| msgid "list keys"
 msgid "this key"
-msgstr "listigi þlosilojn"
+msgstr "listigi ŝlosilojn"
+
+#, fuzzy, c-format
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
+msgstr[0] "|metodo [dosieroj]|presi mesaĝo-kompendiojn"
+msgstr[1] "|metodo [dosieroj]|presi mesaĝo-kompendiojn"
 
 #, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
 msgstr[0] ""
 msgstr[1] ""
 
-#, fuzzy, c-format
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
-msgstr[0] "|metodo [dosieroj]|presi mesaøo-kompendiojn"
-msgstr[1] "|metodo [dosieroj]|presi mesaøo-kompendiojn"
-
 #, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+msgid " over the past year."
+msgid_plural " over the past %d years."
 msgstr[0] ""
 msgstr[1] ""
 
+msgid " in the past."
+msgstr ""
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5794,6 +5834,16 @@ msgstr ""
 msgid "(G)ood, (A)ccept once, (U)nknown, (R)eject once, (B)ad? "
 msgstr ""
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "resetting keydb: %s\n"
+msgstr "eraro dum skribado de ŝlosilaro '%s': %s\n"
+
 #, fuzzy, c-format
 msgid "error setting TOFU binding's trust level to %s\n"
 msgstr "eraro dum legado de '%s': %s\n"
@@ -5841,50 +5891,55 @@ msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
+msgid "%s: "
 msgstr ""
 
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
-msgstr ""
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "Forviŝis %d subskribojn.\n"
 
 #, fuzzy, c-format
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "|metodo [dosieroj]|presi mesaøo-kompendiojn"
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
+msgstr[0] "|metodo [dosieroj]|presi mesaĝo-kompendiojn"
+msgstr[1] "|metodo [dosieroj]|presi mesaĝo-kompendiojn"
+
+#, fuzzy, c-format
+msgid ", and encrypted %ld messages"
+msgstr "Ripetu pasfrazon\n"
+
+#, fuzzy, c-format
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] "|metodo [dosieroj]|presi mesaĝo-kompendiojn"
+msgstr[1] "|metodo [dosieroj]|presi mesaĝo-kompendiojn"
 
-#, c-format
 msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
-msgstr[0] ""
-msgstr[1] ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
+msgstr ""
 
-#, c-format
-msgid "The most recent message was verified %s ago."
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
 msgstr ""
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
 msgstr ""
 
 #, c-format
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -5894,26 +5949,35 @@ msgstr[1] ""
 msgid "error opening TOFU database: %s\n"
 msgstr "eraro dum sendo al '%s': %s\n"
 
+#, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring `%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "eraro dum skribado de publika ŝlosilaro '%s': %s\n"
+
 #, fuzzy, c-format
 #| msgid "`%s' is not a valid long keyID\n"
 msgid "'%s' is not a valid long keyID\n"
-msgstr "'%s' ne estas valida longa þlosilidentigilo\n"
+msgstr "'%s' ne estas valida longa ŝlosilidentigilo\n"
 
 #, fuzzy, c-format
 msgid "key %s: accepted as trusted key\n"
-msgstr "þlosilo %08lX: akceptita kiel fidata þlosilo\n"
+msgstr "ŝlosilo %08lX: akceptita kiel fidata ŝlosilo\n"
 
 #, fuzzy, c-format
 msgid "key %s occurs more than once in the trustdb\n"
-msgstr "þlosilo %08lX aperas pli ol unufoje en la fido-datenaro\n"
+msgstr "ŝlosilo %08lX aperas pli ol unufoje en la fido-datenaro\n"
 
 #, fuzzy, c-format
 msgid "key %s: no public key for trusted key - skipped\n"
-msgstr "þlosilo %08lX: mankas publika þlosilo por fidata þlosilo - ignorita\n"
+msgstr "ŝlosilo %08lX: mankas publika ŝlosilo por fidata ŝlosilo - ignorita\n"
 
 #, fuzzy, c-format
 msgid "key %s marked as ultimately trusted\n"
-msgstr "þlosilo markita kiel absolute fidata.\n"
+msgstr "ŝlosilo markita kiel absolute fidata.\n"
 
 #, c-format
 msgid "trust record %lu, req type %d: read failed: %s\n"
@@ -5954,7 +6018,7 @@ msgstr "kontrolo de fido-datenaro ne estas bezonata\n"
 
 #, fuzzy, c-format
 msgid "public key %s not found: %s\n"
-msgstr "publika þlosilo %08lX ne trovita: %s\n"
+msgstr "publika ŝlosilo %08lX ne trovita: %s\n"
 
 msgid "please do a --check-trustdb\n"
 msgstr ""
@@ -5965,8 +6029,8 @@ msgstr "kontrolas la fido-datenaron\n"
 #, fuzzy, c-format
 msgid "%d key processed"
 msgid_plural "%d keys processed"
-msgstr[0] "%lu þlosiloj jam traktitaj\n"
-msgstr[1] "%lu þlosiloj jam traktitaj\n"
+msgstr[0] "%lu ŝlosiloj jam traktitaj\n"
+msgstr[1] "%lu ŝlosiloj jam traktitaj\n"
 
 #, c-format
 msgid " (%d validity count cleared)\n"
@@ -5976,11 +6040,11 @@ msgstr[1] ""
 
 #, fuzzy
 msgid "no ultimately trusted keys found\n"
-msgstr "publika þlosilo de absolute fidata þlosilo %08lX ne trovita\n"
+msgstr "publika ŝlosilo de absolute fidata ŝlosilo %08lX ne trovita\n"
 
 #, fuzzy, c-format
 msgid "public key of ultimately trusted key %s not found\n"
-msgstr "publika þlosilo de absolute fidata þlosilo %08lX ne trovita\n"
+msgstr "publika ŝlosilo de absolute fidata ŝlosilo %08lX ne trovita\n"
 
 #, c-format
 msgid ""
@@ -6050,12 +6114,12 @@ msgid ""
 "should be the first file given on the command line.\n"
 msgstr ""
 "ne eblis kontroli la subskribon.\n"
-"Bonvolu memori, ke la subskribodosiero (.sig aý .asc)\n"
+"Bonvolu memori, ke la subskribodosiero (.sig aŭ .asc)\n"
 "devas esti la unua dosiero donita en la komandlinio.\n"
 
 #, c-format
 msgid "input line %u too long or missing LF\n"
-msgstr "enigata linio %u tro longa, aý mankas linifino\n"
+msgstr "enigata linio %u tro longa, aŭ mankas linifino\n"
 
 #, fuzzy, c-format
 msgid "can't open fd %d: %s\n"
@@ -6094,11 +6158,11 @@ msgstr ""
 
 #, fuzzy
 msgid "|N|Please enter a new PIN for the standard keys."
-msgstr "þanøi la pasfrazon"
+msgstr "ŝanĝi la pasfrazon"
 
 #, fuzzy
 msgid "||Please enter the PIN for the standard keys."
-msgstr "þanøi la pasfrazon"
+msgstr "ŝanĝi la pasfrazon"
 
 #, fuzzy
 msgid "|NP|Please enter a new PIN Unblocking Code (PUK) for the standard keys."
@@ -6134,14 +6198,7 @@ msgstr "malsukcesis doni komencajn valorojn al fido-datenaro: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to store the creation date: %s\n"
-msgstr "malsukcesis rekonstrui þlosilaran staplon: %s\n"
-
-#, fuzzy, c-format
-msgid "reading public key failed: %s\n"
-msgstr "forviþo de þlosilbloko malsukcesis: %s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr ""
+msgstr "malsukcesis rekonstrui ŝlosilaran staplon: %s\n"
 
 msgid "response does not contain the RSA modulus\n"
 msgstr ""
@@ -6149,9 +6206,18 @@ msgstr ""
 msgid "response does not contain the RSA public exponent\n"
 msgstr ""
 
-msgid "response does not contain the EC public point\n"
+#, fuzzy
+#| msgid "remove keys from the public keyring"
+msgid "response does not contain the EC public key\n"
+msgstr "forigi ŝlosilojn de la publika ŝlosilaro"
+
+msgid "response does not contain the public key data\n"
 msgstr ""
 
+#, fuzzy, c-format
+msgid "reading public key failed: %s\n"
+msgstr "forviŝo de ŝlosilbloko malsukcesis: %s\n"
+
 #, c-format
 msgid "using default PIN as %s\n"
 msgstr ""
@@ -6166,7 +6232,7 @@ msgstr ""
 
 #, fuzzy
 msgid "||Please enter the PIN"
-msgstr "þanøi la pasfrazon"
+msgstr "ŝanĝi la pasfrazon"
 
 #, c-format
 msgid "PIN for CHV%d is too short; minimum length is %d\n"
@@ -6174,7 +6240,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "verify CHV%d failed: %s\n"
-msgstr "Kreado de þlosiloj malsukcesis: %s\n"
+msgstr "Kreado de ŝlosiloj malsukcesis: %s\n"
 
 msgid "error retrieving CHV status from card\n"
 msgstr ""
@@ -6193,11 +6259,11 @@ msgstr[1] ""
 #. the start of the string.  Use %%0A to force a linefeed.
 #, fuzzy, c-format
 msgid "|A|Please enter the Admin PIN%%0A[remaining attempts: %d]"
-msgstr "þanøi la pasfrazon"
+msgstr "ŝanĝi la pasfrazon"
 
 #, fuzzy
 msgid "|A|Please enter the Admin PIN"
-msgstr "þanøi la pasfrazon"
+msgstr "ŝanĝi la pasfrazon"
 
 msgid "access to admin commands is not configured\n"
 msgstr ""
@@ -6224,15 +6290,15 @@ msgstr ""
 
 #, fuzzy
 msgid "||Please enter the Admin PIN and New Admin PIN"
-msgstr "þanøi la pasfrazon"
+msgstr "ŝanĝi la pasfrazon"
 
 #, fuzzy
 msgid "||Please enter the PIN and New PIN"
-msgstr "þanøi la pasfrazon"
+msgstr "ŝanĝi la pasfrazon"
 
 #, fuzzy
 msgid "error reading application data\n"
-msgstr "eraro dum legado de þlosilbloko: %s\n"
+msgstr "eraro dum legado de ŝlosilbloko: %s\n"
 
 #, fuzzy
 msgid "error reading fingerprint DO\n"
@@ -6247,11 +6313,11 @@ msgstr ""
 
 #, fuzzy
 msgid "generating new key\n"
-msgstr "krei novan þlosilparon"
+msgstr "krei novan ŝlosilparon"
 
 #, fuzzy
 msgid "writing new key\n"
-msgstr "krei novan þlosilparon"
+msgstr "krei novan ŝlosilparon"
 
 msgid "creation timestamp missing\n"
 msgstr ""
@@ -6274,13 +6340,13 @@ msgstr ""
 
 #, fuzzy
 msgid "generating key failed\n"
-msgstr "forviþo de þlosilbloko malsukcesis: %s\n"
+msgstr "forviŝo de ŝlosilbloko malsukcesis: %s\n"
 
 #, fuzzy, c-format
 msgid "key generation completed (%d second)\n"
 msgid_plural "key generation completed (%d seconds)\n"
-msgstr[0] "Kreado de þlosiloj malsukcesis: %s\n"
-msgstr[1] "Kreado de þlosiloj malsukcesis: %s\n"
+msgstr[0] "Kreado de ŝlosiloj malsukcesis: %s\n"
+msgstr[1] "Kreado de ŝlosiloj malsukcesis: %s\n"
 
 msgid "invalid structure of OpenPGP card (DO 0x93)\n"
 msgstr ""
@@ -6306,7 +6372,7 @@ msgstr "validaj OpenPGP-datenoj ne trovitaj.\n"
 
 #, fuzzy
 msgid "||Please enter your PIN at the reader's pinpad"
-msgstr "þanøi la pasfrazon"
+msgstr "ŝanĝi la pasfrazon"
 
 #. TRANSLATORS: Do not translate the "|*|" prefixes but
 #. keep it at the start of the string.  We need this elsewhere
@@ -6379,7 +6445,7 @@ msgstr "nevalida signo %02x en bazo 64 ignorita\n"
 
 #, fuzzy
 msgid "no dirmngr running in this session\n"
-msgstr "gpg-agent ne estas disponata en æi tiu sesio\n"
+msgstr "gpg-agent ne estas disponata en ĉi tiu sesio\n"
 
 #, c-format
 msgid "validation model requested by certificate: %s"
@@ -6408,11 +6474,11 @@ msgstr "ne povas malfermi '%s': %s\n"
 
 #, fuzzy
 msgid "Note: non-critical certificate policy not allowed"
-msgstr "skribas sekretan þlosilon al '%s'\n"
+msgstr "skribas sekretan ŝlosilon al '%s'\n"
 
 #, fuzzy
 msgid "certificate policy not allowed"
-msgstr "skribas sekretan þlosilon al '%s'\n"
+msgstr "skribas sekretan ŝlosilon al '%s'\n"
 
 msgid "looking up issuer at external location\n"
 msgstr ""
@@ -6430,7 +6496,7 @@ msgstr "eraro dum kreado de pasfrazo: %s\n"
 
 #, fuzzy, c-format
 msgid "dirmngr cache-only key lookup failed: %s\n"
-msgstr "forviþo de þlosilbloko malsukcesis: %s\n"
+msgstr "forviŝo de ŝlosilbloko malsukcesis: %s\n"
 
 #, fuzzy
 msgid "failed to allocate keyDB handle\n"
@@ -6438,7 +6504,7 @@ msgstr "malsukcesis doni komencajn valorojn al fido-datenaro: %s\n"
 
 #, fuzzy
 msgid "certificate has been revoked"
-msgstr "þlosilo %08lX: þlosilo estas revokita!\n"
+msgstr "ŝlosilo %08lX: ŝlosilo estas revokita!\n"
 
 msgid "the status of the certificate is unknown"
 msgstr ""
@@ -6452,7 +6518,7 @@ msgstr "kontrolo de kreita subskribo malsukcesis: %s\n"
 
 #, fuzzy, c-format
 msgid "certificate with invalid validity: %s"
-msgstr "problemo æe legado de atestilo: %s\n"
+msgstr "problemo ĉe legado de atestilo: %s\n"
 
 #, fuzzy
 msgid "certificate not yet valid"
@@ -6468,15 +6534,15 @@ msgstr "Valida atestilrevoko"
 
 #, fuzzy
 msgid "certificate has expired"
-msgstr "problemo æe legado de atestilo: %s\n"
+msgstr "problemo ĉe legado de atestilo: %s\n"
 
 #, fuzzy
 msgid "root certificate has expired"
-msgstr "problemo æe legado de atestilo: %s\n"
+msgstr "problemo ĉe legado de atestilo: %s\n"
 
 #, fuzzy
 msgid "intermediate certificate has expired"
-msgstr "problemo æe legado de atestilo: %s\n"
+msgstr "problemo ĉe legado de atestilo: %s\n"
 
 #, c-format
 msgid "required certificate attributes missing: %s%s%s"
@@ -6484,7 +6550,7 @@ msgstr ""
 
 #, fuzzy
 msgid "certificate with invalid validity"
-msgstr "problemo æe legado de atestilo: %s\n"
+msgstr "problemo ĉe legado de atestilo: %s\n"
 
 msgid "signature not created during lifetime of certificate"
 msgstr ""
@@ -6501,7 +6567,7 @@ msgstr "            novaj subskriboj: %lu\n"
 
 #, fuzzy
 msgid "  (certificate created at "
-msgstr "þlosilo %08lX: revokatestilo aldonita\n"
+msgstr "ŝlosilo %08lX: revokatestilo aldonita\n"
 
 #, fuzzy
 msgid "  (certificate valid from "
@@ -6571,7 +6637,7 @@ msgstr "Valida atestilrevoko"
 
 #, fuzzy
 msgid "intermediate certificate is good\n"
-msgstr "ripetita atestilo - forviþita"
+msgstr "ripetita atestilo - forviŝita"
 
 #, fuzzy
 msgid "root certificate is good\n"
@@ -6619,16 +6685,16 @@ msgid ""
 "S/N %s, ID 0x%08lX,\n"
 "created %s, expires %s.\n"
 msgstr ""
-"Vi bezonas pasfrazon por malþlosi la sekretan þlosilon por la uzanto:\n"
+"Vi bezonas pasfrazon por malŝlosi la sekretan ŝlosilon por la uzanto:\n"
 "\"%.*s\"\n"
-"%u-bita %s þlosilo, ID %08lX, kreita je %s%s\n"
+"%u-bita %s ŝlosilo, ID %08lX, kreita je %s%s\n"
 
 msgid "no key usage specified - assuming all usages\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting key usage information: %s\n"
-msgstr "eraro dum skribado de sekreta þlosilaro '%s': %s\n"
+msgstr "eraro dum skribado de sekreta ŝlosilaro '%s': %s\n"
 
 msgid "certificate should not have been used for certification\n"
 msgstr ""
@@ -6690,7 +6756,7 @@ msgstr "nevalida kompendi-metodo '%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: error getting signing key by keygrip '%s': %s\n"
-msgstr "eraro dum kreado de þlosilaro '%s': %s\n"
+msgstr "eraro dum kreado de ŝlosilaro '%s': %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid hash algorithm given\n"
@@ -6702,7 +6768,7 @@ msgstr "nevalida kompendi-metodo '%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid subject-key-id\n"
-msgstr "þlosilo %08lX: nevalida subþlosila bindado\n"
+msgstr "ŝlosilo %08lX: nevalida subŝlosila bindado\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid extension syntax\n"
@@ -6710,15 +6776,15 @@ msgstr "nevalida kompendi-metodo '%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: error reading key '%s' from card: %s\n"
-msgstr "eraro dum kreado de þlosilaro '%s': %s\n"
+msgstr "eraro dum kreado de ŝlosilaro '%s': %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: error getting key by keygrip '%s': %s\n"
-msgstr "eraro dum kreado de þlosilaro '%s': %s\n"
+msgstr "eraro dum kreado de ŝlosilaro '%s': %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: key generation failed: %s <%s>\n"
-msgstr "Kreado de þlosiloj malsukcesis: %s\n"
+msgstr "Kreado de ŝlosiloj malsukcesis: %s\n"
 
 msgid ""
 "To complete this certificate request please enter the passphrase for the key "
@@ -6731,7 +6797,7 @@ msgstr "   (%d) RSA (nur subskribi)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) Existing key\n"
-msgstr "   (%d) RSA (nur æifri)\n"
+msgstr "   (%d) RSA (nur ĉifri)\n"
 
 #, c-format
 msgid "   (%d) Existing key from card\n"
@@ -6747,7 +6813,7 @@ msgstr "eraro dum kreado de pasfrazo: %s\n"
 
 #, fuzzy
 msgid "Available keys:\n"
-msgstr "malþalti þlosilon"
+msgstr "malŝalti ŝlosilon"
 
 #, c-format
 msgid "Possible actions for a %s key:\n"
@@ -6755,7 +6821,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "   (%d) sign, encrypt\n"
-msgstr "   (%d) RSA (subskribi kaj æifri)\n"
+msgstr "   (%d) RSA (subskribi kaj ĉifri)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) sign\n"
@@ -6763,7 +6829,7 @@ msgstr "   (%d) DSA (nur subskribi)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) encrypt\n"
-msgstr "   (%d) RSA (nur æifri)\n"
+msgstr "   (%d) RSA (nur ĉifri)\n"
 
 msgid "Enter the X.509 subject name: "
 msgstr ""
@@ -6813,7 +6879,7 @@ msgstr "Donu la uzantidentigilon: "
 
 #, fuzzy
 msgid "Create self-signed certificate? (y/N) "
-msgstr "Æu krei revokatestilon por æi tiu subskribo? (j/N)"
+msgstr "Ĉu krei revokatestilon por ĉi tiu subskribo? (j/N)"
 
 msgid "These parameters are used:\n"
 msgstr ""
@@ -6823,7 +6889,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Now creating certificate request.  "
-msgstr "þlosilo %08lX: revokatestilo aldonita\n"
+msgstr "ŝlosilo %08lX: revokatestilo aldonita\n"
 
 msgid "This may take a while ...\n"
 msgstr ""
@@ -6845,23 +6911,23 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "certificate '%s' not found: %s\n"
-msgstr "þlosilo '%s' ne trovita: %s\n"
+msgstr "ŝlosilo '%s' ne trovita: %s\n"
 
 #, fuzzy, c-format
 msgid "error locking keybox: %s\n"
-msgstr "eraro dum legado de þlosilbloko: %s\n"
+msgstr "eraro dum legado de ŝlosilbloko: %s\n"
 
 #, fuzzy, c-format
 msgid "duplicated certificate '%s' deleted\n"
-msgstr "ripetita atestilo - forviþita"
+msgstr "ripetita atestilo - forviŝita"
 
 #, fuzzy, c-format
 msgid "certificate '%s' deleted\n"
-msgstr "ripetita atestilo - forviþita"
+msgstr "ripetita atestilo - forviŝita"
 
 #, fuzzy, c-format
 msgid "deleting certificate \"%s\" failed: %s\n"
-msgstr "forviþo de þlosilbloko malsukcesis: %s\n"
+msgstr "forviŝo de ŝlosilbloko malsukcesis: %s\n"
 
 #, fuzzy
 msgid "no valid recipients given\n"
@@ -6869,7 +6935,7 @@ msgstr "nevalida respondo de agento\n"
 
 #, fuzzy
 msgid "list external keys"
-msgstr "listigi sekretajn þlosilojn"
+msgstr "listigi sekretajn ŝlosilojn"
 
 #, fuzzy
 msgid "list certificate chain"
@@ -6934,28 +7000,28 @@ msgid "|FILE|write an audit log to FILE"
 msgstr "|DOSIERO|legi aldonan bibliotekon DOSIERO"
 
 msgid "batch mode: never ask"
-msgstr "neinteraga reøimo: neniam demandi"
+msgstr "neinteraga reĝimo: neniam demandi"
 
 msgid "assume yes on most questions"
-msgstr "supozi \"jes\" æe la plej multaj demandoj"
+msgstr "supozi \"jes\" ĉe la plej multaj demandoj"
 
 msgid "assume no on most questions"
-msgstr "supozi \"ne\" æe la plej multaj demandoj"
+msgstr "supozi \"ne\" ĉe la plej multaj demandoj"
 
 #, fuzzy
 msgid "|FILE|add keyring to the list of keyrings"
-msgstr "aldoni æi tiun þlosilaron al la listo de þlosilaroj"
+msgstr "aldoni ĉi tiun ŝlosilaron al la listo de ŝlosilaroj"
 
 #, fuzzy
 msgid "|USER-ID|use USER-ID as default secret key"
-msgstr "|NOMO|uzi NOMOn kiel la implicitan sekretan þlosilon"
+msgstr "|NOMO|uzi NOMOn kiel la implicitan sekretan ŝlosilon"
 
 #, fuzzy
 msgid "|SPEC|use this keyserver to lookup keys"
-msgstr "|SERVILO|uzi æi tiun þlosilservilon por seræi þlosilojn"
+msgstr "|SERVILO|uzi ĉi tiun ŝlosilservilon por serĉi ŝlosilojn"
 
 msgid "|NAME|use cipher algorithm NAME"
-msgstr "|NOMO|uzi æifrad-metodon NOMO"
+msgstr "|NOMO|uzi ĉifrad-metodon NOMO"
 
 msgid "|NAME|use message digest algorithm NAME"
 msgstr "|NOMO|uzi kompendi-metodon NOMO"
@@ -6972,12 +7038,12 @@ msgid ""
 "Default operation depends on the input data\n"
 msgstr ""
 "Sintakso: gpg [opcioj] [dosieroj]\n"
-"subskribi, kontroli, æifri aý malæifri\n"
+"subskribi, kontroli, ĉifri aŭ malĉifri\n"
 "implicita operacio dependas de la enigataj datenoj\n"
 
 #, fuzzy, c-format
 msgid "Note: won't be able to encrypt to '%s': %s\n"
-msgstr "ne povas konektiøi al '%s': %s\n"
+msgstr "ne povas konektiĝi al '%s': %s\n"
 
 #, fuzzy, c-format
 msgid "unknown validation model '%s'\n"
@@ -6993,11 +7059,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "%s:%u: skipping this line\n"
-msgstr " s = supersalti æi tiun þlosilon\n"
+msgstr " s = supersalti ĉi tiun ŝlosilon\n"
 
 #, fuzzy
 msgid "could not parse keyserver\n"
-msgstr "ne povis analizi URI de þlosilservilo\n"
+msgstr "ne povis analizi URI de ŝlosilservilo\n"
 
 #, fuzzy, c-format
 msgid "importing common certificates '%s'\n"
@@ -7107,7 +7173,7 @@ msgstr "kontrolo de kreita subskribo malsukcesis: %s\n"
 
 #, fuzzy
 msgid "Signature made "
-msgstr "Æi tiu þlosilo eksvalidiøos je %s.\n"
+msgstr "Ĉi tiu ŝlosilo eksvalidiĝos je %s.\n"
 
 msgid "[date not given]"
 msgstr ""
@@ -7130,7 +7196,7 @@ msgstr "            alinome \""
 
 #, fuzzy
 msgid "This is a qualified signature\n"
-msgstr "tio povas esti kaýzata de mankanta mem-subskribo\n"
+msgstr "tio povas esti kaŭzata de mankanta mem-subskribo\n"
 
 #, fuzzy, c-format
 msgid "can't initialize certificate cache lock: %s\n"
@@ -7159,15 +7225,15 @@ msgstr "ne povas krei '%s': %s\n"
 
 #, fuzzy, c-format
 msgid "certificate '%s' already cached\n"
-msgstr "ripetita atestilo - forviþita"
+msgstr "ripetita atestilo - forviŝita"
 
 #, fuzzy, c-format
 msgid "trusted certificate '%s' loaded\n"
-msgstr "ripetita atestilo - forviþita"
+msgstr "ripetita atestilo - forviŝita"
 
 #, fuzzy, c-format
 msgid "certificate '%s' loaded\n"
-msgstr "ripetita atestilo - forviþita"
+msgstr "ripetita atestilo - forviŝita"
 
 #, fuzzy, c-format
 msgid "  SHA1 fingerprint = %s\n"
@@ -7193,7 +7259,7 @@ msgstr "eraro dum kreado de pasfrazo: %s\n"
 
 #, fuzzy
 msgid "certificate already cached\n"
-msgstr "þlosilo %08lX: revokatestilo aldonita\n"
+msgstr "ŝlosilo %08lX: revokatestilo aldonita\n"
 
 #, fuzzy
 msgid "certificate cached\n"
@@ -7229,7 +7295,7 @@ msgstr "%s: ne povas krei dosierujon: %s\n"
 
 #, fuzzy, c-format
 msgid "error creating directory '%s': %s\n"
-msgstr "eraro dum kreado de þlosilaro '%s': %s\n"
+msgstr "eraro dum kreado de ŝlosilaro '%s': %s\n"
 
 #, fuzzy, c-format
 msgid "ignoring database dir '%s'\n"
@@ -7241,7 +7307,7 @@ msgstr "eraro dum legado de '%s': %s\n"
 
 #, fuzzy, c-format
 msgid "removing cache file '%s'\n"
-msgstr "forviþo de þlosilbloko malsukcesis: %s\n"
+msgstr "forviŝo de ŝlosilbloko malsukcesis: %s\n"
 
 #, fuzzy, c-format
 #| msgid "enarmoring failed: %s\n"
@@ -7263,7 +7329,7 @@ msgstr "eraro dum kreado de pasfrazo: %s\n"
 #, fuzzy, c-format
 #| msgid "error writing secret keyring `%s': %s\n"
 msgid "error writing new cache dir file '%s': %s\n"
-msgstr "eraro dum skribado de sekreta þlosilaro '%s': %s\n"
+msgstr "eraro dum skribado de sekreta ŝlosilaro '%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error closing new cache dir file '%s': %s\n"
@@ -7297,7 +7363,7 @@ msgstr "%s: nevalida dosiero-versio %d\n"
 
 #, fuzzy, c-format
 msgid "duplicate entry detected in '%s' line %u\n"
-msgstr "ripetita atestilo - forviþita"
+msgstr "ripetita atestilo - forviŝita"
 
 #, c-format
 msgid "unsupported record type in '%s' line %u skipped\n"
@@ -7441,12 +7507,12 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "changing permission of  `%s' failed: %s\n"
 msgid "converting S-expression failed: %s\n"
-msgstr "þanøo de permesoj de '%s' malsukcesis: %s\n"
+msgstr "ŝanĝo de permesoj de '%s' malsukcesis: %s\n"
 
 #, fuzzy, c-format
 #| msgid "changing permission of  `%s' failed: %s\n"
 msgid "creating S-expression failed: %s\n"
-msgstr "þanøo de permesoj de '%s' malsukcesis: %s\n"
+msgstr "ŝanĝo de permesoj de '%s' malsukcesis: %s\n"
 
 #, fuzzy, c-format
 msgid "ksba_crl_parse failed: %s\n"
@@ -7481,7 +7547,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "signature verification suppressed\n"
 msgid "CRL signature verification failed: %s\n"
-msgstr "kontrolo de subskribo estas malþaltita\n"
+msgstr "kontrolo de subskribo estas malŝaltita\n"
 
 #, fuzzy, c-format
 msgid "error checking validity of CRL issuer certificate: %s\n"
@@ -7489,7 +7555,7 @@ msgstr "kontrolo de kreita subskribo malsukcesis: %s\n"
 
 #, fuzzy, c-format
 msgid "ksba_crl_new failed: %s\n"
-msgstr "forviþo de þlosilbloko malsukcesis: %s\n"
+msgstr "forviŝo de ŝlosilbloko malsukcesis: %s\n"
 
 #, fuzzy, c-format
 msgid "ksba_crl_set_reader failed: %s\n"
@@ -7510,7 +7576,7 @@ msgstr "eraro dum kreado de pasfrazo: %s\n"
 #, fuzzy, c-format
 #| msgid "lid ?: insert failed: %s\n"
 msgid "crl_parse_insert failed: %s\n"
-msgstr "lid ?: enþovo malsukcesis: %s\n"
+msgstr "lid ?: enŝovo malsukcesis: %s\n"
 
 #, fuzzy, c-format
 msgid "error finishing temporary cache file '%s': %s\n"
@@ -7594,11 +7660,11 @@ msgstr "aktualigo malsukcesis: %s\n"
 #, fuzzy, c-format
 #| msgid "lid ?: insert failed: %s\n"
 msgid "crl_cache_insert via DP failed: %s\n"
-msgstr "lid ?: enþovo malsukcesis: %s\n"
+msgstr "lid ?: enŝovo malsukcesis: %s\n"
 
 #, fuzzy, c-format
 msgid "crl_cache_insert via issuer failed: %s\n"
-msgstr "forviþo de þlosilbloko malsukcesis: %s\n"
+msgstr "forviŝo de ŝlosilbloko malsukcesis: %s\n"
 
 msgid "reader to file mapping table full - waiting\n"
 msgstr ""
@@ -7633,11 +7699,11 @@ msgstr "eraro dum legado de '%s': %s\n"
 
 #, fuzzy
 msgid "CRL access not possible due to Tor mode\n"
-msgstr "þlosilo '%s' ne trovita: %s\n"
+msgstr "ŝlosilo '%s' ne trovita: %s\n"
 
 #, fuzzy, c-format
 msgid "certificate search not possible due to disabled %s\n"
-msgstr "þlosilo '%s' ne trovita: %s\n"
+msgstr "ŝlosilo '%s' ne trovita: %s\n"
 
 msgid "use OCSP instead of CRLs"
 msgstr ""
@@ -7647,7 +7713,7 @@ msgstr ""
 
 #, fuzzy
 msgid "add a certificate to the cache"
-msgstr "þlosilo %08lX: revokatestilo aldonita\n"
+msgstr "ŝlosilo %08lX: revokatestilo aldonita\n"
 
 #, fuzzy
 #| msgid "bad certificate"
@@ -7678,7 +7744,7 @@ msgstr "Bona atestilo"
 
 #, fuzzy
 msgid "force the use of the default OCSP responder"
-msgstr "Donu la þlosilgrandon"
+msgstr "Donu la ŝlosilgrandon"
 
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
@@ -7706,7 +7772,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to the dirmngr: %s\n"
-msgstr "ne povas konektiøi al '%s': %s\n"
+msgstr "ne povas konektiĝi al '%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "update failed: %s\n"
@@ -7722,7 +7788,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "validation of certificate failed: %s\n"
-msgstr "forviþo de þlosilbloko malsukcesis: %s\n"
+msgstr "forviŝo de ŝlosilbloko malsukcesis: %s\n"
 
 #, fuzzy
 msgid "certificate is valid\n"
@@ -7730,11 +7796,11 @@ msgstr "Valida atestilrevoko"
 
 #, fuzzy
 msgid "certificate has been revoked\n"
-msgstr "þlosilo %08lX: þlosilo estas revokita!\n"
+msgstr "ŝlosilo %08lX: ŝlosilo estas revokita!\n"
 
 #, fuzzy, c-format
 msgid "certificate check failed: %s\n"
-msgstr "forviþo de þlosilbloko malsukcesis: %s\n"
+msgstr "forviŝo de ŝlosilbloko malsukcesis: %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't stat `%s': %s\n"
@@ -7744,7 +7810,7 @@ msgstr "ne povas stat-i '%s': %s\n"
 #, fuzzy, c-format
 #| msgid "error writing secret keyring `%s': %s\n"
 msgid "error writing base64 encoding: %s\n"
-msgstr "eraro dum skribado de sekreta þlosilaro '%s': %s\n"
+msgstr "eraro dum skribado de sekreta ŝlosilaro '%s': %s\n"
 
 #, fuzzy, c-format
 msgid "unsupported inquiry '%s'\n"
@@ -7780,7 +7846,7 @@ msgstr ""
 
 #, fuzzy
 msgid "run without asking a user"
-msgstr "Æu fini sen skribi þanøojn? "
+msgstr "Ĉu fini sen skribi ŝanĝojn? "
 
 msgid "force loading of outdated CRLs"
 msgstr ""
@@ -7788,6 +7854,9 @@ msgstr ""
 msgid "allow sending OCSP requests"
 msgstr ""
 
+msgid "allow online software version check"
+msgstr ""
+
 msgid "inhibit the use of HTTP"
 msgstr ""
 
@@ -7824,7 +7893,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|URL|use OCSP responder at URL"
-msgstr "ne povis analizi URI de þlosilservilo\n"
+msgstr "ne povis analizi URI de ŝlosilservilo\n"
 
 msgid "|FPR|OCSP response signed by FPR"
 msgstr ""
@@ -7848,7 +7917,7 @@ msgid ""
 "options)\n"
 msgstr ""
 "@\n"
-"(Vidu la manpaøon por kompleta listo de æiuj komandoj kaj opcioj)\n"
+"(Vidu la manpaĝon por kompleta listo de ĉiuj komandoj kaj opcioj)\n"
 
 #, fuzzy
 msgid "Usage: @DIRMNGR@ [options] (-h for help)"
@@ -7975,7 +8044,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error writing to stdout: %s\n"
-msgstr "eraro dum skribado de þlosilaro '%s': %s\n"
+msgstr "eraro dum skribado de ŝlosilaro '%s': %s\n"
 
 #, c-format
 msgid "          available attribute '%s'\n"
@@ -8058,12 +8127,8 @@ msgid "'%s' is an invalid LDAP URL\n"
 msgstr ""
 
 #, fuzzy, c-format
-msgid "error allocating memory: %s\n"
-msgstr "eraro dum kreado de þlosilaro '%s': %s\n"
-
-#, fuzzy, c-format
 msgid "error printing log line: %s\n"
-msgstr "eraro dum skribado de þlosilaro '%s': %s\n"
+msgstr "eraro dum skribado de ŝlosilaro '%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error reading log from ldap wrapper %d: %s\n"
@@ -8099,7 +8164,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "reading from ldap wrapper %d failed: %s\n"
-msgstr "forviþo de þlosilbloko malsukcesis: %s\n"
+msgstr "forviŝo de ŝlosilbloko malsukcesis: %s\n"
 
 #, c-format
 msgid "invalid char 0x%02x in host name - not added\n"
@@ -8107,11 +8172,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "adding '%s:%d' to the ldap server list\n"
-msgstr "seræas pri \"%s\" æe HKP-servilo %s\n"
+msgstr "serĉas pri \"%s\" ĉe HKP-servilo %s\n"
 
 #, fuzzy, c-format
 msgid "malloc failed: %s\n"
-msgstr "forviþo de þlosilbloko malsukcesis: %s\n"
+msgstr "forviŝo de ŝlosilbloko malsukcesis: %s\n"
 
 #, c-format
 msgid "start_cert_fetch: invalid pattern '%s'\n"
@@ -8147,7 +8212,7 @@ msgstr ""
 
 #, fuzzy
 msgid "OCSP request not possible due to Tor mode\n"
-msgstr "þlosilo '%s' ne trovita: %s\n"
+msgstr "ŝlosilo '%s' ne trovita: %s\n"
 
 msgid "OCSP request not possible due to disabled HTTP\n"
 msgstr ""
@@ -8162,7 +8227,7 @@ msgstr "eraro dum legado de '%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error connecting to '%s': %s\n"
-msgstr "eraro dum skribado de þlosilaro '%s': %s\n"
+msgstr "eraro dum skribado de ŝlosilaro '%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error reading HTTP response for '%s': %s\n"
@@ -8183,7 +8248,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "changing permission of  `%s' failed: %s\n"
 msgid "hashing the OCSP response for '%s' failed: %s\n"
-msgstr "þanøo de permesoj de '%s' malsukcesis: %s\n"
+msgstr "ŝanĝo de permesoj de '%s' malsukcesis: %s\n"
 
 msgid "not signed by a default OCSP signer's certificate"
 msgstr ""
@@ -8193,7 +8258,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "allocating list item failed: %s\n"
-msgstr "forviþo de þlosilbloko malsukcesis: %s\n"
+msgstr "forviŝo de ŝlosilbloko malsukcesis: %s\n"
 
 #, fuzzy, c-format
 msgid "error getting responder ID: %s\n"
@@ -8228,7 +8293,7 @@ msgstr ""
 #, fuzzy
 #| msgid "no default secret keyring: %s\n"
 msgid "no default OCSP signer defined\n"
-msgstr "mankas implicita sekreta þlosilaro: %s\n"
+msgstr "mankas implicita sekreta ŝlosilaro: %s\n"
 
 #, c-format
 msgid "using default OCSP responder '%s'\n"
@@ -8255,7 +8320,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "certificate has been revoked at: %s due to: %s\n"
-msgstr "þlosilo %08lX: þlosilo estas revokita!\n"
+msgstr "ŝlosilo %08lX: ŝlosilo estas revokita!\n"
 
 msgid "OCSP responder returned a status in the future\n"
 msgstr ""
@@ -8282,7 +8347,7 @@ msgstr "subskribado malsukcesis: %s\n"
 
 #, fuzzy, c-format
 msgid "fetch_cert_by_url failed: %s\n"
-msgstr "forviþo de þlosilbloko malsukcesis: %s\n"
+msgstr "forviŝo de ŝlosilbloko malsukcesis: %s\n"
 
 #, fuzzy, c-format
 msgid "error sending data: %s\n"
@@ -8290,11 +8355,11 @@ msgstr "eraro dum sendo al '%s': %s\n"
 
 #, fuzzy, c-format
 msgid "start_cert_fetch failed: %s\n"
-msgstr "forviþo de þlosilbloko malsukcesis: %s\n"
+msgstr "forviŝo de ŝlosilbloko malsukcesis: %s\n"
 
 #, fuzzy, c-format
 msgid "fetch_next_cert failed: %s\n"
-msgstr "forviþo de þlosilbloko malsukcesis: %s\n"
+msgstr "forviŝo de ŝlosilbloko malsukcesis: %s\n"
 
 #, c-format
 msgid "max_replies %d exceeded\n"
@@ -8315,7 +8380,7 @@ msgstr "malsukcesis doni komencajn valorojn al fido-datenaro: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to the register commands with Assuan: %s\n"
-msgstr "malsukcesis rekonstrui þlosilaran staplon: %s\n"
+msgstr "malsukcesis rekonstrui ŝlosilaran staplon: %s\n"
 
 #, c-format
 msgid "Assuan accept problem: %s\n"
@@ -8410,7 +8475,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "receiving line failed: %s\n"
-msgstr "forviþo de þlosilbloko malsukcesis: %s\n"
+msgstr "forviŝo de ŝlosilbloko malsukcesis: %s\n"
 
 #, fuzzy
 msgid "line too long - skipped\n"
@@ -8469,7 +8534,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|N|expire the passphrase after N days"
-msgstr "|N|uzi pasfraz-reøimon N"
+msgstr "|N|uzi pasfraz-reĝimon N"
 
 #, fuzzy
 msgid "do not allow the reuse of old passphrases"
@@ -8479,11 +8544,11 @@ msgid "|N|set the Pinentry timeout to N seconds"
 msgstr ""
 
 msgid "|NAME|use NAME as default secret key"
-msgstr "|NOMO|uzi NOMOn kiel la implicitan sekretan þlosilon"
+msgstr "|NOMO|uzi NOMOn kiel la implicitan sekretan ŝlosilon"
 
 #, fuzzy
 msgid "|NAME|encrypt to user ID NAME as well"
-msgstr "|NOMO|æifri por NOMO"
+msgstr "|NOMO|ĉifri por NOMO"
 
 msgid "|SPEC|set up email aliases"
 msgstr ""
@@ -8493,7 +8558,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|URL|use keyserver at URL"
-msgstr "ne povis analizi URI de þlosilservilo\n"
+msgstr "ne povis analizi URI de ŝlosilservilo\n"
 
 msgid "allow PKA lookups (DNS requests)"
 msgstr ""
@@ -8506,7 +8571,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|NAME|use encoding NAME for PKCS#12 passphrases"
-msgstr "|NOMO|uzi æifrad-metodon NOMO por pasfrazoj"
+msgstr "|NOMO|uzi ĉifrad-metodon NOMO por pasfrazoj"
 
 msgid "do not check CRLs for root certificates"
 msgstr ""
@@ -8535,28 +8600,30 @@ msgstr ""
 msgid "Configuration for OCSP"
 msgstr ""
 
-msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr ""
 
-msgid "GPG Agent"
+msgid "Private Keys"
 msgstr ""
 
-msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr ""
 
-msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr ""
 
-msgid "Key Acquirer"
-msgstr ""
+#, fuzzy
+#| msgid "network error"
+msgid "Network"
+msgstr "reteraro"
 
 #, fuzzy
-msgid "PIN and Passphrase Entry"
+msgid "Passphrase Entry"
 msgstr "malbona pasfrazo"
 
 #, fuzzy
 msgid "Component not suitable for launching"
-msgstr "publika þlosilo ne trovita"
+msgstr "publika ŝlosilo ne trovita"
 
 #, c-format
 msgid "External verification of component %s failed"
@@ -8594,6 +8661,11 @@ msgstr "%s: nova opcio-dosiero kreita\n"
 msgid "check global configuration file"
 msgstr "%s: nova opcio-dosiero kreita\n"
 
+#, fuzzy
+#| msgid "update the trust database"
+msgid "query the software version database"
+msgstr "aktualigi la fido-datenaron"
+
 msgid "reload all or a given component"
 msgstr ""
 
@@ -8623,11 +8695,11 @@ msgstr ""
 
 #, fuzzy
 msgid "Component not found"
-msgstr "publika þlosilo ne trovita"
+msgstr "publika ŝlosilo ne trovita"
 
 #, fuzzy
 msgid "No argument allowed"
-msgstr "skribas sekretan þlosilon al '%s'\n"
+msgstr "skribas sekretan ŝlosilon al '%s'\n"
 
 #, fuzzy
 msgid ""
@@ -8640,11 +8712,11 @@ msgstr ""
 
 #, fuzzy
 msgid "decryption modus"
-msgstr "malæifrado sukcesis\n"
+msgstr "malĉifrado sukcesis\n"
 
 #, fuzzy
 msgid "encryption modus"
-msgstr "malæifrado sukcesis\n"
+msgstr "malĉifrado sukcesis\n"
 
 msgid "tool class (confucius)"
 msgstr ""
@@ -8687,7 +8759,7 @@ msgstr "ne povas malfermi %s: %s\n"
 
 #, fuzzy, c-format
 msgid "error writing to %s: %s\n"
-msgstr "eraro dum skribado de þlosilaro '%s': %s\n"
+msgstr "eraro dum skribado de ŝlosilaro '%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error reading from %s: %s\n"
@@ -8727,7 +8799,7 @@ msgstr "aktualigo malsukcesis: %s\n"
 
 #, fuzzy, c-format
 msgid "select failed: %s\n"
-msgstr "forviþo de þlosilbloko malsukcesis: %s\n"
+msgstr "forviŝo de ŝlosilbloko malsukcesis: %s\n"
 
 #, fuzzy, c-format
 msgid "read failed: %s\n"
@@ -8773,6 +8845,20 @@ msgid ""
 "Check a passphrase given on stdin against the patternfile\n"
 msgstr ""
 
+#, fuzzy
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "forviŝo de ŝlosilbloko malsukcesis: %s\n"
+
+#, fuzzy
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "malŝalti ŝlosilon"
+
+#, fuzzy
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "|metodo [dosieroj]|presi mesaĝo-kompendiojn"
+#~ msgstr[1] "|metodo [dosieroj]|presi mesaĝo-kompendiojn"
+
 #~ msgid "communication problem with gpg-agent\n"
 #~ msgstr "komunikproblemo kun gpg-agent\n"
 
@@ -8800,9 +8886,9 @@ msgstr ""
 #~ "%u-bit %s key, ID %s,\n"
 #~ "created %s%s.\n"
 #~ msgstr ""
-#~ "Vi bezonas pasfrazon por malþlosi la sekretan þlosilon por la uzanto:\n"
+#~ "Vi bezonas pasfrazon por malŝlosi la sekretan ŝlosilon por la uzanto:\n"
 #~ "\"%.*s\"\n"
-#~ "%u-bita %s þlosilo, ID %08lX, kreita je %s%s\n"
+#~ "%u-bita %s ŝlosilo, ID %08lX, kreita je %s%s\n"
 
 #, fuzzy
 #~ msgid ""
@@ -8810,12 +8896,12 @@ msgstr ""
 #~ "user: \"%s\"\n"
 #~ msgstr ""
 #~ "\n"
-#~ "Vi bezonas pasfrazon por malþlosi la sekretan þlosilon\n"
+#~ "Vi bezonas pasfrazon por malŝlosi la sekretan ŝlosilon\n"
 #~ "por la uzanto: \""
 
 #, fuzzy
 #~ msgid "%u-bit %s key, ID %s, created %s"
-#~ msgstr "%u-bita %s-þlosilo, %08lX, kreita je %s"
+#~ msgstr "%u-bita %s-ŝlosilo, %08lX, kreita je %s"
 
 #, fuzzy
 #~ msgid "can't access directory '%s': %s\n"
@@ -8832,10 +8918,10 @@ msgstr ""
 #~ msgstr[1] "%d uzantidentigiloj sen valida mem-subskribo estis trovitaj\n"
 
 #~ msgid "moving a key signature to the correct place\n"
-#~ msgstr "movas þlosilsubskribon al la øusta loko\n"
+#~ msgstr "movas ŝlosilsubskribon al la ĝusta loko\n"
 
 #~ msgid "%d signatures not checked due to missing keys\n"
-#~ msgstr "%d subskriboj ne kontrolitaj pro manko de þlosiloj\n"
+#~ msgstr "%d subskriboj ne kontrolitaj pro manko de ŝlosiloj\n"
 
 #~ msgid "%d signatures not checked due to errors\n"
 #~ msgstr "%d subskriboj ne kontrolitaj pro eraroj\n"
@@ -8843,9 +8929,6 @@ msgstr ""
 #~ msgid "1 user ID without valid self-signature detected\n"
 #~ msgstr "1 uzantidentigilo sen valida mem-subskribo estis trovita\n"
 
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "Forviþis %d subskribojn.\n"
-
 #, fuzzy
 #~ msgid "User ID \"%s\": %d signatures removed\n"
 #~ msgstr "Uzantidentigilo \"%s\" estas revokita.\n"
@@ -8854,7 +8937,7 @@ msgstr ""
 #~ "You need a Passphrase to protect your secret key.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Vi bezonas pasfrazon por protekti vian sekretan þlosilon.\n"
+#~ "Vi bezonas pasfrazon por protekti vian sekretan ŝlosilon.\n"
 #~ "\n"
 
 #, fuzzy
@@ -8864,7 +8947,7 @@ msgstr ""
 #~ msgstr "Bonvolu doni la pasfrazon; tio estas sekreta frazo \n"
 
 #~ msgid "passphrase not correctly repeated; try again"
-#~ msgstr "la pasfrazo ne estis øuste ripetita; provu denove"
+#~ msgstr "la pasfrazo ne estis ĝuste ripetita; provu denove"
 
 #~ msgid "%s.\n"
 #~ msgstr "%s.\n"
@@ -8875,14 +8958,14 @@ msgstr ""
 #~ "using this program with the option \"--edit-key\".\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Vi ne deziras pasfrazon; tio verþajne estas *malbona* ideo!\n"
-#~ "Mi tamen faros tiel. Vi povos æiam ajn þanøi vian pasfrazon,\n"
-#~ "uzante æi tiun programon kun la opcio \"--edit-key\".\n"
+#~ "Vi ne deziras pasfrazon; tio verŝajne estas *malbona* ideo!\n"
+#~ "Mi tamen faros tiel. Vi povos ĉiam ajn ŝanĝi vian pasfrazon,\n"
+#~ "uzante ĉi tiun programon kun la opcio \"--edit-key\".\n"
 #~ "\n"
 
 #, fuzzy
 #~ msgid "storing key onto card failed: %s\n"
-#~ msgstr "forviþo de þlosilbloko malsukcesis: %s\n"
+#~ msgstr "forviŝo de ŝlosilbloko malsukcesis: %s\n"
 
 #, fuzzy
 #~| msgid "1 bad signature\n"
@@ -8890,37 +8973,33 @@ msgstr ""
 #~ msgstr "1 malbona subskribo\n"
 
 #, fuzzy
-#~ msgid "renaming '%s' to '%s' failed: %s\n"
-#~ msgstr "enkirasigo malsukcesis: %s\n"
-
-#, fuzzy
 #~ msgid "%lu keys cached (%lu signatures)\n"
-#~ msgstr "%lu þlosiloj kontrolitaj (%lu subskriboj)\n"
+#~ msgstr "%lu ŝlosiloj kontrolitaj (%lu subskriboj)\n"
 
 #, fuzzy
 #~ msgid "refreshing 1 key from %s\n"
-#~ msgstr "petas la þlosilon %08lX de HKP-þlosilservilo %s ...\n"
+#~ msgstr "petas la ŝlosilon %08lX de HKP-ŝlosilservilo %s ...\n"
 
 #, fuzzy
 #~ msgid "sending key %s to %s server %s\n"
-#~ msgstr "seræas pri \"%s\" æe HKP-servilo %s\n"
+#~ msgstr "serĉas pri \"%s\" ĉe HKP-servilo %s\n"
 
 #, fuzzy
 #~ msgid "public key %s is %lu seconds newer than the signature\n"
-#~ msgstr "la publika þlosilo estas %lu sekundojn pli nova ol la subskribo\n"
+#~ msgstr "la publika ŝlosilo estas %lu sekundojn pli nova ol la subskribo\n"
 
 #, fuzzy
 #~ msgid ""
 #~ "key %s was created %lu seconds in the future (time warp or clock "
 #~ "problem)\n"
 #~ msgstr ""
-#~ "þlosilo estis kreita %lu sekundojn en la estonteco (tempotordo aý "
-#~ "horloøeraro)\n"
+#~ "ŝlosilo estis kreita %lu sekundojn en la estonteco (tempotordo aŭ "
+#~ "horloĝeraro)\n"
 
 #, fuzzy
 #~| msgid "can't open the keyring"
 #~ msgid "Failed to open the keyring DB.\n"
-#~ msgstr "ne povas malfermi la þlosilaron"
+#~ msgstr "ne povas malfermi la ŝlosilaron"
 
 #, fuzzy
 #~ msgid "Failed to parse '%s'.\n"
@@ -8928,11 +9007,11 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "error looking up secret key \"%s\": %s\n"
-#~ msgstr "eraro dum legado de sekreta þlosilbloko '%s': %s\n"
+#~ msgstr "eraro dum legado de sekreta ŝlosilbloko '%s': %s\n"
 
 #, fuzzy
 #~ msgid "Please select at most one subkey.\n"
-#~ msgstr "Bonvolu elekti maksimume unu flankan þlosilon.\n"
+#~ msgstr "Bonvolu elekti maksimume unu flankan ŝlosilon.\n"
 
 #, fuzzy
 #~ msgid "malformed %s environment variable\n"
@@ -8944,7 +9023,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "toggle between the secret and public key listings"
-#~ msgstr "de sekreta aý publika listo iri al la alia"
+#~ msgstr "de sekreta aŭ publika listo iri al la alia"
 
 #~ msgid "Please use the command \"toggle\" first.\n"
 #~ msgstr "Bonvolu uzi la komandon \"toggle\" unue.\n"
@@ -8954,11 +9033,11 @@ msgstr ""
 #~ msgstr "malbona pasfrazo"
 
 #~ msgid "gpg-agent is not available in this session\n"
-#~ msgstr "gpg-agent ne estas disponata en æi tiu sesio\n"
+#~ msgstr "gpg-agent ne estas disponata en ĉi tiu sesio\n"
 
 #, fuzzy
 #~ msgid "use a standard location for the socket"
-#~ msgstr "Æu vere aktualigi la preferojn por la elektitaj uzantidentigiloj? "
+#~ msgstr "Ĉu vere aktualigi la preferojn por la elektitaj uzantidentigiloj? "
 
 #, fuzzy
 #~ msgid "Usage: gpg-agent [options] (-h for help)"
@@ -8988,47 +9067,47 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "secret parts of key are not available\n"
-#~ msgstr "Sekretaj partoj de æefa þlosilo ne estas disponataj.\n"
+#~ msgstr "Sekretaj partoj de ĉefa ŝlosilo ne estas disponataj.\n"
 
 #, fuzzy
 #~ msgid "secret key already stored on a card\n"
-#~ msgstr "ignorita: sekreta þlosilo jam æeestas\n"
+#~ msgstr "ignorita: sekreta ŝlosilo jam ĉeestas\n"
 
 #, fuzzy
 #~ msgid "error writing key to card: %s\n"
-#~ msgstr "eraro dum skribado de þlosilaro '%s': %s\n"
+#~ msgstr "eraro dum skribado de ŝlosilaro '%s': %s\n"
 
 #~ msgid ""
 #~ "you can only encrypt to RSA keys of 2048 bits or less in --pgp2 mode\n"
 #~ msgstr ""
-#~ "eblas æifri nur per RSA-þlosiloj de maksimume 2048 bitoj kun --pgp2\n"
+#~ "eblas ĉifri nur per RSA-ŝlosiloj de maksimume 2048 bitoj kun --pgp2\n"
 
 #~ msgid ""
 #~ "unable to use the IDEA cipher for all of the keys you are encrypting to.\n"
-#~ msgstr "ne povas uzi la æifron IDEA por æiuj þlosiloj, al kiuj vi æifras.\n"
+#~ msgstr "ne povas uzi la ĉifron IDEA por ĉiuj ŝlosiloj, al kiuj vi ĉifras.\n"
 
 #, fuzzy
 #~ msgid "remove the passphrase from exported subkeys"
-#~ msgstr "revoki flankan þlosilon"
+#~ msgstr "revoki flankan ŝlosilon"
 
 #, fuzzy
 #~ msgid "key %s: not protected - skipped\n"
-#~ msgstr "þlosilo %08lX: ne protektita - ignorita\n"
+#~ msgstr "ŝlosilo %08lX: ne protektita - ignorita\n"
 
 #, fuzzy
 #~ msgid "failed to unprotect the subkey: %s\n"
 #~ msgstr "malsukcesis doni komencajn valorojn al fido-datenaro: %s\n"
 
 #~ msgid "too many entries in pk cache - disabled\n"
-#~ msgstr "tro da registroj en pk-staplo - malþaltas\n"
+#~ msgstr "tro da registroj en pk-staplo - malŝaltas\n"
 
 #, fuzzy
 #~ msgid "no secret subkey for public subkey %s - ignoring\n"
-#~ msgstr "estas sekreta þlosilo por la publika þlosilo \"%s\"!\n"
+#~ msgstr "estas sekreta ŝlosilo por la publika ŝlosilo \"%s\"!\n"
 
 #, fuzzy
 #~ msgid "key %s: secret key without public key - skipped\n"
-#~ msgstr "þlosilo %08lX: sekreta þlosilo sen publika þlosilo - ignorita\n"
+#~ msgstr "ŝlosilo %08lX: sekreta ŝlosilo sen publika ŝlosilo - ignorita\n"
 
 #~ msgid "usage: gpg [options] "
 #~ msgstr "uzado: gpg [opcioj] "
@@ -9038,123 +9117,123 @@ msgstr ""
 #~ msgstr "eblas fari nur apartajn kaj klartekstajn subskribojn kun --pgp2\n"
 
 #~ msgid "you can't sign and encrypt at the same time while in --pgp2 mode\n"
-#~ msgstr "ne eblas samtempe subskribi kaj æifri kun --pgp2\n"
+#~ msgstr "ne eblas samtempe subskribi kaj ĉifri kun --pgp2\n"
 
 #~ msgid ""
 #~ "you must use files (and not a pipe) when working with --pgp2 enabled.\n"
 #~ msgstr "necesas uzi dosierojn (kaj ne tubon) kun --pgp2\n"
 
 #~ msgid "encrypting a message in --pgp2 mode requires the IDEA cipher\n"
-#~ msgstr "æifri mesaøon kun --pgp2 postulas la æifron IDEA\n"
+#~ msgstr "ĉifri mesaĝon kun --pgp2 postulas la ĉifron IDEA\n"
 
 #, fuzzy
 #~ msgid "key %s: already in secret keyring\n"
-#~ msgstr "þlosilo %08lX: jam en sekreta þlosilaro\n"
+#~ msgstr "ŝlosilo %08lX: jam en sekreta ŝlosilaro\n"
 
 #, fuzzy
 #~ msgid "key %s: secret key not found: %s\n"
-#~ msgstr "þlosilo %08lX: sekreta þlosilo ne trovita: %s\n"
+#~ msgstr "ŝlosilo %08lX: sekreta ŝlosilo ne trovita: %s\n"
 
 #, fuzzy
 #~ msgid "NOTE: primary key is online and stored on card\n"
-#~ msgstr "ignorita: sekreta þlosilo jam æeestas\n"
+#~ msgstr "ignorita: sekreta ŝlosilo jam ĉeestas\n"
 
 #, fuzzy
 #~ msgid "NOTE: secondary key is online and stored on card\n"
-#~ msgstr "ignorita: sekreta þlosilo jam æeestas\n"
+#~ msgstr "ignorita: sekreta ŝlosilo jam ĉeestas\n"
 
 #, fuzzy
 #~ msgid ""
 #~ "You may not make an OpenPGP signature on a PGP 2.x key while in --pgp2 "
 #~ "mode.\n"
-#~ msgstr "eblas subskribi nur per PGP-2.x-stilaj þlosiloj kun --pgp2\n"
+#~ msgstr "eblas subskribi nur per PGP-2.x-stilaj ŝlosiloj kun --pgp2\n"
 
 #, fuzzy
 #~ msgid "This would make the key unusable in PGP 2.x.\n"
-#~ msgstr "æi tiu mesaøo povas ne esti uzebla de PGP 2.x\n"
+#~ msgstr "ĉi tiu mesaĝo povas ne esti uzebla de PGP 2.x\n"
 
 #~ msgid "This key is not protected.\n"
-#~ msgstr "Æi tiu þlosilo ne estas protektita.\n"
+#~ msgstr "Ĉi tiu ŝlosilo ne estas protektita.\n"
 
 #~ msgid "Key is protected.\n"
-#~ msgstr "Þlosilo estas protektita.\n"
+#~ msgstr "Ŝlosilo estas protektita.\n"
 
 #~ msgid "Can't edit this key: %s\n"
-#~ msgstr "Ne povas redakti æi tiun þlosilon: %s\n"
+#~ msgstr "Ne povas redakti ĉi tiun ŝlosilon: %s\n"
 
 #~ msgid ""
 #~ "Enter the new passphrase for this secret key.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Donu la novan pasfrazon por æi tiu sekreta þlosilo.\n"
+#~ "Donu la novan pasfrazon por ĉi tiu sekreta ŝlosilo.\n"
 #~ "\n"
 
 #~ msgid ""
 #~ "You don't want a passphrase - this is probably a *bad* idea!\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Vi ne deziras pasfrazon - tio verþajne estas *malbona* ideo!\n"
+#~ "Vi ne deziras pasfrazon - tio verŝajne estas *malbona* ideo!\n"
 #~ "\n"
 
 #, fuzzy
 #~ msgid "Do you really want to do this? (y/N) "
-#~ msgstr "Æu vi vere volas fari tion? "
+#~ msgstr "Ĉu vi vere volas fari tion? "
 
 #~ msgid "Please remove selections from the secret keys.\n"
-#~ msgstr "Bonvolu malelekti la sekretajn þlosilojn.\n"
+#~ msgstr "Bonvolu malelekti la sekretajn ŝlosilojn.\n"
 
 #~ msgid "No corresponding signature in secret ring\n"
-#~ msgstr "Mankas responda subskribo en sekreta þlosilaro\n"
+#~ msgstr "Mankas responda subskribo en sekreta ŝlosilaro\n"
 
 #, fuzzy
 #~ msgid "writing secret key stub to `%s'\n"
-#~ msgstr "skribas sekretan þlosilon al '%s'\n"
+#~ msgstr "skribas sekretan ŝlosilon al '%s'\n"
 
 #~ msgid "writing secret key to `%s'\n"
-#~ msgstr "skribas sekretan þlosilon al '%s'\n"
+#~ msgstr "skribas sekretan ŝlosilon al '%s'\n"
 
 #~ msgid "no writable secret keyring found: %s\n"
-#~ msgstr "neniu skribebla sekreta þlosilaro trovita: %s\n"
+#~ msgstr "neniu skribebla sekreta ŝlosilaro trovita: %s\n"
 
 #~ msgid "WARNING: 2 files with confidential information exists.\n"
 #~ msgstr "AVERTO: ekzistas 2 dosieroj kun sekretaj informoj.\n"
 
 #~ msgid "%s is the unchanged one\n"
-#~ msgstr "%s estas la neþanøita\n"
+#~ msgstr "%s estas la neŝanĝita\n"
 
 #~ msgid "%s is the new one\n"
 #~ msgstr "%s estas la nova\n"
 
 #~ msgid "Please fix this possible security flaw\n"
-#~ msgstr "Bonvolu ripari æi tiun eblan sekurecproblemon\n"
+#~ msgstr "Bonvolu ripari ĉi tiun eblan sekurecproblemon\n"
 
 #, fuzzy
 #~ msgid "searching for names from %s server %s\n"
-#~ msgstr "seræas pri \"%s\" æe HKP-servilo %s\n"
+#~ msgstr "serĉas pri \"%s\" ĉe HKP-servilo %s\n"
 
 #, fuzzy
 #~ msgid "searching for names from %s\n"
-#~ msgstr "seræas pri \"%s\" æe HKP-servilo %s\n"
+#~ msgstr "serĉas pri \"%s\" ĉe HKP-servilo %s\n"
 
 #, fuzzy
 #~ msgid "searching for \"%s\" from %s server %s\n"
-#~ msgstr "seræas pri \"%s\" æe HKP-servilo %s\n"
+#~ msgstr "serĉas pri \"%s\" ĉe HKP-servilo %s\n"
 
 #, fuzzy
 #~ msgid "searching for \"%s\" from %s\n"
-#~ msgstr "seræas pri \"%s\" æe HKP-servilo %s\n"
+#~ msgstr "serĉas pri \"%s\" ĉe HKP-servilo %s\n"
 
 #, fuzzy
 #~ msgid "keyserver timed out\n"
-#~ msgstr "þlosilservila eraro"
+#~ msgstr "ŝlosilservila eraro"
 
 #, fuzzy
 #~ msgid "keyserver internal error\n"
-#~ msgstr "þlosilservila eraro"
+#~ msgstr "ŝlosilservila eraro"
 
 #, fuzzy
 #~ msgid "keyserver communications error: %s\n"
-#~ msgstr "listigo de sekretaj þlosiloj malsukcesis: %s\n"
+#~ msgstr "listigo de sekretaj ŝlosiloj malsukcesis: %s\n"
 
 #, fuzzy
 #~ msgid "WARNING: unable to parse URI %s\n"
@@ -9164,11 +9243,11 @@ msgstr ""
 #~ msgstr "nevalida radikpaketo trovita en proc_tree()\n"
 
 #~ msgid "the IDEA cipher plugin is not present\n"
-#~ msgstr "la aldona¼o por la æifro IDEA en æeestas\n"
+#~ msgstr "la aldonaĵo por la ĉifro IDEA en ĉeestas\n"
 
 #, fuzzy
 #~ msgid "no corresponding public key: %s\n"
-#~ msgstr "skribas publikan þlosilon al '%s'\n"
+#~ msgstr "skribas publikan ŝlosilon al '%s'\n"
 
 #, fuzzy
 #~ msgid "unknown protection algorithm\n"
@@ -9176,7 +9255,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "NOTE: This key is not protected!\n"
-#~ msgstr "Æi tiu þlosilo ne estas protektita.\n"
+#~ msgstr "Ĉi tiu ŝlosilo ne estas protektita.\n"
 
 #, fuzzy
 #~ msgid "protection digest %d is not supported\n"
@@ -9190,17 +9269,17 @@ msgstr ""
 
 #~ msgid "WARNING: Weak key detected - please change passphrase again.\n"
 #~ msgstr ""
-#~ "AVERTO: Malforta þlosilo trovita - bonvolu þanøi la pasfrazon denove.\n"
+#~ "AVERTO: Malforta ŝlosilo trovita - bonvolu ŝanĝi la pasfrazon denove.\n"
 
 #, fuzzy
 #~ msgid ""
 #~ "you can only detach-sign with PGP 2.x style keys while in --pgp2 mode\n"
-#~ msgstr "eblas subskribi nur per PGP-2.x-stilaj þlosiloj kun --pgp2\n"
+#~ msgstr "eblas subskribi nur per PGP-2.x-stilaj ŝlosiloj kun --pgp2\n"
 
 #~ msgid ""
 #~ "you can only clearsign with PGP 2.x style keys while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "eblas klartekste subskribi nur per PGP-2.x-stilaj þlosiloj kun --pgp2\n"
+#~ "eblas klartekste subskribi nur per PGP-2.x-stilaj ŝlosiloj kun --pgp2\n"
 
 #, fuzzy
 #~ msgid "Usage: scdaemon [options] (-h for help)"
@@ -9223,7 +9302,7 @@ msgstr ""
 
 #~ msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
 #~ msgstr ""
-#~ "la fido-datenaro estas fuþita; bonvolu ruli \"gpg --fix-trustdb\".\n"
+#~ "la fido-datenaro estas fuŝita; bonvolu ruli \"gpg --fix-trustdb\".\n"
 
 #~ msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
 #~ msgstr "Bonvolu raporti cimojn al <gnupg-bugs@gnu.org>.\n"
@@ -9234,7 +9313,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "DSA keypair will have %u bits.\n"
-#~ msgstr "DSA-þlosilparo havos 1024 bitojn.\n"
+#~ msgstr "DSA-ŝlosilparo havos 1024 bitojn.\n"
 
 #~ msgid "Repeat passphrase\n"
 #~ msgstr "Ripetu pasfrazon\n"
@@ -9255,16 +9334,16 @@ msgstr ""
 #~ msgstr "|[dosiero]|fari klartekstan subskribon"
 
 #~ msgid "use the default key as default recipient"
-#~ msgstr "uzi la implicitan þlosilon kiel implicitan ricevonton"
+#~ msgstr "uzi la implicitan ŝlosilon kiel implicitan ricevonton"
 
 #~ msgid "force v3 signatures"
 #~ msgstr "devigi v3-subskribojn"
 
 #~ msgid "always use a MDC for encryption"
-#~ msgstr "æiam uzi sigelon (MDC) por æifrado"
+#~ msgstr "ĉiam uzi sigelon (MDC) por ĉifrado"
 
 #~ msgid "add this secret keyring to the list"
-#~ msgstr "aldoni æi tiun sekretan þlosilaron al la listo"
+#~ msgstr "aldoni ĉi tiun sekretan ŝlosilaron al la listo"
 
 #~ msgid "|FILE|load extension module FILE"
 #~ msgstr "|DOSIERO|legi aldonan bibliotekon DOSIERO"
@@ -9274,7 +9353,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "remove key from the public keyring"
-#~ msgstr "forigi þlosilojn de la publika þlosilaro"
+#~ msgstr "forigi ŝlosilojn de la publika ŝlosilaro"
 
 #~ msgid ""
 #~ "It's up to you to assign a value here; this value will never be exported\n"
@@ -9282,8 +9361,8 @@ msgstr ""
 #~ "nothing\n"
 #~ "to do with the (implicitly created) web-of-certificates."
 #~ msgstr ""
-#~ "Vi devas mem doni valoron æi tie; la valoro neniam estos eksportita\n"
-#~ "al alia persono. Ni bezonas øin por realigi la fido-reton; øi neniel\n"
+#~ "Vi devas mem doni valoron ĉi tie; la valoro neniam estos eksportita\n"
+#~ "al alia persono. Ni bezonas ĝin por realigi la fido-reton; ĝi neniel\n"
 #~ "rilatas al la (implicite kreita) atestilo-reto."
 
 #~ msgid ""
@@ -9292,25 +9371,25 @@ msgstr ""
 #~ "access to the secret key.  Answer \"yes\" to set this key to\n"
 #~ "ultimately trusted\n"
 #~ msgstr ""
-#~ "Por konstrui la fido-reton, GnuPG devas scii, kiuj þlosiloj estas\n"
-#~ "absolute fidataj; normale tiuj estas la þlosiloj, por kiuj vi havas\n"
-#~ "aliron al la sekreta þlosilo. Respondu \"jes\" por igi æi tiun þlosilon\n"
+#~ "Por konstrui la fido-reton, GnuPG devas scii, kiuj ŝlosiloj estas\n"
+#~ "absolute fidataj; normale tiuj estas la ŝlosiloj, por kiuj vi havas\n"
+#~ "aliron al la sekreta ŝlosilo. Respondu \"jes\" por igi ĉi tiun ŝlosilon\n"
 #~ "absolute fidata\n"
 
 #~ msgid "If you want to use this untrusted key anyway, answer \"yes\"."
 #~ msgstr ""
-#~ "Se vi tamen volas uzi æi tiun nefidatan þlosilon, respondu per \"jes\"."
+#~ "Se vi tamen volas uzi ĉi tiun nefidatan ŝlosilon, respondu per \"jes\"."
 
 #~ msgid ""
 #~ "Enter the user ID of the addressee to whom you want to send the message."
 #~ msgstr ""
-#~ "Donu la uzantidentigilon de la adresito, al kiu vi volas sendi la mesaøon."
+#~ "Donu la uzantidentigilon de la adresito, al kiu vi volas sendi la mesaĝon."
 
 #~ msgid "Enter the size of the key"
-#~ msgstr "Donu la þlosilgrandon"
+#~ msgstr "Donu la ŝlosilgrandon"
 
 #~ msgid "Answer \"yes\" or \"no\""
-#~ msgstr "Respondu per \"jes\" aý \"ne\""
+#~ msgstr "Respondu per \"jes\" aŭ \"ne\""
 
 #~ msgid ""
 #~ "Enter the required value as shown in the prompt.\n"
@@ -9320,11 +9399,11 @@ msgstr ""
 #~ msgstr ""
 #~ "Donu la bezonatan valoron, kiel montrite en la invito.\n"
 #~ "Eblas doni ISO-forman daton (JJJJ-MM-TT), sed vi ne ricevos\n"
-#~ "bonan eraromesaøon; anstataýe la sistemo provas interpreti\n"
+#~ "bonan eraromesaĝon; anstataŭe la sistemo provas interpreti\n"
 #~ "la donitan valoron kiel gamon."
 
 #~ msgid "Enter the name of the key holder"
-#~ msgstr "Donu la nomon de la þlosilposedanto"
+#~ msgstr "Donu la nomon de la ŝlosilposedanto"
 
 #~ msgid "please enter an optional but highly suggested email address"
 #~ msgstr "bonvolu doni retadreson (ne devige, sed tre rekomendate)"
@@ -9339,15 +9418,15 @@ msgstr ""
 #~ "O  to continue with key generation.\n"
 #~ "Q  to to quit the key generation."
 #~ msgstr ""
-#~ "N  por þanøi la nomon.\n"
-#~ "K  por þanøi la komenton.\n"
-#~ "A  por þanøi la retadreson.\n"
-#~ "B  por daýrigi kun la þlosilkreado.\n"
-#~ "F  por interrompi la þlosilkreadon kaj fini."
+#~ "N  por ŝanĝi la nomon.\n"
+#~ "K  por ŝanĝi la komenton.\n"
+#~ "A  por ŝanĝi la retadreson.\n"
+#~ "B  por daŭrigi kun la ŝlosilkreado.\n"
+#~ "F  por interrompi la ŝlosilkreadon kaj fini."
 
 #~ msgid ""
 #~ "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
-#~ msgstr "Respondu per \"jes\" (aý nur \"j\"), se la subþlosilo estu kreita."
+#~ msgstr "Respondu per \"jes\" (aŭ nur \"j\"), se la subŝlosilo estu kreita."
 
 #~ msgid ""
 #~ "When you sign a user ID on a key, you should first verify that the key\n"
@@ -9392,60 +9471,60 @@ msgstr ""
 #~ "\n"
 #~ "If you don't know what the right answer is, answer \"0\"."
 #~ msgstr ""
-#~ "Kiam vi subskribas uzantidentigilon sur þlosilo, vi devas unue kontroli,\n"
-#~ "ke la þlosilo apartenas al la persono nomita en la identigilo. Estas\n"
+#~ "Kiam vi subskribas uzantidentigilon sur ŝlosilo, vi devas unue kontroli,\n"
+#~ "ke la ŝlosilo apartenas al la persono nomita en la identigilo. Estas\n"
 #~ "utile por aliaj homoj scii, kiom zorge vi kontrolis tion.\n"
 #~ "\n"
 #~ "\"0\" signifas, ke vi faras nenian specifan aserton pri tio, kiel zorge "
 #~ "vi\n"
-#~ "    kontrolis la þlosilon.\n"
+#~ "    kontrolis la ŝlosilon.\n"
 #~ "\n"
-#~ "\"1\" signifas, ke vi kredas, ke la þlosilo apartenas al la homo, kiu\n"
-#~ "    pretendas posedi øin, sed vi ne povis kontroli, aý simple ne\n"
-#~ "    kontrolis la þlosilon. Tio estas utila, kiam oni subskribas la\n"
-#~ "    þlosilon de pseýdonoma uzanto.\n"
+#~ "\"1\" signifas, ke vi kredas, ke la ŝlosilo apartenas al la homo, kiu\n"
+#~ "    pretendas posedi ĝin, sed vi ne povis kontroli, aŭ simple ne\n"
+#~ "    kontrolis la ŝlosilon. Tio estas utila, kiam oni subskribas la\n"
+#~ "    ŝlosilon de pseŭdonoma uzanto.\n"
 #~ "\n"
-#~ "\"2\" signifas, ke vi malzorge kontrolis la þlosilon. Ekzemple, povas "
+#~ "\"2\" signifas, ke vi malzorge kontrolis la ŝlosilon. Ekzemple, povas "
 #~ "esti,\n"
-#~ "    ke vi kontrolis la fingroþpuron de la þlosilo kaj komparis la\n"
-#~ "    uzantidentigilon sur la þlosilo kun foto-identigilo.\n"
+#~ "    ke vi kontrolis la fingroŝpuron de la ŝlosilo kaj komparis la\n"
+#~ "    uzantidentigilon sur la ŝlosilo kun foto-identigilo.\n"
 #~ "\n"
-#~ "\"3\" signifas, ke vi zorge kontrolis la þlosilon. Ekzemple, povas esti,\n"
-#~ "    ke vi kontrolis la fingroþpuron persone æe la posedanto de la\n"
-#~ "    þlosilo, kaj vi kontrolis, per malfacile falsebla dokumento kun\n"
-#~ "    foto-identigilo (ekzemple pasporto), ke la nomo de þlosilposedanto\n"
-#~ "    kongruas kun la nomo en la uzantidentigilo sur la þlosilo, kaj fine\n"
-#~ "    vi kontrolis (per interþanøo de retmesaøoj), ke la retadreso sur\n"
-#~ "    la þlosilo apartenas al la posedanto de la þlosilo.\n"
+#~ "\"3\" signifas, ke vi zorge kontrolis la ŝlosilon. Ekzemple, povas esti,\n"
+#~ "    ke vi kontrolis la fingroŝpuron persone ĉe la posedanto de la\n"
+#~ "    ŝlosilo, kaj vi kontrolis, per malfacile falsebla dokumento kun\n"
+#~ "    foto-identigilo (ekzemple pasporto), ke la nomo de ŝlosilposedanto\n"
+#~ "    kongruas kun la nomo en la uzantidentigilo sur la ŝlosilo, kaj fine\n"
+#~ "    vi kontrolis (per interŝanĝo de retmesaĝoj), ke la retadreso sur\n"
+#~ "    la ŝlosilo apartenas al la posedanto de la ŝlosilo.\n"
 #~ "\n"
 #~ "Notu, ke la ekzemploj donitaj supre por la niveloj 2 kaj 3 estas nur\n"
 #~ "ekzemploj. Vi devas fine mem decidi, kion precize signifas \"malzorga\"\n"
-#~ "kaj \"zorga\", kiam vi subskribas aliajn þlosilojn.\n"
+#~ "kaj \"zorga\", kiam vi subskribas aliajn ŝlosilojn.\n"
 #~ "\n"
-#~ "Se vi ne scias la øustan respondon, respondu per \"0\"."
+#~ "Se vi ne scias la ĝustan respondon, respondu per \"0\"."
 
 #, fuzzy
 #~ msgid "Answer \"yes\" if you want to sign ALL the user IDs"
-#~ msgstr "Respondu per \"jes\", se vi volas subskribi æiujn uzantidentigilojn"
+#~ msgstr "Respondu per \"jes\", se vi volas subskribi ĉiujn uzantidentigilojn"
 
 #~ msgid ""
 #~ "Answer \"yes\" if you really want to delete this user ID.\n"
 #~ "All certificates are then also lost!"
 #~ msgstr ""
-#~ "Respondu per \"jes\", se vi vere volas forviþi la uzantidentigilon.\n"
-#~ "Tiam ankaý æiuj atestiloj perdiøos!"
+#~ "Respondu per \"jes\", se vi vere volas forviŝi la uzantidentigilon.\n"
+#~ "Tiam ankaŭ ĉiuj atestiloj perdiĝos!"
 
 #~ msgid "Answer \"yes\" if it is okay to delete the subkey"
-#~ msgstr "Respondu per \"jes\", se la subþlosilo estu forviþita"
+#~ msgstr "Respondu per \"jes\", se la subŝlosilo estu forviŝita"
 
 #~ msgid ""
 #~ "This is a valid signature on the key; you normally don't want\n"
 #~ "to delete this signature because it may be important to establish a\n"
 #~ "trust connection to the key or another key certified by this key."
 #~ msgstr ""
-#~ "Æi tio estas valida þlosilsubskribo; normale vi ne volas forviþi\n"
-#~ "æi tiun subskribon, æar eble øi estos grava por establi fido-ligon\n"
-#~ "al la þlosilo aý al alia þlosilo atestita per æi tiu þlosilo."
+#~ "Ĉi tio estas valida ŝlosilsubskribo; normale vi ne volas forviŝi\n"
+#~ "ĉi tiun subskribon, ĉar eble ĝi estos grava por establi fido-ligon\n"
+#~ "al la ŝlosilo aŭ al alia ŝlosilo atestita per ĉi tiu ŝlosilo."
 
 #~ msgid ""
 #~ "This signature can't be checked because you don't have the\n"
@@ -9453,17 +9532,17 @@ msgstr ""
 #~ "know which key was used because this signing key might establish\n"
 #~ "a trust connection through another already certified key."
 #~ msgstr ""
-#~ "La subskribo ne estas kontrolebla, æar vi ne havas la respondan\n"
-#~ "þlosilon. Vi devus prokrasti øian forviþon, øis vi scios, kiu\n"
-#~ "þlosilo estis uzita, æar la subskribanta þlosilo eble establos\n"
-#~ "fido-ligon tra alia jam atestita þlosilo."
+#~ "La subskribo ne estas kontrolebla, ĉar vi ne havas la respondan\n"
+#~ "ŝlosilon. Vi devus prokrasti ĝian forviŝon, ĝis vi scios, kiu\n"
+#~ "ŝlosilo estis uzita, ĉar la subskribanta ŝlosilo eble establos\n"
+#~ "fido-ligon tra alia jam atestita ŝlosilo."
 
 #~ msgid ""
 #~ "The signature is not valid.  It does make sense to remove it from\n"
 #~ "your keyring."
 #~ msgstr ""
-#~ "La subskribo ne estas valida. Estas prudente forigi øin de\n"
-#~ "via þlosilaro."
+#~ "La subskribo ne estas valida. Estas prudente forigi ĝin de\n"
+#~ "via ŝlosilaro."
 
 #~ msgid ""
 #~ "This is a signature which binds the user ID to the key. It is\n"
@@ -9472,9 +9551,9 @@ msgstr ""
 #~ "only if this self-signature is for some reason not valid and\n"
 #~ "a second one is available."
 #~ msgstr ""
-#~ "Æi tio estas subskribo, kiu ligas la uzantidentigilon al la þlosilo.\n"
+#~ "Ĉi tio estas subskribo, kiu ligas la uzantidentigilon al la ŝlosilo.\n"
 #~ "Normale ne estas konsilinde forigi tian subskribon. Efektive, GnuPG\n"
-#~ "eble ne povus uzi la þlosilon poste. Do, faru æi tion, nur se la\n"
+#~ "eble ne povus uzi la ŝlosilon poste. Do, faru ĉi tion, nur se la\n"
 #~ "mem-subskribo estas ial nevalida, kaj dua mem-subskribo estas\n"
 #~ "havebla."
 
@@ -9484,11 +9563,11 @@ msgstr ""
 #~ "to the current list of preferences.  The timestamp of all affected\n"
 #~ "self-signatures will be advanced by one second.\n"
 #~ msgstr ""
-#~ "Þanøi la preferojn de æiuj uzantidentigiloj (aý nur la elektitaj)\n"
-#~ "al la aktuala listo de preferoj. La dato de æiuj trafitaj\n"
-#~ "mem-subskriboj estos antaýenigitaj je unu sekundo.\n"
+#~ "Ŝanĝi la preferojn de ĉiuj uzantidentigiloj (aŭ nur la elektitaj)\n"
+#~ "al la aktuala listo de preferoj. La dato de ĉiuj trafitaj\n"
+#~ "mem-subskriboj estos antaŭenigitaj je unu sekundo.\n"
 
-#~ msgid "Please enter the passhrase; this is a secret sentence \n"
+#~ msgid "Please enter the passphrase; this is a secret sentence \n"
 #~ msgstr "Bonvolu doni la pasfrazon; tio estas sekreta frazo \n"
 
 #~ msgid ""
@@ -9498,7 +9577,7 @@ msgstr ""
 #~ "tajpis."
 
 #~ msgid "Give the name of the file to which the signature applies"
-#~ msgstr "Donu la nomon de la dosiero, al kiu la subskribo aplikiøas"
+#~ msgstr "Donu la nomon de la dosiero, al kiu la subskribo aplikiĝas"
 
 #~ msgid "Answer \"yes\" if it is okay to overwrite the file"
 #~ msgstr "Respondu per \"jes\", se la dosiero estu surskribita"
@@ -9524,18 +9603,18 @@ msgstr ""
 #~ "      Use this to state that the user ID should not longer be used;\n"
 #~ "      this is normally used to mark an email address invalid.\n"
 #~ msgstr ""
-#~ "Vi devus doni kialon por æi tiu atestilo. Depende de la kunteksto, vi\n"
-#~ "povas elekti el æi tiu listo:\n"
-#~ "  \"Þlosilo estas kompromitita\"\n"
-#~ "      Uzu æi tion, se vi pensas, ke nerajtigita homo havis aliron al\n"
-#~ "      via sekreta þlosilo.\n"
-#~ "  \"Þlosilo estas anstataýigita\"\n"
-#~ "      Uzu æi tion, se vi anstataýigis la þlosilon per pli nova.\n"
-#~ "  \"Þlosilo estas ne plu uzata\"\n"
-#~ "      Uzu æi tion, se vi retiris æi tiun þlosilon.\n"
+#~ "Vi devus doni kialon por ĉi tiu atestilo. Depende de la kunteksto, vi\n"
+#~ "povas elekti el ĉi tiu listo:\n"
+#~ "  \"Ŝlosilo estas kompromitita\"\n"
+#~ "      Uzu ĉi tion, se vi pensas, ke nerajtigita homo havis aliron al\n"
+#~ "      via sekreta ŝlosilo.\n"
+#~ "  \"Ŝlosilo estas anstataŭigita\"\n"
+#~ "      Uzu ĉi tion, se vi anstataŭigis la ŝlosilon per pli nova.\n"
+#~ "  \"Ŝlosilo estas ne plu uzata\"\n"
+#~ "      Uzu ĉi tion, se vi retiris ĉi tiun ŝlosilon.\n"
 #~ "  \"Uzantidentigilo ne plu validas\"\n"
-#~ "      Uzu æi tion por aserti, ke la uzantidentigilo ne plu estu uzata;\n"
-#~ "      normale oni uzas æi tion por marki retadreson kiel nevalidan.\n"
+#~ "      Uzu ĉi tion por aserti, ke la uzantidentigilo ne plu estu uzata;\n"
+#~ "      normale oni uzas ĉi tion por marki retadreson kiel nevalidan.\n"
 
 #~ msgid ""
 #~ "If you like, you can enter a text describing why you issue this\n"
@@ -9543,7 +9622,7 @@ msgstr ""
 #~ "An empty line ends the text.\n"
 #~ msgstr ""
 #~ "Se vi volas, vi povas doni tekston por priskribi, kial vi faras\n"
-#~ "æi tiun revokatestilon. Bonvolu fari æi tiun tekston konciza.\n"
+#~ "ĉi tiun revokatestilon. Bonvolu fari ĉi tiun tekston konciza.\n"
 #~ "Malplena linio finas la tekston.\n"
 
 #, fuzzy
@@ -9557,28 +9636,28 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "key generation is not available from the commandline\n"
-#~ msgstr "gpg-agent ne estas disponata en æi tiu sesio\n"
+#~ msgstr "gpg-agent ne estas disponata en ĉi tiu sesio\n"
 
 #, fuzzy
 #~ msgid "please use the script \"%s\" to generate a new key\n"
-#~ msgstr "Bonvolu elekti, kian þlosilon vi deziras:\n"
+#~ msgstr "Bonvolu elekti, kian ŝlosilon vi deziras:\n"
 
 #, fuzzy
 #~ msgid ".\n"
 #~ msgstr "%s.\n"
 
 #~ msgid "problem with the agent - disabling agent use\n"
-#~ msgstr "problemo kun agento - malþaltas uzadon de agento\n"
+#~ msgstr "problemo kun agento - malŝaltas uzadon de agento\n"
 
 #, fuzzy
 #~ msgid "can't query passphrase in batch mode\n"
-#~ msgstr "ne povas kontroli pasvorton en neinteraga reøimo\n"
+#~ msgstr "ne povas kontroli pasvorton en neinteraga reĝimo\n"
 
 #~ msgid "Repeat passphrase: "
 #~ msgstr "Ripetu pasfrazon: "
 
 #~ msgid "-k[v][v][v][c] [user-id] [keyring]"
-#~ msgstr "-k[v][v][v][c] [uzantidentigilo] [þlosilaro]"
+#~ msgstr "-k[v][v][v][c] [uzantidentigilo] [ŝlosilaro]"
 
 #, fuzzy
 #~ msgid "can't lock `%s': %s\n"
@@ -9612,10 +9691,10 @@ msgstr ""
 #~ "DON'T USE ANY DATA GENERATED BY THIS PROGRAM!!\n"
 #~ "\n"
 #~ msgstr ""
-#~ "La kvazaýstokastilo estas nur simpla protezo, por ke la\n"
-#~ "programo entute ruliøu; øi neniel estas forta stokastilo!\n"
+#~ "La kvazaŭstokastilo estas nur simpla protezo, por ke la\n"
+#~ "programo entute ruliĝu; ĝi neniel estas forta stokastilo!\n"
 #~ "\n"
-#~ "NE UZU DATENOJN KREITAJN DE ÆI TIU PROGRAMO!!\n"
+#~ "NE UZU DATENOJN KREITAJN DE ĈI TIU PROGRAMO!!\n"
 #~ "\n"
 
 #~ msgid ""
@@ -9624,23 +9703,23 @@ msgstr ""
 #~ "the OS a chance to collect more entropy! (Need %d more bytes)\n"
 #~ msgstr ""
 #~ "\n"
-#~ "Nesufiæe da stokastaj datenoj. Bonvolu fari ion por ebligi al la\n"
+#~ "Nesufiĉe da stokastaj datenoj. Bonvolu fari ion por ebligi al la\n"
 #~ "mastruma sistemo kolekti pli da entropio! (Mankas %d bitokoj)\n"
 
 #, fuzzy
 #~ msgid "card reader not available\n"
-#~ msgstr "sekreta þlosilo ne havebla"
+#~ msgstr "sekreta ŝlosilo ne havebla"
 
 #, fuzzy
 #~ msgid "NOTE: %s is not available in this version\n"
-#~ msgstr "gpg-agent ne estas disponata en æi tiu sesio\n"
+#~ msgstr "gpg-agent ne estas disponata en ĉi tiu sesio\n"
 
 #, fuzzy
 #~ msgid "         algorithms on these user IDs:\n"
 #~ msgstr "Vi subskribis la sekvajn uzantidentigilojn:\n"
 
 #~ msgid "general error"
-#~ msgstr "øenerala eraro"
+#~ msgstr "ĝenerala eraro"
 
 #~ msgid "unknown packet type"
 #~ msgstr "nekonata paketo-speco"
@@ -9649,10 +9728,10 @@ msgstr ""
 #~ msgstr "nekonata kompendi-metodo"
 
 #~ msgid "bad public key"
-#~ msgstr "malbona publika þlosilo"
+#~ msgstr "malbona publika ŝlosilo"
 
 #~ msgid "bad secret key"
-#~ msgstr "malbona sekreta þlosilo"
+#~ msgstr "malbona sekreta ŝlosilo"
 
 #~ msgid "bad signature"
 #~ msgstr "malbona subskribo"
@@ -9661,7 +9740,7 @@ msgstr ""
 #~ msgstr "eraro en kontrolsumo"
 
 #~ msgid "unknown cipher algorithm"
-#~ msgstr "nekonata æifrad-metodo"
+#~ msgstr "nekonata ĉifrad-metodo"
 
 #~ msgid "invalid packet"
 #~ msgstr "nevalida paketo"
@@ -9670,31 +9749,31 @@ msgstr ""
 #~ msgstr "uzantidentigilo ne ekzistas"
 
 #~ msgid "secret key not available"
-#~ msgstr "sekreta þlosilo ne havebla"
+#~ msgstr "sekreta ŝlosilo ne havebla"
 
 #~ msgid "wrong secret key used"
-#~ msgstr "maløusta sekreta þlosilo uzata"
+#~ msgstr "malĝusta sekreta ŝlosilo uzata"
 
 #~ msgid "bad key"
-#~ msgstr "malbona þlosilo"
+#~ msgstr "malbona ŝlosilo"
 
 #~ msgid "file write error"
-#~ msgstr "skriberaro æe dosiero"
+#~ msgstr "skriberaro ĉe dosiero"
 
 #~ msgid "unknown compress algorithm"
 #~ msgstr "nekonata densig-metodo"
 
 #~ msgid "file open error"
-#~ msgstr "eraro æe malfermo de dosiero"
+#~ msgstr "eraro ĉe malfermo de dosiero"
 
 #~ msgid "file create error"
-#~ msgstr "eraro æe kreo de dosiero"
+#~ msgstr "eraro ĉe kreo de dosiero"
 
 #~ msgid "unimplemented pubkey algorithm"
-#~ msgstr "nerealigita publikþlosila metodo"
+#~ msgstr "nerealigita publikŝlosila metodo"
 
 #~ msgid "unimplemented cipher algorithm"
-#~ msgstr "nerealigita æifrad-metodo"
+#~ msgstr "nerealigita ĉifrad-metodo"
 
 #~ msgid "unknown signature class"
 #~ msgstr "nekonata klaso de subskribo"
@@ -9706,19 +9785,19 @@ msgstr ""
 #~ msgstr "trafis rimedolimon"
 
 #~ msgid "invalid keyring"
-#~ msgstr "nevalida þlosilaro"
+#~ msgstr "nevalida ŝlosilaro"
 
 #~ msgid "malformed user id"
 #~ msgstr "misformita uzantidentigilo"
 
 #~ msgid "file close error"
-#~ msgstr "eraro æe fermo de dosiero"
+#~ msgstr "eraro ĉe fermo de dosiero"
 
 #~ msgid "file rename error"
-#~ msgstr "eraro æe renomado de dosiero"
+#~ msgstr "eraro ĉe renomado de dosiero"
 
 #~ msgid "file delete error"
-#~ msgstr "eraro æe forviþo de dosiero"
+#~ msgstr "eraro ĉe forviŝo de dosiero"
 
 #~ msgid "unexpected data"
 #~ msgstr "neatendita dateno"
@@ -9727,48 +9806,45 @@ msgstr ""
 #~ msgstr "malkongruo de tempostampoj"
 
 #~ msgid "unusable pubkey algorithm"
-#~ msgstr "neuzebla publikþlosila metodo"
+#~ msgstr "neuzebla publikŝlosila metodo"
 
 #~ msgid "file exists"
 #~ msgstr "dosiero ekzistas"
 
 #~ msgid "weak key"
-#~ msgstr "malforta þlosilo"
+#~ msgstr "malforta ŝlosilo"
 
 #~ msgid "bad URI"
 #~ msgstr "malbona URI"
 
-#~ msgid "network error"
-#~ msgstr "reteraro"
-
 #~ msgid "not processed"
 #~ msgstr "ne traktita"
 
 #~ msgid "unusable public key"
-#~ msgstr "neuzebla publika þlosilo"
+#~ msgstr "neuzebla publika ŝlosilo"
 
 #~ msgid "unusable secret key"
-#~ msgstr "neuzebla sekreta þlosilo"
+#~ msgstr "neuzebla sekreta ŝlosilo"
 
 #~ msgid "keyserver error"
-#~ msgstr "þlosilservila eraro"
+#~ msgstr "ŝlosilservila eraro"
 
 #, fuzzy
 #~ msgid "no card"
-#~ msgstr "ne æifrita"
+#~ msgstr "ne ĉifrita"
 
 #, fuzzy
 #~ msgid "no data"
 #~ msgstr "mankas subskribitaj datenoj\n"
 
 #~ msgid "... this is a bug (%s:%d:%s)\n"
-#~ msgstr "... æi tio estas cimo (%s:%d:%s)\n"
+#~ msgstr "... ĉi tio estas cimo (%s:%d:%s)\n"
 
 #~ msgid "operation is not possible without initialized secure memory\n"
 #~ msgstr "operacio ne eblas sen sekura memoro kun komenca valoro\n"
 
 #~ msgid "(you may have used the wrong program for this task)\n"
-#~ msgstr "(eble vi uzis la maløustan programon por æi tiu tasko)\n"
+#~ msgstr "(eble vi uzis la malĝustan programon por ĉi tiu tasko)\n"
 
 #~ msgid ""
 #~ "please see http://www.gnupg.org/why-not-idea.html for more information\n"
@@ -9785,11 +9861,11 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "expired: %s)"
-#~ msgstr " [eksvalidiøos: %s]"
+#~ msgstr " [eksvalidiĝos: %s]"
 
 #, fuzzy
 #~ msgid "key %s: expired signature from key %s - skipped\n"
-#~ msgstr "þlosilo %08lX: neeksportebla subskribo (klaso %02x) - ignorita\n"
+#~ msgstr "ŝlosilo %08lX: neeksportebla subskribo (klaso %02x) - ignorita\n"
 
 #, fuzzy
 #~ msgid "Unable to clean `%s'\n"
@@ -9797,11 +9873,11 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "No user IDs are removable.\n"
-#~ msgstr "Mankas uzantidentigilo por þlosilo\n"
+#~ msgstr "Mankas uzantidentigilo por ŝlosilo\n"
 
 #, fuzzy
 #~ msgid "bad passphrase or unknown cipher algorithm (%d)\n"
-#~ msgstr "nekonata æifrad-metodo"
+#~ msgstr "nekonata ĉifrad-metodo"
 
 #~ msgid "can't set client pid for the agent\n"
 #~ msgstr "ne povas agordi kliento-PID por la agento\n"
@@ -9813,22 +9889,22 @@ msgstr ""
 #~ msgstr "ne povas akiri skribo-FD de servilo por la agento\n"
 
 #~ msgid "select secondary key N"
-#~ msgstr "elekti flankan þlosilon N"
+#~ msgstr "elekti flankan ŝlosilon N"
 
 #~ msgid "list signatures"
 #~ msgstr "listigi subskribojn"
 
 #~ msgid "sign the key"
-#~ msgstr "subskribi la þlosilon"
+#~ msgstr "subskribi la ŝlosilon"
 
 #~ msgid "add a secondary key"
-#~ msgstr "aldoni flankan þlosilon"
+#~ msgstr "aldoni flankan ŝlosilon"
 
 #~ msgid "delete signatures"
-#~ msgstr "forviþi subskribojn"
+#~ msgstr "forviŝi subskribojn"
 
 #~ msgid "change the expire date"
-#~ msgstr "þanøi la daton de eksvalidiøo"
+#~ msgstr "ŝanĝi la daton de eksvalidiĝo"
 
 #~ msgid "set preference list"
 #~ msgstr "agordi liston de preferoj"
@@ -9837,7 +9913,7 @@ msgstr ""
 #~ msgstr "aktualigitaj preferoj"
 
 #~ msgid "No secondary key with index %d\n"
-#~ msgstr "Mankas flanka þlosilo kun indekso %d\n"
+#~ msgstr "Mankas flanka ŝlosilo kun indekso %d\n"
 
 #~ msgid "--nrsign-key user-id"
 #~ msgstr "--nrsign-key uzantidentigilo"
@@ -9846,10 +9922,10 @@ msgstr ""
 #~ msgstr "--nrlsign-key uzantidentigilo"
 
 #~ msgid "sign the key non-revocably"
-#~ msgstr "subskribi la þlosilon nerevokeble"
+#~ msgstr "subskribi la ŝlosilon nerevokeble"
 
 #~ msgid "sign the key locally and non-revocably"
-#~ msgstr "subskribi la þlosilon loke kaj nerevokeble"
+#~ msgstr "subskribi la ŝlosilon loke kaj nerevokeble"
 
 #~ msgid "q"
 #~ msgstr "f"
@@ -9881,7 +9957,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "generate"
-#~ msgstr "øenerala eraro"
+#~ msgstr "ĝenerala eraro"
 
 #~ msgid "passwd"
 #~ msgstr "pasf"
@@ -9950,7 +10026,7 @@ msgstr ""
 #~ msgstr "eksval"
 
 #~ msgid "primary"
-#~ msgstr "æefa"
+#~ msgstr "ĉefa"
 
 #~ msgid "toggle"
 #~ msgstr "alia"
@@ -9972,7 +10048,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "keyserver"
-#~ msgstr "þlosilservila eraro"
+#~ msgstr "ŝlosilservila eraro"
 
 #~ msgid "trust"
 #~ msgstr "fido"
@@ -10002,33 +10078,33 @@ msgstr ""
 #~ "              default keysize is 1024 bits\n"
 #~ "    highest suggested keysize is 2048 bits\n"
 #~ msgstr ""
-#~ "Kreos novan %s-þlosilparon.\n"
-#~ "                minimuma þlosilgrando estas  768 bitoj\n"
-#~ "               implicita þlosilgrando estas 1024 bitoj\n"
-#~ " plej granda rekomendata þlosilgrando estas 2048 bitoj\n"
+#~ "Kreos novan %s-ŝlosilparon.\n"
+#~ "                minimuma ŝlosilgrando estas  768 bitoj\n"
+#~ "               implicita ŝlosilgrando estas 1024 bitoj\n"
+#~ " plej granda rekomendata ŝlosilgrando estas 2048 bitoj\n"
 
 #~ msgid "DSA only allows keysizes from 512 to 1024\n"
-#~ msgstr "DSA permesas þlosilgrandon nur inter 512 kaj 1024\n"
+#~ msgstr "DSA permesas ŝlosilgrandon nur inter 512 kaj 1024\n"
 
 #~ msgid "keysize too small; 1024 is smallest value allowed for RSA.\n"
-#~ msgstr "þlosilgrando tro malgranda; 1024 estas plej eta valoro por RSA.\n"
+#~ msgstr "ŝlosilgrando tro malgranda; 1024 estas plej eta valoro por RSA.\n"
 
 #~ msgid "keysize too small; 768 is smallest value allowed.\n"
-#~ msgstr "þlosilgrando tro malgranda; 768 estas plej eta permesata valoro.\n"
+#~ msgstr "ŝlosilgrando tro malgranda; 768 estas plej eta permesata valoro.\n"
 
 #~ msgid "keysize too large; %d is largest value allowed.\n"
-#~ msgstr "þlosilgrando tro granda; %d estas plej granda permesata valoro.\n"
+#~ msgstr "ŝlosilgrando tro granda; %d estas plej granda permesata valoro.\n"
 
 #~ msgid ""
 #~ "Keysizes larger than 2048 are not suggested because\n"
 #~ "computations take REALLY long!\n"
 #~ msgstr ""
-#~ "Þlosilgrandoj pli grandaj ol 2048 ne estas rekomendataj,\n"
-#~ "æar la komputado daýras TRE longe!\n"
+#~ "Ŝlosilgrandoj pli grandaj ol 2048 ne estas rekomendataj,\n"
+#~ "ĉar la komputado daŭras TRE longe!\n"
 
 #, fuzzy
 #~ msgid "Are you sure that you want this keysize? (y/N) "
-#~ msgstr "Æu vi estas certa, ke vi deziras æi tiun þlosilgrandon? "
+#~ msgstr "Ĉu vi estas certa, ke vi deziras ĉi tiun ŝlosilgrandon? "
 
 #~ msgid ""
 #~ "Okay, but keep in mind that your monitor and keyboard radiation is also "
@@ -10043,27 +10119,27 @@ msgstr ""
 #~ msgid ""
 #~ "this cipher algorithm is deprecated; please use a more standard one!\n"
 #~ msgstr ""
-#~ "æi tiu æifrad-metodo estas malrekomendata; bonvolu uzi pli normalan!\n"
+#~ "ĉi tiu ĉifrad-metodo estas malrekomendata; bonvolu uzi pli normalan!\n"
 
 #, fuzzy
 #~ msgid "sorry, can't do this in batch mode\n"
-#~ msgstr "ne povas fari tion en neinteraga reøimo\n"
+#~ msgstr "ne povas fari tion en neinteraga reĝimo\n"
 
 #, fuzzy
 #~ msgid "can't open file `%s': %s\n"
 #~ msgstr "ne povas malfermi %s: %s\n"
 
 #~ msgid "key %08lX: key has been revoked!\n"
-#~ msgstr "þlosilo %08lX: þlosilo estas revokita!\n"
+#~ msgstr "ŝlosilo %08lX: ŝlosilo estas revokita!\n"
 
 #~ msgid "key %08lX: subkey has been revoked!\n"
-#~ msgstr "þlosilo %08lX: subþlosilo estas revokita!\n"
+#~ msgstr "ŝlosilo %08lX: subŝlosilo estas revokita!\n"
 
 #~ msgid "%08lX: key has expired\n"
-#~ msgstr "%08lX: þlosilo eksvalidiøis\n"
+#~ msgstr "%08lX: ŝlosilo eksvalidiĝis\n"
 
 #~ msgid "%08lX: We do NOT trust this key\n"
-#~ msgstr "%08lX: Ni NE fidas æi tiun þlosilon\n"
+#~ msgstr "%08lX: Ni NE fidas ĉi tiun ŝlosilon\n"
 
 #, fuzzy
 #~ msgid "   (%d) RSA (auth only)\n"
@@ -10071,15 +10147,15 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "   (%d) RSA (sign and auth)\n"
-#~ msgstr "   (%d) RSA (subskribi kaj æifri)\n"
+#~ msgstr "   (%d) RSA (subskribi kaj ĉifri)\n"
 
 #, fuzzy
 #~ msgid "   (%d) RSA (encrypt and auth)\n"
-#~ msgstr "   (%d) RSA (nur æifri)\n"
+#~ msgstr "   (%d) RSA (nur ĉifri)\n"
 
 #, fuzzy
 #~ msgid "  (%d) RSA (sign, encrypt and auth)\n"
-#~ msgstr "   (%d) RSA (subskribi kaj æifri)\n"
+#~ msgstr "   (%d) RSA (subskribi kaj ĉifri)\n"
 
 #~ msgid "%s: can't open: %s\n"
 #~ msgstr "%s: ne povas malfermi: %s\n"
@@ -10105,20 +10181,20 @@ msgstr ""
 #~ "locally signed with your key %s at %s\n"
 #~ msgstr ""
 #~ "\"\n"
-#~ "subskribita per via þlosilo %08lX je %s\n"
+#~ "subskribita per via ŝlosilo %08lX je %s\n"
 
 #~ msgid "%s: can't create lock\n"
-#~ msgstr "%s: ne povas krei þloson\n"
+#~ msgstr "%s: ne povas krei ŝloson\n"
 
 #~ msgid "%s: can't make lock\n"
-#~ msgstr "%s: ne povas krei þloson\n"
+#~ msgstr "%s: ne povas krei ŝloson\n"
 
 #~ msgid "%s: can't create: %s\n"
 #~ msgstr "%s: ne povas krei: %s\n"
 
 #~ msgid "If you want to use this revoked key anyway, answer \"yes\"."
 #~ msgstr ""
-#~ "Se vi tamen volas uzi æi tiun revokitan þlosilon, respondu per \"jes\"."
+#~ "Se vi tamen volas uzi ĉi tiun revokitan ŝlosilon, respondu per \"jes\"."
 
 #, fuzzy
 #~ msgid "Unable to open photo \"%s\": %s\n"
@@ -10129,36 +10205,36 @@ msgstr ""
 #~ msgstr "eksporti la posedantofido-valorojn"
 
 #~ msgid " (main key ID %08lX)"
-#~ msgstr " (æefþlosilo %08lX)"
+#~ msgstr " (ĉefŝlosilo %08lX)"
 
 #~ msgid "rev! subkey has been revoked: %s\n"
-#~ msgstr "rev! subþlosilo estas revokita: %s\n"
+#~ msgstr "rev! subŝlosilo estas revokita: %s\n"
 
 #~ msgid "rev- faked revocation found\n"
 #~ msgstr "rev- falsita revoko trovita\n"
 
 #, fuzzy
 #~ msgid " [expired: %s]"
-#~ msgstr " [eksvalidiøos: %s]"
+#~ msgstr " [eksvalidiĝos: %s]"
 
 #~ msgid " [expires: %s]"
-#~ msgstr " [eksvalidiøos: %s]"
+#~ msgstr " [eksvalidiĝos: %s]"
 
 #, fuzzy
 #~ msgid " [revoked: %s]"
 #~ msgstr "rev"
 
 #~ msgid "|[files]|encrypt files"
-#~ msgstr "|[dosieroj]|æifri dosierojn"
+#~ msgstr "|[dosieroj]|ĉifri dosierojn"
 
 #~ msgid "store only"
 #~ msgstr "nur skribi"
 
 #~ msgid "|[files]|decrypt files"
-#~ msgstr "|[dosieroj]|malæifri dosierojn"
+#~ msgstr "|[dosieroj]|malĉifri dosierojn"
 
 #~ msgid "sign a key locally and non-revocably"
-#~ msgstr "subskribi þlosilon loke kaj nerevokeble"
+#~ msgstr "subskribi ŝlosilon loke kaj nerevokeble"
 
 #~ msgid "list only the sequence of packets"
 #~ msgstr "listigi nur la sinsekvon de paketoj"
@@ -10170,13 +10246,13 @@ msgstr ""
 #~ msgstr "senintervena aktualigo de fido-datenaro"
 
 #~ msgid "fix a corrupted trust database"
-#~ msgstr "ripari fuþitan fido-datenaron"
+#~ msgstr "ripari fuŝitan fido-datenaron"
 
 #~ msgid "De-Armor a file or stdin"
-#~ msgstr "elkirasigi dosieron aý la normalan enigon"
+#~ msgstr "elkirasigi dosieron aŭ la normalan enigon"
 
 #~ msgid "En-Armor a file or stdin"
-#~ msgstr "enkirasigi dosieron aý la normalan enigon"
+#~ msgstr "enkirasigi dosieron aŭ la normalan enigon"
 
 #~ msgid "do not force v3 signatures"
 #~ msgstr "ne devigi v3-subskribojn"
@@ -10185,10 +10261,10 @@ msgstr ""
 #~ msgstr "devigi v4-subskribojn"
 
 #~ msgid "do not force v4 key signatures"
-#~ msgstr "ne devigi v4-þlosilsubskribojn"
+#~ msgstr "ne devigi v4-ŝlosilsubskribojn"
 
 #~ msgid "never use a MDC for encryption"
-#~ msgstr "neniam uzi MDC por æifrado"
+#~ msgstr "neniam uzi MDC por ĉifrado"
 
 #~ msgid "use the gpg-agent"
 #~ msgstr "uzi gpg-agent"
@@ -10197,22 +10273,22 @@ msgstr ""
 #~ msgstr "|[dosiero]|skribi statusinformojn al dosiero"
 
 #~ msgid "|KEYID|ultimately trust this key"
-#~ msgstr "|KEYID|fidi æi tiun þlosilon absolute"
+#~ msgstr "|KEYID|fidi ĉi tiun ŝlosilon absolute"
 
 #~ msgid "emulate the mode described in RFC1991"
-#~ msgstr "imiti la reøimon priskribitan en RFC 1991"
+#~ msgstr "imiti la reĝimon priskribitan en RFC 1991"
 
 #~ msgid "set all packet, cipher and digest options to OpenPGP behavior"
-#~ msgstr "þalti æiujn paket-, æifrad- kaj kompendi-opciojn al OpenPGP-konduto"
+#~ msgstr "ŝalti ĉiujn paket-, ĉifrad- kaj kompendi-opciojn al OpenPGP-konduto"
 
 #~ msgid "set all packet, cipher and digest options to PGP 2.x behavior"
-#~ msgstr "þalti æiujn paket-, æifrad- kaj kompendi-opciojn al PGP-2.x-konduto"
+#~ msgstr "ŝalti ĉiujn paket-, ĉifrad- kaj kompendi-opciojn al PGP-2.x-konduto"
 
 #~ msgid "|NAME|use message digest algorithm NAME for passphrases"
 #~ msgstr "|NOMO|uzi kompendi-metodon NOMO por pasfrazoj"
 
 #~ msgid "throw keyid field of encrypted packets"
-#~ msgstr "forigi la þlosilidentigilon de æifritaj paketoj"
+#~ msgstr "forigi la ŝlosilidentigilon de ĉifritaj paketoj"
 
 #~ msgid "Show Photo IDs"
 #~ msgstr "Montri Foto-Identigilojn"
@@ -10234,24 +10310,24 @@ msgstr ""
 #~ "%08lX: It is not sure that this key really belongs to the owner\n"
 #~ "but it is accepted anyway\n"
 #~ msgstr ""
-#~ "%08lX: Ne estas certe, ke æi tiu þlosilo vere apartenas al la posedanto,\n"
-#~ "sed øi tamen estas akceptita\n"
+#~ "%08lX: Ne estas certe, ke ĉi tiu ŝlosilo vere apartenas al la posedanto,\n"
+#~ "sed ĝi tamen estas akceptita\n"
 
 #~ msgid "preference %c%lu is not valid\n"
 #~ msgstr "prefero %c%lu ne estas valida\n"
 
 #~ msgid "key %08lX: not a rfc2440 key - skipped\n"
-#~ msgstr "þlosilo %08lX: ne estas RFC-2440-þlosilo - ignorita\n"
+#~ msgstr "ŝlosilo %08lX: ne estas RFC-2440-ŝlosilo - ignorita\n"
 
 #, fuzzy
 #~ msgid " (default)"
-#~ msgstr "malæifri datenojn (implicita elekto)"
+#~ msgstr "malĉifri datenojn (implicita elekto)"
 
 #~ msgid "%s%c %4u%c/%08lX  created: %s expires: %s"
-#~ msgstr "%s%c %4u%c/%08lX  kreita: %s eksvalidiøos: %s"
+#~ msgstr "%s%c %4u%c/%08lX  kreita: %s eksvalidiĝos: %s"
 
 #~ msgid "can't get key from keyserver: %s\n"
-#~ msgstr "ne povas akiri þlosilon de þlosilservilo: %s\n"
+#~ msgstr "ne povas akiri ŝlosilon de ŝlosilservilo: %s\n"
 
 #~ msgid "success sending to `%s' (status=%u)\n"
 #~ msgstr "sukceso dum sendo al '%s' (statuso=%u)\n"
@@ -10260,14 +10336,14 @@ msgstr ""
 #~ msgstr "malsukceso dum sendo al '%s': statuso=%u\n"
 
 #~ msgid "can't search keyserver: %s\n"
-#~ msgstr "ne povas seræi æe þlosilservilo: %s\n"
+#~ msgstr "ne povas serĉi ĉe ŝlosilservilo: %s\n"
 
 #, fuzzy
 #~ msgid ""
 #~ "key %08lX: this is a PGP generated ElGamal key which is NOT secure for "
 #~ "signatures!\n"
 #~ msgstr ""
-#~ "æi tio estas PGP-kreita ElGamal-þlosilo, kiu NE estas sekura por "
+#~ "ĉi tio estas PGP-kreita ElGamal-ŝlosilo, kiu NE estas sekura por "
 #~ "subskribado!\n"
 
 #, fuzzy
@@ -10275,24 +10351,24 @@ msgstr ""
 #~ "key %08lX has been created %lu second in future (time warp or clock "
 #~ "problem)\n"
 #~ msgstr ""
-#~ "þlosilo estis kreita %lu sekundon en la estonteco (tempotordo aý "
-#~ "horloøeraro)\n"
+#~ "ŝlosilo estis kreita %lu sekundon en la estonteco (tempotordo aŭ "
+#~ "horloĝeraro)\n"
 
 #, fuzzy
 #~ msgid ""
 #~ "key %08lX has been created %lu seconds in future (time warp or clock "
 #~ "problem)\n"
 #~ msgstr ""
-#~ "þlosilo estis kreita %lu sekundojn en la estonteco (tempotordo aý "
-#~ "horloøeraro)\n"
+#~ "ŝlosilo estis kreita %lu sekundojn en la estonteco (tempotordo aŭ "
+#~ "horloĝeraro)\n"
 
 #, fuzzy
 #~ msgid "key %08lX marked as ultimately trusted\n"
-#~ msgstr "þlosilo markita kiel absolute fidata.\n"
+#~ msgstr "ŝlosilo markita kiel absolute fidata.\n"
 
 #~ msgid "checking at depth %d signed=%d ot(-/q/n/m/f/u)=%d/%d/%d/%d/%d/%d\n"
 #~ msgstr ""
-#~ "kontrolas æe profundo %d subskribita=%d ot(-/q/n/m/f/u)=%d/%d/%d/%d/%d/"
+#~ "kontrolas ĉe profundo %d subskribita=%d ot(-/q/n/m/f/u)=%d/%d/%d/%d/%d/"
 #~ "%d\n"
 
 #~ msgid ""
@@ -10321,64 +10397,64 @@ msgstr ""
 #~ "Elektu la uzotan metodon.\n"
 #~ "\n"
 #~ "DSA (alinome DSS) estas la subskrib-metodo uzebla nur por subskribado.\n"
-#~ "Æi tio estas la rekomendata metodo, æar kontrolado æe DSA-subskriboj\n"
-#~ "estas multe pli rapida ol æe ElGamal.\n"
+#~ "Ĉi tio estas la rekomendata metodo, ĉar kontrolado ĉe DSA-subskriboj\n"
+#~ "estas multe pli rapida ol ĉe ElGamal.\n"
 #~ "\n"
-#~ "ElGamal estas metodo uzebla kaj por subskribado kaj por æifrado.\n"
-#~ "OpenPGP distingas inter du specoj de æi tiu metodo: nuræifra, kaj\n"
-#~ "subskriba-kaj-æifra; efektive temas pri la sama, sed iuj parametroj\n"
-#~ "devas esti elektitaj en speciala maniero por krei sekuran þlosilon\n"
-#~ "por subskribado: æi tiu programo faras tion, sed aliaj OpenPGP-\n"
-#~ "programoj ne devas kompreni la subskriban-kaj-æifran specon.\n"
+#~ "ElGamal estas metodo uzebla kaj por subskribado kaj por ĉifrado.\n"
+#~ "OpenPGP distingas inter du specoj de ĉi tiu metodo: nurĉifra, kaj\n"
+#~ "subskriba-kaj-ĉifra; efektive temas pri la sama, sed iuj parametroj\n"
+#~ "devas esti elektitaj en speciala maniero por krei sekuran ŝlosilon\n"
+#~ "por subskribado: ĉi tiu programo faras tion, sed aliaj OpenPGP-\n"
+#~ "programoj ne devas kompreni la subskriban-kaj-ĉifran specon.\n"
 #~ "\n"
-#~ "La unua (æefa) þlosilo devas esti þlosilo uzebla por subskribado;\n"
-#~ "tial la nuræifra ElGamal-þlosilo ne estas proponata en æi tiu menuo."
+#~ "La unua (ĉefa) ŝlosilo devas esti ŝlosilo uzebla por subskribado;\n"
+#~ "tial la nurĉifra ElGamal-ŝlosilo ne estas proponata en ĉi tiu menuo."
 
 #~ msgid ""
 #~ "Although these keys are defined in RFC2440 they are not suggested\n"
 #~ "because they are not supported by all programs and signatures created\n"
 #~ "with them are quite large and very slow to verify."
 #~ msgstr ""
-#~ "Kvankam æi tiuj þlosiloj estas difinitaj en RFC 2440, ili ne estas\n"
-#~ "rekomendataj, æar ili ne estas komprenataj de æiuj programoj, kaj\n"
+#~ "Kvankam ĉi tiuj ŝlosiloj estas difinitaj en RFC 2440, ili ne estas\n"
+#~ "rekomendataj, ĉar ili ne estas komprenataj de ĉiuj programoj, kaj\n"
 #~ "subskriboj kreitaj per ili etas iom grandaj kaj malrapide kontroleblaj."
 
 #~ msgid "%lu keys so far checked (%lu signatures)\n"
-#~ msgstr "%lu þlosiloj jam kontrolitaj (%lu subskriboj)\n"
+#~ msgstr "%lu ŝlosiloj jam kontrolitaj (%lu subskriboj)\n"
 
 #, fuzzy
 #~ msgid "key %08lX incomplete\n"
-#~ msgstr "þlosilo %08lX: mankas uzantidentigilo\n"
+#~ msgstr "ŝlosilo %08lX: mankas uzantidentigilo\n"
 
 #, fuzzy
 #~ msgid "quit|quit"
 #~ msgstr "fini"
 
 #~ msgid "   (%d) ElGamal (sign and encrypt)\n"
-#~ msgstr "   (%d) ElGamal (subskribi kaj æifri)\n"
+#~ msgstr "   (%d) ElGamal (subskribi kaj ĉifri)\n"
 
 #, fuzzy
 #~ msgid "invalid symkey algorithm detected (%d)\n"
 #~ msgstr "nevalida kompendi-metodo '%s'\n"
 
 #~ msgid "The use of this algorithm is deprecated - create anyway? "
-#~ msgstr "Uzado de æi tiu algoritmo estas malrekomendata - æu tamen krei? "
+#~ msgstr "Uzado de ĉi tiu algoritmo estas malrekomendata - ĉu tamen krei? "
 
 #, fuzzy
 #~ msgid ""
 #~ "you have to start GnuPG again, so it can read the new configuration file\n"
 #~ msgstr ""
-#~ "vi devas restartigi GnuPG, por ke øi povu legi la novan opcio-dosieron\n"
+#~ "vi devas restartigi GnuPG, por ke ĝi povu legi la novan opcio-dosieron\n"
 
 #~ msgid "             Fingerprint:"
 #~ msgstr "             Fingrospuro:"
 
 #~ msgid "|NAME=VALUE|use this notation data"
-#~ msgstr "|NOMO=VALORO|uzi æi tiun notacian datenon"
+#~ msgstr "|NOMO=VALORO|uzi ĉi tiun notacian datenon"
 
 #~ msgid ""
 #~ "the first character of a notation name must be a letter or an underscore\n"
-#~ msgstr "la unua signo de notacia nomo devas esti litero aý substreko\n"
+#~ msgstr "la unua signo de notacia nomo devas esti litero aŭ substreko\n"
 
 #~ msgid "dots in a notation name must be surrounded by other characters\n"
 #~ msgstr "punktoj en notacia nomo devas esti inter aliaj signoj\n"
@@ -10387,21 +10463,21 @@ msgstr ""
 #~ "WARNING: This key already has a photo ID.\n"
 #~ "         Adding another photo ID may confuse some versions of PGP.\n"
 #~ msgstr ""
-#~ "AVERTO: Æi tiu þlosilo jam havas foto-identigilon.\n"
+#~ "AVERTO: Ĉi tiu ŝlosilo jam havas foto-identigilon.\n"
 #~ "        Aldono de alia foto-identigilo eble konfuzos iujn versiojn de "
 #~ "PGP.\n"
 
 #~ msgid "You may only have one photo ID on a key.\n"
-#~ msgstr "Eblas havi nur unu foto-identigilon sur þlosilo.\n"
+#~ msgstr "Eblas havi nur unu foto-identigilon sur ŝlosilo.\n"
 
 #~ msgid "Do you really need such a large keysize? "
-#~ msgstr "Æu vi vere bezonas tiom grandan þlosilgrandon? "
+#~ msgstr "Ĉu vi vere bezonas tiom grandan ŝlosilgrandon? "
 
 #~ msgid "key %08lX: our copy has no self-signature\n"
-#~ msgstr "þlosilo %08lX: nia kopio ne havas mem-subskribon\n"
+#~ msgstr "ŝlosilo %08lX: nia kopio ne havas mem-subskribon\n"
 
 #~ msgid "  Are you sure you still want to sign it?\n"
-#~ msgstr "  Æu vi estas certa, ke vi ankoraý volas subskribi øin?\n"
+#~ msgstr "  Ĉu vi estas certa, ke vi ankoraŭ volas subskribi ĝin?\n"
 
 #~ msgid "   signed by %08lX at %s\n"
 #~ msgstr "   subskribita per %08lX je %s\n"
@@ -10413,7 +10489,7 @@ msgstr ""
 #~ msgstr "--delete-key uzantidentigilo"
 
 #~ msgid "skipped: public key already set with --encrypt-to\n"
-#~ msgstr "ignorita: publika þlosilo jam difinita per --encrypt-to\n"
+#~ msgstr "ignorita: publika ŝlosilo jam difinita per --encrypt-to\n"
 
 #~ msgid "sSmMqQ"
 #~ msgstr "iImMfF"
@@ -10426,7 +10502,7 @@ msgstr ""
 #~ "can assign some missing owner trust values.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Ne povis trovi validan fidovojon al la þlosilo. Ni vidu, æu eblas\n"
+#~ "Ne povis trovi validan fidovojon al la ŝlosilo. Ni vidu, ĉu eblas\n"
 #~ "atribui iujn mankantajn posedantofido-valorojn.\n"
 #~ "\n"
 
@@ -10434,24 +10510,24 @@ msgstr ""
 #~ "No path leading to one of our keys found.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Nenia vojo trovita, kiu kondukas al unu el niaj þlosiloj.\n"
+#~ "Nenia vojo trovita, kiu kondukas al unu el niaj ŝlosiloj.\n"
 #~ "\n"
 
 #~ msgid ""
 #~ "No trust values changed.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Neniuj fidovaloroj þanøitaj.\n"
+#~ "Neniuj fidovaloroj ŝanĝitaj.\n"
 #~ "\n"
 
 #~ msgid "%08lX: no info to calculate a trust probability\n"
 #~ msgstr "%08lX: mankas informoj por kalkuli fidovaloron\n"
 
 #~ msgid "%s: error checking key: %s\n"
-#~ msgstr "%s: eraro dum kontrolo de þlosilo: %s\n"
+#~ msgstr "%s: eraro dum kontrolo de ŝlosilo: %s\n"
 
 #~ msgid "too many entries in unk cache - disabled\n"
-#~ msgstr "tro da registroj en unk-staplo - malþaltas\n"
+#~ msgstr "tro da registroj en unk-staplo - malŝaltas\n"
 
 #~ msgid "assuming bad MDC due to an unknown critical bit\n"
 #~ msgstr "supozas malbonan sigelon (MDC) pro nekonata \"critical bit\"\n"
@@ -10460,34 +10536,34 @@ msgstr ""
 #~ msgstr "lid %lu: atendis dosierujan registron, trovis specon %d\n"
 
 #~ msgid "no primary key for LID %lu\n"
-#~ msgstr "mankas æefa þlosilo por LID %lu\n"
+#~ msgstr "mankas ĉefa ŝlosilo por LID %lu\n"
 
 #~ msgid "error reading primary key for LID %lu: %s\n"
-#~ msgstr "eraro dum legado de æefa þlosilo por LID %lu: %s\n"
+#~ msgstr "eraro dum legado de ĉefa ŝlosilo por LID %lu: %s\n"
 
 #~ msgid "key %08lX: query record failed\n"
-#~ msgstr "þlosilo %08lX: peto-registro malsukcesis\n"
+#~ msgstr "ŝlosilo %08lX: peto-registro malsukcesis\n"
 
 #~ msgid "key %08lX: already in trusted key table\n"
-#~ msgstr "þlosilo %08lX: jam en tabelo de fidataj þlosiloj\n"
+#~ msgstr "ŝlosilo %08lX: jam en tabelo de fidataj ŝlosiloj\n"
 
 #~ msgid "NOTE: secret key %08lX is NOT protected.\n"
-#~ msgstr "NOTO: sekreta þlosilo %08lX NE estas protektita.\n"
+#~ msgstr "NOTO: sekreta ŝlosilo %08lX NE estas protektita.\n"
 
 #~ msgid "key %08lX: secret and public key don't match\n"
-#~ msgstr "þlosilo %08lX: sekreta kaj publika þlosiloj ne kongruas\n"
+#~ msgstr "ŝlosilo %08lX: sekreta kaj publika ŝlosiloj ne kongruas\n"
 
 #~ msgid "key %08lX.%lu: Good subkey binding\n"
-#~ msgstr "þlosilo %08lX.%lu: Bona subþlosila bindado\n"
+#~ msgstr "ŝlosilo %08lX.%lu: Bona subŝlosila bindado\n"
 
 #~ msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
-#~ msgstr "þlosilo %08lX.%lu: Nevalida subþlosila bindado: %s\n"
+#~ msgstr "ŝlosilo %08lX.%lu: Nevalida subŝlosila bindado: %s\n"
 
 #~ msgid "key %08lX.%lu: Valid key revocation\n"
-#~ msgstr "þlosilo %08lX.%lu: Valida þlosilrevoko\n"
+#~ msgstr "ŝlosilo %08lX.%lu: Valida ŝlosilrevoko\n"
 
 #~ msgid "key %08lX.%lu: Invalid key revocation: %s\n"
-#~ msgstr "þlosilo %08lX.%lu: Nevalida þlosilrevoko: %s\n"
+#~ msgstr "ŝlosilo %08lX.%lu: Nevalida ŝlosilrevoko: %s\n"
 
 #~ msgid "Good self-signature"
 #~ msgstr "Bona mem-subskribo"
@@ -10508,56 +10584,56 @@ msgstr ""
 #~ msgstr "Nevalida atestilrevoko"
 
 #~ msgid "sig record %lu[%d] points to wrong record.\n"
-#~ msgstr "subskribo-registro %lu[%d] montras al maløusta registro.\n"
+#~ msgstr "subskribo-registro %lu[%d] montras al malĝusta registro.\n"
 
 #~ msgid "tdbio_search_dir failed: %s\n"
 #~ msgstr "tdbio_search_dir malsukcesis: %s\n"
 
 #~ msgid "lid %lu: insert failed: %s\n"
-#~ msgstr "lid %lu: enþovo malsukcesis: %s\n"
+#~ msgstr "lid %lu: enŝovo malsukcesis: %s\n"
 
 #~ msgid "lid %lu: inserted\n"
-#~ msgstr "lid %lu: enþovita\n"
+#~ msgstr "lid %lu: enŝovita\n"
 
 #~ msgid "\t%lu keys inserted\n"
-#~ msgstr "\t%lu þlosiloj enþovitaj\n"
+#~ msgstr "\t%lu ŝlosiloj enŝovitaj\n"
 
 #~ msgid "lid %lu: dir record w/o key - skipped\n"
-#~ msgstr "lid %lu: dosieruja registro sen þlosilo - ignorita\n"
+#~ msgstr "lid %lu: dosieruja registro sen ŝlosilo - ignorita\n"
 
 #~ msgid "\t%lu due to new pubkeys\n"
-#~ msgstr "\t%lu pro novaj publikaj þlosiloj\n"
+#~ msgstr "\t%lu pro novaj publikaj ŝlosiloj\n"
 
 #~ msgid "Ooops, no keys\n"
-#~ msgstr "Hu, mankas þlosiloj\n"
+#~ msgstr "Hu, mankas ŝlosiloj\n"
 
 #~ msgid "Ooops, no user IDs\n"
 #~ msgstr "Hu, mankas uzantidentigiloj\n"
 
 #~ msgid "check_trust: search dir record failed: %s\n"
-#~ msgstr "check_trust: seræo pri dosieruja registro malsukcesis: %s\n"
+#~ msgstr "check_trust: serĉo pri dosieruja registro malsukcesis: %s\n"
 
 #~ msgid "key %08lX: insert trust record failed: %s\n"
-#~ msgstr "þlosilo %08lX: enþovo de fidoregistro malsukcesis: %s\n"
+#~ msgstr "ŝlosilo %08lX: enŝovo de fidoregistro malsukcesis: %s\n"
 
 #~ msgid "key %08lX.%lu: inserted into trustdb\n"
-#~ msgstr "þlosilo %08lX.%lu: enþovis en fido-datenaron\n"
+#~ msgstr "ŝlosilo %08lX.%lu: enŝovis en fido-datenaron\n"
 
 #~ msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
 #~ msgstr ""
-#~ "þlosilo %08lX.%lu: kreita en la estonteco (tempotordo aý horloøeraro)\n"
+#~ "ŝlosilo %08lX.%lu: kreita en la estonteco (tempotordo aŭ horloĝeraro)\n"
 
 #~ msgid "key %08lX.%lu: expired at %s\n"
-#~ msgstr "þlosilo %08lX.%lu: eksvalidiøis je %s\n"
+#~ msgstr "ŝlosilo %08lX.%lu: eksvalidiĝis je %s\n"
 
 #~ msgid "key %08lX.%lu: trust check failed: %s\n"
-#~ msgstr "þlosilo %08lX.%lu: fido-kontrolo malsukcesis: %s\n"
+#~ msgstr "ŝlosilo %08lX.%lu: fido-kontrolo malsukcesis: %s\n"
 
 #~ msgid "problem finding '%s' in trustdb: %s\n"
 #~ msgstr "problemo dum trovo de '%s' en fido-datenaro: %s\n"
 
 #~ msgid "user '%s' not in trustdb - inserting\n"
-#~ msgstr "uzanto '%s' ne estas en fido-datenaro - enþovas\n"
+#~ msgstr "uzanto '%s' ne estas en fido-datenaro - enŝovas\n"
 
 #~ msgid "too many random bits requested; the limit is %d\n"
 #~ msgstr "tro da stokastaj bitoj petitaj; la limo estas %d\n"
@@ -10566,19 +10642,19 @@ msgstr ""
 #~ msgstr "Por informoj vidu http://www.gnupg.org"
 
 #~ msgid "can't lock keyring `%s': %s\n"
-#~ msgstr "ne povas þlosi la þlosilaron '%s': %s\n"
+#~ msgstr "ne povas ŝlosi la ŝlosilaron '%s': %s\n"
 
 #~ msgid "WARNING: can't yet handle long pref records\n"
 #~ msgstr "AVERTO: ne povas trakti longajn preferoregistrojn\n"
 
 #~ msgid "%s: can't create keyring: %s\n"
-#~ msgstr "%s: ne povas krei þlosilaron: %s\n"
+#~ msgstr "%s: ne povas krei ŝlosilaron: %s\n"
 
 #~ msgid "RSA key cannot be used in this version\n"
-#~ msgstr "RSA-þlosilo ne estas uzebla kun æi tiu versio\n"
+#~ msgstr "RSA-ŝlosilo ne estas uzebla kun ĉi tiu versio\n"
 
 #~ msgid "No key for user ID\n"
-#~ msgstr "Mankas þlosilo por uzantidentigilo\n"
+#~ msgstr "Mankas ŝlosilo por uzantidentigilo\n"
 
 #~ msgid "no secret key for decryption available\n"
-#~ msgstr "mankas sekreta þlosilo por malæifrado\n"
+#~ msgstr "mankas sekreta ŝlosilo por malĉifrado\n"
index 157e529..510dedf 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -1,4 +1,4 @@
-# Mensajes en español para GnuPG.
+# Mensajes en español para GnuPG.
 # Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
 # Urko Lusa <ulusa@euskalnet.net>, 1998, 1999.
 #  I've tried to mantain the terminology used by Armando Ramos
@@ -10,11 +10,11 @@ msgstr ""
 "Project-Id-Version: gnupg 2.0.9\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
 "PO-Revision-Date: 2015-10-09 17:10+0200\n"
-"Last-Translator: Jaime Suárez <jaime.suma@gmail.com>\n"
+"Last-Translator: Jaime Suárez <jaime.suma@gmail.com>\n"
 "Language-Team: Spanish <es@li.org>\n"
 "Language: es\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "plural: Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
@@ -55,7 +55,7 @@ msgstr "|entrada de pin-etiqueta|_Cancelar"
 #, fuzzy
 #| msgid "Do you really want to create a sign and encrypt key? "
 msgid "Do you really want to make your passphrase visible on the screen?"
-msgstr "¿De verdad quiere crear una clave de firma y cifrado? "
+msgstr "¿De verdad quiere crear una clave de firma y cifrado? "
 
 msgid "|pinentry-tt|Make passphrase visible"
 msgstr ""
@@ -63,7 +63,7 @@ msgstr ""
 #, fuzzy
 #| msgid "invalid passphrase"
 msgid "|pinentry-tt|Hide passphrase"
-msgstr "frase contraseña incorrecta"
+msgstr "frase contraseña incorrecta"
 
 #. TRANSLATORS: This string is displayed by Pinentry as the label
 #. for the quality bar.
@@ -83,32 +83,32 @@ msgid ""
 "Please enter your PIN, so that the secret key can be unlocked for this "
 "session"
 msgstr ""
-"Por favor introduzca su PIN para desbloquear la clave secreta de esta sesión"
+"Por favor introduzca su PIN para desbloquear la clave secreta de esta sesión"
 
 msgid ""
 "Please enter your passphrase, so that the secret key can be unlocked for "
 "this session"
 msgstr ""
-"Por favor introduzca la frase contraseña para desbloquear la clave secreta "
-"de esta sesión"
+"Por favor introduzca la frase contraseña para desbloquear la clave secreta "
+"de esta sesión"
 
 msgid "PIN:"
 msgstr ""
 
-# ¿Por qué no frase de paso?
-# Porque todo el mundo sabe lo que es una contraseña
+# ¿Por qué no frase de paso?
+# Porque todo el mundo sabe lo que es una contraseña
 # y una "frase de paso" no. Soy consciente de que se
 # traduce igual password y passphrase pero el contexto
-# permite saber de lo que se está hablando.
-# No sé, no sé.
-# ¿Por qué los ingleses entonces sí que saben lo que es un "passphrase"?
-# ¿Es que son más listos? :-)
+# permite saber de lo que se está hablando.
+# No sé, no sé.
+# ¿Por qué los ingleses entonces sí que saben lo que es un "passphrase"?
+# ¿Es que son más listos? :-)
 #
 msgid "Passphrase:"
-msgstr "Frase contraseña:"
+msgstr "Frase contraseña:"
 
 msgid "does not match - try again"
-msgstr "no coincide - reinténtelo"
+msgstr "no coincide - reinténtelo"
 
 #. TRANSLATORS: The string is appended to an error message in
 #. the pinentry.  The %s is the actual error message, the
@@ -124,10 +124,10 @@ msgid "PIN too long"
 msgstr "PIN demasiado largo"
 
 msgid "Passphrase too long"
-msgstr "Frase contraseña demasiado larga"
+msgstr "Frase contraseña demasiado larga"
 
 msgid "Invalid characters in PIN"
-msgstr "Caracteres inválidos en el PIN"
+msgstr "Caracteres inválidos en el PIN"
 
 msgid "PIN too short"
 msgstr "PIN demasiado corto"
@@ -135,21 +135,21 @@ msgstr "PIN demasiado corto"
 msgid "Bad PIN"
 msgstr "PIN incorrecto"
 
-# ¿Por qué no frase de paso?
-# Porque todo el mundo sabe lo que es una contraseña
+# ¿Por qué no frase de paso?
+# Porque todo el mundo sabe lo que es una contraseña
 # y una "frase de paso" no. Soy consciente de que se
 # traduce igual password y passphrase pero el contexto
-# permite saber de lo que se está hablando.
-# No sé, no sé.
-# ¿Por qué los ingleses entonces sí que saben lo que es un "passphrase"?
-# ¿Es que son más listos? :-)
+# permite saber de lo que se está hablando.
+# No sé, no sé.
+# ¿Por qué los ingleses entonces sí que saben lo que es un "passphrase"?
+# ¿Es que son más listos? :-)
 #
 msgid "Bad Passphrase"
-msgstr "Frase contraseña errónea"
+msgstr "Frase contraseña errónea"
 
 #, c-format
 msgid "ssh keys greater than %d bits are not supported\n"
-msgstr "no pueden usarse claves ssh de más de %d bits\n"
+msgstr "no pueden usarse claves ssh de más de %d bits\n"
 
 #, fuzzy, c-format
 #| msgid "can't create `%s': %s\n"
@@ -163,7 +163,7 @@ msgstr "no se puede abrir `%s': %s\n"
 
 #, c-format
 msgid "error getting serial number of card: %s\n"
-msgstr "error obteniendo el número de serie de la tarjeta: %s\n"
+msgstr "error obteniendo el número de serie de la tarjeta: %s\n"
 
 #, c-format
 msgid "detected card with S/N: %s\n"
@@ -181,14 +181,6 @@ msgid "no suitable card key found: %s\n"
 msgstr "no se encuentra una clave de tarjeta adecuada: %s\n"
 
 #, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "el sombreado de la clave falló: %s\n"
-
-#, c-format
-msgid "error writing key: %s\n"
-msgstr "error escribiendo clave: %s\n"
-
-#, c-format
 msgid ""
 "An ssh process requested the use of key%%0A  %s%%0A  (%s)%%0ADo you want to "
 "allow this?"
@@ -203,10 +195,10 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "Please enter the passphrase for the ssh key%0A  %c"
 msgid "Please enter the passphrase for the ssh key%%0A  %F%%0A  (%c)"
-msgstr "Por favor introduzca la frase contraseña para la clave ssh%0A %c"
+msgstr "Por favor introduzca la frase contraseña para la clave ssh%0A %c"
 
 msgid "Please re-enter this passphrase"
-msgstr "Por favor vuelva a introducir frase contraseña"
+msgstr "Por favor vuelva a introducir frase contraseña"
 
 #, fuzzy, c-format
 #| msgid ""
@@ -216,7 +208,7 @@ msgid ""
 "Please enter a passphrase to protect the received secret key%%0A   %s%%0A   "
 "%s%%0Awithin gpg-agent's key storage"
 msgstr ""
-"Por favor introduzca una frase contraseña para proteger la clave "
+"Por favor introduzca una frase contraseña para proteger la clave "
 "secretarecibida%%0A  %s%%0Aen el almacen de claves del agente gpg"
 
 #, c-format
@@ -224,10 +216,10 @@ msgid "failed to create stream from socket: %s\n"
 msgstr "fallo al crear un flujo desde el socket: %s\n"
 
 msgid "Please insert the card with serial number"
-msgstr "Por favor inserte la tarjeta con número de serie"
+msgstr "Por favor inserte la tarjeta con número de serie"
 
 msgid "Please remove the current card and insert the one with serial number"
-msgstr "Por favor retire tarjeta actual e inserte la que tiene número de serie"
+msgstr "Por favor retire tarjeta actual e inserte la que tiene número de serie"
 
 msgid "Admin PIN"
 msgstr "PIN del Administrador"
@@ -238,7 +230,7 @@ msgid "PUK"
 msgstr "PUK"
 
 msgid "Reset Code"
-msgstr "Código de Reinicio"
+msgstr "Código de Reinicio"
 
 #, fuzzy, c-format
 #| msgid "%s%%0A%%0AUse the reader's keypad for input."
@@ -246,7 +238,7 @@ msgid "%s%%0A%%0AUse the reader's pinpad for input."
 msgstr "%s%%0A%%0AUse el teclado del lector como entrada."
 
 msgid "Repeat this Reset Code"
-msgstr "Repita este Código de Reinicio"
+msgstr "Repita este Código de Reinicio"
 
 msgid "Repeat this PUK"
 msgstr "Repita este PUK"
@@ -255,13 +247,13 @@ msgid "Repeat this PIN"
 msgstr "Repita este PIN"
 
 msgid "Reset Code not correctly repeated; try again"
-msgstr "Código de Reinicio repetido incorrectamente; inténtelo de nuevo"
+msgstr "Código de Reinicio repetido incorrectamente; inténtelo de nuevo"
 
 msgid "PUK not correctly repeated; try again"
-msgstr "PUK repetido incorrectamente; inténtelo de nuevo"
+msgstr "PUK repetido incorrectamente; inténtelo de nuevo"
 
 msgid "PIN not correctly repeated; try again"
-msgstr "PIN repetido incorrectamente; inténtelo de nuevo"
+msgstr "PIN repetido incorrectamente; inténtelo de nuevo"
 
 #, c-format
 msgid "Please enter the PIN%s%s%s to unlock the card"
@@ -276,7 +268,7 @@ msgid "error writing to temporary file: %s\n"
 msgstr "error escribiendo en el fichero temporal: %s\n"
 
 msgid "Enter new passphrase"
-msgstr "Introduzca nueva frase contraseña"
+msgstr "Introduzca nueva frase contraseña"
 
 msgid "Take this one anyway"
 msgstr "Tomar esta de todas formas"
@@ -285,7 +277,7 @@ msgstr "Tomar esta de todas formas"
 msgid ""
 "You have not entered a passphrase!%0AAn empty passphrase is not allowed."
 msgstr ""
-"¡No ha introducido una frase contraseña!%0AnNo se permiten frases contraseña "
+"¡No ha introducido una frase contraseña!%0AnNo se permiten frases contraseña "
 "en blanco."
 
 #, c-format
@@ -293,11 +285,11 @@ msgid ""
 "You have not entered a passphrase - this is in general a bad idea!%0APlease "
 "confirm that you do not want to have any protection on your key."
 msgstr ""
-"No ha introducido una frase contraseña -¡esto es en general una mala idea!"
-"%0Apor favor confirme que no quiere ninguna protección para su clave."
+"No ha introducido una frase contraseña -¡esto es en general una mala idea!"
+"%0Apor favor confirme que no quiere ninguna protección para su clave."
 
 msgid "Yes, protection is not needed"
-msgstr "Sí, no se necesita protección"
+msgstr "Sí, no se necesita protección"
 
 #, fuzzy, c-format
 #| msgid "Name must be at least 5 characters long\n"
@@ -317,10 +309,10 @@ msgid "A passphrase should contain at least %u digit or%%0Aspecial character."
 msgid_plural ""
 "A passphrase should contain at least %u digits or%%0Aspecial characters."
 msgstr[0] ""
-"Aviso: Ha introducido una frase contraseña insegura.%%0AUna frasecontraseña "
-"debe tener al menos %u digito o%%0Acarácter especial."
+"Aviso: Ha introducido una frase contraseña insegura.%%0AUna frasecontraseña "
+"debe tener al menos %u digito o%%0Acarácter especial."
 msgstr[1] ""
-"Aviso: Ha introducido una frase contraseña insegura.%%0AUna frasecontraseña "
+"Aviso: Ha introducido una frase contraseña insegura.%%0AUna frasecontraseña "
 "debe tener al menos %u digitos o%%0Acaracteres especiales."
 
 #, fuzzy, c-format
@@ -329,8 +321,8 @@ msgstr[1] ""
 #| "be a known term or match%%0Acertain pattern."
 msgid "A passphrase may not be a known term or match%%0Acertain pattern."
 msgstr ""
-"Aviso: ha introducido una frase contraseña insegura.%%0AUna frase contraseña "
-"no puede ser un término conocido%%0Ao ajustarse a cierto patrón."
+"Aviso: ha introducido una frase contraseña insegura.%%0AUna frase contraseña "
+"no puede ser un término conocido%%0Ao ajustarse a cierto patrón."
 
 #, fuzzy
 #| msgid ""
@@ -341,16 +333,16 @@ msgstr ""
 #| "be at least %u characters long."
 msgid "Warning: You have entered an insecure passphrase."
 msgstr ""
-"Aviso: ha introducido una frase contraseña insegura.%%0AUna frase contraseña "
-"debe tener al menos %u carácter."
+"Aviso: ha introducido una frase contraseña insegura.%%0AUna frase contraseña "
+"debe tener al menos %u carácter."
 
 #, fuzzy, c-format
 #| msgid "Please enter the passphrase to%0Ato protect your new key"
 msgid "Please enter the passphrase to%0Aprotect your new key"
-msgstr "Por favor introduzca frase contraseña para%0Aproteger su nueva clave"
+msgstr "Por favor introduzca frase contraseña para%0Aproteger su nueva clave"
 
 msgid "Please enter the new passphrase"
-msgstr "Por favor escriba la nueva frase contraseña"
+msgstr "Por favor escriba la nueva frase contraseña"
 
 msgid ""
 "@Options:\n"
@@ -365,11 +357,16 @@ msgstr "ejecutar en modo demonio (segundo plano)"
 msgid "run in server mode (foreground)"
 msgstr "ejecutar en modo servidor (primer plano)"
 
+#, fuzzy
+#| msgid "run in server mode"
+msgid "run in supervised mode"
+msgstr "ejecutar en modo servidor"
+
 msgid "verbose"
 msgstr "prolijo"
 
 msgid "be somewhat more quiet"
-msgstr "algo más discreto"
+msgstr "algo más discreto"
 
 msgid "sh-style command output"
 msgstr "salida de datos estilo sh"
@@ -384,7 +381,7 @@ msgid "do not detach from the console"
 msgstr "no independizarse de la consola"
 
 msgid "do not grab keyboard and mouse"
-msgstr "no acaparar teclado y ratón"
+msgstr "no acaparar teclado y ratón"
 
 msgid "use a log file for the server"
 msgstr "usar un fichero log para el servidor"
@@ -410,15 +407,15 @@ msgid "ignore requests to change the X display"
 msgstr "ignorar peticiones de cambiar el display X"
 
 msgid "|N|expire cached PINs after N seconds"
-msgstr "|N|los PINs en la caché expiran en N segundos"
+msgstr "|N|los PINs en la caché expiran en N segundos"
 
 msgid "do not use the PIN cache when signing"
-msgstr "no usar el caché de PINs al firmar"
+msgstr "no usar el caché de PINs al firmar"
 
 #, fuzzy
 #| msgid "do not allow the reuse of old passphrases"
 msgid "disallow the use of an external password cache"
-msgstr "no permite reusar antiguas frases contraseña"
+msgstr "no permite reusar antiguas frases contraseña"
 
 #, fuzzy
 #| msgid "allow clients to mark keys as \"trusted\""
@@ -426,7 +423,7 @@ msgid "disallow clients to mark keys as \"trusted\""
 msgstr "permitir que los clientes marquen claves como \"fiables\""
 
 msgid "allow presetting passphrase"
-msgstr "permitir preestablecer frase contraseña"
+msgstr "permitir preestablecer frase contraseña"
 
 msgid "disallow caller to override the pinentry"
 msgstr ""
@@ -437,7 +434,7 @@ msgstr ""
 #, fuzzy
 #| msgid "enable ssh-agent emulation"
 msgid "enable ssh support"
-msgstr "permitir emulación de ssh-agent"
+msgstr "permitir emulación de ssh-agent"
 
 #, fuzzy
 #| msgid "not supported"
@@ -469,7 +466,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "invalid debug-level `%s' given\n"
 msgid "invalid debug-level '%s' given\n"
-msgstr "el nivel de depuración `%s` no es válido\n"
+msgstr "el nivel de depuración `%s` no es válido\n"
 
 #, fuzzy, c-format
 #| msgid "NOTE: no default option file `%s'\n"
@@ -489,7 +486,7 @@ msgstr "leyendo opciones desde `%s'\n"
 #, fuzzy, c-format
 #| msgid "WARNING: \"%s\" is a deprecated option\n"
 msgid "Note: '%s' is not considered an option\n"
-msgstr "ATENCIÓN: \"%s\" es una opción obsoleta\n"
+msgstr "ATENCIÓN: \"%s\" es una opción obsoleta\n"
 
 #, c-format
 msgid "can't create socket: %s\n"
@@ -501,10 +498,10 @@ msgid "socket name '%s' is too long\n"
 msgstr "el nombre de socket `%s' es demasiado largo\n"
 
 msgid "a gpg-agent is already running - not starting a new one\n"
-msgstr "ya hay un agente gpg ejecutándose - no se inicia otro\n"
+msgstr "ya hay un agente gpg ejecutándose - no se inicia otro\n"
 
 msgid "error getting nonce for the socket\n"
-msgstr "error obteniendo valor único para el socket\n"
+msgstr "error obteniendo valor único para el socket\n"
 
 #, fuzzy, c-format
 #| msgid "error binding socket to `%s': %s\n"
@@ -518,7 +515,7 @@ msgstr "Aviso: permisos inseguros en %s \"%s\"\n"
 
 #, c-format
 msgid "listen() failed: %s\n"
-msgstr "listen() falló: %s\n"
+msgstr "listen() falló: %s\n"
 
 #, fuzzy, c-format
 #| msgid "listening on socket `%s'\n"
@@ -538,7 +535,7 @@ msgstr "directorio `%s' creado\n"
 #, fuzzy, c-format
 #| msgid "stat() failed for `%s': %s\n"
 msgid "stat() failed for '%s': %s\n"
-msgstr "stat() falló para `%s': %s\n"
+msgstr "stat() falló para `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't use `%s' as home directory\n"
@@ -547,7 +544,7 @@ msgstr "no puede usar `%s' como directorio personal\n"
 
 #, c-format
 msgid "error reading nonce on fd %d: %s\n"
-msgstr "error leyendo valor único en el descriptor %d: %s\n"
+msgstr "error leyendo valor único en el descriptor %d: %s\n"
 
 #, c-format
 msgid "handler 0x%lx for fd %d started\n"
@@ -568,7 +565,7 @@ msgstr "manejador ssh 0x%lx para el descriptor %d finalizado\n"
 #, fuzzy, c-format
 #| msgid "pth_select failed: %s - waiting 1s\n"
 msgid "npth_pselect failed: %s - waiting 1s\n"
-msgstr "pth_select falló: %s - espero 1s\n"
+msgstr "pth_select falló: %s - espero 1s\n"
 
 # msgstr "clave %08lX: %d nuevas subclaves\n"
 #, c-format
@@ -576,7 +573,7 @@ msgid "%s %s stopped\n"
 msgstr "%s %s detenido\n"
 
 msgid "no gpg-agent running in this session\n"
-msgstr "no hay un agente gpg ejecutándose en esta sesión\n"
+msgstr "no hay un agente gpg ejecutándose en esta sesión\n"
 
 msgid "Usage: gpg-preset-passphrase [options] KEYGRIP (-h for help)\n"
 msgstr "Uso: gpg-preset-passphrase [opciones] KEYGRIP (-h para ayuda)\n"
@@ -586,17 +583,17 @@ msgid ""
 "Password cache maintenance\n"
 msgstr ""
 "Sintaxis: gpg-preset-passphrase [opciones] KEYGRIP\n"
-"Mantenimiento de la caché de contraseñas\n"
+"Mantenimiento de la caché de contraseñas\n"
 
-# Órdenes, please...
-# Sí, este no he podido ser yo :-) Por cierto, ¿por qué la O no se
-# puede acentuar? ¿demasiado alta?
-# ¿Quién dice que no se puede? :-)
+# Órdenes, please...
+# Sí, este no he podido ser yo :-) Por cierto, ¿por qué la O no se
+# puede acentuar? Â¿demasiado alta?
+# ¿Quién dice que no se puede? :-)
 msgid ""
 "@Commands:\n"
 " "
 msgstr ""
-"@Órdenes:\n"
+"@Órdenes:\n"
 " "
 
 msgid ""
@@ -619,30 +616,30 @@ msgstr ""
 "Herramienta para el mantenimiento de claves secretas\n"
 
 msgid "Please enter the passphrase to unprotect the PKCS#12 object."
-msgstr "Introduzca frase contraseña para desproteger el objeto PKCS#12."
+msgstr "Introduzca frase contraseña para desproteger el objeto PKCS#12."
 
 msgid "Please enter the passphrase to protect the new PKCS#12 object."
-msgstr "Introduzca frase contraseña para proteger el nuevo objeto PKCS#12."
+msgstr "Introduzca frase contraseña para proteger el nuevo objeto PKCS#12."
 
 msgid ""
 "Please enter the passphrase to protect the imported object within the GnuPG "
 "system."
 msgstr ""
-"Introduzca la frase contraseña para proteger el objeto importado en GnuPG"
+"Introduzca la frase contraseña para proteger el objeto importado en GnuPG"
 
 msgid ""
 "Please enter the passphrase or the PIN\n"
 "needed to complete this operation."
 msgstr ""
-"Por favor introduzca la frase contraseña o PIN\n"
-"necesarios para completar esta operación."
+"Por favor introduzca la frase contraseña o PIN\n"
+"necesarios para completar esta operación."
 
 msgid "cancelled\n"
 msgstr "cancelado\n"
 
 #, c-format
 msgid "error while asking for the passphrase: %s\n"
-msgstr "error pidiendo la frase contraseña: %s\n"
+msgstr "error pidiendo la frase contraseña: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error opening `%s': %s\n"
@@ -652,35 +649,35 @@ msgstr "error abriendo `%s': %s\n"
 #, fuzzy, c-format
 #| msgid "file `%s', line %d: %s\n"
 msgid "file '%s', line %d: %s\n"
-msgstr "fichero `%s', línea %d: %s\n"
+msgstr "fichero `%s', línea %d: %s\n"
 
 #, fuzzy, c-format
 #| msgid "statement \"%s\" ignored in `%s', line %d\n"
 msgid "statement \"%s\" ignored in '%s', line %d\n"
-msgstr "declaración \"%s\" ignorada en `%s', línea %d\n"
+msgstr "declaración \"%s\" ignorada en `%s', línea %d\n"
 
 #, fuzzy, c-format
 #| msgid "system trustlist `%s' not available\n"
 msgid "system trustlist '%s' not available\n"
-msgstr "la lista de confianza `%s' del sistema no está disponible\n"
+msgstr "la lista de confianza `%s' del sistema no está disponible\n"
 
 #, fuzzy, c-format
 #| msgid "bad fingerprint in `%s', line %d\n"
 msgid "bad fingerprint in '%s', line %d\n"
-msgstr "huella digital incorrecta en `%s', línea %d\n"
+msgstr "huella digital incorrecta en `%s', línea %d\n"
 
 #, fuzzy, c-format
 #| msgid "invalid keyflag in `%s', line %d\n"
 msgid "invalid keyflag in '%s', line %d\n"
-msgstr "opción de clave inválida en `%s', línea %d\n"
+msgstr "opción de clave inválida en `%s', línea %d\n"
 
 #, fuzzy, c-format
 #| msgid "error reading `%s', line %d: %s\n"
 msgid "error reading '%s', line %d: %s\n"
-msgstr "error leyendo `%s', línea %d: %s\n"
+msgstr "error leyendo `%s', línea %d: %s\n"
 
 msgid "error reading list of trusted root certificates\n"
-msgstr "error leyendo la lista de certificados raíz fiables\n"
+msgstr "error leyendo la lista de certificados raíz fiables\n"
 
 #. TRANSLATORS: This prompt is shown by the Pinentry
 #. and has one special property: A "%%0A" is used by
@@ -695,11 +692,11 @@ msgid ""
 "Do you ultimately trust%%0A  \"%s\"%%0Ato correctly certify user "
 "certificates?"
 msgstr ""
-"¿Confía absolutamente en%%0A  \"%s\"%%0A para certificar correctamentelos "
+"¿Confía absolutamente en%%0A  \"%s\"%%0A para certificar correctamentelos "
 "certificados de otros usuarios?"
 
 msgid "Yes"
-msgstr "Sí"
+msgstr "Sí"
 
 msgid "No"
 msgstr "No"
@@ -732,28 +729,28 @@ msgstr "Incorrecto"
 #, c-format
 msgid "Note: This passphrase has never been changed.%0APlease change it now."
 msgstr ""
-"Nota: Esta frase contraseña nunca ha sido cambiada.%0APor favor hágalo ahora."
+"Nota: Esta frase contraseña nunca ha sido cambiada.%0APor favor hágalo ahora."
 
 #, c-format
 msgid ""
 "This passphrase has not been changed%%0Asince %.4s-%.2s-%.2s.  Please change "
 "it now."
 msgstr ""
-"Esta frase contraseña no se ha cambiado%%0Adesde %.4s-%.2s-%.2s.Por favor "
-"cámbiela ahora."
+"Esta frase contraseña no se ha cambiado%%0Adesde %.4s-%.2s-%.2s.Por favor "
+"cámbiela ahora."
 
 msgid "Change passphrase"
-msgstr "Cambia la frase contraseña"
+msgstr "Cambia la frase contraseña"
 
 msgid "I'll change it later"
-msgstr "La cambiaré más tarde"
+msgstr "La cambiaré más tarde"
 
 #, fuzzy, c-format
 #| msgid "Do you really want to delete the selected keys? (y/N) "
 msgid ""
 "Do you really want to delete the key identified by keygrip%%0A  %s%%0A  %%C"
 "%%0A?"
-msgstr "¿De verdad quiere borrar las claves seleccionadas? (s/N) "
+msgstr "¿De verdad quiere borrar las claves seleccionadas? (s/N) "
 
 #, fuzzy
 #| msgid "enable key"
@@ -766,7 +763,7 @@ msgid ""
 msgstr ""
 
 msgid "DSA requires the hash length to be a multiple of 8 bits\n"
-msgstr "DSA necesita un resumen cuya longitud sea múltiplo de 8 bits\n"
+msgstr "DSA necesita un resumen cuya longitud sea múltiplo de 8 bits\n"
 
 #, c-format
 msgid "%s key uses an unsafe (%u bit) hash\n"
@@ -779,66 +776,66 @@ msgstr "un hash de %u bits no vale para %u bits de la clave %s\n"
 
 #, c-format
 msgid "checking created signature failed: %s\n"
-msgstr "la comprobación de la firma creada falló: %s\n"
+msgstr "la comprobación de la firma creada falló: %s\n"
 
 msgid "secret key parts are not available\n"
-msgstr "las partes de la clave privada no están disponibles\n"
+msgstr "las partes de la clave privada no están disponibles\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "public key algorithm %d (%s) is not supported\n"
-msgstr "el algoritmo de protección %d%s no puede ser utilizado\n"
+msgstr "el algoritmo de protección %d%s no puede ser utilizado\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "protection algorithm %d (%s) is not supported\n"
-msgstr "el algoritmo de protección %d%s no puede ser utilizado\n"
+msgstr "el algoritmo de protección %d%s no puede ser utilizado\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "protection hash algorithm %d (%s) is not supported\n"
-msgstr "el algoritmo de protección %d%s no puede ser utilizado\n"
+msgstr "el algoritmo de protección %d%s no puede ser utilizado\n"
 
 #, c-format
 msgid "error creating a pipe: %s\n"
-msgstr "error creando tubería: %s\n"
+msgstr "error creando tubería: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error creating a pipe: %s\n"
 msgid "error creating a stream for a pipe: %s\n"
-msgstr "error creando tubería: %s\n"
+msgstr "error creando tubería: %s\n"
 
 #, c-format
 msgid "error forking process: %s\n"
 msgstr "error bifurcando procesos: %s\n"
 
-#, fuzzy, c-format
-#| msgid "waiting for process %d to terminate failed: %s\n"
-msgid "waiting for processes to terminate failed: %s\n"
+#, c-format
+msgid "waiting for process %d to terminate failed: %s\n"
 msgstr "fallo esperando que el proceso %d terminara: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error running `%s': probably not installed\n"
 msgid "error running '%s': probably not installed\n"
-msgstr "error ejecutando `%s': probablemente no está instalado\n"
+msgstr "error ejecutando `%s': probablemente no está instalado\n"
 
 #, fuzzy, c-format
 #| msgid "error running `%s': exit status %d\n"
 msgid "error running '%s': exit status %d\n"
-msgstr "error ejecutando `%s': código de finalización %d\n"
+msgstr "error ejecutando `%s': código de finalización %d\n"
 
 #, fuzzy, c-format
 #| msgid "error running `%s': terminated\n"
 msgid "error running '%s': terminated\n"
 msgstr "error ejecutando `%s': terminado\n"
 
-#, c-format
-msgid "error getting exit code of process %d: %s\n"
-msgstr "error obteniendo código de finalización del proceso: %d %s\n"
+#, fuzzy, c-format
+#| msgid "waiting for process %d to terminate failed: %s\n"
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "fallo esperando que el proceso %d terminara: %s\n"
 
 #, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr "fallo esperando que el proceso %d terminara: %s\n"
+msgid "error getting exit code of process %d: %s\n"
+msgstr "error obteniendo código de finalización del proceso: %d %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
@@ -860,9 +857,19 @@ msgstr "Aviso: propiedad insegura de %s \"%s\"\n"
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
 msgstr "Aviso: permisos inseguros en %s \"%s\"\n"
 
+#, fuzzy, c-format
+#| msgid "waiting %d seconds for the agent to come up\n"
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "esperando %d segundos para que el agente arranque\n"
+
+#, fuzzy, c-format
+#| msgid "renaming `%s' to `%s' failed: %s\n"
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "renombrando `%s' en `%s' fallo: %s\n"
+
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "yes"
-msgstr "sí|si"
+msgstr "sí|si"
 
 msgid "yY"
 msgstr "sS"
@@ -909,12 +916,12 @@ msgstr "error reservando memoria: %s\n"
 
 #, c-format
 msgid "%s:%u: obsolete option \"%s\" - it has no effect\n"
-msgstr "%s:%u: opción obsoleta \"%s\" - no tiene efecto\n"
+msgstr "%s:%u: opción obsoleta \"%s\" - no tiene efecto\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: \"%s\" is an obsolete option - it has no effect\n"
 msgid "WARNING: \"%s%s\" is an obsolete option - it has no effect\n"
-msgstr "ATENCIÓN: \"%s\" es una opción obsoleta - no tiene efecto\n"
+msgstr "ATENCIÓN: \"%s\" es una opción obsoleta - no tiene efecto\n"
 
 #, c-format
 msgid "unknown debug flag '%s' ignored\n"
@@ -923,7 +930,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "no running gpg-agent - starting one\n"
 msgid "no running gpg-agent - starting '%s'\n"
-msgstr "no hay gpg-agent en ejecución - inicando uno\n"
+msgstr "no hay gpg-agent en ejecución - inicando uno\n"
 
 #, fuzzy, c-format
 #| msgid "waiting %d seconds for the agent to come up\n"
@@ -941,7 +948,7 @@ msgstr "no puedo conectar con el dirmngr - intentando retirada\n"
 #, fuzzy, c-format
 #| msgid "no running dirmngr - starting `%s'\n"
 msgid "no running Dirmngr - starting '%s'\n"
-msgstr "no hay dirmngr en ejecución - iniciando `%s'\n"
+msgstr "no hay dirmngr en ejecución - iniciando `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "waiting %d seconds for the agent to come up\n"
@@ -983,13 +990,13 @@ msgid "|audit-log-result|Skipped"
 msgstr "|audit-log-result|Omitido"
 
 msgid "|audit-log-result|Some"
-msgstr "|audit-log-result|Algún"
+msgstr "|audit-log-result|Algún"
 
 msgid "Certificate chain available"
 msgstr "Cadena de certificados disponible"
 
 msgid "root certificate missing"
-msgstr "falta el certificado raíz"
+msgstr "falta el certificado raíz"
 
 msgid "Data encryption succeeded"
 msgstr "Datos cifrados correctamente"
@@ -998,7 +1005,7 @@ msgid "Data available"
 msgstr "Hay datos disponibles"
 
 msgid "Session key created"
-msgstr "Creada clave de sesión"
+msgstr "Creada clave de sesión"
 
 #, c-format
 msgid "algorithm: %s"
@@ -1009,10 +1016,10 @@ msgid "unsupported algorithm: %s"
 msgstr "algoritmo no disponible: %s"
 
 msgid "seems to be not encrypted"
-msgstr "no parece que esté cifrado"
+msgstr "no parece que esté cifrado"
 
 msgid "Number of recipients"
-msgstr "Número de destinatarios"
+msgstr "Número de destinatarios"
 
 #, c-format
 msgid "Recipient %d"
@@ -1046,21 +1053,21 @@ msgid "Signature available"
 msgstr "Firma disponible"
 
 msgid "Parsing data succeeded"
-msgstr "Interpretación de datos correcta"
+msgstr "Interpretación de datos correcta"
 
 #, c-format
 msgid "bad data hash algorithm: %s"
-msgstr "algoritmo de resumen de datos erróneo: %s"
+msgstr "algoritmo de resumen de datos erróneo: %s"
 
 #, c-format
 msgid "Signature %d"
 msgstr "Firma %d"
 
 msgid "Certificate chain valid"
-msgstr "Cadena de certificados válida"
+msgstr "Cadena de certificados válida"
 
 msgid "Root certificate trustworthy"
-msgstr "Certificado raíz fiable"
+msgstr "Certificado raíz fiable"
 
 msgid "no CRL found for certificate"
 msgstr "no se encuentra CRL para el certificado"
@@ -1069,7 +1076,7 @@ msgid "the available CRL is too old"
 msgstr "el CRL disponible es demasiado antiguo"
 
 msgid "CRL/OCSP check of certificates"
-msgstr "Comprobación CRL/OCSP de certificados"
+msgstr "Comprobación CRL/OCSP de certificados"
 
 msgid "Included certificates"
 msgstr "Certificados incluidos"
@@ -1078,7 +1085,7 @@ msgid "No audit log entries."
 msgstr "No auditar entradas de los logs"
 
 msgid "Unknown operation"
-msgstr "Operación desconocida"
+msgstr "Operación desconocida"
 
 msgid "Gpg-Agent usable"
 msgstr "Gpg-Agent utilizable"
@@ -1092,13 +1099,13 @@ msgid "No help available for '%s'."
 msgstr "No hay ayuda disponible para `%s'."
 
 msgid "ignoring garbage line"
-msgstr "ignorando línea con basura"
+msgstr "ignorando línea con basura"
 
 msgid "[none]"
 msgstr "[ninguno]"
 
 msgid "argument not expected"
-msgstr "parámetro inesperado"
+msgstr "parámetro inesperado"
 
 msgid "read error"
 msgstr "error de lectura"
@@ -1107,45 +1114,45 @@ msgid "keyword too long"
 msgstr "palabra clave demasiado larga"
 
 msgid "missing argument"
-msgstr "falta el parámetro"
+msgstr "falta el parámetro"
 
 #, fuzzy
 #| msgid "invalid armor"
 msgid "invalid argument"
-msgstr "armadura inválida"
+msgstr "armadura inválida"
 
 msgid "invalid command"
-msgstr "orden inválida"
+msgstr "orden inválida"
 
 msgid "invalid alias definition"
-msgstr "definición de alias inválida"
+msgstr "definición de alias inválida"
 
 msgid "out of core"
 msgstr "memoria desbordada"
 
 msgid "invalid option"
-msgstr "opción inválida"
+msgstr "opción inválida"
 
 #, c-format
 msgid "missing argument for option \"%.50s\"\n"
-msgstr "falta parámetro para la opción \"%.50s\"\n"
+msgstr "falta parámetro para la opción \"%.50s\"\n"
 
 #, fuzzy, c-format
 #| msgid "missing argument for option \"%.50s\"\n"
 msgid "invalid argument for option \"%.50s\"\n"
-msgstr "falta parámetro para la opción \"%.50s\"\n"
+msgstr "falta parámetro para la opción \"%.50s\"\n"
 
 #, c-format
 msgid "option \"%.50s\" does not expect an argument\n"
-msgstr "la opción \"%.50s\" no necesita parámetros\n"
+msgstr "la opción \"%.50s\" no necesita parámetros\n"
 
 #, c-format
 msgid "invalid command \"%.50s\"\n"
-msgstr "orden inválida \"%.50s\"\n"
+msgstr "orden inválida \"%.50s\"\n"
 
 #, c-format
 msgid "option \"%.50s\" is ambiguous\n"
-msgstr "la opción \"%.50s\" es ambigua\n"
+msgstr "la opción \"%.50s\" es ambigua\n"
 
 #, c-format
 msgid "command \"%.50s\" is ambiguous\n"
@@ -1156,21 +1163,21 @@ msgstr "memoria desbordada\n"
 
 #, c-format
 msgid "invalid option \"%.50s\"\n"
-msgstr "opción inválida \"%.50s\"\n"
+msgstr "opción inválida \"%.50s\"\n"
 
 #, fuzzy, c-format
 #| msgid "conversion from `%s' to `%s' not available\n"
 msgid "conversion from '%s' to '%s' not available\n"
-msgstr "la conversión de `%s' en `%s' no está disponible\n"
+msgstr "la conversión de `%s' en `%s' no está disponible\n"
 
 #, c-format
 msgid "iconv_open failed: %s\n"
-msgstr "iconv_open falló: %s\n"
+msgstr "iconv_open falló: %s\n"
 
 #, fuzzy, c-format
 #| msgid "conversion from `%s' to `%s' failed: %s\n"
 msgid "conversion from '%s' to '%s' failed: %s\n"
-msgstr "la conversión de `%s' en `%s' falló: %s\n"
+msgstr "la conversión de `%s' en `%s' falló: %s\n"
 
 #, fuzzy, c-format
 #| msgid "failed to create temporary file `%s': %s\n"
@@ -1191,7 +1198,7 @@ msgid "waiting for lock (held by %d%s) %s...\n"
 msgstr "esperando al bloqueo (que mantiene %d%s) %s...\n"
 
 msgid "(deadlock?) "
-msgstr "(¿bloqueo mutuo?)"
+msgstr "(¿bloqueo mutuo?)"
 
 #, fuzzy, c-format
 #| msgid "lock `%s' not made: %s\n"
@@ -1211,13 +1218,13 @@ msgid "armor: %s\n"
 msgstr "armadura: %s\n"
 
 msgid "invalid armor header: "
-msgstr "cabecera de armadura inválida: "
+msgstr "cabecera de armadura inválida: "
 
 msgid "armor header: "
 msgstr "cabecera de armadura: "
 
 msgid "invalid clearsig header\n"
-msgstr "cabecera de firma clara inválida\n"
+msgstr "cabecera de firma clara inválida\n"
 
 msgid "unknown armor header: "
 msgstr "cabecera de armadura desconocida: "
@@ -1229,42 +1236,42 @@ msgid "unexpected armor: "
 msgstr "armadura inesperada: "
 
 msgid "invalid dash escaped line: "
-msgstr "Línea con guiones inválida: "
+msgstr "Línea con guiones inválida: "
 
 #, c-format
 msgid "invalid radix64 character %02X skipped\n"
-msgstr "caracter inválido radix64 %02X omitido\n"
+msgstr "caracter inválido radix64 %02X omitido\n"
 
 msgid "premature eof (no CRC)\n"
-msgstr "Fin de fichero prematuro (falta suma de comprobación)\n"
+msgstr "Fin de fichero prematuro (falta suma de comprobación)\n"
 
 msgid "premature eof (in CRC)\n"
-msgstr "Fin de suma de comprobación prematuro\n"
+msgstr "Fin de suma de comprobación prematuro\n"
 
 msgid "malformed CRC\n"
-msgstr "Suma de comprobación mal creada\n"
+msgstr "Suma de comprobación mal creada\n"
 
 #, c-format
 msgid "CRC error; %06lX - %06lX\n"
-msgstr "Error en suma de comprobación: %06lX - %06lX\n"
+msgstr "Error en suma de comprobación: %06lX - %06lX\n"
 
 msgid "premature eof (in trailer)\n"
 msgstr "fin de fichero prematuro (en el cierre)\n"
 
 msgid "error in trailer line\n"
-msgstr "error en la línea de cierre\n"
+msgstr "error en la línea de cierre\n"
 
 msgid "no valid OpenPGP data found.\n"
-msgstr "no se han encontrados datos OpenPGP válidos\n"
+msgstr "no se han encontrados datos OpenPGP válidos\n"
 
 #, c-format
 msgid "invalid armor: line longer than %d characters\n"
-msgstr "armadura incorrecta: línea más larga de %d caracteres\n"
+msgstr "armadura incorrecta: línea más larga de %d caracteres\n"
 
 msgid ""
 "quoted printable character in armor - probably a buggy MTA has been used\n"
 msgstr ""
-"caracter \"quoted printable\" en la armadura - probablemente se usó\n"
+"caracter \"quoted printable\" en la armadura - probablemente se usó\n"
 "un MTA defectuoso\n"
 
 #, fuzzy, c-format
@@ -1276,22 +1283,22 @@ msgid ""
 "a notation name must have only printable characters or spaces, and end with "
 "an '='\n"
 msgstr ""
-"un nombre de notación debe tener sólo caracteres imprimibles o espacios, y "
+"un nombre de notación debe tener sólo caracteres imprimibles o espacios, y "
 "acabar con un '='\n"
 
 msgid "a user notation name must contain the '@' character\n"
-msgstr "un nombre de notación de usuario debe contener el caracter '@'\n"
+msgstr "un nombre de notación de usuario debe contener el caracter '@'\n"
 
 msgid "a notation name must not contain more than one '@' character\n"
-msgstr "un nombre de notación no debe contener más de un caracter '@'\n"
+msgstr "un nombre de notación no debe contener más de un caracter '@'\n"
 
 msgid "a notation value must not use any control characters\n"
-msgstr "un valor de notación no debe usar ningún caracter de control\n"
+msgstr "un valor de notación no debe usar ningún caracter de control\n"
 
 #, fuzzy
 #| msgid "a notation name must not contain more than one '@' character\n"
 msgid "a notation name may not contain an '=' character\n"
-msgstr "un nombre de notación no debe contener más de un caracter '@'\n"
+msgstr "un nombre de notación no debe contener más de un caracter '@'\n"
 
 #, fuzzy
 #| msgid ""
@@ -1299,18 +1306,18 @@ msgstr "un nombre de notaci
 #| "with an '='\n"
 msgid "a notation name must have only printable characters or spaces\n"
 msgstr ""
-"un nombre de notación debe tener sólo caracteres imprimibles o espacios, y "
+"un nombre de notación debe tener sólo caracteres imprimibles o espacios, y "
 "acabar con un '='\n"
 
 msgid "WARNING: invalid notation data found\n"
-msgstr "ATENCIÓN: encontrados datos de notación inválidos\n"
+msgstr "ATENCIÓN: encontrados datos de notación inválidos\n"
 
 #, c-format
 msgid "failed to proxy %s inquiry to client\n"
-msgstr "fallo al hacer la petición proxy %s al cliente\n"
+msgstr "fallo al hacer la petición proxy %s al cliente\n"
 
 msgid "Enter passphrase: "
-msgstr "Introduzca frase contraseña: "
+msgstr "Introduzca frase contraseña: "
 
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
@@ -1338,13 +1345,13 @@ msgid "can't do this in batch mode\n"
 msgstr "imposible hacer esto en modo de proceso por lotes\n"
 
 msgid "This command is only available for version 2 cards\n"
-msgstr "Esta orden solo está disponible en tarjetas versión 2\n"
+msgstr "Esta orden solo está disponible en tarjetas versión 2\n"
 
 msgid "Reset Code not or not anymore available\n"
-msgstr "No hay Código de Reinicio o ya no está disponible\n"
+msgstr "No hay Código de Reinicio o ya no está disponible\n"
 
 msgid "Your selection? "
-msgstr "Su elección: "
+msgstr "Su elección: "
 
 msgid "[not set]"
 msgstr "[no establecido]"
@@ -1365,7 +1372,7 @@ msgid "forced"
 msgstr "forzado"
 
 msgid "Error: Only plain ASCII is currently allowed.\n"
-msgstr "Error: sólo se permite ASCII sin formato actualmente.\n"
+msgstr "Error: sólo se permite ASCII sin formato actualmente.\n"
 
 msgid "Error: The \"<\" character may not be used.\n"
 msgstr "Error: El caracter \"<\" no puede usarse.\n"
@@ -1381,14 +1388,14 @@ msgstr "Nombre del titular de la tarjeta: "
 
 #, c-format
 msgid "Error: Combined name too long (limit is %d characters).\n"
-msgstr "Error: nombre combinado demasiado largo (máximo %d caracteres).\n"
+msgstr "Error: nombre combinado demasiado largo (máximo %d caracteres).\n"
 
 msgid "URL to retrieve public key: "
-msgstr "URL de donde recuperar la clave pública: "
+msgstr "URL de donde recuperar la clave pública: "
 
 #, c-format
 msgid "Error: URL too long (limit is %d characters).\n"
-msgstr "Error: URL demasiado larga (el máximo son %d caracteres).\n"
+msgstr "Error: URL demasiado larga (el máximo son %d caracteres).\n"
 
 #, fuzzy, c-format
 #| msgid "error reading `%s': %s\n"
@@ -1405,7 +1412,7 @@ msgstr "Datos de login (nombre de la cuenta): "
 
 #, c-format
 msgid "Error: Login data too long (limit is %d characters).\n"
-msgstr "Error: el login es demasiado largo (límite de %d caracteres).\n"
+msgstr "Error: el login es demasiado largo (límite de %d caracteres).\n"
 
 msgid "Private DO data: "
 msgstr "Datos privados: "
@@ -1413,42 +1420,42 @@ msgstr "Datos privados: "
 #, c-format
 msgid "Error: Private DO too long (limit is %d characters).\n"
 msgstr ""
-"Error: los datos privados son demasiado largos (límite de %d caracteres).\n"
+"Error: los datos privados son demasiado largos (límite de %d caracteres).\n"
 
 msgid "Language preferences: "
 msgstr "Preferencias de idioma: "
 
 msgid "Error: invalid length of preference string.\n"
-msgstr "Error: longitud de la cadena de preferencias inválida.\n"
+msgstr "Error: longitud de la cadena de preferencias inválida.\n"
 
 msgid "Error: invalid characters in preference string.\n"
-msgstr "Error: caracteres inválidos en cadena de preferencias.\n"
+msgstr "Error: caracteres inválidos en cadena de preferencias.\n"
 
 msgid "Sex ((M)ale, (F)emale or space): "
 msgstr "Sexo ((H)ombre, (M)mujer o espacio): "
 
 msgid "Error: invalid response.\n"
-msgstr "Error: respuesta no válida.\n"
+msgstr "Error: respuesta no válida.\n"
 
 msgid "CA fingerprint: "
 msgstr "Huella dactilar CA:"
 
 msgid "Error: invalid formatted fingerprint.\n"
-msgstr "Error: formato inválido de huella dactilar.\n"
+msgstr "Error: formato inválido de huella dactilar.\n"
 
 #, c-format
 msgid "key operation not possible: %s\n"
-msgstr "la operación con la clave no es posible: %s\n"
+msgstr "la operación con la clave no es posible: %s\n"
 
 msgid "not an OpenPGP card"
 msgstr "no es una tarjeta OpenPGP"
 
 #, c-format
 msgid "error getting current key info: %s\n"
-msgstr "error obteniendo la información actual de la clave: %s\n"
+msgstr "error obteniendo la información actual de la clave: %s\n"
 
 msgid "Replace existing key? (y/N) "
-msgstr "¿Reemplazar la clave existente? (s/N) "
+msgstr "¿Reemplazar la clave existente? (s/N) "
 
 #, fuzzy
 #| msgid ""
@@ -1460,21 +1467,21 @@ msgid ""
 "      If the key generation does not succeed, please check the\n"
 "      documentation of your card to see what sizes are allowed.\n"
 msgstr ""
-"NOTA: No hay garantía de que la tarjeta permita el uso del tamaño\n"
-"      requerido. Si la generación de clave fracasa, por favor compruebe\n"
-"      la documentación de su tarjeta para ver los tamaños posibles.\n"
+"NOTA: No hay garantía de que la tarjeta permita el uso del tamaño\n"
+"      requerido. Si la generación de clave fracasa, por favor compruebe\n"
+"      la documentación de su tarjeta para ver los tamaños posibles.\n"
 
 #, c-format
 msgid "What keysize do you want for the Signature key? (%u) "
-msgstr "¿De qué tamaño quiere la clave de Firmado? (%u) "
+msgstr "¿De qué tamaño quiere la clave de Firmado? (%u) "
 
 #, c-format
 msgid "What keysize do you want for the Encryption key? (%u) "
-msgstr "¿De qué tamaño quiere la clave de Cifrado? (%u) "
+msgstr "¿De qué tamaño quiere la clave de Cifrado? (%u) "
 
 #, c-format
 msgid "What keysize do you want for the Authentication key? (%u) "
-msgstr "¿De qué tamaño quiere la clave de Autenticación? (%u) "
+msgstr "¿De qué tamaño quiere la clave de Autenticación? (%u) "
 
 #, c-format
 msgid "rounded up to %u bits\n"
@@ -1482,27 +1489,27 @@ msgstr "redondeados a %u bits\n"
 
 #, c-format
 msgid "%s keysizes must be in the range %u-%u\n"
-msgstr "los tamaños de claves %s deben estar en el rango %u-%u\n"
+msgstr "los tamaños de claves %s deben estar en el rango %u-%u\n"
 
 #, c-format
 msgid "The card will now be re-configured to generate a key of %u bits\n"
-msgstr "Ahora la tarjeta se reconfigurará para generar una clave de %u bits\n"
+msgstr "Ahora la tarjeta se reconfigurará para generar una clave de %u bits\n"
 
 #, c-format
 msgid "error changing size of key %d to %u bits: %s\n"
-msgstr "error cambiando el tamaño de la clave %d a %u bits: %s\n"
+msgstr "error cambiando el tamaño de la clave %d a %u bits: %s\n"
 
 msgid "Make off-card backup of encryption key? (Y/n) "
 msgstr ""
-"¿Hacer copia de seguridad externa a la tarjeta de clave de cifrado? (S/n)"
+"¿Hacer copia de seguridad externa a la tarjeta de clave de cifrado? (S/n)"
 
 #, fuzzy
 #| msgid "NOTE: keys are already stored on the card!\n"
 msgid "Note: keys are already stored on the card!\n"
-msgstr "NOTA: ¡claves ya almacenadas en la tarjeta!\n"
+msgstr "NOTA: Â¡claves ya almacenadas en la tarjeta!\n"
 
 msgid "Replace existing keys? (y/N) "
-msgstr "¿Reemplazar las claves existentes? (s/N) "
+msgstr "¿Reemplazar las claves existentes? (s/N) "
 
 #, fuzzy, c-format
 #| msgid ""
@@ -1514,9 +1521,9 @@ msgid ""
 "   PIN = '%s'     Admin PIN = '%s'\n"
 "You should change them using the command --change-pin\n"
 msgstr ""
-"Por favor observe que los valores de fábrica del PIN son\n"
+"Por favor observe que los valores de fábrica del PIN son\n"
 "   PIN = `%s'     PIN Administrador = `%s'\n"
-"Debería cambiarlos usando la orden --change-pin\n"
+"Debería cambiarlos usando la orden --change-pin\n"
 
 msgid "Please select the type of key to generate:\n"
 msgstr "Por favor seleccione tipo de clave que generar:\n"
@@ -1528,10 +1535,10 @@ msgid "   (2) Encryption key\n"
 msgstr "   (2) Clave de cifrado\n"
 
 msgid "   (3) Authentication key\n"
-msgstr "   (3) Clave de autentificación\n"
+msgstr "   (3) Clave de autentificación\n"
 
 msgid "Invalid selection.\n"
-msgstr "Elección inválida.\n"
+msgstr "Elección inválida.\n"
 
 msgid "Please select where to store the key:\n"
 msgstr "Por favor elija donde guardar la clave:\n"
@@ -1549,21 +1556,21 @@ msgstr "Esta orden no se permite en modo %s.\n"
 #, fuzzy
 #| msgid "NOTE: keys are already stored on the card!\n"
 msgid "Note: This command destroys all keys stored on the card!\n"
-msgstr "NOTA: ¡claves ya almacenadas en la tarjeta!\n"
+msgstr "NOTA: Â¡claves ya almacenadas en la tarjeta!\n"
 
 #, fuzzy
 #| msgid "Sign it? (y/N) "
 msgid "Continue? (y/N) "
-msgstr "¿Firmarlo? (s/N) "
+msgstr "¿Firmarlo? (s/N) "
 
 msgid "Really do a factory reset? (enter \"yes\") "
 msgstr ""
 
 msgid "quit this menu"
-msgstr "sale de este menú"
+msgstr "sale de este menú"
 
 msgid "show admin commands"
-msgstr "ver órdenes de administrador"
+msgstr "ver órdenes de administrador"
 
 msgid "show this help"
 msgstr "muestra esta ayuda"
@@ -1593,19 +1600,19 @@ msgid "change a CA fingerprint"
 msgstr "cambiar huella dactilar de una CA"
 
 msgid "toggle the signature force PIN flag"
-msgstr "cambiar estado de la opción forzar firma del PIN"
+msgstr "cambiar estado de la opción forzar firma del PIN"
 
 msgid "generate new keys"
 msgstr "generar nuevas claves"
 
 msgid "menu to change or unblock the PIN"
-msgstr "menú para cambiar o desbloquear el PIN"
+msgstr "menú para cambiar o desbloquear el PIN"
 
 msgid "verify the PIN and list all data"
 msgstr "verificar PIN y listar todos los datos"
 
 msgid "unblock the PIN using a Reset Code"
-msgstr "desbloquear PIN usando Código de Reinicio"
+msgstr "desbloquear PIN usando Código de Reinicio"
 
 msgid "destroy all keys and data"
 msgstr ""
@@ -1614,16 +1621,16 @@ msgid "gpg/card> "
 msgstr "gpg/tarjeta> "
 
 msgid "Admin-only command\n"
-msgstr "Órdenes sólo de administrador\n"
+msgstr "Órdenes sólo de administrador\n"
 
 msgid "Admin commands are allowed\n"
-msgstr "Se permiten órdenes de administrador\n"
+msgstr "Se permiten órdenes de administrador\n"
 
 msgid "Admin commands are not allowed\n"
-msgstr "No se permiten órdenes de administrador\n"
+msgstr "No se permiten órdenes de administrador\n"
 
 msgid "Invalid command  (try \"help\")\n"
-msgstr "Orden inválida (pruebe \"help\")\n"
+msgstr "Orden inválida (pruebe \"help\")\n"
 
 msgid "--output doesn't work for this command\n"
 msgstr "--output no funciona con esta orden\n"
@@ -1653,10 +1660,10 @@ msgid "can't do this in batch mode without \"--yes\"\n"
 msgstr "imposible hacer esto en modo de proceso por lotes sin \"--yes\"\n"
 
 msgid "Delete this key from the keyring? (y/N) "
-msgstr "¿Eliminar esta clave del anillo? (s/N) "
+msgstr "¿Eliminar esta clave del anillo? (s/N) "
 
 msgid "This is a secret key! - really delete? (y/N) "
-msgstr "¡Es una clave secreta! ¿Eliminar realmente? (s/N) "
+msgstr "¡Es una clave secreta! Â¿Eliminar realmente? (s/N) "
 
 #, fuzzy, c-format
 #| msgid "deleting certificate \"%s\" failed: %s\n"
@@ -1669,28 +1676,28 @@ msgstr "clave"
 #, fuzzy
 #| msgid "Pubkey: "
 msgid "subkey"
-msgstr "Clave pública: "
+msgstr "Clave pública: "
 
 #, c-format
 msgid "deleting keyblock failed: %s\n"
 msgstr "borrado de bloque de anillo de claves fallido: %s\n"
 
 msgid "ownertrust information cleared\n"
-msgstr "borrada información de propietarios\n"
+msgstr "borrada información de propietarios\n"
 
 #, c-format
 msgid "there is a secret key for public key \"%s\"!\n"
-msgstr "¡hay una clave secreta para esta clave pública! \"%s\"!\n"
+msgstr "¡hay una clave secreta para esta clave pública! \"%s\"!\n"
 
 msgid "use option \"--delete-secret-keys\" to delete it first.\n"
-msgstr "use antes la opción \"--delete-secret-key\" para borrarla.\n"
+msgstr "use antes la opción \"--delete-secret-key\" para borrarla.\n"
 
 #, c-format
 msgid "error creating passphrase: %s\n"
-msgstr "error creando frase contraseña: %s\n"
+msgstr "error creando frase contraseña: %s\n"
 
 msgid "can't use a symmetric ESK packet due to the S2K mode\n"
-msgstr "no puede usar un paquete simétrico ESK debido al modo S2K\n"
+msgstr "no puede usar un paquete simétrico ESK debido al modo S2K\n"
 
 #, c-format
 msgid "using cipher %s\n"
@@ -1699,12 +1706,12 @@ msgstr "usando cifrado %s\n"
 #, fuzzy, c-format
 #| msgid "`%s' already compressed\n"
 msgid "'%s' already compressed\n"
-msgstr "`%s' ya está comprimido\n"
+msgstr "`%s' ya está comprimido\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: `%s' is an empty file\n"
 msgid "WARNING: '%s' is an empty file\n"
-msgstr "ATENCIÓN `%s' es un fichero vacío\n"
+msgstr "ATENCIÓN `%s' es un fichero vacío\n"
 
 #, fuzzy, c-format
 #| msgid "reading from `%s'\n"
@@ -1715,7 +1722,7 @@ msgstr "leyendo desde `%s'\n"
 msgid ""
 "WARNING: forcing symmetric cipher %s (%d) violates recipient preferences\n"
 msgstr ""
-"AVISO: forzar el cifrado simétrico %s (%d) viola las preferencias\n"
+"AVISO: forzar el cifrado simétrico %s (%d) viola las preferencias\n"
 "del destinatario\n"
 
 #, c-format
@@ -1723,13 +1730,13 @@ msgid ""
 "WARNING: forcing compression algorithm %s (%d) violates recipient "
 "preferences\n"
 msgstr ""
-"AVISO: forzar el algoritmo de compresión %s (%d) va en contra\n"
+"AVISO: forzar el algoritmo de compresión %s (%d) va en contra\n"
 "de las preferencias del receptor\n"
 
 #, c-format
 msgid "forcing symmetric cipher %s (%d) violates recipient preferences\n"
 msgstr ""
-"forzar el cifrado simétrico %s (%d) viola las preferencias\n"
+"forzar el cifrado simétrico %s (%d) viola las preferencias\n"
 "del destinatario\n"
 
 #, c-format
@@ -1751,7 +1758,7 @@ msgstr "cifrado con algoritmo desconocido %d\n"
 msgid ""
 "WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
 msgstr ""
-"ATENCIÓN: mensaje cifrado con una clave débil en el cifrado simétrico.\n"
+"ATENCIÓN: mensaje cifrado con una clave débil en el cifrado simétrico.\n"
 
 msgid "problem handling encrypted packet\n"
 msgstr "problema trabajando con un paquete cifrado\n"
@@ -1778,14 +1785,14 @@ msgstr "no se puede ejecutar el programa `%s': %s\n"
 #, fuzzy, c-format
 #| msgid "unable to execute shell `%s': %s\n"
 msgid "unable to execute shell '%s': %s\n"
-msgstr "no se puede ejecutar el intérprete de órdenes `%s': %s\n"
+msgstr "no se puede ejecutar el intérprete de órdenes `%s': %s\n"
 
 #, c-format
 msgid "system error while calling external program: %s\n"
 msgstr "error del sistema llamando al programa externo: %s\n"
 
 msgid "unnatural exit of external program\n"
-msgstr "el programa externo finalizó anormalmente\n"
+msgstr "el programa externo finalizó anormalmente\n"
 
 msgid "unable to execute external program\n"
 msgstr "no se puede ejecutar el programa externo\n"
@@ -1805,13 +1812,13 @@ msgid "WARNING: unable to remove temp directory '%s': %s\n"
 msgstr "AVISO: no se puede borrar el fichero temporal `%s': %s\n"
 
 msgid "export signatures that are marked as local-only"
-msgstr "exportar firmas marcadas como sólo locales"
+msgstr "exportar firmas marcadas como sólo locales"
 
 msgid "export attribute user IDs (generally photo IDs)"
-msgstr "exportar el atributo ID de usuario (generalmente fotográfico)"
+msgstr "exportar el atributo ID de usuario (generalmente fotográfico)"
 
 msgid "export revocation keys marked as \"sensitive\""
-msgstr "exportar claves de revocación marcadas como \"confidenciales\""
+msgstr "exportar claves de revocación marcadas como \"confidenciales\""
 
 msgid "remove unusable parts from key during export"
 msgstr "borrar partes inutilizables de la clave al exportar"
@@ -1841,7 +1848,7 @@ msgid "key %s: PGP 2.x style key - skipped\n"
 msgstr "clave %s: clave estilo PGP 2.x - omitida\n"
 
 msgid "WARNING: nothing exported\n"
-msgstr "ATENCIÓN: no se ha exportado nada\n"
+msgstr "ATENCIÓN: no se ha exportado nada\n"
 
 #, fuzzy, c-format
 #| msgid "error creating `%s': %s\n"
@@ -1854,7 +1861,7 @@ msgstr "[ID de usuario no encontrado]"
 #, fuzzy, c-format
 #| msgid "missing argument for option \"%.50s\"\n"
 msgid "(check argument of option '%s')\n"
-msgstr "falta parámetro para la opción \"%.50s\"\n"
+msgstr "falta parámetro para la opción \"%.50s\"\n"
 
 #, c-format
 msgid "Warning: '%s' should be a long key ID or a fingerprint\n"
@@ -1873,12 +1880,12 @@ msgstr "error escribiendo anillo `%s': %s\n"
 #, fuzzy, c-format
 #| msgid "automatically retrieved `%s' via %s\n"
 msgid "automatically retrieved '%s' via %s\n"
-msgstr "recuperado automáticamente `%s' vía %s\n"
+msgstr "recuperado automáticamente `%s' vía %s\n"
 
 #, fuzzy, c-format
 #| msgid "error retrieving `%s' via %s: %s\n"
 msgid "error retrieving '%s' via %s: %s\n"
-msgstr "error recuperando `%s' vía %s: %s\n"
+msgstr "error recuperando `%s' vía %s: %s\n"
 
 msgid "No fingerprint"
 msgstr "No hay huella dactilar"
@@ -1903,7 +1910,7 @@ msgstr ""
 
 #, c-format
 msgid "Invalid key %s made valid by --allow-non-selfsigned-uid\n"
-msgstr "Clave %s inválida hecha válida mediante --allow-non-selfsigned-uid\n"
+msgstr "Clave %s inválida hecha válida mediante --allow-non-selfsigned-uid\n"
 
 #, c-format
 msgid "using subkey %s instead of primary key %s\n"
@@ -1922,7 +1929,7 @@ msgid "encrypt data"
 msgstr "cifra datos"
 
 msgid "encryption only with symmetric cipher"
-msgstr "cifra sólo con un cifrado simétrico"
+msgstr "cifra sólo con un cifrado simétrico"
 
 msgid "decrypt data (default)"
 msgstr "descifra datos (predefinido)"
@@ -1967,10 +1974,10 @@ msgid "full featured key pair generation"
 msgstr ""
 
 msgid "generate a revocation certificate"
-msgstr "genera un certificado de revocación"
+msgstr "genera un certificado de revocación"
 
 msgid "remove keys from the public keyring"
-msgstr "elimina claves del anillo público"
+msgstr "elimina claves del anillo público"
 
 msgid "remove keys from the secret keyring"
 msgstr "elimina claves del anillo privado"
@@ -1995,7 +2002,7 @@ msgid "sign or edit a key"
 msgstr "firma o modifica una clave"
 
 msgid "change a passphrase"
-msgstr "cambia una frase contraseña"
+msgstr "cambia una frase contraseña"
 
 msgid "export keys"
 msgstr "exporta claves"
@@ -2028,7 +2035,7 @@ msgid "update the trust database"
 msgstr "actualiza la base de datos de confianza"
 
 msgid "print message digests"
-msgstr "imprime resúmenes de mensaje"
+msgstr "imprime resúmenes de mensaje"
 
 msgid "run in server mode"
 msgstr "ejecutar en modo servidor"
@@ -2046,16 +2053,16 @@ msgid "|USER-ID|use USER-ID to sign or decrypt"
 msgstr "|ID-USUARIO|usa este identificador para firmar o descifrar"
 
 msgid "|N|set compress level to N (0 disables)"
-msgstr "|N|nivel de compresión N (0 desactiva)"
+msgstr "|N|nivel de compresión N (0 desactiva)"
 
 msgid "use canonical text mode"
-msgstr "usa modo de texto canónico"
+msgstr "usa modo de texto canónico"
 
 msgid "|FILE|write output to FILE"
 msgstr "|FICHERO|volcar salida en FICHERO"
 
 msgid "do not make any changes"
-msgstr "no hace ningún cambio"
+msgstr "no hace ningún cambio"
 
 msgid "prompt before overwriting"
 msgstr "preguntar antes de sobreescribir"
@@ -2063,16 +2070,16 @@ msgstr "preguntar antes de sobreescribir"
 msgid "use strict OpenPGP behavior"
 msgstr "usar estilo OpenPGP estricto"
 
-# ordenes -> órdenes
-# página man -> página de manual
-# Vale. ¿del manual mejor?
-# Hmm, no sé, en man-db se usa "de". La verdad es que no lo he pensado.
+# ordenes -> órdenes
+# página man -> página de manual
+# Vale. Â¿del manual mejor?
+# Hmm, no sé, en man-db se usa "de". La verdad es que no lo he pensado.
 msgid ""
 "@\n"
 "(See the man page for a complete listing of all commands and options)\n"
 msgstr ""
 "@\n"
-"(Véase en la página del manual la lista completo de órdenes y opciones)\n"
+"(Véase en la página del manual la lista completo de órdenes y opciones)\n"
 
 msgid ""
 "@\n"
@@ -2110,7 +2117,7 @@ msgid ""
 msgstr ""
 "Sintaxis: gpg [opciones] [ficheros]\n"
 "firma, comprueba, cifra o descifra\n"
-"la operación por defecto depende de los datos de entrada\n"
+"la operación por defecto depende de los datos de entrada\n"
 
 msgid ""
 "\n"
@@ -2120,7 +2127,7 @@ msgstr ""
 "Algoritmos disponibles:\n"
 
 msgid "Pubkey: "
-msgstr "Clave pública: "
+msgstr "Clave pública: "
 
 msgid "Cipher: "
 msgstr "Cifrado: "
@@ -2129,7 +2136,7 @@ msgid "Hash: "
 msgstr "Resumen: "
 
 msgid "Compression: "
-msgstr "Compresión: "
+msgstr "Compresión: "
 
 #, fuzzy, c-format
 #| msgid "usage: gpgsm [options] "
@@ -2137,12 +2144,12 @@ msgid "usage: %s [options] %s\n"
 msgstr "uso: gpgsm [opciones] "
 
 msgid "conflicting commands\n"
-msgstr "órdenes incompatibles\n"
+msgstr "órdenes incompatibles\n"
 
 #, fuzzy, c-format
 #| msgid "no = sign found in group definition `%s'\n"
 msgid "no = sign found in group definition '%s'\n"
-msgstr "no se encontró el signo = en la definición de grupo `%s'\n"
+msgstr "no se encontró el signo = en la definición de grupo `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unsafe ownership on homedir `%s'\n"
@@ -2152,12 +2159,12 @@ msgstr "AVISO: propiedad insegura del directorio personal `%s'\n"
 #, fuzzy, c-format
 #| msgid "WARNING: unsafe ownership on configuration file `%s'\n"
 msgid "WARNING: unsafe ownership on configuration file '%s'\n"
-msgstr "AVISO: propiedad insegura del fichero de configuración `%s'\n"
+msgstr "AVISO: propiedad insegura del fichero de configuración `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unsafe ownership on extension `%s'\n"
 msgid "WARNING: unsafe ownership on extension '%s'\n"
-msgstr "AVISO: propiedad insegura de la extensión `%s'\n"
+msgstr "AVISO: propiedad insegura de la extensión `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unsafe permissions on homedir `%s'\n"
@@ -2167,12 +2174,12 @@ msgstr "AVISO: permisos inseguros del directorio personal `%s'\n"
 #, fuzzy, c-format
 #| msgid "WARNING: unsafe permissions on configuration file `%s'\n"
 msgid "WARNING: unsafe permissions on configuration file '%s'\n"
-msgstr "AVISO: permisos inseguros del fichero de configuración `%s'\n"
+msgstr "AVISO: permisos inseguros del fichero de configuración `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unsafe permissions on extension `%s'\n"
 msgid "WARNING: unsafe permissions on extension '%s'\n"
-msgstr "AVISO: permisos inseguros de la extensión `%s'\n"
+msgstr "AVISO: permisos inseguros de la extensión `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unsafe enclosing directory ownership on homedir `%s'\n"
@@ -2186,13 +2193,13 @@ msgid ""
 "WARNING: unsafe enclosing directory ownership on configuration file '%s'\n"
 msgstr ""
 "AVISO: propiedad insegura del directorio contenedor del fichero de\n"
-"configuración `%s'\n"
+"configuración `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unsafe enclosing directory ownership on extension `%s'\n"
 msgid "WARNING: unsafe enclosing directory ownership on extension '%s'\n"
 msgstr ""
-"AVISO: propiedad insegura del directorio contenedor de la extensión `%s'\n"
+"AVISO: propiedad insegura del directorio contenedor de la extensión `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unsafe enclosing directory permissions on homedir `%s'\n"
@@ -2207,18 +2214,18 @@ msgid ""
 "WARNING: unsafe enclosing directory permissions on configuration file '%s'\n"
 msgstr ""
 "AVISO: permisos inseguros del directorio contenedor del fichero de\n"
-"configuración `%s'\n"
+"configuración `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unsafe enclosing directory permissions on extension `%s'\n"
 msgid "WARNING: unsafe enclosing directory permissions on extension '%s'\n"
 msgstr ""
-"AVISO: permisos inseguros del directorio contenedor de la extensión `%s'\n"
+"AVISO: permisos inseguros del directorio contenedor de la extensión `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "unknown configuration item `%s'\n"
 msgid "unknown configuration item '%s'\n"
-msgstr "artículo de configuración desconocido `%s'\n"
+msgstr "artículo de configuración desconocido `%s'\n"
 
 msgid "display photo IDs during key listings"
 msgstr "mostrar foto IDs al listar claves"
@@ -2229,13 +2236,13 @@ msgid "show key usage information during key listings"
 msgstr "mostrar validez de la ID de usuario al listar claves"
 
 msgid "show policy URLs during signature listings"
-msgstr "mostrar URLS de política al listar firmas"
+msgstr "mostrar URLS de política al listar firmas"
 
 msgid "show all notations during signature listings"
 msgstr "mostrar todas las notaciones al listar firmas"
 
 msgid "show IETF standard notations during signature listings"
-msgstr "mostrar notaciones estándar IETF al listar firmas"
+msgstr "mostrar notaciones estándar IETF al listar firmas"
 
 msgid "show user-supplied notations during signature listings"
 msgstr "mostrar notaciones personalizadas al listar firmas"
@@ -2258,20 +2265,25 @@ msgstr "mostrar nombre de los anillos de claves al listar claves"
 msgid "show expiration dates during signature listings"
 msgstr "mostrar fechas de caducidad al listar firmas"
 
-#, fuzzy
-#| msgid "Available keys:\n"
-msgid "available TOFU policies:\n"
-msgstr "Claves disponibles:\n"
+#, fuzzy, c-format
+#| msgid "missing argument for option \"%.50s\"\n"
+msgid "valid values for option '%s':\n"
+msgstr "falta parámetro para la opción \"%.50s\"\n"
 
 #, fuzzy, c-format
 #| msgid "unknown option `%s'\n"
 msgid "unknown TOFU policy '%s'\n"
-msgstr "opción desconocida `%s'\n"
+msgstr "opción desconocida `%s'\n"
 
 msgid "(use \"help\" to list choices)\n"
 msgstr ""
 
 #, fuzzy, c-format
+#| msgid "missing argument for option \"%.50s\"\n"
+msgid "invalid value for option '%s'\n"
+msgstr "falta parámetro para la opción \"%.50s\"\n"
+
+#, fuzzy, c-format
 #| msgid "NOTE: old default options file `%s' ignored\n"
 msgid "Note: old default options file '%s' ignored\n"
 msgstr "NOTA: se ignora el antiguo fichero de opciones predefinidas `%s'\n"
@@ -2279,75 +2291,75 @@ msgstr "NOTA: se ignora el antiguo fichero de opciones predefinidas `%s'\n"
 #, fuzzy, c-format
 #| msgid "NOTE: %s is not for normal use!\n"
 msgid "Note: %s is not for normal use!\n"
-msgstr "NOTA: ¡%s no es para uso normal!\n"
+msgstr "NOTA: Â¡%s no es para uso normal!\n"
 
 #, fuzzy, c-format
 #| msgid "`%s' is not a valid signature expiration\n"
 msgid "'%s' is not a valid signature expiration\n"
-msgstr "`%s' no es una fecha de caducidad válida\n"
+msgstr "`%s' no es una fecha de caducidad válida\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: not a valid email address\n"
 msgid "\"%s\" is not a proper mail address\n"
-msgstr "línea %d: no es una dirección de email válida\n"
+msgstr "línea %d: no es una dirección de email válida\n"
 
 #, fuzzy, c-format
 #| msgid "invalid country code in `%s', line %d\n"
 msgid "invalid pinentry mode '%s'\n"
-msgstr "código de país inválido en `%s', línea %d\n"
+msgstr "código de país inválido en `%s', línea %d\n"
 
 #, fuzzy, c-format
 #| msgid "`%s' is not a valid character set\n"
 msgid "'%s' is not a valid character set\n"
-msgstr "`%s' no es un juego de caracteres válido\n"
+msgstr "`%s' no es un juego de caracteres válido\n"
 
 msgid "could not parse keyserver URL\n"
 msgstr "no se puede interpretar la URL del servidor de claves\n"
 
 #, c-format
 msgid "%s:%d: invalid keyserver options\n"
-msgstr "%s:%d: opciones del servidor de claves inválidas\n"
+msgstr "%s:%d: opciones del servidor de claves inválidas\n"
 
 msgid "invalid keyserver options\n"
-msgstr "opciones del servidor de claves inválidas\n"
+msgstr "opciones del servidor de claves inválidas\n"
 
 #, c-format
 msgid "%s:%d: invalid import options\n"
-msgstr "%s:%d: opciones de importación inválidas\n"
+msgstr "%s:%d: opciones de importación inválidas\n"
 
 msgid "invalid import options\n"
-msgstr "opciones de importación inválidas\n"
+msgstr "opciones de importación inválidas\n"
 
 #, fuzzy, c-format
 #| msgid "invalid list options\n"
 msgid "invalid filter option: %s\n"
-msgstr "lista de opciones inválida\n"
+msgstr "lista de opciones inválida\n"
 
 #, c-format
 msgid "%s:%d: invalid export options\n"
-msgstr "%s:%d: opciones de exportación inválidas\n"
+msgstr "%s:%d: opciones de exportación inválidas\n"
 
 msgid "invalid export options\n"
-msgstr "opciones de exportación inválidas\n"
+msgstr "opciones de exportación inválidas\n"
 
 #, c-format
 msgid "%s:%d: invalid list options\n"
-msgstr "%s:%d: lista de opciones inválida\n"
+msgstr "%s:%d: lista de opciones inválida\n"
 
 msgid "invalid list options\n"
-msgstr "lista de opciones inválida\n"
+msgstr "lista de opciones inválida\n"
 
 msgid "display photo IDs during signature verification"
 msgstr "mostrar foto IDs al verificar firmas"
 
 msgid "show policy URLs during signature verification"
-msgstr "mostrar URLs de política al verificar firmas"
+msgstr "mostrar URLs de política al verificar firmas"
 
 msgid "show all notations during signature verification"
 msgstr "mostrar todas las notaciones al verificar firmas"
 
 msgid "show IETF standard notations during signature verification"
-msgstr "mostrar notaciones estándar IETF al verificar firmas"
+msgstr "mostrar notaciones estándar IETF al verificar firmas"
 
 msgid "show user-supplied notations during signature verification"
 msgstr "mostrar notaciones personalizadas al verificar firmas"
@@ -2368,14 +2380,14 @@ msgid "validate signatures with PKA data"
 msgstr "validar firmas con datos PKA"
 
 msgid "elevate the trust of signatures with valid PKA data"
-msgstr "aumentar confianza en las firmas con datos válidos PKA"
+msgstr "aumentar confianza en las firmas con datos válidos PKA"
 
 #, c-format
 msgid "%s:%d: invalid verify options\n"
-msgstr "%s:%d: opciones de verificación inválidas\n"
+msgstr "%s:%d: opciones de verificación inválidas\n"
 
 msgid "invalid verify options\n"
-msgstr "opciones de verificación inválidas\n"
+msgstr "opciones de verificación inválidas\n"
 
 #, c-format
 msgid "unable to set exec-path to %s\n"
@@ -2383,13 +2395,13 @@ msgstr "imposible establecer camino de ejecutables %s\n"
 
 #, c-format
 msgid "%s:%d: invalid auto-key-locate list\n"
-msgstr "%s:%d: lista de auto-localización de claves inválida\n"
+msgstr "%s:%d: lista de auto-localización de claves inválida\n"
 
 msgid "invalid auto-key-locate list\n"
-msgstr "lista de auto-localización de claves inválida\n"
+msgstr "lista de auto-localización de claves inválida\n"
 
 msgid "WARNING: program may create a core file!\n"
-msgstr "ATENCIÓN: ¡el programa podría volcar un fichero core!\n"
+msgstr "ATENCIÓN: ¡el programa podría volcar un fichero core!\n"
 
 #, c-format
 msgid "WARNING: %s overrides %s\n"
@@ -2397,30 +2409,30 @@ msgstr "AVISO: %s sustituye a %s\n"
 
 #, c-format
 msgid "%s not allowed with %s!\n"
-msgstr "¡%s no permitido con %s!\n"
+msgstr "¡%s no permitido con %s!\n"
 
 #, c-format
 msgid "%s makes no sense with %s!\n"
-msgstr "¡%s no tiene sentido con %s!\n"
+msgstr "¡%s no tiene sentido con %s!\n"
 
 msgid "WARNING: running with faked system time: "
-msgstr "AVISO: ejecutándose con hora del sistema falsificada"
+msgstr "AVISO: ejecutándose con hora del sistema falsificada"
 
 #, c-format
 msgid "will not run with insecure memory due to %s\n"
-msgstr "no se ejecutará en memoria insegura por %s\n"
+msgstr "no se ejecutará en memoria insegura por %s\n"
 
 msgid "selected cipher algorithm is invalid\n"
-msgstr "el algoritmo de cifrado seleccionado es inválido\n"
+msgstr "el algoritmo de cifrado seleccionado es inválido\n"
 
 msgid "selected digest algorithm is invalid\n"
-msgstr "el algoritmo de resumen seleccionado no inválido\n"
+msgstr "el algoritmo de resumen seleccionado no inválido\n"
 
 msgid "selected compression algorithm is invalid\n"
-msgstr "el algoritmo de compresión seleccionado es inválido\n"
+msgstr "el algoritmo de compresión seleccionado es inválido\n"
 
 msgid "selected certification digest algorithm is invalid\n"
-msgstr "el algoritmo de certificación por resumen elegido es inválido\n"
+msgstr "el algoritmo de certificación por resumen elegido es inválido\n"
 
 msgid "completes-needed must be greater than 0\n"
 msgstr "completes-needed debe ser mayor que 0\n"
@@ -2432,10 +2444,10 @@ msgid "max-cert-depth must be in the range from 1 to 255\n"
 msgstr "max-cert-depth debe estar en el rango de 1 a 255\n"
 
 msgid "invalid default-cert-level; must be 0, 1, 2, or 3\n"
-msgstr "default-cert-level inválido; debe ser 0, 1, 2, ó 3\n"
+msgstr "default-cert-level inválido; debe ser 0, 1, 2, ó 3\n"
 
 msgid "invalid min-cert-level; must be 1, 2, or 3\n"
-msgstr "min-cert-level inválido; debe ser 0, 1, 2, ó 3\n"
+msgstr "min-cert-level inválido; debe ser 0, 1, 2, ó 3\n"
 
 #, fuzzy
 #| msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
@@ -2446,20 +2458,20 @@ msgid "invalid S2K mode; must be 0, 1 or 3\n"
 msgstr "modo S2K incorrecto; debe ser 0, 1 o 3\n"
 
 msgid "invalid default preferences\n"
-msgstr "preferencias por defecto inválidas\n"
+msgstr "preferencias por defecto inválidas\n"
 
 msgid "invalid personal cipher preferences\n"
-msgstr "preferencias personales de cifrado inválidas\n"
+msgstr "preferencias personales de cifrado inválidas\n"
 
 msgid "invalid personal digest preferences\n"
-msgstr "preferencias personales de algoritmo de resumen inválidas\n"
+msgstr "preferencias personales de algoritmo de resumen inválidas\n"
 
 msgid "invalid personal compress preferences\n"
-msgstr "preferencias personales de compresión inválidas\n"
+msgstr "preferencias personales de compresión inválidas\n"
 
 #, c-format
 msgid "%s does not yet work with %s\n"
-msgstr "%s aún no funciona con %s\n"
+msgstr "%s aún no funciona con %s\n"
 
 #, fuzzy, c-format
 #| msgid "you may not use cipher algorithm `%s' while in %s mode\n"
@@ -2474,14 +2486,14 @@ msgstr "no puede usar el resumen `%s' en modo %s\n"
 #, fuzzy, c-format
 #| msgid "you may not use compression algorithm `%s' while in %s mode\n"
 msgid "you may not use compression algorithm '%s' while in %s mode\n"
-msgstr "no puede usar la compresión `%s' en modo %s\n"
+msgstr "no puede usar la compresión `%s' en modo %s\n"
 
 #, c-format
 msgid "failed to initialize the TrustDB: %s\n"
-msgstr "inicialización de la base de datos de confianza fallida: %s\n"
+msgstr "inicialización de la base de datos de confianza fallida: %s\n"
 
 msgid "WARNING: recipients (-r) given without using public key encryption\n"
-msgstr "AVISO: se indicaron receptores (-r) sin clave pública de cifrado\n"
+msgstr "AVISO: se indicaron receptores (-r) sin clave pública de cifrado\n"
 
 msgid "--store [filename]"
 msgstr "--store [nombre_fichero]"
@@ -2492,7 +2504,7 @@ msgstr "--symmetric [nombre_fichero]"
 #, fuzzy, c-format
 #| msgid "symmetric encryption of `%s' failed: %s\n"
 msgid "symmetric encryption of '%s' failed: %s\n"
-msgstr "el cifrado simétrico de `%s' falló: %s\n"
+msgstr "el cifrado simétrico de `%s' falló: %s\n"
 
 msgid "--encrypt [filename]"
 msgstr "--encrypt [nombre_fichero]"
@@ -2539,48 +2551,48 @@ msgid "--lsign-key user-id"
 msgstr "--lsign-key id-usuario"
 
 msgid "--edit-key user-id [commands]"
-msgstr "--edit-key id-usuario [órdenes]"
+msgstr "--edit-key id-usuario [órdenes]"
 
 msgid "--passwd <user-id>"
 msgstr "--passwd <id-usuario>"
 
 #, c-format
 msgid "keyserver send failed: %s\n"
-msgstr "envío al servidor de claves fallido: %s\n"
+msgstr "envío al servidor de claves fallido: %s\n"
 
 #, c-format
 msgid "keyserver receive failed: %s\n"
-msgstr "recepción del servidor de claves fallida: %s\n"
+msgstr "recepción del servidor de claves fallida: %s\n"
 
 #, c-format
 msgid "key export failed: %s\n"
-msgstr "exportación de clave fallida: %s\n"
+msgstr "exportación de clave fallida: %s\n"
 
 #, fuzzy, c-format
 #| msgid "key export failed: %s\n"
 msgid "export as ssh key failed: %s\n"
-msgstr "exportación de clave fallida: %s\n"
+msgstr "exportación de clave fallida: %s\n"
 
 #, c-format
 msgid "keyserver search failed: %s\n"
-msgstr "búsqueda del servidor de claves fallida: %s\n"
+msgstr "búsqueda del servidor de claves fallida: %s\n"
 
 #, c-format
 msgid "keyserver refresh failed: %s\n"
-msgstr "renovación al servidor de claves fallida: %s\n"
+msgstr "renovación al servidor de claves fallida: %s\n"
 
 #, c-format
 msgid "dearmoring failed: %s\n"
-msgstr "eliminación de armadura fallida: %s\n"
+msgstr "eliminación de armadura fallida: %s\n"
 
 #, c-format
 msgid "enarmoring failed: %s\n"
-msgstr "creación de armadura fallida: %s\n"
+msgstr "creación de armadura fallida: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid hash algorithm `%s'\n"
 msgid "invalid hash algorithm '%s'\n"
-msgstr "algoritmo de distribución inválido `%s'\n"
+msgstr "algoritmo de distribución inválido `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "error storing certificate: %s\n"
@@ -2595,29 +2607,29 @@ msgid "[filename]"
 msgstr "[nombre_fichero]"
 
 # Falta un espacio.
-# En español no se deja espacio antes de los puntos suspensivos
+# En español no se deja espacio antes de los puntos suspensivos
 # (Real Academia dixit) :)
-# Tomo nota :-). Este comentario déjalo siempre.
+# Tomo nota :-). Este comentario déjalo siempre.
 msgid "Go ahead and type your message ...\n"
 msgstr "Adelante, teclee su mensaje...\n"
 
 msgid "the given certification policy URL is invalid\n"
-msgstr "URL de política de certificado inválida\n"
+msgstr "URL de política de certificado inválida\n"
 
 msgid "the given signature policy URL is invalid\n"
-msgstr "URL de política inválida\n"
+msgstr "URL de política inválida\n"
 
 msgid "the given preferred keyserver URL is invalid\n"
-msgstr "la URL del servidor de claves preferido no es válida\n"
+msgstr "la URL del servidor de claves preferido no es válida\n"
 
 msgid "|FILE|take the keys from the keyring FILE"
 msgstr "|FICHERO|tomar las claves del anillo FILE"
 
 msgid "make timestamp conflicts only a warning"
-msgstr "hacer que los conflictos de fecha-hora sean sólo un aviso"
+msgstr "hacer que los conflictos de fecha-hora sean sólo un aviso"
 
 msgid "|FD|write status info to this FD"
-msgstr "|DF|escribe información de estado en este descriptor de fichero"
+msgstr "|DF|escribe información de estado en este descriptor de fichero"
 
 msgid "|ALGO|reject signatures made with ALGO"
 msgstr ""
@@ -2641,18 +2653,18 @@ msgid "No help available for '%s'"
 msgstr "No hay ayuda disponible para `%s'"
 
 msgid "import signatures that are marked as local-only"
-msgstr "importar firmas marcadas como sólo locales"
+msgstr "importar firmas marcadas como sólo locales"
 
 msgid "repair damage from the pks keyserver during import"
-msgstr "reparar daño del servidor de claves públicas al importar"
+msgstr "reparar daño del servidor de claves públicas al importar"
 
 #, fuzzy
 #| msgid "do not update the trustdb after import"
 msgid "do not clear the ownertrust values during import"
-msgstr "no actualiza la base de datos de confianza después de importar"
+msgstr "no actualiza la base de datos de confianza después de importar"
 
 msgid "do not update the trustdb after import"
-msgstr "no actualiza la base de datos de confianza después de importar"
+msgstr "no actualiza la base de datos de confianza después de importar"
 
 #, fuzzy
 #| msgid "show key fingerprint"
@@ -2660,10 +2672,10 @@ msgid "show key during import"
 msgstr "muestra huella dactilar de la clave"
 
 msgid "only accept updates to existing keys"
-msgstr "sólo aceptar actualizaciones de claves ya existentes"
+msgstr "sólo aceptar actualizaciones de claves ya existentes"
 
 msgid "remove unusable parts from key after import"
-msgstr "borrar partes inútiles de la clave después de importar"
+msgstr "borrar partes inútiles de la clave después de importar"
 
 msgid "remove as much as possible from key after import"
 msgstr "borrar tanto como sea posible de la clave tras importar"
@@ -2722,7 +2734,7 @@ msgstr "        nuevas revocaciones de claves: %lu\n"
 
 #, c-format
 msgid "      secret keys read: %lu\n"
-msgstr "     claves secretas leídas: %lu\n"
+msgstr "     claves secretas leídas: %lu\n"
 
 #, c-format
 msgid "  secret keys imported: %lu\n"
@@ -2762,7 +2774,7 @@ msgstr "         \"%s\": algoritmo de resumen preferido %s\n"
 
 #, c-format
 msgid "         \"%s\": preference for compression algorithm %s\n"
-msgstr "         \"%s\": algoritmo de compresión preferido %s\n"
+msgstr "         \"%s\": algoritmo de compresión preferido %s\n"
 
 msgid "it is strongly suggested that you update your preferences and\n"
 msgstr "se recomienda encarecidamente que actualice sus preferencias y\n"
@@ -2799,14 +2811,14 @@ msgstr "clave %s: aceptado ID de usuario sin autofirma \"%s\"\n"
 
 #, c-format
 msgid "key %s: no valid user IDs\n"
-msgstr "clave %s: sin identificadores de usuario válidos\n"
+msgstr "clave %s: sin identificadores de usuario válidos\n"
 
 msgid "this may be caused by a missing self-signature\n"
 msgstr "esto puede ser debido a la ausencia de autofirma\n"
 
 #, c-format
 msgid "key %s: public key not found: %s\n"
-msgstr "clave %s: clave pública no encontrada: %s\n"
+msgstr "clave %s: clave pública no encontrada: %s\n"
 
 #, c-format
 msgid "key %s: new key - skipped\n"
@@ -2823,7 +2835,7 @@ msgstr "error escribiendo anillo `%s': %s\n"
 
 #, c-format
 msgid "key %s: public key \"%s\" imported\n"
-msgstr "clave %s: clave pública \"%s\" importada\n"
+msgstr "clave %s: clave pública \"%s\" importada\n"
 
 #, c-format
 msgid "key %s: doesn't match our copy\n"
@@ -2905,7 +2917,7 @@ msgstr "no se permite importar claves secretas\n"
 
 #, c-format
 msgid "key %s: secret key with invalid cipher %d - skipped\n"
-msgstr "clave %s: clave secreta con cifrado inválido %d - omitida\n"
+msgstr "clave %s: clave secreta con cifrado inválido %d - omitida\n"
 
 #. TRANSLATORS: For smartcard, each private key on
 #. host has a reference (stub) to a smartcard and
@@ -2924,16 +2936,16 @@ msgstr ""
 #, c-format
 msgid "key %s: no public key - can't apply revocation certificate\n"
 msgstr ""
-"clave %s: falta la clave pública - imposible emplear el\n"
-"certificado de revocación\n"
+"clave %s: falta la clave pública - imposible emplear el\n"
+"certificado de revocación\n"
 
 #, c-format
 msgid "key %s: invalid revocation certificate: %s - rejected\n"
-msgstr "clave %s: certificado de revocación inválido: %s - rechazado\n"
+msgstr "clave %s: certificado de revocación inválido: %s - rechazado\n"
 
 #, c-format
 msgid "key %s: \"%s\" revocation certificate imported\n"
-msgstr "clave %s: \"%s\" certificado de revocación importado\n"
+msgstr "clave %s: \"%s\" certificado de revocación importado\n"
 
 #, c-format
 msgid "key %s: no user ID for signature\n"
@@ -2941,19 +2953,19 @@ msgstr "clave %s: no hay identificador de usuario para la firma\n"
 
 #, c-format
 msgid "key %s: unsupported public key algorithm on user ID \"%s\"\n"
-msgstr "clave %s: algoritmo de clave pública no disponible para ID \"%s\"\n"
+msgstr "clave %s: algoritmo de clave pública no disponible para ID \"%s\"\n"
 
 #, c-format
 msgid "key %s: invalid self-signature on user ID \"%s\"\n"
-msgstr "clave %s: autofirma inválida para el id \"%s\"\n"
+msgstr "clave %s: autofirma inválida para el id \"%s\"\n"
 
 #, c-format
 msgid "key %s: unsupported public key algorithm\n"
-msgstr "clave %s: algoritmo de clave pública no disponible\n"
+msgstr "clave %s: algoritmo de clave pública no disponible\n"
 
 #, c-format
 msgid "key %s: invalid direct key signature\n"
-msgstr "clave %s: firma directa de clave inválida\n"
+msgstr "clave %s: firma directa de clave inválida\n"
 
 #, c-format
 msgid "key %s: no subkey for key binding\n"
@@ -2961,23 +2973,23 @@ msgstr "clave %s: no hay subclave que unir a la clave\n"
 
 #, c-format
 msgid "key %s: invalid subkey binding\n"
-msgstr "clave %s: unión de subclave inválida\n"
+msgstr "clave %s: unión de subclave inválida\n"
 
 #, c-format
 msgid "key %s: removed multiple subkey binding\n"
-msgstr "clave %s: borrado enlace de subclaves múltiples\n"
+msgstr "clave %s: borrado enlace de subclaves múltiples\n"
 
 #, c-format
 msgid "key %s: no subkey for key revocation\n"
-msgstr "clave %s: no hay subclave para la revocación de clave\n"
+msgstr "clave %s: no hay subclave para la revocación de clave\n"
 
 #, c-format
 msgid "key %s: invalid subkey revocation\n"
-msgstr "clave %s: revocación de subclave inválida\n"
+msgstr "clave %s: revocación de subclave inválida\n"
 
 #, c-format
 msgid "key %s: removed multiple subkey revocation\n"
-msgstr "clave %s: borrada revocación de subclave múltiple\n"
+msgstr "clave %s: borrada revocación de subclave múltiple\n"
 
 #, c-format
 msgid "key %s: skipped user ID \"%s\"\n"
@@ -2993,11 +3005,11 @@ msgstr "clave %s: firma no exportable (clase 0x%02x) - omitida\n"
 
 #, c-format
 msgid "key %s: revocation certificate at wrong place - skipped\n"
-msgstr "clave %s: certificado de revocación en lugar equivocado - omitido\n"
+msgstr "clave %s: certificado de revocación en lugar equivocado - omitido\n"
 
 #, c-format
 msgid "key %s: invalid revocation certificate: %s - skipped\n"
-msgstr "clave %s: certificado de revocación no valido: %s - omitido\n"
+msgstr "clave %s: certificado de revocación no valido: %s - omitido\n"
 
 #, c-format
 msgid "key %s: subkey signature in wrong place - skipped\n"
@@ -3014,20 +3026,20 @@ msgstr "clave %s: detectado usuario duplicado - fusionada\n"
 #, c-format
 msgid "WARNING: key %s may be revoked: fetching revocation key %s\n"
 msgstr ""
-"AVISO: la clave %s puede estar revocada: recuperando clave de revocación %s\n"
+"AVISO: la clave %s puede estar revocada: recuperando clave de revocación %s\n"
 
 #, c-format
 msgid "WARNING: key %s may be revoked: revocation key %s not present.\n"
 msgstr ""
-"AVISO: la clave %s puede estar revocada: falta clave de revocación %s.\n"
+"AVISO: la clave %s puede estar revocada: falta clave de revocación %s.\n"
 
 #, c-format
 msgid "key %s: \"%s\" revocation certificate added\n"
-msgstr "clave %s: \"%s\" certificado de revocación añadido\n"
+msgstr "clave %s: \"%s\" certificado de revocación añadido\n"
 
 #, c-format
 msgid "key %s: direct key signature added\n"
-msgstr "clave %s: firma directa de clave añadida\n"
+msgstr "clave %s: firma directa de clave añadida\n"
 
 #, fuzzy, c-format
 #| msgid "error creating keybox `%s': %s\n"
@@ -3061,18 +3073,23 @@ msgstr "error abriendo `%s': %s\n"
 
 #, c-format
 msgid "failed to rebuild keyring cache: %s\n"
-msgstr "fallo reconstruyendo caché del anillo de claves: %s\n"
+msgstr "fallo reconstruyendo caché del anillo de claves: %s\n"
 
 msgid "[revocation]"
-msgstr "[revocación]"
+msgstr "[revocación]"
 
 msgid "[self-signature]"
 msgstr "[autofirma]"
 
 #, fuzzy, c-format
+#| msgid "error allocating enough memory: %s\n"
+msgid "error allocating memory: %s\n"
+msgstr "error reservando memoria: %s\n"
+
+#, fuzzy, c-format
 #| msgid "key %s: unsupported public key algorithm\n"
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
-msgstr "clave %s: algoritmo de clave pública no disponible\n"
+msgstr "clave %s: algoritmo de clave pública no disponible\n"
 
 #, fuzzy, c-format
 #| msgid "card does not support digest algorithm %s\n"
@@ -3137,11 +3154,11 @@ msgstr ""
 
 #, c-format
 msgid "  %d = I trust marginally\n"
-msgstr " %d = Confío un poco\n"
+msgstr " %d = Confío un poco\n"
 
 #, c-format
 msgid "  %d = I trust fully\n"
-msgstr " %d = Confío totalmente\n"
+msgstr " %d = Confío totalmente\n"
 
 msgid ""
 "Please enter the depth of this trust signature.\n"
@@ -3149,7 +3166,7 @@ msgid ""
 "trust signatures on your behalf.\n"
 msgstr ""
 "Por favor, introduzca el nivel de esta firma de confianza.\n"
-"Un nivel mayor que 1 permite que la clave que está firmando pueda\n"
+"Un nivel mayor que 1 permite que la clave que está firmando pueda\n"
 "hacer firmas de confianza en su nombre.\n"
 
 msgid "Please enter a domain to restrict this signature, or enter for none.\n"
@@ -3164,7 +3181,7 @@ msgid "User ID \"%s\" is revoked."
 msgstr "ID de usuario \"%s\" revocado."
 
 msgid "Are you sure you still want to sign it? (y/N) "
-msgstr "¿Seguro que todavía quiere firmarlo? (s/N) "
+msgstr "¿Seguro que todavía quiere firmarlo? (s/N) "
 
 msgid "  Unable to sign.\n"
 msgstr "  Imposible firmar.\n"
@@ -3182,7 +3199,7 @@ msgid "User ID \"%s\" is signable.  "
 msgstr "ID de usuario \"%s\" puede firmarse."
 
 msgid "Sign it? (y/N) "
-msgstr "¿Firmarlo? (s/N) "
+msgstr "¿Firmarlo? (s/N) "
 
 #, c-format
 msgid ""
@@ -3204,7 +3221,7 @@ msgstr ""
 "ha expirado.\n"
 
 msgid "Do you want to issue a new signature to replace the expired one? (y/N) "
-msgstr "¿Quiere producir una nueva firma que reemplace a la expirada? (s/N) "
+msgstr "¿Quiere producir una nueva firma que reemplace a la expirada? (s/N) "
 
 #, c-format
 msgid ""
@@ -3226,28 +3243,28 @@ msgid "\"%s\" was already signed by key %s\n"
 msgstr "\"%s\" ya estaba firmada por la clave %s\n"
 
 msgid "Do you want to sign it again anyway? (y/N) "
-msgstr "¿Quiere firmarlo aún así? (s/N) "
+msgstr "¿Quiere firmarlo aún así? (s/N) "
 
 #, c-format
 msgid "Nothing to sign with key %s\n"
 msgstr "Nada que firmar con la clave %s\n"
 
 msgid "This key has expired!"
-msgstr "¡Esta clave ha caducado!"
+msgstr "¡Esta clave ha caducado!"
 
 #, c-format
 msgid "This key is due to expire on %s.\n"
-msgstr "Esta clave expirará el %s.\n"
+msgstr "Esta clave expirará el %s.\n"
 
 msgid "Do you want your signature to expire at the same time? (Y/n) "
-msgstr "¿Quiere que su firma caduque al mismo tiempo? (S/n) "
+msgstr "¿Quiere que su firma caduque al mismo tiempo? (S/n) "
 
 msgid ""
 "How carefully have you verified the key you are about to sign actually "
 "belongs\n"
 "to the person named above?  If you don't know what to answer, enter \"0\".\n"
 msgstr ""
-"¿Cómo de cuidadosamente ha verificado que la clave que está a punto de\n"
+"¿Cómo de cuidadosamente ha verificado que la clave que está a punto de\n"
 "firmar pertenece realmente a la persona arriba nombrada? Si no sabe que\n"
 "contestar, introduzca \"0\".\n"
 
@@ -3261,7 +3278,7 @@ msgstr "   (1) No lo he comprobado en absoluto.%s\n"
 
 #, c-format
 msgid "   (2) I have done casual checking.%s\n"
-msgstr "   (2) He hecho una comprobación informal.%s\n"
+msgstr "   (2) He hecho una comprobación informal.%s\n"
 
 #, c-format
 msgid "   (3) I have done very careful checking.%s\n"
@@ -3270,30 +3287,30 @@ msgstr "   (3) Lo he comprobado meticulosamente.%s\n"
 #, fuzzy
 #| msgid "Your selection? (enter `?' for more information): "
 msgid "Your selection? (enter '?' for more information): "
-msgstr "¿Su elección? (escriba '?' si desea más información): "
+msgstr "¿Su elección? (escriba '?' si desea más información): "
 
 #, c-format
 msgid ""
 "Are you sure that you want to sign this key with your\n"
 "key \"%s\" (%s)\n"
 msgstr ""
-"¿Está realmente seguro de querer firmar esta clave\n"
+"¿Está realmente seguro de querer firmar esta clave\n"
 "con su clave: \"%s\" (%s)?\n"
 
 msgid "This will be a self-signature.\n"
-msgstr "Esto será una autofirma.\n"
+msgstr "Esto será una autofirma.\n"
 
 msgid "WARNING: the signature will not be marked as non-exportable.\n"
-msgstr "ATENCION: la firma no se marcará como no exportable.\n"
+msgstr "ATENCION: la firma no se marcará como no exportable.\n"
 
 msgid "WARNING: the signature will not be marked as non-revocable.\n"
-msgstr "AVISO: la firma no se marcará como no revocable.\n"
+msgstr "AVISO: la firma no se marcará como no revocable.\n"
 
 msgid "The signature will be marked as non-exportable.\n"
-msgstr "La firma se marcará como no exportable.\n"
+msgstr "La firma se marcará como no exportable.\n"
 
 msgid "The signature will be marked as non-revocable.\n"
-msgstr "La firma se marcará como no revocable.\n"
+msgstr "La firma se marcará como no revocable.\n"
 
 msgid "I have not checked this key at all.\n"
 msgstr "No he comprobado esta clave en absoluto.\n"
@@ -3305,7 +3322,7 @@ msgid "I have checked this key very carefully.\n"
 msgstr "He comprobado esta clave meticulosamente.\n"
 
 msgid "Really sign? (y/N) "
-msgstr "¿Firmar de verdad? (s/N) "
+msgstr "¿Firmar de verdad? (s/N) "
 
 #, c-format
 msgid "signing failed: %s\n"
@@ -3313,13 +3330,13 @@ msgstr "firma fallida: %s\n"
 
 msgid "Key has only stub or on-card key items - no passphrase to change.\n"
 msgstr ""
-"La clave tiene sólo un apuntador u objetos de clave en la propia tarjeta\n"
-"- no hay frase contraseña que cambiar.\n"
+"La clave tiene sólo un apuntador u objetos de clave en la propia tarjeta\n"
+"- no hay frase contraseña que cambiar.\n"
 
 #, fuzzy, c-format
 #| msgid "error creating passphrase: %s\n"
 msgid "key %s: error changing passphrase: %s\n"
-msgstr "error creando frase contraseña: %s\n"
+msgstr "error creando frase contraseña: %s\n"
 
 msgid "save and quit"
 msgstr "graba y sale"
@@ -3345,7 +3362,7 @@ msgid "check signatures"
 msgstr "comprueba firmas"
 
 msgid "sign selected user IDs [* see below for related commands]"
-msgstr "firmar IDs seleccionadas [* ver debajo órdenes relacionadas]"
+msgstr "firmar IDs seleccionadas [* ver debajo órdenes relacionadas]"
 
 msgid "sign selected user IDs locally"
 msgstr "firma localmente los IDs de usuarios elegidos"
@@ -3357,19 +3374,19 @@ msgid "sign selected user IDs with a non-revocable signature"
 msgstr "firmar IDs seleccionados con firma no revocable"
 
 msgid "add a user ID"
-msgstr "añadir un identificador de usuario"
+msgstr "añadir un identificador de usuario"
 
 msgid "add a photo ID"
-msgstr "añadir un ID fotográfico"
+msgstr "añadir un ID fotográfico"
 
 msgid "delete selected user IDs"
 msgstr "borrar identificadores de usuario seleccionados"
 
 msgid "add a subkey"
-msgstr "añadir una subclave"
+msgstr "añadir una subclave"
 
 msgid "add a key to a smartcard"
-msgstr "añadir clave a tarjeta"
+msgstr "añadir clave a tarjeta"
 
 msgid "move a key to a smartcard"
 msgstr "mover una clave a la tarjeta"
@@ -3381,7 +3398,7 @@ msgid "delete selected subkeys"
 msgstr "borrar clave secundaria"
 
 msgid "add a revocation key"
-msgstr "añadir una clave de revocación"
+msgstr "añadir una clave de revocación"
 
 msgid "delete signatures from the selected user IDs"
 msgstr "borrar firmas de los ID seleccionados"
@@ -3405,10 +3422,10 @@ msgid "set the preferred keyserver URL for the selected user IDs"
 msgstr "establecer URL del servidor de claves preferido por los IDs elegidos"
 
 msgid "set a notation for the selected user IDs"
-msgstr "establecer notación para los IDs de usuario seleccionados"
+msgstr "establecer notación para los IDs de usuario seleccionados"
 
 msgid "change the passphrase"
-msgstr "cambia la frase contraseña"
+msgstr "cambia la frase contraseña"
 
 msgid "change the ownertrust"
 msgstr "cambia valores de confianza"
@@ -3458,18 +3475,18 @@ msgid ""
 msgstr ""
 "* La orden `sign' (firmar) puede estar precedida por una 'l' para firmas\n"
 "locales (lsign), una 't' para firmas fiables (tsign), `nr' para firmas no\n"
-"revocables (nrsign) o cualquier combinación de ellas (ltsign, tnrsign, etc)\n"
+"revocables (nrsign) o cualquier combinación de ellas (ltsign, tnrsign, etc)\n"
 
 msgid "Key is revoked."
-msgstr "La clave está revocada."
+msgstr "La clave está revocada."
 
 msgid "Really sign all user IDs? (y/N) "
-msgstr "¿Firmar realmente todos los IDs de usuario? (s/N) "
+msgstr "¿Firmar realmente todos los IDs de usuario? (s/N) "
 
 #, fuzzy
 #| msgid "Really sign all user IDs? (y/N) "
 msgid "Really sign all text user IDs? (y/N) "
-msgstr "¿Firmar realmente todos los IDs de usuario? (s/N) "
+msgstr "¿Firmar realmente todos los IDs de usuario? (s/N) "
 
 msgid "Hint: Select the user IDs to sign\n"
 msgstr "Sugerencia: seleccione los identificadores de usuario que firmar\n"
@@ -3491,18 +3508,18 @@ msgid "(Use the '%s' command.)\n"
 msgstr ""
 
 msgid "You can't delete the last user ID!\n"
-msgstr "¡No puede borrar el último identificador de usuario!\n"
+msgstr "¡No puede borrar el último identificador de usuario!\n"
 
 msgid "Really remove all selected user IDs? (y/N) "
-msgstr "¿Borrar realmente todos los identificadores seleccionados? (s/N) "
+msgstr "¿Borrar realmente todos los identificadores seleccionados? (s/N) "
 
 msgid "Really remove this user ID? (y/N) "
-msgstr "¿Borrar realmente este identificador de usuario? (s/N) "
+msgstr "¿Borrar realmente este identificador de usuario? (s/N) "
 
 #. TRANSLATORS: Please take care: This is about
 #. moving the key and not about removing it.
 msgid "Really move the primary key? (y/N) "
-msgstr "¿Realmente cambiar de sitio la clave primaria? (s/N)"
+msgstr "¿Realmente cambiar de sitio la clave primaria? (s/N)"
 
 msgid "You must select exactly one key.\n"
 msgstr "Debe seleccionar exactamente una clave.\n"
@@ -3524,29 +3541,29 @@ msgid "You must select at least one key.\n"
 msgstr "Debe seleccionar por lo menos una clave.\n"
 
 msgid "Do you really want to delete the selected keys? (y/N) "
-msgstr "¿De verdad quiere borrar las claves seleccionadas? (s/N) "
+msgstr "¿De verdad quiere borrar las claves seleccionadas? (s/N) "
 
 msgid "Do you really want to delete this key? (y/N) "
-msgstr "¿De verdad quiere borrar esta clave? (s/N) "
+msgstr "¿De verdad quiere borrar esta clave? (s/N) "
 
 msgid "Really revoke all selected user IDs? (y/N) "
-msgstr "¿Revocar realmente todos los identificadores seleccionados? (s/N) "
+msgstr "¿Revocar realmente todos los identificadores seleccionados? (s/N) "
 
 msgid "Really revoke this user ID? (y/N) "
-msgstr "¿Revocar realmente este identificador de usuario? (s/N) "
+msgstr "¿Revocar realmente este identificador de usuario? (s/N) "
 
 msgid "Do you really want to revoke the entire key? (y/N) "
-msgstr "¿De verdad quiere revocar la clave completa? (s/N) "
+msgstr "¿De verdad quiere revocar la clave completa? (s/N) "
 
 msgid "Do you really want to revoke the selected subkeys? (y/N) "
-msgstr "¿De verdad quiere revocar las subclaves seleccionadas? (s/N)"
+msgstr "¿De verdad quiere revocar las subclaves seleccionadas? (s/N)"
 
 msgid "Do you really want to revoke this subkey? (y/N) "
-msgstr "¿De verdad quiere revocar esta subclave? (s/N) "
+msgstr "¿De verdad quiere revocar esta subclave? (s/N) "
 
 msgid "Owner trust may not be set while using a user provided trust database\n"
 msgstr ""
-"La confianza del propietario no puede establecerse si se está usando\n"
+"La confianza del propietario no puede establecerse si se está usando\n"
 "una base de datos de confianza propocionada por el usuario\n"
 
 msgid "Set preference list to:\n"
@@ -3554,33 +3571,33 @@ msgstr "Establecer lista de preferencias a:\n"
 
 msgid "Really update the preferences for the selected user IDs? (y/N) "
 msgstr ""
-"¿Actualizar realmente las preferencias para los ID seleccionados? (s/N) "
+"¿Actualizar realmente las preferencias para los ID seleccionados? (s/N) "
 
 msgid "Really update the preferences? (y/N) "
-msgstr "¿Actualizar realmente las preferencias? (s/N) "
+msgstr "¿Actualizar realmente las preferencias? (s/N) "
 
 msgid "Save changes? (y/N) "
-msgstr "¿Grabar cambios? (s/N) "
+msgstr "¿Grabar cambios? (s/N) "
 
 msgid "Quit without saving? (y/N) "
-msgstr "¿Salir sin grabar? (s/N) "
+msgstr "¿Salir sin grabar? (s/N) "
 
 #, c-format
 msgid "update failed: %s\n"
-msgstr "actualización fallida: %s\n"
+msgstr "actualización fallida: %s\n"
 
 msgid "Key not changed so no update needed.\n"
-msgstr "Clave sin cambios, no se necesita actualización.\n"
+msgstr "Clave sin cambios, no se necesita actualización.\n"
 
 #, fuzzy, c-format
 #| msgid "Key generation failed: %s\n"
 msgid "User ID revocation failed: %s\n"
-msgstr "Creación de la clave fallida: %s\n"
+msgstr "Creación de la clave fallida: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid fingerprint"
 msgid "\"%s\" is not a fingerprint\n"
-msgstr "huella dactilar no válida"
+msgstr "huella dactilar no válida"
 
 #, fuzzy, c-format
 #| msgid "failed to get the fingerprint\n"
@@ -3590,7 +3607,7 @@ msgstr "fallo obteniendo huella digital\n"
 #, fuzzy, c-format
 #| msgid "invalid value\n"
 msgid "Invalid user ID '%s': %s\n"
-msgstr "valor inválido\n"
+msgstr "valor inválido\n"
 
 #, fuzzy
 #| msgid "No such user ID.\n"
@@ -3606,7 +3623,7 @@ msgid "Digest: "
 msgstr "Resumen: "
 
 msgid "Features: "
-msgstr "Características: "
+msgstr "Características: "
 
 msgid "Keyserver no-modify"
 msgstr "Sevidor de claves no-modificar"
@@ -3641,7 +3658,7 @@ msgstr "revocada: %s"
 
 #, c-format
 msgid "expired: %s"
-msgstr "caducó: %s"
+msgstr "caducó: %s"
 
 #, c-format
 msgid "expires: %s"
@@ -3663,7 +3680,7 @@ msgid "validity: %s"
 msgstr "validez: %s"
 
 msgid "This key has been disabled"
-msgstr "Esta clave está deshabilitada"
+msgstr "Esta clave está deshabilitada"
 
 msgid ""
 "Please note that the shown key validity is not necessarily correct\n"
@@ -3682,7 +3699,7 @@ msgid ""
 "WARNING: no user ID has been marked as primary.  This command may\n"
 "              cause a different user ID to become the assumed primary.\n"
 msgstr ""
-"AVISO: ningún ID de usuario está marcado como principal. Esta orden puede\n"
+"AVISO: ningún ID de usuario está marcado como principal. Esta orden puede\n"
 "       causar que se tome como principal por defecto otro ID de usuario.\n"
 
 msgid "WARNING: Your encryption subkey expires soon.\n"
@@ -3698,29 +3715,29 @@ msgid ""
 "versions\n"
 "         of PGP to reject this key.\n"
 msgstr ""
-"AVISO: esta es una clave de tipo PGP2. Añadir un ID fotográfico puede\n"
+"AVISO: esta es una clave de tipo PGP2. Añadir un ID fotográfico puede\n"
 "hacer que algunas versiones de PGP rechacen esta clave.\n"
 
 msgid "Are you sure you still want to add it? (y/N) "
-msgstr "¿Está seguro de querer añadirla? (s/N) "
+msgstr "¿Está seguro de querer añadirla? (s/N) "
 
 msgid "You may not add a photo ID to a PGP2-style key.\n"
-msgstr "No puede añadir un ID fotográfico a una clave tipo PGP2.\n"
+msgstr "No puede añadir un ID fotográfico a una clave tipo PGP2.\n"
 
 msgid "Such a user ID already exists on this key!\n"
-msgstr "¡Ese ID de usuario ya existe en esta clave!\n"
+msgstr "¡Ese ID de usuario ya existe en esta clave!\n"
 
 msgid "Delete this good signature? (y/N/q)"
-msgstr "¿Borrar esta firma correcta? (s/N/q)"
+msgstr "¿Borrar esta firma correcta? (s/N/q)"
 
 msgid "Delete this invalid signature? (y/N/q)"
-msgstr "¿Borrar esta firma inválida? (s/N/q)"
+msgstr "¿Borrar esta firma inválida? (s/N/q)"
 
 msgid "Delete this unknown signature? (y/N/q)"
-msgstr "¿Borrar esta firma desconocida? (s/N/q)"
+msgstr "¿Borrar esta firma desconocida? (s/N/q)"
 
 msgid "Really delete this self-signature? (y/N)"
-msgstr "¿Borrar realmente esta autofirma? (s/N)"
+msgstr "¿Borrar realmente esta autofirma? (s/N)"
 
 #, fuzzy, c-format
 #| msgid "Deleted %d signature.\n"
@@ -3730,10 +3747,10 @@ msgstr[0] "%d firmas borradas.\n"
 msgstr[1] "%d firmas borradas.\n"
 
 msgid "Nothing deleted.\n"
-msgstr "No se borró nada\n"
+msgstr "No se borró nada\n"
 
 msgid "invalid"
-msgstr "inválida"
+msgstr "inválida"
 
 #, c-format
 msgid "User ID \"%s\" compacted: %s\n"
@@ -3759,11 +3776,11 @@ msgid ""
 "cause\n"
 "         some versions of PGP to reject this key.\n"
 msgstr ""
-"AVISO: esta es una clave tipo PGP2. Añadir un revocador designado puede\n"
+"AVISO: esta es una clave tipo PGP2. Añadir un revocador designado puede\n"
 "       hacer que algunas versiones de PGP rechacen esta clave.\n"
 
 msgid "You may not add a designated revoker to a PGP 2.x-style key.\n"
-msgstr "No puede añadir un revocador designado a una clave tipo PGP2.\n"
+msgstr "No puede añadir un revocador designado a una clave tipo PGP2.\n"
 
 msgid "Enter the user ID of the designated revoker: "
 msgstr "Introduzca el ID de usuario del revocador designado: "
@@ -3779,12 +3796,12 @@ msgstr "esta clave ya ha sido designada como revocadora\n"
 
 msgid "WARNING: appointing a key as a designated revoker cannot be undone!\n"
 msgstr ""
-"¡AVISO: no podrá deshacer la elección de clave como revocador designado!\n"
+"¡AVISO: no podrá deshacer la elección de clave como revocador designado!\n"
 
 msgid ""
 "Are you sure you want to appoint this key as a designated revoker? (y/N) "
 msgstr ""
-"¿Está seguro de querer elegir esta clave como revocador designado? (s/N) "
+"¿Está seguro de querer elegir esta clave como revocador designado? (s/N) "
 
 #, fuzzy
 #| msgid ""
@@ -3793,7 +3810,7 @@ msgid ""
 "Are you sure you want to change the expiration time for multiple subkeys? (y/"
 "N) "
 msgstr ""
-"¿Está seguro de querer elegir esta clave como revocador designado? (s/N) "
+"¿Está seguro de querer elegir esta clave como revocador designado? (s/N) "
 
 msgid "Changing expiration time for a subkey.\n"
 msgstr "Cambiando fecha de caducidad de subclave.\n"
@@ -3806,11 +3823,11 @@ msgstr "No puede cambiar la fecha de caducidad de una clave v3\n"
 
 #, c-format
 msgid "signing subkey %s is already cross-certified\n"
-msgstr "la subclave de firmado %s ya está certificada en cruz\n"
+msgstr "la subclave de firmado %s ya está certificada en cruz\n"
 
 #, c-format
 msgid "subkey %s does not sign and so does not need to be cross-certified\n"
-msgstr "la subclave %s no firma y así no necesita ser certificada en cruz\n"
+msgstr "la subclave %s no firma y así no necesita ser certificada en cruz\n"
 
 msgid "Please select exactly one user ID.\n"
 msgstr "Por favor seleccione exactamente un identificador de usuario.\n"
@@ -3823,20 +3840,20 @@ msgid "Enter your preferred keyserver URL: "
 msgstr "Introduzca la URL de su servidor de claves preferido: "
 
 msgid "Are you sure you want to replace it? (y/N) "
-msgstr "¿Seguro que quiere reemplazarlo? (s/N) "
+msgstr "¿Seguro que quiere reemplazarlo? (s/N) "
 
 msgid "Are you sure you want to delete it? (y/N) "
-msgstr "¿Seguro que quiere borrarlo? (s/N) "
+msgstr "¿Seguro que quiere borrarlo? (s/N) "
 
 msgid "Enter the notation: "
-msgstr "Introduzca la notación: "
+msgstr "Introduzca la notación: "
 
 msgid "Proceed? (y/N) "
-msgstr "¿Continuar? (s/N) "
+msgstr "¿Continuar? (s/N) "
 
 #, c-format
 msgid "No user ID with index %d\n"
-msgstr "No hay ningún identificador de usuario con el índice %d\n"
+msgstr "No hay ningún identificador de usuario con el índice %d\n"
 
 #, c-format
 msgid "No user ID with hash %s\n"
@@ -3845,11 +3862,11 @@ msgstr "No hay ID de usuario con hash %s\n"
 #, fuzzy, c-format
 #| msgid "No subkey with index %d\n"
 msgid "No subkey with key ID '%s'.\n"
-msgstr "No existe una subclave con índice %d\n"
+msgstr "No existe una subclave con índice %d\n"
 
 #, c-format
 msgid "No subkey with index %d\n"
-msgstr "No existe una subclave con índice %d\n"
+msgstr "No existe una subclave con índice %d\n"
 
 #, c-format
 msgid "user ID: \"%s\"\n"
@@ -3864,16 +3881,16 @@ msgstr " (no exportable)"
 
 #, c-format
 msgid "This signature expired on %s.\n"
-msgstr "Esta firma caducó el %s.\n"
+msgstr "Esta firma caducó el %s.\n"
 
 msgid "Are you sure you still want to revoke it? (y/N) "
-msgstr "¿De verdad quiere revocarla? (s/N) "
+msgstr "¿De verdad quiere revocarla? (s/N) "
 
 msgid "Create a revocation certificate for this signature? (y/N) "
-msgstr "¿Crear un certificado de revocación para esta clave? (s/N)"
+msgstr "¿Crear un certificado de revocación para esta clave? (s/N)"
 
 msgid "Not signed by you.\n"
-msgstr "No está firmado por usted.\n"
+msgstr "No está firmado por usted.\n"
 
 #, c-format
 msgid "You have signed these user IDs on key %s:\n"
@@ -3890,7 +3907,7 @@ msgid "You are about to revoke these signatures:\n"
 msgstr "Va a revocar las siguientes firmas:\n"
 
 msgid "Really create the revocation certificates? (y/N) "
-msgstr "¿Crear los certificados de revocación realmente? (s/N) "
+msgstr "¿Crear los certificados de revocación realmente? (s/N) "
 
 msgid "no secret key\n"
 msgstr "no hay clave secreta\n"
@@ -3918,7 +3935,7 @@ msgstr "La subclave %s ya ha sido revocada.\n"
 
 #, c-format
 msgid "Displaying %s photo ID of size %ld for key %s (uid %d)\n"
-msgstr "Mostrando ID fotográfico %s de tamaño %ld para la clave %s (uid %d)\n"
+msgstr "Mostrando ID fotográfico %s de tamaño %ld para la clave %s (uid %d)\n"
 
 #, fuzzy, c-format
 #| msgid "preference `%s' duplicated\n"
@@ -3932,12 +3949,12 @@ msgid "too many digest preferences\n"
 msgstr "demasiadas preferencias de resumen\n"
 
 msgid "too many compression preferences\n"
-msgstr "demasiadas preferencias de compresión\n"
+msgstr "demasiadas preferencias de compresión\n"
 
 #, fuzzy, c-format
 #| msgid "invalid item `%s' in preference string\n"
 msgid "invalid item '%s' in preference string\n"
-msgstr "caracter inválido `%s' en cadena de preferencias\n"
+msgstr "caracter inválido `%s' en cadena de preferencias\n"
 
 msgid "writing direct signature\n"
 msgstr "escribiendo firma directa\n"
@@ -3946,21 +3963,21 @@ msgid "writing self signature\n"
 msgstr "escribiendo autofirma\n"
 
 msgid "writing key binding signature\n"
-msgstr "escribiendo la firma de comprobación de clave\n"
+msgstr "escribiendo la firma de comprobación de clave\n"
 
 #, c-format
 msgid "keysize invalid; using %u bits\n"
-msgstr "tamaño de clave incorrecto; se usarán %u bits\n"
+msgstr "tamaño de clave incorrecto; se usarán %u bits\n"
 
 #, c-format
 msgid "keysize rounded up to %u bits\n"
-msgstr "tamaño de clave redondeado a %u bits\n"
+msgstr "tamaño de clave redondeado a %u bits\n"
 
 msgid ""
 "WARNING: some OpenPGP programs can't handle a DSA key with this digest size\n"
 msgstr ""
-"AVISO: ciertos programas OpenPGP no usan claves DSAcon resúmenes de este "
-"tamaño\n"
+"AVISO: ciertos programas OpenPGP no usan claves DSAcon resúmenes de este "
+"tamaño\n"
 
 msgid "Sign"
 msgstr "Firma"
@@ -3972,7 +3989,7 @@ msgid "Encrypt"
 msgstr "Cifrado"
 
 msgid "Authenticate"
-msgstr "Autentificación"
+msgstr "Autentificación"
 
 #. TRANSLATORS: Please use only plain ASCII characters for the
 #. translation.  If this is not possible use single digits.  The
@@ -4004,7 +4021,7 @@ msgstr "   (%c) Conmutar la capacidad de cifrado\n"
 
 #, c-format
 msgid "   (%c) Toggle the authenticate capability\n"
-msgstr "   (%c) Conmutar la capacidad de autenticación\n"
+msgstr "   (%c) Conmutar la capacidad de autenticación\n"
 
 #, c-format
 msgid "   (%c) Finished\n"
@@ -4023,19 +4040,19 @@ msgstr "   (%d) DSA y ElGamal\n"
 
 #, c-format
 msgid "   (%d) DSA (sign only)\n"
-msgstr "   (%d) DSA (sólo firmar)\n"
+msgstr "   (%d) DSA (sólo firmar)\n"
 
 #, c-format
 msgid "   (%d) RSA (sign only)\n"
-msgstr "   (%d) RSA (sólo firmar)\n"
+msgstr "   (%d) RSA (sólo firmar)\n"
 
 #, c-format
 msgid "   (%d) Elgamal (encrypt only)\n"
-msgstr "   (%d) ElGamal (sólo cifrar)\n"
+msgstr "   (%d) ElGamal (sólo cifrar)\n"
 
 #, c-format
 msgid "   (%d) RSA (encrypt only)\n"
-msgstr "   (%d) RSA (sólo cifrar)\n"
+msgstr "   (%d) RSA (sólo cifrar)\n"
 
 #, c-format
 msgid "   (%d) DSA (set your own capabilities)\n"
@@ -4053,7 +4070,7 @@ msgstr "   (%d) DSA y ElGamal\n"
 #, fuzzy, c-format
 #| msgid "   (%d) DSA (sign only)\n"
 msgid "  (%d) ECC (sign only)\n"
-msgstr "   (%d) DSA (sólo firmar)\n"
+msgstr "   (%d) DSA (sólo firmar)\n"
 
 #, fuzzy, c-format
 #| msgid "   (%d) DSA (set your own capabilities)\n"
@@ -4063,7 +4080,7 @@ msgstr "   (%d) DSA (permite elegir capacidades)\n"
 #, fuzzy, c-format
 #| msgid "   (%d) RSA (encrypt only)\n"
 msgid "  (%d) ECC (encrypt only)\n"
-msgstr "   (%d) RSA (sólo cifrar)\n"
+msgstr "   (%d) RSA (sólo cifrar)\n"
 
 #, fuzzy, c-format
 #| msgid "   (%d) Existing key\n"
@@ -4074,7 +4091,7 @@ msgid "Enter the keygrip: "
 msgstr "Introduzca keygrip: "
 
 msgid "Not a valid keygrip (expecting 40 hex digits)\n"
-msgstr "No es un keygrip válido (se esperaban 40 dígitos hex)\n"
+msgstr "No es un keygrip válido (se esperaban 40 dígitos hex)\n"
 
 msgid "No key with this keygrip\n"
 msgstr "No hay claves con ese keygrip\n"
@@ -4090,15 +4107,15 @@ msgstr "las claves %s pueden tener entre %u y %u bits de longitud.\n"
 
 #, c-format
 msgid "What keysize do you want for the subkey? (%u) "
-msgstr "¿De qué tamaño quiere la subclave? (%u) "
+msgstr "¿De qué tamaño quiere la subclave? (%u) "
 
 #, c-format
 msgid "What keysize do you want? (%u) "
-msgstr "¿De qué tamaño quiere la clave? (%u) "
+msgstr "¿De qué tamaño quiere la clave? (%u) "
 
 #, c-format
 msgid "Requested keysize is %u bits\n"
-msgstr "El tamaño requerido es de %u bits\n"
+msgstr "El tamaño requerido es de %u bits\n"
 
 #, fuzzy
 #| msgid "Please select what kind of key you want:\n"
@@ -4113,12 +4130,12 @@ msgid ""
 "      <n>m = key expires in n months\n"
 "      <n>y = key expires in n years\n"
 msgstr ""
-"Por favor, especifique el período de validez de la clave.\n"
+"Por favor, especifique el período de validez de la clave.\n"
 "         0 = la clave nunca caduca\n"
-"      <n>  = la clave caduca en n días\n"
+"      <n>  = la clave caduca en n días\n"
 "      <n>w = la clave caduca en n semanas\n"
 "      <n>m = la clave caduca en n meses\n"
-"      <n>y = la clave caduca en n años\n"
+"      <n>y = la clave caduca en n años\n"
 
 msgid ""
 "Please specify how long the signature should be valid.\n"
@@ -4128,22 +4145,22 @@ msgid ""
 "      <n>m = signature expires in n months\n"
 "      <n>y = signature expires in n years\n"
 msgstr ""
-"Por favor, especifique el período de validez de la clave.\n"
+"Por favor, especifique el período de validez de la clave.\n"
 "         0 = la clave nunca caduca\n"
-"      <n>  = la clave caduca en n días\n"
+"      <n>  = la clave caduca en n días\n"
 "      <n>w = la clave caduca en n semanas\n"
 "      <n>m = la clave caduca en n meses\n"
-"      <n>y = la clave caduca en n años\n"
+"      <n>y = la clave caduca en n años\n"
 
 msgid "Key is valid for? (0) "
-msgstr "¿Validez de la clave (0)? "
+msgstr "¿Validez de la clave (0)? "
 
 #, c-format
 msgid "Signature is valid for? (%s) "
-msgstr "Clave válida ¿durante? (%s) "
+msgstr "Clave válida Â¿durante? (%s) "
 
 msgid "invalid value\n"
-msgstr "valor inválido\n"
+msgstr "valor inválido\n"
 
 msgid "Key does not expire at all\n"
 msgstr "La clave nunca caduca\n"
@@ -4163,11 +4180,11 @@ msgid ""
 "Your system can't display dates beyond 2038.\n"
 "However, it will be correctly handled up to 2106.\n"
 msgstr ""
-"Su sistema no puede mostrar fechas más allá del 2038.\n"
-"Sin embargo funcionará correctamente hasta el 2106.\n"
+"Su sistema no puede mostrar fechas más allá del 2038.\n"
+"Sin embargo funcionará correctamente hasta el 2106.\n"
 
 msgid "Is this correct? (y/N) "
-msgstr "¿Es correcto? (s/n) "
+msgstr "¿Es correcto? (s/n) "
 
 msgid ""
 "\n"
@@ -4192,8 +4209,8 @@ msgid ""
 msgstr ""
 "\n"
 "Necesita un identificador de usuario para identificar su clave. El programa\n"
-"construye el identificador a partir del Nombre Real, Comentario y Dirección\n"
-"de Correo Electrónico de esta forma:\n"
+"construye el identificador a partir del Nombre Real, Comentario y Dirección\n"
+"de Correo Electrónico de esta forma:\n"
 "    \"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>\"\n"
 "\n"
 
@@ -4201,34 +4218,34 @@ msgid "Real name: "
 msgstr "Nombre y apellidos: "
 
 msgid "Invalid character in name\n"
-msgstr "Caracter inválido en el nombre\n"
+msgstr "Caracter inválido en el nombre\n"
 
 #, c-format
 msgid "The characters '%s' and '%s' may not appear in name\n"
 msgstr ""
 
 msgid "Name may not start with a digit\n"
-msgstr "El nombre no puede empezar con un número\n"
+msgstr "El nombre no puede empezar con un número\n"
 
 msgid "Name must be at least 5 characters long\n"
 msgstr "El nombre debe tener al menos 5 caracteres\n"
 
 msgid "Email address: "
-msgstr "Dirección de correo electrónico: "
+msgstr "Dirección de correo electrónico: "
 
 msgid "Not a valid email address\n"
-msgstr "Dirección inválida\n"
+msgstr "Dirección inválida\n"
 
 msgid "Comment: "
 msgstr "Comentario: "
 
 msgid "Invalid character in comment\n"
-msgstr "Caracter inválido en el comentario\n"
+msgstr "Caracter inválido en el comentario\n"
 
 #, fuzzy, c-format
 #| msgid "You are using the `%s' character set.\n"
 msgid "You are using the '%s' character set.\n"
-msgstr "Está usando el juego de caracteres `%s'.\n"
+msgstr "Está usando el juego de caracteres `%s'.\n"
 
 #, c-format
 msgid ""
@@ -4242,7 +4259,7 @@ msgstr ""
 
 msgid "Please don't put the email address into the real name or the comment\n"
 msgstr ""
-"Por favor no ponga la dirección de correo-e en el nombre real o en el "
+"Por favor no ponga la dirección de correo-e en el nombre real o en el "
 "comentario\n"
 
 #. TRANSLATORS: These are the allowed answers in
@@ -4260,16 +4277,16 @@ msgid "NnCcEeOoQq"
 msgstr "NnCcDdVvSs"
 
 msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
-msgstr "¿Cambia (N)ombre, (C)omentario, (D)irección o (S)alir? "
+msgstr "¿Cambia (N)ombre, (C)omentario, (D)irección o (S)alir? "
 
 msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
-msgstr "¿Cambia (N)ombre, (C)omentario, (D)irección o (V)ale/(S)alir? "
+msgstr "¿Cambia (N)ombre, (C)omentario, (D)irección o (V)ale/(S)alir? "
 
 msgid "Change (N)ame, (E)mail, or (Q)uit? "
-msgstr "¿Cambia (N)ombre, (D)irección o (S)alir? "
+msgstr "¿Cambia (N)ombre, (D)irección o (S)alir? "
 
 msgid "Change (N)ame, (E)mail, or (O)kay/(Q)uit? "
-msgstr "¿Cambia (N)ombre, (D)irección o (V)ale/(S)alir? "
+msgstr "¿Cambia (N)ombre, (D)irección o (V)ale/(S)alir? "
 
 msgid "Please correct the error first\n"
 msgstr "Por favor corrija primero el error.\n"
@@ -4281,14 +4298,14 @@ msgid ""
 "generator a better chance to gain enough entropy.\n"
 msgstr ""
 "Es necesario generar muchos bytes aleatorios. Es una buena idea realizar\n"
-"alguna otra tarea (trabajar en otra ventana/consola, mover el ratón, usar\n"
-"la red y los discos) durante la generación de números primos. Esto da al\n"
-"generador de números aleatorios mayor oportunidad de recoger suficiente\n"
-"entropía.\n"
+"alguna otra tarea (trabajar en otra ventana/consola, mover el ratón, usar\n"
+"la red y los discos) durante la generación de números primos. Esto da al\n"
+"generador de números aleatorios mayor oportunidad de recoger suficiente\n"
+"entropía.\n"
 
 #, c-format
 msgid "Key generation failed: %s\n"
-msgstr "Creación de la clave fallida: %s\n"
+msgstr "Creación de la clave fallida: %s\n"
 
 #, c-format
 msgid ""
@@ -4308,19 +4325,19 @@ msgstr "la clave ya existe\n"
 #, fuzzy
 #| msgid "Create anyway? "
 msgid "Create anyway? (y/N) "
-msgstr "¿Crear de todas formas?"
+msgstr "¿Crear de todas formas?"
 
 #, fuzzy
 #| msgid "Create anyway? "
 msgid "creating anyway\n"
-msgstr "¿Crear de todas formas?"
+msgstr "¿Crear de todas formas?"
 
 #, c-format
 msgid "Note: Use \"%s %s\" for a full featured key generation dialog.\n"
 msgstr ""
 
 msgid "Key generation canceled.\n"
-msgstr "Creación de claves cancelada.\n"
+msgstr "Creación de claves cancelada.\n"
 
 #, fuzzy, c-format
 #| msgid "can't create backup file `%s': %s\n"
@@ -4335,72 +4352,72 @@ msgstr "NOTA: copia de seguridad de la clave guardada en `%s'\n"
 #, fuzzy, c-format
 #| msgid "writing public key to `%s'\n"
 msgid "writing public key to '%s'\n"
-msgstr "escribiendo clave pública en `%s'\n"
+msgstr "escribiendo clave pública en `%s'\n"
 
 #, c-format
 msgid "no writable public keyring found: %s\n"
-msgstr "anillo público de claves no escribible encontrado: %s\n"
+msgstr "anillo público de claves no escribible encontrado: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing public keyring `%s': %s\n"
 msgid "error writing public keyring '%s': %s\n"
-msgstr "error escribiendo anillo público `%s': %s\n"
+msgstr "error escribiendo anillo público `%s': %s\n"
 
 msgid "public and secret key created and signed.\n"
-msgstr "claves pública y secreta creadas y firmadas.\n"
+msgstr "claves pública y secreta creadas y firmadas.\n"
 
 msgid ""
 "Note that this key cannot be used for encryption.  You may want to use\n"
 "the command \"--edit-key\" to generate a subkey for this purpose.\n"
 msgstr ""
 "Tenga en cuenta que esta clave no puede ser usada para cifrar. Puede usar\n"
-"la orden \"--edit-key\" para crear una subclave con este propósito.\n"
+"la orden \"--edit-key\" para crear una subclave con este propósito.\n"
 
 #, c-format
 msgid ""
 "key has been created %lu second in future (time warp or clock problem)\n"
 msgstr ""
-"clave pública creada %lu segundos en el futuro (salto en el tiempo o\n"
+"clave pública creada %lu segundos en el futuro (salto en el tiempo o\n"
 "problemas con el reloj)\n"
 
 #, c-format
 msgid ""
 "key has been created %lu seconds in future (time warp or clock problem)\n"
 msgstr ""
-"clave pública creada %lu segundos en el futuro (salto en el tiempo o\n"
+"clave pública creada %lu segundos en el futuro (salto en el tiempo o\n"
 "problemas con el reloj)\n"
 
 #, fuzzy
 #| msgid "NOTE: creating subkeys for v3 keys is not OpenPGP compliant\n"
 msgid "Note: creating subkeys for v3 keys is not OpenPGP compliant\n"
-msgstr "NOTA: crear subclaves para claves V3 no sigue el estándar OpenPGP\n"
+msgstr "NOTA: crear subclaves para claves V3 no sigue el estándar OpenPGP\n"
 
 msgid "Secret parts of primary key are not available.\n"
-msgstr "Las partes secretas de la clave primaria no están disponibles.\n"
+msgstr "Las partes secretas de la clave primaria no están disponibles.\n"
 
 msgid "Secret parts of primary key are stored on-card.\n"
 msgstr "Las partes secretas de la clave primaria se guardan en la tarjeta.\n"
 
 msgid "Really create? (y/N) "
-msgstr "¿Crear de verdad? (s/N) "
+msgstr "¿Crear de verdad? (s/N) "
 
 msgid "never     "
 msgstr "nunca     "
 
 msgid "Critical signature policy: "
-msgstr "Política de firmas críticas: "
+msgstr "Política de firmas críticas: "
 
 msgid "Signature policy: "
-msgstr "Política de firmas: "
+msgstr "Política de firmas: "
 
 msgid "Critical preferred keyserver: "
-msgstr "Servidor de claves crítico preferido: "
+msgstr "Servidor de claves crítico preferido: "
 
 msgid "Critical signature notation: "
-msgstr "Notación de firmas críticas: "
+msgstr "Notación de firmas críticas: "
 
 msgid "Signature notation: "
-msgstr "Notación de firma: "
+msgstr "Notación de firma: "
 
 #, fuzzy, c-format
 #| msgid "%d bad signatures\n"
@@ -4443,7 +4460,7 @@ msgid "      Key fingerprint ="
 msgstr "      Huella de clave ="
 
 msgid "      Card serial no. ="
-msgstr "      Número de serie de la tarjeta ="
+msgstr "      Número de serie de la tarjeta ="
 
 #, fuzzy, c-format
 #| msgid "caching keyring `%s'\n"
@@ -4479,7 +4496,7 @@ msgid "override proxy options set for dirmngr"
 msgstr ""
 
 msgid "include revoked keys in search results"
-msgstr "incluir claves revocadas en resultados de la búsqueda"
+msgstr "incluir claves revocadas en resultados de la búsqueda"
 
 msgid "include subkeys when searching by key ID"
 msgstr "incluir subclaves al buscar por ID de clave"
@@ -4488,7 +4505,7 @@ msgid "override timeout options set for dirmngr"
 msgstr ""
 
 msgid "automatically retrieve keys when verifying signatures"
-msgstr "recuperar automáticamente claves al verificar firmas"
+msgstr "recuperar automáticamente claves al verificar firmas"
 
 msgid "honor the preferred keyserver URL set on the key"
 msgstr "usar la URL de servidor de claves preferido presente en la clave"
@@ -4500,15 +4517,15 @@ msgid "disabled"
 msgstr "deshabilitado"
 
 msgid "Enter number(s), N)ext, or Q)uit > "
-msgstr "Introduzca número(s), O)tro, o F)in >"
+msgstr "Introduzca número(s), O)tro, o F)in >"
 
 #, c-format
 msgid "invalid keyserver protocol (us %d!=handler %d)\n"
-msgstr "protocolo del servidor de claves inválido (us %d!=handler %d)\n"
+msgstr "protocolo del servidor de claves inválido (us %d!=handler %d)\n"
 
 #, c-format
 msgid "\"%s\" not a key ID: skipping\n"
-msgstr "\"%s\" no es un identificador de clave válido: omitido\n"
+msgstr "\"%s\" no es un identificador de clave válido: omitido\n"
 
 #, fuzzy, c-format
 #| msgid "refreshing %d keys from %s\n"
@@ -4529,7 +4546,7 @@ msgid "key not found on keyserver\n"
 msgstr "clave no encontrada en el servidor\n"
 
 msgid "no keyserver known (use option --keyserver)\n"
-msgstr "no hay servidores de claves conocidos (use opción --keyserver)\n"
+msgstr "no hay servidores de claves conocidos (use opción --keyserver)\n"
 
 #, c-format
 msgid "requesting key %s from %s server %s\n"
@@ -4542,7 +4559,7 @@ msgstr "solicitando clave %s de %s\n"
 #, fuzzy
 #| msgid "no keyserver action!\n"
 msgid "no keyserver known\n"
-msgstr "¡no se solicita ninguna acción al servidor de claves!\n"
+msgstr "¡no se solicita ninguna acción al servidor de claves!\n"
 
 #, c-format
 msgid "skipped \"%s\": %s\n"
@@ -4563,22 +4580,22 @@ msgstr "AVISO: imposible recuperar URI %s: %s\n"
 
 #, c-format
 msgid "weird size for an encrypted session key (%d)\n"
-msgstr "tamaño anormal para una clave de sesión cifrada (%d)\n"
+msgstr "tamaño anormal para una clave de sesión cifrada (%d)\n"
 
 #, c-format
 msgid "%s encrypted session key\n"
-msgstr "%s clave de sesión cifrada\n"
+msgstr "%s clave de sesión cifrada\n"
 
 #, c-format
 msgid "passphrase generated with unknown digest algorithm %d\n"
-msgstr "frase contraseña generada con algoritmo de resumen desconocido %d\n"
+msgstr "frase contraseña generada con algoritmo de resumen desconocido %d\n"
 
 #, c-format
 msgid "public key is %s\n"
-msgstr "la clave pública es %s\n"
+msgstr "la clave pública es %s\n"
 
 msgid "public key encrypted data: good DEK\n"
-msgstr "datos cifrados con la clave pública: DEK correcta\n"
+msgstr "datos cifrados con la clave pública: DEK correcta\n"
 
 #, c-format
 msgid "encrypted with %u-bit %s key, ID %s, created %s\n"
@@ -4594,14 +4611,14 @@ msgstr "cifrado con clave %s, ID %s\n"
 
 #, c-format
 msgid "public key decryption failed: %s\n"
-msgstr "descifrado de la clave pública fallido: %s\n"
+msgstr "descifrado de la clave pública fallido: %s\n"
 
 #, c-format
 msgid "encrypted with %lu passphrases\n"
-msgstr "cifrado con %lu frases contraseña\n"
+msgstr "cifrado con %lu frases contraseña\n"
 
 msgid "encrypted with 1 passphrase\n"
-msgstr "cifrado con 1 frase contraseña\n"
+msgstr "cifrado con 1 frase contraseña\n"
 
 #, c-format
 msgid "assuming %s encrypted data\n"
@@ -4613,13 +4630,13 @@ msgstr ""
 "cifrado IDEA no disponible, confiadamente intentamos usar %s en su lugar\n"
 
 msgid "WARNING: message was not integrity protected\n"
-msgstr "ATENCIÓN: la intgridad del mensaje no está protegida\n"
+msgstr "ATENCIÓN: la intgridad del mensaje no está protegida\n"
 
 msgid "decryption okay\n"
 msgstr "descifrado correcto\n"
 
 msgid "WARNING: encrypted message has been manipulated!\n"
-msgstr "ATENCIÓN: ¡el mensaje cifrado ha sido manipulado!\n"
+msgstr "ATENCIÃ\93N: Â¡el mensaje cifrado ha sido manipulado!\n"
 
 #, c-format
 msgid "decryption failed: %s\n"
@@ -4628,7 +4645,7 @@ msgstr "descifrado fallido: %s\n"
 #, fuzzy
 #| msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
 msgid "Note: sender requested \"for-your-eyes-only\"\n"
-msgstr "NOTA: el remitente solicitó \"sólo-para-tus-ojos\"\n"
+msgstr "NOTA: el remitente solicitó \"sólo-para-tus-ojos\"\n"
 
 #, c-format
 msgid "original file name='%.*s'\n"
@@ -4638,10 +4655,10 @@ msgid "WARNING: multiple plaintexts seen\n"
 msgstr "AVISO: se observan varios textos en claro\n"
 
 msgid "standalone revocation - use \"gpg --import\" to apply\n"
-msgstr "revocación independiente - use \"gpg --import\" para aplicarla\n"
+msgstr "revocación independiente - use \"gpg --import\" para aplicarla\n"
 
 msgid "no signature found\n"
-msgstr "no se encontró firma\n"
+msgstr "no se encontró firma\n"
 
 #, c-format
 msgid "BAD signature from \"%s\""
@@ -4656,7 +4673,7 @@ msgid "Good signature from \"%s\""
 msgstr "Firma correcta de \"%s\""
 
 msgid "signature verification suppressed\n"
-msgstr "suprimida la verificación de la firma\n"
+msgstr "suprimida la verificación de la firma\n"
 
 msgid "can't handle this ambiguous signature data\n"
 msgstr "no puedo manejar estos datos ambiguos en la firma\n"
@@ -4713,7 +4730,7 @@ msgstr "desconocido"
 #, fuzzy
 #| msgid "unknown pubkey algorithm"
 msgid ", key algorithm "
-msgstr "Algoritmo de clave pública desconocido"
+msgstr "Algoritmo de clave pública desconocido"
 
 #, c-format
 msgid "WARNING: not a detached signature; file '%s' was NOT verified!\n"
@@ -4728,7 +4745,7 @@ msgstr "no es una firma separada\n"
 
 msgid ""
 "WARNING: multiple signatures detected.  Only the first will be checked.\n"
-msgstr "AVISO: detectadas múltiples firmas. Sólo la primera se comprueba.\n"
+msgstr "AVISO: detectadas múltiples firmas. Sólo la primera se comprueba.\n"
 
 #, c-format
 msgid "standalone signature of class 0x%02x\n"
@@ -4740,18 +4757,18 @@ msgstr "firma al viejo estilo (PGP 2.x)\n"
 #, fuzzy, c-format
 #| msgid "fstat of `%s' failed in %s: %s\n"
 msgid "fstat of '%s' failed in %s: %s\n"
-msgstr "fstat de `%s' falló en %s: %s\n"
+msgstr "fstat de `%s' falló en %s: %s\n"
 
 #, c-format
 msgid "fstat(%d) failed in %s: %s\n"
-msgstr "fstat(%d) falló en %s: %s\n"
+msgstr "fstat(%d) falló en %s: %s\n"
 
 #, c-format
 msgid "WARNING: using experimental public key algorithm %s\n"
-msgstr "AVISO: usando un algoritmo de clave pública experimental %s\n"
+msgstr "AVISO: usando un algoritmo de clave pública experimental %s\n"
 
 msgid "WARNING: Elgamal sign+encrypt keys are deprecated\n"
-msgstr "AVISO: las firmas Elgamal para firmar y cifrar están obsoletas\n"
+msgstr "AVISO: las firmas Elgamal para firmar y cifrar están obsoletas\n"
 
 #, c-format
 msgid "WARNING: using experimental cipher algorithm %s\n"
@@ -4763,7 +4780,7 @@ msgstr "AVISO: usando algoritmo de resumen experimental %s\n"
 
 #, c-format
 msgid "WARNING: digest algorithm %s is deprecated\n"
-msgstr "AVISO: el algoritmo de resumen %s está obsoleto\n"
+msgstr "AVISO: el algoritmo de resumen %s está obsoleto\n"
 
 #, fuzzy, c-format
 #| msgid "%s signature, digest algorithm %s\n"
@@ -4785,11 +4802,11 @@ msgstr ""
 
 #, c-format
 msgid "%s:%d: deprecated option \"%s\"\n"
-msgstr "%s:%d: opción obsoleta \"%s\"\n"
+msgstr "%s:%d: opción obsoleta \"%s\"\n"
 
 #, c-format
 msgid "WARNING: \"%s\" is a deprecated option\n"
-msgstr "ATENCIÓN: \"%s\" es una opción obsoleta\n"
+msgstr "ATENCIÓN: \"%s\" es una opción obsoleta\n"
 
 #, c-format
 msgid "please use \"%s%s\" instead\n"
@@ -4797,18 +4814,18 @@ msgstr "por favor use \"%s%s\" en su lugar\n"
 
 #, c-format
 msgid "WARNING: \"%s\" is a deprecated command - do not use it\n"
-msgstr "ATENCIÓN: \"%s\" es una orden obsoleta - no la use\n"
+msgstr "ATENCIÓN: \"%s\" es una orden obsoleta - no la use\n"
 
 #, fuzzy, c-format
 #| msgid "%s:%u: obsolete option \"%s\" - it has no effect\n"
 msgid "%s:%u: \"%s\" is obsolete in this file - it only has effect in %s\n"
-msgstr "%s:%u: opción obsoleta \"%s\" - no tiene efecto\n"
+msgstr "%s:%u: opción obsoleta \"%s\" - no tiene efecto\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: \"%s\" is an obsolete option - it has no effect\n"
 msgid ""
 "WARNING: \"%s%s\" is an obsolete option - it has no effect except on %s\n"
-msgstr "ATENCIÓN: \"%s\" es una opción obsoleta - no tiene efecto\n"
+msgstr "ATENCIÓN: \"%s\" es una opción obsoleta - no tiene efecto\n"
 
 msgid "Uncompressed"
 msgstr "Sin comprimir"
@@ -4819,22 +4836,22 @@ msgstr "sin_comprimir|ninguno"
 
 #, c-format
 msgid "this message may not be usable by %s\n"
-msgstr "este mensaje podría no ser utilizable por %s\n"
+msgstr "este mensaje podría no ser utilizable por %s\n"
 
 #, fuzzy, c-format
 #| msgid "ambiguous option `%s'\n"
 msgid "ambiguous option '%s'\n"
-msgstr "opción ambigua `%s'\n"
+msgstr "opción ambigua `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "unknown option `%s'\n"
 msgid "unknown option '%s'\n"
-msgstr "opción desconocida `%s'\n"
+msgstr "opción desconocida `%s'\n"
 
 #, fuzzy
 #| msgid "DSA requires the hash length to be a multiple of 8 bits\n"
 msgid "ECDSA public key is expected to be in SEC encoding multiple of 8 bits\n"
-msgstr "DSA necesita un resumen cuya longitud sea múltiplo de 8 bits\n"
+msgstr "DSA necesita un resumen cuya longitud sea múltiplo de 8 bits\n"
 
 #, fuzzy, c-format
 #| msgid "Unknown signature type `%s'\n"
@@ -4847,7 +4864,7 @@ msgid "File '%s' exists. "
 msgstr "El fichero `%s' ya existe. "
 
 msgid "Overwrite? (y/N) "
-msgstr "¿Sobreescribir? (s/N) "
+msgstr "¿Sobreescribir? (s/N) "
 
 #, c-format
 msgid "%s: unknown suffix\n"
@@ -4867,31 +4884,31 @@ msgstr "asumiendo que hay datos firmados en `%s'\n"
 #, fuzzy, c-format
 #| msgid "new configuration file `%s' created\n"
 msgid "new configuration file '%s' created\n"
-msgstr "creado un nuevo fichero de configuración `%s'\n"
+msgstr "creado un nuevo fichero de configuración `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: options in `%s' are not yet active during this run\n"
 msgid "WARNING: options in '%s' are not yet active during this run\n"
-msgstr "AVISO: las opciones en `%s' no están aún activas en esta ejecución\n"
+msgstr "AVISO: las opciones en `%s' no están aún activas en esta ejecución\n"
 
 #, c-format
 msgid "can't handle public key algorithm %d\n"
-msgstr "no puedo manejar el algoritmo de clave pública %d\n"
+msgstr "no puedo manejar el algoritmo de clave pública %d\n"
 
 msgid "WARNING: potentially insecure symmetrically encrypted session key\n"
 msgstr ""
-"AVISO: clave de sesión cifrada simétricamente potencialmente insegura\n"
+"AVISO: clave de sesión cifrada simétricamente potencialmente insegura\n"
 
 #, c-format
 msgid "subpacket of type %d has critical bit set\n"
-msgstr "el subpaquete de tipo %d tiene el bit crítico activado\n"
+msgstr "el subpaquete de tipo %d tiene el bit crítico activado\n"
 
 #, c-format
 msgid "problem with the agent: %s\n"
 msgstr "problema con el agente: %s\n"
 
 msgid "Enter passphrase\n"
-msgstr "Introduzca frase contraseña\n"
+msgstr "Introduzca frase contraseña\n"
 
 msgid "cancelled by user\n"
 msgstr "cancelado por el usuario\n"
@@ -4903,32 +4920,32 @@ msgstr "(ID de clave primaria %s)"
 #, fuzzy
 #| msgid "Please enter the passphrase to unprotect the PKCS#12 object."
 msgid "Please enter the passphrase to unlock the OpenPGP secret key:"
-msgstr "Introduzca frase contraseña para desproteger el objeto PKCS#12."
+msgstr "Introduzca frase contraseña para desproteger el objeto PKCS#12."
 
 #, fuzzy
 #| msgid "Please enter the passphrase to protect the new PKCS#12 object."
 msgid "Please enter the passphrase to import the OpenPGP secret key:"
-msgstr "Introduzca frase contraseña para proteger el nuevo objeto PKCS#12."
+msgstr "Introduzca frase contraseña para proteger el nuevo objeto PKCS#12."
 
 #, fuzzy
 #| msgid "Please enter the passphrase to protect the new PKCS#12 object."
 msgid "Please enter the passphrase to export the OpenPGP secret subkey:"
-msgstr "Introduzca frase contraseña para proteger el nuevo objeto PKCS#12."
+msgstr "Introduzca frase contraseña para proteger el nuevo objeto PKCS#12."
 
 #, fuzzy
 #| msgid "Please enter the passphrase to protect the new PKCS#12 object."
 msgid "Please enter the passphrase to export the OpenPGP secret key:"
-msgstr "Introduzca frase contraseña para proteger el nuevo objeto PKCS#12."
+msgstr "Introduzca frase contraseña para proteger el nuevo objeto PKCS#12."
 
 #, fuzzy
 #| msgid "Do you really want to delete the selected keys? (y/N) "
 msgid "Do you really want to permanently delete the OpenPGP secret subkey key:"
-msgstr "¿De verdad quiere borrar las claves seleccionadas? (s/N) "
+msgstr "¿De verdad quiere borrar las claves seleccionadas? (s/N) "
 
 #, fuzzy
 #| msgid "Do you really want to delete the selected keys? (y/N) "
 msgid "Do you really want to permanently delete the OpenPGP secret key:"
-msgstr "¿De verdad quiere borrar las claves seleccionadas? (s/N) "
+msgstr "¿De verdad quiere borrar las claves seleccionadas? (s/N) "
 
 #, fuzzy, c-format
 #| msgid "%u-bit %s key, ID %s, created %s"
@@ -4948,13 +4965,13 @@ msgid ""
 "Keeping the image close to 240x288 is a good size to use.\n"
 msgstr ""
 "\n"
-"Escoja una imagen para usar en su ID fotográfico. La imagen debe ser un\n"
-"fichero JPEG. Recuerde que la imágen se almacena en su clave pública.\n"
-"Si usa una foto muy grande, ¡su clave será también muy grande!\n"
-"Una imagen cercana a 240x288 tiene un tamaño adecuado.\n"
+"Escoja una imagen para usar en su ID fotográfico. La imagen debe ser un\n"
+"fichero JPEG. Recuerde que la imágen se almacena en su clave pública.\n"
+"Si usa una foto muy grande, ¡su clave será también muy grande!\n"
+"Una imagen cercana a 240x288 tiene un tamaño adecuado.\n"
 
 msgid "Enter JPEG filename for photo ID: "
-msgstr "Introduzca nombre del fichero JPEG para ID fotográfico: "
+msgstr "Introduzca nombre del fichero JPEG para ID fotográfico: "
 
 #, fuzzy, c-format
 #| msgid "unable to open JPEG file `%s': %s\n"
@@ -4963,10 +4980,10 @@ msgstr "Imposible abrir fichero JPEG `%s': %s\n"
 
 #, c-format
 msgid "This JPEG is really large (%d bytes) !\n"
-msgstr "¡Este JPEG es realmente grande (%d bytes)!\n"
+msgstr "¡Este JPEG es realmente grande (%d bytes)!\n"
 
 msgid "Are you sure you want to use it? (y/N) "
-msgstr "¿Seguro que quiere usarlo? (s/N) "
+msgstr "¿Seguro que quiere usarlo? (s/N) "
 
 #, fuzzy, c-format
 #| msgid "`%s' is not a JPEG file\n"
@@ -4974,13 +4991,13 @@ msgid "'%s' is not a JPEG file\n"
 msgstr "`%s' no es un fichero JPEG\n"
 
 msgid "Is this photo correct (y/N/q)? "
-msgstr "¿Es correcta la foto? (s/n) "
+msgstr "¿Es correcta la foto? (s/n) "
 
 msgid "unable to display photo ID!\n"
-msgstr "¡no puedo mostrar ID fotográfico!\n"
+msgstr "¡no puedo mostrar ID fotográfico!\n"
 
 msgid "No reason specified"
-msgstr "No se dio ninguna razón"
+msgstr "No se dio ninguna razón"
 
 msgid "Key is superseded"
 msgstr "La clave ha sido reemplazada."
@@ -4989,16 +5006,16 @@ msgid "Key has been compromised"
 msgstr "La clave ha sido comprometida"
 
 msgid "Key is no longer used"
-msgstr "La clave ya no está en uso"
+msgstr "La clave ya no está en uso"
 
 msgid "User ID is no longer valid"
-msgstr "El identificador de usuario ya no es válido"
+msgstr "El identificador de usuario ya no es válido"
 
 msgid "reason for revocation: "
-msgstr "razón para la revocación: "
+msgstr "razón para la revocación: "
 
 msgid "revocation comment: "
-msgstr "comentario a la revocación: "
+msgstr "comentario a la revocación: "
 
 #. TRANSLATORS: These are the allowed answers in lower and
 #. uppercase.  Below you will find the matching strings which
@@ -5023,12 +5040,12 @@ msgstr "  alias \"%s\"\n"
 msgid ""
 "How much do you trust that this key actually belongs to the named user?\n"
 msgstr ""
-"¿Qué seguridad tiene de que esta clave pertenece realmente al usuario\n"
+"¿Qué seguridad tiene de que esta clave pertenece realmente al usuario\n"
 "que se nombra?\n"
 
 #, c-format
 msgid "  %d = I don't know or won't say\n"
-msgstr " %d = No lo sé o prefiero no decirlo\n"
+msgstr " %d = No lo sé o prefiero no decirlo\n"
 
 #, c-format
 msgid "  %d = I do NOT trust\n"
@@ -5036,10 +5053,10 @@ msgstr " %d = NO tengo confianza\n"
 
 #, c-format
 msgid "  %d = I trust ultimately\n"
-msgstr " %d = confío absolutamente\n"
+msgstr " %d = confío absolutamente\n"
 
 msgid "  m = back to the main menu\n"
-msgstr "  m = volver al menú principal\n"
+msgstr "  m = volver al menú principal\n"
 
 msgid "  s = skip this key\n"
 msgstr "  s = saltar esta clave\n"
@@ -5052,14 +5069,14 @@ msgid ""
 "The minimum trust level for this key is: %s\n"
 "\n"
 msgstr ""
-"El mínimo nivel de confianza para esta clave es: %s\n"
+"El mínimo nivel de confianza para esta clave es: %s\n"
 "\n"
 
 msgid "Your decision? "
-msgstr "¿Su decisión? "
+msgstr "¿Su decisión? "
 
 msgid "Do you really want to set this key to ultimate trust? (y/N) "
-msgstr "¿De verdad quiere asignar absoluta confianza a esta clave? (s/N) "
+msgstr "¿De verdad quiere asignar absoluta confianza a esta clave? (s/N) "
 
 msgid "Certificates leading to an ultimately trusted key:\n"
 msgstr "Certificados que llevan a una clave de confianza absoluta:\n"
@@ -5082,78 +5099,97 @@ msgstr "Esta clave probablemente pertenece al usuario que se nombra\n"
 msgid "This key belongs to us\n"
 msgstr "Esta clave nos pertenece\n"
 
+#, fuzzy, c-format
+#| msgid "root certificate has now been marked as trusted\n"
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr "certificado raíz marcado ahora como fiable\n"
+
+#, fuzzy
+#| msgid ""
+#| "It is NOT certain that the key belongs to the person named\n"
+#| "in the user ID.  If you *really* know what you are doing,\n"
+#| "you may answer the next question with yes.\n"
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"No es seguro que la clave pertenezca a la persona que se nombra en el\n"
+"identificador de usuario. Si *realmente* sabe lo que está haciendo,\n"
+"puede contestar sí a la siguiente pregunta.\n"
+
 msgid ""
 "It is NOT certain that the key belongs to the person named\n"
 "in the user ID.  If you *really* know what you are doing,\n"
 "you may answer the next question with yes.\n"
 msgstr ""
 "No es seguro que la clave pertenezca a la persona que se nombra en el\n"
-"identificador de usuario. Si *realmente* sabe lo que está haciendo,\n"
-"puede contestar sí a la siguiente pregunta.\n"
+"identificador de usuario. Si *realmente* sabe lo que está haciendo,\n"
+"puede contestar sí a la siguiente pregunta.\n"
 
 msgid "Use this key anyway? (y/N) "
-msgstr "¿Usar esta clave de todas formas? (s/N) "
+msgstr "¿Usar esta clave de todas formas? (s/N) "
 
 msgid "WARNING: Using untrusted key!\n"
-msgstr "ATENCIÓN: ¡Usando una clave no fiable!\n"
+msgstr "ATENCIÃ\93N: Â¡Usando una clave no fiable!\n"
 
 msgid "WARNING: this key might be revoked (revocation key not present)\n"
-msgstr "AVISO: la clave puede estar revocada (falta clave de revocación)\n"
+msgstr "AVISO: la clave puede estar revocada (falta clave de revocación)\n"
 
 msgid "WARNING: This key has been revoked by its designated revoker!\n"
 msgstr ""
-"ATENCIÓN: ¡Esta clave ha sido revocada por la persona designada\n"
+"ATENCIÃ\93N: Â¡Esta clave ha sido revocada por la persona designada\n"
 "como revocador!\n"
 
 msgid "WARNING: This key has been revoked by its owner!\n"
-msgstr "ATENCIÓN: ¡Esta clave ha sido revocada por su propietario!\n"
+msgstr "ATENCIÃ\93N: Â¡Esta clave ha sido revocada por su propietario!\n"
 
 msgid "         This could mean that the signature is forged.\n"
-msgstr "         Esto puede significar que la firma está falsificada.\n"
+msgstr "         Esto puede significar que la firma está falsificada.\n"
 
 msgid "WARNING: This subkey has been revoked by its owner!\n"
-msgstr "ATENCIÓN: ¡Esta clave ha sido revocada por su propietario!\n"
+msgstr "ATENCIÃ\93N: Â¡Esta clave ha sido revocada por su propietario!\n"
 
 msgid "Note: This key has been disabled.\n"
-msgstr "Nota: Esta clave está deshabilitada.\n"
+msgstr "Nota: Esta clave está deshabilitada.\n"
 
 #, fuzzy, c-format
 #| msgid "Note: Verified signer's address is `%s'\n"
 msgid "Note: Verified signer's address is '%s'\n"
-msgstr "Nota: la dirección del firmante verificado es `%s'\n"
+msgstr "Nota: la dirección del firmante verificado es `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "Note: Signer's address `%s' does not match DNS entry\n"
 msgid "Note: Signer's address '%s' does not match DNS entry\n"
-msgstr "Nota: la dirección del firmante `%s' no coincide con la entrada DNS\n"
+msgstr "Nota: la dirección del firmante `%s' no coincide con la entrada DNS\n"
 
 msgid "trustlevel adjusted to FULL due to valid PKA info\n"
-msgstr "nivel de confianza puesto a TOTAL (información PKA válida)\n"
+msgstr "nivel de confianza puesto a TOTAL (información PKA válida)\n"
 
 msgid "trustlevel adjusted to NEVER due to bad PKA info\n"
-msgstr "nivel de confianza puesto a NUNCA (información PKA inválida)\n"
+msgstr "nivel de confianza puesto a NUNCA (información PKA inválida)\n"
 
 msgid "Note: This key has expired!\n"
-msgstr "Nota: ¡Esta clave ha caducado!\n"
+msgstr "Nota: Â¡Esta clave ha caducado!\n"
 
 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"
+"ATENCIÓN: ¡Esta clave no está certificada por una firma de confianza!\n"
 
 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"
 
 msgid "WARNING: We do NOT trust this key!\n"
-msgstr "ATENCIÓN: ¡Esta clave NO es de confianza!\n"
+msgstr "ATENCIÃ\93N: Â¡Esta clave NO es de confianza!\n"
 
 msgid "         The signature is probably a FORGERY.\n"
-msgstr "          La firma es probablemente una FALSIFICACIÓN.\n"
+msgstr "          La firma es probablemente una FALSIFICACIÓN.\n"
 
 msgid ""
 "WARNING: This key is not certified with sufficiently trusted signatures!\n"
 msgstr ""
-"ATENCIÓN: ¡Esta clave no está certificada con firmas de suficiente "
+"ATENCIÓN: ¡Esta clave no está certificada con firmas de suficiente "
 "confianza!\n"
 
 msgid "         It is not certain that the signature belongs to the owner.\n"
@@ -5165,11 +5201,11 @@ msgstr "%s: omitido: %s\n"
 
 #, c-format
 msgid "%s: skipped: public key is disabled\n"
-msgstr "%s: omitida: clave pública deshabilitada\n"
+msgstr "%s: omitida: clave pública deshabilitada\n"
 
 #, c-format
 msgid "%s: skipped: public key already present\n"
-msgstr "%s: omitida: clave pública ya presente\n"
+msgstr "%s: omitida: clave pública ya presente\n"
 
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
@@ -5179,12 +5215,12 @@ msgstr "no se puede conectar con `%s': %s\n"
 #, fuzzy, c-format
 #| msgid "line %d: invalid algorithm\n"
 msgid "option '%s' given, but no valid default keys given\n"
-msgstr "línea %d: algoritmo inválido\n"
+msgstr "línea %d: algoritmo inválido\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: invalid algorithm\n"
 msgid "option '%s' given, but option '%s' not given\n"
-msgstr "línea %d: algoritmo inválido\n"
+msgstr "línea %d: algoritmo inválido\n"
 
 msgid "You did not specify a user ID. (you may use \"-r\")\n"
 msgstr "No ha especificado un ID de usuario (puede usar \"-r\")\n"
@@ -5197,26 +5233,26 @@ msgid ""
 "Enter the user ID.  End with an empty line: "
 msgstr ""
 "\n"
-"Introduzca ID de usuario. Acabe con una línea vacía: "
+"Introduzca ID de usuario. Acabe con una línea vacía: "
 
 msgid "No such user ID.\n"
 msgstr "ID de usuario inexistente.\n"
 
 msgid "skipped: public key already set as default recipient\n"
-msgstr "omitida: clave pública ya designada como destinataria por defecto\n"
+msgstr "omitida: clave pública ya designada como destinataria por defecto\n"
 
 msgid "Public key is disabled.\n"
-msgstr "Clave pública deshabilitada.\n"
+msgstr "Clave pública deshabilitada.\n"
 
 msgid "skipped: public key already set\n"
-msgstr "omitida: clave pública ya establecida\n"
+msgstr "omitida: clave pública ya establecida\n"
 
 #, c-format
 msgid "unknown default recipient \"%s\"\n"
 msgstr "desconocido el destinatario predefinido \"%s\"\n"
 
 msgid "no valid addressees\n"
-msgstr "no hay direcciones válidas\n"
+msgstr "no hay direcciones válidas\n"
 
 #, c-format
 msgid "Note: key %s has no %s feature\n"
@@ -5227,7 +5263,7 @@ msgid "Note: key %s has no preference for %s\n"
 msgstr "Nota: clave %s no tiene preferencias para %s\n"
 
 msgid "data not saved; use option \"--output\" to save it\n"
-msgstr "datos no grabados; use la opción \"--output\" para grabarlos\n"
+msgstr "datos no grabados; use la opción \"--output\" para grabarlos\n"
 
 msgid "Detached signature.\n"
 msgstr "Firma separada.\n"
@@ -5252,13 +5288,13 @@ msgstr "imposible abrir datos firmados fd=%d: %s\n"
 
 #, c-format
 msgid "anonymous recipient; trying secret key %s ...\n"
-msgstr "destinatario anónimo; probando clave secreta %s ...\n"
+msgstr "destinatario anónimo; probando clave secreta %s ...\n"
 
 msgid "okay, we are the anonymous recipient.\n"
-msgstr "de acuerdo, somos el destinatario anónimo.\n"
+msgstr "de acuerdo, somos el destinatario anónimo.\n"
 
 msgid "old encoding of the DEK is not supported\n"
-msgstr "la antigua codificación de la DEK no puede usarse\n"
+msgstr "la antigua codificación de la DEK no puede usarse\n"
 
 #, c-format
 msgid "cipher algorithm %d%s is unknown or disabled\n"
@@ -5271,7 +5307,7 @@ msgstr "NOTA: el cifrado %s no aparece en las preferencias del receptor\n"
 #, fuzzy, c-format
 #| msgid "NOTE: secret key %s expired at %s\n"
 msgid "Note: secret key %s expired at %s\n"
-msgstr "NOTA: clave secreta %s caducó el %s\n"
+msgstr "NOTA: clave secreta %s caducó el %s\n"
 
 #, fuzzy
 #| msgid "NOTE: key has been revoked"
@@ -5280,17 +5316,17 @@ msgstr "NOTA: la clave ha sido revocada"
 
 #, c-format
 msgid "build_packet failed: %s\n"
-msgstr "construcción del paquete fallida: %s\n"
+msgstr "construcción del paquete fallida: %s\n"
 
 #, c-format
 msgid "key %s has no user IDs\n"
 msgstr "clave %s: sin identificador de usuario\n"
 
 msgid "To be revoked by:\n"
-msgstr "Será revocado por:\n"
+msgstr "Será revocado por:\n"
 
 msgid "(This is a sensitive revocation key)\n"
-msgstr "(Este es una clave de revocación confidencial)\n"
+msgstr "(Este es una clave de revocación confidencial)\n"
 
 #, fuzzy
 #| msgid "Secret key is available.\n"
@@ -5298,26 +5334,26 @@ msgid "Secret key is not available.\n"
 msgstr "Clave secreta disponible.\n"
 
 msgid "Create a designated revocation certificate for this key? (y/N) "
-msgstr "¿Crear un certificado de revocación para esta clave? (s/N)"
+msgstr "¿Crear un certificado de revocación para esta clave? (s/N)"
 
 msgid "ASCII armored output forced.\n"
 msgstr "se fuerza salida con armadura ASCII.\n"
 
 #, c-format
 msgid "make_keysig_packet failed: %s\n"
-msgstr "make_keysig_packet falló: %s\n"
+msgstr "make_keysig_packet falló: %s\n"
 
 msgid "Revocation certificate created.\n"
-msgstr "Certificado de revocación creado.\n"
+msgstr "Certificado de revocación creado.\n"
 
 #, c-format
 msgid "no revocation keys found for \"%s\"\n"
-msgstr "no se encuetran claves de revocación para \"%s\"\n"
+msgstr "no se encuetran claves de revocación para \"%s\"\n"
 
 #, fuzzy
 #| msgid "Create a revocation certificate for this key? (y/N) "
 msgid "This is a revocation certificate for the OpenPGP key:"
-msgstr "¿Crear un certificado de revocación para esta clave? (s/N) "
+msgstr "¿Crear un certificado de revocación para esta clave? (s/N) "
 
 msgid ""
 "A revocation certificate is a kind of \"kill switch\" to publicly\n"
@@ -5342,7 +5378,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "Revocation certificate created.\n"
 msgid "revocation certificate stored as '%s.rev'\n"
-msgstr "Certificado de revocación creado.\n"
+msgstr "Certificado de revocación creado.\n"
 
 #, fuzzy, c-format
 #| msgid "secret key \"%s\" not found: %s\n"
@@ -5362,7 +5398,7 @@ msgid "error searching the keyring: %s\n"
 msgstr "error escribiendo anillo `%s': %s\n"
 
 msgid "Create a revocation certificate for this key? (y/N) "
-msgstr "¿Crear un certificado de revocación para esta clave? (s/N) "
+msgstr "¿Crear un certificado de revocación para esta clave? (s/N) "
 
 msgid ""
 "Revocation certificate created.\n"
@@ -5373,45 +5409,45 @@ msgid ""
 "your media become unreadable.  But have some caution:  The print system of\n"
 "your machine might store the data and make it available to others!\n"
 msgstr ""
-"Certificado de revocación creado.\n"
+"Certificado de revocación creado.\n"
 "\n"
-"Por favor consérvelo en un medio que pueda esconder; si alguien consigue\n"
+"Por favor consérvelo en un medio que pueda esconder; si alguien consigue\n"
 "acceso a este certificado puede usarlo para inutilizar su clave.\n"
 "Es inteligente imprimir este certificado y guardarlo en otro lugar, por\n"
-"si acaso su medio resulta imposible de leer. Pero precaución: ¡el sistema\n"
-"de impresión de su máquina podría almacenar los datos y hacerlos accesibles\n"
+"si acaso su medio resulta imposible de leer. Pero precaución: Â¡el sistema\n"
+"de impresión de su máquina podría almacenar los datos y hacerlos accesibles\n"
 "a otras personas!\n"
 
 msgid "Please select the reason for the revocation:\n"
-msgstr "Por favor elija una razón para la revocación:\n"
+msgstr "Por favor elija una razón para la revocación:\n"
 
 msgid "Cancel"
 msgstr "Cancelar"
 
 #, c-format
 msgid "(Probably you want to select %d here)\n"
-msgstr "(Probablemente quería seleccionar %d aquí)\n"
+msgstr "(Probablemente quería seleccionar %d aquí)\n"
 
 msgid "Enter an optional description; end it with an empty line:\n"
-msgstr "Introduzca una descripción opcional; acábela con una línea vacía:\n"
+msgstr "Introduzca una descripción opcional; acábela con una línea vacía:\n"
 
 #, c-format
 msgid "Reason for revocation: %s\n"
-msgstr "Razón para la revocación: %s\n"
+msgstr "Razón para la revocación: %s\n"
 
 msgid "(No description given)\n"
-msgstr "(No se dió descripción)\n"
+msgstr "(No se dió descripción)\n"
 
 msgid "Is this okay? (y/N) "
-msgstr "¿Es correcto? (s/N) "
+msgstr "¿Es correcto? (s/N) "
 
 msgid "weak key created - retrying\n"
-msgstr "creada clave débil - reintentando\n"
+msgstr "creada clave débil - reintentando\n"
 
 #, c-format
 msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
 msgstr ""
-"¡imposible evitar clave débil para cifrado simétrico después de %d "
+"¡imposible evitar clave débil para cifrado simétrico después de %d "
 "intentos!\n"
 
 #, fuzzy, c-format
@@ -5433,26 +5469,26 @@ msgstr "AVISO: la subclave de firmado %s no tiene certificado cruzado\n"
 
 #, c-format
 msgid "please see %s for more information\n"
-msgstr "por favor vea %s para más información\n"
+msgstr "por favor vea %s para más información\n"
 
 #, c-format
 msgid "WARNING: signing subkey %s has an invalid cross-certification\n"
 msgstr ""
-"AVISO: la subclave de cifrado %s tiene un certificado cruzado inválido\n"
+"AVISO: la subclave de cifrado %s tiene un certificado cruzado inválido\n"
 
 #, fuzzy, c-format
 #| msgid "public key %s is %lu second newer than the signature\n"
 msgid "public key %s is %lu second newer than the signature\n"
 msgid_plural "public key %s is %lu seconds newer than the signature\n"
-msgstr[0] "la clave pública %s es %lu segundos más nueva que la firma\n"
-msgstr[1] "la clave pública %s es %lu segundos más nueva que la firma\n"
+msgstr[0] "la clave pública %s es %lu segundos más nueva que la firma\n"
+msgstr[1] "la clave pública %s es %lu segundos más nueva que la firma\n"
 
 #, fuzzy, c-format
 #| msgid "public key %s is %lu second newer than the signature\n"
 msgid "public key %s is %lu day newer than the signature\n"
 msgid_plural "public key %s is %lu days newer than the signature\n"
-msgstr[0] "la clave pública %s es %lu segundos más nueva que la firma\n"
-msgstr[1] "la clave pública %s es %lu segundos más nueva que la firma\n"
+msgstr[0] "la clave pública %s es %lu segundos más nueva que la firma\n"
+msgstr[1] "la clave pública %s es %lu segundos más nueva que la firma\n"
 
 #, fuzzy, c-format
 #| msgid ""
@@ -5494,11 +5530,11 @@ msgstr "NOTA: la clave de firmado %s ha sido revocada\n"
 #, c-format
 msgid "assuming bad signature from key %s due to an unknown critical bit\n"
 msgstr ""
-"asumiendo firma incorrecta de la clave %s por un bit crítico desconocido\n"
+"asumiendo firma incorrecta de la clave %s por un bit crítico desconocido\n"
 
 #, c-format
 msgid "key %s: no subkey for subkey revocation signature\n"
-msgstr "clave %s: no hay subclave para la firma de revocación de subclave\n"
+msgstr "clave %s: no hay subclave para la firma de revocación de subclave\n"
 
 #, c-format
 msgid "key %s: no subkey for subkey binding signature\n"
@@ -5507,13 +5543,13 @@ msgstr "clave %s: no hay subclave para firma de subclave de enlace\n"
 #, c-format
 msgid "WARNING: unable to %%-expand notation (too large).  Using unexpanded.\n"
 msgstr ""
-"AVISO: no puedo expandir el %% de la url de política . Se usa sin expandir.\n"
+"AVISO: no puedo expandir el %% de la url de política . Se usa sin expandir.\n"
 
 #, c-format
 msgid ""
 "WARNING: unable to %%-expand policy URL (too large).  Using unexpanded.\n"
 msgstr ""
-"AVISO: no puedo expandir el %% de la url de política (demasiado larga).\n"
+"AVISO: no puedo expandir el %% de la url de política (demasiado larga).\n"
 "Se usa sin expandir.\n"
 
 #, c-format
@@ -5540,7 +5576,7 @@ msgstr "firmando:"
 
 #, c-format
 msgid "%s encryption will be used\n"
-msgstr "se usará un cifrado %s\n"
+msgstr "se usará un cifrado %s\n"
 
 msgid "key is not flagged as insecure - can't use it with the faked RNG!\n"
 msgstr "clave no marcada como insegura - no puede usarse con el pseudo RNG\n"
@@ -5554,7 +5590,7 @@ msgstr "omitido: clave secreta ya presente\n"
 
 msgid "this is a PGP generated Elgamal key which is not secure for signatures!"
 msgstr ""
-"¡esta es una clave ElGamal generada por PGP que NO es segura para firmar!"
+"¡esta es una clave ElGamal generada por PGP que NO es segura para firmar!"
 
 #, c-format
 msgid "trust record %lu, type %d: write failed: %s\n"
@@ -5574,13 +5610,13 @@ msgid "error in '%s': %s\n"
 msgstr "error en `%s': %s\n"
 
 msgid "line too long"
-msgstr "línea demasiado larga"
+msgstr "línea demasiado larga"
 
 msgid "colon missing"
 msgstr "falta una coma"
 
 msgid "invalid fingerprint"
-msgstr "huella dactilar no válida"
+msgstr "huella dactilar no válida"
 
 msgid "ownertrust value missing"
 msgstr "falta el valor de confianza"
@@ -5597,7 +5633,7 @@ msgstr "error de lectura `%s': %s\n"
 
 #, c-format
 msgid "trustdb: sync failed: %s\n"
-msgstr "base de datos de confianza: fallo sincronización: %s\n"
+msgstr "base de datos de confianza: fallo sincronización: %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't create lock for `%s'\n"
@@ -5619,11 +5655,11 @@ msgstr ""
 "registro base de datos de confianza %lu: escritura fallida (n=%d): %s\n"
 
 msgid "trustdb transaction too large\n"
-msgstr "transacción en la base de datos de confianza demasiado grande\n"
+msgstr "transacción en la base de datos de confianza demasiado grande\n"
 
 #, c-format
 msgid "%s: directory does not exist!\n"
-msgstr "%s: ¡el directorio no existe!\n"
+msgstr "%s: Â¡el directorio no existe!\n"
 
 #, fuzzy, c-format
 #| msgid "can't access `%s': %s\n"
@@ -5632,11 +5668,11 @@ msgstr "no se puede acceder a `%s': %s\n"
 
 #, c-format
 msgid "%s: failed to create version record: %s"
-msgstr "%s: fallo en la creación del registro de versión: %s"
+msgstr "%s: fallo en la creación del registro de versión: %s"
 
 #, c-format
 msgid "%s: invalid trustdb created\n"
-msgstr "%s: se ha creado base de datos de confianza inválida\n"
+msgstr "%s: se ha creado base de datos de confianza inválida\n"
 
 #, c-format
 msgid "%s: trustdb created\n"
@@ -5649,23 +5685,23 @@ msgstr "NOTA: no se puede escribir base de datos de confianza\n"
 
 #, c-format
 msgid "%s: invalid trustdb\n"
-msgstr "%s: base de datos de confianza inválida\n"
+msgstr "%s: base de datos de confianza inválida\n"
 
 #, c-format
 msgid "%s: failed to create hashtable: %s\n"
-msgstr "%s: fallo en la creación de la tabla hash: %s\n"
+msgstr "%s: fallo en la creación de la tabla hash: %s\n"
 
 #, c-format
 msgid "%s: error updating version record: %s\n"
-msgstr "%s: error actualizando el registro de versión: %s\n"
+msgstr "%s: error actualizando el registro de versión: %s\n"
 
 #, c-format
 msgid "%s: error reading version record: %s\n"
-msgstr "%s: error leyendo registro de versión: %s\n"
+msgstr "%s: error leyendo registro de versión: %s\n"
 
 #, c-format
 msgid "%s: error writing version record: %s\n"
-msgstr "%s: error escribiendo registro de versión: %s\n"
+msgstr "%s: error escribiendo registro de versión: %s\n"
 
 #, c-format
 msgid "trustdb: lseek failed: %s\n"
@@ -5681,11 +5717,11 @@ msgstr "%s: no es una base de datos de confianza\n"
 
 #, c-format
 msgid "%s: version record with recnum %lu\n"
-msgstr "%s: registro de versión con número de registro %lu\n"
+msgstr "%s: registro de versión con número de registro %lu\n"
 
 #, c-format
 msgid "%s: invalid file version %d\n"
-msgstr "%s: versión del fichero %d inválida\n"
+msgstr "%s: versión del fichero %d inválida\n"
 
 #, c-format
 msgid "%s: error reading free record: %s\n"
@@ -5701,23 +5737,23 @@ msgstr "%s: fallo en poner a cero un registro: %s\n"
 
 #, c-format
 msgid "%s: failed to append a record: %s\n"
-msgstr "%s: fallo al añadir un registro: %s\n"
+msgstr "%s: fallo al añadir un registro: %s\n"
 
 msgid "Error: The trustdb is corrupted.\n"
 msgstr "Error: base de datos de confianza corrupta.\n"
 
 #, c-format
 msgid "can't handle text lines longer than %d characters\n"
-msgstr "no se pueden manejar líneas de texto de más de %d caracteres\n"
+msgstr "no se pueden manejar líneas de texto de más de %d caracteres\n"
 
 #, c-format
 msgid "input line longer than %d characters\n"
-msgstr "línea de longitud superior a %d caracteres\n"
+msgstr "línea de longitud superior a %d caracteres\n"
 
 #, fuzzy, c-format
 #| msgid "error sending standard options: %s\n"
 msgid "error beginning transaction on TOFU database: %s\n"
-msgstr "error enviando opciones estándar: %s\n"
+msgstr "error enviando opciones estándar: %s\n"
 
 #, c-format
 msgid "error committing transaction on TOFU database: %s\n"
@@ -5758,19 +5794,21 @@ msgid "error updating TOFU database: %s\n"
 msgstr "error enviando orden %s: %s\n"
 
 #, c-format
-msgid "The binding %s is NOT known."
+msgid ""
+"This is the first time the email address \"%s\" is being used with key %s."
 msgstr ""
 
 #, c-format
-msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr ""
+
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
 
 #, fuzzy, c-format
@@ -5778,18 +5816,20 @@ msgstr ""
 msgid "error gathering other user IDs: %s\n"
 msgstr "error obteniendo nuevo PIN: %s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr ""
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "lista clave e identificadores de usuario"
 
 #, fuzzy, c-format
 #| msgid "Policy: "
 msgid "policy: %s"
-msgstr "Política: "
+msgstr "Política: "
 
 #, fuzzy, c-format
 #| msgid "error getting stored flags: %s\n"
 msgid "error gathering signature stats: %s\n"
-msgstr "error obteniendo parámetros almacenados: %s\n"
+msgstr "error obteniendo parámetros almacenados: %s\n"
 
 #, c-format
 msgid "The email address \"%s\" is associated with %d key:\n"
@@ -5801,42 +5841,48 @@ msgstr[1] ""
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr ""
 
+msgid ", "
+msgstr ""
+
 #, fuzzy
 #| msgid "list keys"
 msgid "this key"
 msgstr "lista claves"
 
-#, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
-msgstr[0] ""
-msgstr[1] ""
-
 #, fuzzy, c-format
 #| msgid "print message digests"
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
-msgstr[0] "imprime resúmenes de mensaje"
-msgstr[1] "imprime resúmenes de mensaje"
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
+msgstr[0] "imprime resúmenes de mensaje"
+msgstr[1] "imprime resúmenes de mensaje"
+
+#, fuzzy, c-format
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
+msgstr[0] "el algoritmo de resumen seleccionado no es válido\n"
+msgstr[1] "el algoritmo de resumen seleccionado no es válido\n"
 
 #, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+msgid " over the past year."
+msgid_plural " over the past %d years."
 msgstr[0] ""
 msgstr[1] ""
 
+msgid " in the past."
+msgstr ""
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5852,15 +5898,26 @@ msgstr ""
 msgid "(G)ood, (A)ccept once, (U)nknown, (R)eject once, (B)ad? "
 msgstr ""
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing key: %s\n"
+msgid "resetting keydb: %s\n"
+msgstr "error escribiendo clave: %s\n"
+
 #, fuzzy, c-format
 #| msgid "error storing flags: %s\n"
 msgid "error setting TOFU binding's trust level to %s\n"
-msgstr "error almacenando parámetros: %s\n"
+msgstr "error almacenando parámetros: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error creating a pipe: %s\n"
 msgid "error changing TOFU policy: %s\n"
-msgstr "error creando tubería: %s\n"
+msgstr "error creando tubería: %s\n"
 
 #. TRANSLATORS: The tilde ('~') is used here to indicate a
 #. * non-breakable space
@@ -5901,52 +5958,58 @@ msgid_plural "%d~seconds"
 msgstr[0] "segundo"
 msgstr[1] "segundo"
 
-#, c-format
-msgid "Have never verified a message signed by key %s!\n"
-msgstr ""
+#, fuzzy, c-format
+#| msgid "%s: okay\n"
+msgid "%s: "
+msgstr "%s: bien\n"
 
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
-msgstr ""
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "%d firmas borradas\n"
 
 #, fuzzy, c-format
 #| msgid "print message digests"
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "imprime resúmenes de mensaje"
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
+msgstr[0] "imprime resúmenes de mensaje"
+msgstr[1] "imprime resúmenes de mensaje"
+
+#, fuzzy, c-format
+msgid ", and encrypted %ld messages"
+msgstr "el algoritmo de resumen seleccionado no es válido\n"
+
+#, fuzzy, c-format
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] "el algoritmo de resumen seleccionado no es válido\n"
+msgstr[1] "el algoritmo de resumen seleccionado no es válido\n"
 
-#, c-format
 msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
-msgstr[0] ""
-msgstr[1] ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
+msgstr ""
 
-#, c-format
-msgid "The most recent message was verified %s ago."
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
 msgstr ""
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
 msgstr ""
 
 #, c-format
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -5957,10 +6020,19 @@ msgstr[1] ""
 msgid "error opening TOFU database: %s\n"
 msgstr "error enviando orden %s: %s\n"
 
+#, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring `%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "error escribiendo anillo público `%s': %s\n"
+
 #, fuzzy, c-format
 #| msgid "`%s' is not a valid long keyID\n"
 msgid "'%s' is not a valid long keyID\n"
-msgstr "'%s' no es un identificador largo de clave válido\n"
+msgstr "'%s' no es un identificador largo de clave válido\n"
 
 #, c-format
 msgid "key %s: accepted as trusted key\n"
@@ -5968,11 +6040,11 @@ msgstr "clave %s: aceptada como clave fiable\n"
 
 #, c-format
 msgid "key %s occurs more than once in the trustdb\n"
-msgstr "la clave %s aparece más de una vez en la base de datos de confianza\n"
+msgstr "la clave %s aparece más de una vez en la base de datos de confianza\n"
 
 #, c-format
 msgid "key %s: no public key for trusted key - skipped\n"
-msgstr "clave %s: clave fiable sin clave pública - omitida\n"
+msgstr "clave %s: clave fiable sin clave pública - omitida\n"
 
 #, c-format
 msgid "key %s marked as ultimately trusted\n"
@@ -5980,7 +6052,7 @@ msgstr "clave %s marcada como de confianza absoluta\n"
 
 #, c-format
 msgid "trust record %lu, req type %d: read failed: %s\n"
-msgstr "registro de confianza %lu, petición tipo %d: fallo lectura: %s\n"
+msgstr "registro de confianza %lu, petición tipo %d: fallo lectura: %s\n"
 
 #, c-format
 msgid "trust record %lu is not of requested type %d\n"
@@ -5988,7 +6060,7 @@ msgstr "registro de confianza %lu no es del tipo requerido %d\n"
 
 msgid "You may try to re-create the trustdb using the commands:\n"
 msgstr ""
-"Puede intentar recrear la base de datos de confianza usando las órdenes:\n"
+"Puede intentar recrear la base de datos de confianza usando las órdenes:\n"
 
 msgid "If that does not work, please consult the manual\n"
 msgstr "Si eso no funciona, por favor consulte el manual\n"
@@ -6002,17 +6074,17 @@ msgid "using %s trust model\n"
 msgstr "usando %s como modelo de confianza\n"
 
 msgid "no need for a trustdb check\n"
-msgstr "no es necesaria una comprobación de la base de datos de confianza\n"
+msgstr "no es necesaria una comprobación de la base de datos de confianza\n"
 
 #, c-format
 msgid "next trustdb check due at %s\n"
-msgstr "siguiente comprobación de base de datos de confianza el: %s\n"
+msgstr "siguiente comprobación de base de datos de confianza el: %s\n"
 
 #, fuzzy, c-format
 #| msgid "no need for a trustdb check with `%s' trust model\n"
 msgid "no need for a trustdb check with '%s' trust model\n"
 msgstr ""
-"no es necesaria una comprobación de la base de datos de confianza\n"
+"no es necesaria una comprobación de la base de datos de confianza\n"
 "con el modelo de confianza `%s'\n"
 
 #, fuzzy, c-format
@@ -6024,7 +6096,7 @@ msgstr ""
 
 #, c-format
 msgid "public key %s not found: %s\n"
-msgstr "clave pública %s no encontrada: %s\n"
+msgstr "clave pública %s no encontrada: %s\n"
 
 msgid "please do a --check-trustdb\n"
 msgstr "por favor haga un --check-trustdb\n"
@@ -6051,7 +6123,7 @@ msgstr "no se encuentran claves absolutamente fiables\n"
 
 #, c-format
 msgid "public key of ultimately trusted key %s not found\n"
-msgstr "clave pública de la clave absolutamente fiable %s no encontrada\n"
+msgstr "clave pública de la clave absolutamente fiable %s no encontrada\n"
 
 #, c-format
 msgid ""
@@ -6063,7 +6135,7 @@ msgstr ""
 #, c-format
 msgid "unable to update trustdb version record: write failed: %s\n"
 msgstr ""
-"no se puede actualizar el registro de la versión de la base de datos\n"
+"no se puede actualizar el registro de la versión de la base de datos\n"
 "de confianza: fallo de escritura: %s\n"
 
 msgid "undefined"
@@ -6127,21 +6199,21 @@ msgid ""
 msgstr ""
 "la firma no se pudo verificar.\n"
 "Por favor recuerde que el fichero de firma (.sig o .asc)\n"
-"debería ser el primero que se da en la línea de órdenes.\n"
+"debería ser el primero que se da en la línea de órdenes.\n"
 
 #, c-format
 msgid "input line %u too long or missing LF\n"
-msgstr "la línea %u es demasiado larga o no tiene avance de línea (LF)\n"
+msgstr "la línea %u es demasiado larga o no tiene avance de línea (LF)\n"
 
 #, c-format
 msgid "can't open fd %d: %s\n"
 msgstr "no se puede abrir fd %d: %s\n"
 
 msgid "set debugging flags"
-msgstr "establece los parámetros de depuración"
+msgstr "establece los parámetros de depuración"
 
 msgid "enable full debugging"
-msgstr "habilita depuración completa"
+msgstr "habilita depuración completa"
 
 msgid "Usage: kbxutil [options] [files] (-h for help)"
 msgstr "Uso: kbxutil [opciones] [ficheros] (-h para ayuda)"
@@ -6159,31 +6231,31 @@ msgstr ""
 
 #, c-format
 msgid "RSA modulus missing or not of size %d bits\n"
-msgstr "falta el módulo RSA o no es de %d bits\n"
+msgstr "falta el módulo RSA o no es de %d bits\n"
 
 #, c-format
 msgid "RSA public exponent missing or larger than %d bits\n"
-msgstr "falta el exponente público RSA o es mayor de %d bits\n"
+msgstr "falta el exponente público RSA o es mayor de %d bits\n"
 
 #, c-format
 msgid "PIN callback returned error: %s\n"
-msgstr "la función de manejo del PIN devolvió un error: %s\n"
+msgstr "la función de manejo del PIN devolvió un error: %s\n"
 
 msgid "the NullPIN has not yet been changed\n"
 msgstr "el PIN-Nulo no ha sido cambiado\n"
 
 msgid "|N|Please enter a new PIN for the standard keys."
-msgstr "|N|Por favor introduzca un nuevo PIN para las claves estándar."
+msgstr "|N|Por favor introduzca un nuevo PIN para las claves estándar."
 
 msgid "||Please enter the PIN for the standard keys."
-msgstr "||Por favor, introduzca PIN para claves estándar."
+msgstr "||Por favor, introduzca PIN para claves estándar."
 
 msgid "|NP|Please enter a new PIN Unblocking Code (PUK) for the standard keys."
-msgstr "|NP|Introduzca nuevo PIN Unblocking Code (PUK) para claves estándar."
+msgstr "|NP|Introduzca nuevo PIN Unblocking Code (PUK) para claves estándar."
 
 msgid "|P|Please enter the PIN Unblocking Code (PUK) for the standard keys."
 msgstr ""
-"|P|Por favor introduzca PIN Unblocking Code (PUK) para claves estándar."
+"|P|Por favor introduzca PIN Unblocking Code (PUK) para claves estándar."
 
 msgid "|N|Please enter a new PIN for the key to create qualified signatures."
 msgstr "|N|Entre un nuevo PIN para la clave que crea firmas cualificadas."
@@ -6215,25 +6287,25 @@ msgstr "fallo al almacenar la huella digital: %s\n"
 
 #, c-format
 msgid "failed to store the creation date: %s\n"
-msgstr "fallo guardando la fecha de creación: %s\n"
-
-#, c-format
-msgid "reading public key failed: %s\n"
-msgstr "fallo leyendo clave pública: %s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr "la respuesta no incluye la clave pública\n"
+msgstr "fallo guardando la fecha de creación: %s\n"
 
 msgid "response does not contain the RSA modulus\n"
-msgstr "la respuesta no incluye el módulo RSA\n"
+msgstr "la respuesta no incluye el módulo RSA\n"
 
 msgid "response does not contain the RSA public exponent\n"
-msgstr "la respuesta no incluye el exponente público RSA\n"
+msgstr "la respuesta no incluye el exponente público RSA\n"
 
 #, fuzzy
 #| msgid "response does not contain the RSA public exponent\n"
-msgid "response does not contain the EC public point\n"
-msgstr "la respuesta no incluye el exponente público RSA\n"
+msgid "response does not contain the EC public key\n"
+msgstr "la respuesta no incluye el exponente público RSA\n"
+
+msgid "response does not contain the public key data\n"
+msgstr "la respuesta no incluye la clave pública\n"
+
+#, c-format
+msgid "reading public key failed: %s\n"
+msgstr "fallo leyendo clave pública: %s\n"
 
 #, c-format
 msgid "using default PIN as %s\n"
@@ -6252,17 +6324,17 @@ msgstr "||Por favor introduzca PIN"
 
 #, c-format
 msgid "PIN for CHV%d is too short; minimum length is %d\n"
-msgstr "El PIN para CHV%d es demasiado corto; longitud mínima %d\n"
+msgstr "El PIN para CHV%d es demasiado corto; longitud mínima %d\n"
 
 #, c-format
 msgid "verify CHV%d failed: %s\n"
-msgstr "la verificación CHV%d falló: %s\n"
+msgstr "la verificación CHV%d falló: %s\n"
 
 msgid "error retrieving CHV status from card\n"
 msgstr "error recuperando el estatus CHV de la tarjeta\n"
 
 msgid "card is permanently locked!\n"
-msgstr "¡la tarjeta está bloqueada permanentemente!\n"
+msgstr "¡la tarjeta está bloqueada permanentemente!\n"
 
 #, fuzzy, c-format
 #| msgid "%d Admin PIN attempts remaining before card is permanently locked\n"
@@ -6286,20 +6358,20 @@ msgid "|A|Please enter the Admin PIN"
 msgstr "|A|Por favor introduzca PIN de Administrador"
 
 msgid "access to admin commands is not configured\n"
-msgstr "el acceso a órdenes de administrador no está configurado\n"
+msgstr "el acceso a órdenes de administrador no está configurado\n"
 
 msgid "||Please enter the Reset Code for the card"
-msgstr "||Por favor introduzca Código de Reinicio de la tarjeta"
+msgstr "||Por favor introduzca Código de Reinicio de la tarjeta"
 
 #, c-format
 msgid "Reset Code is too short; minimum length is %d\n"
-msgstr "Código de Reinicio demasiado corto; longitud mínima %d\n"
+msgstr "Código de Reinicio demasiado corto; longitud mínima %d\n"
 
 #. TRANSLATORS: Do not translate the "|*|" prefixes but
 #. keep it at the start of the string.  We need this elsewhere
 #. to get some infos on the string.
 msgid "|RN|New Reset Code"
-msgstr "|CR|Nuevo Código de Reinicio"
+msgstr "|CR|Nuevo Código de Reinicio"
 
 msgid "|AN|New Admin PIN"
 msgstr "|AN|Nuevo PIN Administrador"
@@ -6318,7 +6390,7 @@ msgid "||Please enter the PIN and New PIN"
 msgstr "||Por favor introduzca PIN"
 
 msgid "error reading application data\n"
-msgstr "error leyendo datos de la aplicación\n"
+msgstr "error leyendo datos de la aplicación\n"
 
 msgid "error reading fingerprint DO\n"
 msgstr "error leyendo huella digital DO\n"
@@ -6327,7 +6399,7 @@ msgid "key already exists\n"
 msgstr "la clave ya existe\n"
 
 msgid "existing key will be replaced\n"
-msgstr "la clave existente será reemplazada\n"
+msgstr "la clave existente será reemplazada\n"
 
 msgid "generating new key\n"
 msgstr "generando nueva clave\n"
@@ -6336,7 +6408,7 @@ msgid "writing new key\n"
 msgstr "escribiendo clave nueva\n"
 
 msgid "creation timestamp missing\n"
-msgstr "falta fecha de creación\n"
+msgstr "falta fecha de creación\n"
 
 #, c-format
 msgid "RSA prime %s missing or not of size %d bits\n"
@@ -6355,17 +6427,17 @@ msgid "please wait while key is being generated ...\n"
 msgstr "por favor, espere mientras se genera la clave ...\n"
 
 msgid "generating key failed\n"
-msgstr "la generación de la clave falló\n"
+msgstr "la generación de la clave falló\n"
 
 #, fuzzy, c-format
 #| msgid "key generation completed (%d seconds)\n"
 msgid "key generation completed (%d second)\n"
 msgid_plural "key generation completed (%d seconds)\n"
-msgstr[0] "generación de clave completada (%d segundos)\n"
-msgstr[1] "generación de clave completada (%d segundos)\n"
+msgstr[0] "generación de clave completada (%d segundos)\n"
+msgstr[1] "generación de clave completada (%d segundos)\n"
 
 msgid "invalid structure of OpenPGP card (DO 0x93)\n"
-msgstr "estructura de la tarjeta OpenPGP inválida (DO 0x93)\n"
+msgstr "estructura de la tarjeta OpenPGP inválida (DO 0x93)\n"
 
 msgid "fingerprint on card does not match requested one\n"
 msgstr "la huella digital en la tarjeta no coincide con la solicitada\n"
@@ -6385,7 +6457,7 @@ msgstr ""
 
 #, c-format
 msgid "can't access %s - invalid OpenPGP card?\n"
-msgstr "no se puede acceder a %s - ¿tarjeta OpenPGP inválida?\n"
+msgstr "no se puede acceder a %s - ¿tarjeta OpenPGP inválida?\n"
 
 #, fuzzy
 #| msgid "||Please enter your PIN at the reader's keypad"
@@ -6420,7 +6492,7 @@ msgid "do not use the internal CCID driver"
 msgstr "no usa el driverd del CCID interno"
 
 msgid "|N|disconnect the card after N seconds of inactivity"
-msgstr "|N|desconectar la tarjeta después de N segundos de inactividad"
+msgstr "|N|desconectar la tarjeta después de N segundos de inactividad"
 
 #, fuzzy
 #| msgid "do not use a reader's keypad"
@@ -6428,7 +6500,7 @@ msgid "do not use a reader's pinpad"
 msgstr "no usa el teclado del lector"
 
 msgid "deny the use of admin card commands"
-msgstr "denegar órdenes de administración de la tarjeta"
+msgstr "denegar órdenes de administración de la tarjeta"
 
 msgid "use variable length input for pinpad"
 msgstr ""
@@ -6453,7 +6525,7 @@ msgstr ""
 #| msgid ""
 #| "please use the option `--daemon' to run the program in the background\n"
 msgid "please use the option '--daemon' to run the program in the background\n"
-msgstr "use la opción `--daemon' para ejectuar el programa en segundo plano\n"
+msgstr "use la opción `--daemon' para ejectuar el programa en segundo plano\n"
 
 #, c-format
 msgid "handler for fd %d started\n"
@@ -6465,16 +6537,16 @@ msgstr "manejador del descriptor %d terminado\n"
 
 #, c-format
 msgid "invalid radix64 character %02x skipped\n"
-msgstr "caracter inválido radix64 %02x omitido\n"
+msgstr "caracter inválido radix64 %02x omitido\n"
 
 #, fuzzy
 #| msgid "no gpg-agent running in this session\n"
 msgid "no dirmngr running in this session\n"
-msgstr "no hay un agente gpg ejecutándose en esta sesión\n"
+msgstr "no hay un agente gpg ejecutándose en esta sesión\n"
 
 #, c-format
 msgid "validation model requested by certificate: %s"
-msgstr "el certificado: %s requiere un modelo de validación"
+msgstr "el certificado: %s requiere un modelo de validación"
 
 msgid "chain"
 msgstr "cadena"
@@ -6484,13 +6556,13 @@ msgstr "shell"
 
 #, c-format
 msgid "critical certificate extension %s is not supported"
-msgstr "la extensión crítica de certificado %s no puede usarse"
+msgstr "la extensión crítica de certificado %s no puede usarse"
 
 msgid "issuer certificate is not marked as a CA"
-msgstr "el certificado del emisor no está marcado como CA"
+msgstr "el certificado del emisor no está marcado como CA"
 
 msgid "critical marked policy without configured policies"
-msgstr "política marcada como crítica sin políticas configuradas"
+msgstr "política marcada como crítica sin políticas configuradas"
 
 #, fuzzy, c-format
 #| msgid "failed to open `%s': %s\n"
@@ -6500,28 +6572,28 @@ msgstr "fallo abriendo `%s': %s\n"
 #, fuzzy
 #| msgid "note: non-critical certificate policy not allowed"
 msgid "Note: non-critical certificate policy not allowed"
-msgstr "nota: no se permiten políticas no críticas de certificados"
+msgstr "nota: no se permiten políticas no críticas de certificados"
 
 msgid "certificate policy not allowed"
-msgstr "no se permite política de certificado"
+msgstr "no se permite política de certificado"
 
 msgid "looking up issuer at external location\n"
-msgstr "buscando al emisor en una localización externa\n"
+msgstr "buscando al emisor en una localización externa\n"
 
 #, c-format
 msgid "number of issuers matching: %d\n"
 msgstr "numero de emisores coincidentes: %d\n"
 
 msgid "looking up issuer from the Dirmngr cache\n"
-msgstr "buscando emisor en el caché de Dirmngr\n"
+msgstr "buscando emisor en el caché de Dirmngr\n"
 
 #, c-format
 msgid "number of matching certificates: %d\n"
-msgstr "número de certificados coincidentes: %d\n"
+msgstr "número de certificados coincidentes: %d\n"
 
 #, c-format
 msgid "dirmngr cache-only key lookup failed: %s\n"
-msgstr "fallo buscando la clave sólo caché de dirmngr: %s\n"
+msgstr "fallo buscando la clave sólo caché de dirmngr: %s\n"
 
 msgid "failed to allocate keyDB handle\n"
 msgstr "fallo al reservar handle de keyDB\n"
@@ -6533,30 +6605,30 @@ msgid "the status of the certificate is unknown"
 msgstr "el estado del certificado es desconocido"
 
 msgid "please make sure that the \"dirmngr\" is properly installed\n"
-msgstr "por favor asegúrese de que \"dirmngr\" está bien instalado\n"
+msgstr "por favor asegúrese de que \"dirmngr\" está bien instalado\n"
 
 #, c-format
 msgid "checking the CRL failed: %s"
-msgstr "la comprobación de CRL falló: %s"
+msgstr "la comprobación de CRL falló: %s"
 
 #, c-format
 msgid "certificate with invalid validity: %s"
 msgstr "validez del certificado incorrecta: %s"
 
 msgid "certificate not yet valid"
-msgstr "el certificado aún no es válido"
+msgstr "el certificado aún no es válido"
 
 msgid "root certificate not yet valid"
-msgstr "el certificado raíz no es válido aún"
+msgstr "el certificado raíz no es válido aún"
 
 msgid "intermediate certificate not yet valid"
-msgstr "el certificado intermedio aún no es válido"
+msgstr "el certificado intermedio aún no es válido"
 
 msgid "certificate has expired"
 msgstr "certificado caducado"
 
 msgid "root certificate has expired"
-msgstr "el certificado raíz ha caducado"
+msgstr "el certificado raíz ha caducado"
 
 msgid "intermediate certificate has expired"
 msgstr "el certificado intermedio ha caducado"
@@ -6585,26 +6657,26 @@ msgid "  (certificate created at "
 msgstr "  (certificado creado en "
 
 msgid "  (certificate valid from "
-msgstr "  (certificado válido desde "
+msgstr "  (certificado válido desde "
 
 msgid "  (     issuer valid from "
-msgstr "  (     emisor válido desde "
+msgstr "  (     emisor válido desde "
 
 #, c-format
 msgid "fingerprint=%s\n"
 msgstr "huella dactilar=%s\n"
 
 msgid "root certificate has now been marked as trusted\n"
-msgstr "certificado raíz marcado ahora como fiable\n"
+msgstr "certificado raíz marcado ahora como fiable\n"
 
 msgid "interactive marking as trusted not enabled in gpg-agent\n"
-msgstr "marcar interactivamente como fiable no está activado en gpg-agent\n"
+msgstr "marcar interactivamente como fiable no está activado en gpg-agent\n"
 
 msgid "interactive marking as trusted disabled for this session\n"
-msgstr "marcar interactivamente como fíable desactivado en esta sesión\n"
+msgstr "marcar interactivamente como fíable desactivado en esta sesión\n"
 
 msgid "WARNING: creation time of signature not known - assuming current time"
-msgstr "AVISO: fecha de creación de firma desconocida - asumo momento actual"
+msgstr "AVISO: fecha de creación de firma desconocida - asumo momento actual"
 
 msgid "no issuer found in certificate"
 msgstr "no se encuentra el emisor de este certificado"
@@ -6613,11 +6685,11 @@ msgid "self-signed certificate has a BAD signature"
 msgstr "certificado auto firmado con firma INCORRECTA"
 
 msgid "root certificate is not marked trusted"
-msgstr "el certificado raíz no está marcado como fiable"
+msgstr "el certificado raíz no está marcado como fiable"
 
 #, c-format
 msgid "checking the trust list failed: %s\n"
-msgstr "la comprobación de la lista de confianza falló: %s\n"
+msgstr "la comprobación de la lista de confianza falló: %s\n"
 
 msgid "certificate chain too long\n"
 msgstr "cadena de certificados demasiado larga\n"
@@ -6633,7 +6705,7 @@ msgstr "encontrado otro posible certificado de CA coincidente - reintentando"
 
 #, c-format
 msgid "certificate chain longer than allowed by CA (%d)"
-msgstr "cadena de certificados más larga de lo que permite la CA (%d)"
+msgstr "cadena de certificados más larga de lo que permite la CA (%d)"
 
 msgid "certificate is good\n"
 msgstr "certificado correcto\n"
@@ -6642,14 +6714,14 @@ msgid "intermediate certificate is good\n"
 msgstr "certificado intermedio correcto\n"
 
 msgid "root certificate is good\n"
-msgstr "certificado raíz correcto\n"
+msgstr "certificado raíz correcto\n"
 
 msgid "switching to chain model"
 msgstr "cambiando al modelo en cadena"
 
 #, c-format
 msgid "validation model used: %s"
-msgstr "modelo de validación usado: %s"
+msgstr "modelo de validación usado: %s"
 
 #, c-format
 msgid "a %u bit hash is not valid for a %u bit %s key\n"
@@ -6662,7 +6734,7 @@ msgid "none"
 msgstr "ninguno"
 
 msgid "[Error - invalid encoding]"
-msgstr "[Error - codificación inválida]"
+msgstr "[Error - codificación inválida]"
 
 msgid "[Error - out of core]"
 msgstr "[Error - core]"
@@ -6671,7 +6743,7 @@ msgid "[Error - No name]"
 msgstr "[Error - Sin nombre]"
 
 msgid "[Error - invalid DN]"
-msgstr "[Error - DN inválido]"
+msgstr "[Error - DN inválido]"
 
 #, c-format
 msgid ""
@@ -6692,27 +6764,27 @@ msgstr "no se especifica uso de la clave - asumiendo todos los usos\n"
 
 #, c-format
 msgid "error getting key usage information: %s\n"
-msgstr "error obteniendo información sobre uso de la clave: %s\n"
+msgstr "error obteniendo información sobre uso de la clave: %s\n"
 
 #, fuzzy
 #| msgid "certificate should have not been used for certification\n"
 msgid "certificate should not have been used for certification\n"
-msgstr "el certificado no debería haberse usado para certificar\n"
+msgstr "el certificado no debería haberse usado para certificar\n"
 
 #, fuzzy
 #| msgid "certificate should have not been used for OCSP response signing\n"
 msgid "certificate should not have been used for OCSP response signing\n"
-msgstr "el certificado no debería haberse usado para firma en respuesta OCSP\n"
+msgstr "el certificado no debería haberse usado para firma en respuesta OCSP\n"
 
 #, fuzzy
 #| msgid "certificate should have not been used for encryption\n"
 msgid "certificate should not have been used for encryption\n"
-msgstr "el certificado no debería haberse usado para cifrar\n"
+msgstr "el certificado no debería haberse usado para cifrar\n"
 
 #, fuzzy
 #| msgid "certificate should have not been used for signing\n"
 msgid "certificate should not have been used for signing\n"
-msgstr "el certificado no debería haberse usado para firmar\n"
+msgstr "el certificado no debería haberse usado para firmar\n"
 
 msgid "certificate is not usable for encryption\n"
 msgstr "el certificado no es utilizable para cifrar\n"
@@ -6722,95 +6794,95 @@ msgstr "el certificado no es utilizable para firmar\n"
 
 #, c-format
 msgid "line %d: invalid algorithm\n"
-msgstr "línea %d: algoritmo inválido\n"
+msgstr "línea %d: algoritmo inválido\n"
 
 #, c-format
 msgid "line %d: invalid key length %u (valid are %d to %d)\n"
-msgstr "línea %d: longitud de clave inválida %u (válidas de %d a %d)\n"
+msgstr "línea %d: longitud de clave inválida %u (válidas de %d a %d)\n"
 
 #, c-format
 msgid "line %d: no subject name given\n"
-msgstr "línea %d: falta nombre de entidad\n"
+msgstr "línea %d: falta nombre de entidad\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: invalid subject name label `%.*s'\n"
 msgid "line %d: invalid subject name label '%.*s'\n"
-msgstr "línea %d: etiqueta con nombre de entidad inválida `%.*s'\n"
+msgstr "línea %d: etiqueta con nombre de entidad inválida `%.*s'\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: invalid subject name `%s' at pos %d\n"
 msgid "line %d: invalid subject name '%s' at pos %d\n"
-msgstr "línea %d: nombre de entidad inválida `%s' posición %d\n"
+msgstr "línea %d: nombre de entidad inválida `%s' posición %d\n"
 
 #, c-format
 msgid "line %d: not a valid email address\n"
-msgstr "línea %d: no es una dirección de email válida\n"
+msgstr "línea %d: no es una dirección de email válida\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: invalid algorithm\n"
 msgid "line %d: invalid serial number\n"
-msgstr "línea %d: algoritmo inválido\n"
+msgstr "línea %d: algoritmo inválido\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: invalid subject name label `%.*s'\n"
 msgid "line %d: invalid issuer name label '%.*s'\n"
-msgstr "línea %d: etiqueta con nombre de entidad inválida `%.*s'\n"
+msgstr "línea %d: etiqueta con nombre de entidad inválida `%.*s'\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: invalid subject name `%s' at pos %d\n"
 msgid "line %d: invalid issuer name '%s' at pos %d\n"
-msgstr "línea %d: nombre de entidad inválida `%s' posición %d\n"
+msgstr "línea %d: nombre de entidad inválida `%s' posición %d\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: invalid algorithm\n"
 msgid "line %d: invalid date given\n"
-msgstr "línea %d: algoritmo inválido\n"
+msgstr "línea %d: algoritmo inválido\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: error getting key by keygrip `%s': %s\n"
 msgid "line %d: error getting signing key by keygrip '%s': %s\n"
-msgstr "línea %d: error obteniendo clave con keygrip `%s': %s\n"
+msgstr "línea %d: error obteniendo clave con keygrip `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: invalid algorithm\n"
 msgid "line %d: invalid hash algorithm given\n"
-msgstr "línea %d: algoritmo inválido\n"
+msgstr "línea %d: algoritmo inválido\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: invalid algorithm\n"
 msgid "line %d: invalid authority-key-id\n"
-msgstr "línea %d: algoritmo inválido\n"
+msgstr "línea %d: algoritmo inválido\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: invalid subject name `%s' at pos %d\n"
 msgid "line %d: invalid subject-key-id\n"
-msgstr "línea %d: nombre de entidad inválida `%s' posición %d\n"
+msgstr "línea %d: nombre de entidad inválida `%s' posición %d\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: invalid algorithm\n"
 msgid "line %d: invalid extension syntax\n"
-msgstr "línea %d: algoritmo inválido\n"
+msgstr "línea %d: algoritmo inválido\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: error reading key `%s' from card: %s\n"
 msgid "line %d: error reading key '%s' from card: %s\n"
-msgstr "línea %d: error leyendo clave `%s' de la tarjeta: %s\n"
+msgstr "línea %d: error leyendo clave `%s' de la tarjeta: %s\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: error getting key by keygrip `%s': %s\n"
 msgid "line %d: error getting key by keygrip '%s': %s\n"
-msgstr "línea %d: error obteniendo clave con keygrip `%s': %s\n"
+msgstr "línea %d: error obteniendo clave con keygrip `%s': %s\n"
 
 #, c-format
 msgid "line %d: key generation failed: %s <%s>\n"
-msgstr "línea %d: generación de clave fallida: %s <%s>\n"
+msgstr "línea %d: generación de clave fallida: %s <%s>\n"
 
 msgid ""
 "To complete this certificate request please enter the passphrase for the key "
 "you just created once more.\n"
 msgstr ""
-"Para completar este certificado introduzca por favor la frase contraseñapara "
-"la clave que acaba de crear una vez más.\n"
+"Para completar este certificado introduzca por favor la frase contraseñapara "
+"la clave que acaba de crear una vez más.\n"
 
 #, c-format
 msgid "   (%d) RSA\n"
@@ -6830,7 +6902,7 @@ msgstr "error leyendo la tarjeta: %s\n"
 
 #, c-format
 msgid "Serial number of the card: %s\n"
-msgstr "Número de serie de la tarjeta: %s\n"
+msgstr "Número de serie de la tarjeta: %s\n"
 
 msgid "Available keys:\n"
 msgstr "Claves disponibles:\n"
@@ -6855,12 +6927,12 @@ msgid "Enter the X.509 subject name: "
 msgstr "Introduzca nombre de entidad para X.509"
 
 msgid "No subject name given\n"
-msgstr "No se dió nombre de entidad\n"
+msgstr "No se dió nombre de entidad\n"
 
 #, fuzzy, c-format
 #| msgid "Invalid subject name label `%.*s'\n"
 msgid "Invalid subject name label '%.*s'\n"
-msgstr "Etiqueta de nombre de entidad inválida `%.*s'\n"
+msgstr "Etiqueta de nombre de entidad inválida `%.*s'\n"
 
 #. TRANSLATORS: The 22 in the second string is the
 #. length of the first string up to the "%s".  Please
@@ -6870,22 +6942,22 @@ msgstr "Etiqueta de nombre de entidad inv
 #, fuzzy, c-format
 #| msgid "Invalid subject name `%s'\n"
 msgid "Invalid subject name '%s'\n"
-msgstr "Nombre de entidad inválido `%s'\n"
+msgstr "Nombre de entidad inválido `%s'\n"
 
 msgid "22 translator: see certreg-ui.c:gpgsm_gencertreq_tty"
 msgstr "28 visto por el traductor hasta la comilla inclusive"
 
 msgid "Enter email addresses"
-msgstr "Dirección de correo electrónico: "
+msgstr "Dirección de correo electrónico: "
 
 msgid " (end with an empty line):\n"
-msgstr " (termine con una línea en blanco):\n"
+msgstr " (termine con una línea en blanco):\n"
 
 msgid "Enter DNS names"
 msgstr "Introduzca nombres de DNS"
 
 msgid " (optional; end with an empty line):\n"
-msgstr " (opcional; acabe con una línea en blanco):\n"
+msgstr " (opcional; acabe con una línea en blanco):\n"
 
 msgid "Enter URIs"
 msgstr "Introduzca URIs"
@@ -6893,7 +6965,7 @@ msgstr "Introduzca URIs"
 #, fuzzy
 #| msgid "Create a designated revocation certificate for this key? (y/N) "
 msgid "Create self-signed certificate? (y/N) "
-msgstr "¿Crear un certificado de revocación para esta clave? (s/N)"
+msgstr "¿Crear un certificado de revocación para esta clave? (s/N)"
 
 msgid "These parameters are used:\n"
 msgstr ""
@@ -6906,7 +6978,7 @@ msgstr "certificado auto firmado con firma INCORRECTA"
 #, fuzzy
 #| msgid "Now creating certificate request.  This may take a while ...\n"
 msgid "Now creating certificate request.  "
-msgstr "Creando una petición de certificado.  Puede llevar un rato ...\n"
+msgstr "Creando una petición de certificado.  Puede llevar un rato ...\n"
 
 msgid "This may take a while ...\n"
 msgstr ""
@@ -6915,7 +6987,7 @@ msgid "Ready.\n"
 msgstr ""
 
 msgid "Ready.  You should now send this request to your CA.\n"
-msgstr "Acabado. Debería mandar esta petición a su CA.\n"
+msgstr "Acabado. Debería mandar esta petición a su CA.\n"
 
 msgid "resource problem: out of core\n"
 msgstr "problema de recursos: memoria desbordada\n"
@@ -6950,7 +7022,7 @@ msgid "deleting certificate \"%s\" failed: %s\n"
 msgstr "borrado del certificado \"%s\" fallido: %s\n"
 
 msgid "no valid recipients given\n"
-msgstr "no se dieron receptores válidos\n"
+msgstr "no se dieron receptores válidos\n"
 
 msgid "list external keys"
 msgstr "lista claves externas"
@@ -6992,13 +7064,13 @@ msgid "check validity using OCSP"
 msgstr "comprabar validez usando OCSP"
 
 msgid "|N|number of certificates to include"
-msgstr "|N|número de certificados que incluir"
+msgstr "|N|número de certificados que incluir"
 
 msgid "|FILE|take policy information from FILE"
-msgstr "|FICHERO|tomar política de información de FICHERO"
+msgstr "|FICHERO|tomar política de información de FICHERO"
 
 msgid "do not check certificate policies"
-msgstr "no comprobar políticas de certificados"
+msgstr "no comprobar políticas de certificados"
 
 msgid "fetch missing issuer certificates"
 msgstr "recuperar certificados de emisor perdidos"
@@ -7010,25 +7082,25 @@ msgid "|FILE|write a server mode log to FILE"
 msgstr "|FICHERO|escribir un log en modo servidor en FICHERO"
 
 msgid "|FILE|write an audit log to FILE"
-msgstr "|FICHERO|escribir inform de auditoría a FICHERO"
+msgstr "|FICHERO|escribir inform de auditoría a FICHERO"
 
 msgid "batch mode: never ask"
 msgstr "proceso por lotes: nunca preguntar"
 
 # assume -> suponer, no asumir
-# No estoy seguro. El diccionario Collins en la acepción b) de asumir
+# No estoy seguro. El diccionario Collins en la acepción b) de asumir
 # dice "b) (suponer) to assume, suppose..."
-# Además una de las acepciones de asumir es "aceptar algo" y suponer
-# viene a ser asumir una idea como propia. Suponer "sí" en casi todas las
+# Además una de las acepciones de asumir es "aceptar algo" y suponer
+# viene a ser asumir una idea como propia. Suponer "sí" en casi todas las
 # preguntas no me acaba de gustar.
 msgid "assume yes on most questions"
-msgstr "asume \"sí\" en casi todas las preguntas"
+msgstr "asume \"sí\" en casi todas las preguntas"
 
 msgid "assume no on most questions"
 msgstr "asume \"no\" en casi todas las preguntas"
 
 msgid "|FILE|add keyring to the list of keyrings"
-msgstr "|FICHERO|añade este anillo a la lista de anillos"
+msgstr "|FICHERO|añade este anillo a la lista de anillos"
 
 msgid "|USER-ID|use USER-ID as default secret key"
 msgstr "|ID-USUARIO|usa ID-USUARIO como clave secreta por defecto"
@@ -7059,17 +7131,17 @@ msgid ""
 msgstr ""
 "Sintaxis: gpgsm [opciones] [ficheros]\n"
 "firma, comprueba, cifra o descifra usando protocolo S/MIME\n"
-"la operación por defecto depende de los datos de entrada\n"
+"la operación por defecto depende de los datos de entrada\n"
 
 #, fuzzy, c-format
 #| msgid "NOTE: won't be able to encrypt to `%s': %s\n"
 msgid "Note: won't be able to encrypt to '%s': %s\n"
-msgstr "NOTA: no se podrá cifrar a `%s': %s\n"
+msgstr "NOTA: no se podrá cifrar a `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "unknown validation model `%s'\n"
 msgid "unknown validation model '%s'\n"
-msgstr "modelo de validación desconocido `%s'\n"
+msgstr "modelo de validación desconocido `%s'\n"
 
 #, c-format
 msgid "%s:%u: no hostname given\n"
@@ -7077,11 +7149,11 @@ msgstr "%s:%u: falta el nombre del host\n"
 
 #, c-format
 msgid "%s:%u: password given without user\n"
-msgstr "%s:%u: se dio contraseña sin usuario\n"
+msgstr "%s:%u: se dio contraseña sin usuario\n"
 
 #, c-format
 msgid "%s:%u: skipping this line\n"
-msgstr "%s:%u: omitir esta línea\n"
+msgstr "%s:%u: omitir esta línea\n"
 
 msgid "could not parse keyserver\n"
 msgstr "no se puede interpretar el servidor de claves\n"
@@ -7097,7 +7169,7 @@ msgid "can't sign using '%s': %s\n"
 msgstr "no puedo firmar usando `%s': %s\n"
 
 msgid "invalid command (there is no implicit command)\n"
-msgstr "orden inválida (no hay orden implícita)\n"
+msgstr "orden inválida (no hay orden implícita)\n"
 
 #, c-format
 msgid "total number processed: %lu\n"
@@ -7107,11 +7179,11 @@ msgid "error storing certificate\n"
 msgstr "error almacenando certificado\n"
 
 msgid "basic certificate checks failed - not imported\n"
-msgstr "fallaron comprobaciones básicas sobre el certificado - no importado\n"
+msgstr "fallaron comprobaciones básicas sobre el certificado - no importado\n"
 
 #, c-format
 msgid "error getting stored flags: %s\n"
-msgstr "error obteniendo parámetros almacenados: %s\n"
+msgstr "error obteniendo parámetros almacenados: %s\n"
 
 #, c-format
 msgid "error importing certificate: %s\n"
@@ -7142,23 +7214,23 @@ msgstr "problema re-buscando el certificado: %s\n"
 
 #, c-format
 msgid "error storing flags: %s\n"
-msgstr "error almacenando parámetros: %s\n"
+msgstr "error almacenando parámetros: %s\n"
 
 msgid "Error - "
 msgstr "Error - "
 
 msgid "GPG_TTY has not been set - using maybe bogus default\n"
-msgstr "GPG_TTY no tiene valor - usando valor por defecto quizá absurdo\n"
+msgstr "GPG_TTY no tiene valor - usando valor por defecto quizá absurdo\n"
 
 #, fuzzy, c-format
 #| msgid "invalid formatted fingerprint in `%s', line %d\n"
 msgid "invalid formatted fingerprint in '%s', line %d\n"
-msgstr "formato inválido de huella dactilar en `%s', línea %d\n"
+msgstr "formato inválido de huella dactilar en `%s', línea %d\n"
 
 #, fuzzy, c-format
 #| msgid "invalid country code in `%s', line %d\n"
 msgid "invalid country code in '%s', line %d\n"
-msgstr "código de país inválido en `%s', línea %d\n"
+msgstr "código de país inválido en `%s', línea %d\n"
 
 #, c-format
 msgid ""
@@ -7169,17 +7241,17 @@ msgid ""
 "\n"
 "%s%sAre you really sure that you want to do this?"
 msgstr ""
-"Está a punto de crear una firma usando su certificado:\n"
+"Está a punto de crear una firma usando su certificado:\n"
 "\"%s\"\n"
-"Esto creará una firma válida ante la ley e igual a una firma manuscrita\n"
+"Esto creará una firma válida ante la ley e igual a una firma manuscrita\n"
 "\n"
-"%s%sEstá realmente seguro de querer hacer esto?"
+"%s%sEstá realmente seguro de querer hacer esto?"
 
 msgid ""
 "Note, that this software is not officially approved to create or verify such "
 "signatures.\n"
 msgstr ""
-"Observe que este programa no está oficialmente aprobado para crear "
+"Observe que este programa no está oficialmente aprobado para crear "
 "overificar tales firmas.\n"
 
 #, c-format
@@ -7188,9 +7260,9 @@ msgid ""
 "\"%s\"\n"
 "Note, that this certificate will NOT create a qualified signature!"
 msgstr ""
-"Está a punto de crear una firma usando su certificado:\n"
+"Está a punto de crear una firma usando su certificado:\n"
 "\"%s\"\n"
-"¡Observe que este certificado NO creará una firma cualificada!"
+"¡Observe que este certificado NO creará una firma cualificada!"
 
 #, c-format
 msgid "hash algorithm %d (%s) for signer %d not supported; using %s\n"
@@ -7202,7 +7274,7 @@ msgstr "algoritmo de hash usado para el firmante %d: %s (%s)\n"
 
 #, c-format
 msgid "checking for qualified certificate failed: %s\n"
-msgstr "la comprobación de la firma cualificada falló: %s\n"
+msgstr "la comprobación de la firma cualificada falló: %s\n"
 
 msgid "Signature made "
 msgstr "Firmado el "
@@ -7216,7 +7288,7 @@ msgstr "usando el certificado ID 0x%08lX\n"
 
 msgid ""
 "invalid signature: message digest attribute does not match computed one\n"
-msgstr "firma inválida: el resumen del mensaje no coincide con el calculado\n"
+msgstr "firma inválida: el resumen del mensaje no coincide con el calculado\n"
 
 msgid "Good signature from"
 msgstr "Firma correcta de"
@@ -7248,7 +7320,7 @@ msgstr "problema buscando el certificado existente: %s\n"
 #, fuzzy, c-format
 #| msgid "looking up issuer from the Dirmngr cache\n"
 msgid "dropping %u certificates from the cache\n"
-msgstr "buscando emisor en el caché de Dirmngr\n"
+msgstr "buscando emisor en el caché de Dirmngr\n"
 
 #, fuzzy, c-format
 #| msgid "can't create `%s': %s\n"
@@ -7294,7 +7366,7 @@ msgstr "Certificados incluidos"
 #, fuzzy, c-format
 #| msgid "number of matching certificates: %d\n"
 msgid "    runtime cached certificates: %u\n"
-msgstr "número de certificados coincidentes: %d\n"
+msgstr "número de certificados coincidentes: %d\n"
 
 #, fuzzy
 #| msgid "  (certificate created at "
@@ -7314,7 +7386,7 @@ msgstr "error almacenando certificado: %s\n"
 #, fuzzy, c-format
 #| msgid "invalid fingerprint"
 msgid "invalid SHA1 fingerprint string '%s'\n"
-msgstr "huella dactilar no válida"
+msgstr "huella dactilar no válida"
 
 #, fuzzy, c-format
 #| msgid "error storing certificate: %s\n"
@@ -7334,7 +7406,7 @@ msgstr "no se encuentra el emisor de este certificado"
 #, fuzzy, c-format
 #| msgid "error getting stored flags: %s\n"
 msgid "error getting authorityKeyIdentifier: %s\n"
-msgstr "error obteniendo parámetros almacenados: %s\n"
+msgstr "error obteniendo parámetros almacenados: %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't create directory `%s': %s\n"
@@ -7349,7 +7421,7 @@ msgstr "error creando caja de claves `%s': %s\n"
 #, fuzzy, c-format
 #| msgid "ignoring garbage line"
 msgid "ignoring database dir '%s'\n"
-msgstr "ignorando línea con basura"
+msgstr "ignorando línea con basura"
 
 #, fuzzy, c-format
 #| msgid "error reading from %s: %s\n"
@@ -7359,12 +7431,12 @@ msgstr "error leyendo de %s: %s\n"
 #, fuzzy, c-format
 #| msgid "receiving line failed: %s\n"
 msgid "removing cache file '%s'\n"
-msgstr "fallo recibiendo la línea: %s\n"
+msgstr "fallo recibiendo la línea: %s\n"
 
 #, fuzzy, c-format
 #| msgid "enarmoring failed: %s\n"
 msgid "not removing file '%s'\n"
-msgstr "creación de armadura fallida: %s\n"
+msgstr "creación de armadura fallida: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error closing %s: %s\n"
@@ -7394,7 +7466,7 @@ msgstr "error cerrando %s: %s\n"
 #, fuzzy, c-format
 #| msgid "new configuration file `%s' created\n"
 msgid "new cache dir file '%s' created\n"
-msgstr "creado un nuevo fichero de configuración `%s'\n"
+msgstr "creado un nuevo fichero de configuración `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "failed to create temporary file `%s': %s\n"
@@ -7418,12 +7490,12 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "invalid country code in `%s', line %d\n"
 msgid "invalid line detected in '%s' line %u\n"
-msgstr "código de país inválido en `%s', línea %d\n"
+msgstr "código de país inválido en `%s', línea %d\n"
 
 #, fuzzy, c-format
 #| msgid "invalid country code in `%s', line %d\n"
 msgid "duplicate entry detected in '%s' line %u\n"
-msgstr "código de país inválido en `%s', línea %d\n"
+msgstr "código de país inválido en `%s', línea %d\n"
 
 #, c-format
 msgid "unsupported record type in '%s' line %u skipped\n"
@@ -7432,22 +7504,22 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "invalid keyflag in `%s', line %d\n"
 msgid "invalid issuer hash in '%s' line %u\n"
-msgstr "opción de clave inválida en `%s', línea %d\n"
+msgstr "opción de clave inválida en `%s', línea %d\n"
 
 #, fuzzy, c-format
 #| msgid "bad fingerprint in `%s', line %d\n"
 msgid "no issuer DN in '%s' line %u\n"
-msgstr "huella digital incorrecta en `%s', línea %d\n"
+msgstr "huella digital incorrecta en `%s', línea %d\n"
 
 #, fuzzy, c-format
 #| msgid "invalid keyflag in `%s', line %d\n"
 msgid "invalid timestamp in '%s' line %u\n"
-msgstr "opción de clave inválida en `%s', línea %d\n"
+msgstr "opción de clave inválida en `%s', línea %d\n"
 
 #, fuzzy, c-format
 #| msgid "invalid keyflag in `%s', line %d\n"
 msgid "WARNING: invalid cache file hash in '%s' line %u\n"
-msgstr "opción de clave inválida en `%s', línea %d\n"
+msgstr "opción de clave inválida en `%s', línea %d\n"
 
 msgid "detected errors in cache dir file\n"
 msgstr ""
@@ -7488,7 +7560,7 @@ msgstr "error en `%s': %s\n"
 #, fuzzy, c-format
 #| msgid "invalid formatted fingerprint in `%s', line %d\n"
 msgid "invalid formatted checksum for '%s'\n"
-msgstr "formato inválido de huella dactilar en `%s', línea %d\n"
+msgstr "formato inválido de huella dactilar en `%s', línea %d\n"
 
 msgid "too many open cache files; can't open anymore\n"
 msgstr ""
@@ -7496,7 +7568,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "sending line failed: %s\n"
 msgid "opening cache file '%s'\n"
-msgstr "fallo mandando la línea: %s\n"
+msgstr "fallo mandando la línea: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error opening `%s': %s\n"
@@ -7564,12 +7636,12 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error getting stored flags: %s\n"
 msgid "error getting data from cache file: %s\n"
-msgstr "error obteniendo parámetros almacenados: %s\n"
+msgstr "error obteniendo parámetros almacenados: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid hash algorithm `%s'\n"
 msgid "unknown hash algorithm '%s'\n"
-msgstr "algoritmo de distribución inválido `%s'\n"
+msgstr "algoritmo de distribución inválido `%s'\n"
 
 #, c-format
 msgid "gcry_md_open for algorithm %d failed: %s\n"
@@ -7578,27 +7650,27 @@ msgstr ""
 #, fuzzy
 #| msgid "invalid response from agent\n"
 msgid "got an invalid S-expression from libksba\n"
-msgstr "respuesta del agente inválida\n"
+msgstr "respuesta del agente inválida\n"
 
 #, fuzzy, c-format
 #| msgid "changing permission of  `%s' failed: %s\n"
 msgid "converting S-expression failed: %s\n"
-msgstr "al cambiar permisos de `%s' ocurrió el fallo: %s\n"
+msgstr "al cambiar permisos de `%s' ocurrió el fallo: %s\n"
 
 #, fuzzy, c-format
 #| msgid "changing permission of  `%s' failed: %s\n"
 msgid "creating S-expression failed: %s\n"
-msgstr "al cambiar permisos de `%s' ocurrió el fallo: %s\n"
+msgstr "al cambiar permisos de `%s' ocurrió el fallo: %s\n"
 
 #, fuzzy, c-format
 #| msgid "build_packet failed: %s\n"
 msgid "ksba_crl_parse failed: %s\n"
-msgstr "construcción del paquete fallida: %s\n"
+msgstr "construcción del paquete fallida: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error getting serial number of card: %s\n"
 msgid "error getting update times of CRL: %s\n"
-msgstr "error obteniendo el número de serie de la tarjeta: %s\n"
+msgstr "error obteniendo el número de serie de la tarjeta: %s\n"
 
 #, c-format
 msgid "update times of this CRL: this=%s next=%s\n"
@@ -7628,12 +7700,12 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "signature verification suppressed\n"
 msgid "CRL signature verification failed: %s\n"
-msgstr "suprimida la verificación de la firma\n"
+msgstr "suprimida la verificación de la firma\n"
 
 #, fuzzy, c-format
 #| msgid "error reading list of trusted root certificates\n"
 msgid "error checking validity of CRL issuer certificate: %s\n"
-msgstr "error leyendo la lista de certificados raíz fiables\n"
+msgstr "error leyendo la lista de certificados raíz fiables\n"
 
 #, fuzzy, c-format
 #| msgid "select failed: %s\n"
@@ -7663,7 +7735,7 @@ msgstr "error creando fichero temporal: %s\n"
 #, fuzzy, c-format
 #| msgid "lid ?: insert failed: %s\n"
 msgid "crl_parse_insert failed: %s\n"
-msgstr "lid ?: inserción fallida: %s\n"
+msgstr "lid ?: inserción fallida: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing to temporary file: %s\n"
@@ -7695,7 +7767,7 @@ msgstr "error leyendo entrada: %s\n"
 #, fuzzy, c-format
 #| msgid "error creating a pipe: %s\n"
 msgid "creating cache file '%s'\n"
-msgstr "error creando tubería: %s\n"
+msgstr "error creando tubería: %s\n"
 
 #, fuzzy, c-format
 #| msgid "renaming `%s' to `%s' failed: %s\n"
@@ -7730,7 +7802,7 @@ msgstr ""
 #| msgid "WARNING: invalid size of random_seed file - not used\n"
 msgid " WARNING: invalid cache record length\n"
 msgstr ""
-"ATENCIÓN: tamaño incorrecto del fichero de semillas aleatorias - no se usa\n"
+"ATENCIÓN: tamaño incorrecto del fichero de semillas aleatorias - no se usa\n"
 
 #, fuzzy, c-format
 #| msgid "error reading the card: %s\n"
@@ -7745,7 +7817,7 @@ msgstr "problema re-buscando el certificado: %s\n"
 #, fuzzy, c-format
 #| msgid "error reading nonce on fd %d: %s\n"
 msgid "error reading cache entry from db: %s\n"
-msgstr "error leyendo valor único en el descriptor %d: %s\n"
+msgstr "error leyendo valor único en el descriptor %d: %s\n"
 
 msgid "End CRL dump\n"
 msgstr ""
@@ -7758,12 +7830,12 @@ msgstr "lectura fallida: %s\n"
 #, fuzzy, c-format
 #| msgid "lid ?: insert failed: %s\n"
 msgid "crl_cache_insert via DP failed: %s\n"
-msgstr "lid ?: inserción fallida: %s\n"
+msgstr "lid ?: inserción fallida: %s\n"
 
 #, fuzzy, c-format
 #| msgid "receiving line failed: %s\n"
 msgid "crl_cache_insert via issuer failed: %s\n"
-msgstr "fallo recibiendo la línea: %s\n"
+msgstr "fallo recibiendo la línea: %s\n"
 
 msgid "reader to file mapping table full - waiting\n"
 msgstr ""
@@ -7792,12 +7864,12 @@ msgstr "demasiadas preferencias de cifrado\n"
 #, fuzzy, c-format
 #| msgid "error retrieving `%s' via %s: %s\n"
 msgid "error retrieving '%s': %s\n"
-msgstr "error recuperando `%s' vía %s: %s\n"
+msgstr "error recuperando `%s' vía %s: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error running `%s': exit status %d\n"
 msgid "error retrieving '%s': http status %u\n"
-msgstr "error ejecutando `%s': código de finalización %d\n"
+msgstr "error ejecutando `%s': código de finalización %d\n"
 
 #, fuzzy
 #| msgid "certificate `%s' not found: %s\n"
@@ -7889,7 +7961,7 @@ msgstr "no se puede conectar con `%s': %s\n"
 #, fuzzy, c-format
 #| msgid "update failed: %s\n"
 msgid "lookup failed: %s\n"
-msgstr "actualización fallida: %s\n"
+msgstr "actualización fallida: %s\n"
 
 #, fuzzy, c-format
 #| msgid "renaming `%s' to `%s' failed: %s\n"
@@ -7922,7 +7994,7 @@ msgstr "borrado del certificado \"%s\" fallido: %s\n"
 #, fuzzy, c-format
 #| msgid "can't stat `%s': %s\n"
 msgid "got status: '%s'\n"
-msgstr "no se puede obtener información de `%s': %s\n"
+msgstr "no se puede obtener información de `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing secret keyring `%s': %s\n"
@@ -7947,7 +8019,7 @@ msgstr ""
 #, fuzzy
 #| msgid "|FILE|run commands from FILE on startup"
 msgid "|FILE|load CRL from FILE into cache"
-msgstr "|FICHERO|ejecuta órdenes de FICHERO al empezar"
+msgstr "|FICHERO|ejecuta órdenes de FICHERO al empezar"
 
 msgid "|URL|fetch a CRL from URL"
 msgstr ""
@@ -7966,7 +8038,7 @@ msgstr "|FICHERO|escribir logs en modo servidor en FICHERO"
 #, fuzzy
 #| msgid "Quit without saving? (y/N) "
 msgid "run without asking a user"
-msgstr "¿Salir sin grabar? (s/N) "
+msgstr "¿Salir sin grabar? (s/N) "
 
 msgid "force loading of outdated CRLs"
 msgstr ""
@@ -7974,7 +8046,10 @@ msgstr ""
 #, fuzzy
 #| msgid "allow PKA lookups (DNS requests)"
 msgid "allow sending OCSP requests"
-msgstr "permitir búsquedas PKA (peticiones DNS)"
+msgstr "permitir búsquedas PKA (peticiones DNS)"
+
+msgid "allow online software version check"
+msgstr ""
 
 msgid "inhibit the use of HTTP"
 msgstr ""
@@ -8011,7 +8086,7 @@ msgstr ""
 #, fuzzy
 #| msgid "|N|set maximum PIN cache lifetime to N seconds"
 msgid "|N|set LDAP timeout to N seconds"
-msgstr "|N|establecer vida máxima del caché de PIN en N segundos"
+msgstr "|N|establecer vida máxima del caché de PIN en N segundos"
 
 #, fuzzy
 #| msgid "|URL|use keyserver at URL"
@@ -8030,10 +8105,10 @@ msgstr ""
 msgid "route all network traffic via Tor"
 msgstr ""
 
-# ordenes -> órdenes
-# página man -> página de manual
-# Vale. ¿del manual mejor?
-# Hmm, no sé, en man-db se usa "de". La verdad es que no lo he pensado.
+# ordenes -> órdenes
+# página man -> página de manual
+# Vale. Â¿del manual mejor?
+# Hmm, no sé, en man-db se usa "de". La verdad es que no lo he pensado.
 #, fuzzy
 #| msgid ""
 #| "@\n"
@@ -8044,7 +8119,7 @@ msgid ""
 "options)\n"
 msgstr ""
 "@\n"
-"(Véase en la página del manual la lista completo de órdenes y opciones)\n"
+"(Véase en la página del manual la lista completo de órdenes y opciones)\n"
 
 #, fuzzy
 #| msgid "Usage: gpgconf [options] (-h for help)"
@@ -8065,7 +8140,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "invalid debug-level `%s' given\n"
 msgid "valid debug levels are: %s\n"
-msgstr "el nivel de depuración `%s` no es válido\n"
+msgstr "el nivel de depuración `%s` no es válido\n"
 
 #, fuzzy, c-format
 #| msgid "usage: gpgsm [options] "
@@ -8075,7 +8150,7 @@ msgstr "uso: gpgsm [opciones] "
 #, fuzzy
 #| msgid "%s not allowed with %s!\n"
 msgid "colons are not allowed in the socket name\n"
-msgstr "¡%s no permitido con %s!\n"
+msgstr "¡%s no permitido con %s!\n"
 
 #, fuzzy, c-format
 #| msgid "renaming `%s' to `%s' failed: %s\n"
@@ -8085,17 +8160,17 @@ msgstr "renombrando `%s' en `%s' fallo: %s\n"
 #, fuzzy, c-format
 #| msgid "conversion from `%s' to `%s' failed: %s\n"
 msgid "processing CRL from '%s' failed: %s\n"
-msgstr "la conversión de `%s' en `%s' falló: %s\n"
+msgstr "la conversión de `%s' en `%s' falló: %s\n"
 
 #, fuzzy, c-format
 #| msgid "line too long - skipped\n"
 msgid "%s:%u: line too long - skipped\n"
-msgstr "línea demasiado larga -omitida\n"
+msgstr "línea demasiado larga -omitida\n"
 
 #, fuzzy, c-format
 #| msgid "invalid fingerprint"
 msgid "%s:%u: invalid fingerprint detected\n"
-msgstr "huella dactilar no válida"
+msgstr "huella dactilar no válida"
 
 #, fuzzy, c-format
 #| msgid "read error in `%s': %s\n"
@@ -8181,7 +8256,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "invalid import options\n"
 msgid "invalid port number %d\n"
-msgstr "opciones de importación inválidas\n"
+msgstr "opciones de importación inválidas\n"
 
 #, c-format
 msgid "scanning result for attribute '%s'\n"
@@ -8256,7 +8331,7 @@ msgstr ""
 #, fuzzy
 #| msgid "WARNING: using insecure memory!\n"
 msgid "WARNING: using first attribute only\n"
-msgstr "ATENCIÓN: ¡se está usando memoria insegura!\n"
+msgstr "ATENCIÓN: ¡se está usando memoria insegura!\n"
 
 #, fuzzy, c-format
 #| msgid "renaming `%s' to `%s' failed: %s\n"
@@ -8271,7 +8346,7 @@ msgstr "renombrando `%s' en `%s' fallo: %s\n"
 #, fuzzy, c-format
 #| msgid "dearmoring failed: %s\n"
 msgid "searching '%s' failed: %s\n"
-msgstr "eliminación de armadura fallida: %s\n"
+msgstr "eliminación de armadura fallida: %s\n"
 
 #, fuzzy, c-format
 #| msgid "`%s' is not a JPEG file\n"
@@ -8283,11 +8358,6 @@ msgid "'%s' is an invalid LDAP URL\n"
 msgstr ""
 
 #, fuzzy, c-format
-#| msgid "error allocating enough memory: %s\n"
-msgid "error allocating memory: %s\n"
-msgstr "error reservando memoria: %s\n"
-
-#, fuzzy, c-format
 #| msgid "error writing to %s: %s\n"
 msgid "error printing log line: %s\n"
 msgstr "error escribiendo en %s: %s\n"
@@ -8300,7 +8370,7 @@ msgstr "error leyendo de %s: %s\n"
 #, fuzzy, c-format
 #| msgid "pth_select failed: %s - waiting 1s\n"
 msgid "npth_select failed: %s - waiting 1s\n"
-msgstr "pth_select falló: %s - espero 1s\n"
+msgstr "pth_select falló: %s - espero 1s\n"
 
 #, c-format
 msgid "ldap wrapper %d ready"
@@ -8330,7 +8400,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "reading public key failed: %s\n"
 msgid "reading from ldap wrapper %d failed: %s\n"
-msgstr "fallo leyendo clave pública: %s\n"
+msgstr "fallo leyendo clave pública: %s\n"
 
 #, c-format
 msgid "invalid char 0x%02x in host name - not added\n"
@@ -8356,17 +8426,17 @@ msgstr ""
 #, fuzzy
 #| msgid "%s: invalid file version %d\n"
 msgid "invalid canonical S-expression found\n"
-msgstr "%s: versión del fichero %d inválida\n"
+msgstr "%s: versión del fichero %d inválida\n"
 
 #, fuzzy, c-format
 #| msgid "iconv_open failed: %s\n"
 msgid "gcry_md_open failed: %s\n"
-msgstr "iconv_open falló: %s\n"
+msgstr "iconv_open falló: %s\n"
 
 #, fuzzy, c-format
 #| msgid "update secret failed: %s\n"
 msgid "oops: ksba_cert_hash failed: %s\n"
-msgstr "actualización de la clave secreta fallida: %s\n"
+msgstr "actualización de la clave secreta fallida: %s\n"
 
 msgid "bad URL encoding detected\n"
 msgstr ""
@@ -8380,7 +8450,7 @@ msgstr "error leyendo de %s: %s\n"
 #| msgid "Error: Private DO too long (limit is %d characters).\n"
 msgid "response from server too large; limit is %d bytes\n"
 msgstr ""
-"Error: los datos privados son demasiado largos (límite de %d caracteres).\n"
+"Error: los datos privados son demasiado largos (límite de %d caracteres).\n"
 
 #, fuzzy
 #| msgid "certificate `%s' not found: %s\n"
@@ -8393,7 +8463,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error storing flags: %s\n"
 msgid "error setting OCSP target: %s\n"
-msgstr "error almacenando parámetros: %s\n"
+msgstr "error almacenando parámetros: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error loading `%s': %s\n"
@@ -8413,7 +8483,7 @@ msgstr "error leyendo de %s: %s\n"
 #, fuzzy, c-format
 #| msgid "error running `%s': exit status %d\n"
 msgid "error accessing '%s': http status %u\n"
-msgstr "error ejecutando `%s': código de finalización %d\n"
+msgstr "error ejecutando `%s': código de finalización %d\n"
 
 #, fuzzy, c-format
 #| msgid "error binding socket to `%s': %s\n"
@@ -8427,7 +8497,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "changing permission of  `%s' failed: %s\n"
 msgid "hashing the OCSP response for '%s' failed: %s\n"
-msgstr "al cambiar permisos de `%s' ocurrió el fallo: %s\n"
+msgstr "al cambiar permisos de `%s' ocurrió el fallo: %s\n"
 
 msgid "not signed by a default OCSP signer's certificate"
 msgstr ""
@@ -8438,7 +8508,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "receiving line failed: %s\n"
 msgid "allocating list item failed: %s\n"
-msgstr "fallo recibiendo la línea: %s\n"
+msgstr "fallo recibiendo la línea: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error getting new PIN: %s\n"
@@ -8448,7 +8518,7 @@ msgstr "error obteniendo nuevo PIN: %s\n"
 #, fuzzy
 #| msgid "certificate should have not been used for OCSP response signing\n"
 msgid "no suitable certificate found to verify the OCSP response\n"
-msgstr "el certificado no debería haberse usado para firma en respuesta OCSP\n"
+msgstr "el certificado no debería haberse usado para firma en respuesta OCSP\n"
 
 #, fuzzy, c-format
 #| msgid "issuer certificate not found"
@@ -8458,7 +8528,7 @@ msgstr "no se encuentra emisor del certificado"
 #, fuzzy
 #| msgid "error reading list of trusted root certificates\n"
 msgid "caller did not return the target certificate\n"
-msgstr "error leyendo la lista de certificados raíz fiables\n"
+msgstr "error leyendo la lista de certificados raíz fiables\n"
 
 #, fuzzy
 #| msgid "error storing certificate\n"
@@ -8526,7 +8596,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "sending line failed: %s\n"
 msgid "assuan_inquire(%s) failed: %s\n"
-msgstr "fallo mandando la línea: %s\n"
+msgstr "fallo mandando la línea: %s\n"
 
 msgid "ldapserver missing"
 msgstr ""
@@ -8537,7 +8607,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "sending line failed: %s\n"
 msgid "assuan_inquire failed: %s\n"
-msgstr "fallo mandando la línea: %s\n"
+msgstr "fallo mandando la línea: %s\n"
 
 #, fuzzy, c-format
 #| msgid "select failed: %s\n"
@@ -8576,12 +8646,12 @@ msgstr "fallo al crear un flujo desde el socket: %s\n"
 #, fuzzy, c-format
 #| msgid "failed to initialize the TrustDB: %s\n"
 msgid "failed to initialize the server: %s\n"
-msgstr "inicialización de la base de datos de confianza fallida: %s\n"
+msgstr "inicialización de la base de datos de confianza fallida: %s\n"
 
 #, fuzzy, c-format
 #| msgid "failed to store the creation date: %s\n"
 msgid "failed to the register commands with Assuan: %s\n"
-msgstr "fallo guardando la fecha de creación: %s\n"
+msgstr "fallo guardando la fecha de creación: %s\n"
 
 #, fuzzy, c-format
 #| msgid "user '%s' list problem: %s\n"
@@ -8596,7 +8666,7 @@ msgstr "firma fallida: %s\n"
 #, fuzzy
 #| msgid "issuer certificate is not marked as a CA"
 msgid "accepting root CA not marked as a CA"
-msgstr "el certificado del emisor no está marcado como CA"
+msgstr "el certificado del emisor no está marcado como CA"
 
 #, fuzzy
 #| msgid "checking the trustdb\n"
@@ -8609,7 +8679,7 @@ msgstr ""
 #, fuzzy
 #| msgid "checking the CRL failed: %s"
 msgid "checking CRL for"
-msgstr "la comprobación de CRL falló: %s"
+msgstr "la comprobación de CRL falló: %s"
 
 #, fuzzy
 #| msgid "self-signed certificate has a BAD signature"
@@ -8619,7 +8689,7 @@ msgstr "certificado auto firmado con firma INCORRECTA"
 #, fuzzy, c-format
 #| msgid "checking for qualified certificate failed: %s\n"
 msgid "checking trustworthiness of root certificate failed: %s\n"
-msgstr "la comprobación de la firma cualificada falló: %s\n"
+msgstr "la comprobación de la firma cualificada falló: %s\n"
 
 #, fuzzy
 #| msgid "certificate is good\n"
@@ -8632,7 +8702,7 @@ msgstr "DSA necesita un algoritmo de hash de 160 bits.\n"
 #, fuzzy
 #| msgid "certificate should have not been used for signing\n"
 msgid "certificate should not have been used for CRL signing\n"
-msgstr "el certificado no debería haberse usado para firmar\n"
+msgstr "el certificado no debería haberse usado para firmar\n"
 
 msgid "quiet"
 msgstr "silencioso"
@@ -8641,7 +8711,7 @@ msgid "print data out hex encoded"
 msgstr "escribir datos de salida en hexadecimal"
 
 msgid "decode received data lines"
-msgstr "decodificar líneas de datos recibidos"
+msgstr "decodificar líneas de datos recibidos"
 
 #, fuzzy
 #| msgid "pass a command to the dirmngr"
@@ -8657,13 +8727,13 @@ msgid "|ADDR|connect to Assuan server at ADDR"
 msgstr "|NOMBRE|conectar al socket Assuan NOMBRE"
 
 msgid "run the Assuan server given on the command line"
-msgstr "ejecutar el servidor Assuan indicando en línea de órdenes"
+msgstr "ejecutar el servidor Assuan indicando en línea de órdenes"
 
 msgid "do not use extended connect mode"
-msgstr "no usar el modo de conexión extendido"
+msgstr "no usar el modo de conexión extendido"
 
 msgid "|FILE|run commands from FILE on startup"
-msgstr "|FICHERO|ejecuta órdenes de FICHERO al empezar"
+msgstr "|FICHERO|ejecuta órdenes de FICHERO al empezar"
 
 msgid "run /subst on startup"
 msgstr "ejecutar /subst al empezar"
@@ -8682,25 +8752,25 @@ msgid ""
 "Connect to a running agent and send commands\n"
 msgstr ""
 "Sintaxis: gpg-connect-agent [opciones]\n"
-"Conectar a un agente que se está ejecutando y mandar órdenes\n"
+"Conectar a un agente que se está ejecutando y mandar órdenes\n"
 
 #, c-format
 msgid "option \"%s\" requires a program and optional arguments\n"
-msgstr "la opción \"%s\" necesita un programa y parámetros opcionales\n"
+msgstr "la opción \"%s\" necesita un programa y parámetros opcionales\n"
 
 #, c-format
 msgid "option \"%s\" ignored due to \"%s\"\n"
-msgstr "la opción \"%s\" se ignora por \"%s\"\n"
+msgstr "la opción \"%s\" se ignora por \"%s\"\n"
 
 #, c-format
 msgid "receiving line failed: %s\n"
-msgstr "fallo recibiendo la línea: %s\n"
+msgstr "fallo recibiendo la línea: %s\n"
 
 msgid "line too long - skipped\n"
-msgstr "línea demasiado larga -omitida\n"
+msgstr "línea demasiado larga -omitida\n"
 
 msgid "line shortened due to embedded Nul character\n"
-msgstr "línea acortada por culpa del caracter Nul incluído\n"
+msgstr "línea acortada por culpa del caracter Nul incluído\n"
 
 #, fuzzy, c-format
 #| msgid "unknown command `%s'\n"
@@ -8709,20 +8779,20 @@ msgstr "orden desconocida `%s'\n"
 
 #, c-format
 msgid "sending line failed: %s\n"
-msgstr "fallo mandando la línea: %s\n"
+msgstr "fallo mandando la línea: %s\n"
 
 #, c-format
 msgid "error sending standard options: %s\n"
-msgstr "error enviando opciones estándar: %s\n"
+msgstr "error enviando opciones estándar: %s\n"
 
 msgid "Options controlling the diagnostic output"
-msgstr "Opciones que controlan la salida de diagnósticos"
+msgstr "Opciones que controlan la salida de diagnósticos"
 
 msgid "Options controlling the configuration"
-msgstr "Opciones que controlan la configuración"
+msgstr "Opciones que controlan la configuración"
 
 msgid "Options useful for debugging"
-msgstr "Opciones útiles para el depurado"
+msgstr "Opciones útiles para el depurado"
 
 msgid "Options controlling the security"
 msgstr "Opciones que controlan la seguridad"
@@ -8731,54 +8801,54 @@ msgid "|N|expire SSH keys after N seconds"
 msgstr "|N|las claves SSH caducan en N segundos"
 
 msgid "|N|set maximum PIN cache lifetime to N seconds"
-msgstr "|N|establecer vida máxima del caché de PIN en N segundos"
+msgstr "|N|establecer vida máxima del caché de PIN en N segundos"
 
 msgid "|N|set maximum SSH key lifetime to N seconds"
-msgstr "|N|establecer vida máxima de la clave SSH en N segundos"
+msgstr "|N|establecer vida máxima de la clave SSH en N segundos"
 
 msgid "Options enforcing a passphrase policy"
-msgstr "Opciones que fuerzan una política de frases contraseña"
+msgstr "Opciones que fuerzan una política de frases contraseña"
 
 msgid "do not allow bypassing the passphrase policy"
-msgstr "no permitir evitar la política de frases contraseña"
+msgstr "no permitir evitar la política de frases contraseña"
 
 msgid "|N|set minimal required length for new passphrases to N"
-msgstr "|N|establecer longitud mínima para nuevas frases contraseña en N"
+msgstr "|N|establecer longitud mínima para nuevas frases contraseña en N"
 
 msgid "|N|require at least N non-alpha characters for a new passphrase"
-msgstr "|N|pedir al menos N caracteres no alfabéticos para nuevas contraseñas"
+msgstr "|N|pedir al menos N caracteres no alfabéticos para nuevas contraseñas"
 
 msgid "|FILE|check new passphrases against pattern in FILE"
-msgstr "|FICHERO|comprobar nuevas frases contraseña con el patrón en FICHERO"
+msgstr "|FICHERO|comprobar nuevas frases contraseña con el patrón en FICHERO"
 
 msgid "|N|expire the passphrase after N days"
-msgstr "|N|frase contraseña caduca tras N días"
+msgstr "|N|frase contraseña caduca tras N días"
 
 msgid "do not allow the reuse of old passphrases"
-msgstr "no permite reusar antiguas frases contraseña"
+msgstr "no permite reusar antiguas frases contraseña"
 
 #, fuzzy
 #| msgid "|N|set maximum PIN cache lifetime to N seconds"
 msgid "|N|set the Pinentry timeout to N seconds"
-msgstr "|N|establecer vida máxima del caché de PIN en N segundos"
+msgstr "|N|establecer vida máxima del caché de PIN en N segundos"
 
 msgid "|NAME|use NAME as default secret key"
 msgstr "|NOMBRE|usa NOMBRE como clave secreta por defecto"
 
 msgid "|NAME|encrypt to user ID NAME as well"
-msgstr "|NOMBRE|cifra para el ususario NOMBRE también"
+msgstr "|NOMBRE|cifra para el ususario NOMBRE también"
 
 msgid "|SPEC|set up email aliases"
 msgstr "|ESPEC|establecer alias de email"
 
 msgid "Configuration for Keyservers"
-msgstr "Configuración para servidores de claves"
+msgstr "Configuración para servidores de claves"
 
 msgid "|URL|use keyserver at URL"
 msgstr "|URL|usar servidor de claves en URL"
 
 msgid "allow PKA lookups (DNS requests)"
-msgstr "permitir búsquedas PKA (peticiones DNS)"
+msgstr "permitir búsquedas PKA (peticiones DNS)"
 
 msgid "|MECHANISMS|use MECHANISMS to locate keys by mail address"
 msgstr "|MECANISMOS|usa MECANISMOS para encontrar claves por emails"
@@ -8787,16 +8857,16 @@ msgid "disable all access to the dirmngr"
 msgstr "prohibir todo acceso al dirmngr"
 
 msgid "|NAME|use encoding NAME for PKCS#12 passphrases"
-msgstr "|NOMBRE|usa la codificación NOMBRE para frases contraseña PKCS#12"
+msgstr "|NOMBRE|usa la codificación NOMBRE para frases contraseña PKCS#12"
 
 msgid "do not check CRLs for root certificates"
-msgstr "no comprobar CRLs para certificados raíz"
+msgstr "no comprobar CRLs para certificados raíz"
 
 msgid "Options controlling the format of the output"
 msgstr "Opciones que controlan el formato de la salida"
 
 msgid "Options controlling the interactivity and enforcement"
-msgstr "Opciones que controlan la interactividad y obligación"
+msgstr "Opciones que controlan la interactividad y obligación"
 
 #, fuzzy
 #| msgid "Options controlling the security"
@@ -8804,48 +8874,50 @@ msgid "Options controlling the use of Tor"
 msgstr "Opciones que controlan la seguridad"
 
 msgid "Configuration for HTTP servers"
-msgstr "Configuración de servidores HTTP"
+msgstr "Configuración de servidores HTTP"
 
 msgid "use system's HTTP proxy setting"
-msgstr "usar configuración del proxy HTTP del sistema"
+msgstr "usar configuración del proxy HTTP del sistema"
 
 msgid "Configuration of LDAP servers to use"
-msgstr "Configuración de servidores LDAP que se usará"
+msgstr "Configuración de servidores LDAP que se usará"
 
 msgid "LDAP server list"
 msgstr "lista de servidores LDAP"
 
 msgid "Configuration for OCSP"
-msgstr "Configuración de OCSP"
+msgstr "Configuración de OCSP"
 
-msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr ""
 
-msgid "GPG Agent"
+msgid "Private Keys"
 msgstr ""
 
-msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr ""
 
-msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr ""
 
-msgid "Key Acquirer"
-msgstr ""
+#, fuzzy
+#| msgid "network error"
+msgid "Network"
+msgstr "error de red"
 
-# ¿Por qué no frase de paso?
-# Porque todo el mundo sabe lo que es una contraseña
+# ¿Por qué no frase de paso?
+# Porque todo el mundo sabe lo que es una contraseña
 # y una "frase de paso" no. Soy consciente de que se
 # traduce igual password y passphrase pero el contexto
-# permite saber de lo que se está hablando.
-# No sé, no sé.
-# ¿Por qué los ingleses entonces sí que saben lo que es un "passphrase"?
-# ¿Es que son más listos? :-)
+# permite saber de lo que se está hablando.
+# No sé, no sé.
+# ¿Por qué los ingleses entonces sí que saben lo que es un "passphrase"?
+# ¿Es que son más listos? :-)
 #
 #, fuzzy
 #| msgid "Bad Passphrase"
-msgid "PIN and Passphrase Entry"
-msgstr "Frase contraseña errónea"
+msgid "Passphrase Entry"
+msgstr "Frase contraseña errónea"
 
 #, fuzzy
 #| msgid "Component not found"
@@ -8854,10 +8926,10 @@ msgstr "Componente no encontrado"
 
 #, c-format
 msgid "External verification of component %s failed"
-msgstr "Verificación externa del componente %s fallida"
+msgstr "Verificación externa del componente %s fallida"
 
 msgid "Note that group specifications are ignored\n"
-msgstr "Note que las especificación de grupo se ignoran\n"
+msgstr "Note que las especificación de grupo se ignoran\n"
 
 msgid "list all components"
 msgstr "listar todos los componentes"
@@ -8880,13 +8952,18 @@ msgstr "aplicar valores globales por defecto"
 #, fuzzy
 #| msgid "get the configuration directories for gpgconf"
 msgid "get the configuration directories for @GPGCONF@"
-msgstr "obtener directorios de configuración para gpgconf"
+msgstr "obtener directorios de configuración para gpgconf"
 
 msgid "list global configuration file"
-msgstr "listar fichero de configuración global"
+msgstr "listar fichero de configuración global"
 
 msgid "check global configuration file"
-msgstr "comprobar fichero global de configuración"
+msgstr "comprobar fichero global de configuración"
+
+#, fuzzy
+#| msgid "update the trust database"
+msgid "query the software version database"
+msgstr "actualiza la base de datos de confianza"
 
 #, fuzzy
 #| msgid "list all components"
@@ -8907,7 +8984,7 @@ msgid "use as output file"
 msgstr "usa como fichero de salida"
 
 msgid "activate changes at runtime, if possible"
-msgstr "activar cambios en tiempo de ejecución, si es posible"
+msgstr "activar cambios en tiempo de ejecución, si es posible"
 
 #, fuzzy
 #| msgid "Usage: gpgconf [options] (-h for help)"
@@ -8923,7 +9000,7 @@ msgid ""
 "Manage configuration options for tools of the @GNUPG@ system\n"
 msgstr ""
 "Sintaxis: gpgconf [opciones]\n"
-"Administrar opciones de configuración de las herramientas GnuPG\n"
+"Administrar opciones de configuración de las herramientas GnuPG\n"
 
 msgid "Need one component argument"
 msgstr "Necesita un argumento de un componente"
@@ -8932,19 +9009,19 @@ msgid "Component not found"
 msgstr "Componente no encontrado"
 
 msgid "No argument allowed"
-msgstr "No se permiten parámetros"
+msgstr "No se permiten parámetros"
 
-# Órdenes, please...
-# Sí, este no he podido ser yo :-) Por cierto, ¿por qué la O no se
-# puede acentuar? ¿demasiado alta?
-# ¿Quién dice que no se puede? :-)
+# Órdenes, please...
+# Sí, este no he podido ser yo :-) Por cierto, ¿por qué la O no se
+# puede acentuar? Â¿demasiado alta?
+# ¿Quién dice que no se puede? :-)
 msgid ""
 "@\n"
 "Commands:\n"
 " "
 msgstr ""
 "@\n"
-"Órdenes:\n"
+"Órdenes:\n"
 " "
 
 msgid "decryption modus"
@@ -8975,15 +9052,15 @@ msgid ""
 msgstr ""
 "Sintaxis: symcryptrun --class CLASE --program PROGRAMA --keyfile FICHERO "
 "[opciones...] ORDEN [fichero entrada]\n"
-"Invocar una herramienta simple de cifrado simétrico\n"
+"Invocar una herramienta simple de cifrado simétrico\n"
 
 #, c-format
 msgid "%s on %s aborted with status %i\n"
-msgstr "%s en %s abortó con estado %i\n"
+msgstr "%s en %s abortó con estado %i\n"
 
 #, c-format
 msgid "%s on %s failed with status %i\n"
-msgstr "%s en %s falló con estado %i\n"
+msgstr "%s en %s falló con estado %i\n"
 
 #, fuzzy, c-format
 #| msgid "can't create temporary directory `%s': %s\n"
@@ -9007,20 +9084,20 @@ msgid "error closing %s: %s\n"
 msgstr "error cerrando %s: %s\n"
 
 msgid "no --program option provided\n"
-msgstr "falta la opción --program\n"
+msgstr "falta la opción --program\n"
 
 msgid "only --decrypt and --encrypt are supported\n"
-msgstr "sólo pueden usarse --decrypt y --encrypt\n"
+msgstr "sólo pueden usarse --decrypt y --encrypt\n"
 
 msgid "no --keyfile option provided\n"
-msgstr "falta la opción --keyfile\n"
+msgstr "falta la opción --keyfile\n"
 
 msgid "cannot allocate args vector\n"
-msgstr "no puedo reservar espacio para el vector de parámetros\n"
+msgstr "no puedo reservar espacio para el vector de parámetros\n"
 
 #, c-format
 msgid "could not create pipe: %s\n"
-msgstr "no se pudo crear la tubería: %s\n"
+msgstr "no se pudo crear la tubería: %s\n"
 
 #, c-format
 msgid "could not create pty: %s\n"
@@ -9082,11 +9159,26 @@ msgid ""
 "Check a passphrase given on stdin against the patternfile\n"
 msgstr ""
 "Sintaxis: gpg-check-pattern [opciones] fichero_de_patrones\n"
-"Compara frase contraseña dada en entrada estándar con un fichero de "
+"Compara frase contraseña dada en entrada estándar con un fichero de "
 "patrones\n"
 
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "el sombreado de la clave falló: %s\n"
+
+#, fuzzy
+#~| msgid "Available keys:\n"
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "Claves disponibles:\n"
+
+#, fuzzy
+#~| msgid "print message digests"
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "imprime resúmenes de mensaje"
+#~ msgstr[1] "imprime resúmenes de mensaje"
+
 #~ msgid "communication problem with gpg-agent\n"
-#~ msgstr "problema de comunicación con el agente gpg\n"
+#~ msgstr "problema de comunicación con el agente gpg\n"
 
 #~ msgid "canceled by user\n"
 #~ msgstr "cancelado por el usuario\n"
@@ -9114,7 +9206,7 @@ msgstr ""
 #~ "%u-bit %s key, ID %s,\n"
 #~ "created %s%s.\n"
 #~ msgstr ""
-#~ "Introduzca frase contraseña para desbloquear la clave secreta del "
+#~ "Introduzca frase contraseña para desbloquear la clave secreta del "
 #~ "certificado OpenPGP:\n"
 #~ "\"%.*s\"\n"
 #~ "con %u bits clave %s, ID %s,\n"
@@ -9124,7 +9216,7 @@ msgstr ""
 #~ "You need a passphrase to unlock the secret key for\n"
 #~ "user: \"%s\"\n"
 #~ msgstr ""
-#~ "Necesita una frase contraseña para desbloquear la clave secreta\n"
+#~ "Necesita una frase contraseña para desbloquear la clave secreta\n"
 #~ "del usuario: \"%s\"\n"
 
 #~ msgid "%u-bit %s key, ID %s, created %s"
@@ -9150,8 +9242,8 @@ msgstr ""
 #~| msgid "%d user IDs without valid self-signatures detected\n"
 #~ msgid "%d user ID without valid self-signature detected\n"
 #~ msgid_plural "%d user IDs without valid self-signatures detected\n"
-#~ msgstr[0] "Detectados %d identificadores de usuario sin autofirma válida\n"
-#~ msgstr[1] "Detectados %d identificadores de usuario sin autofirma válida\n"
+#~ msgstr[0] "Detectados %d identificadores de usuario sin autofirma válida\n"
+#~ msgstr[1] "Detectados %d identificadores de usuario sin autofirma válida\n"
 
 #~ msgid "moving a key signature to the correct place\n"
 #~ msgstr "moviendo la firma de la clave al lugar correcto\n"
@@ -9159,7 +9251,7 @@ msgstr ""
 #, fuzzy
 #~| msgid "option \"%.50s\" is ambiguous\n"
 #~ msgid "key specification '%s' is ambiguous\n"
-#~ msgstr "la opción \"%.50s\" es ambigua\n"
+#~ msgstr "la opción \"%.50s\" es ambigua\n"
 
 #~ msgid "%d signatures not checked due to missing keys\n"
 #~ msgstr "%d firmas no comprobadas por falta de clave\n"
@@ -9168,10 +9260,7 @@ msgstr ""
 #~ msgstr "%d firmas no comprobadas por errores\n"
 
 #~ msgid "1 user ID without valid self-signature detected\n"
-#~ msgstr "Detectado 1 identificador de usuario sin autofirma válida\n"
-
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "%d firmas borradas\n"
+#~ msgstr "Detectado 1 identificador de usuario sin autofirma válida\n"
 
 #~ msgid "User ID \"%s\": %d signatures removed\n"
 #~ msgstr "ID de usuario \"%s\": %d firmas borradas\n"
@@ -9180,18 +9269,18 @@ msgstr ""
 #~ "You need a Passphrase to protect your secret key.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Necesita una frase contraseña para proteger su clave secreta.\n"
+#~ "Necesita una frase contraseña para proteger su clave secreta.\n"
 #~ "\n"
 
 #~ msgid ""
 #~ "Please enter a passphrase to protect the off-card backup of the new "
 #~ "encryption key."
 #~ msgstr ""
-#~ "Introduzca la frase contraseña para proteger la copia de seguridadde la "
+#~ "Introduzca la frase contraseña para proteger la copia de seguridadde la "
 #~ "clave externamente a la tarjeta."
 
 #~ msgid "passphrase not correctly repeated; try again"
-#~ msgstr "frase contraseña repetida incorrectamente; inténtelo de nuevo"
+#~ msgstr "frase contraseña repetida incorrectamente; inténtelo de nuevo"
 
 #~ msgid "%s.\n"
 #~ msgstr "%s.\n"
@@ -9202,9 +9291,9 @@ msgstr ""
 #~ "using this program with the option \"--edit-key\".\n"
 #~ "\n"
 #~ msgstr ""
-#~ "No ha especificado contraseña. Esto es probablemente una *mala* idea.\n"
-#~ "Si más tarde quiere añadir una, puede hacerlo usando este programa con\n"
-#~ "la opción \"--edit-key\".\n"
+#~ "No ha especificado contraseña. Esto es probablemente una *mala* idea.\n"
+#~ "Si más tarde quiere añadir una, puede hacerlo usando este programa con\n"
+#~ "la opción \"--edit-key\".\n"
 #~ "\n"
 
 #~ msgid "storing key onto card failed: %s\n"
@@ -9215,11 +9304,6 @@ msgstr ""
 #~ msgid "1 good signature\n"
 #~ msgstr "1 firma incorrecta\n"
 
-#, fuzzy
-#~| msgid "renaming `%s' to `%s' failed: %s\n"
-#~ msgid "renaming '%s' to '%s' failed: %s\n"
-#~ msgstr "renombrando `%s' en `%s' fallo: %s\n"
-
 #~ msgid "%lu keys cached (%lu signatures)\n"
 #~ msgstr "%lu claves memorizadas (%lu firmas)\n"
 
@@ -9230,7 +9314,7 @@ msgstr ""
 #~ msgstr "enviando clave %s a %s servidor %s\n"
 
 #~ msgid "public key %s is %lu seconds newer than the signature\n"
-#~ msgstr "la clave pública %s es %lu segundos más nueva que la firma\n"
+#~ msgstr "la clave pública %s es %lu segundos más nueva que la firma\n"
 
 #~ msgid ""
 #~ "key %s was created %lu seconds in the future (time warp or clock "
@@ -9245,17 +9329,17 @@ msgstr ""
 #~ "modelo de confianza %s\n"
 
 #~ msgid "cleared passphrase cached with ID: %s\n"
-#~ msgstr "borrada frase de paso en caché con ID: %s\n"
+#~ msgstr "borrada frase de paso en caché con ID: %s\n"
 
-# ¿y llavero?
+# Â¿y llavero?
 # Hombre... las claves son parecidas a las llaves pero no lo mismo
 # toda la literatura en castellano usa "anillos de claves" si un
-# programa nos habla del llavero ¿no puedo abrir el llavero? nos
+# programa nos habla del llavero Â¿no puedo abrir el llavero? nos
 # miraremos en el bolsillo bastante desconcertados. No creo que se
 # trate de establecer una nomenclatura propia.
-# A lo mejor toda esa literatura está producida por gente que no sabía
-# cómo se dice llavero en inglés...
-# Si los ingleses dicen llavero en su idioma ¿por qué no vamos a poder
+# A lo mejor toda esa literatura está producida por gente que no sabía
+# cómo se dice llavero en inglés...
+# Si los ingleses dicen llavero en su idioma ¿por qué no vamos a poder
 # nosotros decir lo mismo en el nuestro?
 #, fuzzy
 #~| msgid "can't open the keyring"
@@ -9273,12 +9357,12 @@ msgstr ""
 #~ msgstr "error leyendo bloque de clave secreta \"%s\": %s\n"
 
 #~ msgid "Please select at most one subkey.\n"
-#~ msgstr "Por favor, seleccione como máximo una clave secundaria.\n"
+#~ msgstr "Por favor, seleccione como máximo una clave secundaria.\n"
 
 #, fuzzy
 #~| msgid "no running dirmngr - starting `%s'\n"
 #~ msgid "no running dirmngr - starting one\n"
-#~ msgstr "no hay dirmngr en ejecución - iniciando `%s'\n"
+#~ msgstr "no hay dirmngr en ejecución - iniciando `%s'\n"
 
 #, fuzzy
 #~| msgid "malformed DIRMNGR_INFO environment variable\n"
@@ -9286,31 +9370,31 @@ msgstr ""
 #~ msgstr "variable de entorno DIRMNGR_INFO malformada\n"
 
 #~ msgid "dirmngr protocol version %d is not supported\n"
-#~ msgstr "la versión del protocolo dirmngr %d no puede usarse\n"
+#~ msgstr "la versión del protocolo dirmngr %d no puede usarse\n"
 
 #~ msgid "can't connect to the dirmngr - trying fall back\n"
 #~ msgstr "no puedo conectar con el dirmngr - intentando retirada\n"
 
 #~ msgid "export keys in an S-expression based format"
-#~ msgstr "exportar claves en formato basado en una expresión S"
+#~ msgstr "exportar claves en formato basado en una expresión S"
 
 #~ msgid "toggle between the secret and public key listings"
-#~ msgstr "cambiar entre lista de claves secretas y públicas"
+#~ msgstr "cambiar entre lista de claves secretas y públicas"
 
 #~ msgid "Please use the command \"toggle\" first.\n"
 #~ msgstr "Por favor use la orden \"cambia\" primero.\n"
 
-# ¿Por qué no frase de paso?
-# Porque todo el mundo sabe lo que es una contraseña
+# ¿Por qué no frase de paso?
+# Porque todo el mundo sabe lo que es una contraseña
 # y una "frase de paso" no. Soy consciente de que se
 # traduce igual password y passphrase pero el contexto
-# permite saber de lo que se está hablando.
-# No sé, no sé.
-# ¿Por qué los ingleses entonces sí que saben lo que es un "passphrase"?
-# ¿Es que son más listos? :-)
+# permite saber de lo que se está hablando.
+# No sé, no sé.
+# ¿Por qué los ingleses entonces sí que saben lo que es un "passphrase"?
+# ¿Es que son más listos? :-)
 #
 #~ msgid "Passphrase"
-#~ msgstr "Frase contraseña"
+#~ msgstr "Frase contraseña"
 
 #~ msgid "use temporary files to pass data to keyserver helpers"
 #~ msgstr ""
@@ -9331,13 +9415,13 @@ msgstr ""
 #~ msgstr "nombre de socket demasiado largo\n"
 
 #~ msgid "gpg-agent is not available in this session\n"
-#~ msgstr "el agente gpg no esta disponible en esta sesión\n"
+#~ msgstr "el agente gpg no esta disponible en esta sesión\n"
 
 #~ msgid "use a standard location for the socket"
-#~ msgstr "usar una localización estándar para el socket"
+#~ msgstr "usar una localización estándar para el socket"
 
 #~ msgid "|FILE|write environment settings also to FILE"
-#~ msgstr "|FICHERO|escribir variables de entorno también en FICHERO"
+#~ msgstr "|FICHERO|escribir variables de entorno también en FICHERO"
 
 #~ msgid "Usage: gpg-agent [options] (-h for help)"
 #~ msgstr "Uso: gpg-agent [opciones] (-h para ayuda)"
@@ -9346,10 +9430,10 @@ msgstr ""
 #~ msgstr "variable de entorno GPG_AGENT_INFO malformada\n"
 
 #~ msgid "gpg-agent protocol version %d is not supported\n"
-#~ msgstr "el programa no permite usar el protocolo agente gpg versión %d\n"
+#~ msgstr "el programa no permite usar el protocolo agente gpg versión %d\n"
 
 #~ msgid "can't fdopen pipe for reading: %s\n"
-#~ msgstr "no puede abrirse tubería para leer: %s\n"
+#~ msgstr "no puede abrirse tubería para leer: %s\n"
 
 #~ msgid "error creating socket: %s\n"
 #~ msgstr "error creando socket: %s\n"
@@ -9361,10 +9445,10 @@ msgstr ""
 #~ msgstr "no puedo conectar con el agente - intentando retirada\n"
 
 #~ msgid "unknown key protection algorithm\n"
-#~ msgstr "algoritmo de protección de clave desconocido\n"
+#~ msgstr "algoritmo de protección de clave desconocido\n"
 
 #~ msgid "secret parts of key are not available\n"
-#~ msgstr "las partes secretas de la clave no están disponibles\n"
+#~ msgstr "las partes secretas de la clave no están disponibles\n"
 
 #~ msgid "secret key already stored on a card\n"
 #~ msgstr "clave secreta ya almacenada en una tarjeta\n"
@@ -9384,7 +9468,7 @@ msgstr ""
 #~ "cifra.\n"
 
 #~ msgid "remove the passphrase from exported subkeys"
-#~ msgstr "borrar frase contraseña de las subclaves exportadas"
+#~ msgstr "borrar frase contraseña de las subclaves exportadas"
 
 #~ msgid "key %s: not protected - skipped\n"
 #~ msgstr "clave %s: no protegida - omitida\n"
@@ -9397,36 +9481,36 @@ msgstr ""
 
 #~ msgid "WARNING: secret key %s does not have a simple SK checksum\n"
 #~ msgstr ""
-#~ "AVISO: la clave secreta %s no tiene suma de comprobación simple SK\n"
+#~ "AVISO: la clave secreta %s no tiene suma de comprobación simple SK\n"
 
 #~ msgid "too many entries in pk cache - disabled\n"
 #~ msgstr "demasiados registros en la cache pk - anulada\n"
 
 #~ msgid "no secret subkey for public subkey %s - ignoring\n"
-#~ msgstr "no hay subclave secreta para la subclave pública %s - ignorada\n"
+#~ msgstr "no hay subclave secreta para la subclave pública %s - ignorada\n"
 
 #~ msgid "key %s: secret key without public key - skipped\n"
-#~ msgstr "clave %s: clave secreta sin clave pública - omitida\n"
+#~ msgstr "clave %s: clave secreta sin clave pública - omitida\n"
 
 #~ msgid "usage: gpg [options] "
 #~ msgstr "uso: gpg [opciones] "
 
 #~ msgid ""
 #~ "you can only make detached or clear signatures while in --pgp2 mode\n"
-#~ msgstr "sólo puede hacer firmas separadas o en claro en modo --pgp2\n"
+#~ msgstr "sólo puede hacer firmas separadas o en claro en modo --pgp2\n"
 
 #~ msgid "you can't sign and encrypt at the same time while in --pgp2 mode\n"
 #~ msgstr "no puede firmar y cifrar a la vez en modo --pgp2\n"
 
 #~ msgid ""
 #~ "you must use files (and not a pipe) when working with --pgp2 enabled.\n"
-#~ msgstr "debe usar ficheros (no tuberías) si trabaja con --pgp2 activo.\n"
+#~ msgstr "debe usar ficheros (no tuberías) si trabaja con --pgp2 activo.\n"
 
 #~ msgid "encrypting a message in --pgp2 mode requires the IDEA cipher\n"
 #~ msgstr "cifrar un mensaje en modo --pgp2 requiere el algoritmo IDEA\n"
 
 #~ msgid "create a public key when importing a secret key"
-#~ msgstr "crear una clave pública al importar una clave secreta"
+#~ msgstr "crear una clave pública al importar una clave secreta"
 
 #~ msgid "key %s: already in secret keyring\n"
 #~ msgstr "clave %s: ya estaba en el anillo secreto\n"
@@ -9438,10 +9522,10 @@ msgstr ""
 #~ msgstr "NOTA: un S/N de la clave no coincide con la de la tarjeta\n"
 
 #~ msgid "NOTE: primary key is online and stored on card\n"
-#~ msgstr "NOTA: clave primaria en línea y almacenada en la tarjeta\n"
+#~ msgstr "NOTA: clave primaria en línea y almacenada en la tarjeta\n"
 
 #~ msgid "NOTE: secondary key is online and stored on card\n"
-#~ msgstr "NOTA: clave secundaria en línea y almacenada en la tarjeta\n"
+#~ msgstr "NOTA: clave secundaria en línea y almacenada en la tarjeta\n"
 
 #~ msgid ""
 #~ "You may not make an OpenPGP signature on a PGP 2.x key while in --pgp2 "
@@ -9451,13 +9535,13 @@ msgstr ""
 #~ "pgp2.\n"
 
 #~ msgid "This would make the key unusable in PGP 2.x.\n"
-#~ msgstr "Esto inutilizaría la clave en PGP 2.x.\n"
+#~ msgstr "Esto inutilizaría la clave en PGP 2.x.\n"
 
 #~ msgid "This key is not protected.\n"
-#~ msgstr "Esta clave no está protegida.\n"
+#~ msgstr "Esta clave no está protegida.\n"
 
 #~ msgid "Key is protected.\n"
-#~ msgstr "La clave está protegida.\n"
+#~ msgstr "La clave está protegida.\n"
 
 #~ msgid "Can't edit this key: %s\n"
 #~ msgstr "No puede editarse esta clave: %s\n"
@@ -9466,19 +9550,19 @@ msgstr ""
 #~ "Enter the new passphrase for this secret key.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Introduzca la nueva frase contraseña para esta clave secreta.\n"
+#~ "Introduzca la nueva frase contraseña para esta clave secreta.\n"
 #~ "\n"
 
 #~ msgid ""
 #~ "You don't want a passphrase - this is probably a *bad* idea!\n"
 #~ "\n"
 #~ msgstr ""
-#~ "No ha especificado frase contraseña. Esto es probablemente una *mala* "
+#~ "No ha especificado frase contraseña. Esto es probablemente una *mala* "
 #~ "idea.\n"
 #~ "\n"
 
 #~ msgid "Do you really want to do this? (y/N) "
-#~ msgstr "¿Realmente quiere hacer esto? (s/N) "
+#~ msgstr "¿Realmente quiere hacer esto? (s/N) "
 
 #~ msgid "Please remove selections from the secret keys.\n"
 #~ msgstr "Por favor, quite las selecciones de las claves secretas.\n"
@@ -9496,7 +9580,7 @@ msgstr ""
 #~ msgstr "anillo privado de claves no escribible encontrado: %s\n"
 
 #~ msgid "WARNING: 2 files with confidential information exists.\n"
-#~ msgstr "ATENCIÓN: existen 2 ficheros con información confidencial.\n"
+#~ msgstr "ATENCIÓN: existen 2 ficheros con información confidencial.\n"
 
 #~ msgid "%s is the unchanged one\n"
 #~ msgstr "%s es el que no se ha modificado\n"
@@ -9521,26 +9605,26 @@ msgstr ""
 
 #~ msgid "WARNING: keyserver handler from a different version of GnuPG (%s)\n"
 #~ msgstr ""
-#~ "AVISO: el manejo de claves procede de una versión diferente de GnuPG "
+#~ "AVISO: el manejo de claves procede de una versión diferente de GnuPG "
 #~ "(%s)\n"
 
 #~ msgid "keyserver did not send VERSION\n"
-#~ msgstr "el servidor de claves no envió VERSION\n"
+#~ msgstr "el servidor de claves no envió VERSION\n"
 
 #~ msgid "external keyserver calls are not supported in this build\n"
 #~ msgstr ""
 #~ "no se pueden realizar llamadas a un servidor externo de claves tal y\n"
-#~ "como está compilado el programa\n"
+#~ "como está compilado el programa\n"
 
 #~ msgid "no handler for keyserver scheme `%s'\n"
 #~ msgstr "no hay un manejador para ese esquema de servidor de claves `%s'\n"
 
 #~ msgid "action `%s' not supported with keyserver scheme `%s'\n"
 #~ msgstr ""
-#~ "la acción `%s' no es posible con este esquema de servidor de claves `%s'\n"
+#~ "la acción `%s' no es posible con este esquema de servidor de claves `%s'\n"
 
 #~ msgid "%s does not support handler version %d\n"
-#~ msgstr "%s no permite usar la versión %d del manejador\n"
+#~ msgstr "%s no permite usar la versión %d del manejador\n"
 
 #~ msgid "keyserver timed out\n"
 #~ msgstr "agotado el tiempo de espera para el servidor de claves\n"
@@ -9549,46 +9633,46 @@ msgstr ""
 #~ msgstr "error interno del servidor de claves\n"
 
 #~ msgid "keyserver communications error: %s\n"
-#~ msgstr "error de comunicación con el servidor de claves: %s\n"
+#~ msgstr "error de comunicación con el servidor de claves: %s\n"
 
 #~ msgid "WARNING: unable to parse URI %s\n"
 #~ msgstr "AVISO: imposible interpretar URI %s\n"
 
 #~ msgid "invalid root packet detected in proc_tree()\n"
-#~ msgstr "paquete raíz inválido detectado en proc_tree()\n"
+#~ msgstr "paquete raíz inválido detectado en proc_tree()\n"
 
 #~ msgid "the IDEA cipher plugin is not present\n"
-#~ msgstr "el plugin para el cifrado IDEA no está presente\n"
+#~ msgstr "el plugin para el cifrado IDEA no está presente\n"
 
 #~ msgid "no corresponding public key: %s\n"
-#~ msgstr "no existe la clave pública correspondiente: %s\n"
+#~ msgstr "no existe la clave pública correspondiente: %s\n"
 
 #~ msgid "public key does not match secret key!\n"
-#~ msgstr "¡la clave pública y la privada no se corresponden!\n"
+#~ msgstr "¡la clave pública y la privada no se corresponden!\n"
 
 #~ msgid "unknown protection algorithm\n"
-#~ msgstr "algoritmo de protección desconocido\n"
+#~ msgstr "algoritmo de protección desconocido\n"
 
 #~ msgid "NOTE: This key is not protected!\n"
-#~ msgstr "NOTA: ¡Esta clave no está protegida!\n"
+#~ msgstr "NOTA: ¡Esta clave no está protegida!\n"
 
 #~ msgid "protection digest %d is not supported\n"
 #~ msgstr "el resumen protector %d no puede ser utilizado\n"
 
 #~ msgid "Invalid passphrase; please try again"
-#~ msgstr "Frase contraseña incorrecta; inténtelo de nuevo."
+#~ msgstr "Frase contraseña incorrecta; inténtelo de nuevo."
 
 #~ msgid "%s ...\n"
 #~ msgstr "%s ... \n"
 
 #~ msgid "WARNING: Weak key detected - please change passphrase again.\n"
 #~ msgstr ""
-#~ "ATENCIÓN: detectada clave débil - por favor cambie la frase contraseña.\n"
+#~ "ATENCIÓN: detectada clave débil - por favor cambie la frase contraseña.\n"
 
 #~ msgid ""
 #~ "generating the deprecated 16-bit checksum for secret key protection\n"
 #~ msgstr ""
-#~ "generando la suma de comprobación de 16 bits (obsoleta) para \n"
+#~ "generando la suma de comprobación de 16 bits (obsoleta) para \n"
 #~ "proteger la clave secreta.\n"
 
 #~ msgid "DSA key %s uses an unsafe (%u bit) hash\n"
@@ -9597,13 +9681,13 @@ msgstr ""
 #~ msgid ""
 #~ "you can only detach-sign with PGP 2.x style keys while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "sólo puede hacer firmas separadas con claves tipo PGP 2.x estando enmodo "
+#~ "sólo puede hacer firmas separadas con claves tipo PGP 2.x estando enmodo "
 #~ "--pgp2\n"
 
 #~ msgid ""
 #~ "you can only clearsign with PGP 2.x style keys while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "sólo puede firmar en claro con claves PGP 2.x estando en modo --pgp2\n"
+#~ "sólo puede firmar en claro con claves PGP 2.x estando en modo --pgp2\n"
 
 #~ msgid " - probably dead - removing lock"
 #~ msgstr " - probablemente muerto - suprimiendo el bloqueo"
@@ -9612,10 +9696,10 @@ msgstr ""
 #~ msgstr "Uso: scdaemon [opciones] [ficheros] (-h para ayuda)"
 
 #~ msgid "Parameters to be used for the certificate request:\n"
-#~ msgstr "Parámetros que se usarán para pedir certificados:\n"
+#~ msgstr "Parámetros que se usarán para pedir certificados:\n"
 
 #~ msgid "use system's dirmngr if available"
-#~ msgstr "usar el dirmngr del sistema si está disponible"
+#~ msgstr "usar el dirmngr del sistema si está disponible"
 
 #~ msgid "Usage: gpgsm [options] [files] (-h for help)"
 #~ msgstr "Uso: gpgsm [opciones] [ficheros] (-h para ayuda)"
@@ -9634,7 +9718,7 @@ msgstr ""
 
 #~ msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
 #~ msgstr ""
-#~ "La base de datos de confianza está dañada. Por favor, ejecute\n"
+#~ "La base de datos de confianza está dañada. Por favor, ejecute\n"
 #~ "\"gpg --fix-trust-db\".\n"
 
 #~ msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
@@ -9644,13 +9728,13 @@ msgstr ""
 #~ msgstr "Por favor, informe de \"bugs\" a "
 
 #~ msgid "DSA keypair will have %u bits.\n"
-#~ msgstr "El par de claves DSA tendrá %u bits.\n"
+#~ msgstr "El par de claves DSA tendrá %u bits.\n"
 
 #~ msgid "this command has not yet been implemented\n"
-#~ msgstr "esta orden no está aún implementada\n"
+#~ msgstr "esta orden no está aún implementada\n"
 
 #~ msgid "Repeat passphrase\n"
-#~ msgstr "Repita frase contraseña\n"
+#~ msgstr "Repita frase contraseña\n"
 
 #~ msgid "||Please enter your PIN at the reader's keypad%%0A[sigs done: %lu]"
 #~ msgstr ""
@@ -9666,7 +9750,7 @@ msgstr ""
 #~ msgstr "Bibliotecas utilizadas:"
 
 #~ msgid "|algo [files]|print message digests"
-#~ msgstr "|algo [ficheros]|imprime resúmenes de mensaje"
+#~ msgstr "|algo [ficheros]|imprime resúmenes de mensaje"
 
 #~ msgid "generate PGP 2.x compatible messages"
 #~ msgstr "generar mensajes compatibles con PGP 2.x"
@@ -9687,19 +9771,19 @@ msgstr ""
 #~ msgstr "siempre usa un MDC para cifrar"
 
 #~ msgid "add this secret keyring to the list"
-#~ msgstr "añade este anillo secreto a la lista"
+#~ msgstr "añade este anillo secreto a la lista"
 
 #~ msgid "|NAME|set terminal charset to NAME"
 #~ msgstr "|NOMBRE|usa el juego de caracteres NOMBRE"
 
 #~ msgid "|FILE|load extension module FILE"
-#~ msgstr "|FICHERO|carga módulo de extensiones FICHERO"
+#~ msgstr "|FICHERO|carga módulo de extensiones FICHERO"
 
 #~ msgid "|N|use compress algorithm N"
-#~ msgstr "|N|usa el algoritmo de compresión N"
+#~ msgstr "|N|usa el algoritmo de compresión N"
 
 #~ msgid "remove key from the public keyring"
-#~ msgstr "elimina clave del anillo público"
+#~ msgstr "elimina clave del anillo público"
 
 #~ msgid ""
 #~ "It's up to you to assign a value here; this value will never be exported\n"
@@ -9707,11 +9791,11 @@ msgstr ""
 #~ "nothing\n"
 #~ "to do with the (implicitly created) web-of-certificates."
 #~ msgstr ""
-#~ "Está en su mano asignar un valor aquí. Dicho valor nunca será exportado "
+#~ "Está en su mano asignar un valor aquí. Dicho valor nunca será exportado "
 #~ "a\n"
 #~ "terceros. Es necesario para implementar la red de confianza, no tiene "
 #~ "nada\n"
-#~ "que ver con la red de certificados (implícitamente creada)."
+#~ "que ver con la red de certificados (implícitamente creada)."
 
 #~ msgid ""
 #~ "To build the Web-of-Trust, GnuPG needs to know which keys are\n"
@@ -9719,15 +9803,15 @@ msgstr ""
 #~ "access to the secret key.  Answer \"yes\" to set this key to\n"
 #~ "ultimately trusted\n"
 #~ msgstr ""
-#~ "Para construir la Red-de-Confianza, GnuPG necesita saber qué claves\n"
+#~ "Para construir la Red-de-Confianza, GnuPG necesita saber qué claves\n"
 #~ "tienen confianza absoluta - normalmente son las claves para las que "
 #~ "usted\n"
-#~ "puede acceder a la clave secreta. Conteste \"sí\" para hacer que esta\n"
+#~ "puede acceder a la clave secreta. Conteste \"sí\" para hacer que esta\n"
 #~ "clave se considere como de total confianza\n"
 
 #~ msgid "If you want to use this untrusted key anyway, answer \"yes\"."
 #~ msgstr ""
-#~ "Si quiere usar esta clave no fiable de todos modos, conteste \"sí\"."
+#~ "Si quiere usar esta clave no fiable de todos modos, conteste \"sí\"."
 
 #~ msgid ""
 #~ "Enter the user ID of the addressee to whom you want to send the message."
@@ -9747,10 +9831,10 @@ msgstr ""
 #~ msgstr ""
 #~ "Seleccione el algoritmo que usar.\n"
 #~ "\n"
-#~ "DSA (alias DSS) es el Algoritmo de Firma Digital y sólo se usa para "
+#~ "DSA (alias DSS) es el Algoritmo de Firma Digital y sólo se usa para "
 #~ "firmas.\n"
 #~ "\n"
-#~ "Elgamal es un algoritmo sólo para cifrar.\n"
+#~ "Elgamal es un algoritmo sólo para cifrar.\n"
 #~ "\n"
 #~ "RSA sirve tanto para firmar como para cifrar.\n"
 #~ "\n"
@@ -9763,14 +9847,14 @@ msgstr ""
 #~ "Please consult your security expert first."
 #~ msgstr ""
 #~ "En general no es una buena idea usar la misma clave para firmar y\n"
-#~ "cifrar. Este algoritmo debéria usarse solo en ciertos contextos.\n"
+#~ "cifrar. Este algoritmo debéria usarse solo en ciertos contextos.\n"
 #~ "Por favor consulte primero a un experto en seguridad."
 
 #~ msgid "Enter the size of the key"
 #~ msgstr "Introduzca la longitud de la clave"
 
 #~ msgid "Answer \"yes\" or \"no\""
-#~ msgstr "Responda \"sí\" o \"no\""
+#~ msgstr "Responda \"sí\" o \"no\""
 
 #~ msgid ""
 #~ "Enter the required value as shown in the prompt.\n"
@@ -9779,17 +9863,17 @@ msgstr ""
 #~ "the given value as an interval."
 #~ msgstr ""
 #~ "Introduzca el valor requerido conforme se muestra.\n"
-#~ "Es posible introducir una fecha ISO (AAAA-MM-DD), pero no se obtendrá "
+#~ "Es posible introducir una fecha ISO (AAAA-MM-DD), pero no se obtendrá "
 #~ "una\n"
-#~ "buena respuesta a los errores; el sistema intentará interpretar el valor\n"
+#~ "buena respuesta a los errores; el sistema intentará interpretar el valor\n"
 #~ "introducido como un intervalo."
 
 #~ msgid "Enter the name of the key holder"
-#~ msgstr "Introduzca el nombre del dueño de la clave"
+#~ msgstr "Introduzca el nombre del dueño de la clave"
 
 #~ msgid "please enter an optional but highly suggested email address"
 #~ msgstr ""
-#~ "Introduzca una dirección de correo electrónico (opcional pero muy\n"
+#~ "Introduzca una dirección de correo electrónico (opcional pero muy\n"
 #~ "recomendable)"
 
 #~ msgid "Please enter an optional comment"
@@ -9804,13 +9888,13 @@ msgstr ""
 #~ msgstr ""
 #~ "N  para cambiar el nombre.\n"
 #~ "C  para cambiar el comentario.\n"
-#~ "E  para cambiar la dirección.\n"
-#~ "O  para continuar con la generación de clave.\n"
-#~ "S  para interrumpir la generación de clave."
+#~ "E  para cambiar la dirección.\n"
+#~ "O  para continuar con la generación de clave.\n"
+#~ "S  para interrumpir la generación de clave."
 
 #~ msgid ""
 #~ "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
-#~ msgstr "Responda \"sí\" (o sólo \"s\") para generar la subclave."
+#~ msgstr "Responda \"sí\" (o sólo \"s\") para generar la subclave."
 
 #~ msgid ""
 #~ "When you sign a user ID on a key, you should first verify that the key\n"
@@ -9855,36 +9939,36 @@ msgstr ""
 #~ "\n"
 #~ "If you don't know what the right answer is, answer \"0\"."
 #~ msgstr ""
-#~ "Cuando firme un ID de usuario en una clave, debería verificar que la "
+#~ "Cuando firme un ID de usuario en una clave, debería verificar que la "
 #~ "clave\n"
-#~ "pertenece a la persona que se nombra en el ID de usuario. Es útil para\n"
-#~ "otros saber cómo de cuidadosamente lo ha verificado.\n"
+#~ "pertenece a la persona que se nombra en el ID de usuario. Es útil para\n"
+#~ "otros saber cómo de cuidadosamente lo ha verificado.\n"
 #~ "\n"
-#~ "\"0\" significa que no hace ninguna declaración concreta sobre como ha\n"
+#~ "\"0\" significa que no hace ninguna declaración concreta sobre como ha\n"
 #~ "      comprobado la validez de la clave.\n"
 #~ "\n"
 #~ "\"1\" significa que cree que la clave pertenece a la persona que declara\n"
-#~ "      poseerla pero no pudo o no verificó la clave en absoluto. Esto es "
-#~ "útil\n"
-#~ "      para una verificación en persona cuando firmas la clave de un "
+#~ "      poseerla pero no pudo o no verificó la clave en absoluto. Esto es "
+#~ "útil\n"
+#~ "      para una verificación en persona cuando firmas la clave de un "
 #~ "usuario\n"
-#~ "      pseudoanónimo.\n"
+#~ "      pseudoanónimo.\n"
 #~ "\n"
-#~ "\"2\" significa que hizo una comprobación informal de la clave. Por "
+#~ "\"2\" significa que hizo una comprobación informal de la clave. Por "
 #~ "ejemplo\n"
-#~ "      podría querer decir que comprobó la huella dactilar de la clave y\n"
-#~ "      comprobó el ID de usuario en la clave con un ID fotográfico.\n"
+#~ "      podría querer decir que comprobó la huella dactilar de la clave y\n"
+#~ "      comprobó el ID de usuario en la clave con un ID fotográfico.\n"
 #~ "\n"
-#~ "\"3\" significa que hizo una comprobación exhaustiva de la clave. Por\n"
+#~ "\"3\" significa que hizo una comprobación exhaustiva de la clave. Por\n"
 #~ "      ejemplo verificando la huella dactilar de la clave con el "
 #~ "propietario\n"
-#~ "      de la clave, y que comprobó, mediante un documento difícil de "
+#~ "      de la clave, y que comprobó, mediante un documento difícil de "
 #~ "falsificar\n"
-#~ "      con ID fotográfico (como un pasaporte) que el nombre del poseedor "
+#~ "      con ID fotográfico (como un pasaporte) que el nombre del poseedor "
 #~ "de la\n"
 #~ "      clave coincide con el ID de usuario en la clave y finalmente que "
-#~ "verificó\n"
-#~ "      (intercambiando email) que la dirección de email de la clave "
+#~ "verificó\n"
+#~ "      (intercambiando email) que la dirección de email de la clave "
 #~ "pertenece\n"
 #~ "      al poseedor de la clave.\n"
 #~ "\n"
@@ -9893,30 +9977,30 @@ msgstr ""
 #~ "\"\n"
 #~ "para usted cuando firma las claves de otros.\n"
 #~ "\n"
-#~ "Si no sabe qué contestar, conteste \"0\"."
+#~ "Si no sabe qué contestar, conteste \"0\"."
 
 #~ msgid "Answer \"yes\" if you want to sign ALL the user IDs"
-#~ msgstr "Responda \"sí\" si quiere firmar TODOS los IDs de usuario"
+#~ msgstr "Responda \"sí\" si quiere firmar TODOS los IDs de usuario"
 
 #~ msgid ""
 #~ "Answer \"yes\" if you really want to delete this user ID.\n"
 #~ "All certificates are then also lost!"
 #~ msgstr ""
-#~ "Responda \"sí\" si realmente quiere borrar este ID de usuario.\n"
-#~ "¡También se perderán todos los certificados!"
+#~ "Responda \"sí\" si realmente quiere borrar este ID de usuario.\n"
+#~ "¡También se perderán todos los certificados!"
 
 #~ msgid "Answer \"yes\" if it is okay to delete the subkey"
-#~ msgstr "Responda \"sí\" si quiere borrar esta subclave"
+#~ msgstr "Responda \"sí\" si quiere borrar esta subclave"
 
 #~ msgid ""
 #~ "This is a valid signature on the key; you normally don't want\n"
 #~ "to delete this signature because it may be important to establish a\n"
 #~ "trust connection to the key or another key certified by this key."
 #~ msgstr ""
-#~ "Esta es una firma válida de esta clave. Normalmente no será deseable\n"
+#~ "Esta es una firma válida de esta clave. Normalmente no será deseable\n"
 #~ "borrar esta firma ya que puede ser importante para establecer una "
-#~ "conexión\n"
-#~ "de confianza con la clave o con otra clave certificada por ésta."
+#~ "conexión\n"
+#~ "de confianza con la clave o con otra clave certificada por ésta."
 
 #~ msgid ""
 #~ "This signature can't be checked because you don't have the\n"
@@ -9925,14 +10009,14 @@ msgstr ""
 #~ "a trust connection through another already certified key."
 #~ msgstr ""
 #~ "Esta firma no puede ser comprobada porque no tiene Vd. la clave\n"
-#~ "correspondiente. Debería posponer su borrado hasta conocer qué clave\n"
-#~ "se usó, ya que dicha clave podría establecer una conexión de confianza\n"
-#~ "a través de otra clave certificada."
+#~ "correspondiente. Debería posponer su borrado hasta conocer qué clave\n"
+#~ "se usó, ya que dicha clave podría establecer una conexión de confianza\n"
+#~ "a través de otra clave certificada."
 
 #~ msgid ""
 #~ "The signature is not valid.  It does make sense to remove it from\n"
 #~ "your keyring."
-#~ msgstr "Esta firma no es válida. Tiene sentido borrarla de su anillo."
+#~ msgstr "Esta firma no es válida. Tiene sentido borrarla de su anillo."
 
 #~ msgid ""
 #~ "This is a signature which binds the user ID to the key. It is\n"
@@ -9942,31 +10026,31 @@ msgstr ""
 #~ "a second one is available."
 #~ msgstr ""
 #~ "Esta es una firma que une el ID de usuario a la clave. No suele ser una\n"
-#~ "buena idea borrar dichas firmas. De hecho, GnuPG podría no ser capaz de\n"
-#~ "volver a usar esta clave. Así que bórrela tan sólo si esta autofirma no\n"
-#~ "es válida por alguna razón y hay otra disponible."
+#~ "buena idea borrar dichas firmas. De hecho, GnuPG podría no ser capaz de\n"
+#~ "volver a usar esta clave. Así que bórrela tan sólo si esta autofirma no\n"
+#~ "es válida por alguna razón y hay otra disponible."
 
 #~ msgid ""
 #~ "Change the preferences of all user IDs (or just of the selected ones)\n"
 #~ "to the current list of preferences.  The timestamp of all affected\n"
 #~ "self-signatures will be advanced by one second.\n"
 #~ msgstr ""
-#~ "Cambiar las preferencias de todos los IDs de usuario (o sólo los \n"
+#~ "Cambiar las preferencias de todos los IDs de usuario (o sólo los \n"
 #~ "seleccionados) a la lista actual de preferencias. El sello de tiempo\n"
-#~ "de todas las autofirmas afectadas se avanzará en un segundo.\n"
+#~ "de todas las autofirmas afectadas se avanzará en un segundo.\n"
 
-#~ msgid "Please enter the passhrase; this is a secret sentence \n"
-#~ msgstr "Por favor introduzca la contraseña: una frase secreta \n"
+#~ msgid "Please enter the passphrase; this is a secret sentence \n"
+#~ msgstr "Por favor introduzca la contraseña: una frase secreta \n"
 
 #~ msgid ""
 #~ "Please repeat the last passphrase, so you are sure what you typed in."
-#~ msgstr "Repita la última frase contraseña para asegurarse de lo que tecleó."
+#~ msgstr "Repita la última frase contraseña para asegurarse de lo que tecleó."
 
 #~ msgid "Give the name of the file to which the signature applies"
 #~ msgstr "Introduzca el nombre del fichero al que corresponde la firma"
 
 #~ msgid "Answer \"yes\" if it is okay to overwrite the file"
-#~ msgstr "Responda \"sí\" para sobreescribir el fichero"
+#~ msgstr "Responda \"sí\" para sobreescribir el fichero"
 
 # Sugerencia: ENTER -> INTRO.
 # Aceptada.
@@ -9974,9 +10058,9 @@ msgstr ""
 #~ "Please enter a new filename. If you just hit RETURN the default\n"
 #~ "file (which is shown in brackets) will be used."
 #~ msgstr ""
-#~ "Introduzca un nuevo nombre de fichero. Si pulsa INTRO se usará el "
+#~ "Introduzca un nuevo nombre de fichero. Si pulsa INTRO se usará el "
 #~ "fichero\n"
-#~ "por omisión (mostrado entre corchetes)."
+#~ "por omisión (mostrado entre corchetes)."
 
 #~ msgid ""
 #~ "You should specify a reason for the certification.  Depending on the\n"
@@ -9992,42 +10076,42 @@ msgstr ""
 #~ "      Use this to state that the user ID should not longer be used;\n"
 #~ "      this is normally used to mark an email address invalid.\n"
 #~ msgstr ""
-#~ "Debería especificar un motivo para la certificación. Dependiendo del\n"
-#~ "contexto puede elegir una opción de esta lista:\n"
+#~ "Debería especificar un motivo para la certificación. Dependiendo del\n"
+#~ "contexto puede elegir una opción de esta lista:\n"
 #~ "  \"La clave ha sido comprometida\"\n"
 #~ "      Use esto si tiene razones para pensar que personas no autorizadas\n"
 #~ "      tuvieron acceso a su clave secreta.\n"
 #~ "  \"La clave ha sido sustituida\"\n"
-#~ "      Use esto si ha reemplazado la clave por otra más nueva.\n"
-#~ "  \"La clave ya no está en uso\"\n"
+#~ "      Use esto si ha reemplazado la clave por otra más nueva.\n"
+#~ "  \"La clave ya no está en uso\"\n"
 #~ "      Use esto si ha dejado de usar esta clave.\n"
-#~ "  \"La identificación de usuario ya no es válida\"\n"
-#~ "      Use esto para señalar que la identificación de usuario no debería\n"
+#~ "  \"La identificación de usuario ya no es válida\"\n"
+#~ "      Use esto para señalar que la identificación de usuario no debería\n"
 #~ "      seguir siendo usada; esto se utiliza normalmente para marcar una\n"
-#~ "      dirección de correo-e como inválida.\n"
+#~ "      dirección de correo-e como inválida.\n"
 
 #~ msgid ""
 #~ "If you like, you can enter a text describing why you issue this\n"
 #~ "revocation certificate.  Please keep this text concise.\n"
 #~ "An empty line ends the text.\n"
 #~ msgstr ""
-#~ "Si lo desea puede introducir un texto explicando por qué emite\n"
-#~ "este certificado de revocación. Por favor, que el texto sea breve.\n"
-#~ "Una línea vacía pone fin al texto.\n"
+#~ "Si lo desea puede introducir un texto explicando por qué emite\n"
+#~ "este certificado de revocación. Por favor, que el texto sea breve.\n"
+#~ "Una línea vacía pone fin al texto.\n"
 
 #~ msgid "can't put notation data into v3 (PGP 2.x style) signatures\n"
-#~ msgstr "no uede poner datos de notación en claves v3 (estilo PGP 2.x)\n"
+#~ msgstr "no uede poner datos de notación en claves v3 (estilo PGP 2.x)\n"
 
 #~ msgid "can't put notation data into v3 (PGP 2.x style) key signatures\n"
 #~ msgstr ""
 #~ "no se puede elegir una clave tipo PGP 2.x como revocador designado\n"
 
 #~ msgid "can't put a policy URL into v3 (PGP 2.x style) signatures\n"
-#~ msgstr "no puede poner URL de política en firmas v3 (estilo PGP 2.x)\n"
+#~ msgstr "no puede poner URL de política en firmas v3 (estilo PGP 2.x)\n"
 
 #~ msgid "can't put a policy URL into v3 key (PGP 2.x style) signatures\n"
 #~ msgstr ""
-#~ "no puede poner URL de política en firmas de claves v3 (estilo PGP 2.x)\n"
+#~ "no puede poner URL de política en firmas de claves v3 (estilo PGP 2.x)\n"
 
 #, fuzzy
 #~ msgid "shelll"
@@ -10036,18 +10120,18 @@ msgstr ""
 #, fuzzy
 #~ msgid ""
 #~ "please see http://www.gnupg.org/download/iconv.html for more information\n"
-#~ msgstr "por favor, vea http://www.gnupg.org/faq.html para más información\n"
+#~ msgstr "por favor, vea http://www.gnupg.org/faq.html para más información\n"
 
 #, fuzzy
 #~ msgid "key generation is not available from the commandline\n"
-#~ msgstr "el agente gpg no esta disponible en esta sesión\n"
+#~ msgstr "el agente gpg no esta disponible en esta sesión\n"
 
 #, fuzzy
 #~ msgid "please use the script \"%s\" to generate a new key\n"
 #~ msgstr "Por favor seleccione tipo de clave que generar:\n"
 
 #~ msgid "cipher extension `%s' not loaded due to unsafe permissions\n"
-#~ msgstr "no se carga el cifrado de ampliación `%s' por permisos inseguros\n"
+#~ msgstr "no se carga el cifrado de ampliación `%s' por permisos inseguros\n"
 
 #, fuzzy
 #~ msgid ".\n"
@@ -10057,10 +10141,10 @@ msgstr ""
 #~ msgstr "problema con el agente - inhabilitando el uso del agente\n"
 
 #~ msgid "can't query passphrase in batch mode\n"
-#~ msgstr "imposible pedir frase contraseña en modo de proceso por lotes\n"
+#~ msgstr "imposible pedir frase contraseña en modo de proceso por lotes\n"
 
 #~ msgid "Repeat passphrase: "
-#~ msgstr "Repita frase contraseña: "
+#~ msgstr "Repita frase contraseña: "
 
 #~ msgid "-k[v][v][v][c] [user-id] [keyring]"
 #~ msgstr "-k[v][v][v][c] [id-usuario] [anillo]"
@@ -10072,7 +10156,7 @@ msgstr ""
 #~ msgstr "no se puede generar un primo con menos de %d bits\n"
 
 #~ msgid "no entropy gathering module detected\n"
-#~ msgstr "no se ha detectado módulo acumulador de entropía\n"
+#~ msgstr "no se ha detectado módulo acumulador de entropía\n"
 
 #, fuzzy
 #~ msgid "can't lock `%s': %s\n"
@@ -10080,14 +10164,14 @@ msgstr ""
 
 # ignore no es ignorar, es no tener en cuenta, ignorar es not to know.
 # Sugerencia: descartar.
-# Sugerencia a la sugerencia: ¿qué tal omitido? (pasar en silencio una
+# Sugerencia a la sugerencia: ¿qué tal omitido? (pasar en silencio una
 # cosa; excluirla de lo que se habla o escribe) dice el diccionario.
-# Bien. También se puede poner "descartado".
+# Bien. También se puede poner "descartado".
 #~ msgid "`%s' is not a regular file - ignored\n"
 #~ msgstr "`%s` no es un fichero regular - descartado\n"
 
 #~ msgid "note: random_seed file is empty\n"
-#~ msgstr "nota: el fichero de semillas aleatorias está vacío\n"
+#~ msgstr "nota: el fichero de semillas aleatorias está vacío\n"
 
 #~ msgid "can't read `%s': %s\n"
 #~ msgstr "no se puede leer `%s': %s\n"
@@ -10102,7 +10186,7 @@ msgstr ""
 #~ msgstr "no se puede cerrar `%s': %s\n"
 
 #~ msgid "WARNING: using insecure random number generator!!\n"
-#~ msgstr "ATENCIÓN: ¡usando un generador de números aleatorios inseguro!\n"
+#~ msgstr "ATENCIÓN: ¡usando un generador de números aleatorios inseguro!\n"
 
 #~ msgid ""
 #~ "The random number generator is only a kludge to let\n"
@@ -10111,10 +10195,10 @@ msgstr ""
 #~ "DON'T USE ANY DATA GENERATED BY THIS PROGRAM!!\n"
 #~ "\n"
 #~ msgstr ""
-#~ "El generador de números aleatorios es sólo un apaño\n"
-#~ "para poder compilar. ¡No es en absoluto un generador seguro!\n"
+#~ "El generador de números aleatorios es sólo un apaño\n"
+#~ "para poder compilar. Â¡No es en absoluto un generador seguro!\n"
 #~ "\n"
-#~ "¡NO USE DATOS GENERADOS POR ESTE PROGRAMA!\n"
+#~ "¡NO USE DATOS GENERADOS POR ESTE PROGRAMA!\n"
 #~ "\n"
 
 #~ msgid ""
@@ -10122,9 +10206,9 @@ msgstr ""
 #~ "keep you from getting bored, because it will improve the quality\n"
 #~ "of the entropy.\n"
 #~ msgstr ""
-#~ "Por favor espere, se está reuniendo entropía. Haga alguna otra cosa con\n"
+#~ "Por favor espere, se está reuniendo entropía. Haga alguna otra cosa con\n"
 #~ "el ordenador mientras tanto si eso hace que no se aburra, porque eso\n"
-#~ "mejorará la calidad de la entropía.\n"
+#~ "mejorará la calidad de la entropía.\n"
 
 #~ msgid ""
 #~ "\n"
@@ -10132,9 +10216,9 @@ msgstr ""
 #~ "the OS a chance to collect more entropy! (Need %d more bytes)\n"
 #~ msgstr ""
 #~ "\n"
-#~ "No hay suficientes bytes aleatorios disponibles. Por favor, haga algún\n"
-#~ "otro trabajo para que el sistema pueda recolectar más entropía\n"
-#~ "(se necesitan %d bytes más).\n"
+#~ "No hay suficientes bytes aleatorios disponibles. Por favor, haga algún\n"
+#~ "otro trabajo para que el sistema pueda recolectar más entropía\n"
+#~ "(se necesitan %d bytes más).\n"
 
 #, fuzzy
 #~ msgid "card reader not available\n"
@@ -10144,7 +10228,7 @@ msgstr ""
 #~ msgstr "Inserte la tarjeta y pulse Intro o escriba 'c' para cancelar: "
 
 #~ msgid "Hit return when ready or enter 'c' to cancel: "
-#~ msgstr "Pulse Intro cuando esté listo"
+#~ msgstr "Pulse Intro cuando esté listo"
 
 #~ msgid "Enter New Admin PIN: "
 #~ msgstr "Introduzca nuevo PIN de administrador: "
@@ -10157,7 +10241,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "NOTE: %s is not available in this version\n"
-#~ msgstr "el agente gpg no esta disponible en esta sesión\n"
+#~ msgstr "el agente gpg no esta disponible en esta sesión\n"
 
 #, fuzzy
 #~ msgid "         algorithms on these user IDs:\n"
@@ -10173,7 +10257,7 @@ msgstr ""
 #~ msgstr "Algoritmo desconocido de resumen de mensaje"
 
 #~ msgid "bad public key"
-#~ msgstr "Clave pública incorrecta"
+#~ msgstr "Clave pública incorrecta"
 
 #~ msgid "bad secret key"
 #~ msgstr "Clave secreta incorrecta"
@@ -10182,13 +10266,13 @@ msgstr ""
 #~ msgstr "Firma incorrecta"
 
 #~ msgid "checksum error"
-#~ msgstr "Error en la suma de comprobación"
+#~ msgstr "Error en la suma de comprobación"
 
 #~ msgid "unknown cipher algorithm"
 #~ msgstr "Algoritmo de cifrado desconocido"
 
 #~ msgid "invalid packet"
-#~ msgstr "paquete inválido"
+#~ msgstr "paquete inválido"
 
 #~ msgid "no such user id"
 #~ msgstr "no existe el ID de usuario"
@@ -10206,7 +10290,7 @@ msgstr ""
 #~ msgstr "error de escritura"
 
 #~ msgid "unknown compress algorithm"
-#~ msgstr "algoritmo de compresión desconocido"
+#~ msgstr "algoritmo de compresión desconocido"
 
 #~ msgid "file open error"
 #~ msgstr "error al abrir fichero"
@@ -10215,7 +10299,7 @@ msgstr ""
 #~ msgstr "error al crear fichero"
 
 #~ msgid "unimplemented pubkey algorithm"
-#~ msgstr "algoritmo de clave pública no implementado"
+#~ msgstr "algoritmo de clave pública no implementado"
 
 #~ msgid "unimplemented cipher algorithm"
 #~ msgstr "algoritmo de cifrado no implementado"
@@ -10227,10 +10311,10 @@ msgstr ""
 #~ msgstr "error en la base de datos de confianza"
 
 #~ msgid "resource limit"
-#~ msgstr "límite de recurso"
+#~ msgstr "límite de recurso"
 
 #~ msgid "invalid keyring"
-#~ msgstr "anillo inválido"
+#~ msgstr "anillo inválido"
 
 #~ msgid "malformed user id"
 #~ msgstr "ID de usuario mal formado"
@@ -10249,31 +10333,28 @@ msgstr ""
 
 # o tal vez "en el sello..."
 # Creo que es mejor "con el sello de fecha", no es un conflicto
-# del sello en si mismo sino en relación con el mensaje.
+# del sello en si mismo sino en relación con el mensaje.
 # Ok.
 #~ msgid "timestamp conflict"
 #~ msgstr "conflicto con el sello de fecha"
 
 #~ msgid "unusable pubkey algorithm"
-#~ msgstr "algoritmo de clave pública no utilizable"
+#~ msgstr "algoritmo de clave pública no utilizable"
 
 #~ msgid "file exists"
 #~ msgstr "el fichero existe"
 
 #~ msgid "weak key"
-#~ msgstr "clave débil"
+#~ msgstr "clave débil"
 
 #~ msgid "bad URI"
 #~ msgstr "URI incorrecto"
 
-#~ msgid "network error"
-#~ msgstr "error de red"
-
 #~ msgid "not processed"
 #~ msgstr "no procesado"
 
 #~ msgid "unusable public key"
-#~ msgstr "clave pública inutilizable"
+#~ msgstr "clave pública inutilizable"
 
 #~ msgid "unusable secret key"
 #~ msgstr "clave secreta inutilizable"
@@ -10292,13 +10373,13 @@ msgstr ""
 #~ msgstr "ERROR: "
 
 # bicho :-)
-# ¿Error simplemente?
-# Uf, preferiría bug, si leo "error" voy a pensar en otra cosa distinta...
+# Â¿Error simplemente?
+# Uf, preferiría bug, si leo "error" voy a pensar en otra cosa distinta...
 #~ msgid "... this is a bug (%s:%d:%s)\n"
 #~ msgstr "... esto es un bug (%s:%d:%s)\n"
 
 #~ msgid "operation is not possible without initialized secure memory\n"
-#~ msgstr "operación imposible sin memoria segura inicializada\n"
+#~ msgstr "operación imposible sin memoria segura inicializada\n"
 
 #~ msgid "(you may have used the wrong program for this task)\n"
 #~ msgstr ""
@@ -10307,8 +10388,8 @@ msgstr ""
 #~ msgid ""
 #~ "please see http://www.gnupg.org/why-not-idea.html for more information\n"
 #~ msgstr ""
-#~ "por favor vea http://www.gnupg.org/why-not-idea.html para más "
-#~ "información\n"
+#~ "por favor vea http://www.gnupg.org/why-not-idea.html para más "
+#~ "información\n"
 
 #, fuzzy
 #~ msgid "all export-clean-* options from above"
@@ -10319,7 +10400,7 @@ msgstr ""
 #~ msgstr "lee opciones del fichero"
 
 #~ msgid "expired: %s)"
-#~ msgstr "caducó: %s)"
+#~ msgstr "caducó: %s)"
 
 #~ msgid "key %s: expired signature from key %s - skipped\n"
 #~ msgstr "clave %s: firma caducada con la clave %s - omitida\n"
@@ -10333,7 +10414,7 @@ msgstr ""
 #~ msgstr "No hay clave secreta para tal usuario\n"
 
 #~ msgid "length of RSA modulus is not %d\n"
-#~ msgstr "la longitud del módulo RSA no es %d\n"
+#~ msgstr "la longitud del módulo RSA no es %d\n"
 
 #~ msgid "length of an RSA prime is not %d\n"
 #~ msgstr "la longitud del primo RSA no es %d\n"
@@ -10351,19 +10432,19 @@ msgstr ""
 #~ msgstr "no puedo conseguir el FD de escritura para el agente\n"
 
 #~ msgid "digest algorithm `%s' is read-only in this release\n"
-#~ msgstr "el algoritmo de resumen `%s' es de sólo lectura en esta versión\n"
+#~ msgstr "el algoritmo de resumen `%s' es de sólo lectura en esta versión\n"
 
 #~ msgid ""
 #~ "WARNING: digest `%s' is not part of OpenPGP.  Use at your own risk!\n"
 #~ msgstr ""
-#~ "AVISO: el resumen `%s' no es parte de OpenPGP. ¡Úselo bajo su "
+#~ "AVISO: el resumen `%s' no es parte de OpenPGP. ¡Úselo bajo su "
 #~ "responsabilidad!\n"
 
 #~ msgid "|[files]|encrypt files"
 #~ msgstr "|[ficheros]|cifra ficheros"
 
 #~ msgid "store only"
-#~ msgstr "sólo almacenar"
+#~ msgstr "sólo almacenar"
 
 #~ msgid "|[files]|decrypt files"
 #~ msgstr "|[ficheros]|descifra ficheros"
@@ -10375,7 +10456,7 @@ msgstr ""
 #~ msgstr "firma la clave localmente y no revocablemente"
 
 #~ msgid "list only the sequence of packets"
-#~ msgstr "lista sólo la secuencia de paquetes"
+#~ msgstr "lista sólo la secuencia de paquetes"
 
 #~ msgid "export the ownertrust values"
 #~ msgstr "exporta los valores de confianza"
@@ -10384,13 +10465,13 @@ msgstr ""
 #~ msgstr "actualiza la base de datos de confianza"
 
 #~ msgid "fix a corrupted trust database"
-#~ msgstr "arregla una base de datos de confianza dañada"
+#~ msgstr "arregla una base de datos de confianza dañada"
 
 #~ msgid "De-Armor a file or stdin"
-#~ msgstr "quita la armadura de un fichero o de la entrada estándar"
+#~ msgstr "quita la armadura de un fichero o de la entrada estándar"
 
 #~ msgid "En-Armor a file or stdin"
-#~ msgstr "crea la armadura a un fichero o a la entrada estándar"
+#~ msgstr "crea la armadura a un fichero o a la entrada estándar"
 
 #~ msgid "do not force v3 signatures"
 #~ msgstr "no fuerza firmas v3"
@@ -10410,10 +10491,10 @@ msgstr ""
 #~ msgstr "usa el agente gpg"
 
 #~ msgid "|[file]|write status info to file"
-#~ msgstr "|[fichero]|escribe información de estado en el fichero"
+#~ msgstr "|[fichero]|escribe información de estado en el fichero"
 
 #~ msgid "|KEYID|ultimately trust this key"
-#~ msgstr "|ID-CLAVE|confía plenamente en esta clave"
+#~ msgstr "|ID-CLAVE|confía plenamente en esta clave"
 
 #~ msgid "emulate the mode described in RFC1991"
 #~ msgstr "emula el modo descrito en la RFC1991"
@@ -10426,26 +10507,26 @@ msgstr ""
 
 #~ msgid "|NAME|use message digest algorithm NAME for passphrases"
 #~ msgstr ""
-#~ "|NOMBRE|usa algoritmo de resumen de mensaje NOMBRE para las contraseñas"
+#~ "|NOMBRE|usa algoritmo de resumen de mensaje NOMBRE para las contraseñas"
 
 #~ msgid "throw keyid field of encrypted packets"
 #~ msgstr "elimina campo keyid de los paquetes cifrados"
 
 #~ msgid "Show Photo IDs"
-#~ msgstr "Muestra IDs fotográficos"
+#~ msgstr "Muestra IDs fotográficos"
 
 #~ msgid "Don't show Photo IDs"
-#~ msgstr "No muestra IDs fotográficos"
+#~ msgstr "No muestra IDs fotográficos"
 
 #~ msgid "Set command line to view Photo IDs"
-#~ msgstr "Ajusta linea de comandos para ver IDs fotográficos"
+#~ msgstr "Ajusta linea de comandos para ver IDs fotográficos"
 
 #~ msgid "compress algorithm `%s' is read-only in this release\n"
 #~ msgstr ""
-#~ "el algoritmo de compresión `%s' es de sólo lectura en esta versión\n"
+#~ "el algoritmo de compresión `%s' es de sólo lectura en esta versión\n"
 
 #~ msgid "compress algorithm must be in range %d..%d\n"
-#~ msgstr "el algoritmo de compresión debe estar en el rango %d-%d\n"
+#~ msgstr "el algoritmo de compresión debe estar en el rango %d-%d\n"
 
 #~ msgid "--nrsign-key user-id"
 #~ msgstr "--nrsign-key id-usuario"
@@ -10454,16 +10535,16 @@ msgstr ""
 #~ msgstr "--nrlsign-key id-usuario"
 
 #~ msgid "key %08lX: key has been revoked!\n"
-#~ msgstr "clave %08lX: ¡esta clave ha sido revocada!\n"
+#~ msgstr "clave %08lX: Â¡esta clave ha sido revocada!\n"
 
 #~ msgid "key %08lX: subkey has been revoked!\n"
-#~ msgstr "clave %08lX: ¡esta subclave ha sido revocada!\n"
+#~ msgstr "clave %08lX: Â¡esta subclave ha sido revocada!\n"
 
 #~ msgid "%08lX: key has expired\n"
 #~ msgstr "%08lX: clave caducada\n"
 
 #~ msgid "%08lX: We do NOT trust this key\n"
-#~ msgstr "%08lX: ¡Esta clave NO es de confianza!\n"
+#~ msgstr "%08lX: Â¡Esta clave NO es de confianza!\n"
 
 #~ msgid ""
 #~ "%08lX: It is not sure that this key really belongs to the owner\n"
@@ -10473,7 +10554,7 @@ msgstr ""
 #~ "proprietario pero se acepta igualmente\n"
 
 #~ msgid "preference %c%lu is not valid\n"
-#~ msgstr "la preferencia %c%lu no es válida\n"
+#~ msgstr "la preferencia %c%lu no es válida\n"
 
 #~ msgid ""
 #~ "About to generate a new %s keypair.\n"
@@ -10482,45 +10563,45 @@ msgstr ""
 #~ "    highest suggested keysize is 2048 bits\n"
 #~ msgstr ""
 #~ "Listo para generar un nuevo par de claves %s.\n"
-#~ "              el tamaño mínimo es 768 bits\n"
-#~ "        el tamaño por defecto es 1024 bits\n"
-#~ " el tamaño máximo recomendado es 2048 bits\n"
+#~ "              el tamaño mínimo es 768 bits\n"
+#~ "        el tamaño por defecto es 1024 bits\n"
+#~ " el tamaño máximo recomendado es 2048 bits\n"
 
 #~ msgid "DSA only allows keysizes from 512 to 1024\n"
-#~ msgstr "DSA sólo permite tamaños desde 512 a 1024\n"
+#~ msgstr "DSA sólo permite tamaños desde 512 a 1024\n"
 
 #~ msgid "keysize too small; 1024 is smallest value allowed for RSA.\n"
 #~ msgstr ""
-#~ "tamaño de clave insuficiente; 1024 es el mínimo permitido para RSA.\n"
+#~ "tamaño de clave insuficiente; 1024 es el mínimo permitido para RSA.\n"
 
 #~ msgid "keysize too small; 768 is smallest value allowed.\n"
-#~ msgstr "tamaño insuficiente; 768 es el valor mínimo permitido\n"
+#~ msgstr "tamaño insuficiente; 768 es el valor mínimo permitido\n"
 
 #~ msgid "keysize too large; %d is largest value allowed.\n"
-#~ msgstr "tamaño excesivo; %d es el máximo valor permitido.\n"
+#~ msgstr "tamaño excesivo; %d es el máximo valor permitido.\n"
 
 #~ msgid ""
 #~ "Keysizes larger than 2048 are not suggested because\n"
 #~ "computations take REALLY long!\n"
 #~ msgstr ""
-#~ "No se recomiendan claves de más de 2048 bits porque\n"
-#~ "¡el tiempo de cálculo es REALMENTE largo!\n"
+#~ "No se recomiendan claves de más de 2048 bits porque\n"
+#~ "¡el tiempo de cálculo es REALMENTE largo!\n"
 
 #~ msgid "Are you sure that you want this keysize? "
-#~ msgstr "¿Seguro que quiere una clave de este tamaño? "
+#~ msgstr "¿Seguro que quiere una clave de este tamaño? "
 
 #~ msgid ""
 #~ "Okay, but keep in mind that your monitor and keyboard radiation is also "
 #~ "very vulnerable to attacks!\n"
 #~ msgstr ""
-#~ "De acuerdo, ¡pero tenga en cuenta que las radiaciones de su monitor y\n"
-#~ "teclado también son vulnerables a un ataque!\n"
+#~ "De acuerdo, Â¡pero tenga en cuenta que las radiaciones de su monitor y\n"
+#~ "teclado también son vulnerables a un ataque!\n"
 
 #~ msgid "%s: can't open: %s\n"
 #~ msgstr "%s: no se puede abrir: %s\n"
 
 #~ msgid "%s: WARNING: empty file\n"
-#~ msgstr "%s: ATENCIÓN: fichero vacío\n"
+#~ msgstr "%s: ATENCIÓN: fichero vacío\n"
 
 #~ msgid "key %08lX: not a rfc2440 key - skipped\n"
 #~ msgstr "clave %08lX: no es conforme a rfc2440 - omitida\n"
@@ -10535,7 +10616,7 @@ msgstr ""
 #~ msgstr "(por defecto)"
 
 #~ msgid "Really sign? "
-#~ msgstr "¿Firmar de verdad? "
+#~ msgstr "¿Firmar de verdad? "
 
 #~ msgid "q"
 #~ msgstr "s"
@@ -10589,10 +10670,10 @@ msgstr ""
 #~ msgstr "depura"
 
 #~ msgid "adduid"
-#~ msgstr "añaidu"
+#~ msgstr "añaidu"
 
 #~ msgid "addphoto"
-#~ msgstr "añadirfoto"
+#~ msgstr "añadirfoto"
 
 #~ msgid "deluid"
 #~ msgstr "borridu"
@@ -10601,13 +10682,13 @@ msgstr ""
 #~ msgstr "borfoto"
 
 #~ msgid "add a secondary key"
-#~ msgstr "añade una clave secundaria"
+#~ msgstr "añade una clave secundaria"
 
 #~ msgid "delkey"
 #~ msgstr "borrcla"
 
 #~ msgid "addrevoker"
-#~ msgstr "añarevoc"
+#~ msgstr "añarevoc"
 
 #~ msgid "delsig"
 #~ msgstr "borrfir"
@@ -10658,10 +10739,10 @@ msgstr ""
 #~ msgstr "%s%c %4u%c/%08lX  creada: %s expira: %s"
 
 #~ msgid "rev! subkey has been revoked: %s\n"
-#~ msgstr "rev! ¡esta subclave ha sido revocada! %s\n"
+#~ msgstr "rev! Â¡esta subclave ha sido revocada! %s\n"
 
 #~ msgid "rev- faked revocation found\n"
-#~ msgstr "rev-  se encontró una revocación falsificada\n"
+#~ msgstr "rev-  se encontró una revocación falsificada\n"
 
 #~ msgid ""
 #~ "\"\n"
@@ -10677,22 +10758,22 @@ msgstr ""
 #~ msgstr "   firmada por %08lX el %s%s\n"
 
 #~ msgid "Experimental algorithms should not be used!\n"
-#~ msgstr "¡No se deberían usar algoritmos experimentales!\n"
+#~ msgstr "¡No se deberían usar algoritmos experimentales!\n"
 
 #~ msgid ""
 #~ "this cipher algorithm is deprecated; please use a more standard one!\n"
 #~ msgstr ""
-#~ "ese algoritmo de cifrado está desacreditado;¡por favor use uno más "
-#~ "estándar!\n"
+#~ "ese algoritmo de cifrado está desacreditado;¡por favor use uno más "
+#~ "estándar!\n"
 
 #~ msgid "can't get key from keyserver: %s\n"
 #~ msgstr "no puede obtenerse la clave en el servidor: %s\n"
 
 #~ msgid "success sending to `%s' (status=%u)\n"
-#~ msgstr "envió correcto a `%s` (estado=%u)\n"
+#~ msgstr "envió correcto a `%s` (estado=%u)\n"
 
 #~ msgid "failed sending to `%s': status=%u\n"
-#~ msgstr "falló el envio a `%s': status=%u\n"
+#~ msgstr "falló el envio a `%s': status=%u\n"
 
 #~ msgid "this keyserver does not support --search-keys\n"
 #~ msgstr "este servidor de clave no proporciona --search-keys\n"
@@ -10745,7 +10826,7 @@ msgstr ""
 #~ "%d\n"
 
 #~ msgid "If you want to use this revoked key anyway, answer \"yes\"."
-#~ msgstr "Si quiere usar esta clave revocada de todos modos, conteste \"sí\"."
+#~ msgstr "Si quiere usar esta clave revocada de todos modos, conteste \"sí\"."
 
 #~ msgid ""
 #~ "Select the algorithm to use.\n"
@@ -10770,34 +10851,34 @@ msgstr ""
 #~ "in\n"
 #~ "this menu."
 #~ msgstr ""
-#~ "Seleccione el algoritmo que usará.\n"
+#~ "Seleccione el algoritmo que usará.\n"
 #~ "\n"
-#~ "DSA (también conocido como DSS) es un algoritmo de firma digital que "
-#~ "sólo\n"
+#~ "DSA (también conocido como DSS) es un algoritmo de firma digital que "
+#~ "sólo\n"
 #~ "puede usarse para firmas. Es el algoritmo sugerido porque la "
-#~ "verificación\n"
-#~ "de firmas DSA es mucho más rápida que la de firmas ElGamal.\n"
+#~ "verificación\n"
+#~ "de firmas DSA es mucho más rápida que la de firmas ElGamal.\n"
 #~ "\n"
 #~ "ElGamal es un algoritmo que puede ser usado para firma y cifrado. "
 #~ "OpenPGP\n"
-#~ "distingue entre dos tipos de estos algoritmos: sólo para cifrado y para\n"
+#~ "distingue entre dos tipos de estos algoritmos: sólo para cifrado y para\n"
 #~ "firma y cifrado. En realidad es lo mismo, pero se deben seleccionar "
 #~ "ciertos\n"
-#~ "parámetros de una forma particular para crear una clave segura para "
+#~ "parámetros de una forma particular para crear una clave segura para "
 #~ "firmas:\n"
-#~ "este programa lo hace así, pero otras implementaciones de OpenPGP no "
+#~ "este programa lo hace así, pero otras implementaciones de OpenPGP no "
 #~ "tienen\n"
-#~ "por qué entender el tipo de firma y cifrado.\n"
+#~ "por qué entender el tipo de firma y cifrado.\n"
 #~ "\n"
 #~ "La clave primaria debe ser una clave capaz de firmar, es por ello que la\n"
-#~ "opción de clave ElGamal sólo para cifrado no está disponible en este menú."
+#~ "opción de clave ElGamal sólo para cifrado no está disponible en este menú."
 
 #~ msgid ""
 #~ "Although these keys are defined in RFC2440 they are not suggested\n"
 #~ "because they are not supported by all programs and signatures created\n"
 #~ "with them are quite large and very slow to verify."
 #~ msgstr ""
-#~ "Aunque estas claves están definidas en RFC2440, no se aconseja su uso,\n"
+#~ "Aunque estas claves están definidas en RFC2440, no se aconseja su uso,\n"
 #~ "ya que no todos los programas pueden utilizarlas y las firmas creadas\n"
 #~ "con ellas son bastante grandes y lentas de verificar."
 
@@ -10832,41 +10913,41 @@ msgstr ""
 #~ "also\n"
 #~ "very slow, and may not be as secure as the other choices.\n"
 #~ msgstr ""
-#~ "El uso de este algoritmo sólo es posible con GnuPG. No será posible\n"
+#~ "El uso de este algoritmo sólo es posible con GnuPG. No será posible\n"
 #~ "comunicarse mediante esta clave con usuarios de PGP. Este algoritmo\n"
-#~ "es además muy lento, y podría no ser tan seguro como otros.\n"
+#~ "es además muy lento, y podría no ser tan seguro como otros.\n"
 
 #~ msgid "invalid symkey algorithm detected (%d)\n"
-#~ msgstr "detectado algoritmo simétrico inválido (%d)\n"
+#~ msgstr "detectado algoritmo simétrico inválido (%d)\n"
 
 #~ msgid "this keyserver is not fully HKP compatible\n"
 #~ msgstr "este servidor de claves no es totalmente compatible con HKP\n"
 
 #~ msgid "The use of this algorithm is deprecated - create anyway? "
 #~ msgstr ""
-#~ "El uso de este algoritmo está desaconsejado - ¿crear de todas formas?"
+#~ "El uso de este algoritmo está desaconsejado - Â¿crear de todas formas?"
 
 #~ msgid "|NAME=VALUE|use this notation data"
-#~ msgstr "|NOMBRE=VALOR|usa estos datos de notación"
+#~ msgstr "|NOMBRE=VALOR|usa estos datos de notación"
 
 #~ msgid ""
 #~ "the first character of a notation name must be a letter or an underscore\n"
 #~ msgstr ""
-#~ "El primer carácter de una notación debe ser una letra o un subrayado\n"
+#~ "El primer carácter de una notación debe ser una letra o un subrayado\n"
 
 #~ msgid "dots in a notation name must be surrounded by other characters\n"
 #~ msgstr ""
-#~ "los puntos en una notación deben estar rodeados por otros caracteres\n"
+#~ "los puntos en una notación deben estar rodeados por otros caracteres\n"
 
 #~ msgid ""
 #~ "WARNING: This key already has a photo ID.\n"
 #~ "         Adding another photo ID may confuse some versions of PGP.\n"
 #~ msgstr ""
-#~ "AVISO: Esta clave ya tiene identificador fotográfico.\n"
-#~ "       Añadir otro ID puede confundir a algunas versiones de PGP.\n"
+#~ "AVISO: Esta clave ya tiene identificador fotográfico.\n"
+#~ "       Añadir otro ID puede confundir a algunas versiones de PGP.\n"
 
 #~ msgid "You may only have one photo ID on a key.\n"
-#~ msgstr "Solo puede tener un ID fotográfico en una clave.\n"
+#~ msgstr "Solo puede tener un ID fotográfico en una clave.\n"
 
 #~ msgid "             Fingerprint:"
 #~ msgstr "         Huella dactilar:"
@@ -10876,14 +10957,14 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "Are you sure you still want to sign it?\n"
-#~ msgstr "¿Seguro que quiere una clave de este tamaño? "
+#~ msgstr "¿Seguro que quiere una clave de este tamaño? "
 
 #, fuzzy
 #~ msgid "  Are you sure you still want to sign it?\n"
-#~ msgstr "¿Seguro que quiere una clave de este tamaño? "
+#~ msgstr "¿Seguro que quiere una clave de este tamaño? "
 
 #~ msgid "too many random bits requested; the limit is %d\n"
-#~ msgstr "se solicitan demasiados bits aleatorios; el límite es %d\n"
+#~ msgstr "se solicitan demasiados bits aleatorios; el límite es %d\n"
 
 #~ msgid "|[NAMES]|check the trust database"
 #~ msgstr "|[NOMBRES]|comprueba la base de datos de confianza"
@@ -10898,7 +10979,7 @@ msgstr ""
 #~ msgstr "--delete-secret-and-public-key id-usuario"
 
 #~ msgid "For info see http://www.gnupg.org"
-#~ msgstr "Información en http://www.gnupg.org"
+#~ msgstr "Información en http://www.gnupg.org"
 
 #~ msgid "sSmMqQ"
 #~ msgstr "iImMqQ"
@@ -10908,7 +10989,7 @@ msgstr ""
 #~ "can assign some missing owner trust values.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "No puede encontrarse una ruta de confianza válida para esta clave. "
+#~ "No puede encontrarse una ruta de confianza válida para esta clave. "
 #~ "Veamos\n"
 #~ "si es posible asignar algunos valores de confianza perdidos.\n"
 #~ "\n"
@@ -10924,27 +11005,27 @@ msgstr ""
 #~ "No trust values changed.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "No se cambió ningún valor de confianza.\n"
+#~ "No se cambió ningún valor de confianza.\n"
 #~ "\n"
 
 #~ msgid "%08lX: no info to calculate a trust probability\n"
 #~ msgstr ""
-#~ "%08lX: no hay información para calcular la probabilidad de confianza\n"
+#~ "%08lX: no hay información para calcular la probabilidad de confianza\n"
 
 #~ msgid "skipped: public key already set with --encrypt-to\n"
-#~ msgstr "omitida: clave pública ya designada con --encrypt-to\n"
+#~ msgstr "omitida: clave pública ya designada con --encrypt-to\n"
 
 #~ msgid "%s: error checking key: %s\n"
 #~ msgstr "%s: error comprobando la clave: %s\n"
 
 #~ msgid "Do you really need such a large keysize? "
-#~ msgstr "¿De verdad necesita una clave tan grande? "
+#~ msgstr "¿De verdad necesita una clave tan grande? "
 
 #~ msgid "too many entries in unk cache - disabled\n"
 #~ msgstr "demasiados registros en la cache unk - anulada\n"
 
 #~ msgid "no default public keyring\n"
-#~ msgstr "no hay anillo público por defecto\n"
+#~ msgstr "no hay anillo público por defecto\n"
 
 #~ msgid "secret key %08lX not imported (use %s to allow for it)\n"
 #~ msgstr "clave secreta %08lX no importada (use %s para permitirlo)\n"
@@ -10953,7 +11034,7 @@ msgstr ""
 #~ msgstr "clave %08lX: nuestra copia no tiene autofirma\n"
 
 #~ msgid "assuming bad MDC due to an unknown critical bit\n"
-#~ msgstr "asumiendo MDC incorrecto debido a un bit crítico desconocido\n"
+#~ msgstr "asumiendo MDC incorrecto debido a un bit crítico desconocido\n"
 
 #~ msgid "lid %lu: expected dir record, got type %d\n"
 #~ msgstr "lid %lu: esperaba registro directorio, encontrado tipo %d\n"
@@ -10965,47 +11046,47 @@ msgstr ""
 #~ msgstr "error leyendo clave primaria para el LID %lu: %s\n"
 
 #~ msgid "key %08lX: query record failed\n"
-#~ msgstr "clave %08lX: petición de registro fallida\n"
+#~ msgstr "clave %08lX: petición de registro fallida\n"
 
 #~ msgid "key %08lX: already in trusted key table\n"
-#~ msgstr "clave %08lX: ya está en la tabla de confianza\n"
+#~ msgstr "clave %08lX: ya está en la tabla de confianza\n"
 
 #~ msgid "NOTE: secret key %08lX is NOT protected.\n"
-#~ msgstr "NOTA: la clave secreta %08lX NO está protegida.\n"
+#~ msgstr "NOTA: la clave secreta %08lX NO está protegida.\n"
 
 #~ msgid "key %08lX: secret and public key don't match\n"
-#~ msgstr "clave %08lX: las claves pública y secreta no se corresponden\n"
+#~ msgstr "clave %08lX: las claves pública y secreta no se corresponden\n"
 
 #~ msgid "key %08lX.%lu: Good subkey binding\n"
-#~ msgstr "clave %08lX.%lu: unión de subclave válida\n"
+#~ msgstr "clave %08lX.%lu: unión de subclave válida\n"
 
 #~ msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
-#~ msgstr "clave %08lX.%lu: unión de subclave inválida: %s\n"
+#~ msgstr "clave %08lX.%lu: unión de subclave inválida: %s\n"
 
 #~ msgid "key %08lX.%lu: Valid key revocation\n"
-#~ msgstr "clave %08lX.%lu: revocación de clave válida\n"
+#~ msgstr "clave %08lX.%lu: revocación de clave válida\n"
 
 #~ msgid "key %08lX.%lu: Invalid key revocation: %s\n"
-#~ msgstr "clave %08lX.%lu: revocación de clave inválida: %s\n"
+#~ msgstr "clave %08lX.%lu: revocación de clave inválida: %s\n"
 
 #~ msgid "Good self-signature"
-#~ msgstr "Autofirma válida"
+#~ msgstr "Autofirma válida"
 
 #~ msgid "Invalid self-signature"
-#~ msgstr "Autofirma inválida"
+#~ msgstr "Autofirma inválida"
 
 #~ msgid "Valid user ID revocation skipped due to a newer self signature"
 #~ msgstr ""
-#~ "Revocación válida de ID de usuario omitida, existe autofirma más reciente"
+#~ "Revocación válida de ID de usuario omitida, existe autofirma más reciente"
 
 #~ msgid "Valid user ID revocation"
-#~ msgstr "Revocación de ID de usuario válida"
+#~ msgstr "Revocación de ID de usuario válida"
 
 #~ msgid "Invalid user ID revocation"
-#~ msgstr "Revocación de ID de usuario inválida."
+#~ msgstr "Revocación de ID de usuario inválida."
 
 #~ msgid "Invalid certificate revocation"
-#~ msgstr "Certificado de revocación incorrecto"
+#~ msgstr "Certificado de revocación incorrecto"
 
 #~ msgid "sig record %lu[%d] points to wrong record.\n"
 #~ msgstr "registro de firma %lu[%d] apunta al registro equivocado.\n"
@@ -11014,7 +11095,7 @@ msgstr ""
 #~ msgstr "tdbio_search_dir fallida: %s\n"
 
 #~ msgid "lid %lu: insert failed: %s\n"
-#~ msgstr "lid %lu: inserción fallida: %s\n"
+#~ msgstr "lid %lu: inserción fallida: %s\n"
 
 #~ msgid "lid %lu: inserted\n"
 #~ msgstr "lid %lu: insertada\n"
@@ -11029,19 +11110,19 @@ msgstr ""
 #~ msgstr "lid %lu: registro de directiorio sin clave - omitido\n"
 
 #~ msgid "\t%lu due to new pubkeys\n"
-#~ msgstr "\t%lu debido a las nuevas claves públicas\n"
+#~ msgstr "\t%lu debido a las nuevas claves públicas\n"
 
 #~ msgid "Ooops, no keys\n"
 #~ msgstr "Oh oh, no hay claves\n"
 
 #~ msgid "Ooops, no user IDs\n"
-#~ msgstr "Oh oh, no hay ningún ID de usuario\n"
+#~ msgstr "Oh oh, no hay ningún ID de usuario\n"
 
 #~ msgid "check_trust: search dir record failed: %s\n"
-#~ msgstr "check_trust: búsqueda registro directorio fallida: %s\n"
+#~ msgstr "check_trust: búsqueda registro directorio fallida: %s\n"
 
 #~ msgid "key %08lX: insert trust record failed: %s\n"
-#~ msgstr "clave %08lX: inserción del registro de confianza fallida: %s\n"
+#~ msgstr "clave %08lX: inserción del registro de confianza fallida: %s\n"
 
 #~ msgid "key %08lX.%lu: inserted into trustdb\n"
 #~ msgstr "clave %08lX.%lu: incluida en la base de datos de confianza\n"
@@ -11055,20 +11136,20 @@ msgstr ""
 #~ msgstr "clave %08lX.%lu: caducada el %s\n"
 
 #~ msgid "key %08lX.%lu: trust check failed: %s\n"
-#~ msgstr "clave %08lX.%lu: comprobación de confianza fallida: %s\n"
+#~ msgstr "clave %08lX.%lu: comprobación de confianza fallida: %s\n"
 
 #~ msgid "problem finding '%s' in trustdb: %s\n"
 #~ msgstr "problema buscando '%s' en la tabla de confianza: %s\n"
 
 #~ msgid "user '%s' not in trustdb - inserting\n"
-#~ msgstr "usuario '%s' no está en la tabla de confianza - insertando\n"
+#~ msgstr "usuario '%s' no está en la tabla de confianza - insertando\n"
 
 #~ msgid "WARNING: can't yet handle long pref records\n"
 #~ msgstr ""
-#~ "ATENCÍON: todavía no puedo tratar registros de preferencias largos\n"
+#~ "ATENCÍON: todavía no puedo tratar registros de preferencias largos\n"
 
 #~ msgid "RSA key cannot be used in this version\n"
-#~ msgstr "No puede usarse clave RSA en esta versión\n"
+#~ msgstr "No puede usarse clave RSA en esta versión\n"
 
 #~ msgid "No key for user ID\n"
 #~ msgstr "No hay clave para tal usuario\n"
@@ -11080,7 +11161,7 @@ msgstr ""
 #~ "RSA keys are deprecated; please consider creating a new key and use this "
 #~ "key in the future\n"
 #~ msgstr ""
-#~ "Las claves RSA están en desuso, considere la creación de una nueva clave "
+#~ "Las claves RSA están en desuso, considere la creación de una nueva clave "
 #~ "para futuros usos\n"
 
 #~ msgid "do not write comment packets"
@@ -11093,7 +11174,7 @@ msgstr ""
 #~ msgstr "   (%d) ElGamal en un paquete v3\n"
 
 #~ msgid "Key generation can only be used in interactive mode\n"
-#~ msgstr "La creación de claves sólo es posible en modo interactivo\n"
+#~ msgstr "La creación de claves sólo es posible en modo interactivo\n"
 
 #, fuzzy
 #~ msgid "tdbio_search_sdir failed: %s\n"
@@ -11101,17 +11182,17 @@ msgstr ""
 
 #~ msgid "NOTE: sig rec %lu[%d] in hintlist of %lu but marked as checked\n"
 #~ msgstr ""
-#~ "NOTA: el registro de firma %lu[%d] está en la lista\n"
-#~ "de búsqueda de %lu pero está marcado como comprobado\n"
+#~ "NOTA: el registro de firma %lu[%d] está en la lista\n"
+#~ "de búsqueda de %lu pero está marcado como comprobado\n"
 
 #~ msgid "NOTE: sig rec %lu[%d] in hintlist of %lu but not marked\n"
 #~ msgstr ""
-#~ "NOTA: el registro de firma %lu[%d] está en la lista\n"
-#~ "de búsqueda de %lu pero no está marcado\n"
+#~ "NOTA: el registro de firma %lu[%d] está en la lista\n"
+#~ "de búsqueda de %lu pero no está marcado\n"
 
 #~ msgid "sig rec %lu[%d] in hintlist of %lu does not point to a dir record\n"
 #~ msgstr ""
-#~ "El registro de firma %lu[%d] en la lista de búsqueda de %lu\n"
+#~ "El registro de firma %lu[%d] en la lista de búsqueda de %lu\n"
 #~ "no apunta a un registro de directorio\n"
 
 #~ msgid "lid %lu: no primary key\n"
@@ -11123,27 +11204,27 @@ msgstr ""
 #~ "en el bloque de clave\n"
 
 #~ msgid "lid %lu: self-signature in hintlist\n"
-#~ msgstr "lid %lu: autofirma en lista de búsqueda\n"
+#~ msgstr "lid %lu: autofirma en lista de búsqueda\n"
 
 #~ msgid "very strange: no public key\n"
-#~ msgstr "muy raro: no hay clave pública\n"
+#~ msgstr "muy raro: no hay clave pública\n"
 
 #~ msgid "hintlist %lu[%d] of %lu does not point to a dir record\n"
 #~ msgstr ""
-#~ "la lista de búsqueda %lu[%d] de %lu no apunta a\n"
+#~ "la lista de búsqueda %lu[%d] de %lu no apunta a\n"
 #~ "un registro de directorio\n"
 
 #~ msgid "lid %lu: can't get keyblock: %s\n"
 #~ msgstr "lid %lu: no puedo obtener el bloque de clave: %s\n"
 
 #~ msgid "Too many preference items"
-#~ msgstr "Demasiados ítems de preferencias"
+#~ msgstr "Demasiados ítems de preferencias"
 
 #~ msgid "insert_trust_record: keyblock not found: %s\n"
 #~ msgstr "insert_trust_record: bloque de clave no encontrado: %s\n"
 
 #~ msgid "lid %lu: update failed: %s\n"
-#~ msgstr "lid %lu: actualización fallida: %s\n"
+#~ msgstr "lid %lu: actualización fallida: %s\n"
 
 #~ msgid "lid %lu: updated\n"
 #~ msgstr "lid %lu: actualizado\n"
@@ -11152,28 +11233,21 @@ msgstr ""
 #~ msgstr "lid %lu: bien\n"
 
 #~ msgid "%s: update failed: %s\n"
-#~ msgstr "%s: actualización fallida: %s\n"
+#~ msgstr "%s: actualización fallida: %s\n"
 
 #~ msgid "%s: updated\n"
 #~ msgstr "%s: actualizada\n"
 
-#~ msgid "%s: okay\n"
-#~ msgstr "%s: bien\n"
-
 #~ msgid "lid %lu: keyblock not found: %s\n"
 #~ msgstr "lid %lu: bloque de clave no encontrado: %s\n"
 
 #~ msgid "can't lock keyring `%': %s\n"
-#~ msgstr "no puede bloquearse el anillo público `%s': %s\n"
+#~ msgstr "no puede bloquearse el anillo público `%s': %s\n"
 
 #~ msgid "writing keyblock\n"
 #~ msgstr "escribiendo bloque de claves\n"
 
 #, fuzzy
-#~ msgid "encrypted message is valid\n"
-#~ msgstr "el algoritmo de resumen seleccionado no es válido\n"
-
-#, fuzzy
 #~ msgid "Can't check MDC: %s\n"
 #~ msgstr "Imposible comprobar la firma: %s\n"
 
@@ -11196,25 +11270,25 @@ msgstr ""
 #~ msgstr "problema de lectura usuario '%s': %s\n"
 
 #~ msgid "user '%s' not in trustdb\n"
-#~ msgstr "usuario '%s' no está en la tabla de confianza\n"
+#~ msgstr "usuario '%s' no está en la tabla de confianza\n"
 
 #~ msgid "directory record w/o primary key\n"
 #~ msgstr "registro de directorio sin clave primaria\n"
 
 #~ msgid "key not in trustdb, searching ring.\n"
-#~ msgstr "la clave no está en tabla de confianza, buscando en el anillo.\n"
+#~ msgstr "la clave no está en tabla de confianza, buscando en el anillo.\n"
 
 #~ msgid "key not in ring: %s\n"
-#~ msgstr "la clave no está en el anillo: %s\n"
+#~ msgstr "la clave no está en el anillo: %s\n"
 
 #~ msgid "Oops: key is now in trustdb???\n"
-#~ msgstr "Oh oh: la clave ahora está en la tabla de confianza???\n"
+#~ msgstr "Oh oh: la clave ahora está en la tabla de confianza???\n"
 
 #~ msgid "Hmmm, public key lost?"
-#~ msgstr "Oh oh, ¿se ha perdido la clave pública?"
+#~ msgstr "Oh oh, ¿se ha perdido la clave pública?"
 
 #~ msgid "did not use primary key for insert_trust_record()\n"
-#~ msgstr "no se usó clave primaria para insert_trust_record()\n"
+#~ msgstr "no se usó clave primaria para insert_trust_record()\n"
 
 #~ msgid "seconds"
 #~ msgstr "segundos"
index b7dc277..8a8e8c2 100644 (file)
--- a/po/et.po
+++ b/po/et.po
@@ -11,12 +11,12 @@ msgstr ""
 "Language-Team: Estonian <et@li.org>\n"
 "Language: et\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-15\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8-bit\n"
 
 #, fuzzy, c-format
 msgid "failed to acquire the pinentry lock: %s\n"
-msgstr "TrustDB initsialiseerimine ebaõnnestus: %s\n"
+msgstr "TrustDB initsialiseerimine ebaõnnestus: %s\n"
 
 #. TRANSLATORS: These are labels for buttons etc used in
 #. Pinentries.  An underscore indicates that the next letter
@@ -44,7 +44,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Do you really want to make your passphrase visible on the screen?"
-msgstr "Kas te tõesti soovite valitud võtmeid kustutada? "
+msgstr "Kas te tõesti soovite valitud võtmeid kustutada? "
 
 msgid "|pinentry-tt|Make passphrase visible"
 msgstr ""
@@ -109,7 +109,7 @@ msgstr "liiga pikk parool\n"
 
 #, fuzzy
 msgid "Invalid characters in PIN"
-msgstr "Lubamatu sümbol nimes\n"
+msgstr "Lubamatu sümbol nimes\n"
 
 msgid "PIN too short"
 msgstr ""
@@ -129,12 +129,12 @@ msgstr "kaitse algoritm %d%s ei ole toetatud\n"
 #, fuzzy, c-format
 #| msgid "can't create `%s': %s\n"
 msgid "can't create '%s': %s\n"
-msgstr "`%s' ei õnnestu luua: %s\n"
+msgstr "`%s' ei õnnestu luua: %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't open `%s': %s\n"
 msgid "can't open '%s': %s\n"
-msgstr "`%s' ei õnnestu avada: %s\n"
+msgstr "`%s' ei õnnestu avada: %s\n"
 
 #, fuzzy, c-format
 msgid "error getting serial number of card: %s\n"
@@ -146,19 +146,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "no authentication key for ssh on card: %s\n"
-msgstr "viga salajase võtme võtmehoidlasse `%s' kirjutamisel: %s\n"
+msgstr "viga salajase võtme võtmehoidlasse `%s' kirjutamisel: %s\n"
 
 #, fuzzy, c-format
 msgid "no suitable card key found: %s\n"
-msgstr "kirjutatavat salajaste võtmete hoidlat pole: %s\n"
-
-#, fuzzy, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
-
-#, fuzzy, c-format
-msgid "error writing key: %s\n"
-msgstr "viga võtmehoidlasse `%s' kirjutamisel: %s\n"
+msgstr "kirjutatavat salajaste võtmete hoidlat pole: %s\n"
 
 #, c-format
 msgid ""
@@ -188,7 +180,7 @@ msgstr "Palun sisestage parool; see on salajane tekst \n"
 
 #, fuzzy, c-format
 msgid "failed to create stream from socket: %s\n"
-msgstr "%s: paisktabeli loomine ebaõnnestus: %s\n"
+msgstr "%s: paisktabeli loomine ebaõnnestus: %s\n"
 
 msgid "Please insert the card with serial number"
 msgstr ""
@@ -225,15 +217,15 @@ msgstr "Korrake parooli: "
 
 #, fuzzy
 msgid "Reset Code not correctly repeated; try again"
-msgstr "parooli ei korratud õieti; proovige uuesti"
+msgstr "parooli ei korratud õieti; proovige uuesti"
 
 #, fuzzy
 msgid "PUK not correctly repeated; try again"
-msgstr "parooli ei korratud õieti; proovige uuesti"
+msgstr "parooli ei korratud õieti; proovige uuesti"
 
 #, fuzzy
 msgid "PIN not correctly repeated; try again"
-msgstr "parooli ei korratud õieti; proovige uuesti"
+msgstr "parooli ei korratud õieti; proovige uuesti"
 
 #, c-format
 msgid "Please enter the PIN%s%s%s to unlock the card"
@@ -253,7 +245,7 @@ msgstr "Sisestage parool\n"
 
 #, fuzzy
 msgid "Take this one anyway"
-msgstr "Kasutan seda võtit ikka? "
+msgstr "Kasutan seda võtit ikka? "
 
 #, c-format
 msgid ""
@@ -273,8 +265,8 @@ msgstr ""
 #| msgid "Name must be at least 5 characters long\n"
 msgid "A passphrase should be at least %u character long."
 msgid_plural "A passphrase should be at least %u characters long."
-msgstr[0] "Nimes peab olema vähemalt 5 sümbolit\n"
-msgstr[1] "Nimes peab olema vähemalt 5 sümbolit\n"
+msgstr[0] "Nimes peab olema vähemalt 5 sümbolit\n"
+msgstr[1] "Nimes peab olema vähemalt 5 sümbolit\n"
 
 #, c-format
 msgid "A passphrase should contain at least %u digit or%%0Aspecial character."
@@ -293,7 +285,7 @@ msgstr ""
 #, fuzzy, c-format
 msgid "Please enter the passphrase to%0Aprotect your new key"
 msgstr ""
-"Te vajate oma salajase võtme kaitsmiseks parooli.\n"
+"Te vajate oma salajase võtme kaitsmiseks parooli.\n"
 "\n"
 
 #, fuzzy
@@ -306,7 +298,7 @@ msgid ""
 " "
 msgstr ""
 "@\n"
-"Võtmed:\n"
+"Võtmed:\n"
 " "
 
 msgid "run in daemon mode (background)"
@@ -315,11 +307,16 @@ msgstr ""
 msgid "run in server mode (foreground)"
 msgstr ""
 
+#, fuzzy
+#| msgid "Key is superseded"
+msgid "run in supervised mode"
+msgstr "Võti on asendatud"
+
 msgid "verbose"
 msgstr "ole jutukas"
 
 msgid "be somewhat more quiet"
-msgstr "ole mõnevõrra vaiksem"
+msgstr "ole mõnevõrra vaiksem"
 
 msgid "sh-style command output"
 msgstr ""
@@ -339,7 +336,7 @@ msgstr ""
 
 #, fuzzy
 msgid "use a log file for the server"
-msgstr "otsi võtmeid võtmeserverist"
+msgstr "otsi võtmeid võtmeserverist"
 
 msgid "|PGM|use PGM as the PIN-Entry program"
 msgstr ""
@@ -404,7 +401,7 @@ msgstr "Palun saatke veateated aadressil <gnupg-bugs@gnu.org>.\n"
 
 #, fuzzy
 msgid "Usage: @GPG_AGENT@ [options] (-h for help)"
-msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
+msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
 
 msgid ""
 "Syntax: @GPG_AGENT@ [options] [command [args]]\n"
@@ -418,26 +415,26 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "NOTE: no default option file `%s'\n"
 msgid "Note: no default option file '%s'\n"
-msgstr "MÄRKUS: vaikimisi võtmete fail `%s' puudub\n"
+msgstr "MÄRKUS: vaikimisi võtmete fail `%s' puudub\n"
 
 #, fuzzy, c-format
 #| msgid "option file `%s': %s\n"
 msgid "option file '%s': %s\n"
-msgstr "võtmete fail `%s': %s\n"
+msgstr "võtmete fail `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "reading options from `%s'\n"
 msgid "reading options from '%s'\n"
-msgstr "loen võtmeid failist `%s'\n"
+msgstr "loen võtmeid failist `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: \"%s\" is a deprecated option\n"
 msgid "Note: '%s' is not considered an option\n"
-msgstr "HOIATUS: võtit \"%s\" ei soovitata kasutada.\n"
+msgstr "HOIATUS: võtit \"%s\" ei soovitata kasutada.\n"
 
 #, fuzzy, c-format
 msgid "can't create socket: %s\n"
-msgstr "%s ei õnnestu luua: %s\n"
+msgstr "%s ei õnnestu luua: %s\n"
 
 #, c-format
 msgid "socket name '%s' is too long\n"
@@ -457,20 +454,20 @@ msgstr "viga teate saatmisel serverile `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "can't set permissions of '%s': %s\n"
-msgstr "HOIATUS: ebaturvalised õigused %s \"%s\"\n"
+msgstr "HOIATUS: ebaturvalised õigused %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "listen() failed: %s\n"
-msgstr "uuendamine ebaõnnestus: %s\n"
+msgstr "uuendamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "listening on socket '%s'\n"
-msgstr "kirjutan salajase võtme faili `%s'\n"
+msgstr "kirjutan salajase võtme faili `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "can't create directory `%s': %s\n"
 msgid "can't create directory '%s': %s\n"
-msgstr "kataloogi `%s' ei õnnestu luua: %s\n"
+msgstr "kataloogi `%s' ei õnnestu luua: %s\n"
 
 #, fuzzy, c-format
 msgid "directory '%s' created\n"
@@ -478,11 +475,11 @@ msgstr "%s: kataloog on loodud\n"
 
 #, fuzzy, c-format
 msgid "stat() failed for '%s': %s\n"
-msgstr "trustdb: lugemine ebaõnnestus (n=%d): %s\n"
+msgstr "trustdb: lugemine ebaõnnestus (n=%d): %s\n"
 
 #, fuzzy, c-format
 msgid "can't use '%s' as home directory\n"
-msgstr "%s: kataloogi ei õnnestu luua: %s\n"
+msgstr "%s: kataloogi ei õnnestu luua: %s\n"
 
 #, fuzzy, c-format
 msgid "error reading nonce on fd %d: %s\n"
@@ -506,11 +503,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "npth_pselect failed: %s - waiting 1s\n"
-msgstr "salajase võtme uuendamine ebaõnnestus: %s\n"
+msgstr "salajase võtme uuendamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "%s %s stopped\n"
-msgstr "%s: jätsin vahele: %s\n"
+msgstr "%s: jätsin vahele: %s\n"
 
 #, fuzzy
 msgid "no gpg-agent running in this session\n"
@@ -518,7 +515,7 @@ msgstr "gpg-agent ei ole sesses sessioonis kasutatav\n"
 
 #, fuzzy
 msgid "Usage: gpg-preset-passphrase [options] KEYGRIP (-h for help)\n"
-msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
+msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
 
 msgid ""
 "Syntax: gpg-preset-passphrase [options] KEYGRIP\n"
@@ -529,7 +526,7 @@ msgid ""
 "@Commands:\n"
 " "
 msgstr ""
-"@Käsud:\n"
+"@Käsud:\n"
 " "
 
 msgid ""
@@ -538,12 +535,12 @@ msgid ""
 " "
 msgstr ""
 "@\n"
-"Võtmed:\n"
+"Võtmed:\n"
 " "
 
 #, fuzzy
 msgid "Usage: gpg-protect-tool [options] (-h for help)\n"
-msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
+msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
 
 msgid ""
 "Syntax: gpg-protect-tool [options] [args]\n"
@@ -583,7 +580,7 @@ msgstr "viga `%s' lugemisel: %s\n"
 
 #, fuzzy, c-format
 msgid "file '%s', line %d: %s\n"
-msgstr "võtit '%s' ei leitud: %s\n"
+msgstr "võtit '%s' ei leitud: %s\n"
 
 #, fuzzy, c-format
 msgid "statement \"%s\" ignored in '%s', line %d\n"
@@ -591,7 +588,7 @@ msgstr "viga lugemisel: %s\n"
 
 #, fuzzy, c-format
 msgid "system trustlist '%s' not available\n"
-msgstr "salajase võtme komponendid ei ole kättesaadavad\n"
+msgstr "salajase võtme komponendid ei ole kättesaadavad\n"
 
 #, fuzzy, c-format
 msgid "bad fingerprint in '%s', line %d\n"
@@ -599,7 +596,7 @@ msgstr "viga lugemisel: %s\n"
 
 #, fuzzy, c-format
 msgid "invalid keyflag in '%s', line %d\n"
-msgstr "viga: vigane sõrmejälg\n"
+msgstr "viga: vigane sõrmejälg\n"
 
 #, fuzzy, c-format
 msgid "error reading '%s', line %d: %s\n"
@@ -673,11 +670,11 @@ msgstr ""
 msgid ""
 "Do you really want to delete the key identified by keygrip%%0A  %s%%0A  %%C"
 "%%0A?"
-msgstr "Kas te tõesti soovite valitud võtmeid kustutada? "
+msgstr "Kas te tõesti soovite valitud võtmeid kustutada? "
 
 #, fuzzy
 msgid "Delete key"
-msgstr "luba võti"
+msgstr "luba võti"
 
 msgid ""
 "Warning: This key is also listed for use with SSH!\n"
@@ -697,10 +694,10 @@ msgstr ""
 
 #, c-format
 msgid "checking created signature failed: %s\n"
-msgstr "Loodud allkirja ei õnnestu kontrollida: %s\n"
+msgstr "Loodud allkirja ei õnnestu kontrollida: %s\n"
 
 msgid "secret key parts are not available\n"
-msgstr "salajase võtme komponendid ei ole kättesaadavad\n"
+msgstr "salajase võtme komponendid ei ole kättesaadavad\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
@@ -729,9 +726,9 @@ msgstr "viga parooli loomisel: %s\n"
 msgid "error forking process: %s\n"
 msgstr "viga `%s' lugemisel: %s\n"
 
-#, fuzzy, c-format
-msgid "waiting for processes to terminate failed: %s\n"
-msgstr "uuendamine ebaõnnestus: %s\n"
+#, c-format
+msgid "waiting for process %d to terminate failed: %s\n"
+msgstr ""
 
 #, fuzzy, c-format
 msgid "error running '%s': probably not installed\n"
@@ -746,17 +743,17 @@ msgid "error running '%s': terminated\n"
 msgstr "viga `%s' lugemisel: %s\n"
 
 #, fuzzy, c-format
-msgid "error getting exit code of process %d: %s\n"
-msgstr "viga salajase võtme võtmehoidlasse `%s' kirjutamisel: %s\n"
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "uuendamine ebaõnnestus: %s\n"
 
-#, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr ""
+#, fuzzy, c-format
+msgid "error getting exit code of process %d: %s\n"
+msgstr "viga salajase võtme võtmehoidlasse `%s' kirjutamisel: %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to '%s': %s\n"
-msgstr "ei õnnestu luua ühendust serveriga `%s': %s\n"
+msgstr "ei õnnestu luua ühendust serveriga `%s': %s\n"
 
 #, fuzzy
 msgid "problem setting the gpg-agent options\n"
@@ -764,7 +761,7 @@ msgstr "probleem agendiga: agent tagastas 0x%lx\n"
 
 #, c-format
 msgid "can't disable core dumps: %s\n"
-msgstr "ei õnnestu blokeerida mälupildi salvestamist: %s\n"
+msgstr "ei õnnestu blokeerida mälupildi salvestamist: %s\n"
 
 #, fuzzy, c-format
 msgid "Warning: unsafe ownership on %s \"%s\"\n"
@@ -772,7 +769,15 @@ msgstr "HOIATUS: ebaturvaline omanik %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
-msgstr "HOIATUS: ebaturvalised õigused %s \"%s\"\n"
+msgstr "HOIATUS: ebaturvalised õigused %s \"%s\"\n"
+
+#, fuzzy, c-format
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "uuendamine ebaõnnestus: %s\n"
+
+#, fuzzy, c-format
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "pakendamine ebaõnnestus: %s\n"
 
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "yes"
@@ -790,7 +795,7 @@ msgstr "eE"
 
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "quit"
-msgstr "välju"
+msgstr "välju"
 
 msgid "qQ"
 msgstr "vV"
@@ -820,7 +825,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error allocating enough memory: %s\n"
-msgstr "viga võtmehoidla `%s' loomisel: %s\n"
+msgstr "viga võtmehoidla `%s' loomisel: %s\n"
 
 #, c-format
 msgid "%s:%u: obsolete option \"%s\" - it has no effect\n"
@@ -828,7 +833,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "WARNING: \"%s%s\" is an obsolete option - it has no effect\n"
-msgstr "HOIATUS: võtit \"%s\" ei soovitata kasutada.\n"
+msgstr "HOIATUS: võtit \"%s\" ei soovitata kasutada.\n"
 
 #, c-format
 msgid "unknown debug flag '%s' ignored\n"
@@ -911,11 +916,11 @@ msgstr ""
 
 #, fuzzy
 msgid "Data available"
-msgstr "Võtme leiate: "
+msgstr "Võtme leiate: "
 
 #, fuzzy
 msgid "Session key created"
-msgstr "%s: võtmehoidla on loodud\n"
+msgstr "%s: võtmehoidla on loodud\n"
 
 #, fuzzy, c-format
 msgid "algorithm: %s"
@@ -929,7 +934,7 @@ msgstr ""
 
 #, fuzzy
 msgid "seems to be not encrypted"
-msgstr "krüptimata"
+msgstr "krüptimata"
 
 msgid "Number of recipients"
 msgstr ""
@@ -943,7 +948,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "data hash algorithm: %s"
-msgstr "vigane räsialgoritm `%s'\n"
+msgstr "vigane räsialgoritm `%s'\n"
 
 #, fuzzy, c-format
 msgid "Signer %d"
@@ -951,7 +956,7 @@ msgstr "Allkiri aegus %s\n"
 
 #, fuzzy, c-format
 msgid "attr hash algorithm: %s"
-msgstr "vigane räsialgoritm `%s'\n"
+msgstr "vigane räsialgoritm `%s'\n"
 
 msgid "Data decryption succeeded"
 msgstr ""
@@ -962,7 +967,7 @@ msgstr "kaitse algoritm %d%s ei ole toetatud\n"
 
 #, fuzzy
 msgid "Data verification succeeded"
-msgstr "allkirja kontroll jäeti ära\n"
+msgstr "allkirja kontroll jäeti ära\n"
 
 #, fuzzy
 msgid "Signature available"
@@ -974,7 +979,7 @@ msgstr "Korrektne allkiri kasutajalt \""
 
 #, fuzzy, c-format
 msgid "bad data hash algorithm: %s"
-msgstr "vigane räsialgoritm `%s'\n"
+msgstr "vigane räsialgoritm `%s'\n"
 
 #, fuzzy, c-format
 msgid "Signature %d"
@@ -982,7 +987,7 @@ msgstr "Allkiri aegus %s\n"
 
 #, fuzzy
 msgid "Certificate chain valid"
-msgstr "See võti on aegunud!"
+msgstr "See võti on aegunud!"
 
 #, fuzzy
 msgid "Root certificate trustworthy"
@@ -994,7 +999,7 @@ msgstr "halb sertifikaat"
 
 #, fuzzy
 msgid "the available CRL is too old"
-msgstr "Võtme leiate: "
+msgstr "Võtme leiate: "
 
 #, fuzzy
 msgid "CRL/OCSP check of certificates"
@@ -1023,7 +1028,7 @@ msgstr "`%s' kohta abiinfo puudub"
 
 #, fuzzy
 msgid "ignoring garbage line"
-msgstr "viga lõpetaval real\n"
+msgstr "viga lõpetaval real\n"
 
 #, fuzzy
 msgid "[none]"
@@ -1031,7 +1036,7 @@ msgstr "tundmatu"
 
 #, fuzzy
 msgid "argument not expected"
-msgstr "kirjutan salajase võtme faili `%s'\n"
+msgstr "kirjutan salajase võtme faili `%s'\n"
 
 #, fuzzy
 msgid "read error"
@@ -1052,19 +1057,19 @@ msgstr "vigane pakend"
 
 #, fuzzy
 msgid "invalid command"
-msgstr "vastuolulised käsud\n"
+msgstr "vastuolulised käsud\n"
 
 #, fuzzy
 msgid "invalid alias definition"
-msgstr "vigased impordi võtmed\n"
+msgstr "vigased impordi võtmed\n"
 
 #, fuzzy
 msgid "out of core"
-msgstr "ei töödeldud"
+msgstr "ei töödeldud"
 
 #, fuzzy
 msgid "invalid option"
-msgstr "vigased impordi võtmed\n"
+msgstr "vigased impordi võtmed\n"
 
 #, c-format
 msgid "missing argument for option \"%.50s\"\n"
@@ -1072,7 +1077,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid argument for option \"%.50s\"\n"
-msgstr "vigased impordi võtmed\n"
+msgstr "vigased impordi võtmed\n"
 
 #, c-format
 msgid "option \"%.50s\" does not expect an argument\n"
@@ -1080,7 +1085,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid command \"%.50s\"\n"
-msgstr "Vigane käsklus (proovige \"help\")\n"
+msgstr "Vigane käsklus (proovige \"help\")\n"
 
 #, c-format
 msgid "option \"%.50s\" is ambiguous\n"
@@ -1092,31 +1097,31 @@ msgstr ""
 
 #, fuzzy
 msgid "out of core\n"
-msgstr "ei töödeldud"
+msgstr "ei töödeldud"
 
 #, fuzzy, c-format
 msgid "invalid option \"%.50s\"\n"
-msgstr "vigased impordi võtmed\n"
+msgstr "vigased impordi võtmed\n"
 
 #, fuzzy, c-format
 msgid "conversion from '%s' to '%s' not available\n"
-msgstr "pakendamine ebaõnnestus: %s\n"
+msgstr "pakendamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "iconv_open failed: %s\n"
-msgstr "faili ei õnnestu avada: %s\n"
+msgstr "faili ei õnnestu avada: %s\n"
 
 #, fuzzy, c-format
 msgid "conversion from '%s' to '%s' failed: %s\n"
-msgstr "pakendamine ebaõnnestus: %s\n"
+msgstr "pakendamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to create temporary file '%s': %s\n"
-msgstr "kataloogi `%s' ei õnnestu luua: %s\n"
+msgstr "kataloogi `%s' ei õnnestu luua: %s\n"
 
 #, fuzzy, c-format
 msgid "error writing to '%s': %s\n"
-msgstr "viga võtmehoidlasse `%s' kirjutamisel: %s\n"
+msgstr "viga võtmehoidlasse `%s' kirjutamisel: %s\n"
 
 #, c-format
 msgid "removing stale lockfile (created by %d)\n"
@@ -1124,18 +1129,18 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "waiting for lock (held by %d%s) %s...\n"
-msgstr "kirjutan salajase võtme faili `%s'\n"
+msgstr "kirjutan salajase võtme faili `%s'\n"
 
 msgid "(deadlock?) "
 msgstr ""
 
 #, fuzzy, c-format
 msgid "lock '%s' not made: %s\n"
-msgstr "ei leia avalikku võtit %08lX: %s\n"
+msgstr "ei leia avalikku võtit %08lX: %s\n"
 
 #, fuzzy, c-format
 msgid "waiting for lock %s...\n"
-msgstr "kirjutan salajase võtme faili `%s'\n"
+msgstr "kirjutan salajase võtme faili `%s'\n"
 
 #, c-format
 msgid "%s is too old (need %s, have %s)\n"
@@ -1146,37 +1151,37 @@ msgid "armor: %s\n"
 msgstr "pakend: %s\n"
 
 msgid "invalid armor header: "
-msgstr "vigane pakendi päis: "
+msgstr "vigane pakendi päis: "
 
 msgid "armor header: "
-msgstr "pakendi päis: "
+msgstr "pakendi päis: "
 
 msgid "invalid clearsig header\n"
-msgstr "vigane avateksti allkirja päis\n"
+msgstr "vigane avateksti allkirja päis\n"
 
 #, fuzzy
 msgid "unknown armor header: "
-msgstr "pakendi päis: "
+msgstr "pakendi päis: "
 
 msgid "nested clear text signatures\n"
-msgstr "avateksti allkirjad üksteise sees\n"
+msgstr "avateksti allkirjad üksteise sees\n"
 
 #, fuzzy
 msgid "unexpected armor: "
 msgstr "ootamatu pakend:"
 
 msgid "invalid dash escaped line: "
-msgstr "vigane kriipsudega märgitud rida: "
+msgstr "vigane kriipsudega märgitud rida: "
 
 #, fuzzy, c-format
 msgid "invalid radix64 character %02X skipped\n"
-msgstr "vigane radix64 sümbol %02x vahele jäetud\n"
+msgstr "vigane radix64 sümbol %02x vahele jäetud\n"
 
 msgid "premature eof (no CRC)\n"
-msgstr "enneaegne faililõpp (puudub CRC)\n"
+msgstr "enneaegne faililõpp (puudub CRC)\n"
 
 msgid "premature eof (in CRC)\n"
-msgstr "enneaegne faililõpp (poolik CRC)\n"
+msgstr "enneaegne faililõpp (poolik CRC)\n"
 
 msgid "malformed CRC\n"
 msgstr "vigane CRC\n"
@@ -1187,22 +1192,22 @@ msgstr "CRC viga; %06lx - %06lx\n"
 
 #, fuzzy
 msgid "premature eof (in trailer)\n"
-msgstr "enneaegne faililõpp (lõpetaval real)\n"
+msgstr "enneaegne faililõpp (lõpetaval real)\n"
 
 msgid "error in trailer line\n"
-msgstr "viga lõpetaval real\n"
+msgstr "viga lõpetaval real\n"
 
 msgid "no valid OpenPGP data found.\n"
 msgstr "ei leia OpenPGP andmeid.\n"
 
 #, c-format
 msgid "invalid armor: line longer than %d characters\n"
-msgstr "vigane pakend: rida on pikem, kui %d sümbolit\n"
+msgstr "vigane pakend: rida on pikem, kui %d sümbolit\n"
 
 msgid ""
 "quoted printable character in armor - probably a buggy MTA has been used\n"
 msgstr ""
-"kvooditud sümbol pakendis - tõenäoliselt on kasutatud vigast MTA programmi\n"
+"kvooditud sümbol pakendis - tõenäoliselt on kasutatud vigast MTA programmi\n"
 
 #, fuzzy, c-format
 #| msgid "not human readable"
@@ -1213,22 +1218,22 @@ msgid ""
 "a notation name must have only printable characters or spaces, and end with "
 "an '='\n"
 msgstr ""
-"noteerimise nimes võivad olla ainult trükitavad sümbolid või tühikud\n"
-"ning lõpus peab olema '='\n"
+"noteerimise nimes võivad olla ainult trükitavad sümbolid või tühikud\n"
+"ning lõpus peab olema '='\n"
 
 msgid "a user notation name must contain the '@' character\n"
-msgstr "kasutaja noteerimise nimi peab sisaldama '@' märki\n"
+msgstr "kasutaja noteerimise nimi peab sisaldama '@' märki\n"
 
 #, fuzzy
 msgid "a notation name must not contain more than one '@' character\n"
-msgstr "kasutaja noteerimise nimi peab sisaldama '@' märki\n"
+msgstr "kasutaja noteerimise nimi peab sisaldama '@' märki\n"
 
 msgid "a notation value must not use any control characters\n"
-msgstr "noteerimise väärtus ei või sisaldada kontroll sümboleid\n"
+msgstr "noteerimise väärtus ei või sisaldada kontroll sümboleid\n"
 
 #, fuzzy
 msgid "a notation name may not contain an '=' character\n"
-msgstr "kasutaja noteerimise nimi peab sisaldama '@' märki\n"
+msgstr "kasutaja noteerimise nimi peab sisaldama '@' märki\n"
 
 #, fuzzy
 #| msgid ""
@@ -1236,8 +1241,8 @@ msgstr "kasutaja noteerimise nimi peab sisaldama '@' m
 #| "with an '='\n"
 msgid "a notation name must have only printable characters or spaces\n"
 msgstr ""
-"noteerimise nimes võivad olla ainult trükitavad sümbolid või tühikud\n"
-"ning lõpus peab olema '='\n"
+"noteerimise nimes võivad olla ainult trükitavad sümbolid või tühikud\n"
+"ning lõpus peab olema '='\n"
 
 msgid "WARNING: invalid notation data found\n"
 msgstr "HOIATUS: leidsin vigased noteerimise andmed\n"
@@ -1252,7 +1257,7 @@ msgstr "Sisestage parool: "
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
 msgid "error getting version from '%s': %s\n"
-msgstr "viga võtmehoidla `%s' loomisel: %s\n"
+msgstr "viga võtmehoidla `%s' loomisel: %s\n"
 
 #, c-format
 msgid "server '%s' is older than us (%s < %s)"
@@ -1261,11 +1266,11 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "WARNING: %s overrides %s\n"
 msgid "WARNING: %s\n"
-msgstr "HOIATUS: %s määrab üle %s\n"
+msgstr "HOIATUS: %s määrab üle %s\n"
 
 #, fuzzy, c-format
 msgid "OpenPGP card not available: %s\n"
-msgstr "salajane võti ei ole kättesaadav"
+msgstr "salajane võti ei ole kättesaadav"
 
 #, c-format
 msgid "OpenPGP card no. %s detected\n"
@@ -1277,11 +1282,11 @@ msgstr "seda ei saa teha pakettmoodis\n"
 
 #, fuzzy
 msgid "This command is only available for version 2 cards\n"
-msgstr "See käsklus ei ole %s moodis lubatud.\n"
+msgstr "See käsklus ei ole %s moodis lubatud.\n"
 
 #, fuzzy
 msgid "Reset Code not or not anymore available\n"
-msgstr "salajase võtme komponendid ei ole kättesaadavad\n"
+msgstr "salajase võtme komponendid ei ole kättesaadavad\n"
 
 msgid "Your selection? "
 msgstr "Teie valik? "
@@ -1299,11 +1304,11 @@ msgstr "enable"
 
 #, fuzzy
 msgid "unspecified"
-msgstr "Põhjus puudub"
+msgstr "Põhjus puudub"
 
 #, fuzzy
 msgid "not forced"
-msgstr "ei töödeldud"
+msgstr "ei töödeldud"
 
 msgid "forced"
 msgstr ""
@@ -1329,7 +1334,7 @@ msgstr ""
 
 #, fuzzy
 msgid "URL to retrieve public key: "
-msgstr "vastavat avalikku võtit pole: %s\n"
+msgstr "vastavat avalikku võtit pole: %s\n"
 
 #, c-format
 msgid "Error: URL too long (limit is %d characters).\n"
@@ -1342,7 +1347,7 @@ msgstr "viga `%s' lugemisel: %s\n"
 
 #, fuzzy, c-format
 msgid "error writing '%s': %s\n"
-msgstr "viga võtmehoidlasse `%s' kirjutamisel: %s\n"
+msgstr "viga võtmehoidlasse `%s' kirjutamisel: %s\n"
 
 msgid "Login data (account name): "
 msgstr ""
@@ -1364,30 +1369,30 @@ msgstr "uuendatud eelistused"
 
 #, fuzzy
 msgid "Error: invalid length of preference string.\n"
-msgstr "lubamatu sümbol eelistuste sõnes\n"
+msgstr "lubamatu sümbol eelistuste sõnes\n"
 
 #, fuzzy
 msgid "Error: invalid characters in preference string.\n"
-msgstr "lubamatu sümbol eelistuste sõnes\n"
+msgstr "lubamatu sümbol eelistuste sõnes\n"
 
 msgid "Sex ((M)ale, (F)emale or space): "
 msgstr ""
 
 #, fuzzy
 msgid "Error: invalid response.\n"
-msgstr "viga: vigane sõrmejälg\n"
+msgstr "viga: vigane sõrmejälg\n"
 
 #, fuzzy
 msgid "CA fingerprint: "
-msgstr "näita sõrmejälge"
+msgstr "näita sõrmejälge"
 
 #, fuzzy
 msgid "Error: invalid formatted fingerprint.\n"
-msgstr "viga: vigane sõrmejälg\n"
+msgstr "viga: vigane sõrmejälg\n"
 
 #, fuzzy, c-format
 msgid "key operation not possible: %s\n"
-msgstr "Võtme genereerimine ebaõnnestus: %s\n"
+msgstr "Võtme genereerimine ebaõnnestus: %s\n"
 
 #, fuzzy
 msgid "not an OpenPGP card"
@@ -1395,7 +1400,7 @@ msgstr "ei leia OpenPGP andmeid.\n"
 
 #, fuzzy, c-format
 msgid "error getting current key info: %s\n"
-msgstr "viga salajase võtme võtmehoidlasse `%s' kirjutamisel: %s\n"
+msgstr "viga salajase võtme võtmehoidlasse `%s' kirjutamisel: %s\n"
 
 msgid "Replace existing key? (y/N) "
 msgstr ""
@@ -1408,19 +1413,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the Signature key? (%u) "
-msgstr "Millist võtmepikkust te soovite? (1024) "
+msgstr "Millist võtmepikkust te soovite? (1024) "
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the Encryption key? (%u) "
-msgstr "Millist võtmepikkust te soovite? (1024) "
+msgstr "Millist võtmepikkust te soovite? (1024) "
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the Authentication key? (%u) "
-msgstr "Millist võtmepikkust te soovite? (1024) "
+msgstr "Millist võtmepikkust te soovite? (1024) "
 
 #, c-format
 msgid "rounded up to %u bits\n"
-msgstr "ümardatud üles %u bitini\n"
+msgstr "ümardatud üles %u bitini\n"
 
 #, c-format
 msgid "%s keysizes must be in the range %u-%u\n"
@@ -1439,7 +1444,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Note: keys are already stored on the card!\n"
-msgstr "jätsin vahele: avalik võti on juba olemas\n"
+msgstr "jätsin vahele: avalik võti on juba olemas\n"
 
 msgid "Replace existing keys? (y/N) "
 msgstr ""
@@ -1453,7 +1458,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Please select the type of key to generate:\n"
-msgstr "Palun valige, millist võtmetüüpi te soovite:\n"
+msgstr "Palun valige, millist võtmetüüpi te soovite:\n"
 
 #, fuzzy
 msgid "   (1) Signature key\n"
@@ -1461,7 +1466,7 @@ msgstr "Allkiri aegus %s\n"
 
 #, fuzzy
 msgid "   (2) Encryption key\n"
-msgstr "   (%d) RSA (ainult krüpteerimiseks)\n"
+msgstr "   (%d) RSA (ainult krüpteerimiseks)\n"
 
 msgid "   (3) Authentication key\n"
 msgstr ""
@@ -1471,41 +1476,41 @@ msgstr "Vigane valik.\n"
 
 #, fuzzy
 msgid "Please select where to store the key:\n"
-msgstr "Palun valige tühistamise põhjus:\n"
+msgstr "Palun valige tühistamise põhjus:\n"
 
 #, fuzzy, c-format
 msgid "KEYTOCARD failed: %s\n"
-msgstr "uuendamine ebaõnnestus: %s\n"
+msgstr "uuendamine ebaõnnestus: %s\n"
 
 #, fuzzy
 #| msgid "This command is not allowed while in %s mode.\n"
 msgid "This command is not supported by this card\n"
-msgstr "See käsklus ei ole %s moodis lubatud.\n"
+msgstr "See käsklus ei ole %s moodis lubatud.\n"
 
 #, fuzzy
 msgid "Note: This command destroys all keys stored on the card!\n"
-msgstr "jätsin vahele: avalik võti on juba olemas\n"
+msgstr "jätsin vahele: avalik võti on juba olemas\n"
 
 #, fuzzy
 msgid "Continue? (y/N) "
-msgstr "Allkirjastan tõesti? "
+msgstr "Allkirjastan tõesti? "
 
 msgid "Really do a factory reset? (enter \"yes\") "
 msgstr ""
 
 msgid "quit this menu"
-msgstr "välju sellest menüüst"
+msgstr "välju sellest menüüst"
 
 #, fuzzy
 msgid "show admin commands"
-msgstr "vastuolulised käsud\n"
+msgstr "vastuolulised käsud\n"
 
 msgid "show this help"
-msgstr "näita seda abiinfot"
+msgstr "näita seda abiinfot"
 
 #, fuzzy
 msgid "list all available data"
-msgstr "Võtme leiate: "
+msgstr "Võtme leiate: "
 
 msgid "change card holder's name"
 msgstr ""
@@ -1518,7 +1523,7 @@ msgstr ""
 
 #, fuzzy
 msgid "change the login name"
-msgstr "muuda aegumise kuupäeva"
+msgstr "muuda aegumise kuupäeva"
 
 #, fuzzy
 msgid "change the language preferences"
@@ -1529,14 +1534,14 @@ msgstr ""
 
 #, fuzzy
 msgid "change a CA fingerprint"
-msgstr "näita sõrmejälge"
+msgstr "näita sõrmejälge"
 
 msgid "toggle the signature force PIN flag"
 msgstr ""
 
 #, fuzzy
 msgid "generate new keys"
-msgstr "genereeri uus võtmepaar"
+msgstr "genereeri uus võtmepaar"
 
 msgid "menu to change or unblock the PIN"
 msgstr ""
@@ -1555,57 +1560,57 @@ msgstr ""
 
 #, fuzzy
 msgid "Admin-only command\n"
-msgstr "vastuolulised käsud\n"
+msgstr "vastuolulised käsud\n"
 
 #, fuzzy
 msgid "Admin commands are allowed\n"
-msgstr "vastuolulised käsud\n"
+msgstr "vastuolulised käsud\n"
 
 #, fuzzy
 msgid "Admin commands are not allowed\n"
-msgstr "kirjutan salajase võtme faili `%s'\n"
+msgstr "kirjutan salajase võtme faili `%s'\n"
 
 msgid "Invalid command  (try \"help\")\n"
-msgstr "Vigane käsklus (proovige \"help\")\n"
+msgstr "Vigane käsklus (proovige \"help\")\n"
 
 msgid "--output doesn't work for this command\n"
-msgstr "võti --output ei tööta selle käsuga\n"
+msgstr "võti --output ei tööta selle käsuga\n"
 
 #, fuzzy, c-format
 #| msgid "can't open `%s'\n"
 msgid "can't open '%s'\n"
-msgstr "`%s' ei õnnestu avada\n"
+msgstr "`%s' ei õnnestu avada\n"
 
 #, fuzzy, c-format
 msgid "key \"%s\" not found: %s\n"
-msgstr "võtit '%s' ei leitud: %s\n"
+msgstr "võtit '%s' ei leitud: %s\n"
 
 #, c-format
 msgid "error reading keyblock: %s\n"
-msgstr "viga võtmebloki lugemisel: %s\n"
+msgstr "viga võtmebloki lugemisel: %s\n"
 
 #, fuzzy, c-format
 msgid "key \"%s\" not found\n"
-msgstr "võtit '%s' ei leitud: %s\n"
+msgstr "võtit '%s' ei leitud: %s\n"
 
 msgid "(unless you specify the key by fingerprint)\n"
-msgstr "(kui te just ei määra võtit sõrmejäljega)\n"
+msgstr "(kui te just ei määra võtit sõrmejäljega)\n"
 
 #, fuzzy
 msgid "can't do this in batch mode without \"--yes\"\n"
-msgstr "pakettmoodis ei õnnestu seda teha võtmeta \"--yes\"\n"
+msgstr "pakettmoodis ei õnnestu seda teha võtmeta \"--yes\"\n"
 
 #, fuzzy
 msgid "Delete this key from the keyring? (y/N) "
-msgstr "Kustutan selle võtme võtmehoidlast? "
+msgstr "Kustutan selle võtme võtmehoidlast? "
 
 #, fuzzy
 msgid "This is a secret key! - really delete? (y/N) "
-msgstr "See on salajane võti! - kas kustutan tõesti? "
+msgstr "See on salajane võti! - kas kustutan tõesti? "
 
 #, fuzzy, c-format
 msgid "deleting secret %s failed: %s\n"
-msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
+msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
 
 msgid "key"
 msgstr "key"
@@ -1613,32 +1618,32 @@ msgstr "key"
 #, fuzzy
 #| msgid "Pubkey: "
 msgid "subkey"
-msgstr "Avalik võti: "
+msgstr "Avalik võti: "
 
 #, c-format
 msgid "deleting keyblock failed: %s\n"
-msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
+msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
 
 msgid "ownertrust information cleared\n"
 msgstr "omaniku usalduse info puhastatud\n"
 
 #, c-format
 msgid "there is a secret key for public key \"%s\"!\n"
-msgstr "avaliku võtme \"%s\" jaoks on salajane võti!\n"
+msgstr "avaliku võtme \"%s\" jaoks on salajane võti!\n"
 
 msgid "use option \"--delete-secret-keys\" to delete it first.\n"
-msgstr "selle kustutamiseks kasutage võtit \"--delete-secret-keys\".\n"
+msgstr "selle kustutamiseks kasutage võtit \"--delete-secret-keys\".\n"
 
 #, c-format
 msgid "error creating passphrase: %s\n"
 msgstr "viga parooli loomisel: %s\n"
 
 msgid "can't use a symmetric ESK packet due to the S2K mode\n"
-msgstr "S2K moodi tõttu ei saa sümmeetrilist ESK paketti kasutada\n"
+msgstr "S2K moodi tõttu ei saa sümmeetrilist ESK paketti kasutada\n"
 
 #, c-format
 msgid "using cipher %s\n"
-msgstr "kasutan ¨iffrit %s\n"
+msgstr "kasutan šiffrit %s\n"
 
 #, fuzzy, c-format
 #| msgid "`%s' already compressed\n"
@@ -1648,7 +1653,7 @@ msgstr "`%s' on juba pakitud\n"
 #, fuzzy, c-format
 #| msgid "WARNING: `%s' is an empty file\n"
 msgid "WARNING: '%s' is an empty file\n"
-msgstr "HOIATUS: `%s' on tühi fail\n"
+msgstr "HOIATUS: `%s' on tühi fail\n"
 
 #, fuzzy, c-format
 #| msgid "reading from `%s'\n"
@@ -1659,7 +1664,7 @@ msgstr "loen failist `%s'\n"
 msgid ""
 "WARNING: forcing symmetric cipher %s (%d) violates recipient preferences\n"
 msgstr ""
-"sümmetrilise ¨ifri %s (%d) kasutamine on vastuolus saaja eelistustega\n"
+"sümmetrilise šifri %s (%d) kasutamine on vastuolus saaja eelistustega\n"
 
 #, fuzzy, c-format
 msgid ""
@@ -1671,11 +1676,11 @@ msgstr ""
 #, c-format
 msgid "forcing symmetric cipher %s (%d) violates recipient preferences\n"
 msgstr ""
-"sümmetrilise ¨ifri %s (%d) kasutamine on vastuolus saaja eelistustega\n"
+"sümmetrilise šifri %s (%d) kasutamine on vastuolus saaja eelistustega\n"
 
 #, c-format
 msgid "%s/%s encrypted for: \"%s\"\n"
-msgstr "%s/%s krüptitud kasutajale: \"%s\"\n"
+msgstr "%s/%s krüptitud kasutajale: \"%s\"\n"
 
 #, c-format
 msgid "you may not use %s while in %s mode\n"
@@ -1683,55 +1688,55 @@ msgstr "%s ei ole moodis %s lubatud.\n"
 
 #, c-format
 msgid "%s encrypted data\n"
-msgstr "%s krüpteeritud andmed\n"
+msgstr "%s krüpteeritud andmed\n"
 
 #, c-format
 msgid "encrypted with unknown algorithm %d\n"
-msgstr "krüpteeritud tundmatu algoritmiga %d\n"
+msgstr "krüpteeritud tundmatu algoritmiga %d\n"
 
 msgid ""
 "WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
-msgstr "HOIATUS: teade on krüptitud sümmeetrilise ¨ifri nõrga võtmega.\n"
+msgstr "HOIATUS: teade on krüptitud sümmeetrilise šifri nõrga võtmega.\n"
 
 msgid "problem handling encrypted packet\n"
-msgstr "probleem krüptitud paketi käsitlemisel\n"
+msgstr "probleem krüptitud paketi käsitlemisel\n"
 
 msgid "no remote program execution supported\n"
-msgstr "mittelokaalse programmi käivitamist ei toetata\n"
+msgstr "mittelokaalse programmi käivitamist ei toetata\n"
 
 msgid ""
 "external program calls are disabled due to unsafe options file permissions\n"
 msgstr ""
-"väliste programmide käivitamine on blokeeritud, kuna seadete failil on\n"
-"ebaturvalised õigused\n"
+"väliste programmide käivitamine on blokeeritud, kuna seadete failil on\n"
+"ebaturvalised õigused\n"
 
 #, fuzzy
 msgid "this platform requires temporary files when calling external programs\n"
 msgstr ""
-"see platvorm nõuab väliste programmide käivitamiseks ajutiste failide "
+"see platvorm nõuab väliste programmide käivitamiseks ajutiste failide "
 "kasutamist\n"
 
 #, fuzzy, c-format
 msgid "unable to execute program '%s': %s\n"
-msgstr "ei Õnnestu käivitada %s \"%s\": %s\n"
+msgstr "ei Õnnestu käivitada %s \"%s\": %s\n"
 
 #, fuzzy, c-format
 msgid "unable to execute shell '%s': %s\n"
-msgstr "ei Õnnestu käivitada %s \"%s\": %s\n"
+msgstr "ei Õnnestu käivitada %s \"%s\": %s\n"
 
 #, c-format
 msgid "system error while calling external program: %s\n"
-msgstr "süsteemi viga välise programmi kasutamisel: %s\n"
+msgstr "süsteemi viga välise programmi kasutamisel: %s\n"
 
 msgid "unnatural exit of external program\n"
-msgstr "väline programm lõpetas erandlikult\n"
+msgstr "väline programm lõpetas erandlikult\n"
 
 msgid "unable to execute external program\n"
-msgstr "välist programmi ei õnnestu käivitada\n"
+msgstr "välist programmi ei õnnestu käivitada\n"
 
 #, c-format
 msgid "unable to read external program response: %s\n"
-msgstr "ei õnnestu lugeda välise programmi vastust: %s\n"
+msgstr "ei õnnestu lugeda välise programmi vastust: %s\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unable to remove tempfile (%s) `%s': %s\n"
@@ -1741,13 +1746,13 @@ msgstr "HOIATUS: ei saa kustutada ajutist faili (%s) `%s': %s\n"
 #, fuzzy, c-format
 #| msgid "WARNING: unable to remove temp directory `%s': %s\n"
 msgid "WARNING: unable to remove temp directory '%s': %s\n"
-msgstr "HOIATUS: ei õnnestu eemaldada ajutist kataloogi `%s': %s\n"
+msgstr "HOIATUS: ei õnnestu eemaldada ajutist kataloogi `%s': %s\n"
 
 #, fuzzy
 msgid "export signatures that are marked as local-only"
 msgstr ""
 "\n"
-"Allkiri märgitakse kehtetuks mitte-tunnistatavaks.\n"
+"Allkiri märgitakse kehtetuks mitte-tunnistatavaks.\n"
 
 msgid "export attribute user IDs (generally photo IDs)"
 msgstr ""
@@ -1755,12 +1760,12 @@ msgstr ""
 #, fuzzy
 msgid "export revocation keys marked as \"sensitive\""
 msgstr ""
-"`%s' jaoks pole tühistamise võtmeid\n"
+"`%s' jaoks pole tühistamise võtmeid\n"
 "\n"
 
 #, fuzzy
 msgid "remove unusable parts from key during export"
-msgstr "mittekasutatav salajane võti"
+msgstr "mittekasutatav salajane võti"
 
 msgid "remove as much as possible from key during export"
 msgstr ""
@@ -1768,7 +1773,7 @@ msgstr ""
 #, fuzzy
 #| msgid "%s: skipped: %s\n"
 msgid " - skipped"
-msgstr "%s: jätsin vahele: %s\n"
+msgstr "%s: jätsin vahele: %s\n"
 
 #, fuzzy, c-format
 #| msgid "writing to `%s'\n"
@@ -1777,15 +1782,15 @@ msgstr "kirjutan faili `%s'\n"
 
 #, fuzzy, c-format
 msgid "key %s: key material on-card - skipped\n"
-msgstr "võti %08lX: alamvõtme allkiri on vales kohas - jätan vahele\n"
+msgstr "võti %08lX: alamvõtme allkiri on vales kohas - jätan vahele\n"
 
 #, fuzzy
 msgid "exporting secret keys not allowed\n"
-msgstr "kirjutan salajase võtme faili `%s'\n"
+msgstr "kirjutan salajase võtme faili `%s'\n"
 
 #, fuzzy, c-format
 msgid "key %s: PGP 2.x style key - skipped\n"
-msgstr "võti %08lX: PGP 2.x stiilis võti - jätsin vahele\n"
+msgstr "võti %08lX: PGP 2.x stiilis võti - jätsin vahele\n"
 
 msgid "WARNING: nothing exported\n"
 msgstr "HOIATUS: midagi ei eksporditud\n"
@@ -1801,7 +1806,7 @@ msgstr "[Kasutaja id puudub]"
 
 #, fuzzy, c-format
 msgid "(check argument of option '%s')\n"
-msgstr "vigased impordi võtmed\n"
+msgstr "vigased impordi võtmed\n"
 
 #, c-format
 msgid "Warning: '%s' should be a long key ID or a fingerprint\n"
@@ -1814,7 +1819,7 @@ msgstr "viga `%s' lugemisel: %s\n"
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
 msgid "Warning: %s appears in the keyring %d times\n"
-msgstr "viga võtmehoidla `%s' loomisel: %s\n"
+msgstr "viga võtmehoidla `%s' loomisel: %s\n"
 
 #, fuzzy, c-format
 msgid "automatically retrieved '%s' via %s\n"
@@ -1826,21 +1831,21 @@ msgstr "viga `%s' loomisel: %s\n"
 
 #, fuzzy
 msgid "No fingerprint"
-msgstr "näita sõrmejälge"
+msgstr "näita sõrmejälge"
 
 #, fuzzy, c-format
 msgid "secret key \"%s\" not found: %s\n"
-msgstr "salajast võtit `%s' ei leitud: %s\n"
+msgstr "salajast võtit `%s' ei leitud: %s\n"
 
 #, fuzzy, c-format
 #| msgid "|NAME|use NAME as default secret key"
 msgid "Warning: not using '%s' as default key: %s\n"
-msgstr "|NIMI|kasuta NIME vaikimisi salajase võtmena"
+msgstr "|NIMI|kasuta NIME vaikimisi salajase võtmena"
 
 #, fuzzy, c-format
 #| msgid "|NAME|use NAME as default secret key"
 msgid "using \"%s\" as default secret key for signing\n"
-msgstr "|NIMI|kasuta NIME vaikimisi salajase võtmena"
+msgstr "|NIMI|kasuta NIME vaikimisi salajase võtmena"
 
 #, c-format
 msgid "all values passed to '%s' ignored\n"
@@ -1849,12 +1854,12 @@ msgstr ""
 #, fuzzy, c-format
 msgid "Invalid key %s made valid by --allow-non-selfsigned-uid\n"
 msgstr ""
-"Vigane võti %08lX muudeti kehtivaks võtme --allow-non-selfsigned-uid "
+"Vigane võti %08lX muudeti kehtivaks võtme --allow-non-selfsigned-uid "
 "kasutamisega\n"
 
 #, fuzzy, c-format
 msgid "using subkey %s instead of primary key %s\n"
-msgstr "kasutan sekundaarset võtit %08lX primaarse võtme %08lX asemel\n"
+msgstr "kasutan sekundaarset võtit %08lX primaarse võtme %08lX asemel\n"
 
 #, fuzzy
 msgid "make a signature"
@@ -1868,103 +1873,103 @@ msgid "make a detached signature"
 msgstr "loo eraldiseisev allkiri"
 
 msgid "encrypt data"
-msgstr "krüpteeri andmed"
+msgstr "krüpteeri andmed"
 
 msgid "encryption only with symmetric cipher"
-msgstr "krüpteerimine kasutades ainult sümmeetrilist ¨ifrit"
+msgstr "krüpteerimine kasutades ainult sümmeetrilist šifrit"
 
 msgid "decrypt data (default)"
-msgstr "dekrüpteeri andmed (vaikimisi)"
+msgstr "dekrüpteeri andmed (vaikimisi)"
 
 msgid "verify a signature"
 msgstr "kontrolli allkirja"
 
 msgid "list keys"
-msgstr "näita võtmeid"
+msgstr "näita võtmeid"
 
 msgid "list keys and signatures"
-msgstr "näita võtmeid ja allkirju"
+msgstr "näita võtmeid ja allkirju"
 
 #, fuzzy
 msgid "list and check key signatures"
-msgstr "kontrolli võtmete allkirju"
+msgstr "kontrolli võtmete allkirju"
 
 msgid "list keys and fingerprints"
-msgstr "näita võtmeid ja sõrmejälgi"
+msgstr "näita võtmeid ja sõrmejälgi"
 
 msgid "list secret keys"
-msgstr "näita salajasi võtmeid"
+msgstr "näita salajasi võtmeid"
 
 msgid "generate a new key pair"
-msgstr "genereeri uus võtmepaar"
+msgstr "genereeri uus võtmepaar"
 
 #, fuzzy
 #| msgid "generate a new key pair"
 msgid "quickly generate a new key pair"
-msgstr "genereeri uus võtmepaar"
+msgstr "genereeri uus võtmepaar"
 
 #, fuzzy
 #| msgid "generate a new key pair"
 msgid "quickly add a new user-id"
-msgstr "genereeri uus võtmepaar"
+msgstr "genereeri uus võtmepaar"
 
 #, fuzzy
 #| msgid "generate a new key pair"
 msgid "quickly revoke a user-id"
-msgstr "genereeri uus võtmepaar"
+msgstr "genereeri uus võtmepaar"
 
 msgid "full featured key pair generation"
 msgstr ""
 
 msgid "generate a revocation certificate"
-msgstr "genereeri tühistamise sertifikaat"
+msgstr "genereeri tühistamise sertifikaat"
 
 msgid "remove keys from the public keyring"
-msgstr "eemalda võtmed avalike võtmete hoidlast"
+msgstr "eemalda võtmed avalike võtmete hoidlast"
 
 msgid "remove keys from the secret keyring"
-msgstr "eemalda võtmed salajaste võtmete hoidlast"
+msgstr "eemalda võtmed salajaste võtmete hoidlast"
 
 #, fuzzy
 #| msgid "sign a key"
 msgid "quickly sign a key"
-msgstr "allkirjasta võti"
+msgstr "allkirjasta võti"
 
 #, fuzzy
 #| msgid "sign a key locally"
 msgid "quickly sign a key locally"
-msgstr "allkirjasta võti lokaalselt"
+msgstr "allkirjasta võti lokaalselt"
 
 msgid "sign a key"
-msgstr "allkirjasta võti"
+msgstr "allkirjasta võti"
 
 msgid "sign a key locally"
-msgstr "allkirjasta võti lokaalselt"
+msgstr "allkirjasta võti lokaalselt"
 
 msgid "sign or edit a key"
-msgstr "allkirjasta või toimeta võtit"
+msgstr "allkirjasta või toimeta võtit"
 
 #, fuzzy
 msgid "change a passphrase"
 msgstr "muuda parooli"
 
 msgid "export keys"
-msgstr "ekspordi võtmed"
+msgstr "ekspordi võtmed"
 
 msgid "export keys to a keyserver"
-msgstr "ekspordi võtmed võtmeserverisse"
+msgstr "ekspordi võtmed võtmeserverisse"
 
 msgid "import keys from a keyserver"
-msgstr "impordi võtmed võtmeserverist"
+msgstr "impordi võtmed võtmeserverist"
 
 msgid "search for keys on a keyserver"
-msgstr "otsi võtmeid võtmeserverist"
+msgstr "otsi võtmeid võtmeserverist"
 
 msgid "update all keys from a keyserver"
-msgstr "uuenda võtmeid võtmeserverist"
+msgstr "uuenda võtmeid võtmeserverist"
 
 msgid "import/merge keys"
-msgstr "impordi/mesti võtmed"
+msgstr "impordi/mesti võtmed"
 
 msgid "print the card status"
 msgstr ""
@@ -1980,7 +1985,7 @@ msgstr "uuenda usalduse andmebaasi"
 
 #, fuzzy
 msgid "print message digests"
-msgstr "|algo [failid]|trüki teatelühendid"
+msgstr "|algo [failid]|trüki teatelühendid"
 
 msgid "run in server mode"
 msgstr ""
@@ -1989,11 +1994,11 @@ msgid "|VALUE|set the TOFU policy for a key"
 msgstr ""
 
 msgid "create ascii armored output"
-msgstr "loo ascii pakendis väljund"
+msgstr "loo ascii pakendis väljund"
 
 #, fuzzy
 msgid "|USER-ID|encrypt for USER-ID"
-msgstr "|NIMI|krüpti NIMEle"
+msgstr "|NIMI|krüpti NIMEle"
 
 #, fuzzy
 msgid "|USER-ID|use USER-ID to sign or decrypt"
@@ -2001,7 +2006,7 @@ msgstr "kasuta seda kasutaja IDd"
 
 #, fuzzy
 msgid "|N|set compress level to N (0 disables)"
-msgstr "|N|määra pakkimise tase N (0 blokeerib)"
+msgstr "|N|määra pakkimise tase N (0 blokeerib)"
 
 msgid "use canonical text mode"
 msgstr "kasuta kanoonilist tekstimoodi"
@@ -2011,10 +2016,10 @@ msgid "|FILE|write output to FILE"
 msgstr "|FAIL|lae laiendusmoodul FAIL"
 
 msgid "do not make any changes"
-msgstr "ära tee mingeid muutusi"
+msgstr "ära tee mingeid muutusi"
 
 msgid "prompt before overwriting"
-msgstr "küsi enne ülekirjutamist"
+msgstr "küsi enne ülekirjutamist"
 
 msgid "use strict OpenPGP behavior"
 msgstr ""
@@ -2024,7 +2029,7 @@ msgid ""
 "(See the man page for a complete listing of all commands and options)\n"
 msgstr ""
 "@\n"
-"(Kõikide käskude ja võtmete täieliku kirjelduse leiate manualist)\n"
+"(Kõikide käskude ja võtmete täieliku kirjelduse leiate manualist)\n"
 
 msgid ""
 "@\n"
@@ -2037,18 +2042,18 @@ msgid ""
 " --fingerprint [names]      show fingerprints\n"
 msgstr ""
 "@\n"
-"Näited:\n"
+"Näited:\n"
 "\n"
-" -se -r Bob [fail]          allkirjasta ja krüpti kasutajale Bob\n"
+" -se -r Bob [fail]          allkirjasta ja krüpti kasutajale Bob\n"
 " --clearsign [fail]         loo avateksti allkiri\n"
 " --detach-sign [fail]       loo eraldiseisev allkiri\n"
-" --list-keys [nimed]        näita võtmeid\n"
-" --fingerprint [nimed]      näita sõrmejälgi\n"
+" --list-keys [nimed]        näita võtmeid\n"
+" --fingerprint [nimed]      näita sõrmejälgi\n"
 
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: @GPG@ [options] [files] (-h for help)"
-msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
+msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
 
 #, fuzzy
 #| msgid ""
@@ -2060,9 +2065,9 @@ msgid ""
 "Sign, check, encrypt or decrypt\n"
 "Default operation depends on the input data\n"
 msgstr ""
-"Süntaks: gpg [võtmed] [failid]\n"
-"allkirjasta, kontrolli, krüpti ja dekrüpti\n"
-"vaikimisi operatsioon sõltub sisendandmetest\n"
+"Süntaks: gpg [võtmed] [failid]\n"
+"allkirjasta, kontrolli, krüpti ja dekrüpti\n"
+"vaikimisi operatsioon sõltub sisendandmetest\n"
 
 msgid ""
 "\n"
@@ -2072,27 +2077,27 @@ msgstr ""
 "Toetatud algoritmid:\n"
 
 msgid "Pubkey: "
-msgstr "Avalik võti: "
+msgstr "Avalik võti: "
 
 msgid "Cipher: "
-msgstr "¦iffer: "
+msgstr "Šiffer: "
 
 msgid "Hash: "
-msgstr "Räsi: "
+msgstr "Räsi: "
 
 msgid "Compression: "
 msgstr "Pakkimine: "
 
 #, fuzzy, c-format
 msgid "usage: %s [options] %s\n"
-msgstr "kasuta: gpg [võtmed] "
+msgstr "kasuta: gpg [võtmed] "
 
 msgid "conflicting commands\n"
-msgstr "vastuolulised käsud\n"
+msgstr "vastuolulised käsud\n"
 
 #, fuzzy, c-format
 msgid "no = sign found in group definition '%s'\n"
-msgstr "grupi definitsioonis \"%s\" puudub sümbol =\n"
+msgstr "grupi definitsioonis \"%s\" puudub sümbol =\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe ownership on homedir '%s'\n"
@@ -2108,15 +2113,15 @@ msgstr "HOIATUS: ebaturvaline omanik %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe permissions on homedir '%s'\n"
-msgstr "HOIATUS: ebaturvalised õigused %s \"%s\"\n"
+msgstr "HOIATUS: ebaturvalised õigused %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe permissions on configuration file '%s'\n"
-msgstr "HOIATUS: ebaturvalised õigused %s \"%s\"\n"
+msgstr "HOIATUS: ebaturvalised õigused %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe permissions on extension '%s'\n"
-msgstr "HOIATUS: ebaturvalised õigused %s \"%s\"\n"
+msgstr "HOIATUS: ebaturvalised õigused %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe enclosing directory ownership on homedir '%s'\n"
@@ -2133,16 +2138,16 @@ msgstr "HOIATUS: ebaturvaline kataloogi omanik %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe enclosing directory permissions on homedir '%s'\n"
-msgstr "Hoiatus: ebaturvalised kataloogi õigused %s \"%s\"\n"
+msgstr "Hoiatus: ebaturvalised kataloogi õigused %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: unsafe enclosing directory permissions on configuration file '%s'\n"
-msgstr "Hoiatus: ebaturvalised kataloogi õigused %s \"%s\"\n"
+msgstr "Hoiatus: ebaturvalised kataloogi õigused %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe enclosing directory permissions on extension '%s'\n"
-msgstr "Hoiatus: ebaturvalised kataloogi õigused %s \"%s\"\n"
+msgstr "Hoiatus: ebaturvalised kataloogi õigused %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "unknown configuration item '%s'\n"
@@ -2153,14 +2158,14 @@ msgstr ""
 
 #, fuzzy
 msgid "show key usage information during key listings"
-msgstr "Vastavat allkirja salajaste võtmete hoidlas pole\n"
+msgstr "Vastavat allkirja salajaste võtmete hoidlas pole\n"
 
 msgid "show policy URLs during signature listings"
 msgstr ""
 
 #, fuzzy
 msgid "show all notations during signature listings"
-msgstr "Vastavat allkirja salajaste võtmete hoidlas pole\n"
+msgstr "Vastavat allkirja salajaste võtmete hoidlas pole\n"
 
 msgid "show IETF standard notations during signature listings"
 msgstr ""
@@ -2183,15 +2188,15 @@ msgstr ""
 
 #, fuzzy
 msgid "show the keyring name in key listings"
-msgstr "näita millisesse võtmehoidlasse näidatud võti kuulub"
+msgstr "näita millisesse võtmehoidlasse näidatud võti kuulub"
 
 #, fuzzy
 msgid "show expiration dates during signature listings"
-msgstr "Vastavat allkirja salajaste võtmete hoidlas pole\n"
+msgstr "Vastavat allkirja salajaste võtmete hoidlas pole\n"
 
-#, fuzzy
-msgid "available TOFU policies:\n"
-msgstr "blokeeri võti"
+#, fuzzy, c-format
+msgid "valid values for option '%s':\n"
+msgstr "vigased impordi võtmed\n"
 
 #, fuzzy, c-format
 msgid "unknown TOFU policy '%s'\n"
@@ -2201,14 +2206,18 @@ msgid "(use \"help\" to list choices)\n"
 msgstr ""
 
 #, fuzzy, c-format
+msgid "invalid value for option '%s'\n"
+msgstr "vigased impordi võtmed\n"
+
+#, fuzzy, c-format
 #| msgid "NOTE: old default options file `%s' ignored\n"
 msgid "Note: old default options file '%s' ignored\n"
-msgstr "MÄRKUS: ignoreerin vana vaikimisi võtmete faili `%s'\n"
+msgstr "MÄRKUS: ignoreerin vana vaikimisi võtmete faili `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "NOTE: %s is not for normal use!\n"
 msgid "Note: %s is not for normal use!\n"
-msgstr "MÄRKUS: %s ei ole tavapäraseks kasutamiseks!\n"
+msgstr "MÄRKUS: %s ei ole tavapäraseks kasutamiseks!\n"
 
 #, fuzzy, c-format
 msgid "'%s' is not a valid signature expiration\n"
@@ -2220,7 +2229,7 @@ msgstr "Selline e-posti aadress ei ole lubatud\n"
 
 #, fuzzy, c-format
 msgid "invalid pinentry mode '%s'\n"
-msgstr "vigane räsialgoritm `%s'\n"
+msgstr "vigane räsialgoritm `%s'\n"
 
 #, fuzzy, c-format
 msgid "'%s' is not a valid character set\n"
@@ -2228,41 +2237,41 @@ msgstr "%s ei ole lubatud kooditabel\n"
 
 #, fuzzy
 msgid "could not parse keyserver URL\n"
-msgstr "ei saa parsida võtmeserveri URI\n"
+msgstr "ei saa parsida võtmeserveri URI\n"
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid keyserver options\n"
-msgstr "%s:%d: vigased ekspordi võtmed\n"
+msgstr "%s:%d: vigased ekspordi võtmed\n"
 
 #, fuzzy
 msgid "invalid keyserver options\n"
-msgstr "vigased ekspordi võtmed\n"
+msgstr "vigased ekspordi võtmed\n"
 
 #, c-format
 msgid "%s:%d: invalid import options\n"
-msgstr "%s:%d: vigased impordi võtmed\n"
+msgstr "%s:%d: vigased impordi võtmed\n"
 
 msgid "invalid import options\n"
-msgstr "vigased impordi võtmed\n"
+msgstr "vigased impordi võtmed\n"
 
 #, fuzzy, c-format
 msgid "invalid filter option: %s\n"
-msgstr "vigased impordi võtmed\n"
+msgstr "vigased impordi võtmed\n"
 
 #, c-format
 msgid "%s:%d: invalid export options\n"
-msgstr "%s:%d: vigased ekspordi võtmed\n"
+msgstr "%s:%d: vigased ekspordi võtmed\n"
 
 msgid "invalid export options\n"
-msgstr "vigased ekspordi võtmed\n"
+msgstr "vigased ekspordi võtmed\n"
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid list options\n"
-msgstr "%s:%d: vigased impordi võtmed\n"
+msgstr "%s:%d: vigased impordi võtmed\n"
 
 #, fuzzy
 msgid "invalid list options\n"
-msgstr "vigased impordi võtmed\n"
+msgstr "vigased impordi võtmed\n"
 
 msgid "display photo IDs during signature verification"
 msgstr ""
@@ -2303,29 +2312,29 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid verify options\n"
-msgstr "%s:%d: vigased ekspordi võtmed\n"
+msgstr "%s:%d: vigased ekspordi võtmed\n"
 
 #, fuzzy
 msgid "invalid verify options\n"
-msgstr "vigased ekspordi võtmed\n"
+msgstr "vigased ekspordi võtmed\n"
 
 #, c-format
 msgid "unable to set exec-path to %s\n"
-msgstr "exec-path väärtuseks ei õnnestu seada %s\n"
+msgstr "exec-path väärtuseks ei õnnestu seada %s\n"
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid auto-key-locate list\n"
-msgstr "%s:%d: vigased ekspordi võtmed\n"
+msgstr "%s:%d: vigased ekspordi võtmed\n"
 
 msgid "invalid auto-key-locate list\n"
 msgstr ""
 
 msgid "WARNING: program may create a core file!\n"
-msgstr "HOIATUS: programm võib salvestada oma mälupildi!\n"
+msgstr "HOIATUS: programm võib salvestada oma mälupildi!\n"
 
 #, c-format
 msgid "WARNING: %s overrides %s\n"
-msgstr "HOIATUS: %s määrab üle %s\n"
+msgstr "HOIATUS: %s määrab üle %s\n"
 
 #, c-format
 msgid "%s not allowed with %s!\n"
@@ -2333,27 +2342,27 @@ msgstr "%s ja %s ei ole koos lubatud!\n"
 
 #, c-format
 msgid "%s makes no sense with %s!\n"
-msgstr "%s ja %s ei oma koos mõtet!\n"
+msgstr "%s ja %s ei oma koos mõtet!\n"
 
 msgid "WARNING: running with faked system time: "
 msgstr ""
 
 #, fuzzy, c-format
 msgid "will not run with insecure memory due to %s\n"
-msgstr "kirjutan salajase võtme faili `%s'\n"
+msgstr "kirjutan salajase võtme faili `%s'\n"
 
 msgid "selected cipher algorithm is invalid\n"
-msgstr "valitud ¨ifri algoritm ei ole lubatud\n"
+msgstr "valitud šifri algoritm ei ole lubatud\n"
 
 msgid "selected digest algorithm is invalid\n"
-msgstr "valitud lühendi algoritm ei ole lubatud\n"
+msgstr "valitud lühendi algoritm ei ole lubatud\n"
 
 #, fuzzy
 msgid "selected compression algorithm is invalid\n"
-msgstr "valitud ¨ifri algoritm ei ole lubatud\n"
+msgstr "valitud šifri algoritm ei ole lubatud\n"
 
 msgid "selected certification digest algorithm is invalid\n"
-msgstr "valitud sertifikaadi lühendi algoritm ei ole lubatud\n"
+msgstr "valitud sertifikaadi lühendi algoritm ei ole lubatud\n"
 
 msgid "completes-needed must be greater than 0\n"
 msgstr "completes-needed peab olema suurem, kui 0\n"
@@ -2366,42 +2375,42 @@ msgid "max-cert-depth must be in the range from 1 to 255\n"
 msgstr "max-cert-depth peab olema vahemikus 1 kuni 255\n"
 
 msgid "invalid default-cert-level; must be 0, 1, 2, or 3\n"
-msgstr "vigane vaikimisi-sert-tase; peab olema 0, 1, 2 või 3\n"
+msgstr "vigane vaikimisi-sert-tase; peab olema 0, 1, 2 või 3\n"
 
 msgid "invalid min-cert-level; must be 1, 2, or 3\n"
-msgstr "vigane min-sert-tase; peab olema 1, 2 või 3\n"
+msgstr "vigane min-sert-tase; peab olema 1, 2 või 3\n"
 
 #, fuzzy
 #| msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
 msgid "Note: simple S2K mode (0) is strongly discouraged\n"
-msgstr "MÄRKUS: lihtne S2K mood (0) ei soovitata kasutada\n"
+msgstr "MÄRKUS: lihtne S2K mood (0) ei soovitata kasutada\n"
 
 msgid "invalid S2K mode; must be 0, 1 or 3\n"
-msgstr "vigane S2K mood; peab olema 0, 1 või 3\n"
+msgstr "vigane S2K mood; peab olema 0, 1 või 3\n"
 
 msgid "invalid default preferences\n"
 msgstr "vigased vaikimisi eelistused\n"
 
 msgid "invalid personal cipher preferences\n"
-msgstr "vigased isikliku ¨ifri eelistused\n"
+msgstr "vigased isikliku šifri eelistused\n"
 
 msgid "invalid personal digest preferences\n"
-msgstr "vigased isikliku lühendi eelistused\n"
+msgstr "vigased isikliku lühendi eelistused\n"
 
 msgid "invalid personal compress preferences\n"
 msgstr "vigased isikliku pakkimise eelistused\n"
 
 #, c-format
 msgid "%s does not yet work with %s\n"
-msgstr "%s ei tööta veel koos %s-ga\n"
+msgstr "%s ei tööta veel koos %s-ga\n"
 
 #, fuzzy, c-format
 msgid "you may not use cipher algorithm '%s' while in %s mode\n"
-msgstr "¨ifri algoritm \"%s\" ei ole moodis %s lubatud\n"
+msgstr "šifri algoritm \"%s\" ei ole moodis %s lubatud\n"
 
 #, fuzzy, c-format
 msgid "you may not use digest algorithm '%s' while in %s mode\n"
-msgstr "sõnumilühendi algoritm \"%s\" ei ole moodis %s lubatud\n"
+msgstr "sõnumilühendi algoritm \"%s\" ei ole moodis %s lubatud\n"
 
 #, fuzzy, c-format
 msgid "you may not use compression algorithm '%s' while in %s mode\n"
@@ -2409,11 +2418,11 @@ msgstr "pakkimise algoritm \"%s\" ei ole moodis %s lubatud\n"
 
 #, c-format
 msgid "failed to initialize the TrustDB: %s\n"
-msgstr "TrustDB initsialiseerimine ebaõnnestus: %s\n"
+msgstr "TrustDB initsialiseerimine ebaõnnestus: %s\n"
 
 msgid "WARNING: recipients (-r) given without using public key encryption\n"
 msgstr ""
-"HOIATUS: määrati saajad (-r) aga ei kasutata avaliku võtme krüptograafiat\n"
+"HOIATUS: määrati saajad (-r) aga ei kasutata avaliku võtme krüptograafiat\n"
 
 msgid "--store [filename]"
 msgstr "--store [failinimi]"
@@ -2423,7 +2432,7 @@ msgstr "--symmetric [failinimi]"
 
 #, fuzzy, c-format
 msgid "symmetric encryption of '%s' failed: %s\n"
-msgstr "lahtikrüpteerimine ebaõnnestus: %s\n"
+msgstr "lahtikrüpteerimine ebaõnnestus: %s\n"
 
 msgid "--encrypt [filename]"
 msgstr "--encrypt [failinimi]"
@@ -2472,7 +2481,7 @@ msgid "--lsign-key user-id"
 msgstr "--lsign-key kasutaja-id"
 
 msgid "--edit-key user-id [commands]"
-msgstr "--edit-key kasutaja-id [käsud]"
+msgstr "--edit-key kasutaja-id [käsud]"
 
 #, fuzzy
 msgid "--passwd <user-id>"
@@ -2480,41 +2489,41 @@ msgstr "--sign-key kasutaja-id"
 
 #, c-format
 msgid "keyserver send failed: %s\n"
-msgstr "võtmeserverile saatmine ebaõnnestus: %s\n"
+msgstr "võtmeserverile saatmine ebaõnnestus: %s\n"
 
 #, c-format
 msgid "keyserver receive failed: %s\n"
-msgstr "võtmeserverilt lugemine ebaõnnestus: %s\n"
+msgstr "võtmeserverilt lugemine ebaõnnestus: %s\n"
 
 #, c-format
 msgid "key export failed: %s\n"
-msgstr "võtme eksport ebaõnnestus: %s\n"
+msgstr "võtme eksport ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 #| msgid "key export failed: %s\n"
 msgid "export as ssh key failed: %s\n"
-msgstr "võtme eksport ebaõnnestus: %s\n"
+msgstr "võtme eksport ebaõnnestus: %s\n"
 
 #, c-format
 msgid "keyserver search failed: %s\n"
-msgstr "võtmeserveri otsing ebaõnnestus: %s\n"
+msgstr "võtmeserveri otsing ebaõnnestus: %s\n"
 
 #, c-format
 msgid "keyserver refresh failed: %s\n"
-msgstr "võtmeserveri uuendamine ebaõnnestus: %s\n"
+msgstr "võtmeserveri uuendamine ebaõnnestus: %s\n"
 
 #, c-format
 msgid "dearmoring failed: %s\n"
-msgstr "lahtipakendamine ebaõnnestus: %s\n"
+msgstr "lahtipakendamine ebaõnnestus: %s\n"
 
 #, c-format
 msgid "enarmoring failed: %s\n"
-msgstr "pakendamine ebaõnnestus: %s\n"
+msgstr "pakendamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid hash algorithm `%s'\n"
 msgid "invalid hash algorithm '%s'\n"
-msgstr "vigane räsialgoritm `%s'\n"
+msgstr "vigane räsialgoritm `%s'\n"
 
 #, fuzzy, c-format
 msgid "error parsing key specification '%s': %s\n"
@@ -2528,7 +2537,7 @@ msgid "[filename]"
 msgstr "[failinimi]"
 
 msgid "Go ahead and type your message ...\n"
-msgstr "Kirjutage nüüd oma teade ...\n"
+msgstr "Kirjutage nüüd oma teade ...\n"
 
 msgid "the given certification policy URL is invalid\n"
 msgstr "antud sertifikaadi poliisi URL on vigane\n"
@@ -2542,7 +2551,7 @@ msgstr "antud allkirja poliisi URL on vigane\n"
 
 #, fuzzy
 msgid "|FILE|take the keys from the keyring FILE"
-msgstr "võta võtmed sellest võtmehoidlast"
+msgstr "võta võtmed sellest võtmehoidlast"
 
 msgid "make timestamp conflicts only a warning"
 msgstr "teata ajatemplite konfliktist ainult hoiatusega"
@@ -2554,15 +2563,15 @@ msgid "|ALGO|reject signatures made with ALGO"
 msgstr ""
 
 msgid "Usage: gpgv [options] [files] (-h for help)"
-msgstr "Kasuta: gpgv [võtmed] [failid] (-h näitab abiinfot)"
+msgstr "Kasuta: gpgv [võtmed] [failid] (-h näitab abiinfot)"
 
 #, fuzzy
 msgid ""
 "Syntax: gpgv [options] [files]\n"
 "Check signatures against known trusted keys\n"
 msgstr ""
-"Süntaks: gpg [võtmed] [failid]\n"
-"kontrolli allkirju tuntud usaldusväärsete võtmetega\n"
+"Süntaks: gpg [võtmed] [failid]\n"
+"kontrolli allkirju tuntud usaldusväärsete võtmetega\n"
 
 msgid "No help available"
 msgstr "Abiinfo puudub"
@@ -2588,14 +2597,14 @@ msgstr "uuenda usalduse andmebaasi"
 
 #, fuzzy
 msgid "show key during import"
-msgstr "näita sõrmejälge"
+msgstr "näita sõrmejälge"
 
 msgid "only accept updates to existing keys"
 msgstr ""
 
 #, fuzzy
 msgid "remove unusable parts from key after import"
-msgstr "mittekasutatav salajane võti"
+msgstr "mittekasutatav salajane võti"
 
 msgid "remove as much as possible from key after import"
 msgstr ""
@@ -2605,24 +2614,24 @@ msgstr ""
 
 #, c-format
 msgid "skipping block of type %d\n"
-msgstr "jätan bloki tüübiga %d vahele\n"
+msgstr "jätan bloki tüübiga %d vahele\n"
 
 #, fuzzy, c-format
 msgid "%lu keys processed so far\n"
-msgstr "%lu võtit on seni töödeldud\n"
+msgstr "%lu võtit on seni töödeldud\n"
 
 #, c-format
 msgid "Total number processed: %lu\n"
-msgstr "Töödeldud kokku: %lu\n"
+msgstr "Töödeldud kokku: %lu\n"
 
 #, fuzzy, c-format
 #| msgid "      skipped new keys: %lu\n"
 msgid "    skipped PGP-2 keys: %lu\n"
-msgstr " vahele jäetud uusi võtmeid: %lu\n"
+msgstr " vahele jäetud uusi võtmeid: %lu\n"
 
 #, c-format
 msgid "      skipped new keys: %lu\n"
-msgstr " vahele jäetud uusi võtmeid: %lu\n"
+msgstr " vahele jäetud uusi võtmeid: %lu\n"
 
 #, c-format
 msgid "          w/o user IDs: %lu\n"
@@ -2642,7 +2651,7 @@ msgstr "       uusi kasutajaid: %lu\n"
 
 #, c-format
 msgid "           new subkeys: %lu\n"
-msgstr "      uusi alamvõtmeid: %lu\n"
+msgstr "      uusi alamvõtmeid: %lu\n"
 
 #, c-format
 msgid "        new signatures: %lu\n"
@@ -2650,19 +2659,19 @@ msgstr "         uusi allkirju: %lu\n"
 
 #, c-format
 msgid "   new key revocations: %lu\n"
-msgstr "      uusi tühistamisi: %lu\n"
+msgstr "      uusi tühistamisi: %lu\n"
 
 #, c-format
 msgid "      secret keys read: %lu\n"
-msgstr " loetud salajasi võtmeid: %lu\n"
+msgstr " loetud salajasi võtmeid: %lu\n"
 
 #, c-format
 msgid "  secret keys imported: %lu\n"
-msgstr " salajasi võtmeid imporditud: %lu\n"
+msgstr " salajasi võtmeid imporditud: %lu\n"
 
 #, c-format
 msgid " secret keys unchanged: %lu\n"
-msgstr " muutmata salajasi võtmeid: %lu\n"
+msgstr " muutmata salajasi võtmeid: %lu\n"
 
 #, c-format
 msgid "          not imported: %lu\n"
@@ -2674,7 +2683,7 @@ msgstr "         uusi allkirju: %lu\n"
 
 #, fuzzy, c-format
 msgid "      user IDs cleaned: %lu\n"
-msgstr " loetud salajasi võtmeid: %lu\n"
+msgstr " loetud salajasi võtmeid: %lu\n"
 
 #, c-format
 msgid ""
@@ -2688,7 +2697,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "         \"%s\": preference for digest algorithm %s\n"
-msgstr "%s allkiri, sõnumilühendi algoritm %s\n"
+msgstr "%s allkiri, sõnumilühendi algoritm %s\n"
 
 #, c-format
 msgid "         \"%s\": preference for compression algorithm %s\n"
@@ -2706,116 +2715,116 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "key %s: no user ID\n"
-msgstr "võti %08lX: kasutaja ID puudub\n"
+msgstr "võti %08lX: kasutaja ID puudub\n"
 
 #, fuzzy, c-format
 msgid "key %s: %s\n"
-msgstr "`%s' jätsin vahele: %s\n"
+msgstr "`%s' jätsin vahele: %s\n"
 
 msgid "rejected by import screener"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "key %s: PKS subkey corruption repaired\n"
-msgstr "võti %08lX: HKP alamvõtme rike parandatud\n"
+msgstr "võti %08lX: HKP alamvõtme rike parandatud\n"
 
 #, fuzzy, c-format
 msgid "key %s: accepted non self-signed user ID \"%s\"\n"
 msgstr ""
-"võti %08lX: aktsepteerisin iseenda poolt allakirjutamata kasutaja ID '%s'\n"
+"võti %08lX: aktsepteerisin iseenda poolt allakirjutamata kasutaja ID '%s'\n"
 
 #, fuzzy, c-format
 msgid "key %s: no valid user IDs\n"
-msgstr "võti %08lX: puudub kehtiv kasutaja ID\n"
+msgstr "võti %08lX: puudub kehtiv kasutaja ID\n"
 
 msgid "this may be caused by a missing self-signature\n"
-msgstr "see võib olla põhjustatud puuduvast iseenda allkirjast\n"
+msgstr "see võib olla põhjustatud puuduvast iseenda allkirjast\n"
 
 #, fuzzy, c-format
 msgid "key %s: public key not found: %s\n"
-msgstr "võti %08lX: avalikku võtit ei leitud: %s\n"
+msgstr "võti %08lX: avalikku võtit ei leitud: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: new key - skipped\n"
-msgstr "võti %08lX: uus võti - jätsin vahele\n"
+msgstr "võti %08lX: uus võti - jätsin vahele\n"
 
 #, c-format
 msgid "no writable keyring found: %s\n"
-msgstr "ei leia kirjutatavat võtmehoidlat: %s\n"
+msgstr "ei leia kirjutatavat võtmehoidlat: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing keyring `%s': %s\n"
 msgid "error writing keyring '%s': %s\n"
-msgstr "viga võtmehoidlasse `%s' kirjutamisel: %s\n"
+msgstr "viga võtmehoidlasse `%s' kirjutamisel: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: public key \"%s\" imported\n"
-msgstr "võti %08lX: avalik võti \"%s\" on imporditud\n"
+msgstr "võti %08lX: avalik võti \"%s\" on imporditud\n"
 
 #, fuzzy, c-format
 msgid "key %s: doesn't match our copy\n"
-msgstr "võti %08lX: ei sobi meie koopiaga\n"
+msgstr "võti %08lX: ei sobi meie koopiaga\n"
 
 #, fuzzy, c-format
 msgid "key %s: can't locate original keyblock: %s\n"
-msgstr "võti %08lX: ei leia algset võtmeblokki: %s\n"
+msgstr "võti %08lX: ei leia algset võtmeblokki: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: can't read original keyblock: %s\n"
-msgstr "võti %08lX: ei õnnestu lugeda algset võtmeblokki: %s\n"
+msgstr "võti %08lX: ei õnnestu lugeda algset võtmeblokki: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" 1 new user ID\n"
-msgstr "võti %08lX: \"%s\" 1 uus kasutaja ID\n"
+msgstr "võti %08lX: \"%s\" 1 uus kasutaja ID\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d new user IDs\n"
-msgstr "võti %08lX: \"%s\" %d uut kasutaja IDd\n"
+msgstr "võti %08lX: \"%s\" %d uut kasutaja IDd\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" 1 new signature\n"
-msgstr "võti %08lX: \"%s\" 1 uus allkiri\n"
+msgstr "võti %08lX: \"%s\" 1 uus allkiri\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d new signatures\n"
-msgstr "võti %08lX: \"%s\" %d uut allkirja\n"
+msgstr "võti %08lX: \"%s\" %d uut allkirja\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" 1 new subkey\n"
-msgstr "võti %08lX: \"%s\" 1 uus alamvõti\n"
+msgstr "võti %08lX: \"%s\" 1 uus alamvõti\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d new subkeys\n"
-msgstr "võti %08lX: \"%s\" %d uut alamvõtit\n"
+msgstr "võti %08lX: \"%s\" %d uut alamvõtit\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d signature cleaned\n"
-msgstr "võti %08lX: \"%s\" %d uut allkirja\n"
+msgstr "võti %08lX: \"%s\" %d uut allkirja\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d signatures cleaned\n"
-msgstr "võti %08lX: \"%s\" %d uut allkirja\n"
+msgstr "võti %08lX: \"%s\" %d uut allkirja\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d user ID cleaned\n"
-msgstr "võti %08lX: \"%s\" %d uut kasutaja IDd\n"
+msgstr "võti %08lX: \"%s\" %d uut kasutaja IDd\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d user IDs cleaned\n"
-msgstr "võti %08lX: \"%s\" %d uut kasutaja IDd\n"
+msgstr "võti %08lX: \"%s\" %d uut kasutaja IDd\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" not changed\n"
-msgstr "võti %08lX: \"%s\" ei muudetud\n"
+msgstr "võti %08lX: \"%s\" ei muudetud\n"
 
 #, fuzzy, c-format
 msgid "key %s: secret key imported\n"
-msgstr "võti %08lX: salajane võti on imporditud\n"
+msgstr "võti %08lX: salajane võti on imporditud\n"
 
 #, fuzzy, c-format
 #| msgid "skipped: secret key already present\n"
 msgid "key %s: secret key already exists\n"
-msgstr "jätsin vahele: avalik võti on juba olemas\n"
+msgstr "jätsin vahele: avalik võti on juba olemas\n"
 
 #, fuzzy, c-format
 msgid "key %s: error sending to agent: %s\n"
@@ -2823,15 +2832,15 @@ msgstr "viga teate saatmisel serverile `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "secret key %s: %s\n"
-msgstr "salajast võtit `%s' ei leitud: %s\n"
+msgstr "salajast võtit `%s' ei leitud: %s\n"
 
 #, fuzzy
 msgid "importing secret keys not allowed\n"
-msgstr "kirjutan salajase võtme faili `%s'\n"
+msgstr "kirjutan salajase võtme faili `%s'\n"
 
 #, fuzzy, c-format
 msgid "key %s: secret key with invalid cipher %d - skipped\n"
-msgstr "võti %08lX: salajane võti vigase ¨ifriga %d - jätsin vahele\n"
+msgstr "võti %08lX: salajane võti vigase šifriga %d - jätsin vahele\n"
 
 #. TRANSLATORS: For smartcard, each private key on
 #. host has a reference (stub) to a smartcard and
@@ -2850,127 +2859,127 @@ msgstr ""
 #, fuzzy, c-format
 msgid "key %s: no public key - can't apply revocation certificate\n"
 msgstr ""
-"võti %08lX: avalik võti puudub - tühistamise sertifikaati ei saa rakendada\n"
+"võti %08lX: avalik võti puudub - tühistamise sertifikaati ei saa rakendada\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid revocation certificate: %s - rejected\n"
-msgstr "võti %08lX: vigane tühistamise sertifikaat: %s - lükkasin tagasi\n"
+msgstr "võti %08lX: vigane tühistamise sertifikaat: %s - lükkasin tagasi\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" revocation certificate imported\n"
-msgstr "võti %08lX: \"%s\" tühistamise sertifikaat imporditud\n"
+msgstr "võti %08lX: \"%s\" tühistamise sertifikaat imporditud\n"
 
 #, fuzzy, c-format
 msgid "key %s: no user ID for signature\n"
-msgstr "võti %08lX: allkirjal puudub kasutaja ID\n"
+msgstr "võti %08lX: allkirjal puudub kasutaja ID\n"
 
 #, fuzzy, c-format
 msgid "key %s: unsupported public key algorithm on user ID \"%s\"\n"
-msgstr "võti %08lX: mittetoetatud avaliku võtme algoritm kasutajaga \"%s\"\n"
+msgstr "võti %08lX: mittetoetatud avaliku võtme algoritm kasutajaga \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid self-signature on user ID \"%s\"\n"
-msgstr "võti %08lX: kasutajal \"%s\" on vigane iseenda allkiri\n"
+msgstr "võti %08lX: kasutajal \"%s\" on vigane iseenda allkiri\n"
 
 #, fuzzy, c-format
 msgid "key %s: unsupported public key algorithm\n"
-msgstr "võti %08lX: mittetoetatud avaliku võtme algoritm\n"
+msgstr "võti %08lX: mittetoetatud avaliku võtme algoritm\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid direct key signature\n"
-msgstr "võti %08lX: lisatud vahetu võtme allkiri\n"
+msgstr "võti %08lX: lisatud vahetu võtme allkiri\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for key binding\n"
-msgstr "võti %08lX: võtmeseosel puudub alamvõti\n"
+msgstr "võti %08lX: võtmeseosel puudub alamvõti\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid subkey binding\n"
-msgstr "võti %08lX: vigane alamvõtme seos\n"
+msgstr "võti %08lX: vigane alamvõtme seos\n"
 
 #, fuzzy, c-format
 msgid "key %s: removed multiple subkey binding\n"
-msgstr "võti %08lX: vigane mitme alamvõtme seos\n"
+msgstr "võti %08lX: vigane mitme alamvõtme seos\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for key revocation\n"
-msgstr "võti %08lX: võtme tühistamiseks puudub alamvõti\n"
+msgstr "võti %08lX: võtme tühistamiseks puudub alamvõti\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid subkey revocation\n"
-msgstr "võti %08lX: vigane alamvõtme tühistamine\n"
+msgstr "võti %08lX: vigane alamvõtme tühistamine\n"
 
 #, fuzzy, c-format
 msgid "key %s: removed multiple subkey revocation\n"
-msgstr "võti %08lX: eemaldasin mitme alamvõtme tühistamise\n"
+msgstr "võti %08lX: eemaldasin mitme alamvõtme tühistamise\n"
 
 #, fuzzy, c-format
 msgid "key %s: skipped user ID \"%s\"\n"
-msgstr "võti %08lX: jätsin vahele kasutaja ID '"
+msgstr "võti %08lX: jätsin vahele kasutaja ID '"
 
 #, fuzzy, c-format
 msgid "key %s: skipped subkey\n"
-msgstr "võti %08lX: jätsin alamvõtme vahele\n"
+msgstr "võti %08lX: jätsin alamvõtme vahele\n"
 
 #, fuzzy, c-format
 msgid "key %s: non exportable signature (class 0x%02X) - skipped\n"
-msgstr "võti %08lX: mitte eksporditav allkiri (klass %02x) - jätan vahele\n"
+msgstr "võti %08lX: mitte eksporditav allkiri (klass %02x) - jätan vahele\n"
 
 #, fuzzy, c-format
 msgid "key %s: revocation certificate at wrong place - skipped\n"
-msgstr "võti %08lX: tühistamise sertifikaat on vales kohas - jätan vahele\n"
+msgstr "võti %08lX: tühistamise sertifikaat on vales kohas - jätan vahele\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid revocation certificate: %s - skipped\n"
-msgstr "võti %08lX: vigane tühistamise sertifikaat: %s - jätan vahele\n"
+msgstr "võti %08lX: vigane tühistamise sertifikaat: %s - jätan vahele\n"
 
 #, fuzzy, c-format
 msgid "key %s: subkey signature in wrong place - skipped\n"
-msgstr "võti %08lX: alamvõtme allkiri on vales kohas - jätan vahele\n"
+msgstr "võti %08lX: alamvõtme allkiri on vales kohas - jätan vahele\n"
 
 #, fuzzy, c-format
 msgid "key %s: unexpected signature class (0x%02X) - skipped\n"
-msgstr "võti %08lX: ootamatu allkirja klass (0x%02x) - jätan vahele\n"
+msgstr "võti %08lX: ootamatu allkirja klass (0x%02x) - jätan vahele\n"
 
 #, fuzzy, c-format
 msgid "key %s: duplicated user ID detected - merged\n"
-msgstr "võti %08lX: tuvastasin dubleeritud kasutaja ID - mestisin\n"
+msgstr "võti %08lX: tuvastasin dubleeritud kasutaja ID - mestisin\n"
 
 #, fuzzy, c-format
 msgid "WARNING: key %s may be revoked: fetching revocation key %s\n"
 msgstr ""
-"HOIATUS: võti %08lX võib olla tühistatud: laen tühistamise võtit %08lX\n"
+"HOIATUS: võti %08lX võib olla tühistatud: laen tühistamise võtit %08lX\n"
 
 #, fuzzy, c-format
 msgid "WARNING: key %s may be revoked: revocation key %s not present.\n"
 msgstr ""
-"HOIATUS: võti %08lX võib olla tühistatud: tühistamise võtit %08lX pole.\n"
+"HOIATUS: võti %08lX võib olla tühistatud: tühistamise võtit %08lX pole.\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" revocation certificate added\n"
-msgstr "võti %08lX: \"%s\" tühistamise sertifikaat lisatud\n"
+msgstr "võti %08lX: \"%s\" tühistamise sertifikaat lisatud\n"
 
 #, fuzzy, c-format
 msgid "key %s: direct key signature added\n"
-msgstr "võti %08lX: lisatud vahetu võtme allkiri\n"
+msgstr "võti %08lX: lisatud vahetu võtme allkiri\n"
 
 #, fuzzy, c-format
 msgid "error creating keybox '%s': %s\n"
-msgstr "viga võtmehoidla `%s' loomisel: %s\n"
+msgstr "viga võtmehoidla `%s' loomisel: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
 msgid "error creating keyring '%s': %s\n"
-msgstr "viga võtmehoidla `%s' loomisel: %s\n"
+msgstr "viga võtmehoidla `%s' loomisel: %s\n"
 
 #, fuzzy, c-format
 msgid "keybox '%s' created\n"
-msgstr "võtmehoidla `%s' on loodud\n"
+msgstr "võtmehoidla `%s' on loodud\n"
 
 #, fuzzy, c-format
 #| msgid "keyring `%s' created\n"
 msgid "keyring '%s' created\n"
-msgstr "võtmehoidla `%s' on loodud\n"
+msgstr "võtmehoidla `%s' on loodud\n"
 
 #, fuzzy, c-format
 msgid "keyblock resource '%s': %s\n"
@@ -2982,22 +2991,26 @@ msgstr "viga `%s' lugemisel: %s\n"
 
 #, c-format
 msgid "failed to rebuild keyring cache: %s\n"
-msgstr "võtmehoidla vahemälu uuesti loomine ebaõnnestus: %s\n"
+msgstr "võtmehoidla vahemälu uuesti loomine ebaõnnestus: %s\n"
 
 msgid "[revocation]"
-msgstr "[tühistamine]"
+msgstr "[tühistamine]"
 
 msgid "[self-signature]"
 msgstr "[iseenda allkiri]"
 
 #, fuzzy, c-format
+msgid "error allocating memory: %s\n"
+msgstr "viga võtmehoidla `%s' loomisel: %s\n"
+
+#, fuzzy, c-format
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
-msgstr "võti %08lX: mittetoetatud avaliku võtme algoritm\n"
+msgstr "võti %08lX: mittetoetatud avaliku võtme algoritm\n"
 
 #, fuzzy, c-format
 msgid ""
 "can't check signature with unsupported message-digest algorithm %d: %s.\n"
-msgstr "%s allkiri, sõnumilühendi algoritm %s\n"
+msgstr "%s allkiri, sõnumilühendi algoritm %s\n"
 
 #, fuzzy
 msgid " (reordered signatures follow)"
@@ -3005,20 +3018,20 @@ msgstr "Korrektne allkiri kasutajalt \""
 
 #, fuzzy, c-format
 msgid "key %s:\n"
-msgstr "`%s' jätsin vahele: %s\n"
+msgstr "`%s' jätsin vahele: %s\n"
 
 #, fuzzy, c-format
 msgid "%d duplicate signature removed\n"
 msgid_plural "%d duplicate signatures removed\n"
-msgstr[0] "Kasutaja ID \"%s\" on tühistatud."
-msgstr[1] "Kasutaja ID \"%s\" on tühistatud."
+msgstr[0] "Kasutaja ID \"%s\" on tühistatud."
+msgstr[1] "Kasutaja ID \"%s\" on tühistatud."
 
 #, fuzzy, c-format
 #| msgid "1 signature not checked due to a missing key\n"
 msgid "%d signature not checked due to a missing key\n"
 msgid_plural "%d signatures not checked due to missing keys\n"
-msgstr[0] "1 allkiri jäi testimata, kuna võti puudub\n"
-msgstr[1] "1 allkiri jäi testimata, kuna võti puudub\n"
+msgstr[0] "1 allkiri jäi testimata, kuna võti puudub\n"
+msgstr[1] "1 allkiri jäi testimata, kuna võti puudub\n"
 
 #, fuzzy, c-format
 #| msgid "%d bad signatures\n"
@@ -3046,18 +3059,18 @@ msgid ""
 "(by looking at passports, checking fingerprints from different sources, "
 "etc.)\n"
 msgstr ""
-"Palun otsustage, kuivõrd te usaldate seda kasutajat\n"
-"teiste kasutajate võtmete kontrollimisel (kontrollige\n"
-"passe, kontrollige erinevatest allikatest näpujälgi...)?\n"
+"Palun otsustage, kuivõrd te usaldate seda kasutajat\n"
+"teiste kasutajate võtmete kontrollimisel (kontrollige\n"
+"passe, kontrollige erinevatest allikatest näpujälgi...)?\n"
 "\n"
 
 #, fuzzy, c-format
 msgid "  %d = I trust marginally\n"
-msgstr " %d = Usaldan vähesel määral\n"
+msgstr " %d = Usaldan vähesel määral\n"
 
 #, fuzzy, c-format
 msgid "  %d = I trust fully\n"
-msgstr " %d = Usaldan täiesti\n"
+msgstr " %d = Usaldan täiesti\n"
 
 msgid ""
 "Please enter the depth of this trust signature.\n"
@@ -3074,7 +3087,7 @@ msgstr ""
 
 #, c-format
 msgid "User ID \"%s\" is revoked."
-msgstr "Kasutaja ID \"%s\" on tühistatud."
+msgstr "Kasutaja ID \"%s\" on tühistatud."
 
 msgid "Are you sure you still want to sign it? (y/N) "
 msgstr "Olete kindel, et soovite seda ikka allkirjastada? (j/e) "
@@ -3096,7 +3109,7 @@ msgstr "Kasutaja ID \"%s\" ei ole ise allkirjastatud."
 
 #, fuzzy
 msgid "Sign it? (y/N) "
-msgstr "Allkirjastan tõesti? "
+msgstr "Allkirjastan tõesti? "
 
 #, c-format
 msgid ""
@@ -3130,29 +3143,29 @@ msgstr ""
 
 msgid "Do you want to promote it to a full exportable signature? (y/N) "
 msgstr ""
-"Kas te soovite seda edutada täielikuks eksporditavaks allkirjaks? (j/E) "
+"Kas te soovite seda edutada täielikuks eksporditavaks allkirjaks? (j/E) "
 
 #, fuzzy, c-format
 msgid "\"%s\" was already locally signed by key %s\n"
-msgstr "\"%s\" on juba lokaalselt allkirjastatud võtmega %08lX\n"
+msgstr "\"%s\" on juba lokaalselt allkirjastatud võtmega %08lX\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" was already signed by key %s\n"
-msgstr "\"%s\" on juba allkirjastatud võtmega %08lX\n"
+msgstr "\"%s\" on juba allkirjastatud võtmega %08lX\n"
 
 msgid "Do you want to sign it again anyway? (y/N) "
 msgstr "Olete kindel, et soovite seda ikka allkirjastada? (j/E) "
 
 #, fuzzy, c-format
 msgid "Nothing to sign with key %s\n"
-msgstr "Võtmega %08lX pole midagi allkirjastada\n"
+msgstr "Võtmega %08lX pole midagi allkirjastada\n"
 
 msgid "This key has expired!"
-msgstr "See võti on aegunud!"
+msgstr "See võti on aegunud!"
 
 #, c-format
 msgid "This key is due to expire on %s.\n"
-msgstr "See võti aegub %s.\n"
+msgstr "See võti aegub %s.\n"
 
 msgid "Do you want your signature to expire at the same time? (Y/n) "
 msgstr "Soovite, et teie allkiri aeguks samal ajal? (J/e) "
@@ -3162,8 +3175,8 @@ msgid ""
 "belongs\n"
 "to the person named above?  If you don't know what to answer, enter \"0\".\n"
 msgstr ""
-"Kui hoolikalt te olete kontrollinud et võti, mida te asute allkirjastama,\n"
-"kuulub ka tegelikult ülal mainitud isikule? Kui te ei tea, mida vastata,\n"
+"Kui hoolikalt te olete kontrollinud et võti, mida te asute allkirjastama,\n"
+"kuulub ka tegelikult ülal mainitud isikule? Kui te ei tea, mida vastata,\n"
 "sisestage \"0\".\n"
 
 #, c-format
@@ -3172,7 +3185,7 @@ msgstr "   (0) Ma ei vasta.%s\n"
 
 #, c-format
 msgid "   (1) I have not checked at all.%s\n"
-msgstr "   (1) Ma ei ole üldse kontrollinud.%s\n"
+msgstr "   (1) Ma ei ole üldse kontrollinud.%s\n"
 
 #, c-format
 msgid "   (2) I have done casual checking.%s\n"
@@ -3180,7 +3193,7 @@ msgstr "   (2) Ma olen teinud pealiskaudset kontrolli.%s\n"
 
 #, c-format
 msgid "   (3) I have done very careful checking.%s\n"
-msgstr "   (3) Ma olen kontrollinud väga hoolikalt.%s\n"
+msgstr "   (3) Ma olen kontrollinud väga hoolikalt.%s\n"
 
 #, fuzzy
 msgid "Your selection? (enter '?' for more information): "
@@ -3191,8 +3204,8 @@ msgid ""
 "Are you sure that you want to sign this key with your\n"
 "key \"%s\" (%s)\n"
 msgstr ""
-"Olete tõesti kindel, et soovite seda võtit oma\n"
-"võtmega allkirjastada: \""
+"Olete tõesti kindel, et soovite seda võtit oma\n"
+"võtmega allkirjastada: \""
 
 #, fuzzy
 msgid "This will be a self-signature.\n"
@@ -3204,51 +3217,51 @@ msgstr ""
 msgid "WARNING: the signature will not be marked as non-exportable.\n"
 msgstr ""
 "\n"
-"HOIATUS: allkirja ei märgita mitte-eksporditavaks.\n"
+"HOIATUS: allkirja ei märgita mitte-eksporditavaks.\n"
 
 #, fuzzy
 msgid "WARNING: the signature will not be marked as non-revocable.\n"
 msgstr ""
 "\n"
-"HOIATUS: allkirja ei märgita kehtetuks mitte-tunnistatavaks.\n"
+"HOIATUS: allkirja ei märgita kehtetuks mitte-tunnistatavaks.\n"
 
 #, fuzzy
 msgid "The signature will be marked as non-exportable.\n"
 msgstr ""
 "\n"
-"Allkiri märgitakse mitte-eksporditavaks.\n"
+"Allkiri märgitakse mitte-eksporditavaks.\n"
 
 #, fuzzy
 msgid "The signature will be marked as non-revocable.\n"
 msgstr ""
 "\n"
-"Allkiri märgitakse kehtetuks mitte-tunnistatavaks.\n"
+"Allkiri märgitakse kehtetuks mitte-tunnistatavaks.\n"
 
 #, fuzzy
 msgid "I have not checked this key at all.\n"
 msgstr ""
 "\n"
-"Ma ei ole seda võtit üldse kontrollinud.\n"
+"Ma ei ole seda võtit üldse kontrollinud.\n"
 
 #, fuzzy
 msgid "I have checked this key casually.\n"
 msgstr ""
 "\n"
-"Ma olen seda võtit kontrollinud ainult pealiskaudselt.\n"
+"Ma olen seda võtit kontrollinud ainult pealiskaudselt.\n"
 
 #, fuzzy
 msgid "I have checked this key very carefully.\n"
 msgstr ""
 "\n"
-"Ma olen kontrollinud seda võtit väga hoolikalt.\n"
+"Ma olen kontrollinud seda võtit väga hoolikalt.\n"
 
 #, fuzzy
 msgid "Really sign? (y/N) "
-msgstr "Allkirjastan tõesti? "
+msgstr "Allkirjastan tõesti? "
 
 #, c-format
 msgid "signing failed: %s\n"
-msgstr "allkirjastamine ebaõnnestus: %s\n"
+msgstr "allkirjastamine ebaõnnestus: %s\n"
 
 msgid "Key has only stub or on-card key items - no passphrase to change.\n"
 msgstr ""
@@ -3259,18 +3272,18 @@ msgid "key %s: error changing passphrase: %s\n"
 msgstr "viga parooli loomisel: %s\n"
 
 msgid "save and quit"
-msgstr "salvesta ja välju"
+msgstr "salvesta ja välju"
 
 #, fuzzy
 msgid "show key fingerprint"
-msgstr "näita sõrmejälge"
+msgstr "näita sõrmejälge"
 
 #, fuzzy
 msgid "show the keygrip"
 msgstr "Allkirja noteerimine: "
 
 msgid "list key and user IDs"
-msgstr "näita võtit ja kasutaja IDd"
+msgstr "näita võtit ja kasutaja IDd"
 
 msgid "select user ID N"
 msgstr "vali kasutaja ID N"
@@ -3281,14 +3294,14 @@ msgstr "vali kasutaja ID N"
 
 #, fuzzy
 msgid "check signatures"
-msgstr "tühista allkirjad"
+msgstr "tühista allkirjad"
 
 msgid "sign selected user IDs [* see below for related commands]"
 msgstr ""
 
 #, fuzzy
 msgid "sign selected user IDs locally"
-msgstr "allkirjasta võti lokaalselt"
+msgstr "allkirjasta võti lokaalselt"
 
 #, fuzzy
 msgid "sign selected user IDs with a trust signature"
@@ -3322,40 +3335,40 @@ msgstr ""
 
 #, fuzzy
 msgid "delete selected subkeys"
-msgstr "kustuta sekundaarne võti"
+msgstr "kustuta sekundaarne võti"
 
 msgid "add a revocation key"
-msgstr "lisa tühistamise võti"
+msgstr "lisa tühistamise võti"
 
 #, fuzzy
 msgid "delete signatures from the selected user IDs"
-msgstr "Kas uuendan tõesti kõik kasutaja ID-de seaded? "
+msgstr "Kas uuendan tõesti kõik kasutaja ID-de seaded? "
 
 #, fuzzy
 msgid "change the expiration date for the key or selected subkeys"
-msgstr "v3 võtme aegumise aega ei saa muuta.\n"
+msgstr "v3 võtme aegumise aega ei saa muuta.\n"
 
 #, fuzzy
 msgid "flag the selected user ID as primary"
-msgstr "märgi kasutaja ID primaarseks"
+msgstr "märgi kasutaja ID primaarseks"
 
 msgid "list preferences (expert)"
-msgstr "näita eelistusi (ekspert)"
+msgstr "näita eelistusi (ekspert)"
 
 msgid "list preferences (verbose)"
-msgstr "näita eelistusi (detailsena)"
+msgstr "näita eelistusi (detailsena)"
 
 #, fuzzy
 msgid "set preference list for the selected user IDs"
-msgstr "Kas uuendan tõesti kõik kasutaja ID-de seaded? "
+msgstr "Kas uuendan tõesti kõik kasutaja ID-de seaded? "
 
 #, fuzzy
 msgid "set the preferred keyserver URL for the selected user IDs"
-msgstr "ei saa parsida võtmeserveri URI\n"
+msgstr "ei saa parsida võtmeserveri URI\n"
 
 #, fuzzy
 msgid "set a notation for the selected user IDs"
-msgstr "Kas uuendan tõesti kõik kasutaja ID-de seaded? "
+msgstr "Kas uuendan tõesti kõik kasutaja ID-de seaded? "
 
 msgid "change the passphrase"
 msgstr "muuda parooli"
@@ -3365,27 +3378,27 @@ msgstr "muuda omaniku usaldust"
 
 #, fuzzy
 msgid "revoke signatures on the selected user IDs"
-msgstr "Kas tühistan tõesti kõik valitud kasutaja IDd? "
+msgstr "Kas tühistan tõesti kõik valitud kasutaja IDd? "
 
 #, fuzzy
 msgid "revoke selected user IDs"
-msgstr "tühista kasutaja ID"
+msgstr "tühista kasutaja ID"
 
 #, fuzzy
 msgid "revoke key or selected subkeys"
-msgstr "tühista sekundaarne võti"
+msgstr "tühista sekundaarne võti"
 
 #, fuzzy
 msgid "enable key"
-msgstr "luba võti"
+msgstr "luba võti"
 
 #, fuzzy
 msgid "disable key"
-msgstr "blokeeri võti"
+msgstr "blokeeri võti"
 
 #, fuzzy
 msgid "show selected photo IDs"
-msgstr "näita foto ID"
+msgstr "näita foto ID"
 
 msgid "compact unusable user IDs and remove unusable signatures from key"
 msgstr ""
@@ -3394,10 +3407,10 @@ msgid "compact unusable user IDs and remove all signatures from key"
 msgstr ""
 
 msgid "Secret key is available.\n"
-msgstr "Salajane võti on kasutatav.\n"
+msgstr "Salajane võti on kasutatav.\n"
 
 msgid "Need the secret key to do this.\n"
-msgstr "Selle tegamiseks on vaja salajast võtit.\n"
+msgstr "Selle tegamiseks on vaja salajast võtit.\n"
 
 msgid ""
 "* The 'sign' command may be prefixed with an 'l' for local signatures "
@@ -3407,15 +3420,15 @@ msgid ""
 msgstr ""
 
 msgid "Key is revoked."
-msgstr "Võti on tühistatud."
+msgstr "Võti on tühistatud."
 
 #, fuzzy
 msgid "Really sign all user IDs? (y/N) "
-msgstr "Kas allkirjastan tõesti kõik kasutaja IDd? "
+msgstr "Kas allkirjastan tõesti kõik kasutaja IDd? "
 
 #, fuzzy
 msgid "Really sign all text user IDs? (y/N) "
-msgstr "Kas allkirjastan tõesti kõik kasutaja IDd? "
+msgstr "Kas allkirjastan tõesti kõik kasutaja IDd? "
 
 msgid "Hint: Select the user IDs to sign\n"
 msgstr "Vihje: Valige allkirjastamiseks kasutaja\n"
@@ -3426,10 +3439,10 @@ msgstr "tundmatu allkirja klass"
 
 #, c-format
 msgid "This command is not allowed while in %s mode.\n"
-msgstr "See käsklus ei ole %s moodis lubatud.\n"
+msgstr "See käsklus ei ole %s moodis lubatud.\n"
 
 msgid "You must select at least one user ID.\n"
-msgstr "Te peate valima vähemalt ühe kasutaja ID.\n"
+msgstr "Te peate valima vähemalt ühe kasutaja ID.\n"
 
 #, c-format
 msgid "(Use the '%s' command.)\n"
@@ -3440,63 +3453,63 @@ msgstr "Viimast kasutaja ID ei saa kustutada!\n"
 
 #, fuzzy
 msgid "Really remove all selected user IDs? (y/N) "
-msgstr "Kas kustutan tõesti kõik kasutaja IDd? "
+msgstr "Kas kustutan tõesti kõik kasutaja IDd? "
 
 #, fuzzy
 msgid "Really remove this user ID? (y/N) "
-msgstr "Kas eemaldan tõesti selle kasutaja ID? "
+msgstr "Kas eemaldan tõesti selle kasutaja ID? "
 
 #. TRANSLATORS: Please take care: This is about
 #. moving the key and not about removing it.
 #, fuzzy
 msgid "Really move the primary key? (y/N) "
-msgstr "Kas eemaldan tõesti selle kasutaja ID? "
+msgstr "Kas eemaldan tõesti selle kasutaja ID? "
 
 #, fuzzy
 msgid "You must select exactly one key.\n"
-msgstr "Te peata valima vähemalt ühe võtme.\n"
+msgstr "Te peata valima vähemalt ühe võtme.\n"
 
 msgid "Command expects a filename argument\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "Can't open '%s': %s\n"
-msgstr "`%s' ei õnnestu avada: %s\n"
+msgstr "`%s' ei õnnestu avada: %s\n"
 
 #, fuzzy, c-format
 msgid "Error reading backup key from '%s': %s\n"
-msgstr "viga võtmehoidla `%s' loomisel: %s\n"
+msgstr "viga võtmehoidla `%s' loomisel: %s\n"
 
 msgid "You must select at least one key.\n"
-msgstr "Te peata valima vähemalt ühe võtme.\n"
+msgstr "Te peata valima vähemalt ühe võtme.\n"
 
 #, fuzzy
 msgid "Do you really want to delete the selected keys? (y/N) "
-msgstr "Kas te tõesti soovite valitud võtmeid kustutada? "
+msgstr "Kas te tõesti soovite valitud võtmeid kustutada? "
 
 #, fuzzy
 msgid "Do you really want to delete this key? (y/N) "
-msgstr "Kas te tõesti soovite seda võtit kustutada? "
+msgstr "Kas te tõesti soovite seda võtit kustutada? "
 
 #, fuzzy
 msgid "Really revoke all selected user IDs? (y/N) "
-msgstr "Kas tühistan tõesti kõik valitud kasutaja IDd? "
+msgstr "Kas tühistan tõesti kõik valitud kasutaja IDd? "
 
 #, fuzzy
 msgid "Really revoke this user ID? (y/N) "
-msgstr "Kas tühistan tõesti selle kasutaja ID? "
+msgstr "Kas tühistan tõesti selle kasutaja ID? "
 
 #, fuzzy
 msgid "Do you really want to revoke the entire key? (y/N) "
-msgstr "Kas te tõesti soovite seda võtit tühistada? "
+msgstr "Kas te tõesti soovite seda võtit tühistada? "
 
 #, fuzzy
 msgid "Do you really want to revoke the selected subkeys? (y/N) "
-msgstr "Kas te tõesti soovite valitud võtmeid tühistada? "
+msgstr "Kas te tõesti soovite valitud võtmeid tühistada? "
 
 #, fuzzy
 msgid "Do you really want to revoke this subkey? (y/N) "
-msgstr "Kas te tõesti soovite seda võtit tühistada? "
+msgstr "Kas te tõesti soovite seda võtit tühistada? "
 
 msgid "Owner trust may not be set while using a user provided trust database\n"
 msgstr ""
@@ -3507,11 +3520,11 @@ msgstr "sea eelistuste nimekiri"
 
 #, fuzzy
 msgid "Really update the preferences for the selected user IDs? (y/N) "
-msgstr "Kas uuendan tõesti kõik kasutaja ID-de seaded? "
+msgstr "Kas uuendan tõesti kõik kasutaja ID-de seaded? "
 
 #, fuzzy
 msgid "Really update the preferences? (y/N) "
-msgstr "Kas tõesti uuendan seaded? "
+msgstr "Kas tõesti uuendan seaded? "
 
 #, fuzzy
 msgid "Save changes? (y/N) "
@@ -3519,32 +3532,32 @@ msgstr "Salvestan muutused? "
 
 #, fuzzy
 msgid "Quit without saving? (y/N) "
-msgstr "Väljun salvestamata? "
+msgstr "Väljun salvestamata? "
 
 #, c-format
 msgid "update failed: %s\n"
-msgstr "uuendamine ebaõnnestus: %s\n"
+msgstr "uuendamine ebaõnnestus: %s\n"
 
 msgid "Key not changed so no update needed.\n"
-msgstr "Võtit ei muudetud, seega pole uuendamist vaja.\n"
+msgstr "Võtit ei muudetud, seega pole uuendamist vaja.\n"
 
 #, fuzzy, c-format
 #| msgid "Key generation failed: %s\n"
 msgid "User ID revocation failed: %s\n"
-msgstr "Võtme genereerimine ebaõnnestus: %s\n"
+msgstr "Võtme genereerimine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" is not a fingerprint\n"
-msgstr "viga: vigane sõrmejälg\n"
+msgstr "viga: vigane sõrmejälg\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" is not the primary fingerprint\n"
-msgstr "TrustDB initsialiseerimine ebaõnnestus: %s\n"
+msgstr "TrustDB initsialiseerimine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid value\n"
 msgid "Invalid user ID '%s': %s\n"
-msgstr "vigane väärtus\n"
+msgstr "vigane väärtus\n"
 
 #, fuzzy
 #| msgid "No such user ID.\n"
@@ -3553,10 +3566,10 @@ msgstr "Tundmatu kasutaja ID.\n"
 
 #, fuzzy
 msgid "Nothing to sign.\n"
-msgstr "Võtmega %08lX pole midagi allkirjastada\n"
+msgstr "Võtmega %08lX pole midagi allkirjastada\n"
 
 msgid "Digest: "
-msgstr "Teatelühend: "
+msgstr "Teatelühend: "
 
 msgid "Features: "
 msgstr "Omadused: "
@@ -3576,11 +3589,11 @@ msgstr "PGP 2.x stiilis kasutaja ID ei oma seadeid.\n"
 
 #, fuzzy, c-format
 msgid "The following key was revoked on %s by %s key %s\n"
-msgstr "Selle võtme võib olla tühistanud %s võti "
+msgstr "Selle võtme võib olla tühistanud %s võti "
 
 #, fuzzy, c-format
 msgid "This key may be revoked by %s key %s"
-msgstr "Selle võtme võib olla tühistanud %s võti "
+msgstr "Selle võtme võib olla tühistanud %s võti "
 
 #, fuzzy
 msgid "(sensitive)"
@@ -3588,11 +3601,11 @@ msgstr " (tundlik)"
 
 #, fuzzy, c-format
 msgid "created: %s"
-msgstr "%s ei õnnestu luua: %s\n"
+msgstr "%s ei õnnestu luua: %s\n"
 
 #, fuzzy, c-format
 msgid "revoked: %s"
-msgstr "[tühistatud] "
+msgstr "[tühistatud] "
 
 #, fuzzy, c-format
 msgid "expired: %s"
@@ -3618,18 +3631,18 @@ msgid "validity: %s"
 msgstr ""
 
 msgid "This key has been disabled"
-msgstr "See võti on blokeeritud"
+msgstr "See võti on blokeeritud"
 
 msgid ""
 "Please note that the shown key validity is not necessarily correct\n"
 "unless you restart the program.\n"
 msgstr ""
-"Tuleb tähele panna et kuni te pole programmi uuesti käivitanud, ei pruugi\n"
-"näidatud võtme kehtivus olla tingimata korrektne.\n"
+"Tuleb tähele panna et kuni te pole programmi uuesti käivitanud, ei pruugi\n"
+"näidatud võtme kehtivus olla tingimata korrektne.\n"
 
 #, fuzzy
 msgid "revoked"
-msgstr "[tühistatud] "
+msgstr "[tühistatud] "
 
 #, fuzzy
 msgid "expired"
@@ -3639,8 +3652,8 @@ msgid ""
 "WARNING: no user ID has been marked as primary.  This command may\n"
 "              cause a different user ID to become the assumed primary.\n"
 msgstr ""
-"HOIATUS: ühtegi kasutaja ID pole märgitud primaarseks.  See käsklus võib\n"
-"              põhjustada muu kasutaja ID primaarseks määramist.\n"
+"HOIATUS: ühtegi kasutaja ID pole märgitud primaarseks.  See käsklus võib\n"
+"              põhjustada muu kasutaja ID primaarseks määramist.\n"
 
 msgid "WARNING: Your encryption subkey expires soon.\n"
 msgstr ""
@@ -3648,21 +3661,21 @@ msgstr ""
 #, fuzzy
 #| msgid "You can't change the expiration date of a v3 key\n"
 msgid "You may want to change its expiration date too.\n"
-msgstr "v3 võtme aegumise aega ei saa muuta.\n"
+msgstr "v3 võtme aegumise aega ei saa muuta.\n"
 
 msgid ""
 "WARNING: This is a PGP2-style key.  Adding a photo ID may cause some "
 "versions\n"
 "         of PGP to reject this key.\n"
 msgstr ""
-"HOIATUS: See on PGP2-stiilis võti. Foto ID lisamine võib sundida mõningaid\n"
-"         PGP versioone seda võtit tagasi lükkama.\n"
+"HOIATUS: See on PGP2-stiilis võti. Foto ID lisamine võib sundida mõningaid\n"
+"         PGP versioone seda võtit tagasi lükkama.\n"
 
 msgid "Are you sure you still want to add it? (y/N) "
 msgstr "Olete kindel, et soovite seda ikka lisada? (j/E) "
 
 msgid "You may not add a photo ID to a PGP2-style key.\n"
-msgstr "Foto IDd ei saa PGP2 võtmele lisada.\n"
+msgstr "Foto IDd ei saa PGP2 võtmele lisada.\n"
 
 msgid "Such a user ID already exists on this key!\n"
 msgstr ""
@@ -3677,7 +3690,7 @@ msgid "Delete this unknown signature? (y/N/q)"
 msgstr "Kustutan selle tundmatu allkirja? (j/E/v)"
 
 msgid "Really delete this self-signature? (y/N)"
-msgstr "Kas tõesti kustutan selle iseenda allkirja? (j/E)"
+msgstr "Kas tõesti kustutan selle iseenda allkirja? (j/E)"
 
 #, fuzzy, c-format
 #| msgid "Deleted %d signature.\n"
@@ -3695,86 +3708,86 @@ msgstr "vigane pakend"
 
 #, fuzzy, c-format
 msgid "User ID \"%s\" compacted: %s\n"
-msgstr "Kasutaja ID \"%s\" on tühistatud."
+msgstr "Kasutaja ID \"%s\" on tühistatud."
 
 #, fuzzy, c-format
 msgid "User ID \"%s\": %d signature removed\n"
 msgid_plural "User ID \"%s\": %d signatures removed\n"
-msgstr[0] "Kasutaja ID \"%s\" on tühistatud."
-msgstr[1] "Kasutaja ID \"%s\" on tühistatud."
+msgstr[0] "Kasutaja ID \"%s\" on tühistatud."
+msgstr[1] "Kasutaja ID \"%s\" on tühistatud."
 
 #, fuzzy, c-format
 msgid "User ID \"%s\": already minimized\n"
-msgstr "kasutaja ID \"%s\" on juba tühistatud\n"
+msgstr "kasutaja ID \"%s\" on juba tühistatud\n"
 
 #, fuzzy, c-format
 msgid "User ID \"%s\": already clean\n"
-msgstr "kasutaja ID \"%s\" on juba tühistatud\n"
+msgstr "kasutaja ID \"%s\" on juba tühistatud\n"
 
 msgid ""
 "WARNING: This is a PGP 2.x-style key.  Adding a designated revoker may "
 "cause\n"
 "         some versions of PGP to reject this key.\n"
 msgstr ""
-"HOIATUS: See on PGP2-stiilis võti. Määratud tühistaja lisamine võib\n"
-"         põhjustada mõningaid PGP versioone seda võtit tagasi lükkama.\n"
+"HOIATUS: See on PGP2-stiilis võti. Määratud tühistaja lisamine võib\n"
+"         põhjustada mõningaid PGP versioone seda võtit tagasi lükkama.\n"
 
 msgid "You may not add a designated revoker to a PGP 2.x-style key.\n"
-msgstr "PGP 2.x-stiili võtmele ei saa määratud tühistajat lisada.\n"
+msgstr "PGP 2.x-stiili võtmele ei saa määratud tühistajat lisada.\n"
 
 msgid "Enter the user ID of the designated revoker: "
-msgstr "Sisestage määratud tühistaja kasutaja ID: "
+msgstr "Sisestage määratud tühistaja kasutaja ID: "
 
 msgid "cannot appoint a PGP 2.x style key as a designated revoker\n"
-msgstr "PGP 2.x stiilis võtit ei saa nimetada määratud tühistajaks\n"
+msgstr "PGP 2.x stiilis võtit ei saa nimetada määratud tühistajaks\n"
 
 msgid "you cannot appoint a key as its own designated revoker\n"
-msgstr "te ei saa nimetada võtit iseenda määratud tühistajaks\n"
+msgstr "te ei saa nimetada võtit iseenda määratud tühistajaks\n"
 
 #, fuzzy
 msgid "this key has already been designated as a revoker\n"
-msgstr "HOIATUS: See võti on määratud tühistaja poolt tühistatud!\n"
+msgstr "HOIATUS: See võti on määratud tühistaja poolt tühistatud!\n"
 
 msgid "WARNING: appointing a key as a designated revoker cannot be undone!\n"
-msgstr "HOIATUS: võtme seadmist määratud tühistajaks ei saa tagasi võtta!\n"
+msgstr "HOIATUS: võtme seadmist määratud tühistajaks ei saa tagasi võtta!\n"
 
 #, fuzzy
 msgid ""
 "Are you sure you want to appoint this key as a designated revoker? (y/N) "
 msgstr ""
-"Olete kindel, et soovite seda võtit seada määratud tühistajaks? (j/E): "
+"Olete kindel, et soovite seda võtit seada määratud tühistajaks? (j/E): "
 
 #, fuzzy
 msgid ""
 "Are you sure you want to change the expiration time for multiple subkeys? (y/"
 "N) "
 msgstr ""
-"Olete kindel, et soovite seda võtit seada määratud tühistajaks? (j/E): "
+"Olete kindel, et soovite seda võtit seada määratud tühistajaks? (j/E): "
 
 #, fuzzy
 msgid "Changing expiration time for a subkey.\n"
-msgstr "Muudan sekundaarse võtme aegumise aega.\n"
+msgstr "Muudan sekundaarse võtme aegumise aega.\n"
 
 msgid "Changing expiration time for the primary key.\n"
-msgstr "Muudan primaarse võtme aegumise aega.\n"
+msgstr "Muudan primaarse võtme aegumise aega.\n"
 
 msgid "You can't change the expiration date of a v3 key\n"
-msgstr "v3 võtme aegumise aega ei saa muuta.\n"
+msgstr "v3 võtme aegumise aega ei saa muuta.\n"
 
 #, fuzzy, c-format
 msgid "signing subkey %s is already cross-certified\n"
-msgstr "HOIATUS: allkirjastamise alamvõti %08lX ei ole rist-sertifitseeritud\n"
+msgstr "HOIATUS: allkirjastamise alamvõti %08lX ei ole rist-sertifitseeritud\n"
 
 #, c-format
 msgid "subkey %s does not sign and so does not need to be cross-certified\n"
 msgstr ""
 
 msgid "Please select exactly one user ID.\n"
-msgstr "Palun valige täpselt üks kasutaja ID.\n"
+msgstr "Palun valige täpselt üks kasutaja ID.\n"
 
 #, fuzzy, c-format
 msgid "skipping v3 self-signature on user ID \"%s\"\n"
-msgstr "jätan kasutaja \"%s\" v3 iseenda allkirja vahele\n"
+msgstr "jätan kasutaja \"%s\" v3 iseenda allkirja vahele\n"
 
 msgid "Enter your preferred keyserver URL: "
 msgstr ""
@@ -3793,7 +3806,7 @@ msgstr "Allkirja noteerimine: "
 
 #, fuzzy
 msgid "Proceed? (y/N) "
-msgstr "Kirjutan üle (j/E)? "
+msgstr "Kirjutan üle (j/E)? "
 
 #, c-format
 msgid "No user ID with index %d\n"
@@ -3827,10 +3840,10 @@ msgid "This signature expired on %s.\n"
 msgstr "See allkiri aegub %s.\n"
 
 msgid "Are you sure you still want to revoke it? (y/N) "
-msgstr "Olete kindel, et soovite seda ikka tühistada? (j/E) "
+msgstr "Olete kindel, et soovite seda ikka tühistada? (j/E) "
 
 msgid "Create a revocation certificate for this signature? (y/N) "
-msgstr "Loon sellele allkirjale tühistamise sertifikaadi? (j/E) "
+msgstr "Loon sellele allkirjale tühistamise sertifikaadi? (j/E) "
 
 #, fuzzy
 msgid "Not signed by you.\n"
@@ -3838,7 +3851,7 @@ msgstr "   allkirjastanud %08lX %s%s\n"
 
 #, fuzzy, c-format
 msgid "You have signed these user IDs on key %s:\n"
-msgstr "Te olete allkirjastanud järgnevad kasutaja IDd:\n"
+msgstr "Te olete allkirjastanud järgnevad kasutaja IDd:\n"
 
 #, fuzzy
 msgid " (non-revocable)"
@@ -3846,16 +3859,16 @@ msgstr " (mitte-eksporditav)"
 
 #, fuzzy, c-format
 msgid "revoked by your key %s on %s\n"
-msgstr "   tühistanud %08lX %s\n"
+msgstr "   tühistanud %08lX %s\n"
 
 msgid "You are about to revoke these signatures:\n"
-msgstr "Te asute tühistama järgmisi allkirju:\n"
+msgstr "Te asute tühistama järgmisi allkirju:\n"
 
 msgid "Really create the revocation certificates? (y/N) "
-msgstr "Kas tõesti loon tühistamise sertifikaadid? (j/E) "
+msgstr "Kas tõesti loon tühistamise sertifikaadid? (j/E) "
 
 msgid "no secret key\n"
-msgstr "salajast võtit pole\n"
+msgstr "salajast võtit pole\n"
 
 #, c-format
 msgid "tried to revoke a non-user ID: %s\n"
@@ -3863,7 +3876,7 @@ msgstr ""
 
 #, c-format
 msgid "user ID \"%s\" is already revoked\n"
-msgstr "kasutaja ID \"%s\" on juba tühistatud\n"
+msgstr "kasutaja ID \"%s\" on juba tühistatud\n"
 
 #, c-format
 msgid "WARNING: a user ID signature is dated %d seconds in the future\n"
@@ -3871,15 +3884,15 @@ msgstr "HOIATUS: kasutaja ID allkirja ajatempel on %d sekundit tulevikus\n"
 
 #, fuzzy, c-format
 msgid "Key %s is already revoked.\n"
-msgstr "kasutaja ID \"%s\" on juba tühistatud\n"
+msgstr "kasutaja ID \"%s\" on juba tühistatud\n"
 
 #, fuzzy, c-format
 msgid "Subkey %s is already revoked.\n"
-msgstr "kasutaja ID \"%s\" on juba tühistatud\n"
+msgstr "kasutaja ID \"%s\" on juba tühistatud\n"
 
 #, fuzzy, c-format
 msgid "Displaying %s photo ID of size %ld for key %s (uid %d)\n"
-msgstr "Näitan %s foto IDd suurusega %ld, võti 0x%08lX (uid %d)\n"
+msgstr "Näitan %s foto IDd suurusega %ld, võti 0x%08lX (uid %d)\n"
 
 #, fuzzy, c-format
 msgid "preference '%s' duplicated\n"
@@ -3899,7 +3912,7 @@ msgstr "liiga palju `%c' eelistusi\n"
 
 #, fuzzy, c-format
 msgid "invalid item '%s' in preference string\n"
-msgstr "lubamatu sümbol eelistuste sõnes\n"
+msgstr "lubamatu sümbol eelistuste sõnes\n"
 
 msgid "writing direct signature\n"
 msgstr "kirjutan otsese allkirja\n"
@@ -3908,15 +3921,15 @@ msgid "writing self signature\n"
 msgstr "kirjutan iseenda allkirja\n"
 
 msgid "writing key binding signature\n"
-msgstr "kirjutan võtit siduva allkirja\n"
+msgstr "kirjutan võtit siduva allkirja\n"
 
 #, c-format
 msgid "keysize invalid; using %u bits\n"
-msgstr "vigane võtme suurus; kasutan %u bitti\n"
+msgstr "vigane võtme suurus; kasutan %u bitti\n"
 
 #, c-format
 msgid "keysize rounded up to %u bits\n"
-msgstr "võtme suurus ümardatud üles %u bitini\n"
+msgstr "võtme suurus ümardatud üles %u bitini\n"
 
 msgid ""
 "WARNING: some OpenPGP programs can't handle a DSA key with this digest size\n"
@@ -3931,7 +3944,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Encrypt"
-msgstr "krüpteeri andmed"
+msgstr "krüpteeri andmed"
 
 msgid "Authenticate"
 msgstr ""
@@ -3962,7 +3975,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "   (%c) Toggle the encrypt capability\n"
-msgstr "   (%d) ElGamal (ainult krüptimiseks)\n"
+msgstr "   (%d) ElGamal (ainult krüptimiseks)\n"
 
 #, c-format
 msgid "   (%c) Toggle the authenticate capability\n"
@@ -3973,7 +3986,7 @@ msgid "   (%c) Finished\n"
 msgstr ""
 
 msgid "Please select what kind of key you want:\n"
-msgstr "Palun valige, millist võtmetüüpi te soovite:\n"
+msgstr "Palun valige, millist võtmetüüpi te soovite:\n"
 
 #, fuzzy, c-format
 msgid "   (%d) RSA and RSA (default)\n"
@@ -3993,19 +4006,19 @@ msgstr "   (%d) RSA (ainult allkirjastamiseks)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) Elgamal (encrypt only)\n"
-msgstr "   (%d) ElGamal (ainult krüptimiseks)\n"
+msgstr "   (%d) ElGamal (ainult krüptimiseks)\n"
 
 #, c-format
 msgid "   (%d) RSA (encrypt only)\n"
-msgstr "   (%d) RSA (ainult krüpteerimiseks)\n"
+msgstr "   (%d) RSA (ainult krüpteerimiseks)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) DSA (set your own capabilities)\n"
-msgstr "   (%d) RSA (ainult krüpteerimiseks)\n"
+msgstr "   (%d) RSA (ainult krüpteerimiseks)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) RSA (set your own capabilities)\n"
-msgstr "   (%d) RSA (ainult krüpteerimiseks)\n"
+msgstr "   (%d) RSA (ainult krüpteerimiseks)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) ECC and ECC\n"
@@ -4018,16 +4031,16 @@ msgstr "   (%d) DSA (ainult allkirjastamiseks)\n"
 
 #, fuzzy, c-format
 msgid "  (%d) ECC (set your own capabilities)\n"
-msgstr "   (%d) RSA (ainult krüpteerimiseks)\n"
+msgstr "   (%d) RSA (ainult krüpteerimiseks)\n"
 
 #, fuzzy, c-format
 #| msgid "   (%d) RSA (encrypt only)\n"
 msgid "  (%d) ECC (encrypt only)\n"
-msgstr "   (%d) RSA (ainult krüpteerimiseks)\n"
+msgstr "   (%d) RSA (ainult krüpteerimiseks)\n"
 
 #, fuzzy, c-format
 msgid "  (%d) Existing key\n"
-msgstr "   (%d) RSA (ainult krüpteerimiseks)\n"
+msgstr "   (%d) RSA (ainult krüpteerimiseks)\n"
 
 #, fuzzy
 msgid "Enter the keygrip: "
@@ -4043,7 +4056,7 @@ msgstr "Kasutaja ID numbriga %d puudub\n"
 #, fuzzy, c-format
 #| msgid "rounded up to %u bits\n"
 msgid "rounded to %u bits\n"
-msgstr "ümardatud üles %u bitini\n"
+msgstr "ümardatud üles %u bitini\n"
 
 #, c-format
 msgid "%s keys may be between %u and %u bits long.\n"
@@ -4051,20 +4064,20 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the subkey? (%u) "
-msgstr "Millist võtmepikkust te soovite? (1024) "
+msgstr "Millist võtmepikkust te soovite? (1024) "
 
 #, fuzzy, c-format
 msgid "What keysize do you want? (%u) "
-msgstr "Millist võtmepikkust te soovite? (1024) "
+msgstr "Millist võtmepikkust te soovite? (1024) "
 
 #, c-format
 msgid "Requested keysize is %u bits\n"
-msgstr "Soovitud võtmepikkus on %u bitti\n"
+msgstr "Soovitud võtmepikkus on %u bitti\n"
 
 #, fuzzy
 #| msgid "Please select what kind of key you want:\n"
 msgid "Please select which elliptic curve you want:\n"
-msgstr "Palun valige, millist võtmetüüpi te soovite:\n"
+msgstr "Palun valige, millist võtmetüüpi te soovite:\n"
 
 msgid ""
 "Please specify how long the key should be valid.\n"
@@ -4074,12 +4087,12 @@ msgid ""
 "      <n>m = key expires in n months\n"
 "      <n>y = key expires in n years\n"
 msgstr ""
-"Palun määrake, kui kaua on võti kehtiv.\n"
-"         0 = võti ei aegu\n"
-"      <n>  = võti aegub n päevaga\n"
-"      <n>w = võti aegub n nädalaga\n"
-"      <n>m = võti aegub n kuuga\n"
-"      <n>y = võti aegub n aastaga\n"
+"Palun määrake, kui kaua on võti kehtiv.\n"
+"         0 = võti ei aegu\n"
+"      <n>  = võti aegub n päevaga\n"
+"      <n>w = võti aegub n nädalaga\n"
+"      <n>m = võti aegub n kuuga\n"
+"      <n>y = võti aegub n aastaga\n"
 
 msgid ""
 "Please specify how long the signature should be valid.\n"
@@ -4089,22 +4102,22 @@ msgid ""
 "      <n>m = signature expires in n months\n"
 "      <n>y = signature expires in n years\n"
 msgstr ""
-"Palun määrake, kui kaua allkiri kehtib.\n"
+"Palun määrake, kui kaua allkiri kehtib.\n"
 "         0 = allkiri ei aegu\n"
-"      <n>  = allkiri aegub n päevaga\n"
-"      <n>w = allkiri aegub n nädalaga\n"
+"      <n>  = allkiri aegub n päevaga\n"
+"      <n>w = allkiri aegub n nädalaga\n"
 "      <n>m = allkiri aegub n kuuga\n"
 "      <n>y = allkiri aegub n aastaga\n"
 
 msgid "Key is valid for? (0) "
-msgstr "Võti on kehtiv kuni? (0) "
+msgstr "Võti on kehtiv kuni? (0) "
 
 #, fuzzy, c-format
 msgid "Signature is valid for? (%s) "
 msgstr "Allkiri on kehtiv kuni? (0) "
 
 msgid "invalid value\n"
-msgstr "vigane väärtus\n"
+msgstr "vigane väärtus\n"
 
 #, fuzzy
 msgid "Key does not expire at all\n"
@@ -4126,12 +4139,12 @@ msgid ""
 "Your system can't display dates beyond 2038.\n"
 "However, it will be correctly handled up to 2106.\n"
 msgstr ""
-"Teie süsteem ei saa esitada kuupäevi peale aastat 2038.\n"
-"Siiski käsitletakse neid korrektselt aastani 2106.\n"
+"Teie süsteem ei saa esitada kuupäevi peale aastat 2038.\n"
+"Siiski käsitletakse neid korrektselt aastani 2106.\n"
 
 #, fuzzy
 msgid "Is this correct? (y/N) "
-msgstr "On see õige (j/e)? "
+msgstr "On see õige (j/e)? "
 
 msgid ""
 "\n"
@@ -4153,26 +4166,26 @@ msgid ""
 "\n"
 msgstr ""
 "\n"
-"Võtme identifitseerimiseks on vaja määrata kasutaja; tarkvara konstrueerib\n"
-"kasutaja id kasutades pärisnime, kommentaari ja e-posti aadressi kujul:\n"
+"Võtme identifitseerimiseks on vaja määrata kasutaja; tarkvara konstrueerib\n"
+"kasutaja id kasutades pärisnime, kommentaari ja e-posti aadressi kujul:\n"
 "    \"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>\"\n"
 "\n"
 
 msgid "Real name: "
-msgstr "Pärisnimi: "
+msgstr "Pärisnimi: "
 
 msgid "Invalid character in name\n"
-msgstr "Lubamatu sümbol nimes\n"
+msgstr "Lubamatu sümbol nimes\n"
 
 #, c-format
 msgid "The characters '%s' and '%s' may not appear in name\n"
 msgstr ""
 
 msgid "Name may not start with a digit\n"
-msgstr "Nimi ei või alata numbriga\n"
+msgstr "Nimi ei või alata numbriga\n"
 
 msgid "Name must be at least 5 characters long\n"
-msgstr "Nimes peab olema vähemalt 5 sümbolit\n"
+msgstr "Nimes peab olema vähemalt 5 sümbolit\n"
 
 msgid "Email address: "
 msgstr "E-posti aadress: "
@@ -4184,7 +4197,7 @@ msgid "Comment: "
 msgstr "Kommentaar: "
 
 msgid "Invalid character in comment\n"
-msgstr "Lubamatu sümbol kommentaaris\n"
+msgstr "Lubamatu sümbol kommentaaris\n"
 
 #, fuzzy, c-format
 #| msgid "You are using the `%s' character set.\n"
@@ -4202,7 +4215,7 @@ msgstr ""
 "\n"
 
 msgid "Please don't put the email address into the real name or the comment\n"
-msgstr "Ärge palun kirjutage e-posti aadressi pärisnimesse ega kommentaari\n"
+msgstr "Ärge palun kirjutage e-posti aadressi pärisnimesse ega kommentaari\n"
 
 #. TRANSLATORS: These are the allowed answers in
 #. lower and uppercase.  Below you will find the matching
@@ -4219,23 +4232,23 @@ msgid "NnCcEeOoQq"
 msgstr "NnKkEeOoVv"
 
 msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
-msgstr "Muuda (N)ime, (K)ommentaari, (E)posti või (V)älju? "
+msgstr "Muuda (N)ime, (K)ommentaari, (E)posti või (V)älju? "
 
 msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
-msgstr "Muuda (N)ime, (K)ommentaari, (E)posti või (O)k/(V)älju? "
+msgstr "Muuda (N)ime, (K)ommentaari, (E)posti või (O)k/(V)älju? "
 
 #, fuzzy
 #| msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
 msgid "Change (N)ame, (E)mail, or (Q)uit? "
-msgstr "Muuda (N)ime, (K)ommentaari, (E)posti või (V)älju? "
+msgstr "Muuda (N)ime, (K)ommentaari, (E)posti või (V)älju? "
 
 #, fuzzy
 #| msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
 msgid "Change (N)ame, (E)mail, or (O)kay/(Q)uit? "
-msgstr "Muuda (N)ime, (K)ommentaari, (E)posti või (O)k/(V)älju? "
+msgstr "Muuda (N)ime, (K)ommentaari, (E)posti või (O)k/(V)älju? "
 
 msgid "Please correct the error first\n"
-msgstr "Palun parandage kõigepealt viga\n"
+msgstr "Palun parandage kõigepealt viga\n"
 
 msgid ""
 "We need to generate a lot of random bytes. It is a good idea to perform\n"
@@ -4245,12 +4258,12 @@ msgid ""
 msgstr ""
 "Me peame genereerima palju juhuslikke baite. Praegu oleks hea teostada\n"
 "arvutil mingeid teisi tegevusi (kirjutada klaviatuuril, liigutada hiirt,\n"
-"kasutada kettaid jne), see annaks juhuarvude generaatorile võimaluse\n"
+"kasutada kettaid jne), see annaks juhuarvude generaatorile võimaluse\n"
 "koguda paremat entroopiat.\n"
 
 #, c-format
 msgid "Key generation failed: %s\n"
-msgstr "Võtme genereerimine ebaõnnestus: %s\n"
+msgstr "Võtme genereerimine ebaõnnestus: %s\n"
 
 #, c-format
 msgid ""
@@ -4268,78 +4281,78 @@ msgstr "`%s' on juba pakitud\n"
 
 #, fuzzy
 msgid "Create anyway? (y/N) "
-msgstr "Kasutan seda võtit ikka? "
+msgstr "Kasutan seda võtit ikka? "
 
 #, fuzzy
 msgid "creating anyway\n"
-msgstr "genereeri uus võtmepaar"
+msgstr "genereeri uus võtmepaar"
 
 #, c-format
 msgid "Note: Use \"%s %s\" for a full featured key generation dialog.\n"
 msgstr ""
 
 msgid "Key generation canceled.\n"
-msgstr "Võtme genereerimine katkestati.\n"
+msgstr "Võtme genereerimine katkestati.\n"
 
 #, fuzzy, c-format
 msgid "can't create backup file '%s': %s\n"
-msgstr "`%s' ei õnnestu luua: %s\n"
+msgstr "`%s' ei õnnestu luua: %s\n"
 
 #, fuzzy, c-format
 msgid "Note: backup of card key saved to '%s'\n"
-msgstr "MÄRKUS: salajane võti %08lX aegus %s\n"
+msgstr "MÄRKUS: salajane võti %08lX aegus %s\n"
 
 #, fuzzy, c-format
 #| msgid "writing public key to `%s'\n"
 msgid "writing public key to '%s'\n"
-msgstr "kirjutan avaliku võtme faili `%s'\n"
+msgstr "kirjutan avaliku võtme faili `%s'\n"
 
 #, c-format
 msgid "no writable public keyring found: %s\n"
-msgstr "kirjutatavat avalike võtmete hoidlat pole: %s\n"
+msgstr "kirjutatavat avalike võtmete hoidlat pole: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing public keyring `%s': %s\n"
 msgid "error writing public keyring '%s': %s\n"
-msgstr "viga avaliku võtme võtmehoidlasse `%s' kirjutamisel: %s\n"
+msgstr "viga avaliku võtme võtmehoidlasse `%s' kirjutamisel: %s\n"
 
 msgid "public and secret key created and signed.\n"
-msgstr "avalik ja salajane võti on loodud ja allkirjastatud.\n"
+msgstr "avalik ja salajane võti on loodud ja allkirjastatud.\n"
 
 #, fuzzy
 msgid ""
 "Note that this key cannot be used for encryption.  You may want to use\n"
 "the command \"--edit-key\" to generate a subkey for this purpose.\n"
 msgstr ""
-"Pidage silmas, et seda võtit ei saa kasutada krüptimiseks. \n"
-"Krüptimiseks tuleb genereerida teine võti, seda saate teha\n"
-"kasutades võtit \"--edit-key\".\n"
+"Pidage silmas, et seda võtit ei saa kasutada krüptimiseks. \n"
+"Krüptimiseks tuleb genereerida teine võti, seda saate teha\n"
+"kasutades võtit \"--edit-key\".\n"
 
 #, c-format
 msgid ""
 "key has been created %lu second in future (time warp or clock problem)\n"
-msgstr "võti loodi %lu sekund tulevikus (ajahüpe või kella probleem)\n"
+msgstr "võti loodi %lu sekund tulevikus (ajahüpe või kella probleem)\n"
 
 #, c-format
 msgid ""
 "key has been created %lu seconds in future (time warp or clock problem)\n"
-msgstr "võti loodi %lu sekundit tulevikus (ajahüpe või kella probleem)\n"
+msgstr "võti loodi %lu sekundit tulevikus (ajahüpe või kella probleem)\n"
 
 #, fuzzy
 #| msgid "NOTE: creating subkeys for v3 keys is not OpenPGP compliant\n"
 msgid "Note: creating subkeys for v3 keys is not OpenPGP compliant\n"
-msgstr "MÄRKUS: v3 võtmetele alamvõtmete loomine ei ole OpenPGP ühilduv\n"
+msgstr "MÄRKUS: v3 võtmetele alamvõtmete loomine ei ole OpenPGP ühilduv\n"
 
 msgid "Secret parts of primary key are not available.\n"
-msgstr "Primaarse võtme salajased komponendid ei ole kättesaadavad.\n"
+msgstr "Primaarse võtme salajased komponendid ei ole kättesaadavad.\n"
 
 #, fuzzy
 msgid "Secret parts of primary key are stored on-card.\n"
-msgstr "Primaarse võtme salajased komponendid ei ole kättesaadavad.\n"
+msgstr "Primaarse võtme salajased komponendid ei ole kättesaadavad.\n"
 
 #, fuzzy
 msgid "Really create? (y/N) "
-msgstr "Loon tõesti? "
+msgstr "Loon tõesti? "
 
 msgid "never     "
 msgstr "mitte kunagi"
@@ -4370,8 +4383,8 @@ msgstr[1] "%d halba allkirja\n"
 #| msgid "1 signature not checked due to an error\n"
 msgid "%d signature not checked due to an error\n"
 msgid_plural "%d signatures not checked due to errors\n"
-msgstr[0] "1 allkiri jäi vea tõttu kontrollimata\n"
-msgstr[1] "1 allkiri jäi vea tõttu kontrollimata\n"
+msgstr[0] "1 allkiri jäi vea tõttu kontrollimata\n"
+msgstr[1] "1 allkiri jäi vea tõttu kontrollimata\n"
 
 #, c-format
 msgid "Warning: %lu key skipped due to its large size\n"
@@ -4380,38 +4393,38 @@ msgstr[0] ""
 msgstr[1] ""
 
 msgid "Keyring"
-msgstr "Võtmehoidla"
+msgstr "Võtmehoidla"
 
 msgid "Primary key fingerprint:"
-msgstr "Primaarse võtme sõrmejälg:"
+msgstr "Primaarse võtme sõrmejälg:"
 
 msgid "     Subkey fingerprint:"
-msgstr "    Alamvõtme sõrmejälg:"
+msgstr "    Alamvõtme sõrmejälg:"
 
 #. TRANSLATORS: this should fit into 24 bytes so that the
 #. * fingerprint data is properly aligned with the user ID
 msgid " Primary key fingerprint:"
-msgstr " Primaarse võtme sõrmejälg:"
+msgstr " Primaarse võtme sõrmejälg:"
 
 msgid "      Subkey fingerprint:"
-msgstr "     Alamvõtme sõrmejälg:"
+msgstr "     Alamvõtme sõrmejälg:"
 
 #, fuzzy
 msgid "      Key fingerprint ="
-msgstr "     Võtme sõrmejälg ="
+msgstr "     Võtme sõrmejälg ="
 
 msgid "      Card serial no. ="
 msgstr ""
 
 #, fuzzy, c-format
 msgid "caching keyring '%s'\n"
-msgstr "kontrollin võtmehoidlat `%s'\n"
+msgstr "kontrollin võtmehoidlat `%s'\n"
 
 #, fuzzy, c-format
 msgid "%lu keys cached so far (%lu signature)\n"
 msgid_plural "%lu keys cached so far (%lu signatures)\n"
-msgstr[0] "kontrollitud %lu võtit (%lu allkirja)\n"
-msgstr[1] "kontrollitud %lu võtit (%lu allkirja)\n"
+msgstr[0] "kontrollitud %lu võtit (%lu allkirja)\n"
+msgstr[1] "kontrollitud %lu võtit (%lu allkirja)\n"
 
 #, c-format
 msgid "%lu key cached"
@@ -4428,7 +4441,7 @@ msgstr[1] "1 halb allkiri\n"
 
 #, c-format
 msgid "%s: keyring created\n"
-msgstr "%s: võtmehoidla on loodud\n"
+msgstr "%s: võtmehoidla on loodud\n"
 
 msgid "override proxy options set for dirmngr"
 msgstr ""
@@ -4461,7 +4474,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid keyserver protocol (us %d!=handler %d)\n"
-msgstr "vigased ekspordi võtmed\n"
+msgstr "vigased ekspordi võtmed\n"
 
 #, c-format
 msgid "\"%s\" not a key ID: skipping\n"
@@ -4470,8 +4483,8 @@ msgstr ""
 #, fuzzy, c-format
 msgid "refreshing %d key from %s\n"
 msgid_plural "refreshing %d keys from %s\n"
-msgstr[0] "küsin võtit %08lX võtmeserverist %s\n"
-msgstr[1] "küsin võtit %08lX võtmeserverist %s\n"
+msgstr[0] "küsin võtit %08lX võtmeserverist %s\n"
+msgstr[1] "küsin võtit %08lX võtmeserverist %s\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unable to refresh key %s via %s: %s\n"
@@ -4479,40 +4492,40 @@ msgstr "HOIATUS: ei saa kustutada ajutist faili (%s) `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "key \"%s\" not found on keyserver\n"
-msgstr "võtit '%s' ei leitud: %s\n"
+msgstr "võtit '%s' ei leitud: %s\n"
 
 #, fuzzy
 msgid "key not found on keyserver\n"
-msgstr "võtit '%s' ei leitud: %s\n"
+msgstr "võtit '%s' ei leitud: %s\n"
 
 msgid "no keyserver known (use option --keyserver)\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "requesting key %s from %s server %s\n"
-msgstr "küsin võtit %08lX võtmeserverist %s\n"
+msgstr "küsin võtit %08lX võtmeserverist %s\n"
 
 #, fuzzy, c-format
 msgid "requesting key %s from %s\n"
-msgstr "küsin võtit %08lX võtmeserverist %s\n"
+msgstr "küsin võtit %08lX võtmeserverist %s\n"
 
 #, fuzzy
 msgid "no keyserver known\n"
-msgstr "vigased ekspordi võtmed\n"
+msgstr "vigased ekspordi võtmed\n"
 
 #, fuzzy, c-format
 msgid "skipped \"%s\": %s\n"
-msgstr "`%s' jätsin vahele: %s\n"
+msgstr "`%s' jätsin vahele: %s\n"
 
 #, fuzzy, c-format
 msgid "sending key %s to %s\n"
 msgstr ""
 "\"\n"
-"allkirjastatud teie võtmega %08lX %s\n"
+"allkirjastatud teie võtmega %08lX %s\n"
 
 #, fuzzy, c-format
 msgid "requesting key from '%s'\n"
-msgstr "küsin võtit %08lX võtmeserverist %s\n"
+msgstr "küsin võtit %08lX võtmeserverist %s\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unable to fetch URI %s: %s\n"
@@ -4520,26 +4533,26 @@ msgstr "HOIATUS: ei saa kustutada ajutist faili (%s) `%s': %s\n"
 
 #, c-format
 msgid "weird size for an encrypted session key (%d)\n"
-msgstr "veider suurus krüptitud sessiooni võtme jaoks (%d)\n"
+msgstr "veider suurus krüptitud sessiooni võtme jaoks (%d)\n"
 
 #, c-format
 msgid "%s encrypted session key\n"
-msgstr "%s krüpteeritud sessiooni võti\n"
+msgstr "%s krüpteeritud sessiooni võti\n"
 
 #, fuzzy, c-format
 msgid "passphrase generated with unknown digest algorithm %d\n"
-msgstr "krüpteeritud tundmatu algoritmiga %d\n"
+msgstr "krüpteeritud tundmatu algoritmiga %d\n"
 
 #, fuzzy, c-format
 msgid "public key is %s\n"
-msgstr "avalik võti on %08lX\n"
+msgstr "avalik võti on %08lX\n"
 
 msgid "public key encrypted data: good DEK\n"
-msgstr "avaliku võtmega krüpteeritud andmed: hea DEK\n"
+msgstr "avaliku võtmega krüpteeritud andmed: hea DEK\n"
 
 #, fuzzy, c-format
 msgid "encrypted with %u-bit %s key, ID %s, created %s\n"
-msgstr "krüpteeritud %u-bitise %s võtmega, ID %08lX, loodud %s\n"
+msgstr "krüpteeritud %u-bitise %s võtmega, ID %08lX, loodud %s\n"
 
 #, fuzzy, c-format
 msgid "      \"%s\"\n"
@@ -4547,44 +4560,44 @@ msgstr "                 ka \""
 
 #, fuzzy, c-format
 msgid "encrypted with %s key, ID %s\n"
-msgstr "krüpteeritud %s võtmega, ID %08lX\n"
+msgstr "krüpteeritud %s võtmega, ID %08lX\n"
 
 #, c-format
 msgid "public key decryption failed: %s\n"
-msgstr "avaliku võtmega lahtikrüpteerimine ebaõnnestus: %s\n"
+msgstr "avaliku võtmega lahtikrüpteerimine ebaõnnestus: %s\n"
 
 #, c-format
 msgid "encrypted with %lu passphrases\n"
-msgstr "krüpteeritud kasutades %lu parooli\n"
+msgstr "krüpteeritud kasutades %lu parooli\n"
 
 msgid "encrypted with 1 passphrase\n"
-msgstr "krüpteeritud ühe parooliga\n"
+msgstr "krüpteeritud ühe parooliga\n"
 
 #, c-format
 msgid "assuming %s encrypted data\n"
-msgstr "eeldan %s krüpteeritud andmeid\n"
+msgstr "eeldan %s krüpteeritud andmeid\n"
 
 #, c-format
 msgid "IDEA cipher unavailable, optimistically attempting to use %s instead\n"
-msgstr "IDEA ¨iffer pole saadaval, loodan kasutada selle asemel %s\n"
+msgstr "IDEA šiffer pole saadaval, loodan kasutada selle asemel %s\n"
 
 msgid "WARNING: message was not integrity protected\n"
-msgstr "HOIATUS: teate kooskõlalisus ei ole tagatud\n"
+msgstr "HOIATUS: teate kooskõlalisus ei ole tagatud\n"
 
 msgid "decryption okay\n"
-msgstr "lahtikrüpteerimine õnnestus\n"
+msgstr "lahtikrüpteerimine õnnestus\n"
 
 msgid "WARNING: encrypted message has been manipulated!\n"
-msgstr "HOIATUS: krüpteeritud teadet on muudetud!\n"
+msgstr "HOIATUS: krüpteeritud teadet on muudetud!\n"
 
 #, c-format
 msgid "decryption failed: %s\n"
-msgstr "lahtikrüpteerimine ebaõnnestus: %s\n"
+msgstr "lahtikrüpteerimine ebaõnnestus: %s\n"
 
 #, fuzzy
 #| msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
 msgid "Note: sender requested \"for-your-eyes-only\"\n"
-msgstr "MÄRKUS: saatja nõudis \"ainult-teie-silmadele\"\n"
+msgstr "MÄRKUS: saatja nõudis \"ainult-teie-silmadele\"\n"
 
 #, c-format
 msgid "original file name='%.*s'\n"
@@ -4594,7 +4607,7 @@ msgid "WARNING: multiple plaintexts seen\n"
 msgstr ""
 
 msgid "standalone revocation - use \"gpg --import\" to apply\n"
-msgstr "eraldiseisev tühistus - realiseerimiseks kasutage \"gpg --import\"\n"
+msgstr "eraldiseisev tühistus - realiseerimiseks kasutage \"gpg --import\"\n"
 
 #, fuzzy
 msgid "no signature found\n"
@@ -4613,11 +4626,11 @@ msgid "Good signature from \"%s\""
 msgstr "Korrektne allkiri kasutajalt \""
 
 msgid "signature verification suppressed\n"
-msgstr "allkirja kontroll jäeti ära\n"
+msgstr "allkirja kontroll jäeti ära\n"
 
 #, fuzzy
 msgid "can't handle this ambiguous signature data\n"
-msgstr "neid allkirju ei õnnestu töödelda\n"
+msgstr "neid allkirju ei õnnestu töödelda\n"
 
 #, fuzzy, c-format
 msgid "Signature made %s\n"
@@ -4629,14 +4642,14 @@ msgstr "                 ka \""
 
 #, fuzzy, c-format
 msgid "Signature made %s using %s key ID %s\n"
-msgstr "Allkirja lõi %.*s kasutades %s võtit ID %08lX\n"
+msgstr "Allkirja lõi %.*s kasutades %s võtit ID %08lX\n"
 
 #, fuzzy, c-format
 msgid "               issuer \"%s\"\n"
 msgstr "                 ka \""
 
 msgid "Key available at: "
-msgstr "Võtme leiate: "
+msgstr "Võtme leiate: "
 
 msgid "[uncertain]"
 msgstr "[ebakindel]"
@@ -4656,7 +4669,7 @@ msgstr "Allkiri aegub %s\n"
 #, fuzzy, c-format
 #| msgid "%s signature, digest algorithm %s\n"
 msgid "%s signature, digest algorithm %s%s%s\n"
-msgstr "%s allkiri, sõnumilühendi algoritm %s\n"
+msgstr "%s allkiri, sõnumilühendi algoritm %s\n"
 
 msgid "binary"
 msgstr "binaarne"
@@ -4670,7 +4683,7 @@ msgstr "tundmatu"
 #, fuzzy
 #| msgid "unknown pubkey algorithm"
 msgid ", key algorithm "
-msgstr "tundmatu avaliku võtme algoritm"
+msgstr "tundmatu avaliku võtme algoritm"
 
 #, c-format
 msgid "WARNING: not a detached signature; file '%s' was NOT verified!\n"
@@ -4696,38 +4709,38 @@ msgstr "vana stiili (PGP 2.x) allkiri\n"
 
 #, fuzzy, c-format
 msgid "fstat of '%s' failed in %s: %s\n"
-msgstr "faili ei õnnestu avada: %s\n"
+msgstr "faili ei õnnestu avada: %s\n"
 
 #, fuzzy, c-format
 msgid "fstat(%d) failed in %s: %s\n"
-msgstr "trustdb: lugemine ebaõnnestus (n=%d): %s\n"
+msgstr "trustdb: lugemine ebaõnnestus (n=%d): %s\n"
 
 #, fuzzy, c-format
 msgid "WARNING: using experimental public key algorithm %s\n"
-msgstr "ei oska käsitleda avaliku võtme algoritmi %d\n"
+msgstr "ei oska käsitleda avaliku võtme algoritmi %d\n"
 
 #, fuzzy
 msgid "WARNING: Elgamal sign+encrypt keys are deprecated\n"
 msgstr ""
-"sõnumilühendi algoritmi %s (%d) kasutamine on vastuolus saaja eelistustega\n"
+"sõnumilühendi algoritmi %s (%d) kasutamine on vastuolus saaja eelistustega\n"
 
 #, fuzzy, c-format
 msgid "WARNING: using experimental cipher algorithm %s\n"
-msgstr "realiseerimata ¨ifri algoritm"
+msgstr "realiseerimata šifri algoritm"
 
 #, fuzzy, c-format
 msgid "WARNING: using experimental digest algorithm %s\n"
-msgstr "%s allkiri, sõnumilühendi algoritm %s\n"
+msgstr "%s allkiri, sõnumilühendi algoritm %s\n"
 
 #, fuzzy, c-format
 msgid "WARNING: digest algorithm %s is deprecated\n"
 msgstr ""
-"sõnumilühendi algoritmi %s (%d) kasutamine on vastuolus saaja eelistustega\n"
+"sõnumilühendi algoritmi %s (%d) kasutamine on vastuolus saaja eelistustega\n"
 
 #, fuzzy, c-format
 #| msgid "%s signature, digest algorithm %s\n"
 msgid "Note: signatures using the %s algorithm are rejected\n"
-msgstr "%s allkiri, sõnumilühendi algoritm %s\n"
+msgstr "%s allkiri, sõnumilühendi algoritm %s\n"
 
 #, fuzzy, c-format
 msgid "(reported error: %s)\n"
@@ -4742,11 +4755,11 @@ msgstr ""
 
 #, c-format
 msgid "%s:%d: deprecated option \"%s\"\n"
-msgstr "%s:%d: ebasoovitav võti \"%s\"\n"
+msgstr "%s:%d: ebasoovitav võti \"%s\"\n"
 
 #, c-format
 msgid "WARNING: \"%s\" is a deprecated option\n"
-msgstr "HOIATUS: võtit \"%s\" ei soovitata kasutada.\n"
+msgstr "HOIATUS: võtit \"%s\" ei soovitata kasutada.\n"
 
 #, c-format
 msgid "please use \"%s%s\" instead\n"
@@ -4754,16 +4767,16 @@ msgstr "palun kasutage selle asemel \"%s%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: \"%s\" is a deprecated command - do not use it\n"
-msgstr "HOIATUS: võtit \"%s\" ei soovitata kasutada.\n"
+msgstr "HOIATUS: võtit \"%s\" ei soovitata kasutada.\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: \"%s\" is obsolete in this file - it only has effect in %s\n"
-msgstr "HOIATUS: võtit \"%s\" ei soovitata kasutada.\n"
+msgstr "HOIATUS: võtit \"%s\" ei soovitata kasutada.\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: \"%s%s\" is an obsolete option - it has no effect except on %s\n"
-msgstr "HOIATUS: võtit \"%s\" ei soovitata kasutada.\n"
+msgstr "HOIATUS: võtit \"%s\" ei soovitata kasutada.\n"
 
 msgid "Uncompressed"
 msgstr "Pakkimata"
@@ -4779,7 +4792,7 @@ msgstr "see teade ei pruugi olla programmiga %s kasutatav\n"
 
 #, fuzzy, c-format
 msgid "ambiguous option '%s'\n"
-msgstr "loen võtmeid failist `%s'\n"
+msgstr "loen võtmeid failist `%s'\n"
 
 #, fuzzy, c-format
 msgid "unknown option '%s'\n"
@@ -4799,7 +4812,7 @@ msgstr "Fail `%s' on olemas. "
 
 #, fuzzy
 msgid "Overwrite? (y/N) "
-msgstr "Kirjutan üle (j/E)? "
+msgstr "Kirjutan üle (j/E)? "
 
 #, c-format
 msgid "%s: unknown suffix\n"
@@ -4809,7 +4822,7 @@ msgid "Enter new filename"
 msgstr "Sisestage uus failinimi"
 
 msgid "writing to stdout\n"
-msgstr "kirjutan standardväljundisse\n"
+msgstr "kirjutan standardväljundisse\n"
 
 #, fuzzy, c-format
 #| msgid "assuming signed data in `%s'\n"
@@ -4828,16 +4841,16 @@ msgstr "HOIATUS: seaded failis `%s' pole seekord veel aktiivsed\n"
 
 #, c-format
 msgid "can't handle public key algorithm %d\n"
-msgstr "ei oska käsitleda avaliku võtme algoritmi %d\n"
+msgstr "ei oska käsitleda avaliku võtme algoritmi %d\n"
 
 msgid "WARNING: potentially insecure symmetrically encrypted session key\n"
 msgstr ""
-"HOIATUS: tõenäoliselt ebaturvaline sümmeetriliselt krüpteeritud sessiooni "
-"võti\n"
+"HOIATUS: tõenäoliselt ebaturvaline sümmeetriliselt krüpteeritud sessiooni "
+"võti\n"
 
 #, c-format
 msgid "subpacket of type %d has critical bit set\n"
-msgstr "alampaketil tüübiga %d on kriitiline bitt seatud\n"
+msgstr "alampaketil tüübiga %d on kriitiline bitt seatud\n"
 
 #, fuzzy, c-format
 msgid "problem with the agent: %s\n"
@@ -4851,7 +4864,7 @@ msgstr "katkestatud kasutaja poolt\n"
 
 #, fuzzy, c-format
 msgid " (main key ID %s)"
-msgstr " (peamise võtme ID %08lX)"
+msgstr " (peamise võtme ID %08lX)"
 
 #, fuzzy
 msgid "Please enter the passphrase to unlock the OpenPGP secret key:"
@@ -4871,11 +4884,11 @@ msgstr "Palun sisestage parool; see on salajane tekst \n"
 
 #, fuzzy
 msgid "Do you really want to permanently delete the OpenPGP secret subkey key:"
-msgstr "Kas te tõesti soovite valitud võtmeid kustutada? "
+msgstr "Kas te tõesti soovite valitud võtmeid kustutada? "
 
 #, fuzzy
 msgid "Do you really want to permanently delete the OpenPGP secret key:"
-msgstr "Kas te tõesti soovite valitud võtmeid kustutada? "
+msgstr "Kas te tõesti soovite valitud võtmeid kustutada? "
 
 #, fuzzy, c-format
 msgid ""
@@ -4884,7 +4897,7 @@ msgid ""
 "%u-bit %s key, ID %s,\n"
 "created %s%s.\n"
 "%s"
-msgstr "%u-bitine %s võti, ID %08lX, loodud %s"
+msgstr "%u-bitine %s võti, ID %08lX, loodud %s"
 
 msgid ""
 "\n"
@@ -4895,16 +4908,16 @@ msgid ""
 msgstr ""
 "\n"
 "Valige foto ID'na kasutatav pilt. Pilt peab olema JPEG fail.\n"
-"Pidage meeles, et pilt salvestatakse teie avalikus võtmes. Kui kasutate\n"
-"väga suurt pilti, on ka kõti väha suur!\n"
-"Mõistlik pildi suurus võiks olla umbes 240x288.\n"
+"Pidage meeles, et pilt salvestatakse teie avalikus võtmes. Kui kasutate\n"
+"väga suurt pilti, on ka kõti väha suur!\n"
+"Mõistlik pildi suurus võiks olla umbes 240x288.\n"
 
 msgid "Enter JPEG filename for photo ID: "
 msgstr "Sisestage foto ID jaoks JPEG faili nimi: "
 
 #, fuzzy, c-format
 msgid "unable to open JPEG file '%s': %s\n"
-msgstr "faili ei õnnestu avada: %s\n"
+msgstr "faili ei õnnestu avada: %s\n"
 
 #, c-format
 msgid "This JPEG is really large (%d bytes) !\n"
@@ -4919,31 +4932,31 @@ msgid "'%s' is not a JPEG file\n"
 msgstr "\"%s\": ei ole JPEG fail\n"
 
 msgid "Is this photo correct (y/N/q)? "
-msgstr "On see foto õige (j/E/v)? "
+msgstr "On see foto õige (j/E/v)? "
 
 msgid "unable to display photo ID!\n"
-msgstr "foto ID ei saa näidata!\n"
+msgstr "foto ID ei saa näidata!\n"
 
 msgid "No reason specified"
-msgstr "Põhjus puudub"
+msgstr "Põhjus puudub"
 
 msgid "Key is superseded"
-msgstr "Võti on asendatud"
+msgstr "Võti on asendatud"
 
 msgid "Key has been compromised"
-msgstr "Võti on kompromiteeritud"
+msgstr "Võti on kompromiteeritud"
 
 msgid "Key is no longer used"
-msgstr "Võti ei ole enam kasutusel"
+msgstr "Võti ei ole enam kasutusel"
 
 msgid "User ID is no longer valid"
 msgstr "Kasutaja ID ei ole enam kehtiv"
 
 msgid "reason for revocation: "
-msgstr "tühistamise põhjus: "
+msgstr "tühistamise põhjus: "
 
 msgid "revocation comment: "
-msgstr "tühistamise kommentaar: "
+msgstr "tühistamise kommentaar: "
 
 #. TRANSLATORS: These are the allowed answers in lower and
 #. uppercase.  Below you will find the matching strings which
@@ -4961,7 +4974,7 @@ msgstr "iItTvVjJ"
 #, fuzzy
 msgid "No trust value assigned to:\n"
 msgstr ""
-"Usalduse väärtus puudub:\n"
+"Usalduse väärtus puudub:\n"
 "%4u%c/%08lX %s \""
 
 #, fuzzy, c-format
@@ -4971,7 +4984,7 @@ msgstr "                 ka \""
 #, fuzzy
 msgid ""
 "How much do you trust that this key actually belongs to the named user?\n"
-msgstr "See võti kuulub tõenäoliselt omanikule\n"
+msgstr "See võti kuulub tõenäoliselt omanikule\n"
 
 #, fuzzy, c-format
 msgid "  %d = I don't know or won't say\n"
@@ -4987,15 +5000,15 @@ msgstr " %d = Usaldan absoluutselt\n"
 
 #, fuzzy
 msgid "  m = back to the main menu\n"
-msgstr " t = tagasi põhimenüüsse\n"
+msgstr " t = tagasi põhimenüüsse\n"
 
 #, fuzzy
 msgid "  s = skip this key\n"
-msgstr " j = jäta see võti vahele\n"
+msgstr " j = jäta see võti vahele\n"
 
 #, fuzzy
 msgid "  q = quit\n"
-msgstr " v = välju\n"
+msgstr " v = välju\n"
 
 #, c-format
 msgid ""
@@ -5008,25 +5021,40 @@ msgstr "Teie otsus? "
 
 #, fuzzy
 msgid "Do you really want to set this key to ultimate trust? (y/N) "
-msgstr "Kas te tõesti soovite seda võtit absoluutselt usaldada? "
+msgstr "Kas te tõesti soovite seda võtit absoluutselt usaldada? "
 
 msgid "Certificates leading to an ultimately trusted key:\n"
-msgstr "Sertifikaadid täiesti usaldatava võtmeni:\n"
+msgstr "Sertifikaadid täiesti usaldatava võtmeni:\n"
 
 #, fuzzy, c-format
 msgid "%s: There is no assurance this key belongs to the named user\n"
-msgstr "%08lX: Ei ole midagi, mis näitaks, et see võti kuulub omanikule\n"
+msgstr "%08lX: Ei ole midagi, mis näitaks, et see võti kuulub omanikule\n"
 
 #, fuzzy, c-format
 msgid "%s: There is limited assurance this key belongs to the named user\n"
-msgstr "%08lX: Ei ole midagi, mis näitaks, et see võti kuulub omanikule\n"
+msgstr "%08lX: Ei ole midagi, mis näitaks, et see võti kuulub omanikule\n"
 
 #, fuzzy
 msgid "This key probably belongs to the named user\n"
-msgstr "See võti kuulub tõenäoliselt omanikule\n"
+msgstr "See võti kuulub tõenäoliselt omanikule\n"
 
 msgid "This key belongs to us\n"
-msgstr "See võti kuulub meile\n"
+msgstr "See võti kuulub meile\n"
+
+#, c-format
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr ""
+
+#, fuzzy
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"EI ole kindel, et see võti kuulub isikule, keda mainitakse\n"
+"kasutaja ID väljal. Kui te *tõesti* teate, mida te teete,\n"
+"võite järgnevale küsimusele vastata jaatavalt\n"
+"\n"
 
 #, fuzzy
 msgid ""
@@ -5034,36 +5062,36 @@ msgid ""
 "in the user ID.  If you *really* know what you are doing,\n"
 "you may answer the next question with yes.\n"
 msgstr ""
-"EI ole kindel, et see võti kuulub isikule, keda mainitakse\n"
-"kasutaja ID väljal. Kui te *tõesti* teate, mida te teete,\n"
-"võite järgnevale küsimusele vastata jaatavalt\n"
+"EI ole kindel, et see võti kuulub isikule, keda mainitakse\n"
+"kasutaja ID väljal. Kui te *tõesti* teate, mida te teete,\n"
+"võite järgnevale küsimusele vastata jaatavalt\n"
 "\n"
 
 #, fuzzy
 msgid "Use this key anyway? (y/N) "
-msgstr "Kasutan seda võtit ikka? "
+msgstr "Kasutan seda võtit ikka? "
 
 msgid "WARNING: Using untrusted key!\n"
-msgstr "HOIATUS: Kasutan mitteusaldatavat võtit!\n"
+msgstr "HOIATUS: Kasutan mitteusaldatavat võtit!\n"
 
 msgid "WARNING: this key might be revoked (revocation key not present)\n"
-msgstr "HOIATUS: see võti võib olla tühistatud (tühistamise võtit pole)\n"
+msgstr "HOIATUS: see võti võib olla tühistatud (tühistamise võtit pole)\n"
 
 msgid "WARNING: This key has been revoked by its designated revoker!\n"
-msgstr "HOIATUS: See võti on määratud tühistaja poolt tühistatud!\n"
+msgstr "HOIATUS: See võti on määratud tühistaja poolt tühistatud!\n"
 
 msgid "WARNING: This key has been revoked by its owner!\n"
-msgstr "HOIATUS: See võti on omaniku poolt tühistatud!\n"
+msgstr "HOIATUS: See võti on omaniku poolt tühistatud!\n"
 
 #, fuzzy
 msgid "         This could mean that the signature is forged.\n"
-msgstr "         See võib tähendada, et allkiri on võltsing.\n"
+msgstr "         See võib tähendada, et allkiri on võltsing.\n"
 
 msgid "WARNING: This subkey has been revoked by its owner!\n"
-msgstr "HOIATUS: See alamvõti on omaniku poolt tühistatud!\n"
+msgstr "HOIATUS: See alamvõti on omaniku poolt tühistatud!\n"
 
 msgid "Note: This key has been disabled.\n"
-msgstr "Märkus: See võti on blokeeritud.\n"
+msgstr "Märkus: See võti on blokeeritud.\n"
 
 #, c-format
 msgid "Note: Verified signer's address is '%s'\n"
@@ -5080,25 +5108,25 @@ msgid "trustlevel adjusted to NEVER due to bad PKA info\n"
 msgstr ""
 
 msgid "Note: This key has expired!\n"
-msgstr "Märkus: See võti on aegunud!\n"
+msgstr "Märkus: See võti on aegunud!\n"
 
 msgid "WARNING: This key is not certified with a trusted signature!\n"
-msgstr "HOIATUS: Seda võtit ei ole sertifitseeritud usaldatava allkirjaga!\n"
+msgstr "HOIATUS: Seda võtit ei ole sertifitseeritud usaldatava allkirjaga!\n"
 
 msgid ""
 "         There is no indication that the signature belongs to the owner.\n"
-msgstr "         Ei ole midagi, mis näitaks, et allkiri kuulub omanikule.\n"
+msgstr "         Ei ole midagi, mis näitaks, et allkiri kuulub omanikule.\n"
 
 msgid "WARNING: We do NOT trust this key!\n"
-msgstr "HOIATUS: Me EI usalda seda võtit!\n"
+msgstr "HOIATUS: Me EI usalda seda võtit!\n"
 
 msgid "         The signature is probably a FORGERY.\n"
-msgstr "         Allkiri on tõenäoliselt VÕLTSING.\n"
+msgstr "         Allkiri on tõenäoliselt VÕLTSING.\n"
 
 msgid ""
 "WARNING: This key is not certified with sufficiently trusted signatures!\n"
 msgstr ""
-"HOIATUS: Seda võtit ei ole sertifitseeritud piisavalt usaldatava "
+"HOIATUS: Seda võtit ei ole sertifitseeritud piisavalt usaldatava "
 "allkirjaga!\n"
 
 msgid "         It is not certain that the signature belongs to the owner.\n"
@@ -5106,31 +5134,31 @@ msgstr "         Ei ole kindel, et allkiri kuulub omanikule.\n"
 
 #, c-format
 msgid "%s: skipped: %s\n"
-msgstr "%s: jätsin vahele: %s\n"
+msgstr "%s: jätsin vahele: %s\n"
 
 #, c-format
 msgid "%s: skipped: public key is disabled\n"
-msgstr "%s: jätsin vahele: avalik võti on blokeeritud\n"
+msgstr "%s: jätsin vahele: avalik võti on blokeeritud\n"
 
 #, c-format
 msgid "%s: skipped: public key already present\n"
-msgstr "%s: jätsin vahele: avalik võti on juba olemas\n"
+msgstr "%s: jätsin vahele: avalik võti on juba olemas\n"
 
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't encrypt to '%s'\n"
-msgstr "ei õnnestu luua ühendust serveriga `%s': %s\n"
+msgstr "ei õnnestu luua ühendust serveriga `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "option '%s' given, but no valid default keys given\n"
-msgstr "vigane räsialgoritm `%s'\n"
+msgstr "vigane räsialgoritm `%s'\n"
 
 #, fuzzy, c-format
 msgid "option '%s' given, but option '%s' not given\n"
-msgstr "vigane räsialgoritm `%s'\n"
+msgstr "vigane räsialgoritm `%s'\n"
 
 msgid "You did not specify a user ID. (you may use \"-r\")\n"
-msgstr "Te ei määranud kasutaja IDd. (võite kasutada võtit \"-r\")\n"
+msgstr "Te ei määranud kasutaja IDd. (võite kasutada võtit \"-r\")\n"
 
 msgid "Current recipients:\n"
 msgstr ""
@@ -5140,19 +5168,19 @@ msgid ""
 "Enter the user ID.  End with an empty line: "
 msgstr ""
 "\n"
-"Sisestage kasutaja ID.  Lõpetage tühja reaga: "
+"Sisestage kasutaja ID.  Lõpetage tühja reaga: "
 
 msgid "No such user ID.\n"
 msgstr "Tundmatu kasutaja ID.\n"
 
 msgid "skipped: public key already set as default recipient\n"
-msgstr "jätsin vahele: avalik võti on juba vaikimisi saaja\n"
+msgstr "jätsin vahele: avalik võti on juba vaikimisi saaja\n"
 
 msgid "Public key is disabled.\n"
-msgstr "Avalik võti on blokeeritud.\n"
+msgstr "Avalik võti on blokeeritud.\n"
 
 msgid "skipped: public key already set\n"
-msgstr "jätsin vahele: avalik võti on juba olemas\n"
+msgstr "jätsin vahele: avalik võti on juba olemas\n"
 
 #, fuzzy, c-format
 msgid "unknown default recipient \"%s\"\n"
@@ -5163,14 +5191,14 @@ msgstr "kehtivaid aadresse pole\n"
 
 #, fuzzy, c-format
 msgid "Note: key %s has no %s feature\n"
-msgstr "võti %08lX: kasutaja ID puudub\n"
+msgstr "võti %08lX: kasutaja ID puudub\n"
 
 #, fuzzy, c-format
 msgid "Note: key %s has no preference for %s\n"
-msgstr "võti %08lX: kasutaja ID puudub\n"
+msgstr "võti %08lX: kasutaja ID puudub\n"
 
 msgid "data not saved; use option \"--output\" to save it\n"
-msgstr "andmeid ei salvestatud; salvestamiseks kasutage võtit \"--output\"\n"
+msgstr "andmeid ei salvestatud; salvestamiseks kasutage võtit \"--output\"\n"
 
 msgid "Detached signature.\n"
 msgstr "Eraldiseisev allkiri.\n"
@@ -5187,81 +5215,81 @@ msgstr "allkirjastatud andmeid pole\n"
 #, fuzzy, c-format
 #| msgid "can't open signed data `%s'\n"
 msgid "can't open signed data '%s'\n"
-msgstr "allkirjastatud andmete avamine ebaõnnestus `%s'\n"
+msgstr "allkirjastatud andmete avamine ebaõnnestus `%s'\n"
 
 #, fuzzy, c-format
 msgid "can't open signed data fd=%d: %s\n"
-msgstr "allkirjastatud andmete avamine ebaõnnestus `%s'\n"
+msgstr "allkirjastatud andmete avamine ebaõnnestus `%s'\n"
 
 #, fuzzy, c-format
 msgid "anonymous recipient; trying secret key %s ...\n"
-msgstr "anonüümne saaja; proovin salajast võtit %08lX ...\n"
+msgstr "anonüümne saaja; proovin salajast võtit %08lX ...\n"
 
 msgid "okay, we are the anonymous recipient.\n"
-msgstr "ok, me oleme anonüümne teate saaja.\n"
+msgstr "ok, me oleme anonüümne teate saaja.\n"
 
 msgid "old encoding of the DEK is not supported\n"
 msgstr "vana DEK kodeerimine ei ole toetatud\n"
 
 #, c-format
 msgid "cipher algorithm %d%s is unknown or disabled\n"
-msgstr "¨ifri algoritm %d%s on tundmatu või blokeeritud\n"
+msgstr "šifri algoritm %d%s on tundmatu või blokeeritud\n"
 
 #, fuzzy, c-format
 msgid "WARNING: cipher algorithm %s not found in recipient preferences\n"
-msgstr "MÄRKUS: ¨ifri algoritm %d puudub eelistustes\n"
+msgstr "MÄRKUS: šifri algoritm %d puudub eelistustes\n"
 
 #, fuzzy, c-format
 msgid "Note: secret key %s expired at %s\n"
-msgstr "MÄRKUS: salajane võti %08lX aegus %s\n"
+msgstr "MÄRKUS: salajane võti %08lX aegus %s\n"
 
 #, fuzzy
 #| msgid "NOTE: key has been revoked"
 msgid "Note: key has been revoked"
-msgstr "MÄRKUS: võti on tühistatud"
+msgstr "MÄRKUS: võti on tühistatud"
 
 #, c-format
 msgid "build_packet failed: %s\n"
-msgstr "build_packet ebaõnnestus: %s\n"
+msgstr "build_packet ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s has no user IDs\n"
-msgstr "võti %08lX: kasutaja ID puudub\n"
+msgstr "võti %08lX: kasutaja ID puudub\n"
 
 msgid "To be revoked by:\n"
-msgstr "Tühistaja:\n"
+msgstr "Tühistaja:\n"
 
 msgid "(This is a sensitive revocation key)\n"
-msgstr "(See on tundlik tühistamise võti)\n"
+msgstr "(See on tundlik tühistamise võti)\n"
 
 #, fuzzy
 #| msgid "Secret key is available.\n"
 msgid "Secret key is not available.\n"
-msgstr "Salajane võti on kasutatav.\n"
+msgstr "Salajane võti on kasutatav.\n"
 
 #, fuzzy
 msgid "Create a designated revocation certificate for this key? (y/N) "
-msgstr "Loon sellele võtmele tühistamise sertifikaadi? "
+msgstr "Loon sellele võtmele tühistamise sertifikaadi? "
 
 msgid "ASCII armored output forced.\n"
-msgstr "Väljundis sunnitakse kasutama ASCII vormingut.\n"
+msgstr "Väljundis sunnitakse kasutama ASCII vormingut.\n"
 
 #, c-format
 msgid "make_keysig_packet failed: %s\n"
-msgstr "make_keysig_packet ebaõnnestus: %s\n"
+msgstr "make_keysig_packet ebaõnnestus: %s\n"
 
 msgid "Revocation certificate created.\n"
-msgstr "Tühistamise sertifikaat on loodud.\n"
+msgstr "Tühistamise sertifikaat on loodud.\n"
 
 #, fuzzy, c-format
 msgid "no revocation keys found for \"%s\"\n"
 msgstr ""
-"`%s' jaoks pole tühistamise võtmeid\n"
+"`%s' jaoks pole tühistamise võtmeid\n"
 "\n"
 
 #, fuzzy
 msgid "This is a revocation certificate for the OpenPGP key:"
-msgstr "Loon sellele võtmele tühistamise sertifikaadi? "
+msgstr "Loon sellele võtmele tühistamise sertifikaadi? "
 
 msgid ""
 "A revocation certificate is a kind of \"kill switch\" to publicly\n"
@@ -5286,11 +5314,11 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "Revocation certificate created.\n"
 msgid "revocation certificate stored as '%s.rev'\n"
-msgstr "Tühistamise sertifikaat on loodud.\n"
+msgstr "Tühistamise sertifikaat on loodud.\n"
 
 #, fuzzy, c-format
 msgid "secret key \"%s\" not found\n"
-msgstr "salajast võtit `%s' ei leitud: %s\n"
+msgstr "salajast võtit `%s' ei leitud: %s\n"
 
 #. TRANSLATORS: The %s prints a key specification which
 #. for example has been given at the command line.  Several lines
@@ -5302,11 +5330,11 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
 msgid "error searching the keyring: %s\n"
-msgstr "viga võtmehoidla `%s' loomisel: %s\n"
+msgstr "viga võtmehoidla `%s' loomisel: %s\n"
 
 #, fuzzy
 msgid "Create a revocation certificate for this key? (y/N) "
-msgstr "Loon sellele võtmele tühistamise sertifikaadi? "
+msgstr "Loon sellele võtmele tühistamise sertifikaadi? "
 
 msgid ""
 "Revocation certificate created.\n"
@@ -5317,48 +5345,48 @@ msgid ""
 "your media become unreadable.  But have some caution:  The print system of\n"
 "your machine might store the data and make it available to others!\n"
 msgstr ""
-"Tühistamise sertifikaat on loodud.\n"
+"Tühistamise sertifikaat on loodud.\n"
 "\n"
-"Palun salvestage see andmekandjale, mida saate kindlasse kohta ära panna.\n"
-"Kui mallory saab sellele sertifikaadile juurdepääsu, võib ta seda kasutades\n"
-"muuta kõik teie võtmed kasutamiskõlbmatuks.\n"
-"Samuti on mõistlik trükkida see sertifikaat paberile ja panna hoiule "
+"Palun salvestage see andmekandjale, mida saate kindlasse kohta ära panna.\n"
+"Kui mallory saab sellele sertifikaadile juurdepääsu, võib ta seda kasutades\n"
+"muuta kõik teie võtmed kasutamiskõlbmatuks.\n"
+"Samuti on mõistlik trükkida see sertifikaat paberile ja panna hoiule "
 "juhuks,\n"
 "kui meedia muutub loetamatuks. Aga olge ettevaatlik: teie arvuti "
-"trükisüsteem\n"
-"võib salvestada need andmed ja teha teistele kättesaadavaks! \n"
+"trükisüsteem\n"
+"võib salvestada need andmed ja teha teistele kättesaadavaks! \n"
 
 msgid "Please select the reason for the revocation:\n"
-msgstr "Palun valige tühistamise põhjus:\n"
+msgstr "Palun valige tühistamise põhjus:\n"
 
 msgid "Cancel"
 msgstr "Katkesta"
 
 #, c-format
 msgid "(Probably you want to select %d here)\n"
-msgstr "(Tõenäoliselt soovite siin valida %d)\n"
+msgstr "(Tõenäoliselt soovite siin valida %d)\n"
 
 msgid "Enter an optional description; end it with an empty line:\n"
-msgstr "Sisestage mittekohustuslik kirjeldus. Lõpetage tühja reaga:\n"
+msgstr "Sisestage mittekohustuslik kirjeldus. Lõpetage tühja reaga:\n"
 
 #, c-format
 msgid "Reason for revocation: %s\n"
-msgstr "Tühistamise põhjus: %s\n"
+msgstr "Tühistamise põhjus: %s\n"
 
 msgid "(No description given)\n"
 msgstr "(Kirjeldust ei antud)\n"
 
 #, fuzzy
 msgid "Is this okay? (y/N) "
-msgstr "On see hästi? "
+msgstr "On see hästi? "
 
 msgid "weak key created - retrying\n"
-msgstr "loodi nõrk võti - proovin uuesti\n"
+msgstr "loodi nõrk võti - proovin uuesti\n"
 
 #, c-format
 msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
 msgstr ""
-"sümmeetrilises ¨ifris ei õnnestu vältida nõrga võtme kasutamist; proovisin "
+"sümmeetrilises šifris ei õnnestu vältida nõrga võtme kasutamist; proovisin "
 "%d korda!\n"
 
 #, c-format
@@ -5370,78 +5398,78 @@ msgid "%s key %s requires a %zu bit or larger hash (hash is %s)\n"
 msgstr ""
 
 msgid "WARNING: signature digest conflict in message\n"
-msgstr "HOIATUS: allkirja lühend on teatega konfliktne\n"
+msgstr "HOIATUS: allkirja lühend on teatega konfliktne\n"
 
 #, fuzzy, c-format
 msgid "WARNING: signing subkey %s is not cross-certified\n"
-msgstr "HOIATUS: allkirjastamise alamvõti %08lX ei ole rist-sertifitseeritud\n"
+msgstr "HOIATUS: allkirjastamise alamvõti %08lX ei ole rist-sertifitseeritud\n"
 
 #, fuzzy, c-format
 msgid "please see %s for more information\n"
-msgstr " i = esita palun täiendavat infot\n"
+msgstr " i = esita palun täiendavat infot\n"
 
 #, fuzzy, c-format
 msgid "WARNING: signing subkey %s has an invalid cross-certification\n"
-msgstr "HOIATUS: allkirjastamise alamvõtmel %08lX on vigane rist-sertifikaat\n"
+msgstr "HOIATUS: allkirjastamise alamvõtmel %08lX on vigane rist-sertifikaat\n"
 
 #, fuzzy, c-format
 msgid "public key %s is %lu second newer than the signature\n"
 msgid_plural "public key %s is %lu seconds newer than the signature\n"
-msgstr[0] "avalik võti %08lX on %lu sekund uuem, kui allkiri\n"
-msgstr[1] "avalik võti %08lX on %lu sekund uuem, kui allkiri\n"
+msgstr[0] "avalik võti %08lX on %lu sekund uuem, kui allkiri\n"
+msgstr[1] "avalik võti %08lX on %lu sekund uuem, kui allkiri\n"
 
 #, fuzzy, c-format
 msgid "public key %s is %lu day newer than the signature\n"
 msgid_plural "public key %s is %lu days newer than the signature\n"
-msgstr[0] "avalik võti %08lX on %lu sekund uuem, kui allkiri\n"
-msgstr[1] "avalik võti %08lX on %lu sekund uuem, kui allkiri\n"
+msgstr[0] "avalik võti %08lX on %lu sekund uuem, kui allkiri\n"
+msgstr[1] "avalik võti %08lX on %lu sekund uuem, kui allkiri\n"
 
 #, fuzzy, c-format
 msgid ""
 "key %s was created %lu second in the future (time warp or clock problem)\n"
 msgid_plural ""
 "key %s was created %lu seconds in the future (time warp or clock problem)\n"
-msgstr[0] "võti loodi %lu sekund tulevikus (ajahüpe või kella probleem)\n"
-msgstr[1] "võti loodi %lu sekund tulevikus (ajahüpe või kella probleem)\n"
+msgstr[0] "võti loodi %lu sekund tulevikus (ajahüpe või kella probleem)\n"
+msgstr[1] "võti loodi %lu sekund tulevikus (ajahüpe või kella probleem)\n"
 
 #, fuzzy, c-format
 msgid "key %s was created %lu day in the future (time warp or clock problem)\n"
 msgid_plural ""
 "key %s was created %lu days in the future (time warp or clock problem)\n"
-msgstr[0] "võti loodi %lu sekund tulevikus (ajahüpe või kella probleem)\n"
-msgstr[1] "võti loodi %lu sekund tulevikus (ajahüpe või kella probleem)\n"
+msgstr[0] "võti loodi %lu sekund tulevikus (ajahüpe või kella probleem)\n"
+msgstr[1] "võti loodi %lu sekund tulevikus (ajahüpe või kella probleem)\n"
 
 #, fuzzy, c-format
 msgid "Note: signature key %s expired %s\n"
-msgstr "MÄRKUS: allkirja võti %08lX aegus %s\n"
+msgstr "MÄRKUS: allkirja võti %08lX aegus %s\n"
 
 #, fuzzy, c-format
 msgid "Note: signature key %s has been revoked\n"
-msgstr "MÄRKUS: võti on tühistatud"
+msgstr "MÄRKUS: võti on tühistatud"
 
 #, fuzzy, c-format
 msgid "assuming bad signature from key %s due to an unknown critical bit\n"
-msgstr "eeldan tundmatu kriitilise biti tõttu võtmel %08lX vigast allkirja\n"
+msgstr "eeldan tundmatu kriitilise biti tõttu võtmel %08lX vigast allkirja\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for subkey revocation signature\n"
-msgstr "võti %08lX: alamvõtme tühistamise paketile puudub alamvõti\n"
+msgstr "võti %08lX: alamvõtme tühistamise paketile puudub alamvõti\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for subkey binding signature\n"
-msgstr "võti %08lX: alamvõtme allkirjaga sidumiseks puudub alamvõti\n"
+msgstr "võti %08lX: alamvõtme allkirjaga sidumiseks puudub alamvõti\n"
 
 #, c-format
 msgid "WARNING: unable to %%-expand notation (too large).  Using unexpanded.\n"
 msgstr ""
-"HOIATUS: noteerimise %%-asendus ebaõnnestus (liiga suur). Kasutan "
+"HOIATUS: noteerimise %%-asendus ebaõnnestus (liiga suur). Kasutan "
 "kompaktset.\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: unable to %%-expand policy URL (too large).  Using unexpanded.\n"
 msgstr ""
-"HOIATUS: poliisi urli %%-asendus ebaõnnestus (liiga suur). Kasutan "
+"HOIATUS: poliisi urli %%-asendus ebaõnnestus (liiga suur). Kasutan "
 "kompaktset.\n"
 
 #, fuzzy, c-format
@@ -5449,7 +5477,7 @@ msgid ""
 "WARNING: unable to %%-expand preferred keyserver URL (too large).  Using "
 "unexpanded.\n"
 msgstr ""
-"HOIATUS: poliisi urli %%-asendus ebaõnnestus (liiga suur). Kasutan "
+"HOIATUS: poliisi urli %%-asendus ebaõnnestus (liiga suur). Kasutan "
 "kompaktset.\n"
 
 #, fuzzy, c-format
@@ -5460,42 +5488,42 @@ msgstr "%s allkiri kasutajalt: \"%s\"\n"
 msgid ""
 "WARNING: forcing digest algorithm %s (%d) violates recipient preferences\n"
 msgstr ""
-"sõnumilühendi algoritmi %s (%d) kasutamine on vastuolus saaja eelistustega\n"
+"sõnumilühendi algoritmi %s (%d) kasutamine on vastuolus saaja eelistustega\n"
 
 msgid "signing:"
 msgstr "allkirjastan:"
 
 #, c-format
 msgid "%s encryption will be used\n"
-msgstr "kasutatakse %s krüpteerimist\n"
+msgstr "kasutatakse %s krüpteerimist\n"
 
 msgid "key is not flagged as insecure - can't use it with the faked RNG!\n"
 msgstr ""
-"võti ei ole märgitud ebaturvaliseks - sellega ei saa võlts RNGd kasutada!\n"
+"võti ei ole märgitud ebaturvaliseks - sellega ei saa võlts RNGd kasutada!\n"
 
 #, fuzzy, c-format
 msgid "skipped \"%s\": duplicated\n"
-msgstr "`%s' jätsin vahele: duplikaat\n"
+msgstr "`%s' jätsin vahele: duplikaat\n"
 
 msgid "skipped: secret key already present\n"
-msgstr "jätsin vahele: avalik võti on juba olemas\n"
+msgstr "jätsin vahele: avalik võti on juba olemas\n"
 
 #, fuzzy
 msgid "this is a PGP generated Elgamal key which is not secure for signatures!"
 msgstr ""
-"jätsin `%s' vahele: see on PGP genereeritud ElGamal võti,\n"
+"jätsin `%s' vahele: see on PGP genereeritud ElGamal võti,\n"
 "mis ei ole allkirjades kasutamiseks turvaline!\n"
 
 #, c-format
 msgid "trust record %lu, type %d: write failed: %s\n"
-msgstr "usalduse kirje %lu, tüüp %d: kirjutamine ebaõnnestus: %s\n"
+msgstr "usalduse kirje %lu, tüüp %d: kirjutamine ebaõnnestus: %s\n"
 
 #, c-format
 msgid ""
 "# List of assigned trustvalues, created %s\n"
 "# (Use \"gpg --import-ownertrust\" to restore them)\n"
 msgstr ""
-"# Omistatud usalduse väärtuste loend, loodud: %s\n"
+"# Omistatud usalduse väärtuste loend, loodud: %s\n"
 "# (Taastamiseks kasutage \"gpg --import-ownertrust\")\n"
 
 #, fuzzy, c-format
@@ -5511,11 +5539,11 @@ msgstr ""
 
 #, fuzzy
 msgid "invalid fingerprint"
-msgstr "viga: vigane sõrmejälg\n"
+msgstr "viga: vigane sõrmejälg\n"
 
 #, fuzzy
 msgid "ownertrust value missing"
-msgstr "impordi usalduse väärtused"
+msgstr "impordi usalduse väärtused"
 
 #, fuzzy, c-format
 msgid "error finding trust record in '%s': %s\n"
@@ -5527,19 +5555,19 @@ msgstr "viga lugemisel: %s\n"
 
 #, c-format
 msgid "trustdb: sync failed: %s\n"
-msgstr "trustdb: sync ebaõnnestus: %s\n"
+msgstr "trustdb: sync ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "can't create lock for '%s'\n"
-msgstr "`%s' ei õnnestu luua: %s\n"
+msgstr "`%s' ei õnnestu luua: %s\n"
 
 #, fuzzy, c-format
 msgid "can't lock '%s'\n"
-msgstr "`%s' ei õnnestu avada\n"
+msgstr "`%s' ei õnnestu avada\n"
 
 #, c-format
 msgid "trustdb rec %lu: lseek failed: %s\n"
-msgstr "trustdb kirje %lu: lseek ebaõnnestus: %s\n"
+msgstr "trustdb kirje %lu: lseek ebaõnnestus: %s\n"
 
 #, c-format
 msgid "trustdb rec %lu: write failed (n=%d): %s\n"
@@ -5554,11 +5582,11 @@ msgstr "%s: kataloogi ei ole!\n"
 
 #, fuzzy, c-format
 msgid "can't access '%s': %s\n"
-msgstr "`%s' ei õnnestu sulgeda: %s\n"
+msgstr "`%s' ei õnnestu sulgeda: %s\n"
 
 #, c-format
 msgid "%s: failed to create version record: %s"
-msgstr "%s: versioonikirje loomine ei õnnestu: %s"
+msgstr "%s: versioonikirje loomine ei õnnestu: %s"
 
 #, c-format
 msgid "%s: invalid trustdb created\n"
@@ -5571,7 +5599,7 @@ msgstr "%s: trustdb on loodud\n"
 #, fuzzy
 #| msgid "NOTE: trustdb not writable\n"
 msgid "Note: trustdb not writable\n"
-msgstr "MÄRKUS: trustdb pole kirjutatav\n"
+msgstr "MÄRKUS: trustdb pole kirjutatav\n"
 
 #, c-format
 msgid "%s: invalid trustdb\n"
@@ -5579,7 +5607,7 @@ msgstr "%s: vigane trustdb\n"
 
 #, c-format
 msgid "%s: failed to create hashtable: %s\n"
-msgstr "%s: paisktabeli loomine ebaõnnestus: %s\n"
+msgstr "%s: paisktabeli loomine ebaõnnestus: %s\n"
 
 #, c-format
 msgid "%s: error updating version record: %s\n"
@@ -5595,11 +5623,11 @@ msgstr "%s: viga versioonikirje kirjutamisel: %s\n"
 
 #, c-format
 msgid "trustdb: lseek failed: %s\n"
-msgstr "trustdb: lseek ebaõnnestus: %s\n"
+msgstr "trustdb: lseek ebaõnnestus: %s\n"
 
 #, c-format
 msgid "trustdb: read failed (n=%d): %s\n"
-msgstr "trustdb: lugemine ebaõnnestus (n=%d): %s\n"
+msgstr "trustdb: lugemine ebaõnnestus (n=%d): %s\n"
 
 #, c-format
 msgid "%s: not a trustdb file\n"
@@ -5623,11 +5651,11 @@ msgstr "%s: viga kataloogikirje kirjutamisel: %s\n"
 
 #, c-format
 msgid "%s: failed to zero a record: %s\n"
-msgstr "%s: kirje nullimine ebaõnnestus: %s\n"
+msgstr "%s: kirje nullimine ebaõnnestus: %s\n"
 
 #, c-format
 msgid "%s: failed to append a record: %s\n"
-msgstr "%s: kirje lisamine ebaõnnestus: %s\n"
+msgstr "%s: kirje lisamine ebaõnnestus: %s\n"
 
 #, fuzzy
 msgid "Error: The trustdb is corrupted.\n"
@@ -5635,11 +5663,11 @@ msgstr "%s: trustdb on loodud\n"
 
 #, c-format
 msgid "can't handle text lines longer than %d characters\n"
-msgstr "ei suuda käsitleda tekstiridu mis on pikemad, kui %d sümbolit\n"
+msgstr "ei suuda käsitleda tekstiridu mis on pikemad, kui %d sümbolit\n"
 
 #, c-format
 msgid "input line longer than %d characters\n"
-msgstr "sisendrida on pikem, kui %d sümbolit\n"
+msgstr "sisendrida on pikem, kui %d sümbolit\n"
 
 #, fuzzy, c-format
 msgid "error beginning transaction on TOFU database: %s\n"
@@ -5666,7 +5694,7 @@ msgstr "viga teate saatmisel serverile `%s': %s\n"
 #, fuzzy, c-format
 #| msgid "error writing secret keyring `%s': %s\n"
 msgid "error determining TOFU database's version: %s\n"
-msgstr "viga salajase võtme võtmehoidlasse `%s' kirjutamisel: %s\n"
+msgstr "viga salajase võtme võtmehoidlasse `%s' kirjutamisel: %s\n"
 
 #, fuzzy, c-format
 #| msgid "%s: error writing dir record: %s\n"
@@ -5682,27 +5710,31 @@ msgid "error updating TOFU database: %s\n"
 msgstr "viga teate saatmisel serverile `%s': %s\n"
 
 #, c-format
-msgid "The binding %s is NOT known."
+msgid ""
+"This is the first time the email address \"%s\" is being used with key %s."
 msgstr ""
 
 #, c-format
-msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr ""
+
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error gathering other user IDs: %s\n"
 msgstr "viga parooli loomisel: %s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr ""
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "näita võtit ja kasutaja IDd"
 
 #, fuzzy, c-format
 #| msgid "Policy: "
@@ -5723,41 +5755,47 @@ msgstr[1] ""
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr ""
 
+msgid ", "
+msgstr ""
+
 #, fuzzy
 #| msgid "list keys"
 msgid "this key"
-msgstr "näita võtmeid"
+msgstr "näita võtmeid"
+
+#, fuzzy, c-format
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
+msgstr[0] "|algo [failid]|trüki teatelühendid"
+msgstr[1] "|algo [failid]|trüki teatelühendid"
 
 #, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
 msgstr[0] ""
 msgstr[1] ""
 
-#, fuzzy, c-format
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
-msgstr[0] "|algo [failid]|trüki teatelühendid"
-msgstr[1] "|algo [failid]|trüki teatelühendid"
-
 #, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+msgid " over the past year."
+msgid_plural " over the past %d years."
 msgstr[0] ""
 msgstr[1] ""
 
+msgid " in the past."
+msgstr ""
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5773,6 +5811,16 @@ msgstr ""
 msgid "(G)ood, (A)ccept once, (U)nknown, (R)eject once, (B)ad? "
 msgstr ""
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "resetting keydb: %s\n"
+msgstr "viga võtmehoidlasse `%s' kirjutamisel: %s\n"
+
 #, fuzzy, c-format
 msgid "error setting TOFU binding's trust level to %s\n"
 msgstr "viga `%s' lugemisel: %s\n"
@@ -5820,50 +5868,56 @@ msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
+msgid "%s: "
 msgstr ""
 
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
-msgstr ""
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "Kustutatud %d allkirja.\n"
 
 #, fuzzy, c-format
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "|algo [failid]|trüki teatelühendid"
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
+msgstr[0] "|algo [failid]|trüki teatelühendid"
+msgstr[1] "|algo [failid]|trüki teatelühendid"
+
+#, fuzzy, c-format
+#| msgid "encrypted with %lu passphrases\n"
+msgid ", and encrypted %ld messages"
+msgstr "krüpteeritud kasutades %lu parooli\n"
+
+#, fuzzy, c-format
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] "|algo [failid]|trüki teatelühendid"
+msgstr[1] "|algo [failid]|trüki teatelühendid"
 
-#, c-format
 msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
-msgstr[0] ""
-msgstr[1] ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
+msgstr ""
 
-#, c-format
-msgid "The most recent message was verified %s ago."
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
 msgstr ""
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
 msgstr ""
 
 #, c-format
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -5873,34 +5927,43 @@ msgstr[1] ""
 msgid "error opening TOFU database: %s\n"
 msgstr "viga teate saatmisel serverile `%s': %s\n"
 
+#, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring `%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "viga avaliku võtme võtmehoidlasse `%s' kirjutamisel: %s\n"
+
 #, fuzzy, c-format
 #| msgid "`%s' is not a valid long keyID\n"
 msgid "'%s' is not a valid long keyID\n"
-msgstr "`%s' ei ole kehtiv pikk võtmeID\n"
+msgstr "`%s' ei ole kehtiv pikk võtmeID\n"
 
 #, fuzzy, c-format
 msgid "key %s: accepted as trusted key\n"
-msgstr "võti %08lX: aktsepteerin usaldusväärse võtmena\n"
+msgstr "võti %08lX: aktsepteerin usaldusväärse võtmena\n"
 
 #, fuzzy, c-format
 msgid "key %s occurs more than once in the trustdb\n"
-msgstr "võti %08lX esineb trustdb failis enam kui korra\n"
+msgstr "võti %08lX esineb trustdb failis enam kui korra\n"
 
 #, fuzzy, c-format
 msgid "key %s: no public key for trusted key - skipped\n"
-msgstr "võti %08lX: usaldataval võtmel pole avalikku võtit - jätsin vahele\n"
+msgstr "võti %08lX: usaldataval võtmel pole avalikku võtit - jätsin vahele\n"
 
 #, fuzzy, c-format
 msgid "key %s marked as ultimately trusted\n"
-msgstr "võti on märgitud abslouutselt usaldatuks.\n"
+msgstr "võti on märgitud abslouutselt usaldatuks.\n"
 
 #, c-format
 msgid "trust record %lu, req type %d: read failed: %s\n"
-msgstr "usalduse kirje %lu, päringu tüüp %d: lugemine ebaõnnestus: %s\n"
+msgstr "usalduse kirje %lu, päringu tüüp %d: lugemine ebaõnnestus: %s\n"
 
 #, c-format
 msgid "trust record %lu is not of requested type %d\n"
-msgstr "usalduse kirje %lu ei oma soovitud tüüpi %d\n"
+msgstr "usalduse kirje %lu ei oma soovitud tüüpi %d\n"
 
 msgid "You may try to re-create the trustdb using the commands:\n"
 msgstr ""
@@ -5921,7 +5984,7 @@ msgstr "trustdb kontrolliks puudub vajadus\n"
 
 #, c-format
 msgid "next trustdb check due at %s\n"
-msgstr "trustdb järgmine kontroll %s\n"
+msgstr "trustdb järgmine kontroll %s\n"
 
 #, fuzzy, c-format
 msgid "no need for a trustdb check with '%s' trust model\n"
@@ -5933,7 +5996,7 @@ msgstr "trustdb kontrolliks puudub vajadus\n"
 
 #, fuzzy, c-format
 msgid "public key %s not found: %s\n"
-msgstr "ei leia avalikku võtit %08lX: %s\n"
+msgstr "ei leia avalikku võtit %08lX: %s\n"
 
 msgid "please do a --check-trustdb\n"
 msgstr "palun tehke --check-trustdb\n"
@@ -5944,22 +6007,22 @@ msgstr "kontrollin trustdb faili\n"
 #, fuzzy, c-format
 msgid "%d key processed"
 msgid_plural "%d keys processed"
-msgstr[0] "%lu võtit on seni töödeldud\n"
-msgstr[1] "%lu võtit on seni töödeldud\n"
+msgstr[0] "%lu võtit on seni töödeldud\n"
+msgstr[1] "%lu võtit on seni töödeldud\n"
 
 #, fuzzy, c-format
 #| msgid "%d keys processed (%d validity counts cleared)\n"
 msgid " (%d validity count cleared)\n"
 msgid_plural " (%d validity counts cleared)\n"
-msgstr[0] "%d võtit töödeldud (%d kehtivust puhastatud)\n"
-msgstr[1] "%d võtit töödeldud (%d kehtivust puhastatud)\n"
+msgstr[0] "%d võtit töödeldud (%d kehtivust puhastatud)\n"
+msgstr[1] "%d võtit töödeldud (%d kehtivust puhastatud)\n"
 
 msgid "no ultimately trusted keys found\n"
-msgstr "absoluutselt usaldatavaid võtmeid pole\n"
+msgstr "absoluutselt usaldatavaid võtmeid pole\n"
 
 #, fuzzy, c-format
 msgid "public key of ultimately trusted key %s not found\n"
-msgstr "puudub absoluutselt usaldatava võtme %08lX avalik võti\n"
+msgstr "puudub absoluutselt usaldatava võtme %08lX avalik võti\n"
 
 #, c-format
 msgid ""
@@ -5968,7 +6031,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "unable to update trustdb version record: write failed: %s\n"
-msgstr "usalduse kirje %lu, tüüp %d: kirjutamine ebaõnnestus: %s\n"
+msgstr "usalduse kirje %lu, tüüp %d: kirjutamine ebaõnnestus: %s\n"
 
 msgid "undefined"
 msgstr ""
@@ -5999,7 +6062,7 @@ msgstr ""
 
 #, fuzzy
 msgid "[ revoked]"
-msgstr "[tühistatud] "
+msgstr "[tühistatud] "
 
 #, fuzzy
 msgid "[ expired]"
@@ -6030,17 +6093,17 @@ msgid ""
 "Please remember that the signature file (.sig or .asc)\n"
 "should be the first file given on the command line.\n"
 msgstr ""
-"allkirja ei õnnestu kontrollida.\n"
-"Palun pidage meeles, et allkirja fail (.sig või .asc)\n"
-"peab olema käsureal esimene fail.\n"
+"allkirja ei õnnestu kontrollida.\n"
+"Palun pidage meeles, et allkirja fail (.sig või .asc)\n"
+"peab olema käsureal esimene fail.\n"
 
 #, c-format
 msgid "input line %u too long or missing LF\n"
-msgstr "sisendrida %u on liiga pikk või seavahetus puudub\n"
+msgstr "sisendrida %u on liiga pikk või seavahetus puudub\n"
 
 #, fuzzy, c-format
 msgid "can't open fd %d: %s\n"
-msgstr "`%s' ei õnnestu avada: %s\n"
+msgstr "`%s' ei õnnestu avada: %s\n"
 
 msgid "set debugging flags"
 msgstr ""
@@ -6050,13 +6113,13 @@ msgstr ""
 
 #, fuzzy
 msgid "Usage: kbxutil [options] [files] (-h for help)"
-msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
+msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
 
 #, fuzzy
 msgid ""
 "Syntax: kbxutil [options] [files]\n"
 "List, export, import Keybox data\n"
-msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
+msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
 
 #, c-format
 msgid "RSA modulus missing or not of size %d bits\n"
@@ -6083,11 +6146,11 @@ msgstr "muuda parooli"
 
 #, fuzzy
 msgid "|NP|Please enter a new PIN Unblocking Code (PUK) for the standard keys."
-msgstr "Palun valige tühistamise põhjus:\n"
+msgstr "Palun valige tühistamise põhjus:\n"
 
 #, fuzzy
 msgid "|P|Please enter the PIN Unblocking Code (PUK) for the standard keys."
-msgstr "Palun valige tühistamise põhjus:\n"
+msgstr "Palun valige tühistamise põhjus:\n"
 
 msgid "|N|Please enter a new PIN for the key to create qualified signatures."
 msgstr ""
@@ -6111,18 +6174,11 @@ msgstr "viga parooli loomisel: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to store the fingerprint: %s\n"
-msgstr "TrustDB initsialiseerimine ebaõnnestus: %s\n"
+msgstr "TrustDB initsialiseerimine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to store the creation date: %s\n"
-msgstr "võtmehoidla vahemälu uuesti loomine ebaõnnestus: %s\n"
-
-#, fuzzy, c-format
-msgid "reading public key failed: %s\n"
-msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr ""
+msgstr "võtmehoidla vahemälu uuesti loomine ebaõnnestus: %s\n"
 
 msgid "response does not contain the RSA modulus\n"
 msgstr ""
@@ -6130,9 +6186,18 @@ msgstr ""
 msgid "response does not contain the RSA public exponent\n"
 msgstr ""
 
-msgid "response does not contain the EC public point\n"
+#, fuzzy
+#| msgid "remove keys from the public keyring"
+msgid "response does not contain the EC public key\n"
+msgstr "eemalda võtmed avalike võtmete hoidlast"
+
+msgid "response does not contain the public key data\n"
 msgstr ""
 
+#, fuzzy, c-format
+msgid "reading public key failed: %s\n"
+msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
+
 #, c-format
 msgid "using default PIN as %s\n"
 msgstr ""
@@ -6155,7 +6220,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "verify CHV%d failed: %s\n"
-msgstr "võtmeserverile saatmine ebaõnnestus: %s\n"
+msgstr "võtmeserverile saatmine ebaõnnestus: %s\n"
 
 msgid "error retrieving CHV status from card\n"
 msgstr ""
@@ -6185,7 +6250,7 @@ msgstr ""
 
 #, fuzzy
 msgid "||Please enter the Reset Code for the card"
-msgstr "Palun valige tühistamise põhjus:\n"
+msgstr "Palun valige tühistamise põhjus:\n"
 
 #, c-format
 msgid "Reset Code is too short; minimum length is %d\n"
@@ -6213,7 +6278,7 @@ msgstr "muuda parooli"
 
 #, fuzzy
 msgid "error reading application data\n"
-msgstr "viga võtmebloki lugemisel: %s\n"
+msgstr "viga võtmebloki lugemisel: %s\n"
 
 #, fuzzy
 msgid "error reading fingerprint DO\n"
@@ -6228,11 +6293,11 @@ msgstr ""
 
 #, fuzzy
 msgid "generating new key\n"
-msgstr "genereeri uus võtmepaar"
+msgstr "genereeri uus võtmepaar"
 
 #, fuzzy
 msgid "writing new key\n"
-msgstr "genereeri uus võtmepaar"
+msgstr "genereeri uus võtmepaar"
 
 msgid "creation timestamp missing\n"
 msgstr ""
@@ -6243,7 +6308,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "failed to store the key: %s\n"
-msgstr "TrustDB initsialiseerimine ebaõnnestus: %s\n"
+msgstr "TrustDB initsialiseerimine ebaõnnestus: %s\n"
 
 #, fuzzy
 #| msgid "unsupported URI"
@@ -6255,13 +6320,13 @@ msgstr ""
 
 #, fuzzy
 msgid "generating key failed\n"
-msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
+msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "key generation completed (%d second)\n"
 msgid_plural "key generation completed (%d seconds)\n"
-msgstr[0] "Võtme genereerimine ebaõnnestus: %s\n"
-msgstr[1] "Võtme genereerimine ebaõnnestus: %s\n"
+msgstr[0] "Võtme genereerimine ebaõnnestus: %s\n"
+msgstr[1] "Võtme genereerimine ebaõnnestus: %s\n"
 
 msgid "invalid structure of OpenPGP card (DO 0x93)\n"
 msgstr ""
@@ -6271,7 +6336,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "card does not support digest algorithm %s\n"
-msgstr "%s allkiri, sõnumilühendi algoritm %s\n"
+msgstr "%s allkiri, sõnumilühendi algoritm %s\n"
 
 #, c-format
 msgid "signatures created so far: %lu\n"
@@ -6318,7 +6383,7 @@ msgstr "|NIMI|kasuta NIME vaikimisi saajana"
 
 #, fuzzy
 msgid "do not use the internal CCID driver"
-msgstr "ära kasuta terminali"
+msgstr "ära kasuta terminali"
 
 msgid "|N|disconnect the card after N seconds of inactivity"
 msgstr ""
@@ -6328,14 +6393,14 @@ msgstr ""
 
 #, fuzzy
 msgid "deny the use of admin card commands"
-msgstr "vastuolulised käsud\n"
+msgstr "vastuolulised käsud\n"
 
 msgid "use variable length input for pinpad"
 msgstr ""
 
 #, fuzzy
 msgid "Usage: @SCDAEMON@ [options] (-h for help)"
-msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
+msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
 
 msgid ""
 "Syntax: scdaemon [options] [command [args]]\n"
@@ -6355,7 +6420,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid radix64 character %02x skipped\n"
-msgstr "vigane radix64 sümbol %02x vahele jäetud\n"
+msgstr "vigane radix64 sümbol %02x vahele jäetud\n"
 
 #, fuzzy
 msgid "no dirmngr running in this session\n"
@@ -6384,15 +6449,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "failed to open '%s': %s\n"
-msgstr "`%s' ei õnnestu avada: %s\n"
+msgstr "`%s' ei õnnestu avada: %s\n"
 
 #, fuzzy
 msgid "Note: non-critical certificate policy not allowed"
-msgstr "kirjutan salajase võtme faili `%s'\n"
+msgstr "kirjutan salajase võtme faili `%s'\n"
 
 #, fuzzy
 msgid "certificate policy not allowed"
-msgstr "kirjutan salajase võtme faili `%s'\n"
+msgstr "kirjutan salajase võtme faili `%s'\n"
 
 msgid "looking up issuer at external location\n"
 msgstr ""
@@ -6410,15 +6475,15 @@ msgstr "viga parooli loomisel: %s\n"
 
 #, fuzzy, c-format
 msgid "dirmngr cache-only key lookup failed: %s\n"
-msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
+msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
 
 #, fuzzy
 msgid "failed to allocate keyDB handle\n"
-msgstr "TrustDB initsialiseerimine ebaõnnestus: %s\n"
+msgstr "TrustDB initsialiseerimine ebaõnnestus: %s\n"
 
 #, fuzzy
 msgid "certificate has been revoked"
-msgstr "MÄRKUS: võti on tühistatud"
+msgstr "MÄRKUS: võti on tühistatud"
 
 msgid "the status of the certificate is unknown"
 msgstr ""
@@ -6428,7 +6493,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "checking the CRL failed: %s"
-msgstr "Loodud allkirja ei õnnestu kontrollida: %s\n"
+msgstr "Loodud allkirja ei õnnestu kontrollida: %s\n"
 
 #, c-format
 msgid "certificate with invalid validity: %s"
@@ -6439,22 +6504,22 @@ msgstr ""
 
 #, fuzzy
 msgid "root certificate not yet valid"
-msgstr "kirjutan salajase võtme faili `%s'\n"
+msgstr "kirjutan salajase võtme faili `%s'\n"
 
 msgid "intermediate certificate not yet valid"
 msgstr ""
 
 #, fuzzy
 msgid "certificate has expired"
-msgstr "See võti on aegunud!"
+msgstr "See võti on aegunud!"
 
 #, fuzzy
 msgid "root certificate has expired"
-msgstr "See võti on aegunud!"
+msgstr "See võti on aegunud!"
 
 #, fuzzy
 msgid "intermediate certificate has expired"
-msgstr "See võti on aegunud!"
+msgstr "See võti on aegunud!"
 
 #, c-format
 msgid "required certificate attributes missing: %s%s%s"
@@ -6462,7 +6527,7 @@ msgstr ""
 
 #, fuzzy
 msgid "certificate with invalid validity"
-msgstr "See võti on aegunud!"
+msgstr "See võti on aegunud!"
 
 msgid "signature not created during lifetime of certificate"
 msgstr ""
@@ -6479,7 +6544,7 @@ msgstr "         uusi allkirju: %lu\n"
 
 #, fuzzy
 msgid "  (certificate created at "
-msgstr "Tühistamise sertifikaat on loodud.\n"
+msgstr "Tühistamise sertifikaat on loodud.\n"
 
 #, fuzzy
 msgid "  (certificate valid from "
@@ -6490,7 +6555,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "fingerprint=%s\n"
-msgstr "näita sõrmejälge"
+msgstr "näita sõrmejälge"
 
 msgid "root certificate has now been marked as trusted\n"
 msgstr ""
@@ -6506,7 +6571,7 @@ msgstr ""
 
 #, fuzzy
 msgid "no issuer found in certificate"
-msgstr "genereeri tühistamise sertifikaat"
+msgstr "genereeri tühistamise sertifikaat"
 
 msgid "self-signed certificate has a BAD signature"
 msgstr ""
@@ -6516,7 +6581,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "checking the trust list failed: %s\n"
-msgstr "Loodud allkirja ei õnnestu kontrollida: %s\n"
+msgstr "Loodud allkirja ei õnnestu kontrollida: %s\n"
 
 msgid "certificate chain too long\n"
 msgstr ""
@@ -6541,7 +6606,7 @@ msgstr "eelistus %c%lu on duplikaat\n"
 
 #, fuzzy
 msgid "intermediate certificate is good\n"
-msgstr "Tühistamise sertifikaat on loodud.\n"
+msgstr "Tühistamise sertifikaat on loodud.\n"
 
 #, fuzzy
 msgid "root certificate is good\n"
@@ -6567,7 +6632,7 @@ msgstr "ei"
 
 #, fuzzy
 msgid "[Error - invalid encoding]"
-msgstr "viga: vigane sõrmejälg\n"
+msgstr "viga: vigane sõrmejälg\n"
 
 msgid "[Error - out of core]"
 msgstr ""
@@ -6577,7 +6642,7 @@ msgstr ""
 
 #, fuzzy
 msgid "[Error - invalid DN]"
-msgstr "viga: vigane sõrmejälg\n"
+msgstr "viga: vigane sõrmejälg\n"
 
 #, fuzzy, c-format
 msgid ""
@@ -6587,16 +6652,16 @@ msgid ""
 "S/N %s, ID 0x%08lX,\n"
 "created %s, expires %s.\n"
 msgstr ""
-"Te vajate kasutaja salajase võtme lahtilukustamiseks parooli:\n"
+"Te vajate kasutaja salajase võtme lahtilukustamiseks parooli:\n"
 "\"%.*s\"\n"
-"%u-bitti %s võti, ID %08lX, loodud %s%s\n"
+"%u-bitti %s võti, ID %08lX, loodud %s%s\n"
 
 msgid "no key usage specified - assuming all usages\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting key usage information: %s\n"
-msgstr "viga salajase võtme võtmehoidlasse `%s' kirjutamisel: %s\n"
+msgstr "viga salajase võtme võtmehoidlasse `%s' kirjutamisel: %s\n"
 
 msgid "certificate should not have been used for certification\n"
 msgstr ""
@@ -6618,7 +6683,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "line %d: invalid algorithm\n"
-msgstr "vigane räsialgoritm `%s'\n"
+msgstr "vigane räsialgoritm `%s'\n"
 
 #, c-format
 msgid "line %d: invalid key length %u (valid are %d to %d)\n"
@@ -6630,11 +6695,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "line %d: invalid subject name label '%.*s'\n"
-msgstr "vigane räsialgoritm `%s'\n"
+msgstr "vigane räsialgoritm `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid subject name '%s' at pos %d\n"
-msgstr "vigane räsialgoritm `%s'\n"
+msgstr "vigane räsialgoritm `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: not a valid email address\n"
@@ -6642,7 +6707,7 @@ msgstr "Selline e-posti aadress ei ole lubatud\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid serial number\n"
-msgstr "vigane räsialgoritm `%s'\n"
+msgstr "vigane räsialgoritm `%s'\n"
 
 #, c-format
 msgid "line %d: invalid issuer name label '%.*s'\n"
@@ -6654,39 +6719,39 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "line %d: invalid date given\n"
-msgstr "vigane räsialgoritm `%s'\n"
+msgstr "vigane räsialgoritm `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: error getting signing key by keygrip '%s': %s\n"
-msgstr "viga võtmehoidla `%s' loomisel: %s\n"
+msgstr "viga võtmehoidla `%s' loomisel: %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid hash algorithm given\n"
-msgstr "vigane räsialgoritm `%s'\n"
+msgstr "vigane räsialgoritm `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid authority-key-id\n"
-msgstr "vigane räsialgoritm `%s'\n"
+msgstr "vigane räsialgoritm `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid subject-key-id\n"
-msgstr "võti %08lX: vigane alamvõtme seos\n"
+msgstr "võti %08lX: vigane alamvõtme seos\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid extension syntax\n"
-msgstr "vigane räsialgoritm `%s'\n"
+msgstr "vigane räsialgoritm `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: error reading key '%s' from card: %s\n"
-msgstr "viga võtmehoidla `%s' loomisel: %s\n"
+msgstr "viga võtmehoidla `%s' loomisel: %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: error getting key by keygrip '%s': %s\n"
-msgstr "viga võtmehoidla `%s' loomisel: %s\n"
+msgstr "viga võtmehoidla `%s' loomisel: %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: key generation failed: %s <%s>\n"
-msgstr "Võtme genereerimine ebaõnnestus: %s\n"
+msgstr "Võtme genereerimine ebaõnnestus: %s\n"
 
 msgid ""
 "To complete this certificate request please enter the passphrase for the key "
@@ -6699,7 +6764,7 @@ msgstr "   (%d) RSA (ainult allkirjastamiseks)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) Existing key\n"
-msgstr "   (%d) RSA (ainult krüpteerimiseks)\n"
+msgstr "   (%d) RSA (ainult krüpteerimiseks)\n"
 
 #, c-format
 msgid "   (%d) Existing key from card\n"
@@ -6715,7 +6780,7 @@ msgstr "viga parooli loomisel: %s\n"
 
 #, fuzzy
 msgid "Available keys:\n"
-msgstr "blokeeri võti"
+msgstr "blokeeri võti"
 
 #, c-format
 msgid "Possible actions for a %s key:\n"
@@ -6723,7 +6788,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "   (%d) sign, encrypt\n"
-msgstr "   (%d) RSA (allkirjastamiseks ja krüptimiseks)\n"
+msgstr "   (%d) RSA (allkirjastamiseks ja krüptimiseks)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) sign\n"
@@ -6731,7 +6796,7 @@ msgstr "   (%d) DSA (ainult allkirjastamiseks)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) encrypt\n"
-msgstr "   (%d) RSA (ainult krüpteerimiseks)\n"
+msgstr "   (%d) RSA (ainult krüpteerimiseks)\n"
 
 msgid "Enter the X.509 subject name: "
 msgstr ""
@@ -6742,7 +6807,7 @@ msgstr "(Kirjeldust ei antud)\n"
 
 #, fuzzy, c-format
 msgid "Invalid subject name label '%.*s'\n"
-msgstr "vigane räsialgoritm `%s'\n"
+msgstr "vigane räsialgoritm `%s'\n"
 
 #. TRANSLATORS: The 22 in the second string is the
 #. length of the first string up to the "%s".  Please
@@ -6751,7 +6816,7 @@ msgstr "vigane r
 #. drop everything after the number.
 #, fuzzy, c-format
 msgid "Invalid subject name '%s'\n"
-msgstr "vigane räsialgoritm `%s'\n"
+msgstr "vigane räsialgoritm `%s'\n"
 
 msgid "22 translator: see certreg-ui.c:gpgsm_gencertreq_tty"
 msgstr ""
@@ -6764,7 +6829,7 @@ msgstr "E-posti aadress: "
 msgid " (end with an empty line):\n"
 msgstr ""
 "\n"
-"Sisestage kasutaja ID.  Lõpetage tühja reaga: "
+"Sisestage kasutaja ID.  Lõpetage tühja reaga: "
 
 #, fuzzy
 msgid "Enter DNS names"
@@ -6772,14 +6837,14 @@ msgstr "Sisestage uus failinimi"
 
 #, fuzzy
 msgid " (optional; end with an empty line):\n"
-msgstr "Sisestage mittekohustuslik kirjeldus. Lõpetage tühja reaga:\n"
+msgstr "Sisestage mittekohustuslik kirjeldus. Lõpetage tühja reaga:\n"
 
 msgid "Enter URIs"
 msgstr ""
 
 #, fuzzy
 msgid "Create self-signed certificate? (y/N) "
-msgstr "Loon sellele võtmele tühistamise sertifikaadi? "
+msgstr "Loon sellele võtmele tühistamise sertifikaadi? "
 
 msgid "These parameters are used:\n"
 msgstr ""
@@ -6790,7 +6855,7 @@ msgstr ""
 #, fuzzy
 #| msgid "Revocation certificate created.\n"
 msgid "Now creating certificate request.  "
-msgstr "Tühistamise sertifikaat on loodud.\n"
+msgstr "Tühistamise sertifikaat on loodud.\n"
 
 msgid "This may take a while ...\n"
 msgstr ""
@@ -6812,15 +6877,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "certificate '%s' not found: %s\n"
-msgstr "võtit '%s' ei leitud: %s\n"
+msgstr "võtit '%s' ei leitud: %s\n"
 
 #, fuzzy, c-format
 msgid "error locking keybox: %s\n"
-msgstr "viga võtmebloki lugemisel: %s\n"
+msgstr "viga võtmebloki lugemisel: %s\n"
 
 #, fuzzy, c-format
 msgid "duplicated certificate '%s' deleted\n"
-msgstr "Tühistamise sertifikaat on loodud.\n"
+msgstr "Tühistamise sertifikaat on loodud.\n"
 
 #, fuzzy, c-format
 msgid "certificate '%s' deleted\n"
@@ -6828,7 +6893,7 @@ msgstr "eelistus %c%lu on duplikaat\n"
 
 #, fuzzy, c-format
 msgid "deleting certificate \"%s\" failed: %s\n"
-msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
+msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
 
 #, fuzzy
 msgid "no valid recipients given\n"
@@ -6836,7 +6901,7 @@ msgstr "(Kirjeldust ei antud)\n"
 
 #, fuzzy
 msgid "list external keys"
-msgstr "näita salajasi võtmeid"
+msgstr "näita salajasi võtmeid"
 
 #, fuzzy
 msgid "list certificate chain"
@@ -6861,7 +6926,7 @@ msgstr ""
 
 #, fuzzy
 msgid "create base-64 encoded output"
-msgstr "loo ascii pakendis väljund"
+msgstr "loo ascii pakendis väljund"
 
 msgid "assume input is in PEM format"
 msgstr ""
@@ -6891,7 +6956,7 @@ msgid "fetch missing issuer certificates"
 msgstr ""
 
 msgid "don't use the terminal at all"
-msgstr "ära kasuta terminali"
+msgstr "ära kasuta terminali"
 
 msgid "|FILE|write a server mode log to FILE"
 msgstr ""
@@ -6901,36 +6966,36 @@ msgid "|FILE|write an audit log to FILE"
 msgstr "|FAIL|lae laiendusmoodul FAIL"
 
 msgid "batch mode: never ask"
-msgstr "pakettmood: ära küsi kunagi"
+msgstr "pakettmood: ära küsi kunagi"
 
 msgid "assume yes on most questions"
-msgstr "eelda enamus küsimustele jah vastust"
+msgstr "eelda enamus küsimustele jah vastust"
 
 msgid "assume no on most questions"
-msgstr "eelda enamus küsimustele ei vastust"
+msgstr "eelda enamus küsimustele ei vastust"
 
 #, fuzzy
 msgid "|FILE|add keyring to the list of keyrings"
-msgstr "lisa see võtmehoidla võtmehoidlate nimekirja"
+msgstr "lisa see võtmehoidla võtmehoidlate nimekirja"
 
 #, fuzzy
 msgid "|USER-ID|use USER-ID as default secret key"
-msgstr "|NIMI|kasuta NIME vaikimisi salajase võtmena"
+msgstr "|NIMI|kasuta NIME vaikimisi salajase võtmena"
 
 #, fuzzy
 msgid "|SPEC|use this keyserver to lookup keys"
-msgstr "|HOST|kasuta seda võtmeserverit"
+msgstr "|HOST|kasuta seda võtmeserverit"
 
 msgid "|NAME|use cipher algorithm NAME"
-msgstr "|NIMI|kasuta ¨ifri algoritmi NIMI"
+msgstr "|NIMI|kasuta šifri algoritmi NIMI"
 
 msgid "|NAME|use message digest algorithm NAME"
-msgstr "|NIMI|kasuta teatelühendi algoritmi NIMI"
+msgstr "|NIMI|kasuta teatelühendi algoritmi NIMI"
 
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: @GPGSM@ [options] [files] (-h for help)"
-msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
+msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
 
 #, fuzzy
 msgid ""
@@ -6938,13 +7003,13 @@ msgid ""
 "Sign, check, encrypt or decrypt using the S/MIME protocol\n"
 "Default operation depends on the input data\n"
 msgstr ""
-"Süntaks: gpg [võtmed] [failid]\n"
-"allkirjasta, kontrolli, krüpti ja dekrüpti\n"
-"vaikimisi operatsioon sõltub sisendandmetest\n"
+"Süntaks: gpg [võtmed] [failid]\n"
+"allkirjasta, kontrolli, krüpti ja dekrüpti\n"
+"vaikimisi operatsioon sõltub sisendandmetest\n"
 
 #, fuzzy, c-format
 msgid "Note: won't be able to encrypt to '%s': %s\n"
-msgstr "ei õnnestu luua ühendust serveriga `%s': %s\n"
+msgstr "ei õnnestu luua ühendust serveriga `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "unknown validation model '%s'\n"
@@ -6960,11 +7025,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "%s:%u: skipping this line\n"
-msgstr " j = jäta see võti vahele\n"
+msgstr " j = jäta see võti vahele\n"
 
 #, fuzzy
 msgid "could not parse keyserver\n"
-msgstr "ei saa parsida võtmeserveri URI\n"
+msgstr "ei saa parsida võtmeserveri URI\n"
 
 #, fuzzy, c-format
 msgid "importing common certificates '%s'\n"
@@ -6972,18 +7037,18 @@ msgstr "kirjutan faili `%s'\n"
 
 #, fuzzy, c-format
 msgid "can't sign using '%s': %s\n"
-msgstr "`%s' ei õnnestu sulgeda: %s\n"
+msgstr "`%s' ei õnnestu sulgeda: %s\n"
 
 msgid "invalid command (there is no implicit command)\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "total number processed: %lu\n"
-msgstr "Töödeldud kokku: %lu\n"
+msgstr "Töödeldud kokku: %lu\n"
 
 #, fuzzy
 msgid "error storing certificate\n"
-msgstr "genereeri tühistamise sertifikaat"
+msgstr "genereeri tühistamise sertifikaat"
 
 msgid "basic certificate checks failed - not imported\n"
 msgstr ""
@@ -7002,7 +7067,7 @@ msgstr "viga `%s' lugemisel: %s\n"
 
 #, fuzzy
 msgid "failed to get the fingerprint\n"
-msgstr "TrustDB initsialiseerimine ebaõnnestus: %s\n"
+msgstr "TrustDB initsialiseerimine ebaõnnestus: %s\n"
 
 #, c-format
 msgid "problem looking for existing certificate: %s\n"
@@ -7018,7 +7083,7 @@ msgstr "viga parooli loomisel: %s\n"
 
 #, fuzzy, c-format
 msgid "problem re-searching certificate: %s\n"
-msgstr "rev? probleem tühistamise kontrollimisel: %s\n"
+msgstr "rev? probleem tühistamise kontrollimisel: %s\n"
 
 #, fuzzy, c-format
 msgid "error storing flags: %s\n"
@@ -7032,11 +7097,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid formatted fingerprint in '%s', line %d\n"
-msgstr "viga: vigane sõrmejälg\n"
+msgstr "viga: vigane sõrmejälg\n"
 
 #, fuzzy, c-format
 msgid "invalid country code in '%s', line %d\n"
-msgstr "viga: vigane sõrmejälg\n"
+msgstr "viga: vigane sõrmejälg\n"
 
 #, c-format
 msgid ""
@@ -7070,7 +7135,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "checking for qualified certificate failed: %s\n"
-msgstr "Loodud allkirja ei õnnestu kontrollida: %s\n"
+msgstr "Loodud allkirja ei õnnestu kontrollida: %s\n"
 
 #, fuzzy
 msgid "Signature made "
@@ -7103,7 +7168,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "can't initialize certificate cache lock: %s\n"
-msgstr "Loodud allkirja ei õnnestu kontrollida: %s\n"
+msgstr "Loodud allkirja ei õnnestu kontrollida: %s\n"
 
 #, c-format
 msgid "can't acquire read lock on the certificate cache: %s\n"
@@ -7124,7 +7189,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "can't create `%s': %s\n"
 msgid "can't parse certificate '%s': %s\n"
-msgstr "`%s' ei õnnestu luua: %s\n"
+msgstr "`%s' ei õnnestu luua: %s\n"
 
 #, fuzzy, c-format
 msgid "certificate '%s' already cached\n"
@@ -7132,7 +7197,7 @@ msgstr "eelistus %c%lu on duplikaat\n"
 
 #, fuzzy, c-format
 msgid "trusted certificate '%s' loaded\n"
-msgstr "Tühistamise sertifikaat on loodud.\n"
+msgstr "Tühistamise sertifikaat on loodud.\n"
 
 #, fuzzy, c-format
 msgid "certificate '%s' loaded\n"
@@ -7140,7 +7205,7 @@ msgstr "eelistus %c%lu on duplikaat\n"
 
 #, fuzzy, c-format
 msgid "  SHA1 fingerprint = %s\n"
-msgstr "näita sõrmejälge"
+msgstr "näita sõrmejälge"
 
 msgid "   issuer ="
 msgstr ""
@@ -7162,7 +7227,7 @@ msgstr "viga parooli loomisel: %s\n"
 
 #, fuzzy
 msgid "certificate already cached\n"
-msgstr "Tühistamise sertifikaat on loodud.\n"
+msgstr "Tühistamise sertifikaat on loodud.\n"
 
 #, fuzzy
 msgid "certificate cached\n"
@@ -7174,7 +7239,7 @@ msgstr "viga parooli loomisel: %s\n"
 
 #, fuzzy, c-format
 msgid "invalid SHA1 fingerprint string '%s'\n"
-msgstr "viga: vigane sõrmejälg\n"
+msgstr "viga: vigane sõrmejälg\n"
 
 #, fuzzy, c-format
 msgid "error fetching certificate by S/N: %s\n"
@@ -7186,7 +7251,7 @@ msgstr "viga parooli loomisel: %s\n"
 
 #, fuzzy
 msgid "no issuer found in certificate\n"
-msgstr "genereeri tühistamise sertifikaat"
+msgstr "genereeri tühistamise sertifikaat"
 
 #, fuzzy, c-format
 msgid "error getting authorityKeyIdentifier: %s\n"
@@ -7195,15 +7260,15 @@ msgstr "viga parooli loomisel: %s\n"
 #, fuzzy, c-format
 #| msgid "can't create directory `%s': %s\n"
 msgid "creating directory '%s'\n"
-msgstr "kataloogi `%s' ei õnnestu luua: %s\n"
+msgstr "kataloogi `%s' ei õnnestu luua: %s\n"
 
 #, fuzzy, c-format
 msgid "error creating directory '%s': %s\n"
-msgstr "viga võtmehoidla `%s' loomisel: %s\n"
+msgstr "viga võtmehoidla `%s' loomisel: %s\n"
 
 #, fuzzy, c-format
 msgid "ignoring database dir '%s'\n"
-msgstr "viga lõpetaval real\n"
+msgstr "viga lõpetaval real\n"
 
 #, fuzzy, c-format
 msgid "error reading directory '%s': %s\n"
@@ -7211,12 +7276,12 @@ msgstr "viga `%s' lugemisel: %s\n"
 
 #, fuzzy, c-format
 msgid "removing cache file '%s'\n"
-msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
+msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 #| msgid "enarmoring failed: %s\n"
 msgid "not removing file '%s'\n"
-msgstr "pakendamine ebaõnnestus: %s\n"
+msgstr "pakendamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "error closing cache file: %s\n"
@@ -7224,7 +7289,7 @@ msgstr "viga `%s' lugemisel: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to open cache dir file '%s': %s\n"
-msgstr "`%s' ei õnnestu avada: %s\n"
+msgstr "`%s' ei õnnestu avada: %s\n"
 
 #, fuzzy, c-format
 msgid "error creating new cache dir file '%s': %s\n"
@@ -7233,7 +7298,7 @@ msgstr "viga parooli loomisel: %s\n"
 #, fuzzy, c-format
 #| msgid "error writing secret keyring `%s': %s\n"
 msgid "error writing new cache dir file '%s': %s\n"
-msgstr "viga salajase võtme võtmehoidlasse `%s' kirjutamisel: %s\n"
+msgstr "viga salajase võtme võtmehoidlasse `%s' kirjutamisel: %s\n"
 
 #, fuzzy, c-format
 msgid "error closing new cache dir file '%s': %s\n"
@@ -7246,7 +7311,7 @@ msgstr "uus omaduste fail `%s' on loodud\n"
 
 #, fuzzy, c-format
 msgid "failed to re-open cache dir file '%s': %s\n"
-msgstr "kataloogi `%s' ei õnnestu luua: %s\n"
+msgstr "kataloogi `%s' ei õnnestu luua: %s\n"
 
 #, c-format
 msgid "first record of '%s' is not the version\n"
@@ -7264,11 +7329,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid line detected in '%s' line %u\n"
-msgstr "viga: vigane sõrmejälg\n"
+msgstr "viga: vigane sõrmejälg\n"
 
 #, fuzzy, c-format
 msgid "duplicate entry detected in '%s' line %u\n"
-msgstr "Tühistamise sertifikaat on loodud.\n"
+msgstr "Tühistamise sertifikaat on loodud.\n"
 
 #, c-format
 msgid "unsupported record type in '%s' line %u skipped\n"
@@ -7276,7 +7341,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid issuer hash in '%s' line %u\n"
-msgstr "viga: vigane sõrmejälg\n"
+msgstr "viga: vigane sõrmejälg\n"
 
 #, fuzzy, c-format
 msgid "no issuer DN in '%s' line %u\n"
@@ -7284,7 +7349,7 @@ msgstr "viga lugemisel: %s\n"
 
 #, fuzzy, c-format
 msgid "invalid timestamp in '%s' line %u\n"
-msgstr "viga: vigane sõrmejälg\n"
+msgstr "viga: vigane sõrmejälg\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: invalid size of random_seed file - not used\n"
@@ -7299,7 +7364,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "failed to create temporary cache dir file '%s': %s\n"
-msgstr "kataloogi `%s' ei õnnestu luua: %s\n"
+msgstr "kataloogi `%s' ei õnnestu luua: %s\n"
 
 #, fuzzy, c-format
 msgid "error closing '%s': %s\n"
@@ -7312,7 +7377,7 @@ msgstr "viga `%s' lugemisel: %s\n"
 
 #, fuzzy, c-format
 msgid "can't hash '%s': %s\n"
-msgstr "`%s' ei õnnestu sulgeda: %s\n"
+msgstr "`%s' ei õnnestu sulgeda: %s\n"
 
 #, fuzzy, c-format
 msgid "error setting up MD5 hash context: %s\n"
@@ -7324,14 +7389,14 @@ msgstr "viga `%s' lugemisel: %s\n"
 
 #, fuzzy, c-format
 msgid "invalid formatted checksum for '%s'\n"
-msgstr "viga: vigane sõrmejälg\n"
+msgstr "viga: vigane sõrmejälg\n"
 
 msgid "too many open cache files; can't open anymore\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "opening cache file '%s'\n"
-msgstr "allkirjastamine ebaõnnestus: %s\n"
+msgstr "allkirjastamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "error opening cache file '%s': %s\n"
@@ -7349,7 +7414,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "failed to create a new cache object: %s\n"
-msgstr "%s: paisktabeli loomine ebaõnnestus: %s\n"
+msgstr "%s: paisktabeli loomine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 #| msgid "No help available for `%s'"
@@ -7383,7 +7448,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "problem reading cache record for S/N %s: %s\n"
-msgstr "viga võtmehoidla `%s' loomisel: %s\n"
+msgstr "viga võtmehoidla `%s' loomisel: %s\n"
 
 #, c-format
 msgid "S/N %s is not valid; reason=%02X  date=%.15s\n"
@@ -7400,7 +7465,7 @@ msgstr "viga parooli loomisel: %s\n"
 #, fuzzy, c-format
 #| msgid "invalid hash algorithm `%s'\n"
 msgid "unknown hash algorithm '%s'\n"
-msgstr "vigane räsialgoritm `%s'\n"
+msgstr "vigane räsialgoritm `%s'\n"
 
 #, c-format
 msgid "gcry_md_open for algorithm %d failed: %s\n"
@@ -7413,16 +7478,16 @@ msgstr "vigane vastus agendilt\n"
 
 #, fuzzy, c-format
 msgid "converting S-expression failed: %s\n"
-msgstr "faili ei õnnestu avada: %s\n"
+msgstr "faili ei õnnestu avada: %s\n"
 
 #, fuzzy, c-format
 msgid "creating S-expression failed: %s\n"
-msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
+msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 #| msgid "build_packet failed: %s\n"
 msgid "ksba_crl_parse failed: %s\n"
-msgstr "build_packet ebaõnnestus: %s\n"
+msgstr "build_packet ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "error getting update times of CRL: %s\n"
@@ -7445,7 +7510,7 @@ msgstr "kirjutan faili `%s'\n"
 
 #, fuzzy, c-format
 msgid "no CRL issuer found in CRL: %s\n"
-msgstr "genereeri tühistamise sertifikaat"
+msgstr "genereeri tühistamise sertifikaat"
 
 msgid "locating CRL issuer certificate by authorityKeyIdentifier\n"
 msgstr ""
@@ -7453,27 +7518,27 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "signature verification suppressed\n"
 msgid "CRL signature verification failed: %s\n"
-msgstr "allkirja kontroll jäeti ära\n"
+msgstr "allkirja kontroll jäeti ära\n"
 
 #, fuzzy, c-format
 msgid "error checking validity of CRL issuer certificate: %s\n"
-msgstr "Loodud allkirja ei õnnestu kontrollida: %s\n"
+msgstr "Loodud allkirja ei õnnestu kontrollida: %s\n"
 
 #, fuzzy, c-format
 msgid "ksba_crl_new failed: %s\n"
-msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
+msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "ksba_crl_set_reader failed: %s\n"
-msgstr "uuendamine ebaõnnestus: %s\n"
+msgstr "uuendamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "removed stale temporary cache file '%s'\n"
-msgstr "kataloogi `%s' ei õnnestu luua: %s\n"
+msgstr "kataloogi `%s' ei õnnestu luua: %s\n"
 
 #, fuzzy, c-format
 msgid "problem removing stale temporary cache file '%s': %s\n"
-msgstr "kataloogi `%s' ei õnnestu luua: %s\n"
+msgstr "kataloogi `%s' ei õnnestu luua: %s\n"
 
 #, fuzzy, c-format
 msgid "error creating temporary cache file '%s': %s\n"
@@ -7482,7 +7547,7 @@ msgstr "viga parooli loomisel: %s\n"
 #, fuzzy, c-format
 #| msgid "update secret failed: %s\n"
 msgid "crl_parse_insert failed: %s\n"
-msgstr "salajase võtme uuendamine ebaõnnestus: %s\n"
+msgstr "salajase võtme uuendamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "error finishing temporary cache file '%s': %s\n"
@@ -7514,7 +7579,7 @@ msgstr "viga parooli loomisel: %s\n"
 
 #, fuzzy, c-format
 msgid "problem renaming '%s' to '%s': %s\n"
-msgstr "pakendamine ebaõnnestus: %s\n"
+msgstr "pakendamine ebaõnnestus: %s\n"
 
 msgid ""
 "updating the DIR file failed - cache entry will get lost with the next "
@@ -7551,7 +7616,7 @@ msgstr "%s: viga vaba kirje lugemisel: %s\n"
 
 #, fuzzy, c-format
 msgid "problem reading cache key: %s\n"
-msgstr "rev? probleem tühistamise kontrollimisel: %s\n"
+msgstr "rev? probleem tühistamise kontrollimisel: %s\n"
 
 #, fuzzy, c-format
 msgid "error reading cache entry from db: %s\n"
@@ -7562,15 +7627,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "crl_fetch via DP failed: %s\n"
-msgstr "uuendamine ebaõnnestus: %s\n"
+msgstr "uuendamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "crl_cache_insert via DP failed: %s\n"
-msgstr "Loodud allkirja ei õnnestu kontrollida: %s\n"
+msgstr "Loodud allkirja ei õnnestu kontrollida: %s\n"
 
 #, fuzzy, c-format
 msgid "crl_cache_insert via issuer failed: %s\n"
-msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
+msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
 
 msgid "reader to file mapping table full - waiting\n"
 msgstr ""
@@ -7605,11 +7670,11 @@ msgstr "viga `%s' lugemisel: %s\n"
 
 #, fuzzy
 msgid "CRL access not possible due to Tor mode\n"
-msgstr "võtit '%s' ei leitud: %s\n"
+msgstr "võtit '%s' ei leitud: %s\n"
 
 #, fuzzy, c-format
 msgid "certificate search not possible due to disabled %s\n"
-msgstr "võtit '%s' ei leitud: %s\n"
+msgstr "võtit '%s' ei leitud: %s\n"
 
 msgid "use OCSP instead of CRLs"
 msgstr ""
@@ -7619,7 +7684,7 @@ msgstr ""
 
 #, fuzzy
 msgid "add a certificate to the cache"
-msgstr "Tühistamise sertifikaat on loodud.\n"
+msgstr "Tühistamise sertifikaat on loodud.\n"
 
 #, fuzzy
 msgid "validate a certificate"
@@ -7649,12 +7714,12 @@ msgstr "halb sertifikaat"
 #, fuzzy
 #| msgid "Enter the user ID of the designated revoker: "
 msgid "force the use of the default OCSP responder"
-msgstr "Sisestage määratud tühistaja kasutaja ID: "
+msgstr "Sisestage määratud tühistaja kasutaja ID: "
 
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: dirmngr-client [options] [certfile|pattern] (-h for help)\n"
-msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
+msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
 
 msgid ""
 "Syntax: dirmngr-client [options] [certfile|pattern]\n"
@@ -7677,23 +7742,23 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to the dirmngr: %s\n"
-msgstr "ei õnnestu luua ühendust serveriga `%s': %s\n"
+msgstr "ei õnnestu luua ühendust serveriga `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "update failed: %s\n"
 msgid "lookup failed: %s\n"
-msgstr "uuendamine ebaõnnestus: %s\n"
+msgstr "uuendamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "loading CRL '%s' failed: %s\n"
-msgstr "pakendamine ebaõnnestus: %s\n"
+msgstr "pakendamine ebaõnnestus: %s\n"
 
 msgid "a dirmngr daemon is up and running\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "validation of certificate failed: %s\n"
-msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
+msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
 
 #, fuzzy
 msgid "certificate is valid\n"
@@ -7701,21 +7766,21 @@ msgstr "eelistus %c%lu on duplikaat\n"
 
 #, fuzzy
 msgid "certificate has been revoked\n"
-msgstr "MÄRKUS: võti on tühistatud"
+msgstr "MÄRKUS: võti on tühistatud"
 
 #, fuzzy, c-format
 msgid "certificate check failed: %s\n"
-msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
+msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't stat `%s': %s\n"
 msgid "got status: '%s'\n"
-msgstr "ei õnnestu lugeda `%s' atribuute: %s\n"
+msgstr "ei õnnestu lugeda `%s' atribuute: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing secret keyring `%s': %s\n"
 msgid "error writing base64 encoding: %s\n"
-msgstr "viga salajase võtme võtmehoidlasse `%s' kirjutamisel: %s\n"
+msgstr "viga salajase võtme võtmehoidlasse `%s' kirjutamisel: %s\n"
 
 #, fuzzy, c-format
 msgid "unsupported inquiry '%s'\n"
@@ -7751,7 +7816,7 @@ msgstr ""
 
 #, fuzzy
 msgid "run without asking a user"
-msgstr "Väljun salvestamata? "
+msgstr "Väljun salvestamata? "
 
 msgid "force loading of outdated CRLs"
 msgstr ""
@@ -7759,6 +7824,9 @@ msgstr ""
 msgid "allow sending OCSP requests"
 msgstr ""
 
+msgid "allow online software version check"
+msgstr ""
+
 msgid "inhibit the use of HTTP"
 msgstr ""
 
@@ -7795,7 +7863,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|URL|use OCSP responder at URL"
-msgstr "ei saa parsida võtmeserveri URI\n"
+msgstr "ei saa parsida võtmeserveri URI\n"
 
 msgid "|FPR|OCSP response signed by FPR"
 msgstr ""
@@ -7819,11 +7887,11 @@ msgid ""
 "options)\n"
 msgstr ""
 "@\n"
-"(Kõikide käskude ja võtmete täieliku kirjelduse leiate manualist)\n"
+"(Kõikide käskude ja võtmete täieliku kirjelduse leiate manualist)\n"
 
 #, fuzzy
 msgid "Usage: @DIRMNGR@ [options] (-h for help)"
-msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
+msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
 
 msgid ""
 "Syntax: @DIRMNGR@ [options] [command [args]]\n"
@@ -7836,7 +7904,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "usage: %s [options] "
-msgstr "kasuta: gpg [võtmed] "
+msgstr "kasuta: gpg [võtmed] "
 
 #, fuzzy
 #| msgid "%s not allowed with %s!\n"
@@ -7845,11 +7913,11 @@ msgstr "%s ja %s ei ole koos lubatud!\n"
 
 #, fuzzy, c-format
 msgid "fetching CRL from '%s' failed: %s\n"
-msgstr "pakendamine ebaõnnestus: %s\n"
+msgstr "pakendamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "processing CRL from '%s' failed: %s\n"
-msgstr "pakendamine ebaõnnestus: %s\n"
+msgstr "pakendamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: line too long - skipped\n"
@@ -7857,7 +7925,7 @@ msgstr "rida on liiga pikk\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: invalid fingerprint detected\n"
-msgstr "viga: vigane sõrmejälg\n"
+msgstr "viga: vigane sõrmejälg\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: read error: %s\n"
@@ -7882,7 +7950,7 @@ msgstr ""
 
 #, fuzzy
 msgid "shutdown forced\n"
-msgstr "ei töödeldud"
+msgstr "ei töödeldud"
 
 msgid "SIGINT received - immediate shutdown\n"
 msgstr ""
@@ -7928,7 +7996,7 @@ msgstr ""
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: dirmngr_ldap [options] [URL] (-h for help)\n"
-msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
+msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
 
 msgid ""
 "Syntax: dirmngr_ldap [options] [URL]\n"
@@ -7939,7 +8007,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "invalid import options\n"
 msgid "invalid port number %d\n"
-msgstr "vigased impordi võtmed\n"
+msgstr "vigased impordi võtmed\n"
 
 #, c-format
 msgid "scanning result for attribute '%s'\n"
@@ -7947,7 +8015,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error writing to stdout: %s\n"
-msgstr "viga võtmehoidlasse `%s' kirjutamisel: %s\n"
+msgstr "viga võtmehoidlasse `%s' kirjutamisel: %s\n"
 
 #, c-format
 msgid "          available attribute '%s'\n"
@@ -7955,7 +8023,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "attribute '%s' not found\n"
-msgstr "võtit '%s' ei leitud: %s\n"
+msgstr "võtit '%s' ei leitud: %s\n"
 
 #, c-format
 msgid "found attribute '%s'\n"
@@ -8007,20 +8075,20 @@ msgstr ""
 #, fuzzy
 #| msgid "WARNING: using insecure memory!\n"
 msgid "WARNING: using first attribute only\n"
-msgstr "HOIATUS: kasutan ebaturvalist mälu!\n"
+msgstr "HOIATUS: kasutan ebaturvalist mälu!\n"
 
 #, fuzzy, c-format
 msgid "LDAP init to '%s:%d' failed: %s\n"
-msgstr "pakendamine ebaõnnestus: %s\n"
+msgstr "pakendamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "binding to '%s:%d' failed: %s\n"
-msgstr "pakendamine ebaõnnestus: %s\n"
+msgstr "pakendamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 #| msgid "dearmoring failed: %s\n"
 msgid "searching '%s' failed: %s\n"
-msgstr "lahtipakendamine ebaõnnestus: %s\n"
+msgstr "lahtipakendamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "'%s' is not an LDAP URL\n"
@@ -8031,12 +8099,8 @@ msgid "'%s' is an invalid LDAP URL\n"
 msgstr ""
 
 #, fuzzy, c-format
-msgid "error allocating memory: %s\n"
-msgstr "viga võtmehoidla `%s' loomisel: %s\n"
-
-#, fuzzy, c-format
 msgid "error printing log line: %s\n"
-msgstr "viga võtmehoidlasse `%s' kirjutamisel: %s\n"
+msgstr "viga võtmehoidlasse `%s' kirjutamisel: %s\n"
 
 #, fuzzy, c-format
 msgid "error reading log from ldap wrapper %d: %s\n"
@@ -8044,7 +8108,7 @@ msgstr "viga `%s' lugemisel: %s\n"
 
 #, fuzzy, c-format
 msgid "npth_select failed: %s - waiting 1s\n"
-msgstr "salajase võtme uuendamine ebaõnnestus: %s\n"
+msgstr "salajase võtme uuendamine ebaõnnestus: %s\n"
 
 #, c-format
 msgid "ldap wrapper %d ready"
@@ -8060,7 +8124,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "waiting for ldap wrapper %d failed: %s\n"
-msgstr "uuendamine ebaõnnestus: %s\n"
+msgstr "uuendamine ebaõnnestus: %s\n"
 
 #, c-format
 msgid "ldap wrapper %d stalled - killing\n"
@@ -8072,7 +8136,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "reading from ldap wrapper %d failed: %s\n"
-msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
+msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
 
 #, c-format
 msgid "invalid char 0x%02x in host name - not added\n"
@@ -8084,7 +8148,7 @@ msgstr "otsin \"%s\" HKP serverist %s\n"
 
 #, fuzzy, c-format
 msgid "malloc failed: %s\n"
-msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
+msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
 
 #, c-format
 msgid "start_cert_fetch: invalid pattern '%s'\n"
@@ -8100,12 +8164,12 @@ msgstr "%s: vigane faili versioon %d\n"
 
 #, fuzzy, c-format
 msgid "gcry_md_open failed: %s\n"
-msgstr "faili ei õnnestu avada: %s\n"
+msgstr "faili ei õnnestu avada: %s\n"
 
 #, fuzzy, c-format
 #| msgid "update secret failed: %s\n"
 msgid "oops: ksba_cert_hash failed: %s\n"
-msgstr "salajase võtme uuendamine ebaõnnestus: %s\n"
+msgstr "salajase võtme uuendamine ebaõnnestus: %s\n"
 
 msgid "bad URL encoding detected\n"
 msgstr ""
@@ -8120,7 +8184,7 @@ msgstr ""
 
 #, fuzzy
 msgid "OCSP request not possible due to Tor mode\n"
-msgstr "võtit '%s' ei leitud: %s\n"
+msgstr "võtit '%s' ei leitud: %s\n"
 
 msgid "OCSP request not possible due to disabled HTTP\n"
 msgstr ""
@@ -8135,7 +8199,7 @@ msgstr "viga `%s' lugemisel: %s\n"
 
 #, fuzzy, c-format
 msgid "error connecting to '%s': %s\n"
-msgstr "viga võtmehoidlasse `%s' kirjutamisel: %s\n"
+msgstr "viga võtmehoidlasse `%s' kirjutamisel: %s\n"
 
 #, fuzzy, c-format
 msgid "error reading HTTP response for '%s': %s\n"
@@ -8155,7 +8219,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "hashing the OCSP response for '%s' failed: %s\n"
-msgstr "Loodud allkirja ei õnnestu kontrollida: %s\n"
+msgstr "Loodud allkirja ei õnnestu kontrollida: %s\n"
 
 msgid "not signed by a default OCSP signer's certificate"
 msgstr ""
@@ -8165,7 +8229,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "allocating list item failed: %s\n"
-msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
+msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "error getting responder ID: %s\n"
@@ -8176,23 +8240,23 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "issuer certificate not found: %s\n"
-msgstr "võtit '%s' ei leitud: %s\n"
+msgstr "võtit '%s' ei leitud: %s\n"
 
 msgid "caller did not return the target certificate\n"
 msgstr ""
 
 #, fuzzy
 msgid "caller did not return the issuing certificate\n"
-msgstr "genereeri tühistamise sertifikaat"
+msgstr "genereeri tühistamise sertifikaat"
 
 #, fuzzy, c-format
 msgid "failed to allocate OCSP context: %s\n"
-msgstr "TrustDB initsialiseerimine ebaõnnestus: %s\n"
+msgstr "TrustDB initsialiseerimine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 #| msgid "%s: can't access: %s\n"
 msgid "can't get authorityInfoAccess: %s\n"
-msgstr "%s: ei õnnestu kasutada: %s\n"
+msgstr "%s: ei õnnestu kasutada: %s\n"
 
 msgid "no default OCSP responder defined\n"
 msgstr ""
@@ -8200,7 +8264,7 @@ msgstr ""
 #, fuzzy
 #| msgid "no default secret keyring: %s\n"
 msgid "no default OCSP signer defined\n"
-msgstr "puudub salajaste võtmete vaikimisi võtmehoidla: %s\n"
+msgstr "puudub salajaste võtmete vaikimisi võtmehoidla: %s\n"
 
 #, c-format
 msgid "using default OCSP responder '%s'\n"
@@ -8209,7 +8273,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "using cipher %s\n"
 msgid "using OCSP responder '%s'\n"
-msgstr "kasutan ¨iffrit %s\n"
+msgstr "kasutan šiffrit %s\n"
 
 #, c-format
 msgid "failed to establish a hashing context for OCSP: %s\n"
@@ -8228,7 +8292,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "certificate has been revoked at: %s due to: %s\n"
-msgstr "MÄRKUS: võti on tühistatud"
+msgstr "MÄRKUS: võti on tühistatud"
 
 msgid "OCSP responder returned a status in the future\n"
 msgstr ""
@@ -8241,7 +8305,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "assuan_inquire(%s) failed: %s\n"
-msgstr "allkirjastamine ebaõnnestus: %s\n"
+msgstr "allkirjastamine ebaõnnestus: %s\n"
 
 msgid "ldapserver missing"
 msgstr ""
@@ -8251,11 +8315,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "assuan_inquire failed: %s\n"
-msgstr "allkirjastamine ebaõnnestus: %s\n"
+msgstr "allkirjastamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "fetch_cert_by_url failed: %s\n"
-msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
+msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "error sending data: %s\n"
@@ -8263,11 +8327,11 @@ msgstr "viga teate saatmisel serverile `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "start_cert_fetch failed: %s\n"
-msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
+msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "fetch_next_cert failed: %s\n"
-msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
+msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
 
 #, c-format
 msgid "max_replies %d exceeded\n"
@@ -8275,20 +8339,20 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "can't allocate control structure: %s\n"
-msgstr "`%s' ei õnnestu luua: %s\n"
+msgstr "`%s' ei õnnestu luua: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to allocate assuan context: %s\n"
-msgstr "%s: paisktabeli loomine ebaõnnestus: %s\n"
+msgstr "%s: paisktabeli loomine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 #| msgid "failed to initialize the TrustDB: %s\n"
 msgid "failed to initialize the server: %s\n"
-msgstr "TrustDB initsialiseerimine ebaõnnestus: %s\n"
+msgstr "TrustDB initsialiseerimine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to the register commands with Assuan: %s\n"
-msgstr "võtmehoidla vahemälu uuesti loomine ebaõnnestus: %s\n"
+msgstr "võtmehoidla vahemälu uuesti loomine ebaõnnestus: %s\n"
 
 #, c-format
 msgid "Assuan accept problem: %s\n"
@@ -8297,7 +8361,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "signing failed: %s\n"
 msgid "Assuan processing failed: %s\n"
-msgstr "allkirjastamine ebaõnnestus: %s\n"
+msgstr "allkirjastamine ebaõnnestus: %s\n"
 
 msgid "accepting root CA not marked as a CA"
 msgstr ""
@@ -8312,7 +8376,7 @@ msgstr ""
 
 #, fuzzy
 msgid "checking CRL for"
-msgstr "Loodud allkirja ei õnnestu kontrollida: %s\n"
+msgstr "Loodud allkirja ei õnnestu kontrollida: %s\n"
 
 #, fuzzy
 msgid "selfsigned certificate has a BAD signature"
@@ -8320,21 +8384,21 @@ msgstr "kontrolli allkirja"
 
 #, fuzzy, c-format
 msgid "checking trustworthiness of root certificate failed: %s\n"
-msgstr "Loodud allkirja ei õnnestu kontrollida: %s\n"
+msgstr "Loodud allkirja ei õnnestu kontrollida: %s\n"
 
 #, fuzzy
 msgid "certificate chain is good\n"
 msgstr "eelistus %c%lu on duplikaat\n"
 
 msgid "DSA requires the use of a 160 bit hash algorithm\n"
-msgstr "DSA nõuab 160 bitist räsialgoritmi kasutamist\n"
+msgstr "DSA nõuab 160 bitist räsialgoritmi kasutamist\n"
 
 msgid "certificate should not have been used for CRL signing\n"
 msgstr ""
 
 #, fuzzy
 msgid "quiet"
-msgstr "välju"
+msgstr "välju"
 
 msgid "print data out hex encoded"
 msgstr ""
@@ -8366,7 +8430,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Usage: @GPG@-connect-agent [options] (-h for help)"
-msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
+msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
 
 msgid ""
 "Syntax: @GPG@-connect-agent [options]\n"
@@ -8383,7 +8447,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "receiving line failed: %s\n"
-msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
+msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
 
 #, fuzzy
 msgid "line too long - skipped\n"
@@ -8398,7 +8462,7 @@ msgstr "tundmatu vaikimisi saaja `%s'\n"
 
 #, fuzzy, c-format
 msgid "sending line failed: %s\n"
-msgstr "allkirjastamine ebaõnnestus: %s\n"
+msgstr "allkirjastamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "error sending standard options: %s\n"
@@ -8452,11 +8516,11 @@ msgid "|N|set the Pinentry timeout to N seconds"
 msgstr ""
 
 msgid "|NAME|use NAME as default secret key"
-msgstr "|NIMI|kasuta NIME vaikimisi salajase võtmena"
+msgstr "|NIMI|kasuta NIME vaikimisi salajase võtmena"
 
 #, fuzzy
 msgid "|NAME|encrypt to user ID NAME as well"
-msgstr "|NIMI|krüpti NIMEle"
+msgstr "|NIMI|krüpti NIMEle"
 
 msgid "|SPEC|set up email aliases"
 msgstr ""
@@ -8466,7 +8530,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|URL|use keyserver at URL"
-msgstr "ei saa parsida võtmeserveri URI\n"
+msgstr "ei saa parsida võtmeserveri URI\n"
 
 msgid "allow PKA lookups (DNS requests)"
 msgstr ""
@@ -8479,7 +8543,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|NAME|use encoding NAME for PKCS#12 passphrases"
-msgstr "|NIMI|kasuta paroolidega ¨ifri algoritmi NIMI"
+msgstr "|NIMI|kasuta paroolidega šifri algoritmi NIMI"
 
 msgid "do not check CRLs for root certificates"
 msgstr ""
@@ -8508,28 +8572,30 @@ msgstr ""
 msgid "Configuration for OCSP"
 msgstr ""
 
-msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr ""
 
-msgid "GPG Agent"
+msgid "Private Keys"
 msgstr ""
 
-msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr ""
 
-msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr ""
 
-msgid "Key Acquirer"
-msgstr ""
+#, fuzzy
+#| msgid "network error"
+msgid "Network"
+msgstr "võrgu viga"
 
 #, fuzzy
-msgid "PIN and Passphrase Entry"
+msgid "Passphrase Entry"
 msgstr "halb parool"
 
 #, fuzzy
 msgid "Component not suitable for launching"
-msgstr "ei leia avalikku võtit"
+msgstr "ei leia avalikku võtit"
 
 #, c-format
 msgid "External verification of component %s failed"
@@ -8567,6 +8633,11 @@ msgstr "tundmatu seade \"%s\"\n"
 msgid "check global configuration file"
 msgstr "tundmatu seade \"%s\"\n"
 
+#, fuzzy
+#| msgid "update the trust database"
+msgid "query the software version database"
+msgstr "uuenda usalduse andmebaasi"
+
 msgid "reload all or a given component"
 msgstr ""
 
@@ -8577,14 +8648,14 @@ msgid "kill a given component"
 msgstr ""
 
 msgid "use as output file"
-msgstr "kasuta väljundfailina"
+msgstr "kasuta väljundfailina"
 
 msgid "activate changes at runtime, if possible"
 msgstr ""
 
 #, fuzzy
 msgid "Usage: @GPGCONF@ [options] (-h for help)"
-msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
+msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
 
 msgid ""
 "Syntax: @GPGCONF@ [options]\n"
@@ -8596,11 +8667,11 @@ msgstr ""
 
 #, fuzzy
 msgid "Component not found"
-msgstr "ei leia avalikku võtit"
+msgstr "ei leia avalikku võtit"
 
 #, fuzzy
 msgid "No argument allowed"
-msgstr "kirjutan salajase võtme faili `%s'\n"
+msgstr "kirjutan salajase võtme faili `%s'\n"
 
 #, fuzzy
 msgid ""
@@ -8608,16 +8679,16 @@ msgid ""
 "Commands:\n"
 " "
 msgstr ""
-"@Käsud:\n"
+"@Käsud:\n"
 " "
 
 #, fuzzy
 msgid "decryption modus"
-msgstr "lahtikrüpteerimine õnnestus\n"
+msgstr "lahtikrüpteerimine õnnestus\n"
 
 #, fuzzy
 msgid "encryption modus"
-msgstr "lahtikrüpteerimine õnnestus\n"
+msgstr "lahtikrüpteerimine õnnestus\n"
 
 msgid "tool class (confucius)"
 msgstr ""
@@ -8634,7 +8705,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Usage: symcryptrun [options] (-h for help)"
-msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
+msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
 
 msgid ""
 "Syntax: symcryptrun --class CLASS --program PROGRAM --keyfile KEYFILE "
@@ -8648,19 +8719,19 @@ msgstr "%s ja %s ei ole koos lubatud!\n"
 
 #, fuzzy, c-format
 msgid "%s on %s failed with status %i\n"
-msgstr "faili ei õnnestu avada: %s\n"
+msgstr "faili ei õnnestu avada: %s\n"
 
 #, fuzzy, c-format
 msgid "can't create temporary directory '%s': %s\n"
-msgstr "kataloogi `%s' ei õnnestu luua: %s\n"
+msgstr "kataloogi `%s' ei õnnestu luua: %s\n"
 
 #, fuzzy, c-format
 msgid "could not open %s for writing: %s\n"
-msgstr "%s ei õnnestu avada: %s\n"
+msgstr "%s ei õnnestu avada: %s\n"
 
 #, fuzzy, c-format
 msgid "error writing to %s: %s\n"
-msgstr "viga võtmehoidlasse `%s' kirjutamisel: %s\n"
+msgstr "viga võtmehoidlasse `%s' kirjutamisel: %s\n"
 
 #, fuzzy, c-format
 msgid "error reading from %s: %s\n"
@@ -8672,7 +8743,7 @@ msgstr "viga `%s' lugemisel: %s\n"
 
 #, fuzzy
 msgid "no --program option provided\n"
-msgstr "mittelokaalse programmi käivitamist ei toetata\n"
+msgstr "mittelokaalse programmi käivitamist ei toetata\n"
 
 msgid "only --decrypt and --encrypt are supported\n"
 msgstr ""
@@ -8685,11 +8756,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "could not create pipe: %s\n"
-msgstr "%s ei õnnestu luua: %s\n"
+msgstr "%s ei õnnestu luua: %s\n"
 
 #, fuzzy, c-format
 msgid "could not create pty: %s\n"
-msgstr "%s ei õnnestu luua: %s\n"
+msgstr "%s ei õnnestu luua: %s\n"
 
 #, c-format
 msgid "could not fork: %s\n"
@@ -8697,23 +8768,23 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "execv failed: %s\n"
-msgstr "uuendamine ebaõnnestus: %s\n"
+msgstr "uuendamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "select failed: %s\n"
-msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
+msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "read failed: %s\n"
-msgstr "uuendamine ebaõnnestus: %s\n"
+msgstr "uuendamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "pty read failed: %s\n"
-msgstr "uuendamine ebaõnnestus: %s\n"
+msgstr "uuendamine ebaõnnestus: %s\n"
 
 #, fuzzy, c-format
 msgid "waitpid failed: %s\n"
-msgstr "uuendamine ebaõnnestus: %s\n"
+msgstr "uuendamine ebaõnnestus: %s\n"
 
 #, c-format
 msgid "child aborted with status %i\n"
@@ -8721,11 +8792,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "cannot allocate infile string: %s\n"
-msgstr "`%s' ei õnnestu luua: %s\n"
+msgstr "`%s' ei õnnestu luua: %s\n"
 
 #, fuzzy, c-format
 msgid "cannot allocate outfile string: %s\n"
-msgstr "`%s' ei õnnestu luua: %s\n"
+msgstr "`%s' ei õnnestu luua: %s\n"
 
 #, c-format
 msgid "either %s or %s must be given\n"
@@ -8740,13 +8811,27 @@ msgstr "kaitse algoritm %d%s ei ole toetatud\n"
 
 #, fuzzy
 msgid "Usage: gpg-check-pattern [options] patternfile (-h for help)\n"
-msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
+msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
 
 msgid ""
 "Syntax: gpg-check-pattern [options] patternfile\n"
 "Check a passphrase given on stdin against the patternfile\n"
 msgstr ""
 
+#, fuzzy
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
+
+#, fuzzy
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "blokeeri võti"
+
+#, fuzzy
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "|algo [failid]|trüki teatelühendid"
+#~ msgstr[1] "|algo [failid]|trüki teatelühendid"
+
 #~ msgid "communication problem with gpg-agent\n"
 #~ msgstr "probleem gpg-agent programmiga suhtlemisel\n"
 
@@ -8774,9 +8859,9 @@ msgstr ""
 #~ "%u-bit %s key, ID %s,\n"
 #~ "created %s%s.\n"
 #~ msgstr ""
-#~ "Te vajate kasutaja salajase võtme lahtilukustamiseks parooli:\n"
+#~ "Te vajate kasutaja salajase võtme lahtilukustamiseks parooli:\n"
 #~ "\"%.*s\"\n"
-#~ "%u-bitti %s võti, ID %08lX, loodud %s%s\n"
+#~ "%u-bitti %s võti, ID %08lX, loodud %s%s\n"
 
 #, fuzzy
 #~ msgid ""
@@ -8784,17 +8869,17 @@ msgstr ""
 #~ "user: \"%s\"\n"
 #~ msgstr ""
 #~ "\n"
-#~ "Te vajate kasutaja salajase võtme lahtilukustamiseks\n"
+#~ "Te vajate kasutaja salajase võtme lahtilukustamiseks\n"
 #~ "parooli: \""
 
 #, fuzzy
 #~ msgid "%u-bit %s key, ID %s, created %s"
-#~ msgstr "%u-bitine %s võti, ID %08lX, loodud %s"
+#~ msgstr "%u-bitine %s võti, ID %08lX, loodud %s"
 
 #, fuzzy
 #~| msgid "can't create directory `%s': %s\n"
 #~ msgid "can't access directory '%s': %s\n"
-#~ msgstr "kataloogi `%s' ei õnnestu luua: %s\n"
+#~ msgstr "kataloogi `%s' ei õnnestu luua: %s\n"
 
 #~ msgid "you found a bug ... (%s:%d)\n"
 #~ msgstr "te leidsite vea ... (%s:%d)\n"
@@ -8807,29 +8892,26 @@ msgstr ""
 #~ msgstr[1] "tuvastasin %d kehtiva iseenda allkirjata kasutaja IDd\n"
 
 #~ msgid "moving a key signature to the correct place\n"
-#~ msgstr "tõstan võtme allkirja õigesse kohta\n"
+#~ msgstr "tõstan võtme allkirja õigesse kohta\n"
 
 #~ msgid "%d signatures not checked due to missing keys\n"
-#~ msgstr "%d allkirja jäi testimata, kuna võtmed puuduvad\n"
+#~ msgstr "%d allkirja jäi testimata, kuna võtmed puuduvad\n"
 
 #~ msgid "%d signatures not checked due to errors\n"
-#~ msgstr "%d allkirja jäi vigade tõttu kontrollimata\n"
+#~ msgstr "%d allkirja jäi vigade tõttu kontrollimata\n"
 
 #~ msgid "1 user ID without valid self-signature detected\n"
-#~ msgstr "tuvastasin ühe kehtiva iseenda allkirjata kasutaja ID\n"
-
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "Kustutatud %d allkirja.\n"
+#~ msgstr "tuvastasin ühe kehtiva iseenda allkirjata kasutaja ID\n"
 
 #, fuzzy
 #~ msgid "User ID \"%s\": %d signatures removed\n"
-#~ msgstr "Kasutaja ID \"%s\" on tühistatud."
+#~ msgstr "Kasutaja ID \"%s\" on tühistatud."
 
 #~ msgid ""
 #~ "You need a Passphrase to protect your secret key.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Te vajate oma salajase võtme kaitsmiseks parooli.\n"
+#~ "Te vajate oma salajase võtme kaitsmiseks parooli.\n"
 #~ "\n"
 
 #, fuzzy
@@ -8839,7 +8921,7 @@ msgstr ""
 #~ msgstr "Palun sisestage parool; see on salajane tekst \n"
 
 #~ msgid "passphrase not correctly repeated; try again"
-#~ msgstr "parooli ei korratud õieti; proovige uuesti"
+#~ msgstr "parooli ei korratud õieti; proovige uuesti"
 
 #~ msgid "%s.\n"
 #~ msgstr "%s.\n"
@@ -8850,14 +8932,14 @@ msgstr ""
 #~ "using this program with the option \"--edit-key\".\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Te ei soovi parooli - see on tõenäoliselt *halb* idee!\n"
-#~ "Ma siiski täidan teie soovi. Te saate oma parooli alati muuta,\n"
-#~ "kasutades seda programmi võtmega \"--edit-key\".\n"
+#~ "Te ei soovi parooli - see on tõenäoliselt *halb* idee!\n"
+#~ "Ma siiski täidan teie soovi. Te saate oma parooli alati muuta,\n"
+#~ "kasutades seda programmi võtmega \"--edit-key\".\n"
 #~ "\n"
 
 #, fuzzy
 #~ msgid "storing key onto card failed: %s\n"
-#~ msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
+#~ msgstr "võtmebloki kustutamine ebaõnnestus: %s\n"
 
 #, fuzzy
 #~| msgid "1 bad signature\n"
@@ -8865,16 +8947,12 @@ msgstr ""
 #~ msgstr "1 halb allkiri\n"
 
 #, fuzzy
-#~ msgid "renaming '%s' to '%s' failed: %s\n"
-#~ msgstr "pakendamine ebaõnnestus: %s\n"
-
-#, fuzzy
 #~ msgid "%lu keys cached (%lu signatures)\n"
-#~ msgstr "kontrollitud %lu võtit (%lu allkirja)\n"
+#~ msgstr "kontrollitud %lu võtit (%lu allkirja)\n"
 
 #, fuzzy
 #~ msgid "refreshing 1 key from %s\n"
-#~ msgstr "küsin võtit %08lX võtmeserverist %s\n"
+#~ msgstr "küsin võtit %08lX võtmeserverist %s\n"
 
 #, fuzzy
 #~ msgid "sending key %s to %s server %s\n"
@@ -8882,30 +8960,30 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "public key %s is %lu seconds newer than the signature\n"
-#~ msgstr "avalik võti %08lX on %lu sekundit uuem, kui allkiri\n"
+#~ msgstr "avalik võti %08lX on %lu sekundit uuem, kui allkiri\n"
 
 #, fuzzy
 #~ msgid ""
 #~ "key %s was created %lu seconds in the future (time warp or clock "
 #~ "problem)\n"
-#~ msgstr "võti loodi %lu sekundit tulevikus (ajahüpe või kella probleem)\n"
+#~ msgstr "võti loodi %lu sekundit tulevikus (ajahüpe või kella probleem)\n"
 
 #, fuzzy
 #~| msgid "can't open the keyring"
 #~ msgid "Failed to open the keyring DB.\n"
-#~ msgstr "võtmehoidlat ei õnnestu avada"
+#~ msgstr "võtmehoidlat ei õnnestu avada"
 
 #, fuzzy
 #~ msgid "Failed to parse '%s'.\n"
-#~ msgstr "`%s' ei õnnestu avada: %s\n"
+#~ msgstr "`%s' ei õnnestu avada: %s\n"
 
 #, fuzzy
 #~ msgid "error looking up secret key \"%s\": %s\n"
-#~ msgstr "viga salajase võtmebloki `%s' lugemisel: %s\n"
+#~ msgstr "viga salajase võtmebloki `%s' lugemisel: %s\n"
 
 #, fuzzy
 #~ msgid "Please select at most one subkey.\n"
-#~ msgstr "palun valige ülimalt üks sekundaarne võti.\n"
+#~ msgstr "palun valige ülimalt üks sekundaarne võti.\n"
 
 #, fuzzy
 #~ msgid "malformed %s environment variable\n"
@@ -8917,10 +8995,10 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "toggle between the secret and public key listings"
-#~ msgstr "lülita salajaste või avalike võtmete loendi vahel"
+#~ msgstr "lülita salajaste või avalike võtmete loendi vahel"
 
 #~ msgid "Please use the command \"toggle\" first.\n"
-#~ msgstr "Palun kasutage kõigepealt käsku \"toggle\".\n"
+#~ msgstr "Palun kasutage kõigepealt käsku \"toggle\".\n"
 
 #, fuzzy
 #~ msgid "Passphrase"
@@ -8935,11 +9013,11 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "use a standard location for the socket"
-#~ msgstr "Kas uuendan tõesti kõik kasutaja ID-de seaded? "
+#~ msgstr "Kas uuendan tõesti kõik kasutaja ID-de seaded? "
 
 #, fuzzy
 #~ msgid "Usage: gpg-agent [options] (-h for help)"
-#~ msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
+#~ msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
 
 #~ msgid "malformed GPG_AGENT_INFO environment variable\n"
 #~ msgstr "vigane GPG_AGENT_INFO keskkonnamuutuja\n"
@@ -8949,7 +9027,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "can't fdopen pipe for reading: %s\n"
-#~ msgstr "faili ei õnnestu avada: %s\n"
+#~ msgstr "faili ei õnnestu avada: %s\n"
 
 #, fuzzy
 #~ msgid "error creating socket: %s\n"
@@ -8965,145 +9043,145 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "secret parts of key are not available\n"
-#~ msgstr "Primaarse võtme salajased komponendid ei ole kättesaadavad.\n"
+#~ msgstr "Primaarse võtme salajased komponendid ei ole kättesaadavad.\n"
 
 #, fuzzy
 #~ msgid "secret key already stored on a card\n"
-#~ msgstr "jätsin vahele: avalik võti on juba olemas\n"
+#~ msgstr "jätsin vahele: avalik võti on juba olemas\n"
 
 #, fuzzy
 #~ msgid "error writing key to card: %s\n"
-#~ msgstr "viga võtmehoidlasse `%s' kirjutamisel: %s\n"
+#~ msgstr "viga võtmehoidlasse `%s' kirjutamisel: %s\n"
 
 #~ msgid ""
 #~ "you can only encrypt to RSA keys of 2048 bits or less in --pgp2 mode\n"
 #~ msgstr ""
-#~ "RSA võtmeid pikkusega kuni 2048 bitti saab krüpteerida ainult --pgp2 "
+#~ "RSA võtmeid pikkusega kuni 2048 bitti saab krüpteerida ainult --pgp2 "
 #~ "moodis\n"
 
 #~ msgid ""
 #~ "unable to use the IDEA cipher for all of the keys you are encrypting to.\n"
-#~ msgstr "kõikide krüpteeritavate võtmetega ei saa IDEA ¨iffrit kasutada.\n"
+#~ msgstr "kõikide krüpteeritavate võtmetega ei saa IDEA šiffrit kasutada.\n"
 
 #, fuzzy
 #~ msgid "remove the passphrase from exported subkeys"
-#~ msgstr "tühista sekundaarne võti"
+#~ msgstr "tühista sekundaarne võti"
 
 #, fuzzy
 #~ msgid "key %s: not protected - skipped\n"
-#~ msgstr "võti %08lX: ei ole kaitstud - jätsin vahele\n"
+#~ msgstr "võti %08lX: ei ole kaitstud - jätsin vahele\n"
 
 #, fuzzy
 #~ msgid "failed to unprotect the subkey: %s\n"
-#~ msgstr "TrustDB initsialiseerimine ebaõnnestus: %s\n"
+#~ msgstr "TrustDB initsialiseerimine ebaõnnestus: %s\n"
 
 #, fuzzy
 #~ msgid "WARNING: secret key %s does not have a simple SK checksum\n"
-#~ msgstr "HOIATUS: salajases võtmes %08lX puudub lihtne SK kontrollsumma\n"
+#~ msgstr "HOIATUS: salajases võtmes %08lX puudub lihtne SK kontrollsumma\n"
 
 #~ msgid "too many entries in pk cache - disabled\n"
-#~ msgstr "avalike võtmete puhvris on liiga palju võtmeid - blokeerin\n"
+#~ msgstr "avalike võtmete puhvris on liiga palju võtmeid - blokeerin\n"
 
 #, fuzzy
 #~ msgid "no secret subkey for public subkey %s - ignoring\n"
-#~ msgstr "avalikul alamvõtmel %08lX puudub salajane alamvõti - ignoreerin\n"
+#~ msgstr "avalikul alamvõtmel %08lX puudub salajane alamvõti - ignoreerin\n"
 
 #, fuzzy
 #~ msgid "key %s: secret key without public key - skipped\n"
-#~ msgstr "võti %08lX: salajane võti avaliku võtmeta - jätsin vahele\n"
+#~ msgstr "võti %08lX: salajane võti avaliku võtmeta - jätsin vahele\n"
 
 #~ msgid "usage: gpg [options] "
-#~ msgstr "kasuta: gpg [võtmed] "
+#~ msgstr "kasuta: gpg [võtmed] "
 
 #~ msgid ""
 #~ "you can only make detached or clear signatures while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "--pgp2 moodis saate luua ainult eraldiseisvaid või avateksti allkirju\n"
+#~ "--pgp2 moodis saate luua ainult eraldiseisvaid või avateksti allkirju\n"
 
 #~ msgid "you can't sign and encrypt at the same time while in --pgp2 mode\n"
-#~ msgstr "--pgp2 moodis ei saa korraga allkirjastada ja krüpteerida\n"
+#~ msgstr "--pgp2 moodis ei saa korraga allkirjastada ja krüpteerida\n"
 
 #~ msgid ""
 #~ "you must use files (and not a pipe) when working with --pgp2 enabled.\n"
 #~ msgstr "--pgp2 moodis peate kasutama faile (ja mitte toru).\n"
 
 #~ msgid "encrypting a message in --pgp2 mode requires the IDEA cipher\n"
-#~ msgstr "teate krüpteerimine --pgp2 moodis nõuab IDEA ¨iffrit\n"
+#~ msgstr "teate krüpteerimine --pgp2 moodis nõuab IDEA šiffrit\n"
 
 #, fuzzy
 #~ msgid "create a public key when importing a secret key"
-#~ msgstr "avalik võti ei sobi salajase võtmega!\n"
+#~ msgstr "avalik võti ei sobi salajase võtmega!\n"
 
 #, fuzzy
 #~ msgid "key %s: already in secret keyring\n"
-#~ msgstr "võti %08lX: on juba salajaste võtmete hoidlas\n"
+#~ msgstr "võti %08lX: on juba salajaste võtmete hoidlas\n"
 
 #, fuzzy
 #~ msgid "key %s: secret key not found: %s\n"
-#~ msgstr "võti %08lX: salajast võtit ei leitud: %s\n"
+#~ msgstr "võti %08lX: salajast võtit ei leitud: %s\n"
 
 #, fuzzy
 #~ msgid "NOTE: a key's S/N does not match the card's one\n"
-#~ msgstr "avalik võti ei sobi salajase võtmega!\n"
+#~ msgstr "avalik võti ei sobi salajase võtmega!\n"
 
 #, fuzzy
 #~ msgid "NOTE: primary key is online and stored on card\n"
-#~ msgstr "jätsin vahele: avalik võti on juba olemas\n"
+#~ msgstr "jätsin vahele: avalik võti on juba olemas\n"
 
 #, fuzzy
 #~ msgid "NOTE: secondary key is online and stored on card\n"
-#~ msgstr "jätsin vahele: avalik võti on juba olemas\n"
+#~ msgstr "jätsin vahele: avalik võti on juba olemas\n"
 
 #~ msgid ""
 #~ "You may not make an OpenPGP signature on a PGP 2.x key while in --pgp2 "
 #~ "mode.\n"
-#~ msgstr "--pgp2 moodis ei saa PGP 2.x võtmele OpenPGP allkirja anda.\n"
+#~ msgstr "--pgp2 moodis ei saa PGP 2.x võtmele OpenPGP allkirja anda.\n"
 
 #~ msgid "This would make the key unusable in PGP 2.x.\n"
-#~ msgstr "See muudab võtme PGP 2.x programmidega mitte-kasutatavaks.\n"
+#~ msgstr "See muudab võtme PGP 2.x programmidega mitte-kasutatavaks.\n"
 
 #~ msgid "This key is not protected.\n"
-#~ msgstr "See võti ei ole kaitstud.\n"
+#~ msgstr "See võti ei ole kaitstud.\n"
 
 #~ msgid "Key is protected.\n"
-#~ msgstr "Võti on kaitstud.\n"
+#~ msgstr "Võti on kaitstud.\n"
 
 #~ msgid "Can't edit this key: %s\n"
-#~ msgstr "Seda võtit ei õnnestu toimetada: %s\n"
+#~ msgstr "Seda võtit ei õnnestu toimetada: %s\n"
 
 #~ msgid ""
 #~ "Enter the new passphrase for this secret key.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Sisestage sellele salajasele võtmele uus parool.\n"
+#~ "Sisestage sellele salajasele võtmele uus parool.\n"
 #~ "\n"
 
 #~ msgid ""
 #~ "You don't want a passphrase - this is probably a *bad* idea!\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Te ei soovi parooli - see on tõenäoliselt *halb* idee!\n"
+#~ "Te ei soovi parooli - see on tõenäoliselt *halb* idee!\n"
 #~ "\n"
 
 #, fuzzy
 #~ msgid "Do you really want to do this? (y/N) "
-#~ msgstr "Kas te tõesti soovite seda teha? "
+#~ msgstr "Kas te tõesti soovite seda teha? "
 
 #~ msgid "Please remove selections from the secret keys.\n"
-#~ msgstr "Palun eemaldage salajastelt võtmetelt valikud.\n"
+#~ msgstr "Palun eemaldage salajastelt võtmetelt valikud.\n"
 
 #~ msgid "No corresponding signature in secret ring\n"
-#~ msgstr "Vastavat allkirja salajaste võtmete hoidlas pole\n"
+#~ msgstr "Vastavat allkirja salajaste võtmete hoidlas pole\n"
 
 #, fuzzy
 #~ msgid "writing secret key stub to `%s'\n"
-#~ msgstr "kirjutan salajase võtme faili `%s'\n"
+#~ msgstr "kirjutan salajase võtme faili `%s'\n"
 
 #~ msgid "writing secret key to `%s'\n"
-#~ msgstr "kirjutan salajase võtme faili `%s'\n"
+#~ msgstr "kirjutan salajase võtme faili `%s'\n"
 
 #~ msgid "no writable secret keyring found: %s\n"
-#~ msgstr "kirjutatavat salajaste võtmete hoidlat pole: %s\n"
+#~ msgstr "kirjutatavat salajaste võtmete hoidlat pole: %s\n"
 
 #~ msgid "WARNING: 2 files with confidential information exists.\n"
 #~ msgstr "HOIATUS: on olemas 2 faili konfidentsiaalse infoga.\n"
@@ -9115,7 +9193,7 @@ msgstr ""
 #~ msgstr "%s on uus\n"
 
 #~ msgid "Please fix this possible security flaw\n"
-#~ msgstr "Palun parandage see võimalik turvaprobleem\n"
+#~ msgstr "Palun parandage see võimalik turvaprobleem\n"
 
 #, fuzzy
 #~ msgid "searching for names from %s server %s\n"
@@ -9135,15 +9213,15 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "keyserver timed out\n"
-#~ msgstr "võtmeserveri viga"
+#~ msgstr "võtmeserveri viga"
 
 #, fuzzy
 #~ msgid "keyserver internal error\n"
-#~ msgstr "võtmeserveri viga"
+#~ msgstr "võtmeserveri viga"
 
 #, fuzzy
 #~ msgid "keyserver communications error: %s\n"
-#~ msgstr "võtmeserverilt lugemine ebaõnnestus: %s\n"
+#~ msgstr "võtmeserverilt lugemine ebaõnnestus: %s\n"
 
 #, fuzzy
 #~ msgid "WARNING: unable to parse URI %s\n"
@@ -9153,19 +9231,19 @@ msgstr ""
 #~ msgstr "proc_tree() tuvastas vigase juurmise paketi\n"
 
 #~ msgid "the IDEA cipher plugin is not present\n"
-#~ msgstr "IDEA ¨ifri lisandprogrammi pole\n"
+#~ msgstr "IDEA šifri lisandprogrammi pole\n"
 
 #~ msgid "no corresponding public key: %s\n"
-#~ msgstr "vastavat avalikku võtit pole: %s\n"
+#~ msgstr "vastavat avalikku võtit pole: %s\n"
 
 #~ msgid "public key does not match secret key!\n"
-#~ msgstr "avalik võti ei sobi salajase võtmega!\n"
+#~ msgstr "avalik võti ei sobi salajase võtmega!\n"
 
 #~ msgid "unknown protection algorithm\n"
 #~ msgstr "tundmatu kaitsealgoritm\n"
 
 #~ msgid "NOTE: This key is not protected!\n"
-#~ msgstr "MÄRKUS: See võti ei ole kaitstud!\n"
+#~ msgstr "MÄRKUS: See võti ei ole kaitstud!\n"
 
 #, fuzzy
 #~ msgid "protection digest %d is not supported\n"
@@ -9178,45 +9256,45 @@ msgstr ""
 #~ msgstr "%s ...\n"
 
 #~ msgid "WARNING: Weak key detected - please change passphrase again.\n"
-#~ msgstr "HOIATUS: Tuvastasin nõrga võtme - palun muutke uuesti parooli.\n"
+#~ msgstr "HOIATUS: Tuvastasin nõrga võtme - palun muutke uuesti parooli.\n"
 
 #~ msgid ""
 #~ "generating the deprecated 16-bit checksum for secret key protection\n"
 #~ msgstr ""
-#~ "loon salajase võtme kaitseks mittesoovitavat 16 bitist kontrollsummat\n"
+#~ "loon salajase võtme kaitseks mittesoovitavat 16 bitist kontrollsummat\n"
 
 #~ msgid ""
 #~ "you can only detach-sign with PGP 2.x style keys while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "PGP 2.x stiilis võtmetega saab eraldi-allkirjastada ainult --pgp2 moodis\n"
+#~ "PGP 2.x stiilis võtmetega saab eraldi-allkirjastada ainult --pgp2 moodis\n"
 
 #~ msgid ""
 #~ "you can only clearsign with PGP 2.x style keys while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "PGP 2.x stiilis võtmetega saab avateksti allkirjastada ainult --pgp2 "
+#~ "PGP 2.x stiilis võtmetega saab avateksti allkirjastada ainult --pgp2 "
 #~ "moodis\n"
 
 #, fuzzy
 #~ msgid "Usage: scdaemon [options] (-h for help)"
-#~ msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
+#~ msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
 
 #, fuzzy
 #~ msgid "Usage: gpgsm [options] [files] (-h for help)"
-#~ msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
+#~ msgstr "Kasuta: gpg [võtmed] [failid] (-h näitab abiinfot)"
 
 #, fuzzy
 #~ msgid "usage: gpgconf [options] "
-#~ msgstr "kasuta: gpg [võtmed] "
+#~ msgstr "kasuta: gpg [võtmed] "
 
 #, fuzzy
 #~ msgid "failed to allocated keyDB handle\n"
-#~ msgstr "TrustDB initsialiseerimine ebaõnnestus: %s\n"
+#~ msgstr "TrustDB initsialiseerimine ebaõnnestus: %s\n"
 
 #~ msgid "Command> "
-#~ msgstr "Käsklus> "
+#~ msgstr "Käsklus> "
 
 #~ msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
-#~ msgstr "trustdb on vigane; palun käivitage \"gpg --fix-trustdb\".\n"
+#~ msgstr "trustdb on vigane; palun käivitage \"gpg --fix-trustdb\".\n"
 
 #~ msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
 #~ msgstr "Palun saatke veateated aadressil <gnupg-bugs@gnu.org>.\n"
@@ -9227,14 +9305,14 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "DSA keypair will have %u bits.\n"
-#~ msgstr "DSA võtmepaari pikkuseks saab 1024 bitti.\n"
+#~ msgstr "DSA võtmepaari pikkuseks saab 1024 bitti.\n"
 
 #~ msgid "Repeat passphrase\n"
 #~ msgstr "Korrake parooli\n"
 
 #, fuzzy
 #~ msgid "read options from file"
-#~ msgstr "loen võtmeid failist `%s'\n"
+#~ msgstr "loen võtmeid failist `%s'\n"
 
 #~ msgid "|[file]|make a signature"
 #~ msgstr "|[fail]|loo allkiri"
@@ -9248,16 +9326,16 @@ msgstr ""
 #~ msgstr "|[fail]|loo avateksti allkiri"
 
 #~ msgid "use the default key as default recipient"
-#~ msgstr "kasuta vaikimisi saajana vaikimisi võtit"
+#~ msgstr "kasuta vaikimisi saajana vaikimisi võtit"
 
 #~ msgid "force v3 signatures"
 #~ msgstr "kasuta v3 allkirju"
 
 #~ msgid "always use a MDC for encryption"
-#~ msgstr "krüptimisel kasuta alati MDC"
+#~ msgstr "krüptimisel kasuta alati MDC"
 
 #~ msgid "add this secret keyring to the list"
-#~ msgstr "lisa see salajaste võtmete hoidla nimekirja"
+#~ msgstr "lisa see salajaste võtmete hoidla nimekirja"
 
 #~ msgid "|FILE|load extension module FILE"
 #~ msgstr "|FAIL|lae laiendusmoodul FAIL"
@@ -9267,7 +9345,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "remove key from the public keyring"
-#~ msgstr "eemalda võtmed avalike võtmete hoidlast"
+#~ msgstr "eemalda võtmed avalike võtmete hoidlast"
 
 #~ msgid ""
 #~ "It's up to you to assign a value here; this value will never be exported\n"
@@ -9275,8 +9353,8 @@ msgstr ""
 #~ "nothing\n"
 #~ "to do with the (implicitly created) web-of-certificates."
 #~ msgstr ""
-#~ "Teie ülesanne on sisestada nüüd väärtus; seda väärtust ei avalikustata\n"
-#~ "kolmandatele pooltele. Seda väärtust on vaja et realiseerida usaldusvõrk."
+#~ "Teie ülesanne on sisestada nüüd väärtus; seda väärtust ei avalikustata\n"
+#~ "kolmandatele pooltele. Seda väärtust on vaja et realiseerida usaldusvõrk."
 
 #~ msgid ""
 #~ "To build the Web-of-Trust, GnuPG needs to know which keys are\n"
@@ -9284,14 +9362,14 @@ msgstr ""
 #~ "access to the secret key.  Answer \"yes\" to set this key to\n"
 #~ "ultimately trusted\n"
 #~ msgstr ""
-#~ "Usalduse võrgu loomiseks peab GnuPG teadma, millised võtmed on\n"
-#~ "absoluutselt usaldatavad. Need on tavaliselt võtmed, mille puhul\n"
-#~ "on teil juurdepääs ka nende salajastele võtmetele. Kui soovite\n"
-#~ "määrata seda võtit absoluutselt usaldatavaks, vastake \"jah\"\n"
+#~ "Usalduse võrgu loomiseks peab GnuPG teadma, millised võtmed on\n"
+#~ "absoluutselt usaldatavad. Need on tavaliselt võtmed, mille puhul\n"
+#~ "on teil juurdepääs ka nende salajastele võtmetele. Kui soovite\n"
+#~ "määrata seda võtit absoluutselt usaldatavaks, vastake \"jah\"\n"
 
 #~ msgid "If you want to use this untrusted key anyway, answer \"yes\"."
 #~ msgstr ""
-#~ "Kui te ikkagi soovite kasutada seda mitteusaldatavat võtit, vastake \"jah"
+#~ "Kui te ikkagi soovite kasutada seda mitteusaldatavat võtit, vastake \"jah"
 #~ "\"."
 
 #~ msgid ""
@@ -9303,15 +9381,15 @@ msgstr ""
 #~ "encryption.  This algorithm should only be used in certain domains.\n"
 #~ "Please consult your security expert first."
 #~ msgstr ""
-#~ "Üldiselt ei ole hea mõte kasutada sama võtit allkirjastamiseks ja\n"
-#~ "krüpteerimiseks. Seda algoritmi tuleks kasutada ainult teatud piirides.\n"
+#~ "Üldiselt ei ole hea mõte kasutada sama võtit allkirjastamiseks ja\n"
+#~ "krüpteerimiseks. Seda algoritmi tuleks kasutada ainult teatud piirides.\n"
 #~ "Enne kasutamist konsulteerige palun oma turva eksperdiga."
 
 #~ msgid "Enter the size of the key"
-#~ msgstr "Sisestage võtmepikkus"
+#~ msgstr "Sisestage võtmepikkus"
 
 #~ msgid "Answer \"yes\" or \"no\""
-#~ msgstr "Vastake \"jah\" või \"ei\""
+#~ msgstr "Vastake \"jah\" või \"ei\""
 
 #~ msgid ""
 #~ "Enter the required value as shown in the prompt.\n"
@@ -9319,20 +9397,20 @@ msgstr ""
 #~ "get a good error response - instead the system tries to interpret\n"
 #~ "the given value as an interval."
 #~ msgstr ""
-#~ "Sisestage nõutav väärtus, nagu viibal näidati.\n"
-#~ "Võimalik on ka sisestada ISO kuupäev (AAAA-KK-PP), aga te ei\n"
-#~ "saa korrektset veateadet, kuna süsteem üritab antud väärtust\n"
-#~ "tõlgendada vahemikuna."
+#~ "Sisestage nõutav väärtus, nagu viibal näidati.\n"
+#~ "Võimalik on ka sisestada ISO kuupäev (AAAA-KK-PP), aga te ei\n"
+#~ "saa korrektset veateadet, kuna süsteem üritab antud väärtust\n"
+#~ "tõlgendada vahemikuna."
 
 #~ msgid "Enter the name of the key holder"
-#~ msgstr "Sisestage võtmehoidja nimi"
+#~ msgstr "Sisestage võtmehoidja nimi"
 
 #~ msgid "please enter an optional but highly suggested email address"
 #~ msgstr ""
-#~ "palun e-posti aadress, aadress ei ole kohustuslik, aga väga soovitav"
+#~ "palun e-posti aadress, aadress ei ole kohustuslik, aga väga soovitav"
 
 #~ msgid "Please enter an optional comment"
-#~ msgstr "Te võite nüüd sisestada kommentaari"
+#~ msgstr "Te võite nüüd sisestada kommentaari"
 
 #~ msgid ""
 #~ "N  to change the name.\n"
@@ -9344,12 +9422,12 @@ msgstr ""
 #~ "N  et muuta nime.\n"
 #~ "K  et muuta kommentaari.\n"
 #~ "E  et muuta e-posti aadressi.\n"
-#~ "O  et jätkata võtme loomist.\n"
-#~ "V  et lõpetada võtme loomine."
+#~ "O  et jätkata võtme loomist.\n"
+#~ "V  et lõpetada võtme loomine."
 
 #~ msgid ""
 #~ "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
-#~ msgstr "Vastake \"jah\" (või \"j\"), kui võib alustada alamvõtme loomisega."
+#~ msgstr "Vastake \"jah\" (või \"j\"), kui võib alustada alamvõtme loomisega."
 
 #~ msgid ""
 #~ "When you sign a user ID on a key, you should first verify that the key\n"
@@ -9394,65 +9472,65 @@ msgstr ""
 #~ "\n"
 #~ "If you don't know what the right answer is, answer \"0\"."
 #~ msgstr ""
-#~ "Kui te allkirjastate võtme kasutaja ID, kontrollige kõigepealt, kas võti\n"
-#~ "ikka kuulub antud ID-ga näidatud isikule. Teistel inimestel on hea "
+#~ "Kui te allkirjastate võtme kasutaja ID, kontrollige kõigepealt, kas võti\n"
+#~ "ikka kuulub antud ID-ga näidatud isikule. Teistel inimestel on hea "
 #~ "teada,\n"
 #~ "kui hoolikalt te seda kontrolli olete teostanud.\n"
 #~ "\n"
-#~ "\"0\" tähendab, et te ei väida oma kontrollimise kohta midagi.\n"
+#~ "\"0\" tähendab, et te ei väida oma kontrollimise kohta midagi.\n"
 #~ "\n"
-#~ "\"1\" tähendab, et te usute, et võtit omab isik, kes seda väidab omavat, "
+#~ "\"1\" tähendab, et te usute, et võtit omab isik, kes seda väidab omavat, "
 #~ "kuid\n"
-#~ "    te ei saanud või ei soovinud seda väidet täiendavalt kontrollida. "
+#~ "    te ei saanud või ei soovinud seda väidet täiendavalt kontrollida. "
 #~ "See\n"
 #~ "    on kasulik \"persooni\" kontrolliks, kui te allkirjastate isiku "
 #~ "pseudo-\n"
-#~ "    nüümi võtit.\n"
+#~ "    nüümi võtit.\n"
 #~ "\n"
-#~ "\"2\" tähendab, et te teostasite võtme pealiskaudset kontrolli. See võib\n"
-#~ "    näiteks tähendada, et te kontrollisite võtme sõrmejälge ja "
+#~ "\"2\" tähendab, et te teostasite võtme pealiskaudset kontrolli. See võib\n"
+#~ "    näiteks tähendada, et te kontrollisite võtme sõrmejälge ja "
 #~ "kontrollisite\n"
-#~ "    võtme kasutaja ID foto ID vastu.\n"
+#~ "    võtme kasutaja ID foto ID vastu.\n"
 #~ "\n"
-#~ "\"3\" tähendab, et te teostasite võtme põhjalikku kontrolli. See võib "
-#~ "näiteks\n"
-#~ "    tähendada, et võrdlesite võtme sõrmejälge võrme omanikuga otse "
+#~ "\"3\" tähendab, et te teostasite võtme põhjalikku kontrolli. See võib "
+#~ "näiteks\n"
+#~ "    tähendada, et võrdlesite võtme sõrmejälge võrme omanikuga otse "
 #~ "suheldes\n"
-#~ "    ja et te kontrollisite raskesti võltsitavast allikast (nt. pass) et\n"
-#~ "    võtme omaniku nimi vastab võtmel näidatud kasutaja IDle ja te "
+#~ "    ja et te kontrollisite raskesti võltsitavast allikast (nt. pass) et\n"
+#~ "    võtme omaniku nimi vastab võtmel näidatud kasutaja IDle ja te "
 #~ "kontrol-\n"
-#~ "    lisite, et võtmel näidatud e-posti aadress kuulub võtme omanikule.\n"
+#~ "    lisite, et võtmel näidatud e-posti aadress kuulub võtme omanikule.\n"
 #~ "\n"
-#~ "pange tähele, et näited tasemete 2 ja 3 juures on *ainult* näited. "
-#~ "Sõltub\n"
-#~ "ainult teist, milline on \"pealiskaudse\" ja \"põhjaliku\" kontrolli "
-#~ "tähendus,\n"
-#~ "kui te allkirjastate teisi võtmeid.\n"
+#~ "pange tähele, et näited tasemete 2 ja 3 juures on *ainult* näited. "
+#~ "Sõltub\n"
+#~ "ainult teist, milline on \"pealiskaudse\" ja \"põhjaliku\" kontrolli "
+#~ "tähendus,\n"
+#~ "kui te allkirjastate teisi võtmeid.\n"
 #~ "\n"
-#~ "Kui te ei tea õiget vastust, vastake \"0\"."
+#~ "Kui te ei tea õiget vastust, vastake \"0\"."
 
 #, fuzzy
 #~ msgid "Answer \"yes\" if you want to sign ALL the user IDs"
-#~ msgstr "Kui te soovite allkirjastada KÕIK kasutaja IDd, vastake \"jah\""
+#~ msgstr "Kui te soovite allkirjastada KÕIK kasutaja IDd, vastake \"jah\""
 
 #~ msgid ""
 #~ "Answer \"yes\" if you really want to delete this user ID.\n"
 #~ "All certificates are then also lost!"
 #~ msgstr ""
-#~ "Kui te tõesti soovite seda kasutaja IDd kustutada, vastake \"jah\".\n"
+#~ "Kui te tõesti soovite seda kasutaja IDd kustutada, vastake \"jah\".\n"
 #~ "Sertifikaadid kustutatakse samuti!"
 
 #~ msgid "Answer \"yes\" if it is okay to delete the subkey"
-#~ msgstr "Kui selle alamvõtme võib kustutada, vastake \"jah\""
+#~ msgstr "Kui selle alamvõtme võib kustutada, vastake \"jah\""
 
 #~ msgid ""
 #~ "This is a valid signature on the key; you normally don't want\n"
 #~ "to delete this signature because it may be important to establish a\n"
 #~ "trust connection to the key or another key certified by this key."
 #~ msgstr ""
-#~ "See on võtme kehtiv allkiri; tavaliselt seda ei soovita kustutada,\n"
-#~ "kuna see allkiri võib olla vajalik, et kirjeldada antud võtme või\n"
-#~ "antud võtmega sertifitseeritud teise võtme usaldatavust."
+#~ "See on võtme kehtiv allkiri; tavaliselt seda ei soovita kustutada,\n"
+#~ "kuna see allkiri võib olla vajalik, et kirjeldada antud võtme või\n"
+#~ "antud võtmega sertifitseeritud teise võtme usaldatavust."
 
 #~ msgid ""
 #~ "This signature can't be checked because you don't have the\n"
@@ -9460,15 +9538,15 @@ msgstr ""
 #~ "know which key was used because this signing key might establish\n"
 #~ "a trust connection through another already certified key."
 #~ msgstr ""
-#~ "Seda allkirja ei saa kontrollida, kuna puudub allkirjale vastav võti.\n"
-#~ "Te peaksite peatama kustutamise, kuni on teada, millist võtit see\n"
-#~ "kasutab, sest see võti võib moodustada usaldussuhte läbi mõne juba\n"
-#~ "sertifitseeritud võtme."
+#~ "Seda allkirja ei saa kontrollida, kuna puudub allkirjale vastav võti.\n"
+#~ "Te peaksite peatama kustutamise, kuni on teada, millist võtit see\n"
+#~ "kasutab, sest see võti võib moodustada usaldussuhte läbi mõne juba\n"
+#~ "sertifitseeritud võtme."
 
 #~ msgid ""
 #~ "The signature is not valid.  It does make sense to remove it from\n"
 #~ "your keyring."
-#~ msgstr "Allkiri ei ole kehtiv. Oleks mõistlik see võtmehoidlast kustutada."
+#~ msgstr "Allkiri ei ole kehtiv. Oleks mõistlik see võtmehoidlast kustutada."
 
 #~ msgid ""
 #~ "This is a signature which binds the user ID to the key. It is\n"
@@ -9477,22 +9555,22 @@ msgstr ""
 #~ "only if this self-signature is for some reason not valid and\n"
 #~ "a second one is available."
 #~ msgstr ""
-#~ "See allkiri seob kasutaja ID võtmega. Sellist allkirja ei ole\n"
-#~ "üldiselt soovitatav eemaldada. Peale selle kustutamist ei pruugi\n"
-#~ "GnuPG enam olla võimeline seda võtit leidma. Kustutada võiks\n"
-#~ "vaid siis, kui see allkiri ei ole miskipärast kehtiv ja on\n"
-#~ "olemas ka teine allkiri, mis kasutajat võtmega seob."
+#~ "See allkiri seob kasutaja ID võtmega. Sellist allkirja ei ole\n"
+#~ "üldiselt soovitatav eemaldada. Peale selle kustutamist ei pruugi\n"
+#~ "GnuPG enam olla võimeline seda võtit leidma. Kustutada võiks\n"
+#~ "vaid siis, kui see allkiri ei ole miskipärast kehtiv ja on\n"
+#~ "olemas ka teine allkiri, mis kasutajat võtmega seob."
 
 #~ msgid ""
 #~ "Change the preferences of all user IDs (or just of the selected ones)\n"
 #~ "to the current list of preferences.  The timestamp of all affected\n"
 #~ "self-signatures will be advanced by one second.\n"
 #~ msgstr ""
-#~ "Muuda kõikide kasutaja ID-de seaded (või ainult valitud)\n"
-#~ "vastavaks hetkel määratud seadetele. Kõikide asjasse puutuvate\n"
-#~ "ise loodud allkirjade ajatempleid suurendatakse ühe sekundi võrra.\n"
+#~ "Muuda kõikide kasutaja ID-de seaded (või ainult valitud)\n"
+#~ "vastavaks hetkel määratud seadetele. Kõikide asjasse puutuvate\n"
+#~ "ise loodud allkirjade ajatempleid suurendatakse ühe sekundi võrra.\n"
 
-#~ msgid "Please enter the passhrase; this is a secret sentence \n"
+#~ msgid "Please enter the passphrase; this is a secret sentence \n"
 #~ msgstr "Palun sisestage parool; see on salajane tekst \n"
 
 #~ msgid ""
@@ -9503,7 +9581,7 @@ msgstr ""
 #~ msgstr "Sisestage palun failinimi, mida allkirjastada"
 
 #~ msgid "Answer \"yes\" if it is okay to overwrite the file"
-#~ msgstr "Vastake \"jah\", kui faili võib üle kirjutada"
+#~ msgstr "Vastake \"jah\", kui faili võib üle kirjutada"
 
 #~ msgid ""
 #~ "Please enter a new filename. If you just hit RETURN the default\n"
@@ -9526,18 +9604,18 @@ msgstr ""
 #~ "      Use this to state that the user ID should not longer be used;\n"
 #~ "      this is normally used to mark an email address invalid.\n"
 #~ msgstr ""
-#~ "Te peate määrama sertifitseerimise põhjuse. Sõltuvalt kontekstist on\n"
-#~ "teil võimalus valida üks järgnevaist:\n"
-#~ "  \"Võti on kompromiteeritud\"\n"
-#~ "      Kasutage seda, kui teil on põhjust uskuda, et autoriseerimata\n"
-#~ "      isikud on saanud juurdepääsu teie salajasele võtmele.\n"
-#~ "  \"Võti on asendatud\"\n"
-#~ "      Kasutage seda, kui te olete selle võtme asendanud uuemaga.\n"
-#~ "  \"Võti ei ole enam kasutusel\"\n"
-#~ "      Kasutage seda, kui te ei kasuta enam seda võtit.\n"
+#~ "Te peate määrama sertifitseerimise põhjuse. Sõltuvalt kontekstist on\n"
+#~ "teil võimalus valida üks järgnevaist:\n"
+#~ "  \"Võti on kompromiteeritud\"\n"
+#~ "      Kasutage seda, kui teil on põhjust uskuda, et autoriseerimata\n"
+#~ "      isikud on saanud juurdepääsu teie salajasele võtmele.\n"
+#~ "  \"Võti on asendatud\"\n"
+#~ "      Kasutage seda, kui te olete selle võtme asendanud uuemaga.\n"
+#~ "  \"Võti ei ole enam kasutusel\"\n"
+#~ "      Kasutage seda, kui te ei kasuta enam seda võtit.\n"
 #~ "  \"Kasutaja ID ei ole enam kehtiv\"\n"
-#~ "      Kasutage seda märkimaks, et konkreetset kasutaja ID ei peaks enam\n"
-#~ "      kasutama; seda kasutatakse tavaliselt märkimaks vigast e-posti "
+#~ "      Kasutage seda märkimaks, et konkreetset kasutaja ID ei peaks enam\n"
+#~ "      kasutama; seda kasutatakse tavaliselt märkimaks vigast e-posti "
 #~ "aadressi.\n"
 
 #~ msgid ""
@@ -9545,22 +9623,22 @@ msgstr ""
 #~ "revocation certificate.  Please keep this text concise.\n"
 #~ "An empty line ends the text.\n"
 #~ msgstr ""
-#~ "Kui te soovite, võite nüüd sisestada põhjenduse, miks te\n"
-#~ "soovite seda tühistamise sertifikaati esitada. Palun kirjutage\n"
-#~ "lühidalt. Tühi rida lõpetab teksti.\n"
+#~ "Kui te soovite, võite nüüd sisestada põhjenduse, miks te\n"
+#~ "soovite seda tühistamise sertifikaati esitada. Palun kirjutage\n"
+#~ "lühidalt. Tühi rida lõpetab teksti.\n"
 
 #~ msgid "can't put notation data into v3 (PGP 2.x style) signatures\n"
 #~ msgstr "noteerimise infot ei saa v3 (PGP 2.x stiilis) allkirja lisada\n"
 
 #~ msgid "can't put notation data into v3 (PGP 2.x style) key signatures\n"
 #~ msgstr ""
-#~ "noteerimise infot ei saa v3 (PGP 2.x stiilis) võtme allkirja lisada\n"
+#~ "noteerimise infot ei saa v3 (PGP 2.x stiilis) võtme allkirja lisada\n"
 
 #~ msgid "can't put a policy URL into v3 (PGP 2.x style) signatures\n"
 #~ msgstr "poliisi URLi ei saa v3 (PGP 2.x) allkirjadesse panna\n"
 
 #~ msgid "can't put a policy URL into v3 key (PGP 2.x style) signatures\n"
-#~ msgstr "poliisi URLi ei saa v3 võtme (PGP 2.x) allkirjadesse panna\n"
+#~ msgstr "poliisi URLi ei saa v3 võtme (PGP 2.x) allkirjadesse panna\n"
 
 #, fuzzy
 #~ msgid "shelll"
@@ -9577,11 +9655,11 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "please use the script \"%s\" to generate a new key\n"
-#~ msgstr "Palun valige, millist võtmetüüpi te soovite:\n"
+#~ msgstr "Palun valige, millist võtmetüüpi te soovite:\n"
 
 #, fuzzy
 #~ msgid "cipher extension `%s' not loaded due to unsafe permissions\n"
-#~ msgstr "ebaturvaliste õiguste tõttu ei laetud ¨ifri laiendust \"%s\"\n"
+#~ msgstr "ebaturvaliste õiguste tõttu ei laetud šifri laiendust \"%s\"\n"
 
 #, fuzzy
 #~ msgid ".\n"
@@ -9592,45 +9670,45 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "can't query passphrase in batch mode\n"
-#~ msgstr "pakettmoodis ei saa parooli küsida\n"
+#~ msgstr "pakettmoodis ei saa parooli küsida\n"
 
 #~ msgid "Repeat passphrase: "
 #~ msgstr "Korrake parooli: "
 
 #~ msgid "-k[v][v][v][c] [user-id] [keyring]"
-#~ msgstr "-k[v][v][v][c] [kasutaja-id] [võtmehoidla]"
+#~ msgstr "-k[v][v][v][c] [kasutaja-id] [võtmehoidla]"
 
 #, fuzzy
 #~ msgid "can't gen prime with pbits=%u qbits=%u\n"
-#~ msgstr "vähem kui %d bitiga ei saa algarvu genereerida\n"
+#~ msgstr "vähem kui %d bitiga ei saa algarvu genereerida\n"
 
 #~ msgid "can't generate a prime with less than %d bits\n"
-#~ msgstr "vähem kui %d bitiga ei saa algarvu genereerida\n"
+#~ msgstr "vähem kui %d bitiga ei saa algarvu genereerida\n"
 
 #~ msgid "no entropy gathering module detected\n"
 #~ msgstr "entroopia kogumise moodul puudub\n"
 
 #, fuzzy
 #~ msgid "can't lock `%s': %s\n"
-#~ msgstr "`%s' ei õnnestu avada\n"
+#~ msgstr "`%s' ei õnnestu avada\n"
 
 #~ msgid "`%s' is not a regular file - ignored\n"
 #~ msgstr "`%s' ei ole tavaline fail - ignoreerin\n"
 
 #~ msgid "note: random_seed file is empty\n"
-#~ msgstr "märkus: random_seed fail on tühi\n"
+#~ msgstr "märkus: random_seed fail on tühi\n"
 
 #~ msgid "can't read `%s': %s\n"
-#~ msgstr "`%s' ei õnnestu lugeda: %s\n"
+#~ msgstr "`%s' ei õnnestu lugeda: %s\n"
 
 #~ msgid "note: random_seed file not updated\n"
-#~ msgstr "märkus: random_seed faili ei uuendatud\n"
+#~ msgstr "märkus: random_seed faili ei uuendatud\n"
 
 #~ msgid "can't write `%s': %s\n"
-#~ msgstr "`%s' ei õnnestu kirjutada: %s\n"
+#~ msgstr "`%s' ei õnnestu kirjutada: %s\n"
 
 #~ msgid "can't close `%s': %s\n"
-#~ msgstr "`%s' ei õnnestu sulgeda: %s\n"
+#~ msgstr "`%s' ei õnnestu sulgeda: %s\n"
 
 #~ msgid "WARNING: using insecure random number generator!!\n"
 #~ msgstr "HOIATUS: kasutan ebaturvalist juhuarvude generaatorit!!\n"
@@ -9642,10 +9720,10 @@ msgstr ""
 #~ "DON'T USE ANY DATA GENERATED BY THIS PROGRAM!!\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Juhuarvude generaator on ainult tühi kest, et programmid\n"
-#~ "käiks - see EI OLE tugev juhuarvude generaator!\n"
+#~ "Juhuarvude generaator on ainult tühi kest, et programmid\n"
+#~ "käiks - see EI OLE tugev juhuarvude generaator!\n"
 #~ "\n"
-#~ "ÄRGE KASUTAGE SELLE PROGRAMMI POOLT GENEREERITUD ANDMEID!!\n"
+#~ "ÄRGE KASUTAGE SELLE PROGRAMMI POOLT GENEREERITUD ANDMEID!!\n"
 #~ "\n"
 
 #~ msgid ""
@@ -9653,9 +9731,9 @@ msgstr ""
 #~ "keep you from getting bored, because it will improve the quality\n"
 #~ "of the entropy.\n"
 #~ msgstr ""
-#~ "Palun oodake, kogutakse entroopiat. Igavuse vältimiseks võite teha "
+#~ "Palun oodake, kogutakse entroopiat. Igavuse vältimiseks võite teha "
 #~ "arvutiga\n"
-#~ "mingit tööd, see tõstab ka entroopia kvaliteeti.\n"
+#~ "mingit tööd, see tõstab ka entroopia kvaliteeti.\n"
 
 #~ msgid ""
 #~ "\n"
@@ -9663,12 +9741,12 @@ msgstr ""
 #~ "the OS a chance to collect more entropy! (Need %d more bytes)\n"
 #~ msgstr ""
 #~ "\n"
-#~ "Juhuslikke baite ei ole piisavalt. Palun tehke arvutiga muid töid,\n"
-#~ "et anda masinal võimalust koguda enam entroopiat! (Vajatakse %d baiti)\n"
+#~ "Juhuslikke baite ei ole piisavalt. Palun tehke arvutiga muid töid,\n"
+#~ "et anda masinal võimalust koguda enam entroopiat! (Vajatakse %d baiti)\n"
 
 #, fuzzy
 #~ msgid "card reader not available\n"
-#~ msgstr "salajane võti ei ole kättesaadav"
+#~ msgstr "salajane võti ei ole kättesaadav"
 
 #, fuzzy
 #~ msgid "NOTE: %s is not available in this version\n"
@@ -9676,22 +9754,22 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "         algorithms on these user IDs:\n"
-#~ msgstr "Te olete allkirjastanud järgnevad kasutaja IDd:\n"
+#~ msgstr "Te olete allkirjastanud järgnevad kasutaja IDd:\n"
 
 #~ msgid "general error"
-#~ msgstr "üldine viga"
+#~ msgstr "üldine viga"
 
 #~ msgid "unknown packet type"
-#~ msgstr "tundmatu paketi tüüp"
+#~ msgstr "tundmatu paketi tüüp"
 
 #~ msgid "unknown digest algorithm"
-#~ msgstr "tundmatu lühendi algoritm"
+#~ msgstr "tundmatu lühendi algoritm"
 
 #~ msgid "bad public key"
-#~ msgstr "halb avalik võti"
+#~ msgstr "halb avalik võti"
 
 #~ msgid "bad secret key"
-#~ msgstr "halb salajane võti"
+#~ msgstr "halb salajane võti"
 
 #~ msgid "bad signature"
 #~ msgstr "halb allkiri"
@@ -9700,7 +9778,7 @@ msgstr ""
 #~ msgstr "kontrollsumma viga"
 
 #~ msgid "unknown cipher algorithm"
-#~ msgstr "tundmatu ¨ifri algoritm"
+#~ msgstr "tundmatu šifri algoritm"
 
 #~ msgid "invalid packet"
 #~ msgstr "vigane pakett"
@@ -9709,13 +9787,13 @@ msgstr ""
 #~ msgstr "sellist kasutaja id pole"
 
 #~ msgid "secret key not available"
-#~ msgstr "salajane võti ei ole kättesaadav"
+#~ msgstr "salajane võti ei ole kättesaadav"
 
 #~ msgid "wrong secret key used"
-#~ msgstr "kasutati valet salajast võtit"
+#~ msgstr "kasutati valet salajast võtit"
 
 #~ msgid "bad key"
-#~ msgstr "halb võti"
+#~ msgstr "halb võti"
 
 #~ msgid "file write error"
 #~ msgstr "viga faili kirjutamisel"
@@ -9730,10 +9808,10 @@ msgstr ""
 #~ msgstr "viga faili loomisel"
 
 #~ msgid "unimplemented pubkey algorithm"
-#~ msgstr "realiseerimata avaliku võtme algoritm"
+#~ msgstr "realiseerimata avaliku võtme algoritm"
 
 #~ msgid "unimplemented cipher algorithm"
-#~ msgstr "realiseerimata ¨ifri algoritm"
+#~ msgstr "realiseerimata šifri algoritm"
 
 #~ msgid "unknown signature class"
 #~ msgstr "tundmatu allkirja klass"
@@ -9745,7 +9823,7 @@ msgstr ""
 #~ msgstr "ressursi limiit"
 
 #~ msgid "invalid keyring"
-#~ msgstr "vigane võtmehoidla"
+#~ msgstr "vigane võtmehoidla"
 
 #~ msgid "malformed user id"
 #~ msgstr "vigane kasutaja id"
@@ -9754,7 +9832,7 @@ msgstr ""
 #~ msgstr "viga faili sulgemisel"
 
 #~ msgid "file rename error"
-#~ msgstr "viga faili ümber nimetamisel"
+#~ msgstr "viga faili ümber nimetamisel"
 
 #~ msgid "file delete error"
 #~ msgstr "viga faili kustutamisel"
@@ -9766,35 +9844,32 @@ msgstr ""
 #~ msgstr "ajatemplite konflikt"
 
 #~ msgid "unusable pubkey algorithm"
-#~ msgstr "mittekasutatav avaliku võtme algoritm"
+#~ msgstr "mittekasutatav avaliku võtme algoritm"
 
 #~ msgid "file exists"
 #~ msgstr "fail on olemas"
 
 #~ msgid "weak key"
-#~ msgstr "nõrk võti"
+#~ msgstr "nõrk võti"
 
 #~ msgid "bad URI"
 #~ msgstr "halb URI"
 
-#~ msgid "network error"
-#~ msgstr "võrgu viga"
-
 #~ msgid "not processed"
-#~ msgstr "ei töödeldud"
+#~ msgstr "ei töödeldud"
 
 #~ msgid "unusable public key"
-#~ msgstr "mittekasutatav avalik võti"
+#~ msgstr "mittekasutatav avalik võti"
 
 #~ msgid "unusable secret key"
-#~ msgstr "mittekasutatav salajane võti"
+#~ msgstr "mittekasutatav salajane võti"
 
 #~ msgid "keyserver error"
-#~ msgstr "võtmeserveri viga"
+#~ msgstr "võtmeserveri viga"
 
 #, fuzzy
 #~ msgid "no card"
-#~ msgstr "krüptimata"
+#~ msgstr "krüptimata"
 
 #, fuzzy
 #~ msgid "no data"
@@ -9804,10 +9879,10 @@ msgstr ""
 #~ msgstr "... see on viga (%s:%d:%s)\n"
 
 #~ msgid "operation is not possible without initialized secure memory\n"
-#~ msgstr "initsialiseerimata turvalise mäluta ei ole operatsioon võimalik\n"
+#~ msgstr "initsialiseerimata turvalise mäluta ei ole operatsioon võimalik\n"
 
 #~ msgid "(you may have used the wrong program for this task)\n"
-#~ msgstr "(te kasutasite vahest selle töö jaoks valet programmi)\n"
+#~ msgstr "(te kasutasite vahest selle töö jaoks valet programmi)\n"
 
 #~ msgid ""
 #~ "please see http://www.gnupg.org/why-not-idea.html for more information\n"
@@ -9815,11 +9890,11 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "all export-clean-* options from above"
-#~ msgstr "loe võtmed failist"
+#~ msgstr "loe võtmed failist"
 
 #, fuzzy
 #~ msgid "all import-clean-* options from above"
-#~ msgstr "loe võtmed failist"
+#~ msgstr "loe võtmed failist"
 
 #, fuzzy
 #~ msgid "expired: %s)"
@@ -9827,45 +9902,45 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "key %s: expired signature from key %s - skipped\n"
-#~ msgstr "võti %08lX: ootamatu allkirja klass (0x%02x) - jätan vahele\n"
+#~ msgstr "võti %08lX: ootamatu allkirja klass (0x%02x) - jätan vahele\n"
 
 #, fuzzy
 #~ msgid "Unable to clean `%s'\n"
-#~ msgstr "ei Õnnestu käivitada %s \"%s\": %s\n"
+#~ msgstr "ei Õnnestu käivitada %s \"%s\": %s\n"
 
 #, fuzzy
 #~ msgid "No user IDs are removable.\n"
-#~ msgstr "kasutaja ID \"%s\" on juba tühistatud\n"
+#~ msgstr "kasutaja ID \"%s\" on juba tühistatud\n"
 
 #~ msgid "bad passphrase or unknown cipher algorithm (%d)\n"
-#~ msgstr "halb parool või tundmatu ¨ifri algoritm (%d)\n"
+#~ msgstr "halb parool või tundmatu šifri algoritm (%d)\n"
 
 #~ msgid "can't set client pid for the agent\n"
-#~ msgstr "agendile ei õnnestu seada kliendi pid\n"
+#~ msgstr "agendile ei õnnestu seada kliendi pid\n"
 
 #~ msgid "can't get server read FD for the agent\n"
-#~ msgstr "agendiga suhtlemiseks ei õnnestu saada lugemise FD\n"
+#~ msgstr "agendiga suhtlemiseks ei õnnestu saada lugemise FD\n"
 
 #~ msgid "can't get server write FD for the agent\n"
-#~ msgstr "agendiga suhtlemiseks ei õnnestu saada kirjutamise FD\n"
+#~ msgstr "agendiga suhtlemiseks ei õnnestu saada kirjutamise FD\n"
 
 #~ msgid "select secondary key N"
-#~ msgstr "vali sekundaarne võti N"
+#~ msgstr "vali sekundaarne võti N"
 
 #~ msgid "list signatures"
-#~ msgstr "näita allkirju"
+#~ msgstr "näita allkirju"
 
 #~ msgid "sign the key"
-#~ msgstr "allkirjasta võti"
+#~ msgstr "allkirjasta võti"
 
 #~ msgid "add a secondary key"
-#~ msgstr "lisa sekundaarne võti"
+#~ msgstr "lisa sekundaarne võti"
 
 #~ msgid "delete signatures"
 #~ msgstr "kustuta allkirjad"
 
 #~ msgid "change the expire date"
-#~ msgstr "muuda aegumise kuupäeva"
+#~ msgstr "muuda aegumise kuupäeva"
 
 #~ msgid "set preference list"
 #~ msgstr "sea eelistuste nimekiri"
@@ -9874,7 +9949,7 @@ msgstr ""
 #~ msgstr "uuendatud eelistused"
 
 #~ msgid "No secondary key with index %d\n"
-#~ msgstr "Sekundaarne võti numbriga %d puudub\n"
+#~ msgstr "Sekundaarne võti numbriga %d puudub\n"
 
 #~ msgid "--nrsign-key user-id"
 #~ msgstr "--nrsign-key kasutaja-id"
@@ -9883,10 +9958,10 @@ msgstr ""
 #~ msgstr "--nrlsign-key kasutaja-id"
 
 #~ msgid "sign the key non-revocably"
-#~ msgstr "allkirjasta võti kehtetuks mitte-tunnistatavana"
+#~ msgstr "allkirjasta võti kehtetuks mitte-tunnistatavana"
 
 #~ msgid "sign the key locally and non-revocably"
-#~ msgstr "allkirjasta võti lokaalselt ja kehtetuks mitte-tunnistatavana"
+#~ msgstr "allkirjasta võti lokaalselt ja kehtetuks mitte-tunnistatavana"
 
 #~ msgid "q"
 #~ msgstr "v"
@@ -9918,7 +9993,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "generate"
-#~ msgstr "üldine viga"
+#~ msgstr "üldine viga"
 
 #~ msgid "passwd"
 #~ msgstr "passwd"
@@ -9989,7 +10064,7 @@ msgstr ""
 #~ msgstr "primaarne"
 
 #~ msgid "toggle"
-#~ msgstr "lülita"
+#~ msgstr "lülita"
 
 #~ msgid "t"
 #~ msgstr "t"
@@ -10008,7 +10083,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "keyserver"
-#~ msgstr "võtmeserveri viga"
+#~ msgstr "võtmeserveri viga"
 
 #~ msgid "trust"
 #~ msgstr "trust"
@@ -10032,7 +10107,7 @@ msgstr ""
 #~ msgstr "showphoto"
 
 #~ msgid "digest algorithm `%s' is read-only in this release\n"
-#~ msgstr "sõnumilühendi algoritm `%s' ei ole selles versioonis muudetav\n"
+#~ msgstr "sõnumilühendi algoritm `%s' ei ole selles versioonis muudetav\n"
 
 #~ msgid ""
 #~ "About to generate a new %s keypair.\n"
@@ -10040,40 +10115,40 @@ msgstr ""
 #~ "              default keysize is 1024 bits\n"
 #~ "    highest suggested keysize is 2048 bits\n"
 #~ msgstr ""
-#~ "Enne uue %s võtmepaari genereerimist.\n"
-#~ "           minimaalne võtmepikkus on  768 bitti\n"
-#~ "            vaikimisi võtmepikkus on 1024 bitti\n"
-#~ "    suurim soovitatav võtmepikkus on 2048 bitti\n"
+#~ "Enne uue %s võtmepaari genereerimist.\n"
+#~ "           minimaalne võtmepikkus on  768 bitti\n"
+#~ "            vaikimisi võtmepikkus on 1024 bitti\n"
+#~ "    suurim soovitatav võtmepikkus on 2048 bitti\n"
 
 #~ msgid "DSA only allows keysizes from 512 to 1024\n"
-#~ msgstr "DSA lubab võtmepikkuseid ainult vahemikus 512 kuni 1024\n"
+#~ msgstr "DSA lubab võtmepikkuseid ainult vahemikus 512 kuni 1024\n"
 
 #~ msgid "keysize too small; 1024 is smallest value allowed for RSA.\n"
-#~ msgstr "võtmepikkus on liiga väike; RSA korral on väikseim väärtus 1024.\n"
+#~ msgstr "võtmepikkus on liiga väike; RSA korral on väikseim väärtus 1024.\n"
 
 #~ msgid "keysize too small; 768 is smallest value allowed.\n"
-#~ msgstr "võtmepikkus on liiga väike; väikseim lubatud väärtus on 768.\n"
+#~ msgstr "võtmepikkus on liiga väike; väikseim lubatud väärtus on 768.\n"
 
 #~ msgid "keysize too large; %d is largest value allowed.\n"
-#~ msgstr "võtmepikkus on liiga suur; suurim lubatud väärtus on %d.\n"
+#~ msgstr "võtmepikkus on liiga suur; suurim lubatud väärtus on %d.\n"
 
 #~ msgid ""
 #~ "Keysizes larger than 2048 are not suggested because\n"
 #~ "computations take REALLY long!\n"
 #~ msgstr ""
-#~ "Suuremad võtmepikkused kui 2048 ei ole soovitatavad, kuna\n"
-#~ "arvutused võtavad VÄGA palju aega!\n"
+#~ "Suuremad võtmepikkused kui 2048 ei ole soovitatavad, kuna\n"
+#~ "arvutused võtavad VÄGA palju aega!\n"
 
 #, fuzzy
 #~ msgid "Are you sure that you want this keysize? (y/N) "
-#~ msgstr "Olete kindel, et soovite sellist võtmepikkust? "
+#~ msgstr "Olete kindel, et soovite sellist võtmepikkust? "
 
 #~ msgid ""
 #~ "Okay, but keep in mind that your monitor and keyboard radiation is also "
 #~ "very vulnerable to attacks!\n"
 #~ msgstr ""
 #~ "Olgu, kuid pidage meeles, et ka teie monitor ja klaviatuur on samuti\n"
-#~ "võimalikud ründeobjektid!\n"
+#~ "võimalikud ründeobjektid!\n"
 
 #~ msgid "Experimental algorithms should not be used!\n"
 #~ msgstr "Eksperimentaalseid algoritme ei peaks kasutama!\n"
@@ -10081,26 +10156,26 @@ msgstr ""
 #~ msgid ""
 #~ "this cipher algorithm is deprecated; please use a more standard one!\n"
 #~ msgstr ""
-#~ "see ¨ifri algoritm ei ole soovitatav; kasutage palun mõnd standardsemat!\n"
+#~ "see šifri algoritm ei ole soovitatav; kasutage palun mõnd standardsemat!\n"
 
 #~ msgid "sorry, can't do this in batch mode\n"
 #~ msgstr "vabandust, seda ei saa pakettmoodis teha\n"
 
 #, fuzzy
 #~ msgid "can't open file `%s': %s\n"
-#~ msgstr "faili ei õnnestu avada: %s\n"
+#~ msgstr "faili ei õnnestu avada: %s\n"
 
 #~ msgid "key %08lX: key has been revoked!\n"
-#~ msgstr "võti %08lX: võti on tühistatud!\n"
+#~ msgstr "võti %08lX: võti on tühistatud!\n"
 
 #~ msgid "key %08lX: subkey has been revoked!\n"
-#~ msgstr "võti %08lX: alamvõti on tühistatud!\n"
+#~ msgstr "võti %08lX: alamvõti on tühistatud!\n"
 
 #~ msgid "%08lX: key has expired\n"
-#~ msgstr "%08lX: võti on aegunud\n"
+#~ msgstr "%08lX: võti on aegunud\n"
 
 #~ msgid "%08lX: We do NOT trust this key\n"
-#~ msgstr "%08lX: Me EI usalda seda võtit\n"
+#~ msgstr "%08lX: Me EI usalda seda võtit\n"
 
 #, fuzzy
 #~ msgid "   (%d) RSA (auth only)\n"
@@ -10108,29 +10183,29 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "   (%d) RSA (sign and auth)\n"
-#~ msgstr "   (%d) RSA (allkirjastamiseks ja krüptimiseks)\n"
+#~ msgstr "   (%d) RSA (allkirjastamiseks ja krüptimiseks)\n"
 
 #, fuzzy
 #~ msgid "   (%d) RSA (encrypt and auth)\n"
-#~ msgstr "   (%d) RSA (ainult krüpteerimiseks)\n"
+#~ msgstr "   (%d) RSA (ainult krüpteerimiseks)\n"
 
 #, fuzzy
 #~ msgid "  (%d) RSA (sign, encrypt and auth)\n"
-#~ msgstr "   (%d) RSA (allkirjastamiseks ja krüptimiseks)\n"
+#~ msgstr "   (%d) RSA (allkirjastamiseks ja krüptimiseks)\n"
 
 #~ msgid "%s: can't open: %s\n"
-#~ msgstr "%s: ei õnnestu avada: %s\n"
+#~ msgstr "%s: ei õnnestu avada: %s\n"
 
 #~ msgid "%s: WARNING: empty file\n"
-#~ msgstr "%s: HOIATUS: tühi fail\n"
+#~ msgstr "%s: HOIATUS: tühi fail\n"
 
 #, fuzzy
 #~ msgid "   (%d) I trust marginally\n"
-#~ msgstr " %d = Usaldan vähesel määral\n"
+#~ msgstr " %d = Usaldan vähesel määral\n"
 
 #, fuzzy
 #~ msgid "   (%d) I trust fully\n"
-#~ msgstr " %d = Usaldan täiesti\n"
+#~ msgstr " %d = Usaldan täiesti\n"
 
 #, fuzzy
 #~ msgid "expires"
@@ -10142,38 +10217,38 @@ msgstr ""
 #~ "locally signed with your key %s at %s\n"
 #~ msgstr ""
 #~ "\"\n"
-#~ "lokaalselt allkirjastatud teie võtmega %08lX %s\n"
+#~ "lokaalselt allkirjastatud teie võtmega %08lX %s\n"
 
 #~ msgid "%s: can't create lock\n"
-#~ msgstr "%s: ei õnnestu luua lukku\n"
+#~ msgstr "%s: ei õnnestu luua lukku\n"
 
 #~ msgid "%s: can't make lock\n"
-#~ msgstr "%s: ei õnnestu seada lukku\n"
+#~ msgstr "%s: ei õnnestu seada lukku\n"
 
 #~ msgid "%s: can't create: %s\n"
-#~ msgstr "%s: ei õnnestu luua: %s\n"
+#~ msgstr "%s: ei õnnestu luua: %s\n"
 
 #~ msgid "If you want to use this revoked key anyway, answer \"yes\"."
 #~ msgstr ""
-#~ "Kui te ikkagi soovite kasutada seda kehtetut võtit, vastake \"jah\"."
+#~ "Kui te ikkagi soovite kasutada seda kehtetut võtit, vastake \"jah\"."
 
 #~ msgid "Unable to open photo \"%s\": %s\n"
-#~ msgstr "Fotot \"%s\" ei õnnestu avada: %s\n"
+#~ msgstr "Fotot \"%s\" ei õnnestu avada: %s\n"
 
 #~ msgid "error: missing colon\n"
 #~ msgstr "viga: puudub koolon\n"
 
 #~ msgid "error: no ownertrust value\n"
-#~ msgstr "viga: usalduse väärtus puudub\n"
+#~ msgstr "viga: usalduse väärtus puudub\n"
 
 #~ msgid " (main key ID %08lX)"
-#~ msgstr " (peamise võtme ID %08lX)"
+#~ msgstr " (peamise võtme ID %08lX)"
 
 #~ msgid "rev! subkey has been revoked: %s\n"
-#~ msgstr "rev! alamvõti on tühistatud: %s\n"
+#~ msgstr "rev! alamvõti on tühistatud: %s\n"
 
 #~ msgid "rev- faked revocation found\n"
-#~ msgstr "rev- leitud võltsitud tühistamine\n"
+#~ msgstr "rev- leitud võltsitud tühistamine\n"
 
 #, fuzzy
 #~ msgid " [expired: %s]"
@@ -10184,34 +10259,34 @@ msgstr ""
 
 #, fuzzy
 #~ msgid " [revoked: %s]"
-#~ msgstr "[tühistatud] "
+#~ msgstr "[tühistatud] "
 
 #~ msgid ""
 #~ "WARNING: digest `%s' is not part of OpenPGP.  Use at your own risk!\n"
 #~ msgstr ""
-#~ "HOIATUS: sõnumilühend `%s' ei ole OpenPGP osa.  Kasutamine omal "
+#~ "HOIATUS: sõnumilühend `%s' ei ole OpenPGP osa.  Kasutamine omal "
 #~ "vastutusel!\n"
 
 #~ msgid "|[files]|encrypt files"
-#~ msgstr "|[failid]|krüpteeri failid"
+#~ msgstr "|[failid]|krüpteeri failid"
 
 #~ msgid "store only"
 #~ msgstr "ainult salvesta"
 
 #~ msgid "|[files]|decrypt files"
-#~ msgstr "|[failid]|dekrüpteeri failid"
+#~ msgstr "|[failid]|dekrüpteeri failid"
 
 #~ msgid "sign a key non-revocably"
-#~ msgstr "allkirjasta võti mitte-tühistatavana"
+#~ msgstr "allkirjasta võti mitte-tühistatavana"
 
 #~ msgid "sign a key locally and non-revocably"
-#~ msgstr "allkirjasta võti lokaalselt ja mitte-tühistatavana"
+#~ msgstr "allkirjasta võti lokaalselt ja mitte-tühistatavana"
 
 #~ msgid "list only the sequence of packets"
-#~ msgstr "näita ainult pakettide järjendeid"
+#~ msgstr "näita ainult pakettide järjendeid"
 
 #~ msgid "export the ownertrust values"
-#~ msgstr "ekspordi usalduse väärtused"
+#~ msgstr "ekspordi usalduse väärtused"
 
 #~ msgid "unattended trust database update"
 #~ msgstr "hooldusvaba usalduse andmebaasi uuendamine"
@@ -10220,22 +10295,22 @@ msgstr ""
 #~ msgstr "paranda vigane usalduse andmebaas"
 
 #~ msgid "De-Armor a file or stdin"
-#~ msgstr "Pakenda fail või standardsisend lahti"
+#~ msgstr "Pakenda fail või standardsisend lahti"
 
 #~ msgid "En-Armor a file or stdin"
-#~ msgstr "Pakenda fail või standardsisend"
+#~ msgstr "Pakenda fail või standardsisend"
 
 #~ msgid "do not force v3 signatures"
-#~ msgstr "ära kasuta v3 allkirju"
+#~ msgstr "ära kasuta v3 allkirju"
 
 #~ msgid "force v4 key signatures"
-#~ msgstr "kasuta v4 võtme allkirju"
+#~ msgstr "kasuta v4 võtme allkirju"
 
 #~ msgid "do not force v4 key signatures"
-#~ msgstr "ära kasuta v3 võtme allkirju"
+#~ msgstr "ära kasuta v3 võtme allkirju"
 
 #~ msgid "never use a MDC for encryption"
-#~ msgstr "krüptimisel ära kasuta kunagi MDC"
+#~ msgstr "krüptimisel ära kasuta kunagi MDC"
 
 #~ msgid "use the gpg-agent"
 #~ msgstr "kasuta gpg-agenti"
@@ -10244,23 +10319,23 @@ msgstr ""
 #~ msgstr "|[fail]|kirjuta olekuinfo faili"
 
 #~ msgid "|KEYID|ultimately trust this key"
-#~ msgstr "|VÕTMEID|usalda seda võtit täielikult"
+#~ msgstr "|VÕTMEID|usalda seda võtit täielikult"
 
 #~ msgid "emulate the mode described in RFC1991"
 #~ msgstr "emuleeri dokumendis RFC1991 kirjeldatud moodi"
 
 #~ msgid "set all packet, cipher and digest options to OpenPGP behavior"
-#~ msgstr "kasuta kõikides tegevustes OpenPGP võtmeid"
+#~ msgstr "kasuta kõikides tegevustes OpenPGP võtmeid"
 
 #~ msgid "set all packet, cipher and digest options to PGP 2.x behavior"
 #~ msgstr ""
-#~ "kasuta kõikide pakettide, ¨iffrite ja lühendi seadeid PGP 2.x moodis"
+#~ "kasuta kõikide pakettide, šiffrite ja lühendi seadeid PGP 2.x moodis"
 
 #~ msgid "|NAME|use message digest algorithm NAME for passphrases"
-#~ msgstr "|NIMI|kasuta paroolidega lühendialgoritmi NIMI"
+#~ msgstr "|NIMI|kasuta paroolidega lühendialgoritmi NIMI"
 
 #~ msgid "throw keyid field of encrypted packets"
-#~ msgstr "ära lisa krüptimisel võtme id"
+#~ msgstr "ära lisa krüptimisel võtme id"
 
 #~ msgid "Show Photo IDs"
 #~ msgstr "Esita foto IDd"
@@ -10269,7 +10344,7 @@ msgstr ""
 #~ msgstr "Ei esita foto IDd"
 
 #~ msgid "Set command line to view Photo IDs"
-#~ msgstr "Sea käsurida foto ID vaatamiseks"
+#~ msgstr "Sea käsurida foto ID vaatamiseks"
 
 #~ msgid "compress algorithm `%s' is read-only in this release\n"
 #~ msgstr "pakkimise algoritm `%s' on selles versioonis ainult lugemiseks\n"
@@ -10281,19 +10356,19 @@ msgstr ""
 #~ "%08lX: It is not sure that this key really belongs to the owner\n"
 #~ "but it is accepted anyway\n"
 #~ msgstr ""
-#~ "%08lX: Ei ole kindel, et see võti tõesti kuulub omanikule,\n"
+#~ "%08lX: Ei ole kindel, et see võti tõesti kuulub omanikule,\n"
 #~ "aktsepteerime seda siiski\n"
 
 #~ msgid "preference %c%lu is not valid\n"
 #~ msgstr "eelistus %c%lu ei ole lubatud\n"
 
 #~ msgid "key %08lX: not a rfc2440 key - skipped\n"
-#~ msgstr "võti %08lX: ei ole rfc2440 võti - jätsin vahele\n"
+#~ msgstr "võti %08lX: ei ole rfc2440 võti - jätsin vahele\n"
 
 #~ msgid ""
 #~ "NOTE: Elgamal primary key detected - this may take some time to import\n"
 #~ msgstr ""
-#~ "MÄRKUS: Tuvastasin Elgamal primaarvõtme - importimine võib võtta mõne "
+#~ "MÄRKUS: Tuvastasin Elgamal primaarvõtme - importimine võib võtta mõne "
 #~ "aja\n"
 
 #~ msgid " (default)"
@@ -10303,53 +10378,53 @@ msgstr ""
 #~ msgstr "%s%c %4u%c/%08lX  loodud: %s aegub: %s"
 
 #~ msgid "can't get key from keyserver: %s\n"
-#~ msgstr "võtmeserverist ei saa võtit: %s\n"
+#~ msgstr "võtmeserverist ei saa võtit: %s\n"
 
 #~ msgid "success sending to `%s' (status=%u)\n"
-#~ msgstr "teate saatmine serverile `%s' õnnestus (olek=%u)\n"
+#~ msgstr "teate saatmine serverile `%s' õnnestus (olek=%u)\n"
 
 #~ msgid "failed sending to `%s': status=%u\n"
-#~ msgstr "teate saatmine serverile `%s' ebaõnnestus: olek=%u\n"
+#~ msgstr "teate saatmine serverile `%s' ebaõnnestus: olek=%u\n"
 
 #~ msgid "this keyserver does not support --search-keys\n"
-#~ msgstr "see võtmeserver ei toeta --search-keys\n"
+#~ msgstr "see võtmeserver ei toeta --search-keys\n"
 
 #~ msgid "can't search keyserver: %s\n"
-#~ msgstr "võtmeserverist ei saa otsida: %s\n"
+#~ msgstr "võtmeserverist ei saa otsida: %s\n"
 
 #~ msgid ""
 #~ "key %08lX: this is a PGP generated ElGamal key which is NOT secure for "
 #~ "signatures!\n"
 #~ msgstr ""
-#~ "võti %08lX: see on PGP genereeritud ElGamal võti ja EI OLE "
+#~ "võti %08lX: see on PGP genereeritud ElGamal võti ja EI OLE "
 #~ "allkirjastamiseks turvaline!\n"
 
 #~ msgid ""
 #~ "key %08lX has been created %lu second in future (time warp or clock "
 #~ "problem)\n"
 #~ msgstr ""
-#~ "võti %08lX loodi %lu sekund tulevikus (ajahüpe või kella probleem)\n"
+#~ "võti %08lX loodi %lu sekund tulevikus (ajahüpe või kella probleem)\n"
 
 #~ msgid ""
 #~ "key %08lX has been created %lu seconds in future (time warp or clock "
 #~ "problem)\n"
 #~ msgstr ""
-#~ "võti %08lX loodi %lu sekundit tulevikus (ajahüpe või kella probleem)\n"
+#~ "võti %08lX loodi %lu sekundit tulevikus (ajahüpe või kella probleem)\n"
 
 #~ msgid "key %08lX marked as ultimately trusted\n"
-#~ msgstr "võti %08lX on märgitud abslouutselt usaldatavaks\n"
+#~ msgstr "võti %08lX on märgitud abslouutselt usaldatavaks\n"
 
 #~ msgid "signature from Elgamal signing key %08lX to %08lX skipped\n"
 #~ msgstr ""
-#~ "jätsin Elgamal allkirjastamise võtme %08lX allkirja %08lX-le vahele\n"
+#~ "jätsin Elgamal allkirjastamise võtme %08lX allkirja %08lX-le vahele\n"
 
 #~ msgid "signature from %08lX to Elgamal signing key %08lX skipped\n"
 #~ msgstr ""
-#~ "jätsin %08lX allkirja Elgamal allkirjastamise võtmele %08lX vahele\n"
+#~ "jätsin %08lX allkirja Elgamal allkirjastamise võtmele %08lX vahele\n"
 
 #~ msgid "checking at depth %d signed=%d ot(-/q/n/m/f/u)=%d/%d/%d/%d/%d/%d\n"
 #~ msgstr ""
-#~ "kontrollin sügavusel %d allkirjastatud=%d ot(-/q/n/m/f/u)=%d/%d/%d/%d/%d/"
+#~ "kontrollin sügavusel %d allkirjastatud=%d ot(-/q/n/m/f/u)=%d/%d/%d/%d/%d/"
 #~ "%d\n"
 
 #~ msgid ""
@@ -10382,30 +10457,30 @@ msgstr ""
 #~ "on oluliselt kiirem ElGamal allkirjade kontrollimisest.\n"
 #~ "\n"
 #~ "ElGamal on algoritm, mida saab kasutada nii allkirjastamisel, kui ka\n"
-#~ "krüptimisel. OpenPGP eristab selle algoritmi kahte varianti: ainult\n"
-#~ "krüptivat ja krüptivat ning allkirjastavat. Algoritm on sama, aga\n"
+#~ "krüptimisel. OpenPGP eristab selle algoritmi kahte varianti: ainult\n"
+#~ "krüptivat ja krüptivat ning allkirjastavat. Algoritm on sama, aga\n"
 #~ "turvaliseks allkirjastamiseks on vaja valida sobivad parameetrid. See\n"
-#~ "programm toetab mõlemat varianti, aga teised OpenPGP realisatsioonid\n"
-#~ "ei pruugi krüptivat ning allkirjastavat võimalust tunda.\n"
+#~ "programm toetab mõlemat varianti, aga teised OpenPGP realisatsioonid\n"
+#~ "ei pruugi krüptivat ning allkirjastavat võimalust tunda.\n"
 #~ "\n"
-#~ "Esimene (primaarne) võti peab alati olema selline, mida saab kasutada\n"
-#~ "allkirjastamisel; see on ka põhjus, miks selles menüüs ei lubata valida\n"
-#~ "ainult krüptivat ElGamal võtit."
+#~ "Esimene (primaarne) võti peab alati olema selline, mida saab kasutada\n"
+#~ "allkirjastamisel; see on ka põhjus, miks selles menüüs ei lubata valida\n"
+#~ "ainult krüptivat ElGamal võtit."
 
 #~ msgid ""
 #~ "Although these keys are defined in RFC2440 they are not suggested\n"
 #~ "because they are not supported by all programs and signatures created\n"
 #~ "with them are quite large and very slow to verify."
 #~ msgstr ""
-#~ "Kuigi need võtmed on kirjeldatud dokumendis RFC2440, ei ole nende\n"
-#~ "kasutamine soovitatav, kuna mitte kõik programmid ei toeta neid\n"
+#~ "Kuigi need võtmed on kirjeldatud dokumendis RFC2440, ei ole nende\n"
+#~ "kasutamine soovitatav, kuna mitte kõik programmid ei toeta neid\n"
 #~ "ja nendega loodud allkirjad on suured ning kontrollimine aeglane."
 
 #~ msgid "%lu keys so far checked (%lu signatures)\n"
-#~ msgstr "seni on kontrollitud %lu võtit (%lu allkirja)\n"
+#~ msgstr "seni on kontrollitud %lu võtit (%lu allkirja)\n"
 
 #~ msgid "key incomplete\n"
-#~ msgstr "mittetäielik võti\n"
+#~ msgstr "mittetäielik võti\n"
 
 #~ msgid "key %08lX incomplete\n"
-#~ msgstr "võti %08lX ei ole täielik\n"
+#~ msgstr "võti %08lX ei ole täielik\n"
index 5002410..d2eefc1 100644 (file)
--- a/po/fi.po
+++ b/po/fi.po
@@ -168,14 +168,6 @@ msgstr "virhe kirjoitettaessa salaiseen avainrenkaaseen \"%s\": %s\n"
 msgid "no suitable card key found: %s\n"
 msgstr "kirjoitettavissa olevaa salaista avainrengasta ei löydy: %s\n"
 
-#, fuzzy, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "avainlohkojen poisto epäonnistui: %s\n"
-
-#, fuzzy, c-format
-msgid "error writing key: %s\n"
-msgstr "virhe kirjoitettaessa avainrenkaaseen \"%s\": %s\n"
-
 #, c-format
 msgid ""
 "An ssh process requested the use of key%%0A  %s%%0A  (%s)%%0ADo you want to "
@@ -331,6 +323,11 @@ msgstr ""
 msgid "run in server mode (foreground)"
 msgstr ""
 
+#, fuzzy
+#| msgid "Key is superseded"
+msgid "run in supervised mode"
+msgstr "Avain on uusittu"
+
 msgid "verbose"
 msgstr "monisanainen"
 
@@ -746,9 +743,9 @@ msgstr "virhe luotaessa salasanaa: %s\n"
 msgid "error forking process: %s\n"
 msgstr "virhe luettaessa tiedostoa \"%s\": %s\n"
 
-#, fuzzy, c-format
-msgid "waiting for processes to terminate failed: %s\n"
-msgstr "päivitys epäonnistui: %s\n"
+#, c-format
+msgid "waiting for process %d to terminate failed: %s\n"
+msgstr ""
 
 #, fuzzy, c-format
 msgid "error running '%s': probably not installed\n"
@@ -763,13 +760,13 @@ msgid "error running '%s': terminated\n"
 msgstr "virhe luettaessa tiedostoa \"%s\": %s\n"
 
 #, fuzzy, c-format
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "päivitys epäonnistui: %s\n"
+
+#, fuzzy, c-format
 msgid "error getting exit code of process %d: %s\n"
 msgstr "virhe kirjoitettaessa salaiseen avainrenkaaseen \"%s\": %s\n"
 
-#, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr ""
-
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to '%s': %s\n"
@@ -791,6 +788,14 @@ msgstr "VAROITUS: omistussuhde kohteessa %s \"%s\" ei ole turvallinen\"\n"
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
 msgstr "VAROITUS: oikeudet kohteessa %s \"%s\" eivät ole turvallisia\"\n"
 
+#, fuzzy, c-format
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "päivitys epäonnistui: %s\n"
+
+#, fuzzy, c-format
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "ascii-koodaaminen epäonnistui: %s\n"
+
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "yes"
 msgstr "kyllä|kylla|joo"
@@ -2204,9 +2209,9 @@ msgstr "näytä mihin avainrenkaaseen tulostettu avain kuuluu"
 msgid "show expiration dates during signature listings"
 msgstr "Salaisesta avainrenkaasta ei löydy vastaavaa allekirjoitusta\n"
 
-#, fuzzy
-msgid "available TOFU policies:\n"
-msgstr "poista avain käytöstä"
+#, fuzzy, c-format
+msgid "valid values for option '%s':\n"
+msgstr "virheelliset tuontivalitsimet\n"
 
 #, fuzzy, c-format
 msgid "unknown TOFU policy '%s'\n"
@@ -2216,6 +2221,10 @@ msgid "(use \"help\" to list choices)\n"
 msgstr ""
 
 #, fuzzy, c-format
+msgid "invalid value for option '%s'\n"
+msgstr "virheelliset tuontivalitsimet\n"
+
+#, fuzzy, c-format
 #| msgid "NOTE: old default options file `%s' ignored\n"
 msgid "Note: old default options file '%s' ignored\n"
 msgstr "HUOM: Vanhat oletusarvoiset asetukset löytyvät tiedostosta \"%s\"\n"
@@ -3010,6 +3019,10 @@ msgid "[self-signature]"
 msgstr "[oma-allekirjoitus]"
 
 #, fuzzy, c-format
+msgid "error allocating memory: %s\n"
+msgstr "virhe luotaessa avainrengasta \"%s\": %s\n"
+
+#, fuzzy, c-format
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
 msgstr "avain %08lX: julkisen avaimen algoritmia ei tueta\n"
 
@@ -5072,6 +5085,21 @@ msgstr "Tämä avain todennäköisesti kuuluu haltijalle\n"
 msgid "This key belongs to us\n"
 msgstr "Tämä on oma avain\n"
 
+#, c-format
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr ""
+
+#, fuzzy
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"Avaimen kuulumista nimetylle käyttäjätunnukselle EI voida varmistaa.\n"
+"Jos *todella*  tiedät mitä olet tekemässä, vastaa seuraavaan\n"
+"kysymykseen kyllä\n"
+"\n"
+
 #, fuzzy
 msgid ""
 "It is NOT certain that the key belongs to the person named\n"
@@ -5741,27 +5769,31 @@ msgid "error updating TOFU database: %s\n"
 msgstr "virhe lähettäessä kohteeseen \"%s\": %s\n"
 
 #, c-format
-msgid "The binding %s is NOT known."
+msgid ""
+"This is the first time the email address \"%s\" is being used with key %s."
 msgstr ""
 
 #, c-format
-msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr ""
+
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error gathering other user IDs: %s\n"
 msgstr "virhe luotaessa salasanaa: %s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr ""
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "näytä avaimet ja käyttäjätunnukset"
 
 #, fuzzy, c-format
 #| msgid "Policy: "
@@ -5782,41 +5814,47 @@ msgstr[1] ""
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr ""
 
+msgid ", "
+msgstr ""
+
 #, fuzzy
 #| msgid "list keys"
 msgid "this key"
 msgstr "näytä avaimet"
 
-#, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
-msgstr[0] ""
-msgstr[1] ""
-
 #, fuzzy, c-format
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
 msgstr[0] "|algo [tiedostot]|tulosta viestien tiivisteet"
 msgstr[1] "|algo [tiedostot]|tulosta viestien tiivisteet"
 
 #, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+msgid " over the past year."
+msgid_plural " over the past %d years."
 msgstr[0] ""
 msgstr[1] ""
 
+msgid " in the past."
+msgstr ""
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5832,6 +5870,16 @@ msgstr ""
 msgid "(G)ood, (A)ccept once, (U)nknown, (R)eject once, (B)ad? "
 msgstr ""
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "resetting keydb: %s\n"
+msgstr "virhe kirjoitettaessa avainrenkaaseen \"%s\": %s\n"
+
 #, fuzzy, c-format
 msgid "error setting TOFU binding's trust level to %s\n"
 msgstr "virhe luettaessa tiedostoa \"%s\": %s\n"
@@ -5879,50 +5927,56 @@ msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
+msgid "%s: "
 msgstr ""
 
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
-msgstr ""
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "%d allekirjoitusta poistettu.\n"
 
 #, fuzzy, c-format
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "|algo [tiedostot]|tulosta viestien tiivisteet"
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
+msgstr[0] "|algo [tiedostot]|tulosta viestien tiivisteet"
+msgstr[1] "|algo [tiedostot]|tulosta viestien tiivisteet"
+
+#, fuzzy, c-format
+#| msgid "encrypted with %lu passphrases\n"
+msgid ", and encrypted %ld messages"
+msgstr "salattu %lu salasanalla\n"
+
+#, fuzzy, c-format
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] "|algo [tiedostot]|tulosta viestien tiivisteet"
+msgstr[1] "|algo [tiedostot]|tulosta viestien tiivisteet"
 
-#, c-format
 msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
-msgstr[0] ""
-msgstr[1] ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
+msgstr ""
 
-#, c-format
-msgid "The most recent message was verified %s ago."
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
 msgstr ""
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
 msgstr ""
 
 #, c-format
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -5932,6 +5986,15 @@ msgstr[1] ""
 msgid "error opening TOFU database: %s\n"
 msgstr "virhe lähettäessä kohteeseen \"%s\": %s\n"
 
+#, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring `%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "virhe kirjoitettaessa julkiseen avainrenkaaseen \"%s\": %s\n"
+
 #, fuzzy, c-format
 #| msgid "`%s' is not a valid long keyID\n"
 msgid "'%s' is not a valid long keyID\n"
@@ -6177,22 +6240,24 @@ msgstr "TrustDB:n alustaminen ei onnistu: %s\n"
 msgid "failed to store the creation date: %s\n"
 msgstr "avainrenkaan välimuistin uudelleenluominen epäonnistui: %s\n"
 
-#, fuzzy, c-format
-msgid "reading public key failed: %s\n"
-msgstr "avainlohkojen poisto epäonnistui: %s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr ""
-
 msgid "response does not contain the RSA modulus\n"
 msgstr ""
 
 msgid "response does not contain the RSA public exponent\n"
 msgstr ""
 
-msgid "response does not contain the EC public point\n"
+#, fuzzy
+#| msgid "remove keys from the public keyring"
+msgid "response does not contain the EC public key\n"
+msgstr "poista avaimet julkisten avainten renkaasta"
+
+msgid "response does not contain the public key data\n"
 msgstr ""
 
+#, fuzzy, c-format
+msgid "reading public key failed: %s\n"
+msgstr "avainlohkojen poisto epäonnistui: %s\n"
+
 #, c-format
 msgid "using default PIN as %s\n"
 msgstr ""
@@ -7822,6 +7887,9 @@ msgstr ""
 msgid "allow sending OCSP requests"
 msgstr ""
 
+msgid "allow online software version check"
+msgstr ""
+
 msgid "inhibit the use of HTTP"
 msgstr ""
 
@@ -8095,10 +8163,6 @@ msgid "'%s' is an invalid LDAP URL\n"
 msgstr ""
 
 #, fuzzy, c-format
-msgid "error allocating memory: %s\n"
-msgstr "virhe luotaessa avainrengasta \"%s\": %s\n"
-
-#, fuzzy, c-format
 msgid "error printing log line: %s\n"
 msgstr "virhe kirjoitettaessa avainrenkaaseen \"%s\": %s\n"
 
@@ -8572,23 +8636,25 @@ msgstr ""
 msgid "Configuration for OCSP"
 msgstr ""
 
-msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr ""
 
-msgid "GPG Agent"
+msgid "Private Keys"
 msgstr ""
 
-msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr ""
 
-msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr ""
 
-msgid "Key Acquirer"
-msgstr ""
+#, fuzzy
+#| msgid "network error"
+msgid "Network"
+msgstr "verkkovirhe"
 
 #, fuzzy
-msgid "PIN and Passphrase Entry"
+msgid "Passphrase Entry"
 msgstr "väärä salasana"
 
 #, fuzzy
@@ -8631,6 +8697,11 @@ msgstr "tuntematon asetus \"%s\"\n"
 msgid "check global configuration file"
 msgstr "tuntematon asetus \"%s\"\n"
 
+#, fuzzy
+#| msgid "update the trust database"
+msgid "query the software version database"
+msgstr "päivitä luottamustietokanta"
+
 msgid "reload all or a given component"
 msgstr ""
 
@@ -8811,6 +8882,20 @@ msgid ""
 "Check a passphrase given on stdin against the patternfile\n"
 msgstr ""
 
+#, fuzzy
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "avainlohkojen poisto epäonnistui: %s\n"
+
+#, fuzzy
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "poista avain käytöstä"
+
+#, fuzzy
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "|algo [tiedostot]|tulosta viestien tiivisteet"
+#~ msgstr[1] "|algo [tiedostot]|tulosta viestien tiivisteet"
+
 #~ msgid "communication problem with gpg-agent\n"
 #~ msgstr "gpg-agentin kanssa yhteysongelma\n"
 
@@ -8885,9 +8970,6 @@ msgstr ""
 #~ msgstr ""
 #~ "havaittiin 1 käyttäjätunnus ilman voimassaolevaa oma-allekirjoitusta\n"
 
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "%d allekirjoitusta poistettu.\n"
-
 #, fuzzy
 #~ msgid "User ID \"%s\": %d signatures removed\n"
 #~ msgstr "Käyttäjätunnus \"%s\" on mitätöity."
@@ -8932,10 +9014,6 @@ msgstr ""
 #~ msgstr "1 väärä allekirjoitus\n"
 
 #, fuzzy
-#~ msgid "renaming '%s' to '%s' failed: %s\n"
-#~ msgstr "ascii-koodaaminen epäonnistui: %s\n"
-
-#, fuzzy
 #~ msgid "%lu keys cached (%lu signatures)\n"
 #~ msgstr "käsiteltiin %lu avainta (%lu allekirjoitusta)\n"
 
@@ -9584,7 +9662,7 @@ msgstr ""
 #~ "nykyiseen luetteloon valinnoista.  Kaikkien muutettujen\n"
 #~ "oma-allekirjoitusten aikaleima siirretään yhdellä sekunnilla eteenpäin.\n"
 
-#~ msgid "Please enter the passhrase; this is a secret sentence \n"
+#~ msgid "Please enter the passphrase; this is a secret sentence \n"
 #~ msgstr "Ole hyvä ja syötä salasana, tämän on salainen lause \n"
 
 #~ msgid ""
@@ -9875,9 +9953,6 @@ msgstr ""
 #~ msgid "bad URI"
 #~ msgstr "URI ei kelpaa"
 
-#~ msgid "network error"
-#~ msgstr "verkkovirhe"
-
 #~ msgid "not processed"
 #~ msgstr "ei käsitelty"
 
index eb7780b..4cb138f 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -161,14 +161,6 @@ msgid "no suitable card key found: %s\n"
 msgstr "aucune clef de carte convenable n'a été trouvée : %s\n"
 
 #, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "échec de dissimulation de la clef : %s\n"
-
-#, c-format
-msgid "error writing key: %s\n"
-msgstr "erreur d'écriture la clef : %s\n"
-
-#, c-format
 msgid ""
 "An ssh process requested the use of key%%0A  %s%%0A  (%s)%%0ADo you want to "
 "allow this?"
@@ -325,6 +317,11 @@ msgstr "exécuter en mode démon (arrière-plan)"
 msgid "run in server mode (foreground)"
 msgstr "exécuter en mode serveur (premier plan)"
 
+#, fuzzy
+#| msgid "run in server mode"
+msgid "run in supervised mode"
+msgstr "exécuter en mode serveur"
+
 msgid "verbose"
 msgstr "bavard"
 
@@ -744,9 +741,8 @@ msgstr "erreur de création d'un flux pour un tube : %s\n"
 msgid "error forking process: %s\n"
 msgstr "erreur de création de processus fils : %s\n"
 
-#, fuzzy, c-format
-#| msgid "waiting for process %d to terminate failed: %s\n"
-msgid "waiting for processes to terminate failed: %s\n"
+#, c-format
+msgid "waiting for process %d to terminate failed: %s\n"
 msgstr "échec d'attente de fin du processus %d : %s\n"
 
 #, c-format
@@ -761,15 +757,16 @@ msgstr "erreur d'exécution de « %s » : code de retour %d\n"
 msgid "error running '%s': terminated\n"
 msgstr "erreur d'exécution de « %s » : terminé\n"
 
+#, fuzzy, c-format
+#| msgid "waiting for process %d to terminate failed: %s\n"
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "échec d'attente de fin du processus %d : %s\n"
+
 #, c-format
 msgid "error getting exit code of process %d: %s\n"
 msgstr "erreur de lecture du code de retour du processus %d : %s\n"
 
 #, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr "échec d'attente de fin du processus %d : %s\n"
-
-#, c-format
 msgid "can't connect to '%s': %s\n"
 msgstr "impossible de se connecter à « %s » : %s\n"
 
@@ -788,6 +785,15 @@ msgstr "Avertissement : le propriétaire de %s n'est pas sûr « %s »\n"
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
 msgstr "Avertissement : les droits de %s ne sont pas sûrs « %s »\n"
 
+#, fuzzy, c-format
+#| msgid "waiting for the agent to come up ... (%ds)\n"
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "attente pour permettre à l'agent d'arriver… (%d s)\n"
+
+#, c-format
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "impossible de renommer « %s » en « %s » : %s\n"
+
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "yes"
 msgstr "oui"
@@ -2142,10 +2148,10 @@ msgstr "montrer le nom du porte-clefs en affichant les clefs"
 msgid "show expiration dates during signature listings"
 msgstr "montrer les dates d'expiration en affichant les signatures"
 
-#, fuzzy
-#| msgid "Available keys:\n"
-msgid "available TOFU policies:\n"
-msgstr "Clefs disponibles :\n"
+#, fuzzy, c-format
+#| msgid "invalid argument for option \"%.50s\"\n"
+msgid "valid values for option '%s':\n"
+msgstr "argument incorrect pour l'option « %.50s »\n"
 
 #, fuzzy, c-format
 #| msgid "unknown option '%s'\n"
@@ -2155,6 +2161,11 @@ msgstr "option « %s » inconnue\n"
 msgid "(use \"help\" to list choices)\n"
 msgstr ""
 
+#, fuzzy, c-format
+#| msgid "invalid argument for option \"%.50s\"\n"
+msgid "invalid value for option '%s'\n"
+msgstr "argument incorrect pour l'option « %.50s »\n"
+
 #, c-format
 msgid "Note: old default options file '%s' ignored\n"
 msgstr "Remarque : l'ancien fichier d'options par défaut « %s » a été ignoré\n"
@@ -2932,6 +2943,10 @@ msgstr "[révocation]"
 msgid "[self-signature]"
 msgstr "[autosignature]"
 
+#, c-format
+msgid "error allocating memory: %s\n"
+msgstr "erreur d'allocation de mémoire : %s\n"
+
 #, fuzzy, c-format
 #| msgid "key %s: unsupported public key algorithm\n"
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
@@ -4945,6 +4960,26 @@ msgstr "Cette clef appartient sans doute à l'utilisateur nommé\n"
 msgid "This key belongs to us\n"
 msgstr "Cette clef nous appartient\n"
 
+#, fuzzy, c-format
+#| msgid "root certificate has now been marked as trusted\n"
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr "le certificat racine a maintenant été marqué de confiance\n"
+
+#, fuzzy
+#| msgid ""
+#| "It is NOT certain that the key belongs to the person named\n"
+#| "in the user ID.  If you *really* know what you are doing,\n"
+#| "you may answer the next question with yes.\n"
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"La clef n'appartient PAS forcément à la personne nommée\n"
+"dans l'identité. Si vous savez *vraiment* ce que vous\n"
+"faites, vous pouvez répondre oui à la prochaine question.\n"
+"\n"
+
 msgid ""
 "It is NOT certain that the key belongs to the person named\n"
 "in the user ID.  If you *really* know what you are doing,\n"
@@ -5649,19 +5684,21 @@ msgid "error updating TOFU database: %s\n"
 msgstr "erreur d'envoi de données : %s\n"
 
 #, c-format
-msgid "The binding %s is NOT known."
+msgid ""
+"This is the first time the email address \"%s\" is being used with key %s."
 msgstr ""
 
 #, c-format
-msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr ""
+
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
 
 #, fuzzy, c-format
@@ -5669,8 +5706,10 @@ msgstr ""
 msgid "error gathering other user IDs: %s\n"
 msgstr "erreur de lecture de l'identifiant de répondeur : %s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr ""
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "afficher la clef et les identités"
 
 #, fuzzy, c-format
 #| msgid "validity: %s"
@@ -5692,42 +5731,48 @@ msgstr[1] ""
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr ""
 
+msgid ", "
+msgstr ""
+
 #, fuzzy
 #| msgid "list keys"
 msgid "this key"
 msgstr "afficher les clefs"
 
-#, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
-msgstr[0] ""
-msgstr[1] ""
-
 #, fuzzy, c-format
 #| msgid "print message digests"
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
 msgstr[0] "indiquer les fonctions de hachage"
 msgstr[1] "indiquer les fonctions de hachage"
 
 #, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+msgid " over the past year."
+msgid_plural " over the past %d years."
 msgstr[0] ""
 msgstr[1] ""
 
+msgid " in the past."
+msgstr ""
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5743,6 +5788,17 @@ msgstr ""
 msgid "(G)ood, (A)ccept once, (U)nknown, (R)eject once, (B)ad? "
 msgstr ""
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing key: %s\n"
+msgid "resetting keydb: %s\n"
+msgstr "erreur d'écriture la clef : %s\n"
+
 #, fuzzy, c-format
 #| msgid "error setting OCSP target: %s\n"
 msgid "error setting TOFU binding's trust level to %s\n"
@@ -5792,51 +5848,58 @@ msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
+msgid "%s: "
 msgstr ""
 
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
-msgstr ""
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "%d signatures supprimées\n"
 
 #, fuzzy, c-format
 #| msgid "print message digests"
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "indiquer les fonctions de hachage"
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
+msgstr[0] "indiquer les fonctions de hachage"
+msgstr[1] "indiquer les fonctions de hachage"
+
+#, fuzzy, c-format
+#| msgid "encrypted with %lu passphrases\n"
+msgid ", and encrypted %ld messages"
+msgstr "chiffré avec %lu phrases secrètes\n"
+
+#, fuzzy, c-format
+#| msgid "print message digests"
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] "indiquer les fonctions de hachage"
+msgstr[1] "indiquer les fonctions de hachage"
 
-#, c-format
 msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
-msgstr[0] ""
-msgstr[1] ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
+msgstr ""
 
-#, c-format
-msgid "The most recent message was verified %s ago."
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
 msgstr ""
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
 msgstr ""
 
 #, c-format
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -5848,6 +5911,15 @@ msgid "error opening TOFU database: %s\n"
 msgstr "erreur d'envoi de données : %s\n"
 
 #, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring '%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "erreur d'écriture du porte-clefs public « %s » : %s\n"
+
+#, c-format
 msgid "'%s' is not a valid long keyID\n"
 msgstr "« %s » n'est pas un identifiant valable de clef longue\n"
 
@@ -6110,22 +6182,24 @@ msgstr "impossible de stocker l'empreinte : %s\n"
 msgid "failed to store the creation date: %s\n"
 msgstr "impossible de stocker la date de création : %s\n"
 
-#, c-format
-msgid "reading public key failed: %s\n"
-msgstr "échec de lecture de clef publique : %s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr "la réponse ne contient pas les données de clef publique\n"
-
 msgid "response does not contain the RSA modulus\n"
 msgstr "la réponse ne contient pas le module RSA\n"
 
 msgid "response does not contain the RSA public exponent\n"
 msgstr "la réponse ne contient pas l'exposant public RSA\n"
 
-msgid "response does not contain the EC public point\n"
+#, fuzzy
+#| msgid "response does not contain the EC public point\n"
+msgid "response does not contain the EC public key\n"
 msgstr "la réponse ne contient pas le point public EC\n"
 
+msgid "response does not contain the public key data\n"
+msgstr "la réponse ne contient pas les données de clef publique\n"
+
+#, c-format
+msgid "reading public key failed: %s\n"
+msgstr "échec de lecture de clef publique : %s\n"
+
 #, c-format
 msgid "using default PIN as %s\n"
 msgstr "utilisation du code personnel par défaut en tant que %s\n"
@@ -7775,6 +7849,9 @@ msgstr "forcer le chargement des listes de révocations de certificat obsolètes
 msgid "allow sending OCSP requests"
 msgstr "permettre l'envoi de requêtes OCSP"
 
+msgid "allow online software version check"
+msgstr ""
+
 msgid "inhibit the use of HTTP"
 msgstr "interdire l'utilisation d'HTTP"
 
@@ -8039,10 +8116,6 @@ msgid "'%s' is an invalid LDAP URL\n"
 msgstr "« %s » est une URL LDAP incorrecte\n"
 
 #, c-format
-msgid "error allocating memory: %s\n"
-msgstr "erreur d'allocation de mémoire : %s\n"
-
-#, c-format
 msgid "error printing log line: %s\n"
 msgstr "erreur d'affichage de ligne du journal : %s\n"
 
@@ -8512,22 +8585,32 @@ msgstr "liste de serveurs LDAP"
 msgid "Configuration for OCSP"
 msgstr "Configuration pour OCSP"
 
-msgid "GPG for OpenPGP"
+#, fuzzy
+#| msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr "GPG pour OpenPGP"
 
-msgid "GPG Agent"
-msgstr "Agent GPG"
+msgid "Private Keys"
+msgstr ""
 
-msgid "Smartcard Daemon"
+#, fuzzy
+#| msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr "Démon de carte à puce"
 
-msgid "GPG for S/MIME"
+#, fuzzy
+#| msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr "GPG pour S/MIME"
 
-msgid "Key Acquirer"
-msgstr ""
+#, fuzzy
+#| msgid "network error"
+msgid "Network"
+msgstr "erreur de réseau"
 
-msgid "PIN and Passphrase Entry"
+#, fuzzy
+#| msgid "PIN and Passphrase Entry"
+msgid "Passphrase Entry"
 msgstr "Entrée de code personnel et de phrase secrète"
 
 msgid "Component not suitable for launching"
@@ -8567,6 +8650,11 @@ msgstr "afficher le fichier de configuration globale"
 msgid "check global configuration file"
 msgstr "vérifier le fichier de configuration globale"
 
+#, fuzzy
+#| msgid "update the trust database"
+msgid "query the software version database"
+msgstr "mettre la base de confiance à jour"
+
 msgid "reload all or a given component"
 msgstr "recharger tous les composants ou celui donné"
 
@@ -8746,6 +8834,24 @@ msgstr ""
 "Vérifier une phrase secrète donnée sur l'entrée standard par rapport à "
 "ficmotif\n"
 
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "échec de dissimulation de la clef : %s\n"
+
+#, fuzzy
+#~| msgid "Available keys:\n"
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "Clefs disponibles :\n"
+
+#, fuzzy
+#~| msgid "print message digests"
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "indiquer les fonctions de hachage"
+#~ msgstr[1] "indiquer les fonctions de hachage"
+
+#~ msgid "GPG Agent"
+#~ msgstr "Agent GPG"
+
 #~ msgid "communication problem with gpg-agent\n"
 #~ msgstr "problème de communication avec gpg-agent\n"
 
@@ -8832,9 +8938,6 @@ msgstr ""
 #~ msgid "1 user ID without valid self-signature detected\n"
 #~ msgstr "1 identité sans autosignature valable détecté\n"
 
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "%d signatures supprimées\n"
-
 #~ msgid "User ID \"%s\": %d signatures removed\n"
 #~ msgstr "Identité « %s » : %d signatures supprimées\n"
 
@@ -8878,9 +8981,6 @@ msgstr ""
 #~ msgid "1 good signature\n"
 #~ msgstr "1 mauvaise signature\n"
 
-#~ msgid "renaming '%s' to '%s' failed: %s\n"
-#~ msgstr "impossible de renommer « %s » en « %s » : %s\n"
-
 #~ msgid "%lu keys cached (%lu signatures)\n"
 #~ msgstr "%lu clefs mises en cache (%lu signatures)\n"
 
@@ -9876,9 +9976,6 @@ msgstr ""
 #~ msgid "bad URI"
 #~ msgstr "mauvais URI"
 
-#~ msgid "network error"
-#~ msgstr "erreur de réseau"
-
 #~ msgid "not processed"
 #~ msgstr "non traité"
 
index 4dc73fd..0b5d876 100644 (file)
--- a/po/gl.po
+++ b/po/gl.po
@@ -11,7 +11,7 @@ msgstr ""
 "Language-Team: Galician <gpul-traduccion@ceu.fi.udc.es>\n"
 "Language: gl\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #, fuzzy, c-format
@@ -45,7 +45,7 @@ msgstr ""
 #, fuzzy
 #| msgid "Do you really want to create a sign and encrypt key? "
 msgid "Do you really want to make your passphrase visible on the screen?"
-msgstr "¿Seguro que quere crear unha chave para asinar e cifrar? "
+msgstr "¿Seguro que quere crear unha chave para asinar e cifrar? "
 
 msgid "|pinentry-tt|Make passphrase visible"
 msgstr ""
@@ -78,14 +78,14 @@ msgstr ""
 msgid ""
 "Please enter your passphrase, so that the secret key can be unlocked for "
 "this session"
-msgstr "Por favor, introduza o contrasinal; esta é unha frase secreta \n"
+msgstr "Por favor, introduza o contrasinal; esta é unha frase secreta \n"
 
 msgid "PIN:"
 msgstr ""
 
 #, fuzzy
 msgid "Passphrase:"
-msgstr "contrasinal erróneo"
+msgstr "contrasinal erróneo"
 
 msgid "does not match - try again"
 msgstr ""
@@ -102,7 +102,7 @@ msgstr ""
 
 #, fuzzy
 msgid "PIN too long"
-msgstr "liña longa de máis\n"
+msgstr "liña longa de máis\n"
 
 #, fuzzy
 msgid "Passphrase too long"
@@ -110,22 +110,22 @@ msgstr "contrasinal demasiado longo\n"
 
 #, fuzzy
 msgid "Invalid characters in PIN"
-msgstr "Caracter non válido no nome\n"
+msgstr "Caracter non válido no nome\n"
 
 msgid "PIN too short"
 msgstr ""
 
 #, fuzzy
 msgid "Bad PIN"
-msgstr "MPI erróneo"
+msgstr "MPI erróneo"
 
 #, fuzzy
 msgid "Bad Passphrase"
-msgstr "contrasinal erróneo"
+msgstr "contrasinal erróneo"
 
 #, fuzzy, c-format
 msgid "ssh keys greater than %d bits are not supported\n"
-msgstr "o algoritmo de protección %d%s non está soportado\n"
+msgstr "o algoritmo de protección %d%s non está soportado\n"
 
 #, fuzzy, c-format
 #| msgid "can't create `%s': %s\n"
@@ -153,14 +153,6 @@ msgstr "erro escribindo no chaveiro secreto `%s': %s\n"
 msgid "no suitable card key found: %s\n"
 msgstr "non se atopou un chaveiro privado no que se poida escribir: %s\n"
 
-#, fuzzy, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "fallou o borrado do bloque de chaves: %s\n"
-
-#, fuzzy, c-format
-msgid "error writing key: %s\n"
-msgstr "erro escribindo no chaveiro `%s': %s\n"
-
 #, c-format
 msgid ""
 "An ssh process requested the use of key%%0A  %s%%0A  (%s)%%0ADo you want to "
@@ -175,7 +167,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "Please enter the passphrase for the ssh key%%0A  %F%%0A  (%c)"
-msgstr "Por favor, introduza o contrasinal; esta é unha frase secreta \n"
+msgstr "Por favor, introduza o contrasinal; esta é unha frase secreta \n"
 
 #, fuzzy
 msgid "Please re-enter this passphrase"
@@ -185,11 +177,11 @@ msgstr "cambia-lo contrasinal"
 msgid ""
 "Please enter a passphrase to protect the received secret key%%0A   %s%%0A   "
 "%s%%0Awithin gpg-agent's key storage"
-msgstr "Por favor, introduza o contrasinal; esta é unha frase secreta \n"
+msgstr "Por favor, introduza o contrasinal; esta é unha frase secreta \n"
 
 #, fuzzy, c-format
 msgid "failed to create stream from socket: %s\n"
-msgstr "%s: fallo ao crear unha táboa hash: %s\n"
+msgstr "%s: fallo ao crear unha táboa hash: %s\n"
 
 msgid "Please insert the card with serial number"
 msgstr ""
@@ -227,15 +219,15 @@ msgstr "Repita o contrasinal: "
 
 #, fuzzy
 msgid "Reset Code not correctly repeated; try again"
-msgstr "o contrasinal non se repetiu correctamente; ténteo de novo"
+msgstr "o contrasinal non se repetiu correctamente; ténteo de novo"
 
 #, fuzzy
 msgid "PUK not correctly repeated; try again"
-msgstr "o contrasinal non se repetiu correctamente; ténteo de novo"
+msgstr "o contrasinal non se repetiu correctamente; ténteo de novo"
 
 #, fuzzy
 msgid "PIN not correctly repeated; try again"
-msgstr "o contrasinal non se repetiu correctamente; ténteo de novo"
+msgstr "o contrasinal non se repetiu correctamente; ténteo de novo"
 
 #, c-format
 msgid "Please enter the PIN%s%s%s to unlock the card"
@@ -255,7 +247,7 @@ msgstr "Introduza o contrasinal\n"
 
 #, fuzzy
 msgid "Take this one anyway"
-msgstr "¿Empregar esta chave de tódolos xeitos?"
+msgstr "¿Empregar esta chave de tódolos xeitos?"
 
 #, c-format
 msgid ""
@@ -295,7 +287,7 @@ msgstr ""
 #, fuzzy, c-format
 msgid "Please enter the passphrase to%0Aprotect your new key"
 msgstr ""
-"Necesita un contrasinal para protexe-la súa chave secreta.\n"
+"Necesita un contrasinal para protexe-la súa chave secreta.\n"
 "\n"
 
 #, fuzzy
@@ -308,7 +300,7 @@ msgid ""
 " "
 msgstr ""
 "@\n"
-"Opcións:\n"
+"Opcións:\n"
 " "
 
 msgid "run in daemon mode (background)"
@@ -317,11 +309,16 @@ msgstr ""
 msgid "run in server mode (foreground)"
 msgstr ""
 
+#, fuzzy
+#| msgid "Key is superseded"
+msgid "run in supervised mode"
+msgstr "A chave é obsoleta"
+
 msgid "verbose"
 msgstr "lareto"
 
 msgid "be somewhat more quiet"
-msgstr "ser un pouquiño máis calado"
+msgstr "ser un pouquiño máis calado"
 
 msgid "sh-style command output"
 msgstr ""
@@ -331,7 +328,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|read options from FILE"
-msgstr "|FICHEIRO|carga-lo módulo de extensión FICHEIRO"
+msgstr "|FICHEIRO|carga-lo módulo de extensión FICHEIRO"
 
 msgid "do not detach from the console"
 msgstr ""
@@ -390,12 +387,12 @@ msgstr ""
 #, fuzzy
 #| msgid "not supported"
 msgid "enable ssh support"
-msgstr "non está soportado"
+msgstr "non está soportado"
 
 #, fuzzy
 #| msgid "not supported"
 msgid "enable putty support"
-msgstr "non está soportado"
+msgstr "non está soportado"
 
 #. TRANSLATORS: @EMAIL@ will get replaced by the actual bug
 #. reporting address.  This is so that we can change the
@@ -404,11 +401,11 @@ msgstr "non est
 msgid "Please report bugs to <@EMAIL@>.\n"
 msgstr ""
 "Por favor, informe dos erros no programa a <gnupg-bugs@gnu.org>,\n"
-"e dos erros na traducción a <proxecto@trasno.net>.\n"
+"e dos erros na traducción a <proxecto@trasno.net>.\n"
 
 #, fuzzy
 msgid "Usage: @GPG_AGENT@ [options] (-h for help)"
-msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
+msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
 
 msgid ""
 "Syntax: @GPG_AGENT@ [options] [command [args]]\n"
@@ -422,22 +419,22 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "NOTE: no default option file `%s'\n"
 msgid "Note: no default option file '%s'\n"
-msgstr "NOTA: non existe o ficheiro de opcións por defecto `%s'\n"
+msgstr "NOTA: non existe o ficheiro de opcións por defecto `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "option file `%s': %s\n"
 msgid "option file '%s': %s\n"
-msgstr "ficheiro de opcións `%s': %s\n"
+msgstr "ficheiro de opcións `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "reading options from `%s'\n"
 msgid "reading options from '%s'\n"
-msgstr "lendo as opcións de `%s'\n"
+msgstr "lendo as opcións de `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: \"%s\" is a deprecated option\n"
 msgid "Note: '%s' is not considered an option\n"
-msgstr "AVISO: \"%s\" é unha opción a extinguir\n"
+msgstr "AVISO: \"%s\" é unha opción a extinguir\n"
 
 #, fuzzy, c-format
 msgid "can't create socket: %s\n"
@@ -445,11 +442,11 @@ msgstr "non foi posible crear %s: %s\n"
 
 #, fuzzy, c-format
 msgid "socket name '%s' is too long\n"
-msgstr "Revocación de certificado válida"
+msgstr "Revocación de certificado válida"
 
 #, fuzzy
 msgid "a gpg-agent is already running - not starting a new one\n"
-msgstr "gpg-agent non está dispoñible nesta sesión\n"
+msgstr "gpg-agent non está dispoñible nesta sesión\n"
 
 #, fuzzy
 msgid "error getting nonce for the socket\n"
@@ -465,7 +462,7 @@ msgstr "AVISO: permisos inseguros en %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "listen() failed: %s\n"
-msgstr "a actualización fallou: %s\n"
+msgstr "a actualización fallou: %s\n"
 
 #, fuzzy, c-format
 msgid "listening on socket '%s'\n"
@@ -510,7 +507,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "npth_pselect failed: %s - waiting 1s\n"
-msgstr "o segredo da actualización fallou: %s\n"
+msgstr "o segredo da actualización fallou: %s\n"
 
 #, fuzzy, c-format
 msgid "%s %s stopped\n"
@@ -518,11 +515,11 @@ msgstr "\t%lu chaves omitidas\n"
 
 #, fuzzy
 msgid "no gpg-agent running in this session\n"
-msgstr "gpg-agent non está dispoñible nesta sesión\n"
+msgstr "gpg-agent non está dispoñible nesta sesión\n"
 
 #, fuzzy
 msgid "Usage: gpg-preset-passphrase [options] KEYGRIP (-h for help)\n"
-msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
+msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
 
 msgid ""
 "Syntax: gpg-preset-passphrase [options] KEYGRIP\n"
@@ -542,12 +539,12 @@ msgid ""
 " "
 msgstr ""
 "@\n"
-"Opcións:\n"
+"Opcións:\n"
 " "
 
 #, fuzzy
 msgid "Usage: gpg-protect-tool [options] (-h for help)\n"
-msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
+msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
 
 msgid ""
 "Syntax: gpg-protect-tool [options] [args]\n"
@@ -556,11 +553,11 @@ msgstr ""
 
 #, fuzzy
 msgid "Please enter the passphrase to unprotect the PKCS#12 object."
-msgstr "Por favor, introduza o contrasinal; esta é unha frase secreta \n"
+msgstr "Por favor, introduza o contrasinal; esta é unha frase secreta \n"
 
 #, fuzzy
 msgid "Please enter the passphrase to protect the new PKCS#12 object."
-msgstr "Por favor, introduza o contrasinal; esta é unha frase secreta \n"
+msgstr "Por favor, introduza o contrasinal; esta é unha frase secreta \n"
 
 msgid ""
 "Please enter the passphrase to protect the imported object within the GnuPG "
@@ -571,7 +568,7 @@ msgstr ""
 msgid ""
 "Please enter the passphrase or the PIN\n"
 "needed to complete this operation."
-msgstr "Por favor, introduza o contrasinal; esta é unha frase secreta \n"
+msgstr "Por favor, introduza o contrasinal; esta é unha frase secreta \n"
 
 #, fuzzy
 msgid "cancelled\n"
@@ -595,7 +592,7 @@ msgstr "erro de lectura: %s\n"
 
 #, fuzzy, c-format
 msgid "system trustlist '%s' not available\n"
-msgstr "hai partes da chave secreta non dispoñibles\n"
+msgstr "hai partes da chave secreta non dispoñibles\n"
 
 #, fuzzy, c-format
 msgid "bad fingerprint in '%s', line %d\n"
@@ -603,7 +600,7 @@ msgstr "erro de lectura: %s\n"
 
 #, fuzzy, c-format
 msgid "invalid keyflag in '%s', line %d\n"
-msgstr "erro: pegada dactilar non válida\n"
+msgstr "erro: pegada dactilar non válida\n"
 
 #, fuzzy, c-format
 msgid "error reading '%s', line %d: %s\n"
@@ -677,7 +674,7 @@ msgstr ""
 msgid ""
 "Do you really want to delete the key identified by keygrip%%0A  %s%%0A  %%C"
 "%%0A?"
-msgstr "¿Seguro de que quere borra-las chaves seleccionadas? "
+msgstr "¿Seguro de que quere borra-las chaves seleccionadas? "
 
 #, fuzzy
 msgid "Delete key"
@@ -701,25 +698,25 @@ msgstr ""
 
 #, c-format
 msgid "checking created signature failed: %s\n"
-msgstr "fallou a comprobación da sinatura creada: %s\n"
+msgstr "fallou a comprobación da sinatura creada: %s\n"
 
 msgid "secret key parts are not available\n"
-msgstr "hai partes da chave secreta non dispoñibles\n"
+msgstr "hai partes da chave secreta non dispoñibles\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "public key algorithm %d (%s) is not supported\n"
-msgstr "o algoritmo de protección %d%s non está soportado\n"
+msgstr "o algoritmo de protección %d%s non está soportado\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "protection algorithm %d (%s) is not supported\n"
-msgstr "o algoritmo de protección %d%s non está soportado\n"
+msgstr "o algoritmo de protección %d%s non está soportado\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "protection hash algorithm %d (%s) is not supported\n"
-msgstr "o algoritmo de protección %d%s non está soportado\n"
+msgstr "o algoritmo de protección %d%s non está soportado\n"
 
 #, fuzzy, c-format
 msgid "error creating a pipe: %s\n"
@@ -733,9 +730,9 @@ msgstr "erro ao crea-lo contrasinal: %s\n"
 msgid "error forking process: %s\n"
 msgstr "erro lendo `%s': %s\n"
 
-#, fuzzy, c-format
-msgid "waiting for processes to terminate failed: %s\n"
-msgstr "a actualización fallou: %s\n"
+#, c-format
+msgid "waiting for process %d to terminate failed: %s\n"
+msgstr ""
 
 #, fuzzy, c-format
 msgid "error running '%s': probably not installed\n"
@@ -750,13 +747,13 @@ msgid "error running '%s': terminated\n"
 msgstr "erro lendo `%s': %s\n"
 
 #, fuzzy, c-format
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "a actualización fallou: %s\n"
+
+#, fuzzy, c-format
 msgid "error getting exit code of process %d: %s\n"
 msgstr "erro escribindo no chaveiro secreto `%s': %s\n"
 
-#, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr ""
-
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to '%s': %s\n"
@@ -768,7 +765,7 @@ msgstr "problema co axente: o axente voltou coa resposta 0x%lx\n"
 
 #, c-format
 msgid "can't disable core dumps: %s\n"
-msgstr "non é posible deshabilita-los volcados de 'core': %s\n"
+msgstr "non é posible deshabilita-los volcados de 'core': %s\n"
 
 #, fuzzy, c-format
 msgid "Warning: unsafe ownership on %s \"%s\"\n"
@@ -778,6 +775,14 @@ msgstr "AVISO: propiedade insegura en %s \"%s\"\n"
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
 msgstr "AVISO: permisos inseguros en %s \"%s\"\n"
 
+#, fuzzy, c-format
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "a actualización fallou: %s\n"
+
+#, fuzzy, c-format
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "non se puido poñe-la armadura: %s\n"
+
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "yes"
 msgstr "si|sim"
@@ -832,7 +837,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "WARNING: \"%s%s\" is an obsolete option - it has no effect\n"
-msgstr "AVISO: \"%s\" é unha opción a extinguir\n"
+msgstr "AVISO: \"%s\" é unha opción a extinguir\n"
 
 #, c-format
 msgid "unknown debug flag '%s' ignored\n"
@@ -904,7 +909,7 @@ msgstr "Certificado correcto"
 
 #, fuzzy
 msgid "Certificate chain available"
-msgstr "Revocación de certificado válida"
+msgstr "Revocación de certificado válida"
 
 #, fuzzy
 msgid "root certificate missing"
@@ -917,7 +922,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Data available"
-msgstr "Chave dispoñible en: "
+msgstr "Chave dispoñible en: "
 
 #, fuzzy
 msgid "Session key created"
@@ -949,7 +954,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "data hash algorithm: %s"
-msgstr "algoritmo de hash non válido `%s'\n"
+msgstr "algoritmo de hash non válido `%s'\n"
 
 #, fuzzy, c-format
 msgid "Signer %d"
@@ -957,18 +962,18 @@ msgstr "A sinatura caducou o %s\n"
 
 #, fuzzy, c-format
 msgid "attr hash algorithm: %s"
-msgstr "algoritmo de hash non válido `%s'\n"
+msgstr "algoritmo de hash non válido `%s'\n"
 
 msgid "Data decryption succeeded"
 msgstr ""
 
 #, fuzzy
 msgid "Encryption algorithm supported"
-msgstr "o algoritmo de protección %d%s non está soportado\n"
+msgstr "o algoritmo de protección %d%s non está soportado\n"
 
 #, fuzzy
 msgid "Data verification succeeded"
-msgstr "verificación de sinatura suprimida\n"
+msgstr "verificación de sinatura suprimida\n"
 
 #, fuzzy
 msgid "Signature available"
@@ -980,7 +985,7 @@ msgstr "Sinatura correcta de \""
 
 #, fuzzy, c-format
 msgid "bad data hash algorithm: %s"
-msgstr "algoritmo de hash non válido `%s'\n"
+msgstr "algoritmo de hash non válido `%s'\n"
 
 #, fuzzy, c-format
 msgid "Signature %d"
@@ -988,7 +993,7 @@ msgstr "A sinatura caducou o %s\n"
 
 #, fuzzy
 msgid "Certificate chain valid"
-msgstr "Revocación de certificado válida"
+msgstr "Revocación de certificado válida"
 
 #, fuzzy
 msgid "Root certificate trustworthy"
@@ -1002,7 +1007,7 @@ msgstr "Certificado correcto"
 
 #, fuzzy
 msgid "the available CRL is too old"
-msgstr "Chave dispoñible en: "
+msgstr "Chave dispoñible en: "
 
 #, fuzzy
 msgid "CRL/OCSP check of certificates"
@@ -1010,14 +1015,14 @@ msgstr "Certificado correcto"
 
 #, fuzzy
 msgid "Included certificates"
-msgstr "Certificado non válido"
+msgstr "Certificado non válido"
 
 msgid "No audit log entries."
 msgstr ""
 
 #, fuzzy
 msgid "Unknown operation"
-msgstr "versión descoñecida"
+msgstr "versión descoñecida"
 
 msgid "Gpg-Agent usable"
 msgstr ""
@@ -1027,15 +1032,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "No help available for '%s'."
-msgstr "Non hai axuda dispoñible para `%s'"
+msgstr "Non hai axuda dispoñible para `%s'"
 
 #, fuzzy
 msgid "ignoring garbage line"
-msgstr "error nunha liña adicional\n"
+msgstr "error nunha liña adicional\n"
 
 #, fuzzy
 msgid "[none]"
-msgstr "descoñecido"
+msgstr "descoñecido"
 
 #, fuzzy
 msgid "argument not expected"
@@ -1047,16 +1052,16 @@ msgstr "erro de lectura de ficheiro"
 
 #, fuzzy
 msgid "keyword too long"
-msgstr "liña longa de máis\n"
+msgstr "liña longa de máis\n"
 
 #, fuzzy
 msgid "missing argument"
-msgstr "argumento non válido"
+msgstr "argumento non válido"
 
 #, fuzzy
 #| msgid "invalid armor"
 msgid "invalid argument"
-msgstr "armadura non válida"
+msgstr "armadura non válida"
 
 #, fuzzy
 msgid "invalid command"
@@ -1064,7 +1069,7 @@ msgstr "comandos conflictivos\n"
 
 #, fuzzy
 msgid "invalid alias definition"
-msgstr "opcións de importación non válidas\n"
+msgstr "opcións de importación non válidas\n"
 
 #, fuzzy
 msgid "out of core"
@@ -1072,7 +1077,7 @@ msgstr "non procesado"
 
 #, fuzzy
 msgid "invalid option"
-msgstr "opcións de importación non válidas\n"
+msgstr "opcións de importación non válidas\n"
 
 #, c-format
 msgid "missing argument for option \"%.50s\"\n"
@@ -1080,7 +1085,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid argument for option \"%.50s\"\n"
-msgstr "opcións de importación non válidas\n"
+msgstr "opcións de importación non válidas\n"
 
 #, c-format
 msgid "option \"%.50s\" does not expect an argument\n"
@@ -1104,11 +1109,11 @@ msgstr "non procesado"
 
 #, fuzzy, c-format
 msgid "invalid option \"%.50s\"\n"
-msgstr "opcións de importación non válidas\n"
+msgstr "opcións de importación non válidas\n"
 
 #, fuzzy, c-format
 msgid "conversion from '%s' to '%s' not available\n"
-msgstr "non se puido poñe-la armadura: %s\n"
+msgstr "non se puido poñe-la armadura: %s\n"
 
 #, fuzzy, c-format
 msgid "iconv_open failed: %s\n"
@@ -1116,7 +1121,7 @@ msgstr "non se puido abrir un ficheiro: %s\n"
 
 #, fuzzy, c-format
 msgid "conversion from '%s' to '%s' failed: %s\n"
-msgstr "non se puido poñe-la armadura: %s\n"
+msgstr "non se puido poñe-la armadura: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to create temporary file '%s': %s\n"
@@ -1139,7 +1144,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "lock '%s' not made: %s\n"
-msgstr "non se atopou a chave pública %08lX: %s\n"
+msgstr "non se atopou a chave pública %08lX: %s\n"
 
 #, fuzzy, c-format
 msgid "waiting for lock %s...\n"
@@ -1154,31 +1159,31 @@ msgid "armor: %s\n"
 msgstr "armadura: %s\n"
 
 msgid "invalid armor header: "
-msgstr "cabeceira de armadura non válida: "
+msgstr "cabeceira de armadura non válida: "
 
 msgid "armor header: "
 msgstr "cabeceira de armadura: "
 
 msgid "invalid clearsig header\n"
-msgstr "cabeceira de sinatura en claro non válida\n"
+msgstr "cabeceira de sinatura en claro non válida\n"
 
 #, fuzzy
 msgid "unknown armor header: "
 msgstr "cabeceira de armadura: "
 
 msgid "nested clear text signatures\n"
-msgstr "sinaturas en texto claro aniñadas\n"
+msgstr "sinaturas en texto claro aniñadas\n"
 
 #, fuzzy
 msgid "unexpected armor: "
 msgstr "armadura inesperada:"
 
 msgid "invalid dash escaped line: "
-msgstr "liña escapada cunha barra non válida: "
+msgstr "liña escapada cunha barra non válida: "
 
 #, fuzzy, c-format
 msgid "invalid radix64 character %02X skipped\n"
-msgstr "carácter radix64 non válido %02x omitido\n"
+msgstr "carácter radix64 non válido %02x omitido\n"
 
 msgid "premature eof (no CRC)\n"
 msgstr "fin de ficheiro prematura (non hai CRC)\n"
@@ -1195,22 +1200,22 @@ msgstr "Erro de CRC; %06lx - %06lx\n"
 
 #, fuzzy
 msgid "premature eof (in trailer)\n"
-msgstr "fin de ficheiro prematura (nas liñas adicionais)\n"
+msgstr "fin de ficheiro prematura (nas liñas adicionais)\n"
 
 msgid "error in trailer line\n"
-msgstr "error nunha liña adicional\n"
+msgstr "error nunha liña adicional\n"
 
 msgid "no valid OpenPGP data found.\n"
-msgstr "non se atoparon datos OpenPGP válidos.\n"
+msgstr "non se atoparon datos OpenPGP válidos.\n"
 
 #, c-format
 msgid "invalid armor: line longer than %d characters\n"
-msgstr "armadura incorrecta: liña máis longa ca %d caracteres\n"
+msgstr "armadura incorrecta: liña máis longa ca %d caracteres\n"
 
 msgid ""
 "quoted printable character in armor - probably a buggy MTA has been used\n"
 msgstr ""
-"carácter quoted-printable na armadura - seguramente empregouse un MTA con "
+"carácter quoted-printable na armadura - seguramente empregouse un MTA con "
 "erros\n"
 
 #, fuzzy, c-format
@@ -1222,22 +1227,22 @@ msgid ""
 "a notation name must have only printable characters or spaces, and end with "
 "an '='\n"
 msgstr ""
-"un nome de notación só debe ter caracteres imprimibles ou espacios, e debe "
+"un nome de notación só debe ter caracteres imprimibles ou espacios, e debe "
 "rematar en '='\n"
 
 msgid "a user notation name must contain the '@' character\n"
-msgstr "un nome de notación de usuario debe conte-lo carácter '@'\n"
+msgstr "un nome de notación de usuario debe conte-lo carácter '@'\n"
 
 #, fuzzy
 msgid "a notation name must not contain more than one '@' character\n"
-msgstr "un nome de notación de usuario debe conte-lo carácter '@'\n"
+msgstr "un nome de notación de usuario debe conte-lo carácter '@'\n"
 
 msgid "a notation value must not use any control characters\n"
-msgstr "un valor de notación non pode empregar ningún carácter de control\n"
+msgstr "un valor de notación non pode empregar ningún carácter de control\n"
 
 #, fuzzy
 msgid "a notation name may not contain an '=' character\n"
-msgstr "un nome de notación de usuario debe conte-lo carácter '@'\n"
+msgstr "un nome de notación de usuario debe conte-lo carácter '@'\n"
 
 #, fuzzy
 #| msgid ""
@@ -1245,15 +1250,15 @@ msgstr "un nome de notaci
 #| "with an '='\n"
 msgid "a notation name must have only printable characters or spaces\n"
 msgstr ""
-"un nome de notación só debe ter caracteres imprimibles ou espacios, e debe "
+"un nome de notación só debe ter caracteres imprimibles ou espacios, e debe "
 "rematar en '='\n"
 
 msgid "WARNING: invalid notation data found\n"
-msgstr "AVISO: atopáronse datos de notación non válidos\n"
+msgstr "AVISO: atopáronse datos de notación non válidos\n"
 
 #, fuzzy, c-format
 msgid "failed to proxy %s inquiry to client\n"
-msgstr "erro ao pór '%s' na base de datos de confianza: %s\n"
+msgstr "erro ao pór '%s' na base de datos de confianza: %s\n"
 
 msgid "Enter passphrase: "
 msgstr "Introduza o contrasinal: "
@@ -1274,7 +1279,7 @@ msgstr "AVISO: %s fai que se ignore %s\n"
 
 #, fuzzy, c-format
 msgid "OpenPGP card not available: %s\n"
-msgstr "a chave secreta non está dispoñible"
+msgstr "a chave secreta non está dispoñible"
 
 #, c-format
 msgid "OpenPGP card no. %s detected\n"
@@ -1290,10 +1295,10 @@ msgstr "Non se admite este comando no modo %s.\n"
 
 #, fuzzy
 msgid "Reset Code not or not anymore available\n"
-msgstr "hai partes da chave secreta non dispoñibles\n"
+msgstr "hai partes da chave secreta non dispoñibles\n"
 
 msgid "Your selection? "
-msgstr "¿A súa selección? "
+msgstr "¿A súa selección? "
 
 msgid "[not set]"
 msgstr ""
@@ -1338,7 +1343,7 @@ msgstr ""
 
 #, fuzzy
 msgid "URL to retrieve public key: "
-msgstr "non hai unha chave pública correspondente: %s\n"
+msgstr "non hai unha chave pública correspondente: %s\n"
 
 #, c-format
 msgid "Error: URL too long (limit is %d characters).\n"
@@ -1373,18 +1378,18 @@ msgstr "preferencias actualizadas"
 
 #, fuzzy
 msgid "Error: invalid length of preference string.\n"
-msgstr "caracter non válido na cadea de preferencias\n"
+msgstr "caracter non válido na cadea de preferencias\n"
 
 #, fuzzy
 msgid "Error: invalid characters in preference string.\n"
-msgstr "caracter non válido na cadea de preferencias\n"
+msgstr "caracter non válido na cadea de preferencias\n"
 
 msgid "Sex ((M)ale, (F)emale or space): "
 msgstr ""
 
 #, fuzzy
 msgid "Error: invalid response.\n"
-msgstr "erro: pegada dactilar non válida\n"
+msgstr "erro: pegada dactilar non válida\n"
 
 #, fuzzy
 msgid "CA fingerprint: "
@@ -1392,15 +1397,15 @@ msgstr "Pegada dactilar:"
 
 #, fuzzy
 msgid "Error: invalid formatted fingerprint.\n"
-msgstr "erro: pegada dactilar non válida\n"
+msgstr "erro: pegada dactilar non válida\n"
 
 #, fuzzy, c-format
 msgid "key operation not possible: %s\n"
-msgstr "A xeración da chave fallou: %s\n"
+msgstr "A xeración da chave fallou: %s\n"
 
 #, fuzzy
 msgid "not an OpenPGP card"
-msgstr "non se atoparon datos OpenPGP válidos.\n"
+msgstr "non se atoparon datos OpenPGP válidos.\n"
 
 #, fuzzy, c-format
 msgid "error getting current key info: %s\n"
@@ -1417,15 +1422,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the Signature key? (%u) "
-msgstr "¿Qué tamaño de chave quere? (1024) "
+msgstr "¿Qué tamaño de chave quere? (1024) "
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the Encryption key? (%u) "
-msgstr "¿Qué tamaño de chave quere? (1024) "
+msgstr "¿Qué tamaño de chave quere? (1024) "
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the Authentication key? (%u) "
-msgstr "¿Qué tamaño de chave quere? (1024) "
+msgstr "¿Qué tamaño de chave quere? (1024) "
 
 #, c-format
 msgid "rounded up to %u bits\n"
@@ -1448,7 +1453,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Note: keys are already stored on the card!\n"
-msgstr "omítese: a chave secreta xa está presente\n"
+msgstr "omítese: a chave secreta xa está presente\n"
 
 msgid "Replace existing keys? (y/N) "
 msgstr ""
@@ -1470,21 +1475,21 @@ msgstr "A sinatura caducou o %s\n"
 
 #, fuzzy
 msgid "   (2) Encryption key\n"
-msgstr "   (%d) RSA (só cifrar)\n"
+msgstr "   (%d) RSA (só cifrar)\n"
 
 msgid "   (3) Authentication key\n"
 msgstr ""
 
 msgid "Invalid selection.\n"
-msgstr "Selección non válida.\n"
+msgstr "Selección non válida.\n"
 
 #, fuzzy
 msgid "Please select where to store the key:\n"
-msgstr "Por favor, escolla o motivo da revocación:\n"
+msgstr "Por favor, escolla o motivo da revocación:\n"
 
 #, fuzzy, c-format
 msgid "KEYTOCARD failed: %s\n"
-msgstr "a actualización fallou: %s\n"
+msgstr "a actualización fallou: %s\n"
 
 #, fuzzy
 #| msgid "This command is not allowed while in %s mode.\n"
@@ -1493,17 +1498,17 @@ msgstr "Non se admite este comando no modo %s.\n"
 
 #, fuzzy
 msgid "Note: This command destroys all keys stored on the card!\n"
-msgstr "omítese: a chave secreta xa está presente\n"
+msgstr "omítese: a chave secreta xa está presente\n"
 
 #, fuzzy
 msgid "Continue? (y/N) "
-msgstr "¿Asinar de verdade? "
+msgstr "¿Asinar de verdade? "
 
 msgid "Really do a factory reset? (enter \"yes\") "
 msgstr ""
 
 msgid "quit this menu"
-msgstr "saír deste menú"
+msgstr "saír deste menú"
 
 #, fuzzy
 msgid "show admin commands"
@@ -1514,7 +1519,7 @@ msgstr "amosar esta axuda"
 
 #, fuzzy
 msgid "list all available data"
-msgstr "Chave dispoñible en: "
+msgstr "Chave dispoñible en: "
 
 msgid "change card holder's name"
 msgstr ""
@@ -1527,7 +1532,7 @@ msgstr ""
 
 #, fuzzy
 msgid "change the login name"
-msgstr "cambia-la fecha de expiración"
+msgstr "cambia-la fecha de expiración"
 
 #, fuzzy
 msgid "change the language preferences"
@@ -1607,11 +1612,11 @@ msgstr ""
 
 #, fuzzy
 msgid "Delete this key from the keyring? (y/N) "
-msgstr "¿Borrar esta chave do chaveiro? "
+msgstr "¿Borrar esta chave do chaveiro? "
 
 #, fuzzy
 msgid "This is a secret key! - really delete? (y/N) "
-msgstr "¡Esta é unha chave secreta! - ¿está seguro de que quere borrala? "
+msgstr "¡Esta é unha chave secreta! - ¿está seguro de que quere borrala? "
 
 #, fuzzy, c-format
 msgid "deleting secret %s failed: %s\n"
@@ -1623,28 +1628,28 @@ msgstr "chave"
 #, fuzzy
 #| msgid "Pubkey: "
 msgid "subkey"
-msgstr "Pública: "
+msgstr "Pública: "
 
 #, c-format
 msgid "deleting keyblock failed: %s\n"
 msgstr "fallou o borrado do bloque de chaves: %s\n"
 
 msgid "ownertrust information cleared\n"
-msgstr "borrouse a información de confianza\n"
+msgstr "borrouse a información de confianza\n"
 
 #, c-format
 msgid "there is a secret key for public key \"%s\"!\n"
-msgstr "¡hai unha chave secreta para a chave pública \"%s\"!\n"
+msgstr "¡hai unha chave secreta para a chave pública \"%s\"!\n"
 
 msgid "use option \"--delete-secret-keys\" to delete it first.\n"
-msgstr "empregue a opción \"--delete-secret-keys\" para borrala primeiro.\n"
+msgstr "empregue a opción \"--delete-secret-keys\" para borrala primeiro.\n"
 
 #, c-format
 msgid "error creating passphrase: %s\n"
 msgstr "erro ao crea-lo contrasinal: %s\n"
 
 msgid "can't use a symmetric ESK packet due to the S2K mode\n"
-msgstr "non se pode empregar un paquete simétrico ESK debido ao modo S2K\n"
+msgstr "non se pode empregar un paquete simétrico ESK debido ao modo S2K\n"
 
 #, fuzzy, c-format
 msgid "using cipher %s\n"
@@ -1653,12 +1658,12 @@ msgstr "fallou a sinatura: %s\n"
 #, fuzzy, c-format
 #| msgid "`%s' already compressed\n"
 msgid "'%s' already compressed\n"
-msgstr "`%s' xa está comprimido\n"
+msgstr "`%s' xa está comprimido\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: `%s' is an empty file\n"
 msgid "WARNING: '%s' is an empty file\n"
-msgstr "AVISO: `%s' é un ficheiro baleiro\n"
+msgstr "AVISO: `%s' é un ficheiro baleiro\n"
 
 #, fuzzy, c-format
 #| msgid "reading from `%s'\n"
@@ -1669,20 +1674,20 @@ msgstr "lendo de `%s'\n"
 msgid ""
 "WARNING: forcing symmetric cipher %s (%d) violates recipient preferences\n"
 msgstr ""
-"forza-la cifra simétrica %s (%d) viola as preferencias do destinatario\n"
+"forza-la cifra simétrica %s (%d) viola as preferencias do destinatario\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: forcing compression algorithm %s (%d) violates recipient "
 "preferences\n"
 msgstr ""
-"forza-lo algoritmo de compresión %s (%d) viola as preferencias do "
+"forza-lo algoritmo de compresión %s (%d) viola as preferencias do "
 "destinatario\n"
 
 #, c-format
 msgid "forcing symmetric cipher %s (%d) violates recipient preferences\n"
 msgstr ""
-"forza-la cifra simétrica %s (%d) viola as preferencias do destinatario\n"
+"forza-la cifra simétrica %s (%d) viola as preferencias do destinatario\n"
 
 #, c-format
 msgid "%s/%s encrypted for: \"%s\"\n"
@@ -1698,22 +1703,22 @@ msgstr "datos cifrados con %s\n"
 
 #, c-format
 msgid "encrypted with unknown algorithm %d\n"
-msgstr "cifrado cun algoritmo descoñecido %d\n"
+msgstr "cifrado cun algoritmo descoñecido %d\n"
 
 msgid ""
 "WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
-msgstr "AVISO: cifrouse a mensaxe cunha chave feble no cifrado simétrico.\n"
+msgstr "AVISO: cifrouse a mensaxe cunha chave feble no cifrado simétrico.\n"
 
 msgid "problem handling encrypted packet\n"
 msgstr "problema ao manexa-lo paquete cifrado\n"
 
 msgid "no remote program execution supported\n"
-msgstr "non se soporta a execución remota de programas\n"
+msgstr "non se soporta a execución remota de programas\n"
 
 msgid ""
 "external program calls are disabled due to unsafe options file permissions\n"
 msgstr ""
-"as chamadas a programas externos están desactivadas debido a opcións de "
+"as chamadas a programas externos están desactivadas debido a opcións de "
 "permisos de ficheiros non seguras\n"
 
 #, fuzzy
@@ -1735,7 +1740,7 @@ msgid "system error while calling external program: %s\n"
 msgstr "erro do sistema ao chamar a un programa externo: %s\n"
 
 msgid "unnatural exit of external program\n"
-msgstr "saída non natural do programa externo\n"
+msgstr "saída non natural do programa externo\n"
 
 msgid "unable to execute external program\n"
 msgstr "non se puido executar un programa externo\n"
@@ -1765,7 +1770,7 @@ msgstr ""
 
 #, fuzzy
 msgid "export revocation keys marked as \"sensitive\""
-msgstr "non se atoparon chaves de revocación para `%s'\n"
+msgstr "non se atoparon chaves de revocación para `%s'\n"
 
 #, fuzzy
 msgid "remove unusable parts from key during export"
@@ -1810,7 +1815,7 @@ msgstr "[Non se atopou o id de usuario]"
 
 #, fuzzy, c-format
 msgid "(check argument of option '%s')\n"
-msgstr "opcións de importación non válidas\n"
+msgstr "opcións de importación non válidas\n"
 
 #, c-format
 msgid "Warning: '%s' should be a long key ID or a fingerprint\n"
@@ -1858,11 +1863,11 @@ msgstr ""
 #, fuzzy, c-format
 msgid "Invalid key %s made valid by --allow-non-selfsigned-uid\n"
 msgstr ""
-"Chave %08lX non válida convertida en válida por --allow-non-selfsigned-uid\n"
+"Chave %08lX non válida convertida en válida por --allow-non-selfsigned-uid\n"
 
 #, fuzzy, c-format
 msgid "using subkey %s instead of primary key %s\n"
-msgstr "emprégase a chave secundaria %08lX no canto da primaria %08lX\n"
+msgstr "emprégase a chave secundaria %08lX no canto da primaria %08lX\n"
 
 #, fuzzy
 msgid "make a signature"
@@ -1879,7 +1884,7 @@ msgid "encrypt data"
 msgstr "cifrar datos"
 
 msgid "encryption only with symmetric cipher"
-msgstr "cifrar só con cifrado simétrico"
+msgstr "cifrar só con cifrado simétrico"
 
 msgid "decrypt data (default)"
 msgstr "descifrar datos (por defecto)"
@@ -1925,10 +1930,10 @@ msgid "full featured key pair generation"
 msgstr ""
 
 msgid "generate a revocation certificate"
-msgstr "xerar un certificado de revocación"
+msgstr "xerar un certificado de revocación"
 
 msgid "remove keys from the public keyring"
-msgstr "borrar chaves do chaveiro público"
+msgstr "borrar chaves do chaveiro público"
 
 msgid "remove keys from the secret keyring"
 msgstr "borrar chaves do chaveiro secreto"
@@ -1969,7 +1974,7 @@ msgid "search for keys on a keyserver"
 msgstr "buscar chaves nun servidor de chaves"
 
 msgid "update all keys from a keyserver"
-msgstr "actualizar tódalas chaves dun servidor de chaves"
+msgstr "actualizar tódalas chaves dun servidor de chaves"
 
 msgid "import/merge keys"
 msgstr "importar/mesturar chaves"
@@ -1997,7 +2002,7 @@ msgid "|VALUE|set the TOFU policy for a key"
 msgstr ""
 
 msgid "create ascii armored output"
-msgstr "crear saída con armadura en ascii"
+msgstr "crear saída con armadura en ascii"
 
 #, fuzzy
 msgid "|USER-ID|encrypt for USER-ID"
@@ -2009,17 +2014,17 @@ msgstr "empregar este id de usuario para asinar ou descifrar"
 
 #, fuzzy
 msgid "|N|set compress level to N (0 disables)"
-msgstr "|N|axusta-lo nivel de compresión a N (0 desactiva)"
+msgstr "|N|axusta-lo nivel de compresión a N (0 desactiva)"
 
 msgid "use canonical text mode"
-msgstr "usar modo de texto canónico"
+msgstr "usar modo de texto canónico"
 
 #, fuzzy
 msgid "|FILE|write output to FILE"
-msgstr "|FICHEIRO|carga-lo módulo de extensión FICHEIRO"
+msgstr "|FICHEIRO|carga-lo módulo de extensión FICHEIRO"
 
 msgid "do not make any changes"
-msgstr "non facer ningún cambio"
+msgstr "non facer ningún cambio"
 
 msgid "prompt before overwriting"
 msgstr "avisar antes de sobrescribir"
@@ -2032,7 +2037,7 @@ msgid ""
 "(See the man page for a complete listing of all commands and options)\n"
 msgstr ""
 "@\n"
-"(Vexa a páxina man para un listado completo de comandos e opcións)\n"
+"(Vexa a páxina man para un listado completo de comandos e opcións)\n"
 
 msgid ""
 "@\n"
@@ -2056,7 +2061,7 @@ msgstr ""
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: @GPG@ [options] [files] (-h for help)"
-msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
+msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
 
 #, fuzzy
 #| msgid ""
@@ -2068,9 +2073,9 @@ msgid ""
 "Sign, check, encrypt or decrypt\n"
 "Default operation depends on the input data\n"
 msgstr ""
-"Sintaxe: gpg [opcións] [ficheiros]\n"
+"Sintaxe: gpg [opcións] [ficheiros]\n"
 "asinar, verificar, cifrar ou descifrar\n"
-"a operación por defecto depende dos datos de entrada\n"
+"a operación por defecto depende dos datos de entrada\n"
 
 msgid ""
 "\n"
@@ -2080,7 +2085,7 @@ msgstr ""
 "Algoritmos soportados:\n"
 
 msgid "Pubkey: "
-msgstr "Pública: "
+msgstr "Pública: "
 
 msgid "Cipher: "
 msgstr "Cifra: "
@@ -2089,18 +2094,18 @@ msgid "Hash: "
 msgstr "Hash: "
 
 msgid "Compression: "
-msgstr "Compresión: "
+msgstr "Compresión: "
 
 #, fuzzy, c-format
 msgid "usage: %s [options] %s\n"
-msgstr "uso: gpg [opcións] "
+msgstr "uso: gpg [opcións] "
 
 msgid "conflicting commands\n"
 msgstr "comandos conflictivos\n"
 
 #, fuzzy, c-format
 msgid "no = sign found in group definition '%s'\n"
-msgstr "non se atopou un signo = na definición do grupo \"%s\"\n"
+msgstr "non se atopou un signo = na definición do grupo \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe ownership on homedir '%s'\n"
@@ -2154,7 +2159,7 @@ msgstr "AVISO: permisos do directorio contedor inseguros en %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "unknown configuration item '%s'\n"
-msgstr " creouse un novo ficheiro de configuración `%s'\n"
+msgstr " creouse un novo ficheiro de configuración `%s'\n"
 
 msgid "display photo IDs during key listings"
 msgstr ""
@@ -2178,7 +2183,7 @@ msgstr ""
 
 #, fuzzy
 msgid "show preferred keyserver URLs during signature listings"
-msgstr "o URL de normativa de sinaturas dado non é válido\n"
+msgstr "o URL de normativa de sinaturas dado non é válido\n"
 
 msgid "show user ID validity during key listings"
 msgstr ""
@@ -2191,48 +2196,52 @@ msgstr ""
 
 #, fuzzy
 msgid "show the keyring name in key listings"
-msgstr "amosar en que chaveiro está unha chave listada"
+msgstr "amosar en que chaveiro está unha chave listada"
 
 #, fuzzy
 msgid "show expiration dates during signature listings"
 msgstr "Non hai unha sinatura correspondiente no chaveiro secreto\n"
 
-#, fuzzy
-msgid "available TOFU policies:\n"
-msgstr "deshabilitar unha chave"
+#, fuzzy, c-format
+msgid "valid values for option '%s':\n"
+msgstr "opcións de importación non válidas\n"
 
 #, fuzzy, c-format
 msgid "unknown TOFU policy '%s'\n"
-msgstr "destinatario por defecto `%s' descoñecido\n"
+msgstr "destinatario por defecto `%s' descoñecido\n"
 
 msgid "(use \"help\" to list choices)\n"
 msgstr ""
 
 #, fuzzy, c-format
+msgid "invalid value for option '%s'\n"
+msgstr "opcións de importación non válidas\n"
+
+#, fuzzy, c-format
 #| msgid "NOTE: old default options file `%s' ignored\n"
 msgid "Note: old default options file '%s' ignored\n"
-msgstr "NOTA: ignórase o antigo ficheiro de opcións por defecto `%s'\n"
+msgstr "NOTA: ignórase o antigo ficheiro de opcións por defecto `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "NOTE: %s is not for normal use!\n"
 msgid "Note: %s is not for normal use!\n"
-msgstr "NOTA: ¡%s non é para uso normal!\n"
+msgstr "NOTA: ¡%s non é para uso normal!\n"
 
 #, fuzzy, c-format
 msgid "'%s' is not a valid signature expiration\n"
-msgstr "%s non é un xogo de caracteres válido\n"
+msgstr "%s non é un xogo de caracteres válido\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" is not a proper mail address\n"
-msgstr "Non é un enderezo de e-mail válido\n"
+msgstr "Non é un enderezo de e-mail válido\n"
 
 #, fuzzy, c-format
 msgid "invalid pinentry mode '%s'\n"
-msgstr "algoritmo de hash non válido `%s'\n"
+msgstr "algoritmo de hash non válido `%s'\n"
 
 #, fuzzy, c-format
 msgid "'%s' is not a valid character set\n"
-msgstr "%s non é un xogo de caracteres válido\n"
+msgstr "%s non é un xogo de caracteres válido\n"
 
 #, fuzzy
 msgid "could not parse keyserver URL\n"
@@ -2240,37 +2249,37 @@ msgstr "non se puido analisa-lo URI do servidor de chaves\n"
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid keyserver options\n"
-msgstr "%s:%d: opcións de exportación non válidas\n"
+msgstr "%s:%d: opcións de exportación non válidas\n"
 
 #, fuzzy
 msgid "invalid keyserver options\n"
-msgstr "opcións de exportación non válidas\n"
+msgstr "opcións de exportación non válidas\n"
 
 #, c-format
 msgid "%s:%d: invalid import options\n"
-msgstr "%s:%d: opcións de importación non válidas\n"
+msgstr "%s:%d: opcións de importación non válidas\n"
 
 msgid "invalid import options\n"
-msgstr "opcións de importación non válidas\n"
+msgstr "opcións de importación non válidas\n"
 
 #, fuzzy, c-format
 msgid "invalid filter option: %s\n"
-msgstr "opcións de importación non válidas\n"
+msgstr "opcións de importación non válidas\n"
 
 #, c-format
 msgid "%s:%d: invalid export options\n"
-msgstr "%s:%d: opcións de exportación non válidas\n"
+msgstr "%s:%d: opcións de exportación non válidas\n"
 
 msgid "invalid export options\n"
-msgstr "opcións de exportación non válidas\n"
+msgstr "opcións de exportación non válidas\n"
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid list options\n"
-msgstr "%s:%d: opcións de importación non válidas\n"
+msgstr "%s:%d: opcións de importación non válidas\n"
 
 #, fuzzy
 msgid "invalid list options\n"
-msgstr "opcións de importación non válidas\n"
+msgstr "opcións de importación non válidas\n"
 
 msgid "display photo IDs during signature verification"
 msgstr ""
@@ -2280,7 +2289,7 @@ msgstr ""
 
 #, fuzzy
 msgid "show all notations during signature verification"
-msgstr "%s non é un xogo de caracteres válido\n"
+msgstr "%s non é un xogo de caracteres válido\n"
 
 msgid "show IETF standard notations during signature verification"
 msgstr ""
@@ -2290,18 +2299,18 @@ msgstr ""
 
 #, fuzzy
 msgid "show preferred keyserver URLs during signature verification"
-msgstr "o URL de normativa de sinaturas dado non é válido\n"
+msgstr "o URL de normativa de sinaturas dado non é válido\n"
 
 #, fuzzy
 msgid "show user ID validity during signature verification"
-msgstr "%s non é un xogo de caracteres válido\n"
+msgstr "%s non é un xogo de caracteres válido\n"
 
 msgid "show revoked and expired user IDs in signature verification"
 msgstr ""
 
 #, fuzzy
 msgid "show only the primary user ID in signature verification"
-msgstr "%s non é un xogo de caracteres válido\n"
+msgstr "%s non é un xogo de caracteres válido\n"
 
 msgid "validate signatures with PKA data"
 msgstr ""
@@ -2311,11 +2320,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid verify options\n"
-msgstr "%s:%d: opcións de exportación non válidas\n"
+msgstr "%s:%d: opcións de exportación non válidas\n"
 
 #, fuzzy
 msgid "invalid verify options\n"
-msgstr "opcións de exportación non válidas\n"
+msgstr "opcións de exportación non válidas\n"
 
 #, c-format
 msgid "unable to set exec-path to %s\n"
@@ -2323,13 +2332,13 @@ msgstr "non se puido estabrecer exec-path a %s\n"
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid auto-key-locate list\n"
-msgstr "%s:%d: opcións de exportación non válidas\n"
+msgstr "%s:%d: opcións de exportación non válidas\n"
 
 msgid "invalid auto-key-locate list\n"
 msgstr ""
 
 msgid "WARNING: program may create a core file!\n"
-msgstr "AVISO: ¡o programa pode crear un ficheiro 'core'!\n"
+msgstr "AVISO: Â¡o programa pode crear un ficheiro 'core'!\n"
 
 #, c-format
 msgid "WARNING: %s overrides %s\n"
@@ -2337,11 +2346,11 @@ msgstr "AVISO: %s fai que se ignore %s\n"
 
 #, c-format
 msgid "%s not allowed with %s!\n"
-msgstr "¡%s non se admite con %s!\n"
+msgstr "¡%s non se admite con %s!\n"
 
 #, c-format
 msgid "%s makes no sense with %s!\n"
-msgstr "¡%s non ten sentido empregándoo con %s!\n"
+msgstr "¡%s non ten sentido empregándoo con %s!\n"
 
 msgid "WARNING: running with faked system time: "
 msgstr ""
@@ -2351,17 +2360,17 @@ msgid "will not run with insecure memory due to %s\n"
 msgstr "gravando a chave secreta en `%s'\n"
 
 msgid "selected cipher algorithm is invalid\n"
-msgstr "o algoritmo de cifrado seleccionado non é válido\n"
+msgstr "o algoritmo de cifrado seleccionado non é válido\n"
 
 msgid "selected digest algorithm is invalid\n"
-msgstr "o algoritmo de resumo seleccionado non é válido\n"
+msgstr "o algoritmo de resumo seleccionado non é válido\n"
 
 #, fuzzy
 msgid "selected compression algorithm is invalid\n"
-msgstr "o algoritmo de cifrado seleccionado non é válido\n"
+msgstr "o algoritmo de cifrado seleccionado non é válido\n"
 
 msgid "selected certification digest algorithm is invalid\n"
-msgstr "o algoritmo de resumo de certificación seleccionado non é válido\n"
+msgstr "o algoritmo de resumo de certificación seleccionado non é válido\n"
 
 msgid "completes-needed must be greater than 0\n"
 msgstr "completes-needed debe ser superior a 0\n"
@@ -2375,35 +2384,35 @@ msgstr "max-cert-depth debe valer entre 1 e 255\n"
 
 #, fuzzy
 msgid "invalid default-cert-level; must be 0, 1, 2, or 3\n"
-msgstr "nivel de comprobación por defecto non válido; debe ser 0, 1, 2 ou 3\n"
+msgstr "nivel de comprobación por defecto non válido; debe ser 0, 1, 2 ou 3\n"
 
 #, fuzzy
 msgid "invalid min-cert-level; must be 1, 2, or 3\n"
-msgstr "nivel de comprobación por defecto non válido; debe ser 0, 1, 2 ou 3\n"
+msgstr "nivel de comprobación por defecto non válido; debe ser 0, 1, 2 ou 3\n"
 
 #, fuzzy
 #| msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
 msgid "Note: simple S2K mode (0) is strongly discouraged\n"
-msgstr "NOTA: desaconséllase encarecidamente o modo S2K simple (0)\n"
+msgstr "NOTA: desaconséllase encarecidamente o modo S2K simple (0)\n"
 
 msgid "invalid S2K mode; must be 0, 1 or 3\n"
-msgstr "modo S2K non válido; debe ser 0, 1 ou 3\n"
+msgstr "modo S2K non válido; debe ser 0, 1 ou 3\n"
 
 msgid "invalid default preferences\n"
-msgstr "preferencias por defecto non válidas\n"
+msgstr "preferencias por defecto non válidas\n"
 
 msgid "invalid personal cipher preferences\n"
-msgstr "preferencias de cifrado personais non válidas\n"
+msgstr "preferencias de cifrado personais non válidas\n"
 
 msgid "invalid personal digest preferences\n"
-msgstr "preferencias de resumo personais non válidas\n"
+msgstr "preferencias de resumo personais non válidas\n"
 
 msgid "invalid personal compress preferences\n"
-msgstr "preferencias de compresión personais non válidas\n"
+msgstr "preferencias de compresión personais non válidas\n"
 
 #, c-format
 msgid "%s does not yet work with %s\n"
-msgstr "¡%s aínda non traballa con %s!\n"
+msgstr "¡%s aínda non traballa con %s!\n"
 
 #, fuzzy, c-format
 msgid "you may not use cipher algorithm '%s' while in %s mode\n"
@@ -2415,7 +2424,7 @@ msgstr "non se pode empregar o algoritmo de resumo \"%s\" no modo %s\n"
 
 #, fuzzy, c-format
 msgid "you may not use compression algorithm '%s' while in %s mode\n"
-msgstr "non se pode empregar o algoritmo de compresión \"%s\" no modo %s\n"
+msgstr "non se pode empregar o algoritmo de compresión \"%s\" no modo %s\n"
 
 #, c-format
 msgid "failed to initialize the TrustDB: %s\n"
@@ -2423,7 +2432,7 @@ msgstr "non se puido inicializa-la base de datos de confianzas: %s\n"
 
 msgid "WARNING: recipients (-r) given without using public key encryption\n"
 msgstr ""
-"AVISO: deronse destinatarios (-r) sen empregar cifrado de chave pública\n"
+"AVISO: deronse destinatarios (-r) sen empregar cifrado de chave pública\n"
 
 msgid "--store [filename]"
 msgstr "--store [ficheiro]"
@@ -2490,20 +2499,20 @@ msgstr "--sign-key id-de-usuario"
 
 #, c-format
 msgid "keyserver send failed: %s\n"
-msgstr "o envío ao servidor de chaves fallou: %s\n"
+msgstr "o envío ao servidor de chaves fallou: %s\n"
 
 #, c-format
 msgid "keyserver receive failed: %s\n"
-msgstr "a recepción do servidor de chaves fallou: %s\n"
+msgstr "a recepción do servidor de chaves fallou: %s\n"
 
 #, c-format
 msgid "key export failed: %s\n"
-msgstr "a exportación da chave fallou: %s\n"
+msgstr "a exportación da chave fallou: %s\n"
 
 #, fuzzy, c-format
 #| msgid "key export failed: %s\n"
 msgid "export as ssh key failed: %s\n"
-msgstr "a exportación da chave fallou: %s\n"
+msgstr "a exportación da chave fallou: %s\n"
 
 #, c-format
 msgid "keyserver search failed: %s\n"
@@ -2511,7 +2520,7 @@ msgstr "a busca no servidor de chaves fallou fallou: %s\n"
 
 #, c-format
 msgid "keyserver refresh failed: %s\n"
-msgstr "a actualización no servidor de chaves fallou: %s\n"
+msgstr "a actualización no servidor de chaves fallou: %s\n"
 
 #, c-format
 msgid "dearmoring failed: %s\n"
@@ -2519,12 +2528,12 @@ msgstr "non se puido quita-la armadura: %s\n"
 
 #, c-format
 msgid "enarmoring failed: %s\n"
-msgstr "non se puido poñe-la armadura: %s\n"
+msgstr "non se puido poñe-la armadura: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid hash algorithm `%s'\n"
 msgid "invalid hash algorithm '%s'\n"
-msgstr "algoritmo de hash non válido `%s'\n"
+msgstr "algoritmo de hash non válido `%s'\n"
 
 #, fuzzy, c-format
 msgid "error parsing key specification '%s': %s\n"
@@ -2538,17 +2547,17 @@ msgid "[filename]"
 msgstr "[ficheiro]"
 
 msgid "Go ahead and type your message ...\n"
-msgstr "Escriba a súa mensaxe ...\n"
+msgstr "Escriba a súa mensaxe ...\n"
 
 msgid "the given certification policy URL is invalid\n"
-msgstr "o URL de normativa de certificación dado non é válido\n"
+msgstr "o URL de normativa de certificación dado non é válido\n"
 
 msgid "the given signature policy URL is invalid\n"
-msgstr "o URL de normativa de sinaturas dado non é válido\n"
+msgstr "o URL de normativa de sinaturas dado non é válido\n"
 
 #, fuzzy
 msgid "the given preferred keyserver URL is invalid\n"
-msgstr "o URL de normativa de sinaturas dado non é válido\n"
+msgstr "o URL de normativa de sinaturas dado non é válido\n"
 
 #, fuzzy
 msgid "|FILE|take the keys from the keyring FILE"
@@ -2558,29 +2567,29 @@ msgid "make timestamp conflicts only a warning"
 msgstr "converte-los conflictos de selo de data nun aviso"
 
 msgid "|FD|write status info to this FD"
-msgstr "|DF|escribi-la información de estado a este DF"
+msgstr "|DF|escribi-la información de estado a este DF"
 
 msgid "|ALGO|reject signatures made with ALGO"
 msgstr ""
 
 msgid "Usage: gpgv [options] [files] (-h for help)"
-msgstr "Uso: gpgv [opcións] [ficheiros] (-h para ve-la axuda)"
+msgstr "Uso: gpgv [opcións] [ficheiros] (-h para ve-la axuda)"
 
 #, fuzzy
 msgid ""
 "Syntax: gpgv [options] [files]\n"
 "Check signatures against known trusted keys\n"
 msgstr ""
-"Sintaxe: gpg [opcións] [ficheiros]\n"
-"Comproba as sinaturas contra chaves de confianza coñecidas\n"
+"Sintaxe: gpg [opcións] [ficheiros]\n"
+"Comproba as sinaturas contra chaves de confianza coñecidas\n"
 
 msgid "No help available"
-msgstr "Non hai axuda dispoñible"
+msgstr "Non hai axuda dispoñible"
 
 #, fuzzy, c-format
 #| msgid "No help available for `%s'"
 msgid "No help available for '%s'"
-msgstr "Non hai axuda dispoñible para `%s'"
+msgstr "Non hai axuda dispoñible para `%s'"
 
 msgid "import signatures that are marked as local-only"
 msgstr ""
@@ -2623,7 +2632,7 @@ msgstr "%lu chaves procesadas hasta polo momento\n"
 
 #, c-format
 msgid "Total number processed: %lu\n"
-msgstr "Número total procesado: %lu\n"
+msgstr "Número total procesado: %lu\n"
 
 #, fuzzy, c-format
 #| msgid "      skipped new keys: %lu\n"
@@ -2660,7 +2669,7 @@ msgstr "         novas sinaturas: %lu\n"
 
 #, c-format
 msgid "   new key revocations: %lu\n"
-msgstr " novas revocacións de chaves: %lu\n"
+msgstr " novas revocacións de chaves: %lu\n"
 
 #, c-format
 msgid "      secret keys read: %lu\n"
@@ -2720,14 +2729,14 @@ msgstr "chave %08lX: non hai ID de usuario\n"
 
 #, fuzzy, c-format
 msgid "key %s: %s\n"
-msgstr "omítese `%s': %s\n"
+msgstr "omítese `%s': %s\n"
 
 msgid "rejected by import screener"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "key %s: PKS subkey corruption repaired\n"
-msgstr "chave %08lX: arranxouse a corrupción da sub-chave HKP\n"
+msgstr "chave %08lX: arranxouse a corrupción da sub-chave HKP\n"
 
 #, fuzzy, c-format
 msgid "key %s: accepted non self-signed user ID \"%s\"\n"
@@ -2735,14 +2744,14 @@ msgstr "chave %08lX: aceptouse o ID de usuario '%s' sen auto-sinatura\n"
 
 #, fuzzy, c-format
 msgid "key %s: no valid user IDs\n"
-msgstr "chave %08lX: non hai IDs de usuario válidos\n"
+msgstr "chave %08lX: non hai IDs de usuario válidos\n"
 
 msgid "this may be caused by a missing self-signature\n"
 msgstr "isto pode ser causado por unha auto-sinatura que falta\n"
 
 #, fuzzy, c-format
 msgid "key %s: public key not found: %s\n"
-msgstr "chave %08lX: chave pública non atopada: %s\n"
+msgstr "chave %08lX: chave pública non atopada: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: new key - skipped\n"
@@ -2759,7 +2768,7 @@ msgstr "erro escribindo no chaveiro `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: public key \"%s\" imported\n"
-msgstr "chave %08lX: chave pública \"%s\" importada\n"
+msgstr "chave %08lX: chave pública \"%s\" importada\n"
 
 #, fuzzy, c-format
 msgid "key %s: doesn't match our copy\n"
@@ -2828,7 +2837,7 @@ msgstr "chave %08lX: chave secreta importada\n"
 #, fuzzy, c-format
 #| msgid "skipped: secret key already present\n"
 msgid "key %s: secret key already exists\n"
-msgstr "omítese: a chave secreta xa está presente\n"
+msgstr "omítese: a chave secreta xa está presente\n"
 
 #, fuzzy, c-format
 msgid "key %s: error sending to agent: %s\n"
@@ -2844,7 +2853,7 @@ msgstr "gravando a chave secreta en `%s'\n"
 
 #, fuzzy, c-format
 msgid "key %s: secret key with invalid cipher %d - skipped\n"
-msgstr "chave %08lX: chave secreta cunha cifra %d non válida - omitida\n"
+msgstr "chave %08lX: chave secreta cunha cifra %d non válida - omitida\n"
 
 #. TRANSLATORS: For smartcard, each private key on
 #. host has a reference (stub) to a smartcard and
@@ -2863,18 +2872,18 @@ msgstr ""
 #, fuzzy, c-format
 msgid "key %s: no public key - can't apply revocation certificate\n"
 msgstr ""
-"chave %08lX: non hai chave pública - non se pode aplica-lo\n"
-"certificado de revocación\n"
+"chave %08lX: non hai chave pública - non se pode aplica-lo\n"
+"certificado de revocación\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid revocation certificate: %s - rejected\n"
 msgstr ""
-"chave %08lX: certificado de revocación incorrecto:\n"
+"chave %08lX: certificado de revocación incorrecto:\n"
 "%s - rechazado\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" revocation certificate imported\n"
-msgstr "chave %08lX: \"%s\" certificado de revocación importado\n"
+msgstr "chave %08lX: \"%s\" certificado de revocación importado\n"
 
 #, fuzzy, c-format
 msgid "key %s: no user ID for signature\n"
@@ -2883,17 +2892,17 @@ msgstr "chave %08lX: non hai ID de usuario para a sinatura\n"
 #, fuzzy, c-format
 msgid "key %s: unsupported public key algorithm on user ID \"%s\"\n"
 msgstr ""
-"chave %08lX: algoritmo de chave pública non soportado no ID de usuario \"%s"
+"chave %08lX: algoritmo de chave pública non soportado no ID de usuario \"%s"
 "\"\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid self-signature on user ID \"%s\"\n"
 msgstr ""
-"chave %08lX: auto-sinatura non válida no identificadr de usuario \"%s\"\n"
+"chave %08lX: auto-sinatura non válida no identificadr de usuario \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "key %s: unsupported public key algorithm\n"
-msgstr "chave %08lX: algoritmo de chave pública non soportado\n"
+msgstr "chave %08lX: algoritmo de chave pública non soportado\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid direct key signature\n"
@@ -2901,27 +2910,27 @@ msgstr "chave %08lX: engadiuse unha sinatura de chave directa\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for key binding\n"
-msgstr "chave %08lX: non hai sub-chave para a ligazón da chave\n"
+msgstr "chave %08lX: non hai sub-chave para a ligazón da chave\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid subkey binding\n"
-msgstr "chave %08lX: ligazón de sub-chave incorrecta\n"
+msgstr "chave %08lX: ligazón de sub-chave incorrecta\n"
 
 #, fuzzy, c-format
 msgid "key %s: removed multiple subkey binding\n"
-msgstr "chave %08lX: eliminouse unha ligazón de sub-chave múltiple\n"
+msgstr "chave %08lX: eliminouse unha ligazón de sub-chave múltiple\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for key revocation\n"
-msgstr "chave %08lX: non hai unha sub-chave para a revocación da chave\n"
+msgstr "chave %08lX: non hai unha sub-chave para a revocación da chave\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid subkey revocation\n"
-msgstr "chave %08lX: revocación de sub-chave non válida\n"
+msgstr "chave %08lX: revocación de sub-chave non válida\n"
 
 #, fuzzy, c-format
 msgid "key %s: removed multiple subkey revocation\n"
-msgstr "chave %08lX: eliminouse a revocación de sub-chaves múltiples\n"
+msgstr "chave %08lX: eliminouse a revocación de sub-chaves múltiples\n"
 
 #, fuzzy, c-format
 msgid "key %s: skipped user ID \"%s\"\n"
@@ -2937,11 +2946,11 @@ msgstr "chave %08lX: sinatura non exportable (clase %02x) - omitida\n"
 
 #, fuzzy, c-format
 msgid "key %s: revocation certificate at wrong place - skipped\n"
-msgstr "chave %08lX: certificado de revocación no lugar erróneo - omitido\n"
+msgstr "chave %08lX: certificado de revocación no lugar erróneo - omitido\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid revocation certificate: %s - skipped\n"
-msgstr "chave %08lX: certificado de revocación incorrecto: %s - omitido\n"
+msgstr "chave %08lX: certificado de revocación incorrecto: %s - omitido\n"
 
 #, fuzzy, c-format
 msgid "key %s: subkey signature in wrong place - skipped\n"
@@ -2958,18 +2967,18 @@ msgstr "chave %08lX: ID de usuario duplicado detectado - mesturado\n"
 #, fuzzy, c-format
 msgid "WARNING: key %s may be revoked: fetching revocation key %s\n"
 msgstr ""
-"AVISO: a chave %08lX pode estar revocada: obtendo a chave de revocación "
+"AVISO: a chave %08lX pode estar revocada: obtendo a chave de revocación "
 "%08lX\n"
 
 #, fuzzy, c-format
 msgid "WARNING: key %s may be revoked: revocation key %s not present.\n"
 msgstr ""
-"AVISO: a chave %08lX pode estar revocada: chave de revocación %08lX "
+"AVISO: a chave %08lX pode estar revocada: chave de revocación %08lX "
 "ausente.\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" revocation certificate added\n"
-msgstr "chave %08lX: \"%s\" certificado de revocación engadido\n"
+msgstr "chave %08lX: \"%s\" certificado de revocación engadido\n"
 
 #, fuzzy, c-format
 msgid "key %s: direct key signature added\n"
@@ -3003,17 +3012,21 @@ msgstr "erro lendo `%s': %s\n"
 
 #, c-format
 msgid "failed to rebuild keyring cache: %s\n"
-msgstr "fallo ao reconstruí-la caché de chaveiros: %s\n"
+msgstr "fallo ao reconstruí-la caché de chaveiros: %s\n"
 
 msgid "[revocation]"
-msgstr "[revocación]"
+msgstr "[revocación]"
 
 msgid "[self-signature]"
 msgstr "[auto-sinatura]"
 
 #, fuzzy, c-format
+msgid "error allocating memory: %s\n"
+msgstr "erro ao crea-lo chaveiro `%s': %s\n"
+
+#, fuzzy, c-format
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
-msgstr "chave %08lX: algoritmo de chave pública non soportado\n"
+msgstr "chave %08lX: algoritmo de chave pública non soportado\n"
 
 #, fuzzy, c-format
 msgid ""
@@ -3026,13 +3039,13 @@ msgstr "Sinatura correcta de \""
 
 #, fuzzy, c-format
 msgid "key %s:\n"
-msgstr "omítese `%s': %s\n"
+msgstr "omítese `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "%d duplicate signature removed\n"
 msgid_plural "%d duplicate signatures removed\n"
-msgstr[0] "O ID de usuario \"%s\" está revocado."
-msgstr[1] "O ID de usuario \"%s\" está revocado."
+msgstr[0] "O ID de usuario \"%s\" está revocado."
+msgstr[1] "O ID de usuario \"%s\" está revocado."
 
 #, fuzzy, c-format
 #| msgid "1 signature not checked due to a missing key\n"
@@ -3045,8 +3058,8 @@ msgstr[1] "1 sinatura non verificada debido a unha chave que falta\n"
 #| msgid "%d bad signatures\n"
 msgid "%d bad signature\n"
 msgid_plural "%d bad signatures\n"
-msgstr[0] "%d sinaturas erróneas\n"
-msgstr[1] "%d sinaturas erróneas\n"
+msgstr[0] "%d sinaturas erróneas\n"
+msgstr[1] "%d sinaturas erróneas\n"
 
 #, fuzzy, c-format
 msgid "%d signature reordered\n"
@@ -3067,17 +3080,17 @@ msgid ""
 "(by looking at passports, checking fingerprints from different sources, "
 "etc.)\n"
 msgstr ""
-"Por favor, decida canto confía en que este usuario verifique\n"
+"Por favor, decida canto confía en que este usuario verifique\n"
 "correctamente as chaves de outros usuarios (mirando nos pasaportes,\n"
 "comprobando pegadas dactilares de varias fontes...).\n"
 
 #, fuzzy, c-format
 msgid "  %d = I trust marginally\n"
-msgstr " %d = Confío marxinalmente\n"
+msgstr " %d = Confío marxinalmente\n"
 
 #, fuzzy, c-format
 msgid "  %d = I trust fully\n"
-msgstr " %d = Confío totalmente\n"
+msgstr " %d = Confío totalmente\n"
 
 msgid ""
 "Please enter the depth of this trust signature.\n"
@@ -3094,29 +3107,29 @@ msgstr ""
 
 #, c-format
 msgid "User ID \"%s\" is revoked."
-msgstr "O ID de usuario \"%s\" está revocado."
+msgstr "O ID de usuario \"%s\" está revocado."
 
 msgid "Are you sure you still want to sign it? (y/N) "
-msgstr "¿Está seguro de que quere asinalo? (s/N) "
+msgstr "¿Está seguro de que quere asinalo? (s/N) "
 
 msgid "  Unable to sign.\n"
 msgstr " Non se puido asinar.\n"
 
 #, c-format
 msgid "User ID \"%s\" is expired."
-msgstr "O ID de usuario \"%s\" está caducado."
+msgstr "O ID de usuario \"%s\" está caducado."
 
 #, c-format
 msgid "User ID \"%s\" is not self-signed."
-msgstr "O ID de usuario \"%s\" non está asinado por el mesmo."
+msgstr "O ID de usuario \"%s\" non está asinado por el mesmo."
 
 #, fuzzy, c-format
 msgid "User ID \"%s\" is signable.  "
-msgstr "O ID de usuario \"%s\" non está asinado por el mesmo."
+msgstr "O ID de usuario \"%s\" non está asinado por el mesmo."
 
 #, fuzzy
 msgid "Sign it? (y/N) "
-msgstr "¿Asinar de verdade? "
+msgstr "¿Asinar de verdade? "
 
 #, c-format
 msgid ""
@@ -3124,32 +3137,32 @@ msgid ""
 "is a PGP 2.x-style signature.\n"
 msgstr ""
 "A auto-sinatura de \"%s\"\n"
-"é unha sinatura tipo PGP 2.x\n"
+"é unha sinatura tipo PGP 2.x\n"
 
 msgid "Do you want to promote it to an OpenPGP self-signature? (y/N) "
-msgstr "¿Quere promovela a unha auto-sinatura OpenPGP? (s/N) "
+msgstr "¿Quere promovela a unha auto-sinatura OpenPGP? (s/N) "
 
 #, c-format
 msgid ""
 "Your current signature on \"%s\"\n"
 "has expired.\n"
 msgstr ""
-"A súa sinatura actual en \"%s\"\n"
+"A súa sinatura actual en \"%s\"\n"
 "caducou.\n"
 
 msgid "Do you want to issue a new signature to replace the expired one? (y/N) "
-msgstr "¿Quere emitir unha nova sinatura que substitúa á caducada? (s/N) "
+msgstr "¿Quere emitir unha nova sinatura que substitúa á caducada? (s/N) "
 
 #, c-format
 msgid ""
 "Your current signature on \"%s\"\n"
 "is a local signature.\n"
 msgstr ""
-"A súa sinatura actual en \"%s\"\n"
-"é unha sinatura local.\n"
+"A súa sinatura actual en \"%s\"\n"
+"é unha sinatura local.\n"
 
 msgid "Do you want to promote it to a full exportable signature? (y/N) "
-msgstr "¿Quere promovela a sinatura totalmente exportable? (s/N) "
+msgstr "¿Quere promovela a sinatura totalmente exportable? (s/N) "
 
 #, fuzzy, c-format
 msgid "\"%s\" was already locally signed by key %s\n"
@@ -3160,28 +3173,28 @@ msgid "\"%s\" was already signed by key %s\n"
 msgstr "\"%s\" xa estaba asinado coa chave %08lX\n"
 
 msgid "Do you want to sign it again anyway? (y/N) "
-msgstr "¿Quere asinalo outra vez de tódolos xeitos? (s/N) "
+msgstr "¿Quere asinalo outra vez de tódolos xeitos? (s/N) "
 
 #, fuzzy, c-format
 msgid "Nothing to sign with key %s\n"
 msgstr "Nada que asinar coa chave %08lX\n"
 
 msgid "This key has expired!"
-msgstr "¡Esta chave caducou!"
+msgstr "¡Esta chave caducou!"
 
 #, c-format
 msgid "This key is due to expire on %s.\n"
 msgstr "Esta chave ha caducar o %s.\n"
 
 msgid "Do you want your signature to expire at the same time? (Y/n) "
-msgstr "¿Quere que a súa sinatura caduque ao mesmo tempo? (S/n) "
+msgstr "¿Quere que a súa sinatura caduque ao mesmo tempo? (S/n) "
 
 msgid ""
 "How carefully have you verified the key you are about to sign actually "
 "belongs\n"
 "to the person named above?  If you don't know what to answer, enter \"0\".\n"
 msgstr ""
-"¿Con canto tino comprobou que a chave que vai asinar realmente pertence á\n"
+"¿Con canto tino comprobou que a chave que vai asinar realmente pertence á\n"
 "persoa de enriba? Se non sabe que respostar, introduza \"0\".\n"
 
 #, c-format
@@ -3194,23 +3207,23 @@ msgstr "   (1) Non o comprobei en absoluto.%s\n"
 
 #, c-format
 msgid "   (2) I have done casual checking.%s\n"
-msgstr "   (2) Fixen algunhas comprobacións.%s\n"
+msgstr "   (2) Fixen algunhas comprobacións.%s\n"
 
 #, c-format
 msgid "   (3) I have done very careful checking.%s\n"
-msgstr "   (3) Fixen comprobacións moi exhaustivas.%s\n"
+msgstr "   (3) Fixen comprobacións moi exhaustivas.%s\n"
 
 #, fuzzy
 msgid "Your selection? (enter '?' for more information): "
-msgstr "¿A súa elección? (introduza '?' para ter máis información): "
+msgstr "¿A súa elección? (introduza '?' para ter máis información): "
 
 #, fuzzy, c-format
 msgid ""
 "Are you sure that you want to sign this key with your\n"
 "key \"%s\" (%s)\n"
 msgstr ""
-"¿Esta seguro de que quere asinar esta chave\n"
-"coa súa chave: \""
+"¿Esta seguro de que quere asinar esta chave\n"
+"coa súa chave: \""
 
 #, fuzzy
 msgid "This will be a self-signature.\n"
@@ -3262,7 +3275,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Really sign? (y/N) "
-msgstr "¿Asinar de verdade? "
+msgstr "¿Asinar de verdade? "
 
 #, c-format
 msgid "signing failed: %s\n"
@@ -3277,7 +3290,7 @@ msgid "key %s: error changing passphrase: %s\n"
 msgstr "erro ao crea-lo contrasinal: %s\n"
 
 msgid "save and quit"
-msgstr "gardar e saír"
+msgstr "gardar e saír"
 
 #, fuzzy
 msgid "show key fingerprint"
@@ -3285,7 +3298,7 @@ msgstr "amosar fingerprint"
 
 #, fuzzy
 msgid "show the keygrip"
-msgstr "Notación de sinaturas: "
+msgstr "Notación de sinaturas: "
 
 msgid "list key and user IDs"
 msgstr "listar chave e IDs de usuario"
@@ -3319,7 +3332,7 @@ msgid "add a user ID"
 msgstr "engadir un ID de usuario"
 
 msgid "add a photo ID"
-msgstr "engadir unha identificación fotográfica"
+msgstr "engadir unha identificación fotográfica"
 
 #, fuzzy
 msgid "delete selected user IDs"
@@ -3343,17 +3356,17 @@ msgid "delete selected subkeys"
 msgstr "borrar unha chave secundaria"
 
 msgid "add a revocation key"
-msgstr "engadir unha chave de revocación"
+msgstr "engadir unha chave de revocación"
 
 #, fuzzy
 msgid "delete signatures from the selected user IDs"
 msgstr ""
-"¿Seguro que quere actualiza-las preferencias dos IDs de usuario "
+"¿Seguro que quere actualiza-las preferencias dos IDs de usuario "
 "seleccionados? "
 
 #, fuzzy
 msgid "change the expiration date for the key or selected subkeys"
-msgstr "Non pode cambia-la data de expiración dunha chave v3\n"
+msgstr "Non pode cambia-la data de expiración dunha chave v3\n"
 
 #, fuzzy
 msgid "flag the selected user ID as primary"
@@ -3368,7 +3381,7 @@ msgstr "lista-las preferencias (moitos datos)"
 #, fuzzy
 msgid "set preference list for the selected user IDs"
 msgstr ""
-"¿Seguro que quere actualiza-las preferencias dos IDs de usuario "
+"¿Seguro que quere actualiza-las preferencias dos IDs de usuario "
 "seleccionados? "
 
 #, fuzzy
@@ -3378,7 +3391,7 @@ msgstr "non se puido analisa-lo URI do servidor de chaves\n"
 #, fuzzy
 msgid "set a notation for the selected user IDs"
 msgstr ""
-"¿Seguro que quere actualiza-las preferencias dos IDs de usuario "
+"¿Seguro que quere actualiza-las preferencias dos IDs de usuario "
 "seleccionados? "
 
 msgid "change the passphrase"
@@ -3389,7 +3402,7 @@ msgstr "cambia-la confianza sobre o dono"
 
 #, fuzzy
 msgid "revoke signatures on the selected user IDs"
-msgstr "¿Seguro de que quere revocar tódolos IDs de usuario seleccionados? "
+msgstr "¿Seguro de que quere revocar tódolos IDs de usuario seleccionados? "
 
 #, fuzzy
 msgid "revoke selected user IDs"
@@ -3409,7 +3422,7 @@ msgstr "deshabilitar unha chave"
 
 #, fuzzy
 msgid "show selected photo IDs"
-msgstr "amosa-la identificación fotográfica"
+msgstr "amosa-la identificación fotográfica"
 
 msgid "compact unusable user IDs and remove unusable signatures from key"
 msgstr ""
@@ -3418,10 +3431,10 @@ msgid "compact unusable user IDs and remove all signatures from key"
 msgstr ""
 
 msgid "Secret key is available.\n"
-msgstr "A chave secreta está disponible.\n"
+msgstr "A chave secreta está disponible.\n"
 
 msgid "Need the secret key to do this.\n"
-msgstr "Cómpre a chave secreta para facer isto.\n"
+msgstr "Cómpre a chave secreta para facer isto.\n"
 
 msgid ""
 "* The 'sign' command may be prefixed with an 'l' for local signatures "
@@ -3431,22 +3444,22 @@ msgid ""
 msgstr ""
 
 msgid "Key is revoked."
-msgstr "A chave está revocada."
+msgstr "A chave está revocada."
 
 #, fuzzy
 msgid "Really sign all user IDs? (y/N) "
-msgstr "¿Seguro de que quere asinar tódolos IDs de usuario? "
+msgstr "¿Seguro de que quere asinar tódolos IDs de usuario? "
 
 #, fuzzy
 msgid "Really sign all text user IDs? (y/N) "
-msgstr "¿Seguro de que quere asinar tódolos IDs de usuario? "
+msgstr "¿Seguro de que quere asinar tódolos IDs de usuario? "
 
 msgid "Hint: Select the user IDs to sign\n"
 msgstr "Pista: seleccione os IDs de usuario que desexa asinar\n"
 
 #, fuzzy, c-format
 msgid "Unknown signature type '%s'\n"
-msgstr "clase de sinatura descoñecida"
+msgstr "clase de sinatura descoñecida"
 
 #, c-format
 msgid "This command is not allowed while in %s mode.\n"
@@ -3460,21 +3473,21 @@ msgid "(Use the '%s' command.)\n"
 msgstr ""
 
 msgid "You can't delete the last user ID!\n"
-msgstr "¡Non pode borra-lo último ID de usuario!\n"
+msgstr "¡Non pode borra-lo último ID de usuario!\n"
 
 #, fuzzy
 msgid "Really remove all selected user IDs? (y/N) "
-msgstr "¿Seguro de que quere borrar tódolos IDs de usuario seleccionados? "
+msgstr "¿Seguro de que quere borrar tódolos IDs de usuario seleccionados? "
 
 #, fuzzy
 msgid "Really remove this user ID? (y/N) "
-msgstr "¿Seguro de que quere borrar este ID de usuario? "
+msgstr "¿Seguro de que quere borrar este ID de usuario? "
 
 #. TRANSLATORS: Please take care: This is about
 #. moving the key and not about removing it.
 #, fuzzy
 msgid "Really move the primary key? (y/N) "
-msgstr "¿Seguro de que quere borrar este ID de usuario? "
+msgstr "¿Seguro de que quere borrar este ID de usuario? "
 
 #, fuzzy
 msgid "You must select exactly one key.\n"
@@ -3496,31 +3509,31 @@ msgstr "Debe seleccionar alomenos unha chave.\n"
 
 #, fuzzy
 msgid "Do you really want to delete the selected keys? (y/N) "
-msgstr "¿Seguro de que quere borra-las chaves seleccionadas? "
+msgstr "¿Seguro de que quere borra-las chaves seleccionadas? "
 
 #, fuzzy
 msgid "Do you really want to delete this key? (y/N) "
-msgstr "¿Seguro de que quere borrar esta chave? "
+msgstr "¿Seguro de que quere borrar esta chave? "
 
 #, fuzzy
 msgid "Really revoke all selected user IDs? (y/N) "
-msgstr "¿Seguro de que quere revocar tódolos IDs de usuario seleccionados? "
+msgstr "¿Seguro de que quere revocar tódolos IDs de usuario seleccionados? "
 
 #, fuzzy
 msgid "Really revoke this user ID? (y/N) "
-msgstr "¿Seguro de que quere revocar este ID de usuario? "
+msgstr "¿Seguro de que quere revocar este ID de usuario? "
 
 #, fuzzy
 msgid "Do you really want to revoke the entire key? (y/N) "
-msgstr "¿Realmente quere revocar esta chave? "
+msgstr "¿Realmente quere revocar esta chave? "
 
 #, fuzzy
 msgid "Do you really want to revoke the selected subkeys? (y/N) "
-msgstr "¿Realmente quere revoca-las chaves seleccionadas? "
+msgstr "¿Realmente quere revoca-las chaves seleccionadas? "
 
 #, fuzzy
 msgid "Do you really want to revoke this subkey? (y/N) "
-msgstr "¿Realmente quere revocar esta chave? "
+msgstr "¿Realmente quere revocar esta chave? "
 
 msgid "Owner trust may not be set while using a user provided trust database\n"
 msgstr ""
@@ -3532,24 +3545,24 @@ msgstr "estabrece-la lista de preferencias"
 #, fuzzy
 msgid "Really update the preferences for the selected user IDs? (y/N) "
 msgstr ""
-"¿Seguro que quere actualiza-las preferencias dos IDs de usuario "
+"¿Seguro que quere actualiza-las preferencias dos IDs de usuario "
 "seleccionados? "
 
 #, fuzzy
 msgid "Really update the preferences? (y/N) "
-msgstr "¿Realmente desexa actualiza-las preferencias? "
+msgstr "¿Realmente desexa actualiza-las preferencias? "
 
 #, fuzzy
 msgid "Save changes? (y/N) "
-msgstr "¿Garda-los cambios? "
+msgstr "¿Garda-los cambios? "
 
 #, fuzzy
 msgid "Quit without saving? (y/N) "
-msgstr "¿Saír sin gardar? "
+msgstr "¿Saír sin gardar? "
 
 #, c-format
 msgid "update failed: %s\n"
-msgstr "a actualización fallou: %s\n"
+msgstr "a actualización fallou: %s\n"
 
 msgid "Key not changed so no update needed.\n"
 msgstr "A chave non cambiou, polo que non fai falla actualizar.\n"
@@ -3557,11 +3570,11 @@ msgstr "A chave non cambiou, polo que non fai falla actualizar.\n"
 #, fuzzy, c-format
 #| msgid "Key generation failed: %s\n"
 msgid "User ID revocation failed: %s\n"
-msgstr "A xeración da chave fallou: %s\n"
+msgstr "A xeración da chave fallou: %s\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" is not a fingerprint\n"
-msgstr "erro: pegada dactilar non válida\n"
+msgstr "erro: pegada dactilar non válida\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" is not the primary fingerprint\n"
@@ -3570,7 +3583,7 @@ msgstr "non se puido inicializa-la base de datos de confianzas: %s\n"
 #, fuzzy, c-format
 #| msgid "invalid value\n"
 msgid "Invalid user ID '%s': %s\n"
-msgstr "valor non válido\n"
+msgstr "valor non válido\n"
 
 #, fuzzy
 #| msgid "No such user ID.\n"
@@ -3585,7 +3598,7 @@ msgid "Digest: "
 msgstr "Resumo: "
 
 msgid "Features: "
-msgstr "Características: "
+msgstr "Características: "
 
 msgid "Keyserver no-modify"
 msgstr ""
@@ -3595,7 +3608,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Notations: "
-msgstr "Notación: "
+msgstr "Notación: "
 
 msgid "There are no preferences on a PGP 2.x-style user ID.\n"
 msgstr "Non hai preferencias nun ID de usuario estilo PGP 2.x.\n"
@@ -3644,13 +3657,13 @@ msgid "validity: %s"
 msgstr ""
 
 msgid "This key has been disabled"
-msgstr "Esta chave está desactivada"
+msgstr "Esta chave está desactivada"
 
 msgid ""
 "Please note that the shown key validity is not necessarily correct\n"
 "unless you restart the program.\n"
 msgstr ""
-"Teña en conta que a validez da chave amosada non é necesariamente\n"
+"Teña en conta que a validez da chave amosada non é necesariamente\n"
 "correcta a menos que reinicie o programa.\n"
 
 #, fuzzy
@@ -3665,7 +3678,7 @@ msgid ""
 "WARNING: no user ID has been marked as primary.  This command may\n"
 "              cause a different user ID to become the assumed primary.\n"
 msgstr ""
-"AVISO: non se marcou ningún ID de usuario coma primario. Esta orde pode\n"
+"AVISO: non se marcou ningún ID de usuario coma primario. Esta orde pode\n"
 "              facer que un ID de usuario diferente se converta no primario.\n"
 
 msgid "WARNING: Your encryption subkey expires soon.\n"
@@ -3674,38 +3687,38 @@ msgstr ""
 #, fuzzy
 #| msgid "You can't change the expiration date of a v3 key\n"
 msgid "You may want to change its expiration date too.\n"
-msgstr "Non pode cambia-la data de expiración dunha chave v3\n"
+msgstr "Non pode cambia-la data de expiración dunha chave v3\n"
 
 msgid ""
 "WARNING: This is a PGP2-style key.  Adding a photo ID may cause some "
 "versions\n"
 "         of PGP to reject this key.\n"
 msgstr ""
-"AVISO: Esta é unha chave de estilo PGP2. Se engade unha identificación\n"
-"       fotográfica algunhas versións de PGP han rexeitar esta chave.\n"
+"AVISO: Esta é unha chave de estilo PGP2. Se engade unha identificación\n"
+"       fotográfica algunhas versións de PGP han rexeitar esta chave.\n"
 
 msgid "Are you sure you still want to add it? (y/N) "
-msgstr "¿Está seguro de que quere engadila? (s/N) "
+msgstr "¿Está seguro de que quere engadila? (s/N) "
 
 msgid "You may not add a photo ID to a PGP2-style key.\n"
 msgstr ""
-"Non pode engadir unha identificación fotográfica a unha chave de estilo "
+"Non pode engadir unha identificación fotográfica a unha chave de estilo "
 "PGP2.\n"
 
 msgid "Such a user ID already exists on this key!\n"
 msgstr ""
 
 msgid "Delete this good signature? (y/N/q)"
-msgstr "¿Borrar esta sinatura correcta? (s/N/q)"
+msgstr "¿Borrar esta sinatura correcta? (s/N/q)"
 
 msgid "Delete this invalid signature? (y/N/q)"
-msgstr "¿Borrar esta sinatura incorrecta? (s/N/q)"
+msgstr "¿Borrar esta sinatura incorrecta? (s/N/q)"
 
 msgid "Delete this unknown signature? (y/N/q)"
-msgstr "¿Borrar esta sinatura descoñecida? (s/N/q)"
+msgstr "¿Borrar esta sinatura descoñecida? (s/N/q)"
 
 msgid "Really delete this self-signature? (y/N)"
-msgstr "¿Realmente quere borrar esta auto-sinatura? (s/N)"
+msgstr "¿Realmente quere borrar esta auto-sinatura? (s/N)"
 
 #, fuzzy, c-format
 #| msgid "Deleted %d signature.\n"
@@ -3719,34 +3732,34 @@ msgstr "Non se borrou nada.\n"
 
 #, fuzzy
 msgid "invalid"
-msgstr "armadura non válida"
+msgstr "armadura non válida"
 
 #, fuzzy, c-format
 msgid "User ID \"%s\" compacted: %s\n"
-msgstr "O ID de usuario \"%s\" está revocado."
+msgstr "O ID de usuario \"%s\" está revocado."
 
 #, fuzzy, c-format
 msgid "User ID \"%s\": %d signature removed\n"
 msgid_plural "User ID \"%s\": %d signatures removed\n"
-msgstr[0] "O ID de usuario \"%s\" está revocado."
-msgstr[1] "O ID de usuario \"%s\" está revocado."
+msgstr[0] "O ID de usuario \"%s\" está revocado."
+msgstr[1] "O ID de usuario \"%s\" está revocado."
 
 #, fuzzy, c-format
 msgid "User ID \"%s\": already minimized\n"
-msgstr "o ID de usuario \"%s\" xa está revocado\n"
+msgstr "o ID de usuario \"%s\" xa está revocado\n"
 
 #, fuzzy, c-format
 msgid "User ID \"%s\": already clean\n"
-msgstr "o ID de usuario \"%s\" xa está revocado\n"
+msgstr "o ID de usuario \"%s\" xa está revocado\n"
 
 msgid ""
 "WARNING: This is a PGP 2.x-style key.  Adding a designated revoker may "
 "cause\n"
 "         some versions of PGP to reject this key.\n"
 msgstr ""
-"AVISO: Esta é unha chave de estilo PGP 2.x. Se engade un revocador "
+"AVISO: Esta é unha chave de estilo PGP 2.x. Se engade un revocador "
 "designado\n"
-"       pode facer que algunhas versións de PGP rexeiten esta chave.\n"
+"       pode facer que algunhas versións de PGP rexeiten esta chave.\n"
 
 msgid "You may not add a designated revoker to a PGP 2.x-style key.\n"
 msgstr ""
@@ -3764,40 +3777,40 @@ msgstr "non se pode nomear unha chave coma o seu propio revocador designado\n"
 
 #, fuzzy
 msgid "this key has already been designated as a revoker\n"
-msgstr "AVISO: ¡Esta chave está revocada polo propietario!\n"
+msgstr "AVISO: ¡Esta chave está revocada polo propietario!\n"
 
 msgid "WARNING: appointing a key as a designated revoker cannot be undone!\n"
 msgstr ""
-"AVISO: ¡o nomeamento dunha chave coma o seu propio revocador designado non "
+"AVISO: Â¡o nomeamento dunha chave coma o seu propio revocador designado non "
 "se pode desfacer!\n"
 
 #, fuzzy
 msgid ""
 "Are you sure you want to appoint this key as a designated revoker? (y/N) "
 msgstr ""
-"¿Está seguro de que quere nomear esta chave coma revocador designado? (s/N): "
+"¿Está seguro de que quere nomear esta chave coma revocador designado? (s/N): "
 
 #, fuzzy
 msgid ""
 "Are you sure you want to change the expiration time for multiple subkeys? (y/"
 "N) "
 msgstr ""
-"¿Está seguro de que quere nomear esta chave coma revocador designado? (s/N): "
+"¿Está seguro de que quere nomear esta chave coma revocador designado? (s/N): "
 
 #, fuzzy
 msgid "Changing expiration time for a subkey.\n"
-msgstr "Cambiando a data de expiración para a chave secundaria.\n"
+msgstr "Cambiando a data de expiración para a chave secundaria.\n"
 
 msgid "Changing expiration time for the primary key.\n"
-msgstr "Cambiando a data de expiración da chave primaria.\n"
+msgstr "Cambiando a data de expiración da chave primaria.\n"
 
 msgid "You can't change the expiration date of a v3 key\n"
-msgstr "Non pode cambia-la data de expiración dunha chave v3\n"
+msgstr "Non pode cambia-la data de expiración dunha chave v3\n"
 
 #, fuzzy, c-format
 msgid "signing subkey %s is already cross-certified\n"
 msgstr ""
-"AVISO: ¡o nomeamento dunha chave coma o seu propio revocador designado non "
+"AVISO: Â¡o nomeamento dunha chave coma o seu propio revocador designado non "
 "se pode desfacer!\n"
 
 #, c-format
@@ -3816,35 +3829,35 @@ msgstr ""
 
 #, fuzzy
 msgid "Are you sure you want to replace it? (y/N) "
-msgstr "¿Está seguro de que quere empregala (s/N)? "
+msgstr "¿Está seguro de que quere empregala (s/N)? "
 
 #, fuzzy
 msgid "Are you sure you want to delete it? (y/N) "
-msgstr "¿Está seguro de que quere empregala (s/N)? "
+msgstr "¿Está seguro de que quere empregala (s/N)? "
 
 #, fuzzy
 msgid "Enter the notation: "
-msgstr "Notación de sinaturas: "
+msgstr "Notación de sinaturas: "
 
 #, fuzzy
 msgid "Proceed? (y/N) "
-msgstr "¿Sobrescribir? (s/N) "
+msgstr "¿Sobrescribir? (s/N) "
 
 #, c-format
 msgid "No user ID with index %d\n"
-msgstr "Non hai ID de usuario con índice %d\n"
+msgstr "Non hai ID de usuario con índice %d\n"
 
 #, fuzzy, c-format
 msgid "No user ID with hash %s\n"
-msgstr "Non hai ID de usuario con índice %d\n"
+msgstr "Non hai ID de usuario con índice %d\n"
 
 #, fuzzy, c-format
 msgid "No subkey with key ID '%s'.\n"
-msgstr "Non hai ID de usuario con índice %d\n"
+msgstr "Non hai ID de usuario con índice %d\n"
 
 #, fuzzy, c-format
 msgid "No subkey with index %d\n"
-msgstr "Non hai ID de usuario con índice %d\n"
+msgstr "Non hai ID de usuario con índice %d\n"
 
 #, fuzzy, c-format
 msgid "user ID: \"%s\"\n"
@@ -3862,10 +3875,10 @@ msgid "This signature expired on %s.\n"
 msgstr "Esta sinatura caducou o %s.\n"
 
 msgid "Are you sure you still want to revoke it? (y/N) "
-msgstr "¿Está seguro de que quere revocala? (s/N) "
+msgstr "¿Está seguro de que quere revocala? (s/N) "
 
 msgid "Create a revocation certificate for this signature? (y/N) "
-msgstr "¿Crear un certificado de revocación para esta sinatura? (s/N) "
+msgstr "¿Crear un certificado de revocación para esta sinatura? (s/N) "
 
 #, fuzzy
 msgid "Not signed by you.\n"
@@ -3884,10 +3897,10 @@ msgid "revoked by your key %s on %s\n"
 msgstr "   revocada por %08lX no %s\n"
 
 msgid "You are about to revoke these signatures:\n"
-msgstr "Está a punto de revocar estas sinaturas:\n"
+msgstr "Está a punto de revocar estas sinaturas:\n"
 
 msgid "Really create the revocation certificates? (y/N) "
-msgstr "¿Realmente desexa crea-los certificados de revocación? (s/N) "
+msgstr "¿Realmente desexa crea-los certificados de revocación? (s/N) "
 
 msgid "no secret key\n"
 msgstr "non hai chave secreta\n"
@@ -3898,7 +3911,7 @@ msgstr ""
 
 #, c-format
 msgid "user ID \"%s\" is already revoked\n"
-msgstr "o ID de usuario \"%s\" xa está revocado\n"
+msgstr "o ID de usuario \"%s\" xa está revocado\n"
 
 #, c-format
 msgid "WARNING: a user ID signature is dated %d seconds in the future\n"
@@ -3907,16 +3920,16 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "Key %s is already revoked.\n"
-msgstr "o ID de usuario \"%s\" xa está revocado\n"
+msgstr "o ID de usuario \"%s\" xa está revocado\n"
 
 #, fuzzy, c-format
 msgid "Subkey %s is already revoked.\n"
-msgstr "o ID de usuario \"%s\" xa está revocado\n"
+msgstr "o ID de usuario \"%s\" xa está revocado\n"
 
 #, fuzzy, c-format
 msgid "Displaying %s photo ID of size %ld for key %s (uid %d)\n"
 msgstr ""
-"Amosando a id. fotográfica %s de tamaño %ld da chave 0x%08lX (uid %d)\n"
+"Amosando a id. fotográfica %s de tamaño %ld da chave 0x%08lX (uid %d)\n"
 
 #, fuzzy, c-format
 msgid "preference '%s' duplicated\n"
@@ -3936,7 +3949,7 @@ msgstr "demasiadas preferencias `%c'\n"
 
 #, fuzzy, c-format
 msgid "invalid item '%s' in preference string\n"
-msgstr "caracter non válido na cadea de preferencias\n"
+msgstr "caracter non válido na cadea de preferencias\n"
 
 msgid "writing direct signature\n"
 msgstr "escribindo unha sinatura directa\n"
@@ -3949,11 +3962,11 @@ msgstr "escribindo unha sinatura que liga a chave\n"
 
 #, c-format
 msgid "keysize invalid; using %u bits\n"
-msgstr "tamaño de chave non válido; empregando %u bits\n"
+msgstr "tamaño de chave non válido; empregando %u bits\n"
 
 #, c-format
 msgid "keysize rounded up to %u bits\n"
-msgstr "tamaño de chave redondeado a %u bits\n"
+msgstr "tamaño de chave redondeado a %u bits\n"
 
 msgid ""
 "WARNING: some OpenPGP programs can't handle a DSA key with this digest size\n"
@@ -3999,7 +4012,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "   (%c) Toggle the encrypt capability\n"
-msgstr "   (%d) ElGamal (só cifrar)\n"
+msgstr "   (%d) ElGamal (só cifrar)\n"
 
 #, c-format
 msgid "   (%c) Toggle the authenticate capability\n"
@@ -4022,27 +4035,27 @@ msgstr "   (%d) DSA e ElGamal (por defecto)\n"
 
 #, c-format
 msgid "   (%d) DSA (sign only)\n"
-msgstr "   (%d) DSA (só asinar)\n"
+msgstr "   (%d) DSA (só asinar)\n"
 
 #, c-format
 msgid "   (%d) RSA (sign only)\n"
-msgstr "   (%d) RSA (só asinar)\n"
+msgstr "   (%d) RSA (só asinar)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) Elgamal (encrypt only)\n"
-msgstr "   (%d) ElGamal (só cifrar)\n"
+msgstr "   (%d) ElGamal (só cifrar)\n"
 
 #, c-format
 msgid "   (%d) RSA (encrypt only)\n"
-msgstr "   (%d) RSA (só cifrar)\n"
+msgstr "   (%d) RSA (só cifrar)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) DSA (set your own capabilities)\n"
-msgstr "   (%d) RSA (só cifrar)\n"
+msgstr "   (%d) RSA (só cifrar)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) RSA (set your own capabilities)\n"
-msgstr "   (%d) RSA (só cifrar)\n"
+msgstr "   (%d) RSA (só cifrar)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) ECC and ECC\n"
@@ -4051,31 +4064,31 @@ msgstr "   (%d) DSA e ElGamal (por defecto)\n"
 #, fuzzy, c-format
 #| msgid "   (%d) DSA (sign only)\n"
 msgid "  (%d) ECC (sign only)\n"
-msgstr "   (%d) DSA (só asinar)\n"
+msgstr "   (%d) DSA (só asinar)\n"
 
 #, fuzzy, c-format
 msgid "  (%d) ECC (set your own capabilities)\n"
-msgstr "   (%d) RSA (só cifrar)\n"
+msgstr "   (%d) RSA (só cifrar)\n"
 
 #, fuzzy, c-format
 #| msgid "   (%d) RSA (encrypt only)\n"
 msgid "  (%d) ECC (encrypt only)\n"
-msgstr "   (%d) RSA (só cifrar)\n"
+msgstr "   (%d) RSA (só cifrar)\n"
 
 #, fuzzy, c-format
 msgid "  (%d) Existing key\n"
-msgstr "   (%d) RSA (só cifrar)\n"
+msgstr "   (%d) RSA (só cifrar)\n"
 
 #, fuzzy
 msgid "Enter the keygrip: "
-msgstr "Notación de sinaturas: "
+msgstr "Notación de sinaturas: "
 
 msgid "Not a valid keygrip (expecting 40 hex digits)\n"
 msgstr ""
 
 #, fuzzy
 msgid "No key with this keygrip\n"
-msgstr "Non hai ID de usuario con índice %d\n"
+msgstr "Non hai ID de usuario con índice %d\n"
 
 #, fuzzy, c-format
 #| msgid "rounded up to %u bits\n"
@@ -4088,15 +4101,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the subkey? (%u) "
-msgstr "¿Qué tamaño de chave quere? (1024) "
+msgstr "¿Qué tamaño de chave quere? (1024) "
 
 #, fuzzy, c-format
 msgid "What keysize do you want? (%u) "
-msgstr "¿Qué tamaño de chave quere? (1024) "
+msgstr "¿Qué tamaño de chave quere? (1024) "
 
 #, c-format
 msgid "Requested keysize is %u bits\n"
-msgstr "O tamaño de chave requerido son %u bits\n"
+msgstr "O tamaño de chave requerido son %u bits\n"
 
 #, fuzzy
 #| msgid "Please select what kind of key you want:\n"
@@ -4111,9 +4124,9 @@ msgid ""
 "      <n>m = key expires in n months\n"
 "      <n>y = key expires in n years\n"
 msgstr ""
-"Por favor, indique canto tempo debería ser válida a chave.\n"
+"Por favor, indique canto tempo debería ser válida a chave.\n"
 "         0 = a chave non caduca\n"
-"      <n>  = a chave caduca en n días\n"
+"      <n>  = a chave caduca en n días\n"
 "      <n>w = a chave caduca en n semanas\n"
 "      <n>m = a chave caduca en n meses\n"
 "      <n>y = a chave caduca en n anos\n"
@@ -4126,22 +4139,22 @@ msgid ""
 "      <n>m = signature expires in n months\n"
 "      <n>y = signature expires in n years\n"
 msgstr ""
-"Por favor, indique canto tempo debería ser válida a sinatura.\n"
+"Por favor, indique canto tempo debería ser válida a sinatura.\n"
 "         0 = a sinatura non caduca\n"
-"      <n>  = a sinatura caduca en n días\n"
+"      <n>  = a sinatura caduca en n días\n"
 "      <n>w = a sinatura caduca en n semanas\n"
 "      <n>m = a sinatura caduca en n meses\n"
 "      <n>y = a sinatura caduca en n anos\n"
 
 msgid "Key is valid for? (0) "
-msgstr "¿Por canto tempo é válida a chave? (0) "
+msgstr "¿Por canto tempo é válida a chave? (0) "
 
 #, fuzzy, c-format
 msgid "Signature is valid for? (%s) "
-msgstr "¿Por canto tempo é válida a sinatura? (0) "
+msgstr "¿Por canto tempo é válida a sinatura? (0) "
 
 msgid "invalid value\n"
-msgstr "valor non válido\n"
+msgstr "valor non válido\n"
 
 #, fuzzy
 msgid "Key does not expire at all\n"
@@ -4163,12 +4176,12 @@ msgid ""
 "Your system can't display dates beyond 2038.\n"
 "However, it will be correctly handled up to 2106.\n"
 msgstr ""
-"O seu sistema non pode amosar datas máis aló do 2038.\n"
-"Aínda así, hase tratar correctamente ata o 2106.\n"
+"O seu sistema non pode amosar datas máis aló do 2038.\n"
+"Aínda así, hase tratar correctamente ata o 2106.\n"
 
 #, fuzzy
 msgid "Is this correct? (y/N) "
-msgstr "¿Isto é correcto? (s/n) "
+msgstr "¿Isto é correcto? (s/n) "
 
 msgid ""
 "\n"
@@ -4190,7 +4203,7 @@ msgid ""
 "\n"
 msgstr ""
 "\n"
-"Precisa un ID de usuario para identifica-la súa chave; o software constrúe "
+"Precisa un ID de usuario para identifica-la súa chave; o software constrúe "
 "o\n"
 "id de usuario co Nome, un Comentario e un Enderezo de E-mail deste xeito:\n"
 "     \"Heinrich Heime (Der Dichter) <heinrichh@duesseldorf.de>\"\n"
@@ -4200,14 +4213,14 @@ msgid "Real name: "
 msgstr "Nome: "
 
 msgid "Invalid character in name\n"
-msgstr "Caracter non válido no nome\n"
+msgstr "Caracter non válido no nome\n"
 
 #, c-format
 msgid "The characters '%s' and '%s' may not appear in name\n"
 msgstr ""
 
 msgid "Name may not start with a digit\n"
-msgstr "O nome non pode comezar cun díxito\n"
+msgstr "O nome non pode comezar cun díxito\n"
 
 msgid "Name must be at least 5 characters long\n"
 msgstr "O nome debe ter alomenos 5 caracteres\n"
@@ -4216,18 +4229,18 @@ msgid "Email address: "
 msgstr "Enderezo de E-mail: "
 
 msgid "Not a valid email address\n"
-msgstr "Non é un enderezo de e-mail válido\n"
+msgstr "Non é un enderezo de e-mail válido\n"
 
 msgid "Comment: "
 msgstr "Comentario: "
 
 msgid "Invalid character in comment\n"
-msgstr "Carácter non válido no comentario\n"
+msgstr "Carácter non válido no comentario\n"
 
 #, fuzzy, c-format
 #| msgid "You are using the `%s' character set.\n"
 msgid "You are using the '%s' character set.\n"
-msgstr "Está a usa-lo xogo de caracteres `%s'.\n"
+msgstr "Está a usa-lo xogo de caracteres `%s'.\n"
 
 #, c-format
 msgid ""
@@ -4241,7 +4254,7 @@ msgstr ""
 
 msgid "Please don't put the email address into the real name or the comment\n"
 msgstr ""
-"Por favor, non poña o enderezo de correo no nome real ou no comentario\n"
+"Por favor, non poña o enderezo de correo no nome real ou no comentario\n"
 
 #. TRANSLATORS: These are the allowed answers in
 #. lower and uppercase.  Below you will find the matching
@@ -4258,20 +4271,20 @@ msgid "NnCcEeOoQq"
 msgstr "NnCcEeAaSs"
 
 msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
-msgstr "¿Cambia-lo (N)ome, (C)omentario, (E)-mail ou (S)aír? "
+msgstr "¿Cambia-lo (N)ome, (C)omentario, (E)-mail ou (S)aír? "
 
 msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
-msgstr "¿Cambiar (N)ome, (C)omentario, (E)-mail ou (A)ceptar/(S)aír? "
+msgstr "¿Cambiar (N)ome, (C)omentario, (E)-mail ou (A)ceptar/(S)aír? "
 
 #, fuzzy
 #| msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
 msgid "Change (N)ame, (E)mail, or (Q)uit? "
-msgstr "¿Cambia-lo (N)ome, (C)omentario, (E)-mail ou (S)aír? "
+msgstr "¿Cambia-lo (N)ome, (C)omentario, (E)-mail ou (S)aír? "
 
 #, fuzzy
 #| msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
 msgid "Change (N)ame, (E)mail, or (O)kay/(Q)uit? "
-msgstr "¿Cambiar (N)ome, (C)omentario, (E)-mail ou (A)ceptar/(S)aír? "
+msgstr "¿Cambiar (N)ome, (C)omentario, (E)-mail ou (A)ceptar/(S)aír? "
 
 msgid "Please correct the error first\n"
 msgstr "Por favor, corrixa antes o erro\n"
@@ -4282,14 +4295,14 @@ msgid ""
 "disks) during the prime generation; this gives the random number\n"
 "generator a better chance to gain enough entropy.\n"
 msgstr ""
-"Cómpre xerar unha morea de bytes aleatorios. E unha boa idea facer outras\n"
+"Cómpre xerar unha morea de bytes aleatorios. E unha boa idea facer outras\n"
 "cousas (premer teclas no teclado, move-lo rato, usa-los discos duros)\n"
-"mentres se xeran os números primos; isto proporciónalle ao xerador de\n"
-"números aleatorios unha opoertunidade de acumular entropía de abondo.\n"
+"mentres se xeran os números primos; isto proporciónalle ao xerador de\n"
+"números aleatorios unha opoertunidade de acumular entropía de abondo.\n"
 
 #, c-format
 msgid "Key generation failed: %s\n"
-msgstr "A xeración da chave fallou: %s\n"
+msgstr "A xeración da chave fallou: %s\n"
 
 #, c-format
 msgid ""
@@ -4303,24 +4316,24 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "A key for \"%s\" already exists\n"
-msgstr "`%s' xa está comprimido\n"
+msgstr "`%s' xa está comprimido\n"
 
 #, fuzzy
 #| msgid "Create anyway? "
 msgid "Create anyway? (y/N) "
-msgstr "¿Crear de tódolos xeitos? "
+msgstr "¿Crear de tódolos xeitos? "
 
 #, fuzzy
 #| msgid "Create anyway? "
 msgid "creating anyway\n"
-msgstr "¿Crear de tódolos xeitos? "
+msgstr "¿Crear de tódolos xeitos? "
 
 #, c-format
 msgid "Note: Use \"%s %s\" for a full featured key generation dialog.\n"
 msgstr ""
 
 msgid "Key generation canceled.\n"
-msgstr "Cancelouse a xeración de chaves.\n"
+msgstr "Cancelouse a xeración de chaves.\n"
 
 #, fuzzy, c-format
 msgid "can't create backup file '%s': %s\n"
@@ -4333,26 +4346,26 @@ msgstr "NOTA: a chave secreta %08lX caducou o %s\n"
 #, fuzzy, c-format
 #| msgid "writing public key to `%s'\n"
 msgid "writing public key to '%s'\n"
-msgstr "gravando a chave pública en `%s'\n"
+msgstr "gravando a chave pública en `%s'\n"
 
 #, c-format
 msgid "no writable public keyring found: %s\n"
-msgstr "non se atopou un chaveiro público no que se poida escribir: %s\n"
+msgstr "non se atopou un chaveiro público no que se poida escribir: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing public keyring `%s': %s\n"
 msgid "error writing public keyring '%s': %s\n"
-msgstr "erro escribindo no chaveiro público `%s': %s\n"
+msgstr "erro escribindo no chaveiro público `%s': %s\n"
 
 msgid "public and secret key created and signed.\n"
-msgstr "creáronse e asináronse as chaves pública e secreta.\n"
+msgstr "creáronse e asináronse as chaves pública e secreta.\n"
 
 #, fuzzy
 msgid ""
 "Note that this key cannot be used for encryption.  You may want to use\n"
 "the command \"--edit-key\" to generate a subkey for this purpose.\n"
 msgstr ""
-"Teña en conta que non se pode empregar esta chave para cifrar. Pode que\n"
+"Teña en conta que non se pode empregar esta chave para cifrar. Pode que\n"
 "queira emprega-lo comando \"--edit-key\" para xerar unha chave secundaria\n"
 "con esa finalidade.\n"
 
@@ -4373,24 +4386,24 @@ msgstr ""
 #, fuzzy
 #| msgid "NOTE: creating subkeys for v3 keys is not OpenPGP compliant\n"
 msgid "Note: creating subkeys for v3 keys is not OpenPGP compliant\n"
-msgstr "NOTA: a creación de subchaves para chaves v3 non cumpre OpenPGP\n"
+msgstr "NOTA: a creación de subchaves para chaves v3 non cumpre OpenPGP\n"
 
 msgid "Secret parts of primary key are not available.\n"
-msgstr "as partes secretas da chave primaria non están dispoñibles.\n"
+msgstr "as partes secretas da chave primaria non están dispoñibles.\n"
 
 #, fuzzy
 msgid "Secret parts of primary key are stored on-card.\n"
-msgstr "as partes secretas da chave primaria non están dispoñibles.\n"
+msgstr "as partes secretas da chave primaria non están dispoñibles.\n"
 
 #, fuzzy
 msgid "Really create? (y/N) "
-msgstr "¿Crear realmente? "
+msgstr "¿Crear realmente? "
 
 msgid "never     "
 msgstr "nunca     "
 
 msgid "Critical signature policy: "
-msgstr "Normativa de sinaturas críticas: "
+msgstr "Normativa de sinaturas críticas: "
 
 msgid "Signature policy: "
 msgstr "Normativa de sinaturas: "
@@ -4399,17 +4412,17 @@ msgid "Critical preferred keyserver: "
 msgstr ""
 
 msgid "Critical signature notation: "
-msgstr "Notación de sinaturas críticas: "
+msgstr "Notación de sinaturas críticas: "
 
 msgid "Signature notation: "
-msgstr "Notación de sinaturas: "
+msgstr "Notación de sinaturas: "
 
 #, fuzzy, c-format
 #| msgid "%d bad signatures\n"
 msgid "%d good signature\n"
 msgid_plural "%d good signatures\n"
-msgstr[0] "%d sinaturas erróneas\n"
-msgstr[1] "%d sinaturas erróneas\n"
+msgstr[0] "%d sinaturas erróneas\n"
+msgstr[1] "%d sinaturas erróneas\n"
 
 #, fuzzy, c-format
 #| msgid "1 signature not checked due to an error\n"
@@ -4469,8 +4482,8 @@ msgstr[1] "\t%lu chaves actualizadas\n"
 #| msgid "1 bad signature\n"
 msgid " (%lu signature)\n"
 msgid_plural " (%lu signatures)\n"
-msgstr[0] "1 sinatura errónea\n"
-msgstr[1] "1 sinatura errónea\n"
+msgstr[0] "1 sinatura errónea\n"
+msgstr[1] "1 sinatura errónea\n"
 
 #, c-format
 msgid "%s: keyring created\n"
@@ -4493,7 +4506,7 @@ msgstr ""
 
 #, fuzzy
 msgid "honor the preferred keyserver URL set on the key"
-msgstr "o URL de normativa de sinaturas dado non é válido\n"
+msgstr "o URL de normativa de sinaturas dado non é válido\n"
 
 msgid "honor the PKA record set on a key when retrieving keys"
 msgstr ""
@@ -4507,11 +4520,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid keyserver protocol (us %d!=handler %d)\n"
-msgstr "opcións de exportación non válidas\n"
+msgstr "opcións de exportación non válidas\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" not a key ID: skipping\n"
-msgstr "%s: non é un ID de chave válido\n"
+msgstr "%s: non é un ID de chave válido\n"
 
 #, fuzzy, c-format
 msgid "refreshing %d key from %s\n"
@@ -4533,7 +4546,7 @@ msgstr "non se atopou a chave `%s': %s\n"
 
 msgid "no keyserver known (use option --keyserver)\n"
 msgstr ""
-"non hai un servidor de chaves coñecido (empregue a opción --keyserver)\n"
+"non hai un servidor de chaves coñecido (empregue a opción --keyserver)\n"
 
 #, fuzzy, c-format
 msgid "requesting key %s from %s server %s\n"
@@ -4545,17 +4558,17 @@ msgstr "solicitando a chave %08lX de %s\n"
 
 #, fuzzy
 msgid "no keyserver known\n"
-msgstr "opcións de exportación non válidas\n"
+msgstr "opcións de exportación non válidas\n"
 
 #, fuzzy, c-format
 msgid "skipped \"%s\": %s\n"
-msgstr "omítese `%s': %s\n"
+msgstr "omítese `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "sending key %s to %s\n"
 msgstr ""
 "\"\n"
-"asinado coa súa chave %08lX no %s\n"
+"asinado coa súa chave %08lX no %s\n"
 
 #, fuzzy, c-format
 msgid "requesting key from '%s'\n"
@@ -4567,22 +4580,22 @@ msgstr "AVISO: non se puido borra-lo ficheiro temporal (%s) `%s': %s\n"
 
 #, c-format
 msgid "weird size for an encrypted session key (%d)\n"
-msgstr "tamaño moi estraño para unha chave de sesión cifrada (%d)\n"
+msgstr "tamaño moi estraño para unha chave de sesión cifrada (%d)\n"
 
 #, c-format
 msgid "%s encrypted session key\n"
-msgstr "chave de sesión cifrada con %s\n"
+msgstr "chave de sesión cifrada con %s\n"
 
 #, fuzzy, c-format
 msgid "passphrase generated with unknown digest algorithm %d\n"
-msgstr "cifrado cun algoritmo descoñecido %d\n"
+msgstr "cifrado cun algoritmo descoñecido %d\n"
 
 #, fuzzy, c-format
 msgid "public key is %s\n"
-msgstr "a chave pública é %08lX\n"
+msgstr "a chave pública é %08lX\n"
 
 msgid "public key encrypted data: good DEK\n"
-msgstr "datos cifrados coa chave pública: DEK correcto\n"
+msgstr "datos cifrados coa chave pública: DEK correcto\n"
 
 #, fuzzy, c-format
 msgid "encrypted with %u-bit %s key, ID %s, created %s\n"
@@ -4598,7 +4611,7 @@ msgstr "cifrado cunha chave %s, ID %08lX\n"
 
 #, c-format
 msgid "public key decryption failed: %s\n"
-msgstr "fallou o descifrado de chave pública: %s\n"
+msgstr "fallou o descifrado de chave pública: %s\n"
 
 #, c-format
 msgid "encrypted with %lu passphrases\n"
@@ -4609,20 +4622,20 @@ msgstr "cifrado con 1 contrasinal\n"
 
 #, c-format
 msgid "assuming %s encrypted data\n"
-msgstr "supoñendo datos cifrados con %s\n"
+msgstr "supoñendo datos cifrados con %s\n"
 
 #, c-format
 msgid "IDEA cipher unavailable, optimistically attempting to use %s instead\n"
-msgstr "A cifra IDEA non está dispoñible, téntase empregar %s no seu canto\n"
+msgstr "A cifra IDEA non está dispoñible, téntase empregar %s no seu canto\n"
 
 msgid "WARNING: message was not integrity protected\n"
-msgstr "AVISO: a mensaxe non tiña protección de integridade\n"
+msgstr "AVISO: a mensaxe non tiña protección de integridade\n"
 
 msgid "decryption okay\n"
 msgstr "descifrado correcto\n"
 
 msgid "WARNING: encrypted message has been manipulated!\n"
-msgstr "AVISO: ¡a mensaxe cifrada foi manipulada!\n"
+msgstr "AVISO: Â¡a mensaxe cifrada foi manipulada!\n"
 
 #, c-format
 msgid "decryption failed: %s\n"
@@ -4641,7 +4654,7 @@ msgid "WARNING: multiple plaintexts seen\n"
 msgstr ""
 
 msgid "standalone revocation - use \"gpg --import\" to apply\n"
-msgstr "revocación independente - empregue \"gpg --import\" para aplicar\n"
+msgstr "revocación independente - empregue \"gpg --import\" para aplicar\n"
 
 #, fuzzy
 msgid "no signature found\n"
@@ -4660,11 +4673,11 @@ msgid "Good signature from \"%s\""
 msgstr "Sinatura correcta de \""
 
 msgid "signature verification suppressed\n"
-msgstr "verificación de sinatura suprimida\n"
+msgstr "verificación de sinatura suprimida\n"
 
 #, fuzzy
 msgid "can't handle this ambiguous signature data\n"
-msgstr "non se poden manexar estas sinaturas múltiples\n"
+msgstr "non se poden manexar estas sinaturas múltiples\n"
 
 #, fuzzy, c-format
 msgid "Signature made %s\n"
@@ -4683,7 +4696,7 @@ msgid "               issuer \"%s\"\n"
 msgstr "               alias \""
 
 msgid "Key available at: "
-msgstr "Chave dispoñible en: "
+msgstr "Chave dispoñible en: "
 
 msgid "[uncertain]"
 msgstr "[incerto]"
@@ -4712,12 +4725,12 @@ msgid "textmode"
 msgstr "modo texto"
 
 msgid "unknown"
-msgstr "descoñecido"
+msgstr "descoñecido"
 
 #, fuzzy
 #| msgid "unknown pubkey algorithm"
 msgid ", key algorithm "
-msgstr "algoritmo de chave pública descoñecido"
+msgstr "algoritmo de chave pública descoñecido"
 
 #, c-format
 msgid "WARNING: not a detached signature; file '%s' was NOT verified!\n"
@@ -4728,24 +4741,24 @@ msgid "Can't check signature: %s\n"
 msgstr "Non foi posible verifica-la sinatura: %s\n"
 
 msgid "not a detached signature\n"
-msgstr "non é unha sinatura separada\n"
+msgstr "non é unha sinatura separada\n"
 
 msgid ""
 "WARNING: multiple signatures detected.  Only the first will be checked.\n"
 msgstr ""
-"AVISO: detectáronse sinaturas múltiples. Só se ha comproba-la primeira.\n"
+"AVISO: detectáronse sinaturas múltiples. Só se ha comproba-la primeira.\n"
 
 #, c-format
 msgid "standalone signature of class 0x%02x\n"
 msgstr "sinatura independiente de clase 0x%02x\n"
 
 msgid "old style (PGP 2.x) signature\n"
-msgstr "Sinatura ó vello estilo (PGP 2.x)\n"
+msgstr "Sinatura ó vello estilo (PGP 2.x)\n"
 
 #, fuzzy, c-format
 msgid "fstat of '%s' failed in %s: %s\n"
 msgstr ""
-"a actualización da base de datos de confianza fallou:\n"
+"a actualización da base de datos de confianza fallou:\n"
 "%s\n"
 
 #, fuzzy, c-format
@@ -4754,7 +4767,7 @@ msgstr "base de datos de confianza: fallou a lectura (n=%d): %s\n"
 
 #, fuzzy, c-format
 msgid "WARNING: using experimental public key algorithm %s\n"
-msgstr "non é posible manexa-lo algoritmo de chave pública %d\n"
+msgstr "non é posible manexa-lo algoritmo de chave pública %d\n"
 
 #, fuzzy
 msgid "WARNING: Elgamal sign+encrypt keys are deprecated\n"
@@ -4792,11 +4805,11 @@ msgstr ""
 
 #, c-format
 msgid "%s:%d: deprecated option \"%s\"\n"
-msgstr "%s:%d: opción a extinguir \"%s\"\n"
+msgstr "%s:%d: opción a extinguir \"%s\"\n"
 
 #, c-format
 msgid "WARNING: \"%s\" is a deprecated option\n"
-msgstr "AVISO: \"%s\" é unha opción a extinguir\n"
+msgstr "AVISO: \"%s\" é unha opción a extinguir\n"
 
 #, c-format
 msgid "please use \"%s%s\" instead\n"
@@ -4804,16 +4817,16 @@ msgstr "empregue \"%s%s\" no seu canto\n"
 
 #, fuzzy, c-format
 msgid "WARNING: \"%s\" is a deprecated command - do not use it\n"
-msgstr "AVISO: \"%s\" é unha opción a extinguir\n"
+msgstr "AVISO: \"%s\" é unha opción a extinguir\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: \"%s\" is obsolete in this file - it only has effect in %s\n"
-msgstr "AVISO: \"%s\" é unha opción a extinguir\n"
+msgstr "AVISO: \"%s\" é unha opción a extinguir\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: \"%s%s\" is an obsolete option - it has no effect except on %s\n"
-msgstr "AVISO: \"%s\" é unha opción a extinguir\n"
+msgstr "AVISO: \"%s\" é unha opción a extinguir\n"
 
 msgid "Uncompressed"
 msgstr "Sen comprimir"
@@ -4829,18 +4842,18 @@ msgstr "esta mensaxe pode non ser utilizable por %s\n"
 
 #, fuzzy, c-format
 msgid "ambiguous option '%s'\n"
-msgstr "lendo as opcións de `%s'\n"
+msgstr "lendo as opcións de `%s'\n"
 
 #, fuzzy, c-format
 msgid "unknown option '%s'\n"
-msgstr "destinatario por defecto `%s' descoñecido\n"
+msgstr "destinatario por defecto `%s' descoñecido\n"
 
 msgid "ECDSA public key is expected to be in SEC encoding multiple of 8 bits\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "unknown weak digest '%s'\n"
-msgstr "clase de sinatura descoñecida"
+msgstr "clase de sinatura descoñecida"
 
 #, fuzzy, c-format
 #| msgid "File `%s' exists. "
@@ -4849,17 +4862,17 @@ msgstr "O ficheiro `%s' xa existe. "
 
 #, fuzzy
 msgid "Overwrite? (y/N) "
-msgstr "¿Sobrescribir? (s/N) "
+msgstr "¿Sobrescribir? (s/N) "
 
 #, c-format
 msgid "%s: unknown suffix\n"
-msgstr "%s: sufixo descoñecido\n"
+msgstr "%s: sufixo descoñecido\n"
 
 msgid "Enter new filename"
 msgstr "Introduza o novo nome de ficheiro"
 
 msgid "writing to stdout\n"
-msgstr "escribindo na saída estándar\n"
+msgstr "escribindo na saída estándar\n"
 
 #, fuzzy, c-format
 #| msgid "assuming signed data in `%s'\n"
@@ -4869,24 +4882,24 @@ msgstr "suponse que hai datos asinados en `%s'\n"
 #, fuzzy, c-format
 #| msgid "new configuration file `%s' created\n"
 msgid "new configuration file '%s' created\n"
-msgstr " creouse un novo ficheiro de configuración `%s'\n"
+msgstr " creouse un novo ficheiro de configuración `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: options in `%s' are not yet active during this run\n"
 msgid "WARNING: options in '%s' are not yet active during this run\n"
-msgstr "AVISO: as opcións de `%s' aínda non están activas nesta execución\n"
+msgstr "AVISO: as opcións de `%s' aínda non están activas nesta execución\n"
 
 #, c-format
 msgid "can't handle public key algorithm %d\n"
-msgstr "non é posible manexa-lo algoritmo de chave pública %d\n"
+msgstr "non é posible manexa-lo algoritmo de chave pública %d\n"
 
 msgid "WARNING: potentially insecure symmetrically encrypted session key\n"
 msgstr ""
-"AVISO: chave de sesión cifrada simetricamente potencialmente insegura\n"
+"AVISO: chave de sesión cifrada simetricamente potencialmente insegura\n"
 
 #, c-format
 msgid "subpacket of type %d has critical bit set\n"
-msgstr "un subpaquete de tipo %d ten o bit crítico posto\n"
+msgstr "un subpaquete de tipo %d ten o bit crítico posto\n"
 
 #, fuzzy, c-format
 msgid "problem with the agent: %s\n"
@@ -4904,27 +4917,27 @@ msgstr " (ID principal da chave %08lX)"
 
 #, fuzzy
 msgid "Please enter the passphrase to unlock the OpenPGP secret key:"
-msgstr "Por favor, introduza o contrasinal; esta é unha frase secreta \n"
+msgstr "Por favor, introduza o contrasinal; esta é unha frase secreta \n"
 
 #, fuzzy
 msgid "Please enter the passphrase to import the OpenPGP secret key:"
-msgstr "Por favor, introduza o contrasinal; esta é unha frase secreta \n"
+msgstr "Por favor, introduza o contrasinal; esta é unha frase secreta \n"
 
 #, fuzzy
 msgid "Please enter the passphrase to export the OpenPGP secret subkey:"
-msgstr "Por favor, introduza o contrasinal; esta é unha frase secreta \n"
+msgstr "Por favor, introduza o contrasinal; esta é unha frase secreta \n"
 
 #, fuzzy
 msgid "Please enter the passphrase to export the OpenPGP secret key:"
-msgstr "Por favor, introduza o contrasinal; esta é unha frase secreta \n"
+msgstr "Por favor, introduza o contrasinal; esta é unha frase secreta \n"
 
 #, fuzzy
 msgid "Do you really want to permanently delete the OpenPGP secret subkey key:"
-msgstr "¿Seguro de que quere borra-las chaves seleccionadas? "
+msgstr "¿Seguro de que quere borra-las chaves seleccionadas? "
 
 #, fuzzy
 msgid "Do you really want to permanently delete the OpenPGP secret key:"
-msgstr "¿Seguro de que quere borra-las chaves seleccionadas? "
+msgstr "¿Seguro de que quere borra-las chaves seleccionadas? "
 
 #, fuzzy, c-format
 msgid ""
@@ -4943,10 +4956,10 @@ msgid ""
 "Keeping the image close to 240x288 is a good size to use.\n"
 msgstr ""
 "\n"
-"Escolla unha imaxe a empregar coma identificación fotográfica. A imaxe ten\n"
-"que ser un ficheiro JPEG. Lembre que a imaxe armacénase coa súa chave\n"
-"pública. Se emprega unha imaxe moi grande, a súa chave tamén se ha volver\n"
-"moi grande. Un bo tamaño para empregar é un semellante a 240x288.\n"
+"Escolla unha imaxe a empregar coma identificación fotográfica. A imaxe ten\n"
+"que ser un ficheiro JPEG. Lembre que a imaxe armacénase coa súa chave\n"
+"pública. Se emprega unha imaxe moi grande, a súa chave tamén se ha volver\n"
+"moi grande. Un bo tamaño para empregar é un semellante a 240x288.\n"
 
 msgid "Enter JPEG filename for photo ID: "
 msgstr "Introduza o nome do ficheiro JPEG: "
@@ -4961,23 +4974,23 @@ msgstr ""
 
 #, fuzzy
 msgid "Are you sure you want to use it? (y/N) "
-msgstr "¿Está seguro de que quere empregala (s/N)? "
+msgstr "¿Está seguro de que quere empregala (s/N)? "
 
 #, fuzzy, c-format
 msgid "'%s' is not a JPEG file\n"
-msgstr "\"%s\" non é un ficheiro JPEG\n"
+msgstr "\"%s\" non é un ficheiro JPEG\n"
 
 msgid "Is this photo correct (y/N/q)? "
-msgstr "¿É esta foto correcta (s/N/q)? "
+msgstr "¿É esta foto correcta (s/N/q)? "
 
 msgid "unable to display photo ID!\n"
-msgstr "¡non se pode amosa-la identificación fotográfica!\n"
+msgstr "¡non se pode amosa-la identificación fotográfica!\n"
 
 msgid "No reason specified"
 msgstr "Non se especificou un motivo"
 
 msgid "Key is superseded"
-msgstr "A chave é obsoleta"
+msgstr "A chave é obsoleta"
 
 msgid "Key has been compromised"
 msgstr "Esta chave quedou descoberta"
@@ -4986,13 +4999,13 @@ msgid "Key is no longer used"
 msgstr "Xa non se emprega esta chave"
 
 msgid "User ID is no longer valid"
-msgstr "O ID de usuario xa non é válido"
+msgstr "O ID de usuario xa non é válido"
 
 msgid "reason for revocation: "
-msgstr "motivo para a revocación: "
+msgstr "motivo para a revocación: "
 
 msgid "revocation comment: "
-msgstr "comentario de revocación: "
+msgstr "comentario de revocación: "
 
 #. TRANSLATORS: These are the allowed answers in lower and
 #. uppercase.  Below you will find the matching strings which
@@ -5028,15 +5041,15 @@ msgstr " %d = Non sei\n"
 
 #, fuzzy, c-format
 msgid "  %d = I do NOT trust\n"
-msgstr " %d = NON confío\n"
+msgstr " %d = NON confío\n"
 
 #, fuzzy, c-format
 msgid "  %d = I trust ultimately\n"
-msgstr " %d = Confío absolutamente\n"
+msgstr " %d = Confío absolutamente\n"
 
 #, fuzzy
 msgid "  m = back to the main menu\n"
-msgstr " m = voltar ao menú principal\n"
+msgstr " m = voltar ao menú principal\n"
 
 #, fuzzy
 msgid "  s = skip this key\n"
@@ -5044,7 +5057,7 @@ msgstr " o = omitir esta chave\n"
 
 #, fuzzy
 msgid "  q = quit\n"
-msgstr " s = saír\n"
+msgstr " s = saír\n"
 
 #, c-format
 msgid ""
@@ -5053,11 +5066,11 @@ msgid ""
 msgstr ""
 
 msgid "Your decision? "
-msgstr "¿A súa decisión? "
+msgstr "¿A súa decisión? "
 
 #, fuzzy
 msgid "Do you really want to set this key to ultimate trust? (y/N) "
-msgstr "¿Está seguro de querer dar confianza absoluta a esta chave? "
+msgstr "¿Está seguro de querer dar confianza absoluta a esta chave? "
 
 msgid "Certificates leading to an ultimately trusted key:\n"
 msgstr "Certificados que conducen a unha chave de confianza absoluta:\n"
@@ -5065,19 +5078,36 @@ msgstr "Certificados que conducen a unha chave de confianza absoluta:\n"
 #, fuzzy, c-format
 msgid "%s: There is no assurance this key belongs to the named user\n"
 msgstr ""
-"%08lX: Non hai indicacións de que a sinatura pertenza ao seu propietario.\n"
+"%08lX: Non hai indicacións de que a sinatura pertenza ao seu propietario.\n"
 
 #, fuzzy, c-format
 msgid "%s: There is limited assurance this key belongs to the named user\n"
 msgstr ""
-"%08lX: Non hai indicacións de que a sinatura pertenza ao seu propietario.\n"
+"%08lX: Non hai indicacións de que a sinatura pertenza ao seu propietario.\n"
 
 #, fuzzy
 msgid "This key probably belongs to the named user\n"
 msgstr "Esta chave probablemente pertenza ao propietario\n"
 
 msgid "This key belongs to us\n"
-msgstr "Esta chave perténcenos a nós\n"
+msgstr "Esta chave perténcenos a nós\n"
+
+#, fuzzy, c-format
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr ""
+"Non se atoparon certificados con confianza non definida.\n"
+"\n"
+
+#, fuzzy
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"NON é seguro que a chave pertenza á persoa indicada no ID de\n"
+"usuario. Se *de verdade* sabe o que está a facer, pode\n"
+"respostar á seguinte pregunta cun \"si\"\n"
+"\n"
 
 #, fuzzy
 msgid ""
@@ -5085,40 +5115,40 @@ msgid ""
 "in the user ID.  If you *really* know what you are doing,\n"
 "you may answer the next question with yes.\n"
 msgstr ""
-"NON é seguro que a chave pertenza á persoa indicada no ID de\n"
-"usuario. Se *de verdade* sabe o que está a facer, pode\n"
-"respostar á seguinte pregunta cun \"si\"\n"
+"NON é seguro que a chave pertenza á persoa indicada no ID de\n"
+"usuario. Se *de verdade* sabe o que está a facer, pode\n"
+"respostar á seguinte pregunta cun \"si\"\n"
 "\n"
 
 #, fuzzy
 msgid "Use this key anyway? (y/N) "
-msgstr "¿Empregar esta chave de tódolos xeitos?"
+msgstr "¿Empregar esta chave de tódolos xeitos?"
 
 msgid "WARNING: Using untrusted key!\n"
-msgstr "AVISO: ¡Emprégase unha chave que non é de confianza!\n"
+msgstr "AVISO: ¡Emprégase unha chave que non é de confianza!\n"
 
 #, fuzzy
 msgid "WARNING: this key might be revoked (revocation key not present)\n"
 msgstr ""
-"AVISO: a chave %08lX pode estar revocada: chave de revocación %08lX "
+"AVISO: a chave %08lX pode estar revocada: chave de revocación %08lX "
 "ausente.\n"
 
 #, fuzzy
 msgid "WARNING: This key has been revoked by its designated revoker!\n"
-msgstr "AVISO: ¡Esta chave está revocada polo propietario!\n"
+msgstr "AVISO: ¡Esta chave está revocada polo propietario!\n"
 
 msgid "WARNING: This key has been revoked by its owner!\n"
-msgstr "AVISO: ¡Esta chave está revocada polo propietario!\n"
+msgstr "AVISO: ¡Esta chave está revocada polo propietario!\n"
 
 #, fuzzy
 msgid "         This could mean that the signature is forged.\n"
-msgstr "       Isto pode significar que a sinatura está falsificada.\n"
+msgstr "       Isto pode significar que a sinatura está falsificada.\n"
 
 msgid "WARNING: This subkey has been revoked by its owner!\n"
-msgstr "AVISO: ¡Esta subchave está revocada polo propietario!\n"
+msgstr "AVISO: ¡Esta subchave está revocada polo propietario!\n"
 
 msgid "Note: This key has been disabled.\n"
-msgstr "Nota: Esta chave está desactivada.\n"
+msgstr "Nota: Esta chave está desactivada.\n"
 
 #, c-format
 msgid "Note: Verified signer's address is '%s'\n"
@@ -5135,18 +5165,18 @@ msgid "trustlevel adjusted to NEVER due to bad PKA info\n"
 msgstr ""
 
 msgid "Note: This key has expired!\n"
-msgstr "Nota: ¡Esta chave xa caducou!\n"
+msgstr "Nota: Â¡Esta chave xa caducou!\n"
 
 msgid "WARNING: This key is not certified with a trusted signature!\n"
-msgstr "AVISO: ¡Esta chave non está certificada cunha sinatura de confianza!\n"
+msgstr "AVISO: ¡Esta chave non está certificada cunha sinatura de confianza!\n"
 
 msgid ""
 "         There is no indication that the signature belongs to the owner.\n"
 msgstr ""
-"       Non hai indicacións de que a sinatura pertenza ao seu propietario.\n"
+"       Non hai indicacións de que a sinatura pertenza ao seu propietario.\n"
 
 msgid "WARNING: We do NOT trust this key!\n"
-msgstr "AVISO: ¡Esta chave NON é de confianza!\n"
+msgstr "AVISO: ¡Esta chave NON é de confianza!\n"
 
 msgid "         The signature is probably a FORGERY.\n"
 msgstr "       Probablemente, a sinatura estea FALSIFICADA.\n"
@@ -5154,11 +5184,11 @@ msgstr "       Probablemente, a sinatura estea FALSIFICADA.\n"
 msgid ""
 "WARNING: This key is not certified with sufficiently trusted signatures!\n"
 msgstr ""
-"AVISO: ¡Esta chave non está certificada con sinaturas de suficiente "
+"AVISO: ¡Esta chave non está certificada con sinaturas de suficiente "
 "confianza!\n"
 
 msgid "         It is not certain that the signature belongs to the owner.\n"
-msgstr "       Non é seguro que a sinatura pertenza ao seu propietario.\n"
+msgstr "       Non é seguro que a sinatura pertenza ao seu propietario.\n"
 
 #, c-format
 msgid "%s: skipped: %s\n"
@@ -5166,11 +5196,11 @@ msgstr "%s: omitido: %s\n"
 
 #, c-format
 msgid "%s: skipped: public key is disabled\n"
-msgstr "%s: omitido: a chave pública está desactivada\n"
+msgstr "%s: omitido: a chave pública está desactivada\n"
 
 #, c-format
 msgid "%s: skipped: public key already present\n"
-msgstr "%s: omitido: a chave pública xa está presente\n"
+msgstr "%s: omitido: a chave pública xa está presente\n"
 
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
@@ -5179,11 +5209,11 @@ msgstr "non se puido conectar a `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "option '%s' given, but no valid default keys given\n"
-msgstr "algoritmo de hash non válido `%s'\n"
+msgstr "algoritmo de hash non válido `%s'\n"
 
 #, fuzzy, c-format
 msgid "option '%s' given, but option '%s' not given\n"
-msgstr "algoritmo de hash non válido `%s'\n"
+msgstr "algoritmo de hash non válido `%s'\n"
 
 msgid "You did not specify a user ID. (you may use \"-r\")\n"
 msgstr "Non especificou un ID de usuario. (pode empregar \"-r\")\n"
@@ -5196,27 +5226,27 @@ msgid ""
 "Enter the user ID.  End with an empty line: "
 msgstr ""
 "\n"
-"Introduza o ID de usuario. Remate cunha liña en branco: "
+"Introduza o ID de usuario. Remate cunha liña en branco: "
 
 msgid "No such user ID.\n"
 msgstr "Non hai tal ID de usuario.\n"
 
 msgid "skipped: public key already set as default recipient\n"
 msgstr ""
-"omitido: a chave pública xa está estabrecida coma destinatario por defecto\n"
+"omitido: a chave pública xa está estabrecida coma destinatario por defecto\n"
 
 msgid "Public key is disabled.\n"
-msgstr "A chave pública está desactivada.\n"
+msgstr "A chave pública está desactivada.\n"
 
 msgid "skipped: public key already set\n"
-msgstr "omitido: chave pública xa estabrecida\n"
+msgstr "omitido: chave pública xa estabrecida\n"
 
 #, fuzzy, c-format
 msgid "unknown default recipient \"%s\"\n"
-msgstr "destinatario por defecto `%s' descoñecido\n"
+msgstr "destinatario por defecto `%s' descoñecido\n"
 
 msgid "no valid addressees\n"
-msgstr "non hai enderezos válidos\n"
+msgstr "non hai enderezos válidos\n"
 
 #, fuzzy, c-format
 msgid "Note: key %s has no %s feature\n"
@@ -5227,7 +5257,7 @@ msgid "Note: key %s has no preference for %s\n"
 msgstr "chave %08lX: non hai ID de usuario\n"
 
 msgid "data not saved; use option \"--output\" to save it\n"
-msgstr "os datos non foron gardados; use a opción \"--output\" para gardalos\n"
+msgstr "os datos non foron gardados; use a opción \"--output\" para gardalos\n"
 
 msgid "Detached signature.\n"
 msgstr "Sinatura non adxunta.\n"
@@ -5252,17 +5282,17 @@ msgstr "non foi posible abri-los datos asinados `%s'\n"
 
 #, fuzzy, c-format
 msgid "anonymous recipient; trying secret key %s ...\n"
-msgstr "destinatario anónimo; tentando a chave secreta %08lX ...\n"
+msgstr "destinatario anónimo; tentando a chave secreta %08lX ...\n"
 
 msgid "okay, we are the anonymous recipient.\n"
-msgstr "vale, nós somo-lo destinatario anónimo.\n"
+msgstr "vale, nós somo-lo destinatario anónimo.\n"
 
 msgid "old encoding of the DEK is not supported\n"
-msgstr "a codificación vella do DEK non está soportada\n"
+msgstr "a codificación vella do DEK non está soportada\n"
 
 #, c-format
 msgid "cipher algorithm %d%s is unknown or disabled\n"
-msgstr "o algoritmo de cifrado %d%s é descoñecido ou está desactivado\n"
+msgstr "o algoritmo de cifrado %d%s é descoñecido ou está desactivado\n"
 
 #, fuzzy, c-format
 msgid "WARNING: cipher algorithm %s not found in recipient preferences\n"
@@ -5275,7 +5305,7 @@ msgstr "NOTA: a chave secreta %08lX caducou o %s\n"
 #, fuzzy
 #| msgid "NOTE: key has been revoked"
 msgid "Note: key has been revoked"
-msgstr "NOTA: a chave está revocada"
+msgstr "NOTA: a chave está revocada"
 
 #, c-format
 msgid "build_packet failed: %s\n"
@@ -5289,34 +5319,34 @@ msgid "To be revoked by:\n"
 msgstr "Ha ser revocada por:\n"
 
 msgid "(This is a sensitive revocation key)\n"
-msgstr "(Esta é unha chave de revocación sensible)\n"
+msgstr "(Esta é unha chave de revocación sensible)\n"
 
 #, fuzzy
 #| msgid "Secret key is available.\n"
 msgid "Secret key is not available.\n"
-msgstr "A chave secreta está disponible.\n"
+msgstr "A chave secreta está disponible.\n"
 
 #, fuzzy
 msgid "Create a designated revocation certificate for this key? (y/N) "
-msgstr "¿Crear un certificado de revocación para esta sinatura? "
+msgstr "¿Crear un certificado de revocación para esta sinatura? "
 
 msgid "ASCII armored output forced.\n"
-msgstr "Forzouse unha saída con armadura ASCII.\n"
+msgstr "Forzouse unha saída con armadura ASCII.\n"
 
 #, c-format
 msgid "make_keysig_packet failed: %s\n"
 msgstr "a chamada a make_keysig_packet fallou: %s\n"
 
 msgid "Revocation certificate created.\n"
-msgstr "Creouse o certificado de revocación.\n"
+msgstr "Creouse o certificado de revocación.\n"
 
 #, fuzzy, c-format
 msgid "no revocation keys found for \"%s\"\n"
-msgstr "non se atoparon chaves de revocación para `%s'\n"
+msgstr "non se atoparon chaves de revocación para `%s'\n"
 
 #, fuzzy
 msgid "This is a revocation certificate for the OpenPGP key:"
-msgstr "¿Crear un certificado de revocación para esta sinatura? "
+msgstr "¿Crear un certificado de revocación para esta sinatura? "
 
 msgid ""
 "A revocation certificate is a kind of \"kill switch\" to publicly\n"
@@ -5341,7 +5371,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "Revocation certificate created.\n"
 msgid "revocation certificate stored as '%s.rev'\n"
-msgstr "Creouse o certificado de revocación.\n"
+msgstr "Creouse o certificado de revocación.\n"
 
 #, fuzzy, c-format
 msgid "secret key \"%s\" not found\n"
@@ -5361,7 +5391,7 @@ msgstr "erro ao crea-lo chaveiro `%s': %s\n"
 
 #, fuzzy
 msgid "Create a revocation certificate for this key? (y/N) "
-msgstr "¿Crear un certificado de revocación para esta sinatura? "
+msgstr "¿Crear un certificado de revocación para esta sinatura? "
 
 msgid ""
 "Revocation certificate created.\n"
@@ -5372,37 +5402,37 @@ msgid ""
 "your media become unreadable.  But have some caution:  The print system of\n"
 "your machine might store the data and make it available to others!\n"
 msgstr ""
-"Creouse o certificado de revocación.\n"
+"Creouse o certificado de revocación.\n"
 "\n"
-"Por favor, trasládeo a un soporte que poida agochar; se Mallory consegue\n"
-"acceso a este certificado pode empregalo para inutiliza-la súa chave.\n"
-"É unha boa idea imprimir este certificado e armacenalo, por se o soporte\n"
-"se volve ilexible. Pero teña coidado: o sistema de impresión da súa\n"
-"máquina podería armacena-los datos e deixárllelos dispoñibles a outros.\n"
+"Por favor, trasládeo a un soporte que poida agochar; se Mallory consegue\n"
+"acceso a este certificado pode empregalo para inutiliza-la súa chave.\n"
+"É unha boa idea imprimir este certificado e armacenalo, por se o soporte\n"
+"se volve ilexible. Pero teña coidado: o sistema de impresión da súa\n"
+"máquina podería armacena-los datos e deixárllelos dispoñibles a outros.\n"
 
 msgid "Please select the reason for the revocation:\n"
-msgstr "Por favor, escolla o motivo da revocación:\n"
+msgstr "Por favor, escolla o motivo da revocación:\n"
 
 msgid "Cancel"
 msgstr "Cancelar"
 
 #, c-format
 msgid "(Probably you want to select %d here)\n"
-msgstr "(probablemente queira seleccionar %d aquí)\n"
+msgstr "(probablemente queira seleccionar %d aquí)\n"
 
 msgid "Enter an optional description; end it with an empty line:\n"
-msgstr "Introduza unha descrición opcional; remátea cunha liña en branco:\n"
+msgstr "Introduza unha descrición opcional; remátea cunha liña en branco:\n"
 
 #, c-format
 msgid "Reason for revocation: %s\n"
-msgstr "Motivo para a revocación: %s\n"
+msgstr "Motivo para a revocación: %s\n"
 
 msgid "(No description given)\n"
-msgstr "(Non se deu unha descrición)\n"
+msgstr "(Non se deu unha descrición)\n"
 
 #, fuzzy
 msgid "Is this okay? (y/N) "
-msgstr "¿É correcto? "
+msgstr "¿É correcto? "
 
 msgid "weak key created - retrying\n"
 msgstr "creouse unha chave feble - volvendo a tentalo\n"
@@ -5410,7 +5440,7 @@ msgstr "creouse unha chave feble - volvendo a tentalo\n"
 #, c-format
 msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
 msgstr ""
-"non se pode evitar unha chave feble para o cifrado simétrico; tentouse %d "
+"non se pode evitar unha chave feble para o cifrado simétrico; tentouse %d "
 "veces\n"
 
 #, c-format
@@ -5430,25 +5460,25 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "please see %s for more information\n"
-msgstr " i = amosar máis información\n"
+msgstr " i = amosar máis información\n"
 
 #, fuzzy, c-format
 msgid "WARNING: signing subkey %s has an invalid cross-certification\n"
 msgstr ""
-"AVISO: ¡o nomeamento dunha chave coma o seu propio revocador designado non "
+"AVISO: Â¡o nomeamento dunha chave coma o seu propio revocador designado non "
 "se pode desfacer!\n"
 
 #, fuzzy, c-format
 msgid "public key %s is %lu second newer than the signature\n"
 msgid_plural "public key %s is %lu seconds newer than the signature\n"
-msgstr[0] "a chave pública %08lX é %lu segundo máis nova cá sinatura\n"
-msgstr[1] "a chave pública %08lX é %lu segundo máis nova cá sinatura\n"
+msgstr[0] "a chave pública %08lX é %lu segundo máis nova cá sinatura\n"
+msgstr[1] "a chave pública %08lX é %lu segundo máis nova cá sinatura\n"
 
 #, fuzzy, c-format
 msgid "public key %s is %lu day newer than the signature\n"
 msgid_plural "public key %s is %lu days newer than the signature\n"
-msgstr[0] "a chave pública %08lX é %lu segundo máis nova cá sinatura\n"
-msgstr[1] "a chave pública %08lX é %lu segundo máis nova cá sinatura\n"
+msgstr[0] "a chave pública %08lX é %lu segundo máis nova cá sinatura\n"
+msgstr[1] "a chave pública %08lX é %lu segundo máis nova cá sinatura\n"
 
 #, fuzzy, c-format
 msgid ""
@@ -5479,40 +5509,40 @@ msgstr "NOTA: a chave de sinatura %08lX caducou o %s\n"
 
 #, fuzzy, c-format
 msgid "Note: signature key %s has been revoked\n"
-msgstr "NOTA: a chave está revocada"
+msgstr "NOTA: a chave está revocada"
 
 #, fuzzy, c-format
 msgid "assuming bad signature from key %s due to an unknown critical bit\n"
 msgstr ""
-"asumindo unha sinatura incorrecta da chave %08lX debido a un bit crítico "
-"descoñecido\n"
+"asumindo unha sinatura incorrecta da chave %08lX debido a un bit crítico "
+"descoñecido\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for subkey revocation signature\n"
 msgstr ""
-"chave %08lX: non hai unha sub-chave para o paquete de a revocación de "
+"chave %08lX: non hai unha sub-chave para o paquete de a revocación de "
 "subchave\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for subkey binding signature\n"
-msgstr "chave %08lX: non hai sub-chave para a sinatura da ligazón da chave\n"
+msgstr "chave %08lX: non hai sub-chave para a sinatura da ligazón da chave\n"
 
 #, c-format
 msgid "WARNING: unable to %%-expand notation (too large).  Using unexpanded.\n"
 msgstr ""
-"AVISO: non se pode expandir-%% a notación (grande de máis). Úsase sen "
+"AVISO: non se pode expandir-%% a notación (grande de máis). Úsase sen "
 "expandir.\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: unable to %%-expand policy URL (too large).  Using unexpanded.\n"
-msgstr "AVISO: non se pode expandir-%% o url de normativa (grande de máis).\n"
+msgstr "AVISO: non se pode expandir-%% o url de normativa (grande de máis).\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: unable to %%-expand preferred keyserver URL (too large).  Using "
 "unexpanded.\n"
-msgstr "AVISO: non se pode expandir-%% o url de normativa (grande de máis).\n"
+msgstr "AVISO: non se pode expandir-%% o url de normativa (grande de máis).\n"
 
 #, fuzzy, c-format
 msgid "%s/%s signature from: \"%s\"\n"
@@ -5533,20 +5563,20 @@ msgstr "hase empregar cifrado %s\n"
 
 msgid "key is not flagged as insecure - can't use it with the faked RNG!\n"
 msgstr ""
-"a chave non está marcada coma insegura - non se pode empregar co xerador de "
-"números aleatorios falso\n"
+"a chave non está marcada coma insegura - non se pode empregar co xerador de "
+"números aleatorios falso\n"
 
 #, fuzzy, c-format
 msgid "skipped \"%s\": duplicated\n"
-msgstr "omítese `%s': duplicada\n"
+msgstr "omítese `%s': duplicada\n"
 
 msgid "skipped: secret key already present\n"
-msgstr "omítese: a chave secreta xa está presente\n"
+msgstr "omítese: a chave secreta xa está presente\n"
 
 #, fuzzy
 msgid "this is a PGP generated Elgamal key which is not secure for signatures!"
 msgstr ""
-"omítese `%s': ¡esta é unha chave ElGamal xerada por PGP que non é segura "
+"omítese `%s': ¡esta é unha chave ElGamal xerada por PGP que non é segura "
 "para sinaturas!\n"
 
 #, c-format
@@ -5567,14 +5597,14 @@ msgstr "erro lendo `%s': %s\n"
 
 #, fuzzy
 msgid "line too long"
-msgstr "liña longa de máis\n"
+msgstr "liña longa de máis\n"
 
 msgid "colon missing"
 msgstr ""
 
 #, fuzzy
 msgid "invalid fingerprint"
-msgstr "erro: pegada dactilar non válida\n"
+msgstr "erro: pegada dactilar non válida\n"
 
 #, fuzzy
 msgid "ownertrust value missing"
@@ -5590,7 +5620,7 @@ msgstr "erro de lectura: %s\n"
 
 #, c-format
 msgid "trustdb: sync failed: %s\n"
-msgstr "base de datos de confianza: fallou a sincronización: %s\n"
+msgstr "base de datos de confianza: fallou a sincronización: %s\n"
 
 #, fuzzy, c-format
 msgid "can't create lock for '%s'\n"
@@ -5610,11 +5640,11 @@ msgstr ""
 "rexistro da base de datos de confianza %lu: fallou a escritura (n=%d): %s\n"
 
 msgid "trustdb transaction too large\n"
-msgstr "transacción da base de datos de confianza demasiado grande\n"
+msgstr "transacción da base de datos de confianza demasiado grande\n"
 
 #, c-format
 msgid "%s: directory does not exist!\n"
-msgstr "%s: ¡o directorio non existe!\n"
+msgstr "%s: Â¡o directorio non existe!\n"
 
 #, fuzzy, c-format
 msgid "can't access '%s': %s\n"
@@ -5622,7 +5652,7 @@ msgstr "non se pode pechar `%s': %s\n"
 
 #, c-format
 msgid "%s: failed to create version record: %s"
-msgstr "%s: non se puido crea-lo rexistro de versión: %s"
+msgstr "%s: non se puido crea-lo rexistro de versión: %s"
 
 #, c-format
 msgid "%s: invalid trustdb created\n"
@@ -5639,23 +5669,23 @@ msgstr "NOTA: non se pode escribir na base de datos de confianza\n"
 
 #, c-format
 msgid "%s: invalid trustdb\n"
-msgstr "%s: base de datos de confianza non válida\n"
+msgstr "%s: base de datos de confianza non válida\n"
 
 #, c-format
 msgid "%s: failed to create hashtable: %s\n"
-msgstr "%s: fallo ao crear unha táboa hash: %s\n"
+msgstr "%s: fallo ao crear unha táboa hash: %s\n"
 
 #, c-format
 msgid "%s: error updating version record: %s\n"
-msgstr "%s: erro ao actualiza-lo rexistro de versión: %s\n"
+msgstr "%s: erro ao actualiza-lo rexistro de versión: %s\n"
 
 #, c-format
 msgid "%s: error reading version record: %s\n"
-msgstr "%s: erro ao le-lo rexistro de versión: %s\n"
+msgstr "%s: erro ao le-lo rexistro de versión: %s\n"
 
 #, c-format
 msgid "%s: error writing version record: %s\n"
-msgstr "%s: erro ao escribi-lo rexistro de versión: %s\n"
+msgstr "%s: erro ao escribi-lo rexistro de versión: %s\n"
 
 #, c-format
 msgid "trustdb: lseek failed: %s\n"
@@ -5667,15 +5697,15 @@ msgstr "base de datos de confianza: fallou a lectura (n=%d): %s\n"
 
 #, c-format
 msgid "%s: not a trustdb file\n"
-msgstr "%s: non é un ficheiro de base de datos de confianza\n"
+msgstr "%s: non é un ficheiro de base de datos de confianza\n"
 
 #, c-format
 msgid "%s: version record with recnum %lu\n"
-msgstr "%s: rexistro de versión con número de rexistro %lu\n"
+msgstr "%s: rexistro de versión con número de rexistro %lu\n"
 
 #, c-format
 msgid "%s: invalid file version %d\n"
-msgstr "%s: versión do ficheiro incorrecta %d\n"
+msgstr "%s: versión do ficheiro incorrecta %d\n"
 
 #, c-format
 msgid "%s: error reading free record: %s\n"
@@ -5687,7 +5717,7 @@ msgstr "%s: erro ao escribi-lo rexistro de directorios: %s\n"
 
 #, c-format
 msgid "%s: failed to zero a record: %s\n"
-msgstr "%s: non se puido pór a cero un rexistro: %s\n"
+msgstr "%s: non se puido pór a cero un rexistro: %s\n"
 
 #, c-format
 msgid "%s: failed to append a record: %s\n"
@@ -5699,11 +5729,11 @@ msgstr "%s: creouse a base de datos de confianza\n"
 
 #, c-format
 msgid "can't handle text lines longer than %d characters\n"
-msgstr "non é posible manexar liñas de texto maiores que %d caracteres\n"
+msgstr "non é posible manexar liñas de texto maiores que %d caracteres\n"
 
 #, c-format
 msgid "input line longer than %d characters\n"
-msgstr "a liña de entrada contén máis de %d caracteres\n"
+msgstr "a liña de entrada contén máis de %d caracteres\n"
 
 #, fuzzy, c-format
 msgid "error beginning transaction on TOFU database: %s\n"
@@ -5746,27 +5776,31 @@ msgid "error updating TOFU database: %s\n"
 msgstr "erro ao enviar a `%s': %s\n"
 
 #, c-format
-msgid "The binding %s is NOT known."
+msgid ""
+"This is the first time the email address \"%s\" is being used with key %s."
 msgstr ""
 
 #, c-format
-msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr ""
+
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error gathering other user IDs: %s\n"
 msgstr "erro ao crea-lo contrasinal: %s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr ""
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "listar chave e IDs de usuario"
 
 #, fuzzy, c-format
 #| msgid "Policy: "
@@ -5787,41 +5821,47 @@ msgstr[1] ""
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr ""
 
+msgid ", "
+msgstr ""
+
 #, fuzzy
 #| msgid "list keys"
 msgid "this key"
 msgstr "ve-la lista de chaves"
 
-#, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
-msgstr[0] ""
-msgstr[1] ""
-
 #, fuzzy, c-format
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
 msgstr[0] "|algo [ficheiros]|visualizar resumos de mensaxes"
 msgstr[1] "|algo [ficheiros]|visualizar resumos de mensaxes"
 
 #, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+msgid " over the past year."
+msgid_plural " over the past %d years."
 msgstr[0] ""
 msgstr[1] ""
 
+msgid " in the past."
+msgstr ""
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5837,6 +5877,16 @@ msgstr ""
 msgid "(G)ood, (A)ccept once, (U)nknown, (R)eject once, (B)ad? "
 msgstr ""
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "resetting keydb: %s\n"
+msgstr "erro escribindo no chaveiro `%s': %s\n"
+
 #, fuzzy, c-format
 msgid "error setting TOFU binding's trust level to %s\n"
 msgstr "erro lendo `%s': %s\n"
@@ -5884,50 +5934,56 @@ msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
+msgid "%s: "
 msgstr ""
 
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
-msgstr ""
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "Borradas %d sinaturas.\n"
 
 #, fuzzy, c-format
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "|algo [ficheiros]|visualizar resumos de mensaxes"
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
+msgstr[0] "|algo [ficheiros]|visualizar resumos de mensaxes"
+msgstr[1] "|algo [ficheiros]|visualizar resumos de mensaxes"
+
+#, fuzzy, c-format
+#| msgid "encrypted with %lu passphrases\n"
+msgid ", and encrypted %ld messages"
+msgstr "cifrado con %lu contrasinais\n"
+
+#, fuzzy, c-format
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] "|algo [ficheiros]|visualizar resumos de mensaxes"
+msgstr[1] "|algo [ficheiros]|visualizar resumos de mensaxes"
 
-#, c-format
 msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
-msgstr[0] ""
-msgstr[1] ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
+msgstr ""
 
-#, c-format
-msgid "The most recent message was verified %s ago."
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
 msgstr ""
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
 msgstr ""
 
 #, c-format
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -5937,10 +5993,19 @@ msgstr[1] ""
 msgid "error opening TOFU database: %s\n"
 msgstr "erro ao enviar a `%s': %s\n"
 
+#, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring `%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "erro escribindo no chaveiro público `%s': %s\n"
+
 #, fuzzy, c-format
 #| msgid "`%s' is not a valid long keyID\n"
 msgid "'%s' is not a valid long keyID\n"
-msgstr "`%s' non é un ID longo de chave válido\n"
+msgstr "`%s' non é un ID longo de chave válido\n"
 
 #, fuzzy, c-format
 msgid "key %s: accepted as trusted key\n"
@@ -5948,12 +6013,12 @@ msgstr "chave %08lX: aceptada como chave de confianza\n"
 
 #, fuzzy, c-format
 msgid "key %s occurs more than once in the trustdb\n"
-msgstr "a chave %08lX aparece máis dunha vez na base de datos de confianza\n"
+msgstr "a chave %08lX aparece máis dunha vez na base de datos de confianza\n"
 
 #, fuzzy, c-format
 msgid "key %s: no public key for trusted key - skipped\n"
 msgstr ""
-"chave %08lX: non hai unha chave pública para a chave de confianza - omitida\n"
+"chave %08lX: non hai unha chave pública para a chave de confianza - omitida\n"
 
 #, fuzzy, c-format
 msgid "key %s marked as ultimately trusted\n"
@@ -5961,11 +6026,11 @@ msgstr "chave marcada coma de confianza absoluta.\n"
 
 #, c-format
 msgid "trust record %lu, req type %d: read failed: %s\n"
-msgstr "rexistro de confianza %lu, tipo da petición %d: fallou a lectura: %s\n"
+msgstr "rexistro de confianza %lu, tipo da petición %d: fallou a lectura: %s\n"
 
 #, c-format
 msgid "trust record %lu is not of requested type %d\n"
-msgstr "o rexistro de confianza %lu non é do tipo %d solicitado\n"
+msgstr "o rexistro de confianza %lu non é do tipo %d solicitado\n"
 
 msgid "You may try to re-create the trustdb using the commands:\n"
 msgstr ""
@@ -5998,7 +6063,7 @@ msgstr "non se precisa comproba-la base de datos de confianza\n"
 
 #, fuzzy, c-format
 msgid "public key %s not found: %s\n"
-msgstr "non se atopou a chave pública %08lX: %s\n"
+msgstr "non se atopou a chave pública %08lX: %s\n"
 
 msgid "please do a --check-trustdb\n"
 msgstr "por favor, execute con --check-trustdb\n"
@@ -6016,15 +6081,15 @@ msgstr[1] "%lu chaves procesadas hasta polo momento\n"
 #| msgid "%d keys processed (%d validity counts cleared)\n"
 msgid " (%d validity count cleared)\n"
 msgid_plural " (%d validity counts cleared)\n"
-msgstr[0] "procesáronse %d chaves (marcáronse %d contas de validez)\n"
-msgstr[1] "procesáronse %d chaves (marcáronse %d contas de validez)\n"
+msgstr[0] "procesáronse %d chaves (marcáronse %d contas de validez)\n"
+msgstr[1] "procesáronse %d chaves (marcáronse %d contas de validez)\n"
 
 msgid "no ultimately trusted keys found\n"
 msgstr "non se atoparon chaves de confianza absoluta\n"
 
 #, fuzzy, c-format
 msgid "public key of ultimately trusted key %s not found\n"
-msgstr "non se atopou a chave pública da clave de confianza absoluta %08lX\n"
+msgstr "non se atopou a chave pública da clave de confianza absoluta %08lX\n"
 
 #, c-format
 msgid ""
@@ -6072,7 +6137,7 @@ msgstr "[caducada ]"
 
 #, fuzzy
 msgid "[ unknown]"
-msgstr "descoñecido"
+msgstr "descoñecido"
 
 msgid "[  undef ]"
 msgstr ""
@@ -6096,33 +6161,33 @@ msgid ""
 "should be the first file given on the command line.\n"
 msgstr ""
 "non se puido verifica-la sinatura.\n"
-"Por favor, lembre que o ficheiro de sinatura (.sig ou .asc) debería\n"
-"se-lo primeiro ficheiro que se indique na liña de comandos.\n"
+"Por favor, lembre que o ficheiro de sinatura (.sig ou .asc) debería\n"
+"se-lo primeiro ficheiro que se indique na liña de comandos.\n"
 
 #, c-format
 msgid "input line %u too long or missing LF\n"
 msgstr ""
-"a liña de entrada %u é longa de máis ou fáltalle a marca de fin de liña\n"
+"a liña de entrada %u é longa de máis ou fáltalle a marca de fin de liña\n"
 
 #, fuzzy, c-format
 msgid "can't open fd %d: %s\n"
 msgstr "non se puido abrir `%s': %s\n"
 
 msgid "set debugging flags"
-msgstr "axusta-los valores de depuración"
+msgstr "axusta-los valores de depuración"
 
 msgid "enable full debugging"
-msgstr "habilitar depuración total"
+msgstr "habilitar depuración total"
 
 #, fuzzy
 msgid "Usage: kbxutil [options] [files] (-h for help)"
-msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
+msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
 
 #, fuzzy
 msgid ""
 "Syntax: kbxutil [options] [files]\n"
 "List, export, import Keybox data\n"
-msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
+msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
 
 #, c-format
 msgid "RSA modulus missing or not of size %d bits\n"
@@ -6149,11 +6214,11 @@ msgstr "cambia-lo contrasinal"
 
 #, fuzzy
 msgid "|NP|Please enter a new PIN Unblocking Code (PUK) for the standard keys."
-msgstr "Por favor, escolla o motivo da revocación:\n"
+msgstr "Por favor, escolla o motivo da revocación:\n"
 
 #, fuzzy
 msgid "|P|Please enter the PIN Unblocking Code (PUK) for the standard keys."
-msgstr "Por favor, escolla o motivo da revocación:\n"
+msgstr "Por favor, escolla o motivo da revocación:\n"
 
 msgid "|N|Please enter a new PIN for the key to create qualified signatures."
 msgstr ""
@@ -6181,14 +6246,7 @@ msgstr "non se puido inicializa-la base de datos de confianzas: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to store the creation date: %s\n"
-msgstr "fallo ao reconstruí-la caché de chaveiros: %s\n"
-
-#, fuzzy, c-format
-msgid "reading public key failed: %s\n"
-msgstr "fallou o borrado do bloque de chaves: %s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr ""
+msgstr "fallo ao reconstruí-la caché de chaveiros: %s\n"
 
 msgid "response does not contain the RSA modulus\n"
 msgstr ""
@@ -6196,9 +6254,18 @@ msgstr ""
 msgid "response does not contain the RSA public exponent\n"
 msgstr ""
 
-msgid "response does not contain the EC public point\n"
+#, fuzzy
+#| msgid "remove keys from the public keyring"
+msgid "response does not contain the EC public key\n"
+msgstr "borrar chaves do chaveiro público"
+
+msgid "response does not contain the public key data\n"
 msgstr ""
 
+#, fuzzy, c-format
+msgid "reading public key failed: %s\n"
+msgstr "fallou o borrado do bloque de chaves: %s\n"
+
 #, c-format
 msgid "using default PIN as %s\n"
 msgstr ""
@@ -6221,7 +6288,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "verify CHV%d failed: %s\n"
-msgstr "o envío ao servidor de chaves fallou: %s\n"
+msgstr "o envío ao servidor de chaves fallou: %s\n"
 
 msgid "error retrieving CHV status from card\n"
 msgstr ""
@@ -6251,7 +6318,7 @@ msgstr ""
 
 #, fuzzy
 msgid "||Please enter the Reset Code for the card"
-msgstr "Por favor, escolla o motivo da revocación:\n"
+msgstr "Por favor, escolla o motivo da revocación:\n"
 
 #, c-format
 msgid "Reset Code is too short; minimum length is %d\n"
@@ -6287,7 +6354,7 @@ msgstr "%s: erro ao ler un rexistro libre: %s\n"
 
 #, fuzzy
 msgid "key already exists\n"
-msgstr "`%s' xa está comprimido\n"
+msgstr "`%s' xa está comprimido\n"
 
 msgid "existing key will be replaced\n"
 msgstr ""
@@ -6326,8 +6393,8 @@ msgstr "fallou o borrado do bloque de chaves: %s\n"
 #, fuzzy, c-format
 msgid "key generation completed (%d second)\n"
 msgid_plural "key generation completed (%d seconds)\n"
-msgstr[0] "A xeración da chave fallou: %s\n"
-msgstr[1] "A xeración da chave fallou: %s\n"
+msgstr[0] "A xeración da chave fallou: %s\n"
+msgstr[1] "A xeración da chave fallou: %s\n"
 
 msgid "invalid structure of OpenPGP card (DO 0x93)\n"
 msgstr ""
@@ -6349,7 +6416,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "can't access %s - invalid OpenPGP card?\n"
-msgstr "non se atoparon datos OpenPGP válidos.\n"
+msgstr "non se atoparon datos OpenPGP válidos.\n"
 
 #, fuzzy
 msgid "||Please enter your PIN at the reader's pinpad"
@@ -6370,7 +6437,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|write a log to FILE"
-msgstr "|FICHEIRO|carga-lo módulo de extensión FICHEIRO"
+msgstr "|FICHEIRO|carga-lo módulo de extensión FICHEIRO"
 
 msgid "|N|connect to reader at port N"
 msgstr ""
@@ -6402,7 +6469,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Usage: @SCDAEMON@ [options] (-h for help)"
-msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
+msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
 
 msgid ""
 "Syntax: scdaemon [options] [command [args]]\n"
@@ -6422,11 +6489,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid radix64 character %02x skipped\n"
-msgstr "carácter radix64 non válido %02x omitido\n"
+msgstr "carácter radix64 non válido %02x omitido\n"
 
 #, fuzzy
 msgid "no dirmngr running in this session\n"
-msgstr "gpg-agent non está dispoñible nesta sesión\n"
+msgstr "gpg-agent non está dispoñible nesta sesión\n"
 
 #, c-format
 msgid "validation model requested by certificate: %s"
@@ -6441,7 +6508,7 @@ msgstr "axuda"
 
 #, fuzzy, c-format
 msgid "critical certificate extension %s is not supported"
-msgstr "a versión %d do protocolo de gpg-agent non está soportada\n"
+msgstr "a versión %d do protocolo de gpg-agent non está soportada\n"
 
 msgid "issuer certificate is not marked as a CA"
 msgstr ""
@@ -6485,7 +6552,7 @@ msgstr "non se puido inicializa-la base de datos de confianzas: %s\n"
 
 #, fuzzy
 msgid "certificate has been revoked"
-msgstr "NOTA: a chave está revocada"
+msgstr "NOTA: a chave está revocada"
 
 msgid "the status of the certificate is unknown"
 msgstr ""
@@ -6495,7 +6562,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "checking the CRL failed: %s"
-msgstr "fallou a comprobación da sinatura creada: %s\n"
+msgstr "fallou a comprobación da sinatura creada: %s\n"
 
 #, fuzzy, c-format
 msgid "certificate with invalid validity: %s"
@@ -6503,15 +6570,15 @@ msgstr "problema de lectura do certificado: %s\n"
 
 #, fuzzy
 msgid "certificate not yet valid"
-msgstr "Revocación de certificado válida"
+msgstr "Revocación de certificado válida"
 
 #, fuzzy
 msgid "root certificate not yet valid"
-msgstr "Revocación de certificado válida"
+msgstr "Revocación de certificado válida"
 
 #, fuzzy
 msgid "intermediate certificate not yet valid"
-msgstr "Revocación de certificado válida"
+msgstr "Revocación de certificado válida"
 
 #, fuzzy
 msgid "certificate has expired"
@@ -6548,11 +6615,11 @@ msgstr "         novas sinaturas: %lu\n"
 
 #, fuzzy
 msgid "  (certificate created at "
-msgstr "Creouse o certificado de revocación.\n"
+msgstr "Creouse o certificado de revocación.\n"
 
 #, fuzzy
 msgid "  (certificate valid from "
-msgstr "Revocación de certificado válida"
+msgstr "Revocación de certificado válida"
 
 msgid "  (     issuer valid from "
 msgstr ""
@@ -6591,15 +6658,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "checking the trust list failed: %s\n"
-msgstr "fallou a comprobación da sinatura creada: %s\n"
+msgstr "fallou a comprobación da sinatura creada: %s\n"
 
 #, fuzzy
 msgid "certificate chain too long\n"
-msgstr "Revocación de certificado válida"
+msgstr "Revocación de certificado válida"
 
 #, fuzzy
 msgid "issuer certificate not found"
-msgstr "Revocación de certificado válida"
+msgstr "Revocación de certificado válida"
 
 #, fuzzy
 msgid "certificate has a BAD signature"
@@ -6614,7 +6681,7 @@ msgstr ""
 
 #, fuzzy
 msgid "certificate is good\n"
-msgstr "Revocación de certificado válida"
+msgstr "Revocación de certificado válida"
 
 #, fuzzy
 msgid "intermediate certificate is good\n"
@@ -6646,7 +6713,7 @@ msgstr "non|nom"
 
 #, fuzzy
 msgid "[Error - invalid encoding]"
-msgstr "erro: pegada dactilar non válida\n"
+msgstr "erro: pegada dactilar non válida\n"
 
 msgid "[Error - out of core]"
 msgstr ""
@@ -6656,7 +6723,7 @@ msgstr ""
 
 #, fuzzy
 msgid "[Error - invalid DN]"
-msgstr "erro: pegada dactilar non válida\n"
+msgstr "erro: pegada dactilar non válida\n"
 
 #, fuzzy, c-format
 msgid ""
@@ -6697,7 +6764,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "line %d: invalid algorithm\n"
-msgstr "algoritmo de hash non válido `%s'\n"
+msgstr "algoritmo de hash non válido `%s'\n"
 
 #, c-format
 msgid "line %d: invalid key length %u (valid are %d to %d)\n"
@@ -6709,19 +6776,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "line %d: invalid subject name label '%.*s'\n"
-msgstr "algoritmo de hash non válido `%s'\n"
+msgstr "algoritmo de hash non válido `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid subject name '%s' at pos %d\n"
-msgstr "algoritmo de hash non válido `%s'\n"
+msgstr "algoritmo de hash non válido `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: not a valid email address\n"
-msgstr "Non é un enderezo de e-mail válido\n"
+msgstr "Non é un enderezo de e-mail válido\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid serial number\n"
-msgstr "algoritmo de hash non válido `%s'\n"
+msgstr "algoritmo de hash non válido `%s'\n"
 
 #, c-format
 msgid "line %d: invalid issuer name label '%.*s'\n"
@@ -6733,7 +6800,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "line %d: invalid date given\n"
-msgstr "algoritmo de hash non válido `%s'\n"
+msgstr "algoritmo de hash non válido `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: error getting signing key by keygrip '%s': %s\n"
@@ -6741,19 +6808,19 @@ msgstr "erro ao crea-lo chaveiro `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid hash algorithm given\n"
-msgstr "algoritmo de hash non válido `%s'\n"
+msgstr "algoritmo de hash non válido `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid authority-key-id\n"
-msgstr "algoritmo de hash non válido `%s'\n"
+msgstr "algoritmo de hash non válido `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid subject-key-id\n"
-msgstr "chave %08lX: ligazón de sub-chave incorrecta\n"
+msgstr "chave %08lX: ligazón de sub-chave incorrecta\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid extension syntax\n"
-msgstr "algoritmo de hash non válido `%s'\n"
+msgstr "algoritmo de hash non válido `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: error reading key '%s' from card: %s\n"
@@ -6765,7 +6832,7 @@ msgstr "erro ao crea-lo chaveiro `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: key generation failed: %s <%s>\n"
-msgstr "A xeración da chave fallou: %s\n"
+msgstr "A xeración da chave fallou: %s\n"
 
 msgid ""
 "To complete this certificate request please enter the passphrase for the key "
@@ -6774,11 +6841,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "   (%d) RSA\n"
-msgstr "   (%d) RSA (só asinar)\n"
+msgstr "   (%d) RSA (só asinar)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) Existing key\n"
-msgstr "   (%d) RSA (só cifrar)\n"
+msgstr "   (%d) RSA (só cifrar)\n"
 
 #, c-format
 msgid "   (%d) Existing key from card\n"
@@ -6806,22 +6873,22 @@ msgstr "   (%d) RSA (asinar e cifrar)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) sign\n"
-msgstr "   (%d) DSA (só asinar)\n"
+msgstr "   (%d) DSA (só asinar)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) encrypt\n"
-msgstr "   (%d) RSA (só cifrar)\n"
+msgstr "   (%d) RSA (só cifrar)\n"
 
 msgid "Enter the X.509 subject name: "
 msgstr ""
 
 #, fuzzy
 msgid "No subject name given\n"
-msgstr "(Non se deu unha descrición)\n"
+msgstr "(Non se deu unha descrición)\n"
 
 #, fuzzy, c-format
 msgid "Invalid subject name label '%.*s'\n"
-msgstr "algoritmo de hash non válido `%s'\n"
+msgstr "algoritmo de hash non válido `%s'\n"
 
 #. TRANSLATORS: The 22 in the second string is the
 #. length of the first string up to the "%s".  Please
@@ -6830,7 +6897,7 @@ msgstr "algoritmo de hash non v
 #. drop everything after the number.
 #, fuzzy, c-format
 msgid "Invalid subject name '%s'\n"
-msgstr "algoritmo de hash non válido `%s'\n"
+msgstr "algoritmo de hash non válido `%s'\n"
 
 msgid "22 translator: see certreg-ui.c:gpgsm_gencertreq_tty"
 msgstr ""
@@ -6843,7 +6910,7 @@ msgstr "Enderezo de E-mail: "
 msgid " (end with an empty line):\n"
 msgstr ""
 "\n"
-"Introduza o ID de usuario. Remate cunha liña en branco: "
+"Introduza o ID de usuario. Remate cunha liña en branco: "
 
 #, fuzzy
 msgid "Enter DNS names"
@@ -6851,7 +6918,7 @@ msgstr "Introduza o novo nome de ficheiro"
 
 #, fuzzy
 msgid " (optional; end with an empty line):\n"
-msgstr "Introduza unha descrición opcional; remátea cunha liña en branco:\n"
+msgstr "Introduza unha descrición opcional; remátea cunha liña en branco:\n"
 
 #, fuzzy
 msgid "Enter URIs"
@@ -6859,7 +6926,7 @@ msgstr "Introduza o ID de usuario: "
 
 #, fuzzy
 msgid "Create self-signed certificate? (y/N) "
-msgstr "¿Crear un certificado de revocación para esta sinatura? "
+msgstr "¿Crear un certificado de revocación para esta sinatura? "
 
 msgid "These parameters are used:\n"
 msgstr ""
@@ -6870,7 +6937,7 @@ msgstr ""
 #, fuzzy
 #| msgid "Revocation certificate created.\n"
 msgid "Now creating certificate request.  "
-msgstr "Creouse o certificado de revocación.\n"
+msgstr "Creouse o certificado de revocación.\n"
 
 msgid "This may take a while ...\n"
 msgstr ""
@@ -6912,7 +6979,7 @@ msgstr "fallou o borrado do bloque de chaves: %s\n"
 
 #, fuzzy
 msgid "no valid recipients given\n"
-msgstr "(Non se deu unha descrición)\n"
+msgstr "(Non se deu unha descrición)\n"
 
 #, fuzzy
 msgid "list external keys"
@@ -6920,7 +6987,7 @@ msgstr "ve-la lista de chaves secretas"
 
 #, fuzzy
 msgid "list certificate chain"
-msgstr "Revocación de certificado válida"
+msgstr "Revocación de certificado válida"
 
 #, fuzzy
 msgid "import certificates"
@@ -6941,7 +7008,7 @@ msgstr ""
 
 #, fuzzy
 msgid "create base-64 encoded output"
-msgstr "crear saída con armadura en ascii"
+msgstr "crear saída con armadura en ascii"
 
 msgid "assume input is in PEM format"
 msgstr ""
@@ -6978,20 +7045,20 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|write an audit log to FILE"
-msgstr "|FICHEIRO|carga-lo módulo de extensión FICHEIRO"
+msgstr "|FICHEIRO|carga-lo módulo de extensión FICHEIRO"
 
 msgid "batch mode: never ask"
 msgstr "modo por lotes: non preguntar nunca"
 
 msgid "assume yes on most questions"
-msgstr "asumir `si' na maioría das preguntas"
+msgstr "asumir `si' na maioría das preguntas"
 
 msgid "assume no on most questions"
-msgstr "asumir `non' na maioría das preguntas"
+msgstr "asumir `non' na maioría das preguntas"
 
 #, fuzzy
 msgid "|FILE|add keyring to the list of keyrings"
-msgstr "engadir este chaveiro á lista de chaveiros"
+msgstr "engadir este chaveiro á lista de chaveiros"
 
 #, fuzzy
 msgid "|USER-ID|use USER-ID as default secret key"
@@ -7010,7 +7077,7 @@ msgstr "|NOME|emprega-lo algoritmo de resumos de mensaxes NOME"
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: @GPGSM@ [options] [files] (-h for help)"
-msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
+msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
 
 #, fuzzy
 msgid ""
@@ -7018,9 +7085,9 @@ msgid ""
 "Sign, check, encrypt or decrypt using the S/MIME protocol\n"
 "Default operation depends on the input data\n"
 msgstr ""
-"Sintaxe: gpg [opcións] [ficheiros]\n"
+"Sintaxe: gpg [opcións] [ficheiros]\n"
 "asinar, verificar, cifrar ou descifrar\n"
-"a operación por defecto depende dos datos de entrada\n"
+"a operación por defecto depende dos datos de entrada\n"
 
 #, fuzzy, c-format
 msgid "Note: won't be able to encrypt to '%s': %s\n"
@@ -7028,11 +7095,11 @@ msgstr "non se puido conectar a `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "unknown validation model '%s'\n"
-msgstr "destinatario por defecto `%s' descoñecido\n"
+msgstr "destinatario por defecto `%s' descoñecido\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: no hostname given\n"
-msgstr "(Non se deu unha descrición)\n"
+msgstr "(Non se deu unha descrición)\n"
 
 #, c-format
 msgid "%s:%u: password given without user\n"
@@ -7059,7 +7126,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "total number processed: %lu\n"
-msgstr "Número total procesado: %lu\n"
+msgstr "Número total procesado: %lu\n"
 
 #, fuzzy
 msgid "error storing certificate\n"
@@ -7098,7 +7165,7 @@ msgstr "erro ao crea-lo contrasinal: %s\n"
 
 #, fuzzy, c-format
 msgid "problem re-searching certificate: %s\n"
-msgstr "rev? problema ao comproba-la revocación: %s\n"
+msgstr "rev? problema ao comproba-la revocación: %s\n"
 
 #, fuzzy, c-format
 msgid "error storing flags: %s\n"
@@ -7112,11 +7179,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid formatted fingerprint in '%s', line %d\n"
-msgstr "erro: pegada dactilar non válida\n"
+msgstr "erro: pegada dactilar non válida\n"
 
 #, fuzzy, c-format
 msgid "invalid country code in '%s', line %d\n"
-msgstr "erro: pegada dactilar non válida\n"
+msgstr "erro: pegada dactilar non válida\n"
 
 #, c-format
 msgid ""
@@ -7142,7 +7209,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "hash algorithm %d (%s) for signer %d not supported; using %s\n"
-msgstr "o algoritmo de protección %d%s non está soportado\n"
+msgstr "o algoritmo de protección %d%s non está soportado\n"
 
 #, c-format
 msgid "hash algorithm used for signer %d: %s (%s)\n"
@@ -7150,7 +7217,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "checking for qualified certificate failed: %s\n"
-msgstr "fallou a comprobación da sinatura creada: %s\n"
+msgstr "fallou a comprobación da sinatura creada: %s\n"
 
 #, fuzzy
 msgid "Signature made "
@@ -7183,7 +7250,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "can't initialize certificate cache lock: %s\n"
-msgstr "fallou a comprobación da sinatura creada: %s\n"
+msgstr "fallou a comprobación da sinatura creada: %s\n"
 
 #, c-format
 msgid "can't acquire read lock on the certificate cache: %s\n"
@@ -7234,7 +7301,7 @@ msgstr "erro ao crea-lo contrasinal: %s\n"
 
 #, fuzzy, c-format
 msgid "permanently loaded certificates: %u\n"
-msgstr "Certificado non válido"
+msgstr "Certificado non válido"
 
 #, fuzzy, c-format
 msgid "    runtime cached certificates: %u\n"
@@ -7242,11 +7309,11 @@ msgstr "erro ao crea-lo contrasinal: %s\n"
 
 #, fuzzy
 msgid "certificate already cached\n"
-msgstr "Creouse o certificado de revocación.\n"
+msgstr "Creouse o certificado de revocación.\n"
 
 #, fuzzy
 msgid "certificate cached\n"
-msgstr "Revocación de certificado válida"
+msgstr "Revocación de certificado válida"
 
 #, fuzzy, c-format
 msgid "error caching certificate: %s\n"
@@ -7254,7 +7321,7 @@ msgstr "erro ao crea-lo contrasinal: %s\n"
 
 #, fuzzy, c-format
 msgid "invalid SHA1 fingerprint string '%s'\n"
-msgstr "erro: pegada dactilar non válida\n"
+msgstr "erro: pegada dactilar non válida\n"
 
 #, fuzzy, c-format
 msgid "error fetching certificate by S/N: %s\n"
@@ -7283,7 +7350,7 @@ msgstr "erro ao crea-lo chaveiro `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "ignoring database dir '%s'\n"
-msgstr "error nunha liña adicional\n"
+msgstr "error nunha liña adicional\n"
 
 #, fuzzy, c-format
 msgid "error reading directory '%s': %s\n"
@@ -7296,7 +7363,7 @@ msgstr "fallou o borrado do bloque de chaves: %s\n"
 #, fuzzy, c-format
 #| msgid "enarmoring failed: %s\n"
 msgid "not removing file '%s'\n"
-msgstr "non se puido poñe-la armadura: %s\n"
+msgstr "non se puido poñe-la armadura: %s\n"
 
 #, fuzzy, c-format
 msgid "error closing cache file: %s\n"
@@ -7322,7 +7389,7 @@ msgstr "erro lendo `%s': %s\n"
 #, fuzzy, c-format
 #| msgid "new configuration file `%s' created\n"
 msgid "new cache dir file '%s' created\n"
-msgstr " creouse un novo ficheiro de configuración `%s'\n"
+msgstr " creouse un novo ficheiro de configuración `%s'\n"
 
 #, fuzzy, c-format
 msgid "failed to re-open cache dir file '%s': %s\n"
@@ -7344,7 +7411,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid line detected in '%s' line %u\n"
-msgstr "erro: pegada dactilar non válida\n"
+msgstr "erro: pegada dactilar non válida\n"
 
 #, fuzzy, c-format
 msgid "duplicate entry detected in '%s' line %u\n"
@@ -7356,7 +7423,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid issuer hash in '%s' line %u\n"
-msgstr "erro: pegada dactilar non válida\n"
+msgstr "erro: pegada dactilar non válida\n"
 
 #, fuzzy, c-format
 msgid "no issuer DN in '%s' line %u\n"
@@ -7364,12 +7431,12 @@ msgstr "erro de lectura: %s\n"
 
 #, fuzzy, c-format
 msgid "invalid timestamp in '%s' line %u\n"
-msgstr "erro: pegada dactilar non válida\n"
+msgstr "erro: pegada dactilar non válida\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: invalid size of random_seed file - not used\n"
 msgid "WARNING: invalid cache file hash in '%s' line %u\n"
-msgstr "AVISO: tamaño do ficheiro random_seed non válido - non se emprega\n"
+msgstr "AVISO: tamaño do ficheiro random_seed non válido - non se emprega\n"
 
 msgid "detected errors in cache dir file\n"
 msgstr ""
@@ -7404,7 +7471,7 @@ msgstr "erro lendo `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "invalid formatted checksum for '%s'\n"
-msgstr "erro: pegada dactilar non válida\n"
+msgstr "erro: pegada dactilar non válida\n"
 
 msgid "too many open cache files; can't open anymore\n"
 msgstr ""
@@ -7429,12 +7496,12 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "failed to create a new cache object: %s\n"
-msgstr "%s: fallo ao crear unha táboa hash: %s\n"
+msgstr "%s: fallo ao crear unha táboa hash: %s\n"
 
 #, fuzzy, c-format
 #| msgid "No help available for `%s'"
 msgid "no CRL available for issuer id %s\n"
-msgstr "Non hai axuda dispoñible para `%s'"
+msgstr "Non hai axuda dispoñible para `%s'"
 
 #, c-format
 msgid "cached CRL for issuer id %s too old; update required\n"
@@ -7481,7 +7548,7 @@ msgstr "erro ao crea-lo contrasinal: %s\n"
 #, fuzzy, c-format
 #| msgid "invalid hash algorithm `%s'\n"
 msgid "unknown hash algorithm '%s'\n"
-msgstr "algoritmo de hash non válido `%s'\n"
+msgstr "algoritmo de hash non válido `%s'\n"
 
 #, c-format
 msgid "gcry_md_open for algorithm %d failed: %s\n"
@@ -7490,7 +7557,7 @@ msgstr ""
 #, fuzzy
 #| msgid "invalid response from agent\n"
 msgid "got an invalid S-expression from libksba\n"
-msgstr "resposta do axente non válida\n"
+msgstr "resposta do axente non válida\n"
 
 #, fuzzy, c-format
 #| msgid "changing permission of  `%s' failed: %s\n"
@@ -7536,11 +7603,11 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "signature verification suppressed\n"
 msgid "CRL signature verification failed: %s\n"
-msgstr "verificación de sinatura suprimida\n"
+msgstr "verificación de sinatura suprimida\n"
 
 #, fuzzy, c-format
 msgid "error checking validity of CRL issuer certificate: %s\n"
-msgstr "fallou a comprobación da sinatura creada: %s\n"
+msgstr "fallou a comprobación da sinatura creada: %s\n"
 
 #, fuzzy, c-format
 msgid "ksba_crl_new failed: %s\n"
@@ -7548,7 +7615,7 @@ msgstr "fallou o borrado do bloque de chaves: %s\n"
 
 #, fuzzy, c-format
 msgid "ksba_crl_set_reader failed: %s\n"
-msgstr "a actualización fallou: %s\n"
+msgstr "a actualización fallou: %s\n"
 
 #, fuzzy, c-format
 msgid "removed stale temporary cache file '%s'\n"
@@ -7565,7 +7632,7 @@ msgstr "erro ao crea-lo contrasinal: %s\n"
 #, fuzzy, c-format
 #| msgid "lid ?: insert failed: %s\n"
 msgid "crl_parse_insert failed: %s\n"
-msgstr "lid ?: a inserción fallou: %s\n"
+msgstr "lid ?: a inserción fallou: %s\n"
 
 #, fuzzy, c-format
 msgid "error finishing temporary cache file '%s': %s\n"
@@ -7597,7 +7664,7 @@ msgstr "erro ao crea-lo contrasinal: %s\n"
 
 #, fuzzy, c-format
 msgid "problem renaming '%s' to '%s': %s\n"
-msgstr "non se puido poñe-la armadura: %s\n"
+msgstr "non se puido poñe-la armadura: %s\n"
 
 msgid ""
 "updating the DIR file failed - cache entry will get lost with the next "
@@ -7626,7 +7693,7 @@ msgstr ""
 #, fuzzy
 #| msgid "WARNING: invalid size of random_seed file - not used\n"
 msgid " WARNING: invalid cache record length\n"
-msgstr "AVISO: tamaño do ficheiro random_seed non válido - non se emprega\n"
+msgstr "AVISO: tamaño do ficheiro random_seed non válido - non se emprega\n"
 
 #, fuzzy, c-format
 msgid "problem reading cache record: %s\n"
@@ -7634,7 +7701,7 @@ msgstr "%s: erro ao ler un rexistro libre: %s\n"
 
 #, fuzzy, c-format
 msgid "problem reading cache key: %s\n"
-msgstr "rev? problema ao comproba-la revocación: %s\n"
+msgstr "rev? problema ao comproba-la revocación: %s\n"
 
 #, fuzzy, c-format
 msgid "error reading cache entry from db: %s\n"
@@ -7645,12 +7712,12 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "crl_fetch via DP failed: %s\n"
-msgstr "a actualización fallou: %s\n"
+msgstr "a actualización fallou: %s\n"
 
 #, fuzzy, c-format
 #| msgid "lid ?: insert failed: %s\n"
 msgid "crl_cache_insert via DP failed: %s\n"
-msgstr "lid ?: a inserción fallou: %s\n"
+msgstr "lid ?: a inserción fallou: %s\n"
 
 #, fuzzy, c-format
 msgid "crl_cache_insert via issuer failed: %s\n"
@@ -7703,21 +7770,21 @@ msgstr ""
 
 #, fuzzy
 msgid "add a certificate to the cache"
-msgstr "Creouse o certificado de revocación.\n"
+msgstr "Creouse o certificado de revocación.\n"
 
 #, fuzzy
 #| msgid "bad certificate"
 msgid "validate a certificate"
-msgstr "certificado erróneo"
+msgstr "certificado erróneo"
 
 #, fuzzy
 #| msgid "bad certificate"
 msgid "lookup a certificate"
-msgstr "certificado erróneo"
+msgstr "certificado erróneo"
 
 #, fuzzy
 msgid "lookup only locally stored certificates"
-msgstr "Certificado non válido"
+msgstr "Certificado non válido"
 
 msgid "expect an URL for --lookup"
 msgstr ""
@@ -7740,7 +7807,7 @@ msgstr "Introduza o ID de usuario do revocador designado: "
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: dirmngr-client [options] [certfile|pattern] (-h for help)\n"
-msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
+msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
 
 msgid ""
 "Syntax: dirmngr-client [options] [certfile|pattern]\n"
@@ -7768,11 +7835,11 @@ msgstr "non se puido conectar a `%s': %s\n"
 #, fuzzy, c-format
 #| msgid "update failed: %s\n"
 msgid "lookup failed: %s\n"
-msgstr "a actualización fallou: %s\n"
+msgstr "a actualización fallou: %s\n"
 
 #, fuzzy, c-format
 msgid "loading CRL '%s' failed: %s\n"
-msgstr "non se puido poñe-la armadura: %s\n"
+msgstr "non se puido poñe-la armadura: %s\n"
 
 msgid "a dirmngr daemon is up and running\n"
 msgstr ""
@@ -7783,11 +7850,11 @@ msgstr "fallou o borrado do bloque de chaves: %s\n"
 
 #, fuzzy
 msgid "certificate is valid\n"
-msgstr "Revocación de certificado válida"
+msgstr "Revocación de certificado válida"
 
 #, fuzzy
 msgid "certificate has been revoked\n"
-msgstr "NOTA: a chave está revocada"
+msgstr "NOTA: a chave está revocada"
 
 #, fuzzy, c-format
 msgid "certificate check failed: %s\n"
@@ -7821,7 +7888,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|load CRL from FILE into cache"
-msgstr "|FICHEIRO|carga-lo módulo de extensión FICHEIRO"
+msgstr "|FICHEIRO|carga-lo módulo de extensión FICHEIRO"
 
 msgid "|URL|fetch a CRL from URL"
 msgstr ""
@@ -7837,7 +7904,7 @@ msgstr ""
 
 #, fuzzy
 msgid "run without asking a user"
-msgstr "¿Saír sin gardar? "
+msgstr "¿Saír sin gardar? "
 
 msgid "force loading of outdated CRLs"
 msgstr ""
@@ -7845,6 +7912,9 @@ msgstr ""
 msgid "allow sending OCSP requests"
 msgstr ""
 
+msgid "allow online software version check"
+msgstr ""
+
 msgid "inhibit the use of HTTP"
 msgstr ""
 
@@ -7871,7 +7941,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|read LDAP server list from FILE"
-msgstr "|FICHEIRO|carga-lo módulo de extensión FICHEIRO"
+msgstr "|FICHEIRO|carga-lo módulo de extensión FICHEIRO"
 
 msgid "add new servers discovered in CRL distribution points to serverlist"
 msgstr ""
@@ -7905,11 +7975,11 @@ msgid ""
 "options)\n"
 msgstr ""
 "@\n"
-"(Vexa a páxina man para un listado completo de comandos e opcións)\n"
+"(Vexa a páxina man para un listado completo de comandos e opcións)\n"
 
 #, fuzzy
 msgid "Usage: @DIRMNGR@ [options] (-h for help)"
-msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
+msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
 
 msgid ""
 "Syntax: @DIRMNGR@ [options] [command [args]]\n"
@@ -7922,28 +7992,28 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "usage: %s [options] "
-msgstr "uso: gpg [opcións] "
+msgstr "uso: gpg [opcións] "
 
 #, fuzzy
 #| msgid "%s not allowed with %s!\n"
 msgid "colons are not allowed in the socket name\n"
-msgstr "¡%s non se admite con %s!\n"
+msgstr "¡%s non se admite con %s!\n"
 
 #, fuzzy, c-format
 msgid "fetching CRL from '%s' failed: %s\n"
-msgstr "non se puido poñe-la armadura: %s\n"
+msgstr "non se puido poñe-la armadura: %s\n"
 
 #, fuzzy, c-format
 msgid "processing CRL from '%s' failed: %s\n"
-msgstr "non se puido poñe-la armadura: %s\n"
+msgstr "non se puido poñe-la armadura: %s\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: line too long - skipped\n"
-msgstr "liña longa de máis\n"
+msgstr "liña longa de máis\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: invalid fingerprint detected\n"
-msgstr "erro: pegada dactilar non válida\n"
+msgstr "erro: pegada dactilar non válida\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: read error: %s\n"
@@ -8014,7 +8084,7 @@ msgstr ""
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: dirmngr_ldap [options] [URL] (-h for help)\n"
-msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
+msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
 
 msgid ""
 "Syntax: dirmngr_ldap [options] [URL]\n"
@@ -8025,7 +8095,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "invalid import options\n"
 msgid "invalid port number %d\n"
-msgstr "opcións de importación non válidas\n"
+msgstr "opcións de importación non válidas\n"
 
 #, c-format
 msgid "scanning result for attribute '%s'\n"
@@ -8084,7 +8154,7 @@ msgstr "               alias \""
 
 #, fuzzy, c-format
 msgid "no host name in '%s'\n"
-msgstr "(Non se deu unha descrición)\n"
+msgstr "(Non se deu unha descrición)\n"
 
 #, c-format
 msgid "no attribute given for query '%s'\n"
@@ -8093,15 +8163,15 @@ msgstr ""
 #, fuzzy
 #| msgid "WARNING: using insecure memory!\n"
 msgid "WARNING: using first attribute only\n"
-msgstr "AVISO: ¡úsase memoria insegura!\n"
+msgstr "AVISO: ¡úsase memoria insegura!\n"
 
 #, fuzzy, c-format
 msgid "LDAP init to '%s:%d' failed: %s\n"
-msgstr "non se puido poñe-la armadura: %s\n"
+msgstr "non se puido poñe-la armadura: %s\n"
 
 #, fuzzy, c-format
 msgid "binding to '%s:%d' failed: %s\n"
-msgstr "non se puido poñe-la armadura: %s\n"
+msgstr "non se puido poñe-la armadura: %s\n"
 
 #, fuzzy, c-format
 #| msgid "dearmoring failed: %s\n"
@@ -8110,17 +8180,13 @@ msgstr "non se puido quita-la armadura: %s\n"
 
 #, fuzzy, c-format
 msgid "'%s' is not an LDAP URL\n"
-msgstr "\"%s\" non é un ficheiro JPEG\n"
+msgstr "\"%s\" non é un ficheiro JPEG\n"
 
 #, c-format
 msgid "'%s' is an invalid LDAP URL\n"
 msgstr ""
 
 #, fuzzy, c-format
-msgid "error allocating memory: %s\n"
-msgstr "erro ao crea-lo chaveiro `%s': %s\n"
-
-#, fuzzy, c-format
 msgid "error printing log line: %s\n"
 msgstr "erro escribindo no chaveiro `%s': %s\n"
 
@@ -8130,7 +8196,7 @@ msgstr "erro lendo `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "npth_select failed: %s - waiting 1s\n"
-msgstr "o segredo da actualización fallou: %s\n"
+msgstr "o segredo da actualización fallou: %s\n"
 
 #, c-format
 msgid "ldap wrapper %d ready"
@@ -8146,7 +8212,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "waiting for ldap wrapper %d failed: %s\n"
-msgstr "a actualización fallou: %s\n"
+msgstr "a actualización fallou: %s\n"
 
 #, c-format
 msgid "ldap wrapper %d stalled - killing\n"
@@ -8182,7 +8248,7 @@ msgstr ""
 #, fuzzy
 #| msgid "%s: invalid file version %d\n"
 msgid "invalid canonical S-expression found\n"
-msgstr "%s: versión do ficheiro incorrecta %d\n"
+msgstr "%s: versión do ficheiro incorrecta %d\n"
 
 #, fuzzy, c-format
 msgid "gcry_md_open failed: %s\n"
@@ -8191,7 +8257,7 @@ msgstr "non se puido abrir un ficheiro: %s\n"
 #, fuzzy, c-format
 #| msgid "update secret failed: %s\n"
 msgid "oops: ksba_cert_hash failed: %s\n"
-msgstr "o segredo da actualización fallou: %s\n"
+msgstr "o segredo da actualización fallou: %s\n"
 
 msgid "bad URL encoding detected\n"
 msgstr ""
@@ -8263,7 +8329,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "issuer certificate not found: %s\n"
-msgstr "Revocación de certificado válida"
+msgstr "Revocación de certificado válida"
 
 msgid "caller did not return the target certificate\n"
 msgstr ""
@@ -8279,7 +8345,7 @@ msgstr "non se puido inicializa-la base de datos de confianzas: %s\n"
 #, fuzzy, c-format
 #| msgid "%s: can't access: %s\n"
 msgid "can't get authorityInfoAccess: %s\n"
-msgstr "%s: non é posible acceder: %s\n"
+msgstr "%s: non é posible acceder: %s\n"
 
 msgid "no default OCSP responder defined\n"
 msgstr ""
@@ -8314,7 +8380,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "certificate has been revoked at: %s due to: %s\n"
-msgstr "NOTA: a chave está revocada"
+msgstr "NOTA: a chave está revocada"
 
 msgid "OCSP responder returned a status in the future\n"
 msgstr ""
@@ -8365,7 +8431,7 @@ msgstr "non se pode crear `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "failed to allocate assuan context: %s\n"
-msgstr "%s: fallo ao crear unha táboa hash: %s\n"
+msgstr "%s: fallo ao crear unha táboa hash: %s\n"
 
 #, fuzzy, c-format
 #| msgid "failed to initialize the TrustDB: %s\n"
@@ -8374,7 +8440,7 @@ msgstr "non se puido inicializa-la base de datos de confianzas: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to the register commands with Assuan: %s\n"
-msgstr "fallo ao reconstruí-la caché de chaveiros: %s\n"
+msgstr "fallo ao reconstruí-la caché de chaveiros: %s\n"
 
 #, c-format
 msgid "Assuan accept problem: %s\n"
@@ -8398,7 +8464,7 @@ msgstr ""
 
 #, fuzzy
 msgid "checking CRL for"
-msgstr "fallou a comprobación da sinatura creada: %s\n"
+msgstr "fallou a comprobación da sinatura creada: %s\n"
 
 #, fuzzy
 msgid "selfsigned certificate has a BAD signature"
@@ -8406,11 +8472,11 @@ msgstr "verificar unha sinatura"
 
 #, fuzzy, c-format
 msgid "checking trustworthiness of root certificate failed: %s\n"
-msgstr "fallou a comprobación da sinatura creada: %s\n"
+msgstr "fallou a comprobación da sinatura creada: %s\n"
 
 #, fuzzy
 msgid "certificate chain is good\n"
-msgstr "Revocación de certificado válida"
+msgstr "Revocación de certificado válida"
 
 msgid "DSA requires the use of a 160 bit hash algorithm\n"
 msgstr "DSA require o emprego dun algoritmo hash de 160 bits\n"
@@ -8445,14 +8511,14 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|run commands from FILE on startup"
-msgstr "|FICHEIRO|carga-lo módulo de extensión FICHEIRO"
+msgstr "|FICHEIRO|carga-lo módulo de extensión FICHEIRO"
 
 msgid "run /subst on startup"
 msgstr ""
 
 #, fuzzy
 msgid "Usage: @GPG@-connect-agent [options] (-h for help)"
-msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
+msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
 
 msgid ""
 "Syntax: @GPG@-connect-agent [options]\n"
@@ -8473,14 +8539,14 @@ msgstr "fallou o borrado do bloque de chaves: %s\n"
 
 #, fuzzy
 msgid "line too long - skipped\n"
-msgstr "liña longa de máis\n"
+msgstr "liña longa de máis\n"
 
 msgid "line shortened due to embedded Nul character\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "unknown command '%s'\n"
-msgstr "destinatario por defecto `%s' descoñecido\n"
+msgstr "destinatario por defecto `%s' descoñecido\n"
 
 #, fuzzy, c-format
 msgid "sending line failed: %s\n"
@@ -8498,7 +8564,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Options useful for debugging"
-msgstr "habilitar depuración total"
+msgstr "habilitar depuración total"
 
 msgid "Options controlling the security"
 msgstr ""
@@ -8595,28 +8661,30 @@ msgstr ""
 msgid "Configuration for OCSP"
 msgstr ""
 
-msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr ""
 
-msgid "GPG Agent"
+msgid "Private Keys"
 msgstr ""
 
-msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr ""
 
-msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr ""
 
-msgid "Key Acquirer"
-msgstr ""
+#, fuzzy
+#| msgid "network error"
+msgid "Network"
+msgstr "erro de rede"
 
 #, fuzzy
-msgid "PIN and Passphrase Entry"
-msgstr "contrasinal erróneo"
+msgid "Passphrase Entry"
+msgstr "contrasinal erróneo"
 
 #, fuzzy
 msgid "Component not suitable for launching"
-msgstr "non se atopou a chave pública"
+msgstr "non se atopou a chave pública"
 
 #, c-format
 msgid "External verification of component %s failed"
@@ -8648,11 +8716,16 @@ msgstr ""
 
 #, fuzzy
 msgid "list global configuration file"
-msgstr " creouse un novo ficheiro de configuración `%s'\n"
+msgstr " creouse un novo ficheiro de configuración `%s'\n"
 
 #, fuzzy
 msgid "check global configuration file"
-msgstr " creouse un novo ficheiro de configuración `%s'\n"
+msgstr " creouse un novo ficheiro de configuración `%s'\n"
+
+#, fuzzy
+#| msgid "update the trust database"
+msgid "query the software version database"
+msgstr "actualiza-la base de datos de confianza"
 
 msgid "reload all or a given component"
 msgstr ""
@@ -8664,14 +8737,14 @@ msgid "kill a given component"
 msgstr ""
 
 msgid "use as output file"
-msgstr "usar coma ficheiro de saída"
+msgstr "usar coma ficheiro de saída"
 
 msgid "activate changes at runtime, if possible"
 msgstr ""
 
 #, fuzzy
 msgid "Usage: @GPGCONF@ [options] (-h for help)"
-msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
+msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
 
 msgid ""
 "Syntax: @GPGCONF@ [options]\n"
@@ -8683,7 +8756,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Component not found"
-msgstr "non se atopou a chave pública"
+msgstr "non se atopou a chave pública"
 
 #, fuzzy
 msgid "No argument allowed"
@@ -8721,7 +8794,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Usage: symcryptrun [options] (-h for help)"
-msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
+msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
 
 msgid ""
 "Syntax: symcryptrun --class CLASS --program PROGRAM --keyfile KEYFILE "
@@ -8731,12 +8804,12 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "%s on %s aborted with status %i\n"
-msgstr "¡%s non se admite con %s!\n"
+msgstr "¡%s non se admite con %s!\n"
 
 #, fuzzy, c-format
 msgid "%s on %s failed with status %i\n"
 msgstr ""
-"a actualización da base de datos de confianza fallou:\n"
+"a actualización da base de datos de confianza fallou:\n"
 "%s\n"
 
 #, fuzzy, c-format
@@ -8761,7 +8834,7 @@ msgstr "erro lendo `%s': %s\n"
 
 #, fuzzy
 msgid "no --program option provided\n"
-msgstr "non se soporta a execución remota de programas\n"
+msgstr "non se soporta a execución remota de programas\n"
 
 msgid "only --decrypt and --encrypt are supported\n"
 msgstr ""
@@ -8786,7 +8859,7 @@ msgstr "%s: non se atopou o usuario: %s\n"
 
 #, fuzzy, c-format
 msgid "execv failed: %s\n"
-msgstr "a actualización fallou: %s\n"
+msgstr "a actualización fallou: %s\n"
 
 #, fuzzy, c-format
 msgid "select failed: %s\n"
@@ -8794,15 +8867,15 @@ msgstr "fallou o borrado do bloque de chaves: %s\n"
 
 #, fuzzy, c-format
 msgid "read failed: %s\n"
-msgstr "a actualización fallou: %s\n"
+msgstr "a actualización fallou: %s\n"
 
 #, fuzzy, c-format
 msgid "pty read failed: %s\n"
-msgstr "a actualización fallou: %s\n"
+msgstr "a actualización fallou: %s\n"
 
 #, fuzzy, c-format
 msgid "waitpid failed: %s\n"
-msgstr "a actualización fallou: %s\n"
+msgstr "a actualización fallou: %s\n"
 
 #, c-format
 msgid "child aborted with status %i\n"
@@ -8825,19 +8898,33 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "class %s is not supported\n"
-msgstr "o algoritmo de protección %d%s non está soportado\n"
+msgstr "o algoritmo de protección %d%s non está soportado\n"
 
 #, fuzzy
 msgid "Usage: gpg-check-pattern [options] patternfile (-h for help)\n"
-msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
+msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
 
 msgid ""
 "Syntax: gpg-check-pattern [options] patternfile\n"
 "Check a passphrase given on stdin against the patternfile\n"
 msgstr ""
 
+#, fuzzy
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "fallou o borrado do bloque de chaves: %s\n"
+
+#, fuzzy
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "deshabilitar unha chave"
+
+#, fuzzy
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "|algo [ficheiros]|visualizar resumos de mensaxes"
+#~ msgstr[1] "|algo [ficheiros]|visualizar resumos de mensaxes"
+
 #~ msgid "communication problem with gpg-agent\n"
-#~ msgstr "problema de comunicación con gpg-agent\n"
+#~ msgstr "problema de comunicación con gpg-agent\n"
 
 #, fuzzy
 #~ msgid "canceled by user\n"
@@ -8853,7 +8940,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "unknown TOFU DB format '%s'\n"
-#~ msgstr "destinatario por defecto `%s' descoñecido\n"
+#~ msgstr "destinatario por defecto `%s' descoñecido\n"
 
 #, fuzzy
 #~ msgid ""
@@ -8892,11 +8979,11 @@ msgstr ""
 #~| msgid "%d user IDs without valid self-signatures detected\n"
 #~ msgid "%d user ID without valid self-signature detected\n"
 #~ msgid_plural "%d user IDs without valid self-signatures detected\n"
-#~ msgstr[0] "detectados %d IDs de usuario sin auto-sinatura válida\n"
-#~ msgstr[1] "detectados %d IDs de usuario sin auto-sinatura válida\n"
+#~ msgstr[0] "detectados %d IDs de usuario sin auto-sinatura válida\n"
+#~ msgstr[1] "detectados %d IDs de usuario sin auto-sinatura válida\n"
 
 #~ msgid "moving a key signature to the correct place\n"
-#~ msgstr "movendo a sinatura dunha chave ó seu sitio\n"
+#~ msgstr "movendo a sinatura dunha chave ó seu sitio\n"
 
 #~ msgid "%d signatures not checked due to missing keys\n"
 #~ msgstr "%d sinaturas non verificadas debido a chaves que faltan\n"
@@ -8905,30 +8992,27 @@ msgstr ""
 #~ msgstr "%d sinaturas non verificadas debido a erros\n"
 
 #~ msgid "1 user ID without valid self-signature detected\n"
-#~ msgstr "detectado 1 ID de usuario sin auto-sinatura válida\n"
-
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "Borradas %d sinaturas.\n"
+#~ msgstr "detectado 1 ID de usuario sin auto-sinatura válida\n"
 
 #, fuzzy
 #~ msgid "User ID \"%s\": %d signatures removed\n"
-#~ msgstr "O ID de usuario \"%s\" está revocado."
+#~ msgstr "O ID de usuario \"%s\" está revocado."
 
 #~ msgid ""
 #~ "You need a Passphrase to protect your secret key.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Necesita un contrasinal para protexe-la súa chave secreta.\n"
+#~ "Necesita un contrasinal para protexe-la súa chave secreta.\n"
 #~ "\n"
 
 #, fuzzy
 #~ msgid ""
 #~ "Please enter a passphrase to protect the off-card backup of the new "
 #~ "encryption key."
-#~ msgstr "Por favor, introduza o contrasinal; esta é unha frase secreta \n"
+#~ msgstr "Por favor, introduza o contrasinal; esta é unha frase secreta \n"
 
 #~ msgid "passphrase not correctly repeated; try again"
-#~ msgstr "o contrasinal non se repetiu correctamente; ténteo de novo"
+#~ msgstr "o contrasinal non se repetiu correctamente; ténteo de novo"
 
 #~ msgid "%s.\n"
 #~ msgstr "%s.\n"
@@ -8939,9 +9023,9 @@ msgstr ""
 #~ "using this program with the option \"--edit-key\".\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Non quere empregar un contrasinal - ¡é unha idea *moi* mala!\n"
-#~ "Hase facer así de tódolos xeitos; pode cambia-lo contrasinal en calquera\n"
-#~ "momento, empregando este programa coa opción \"--edit-key\".\n"
+#~ "Non quere empregar un contrasinal - ¡é unha idea *moi* mala!\n"
+#~ "Hase facer así de tódolos xeitos; pode cambia-lo contrasinal en calquera\n"
+#~ "momento, empregando este programa coa opción \"--edit-key\".\n"
 #~ "\n"
 
 #, fuzzy
@@ -8951,11 +9035,7 @@ msgstr ""
 #, fuzzy
 #~| msgid "1 bad signature\n"
 #~ msgid "1 good signature\n"
-#~ msgstr "1 sinatura errónea\n"
-
-#, fuzzy
-#~ msgid "renaming '%s' to '%s' failed: %s\n"
-#~ msgstr "non se puido poñe-la armadura: %s\n"
+#~ msgstr "1 sinatura errónea\n"
 
 #, fuzzy
 #~ msgid "%lu keys cached (%lu signatures)\n"
@@ -8971,7 +9051,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "public key %s is %lu seconds newer than the signature\n"
-#~ msgstr "a chave pública %08lX é %lu segundos máis nova cá sinatura\n"
+#~ msgstr "a chave pública %08lX é %lu segundos máis nova cá sinatura\n"
 
 #, fuzzy
 #~ msgid ""
@@ -8996,7 +9076,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "Please select at most one subkey.\n"
-#~ msgstr "Por favor, seleccione como máximo unha chave secundaria.\n"
+#~ msgstr "Por favor, seleccione como máximo unha chave secundaria.\n"
 
 #, fuzzy
 #~ msgid "malformed %s environment variable\n"
@@ -9004,41 +9084,41 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "dirmngr protocol version %d is not supported\n"
-#~ msgstr "a versión %d do protocolo de gpg-agent non está soportada\n"
+#~ msgstr "a versión %d do protocolo de gpg-agent non está soportada\n"
 
 #, fuzzy
 #~ msgid "toggle between the secret and public key listings"
-#~ msgstr "cambiar entre o listado de chaves públicas e secretas"
+#~ msgstr "cambiar entre o listado de chaves públicas e secretas"
 
 #~ msgid "Please use the command \"toggle\" first.\n"
 #~ msgstr "Por favor, empregue o comando \"toggle\" antes.\n"
 
 #, fuzzy
 #~ msgid "Passphrase"
-#~ msgstr "contrasinal erróneo"
+#~ msgstr "contrasinal erróneo"
 
 #, fuzzy
 #~ msgid "WARNING: keyserver option '%s' is not used on this platform\n"
-#~ msgstr "AVISO: as opcións de `%s' aínda non están activas nesta execución\n"
+#~ msgstr "AVISO: as opcións de `%s' aínda non están activas nesta execución\n"
 
 #~ msgid "gpg-agent is not available in this session\n"
-#~ msgstr "gpg-agent non está dispoñible nesta sesión\n"
+#~ msgstr "gpg-agent non está dispoñible nesta sesión\n"
 
 #, fuzzy
 #~ msgid "use a standard location for the socket"
 #~ msgstr ""
-#~ "¿Seguro que quere actualiza-las preferencias dos IDs de usuario "
+#~ "¿Seguro que quere actualiza-las preferencias dos IDs de usuario "
 #~ "seleccionados? "
 
 #, fuzzy
 #~ msgid "Usage: gpg-agent [options] (-h for help)"
-#~ msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
+#~ msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
 
 #~ msgid "malformed GPG_AGENT_INFO environment variable\n"
 #~ msgstr "variable de ambiente GPG_AGENT_INFO mal formada\n"
 
 #~ msgid "gpg-agent protocol version %d is not supported\n"
-#~ msgstr "a versión %d do protocolo de gpg-agent non está soportada\n"
+#~ msgstr "a versión %d do protocolo de gpg-agent non está soportada\n"
 
 #, fuzzy
 #~ msgid "can't fdopen pipe for reading: %s\n"
@@ -9054,15 +9134,15 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "unknown key protection algorithm\n"
-#~ msgstr "algoritmo de protección descoñecido\n"
+#~ msgstr "algoritmo de protección descoñecido\n"
 
 #, fuzzy
 #~ msgid "secret parts of key are not available\n"
-#~ msgstr "as partes secretas da chave primaria non están dispoñibles.\n"
+#~ msgstr "as partes secretas da chave primaria non están dispoñibles.\n"
 
 #, fuzzy
 #~ msgid "secret key already stored on a card\n"
-#~ msgstr "omítese: a chave secreta xa está presente\n"
+#~ msgstr "omítese: a chave secreta xa está presente\n"
 
 #, fuzzy
 #~ msgid "error writing key to card: %s\n"
@@ -9070,12 +9150,12 @@ msgstr ""
 
 #~ msgid ""
 #~ "you can only encrypt to RSA keys of 2048 bits or less in --pgp2 mode\n"
-#~ msgstr "só pode cifrar a chaves RSA de 2048 bits ou menos en modo --pgp2\n"
+#~ msgstr "só pode cifrar a chaves RSA de 2048 bits ou menos en modo --pgp2\n"
 
 #~ msgid ""
 #~ "unable to use the IDEA cipher for all of the keys you are encrypting to.\n"
 #~ msgstr ""
-#~ "non se puido emprega-la cifra IDEA para tódalas chaves ás que está a "
+#~ "non se puido emprega-la cifra IDEA para tódalas chaves ás que está a "
 #~ "cifrar.\n"
 
 #, fuzzy
@@ -9084,7 +9164,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "key %s: not protected - skipped\n"
-#~ msgstr "chave %08lX: non está protexida - omitida\n"
+#~ msgstr "chave %08lX: non está protexida - omitida\n"
 
 #, fuzzy
 #~ msgid "failed to unprotect the subkey: %s\n"
@@ -9093,26 +9173,26 @@ msgstr ""
 #, fuzzy
 #~ msgid "WARNING: secret key %s does not have a simple SK checksum\n"
 #~ msgstr ""
-#~ "AVISO: a chave secreta %08lX non ten unha suma de comprobación SK simple\n"
+#~ "AVISO: a chave secreta %08lX non ten unha suma de comprobación SK simple\n"
 
 #~ msgid "too many entries in pk cache - disabled\n"
-#~ msgstr "demasiadas entradas na caché de chaves públicas - desactivada\n"
+#~ msgstr "demasiadas entradas na caché de chaves públicas - desactivada\n"
 
 #, fuzzy
 #~ msgid "no secret subkey for public subkey %s - ignoring\n"
 #~ msgstr ""
-#~ "non hai unha sub-chave secreta para a sub-chave pública %08lX - ignórase\n"
+#~ "non hai unha sub-chave secreta para a sub-chave pública %08lX - ignórase\n"
 
 #, fuzzy
 #~ msgid "key %s: secret key without public key - skipped\n"
-#~ msgstr "chave %08lX: chave secreta sen chave pública - omitida\n"
+#~ msgstr "chave %08lX: chave secreta sen chave pública - omitida\n"
 
 #~ msgid "usage: gpg [options] "
-#~ msgstr "uso: gpg [opcións] "
+#~ msgstr "uso: gpg [opcións] "
 
 #~ msgid ""
 #~ "you can only make detached or clear signatures while in --pgp2 mode\n"
-#~ msgstr "só pode crear sinaturas separadas ou en claro no modo --pgp2\n"
+#~ msgstr "só pode crear sinaturas separadas ou en claro no modo --pgp2\n"
 
 #~ msgid "you can't sign and encrypt at the same time while in --pgp2 mode\n"
 #~ msgstr "non pode asinar e cifrar ao mesmo tempo no modo --pgp2\n"
@@ -9120,15 +9200,15 @@ msgstr ""
 #~ msgid ""
 #~ "you must use files (and not a pipe) when working with --pgp2 enabled.\n"
 #~ msgstr ""
-#~ "debe empregar ficheiros (e non canalizacións) ao traballar con --pgp2 "
+#~ "debe empregar ficheiros (e non canalizacións) ao traballar con --pgp2 "
 #~ "activado.\n"
 
 #~ msgid "encrypting a message in --pgp2 mode requires the IDEA cipher\n"
-#~ msgstr "para cifrar unha mensaxe en modo --pgp2 precísase da cifra IDEA\n"
+#~ msgstr "para cifrar unha mensaxe en modo --pgp2 precísase da cifra IDEA\n"
 
 #, fuzzy
 #~ msgid "create a public key when importing a secret key"
-#~ msgstr "¡a chave pública con coincide coa chave secreta!\n"
+#~ msgstr "¡a chave pública con coincide coa chave secreta!\n"
 
 #, fuzzy
 #~ msgid "key %s: already in secret keyring\n"
@@ -9140,15 +9220,15 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "NOTE: a key's S/N does not match the card's one\n"
-#~ msgstr "¡a chave pública con coincide coa chave secreta!\n"
+#~ msgstr "¡a chave pública con coincide coa chave secreta!\n"
 
 #, fuzzy
 #~ msgid "NOTE: primary key is online and stored on card\n"
-#~ msgstr "omítese: a chave secreta xa está presente\n"
+#~ msgstr "omítese: a chave secreta xa está presente\n"
 
 #, fuzzy
 #~ msgid "NOTE: secondary key is online and stored on card\n"
-#~ msgstr "omítese: a chave secreta xa está presente\n"
+#~ msgstr "omítese: a chave secreta xa está presente\n"
 
 #~ msgid ""
 #~ "You may not make an OpenPGP signature on a PGP 2.x key while in --pgp2 "
@@ -9157,13 +9237,13 @@ msgstr ""
 #~ "Non pode facer unha sinatura OpenPGP nunha chave PGP 2.x no modo --pgp2.\n"
 
 #~ msgid "This would make the key unusable in PGP 2.x.\n"
-#~ msgstr "Isto podería face-la chave non utilizable en PGP 2.x.\n"
+#~ msgstr "Isto podería face-la chave non utilizable en PGP 2.x.\n"
 
 #~ msgid "This key is not protected.\n"
-#~ msgstr "Esta chave non está protexida.\n"
+#~ msgstr "Esta chave non está protexida.\n"
 
 #~ msgid "Key is protected.\n"
-#~ msgstr "A chave está protexida.\n"
+#~ msgstr "A chave está protexida.\n"
 
 #~ msgid "Can't edit this key: %s\n"
 #~ msgstr "Non se pode editar esta chave: %s\n"
@@ -9179,15 +9259,15 @@ msgstr ""
 #~ "You don't want a passphrase - this is probably a *bad* idea!\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Non desexa un contrainal - ¡o que é unha *mala* idea!\n"
+#~ "Non desexa un contrainal - ¡o que é unha *mala* idea!\n"
 #~ "\n"
 
 #, fuzzy
 #~ msgid "Do you really want to do this? (y/N) "
-#~ msgstr "¿Seguro que quere facer esto? "
+#~ msgstr "¿Seguro que quere facer esto? "
 
 #~ msgid "Please remove selections from the secret keys.\n"
-#~ msgstr "Por favor, quite as seleccións das chaves secretas.\n"
+#~ msgstr "Por favor, quite as seleccións das chaves secretas.\n"
 
 #~ msgid "No corresponding signature in secret ring\n"
 #~ msgstr "Non hai unha sinatura correspondiente no chaveiro secreto\n"
@@ -9203,16 +9283,16 @@ msgstr ""
 #~ msgstr "non se atopou un chaveiro privado no que se poida escribir: %s\n"
 
 #~ msgid "WARNING: 2 files with confidential information exists.\n"
-#~ msgstr "AVISO: existen dous ficheiros con información confidencial.\n"
+#~ msgstr "AVISO: existen dous ficheiros con información confidencial.\n"
 
 #~ msgid "%s is the unchanged one\n"
-#~ msgstr "%s é o que non cambiou\n"
+#~ msgstr "%s é o que non cambiou\n"
 
 #~ msgid "%s is the new one\n"
-#~ msgstr "%s é o novo\n"
+#~ msgstr "%s é o novo\n"
 
 #~ msgid "Please fix this possible security flaw\n"
-#~ msgstr "Por favor, amañe este posible fallo de seguridade\n"
+#~ msgstr "Por favor, amañe este posible fallo de seguridade\n"
 
 #, fuzzy
 #~ msgid "searching for names from %s server %s\n"
@@ -9240,36 +9320,36 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "keyserver communications error: %s\n"
-#~ msgstr "a recepción do servidor de chaves fallou: %s\n"
+#~ msgstr "a recepción do servidor de chaves fallou: %s\n"
 
 #, fuzzy
 #~ msgid "WARNING: unable to parse URI %s\n"
 #~ msgstr "AVISO: non se puido borra-lo ficheiro temporal (%s) `%s': %s\n"
 
 #~ msgid "invalid root packet detected in proc_tree()\n"
-#~ msgstr "paquete raíz incorrecto detectado en proc_tree()\n"
+#~ msgstr "paquete raíz incorrecto detectado en proc_tree()\n"
 
 #~ msgid "the IDEA cipher plugin is not present\n"
-#~ msgstr "o plugin de cifra IDEA non está presente\n"
+#~ msgstr "o plugin de cifra IDEA non está presente\n"
 
 #~ msgid "no corresponding public key: %s\n"
-#~ msgstr "non hai unha chave pública correspondente: %s\n"
+#~ msgstr "non hai unha chave pública correspondente: %s\n"
 
 #~ msgid "public key does not match secret key!\n"
-#~ msgstr "¡a chave pública con coincide coa chave secreta!\n"
+#~ msgstr "¡a chave pública con coincide coa chave secreta!\n"
 
 #~ msgid "unknown protection algorithm\n"
-#~ msgstr "algoritmo de protección descoñecido\n"
+#~ msgstr "algoritmo de protección descoñecido\n"
 
 #~ msgid "NOTE: This key is not protected!\n"
-#~ msgstr "NOTA: ¡Esta chave non está protexida!\n"
+#~ msgstr "NOTA: ¡Esta chave non está protexida!\n"
 
 #, fuzzy
 #~ msgid "protection digest %d is not supported\n"
-#~ msgstr "o algoritmo de protección %d%s non está soportado\n"
+#~ msgstr "o algoritmo de protección %d%s non está soportado\n"
 
 #~ msgid "Invalid passphrase; please try again"
-#~ msgstr "Contrasinal non válido; por favor, ténteo de novo"
+#~ msgstr "Contrasinal non válido; por favor, ténteo de novo"
 
 #~ msgid "%s ...\n"
 #~ msgstr "%s ...\n"
@@ -9282,30 +9362,30 @@ msgstr ""
 #~ msgid ""
 #~ "generating the deprecated 16-bit checksum for secret key protection\n"
 #~ msgstr ""
-#~ "xerando o checksum de 16-bits a extinguir para a protección da chave "
+#~ "xerando o checksum de 16-bits a extinguir para a protección da chave "
 #~ "secreta\n"
 
 #~ msgid ""
 #~ "you can only detach-sign with PGP 2.x style keys while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "só pode asinar nun ficheiro separado con chaves estilo PGP 2.x no modo --"
+#~ "só pode asinar nun ficheiro separado con chaves estilo PGP 2.x no modo --"
 #~ "pgp2\n"
 
 #~ msgid ""
 #~ "you can only clearsign with PGP 2.x style keys while in --pgp2 mode\n"
-#~ msgstr "só pode asinar en claro con chaves estilo PGP 2.x no modo --pgp2\n"
+#~ msgstr "só pode asinar en claro con chaves estilo PGP 2.x no modo --pgp2\n"
 
 #, fuzzy
 #~ msgid "Usage: scdaemon [options] (-h for help)"
-#~ msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
+#~ msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
 
 #, fuzzy
 #~ msgid "Usage: gpgsm [options] [files] (-h for help)"
-#~ msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
+#~ msgstr "Uso: gpg [opcións] [ficheiros] (-h para ve-la axuda)"
 
 #, fuzzy
 #~ msgid "usage: gpgconf [options] "
-#~ msgstr "uso: gpg [opcións] "
+#~ msgstr "uso: gpg [opcións] "
 
 #, fuzzy
 #~ msgid "failed to allocated keyDB handle\n"
@@ -9316,19 +9396,19 @@ msgstr ""
 
 #~ msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
 #~ msgstr ""
-#~ "a base de datos de confianza está corrompida; execute \"gpg --fix-trustdb"
+#~ "a base de datos de confianza está corrompida; execute \"gpg --fix-trustdb"
 #~ "\".\n"
 
 #~ msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
 #~ msgstr ""
 #~ "Por favor, informe dos erros no programa a <gnupg-bugs@gnu.org>,\n"
-#~ "e dos erros na traducción a <proxecto@trasno.net>.\n"
+#~ "e dos erros na traducción a <proxecto@trasno.net>.\n"
 
 #, fuzzy
 #~ msgid "Please report bugs to "
 #~ msgstr ""
 #~ "Por favor, informe dos erros no programa a <gnupg-bugs@gnu.org>,\n"
-#~ "e dos erros na traducción a <proxecto@trasno.net>.\n"
+#~ "e dos erros na traducción a <proxecto@trasno.net>.\n"
 
 #, fuzzy
 #~ msgid "DSA keypair will have %u bits.\n"
@@ -9339,7 +9419,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "read options from file"
-#~ msgstr "lendo as opcións de `%s'\n"
+#~ msgstr "lendo as opcións de `%s'\n"
 
 #~ msgid "|[file]|make a signature"
 #~ msgstr "|[ficheiro]|facer unha sinatura"
@@ -9362,17 +9442,17 @@ msgstr ""
 #~ msgstr "sempre usar un MDC para cifrar"
 
 #~ msgid "add this secret keyring to the list"
-#~ msgstr "engadir este chaveiro secreto á lista"
+#~ msgstr "engadir este chaveiro secreto á lista"
 
 #~ msgid "|FILE|load extension module FILE"
-#~ msgstr "|FICHEIRO|carga-lo módulo de extensión FICHEIRO"
+#~ msgstr "|FICHEIRO|carga-lo módulo de extensión FICHEIRO"
 
 #~ msgid "|N|use compress algorithm N"
-#~ msgstr "|N|emprega-lo algoritmo de compresión N"
+#~ msgstr "|N|emprega-lo algoritmo de compresión N"
 
 #, fuzzy
 #~ msgid "remove key from the public keyring"
-#~ msgstr "borrar chaves do chaveiro público"
+#~ msgstr "borrar chaves do chaveiro público"
 
 #~ msgid ""
 #~ "It's up to you to assign a value here; this value will never be exported\n"
@@ -9380,8 +9460,8 @@ msgstr ""
 #~ "nothing\n"
 #~ "to do with the (implicitly created) web-of-certificates."
 #~ msgstr ""
-#~ "A asignación dun valor aquí é cousa súa; este valor nunca se ha exportar\n"
-#~ "a ningún terceiro. Precísase para implementa-la rede de confianza; non "
+#~ "A asignación dun valor aquí é cousa súa; este valor nunca se ha exportar\n"
+#~ "a ningún terceiro. Precísase para implementa-la rede de confianza; non "
 #~ "ten\n"
 #~ "nada que ver coa rede de certificados."
 
@@ -9391,32 +9471,32 @@ msgstr ""
 #~ "access to the secret key.  Answer \"yes\" to set this key to\n"
 #~ "ultimately trusted\n"
 #~ msgstr ""
-#~ "Para construí-la Rede-de-Confianza, GnuPG precisa saber que chaves teñen\n"
-#~ "confianza absoluta - esas adoitan se-las chaves das que ten acceso á "
+#~ "Para construí-la Rede-de-Confianza, GnuPG precisa saber que chaves teñen\n"
+#~ "confianza absoluta - esas adoitan se-las chaves das que ten acceso á "
 #~ "chave\n"
 #~ "secreta. Responda \"si\" para lle dar confianza total a esta chave\n"
 
 #~ msgid "If you want to use this untrusted key anyway, answer \"yes\"."
 #~ msgstr ""
-#~ "Se desexa empregar esta clave na que non se confía, conteste \"si\"."
+#~ "Se desexa empregar esta clave na que non se confía, conteste \"si\"."
 
 #~ msgid ""
 #~ "Enter the user ID of the addressee to whom you want to send the message."
 #~ msgstr ""
-#~ "Introduza o ID de usuario da persoa á que lle quere manda-la mensaxe."
+#~ "Introduza o ID de usuario da persoa á que lle quere manda-la mensaxe."
 
 #~ msgid ""
 #~ "In general it is not a good idea to use the same key for signing and\n"
 #~ "encryption.  This algorithm should only be used in certain domains.\n"
 #~ "Please consult your security expert first."
 #~ msgstr ""
-#~ "En xeral non é unha boa idea emprega-la mesma chave para asinar e "
+#~ "En xeral non é unha boa idea emprega-la mesma chave para asinar e "
 #~ "cifrar.\n"
-#~ "Este algoritmo debería empregarse só en determinados dominios.\n"
+#~ "Este algoritmo debería empregarse só en determinados dominios.\n"
 #~ "Consulte antes co seu experto en seguridade."
 
 #~ msgid "Enter the size of the key"
-#~ msgstr "Introduza o tamaño da chave"
+#~ msgstr "Introduza o tamaño da chave"
 
 #~ msgid "Answer \"yes\" or \"no\""
 #~ msgstr "Conteste \"si\" ou \"non\""
@@ -9428,7 +9508,7 @@ msgstr ""
 #~ "the given value as an interval."
 #~ msgstr ""
 #~ "Introduza o valor requerido tal como se amosa no indicativo.\n"
-#~ "É posible introducir unha data ISO (AAA-MM-DD) pero non ha obter unha\n"
+#~ "É posible introducir unha data ISO (AAA-MM-DD) pero non ha obter unha\n"
 #~ "boa resposta de erro - no canto diso, o sistema ha tratar de interpreta-"
 #~ "lo\n"
 #~ "valor proporcionado coma se fora un intervalo."
@@ -9453,12 +9533,12 @@ msgstr ""
 #~ "N  para cambia-lo nome.\n"
 #~ "C  para cambia-lo comentario.\n"
 #~ "E  para cambia-lo enderezo de e-mail.\n"
-#~ "O  para continuar coa xeración da chave.\n"
-#~ "S  para saír da xeración da chave."
+#~ "O  para continuar coa xeración da chave.\n"
+#~ "S  para saír da xeración da chave."
 
 #~ msgid ""
 #~ "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
-#~ msgstr "Conteste \"si\" (ou só \"s\") se é correcto xerar esta subchave."
+#~ msgstr "Conteste \"si\" (ou só \"s\") se é correcto xerar esta subchave."
 
 #~ msgid ""
 #~ "When you sign a user ID on a key, you should first verify that the key\n"
@@ -9503,66 +9583,66 @@ msgstr ""
 #~ "\n"
 #~ "If you don't know what the right answer is, answer \"0\"."
 #~ msgstr ""
-#~ "Cando asina un ID de usuario dunha chave, debería comprobar antes\n"
-#~ "que a chave pertence á persoa que aparece no identificador. É útil para "
+#~ "Cando asina un ID de usuario dunha chave, debería comprobar antes\n"
+#~ "que a chave pertence á persoa que aparece no identificador. É útil para "
 #~ "os\n"
 #~ "demais saber con canto tino comprobou isto.\n"
 #~ "\n"
 #~ "\"0\" significa que non di nada do coidado co que comprobou a chave.\n"
 #~ "\n"
-#~ "\"1\" significa que cre que a chave pertence á persoa que o afirma, pero "
+#~ "\"1\" significa que cre que a chave pertence á persoa que o afirma, pero "
 #~ "non\n"
-#~ "    puido ou non quixo verifica-la chave. É útil para verificacións de\n"
-#~ "    \"personaxes\", nas que asina a chave dun usuario pseudónimo.\n"
+#~ "    puido ou non quixo verifica-la chave. É útil para verificacións de\n"
+#~ "    \"personaxes\", nas que asina a chave dun usuario pseudónimo.\n"
 #~ "\n"
-#~ "\"2\" significa que fixo unha comprobación informal da chave. Por "
+#~ "\"2\" significa que fixo unha comprobación informal da chave. Por "
 #~ "exemplo,\n"
 #~ "    pode significar que comprobou a pegada dixital da chave e comprobou\n"
-#~ "    a identidade do usuario na chave contra unha identificación "
-#~ "fotográfica.\n"
+#~ "    a identidade do usuario na chave contra unha identificación "
+#~ "fotográfica.\n"
 #~ "\n"
-#~ "\"3\" significa que fixo unha comprobación extensiva da chave. Por "
+#~ "\"3\" significa que fixo unha comprobación extensiva da chave. Por "
 #~ "exemplo,\n"
 #~ "    pode significar que comprobou a pegada dixital da chave co "
 #~ "propietario\n"
-#~ "    da chave en persoa, e que comprobou, cun documento difícil de "
+#~ "    da chave en persoa, e que comprobou, cun documento difícil de "
 #~ "falsificar\n"
-#~ "    cunha identificación fotográfica (coma o carnet de identidade ou\n"
+#~ "    cunha identificación fotográfica (coma o carnet de identidade ou\n"
 #~ "    pasaporte) que o nome do propietario da chave coincide co do "
 #~ "identificador\n"
 #~ "    de usuario da chave, e que comprobou (por intercambio de correo\n"
-#~ "    electrónico) que o enderezo de e-mail da chave pertence ao "
+#~ "    electrónico) que o enderezo de e-mail da chave pertence ao "
 #~ "propietario\n"
 #~ "    da chave.\n"
 #~ "\n"
-#~ "Teña en conta que os exemplos de enriba para os niveis 2 e 3 son *só*\n"
-#~ "exemplos. Á final, depende de vostede decidir que significan \"informal\" "
+#~ "Teña en conta que os exemplos de enriba para os niveis 2 e 3 son *só*\n"
+#~ "exemplos. Á final, depende de vostede decidir que significan \"informal\" "
 #~ "e\n"
 #~ "\"extensivo\" ao asinar outras chaves.\n"
 #~ "\n"
-#~ "Se non sabe cal é a resposta correcta, resposte \"0\"."
+#~ "Se non sabe cal é a resposta correcta, resposte \"0\"."
 
 #, fuzzy
 #~ msgid "Answer \"yes\" if you want to sign ALL the user IDs"
-#~ msgstr "Conteste \"si\" se quere asinar TÓDOLOS IDs de usuario"
+#~ msgstr "Conteste \"si\" se quere asinar TÓDOLOS IDs de usuario"
 
 #~ msgid ""
 #~ "Answer \"yes\" if you really want to delete this user ID.\n"
 #~ "All certificates are then also lost!"
 #~ msgstr ""
 #~ "Conteste \"si\" se realmente desexa borrar este ID de usuario.\n"
-#~ "¡Tamén se han perder tódolos certificados!"
+#~ "¡Tamén se han perder tódolos certificados!"
 
 #~ msgid "Answer \"yes\" if it is okay to delete the subkey"
-#~ msgstr "Conteste \"si\" se é correcto borrar esta subchave"
+#~ msgstr "Conteste \"si\" se é correcto borrar esta subchave"
 
 #~ msgid ""
 #~ "This is a valid signature on the key; you normally don't want\n"
 #~ "to delete this signature because it may be important to establish a\n"
 #~ "trust connection to the key or another key certified by this key."
 #~ msgstr ""
-#~ "Esta é unha sinatura válida na chave; normalmente non ha borrar esta\n"
-#~ "sinatura porque pode ser importante para estabrecer unha conexión de\n"
+#~ "Esta é unha sinatura válida na chave; normalmente non ha borrar esta\n"
+#~ "sinatura porque pode ser importante para estabrecer unha conexión de\n"
 #~ "confianza na chave ou noutra chave certificada por esta chave."
 
 #~ msgid ""
@@ -9571,15 +9651,15 @@ msgstr ""
 #~ "know which key was used because this signing key might establish\n"
 #~ "a trust connection through another already certified key."
 #~ msgstr ""
-#~ "Non se pode verificar esta sinatura porque non posúe a chave\n"
-#~ "correspondente. Debería retrasa-lo borrado ata que saiba que chave\n"
-#~ "se empregou porque esta chave de sinatura podería estabrecer unha\n"
-#~ "conexión de confianza mediante outra chave xa certificada."
+#~ "Non se pode verificar esta sinatura porque non posúe a chave\n"
+#~ "correspondente. Debería retrasa-lo borrado ata que saiba que chave\n"
+#~ "se empregou porque esta chave de sinatura podería estabrecer unha\n"
+#~ "conexión de confianza mediante outra chave xa certificada."
 
 #~ msgid ""
 #~ "The signature is not valid.  It does make sense to remove it from\n"
 #~ "your keyring."
-#~ msgstr "A sinatura non é correcta. Ten sentido borrala do chaveiro."
+#~ msgstr "A sinatura non é correcta. Ten sentido borrala do chaveiro."
 
 #~ msgid ""
 #~ "This is a signature which binds the user ID to the key. It is\n"
@@ -9588,42 +9668,42 @@ msgstr ""
 #~ "only if this self-signature is for some reason not valid and\n"
 #~ "a second one is available."
 #~ msgstr ""
-#~ "Esta é unha sinatura que liga o ID de usuario á chave. Normalmente\n"
-#~ "non é unha boa idea borrar unha sinatura como esta. De feito,\n"
-#~ "GnuPG pode non ser capaz de usar máis esta chave. Así que faga isto\n"
-#~ "só se esta auto-sinatura non é correcta por algun motivo e hai\n"
-#~ "unha segunda á súa disposición."
+#~ "Esta é unha sinatura que liga o ID de usuario á chave. Normalmente\n"
+#~ "non é unha boa idea borrar unha sinatura como esta. De feito,\n"
+#~ "GnuPG pode non ser capaz de usar máis esta chave. Así que faga isto\n"
+#~ "só se esta auto-sinatura non é correcta por algun motivo e hai\n"
+#~ "unha segunda á súa disposición."
 
 #~ msgid ""
 #~ "Change the preferences of all user IDs (or just of the selected ones)\n"
 #~ "to the current list of preferences.  The timestamp of all affected\n"
 #~ "self-signatures will be advanced by one second.\n"
 #~ msgstr ""
-#~ "Cambia-las preferencias de tódolos IDs de usuario (ou só dos "
+#~ "Cambia-las preferencias de tódolos IDs de usuario (ou só dos "
 #~ "seleccionados)\n"
-#~ "á lista actual de preferencias. A marca de tempo de tódalas auto-"
+#~ "á lista actual de preferencias. A marca de tempo de tódalas auto-"
 #~ "sinaturas\n"
 #~ "afectadas ha avanzar un segundo.\n"
 
-#~ msgid "Please enter the passhrase; this is a secret sentence \n"
-#~ msgstr "Por favor, introduza o contrasinal; esta é unha frase secreta \n"
+#~ msgid "Please enter the passphrase; this is a secret sentence \n"
+#~ msgstr "Por favor, introduza o contrasinal; esta é unha frase secreta \n"
 
 #~ msgid ""
 #~ "Please repeat the last passphrase, so you are sure what you typed in."
 #~ msgstr ""
-#~ "Por favor, repita o último contrasinal, para estar seguro do que tecleou."
+#~ "Por favor, repita o último contrasinal, para estar seguro do que tecleou."
 
 #~ msgid "Give the name of the file to which the signature applies"
 #~ msgstr "Introduza o nome do ficheiro ao que corresponde a sinatura"
 
 #~ msgid "Answer \"yes\" if it is okay to overwrite the file"
-#~ msgstr "Conteste \"si\" se é correcto sobrescribi-lo ficheiro"
+#~ msgstr "Conteste \"si\" se é correcto sobrescribi-lo ficheiro"
 
 #~ msgid ""
 #~ "Please enter a new filename. If you just hit RETURN the default\n"
 #~ "file (which is shown in brackets) will be used."
 #~ msgstr ""
-#~ "Por favor, introduza un novo nome de ficheiro. Se só preme ENTER, hase\n"
+#~ "Por favor, introduza un novo nome de ficheiro. Se só preme ENTER, hase\n"
 #~ "emprega-lo ficheiro por defecto (que se amosa entre corchetes)."
 
 #~ msgid ""
@@ -9640,20 +9720,20 @@ msgstr ""
 #~ "      Use this to state that the user ID should not longer be used;\n"
 #~ "      this is normally used to mark an email address invalid.\n"
 #~ msgstr ""
-#~ "Debería especificar un motivo para o certificado. Dependendo do contexto\n"
+#~ "Debería especificar un motivo para o certificado. Dependendo do contexto\n"
 #~ "pode escoller desta lista:\n"
 #~ "  \"Descobreuse a chave\"\n"
-#~ "     Emprégueo se ten motivos para crer que algunha persoa non "
+#~ "     Emprégueo se ten motivos para crer que algunha persoa non "
 #~ "autorizada\n"
-#~ "     obtivo acceso á súa chave secreta.\n"
-#~ "  \"A chave é obsoleta\"\n"
-#~ "     Emprégueo se cambiou esta chave cunha máis recente.\n"
+#~ "     obtivo acceso á súa chave secreta.\n"
+#~ "  \"A chave é obsoleta\"\n"
+#~ "     Emprégueo se cambiou esta chave cunha máis recente.\n"
 #~ "  \"Xa non se emprega a chave\"\n"
-#~ "     Emprégueo se retirou esta chave.\n"
-#~ "  \"O ID de usuario xa non é válido\"\n"
-#~ "     Emprégueo para indicar que o ID de usuario xa non se debería "
+#~ "     Emprégueo se retirou esta chave.\n"
+#~ "  \"O ID de usuario xa non é válido\"\n"
+#~ "     Emprégueo para indicar que o ID de usuario xa non se debería "
 #~ "empregar;\n"
-#~ "     adoita empregarse para marcar un enderezo de correo non válido.\n"
+#~ "     adoita empregarse para marcar un enderezo de correo non válido.\n"
 
 #~ msgid ""
 #~ "If you like, you can enter a text describing why you issue this\n"
@@ -9661,25 +9741,25 @@ msgstr ""
 #~ "An empty line ends the text.\n"
 #~ msgstr ""
 #~ "Se quere, pode introducir un texto que describa por que emite este\n"
-#~ "certificado de revocación. Por favor, manteña este texto breve.\n"
-#~ "Unha liña en branco remata o texto.\n"
+#~ "certificado de revocación. Por favor, manteña este texto breve.\n"
+#~ "Unha liña en branco remata o texto.\n"
 
 #~ msgid "can't put notation data into v3 (PGP 2.x style) signatures\n"
 #~ msgstr ""
-#~ "non se pode poñer datos de notación nas sinaturas v3 (estilo PGP 2.x)\n"
+#~ "non se pode poñer datos de notación nas sinaturas v3 (estilo PGP 2.x)\n"
 
 #~ msgid "can't put notation data into v3 (PGP 2.x style) key signatures\n"
 #~ msgstr ""
-#~ "non se pode poñer datos de notación nas sinaturas de chave v3 (estilo PGP "
+#~ "non se pode poñer datos de notación nas sinaturas de chave v3 (estilo PGP "
 #~ "2.x)\n"
 
 #~ msgid "can't put a policy URL into v3 (PGP 2.x style) signatures\n"
 #~ msgstr ""
-#~ "non se pode poñer un URL de política nas sinaturas v3 (estilo PGP 2.x)\n"
+#~ "non se pode poñer un URL de política nas sinaturas v3 (estilo PGP 2.x)\n"
 
 #~ msgid "can't put a policy URL into v3 key (PGP 2.x style) signatures\n"
 #~ msgstr ""
-#~ "non se pode poñer un URL de política nas sinaturas de chave v3 (estilo "
+#~ "non se pode poñer un URL de política nas sinaturas de chave v3 (estilo "
 #~ "PGP 2.x)\n"
 
 #, fuzzy
@@ -9689,11 +9769,11 @@ msgstr ""
 #, fuzzy
 #~ msgid ""
 #~ "please see http://www.gnupg.org/download/iconv.html for more information\n"
-#~ msgstr "mire en http://www.gnupg.org/faq.html para obter máis información\n"
+#~ msgstr "mire en http://www.gnupg.org/faq.html para obter máis información\n"
 
 #, fuzzy
 #~ msgid "key generation is not available from the commandline\n"
-#~ msgstr "gpg-agent non está dispoñible nesta sesión\n"
+#~ msgstr "gpg-agent non está dispoñible nesta sesión\n"
 
 #, fuzzy
 #~ msgid "please use the script \"%s\" to generate a new key\n"
@@ -9702,7 +9782,7 @@ msgstr ""
 #, fuzzy
 #~ msgid "cipher extension `%s' not loaded due to unsafe permissions\n"
 #~ msgstr ""
-#~ "non se cargou a extensión de cifrado \"%s\" debido a permisos inseguros\n"
+#~ "non se cargou a extensión de cifrado \"%s\" debido a permisos inseguros\n"
 
 #, fuzzy
 #~ msgid ".\n"
@@ -9723,23 +9803,23 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "can't gen prime with pbits=%u qbits=%u\n"
-#~ msgstr "non se pode xerar un número primo de menos de %d bits\n"
+#~ msgstr "non se pode xerar un número primo de menos de %d bits\n"
 
 #~ msgid "can't generate a prime with less than %d bits\n"
-#~ msgstr "non se pode xerar un número primo de menos de %d bits\n"
+#~ msgstr "non se pode xerar un número primo de menos de %d bits\n"
 
 #~ msgid "no entropy gathering module detected\n"
-#~ msgstr "non se detectou un módulo de acumulación de entropía\n"
+#~ msgstr "non se detectou un módulo de acumulación de entropía\n"
 
 #, fuzzy
 #~ msgid "can't lock `%s': %s\n"
 #~ msgstr "non se puido abrir `%s'\n"
 
 #~ msgid "`%s' is not a regular file - ignored\n"
-#~ msgstr "`%s' non é un ficheiro normal - ignórase\n"
+#~ msgstr "`%s' non é un ficheiro normal - ignórase\n"
 
 #~ msgid "note: random_seed file is empty\n"
-#~ msgstr "nota: o ficheiro random_seed está baleiro\n"
+#~ msgstr "nota: o ficheiro random_seed está baleiro\n"
 
 #~ msgid "can't read `%s': %s\n"
 #~ msgstr "non se pode ler de `%s': %s\n"
@@ -9754,7 +9834,7 @@ msgstr ""
 #~ msgstr "non se pode pechar `%s': %s\n"
 
 #~ msgid "WARNING: using insecure random number generator!!\n"
-#~ msgstr "AVISO: ¡¡emprégase un xerador de números aleatorios inseguro!!\n"
+#~ msgstr "AVISO: ¡¡emprégase un xerador de números aleatorios inseguro!!\n"
 
 #~ msgid ""
 #~ "The random number generator is only a kludge to let\n"
@@ -9763,11 +9843,11 @@ msgstr ""
 #~ "DON'T USE ANY DATA GENERATED BY THIS PROGRAM!!\n"
 #~ "\n"
 #~ msgstr ""
-#~ "O xerador de números aleatorios só é un truco para poder\n"
-#~ "executalo - ¡non é de ningún xeito un xerador de números\n"
+#~ "O xerador de números aleatorios só é un truco para poder\n"
+#~ "executalo - ¡non é de ningún xeito un xerador de números\n"
 #~ "aleatorios seguro!\n"
 #~ "\n"
-#~ "¡NON USE NINGUN DATO XERADO POR ESTE PROGRAMA!\n"
+#~ "¡NON USE NINGUN DATO XERADO POR ESTE PROGRAMA!\n"
 #~ "\n"
 
 #~ msgid ""
@@ -9775,9 +9855,9 @@ msgstr ""
 #~ "keep you from getting bored, because it will improve the quality\n"
 #~ "of the entropy.\n"
 #~ msgstr ""
-#~ "Agarde, por favor; estase a colleitar entropía. Traballe un\n"
+#~ "Agarde, por favor; estase a colleitar entropía. Traballe un\n"
 #~ "pouco se iso evita que se aburra, que iso ha aumenta-la\n"
-#~ "calidade da entropía.\n"
+#~ "calidade da entropía.\n"
 
 #~ msgid ""
 #~ "\n"
@@ -9785,17 +9865,17 @@ msgstr ""
 #~ "the OS a chance to collect more entropy! (Need %d more bytes)\n"
 #~ msgstr ""
 #~ "\n"
-#~ "Non hai suficientes bytes aleatorios dispoñibles. Por favor, faga outro\n"
+#~ "Non hai suficientes bytes aleatorios dispoñibles. Por favor, faga outro\n"
 #~ "traballo para lle dar ao sistema operativo unha oportunidade de acumular\n"
-#~ "máis entropía (Precísanse %d bytes máis)\n"
+#~ "máis entropía (Precísanse %d bytes máis)\n"
 
 #, fuzzy
 #~ msgid "card reader not available\n"
-#~ msgstr "a chave secreta non está dispoñible"
+#~ msgstr "a chave secreta non está dispoñible"
 
 #, fuzzy
 #~ msgid "NOTE: %s is not available in this version\n"
-#~ msgstr "gpg-agent non está dispoñible nesta sesión\n"
+#~ msgstr "gpg-agent non está dispoñible nesta sesión\n"
 
 #, fuzzy
 #~ msgid "         algorithms on these user IDs:\n"
@@ -9805,37 +9885,37 @@ msgstr ""
 #~ msgstr "erro xeral"
 
 #~ msgid "unknown packet type"
-#~ msgstr "tipo de paquete descoñecido"
+#~ msgstr "tipo de paquete descoñecido"
 
 #~ msgid "unknown digest algorithm"
-#~ msgstr "algoritmo de resumo descoñecido"
+#~ msgstr "algoritmo de resumo descoñecido"
 
 #~ msgid "bad public key"
-#~ msgstr "chave pública errónea"
+#~ msgstr "chave pública errónea"
 
 #~ msgid "bad secret key"
-#~ msgstr "chave secreta errónea"
+#~ msgstr "chave secreta errónea"
 
 #~ msgid "bad signature"
-#~ msgstr "sinatura errónea"
+#~ msgstr "sinatura errónea"
 
 #~ msgid "checksum error"
 #~ msgstr "error de checksum"
 
 #~ msgid "unknown cipher algorithm"
-#~ msgstr "algoritmo de cifrado descoñecido"
+#~ msgstr "algoritmo de cifrado descoñecido"
 
 #~ msgid "invalid packet"
-#~ msgstr "paquete non válido"
+#~ msgstr "paquete non válido"
 
 #~ msgid "no such user id"
 #~ msgstr "non hai tal id de usuario"
 
 #~ msgid "secret key not available"
-#~ msgstr "a chave secreta non está dispoñible"
+#~ msgstr "a chave secreta non está dispoñible"
 
 #~ msgid "wrong secret key used"
-#~ msgstr "empregouse unha chave secreta errónea"
+#~ msgstr "empregouse unha chave secreta errónea"
 
 #~ msgid "bad key"
 #~ msgstr "chave incorrecta"
@@ -9844,28 +9924,28 @@ msgstr ""
 #~ msgstr "erro de escritura de ficheiro"
 
 #~ msgid "unknown compress algorithm"
-#~ msgstr "algoritmo de compresión descoñecido"
+#~ msgstr "algoritmo de compresión descoñecido"
 
 #~ msgid "file open error"
 #~ msgstr "erro de apertura de ficheiro"
 
 #~ msgid "file create error"
-#~ msgstr "erro de creación de ficheiro"
+#~ msgstr "erro de creación de ficheiro"
 
 #~ msgid "unimplemented pubkey algorithm"
-#~ msgstr "algoritmo de chave pública non implementado"
+#~ msgstr "algoritmo de chave pública non implementado"
 
 #~ msgid "unimplemented cipher algorithm"
 #~ msgstr "algoritmo de cifrado non implementado"
 
 #~ msgid "unknown signature class"
-#~ msgstr "clase de sinatura descoñecida"
+#~ msgstr "clase de sinatura descoñecida"
 
 #~ msgid "trust database error"
 #~ msgstr "erro da base de datos de confianza"
 
 #~ msgid "resource limit"
-#~ msgstr "límite de recursos"
+#~ msgstr "límite de recursos"
 
 #~ msgid "invalid keyring"
 #~ msgstr "chaveiro incorrecto"
@@ -9889,7 +9969,7 @@ msgstr ""
 #~ msgstr "conflicto de selo de data"
 
 #~ msgid "unusable pubkey algorithm"
-#~ msgstr "algoritmo de chave pública imposible de usar"
+#~ msgstr "algoritmo de chave pública imposible de usar"
 
 #~ msgid "file exists"
 #~ msgstr "o ficheiro xa existe"
@@ -9900,14 +9980,11 @@ msgstr ""
 #~ msgid "bad URI"
 #~ msgstr "URI incorrecto"
 
-#~ msgid "network error"
-#~ msgstr "erro de rede"
-
 #~ msgid "not processed"
 #~ msgstr "non procesado"
 
 #~ msgid "unusable public key"
-#~ msgstr "chave pública non utilizable"
+#~ msgstr "chave pública non utilizable"
 
 #~ msgid "unusable secret key"
 #~ msgstr "chave secreta non utilizable"
@@ -9924,10 +10001,10 @@ msgstr ""
 #~ msgstr "non hai datos asinados\n"
 
 #~ msgid "... this is a bug (%s:%d:%s)\n"
-#~ msgstr "... isto é un erro (%s:%d:%s)\n"
+#~ msgstr "... isto é un erro (%s:%d:%s)\n"
 
 #~ msgid "operation is not possible without initialized secure memory\n"
-#~ msgstr "a operación non é posible sen memoria inicializada como segura\n"
+#~ msgstr "a operación non é posible sen memoria inicializada como segura\n"
 
 #~ msgid "(you may have used the wrong program for this task)\n"
 #~ msgstr "(pode que usara o programa equivocado para esta tarefa)\n"
@@ -9935,16 +10012,16 @@ msgstr ""
 #~ msgid ""
 #~ "please see http://www.gnupg.org/why-not-idea.html for more information\n"
 #~ msgstr ""
-#~ "mire en http://www.gnupg.org/why-not-idea.html para obter máis "
-#~ "información\n"
+#~ "mire en http://www.gnupg.org/why-not-idea.html para obter máis "
+#~ "información\n"
 
 #, fuzzy
 #~ msgid "all export-clean-* options from above"
-#~ msgstr "le-las opcións dun ficheiro"
+#~ msgstr "le-las opcións dun ficheiro"
 
 #, fuzzy
 #~ msgid "all import-clean-* options from above"
-#~ msgstr "le-las opcións dun ficheiro"
+#~ msgstr "le-las opcións dun ficheiro"
 
 #, fuzzy
 #~ msgid "expired: %s)"
@@ -9963,7 +10040,7 @@ msgstr ""
 #~ msgstr "Non hai un ID de usuario para a chave\n"
 
 #~ msgid "bad passphrase or unknown cipher algorithm (%d)\n"
-#~ msgstr "contrasinal incorrecto ou algoritmo de cifrado descoñecido (%d)\n"
+#~ msgstr "contrasinal incorrecto ou algoritmo de cifrado descoñecido (%d)\n"
 
 #~ msgid "can't set client pid for the agent\n"
 #~ msgstr "non se pode estabrece-lo pid do cliente para o axente\n"
@@ -9990,7 +10067,7 @@ msgstr ""
 #~ msgstr "borrar sinaturas"
 
 #~ msgid "change the expire date"
-#~ msgstr "cambia-la fecha de expiración"
+#~ msgstr "cambia-la fecha de expiración"
 
 #~ msgid "set preference list"
 #~ msgstr "estabrece-la lista de preferencias"
@@ -9999,7 +10076,7 @@ msgstr ""
 #~ msgstr "preferencias actualizadas"
 
 #~ msgid "No secondary key with index %d\n"
-#~ msgstr "Non hai chave secundaria con índice %d\n"
+#~ msgstr "Non hai chave secundaria con índice %d\n"
 
 #~ msgid "--nrsign-key user-id"
 #~ msgstr "--nrsign-key id-de-usuario"
@@ -10157,7 +10234,7 @@ msgstr ""
 #~ msgstr "showphoto"
 
 #~ msgid "digest algorithm `%s' is read-only in this release\n"
-#~ msgstr "o algoritmo de resumo `%s' é de só lectura nesta versión\n"
+#~ msgstr "o algoritmo de resumo `%s' é de só lectura nesta versión\n"
 
 #~ msgid ""
 #~ "About to generate a new %s keypair.\n"
@@ -10166,71 +10243,71 @@ msgstr ""
 #~ "    highest suggested keysize is 2048 bits\n"
 #~ msgstr ""
 #~ "Hase crear unh novo par de chaves %s.\n"
-#~ "             tamaño de chave mínimo:  768 bits\n"
-#~ "        tamaño de chave por defecto: 1024 bits\n"
-#~ " tamaño de chave máximo recomendado: 2048 bits\n"
+#~ "             tamaño de chave mínimo:  768 bits\n"
+#~ "        tamaño de chave por defecto: 1024 bits\n"
+#~ " tamaño de chave máximo recomendado: 2048 bits\n"
 
 #~ msgid "DSA only allows keysizes from 512 to 1024\n"
-#~ msgstr "DSA só admite tamaños entre 512 e 1024\n"
+#~ msgstr "DSA só admite tamaños entre 512 e 1024\n"
 
 #~ msgid "keysize too small; 1024 is smallest value allowed for RSA.\n"
-#~ msgstr "chave pequena de máis; 1024 é o menor valor admitido para RSA.\n"
+#~ msgstr "chave pequena de máis; 1024 é o menor valor admitido para RSA.\n"
 
 #~ msgid "keysize too small; 768 is smallest value allowed.\n"
-#~ msgstr "chave pequena de máis; 768 é o menor valor admitido\n"
+#~ msgstr "chave pequena de máis; 768 é o menor valor admitido\n"
 
 #~ msgid "keysize too large; %d is largest value allowed.\n"
-#~ msgstr "chave grande de máis; %d é o maior tamaño admitido.\n"
+#~ msgstr "chave grande de máis; %d é o maior tamaño admitido.\n"
 
 #~ msgid ""
 #~ "Keysizes larger than 2048 are not suggested because\n"
 #~ "computations take REALLY long!\n"
 #~ msgstr ""
-#~ "¡As chaves maiores de 2048 bits non se aconsellan porque\n"
-#~ "os cálculos levan MOITO tempo!\n"
+#~ "¡As chaves maiores de 2048 bits non se aconsellan porque\n"
+#~ "os cálculos levan MOITO tempo!\n"
 
 #, fuzzy
 #~ msgid "Are you sure that you want this keysize? (y/N) "
-#~ msgstr "¿Está seguro de que quere este tamaño de chave? "
+#~ msgstr "¿Está seguro de que quere este tamaño de chave? "
 
 #~ msgid ""
 #~ "Okay, but keep in mind that your monitor and keyboard radiation is also "
 #~ "very vulnerable to attacks!\n"
 #~ msgstr ""
-#~ "De acordo, ¡pero teña en conta que a radiación do monitor e o teclado "
-#~ "tamén son vulnerables a ataques!\n"
+#~ "De acordo, ¡pero teña en conta que a radiación do monitor e o teclado "
+#~ "tamén son vulnerables a ataques!\n"
 
 #~ msgid "Experimental algorithms should not be used!\n"
-#~ msgstr "¡Os algoritmos experimentais non deberían ser usados!\n"
+#~ msgstr "¡Os algoritmos experimentais non deberían ser usados!\n"
 
 #~ msgid ""
 #~ "this cipher algorithm is deprecated; please use a more standard one!\n"
 #~ msgstr ""
-#~ "este algoritmo de cifrado está obsoleto; por favor, empregue un máis "
-#~ "estándar!\n"
+#~ "este algoritmo de cifrado está obsoleto; por favor, empregue un máis "
+#~ "estándar!\n"
 
 #~ msgid "sorry, can't do this in batch mode\n"
-#~ msgstr "sentímolo, non se pode facer isto no modo por lotes\n"
+#~ msgstr "sentímolo, non se pode facer isto no modo por lotes\n"
 
 #, fuzzy
 #~ msgid "can't open file `%s': %s\n"
 #~ msgstr "non se puido abrir un ficheiro: %s\n"
 
 #~ msgid "key %08lX: key has been revoked!\n"
-#~ msgstr "chave %08lX: ¡esta chave está revocada!\n"
+#~ msgstr "chave %08lX: ¡esta chave está revocada!\n"
 
 #~ msgid "key %08lX: subkey has been revoked!\n"
-#~ msgstr "chave %08lX: ¡unha subchave está revocada!\n"
+#~ msgstr "chave %08lX: ¡unha subchave está revocada!\n"
 
 #~ msgid "%08lX: key has expired\n"
 #~ msgstr "%08lX: a chave caducou\n"
 
 #~ msgid "%08lX: We do NOT trust this key\n"
-#~ msgstr "%08lX: Esta chave NON é de confianza\n"
+#~ msgstr "%08lX: Esta chave NON é de confianza\n"
 
 #, fuzzy
 #~ msgid "   (%d) RSA (auth only)\n"
-#~ msgstr "   (%d) RSA (só asinar)\n"
+#~ msgstr "   (%d) RSA (só asinar)\n"
 
 #, fuzzy
 #~ msgid "   (%d) RSA (sign and auth)\n"
@@ -10238,7 +10315,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "   (%d) RSA (encrypt and auth)\n"
-#~ msgstr "   (%d) RSA (só cifrar)\n"
+#~ msgstr "   (%d) RSA (só cifrar)\n"
 
 #, fuzzy
 #~ msgid "  (%d) RSA (sign, encrypt and auth)\n"
@@ -10252,11 +10329,11 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "   (%d) I trust marginally\n"
-#~ msgstr " %d = Confío marxinalmente\n"
+#~ msgstr " %d = Confío marxinalmente\n"
 
 #, fuzzy
 #~ msgid "   (%d) I trust fully\n"
-#~ msgstr " %d = Confío totalmente\n"
+#~ msgstr " %d = Confío totalmente\n"
 
 #, fuzzy
 #~ msgid "expires"
@@ -10268,7 +10345,7 @@ msgstr ""
 #~ "locally signed with your key %s at %s\n"
 #~ msgstr ""
 #~ "\"\n"
-#~ "asinado localmente coa súa chave %08lX no %s\n"
+#~ "asinado localmente coa súa chave %08lX no %s\n"
 
 #~ msgid "%s: can't create lock\n"
 #~ msgstr "%s: non se pode crea-lo bloqueo\n"
@@ -10298,7 +10375,7 @@ msgstr ""
 #~ msgstr "rev! revocouse a subchave: %s\n"
 
 #~ msgid "rev- faked revocation found\n"
-#~ msgstr "rev- atopouse unha revocación falsa\n"
+#~ msgstr "rev- atopouse unha revocación falsa\n"
 
 #, fuzzy
 #~ msgid " [expired: %s]"
@@ -10315,13 +10392,13 @@ msgstr ""
 #~ "WARNING: digest `%s' is not part of OpenPGP.  Use at your own risk!\n"
 #~ msgstr ""
 #~ "AVISO: o resumo `%s' non forma parte de OpenPGP.\n"
-#~ "       Emprégueo baixo a súa propia responsabilidade.\n"
+#~ "       Emprégueo baixo a súa propia responsabilidade.\n"
 
 #~ msgid "|[files]|encrypt files"
 #~ msgstr "|[ficheiros]|cifrar ficheiros"
 
 #~ msgid "store only"
-#~ msgstr "só armacenar"
+#~ msgstr "só armacenar"
 
 #~ msgid "|[files]|decrypt files"
 #~ msgstr "|[ficheiros]|descifrar ficheiros"
@@ -10333,22 +10410,22 @@ msgstr ""
 #~ msgstr "asinar unha chave localmente e de xeito non revocable"
 
 #~ msgid "list only the sequence of packets"
-#~ msgstr "listar só a secuencia de paquetes"
+#~ msgstr "listar só a secuencia de paquetes"
 
 #~ msgid "export the ownertrust values"
 #~ msgstr "exporta-los valores de confianza no propietario"
 
 #~ msgid "unattended trust database update"
-#~ msgstr "actualización inatendida da base de datos de confianza"
+#~ msgstr "actualización inatendida da base de datos de confianza"
 
 #~ msgid "fix a corrupted trust database"
-#~ msgstr "amañar unha base de datos de confianza corrompida"
+#~ msgstr "amañar unha base de datos de confianza corrompida"
 
 #~ msgid "De-Armor a file or stdin"
-#~ msgstr "Quita-la armadura a un ficheiro ou á entrada estándar"
+#~ msgstr "Quita-la armadura a un ficheiro ou á entrada estándar"
 
 #~ msgid "En-Armor a file or stdin"
-#~ msgstr "Pór armadura a un ficheiro ou á entrada estándar"
+#~ msgstr "Pór armadura a un ficheiro ou á entrada estándar"
 
 #~ msgid "do not force v3 signatures"
 #~ msgstr "non forzar sinaturas v3"
@@ -10366,7 +10443,7 @@ msgstr ""
 #~ msgstr "emprega-lo gpg-agent"
 
 #~ msgid "|[file]|write status info to file"
-#~ msgstr "|[ficheiro]|escribi-la información de estado no ficheiro"
+#~ msgstr "|[ficheiro]|escribi-la información de estado no ficheiro"
 
 #~ msgid "|KEYID|ultimately trust this key"
 #~ msgstr "|IDCHAVE|confiar absolutamente nesta chave"
@@ -10376,12 +10453,12 @@ msgstr ""
 
 #~ msgid "set all packet, cipher and digest options to OpenPGP behavior"
 #~ msgstr ""
-#~ "axustar tódalas opcións de paquetes, cifrado e resumo ao comportamento "
+#~ "axustar tódalas opcións de paquetes, cifrado e resumo ao comportamento "
 #~ "OpenPGP"
 
 #~ msgid "set all packet, cipher and digest options to PGP 2.x behavior"
 #~ msgstr ""
-#~ "axustar tódalas opcións de paquetes, cifrado e resumo ao comportamento "
+#~ "axustar tódalas opcións de paquetes, cifrado e resumo ao comportamento "
 #~ "PGP 2.x"
 
 #~ msgid "|NAME|use message digest algorithm NAME for passphrases"
@@ -10391,39 +10468,39 @@ msgstr ""
 #~ msgstr "descarta-lo campo de id de chave dos paquetes cifrados"
 
 #~ msgid "Show Photo IDs"
-#~ msgstr "Amosar Identificacións Fotográficas"
+#~ msgstr "Amosar Identificacións Fotográficas"
 
 #~ msgid "Don't show Photo IDs"
-#~ msgstr "Non amosar Identificacións Fotográficas"
+#~ msgstr "Non amosar Identificacións Fotográficas"
 
 #~ msgid "Set command line to view Photo IDs"
 #~ msgstr ""
-#~ "Estabrece-la liña de comando para ve-las Identificacións Fotográficas"
+#~ "Estabrece-la liña de comando para ve-las Identificacións Fotográficas"
 
 #~ msgid "compress algorithm `%s' is read-only in this release\n"
-#~ msgstr "o algoritmo de compresión `%s' é de só lectura nesta versión\n"
+#~ msgstr "o algoritmo de compresión `%s' é de só lectura nesta versión\n"
 
 #~ msgid "compress algorithm must be in range %d..%d\n"
-#~ msgstr "o algoritmo de compresión debe estar entre %d e %d\n"
+#~ msgstr "o algoritmo de compresión debe estar entre %d e %d\n"
 
 #~ msgid ""
 #~ "%08lX: It is not sure that this key really belongs to the owner\n"
 #~ "but it is accepted anyway\n"
 #~ msgstr ""
-#~ "%08lX: Non é seguro que esta chave pertenza de verdade ao seu "
+#~ "%08lX: Non é seguro que esta chave pertenza de verdade ao seu "
 #~ "propietario\n"
-#~ "pero acéptase de tódolos xeitos\n"
+#~ "pero acéptase de tódolos xeitos\n"
 
 #~ msgid "preference %c%lu is not valid\n"
-#~ msgstr "a preferencia %c%lu non é válida\n"
+#~ msgstr "a preferencia %c%lu non é válida\n"
 
 #~ msgid "key %08lX: not a rfc2440 key - skipped\n"
-#~ msgstr "chave %08lX: non é unha chave rfc2440 - omitida\n"
+#~ msgstr "chave %08lX: non é unha chave rfc2440 - omitida\n"
 
 #~ msgid ""
 #~ "NOTE: Elgamal primary key detected - this may take some time to import\n"
 #~ msgstr ""
-#~ "NOTA: Detectouse unha clave primaria Elgamal - ha tomar algún tempo "
+#~ "NOTA: Detectouse unha clave primaria Elgamal - ha tomar algún tempo "
 #~ "importala\n"
 
 #~ msgid " (default)"
@@ -10436,7 +10513,7 @@ msgstr ""
 #~ msgstr "non se pode obte-la chave do servidor de chaves: %s\n"
 
 #~ msgid "success sending to `%s' (status=%u)\n"
-#~ msgstr "éxito ao enviar a `%s' (estado=%u)\n"
+#~ msgstr "éxito ao enviar a `%s' (estado=%u)\n"
 
 #~ msgid "failed sending to `%s': status=%u\n"
 #~ msgstr "fallo ao enviar a `%s': estado=%u\n"
@@ -10451,7 +10528,7 @@ msgstr ""
 #~ "key %08lX: this is a PGP generated ElGamal key which is NOT secure for "
 #~ "signatures!\n"
 #~ msgstr ""
-#~ "chave %08lX: ¡esta é unha chave ElGamal xerada por PGP que NON é xegura "
+#~ "chave %08lX: ¡esta é unha chave ElGamal xerada por PGP que NON é xegura "
 #~ "para sinaturas!\n"
 
 #~ msgid ""
@@ -10509,35 +10586,35 @@ msgstr ""
 #~ msgstr ""
 #~ "Seleccione o algoritmo a usar.\n"
 #~ "\n"
-#~ "DSA (tamén chamado DSS) é un algoritmo de sinatura dixital, que só se "
+#~ "DSA (tamén chamado DSS) é un algoritmo de sinatura dixital, que só se "
 #~ "pode\n"
-#~ "empregar para asinar. É o algoritmo aconsellado porque é moito máis "
-#~ "rápido\n"
+#~ "empregar para asinar. É o algoritmo aconsellado porque é moito máis "
+#~ "rápido\n"
 #~ "verificar unha sinatura DSA que unha sinatura ElGamal.\n"
 #~ "\n"
-#~ "ElGamal é un algoritmo que se pode empregar para asinar e cifrar. "
+#~ "ElGamal é un algoritmo que se pode empregar para asinar e cifrar. "
 #~ "OpenPGP\n"
-#~ "distingue entre dúas variantes do algoritmo: un que só cifra e outro que\n"
-#~ "asina e cifra; realmente é o mesmo, pero hai que escoller algúns "
-#~ "parámetros\n"
+#~ "distingue entre dúas variantes do algoritmo: un que só cifra e outro que\n"
+#~ "asina e cifra; realmente é o mesmo, pero hai que escoller algúns "
+#~ "parámetros\n"
 #~ "dun xeito especial para crear unha clave que sexa segura para asinar: "
 #~ "este\n"
-#~ "programa faino, pero outras implementacións de OpenPGP non teñen por que\n"
+#~ "programa faino, pero outras implementacións de OpenPGP non teñen por que\n"
 #~ "entende-la variante de asinado+cifrado.\n"
 #~ "\n"
 #~ "A primeira clave (a primaria) debe ser sempre unha clave capaz de "
 #~ "asinar;\n"
-#~ "este é o motivo polo que a clave ElGamal que só cifra non está "
-#~ "dispoñible\n"
-#~ "neste menú."
+#~ "este é o motivo polo que a clave ElGamal que só cifra non está "
+#~ "dispoñible\n"
+#~ "neste menú."
 
 #~ msgid ""
 #~ "Although these keys are defined in RFC2440 they are not suggested\n"
 #~ "because they are not supported by all programs and signatures created\n"
 #~ "with them are quite large and very slow to verify."
 #~ msgstr ""
-#~ "Aínda que estas chaves están definidas no RFC2440, non se aconsellan\n"
-#~ "porque non están soportadas por tódolos programas, e as sinaturas\n"
+#~ "Aínda que estas chaves están definidas no RFC2440, non se aconsellan\n"
+#~ "porque non están soportadas por tódolos programas, e as sinaturas\n"
 #~ "creadas con elas son moi grandes e lentas de comprobar."
 
 #~ msgid "%lu keys so far checked (%lu signatures)\n"
@@ -10551,7 +10628,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "quit|quit"
-#~ msgstr "quit|saír"
+#~ msgstr "quit|saír"
 
 #~ msgid "   (%d) ElGamal (sign and encrypt)\n"
 #~ msgstr "   (%d) ElGamal (asinar e cifrar)\n"
@@ -10562,55 +10639,55 @@ msgstr ""
 #~ "also\n"
 #~ "very slow, and may not be as secure as the other choices.\n"
 #~ msgstr ""
-#~ "O emprego deste algoritmo só está soportado en GnuPG. Non ha poder "
+#~ "O emprego deste algoritmo só está soportado en GnuPG. Non ha poder "
 #~ "empregar\n"
-#~ "esta clave para se comunicar con usuarios de PGP. Este algoritmo tamén é\n"
-#~ "moi lento, e pode non ser tan seguro coma as outras opcións.\n"
+#~ "esta clave para se comunicar con usuarios de PGP. Este algoritmo tamén é\n"
+#~ "moi lento, e pode non ser tan seguro coma as outras opcións.\n"
 
 #~ msgid "invalid symkey algorithm detected (%d)\n"
-#~ msgstr "detectouse un algoritmo de chave simétrica non válido (%d)\n"
+#~ msgstr "detectouse un algoritmo de chave simétrica non válido (%d)\n"
 
 #~ msgid "this keyserver is not fully HKP compatible\n"
-#~ msgstr "este servidor de chaves non é totalmente compatible con HKP\n"
+#~ msgstr "este servidor de chaves non é totalmente compatible con HKP\n"
 
 #~ msgid "The use of this algorithm is deprecated - create anyway? "
-#~ msgstr "Este algoritmo está obsoleto - ¿crear de tódolos xeitos? "
+#~ msgstr "Este algoritmo está obsoleto - ¿crear de tódolos xeitos? "
 
 #~ msgid ""
 #~ "you have to start GnuPG again, so it can read the new configuration file\n"
 #~ msgstr ""
 #~ "ten que iniciar GnuPG outra vez para que lea o novo ficheiro de "
-#~ "configuración\n"
+#~ "configuración\n"
 
 #~ msgid "|NAME=VALUE|use this notation data"
-#~ msgstr "|NOME=VALOR|usar estes datos de notación"
+#~ msgstr "|NOME=VALOR|usar estes datos de notación"
 
 #~ msgid ""
 #~ "the first character of a notation name must be a letter or an underscore\n"
 #~ msgstr ""
-#~ "o primeiro carácter dun nome de notación debe ser unha letra ou guión "
+#~ "o primeiro carácter dun nome de notación debe ser unha letra ou guión "
 #~ "baixo\n"
 
 #~ msgid "dots in a notation name must be surrounded by other characters\n"
 #~ msgstr ""
-#~ "os puntos dun nome de notación deben estar rodeados por outros "
+#~ "os puntos dun nome de notación deben estar rodeados por outros "
 #~ "caracteres\n"
 
 #~ msgid ""
 #~ "WARNING: This key already has a photo ID.\n"
 #~ "         Adding another photo ID may confuse some versions of PGP.\n"
 #~ msgstr ""
-#~ "AVISO: Esta chave xa ten unha identificación fotográfica.\n"
-#~ "       Se engade outra pode confundir a algunhas versións de PGP.\n"
+#~ "AVISO: Esta chave xa ten unha identificación fotográfica.\n"
+#~ "       Se engade outra pode confundir a algunhas versións de PGP.\n"
 
 #~ msgid "You may only have one photo ID on a key.\n"
-#~ msgstr "Só pode ter unha identificación fotográfica nunha chave.\n"
+#~ msgstr "Só pode ter unha identificación fotográfica nunha chave.\n"
 
 #~ msgid "             Fingerprint:"
 #~ msgstr "         Pegada dactilar:"
 
 #~ msgid "too many random bits requested; the limit is %d\n"
-#~ msgstr "pedíronse demasiados bits aleatorios; o límite é %d\n"
+#~ msgstr "pedíronse demasiados bits aleatorios; o límite é %d\n"
 
 #~ msgid "|[NAMES]|check the trust database"
 #~ msgstr "|[NOMES]|verifica-la base de datos de confianza"
@@ -10625,7 +10702,7 @@ msgstr ""
 #~ msgstr "--delete-secret-key-and-public-key id-de-usuario"
 
 #~ msgid "For info see http://www.gnupg.org"
-#~ msgstr "Para obter máis información vexa http://www.gnupg.org"
+#~ msgstr "Para obter máis información vexa http://www.gnupg.org"
 
 #~ msgid "sSmMqQ"
 #~ msgstr "iImMsS"
@@ -10635,9 +10712,9 @@ msgstr ""
 #~ "can assign some missing owner trust values.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Non se puido atopar unha ruta de confianza válida ata a chave. Hase ver "
+#~ "Non se puido atopar unha ruta de confianza válida ata a chave. Hase ver "
 #~ "se\n"
-#~ "se pode asignar algún valor de confianza non asignado.\n"
+#~ "se pode asignar algún valor de confianza non asignado.\n"
 
 #~ msgid ""
 #~ "No path leading to one of our keys found.\n"
@@ -10650,24 +10727,24 @@ msgstr ""
 #~ "No trust values changed.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Non se cambiou ningún valor de confianza.\n"
+#~ "Non se cambiou ningún valor de confianza.\n"
 #~ "\n"
 
 #~ msgid "%08lX: no info to calculate a trust probability\n"
 #~ msgstr ""
-#~ "%08lX: non hai información para calcular unha probabilidade de confianza\n"
+#~ "%08lX: non hai información para calcular unha probabilidade de confianza\n"
 
 #~ msgid "skipped: public key already set with --encrypt-to\n"
-#~ msgstr "omitida: a chave pública xa está estabrecida con --encrypt-to\n"
+#~ msgstr "omitida: a chave pública xa está estabrecida con --encrypt-to\n"
 
 #~ msgid "%s: error checking key: %s\n"
 #~ msgstr "%s: erro ao verifica-la chave: %s\n"
 
 #~ msgid "Do you really need such a large keysize? "
-#~ msgstr "¿Está seguro de precisar un tamaño de chave tan grande? "
+#~ msgstr "¿Está seguro de precisar un tamaño de chave tan grande? "
 
 #~ msgid "too many entries in unk cache - disabled\n"
-#~ msgstr "demasiadas entradas na caché de chaves descoñecidas - desactivada\n"
+#~ msgstr "demasiadas entradas na caché de chaves descoñecidas - desactivada\n"
 
 #~ msgid "secret key %08lX not imported (use %s to allow for it)\n"
 #~ msgstr ""
@@ -10677,11 +10754,11 @@ msgstr ""
 #~ msgstr "chave %08lX: a nosa copia non ten auto-sinatura\n"
 
 #~ msgid "assuming bad MDC due to an unknown critical bit\n"
-#~ msgstr "asumindo un MDC incorrecto debido a un bit crítico\n"
+#~ msgstr "asumindo un MDC incorrecto debido a un bit crítico\n"
 
 #~ msgid "lid %lu: expected dir record, got type %d\n"
 #~ msgstr ""
-#~ "lid %lu: esperábase un rexistro de directorio, obtívose un tipo %d\n"
+#~ "lid %lu: esperábase un rexistro de directorio, obtívose un tipo %d\n"
 
 #~ msgid "no primary key for LID %lu\n"
 #~ msgstr "non hai unha chave primaria para o LID %lu\n"
@@ -10693,45 +10770,45 @@ msgstr ""
 #~ msgstr "chave %08lX: a consulta do rexistro fallou\n"
 
 #~ msgid "key %08lX: already in trusted key table\n"
-#~ msgstr "chave %08lX: xa está na tabla de chaves de confianza\n"
+#~ msgstr "chave %08lX: xa está na tabla de chaves de confianza\n"
 
 #~ msgid "NOTE: secret key %08lX is NOT protected.\n"
-#~ msgstr "NOTA: a chave secreta %08lX NON está protexida.\n"
+#~ msgstr "NOTA: a chave secreta %08lX NON está protexida.\n"
 
 #~ msgid "key %08lX: secret and public key don't match\n"
-#~ msgstr "chave %08lX: as chaves secreta e pública non coinciden\n"
+#~ msgstr "chave %08lX: as chaves secreta e pública non coinciden\n"
 
 #~ msgid "key %08lX.%lu: Good subkey binding\n"
 #~ msgstr "chave %08lX.%lu: Ligadura de subchave correcta\n"
 
 #~ msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
-#~ msgstr "chave %08lX.%lu: Ligadura de subchave non válida: %s\n"
+#~ msgstr "chave %08lX.%lu: Ligadura de subchave non válida: %s\n"
 
 #~ msgid "key %08lX.%lu: Valid key revocation\n"
-#~ msgstr "chave %08lX.%lu: Revocación de chave válida\n"
+#~ msgstr "chave %08lX.%lu: Revocación de chave válida\n"
 
 #~ msgid "key %08lX.%lu: Invalid key revocation: %s\n"
-#~ msgstr "chave %08lX.%lu: Revocación de chave non válida: %s\n"
+#~ msgstr "chave %08lX.%lu: Revocación de chave non válida: %s\n"
 
 #~ msgid "Good self-signature"
 #~ msgstr "Auto-sinatura correcta"
 
 #~ msgid "Invalid self-signature"
-#~ msgstr "Auto-sinatura non válida"
+#~ msgstr "Auto-sinatura non válida"
 
 #~ msgid "Valid user ID revocation skipped due to a newer self signature"
 #~ msgstr ""
-#~ "Omítese unha revocación de ID de usuario válida debido a unha auto-"
-#~ "sinatura máis recente"
+#~ "Omítese unha revocación de ID de usuario válida debido a unha auto-"
+#~ "sinatura máis recente"
 
 #~ msgid "Valid user ID revocation"
-#~ msgstr "Revocación de ID de usuario válida"
+#~ msgstr "Revocación de ID de usuario válida"
 
 #~ msgid "Invalid user ID revocation"
-#~ msgstr "Revocación de ID de usuario non válida"
+#~ msgstr "Revocación de ID de usuario non válida"
 
 #~ msgid "Invalid certificate revocation"
-#~ msgstr "Revocación de certificado non válida"
+#~ msgstr "Revocación de certificado non válida"
 
 #~ msgid "sig record %lu[%d] points to wrong record.\n"
 #~ msgstr "o rexistro de sinatura %lu[%d] apunta a un rexistro incorrecto.\n"
@@ -10740,7 +10817,7 @@ msgstr ""
 #~ msgstr "tdbio_search_dir fallou: %s\n"
 
 #~ msgid "lid %lu: insert failed: %s\n"
-#~ msgstr "lid %lu: a inserción fallou: %s\n"
+#~ msgstr "lid %lu: a inserción fallou: %s\n"
 
 #~ msgid "lid %lu: inserted\n"
 #~ msgstr "lid %lu: inserido\n"
@@ -10755,7 +10832,7 @@ msgstr ""
 #~ msgstr "lid %lu: rexistro de directorio sen chave - ignorado\n"
 
 #~ msgid "\t%lu due to new pubkeys\n"
-#~ msgstr "\t%lu debidos a novas chaves públicas\n"
+#~ msgstr "\t%lu debidos a novas chaves públicas\n"
 
 #~ msgid "Ooops, no keys\n"
 #~ msgstr "Ooops, non hai chaves\n"
@@ -10766,12 +10843,12 @@ msgstr ""
 #~ msgid "check_trust: search dir record failed: %s\n"
 #~ msgstr ""
 #~ "check_trust:\n"
-#~ "a búsqueda de rexistro de directorio fallou: %s\n"
+#~ "a búsqueda de rexistro de directorio fallou: %s\n"
 
 #~ msgid "key %08lX: insert trust record failed: %s\n"
 #~ msgstr ""
 #~ "chave %08lX:\n"
-#~ "a inserción na base de datos de confianza fallou: %s\n"
+#~ "a inserción na base de datos de confianza fallou: %s\n"
 
 #~ msgid "key %08lX.%lu: inserted into trustdb\n"
 #~ msgstr "chave %08lX.%lu: inserida na base de datos de confianza\n"
@@ -10784,17 +10861,17 @@ msgstr ""
 #~ msgstr "chave %08lX.%lu: caducou o %s\n"
 
 #~ msgid "key %08lX.%lu: trust check failed: %s\n"
-#~ msgstr "chave %08lX.%lu: a verificación de confianza fallou: %s\n"
+#~ msgstr "chave %08lX.%lu: a verificación de confianza fallou: %s\n"
 
 #~ msgid "problem finding '%s' in trustdb: %s\n"
 #~ msgstr "problema ao buscar '%s' na base de datos de confianza: %s\n"
 
 #~ msgid "user '%s' not in trustdb - inserting\n"
-#~ msgstr "o usuario '%s' non está na base de datos de confianza - inserindo\n"
+#~ msgstr "o usuario '%s' non está na base de datos de confianza - inserindo\n"
 
 #~ msgid "WARNING: can't yet handle long pref records\n"
 #~ msgstr ""
-#~ "AVISO: aínda non se poden manexar rexistros de preferencias longos\n"
+#~ "AVISO: aínda non se poden manexar rexistros de preferencias longos\n"
 
 #~ msgid "%s: can't create keyring: %s\n"
 #~ msgstr "%s: non se pode crea-lo chaveiro: %s\n"
@@ -10803,13 +10880,13 @@ msgstr ""
 #~ msgstr "non escribir paquetes de comentario"
 
 #~ msgid "(default is 3)"
-#~ msgstr "(por defecto é 3)"
+#~ msgstr "(por defecto é 3)"
 
 #~ msgid "   (%d) ElGamal in a v3 packet\n"
 #~ msgstr "   (%d) ElGamal nun paquete v3\n"
 
 #~ msgid "Key generation can only be used in interactive mode\n"
-#~ msgstr "A xeración de chaves somentes pode ser usada no modo interactivo\n"
+#~ msgstr "A xeración de chaves somentes pode ser usada no modo interactivo\n"
 
 #~ msgid "RSA key cannot be used in this version\n"
 #~ msgstr "A chave RSA non pode user usada nesta version\n"
@@ -10824,6 +10901,6 @@ msgstr ""
 #~ "RSA keys are deprecated; please consider creating a new key and use this "
 #~ "key in the future\n"
 #~ msgstr ""
-#~ "As chaves RSA están obsoletas; por favor, considere a opción de crear "
+#~ "As chaves RSA están obsoletas; por favor, considere a opción de crear "
 #~ "unha\n"
 #~ "chave nova e usa-la no futuro.\n"
index e9ef4f2..18228f6 100644 (file)
--- a/po/hu.po
+++ b/po/hu.po
@@ -1,22 +1,22 @@
 # GnuPG Hungarian translation.
 # Copyright (C) 2003, 2004 Free Software Foundation, Inc.
-# Nagy Ferenc László <nfl@nfllab.com>, 2003, 2004.
+# Nagy Ferenc László <nfl@nfllab.com>, 2003, 2004.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: gnupg 1.2.5\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
 "PO-Revision-Date: 2004-06-19 21:53+0200\n"
-"Last-Translator: Nagy Ferenc László <nfl@nfllab.com>\n"
+"Last-Translator: Nagy Ferenc László <nfl@nfllab.com>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
 "Language: hu\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-2\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #, fuzzy, c-format
 msgid "failed to acquire the pinentry lock: %s\n"
-msgstr "Bizalmi adatbázis (%s) inicializálása sikertelen!\n"
+msgstr "Bizalmi adatbázis (%s) inicializálása sikertelen!\n"
 
 #. TRANSLATORS: These are labels for buttons etc used in
 #. Pinentries.  An underscore indicates that the next letter
@@ -44,7 +44,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Do you really want to make your passphrase visible on the screen?"
-msgstr "Valóban törli a kiválasztott kulcsokat? "
+msgstr "Valóban törli a kiválasztott kulcsokat? "
 
 msgid "|pinentry-tt|Make passphrase visible"
 msgstr ""
@@ -52,7 +52,7 @@ msgstr ""
 #, fuzzy
 #| msgid "invalid passphrase"
 msgid "|pinentry-tt|Hide passphrase"
-msgstr "érvénytelen jelszó"
+msgstr "érvénytelen jelszó"
 
 #. TRANSLATORS: This string is displayed by Pinentry as the label
 #. for the quality bar.
@@ -77,14 +77,14 @@ msgstr ""
 msgid ""
 "Please enter your passphrase, so that the secret key can be unlocked for "
 "this session"
-msgstr "Kérem, adja meg a jelszót! Ezt egy titkos mondat. \n"
+msgstr "Kérem, adja meg a jelszót! Ezt egy titkos mondat. \n"
 
 msgid "PIN:"
 msgstr ""
 
 #, fuzzy
 msgid "Passphrase:"
-msgstr "rossz jelszó"
+msgstr "rossz jelszó"
 
 msgid "does not match - try again"
 msgstr ""
@@ -101,44 +101,44 @@ msgstr ""
 
 #, fuzzy
 msgid "PIN too long"
-msgstr "A sor túl hosszú!\n"
+msgstr "A sor túl hosszú!\n"
 
 #, fuzzy
 msgid "Passphrase too long"
-msgstr "A jelszó túl hosszú!\n"
+msgstr "A jelszó túl hosszú!\n"
 
 #, fuzzy
 msgid "Invalid characters in PIN"
-msgstr "Érvénytelen karakter a névben!\n"
+msgstr "Érvénytelen karakter a névben!\n"
 
 msgid "PIN too short"
 msgstr ""
 
 #, fuzzy
 msgid "Bad PIN"
-msgstr "hibás MPI"
+msgstr "hibás MPI"
 
 #, fuzzy
 msgid "Bad Passphrase"
-msgstr "rossz jelszó"
+msgstr "rossz jelszó"
 
 #, fuzzy, c-format
 msgid "ssh keys greater than %d bits are not supported\n"
-msgstr "%d%s védõ algoritmus nem támogatott.\n"
+msgstr "%d%s védő algoritmus nem támogatott.\n"
 
 #, fuzzy, c-format
 #| msgid "can't create `%s': %s\n"
 msgid "can't create '%s': %s\n"
-msgstr "Nem tudom létrehozni a(z) \"%s\" állományt: %s.\n"
+msgstr "Nem tudom létrehozni a(z) \"%s\" állományt: %s.\n"
 
 #, fuzzy, c-format
 #| msgid "can't open `%s': %s\n"
 msgid "can't open '%s': %s\n"
-msgstr "Nem tudom megnyitni a(z) \"%s\" állományt: %s.\n"
+msgstr "Nem tudom megnyitni a(z) \"%s\" állományt: %s.\n"
 
 #, fuzzy, c-format
 msgid "error getting serial number of card: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, c-format
 msgid "detected card with S/N: %s\n"
@@ -146,19 +146,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "no authentication key for ssh on card: %s\n"
-msgstr "Hiba a(z) \"%s\" titkoskulcs-karika írásakor: %s.\n"
+msgstr "Hiba a(z) \"%s\" titkoskulcs-karika írásakor: %s.\n"
 
 #, fuzzy, c-format
 msgid "no suitable card key found: %s\n"
-msgstr "Nem írható titkoskulcs-karikát találtam: %s\n"
-
-#, fuzzy, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "A kulcsblokk törlése sikertelen: %s.\n"
-
-#, fuzzy, c-format
-msgid "error writing key: %s\n"
-msgstr "Hiba a \"%s\" kulcskarika írásakor: %s\n"
+msgstr "Nem írható titkoskulcs-karikát találtam: %s\n"
 
 #, c-format
 msgid ""
@@ -174,21 +166,21 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "Please enter the passphrase for the ssh key%%0A  %F%%0A  (%c)"
-msgstr "Kérem, adja meg a jelszót! Ezt egy titkos mondat. \n"
+msgstr "Kérem, adja meg a jelszót! Ezt egy titkos mondat. \n"
 
 #, fuzzy
 msgid "Please re-enter this passphrase"
-msgstr "jelszóváltoztatás"
+msgstr "jelszóváltoztatás"
 
 #, fuzzy, c-format
 msgid ""
 "Please enter a passphrase to protect the received secret key%%0A   %s%%0A   "
 "%s%%0Awithin gpg-agent's key storage"
-msgstr "Kérem, adja meg a jelszót! Ezt egy titkos mondat. \n"
+msgstr "Kérem, adja meg a jelszót! Ezt egy titkos mondat. \n"
 
 #, fuzzy, c-format
 msgid "failed to create stream from socket: %s\n"
-msgstr "%s: Hashtábla létrehozása sikertelen: %s.\n"
+msgstr "%s: Hashtábla létrehozása sikertelen: %s.\n"
 
 msgid "Please insert the card with serial number"
 msgstr ""
@@ -213,27 +205,27 @@ msgstr ""
 
 #, fuzzy
 msgid "Repeat this Reset Code"
-msgstr "Ismételje meg a jelszót: "
+msgstr "Ismételje meg a jelszót: "
 
 #, fuzzy
 msgid "Repeat this PUK"
-msgstr "Ismételje meg a jelszót: "
+msgstr "Ismételje meg a jelszót: "
 
 #, fuzzy
 msgid "Repeat this PIN"
-msgstr "Ismételje meg a jelszót: "
+msgstr "Ismételje meg a jelszót: "
 
 #, fuzzy
 msgid "Reset Code not correctly repeated; try again"
-msgstr "Nem ismételte meg helyesen a jelszót! Próbálja újra!"
+msgstr "Nem ismételte meg helyesen a jelszót! Próbálja újra!"
 
 #, fuzzy
 msgid "PUK not correctly repeated; try again"
-msgstr "Nem ismételte meg helyesen a jelszót! Próbálja újra!"
+msgstr "Nem ismételte meg helyesen a jelszót! Próbálja újra!"
 
 #, fuzzy
 msgid "PIN not correctly repeated; try again"
-msgstr "Nem ismételte meg helyesen a jelszót! Próbálja újra!"
+msgstr "Nem ismételte meg helyesen a jelszót! Próbálja újra!"
 
 #, c-format
 msgid "Please enter the PIN%s%s%s to unlock the card"
@@ -241,19 +233,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error creating temporary file: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, fuzzy, c-format
 msgid "error writing to temporary file: %s\n"
-msgstr "Írok a \"%s\" állományba.\n"
+msgstr "Írok a \"%s\" állományba.\n"
 
 #, fuzzy
 msgid "Enter new passphrase"
-msgstr "Írja be a jelszót!\n"
+msgstr "Írja be a jelszót!\n"
 
 #, fuzzy
 msgid "Take this one anyway"
-msgstr "Mégis használjuk ezt a kulcsot? "
+msgstr "Mégis használjuk ezt a kulcsot? "
 
 #, c-format
 msgid ""
@@ -273,8 +265,8 @@ msgstr ""
 #| msgid "Name must be at least 5 characters long\n"
 msgid "A passphrase should be at least %u character long."
 msgid_plural "A passphrase should be at least %u characters long."
-msgstr[0] "A név legalább 5 karakter kell legyen!\n"
-msgstr[1] "A név legalább 5 karakter kell legyen!\n"
+msgstr[0] "A név legalább 5 karakter kell legyen!\n"
+msgstr[1] "A név legalább 5 karakter kell legyen!\n"
 
 #, c-format
 msgid "A passphrase should contain at least %u digit or%%0Aspecial character."
@@ -293,12 +285,12 @@ msgstr ""
 #, fuzzy, c-format
 msgid "Please enter the passphrase to%0Aprotect your new key"
 msgstr ""
-"Most szükség van egy jelszóra (vagy mondatra), amely a titkos kulcsát védi.\n"
+"Most szükség van egy jelszóra (vagy mondatra), amely a titkos kulcsát védi.\n"
 "\n"
 
 #, fuzzy
 msgid "Please enter the new passphrase"
-msgstr "jelszóváltoztatás"
+msgstr "jelszóváltoztatás"
 
 #, fuzzy
 msgid ""
@@ -306,7 +298,7 @@ msgid ""
 " "
 msgstr ""
 "@\n"
-"Opciók:\n"
+"Opciók:\n"
 " "
 
 msgid "run in daemon mode (background)"
@@ -315,11 +307,16 @@ msgstr ""
 msgid "run in server mode (foreground)"
 msgstr ""
 
+#, fuzzy
+#| msgid "Key is superseded"
+msgid "run in supervised mode"
+msgstr "A kulcsot lecserélték."
+
 msgid "verbose"
-msgstr "bõbeszédû mód"
+msgstr "bőbeszédű mód"
 
 msgid "be somewhat more quiet"
-msgstr "még szûkszavúbb mód"
+msgstr "még szűkszavúbb mód"
 
 msgid "sh-style command output"
 msgstr ""
@@ -329,7 +326,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|read options from FILE"
-msgstr "|fájl|bõvítõ modul betöltése"
+msgstr "|fájl|bővítő modul betöltése"
 
 msgid "do not detach from the console"
 msgstr ""
@@ -339,7 +336,7 @@ msgstr ""
 
 #, fuzzy
 msgid "use a log file for the server"
-msgstr "kulcsok keresése kulcsszerveren"
+msgstr "kulcsok keresése kulcsszerveren"
 
 msgid "|PGM|use PGM as the PIN-Entry program"
 msgstr ""
@@ -349,12 +346,12 @@ msgstr ""
 
 #, fuzzy
 msgid "do not use the SCdaemon"
-msgstr "bizalmi adatbázis frissítése"
+msgstr "bizalmi adatbázis frissítése"
 
 #, fuzzy
 #| msgid "|NAME|set terminal charset to NAME"
 msgid "|NAME|accept some commands via NAME"
-msgstr "|NÉV|terminál karakterkódolásának megadása"
+msgstr "|NÉV|terminál karakterkódolásának megadása"
 
 msgid "ignore requests to change the TTY"
 msgstr ""
@@ -370,14 +367,14 @@ msgstr ""
 
 #, fuzzy
 msgid "disallow the use of an external password cache"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 msgid "disallow clients to mark keys as \"trusted\""
 msgstr ""
 
 #, fuzzy
 msgid "allow presetting passphrase"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 msgid "disallow caller to override the pinentry"
 msgstr ""
@@ -388,23 +385,23 @@ msgstr ""
 #, fuzzy
 #| msgid "not supported"
 msgid "enable ssh support"
-msgstr "nem támogatott"
+msgstr "nem támogatott"
 
 #, fuzzy
 #| msgid "not supported"
 msgid "enable putty support"
-msgstr "nem támogatott"
+msgstr "nem támogatott"
 
 #. TRANSLATORS: @EMAIL@ will get replaced by the actual bug
 #. reporting address.  This is so that we can change the
 #. reporting address without breaking the translations.
 #, fuzzy
 msgid "Please report bugs to <@EMAIL@>.\n"
-msgstr "A hibákat (angolul) a <gnupg-bugs@gnu.org> címre írja meg!\n"
+msgstr "A hibákat (angolul) a <gnupg-bugs@gnu.org> címre írja meg!\n"
 
 #, fuzzy
 msgid "Usage: @GPG_AGENT@ [options] (-h for help)"
-msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
+msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
 
 msgid ""
 "Syntax: @GPG_AGENT@ [options] [command [args]]\n"
@@ -418,26 +415,26 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "NOTE: no default option file `%s'\n"
 msgid "Note: no default option file '%s'\n"
-msgstr "MEGJEGYZÉS: Nincs alapértelmezett opciós fájl (%s).\n"
+msgstr "MEGJEGYZÉS: Nincs alapértelmezett opciós fájl (%s).\n"
 
 #, fuzzy, c-format
 #| msgid "option file `%s': %s\n"
 msgid "option file '%s': %s\n"
-msgstr "\"%s\" opciós fájl: %s\n"
+msgstr "\"%s\" opciós fájl: %s\n"
 
 #, fuzzy, c-format
 #| msgid "reading options from `%s'\n"
 msgid "reading options from '%s'\n"
-msgstr "Az opciókat a \"%s\" állományból olvasom.\n"
+msgstr "Az opciókat a \"%s\" állományból olvasom.\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: \"%s\" is a deprecated option\n"
 msgid "Note: '%s' is not considered an option\n"
-msgstr "FIGYELEM: \"%s\" elavult opció!\n"
+msgstr "FIGYELEM: \"%s\" elavult opció!\n"
 
 #, fuzzy, c-format
 msgid "can't create socket: %s\n"
-msgstr "%s nem hozható létre: %s\n"
+msgstr "%s nem hozható létre: %s\n"
 
 #, c-format
 msgid "socket name '%s' is too long\n"
@@ -445,48 +442,48 @@ msgstr ""
 
 #, fuzzy
 msgid "a gpg-agent is already running - not starting a new one\n"
-msgstr "GPG ügynök nem elérhetõ ebben a munkafolyamatban.\n"
+msgstr "GPG ügynök nem elérhető ebben a munkafolyamatban.\n"
 
 #, fuzzy
 msgid "error getting nonce for the socket\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, fuzzy, c-format
 msgid "error binding socket to '%s': %s\n"
-msgstr "Hiba %s-ra/-re küldéskor: %s\n"
+msgstr "Hiba %s-ra/-re küldéskor: %s\n"
 
 #, fuzzy, c-format
 msgid "can't set permissions of '%s': %s\n"
-msgstr "FIGYELEM: nem biztonságos engedélyek: %s \"%s\"\n"
+msgstr "FIGYELEM: nem biztonságos engedélyek: %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "listen() failed: %s\n"
-msgstr "Frissítés sikertelen: %s.\n"
+msgstr "Frissítés sikertelen: %s.\n"
 
 #, fuzzy, c-format
 msgid "listening on socket '%s'\n"
-msgstr "Írom a titkos kulcsot a %s állományba.\n"
+msgstr "Írom a titkos kulcsot a %s állományba.\n"
 
 #, fuzzy, c-format
 #| msgid "can't create directory `%s': %s\n"
 msgid "can't create directory '%s': %s\n"
-msgstr "Nem tudom a \"%s\" könyvtárat létrehozni: %s.\n"
+msgstr "Nem tudom a \"%s\" könyvtárat létrehozni: %s.\n"
 
 #, fuzzy, c-format
 msgid "directory '%s' created\n"
-msgstr "%s: Könyvtárat létrehoztam.\n"
+msgstr "%s: Könyvtárat létrehoztam.\n"
 
 #, fuzzy, c-format
 msgid "stat() failed for '%s': %s\n"
-msgstr "Bizalmi adatbázis: olvasás sikertelen (n=%d): %s.\n"
+msgstr "Bizalmi adatbázis: olvasás sikertelen (n=%d): %s.\n"
 
 #, fuzzy, c-format
 msgid "can't use '%s' as home directory\n"
-msgstr "%s: Nem tudom a könyvtárat létrehozni: %s.\n"
+msgstr "%s: Nem tudom a könyvtárat létrehozni: %s.\n"
 
 #, fuzzy, c-format
 msgid "error reading nonce on fd %d: %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, c-format
 msgid "handler 0x%lx for fd %d started\n"
@@ -506,7 +503,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "npth_pselect failed: %s - waiting 1s\n"
-msgstr "Titkoskulcs-blokk frissítése sikertelen: %s\n"
+msgstr "Titkoskulcs-blokk frissítése sikertelen: %s\n"
 
 #, fuzzy, c-format
 msgid "%s %s stopped\n"
@@ -514,11 +511,11 @@ msgstr "%s: kihagyva: %s\n"
 
 #, fuzzy
 msgid "no gpg-agent running in this session\n"
-msgstr "GPG ügynök nem elérhetõ ebben a munkafolyamatban.\n"
+msgstr "GPG ügynök nem elérhető ebben a munkafolyamatban.\n"
 
 #, fuzzy
 msgid "Usage: gpg-preset-passphrase [options] KEYGRIP (-h for help)\n"
-msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
+msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
 
 msgid ""
 "Syntax: gpg-preset-passphrase [options] KEYGRIP\n"
@@ -538,12 +535,12 @@ msgid ""
 " "
 msgstr ""
 "@\n"
-"Opciók:\n"
+"Opciók:\n"
 " "
 
 #, fuzzy
 msgid "Usage: gpg-protect-tool [options] (-h for help)\n"
-msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
+msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
 
 msgid ""
 "Syntax: gpg-protect-tool [options] [args]\n"
@@ -552,11 +549,11 @@ msgstr ""
 
 #, fuzzy
 msgid "Please enter the passphrase to unprotect the PKCS#12 object."
-msgstr "Kérem, adja meg a jelszót! Ezt egy titkos mondat. \n"
+msgstr "Kérem, adja meg a jelszót! Ezt egy titkos mondat. \n"
 
 #, fuzzy
 msgid "Please enter the passphrase to protect the new PKCS#12 object."
-msgstr "Kérem, adja meg a jelszót! Ezt egy titkos mondat. \n"
+msgstr "Kérem, adja meg a jelszót! Ezt egy titkos mondat. \n"
 
 msgid ""
 "Please enter the passphrase to protect the imported object within the GnuPG "
@@ -567,43 +564,43 @@ msgstr ""
 msgid ""
 "Please enter the passphrase or the PIN\n"
 "needed to complete this operation."
-msgstr "Kérem, adja meg a jelszót! Ezt egy titkos mondat. \n"
+msgstr "Kérem, adja meg a jelszót! Ezt egy titkos mondat. \n"
 
 #, fuzzy
 msgid "cancelled\n"
-msgstr "Mégsem"
+msgstr "Mégsem"
 
 #, fuzzy, c-format
 msgid "error while asking for the passphrase: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, fuzzy, c-format
 msgid "error opening '%s': %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "file '%s', line %d: %s\n"
-msgstr "\"%s\" kulcs nem található: %s\n"
+msgstr "\"%s\" kulcs nem található: %s\n"
 
 #, fuzzy, c-format
 msgid "statement \"%s\" ignored in '%s', line %d\n"
-msgstr "Olvasási hiba: %s.\n"
+msgstr "Olvasási hiba: %s.\n"
 
 #, fuzzy, c-format
 msgid "system trustlist '%s' not available\n"
-msgstr "Titkos kulcsrészek nem állnak rendelkezésre.\n"
+msgstr "Titkos kulcsrészek nem állnak rendelkezésre.\n"
 
 #, fuzzy, c-format
 msgid "bad fingerprint in '%s', line %d\n"
-msgstr "Olvasási hiba: %s.\n"
+msgstr "Olvasási hiba: %s.\n"
 
 #, fuzzy, c-format
 msgid "invalid keyflag in '%s', line %d\n"
-msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
+msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
 
 #, fuzzy, c-format
 msgid "error reading '%s', line %d: %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 msgid "error reading list of trusted root certificates\n"
 msgstr ""
@@ -664,7 +661,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Change passphrase"
-msgstr "jelszóváltoztatás"
+msgstr "jelszóváltoztatás"
 
 msgid "I'll change it later"
 msgstr ""
@@ -673,11 +670,11 @@ msgstr ""
 msgid ""
 "Do you really want to delete the key identified by keygrip%%0A  %s%%0A  %%C"
 "%%0A?"
-msgstr "Valóban törli a kiválasztott kulcsokat? "
+msgstr "Valóban törli a kiválasztott kulcsokat? "
 
 #, fuzzy
 msgid "Delete key"
-msgstr "kulcs engedélyezése"
+msgstr "kulcs engedélyezése"
 
 msgid ""
 "Warning: This key is also listed for use with SSH!\n"
@@ -697,82 +694,90 @@ msgstr ""
 
 #, c-format
 msgid "checking created signature failed: %s\n"
-msgstr "A létrehozott aláírás ellenõrzése sikertelen: %s.\n"
+msgstr "A létrehozott aláírás ellenőrzése sikertelen: %s.\n"
 
 msgid "secret key parts are not available\n"
-msgstr "Titkos kulcsrészek nem állnak rendelkezésre.\n"
+msgstr "Titkos kulcsrészek nem állnak rendelkezésre.\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "public key algorithm %d (%s) is not supported\n"
-msgstr "%d%s védõ algoritmus nem támogatott.\n"
+msgstr "%d%s védő algoritmus nem támogatott.\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "protection algorithm %d (%s) is not supported\n"
-msgstr "%d%s védõ algoritmus nem támogatott.\n"
+msgstr "%d%s védő algoritmus nem támogatott.\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "protection hash algorithm %d (%s) is not supported\n"
-msgstr "%d%s védõ algoritmus nem támogatott.\n"
+msgstr "%d%s védő algoritmus nem támogatott.\n"
 
 #, fuzzy, c-format
 msgid "error creating a pipe: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, fuzzy, c-format
 msgid "error creating a stream for a pipe: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, fuzzy, c-format
 msgid "error forking process: %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
-#, fuzzy, c-format
-msgid "waiting for processes to terminate failed: %s\n"
-msgstr "Frissítés sikertelen: %s.\n"
+#, c-format
+msgid "waiting for process %d to terminate failed: %s\n"
+msgstr ""
 
 #, fuzzy, c-format
 msgid "error running '%s': probably not installed\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "error running '%s': exit status %d\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "error running '%s': terminated\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy, c-format
-msgid "error getting exit code of process %d: %s\n"
-msgstr "Hiba a(z) \"%s\" titkoskulcs-karika írásakor: %s.\n"
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "Frissítés sikertelen: %s.\n"
 
-#, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr ""
+#, fuzzy, c-format
+msgid "error getting exit code of process %d: %s\n"
+msgstr "Hiba a(z) \"%s\" titkoskulcs-karika írásakor: %s.\n"
 
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to '%s': %s\n"
-msgstr "Nem tudok kapcsolódni \"%s\" objektumhoz: %s\n"
+msgstr "Nem tudok kapcsolódni \"%s\" objektumhoz: %s\n"
 
 #, fuzzy
 msgid "problem setting the gpg-agent options\n"
-msgstr "Probléma az ügynökkel: ügynök válasza: 0x%lx\n"
+msgstr "Probléma az ügynökkel: ügynök válasza: 0x%lx\n"
 
 #, c-format
 msgid "can't disable core dumps: %s\n"
-msgstr "Nem tudom letiltani a core fájlokat: %s.\n"
+msgstr "Nem tudom letiltani a core fájlokat: %s.\n"
 
 #, fuzzy, c-format
 msgid "Warning: unsafe ownership on %s \"%s\"\n"
-msgstr "FIGYELEM: Nem biztonságos tulajdonos: %s \"%s\"\n"
+msgstr "FIGYELEM: Nem biztonságos tulajdonos: %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
-msgstr "FIGYELEM: nem biztonságos engedélyek: %s \"%s\"\n"
+msgstr "FIGYELEM: nem biztonságos engedélyek: %s \"%s\"\n"
+
+#, fuzzy, c-format
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "Frissítés sikertelen: %s.\n"
+
+#, fuzzy, c-format
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "Páncélozás nem sikerült: %s\n"
 
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "yes"
@@ -790,7 +795,7 @@ msgstr "nN"
 
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "quit"
-msgstr "kilépés|kilepes"
+msgstr "kilépés|kilepes"
 
 msgid "qQ"
 msgstr "kK"
@@ -820,7 +825,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error allocating enough memory: %s\n"
-msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
+msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
 
 #, c-format
 msgid "%s:%u: obsolete option \"%s\" - it has no effect\n"
@@ -828,7 +833,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "WARNING: \"%s%s\" is an obsolete option - it has no effect\n"
-msgstr "FIGYELEM: \"%s\" elavult opció!\n"
+msgstr "FIGYELEM: \"%s\" elavult opció!\n"
 
 #, c-format
 msgid "unknown debug flag '%s' ignored\n"
@@ -847,7 +852,7 @@ msgstr ""
 
 #, fuzzy
 msgid "connection to agent is in restricted mode\n"
-msgstr "Nem tudom ezt megcsinálni kötegelt módban!\n"
+msgstr "Nem tudom ezt megcsinálni kötegelt módban!\n"
 
 #, c-format
 msgid "no running Dirmngr - starting '%s'\n"
@@ -873,63 +878,63 @@ msgstr ""
 
 #, fuzzy
 msgid "|audit-log-result|No certificate"
-msgstr "rossz igazolás"
+msgstr "rossz igazolás"
 
 #, fuzzy
 msgid "|audit-log-result|Not enabled"
-msgstr "rossz igazolás"
+msgstr "rossz igazolás"
 
 msgid "|audit-log-result|Error"
 msgstr ""
 
 #, fuzzy
 msgid "|audit-log-result|Not used"
-msgstr "rossz igazolás"
+msgstr "rossz igazolás"
 
 #, fuzzy
 msgid "|audit-log-result|Okay"
-msgstr "rossz igazolás"
+msgstr "rossz igazolás"
 
 #, fuzzy
 msgid "|audit-log-result|Skipped"
-msgstr "rossz igazolás"
+msgstr "rossz igazolás"
 
 #, fuzzy
 msgid "|audit-log-result|Some"
-msgstr "rossz igazolás"
+msgstr "rossz igazolás"
 
 #, fuzzy
 msgid "Certificate chain available"
-msgstr "rossz igazolás"
+msgstr "rossz igazolás"
 
 #, fuzzy
 msgid "root certificate missing"
-msgstr "rossz igazolás"
+msgstr "rossz igazolás"
 
 msgid "Data encryption succeeded"
 msgstr ""
 
 #, fuzzy
 msgid "Data available"
-msgstr "Kulcs található: "
+msgstr "Kulcs található: "
 
 #, fuzzy
 msgid "Session key created"
-msgstr "%s: Kulcskarikát létrehoztam.\n"
+msgstr "%s: Kulcskarikát létrehoztam.\n"
 
 #, fuzzy, c-format
 msgid "algorithm: %s"
-msgstr "Páncél: %s\n"
+msgstr "Páncél: %s\n"
 
 #, fuzzy, c-format
 msgid "unsupported algorithm: %s"
 msgstr ""
 "\n"
-"Támogatott algoritmusok:\n"
+"Támogatott algoritmusok:\n"
 
 #, fuzzy
 msgid "seems to be not encrypted"
-msgstr "nem titkosított"
+msgstr "nem titkosított"
 
 msgid "Number of recipients"
 msgstr ""
@@ -943,73 +948,73 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "data hash algorithm: %s"
-msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
+msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
 
 #, fuzzy, c-format
 msgid "Signer %d"
-msgstr "Az aláírás lejárt: %s.\n"
+msgstr "Az aláírás lejárt: %s.\n"
 
 #, fuzzy, c-format
 msgid "attr hash algorithm: %s"
-msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
+msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
 
 msgid "Data decryption succeeded"
 msgstr ""
 
 #, fuzzy
 msgid "Encryption algorithm supported"
-msgstr "%d%s védõ algoritmus nem támogatott.\n"
+msgstr "%d%s védő algoritmus nem támogatott.\n"
 
 #, fuzzy
 msgid "Data verification succeeded"
-msgstr "Aláírás-ellenõrzés elnyomva.\n"
+msgstr "Aláírás-ellenőrzés elnyomva.\n"
 
 #, fuzzy
 msgid "Signature available"
-msgstr "Az aláírás lejárt: %s.\n"
+msgstr "Az aláírás lejárt: %s.\n"
 
 #, fuzzy
 msgid "Parsing data succeeded"
-msgstr "Jó aláírás a következõtõl: \""
+msgstr "Jó aláírás a következőtől: \""
 
 #, fuzzy, c-format
 msgid "bad data hash algorithm: %s"
-msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
+msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
 
 #, fuzzy, c-format
 msgid "Signature %d"
-msgstr "Az aláírás lejárt: %s.\n"
+msgstr "Az aláírás lejárt: %s.\n"
 
 #, fuzzy
 msgid "Certificate chain valid"
-msgstr "Ez a kulcs lejárt!"
+msgstr "Ez a kulcs lejárt!"
 
 #, fuzzy
 msgid "Root certificate trustworthy"
-msgstr "rossz igazolás"
+msgstr "rossz igazolás"
 
 #, fuzzy
 msgid "no CRL found for certificate"
-msgstr "rossz igazolás"
+msgstr "rossz igazolás"
 
 #, fuzzy
 msgid "the available CRL is too old"
-msgstr "Kulcs található: "
+msgstr "Kulcs található: "
 
 #, fuzzy
 msgid "CRL/OCSP check of certificates"
-msgstr "rossz igazolás"
+msgstr "rossz igazolás"
 
 #, fuzzy
 msgid "Included certificates"
-msgstr "rossz igazolás"
+msgstr "rossz igazolás"
 
 msgid "No audit log entries."
 msgstr ""
 
 #, fuzzy
 msgid "Unknown operation"
-msgstr "ismeretlen verzió"
+msgstr "ismeretlen verzió"
 
 msgid "Gpg-Agent usable"
 msgstr ""
@@ -1019,44 +1024,44 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "No help available for '%s'."
-msgstr "Nem áll rendelkezésre segítség \"%s\" témához."
+msgstr "Nem áll rendelkezésre segítség \"%s\" témához."
 
 #, fuzzy
 msgid "ignoring garbage line"
-msgstr "Hiba a záró sorban!\n"
+msgstr "Hiba a záró sorban!\n"
 
 #, fuzzy
 msgid "[none]"
-msgstr "Ismeretlen módú"
+msgstr "Ismeretlen módú"
 
 #, fuzzy
 msgid "argument not expected"
-msgstr "Írom a titkos kulcsot a %s állományba.\n"
+msgstr "Írom a titkos kulcsot a %s állományba.\n"
 
 #, fuzzy
 msgid "read error"
-msgstr "állományolvasási hiba"
+msgstr "állományolvasási hiba"
 
 #, fuzzy
 msgid "keyword too long"
-msgstr "A sor túl hosszú!\n"
+msgstr "A sor túl hosszú!\n"
 
 #, fuzzy
 msgid "missing argument"
-msgstr "érvénytelen argumentum"
+msgstr "érvénytelen argumentum"
 
 #, fuzzy
 #| msgid "invalid armor"
 msgid "invalid argument"
-msgstr "érvénytelen páncél"
+msgstr "érvénytelen páncél"
 
 #, fuzzy
 msgid "invalid command"
-msgstr "Egymásnak ellentmondó parancsok!\n"
+msgstr "Egymásnak ellentmondó parancsok!\n"
 
 #, fuzzy
 msgid "invalid alias definition"
-msgstr "Érvénytelen import opciók!\n"
+msgstr "Érvénytelen import opciók!\n"
 
 #, fuzzy
 msgid "out of core"
@@ -1064,7 +1069,7 @@ msgstr "nem feldolgozott"
 
 #, fuzzy
 msgid "invalid option"
-msgstr "Érvénytelen import opciók!\n"
+msgstr "Érvénytelen import opciók!\n"
 
 #, c-format
 msgid "missing argument for option \"%.50s\"\n"
@@ -1072,7 +1077,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid argument for option \"%.50s\"\n"
-msgstr "Érvénytelen import opciók!\n"
+msgstr "Érvénytelen import opciók!\n"
 
 #, c-format
 msgid "option \"%.50s\" does not expect an argument\n"
@@ -1080,7 +1085,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid command \"%.50s\"\n"
-msgstr "Érvénytelen parancs! (Próbálja a súgót: \"help\".)\n"
+msgstr "Érvénytelen parancs! (Próbálja a súgót: \"help\".)\n"
 
 #, c-format
 msgid "option \"%.50s\" is ambiguous\n"
@@ -1096,27 +1101,27 @@ msgstr "nem feldolgozott"
 
 #, fuzzy, c-format
 msgid "invalid option \"%.50s\"\n"
-msgstr "Érvénytelen import opciók!\n"
+msgstr "Érvénytelen import opciók!\n"
 
 #, fuzzy, c-format
 msgid "conversion from '%s' to '%s' not available\n"
-msgstr "Páncélozás nem sikerült: %s\n"
+msgstr "Páncélozás nem sikerült: %s\n"
 
 #, fuzzy, c-format
 msgid "iconv_open failed: %s\n"
-msgstr "Nem tudom megnyitni az állományt: %s.\n"
+msgstr "Nem tudom megnyitni az állományt: %s.\n"
 
 #, fuzzy, c-format
 msgid "conversion from '%s' to '%s' failed: %s\n"
-msgstr "Páncélozás nem sikerült: %s\n"
+msgstr "Páncélozás nem sikerült: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to create temporary file '%s': %s\n"
-msgstr "Nem tudom a \"%s\" könyvtárat létrehozni: %s.\n"
+msgstr "Nem tudom a \"%s\" könyvtárat létrehozni: %s.\n"
 
 #, fuzzy, c-format
 msgid "error writing to '%s': %s\n"
-msgstr "Hiba a \"%s\" kulcskarika írásakor: %s\n"
+msgstr "Hiba a \"%s\" kulcskarika írásakor: %s\n"
 
 #, c-format
 msgid "removing stale lockfile (created by %d)\n"
@@ -1124,18 +1129,18 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "waiting for lock (held by %d%s) %s...\n"
-msgstr "Írom a titkos kulcsot a %s állományba.\n"
+msgstr "Írom a titkos kulcsot a %s állományba.\n"
 
 msgid "(deadlock?) "
 msgstr ""
 
 #, fuzzy, c-format
 msgid "lock '%s' not made: %s\n"
-msgstr "A(z) %08lX nyilvános kulcsot nem találom: %s.\n"
+msgstr "A(z) %08lX nyilvános kulcsot nem találom: %s.\n"
 
 #, fuzzy, c-format
 msgid "waiting for lock %s...\n"
-msgstr "Írom a titkos kulcsot a %s állományba.\n"
+msgstr "Írom a titkos kulcsot a %s állományba.\n"
 
 #, c-format
 msgid "%s is too old (need %s, have %s)\n"
@@ -1143,43 +1148,43 @@ msgstr ""
 
 #, c-format
 msgid "armor: %s\n"
-msgstr "Páncél: %s\n"
+msgstr "Páncél: %s\n"
 
 msgid "invalid armor header: "
-msgstr "Érvénytelen páncélfejléc: "
+msgstr "Érvénytelen páncélfejléc: "
 
 msgid "armor header: "
-msgstr "Páncélfejléc: "
+msgstr "Páncélfejléc: "
 
 msgid "invalid clearsig header\n"
-msgstr "Érvénytelen aláírásfejléc!\n"
+msgstr "Érvénytelen aláírásfejléc!\n"
 
 #, fuzzy
 msgid "unknown armor header: "
-msgstr "Páncélfejléc: "
+msgstr "Páncélfejléc: "
 
 msgid "nested clear text signatures\n"
-msgstr "Egymásba ágyazott olvashatószöveg-aláírások!\n"
+msgstr "Egymásba ágyazott olvashatószöveg-aláírások!\n"
 
 #, fuzzy
 msgid "unexpected armor: "
-msgstr "Váratlan páncél:"
+msgstr "Váratlan páncél:"
 
 msgid "invalid dash escaped line: "
-msgstr "Érvénytelen kötõjeles sor: "
+msgstr "Érvénytelen kötőjeles sor: "
 
 #, fuzzy, c-format
 msgid "invalid radix64 character %02X skipped\n"
-msgstr "Kihagytam a %02x kódú érvénytelen radix64 karaktert.\n"
+msgstr "Kihagytam a %02x kódú érvénytelen radix64 karaktert.\n"
 
 msgid "premature eof (no CRC)\n"
-msgstr "Korai állományvég (nincs CRC).\n"
+msgstr "Korai állományvég (nincs CRC).\n"
 
 msgid "premature eof (in CRC)\n"
-msgstr "Korai állományvég (a CRC-ben).\n"
+msgstr "Korai állományvég (a CRC-ben).\n"
 
 msgid "malformed CRC\n"
-msgstr "Hibás formájú CRC.\n"
+msgstr "Hibás formájú CRC.\n"
 
 #, fuzzy, c-format
 msgid "CRC error; %06lX - %06lX\n"
@@ -1187,48 +1192,48 @@ msgstr "CRC hiba; %06lx - %06lx\n"
 
 #, fuzzy
 msgid "premature eof (in trailer)\n"
-msgstr "Korai állományvég (a lezárásban).\n"
+msgstr "Korai állományvég (a lezárásban).\n"
 
 msgid "error in trailer line\n"
-msgstr "Hiba a záró sorban!\n"
+msgstr "Hiba a záró sorban!\n"
 
 msgid "no valid OpenPGP data found.\n"
-msgstr "Nem találtam érvényes OpenPGP adatot.\n"
+msgstr "Nem találtam érvényes OpenPGP adatot.\n"
 
 #, c-format
 msgid "invalid armor: line longer than %d characters\n"
-msgstr "Érvénytelen páncél: %d karakternél hosszabb sor.\n"
+msgstr "Érvénytelen páncél: %d karakternél hosszabb sor.\n"
 
 msgid ""
 "quoted printable character in armor - probably a buggy MTA has been used\n"
 msgstr ""
-"quoted printable karakter a páncélban - valószínûleg egy bugos MTA bûne.\n"
+"quoted printable karakter a páncélban - valószínűleg egy bugos MTA bűne.\n"
 
 #, fuzzy, c-format
 #| msgid "not human readable"
 msgid "[ not human readable (%zu bytes: %s%s) ]"
-msgstr "nem olvasható forma"
+msgstr "nem olvasható forma"
 
 msgid ""
 "a notation name must have only printable characters or spaces, and end with "
 "an '='\n"
 msgstr ""
-"Egy jelölés neve csak nyomtatható karaktereket és szóközt tartalmazhat, és = "
-"jellel kell befejezõdjön.\n"
+"Egy jelölés neve csak nyomtatható karaktereket és szóközt tartalmazhat, és = "
+"jellel kell befejeződjön.\n"
 
 msgid "a user notation name must contain the '@' character\n"
-msgstr "Egy felhasználójelölésnek tartalmaznia kell a \"@\" karaktert!\n"
+msgstr "Egy felhasználójelölésnek tartalmaznia kell a \"@\" karaktert!\n"
 
 #, fuzzy
 msgid "a notation name must not contain more than one '@' character\n"
-msgstr "Egy felhasználójelölésnek tartalmaznia kell a \"@\" karaktert!\n"
+msgstr "Egy felhasználójelölésnek tartalmaznia kell a \"@\" karaktert!\n"
 
 msgid "a notation value must not use any control characters\n"
-msgstr "Egy jelölés értékében nem szerepelhet vezérlõkarakter!\n"
+msgstr "Egy jelölés értékében nem szerepelhet vezérlőkarakter!\n"
 
 #, fuzzy
 msgid "a notation name may not contain an '=' character\n"
-msgstr "Egy felhasználójelölésnek tartalmaznia kell a \"@\" karaktert!\n"
+msgstr "Egy felhasználójelölésnek tartalmaznia kell a \"@\" karaktert!\n"
 
 #, fuzzy
 #| msgid ""
@@ -1236,23 +1241,23 @@ msgstr "Egy felhaszn
 #| "with an '='\n"
 msgid "a notation name must have only printable characters or spaces\n"
 msgstr ""
-"Egy jelölés neve csak nyomtatható karaktereket és szóközt tartalmazhat, és = "
-"jellel kell befejezõdjön.\n"
+"Egy jelölés neve csak nyomtatható karaktereket és szóközt tartalmazhat, és = "
+"jellel kell befejeződjön.\n"
 
 msgid "WARNING: invalid notation data found\n"
-msgstr "FIGYELEM: Érvénytelen jelölõ adatot találtam.\n"
+msgstr "FIGYELEM: Érvénytelen jelölő adatot találtam.\n"
 
 #, c-format
 msgid "failed to proxy %s inquiry to client\n"
 msgstr ""
 
 msgid "Enter passphrase: "
-msgstr "Írja be a jelszót: "
+msgstr "Írja be a jelszót: "
 
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
 msgid "error getting version from '%s': %s\n"
-msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
+msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
 
 #, c-format
 msgid "server '%s' is older than us (%s < %s)"
@@ -1261,11 +1266,11 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "WARNING: %s overrides %s\n"
 msgid "WARNING: %s\n"
-msgstr "FIGYELEM: %s hatástalanítja %s-t!\n"
+msgstr "FIGYELEM: %s hatástalanítja %s-t!\n"
 
 #, fuzzy, c-format
 msgid "OpenPGP card not available: %s\n"
-msgstr "titkos kulcs nem áll rendelkezésre"
+msgstr "titkos kulcs nem áll rendelkezésre"
 
 #, c-format
 msgid "OpenPGP card no. %s detected\n"
@@ -1273,18 +1278,18 @@ msgstr ""
 
 #, fuzzy
 msgid "can't do this in batch mode\n"
-msgstr "Nem tudom ezt megcsinálni kötegelt módban!\n"
+msgstr "Nem tudom ezt megcsinálni kötegelt módban!\n"
 
 #, fuzzy
 msgid "This command is only available for version 2 cards\n"
-msgstr "Ez a parancs %s módban nem engedélyezett.\n"
+msgstr "Ez a parancs %s módban nem engedélyezett.\n"
 
 #, fuzzy
 msgid "Reset Code not or not anymore available\n"
-msgstr "Titkos kulcsrészek nem állnak rendelkezésre.\n"
+msgstr "Titkos kulcsrészek nem állnak rendelkezésre.\n"
 
 msgid "Your selection? "
-msgstr "Mit választ? "
+msgstr "Mit választ? "
 
 msgid "[not set]"
 msgstr ""
@@ -1329,7 +1334,7 @@ msgstr ""
 
 #, fuzzy
 msgid "URL to retrieve public key: "
-msgstr "Nincs hozzá tartozó nyilvános kulcs: %s\n"
+msgstr "Nincs hozzá tartozó nyilvános kulcs: %s\n"
 
 #, c-format
 msgid "Error: URL too long (limit is %d characters).\n"
@@ -1338,11 +1343,11 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error reading `%s': %s\n"
 msgid "error reading '%s': %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "error writing '%s': %s\n"
-msgstr "Hiba a \"%s\" kulcskarika írásakor: %s\n"
+msgstr "Hiba a \"%s\" kulcskarika írásakor: %s\n"
 
 msgid "Login data (account name): "
 msgstr ""
@@ -1360,22 +1365,22 @@ msgstr ""
 
 #, fuzzy
 msgid "Language preferences: "
-msgstr "preferenciák frissítése"
+msgstr "preferenciák frissítése"
 
 #, fuzzy
 msgid "Error: invalid length of preference string.\n"
-msgstr "Érvénytelen karakter a preferenciák között!\n"
+msgstr "Érvénytelen karakter a preferenciák között!\n"
 
 #, fuzzy
 msgid "Error: invalid characters in preference string.\n"
-msgstr "Érvénytelen karakter a preferenciák között!\n"
+msgstr "Érvénytelen karakter a preferenciák között!\n"
 
 msgid "Sex ((M)ale, (F)emale or space): "
 msgstr ""
 
 #, fuzzy
 msgid "Error: invalid response.\n"
-msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
+msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
 
 #, fuzzy
 msgid "CA fingerprint: "
@@ -1383,19 +1388,19 @@ msgstr "megmutatja az ujjlenyomatot"
 
 #, fuzzy
 msgid "Error: invalid formatted fingerprint.\n"
-msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
+msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
 
 #, fuzzy, c-format
 msgid "key operation not possible: %s\n"
-msgstr "Kulcsgenerálás sikertelen: %s\n"
+msgstr "Kulcsgenerálás sikertelen: %s\n"
 
 #, fuzzy
 msgid "not an OpenPGP card"
-msgstr "Nem találtam érvényes OpenPGP adatot.\n"
+msgstr "Nem találtam érvényes OpenPGP adatot.\n"
 
 #, fuzzy, c-format
 msgid "error getting current key info: %s\n"
-msgstr "Hiba a(z) \"%s\" titkoskulcs-karika írásakor: %s.\n"
+msgstr "Hiba a(z) \"%s\" titkoskulcs-karika írásakor: %s.\n"
 
 msgid "Replace existing key? (y/N) "
 msgstr ""
@@ -1408,19 +1413,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the Signature key? (%u) "
-msgstr "Milyen kulcsméretet szeretne? (1024) "
+msgstr "Milyen kulcsméretet szeretne? (1024) "
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the Encryption key? (%u) "
-msgstr "Milyen kulcsméretet szeretne? (1024) "
+msgstr "Milyen kulcsméretet szeretne? (1024) "
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the Authentication key? (%u) "
-msgstr "Milyen kulcsméretet szeretne? (1024) "
+msgstr "Milyen kulcsméretet szeretne? (1024) "
 
 #, c-format
 msgid "rounded up to %u bits\n"
-msgstr "Felkerekítve %u bitre.\n"
+msgstr "Felkerekítve %u bitre.\n"
 
 #, c-format
 msgid "%s keysizes must be in the range %u-%u\n"
@@ -1432,14 +1437,14 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error changing size of key %d to %u bits: %s\n"
-msgstr "Hiba %s-ra/-re küldéskor: %s\n"
+msgstr "Hiba %s-ra/-re küldéskor: %s\n"
 
 msgid "Make off-card backup of encryption key? (Y/n) "
 msgstr ""
 
 #, fuzzy
 msgid "Note: keys are already stored on the card!\n"
-msgstr "Kihagytam: titkos kulcs már jelen van.\n"
+msgstr "Kihagytam: titkos kulcs már jelen van.\n"
 
 msgid "Replace existing keys? (y/N) "
 msgstr ""
@@ -1453,59 +1458,59 @@ msgstr ""
 
 #, fuzzy
 msgid "Please select the type of key to generate:\n"
-msgstr "Kérem, adja meg, milyen kulcsot kíván:\n"
+msgstr "Kérem, adja meg, milyen kulcsot kíván:\n"
 
 #, fuzzy
 msgid "   (1) Signature key\n"
-msgstr "Az aláírás lejárt: %s.\n"
+msgstr "Az aláírás lejárt: %s.\n"
 
 #, fuzzy
 msgid "   (2) Encryption key\n"
-msgstr "   (%d) RSA (csak titkosítás)\n"
+msgstr "   (%d) RSA (csak titkosítás)\n"
 
 msgid "   (3) Authentication key\n"
 msgstr ""
 
 msgid "Invalid selection.\n"
-msgstr "Érvénytelen választás.\n"
+msgstr "Érvénytelen választás.\n"
 
 #, fuzzy
 msgid "Please select where to store the key:\n"
-msgstr "Kérem, válassza ki a visszavonás okát:\n"
+msgstr "Kérem, válassza ki a visszavonás okát:\n"
 
 #, fuzzy, c-format
 msgid "KEYTOCARD failed: %s\n"
-msgstr "Frissítés sikertelen: %s.\n"
+msgstr "Frissítés sikertelen: %s.\n"
 
 #, fuzzy
 #| msgid "This command is not allowed while in %s mode.\n"
 msgid "This command is not supported by this card\n"
-msgstr "Ez a parancs %s módban nem engedélyezett.\n"
+msgstr "Ez a parancs %s módban nem engedélyezett.\n"
 
 #, fuzzy
 msgid "Note: This command destroys all keys stored on the card!\n"
-msgstr "Kihagytam: titkos kulcs már jelen van.\n"
+msgstr "Kihagytam: titkos kulcs már jelen van.\n"
 
 #, fuzzy
 msgid "Continue? (y/N) "
-msgstr "Valóban aláírja? "
+msgstr "Valóban aláírja? "
 
 msgid "Really do a factory reset? (enter \"yes\") "
 msgstr ""
 
 msgid "quit this menu"
-msgstr "kilépés ebbõl a menübõl"
+msgstr "kilépés ebből a menüből"
 
 #, fuzzy
 msgid "show admin commands"
-msgstr "Egymásnak ellentmondó parancsok!\n"
+msgstr "Egymásnak ellentmondó parancsok!\n"
 
 msgid "show this help"
-msgstr "megmutatja ezt a súgót"
+msgstr "megmutatja ezt a súgót"
 
 #, fuzzy
 msgid "list all available data"
-msgstr "Kulcs található: "
+msgstr "Kulcs található: "
 
 msgid "change card holder's name"
 msgstr ""
@@ -1518,11 +1523,11 @@ msgstr ""
 
 #, fuzzy
 msgid "change the login name"
-msgstr "lejárat megváltoztatása"
+msgstr "lejárat megváltoztatása"
 
 #, fuzzy
 msgid "change the language preferences"
-msgstr "kulcstulajdonos megbízhatóságának beállítása"
+msgstr "kulcstulajdonos megbízhatóságának beállítása"
 
 msgid "change card holder's sex"
 msgstr ""
@@ -1536,7 +1541,7 @@ msgstr ""
 
 #, fuzzy
 msgid "generate new keys"
-msgstr "új kulcspár létrehozása"
+msgstr "új kulcspár létrehozása"
 
 msgid "menu to change or unblock the PIN"
 msgstr ""
@@ -1555,21 +1560,21 @@ msgstr ""
 
 #, fuzzy
 msgid "Admin-only command\n"
-msgstr "Egymásnak ellentmondó parancsok!\n"
+msgstr "Egymásnak ellentmondó parancsok!\n"
 
 #, fuzzy
 msgid "Admin commands are allowed\n"
-msgstr "Egymásnak ellentmondó parancsok!\n"
+msgstr "Egymásnak ellentmondó parancsok!\n"
 
 #, fuzzy
 msgid "Admin commands are not allowed\n"
-msgstr "Írom a titkos kulcsot a %s állományba.\n"
+msgstr "Írom a titkos kulcsot a %s állományba.\n"
 
 msgid "Invalid command  (try \"help\")\n"
-msgstr "Érvénytelen parancs! (Próbálja a súgót: \"help\".)\n"
+msgstr "Érvénytelen parancs! (Próbálja a súgót: \"help\".)\n"
 
 msgid "--output doesn't work for this command\n"
-msgstr "Az --output opció nem mûködik ehhez a parancshoz.\n"
+msgstr "Az --output opció nem működik ehhez a parancshoz.\n"
 
 #, fuzzy, c-format
 #| msgid "can't open `%s'\n"
@@ -1578,34 +1583,34 @@ msgstr "Nem tudom megnyitni %s-t!\n"
 
 #, fuzzy, c-format
 msgid "key \"%s\" not found: %s\n"
-msgstr "\"%s\" kulcs nem található: %s\n"
+msgstr "\"%s\" kulcs nem található: %s\n"
 
 #, c-format
 msgid "error reading keyblock: %s\n"
-msgstr "Hiba a kulcsblokk olvasásakor: %s\n"
+msgstr "Hiba a kulcsblokk olvasásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "key \"%s\" not found\n"
-msgstr "\"%s\" kulcs nem található: %s\n"
+msgstr "\"%s\" kulcs nem található: %s\n"
 
 msgid "(unless you specify the key by fingerprint)\n"
-msgstr "(Kivéve, ha megad egy kulcsot az ujjlenyomatával.)\n"
+msgstr "(Kivéve, ha megad egy kulcsot az ujjlenyomatával.)\n"
 
 #, fuzzy
 msgid "can't do this in batch mode without \"--yes\"\n"
-msgstr "Nem tudom ezt megcsinálni kötegelt módban \"--yes\" nélkül.\n"
+msgstr "Nem tudom ezt megcsinálni kötegelt módban \"--yes\" nélkül.\n"
 
 #, fuzzy
 msgid "Delete this key from the keyring? (y/N) "
-msgstr "Töröljem ezt a kulcsot a kulcskarikáról? "
+msgstr "Töröljem ezt a kulcsot a kulcskarikáról? "
 
 #, fuzzy
 msgid "This is a secret key! - really delete? (y/N) "
-msgstr "Ez egy titkos kulcs! Valóban töröljem? "
+msgstr "Ez egy titkos kulcs! Valóban töröljem? "
 
 #, fuzzy, c-format
 msgid "deleting secret %s failed: %s\n"
-msgstr "A kulcsblokk törlése sikertelen: %s.\n"
+msgstr "A kulcsblokk törlése sikertelen: %s.\n"
 
 msgid "key"
 msgstr "key"
@@ -1613,150 +1618,150 @@ msgstr "key"
 #, fuzzy
 #| msgid "Pubkey: "
 msgid "subkey"
-msgstr "Nyilvános kulcsú (pubkey): "
+msgstr "Nyilvános kulcsú (pubkey): "
 
 #, c-format
 msgid "deleting keyblock failed: %s\n"
-msgstr "A kulcsblokk törlése sikertelen: %s.\n"
+msgstr "A kulcsblokk törlése sikertelen: %s.\n"
 
 msgid "ownertrust information cleared\n"
-msgstr "Kulcstulajdonos megbízhatósági adatait töröltem.\n"
+msgstr "Kulcstulajdonos megbízhatósági adatait töröltem.\n"
 
 #, c-format
 msgid "there is a secret key for public key \"%s\"!\n"
-msgstr "Van egy titkos kulcs a \"%s\" nyilvános kulcshoz!\n"
+msgstr "Van egy titkos kulcs a \"%s\" nyilvános kulcshoz!\n"
 
 msgid "use option \"--delete-secret-keys\" to delete it first.\n"
-msgstr "Elõször azt törölje a \"--delete-secret-keys\" opcióval!\n"
+msgstr "Először azt törölje a \"--delete-secret-keys\" opcióval!\n"
 
 #, c-format
 msgid "error creating passphrase: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 msgid "can't use a symmetric ESK packet due to the S2K mode\n"
-msgstr "Nem tudok szimmetrikus ESK csomagot használni a S2K mód miatt!\n"
+msgstr "Nem tudok szimmetrikus ESK csomagot használni a S2K mód miatt!\n"
 
 #, c-format
 msgid "using cipher %s\n"
-msgstr "%s rejtjelezést használok.\n"
+msgstr "%s rejtjelezést használok.\n"
 
 #, fuzzy, c-format
 #| msgid "`%s' already compressed\n"
 msgid "'%s' already compressed\n"
-msgstr "\"%s\" már tömörített.\n"
+msgstr "\"%s\" már tömörített.\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: `%s' is an empty file\n"
 msgid "WARNING: '%s' is an empty file\n"
-msgstr "FIGYELEM: A(z) \"%s\" állomány üres.\n"
+msgstr "FIGYELEM: A(z) \"%s\" állomány üres.\n"
 
 #, fuzzy, c-format
 #| msgid "reading from `%s'\n"
 msgid "reading from '%s'\n"
-msgstr "Olvasok a \"%s\" állományból.\n"
+msgstr "Olvasok a \"%s\" állományból.\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: forcing symmetric cipher %s (%d) violates recipient preferences\n"
-msgstr "A %s (%d) rejtjelezõ használata sérti a címzett preferenciáit!\n"
+msgstr "A %s (%d) rejtjelező használata sérti a címzett preferenciáit!\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: forcing compression algorithm %s (%d) violates recipient "
 "preferences\n"
-msgstr "A %s (%d) tömörítés használata sérti a címzett preferenciáit!\n"
+msgstr "A %s (%d) tömörítés használata sérti a címzett preferenciáit!\n"
 
 #, c-format
 msgid "forcing symmetric cipher %s (%d) violates recipient preferences\n"
-msgstr "A %s (%d) rejtjelezõ használata sérti a címzett preferenciáit!\n"
+msgstr "A %s (%d) rejtjelező használata sérti a címzett preferenciáit!\n"
 
 #, c-format
 msgid "%s/%s encrypted for: \"%s\"\n"
-msgstr "%s/%s titkosítva \"%s\" számára\n"
+msgstr "%s/%s titkosítva \"%s\" számára\n"
 
 #, c-format
 msgid "you may not use %s while in %s mode\n"
-msgstr "Lehet, hogy nem használhatja %s-t %s módban!\n"
+msgstr "Lehet, hogy nem használhatja %s-t %s módban!\n"
 
 #, c-format
 msgid "%s encrypted data\n"
-msgstr "%s titkosított adat.\n"
+msgstr "%s titkosított adat.\n"
 
 #, c-format
 msgid "encrypted with unknown algorithm %d\n"
-msgstr "Ismeretlen algoritmussal (%d) titkosítva.\n"
+msgstr "Ismeretlen algoritmussal (%d) titkosítva.\n"
 
 msgid ""
 "WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
 msgstr ""
-"FIGYELEM: Az üzenet szimmetrikus titkosítását gyenge kulccsal végezték.\n"
+"FIGYELEM: Az üzenet szimmetrikus titkosítását gyenge kulccsal végezték.\n"
 
 msgid "problem handling encrypted packet\n"
-msgstr "Probléma a titkosított csomag kezelésekor!\n"
+msgstr "Probléma a titkosított csomag kezelésekor!\n"
 
 msgid "no remote program execution supported\n"
-msgstr "Külsõ program meghívása nem támogatott.\n"
+msgstr "Külső program meghívása nem támogatott.\n"
 
 msgid ""
 "external program calls are disabled due to unsafe options file permissions\n"
 msgstr ""
-"A külsõ programok hívása tiltott, mert az \"options\" állomány engedélyei\n"
-"nem biztonságosak.\n"
+"A külső programok hívása tiltott, mert az \"options\" állomány engedélyei\n"
+"nem biztonságosak.\n"
 
 #, fuzzy
 msgid "this platform requires temporary files when calling external programs\n"
 msgstr ""
-"Ez a platform átmeneti állományokat igényel külsõ programok hívásához.\n"
+"Ez a platform átmeneti állományokat igényel külső programok hívásához.\n"
 
 #, fuzzy, c-format
 msgid "unable to execute program '%s': %s\n"
-msgstr "Nem tudom végrehajtani a következõ \"%s\"-t: \"%s\": %s.\n"
+msgstr "Nem tudom végrehajtani a következő \"%s\"-t: \"%s\": %s.\n"
 
 #, fuzzy, c-format
 msgid "unable to execute shell '%s': %s\n"
-msgstr "Nem tudom végrehajtani a következõ \"%s\"-t: \"%s\": %s.\n"
+msgstr "Nem tudom végrehajtani a következő \"%s\"-t: \"%s\": %s.\n"
 
 #, c-format
 msgid "system error while calling external program: %s\n"
-msgstr "Rendszerhiba külsõ program hívásakor: %s.\n"
+msgstr "Rendszerhiba külső program hívásakor: %s.\n"
 
 msgid "unnatural exit of external program\n"
-msgstr "A külsõ program nem természetes módon ért véget.\n"
+msgstr "A külső program nem természetes módon ért véget.\n"
 
 msgid "unable to execute external program\n"
-msgstr "Nem tudom a végrehajtani a külsõ programot.\n"
+msgstr "Nem tudom a végrehajtani a külső programot.\n"
 
 #, c-format
 msgid "unable to read external program response: %s\n"
-msgstr "Nem tudom beolvasni a külsõ program válaszát: %s\n"
+msgstr "Nem tudom beolvasni a külső program válaszát: %s\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unable to remove tempfile (%s) `%s': %s\n"
 msgid "WARNING: unable to remove tempfile (%s) '%s': %s\n"
 msgstr ""
-"FIGYELEM: Nem tudom törölni az (\"%s\") átmeneti állományt: \"%s\": %s.\n"
+"FIGYELEM: Nem tudom törölni az (\"%s\") átmeneti állományt: \"%s\": %s.\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unable to remove temp directory `%s': %s\n"
 msgid "WARNING: unable to remove temp directory '%s': %s\n"
-msgstr "FIGYELEM: nem tudom törölni a \"%s\" átmeneti könyvtárat: %s\n"
+msgstr "FIGYELEM: nem tudom törölni a \"%s\" átmeneti könyvtárat: %s\n"
 
 #, fuzzy
 msgid "export signatures that are marked as local-only"
 msgstr ""
 "\n"
-"Az aláírást \"nem visszavonhatónak\" jelöljük.\n"
+"Az aláírást \"nem visszavonhatónak\" jelöljük.\n"
 
 msgid "export attribute user IDs (generally photo IDs)"
 msgstr ""
 
 #, fuzzy
 msgid "export revocation keys marked as \"sensitive\""
-msgstr "Nem találtam visszavonó kulcsot a következõhöz: \"%s\".\n"
+msgstr "Nem találtam visszavonó kulcsot a következőhöz: \"%s\".\n"
 
 #, fuzzy
 msgid "remove unusable parts from key during export"
-msgstr "használhatatlan titkos kulcs"
+msgstr "használhatatlan titkos kulcs"
 
 msgid "remove as much as possible from key during export"
 msgstr ""
@@ -1769,27 +1774,27 @@ msgstr "%s: kihagyva: %s\n"
 #, fuzzy, c-format
 #| msgid "writing to `%s'\n"
 msgid "writing to '%s'\n"
-msgstr "Írok a \"%s\" állományba.\n"
+msgstr "Írok a \"%s\" állományba.\n"
 
 #, fuzzy, c-format
 msgid "key %s: key material on-card - skipped\n"
-msgstr "%08lX kulcs: Alkulcsaláírás rossz helyen - kihagytam.\n"
+msgstr "%08lX kulcs: Alkulcsaláírás rossz helyen - kihagytam.\n"
 
 #, fuzzy
 msgid "exporting secret keys not allowed\n"
-msgstr "Írom a titkos kulcsot a %s állományba.\n"
+msgstr "Írom a titkos kulcsot a %s állományba.\n"
 
 #, fuzzy, c-format
 msgid "key %s: PGP 2.x style key - skipped\n"
-msgstr "%08lX kulcs: PGP 2.x stílusú kulcs - kihagytam.\n"
+msgstr "%08lX kulcs: PGP 2.x stílusú kulcs - kihagytam.\n"
 
 msgid "WARNING: nothing exported\n"
-msgstr "FIGYELEM: Semmit sem exportáltam.\n"
+msgstr "FIGYELEM: Semmit sem exportáltam.\n"
 
 #, fuzzy, c-format
 #| msgid "error creating `%s': %s\n"
 msgid "error creating '%s': %s\n"
-msgstr "Hiba \"%s\" létrehozásakor: %s\n"
+msgstr "Hiba \"%s\" létrehozásakor: %s\n"
 
 #, fuzzy
 msgid "[User ID not found]"
@@ -1797,7 +1802,7 @@ msgstr "[ismeretlen kulcs]"
 
 #, fuzzy, c-format
 msgid "(check argument of option '%s')\n"
-msgstr "Érvénytelen import opciók!\n"
+msgstr "Érvénytelen import opciók!\n"
 
 #, c-format
 msgid "Warning: '%s' should be a long key ID or a fingerprint\n"
@@ -1805,20 +1810,20 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error looking up: %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
 msgid "Warning: %s appears in the keyring %d times\n"
-msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
+msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "automatically retrieved '%s' via %s\n"
-msgstr "Hiba \"%s\" létrehozásakor: %s\n"
+msgstr "Hiba \"%s\" létrehozásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "error retrieving '%s' via %s: %s\n"
-msgstr "Hiba \"%s\" létrehozásakor: %s\n"
+msgstr "Hiba \"%s\" létrehozásakor: %s\n"
 
 #, fuzzy
 msgid "No fingerprint"
@@ -1826,17 +1831,17 @@ msgstr "megmutatja az ujjlenyomatot"
 
 #, fuzzy, c-format
 msgid "secret key \"%s\" not found: %s\n"
-msgstr "\"%s\" titkos kulcs nem található: %s\n"
+msgstr "\"%s\" titkos kulcs nem található: %s\n"
 
 #, fuzzy, c-format
 #| msgid "|NAME|use NAME as default secret key"
 msgid "Warning: not using '%s' as default key: %s\n"
-msgstr "|NÉV|NÉV használata alapértelmezett titkos kulcsként"
+msgstr "|NÉV|NÉV használata alapértelmezett titkos kulcsként"
 
 #, fuzzy, c-format
 #| msgid "|NAME|use NAME as default secret key"
 msgid "using \"%s\" as default secret key for signing\n"
-msgstr "|NÉV|NÉV használata alapértelmezett titkos kulcsként"
+msgstr "|NÉV|NÉV használata alapértelmezett titkos kulcsként"
 
 #, c-format
 msgid "all values passed to '%s' ignored\n"
@@ -1845,122 +1850,122 @@ msgstr ""
 #, fuzzy, c-format
 msgid "Invalid key %s made valid by --allow-non-selfsigned-uid\n"
 msgstr ""
-"%08lX érvénytelen kulcsot érvényesítettük az\n"
-"--allow-non-selfsigned-uid opcióval.\n"
+"%08lX érvénytelen kulcsot érvényesítettük az\n"
+"--allow-non-selfsigned-uid opcióval.\n"
 
 #, fuzzy, c-format
 msgid "using subkey %s instead of primary key %s\n"
-msgstr "A %08lX másodlagos kulcsot használjuk a %08lX elsõdleges helyett.\n"
+msgstr "A %08lX másodlagos kulcsot használjuk a %08lX elsődleges helyett.\n"
 
 #, fuzzy
 msgid "make a signature"
-msgstr "különálló aláírás készítése"
+msgstr "különálló aláírás készítése"
 
 #, fuzzy
 msgid "make a clear text signature"
-msgstr "|[fájl]|olvasható szöveg aláírása"
+msgstr "|[fájl]|olvasható szöveg aláírása"
 
 msgid "make a detached signature"
-msgstr "különálló aláírás készítése"
+msgstr "különálló aláírás készítése"
 
 msgid "encrypt data"
-msgstr "adat titkosítása"
+msgstr "adat titkosítása"
 
 msgid "encryption only with symmetric cipher"
-msgstr "titkosítás csak szimmetrikus rejtjelezõvel"
+msgstr "titkosítás csak szimmetrikus rejtjelezővel"
 
 msgid "decrypt data (default)"
-msgstr "adat visszafejtése (alapértelmezés)"
+msgstr "adat visszafejtése (alapértelmezés)"
 
 msgid "verify a signature"
-msgstr "aláírás ellenõrzése"
+msgstr "aláírás ellenőrzése"
 
 msgid "list keys"
-msgstr "kulcsok listázása"
+msgstr "kulcsok listázása"
 
 msgid "list keys and signatures"
-msgstr "kulcsok és aláírások listázása"
+msgstr "kulcsok és aláírások listázása"
 
 #, fuzzy
 msgid "list and check key signatures"
-msgstr "kulcsaláírások ellenõrzése"
+msgstr "kulcsaláírások ellenőrzése"
 
 msgid "list keys and fingerprints"
-msgstr "kulcsok és ujjlenyomatok listázása"
+msgstr "kulcsok és ujjlenyomatok listázása"
 
 msgid "list secret keys"
-msgstr "titkos kulcsok listázása"
+msgstr "titkos kulcsok listázása"
 
 msgid "generate a new key pair"
-msgstr "új kulcspár létrehozása"
+msgstr "új kulcspár létrehozása"
 
 #, fuzzy
 #| msgid "generate a new key pair"
 msgid "quickly generate a new key pair"
-msgstr "új kulcspár létrehozása"
+msgstr "új kulcspár létrehozása"
 
 #, fuzzy
 #| msgid "generate a new key pair"
 msgid "quickly add a new user-id"
-msgstr "új kulcspár létrehozása"
+msgstr "új kulcspár létrehozása"
 
 #, fuzzy
 #| msgid "generate a new key pair"
 msgid "quickly revoke a user-id"
-msgstr "új kulcspár létrehozása"
+msgstr "új kulcspár létrehozása"
 
 msgid "full featured key pair generation"
 msgstr ""
 
 msgid "generate a revocation certificate"
-msgstr "visszavonási igazolás készítése"
+msgstr "visszavonási igazolás készítése"
 
 msgid "remove keys from the public keyring"
-msgstr "kulcsok eltávolítása a nyilvánoskulcs-karikáról"
+msgstr "kulcsok eltávolítása a nyilvánoskulcs-karikáról"
 
 msgid "remove keys from the secret keyring"
-msgstr "kulcsok eltávolítása a titkoskulcs-karikáról"
+msgstr "kulcsok eltávolítása a titkoskulcs-karikáról"
 
 #, fuzzy
 #| msgid "sign a key"
 msgid "quickly sign a key"
-msgstr "kulcs aláírása"
+msgstr "kulcs aláírása"
 
 #, fuzzy
 #| msgid "sign a key locally"
 msgid "quickly sign a key locally"
-msgstr "kulcs aláírása helyileg"
+msgstr "kulcs aláírása helyileg"
 
 msgid "sign a key"
-msgstr "kulcs aláírása"
+msgstr "kulcs aláírása"
 
 msgid "sign a key locally"
-msgstr "kulcs aláírása helyileg"
+msgstr "kulcs aláírása helyileg"
 
 msgid "sign or edit a key"
-msgstr "kulcs aláírása vagy szerkesztése"
+msgstr "kulcs aláírása vagy szerkesztése"
 
 #, fuzzy
 msgid "change a passphrase"
-msgstr "jelszóváltoztatás"
+msgstr "jelszóváltoztatás"
 
 msgid "export keys"
-msgstr "kulcsok exportálása"
+msgstr "kulcsok exportálása"
 
 msgid "export keys to a keyserver"
-msgstr "kulcsok exportálása kulcsszerverre"
+msgstr "kulcsok exportálása kulcsszerverre"
 
 msgid "import keys from a keyserver"
-msgstr "kulcsok importálása kulcsszerverrõl"
+msgstr "kulcsok importálása kulcsszerverről"
 
 msgid "search for keys on a keyserver"
-msgstr "kulcsok keresése kulcsszerveren"
+msgstr "kulcsok keresése kulcsszerveren"
 
 msgid "update all keys from a keyserver"
-msgstr "minden kulcs frissítése kulcsszerverrõl"
+msgstr "minden kulcs frissítése kulcsszerverről"
 
 msgid "import/merge keys"
-msgstr "kulcsok importálása/összefûzése"
+msgstr "kulcsok importálása/összefűzése"
 
 msgid "print the card status"
 msgstr ""
@@ -1972,11 +1977,11 @@ msgid "change a card's PIN"
 msgstr ""
 
 msgid "update the trust database"
-msgstr "bizalmi adatbázis frissítése"
+msgstr "bizalmi adatbázis frissítése"
 
 #, fuzzy
 msgid "print message digests"
-msgstr "|algo [fájlok]|üzenet kivonatának kiírása"
+msgstr "|algo [fájlok]|üzenet kivonatának kiírása"
 
 msgid "run in server mode"
 msgstr ""
@@ -1985,32 +1990,32 @@ msgid "|VALUE|set the TOFU policy for a key"
 msgstr ""
 
 msgid "create ascii armored output"
-msgstr "ascii páncélozott kimenet létrehozása"
+msgstr "ascii páncélozott kimenet létrehozása"
 
 #, fuzzy
 msgid "|USER-ID|encrypt for USER-ID"
-msgstr "|NÉV|titkosítás NÉV részére"
+msgstr "|NÉV|titkosítás NÉV részére"
 
 #, fuzzy
 msgid "|USER-ID|use USER-ID to sign or decrypt"
-msgstr "felh. azonosító aláíráshoz és visszafejtéshez"
+msgstr "felh. azonosító aláíráshoz és visszafejtéshez"
 
 #, fuzzy
 msgid "|N|set compress level to N (0 disables)"
-msgstr "|N|tömörítési szint beállítása N-re (0: tiltás)"
+msgstr "|N|tömörítési szint beállítása N-re (0: tiltás)"
 
 msgid "use canonical text mode"
-msgstr "kanonikus szöveges mód használata"
+msgstr "kanonikus szöveges mód használata"
 
 #, fuzzy
 msgid "|FILE|write output to FILE"
-msgstr "|fájl|bõvítõ modul betöltése"
+msgstr "|fájl|bővítő modul betöltése"
 
 msgid "do not make any changes"
-msgstr "ne csináljon semmi változtatást"
+msgstr "ne csináljon semmi változtatást"
 
 msgid "prompt before overwriting"
-msgstr "felülírás elõtt rákérdezés"
+msgstr "felülírás előtt rákérdezés"
 
 msgid "use strict OpenPGP behavior"
 msgstr ""
@@ -2020,7 +2025,7 @@ msgid ""
 "(See the man page for a complete listing of all commands and options)\n"
 msgstr ""
 "@\n"
-"(A parancsok és opciók teljes listáját a man oldalon tekintheti meg.)\n"
+"(A parancsok és opciók teljes listáját a man oldalon tekintheti meg.)\n"
 
 msgid ""
 "@\n"
@@ -2033,18 +2038,18 @@ msgid ""
 " --fingerprint [names]      show fingerprints\n"
 msgstr ""
 "@\n"
-"Példák:\n"
+"Példák:\n"
 "\n"
-" -se -r Bob [fájl]          titkosítás és aláírás Bob részére\n"
-" --clearsign [fájl]         olvasható szöveg aláírása\n"
-" --detach-sign [fájl]       különálló aláírás készítése\n"
-" --list-keys [nevek]        kulcsok kiíratása\n"
-" --fingerprint [nevek]      ujjlenyomatok kiíratása\n"
+" -se -r Bob [fájl]          titkosítás és aláírás Bob részére\n"
+" --clearsign [fájl]         olvasható szöveg aláírása\n"
+" --detach-sign [fájl]       különálló aláírás készítése\n"
+" --list-keys [nevek]        kulcsok kiíratása\n"
+" --fingerprint [nevek]      ujjlenyomatok kiíratása\n"
 
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: @GPG@ [options] [files] (-h for help)"
-msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
+msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
 
 #, fuzzy
 #| msgid ""
@@ -2056,107 +2061,107 @@ msgid ""
 "Sign, check, encrypt or decrypt\n"
 "Default operation depends on the input data\n"
 msgstr ""
-"Szintaxis: gpg [opciók] [fájlok]\n"
-"Aláírás, ellenõrzés, titkosítás vagy visszafejtés.\n"
-"Az alapértelmezett mûvelet a bemeneti adattól függ.\n"
+"Szintaxis: gpg [opciók] [fájlok]\n"
+"Aláírás, ellenőrzés, titkosítás vagy visszafejtés.\n"
+"Az alapértelmezett művelet a bemeneti adattól függ.\n"
 
 msgid ""
 "\n"
 "Supported algorithms:\n"
 msgstr ""
 "\n"
-"Támogatott algoritmusok:\n"
+"Támogatott algoritmusok:\n"
 
 msgid "Pubkey: "
-msgstr "Nyilvános kulcsú (pubkey): "
+msgstr "Nyilvános kulcsú (pubkey): "
 
 msgid "Cipher: "
-msgstr "Rejtjelezõ (cipher): "
+msgstr "Rejtjelező (cipher): "
 
 msgid "Hash: "
-msgstr "Kivonatoló (hash): "
+msgstr "Kivonatoló (hash): "
 
 msgid "Compression: "
-msgstr "Tömörítõ (compression): "
+msgstr "Tömörítő (compression): "
 
 #, fuzzy, c-format
 msgid "usage: %s [options] %s\n"
-msgstr "Használat: gpg [opciók] "
+msgstr "Használat: gpg [opciók] "
 
 msgid "conflicting commands\n"
-msgstr "Egymásnak ellentmondó parancsok!\n"
+msgstr "Egymásnak ellentmondó parancsok!\n"
 
 #, fuzzy, c-format
 msgid "no = sign found in group definition '%s'\n"
-msgstr "Nem találtam = jelet a \"%s\" csoportdefinícióban!\n"
+msgstr "Nem találtam = jelet a \"%s\" csoportdefinícióban!\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe ownership on homedir '%s'\n"
-msgstr "FIGYELEM: Nem biztonságos tulajdonos: %s \"%s\"\n"
+msgstr "FIGYELEM: Nem biztonságos tulajdonos: %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe ownership on configuration file '%s'\n"
-msgstr "FIGYELEM: Nem biztonságos tulajdonos: %s \"%s\"\n"
+msgstr "FIGYELEM: Nem biztonságos tulajdonos: %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe ownership on extension '%s'\n"
-msgstr "FIGYELEM: Nem biztonságos tulajdonos: %s \"%s\"\n"
+msgstr "FIGYELEM: Nem biztonságos tulajdonos: %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe permissions on homedir '%s'\n"
-msgstr "FIGYELEM: nem biztonságos engedélyek: %s \"%s\"\n"
+msgstr "FIGYELEM: nem biztonságos engedélyek: %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe permissions on configuration file '%s'\n"
-msgstr "FIGYELEM: nem biztonságos engedélyek: %s \"%s\"\n"
+msgstr "FIGYELEM: nem biztonságos engedélyek: %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe permissions on extension '%s'\n"
-msgstr "FIGYELEM: nem biztonságos engedélyek: %s \"%s\"\n"
+msgstr "FIGYELEM: nem biztonságos engedélyek: %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe enclosing directory ownership on homedir '%s'\n"
-msgstr "FIGYELEM: nem biztonságos könyvtártulajdonos: %s \"%s\"\n"
+msgstr "FIGYELEM: nem biztonságos könyvtártulajdonos: %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: unsafe enclosing directory ownership on configuration file '%s'\n"
-msgstr "FIGYELEM: nem biztonságos könyvtártulajdonos: %s \"%s\"\n"
+msgstr "FIGYELEM: nem biztonságos könyvtártulajdonos: %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe enclosing directory ownership on extension '%s'\n"
-msgstr "FIGYELEM: nem biztonságos könyvtártulajdonos: %s \"%s\"\n"
+msgstr "FIGYELEM: nem biztonságos könyvtártulajdonos: %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe enclosing directory permissions on homedir '%s'\n"
-msgstr "FIGYELEM: nem biztonságos könyvtárengedélyek: %s \"%s\"\n"
+msgstr "FIGYELEM: nem biztonságos könyvtárengedélyek: %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: unsafe enclosing directory permissions on configuration file '%s'\n"
-msgstr "FIGYELEM: nem biztonságos könyvtárengedélyek: %s \"%s\"\n"
+msgstr "FIGYELEM: nem biztonságos könyvtárengedélyek: %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe enclosing directory permissions on extension '%s'\n"
-msgstr "FIGYELEM: nem biztonságos könyvtárengedélyek: %s \"%s\"\n"
+msgstr "FIGYELEM: nem biztonságos könyvtárengedélyek: %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "unknown configuration item '%s'\n"
-msgstr "\"%s\": ismeretlen konfigurációs elem.\n"
+msgstr "\"%s\": ismeretlen konfigurációs elem.\n"
 
 msgid "display photo IDs during key listings"
 msgstr ""
 
 #, fuzzy
 msgid "show key usage information during key listings"
-msgstr "Nincs megfelelõ aláírás a titkoskulcs-karikán.\n"
+msgstr "Nincs megfelelő aláírás a titkoskulcs-karikán.\n"
 
 msgid "show policy URLs during signature listings"
 msgstr ""
 
 #, fuzzy
 msgid "show all notations during signature listings"
-msgstr "Nincs megfelelõ aláírás a titkoskulcs-karikán.\n"
+msgstr "Nincs megfelelő aláírás a titkoskulcs-karikán.\n"
 
 msgid "show IETF standard notations during signature listings"
 msgstr ""
@@ -2166,7 +2171,7 @@ msgstr ""
 
 #, fuzzy
 msgid "show preferred keyserver URLs during signature listings"
-msgstr "A megadott aláírási eljárásmód URL-je érvénytelen!\n"
+msgstr "A megadott aláírási eljárásmód URL-je érvénytelen!\n"
 
 msgid "show user ID validity during key listings"
 msgstr ""
@@ -2179,86 +2184,90 @@ msgstr ""
 
 #, fuzzy
 msgid "show the keyring name in key listings"
-msgstr "mutatja a kilistázott kulcs kulcskarikáját is"
+msgstr "mutatja a kilistázott kulcs kulcskarikáját is"
 
 #, fuzzy
 msgid "show expiration dates during signature listings"
-msgstr "Nincs megfelelõ aláírás a titkoskulcs-karikán.\n"
+msgstr "Nincs megfelelő aláírás a titkoskulcs-karikán.\n"
 
-#, fuzzy
-msgid "available TOFU policies:\n"
-msgstr "kulcs tiltása"
+#, fuzzy, c-format
+msgid "valid values for option '%s':\n"
+msgstr "Érvénytelen import opciók!\n"
 
 #, fuzzy, c-format
 msgid "unknown TOFU policy '%s'\n"
-msgstr "Ismeretlen alapértelmezett címzett: \"%s\"\n"
+msgstr "Ismeretlen alapértelmezett címzett: \"%s\"\n"
 
 msgid "(use \"help\" to list choices)\n"
 msgstr ""
 
 #, fuzzy, c-format
+msgid "invalid value for option '%s'\n"
+msgstr "Érvénytelen import opciók!\n"
+
+#, fuzzy, c-format
 #| msgid "NOTE: old default options file `%s' ignored\n"
 msgid "Note: old default options file '%s' ignored\n"
-msgstr "MEGJEGYZÉS: Figyelmen kívül hagytam a régi opciókat (%s).\n"
+msgstr "MEGJEGYZÉS: Figyelmen kívül hagytam a régi opciókat (%s).\n"
 
 #, fuzzy, c-format
 #| msgid "NOTE: %s is not for normal use!\n"
 msgid "Note: %s is not for normal use!\n"
-msgstr "MEGJEGYZÉS: %s nem normál használatra van!\n"
+msgstr "MEGJEGYZÉS: %s nem normál használatra van!\n"
 
 #, fuzzy, c-format
 msgid "'%s' is not a valid signature expiration\n"
-msgstr "%s nem érvényes karakterkiosztás!\n"
+msgstr "%s nem érvényes karakterkiosztás!\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" is not a proper mail address\n"
-msgstr "Ez nem érvényes e-mail cím.\n"
+msgstr "Ez nem érvényes e-mail cím.\n"
 
 #, fuzzy, c-format
 msgid "invalid pinentry mode '%s'\n"
-msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
+msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
 
 #, fuzzy, c-format
 msgid "'%s' is not a valid character set\n"
-msgstr "%s nem érvényes karakterkiosztás!\n"
+msgstr "%s nem érvényes karakterkiosztás!\n"
 
 #, fuzzy
 msgid "could not parse keyserver URL\n"
-msgstr "Értelmezhetetlen a kulcsszerver URI-ja!\n"
+msgstr "Értelmezhetetlen a kulcsszerver URI-ja!\n"
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid keyserver options\n"
-msgstr "%s:%d: Érvénytelen export opciók!\n"
+msgstr "%s:%d: Érvénytelen export opciók!\n"
 
 #, fuzzy
 msgid "invalid keyserver options\n"
-msgstr "Érvénytelen export opciók!\n"
+msgstr "Érvénytelen export opciók!\n"
 
 #, c-format
 msgid "%s:%d: invalid import options\n"
-msgstr "%s:%d: Érvénytelen import opciók!\n"
+msgstr "%s:%d: Érvénytelen import opciók!\n"
 
 msgid "invalid import options\n"
-msgstr "Érvénytelen import opciók!\n"
+msgstr "Érvénytelen import opciók!\n"
 
 #, fuzzy, c-format
 msgid "invalid filter option: %s\n"
-msgstr "Érvénytelen import opciók!\n"
+msgstr "Érvénytelen import opciók!\n"
 
 #, c-format
 msgid "%s:%d: invalid export options\n"
-msgstr "%s:%d: Érvénytelen export opciók!\n"
+msgstr "%s:%d: Érvénytelen export opciók!\n"
 
 msgid "invalid export options\n"
-msgstr "Érvénytelen export opciók!\n"
+msgstr "Érvénytelen export opciók!\n"
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid list options\n"
-msgstr "%s:%d: Érvénytelen import opciók!\n"
+msgstr "%s:%d: Érvénytelen import opciók!\n"
 
 #, fuzzy
 msgid "invalid list options\n"
-msgstr "Érvénytelen import opciók!\n"
+msgstr "Érvénytelen import opciók!\n"
 
 msgid "display photo IDs during signature verification"
 msgstr ""
@@ -2268,7 +2277,7 @@ msgstr ""
 
 #, fuzzy
 msgid "show all notations during signature verification"
-msgstr "%s nem érvényes karakterkiosztás!\n"
+msgstr "%s nem érvényes karakterkiosztás!\n"
 
 msgid "show IETF standard notations during signature verification"
 msgstr ""
@@ -2278,18 +2287,18 @@ msgstr ""
 
 #, fuzzy
 msgid "show preferred keyserver URLs during signature verification"
-msgstr "A megadott aláírási eljárásmód URL-je érvénytelen!\n"
+msgstr "A megadott aláírási eljárásmód URL-je érvénytelen!\n"
 
 #, fuzzy
 msgid "show user ID validity during signature verification"
-msgstr "%s nem érvényes karakterkiosztás!\n"
+msgstr "%s nem érvényes karakterkiosztás!\n"
 
 msgid "show revoked and expired user IDs in signature verification"
 msgstr ""
 
 #, fuzzy
 msgid "show only the primary user ID in signature verification"
-msgstr "%s nem érvényes karakterkiosztás!\n"
+msgstr "%s nem érvényes karakterkiosztás!\n"
 
 msgid "validate signatures with PKA data"
 msgstr ""
@@ -2299,276 +2308,276 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid verify options\n"
-msgstr "%s:%d: Érvénytelen export opciók!\n"
+msgstr "%s:%d: Érvénytelen export opciók!\n"
 
 #, fuzzy
 msgid "invalid verify options\n"
-msgstr "Érvénytelen export opciók!\n"
+msgstr "Érvénytelen export opciók!\n"
 
 #, c-format
 msgid "unable to set exec-path to %s\n"
-msgstr "Nem tudom a végrehajtási elérési utat %s értékre állítani!\n"
+msgstr "Nem tudom a végrehajtási elérési utat %s értékre állítani!\n"
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid auto-key-locate list\n"
-msgstr "%s:%d: Érvénytelen export opciók!\n"
+msgstr "%s:%d: Érvénytelen export opciók!\n"
 
 msgid "invalid auto-key-locate list\n"
 msgstr ""
 
 msgid "WARNING: program may create a core file!\n"
-msgstr "FIGYELEM: A program core állományt hozhat létre!\n"
+msgstr "FIGYELEM: A program core állományt hozhat létre!\n"
 
 #, c-format
 msgid "WARNING: %s overrides %s\n"
-msgstr "FIGYELEM: %s hatástalanítja %s-t!\n"
+msgstr "FIGYELEM: %s hatástalanítja %s-t!\n"
 
 #, c-format
 msgid "%s not allowed with %s!\n"
-msgstr "%s és %s nem használható együtt!\n"
+msgstr "%s és %s nem használható együtt!\n"
 
 #, c-format
 msgid "%s makes no sense with %s!\n"
-msgstr "%s értelmetlen %s mellett!\n"
+msgstr "%s értelmetlen %s mellett!\n"
 
 msgid "WARNING: running with faked system time: "
 msgstr ""
 
 #, fuzzy, c-format
 msgid "will not run with insecure memory due to %s\n"
-msgstr "Írom a titkos kulcsot a %s állományba.\n"
+msgstr "Írom a titkos kulcsot a %s állományba.\n"
 
 msgid "selected cipher algorithm is invalid\n"
-msgstr "A kiválasztott rejtjelezõ algoritmus érvénytelen!\n"
+msgstr "A kiválasztott rejtjelező algoritmus érvénytelen!\n"
 
 msgid "selected digest algorithm is invalid\n"
-msgstr "A kiválasztott kivonatoló algoritmus érvénytelen!\n"
+msgstr "A kiválasztott kivonatoló algoritmus érvénytelen!\n"
 
 #, fuzzy
 msgid "selected compression algorithm is invalid\n"
-msgstr "A kiválasztott rejtjelezõ algoritmus érvénytelen!\n"
+msgstr "A kiválasztott rejtjelező algoritmus érvénytelen!\n"
 
 msgid "selected certification digest algorithm is invalid\n"
-msgstr "Az igazoláshoz kiválasztott kivonatoló algoritmus érvénytelen!\n"
+msgstr "Az igazoláshoz kiválasztott kivonatoló algoritmus érvénytelen!\n"
 
 msgid "completes-needed must be greater than 0\n"
-msgstr "completes-needed nagyobb kell legyen 0-nál!\n"
+msgstr "completes-needed nagyobb kell legyen 0-nál!\n"
 
 msgid "marginals-needed must be greater than 1\n"
-msgstr "marginals-needed nagyobb kell legyen 1-nél!\n"
+msgstr "marginals-needed nagyobb kell legyen 1-nél!\n"
 
 #, fuzzy
 msgid "max-cert-depth must be in the range from 1 to 255\n"
-msgstr "max-cert-depth 1 és 255 közé kell essen!\n"
+msgstr "max-cert-depth 1 és 255 közé kell essen!\n"
 
 msgid "invalid default-cert-level; must be 0, 1, 2, or 3\n"
-msgstr "Érvénytelen default-cert-level; 0, 1, 2 vagy 3 lehet.\n"
+msgstr "Érvénytelen default-cert-level; 0, 1, 2 vagy 3 lehet.\n"
 
 msgid "invalid min-cert-level; must be 1, 2, or 3\n"
-msgstr "Érvénytelen min-cert-level; 0, 1, 2 vagy 3 lehet.\n"
+msgstr "Érvénytelen min-cert-level; 0, 1, 2 vagy 3 lehet.\n"
 
 #, fuzzy
 #| msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
 msgid "Note: simple S2K mode (0) is strongly discouraged\n"
-msgstr "MEGJEGYZÉS: Egyszerû S2K mód (0) erõsen ellenjavallt!\n"
+msgstr "MEGJEGYZÉS: Egyszerű S2K mód (0) erősen ellenjavallt!\n"
 
 msgid "invalid S2K mode; must be 0, 1 or 3\n"
-msgstr "Érvénytelen S2K mód; 0, 1 vagy 3 lehet.\n"
+msgstr "Érvénytelen S2K mód; 0, 1 vagy 3 lehet.\n"
 
 msgid "invalid default preferences\n"
-msgstr "Érvénytelen alapértelmezett preferenciák!\n"
+msgstr "Érvénytelen alapértelmezett preferenciák!\n"
 
 msgid "invalid personal cipher preferences\n"
-msgstr "Érvénytelen személyes rejtjelezõ-preferenciák!\n"
+msgstr "Érvénytelen személyes rejtjelező-preferenciák!\n"
 
 msgid "invalid personal digest preferences\n"
-msgstr "Érvénytelen személyes kivonatolópreferenciák!\n"
+msgstr "Érvénytelen személyes kivonatolópreferenciák!\n"
 
 msgid "invalid personal compress preferences\n"
-msgstr "Érvénytelen személyes tömörítõpreferenciák!\n"
+msgstr "Érvénytelen személyes tömörítőpreferenciák!\n"
 
 #, c-format
 msgid "%s does not yet work with %s\n"
-msgstr "%s és %s egyelõre nem használható együtt!\n"
+msgstr "%s és %s egyelőre nem használható együtt!\n"
 
 #, fuzzy, c-format
 msgid "you may not use cipher algorithm '%s' while in %s mode\n"
 msgstr ""
-"Lehet, hogy nem használhatja \"%s\" rejtjelezõ algoritmust %s módban!\n"
+"Lehet, hogy nem használhatja \"%s\" rejtjelező algoritmust %s módban!\n"
 
 #, fuzzy, c-format
 msgid "you may not use digest algorithm '%s' while in %s mode\n"
 msgstr ""
-"Lehet, hogy nem használhatja \"%s\" kivonatoló algoritmust %s módban!\n"
+"Lehet, hogy nem használhatja \"%s\" kivonatoló algoritmust %s módban!\n"
 
 #, fuzzy, c-format
 msgid "you may not use compression algorithm '%s' while in %s mode\n"
-msgstr "Lehet, hogy nem használhatja \"%s\" tömörítõ algoritmust %s módban!\n"
+msgstr "Lehet, hogy nem használhatja \"%s\" tömörítő algoritmust %s módban!\n"
 
 #, c-format
 msgid "failed to initialize the TrustDB: %s\n"
-msgstr "Bizalmi adatbázis (%s) inicializálása sikertelen!\n"
+msgstr "Bizalmi adatbázis (%s) inicializálása sikertelen!\n"
 
 msgid "WARNING: recipients (-r) given without using public key encryption\n"
 msgstr ""
-"FIGYELEM: Címzett megadva (-r), de nincs nyilvános kulcsú titkosítás!\n"
+"FIGYELEM: Címzett megadva (-r), de nincs nyilvános kulcsú titkosítás!\n"
 
 msgid "--store [filename]"
-msgstr "--store [fájlnév]"
+msgstr "--store [fájlnév]"
 
 msgid "--symmetric [filename]"
-msgstr "--symmetric [fájlnév]"
+msgstr "--symmetric [fájlnév]"
 
 #, fuzzy, c-format
 msgid "symmetric encryption of '%s' failed: %s\n"
-msgstr "Visszafejtés sikertelen: %s.\n"
+msgstr "Visszafejtés sikertelen: %s.\n"
 
 msgid "--encrypt [filename]"
-msgstr "--encrypt [fájlnév]"
+msgstr "--encrypt [fájlnév]"
 
 #, fuzzy
 msgid "--symmetric --encrypt [filename]"
-msgstr "--sign --encrypt [fájlnév]"
+msgstr "--sign --encrypt [fájlnév]"
 
 msgid "you cannot use --symmetric --encrypt with --s2k-mode 0\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "you cannot use --symmetric --encrypt while in %s mode\n"
-msgstr "Lehet, hogy nem használhatja %s-t %s módban!\n"
+msgstr "Lehet, hogy nem használhatja %s-t %s módban!\n"
 
 msgid "--sign [filename]"
-msgstr "--sign [fájlnév]"
+msgstr "--sign [fájlnév]"
 
 msgid "--sign --encrypt [filename]"
-msgstr "--sign --encrypt [fájlnév]"
+msgstr "--sign --encrypt [fájlnév]"
 
 #, fuzzy
 msgid "--symmetric --sign --encrypt [filename]"
-msgstr "--sign --encrypt [fájlnév]"
+msgstr "--sign --encrypt [fájlnév]"
 
 msgid "you cannot use --symmetric --sign --encrypt with --s2k-mode 0\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "you cannot use --symmetric --sign --encrypt while in %s mode\n"
-msgstr "Lehet, hogy nem használhatja %s-t %s módban!\n"
+msgstr "Lehet, hogy nem használhatja %s-t %s módban!\n"
 
 msgid "--sign --symmetric [filename]"
-msgstr "--sign --symmetric [fájlnév]"
+msgstr "--sign --symmetric [fájlnév]"
 
 msgid "--clearsign [filename]"
-msgstr "--clearsign [fájlnév]"
+msgstr "--clearsign [fájlnév]"
 
 msgid "--decrypt [filename]"
-msgstr "--decrypt [fájlnév]"
+msgstr "--decrypt [fájlnév]"
 
 msgid "--sign-key user-id"
-msgstr "--sign-key felh-azonosító"
+msgstr "--sign-key felh-azonosító"
 
 msgid "--lsign-key user-id"
-msgstr "--lsign-key felh-azonosító"
+msgstr "--lsign-key felh-azonosító"
 
 msgid "--edit-key user-id [commands]"
-msgstr "--edit-key felh-azonosító [parancsok]"
+msgstr "--edit-key felh-azonosító [parancsok]"
 
 #, fuzzy
 msgid "--passwd <user-id>"
-msgstr "--sign-key felh-azonosító"
+msgstr "--sign-key felh-azonosító"
 
 #, c-format
 msgid "keyserver send failed: %s\n"
-msgstr "Küldés a kulcsszerverre sikertelen: %s\n"
+msgstr "Küldés a kulcsszerverre sikertelen: %s\n"
 
 #, c-format
 msgid "keyserver receive failed: %s\n"
-msgstr "Vétel a kulcsszerverrõl sikertelen: %s\n"
+msgstr "Vétel a kulcsszerverről sikertelen: %s\n"
 
 #, c-format
 msgid "key export failed: %s\n"
-msgstr "Kulcsexportálás sikertelen: %s\n"
+msgstr "Kulcsexportálás sikertelen: %s\n"
 
 #, fuzzy, c-format
 #| msgid "key export failed: %s\n"
 msgid "export as ssh key failed: %s\n"
-msgstr "Kulcsexportálás sikertelen: %s\n"
+msgstr "Kulcsexportálás sikertelen: %s\n"
 
 #, c-format
 msgid "keyserver search failed: %s\n"
-msgstr "Keresés a kulcsszerveren sikertelen: %s\n"
+msgstr "Keresés a kulcsszerveren sikertelen: %s\n"
 
 #, c-format
 msgid "keyserver refresh failed: %s\n"
-msgstr "Frissítés a kulcsszerverrõl sikertelen: %s\n"
+msgstr "Frissítés a kulcsszerverről sikertelen: %s\n"
 
 #, c-format
 msgid "dearmoring failed: %s\n"
-msgstr "Páncél eltávolítása nem sikerült: %s\n"
+msgstr "Páncél eltávolítása nem sikerült: %s\n"
 
 #, c-format
 msgid "enarmoring failed: %s\n"
-msgstr "Páncélozás nem sikerült: %s\n"
+msgstr "Páncélozás nem sikerült: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid hash algorithm `%s'\n"
 msgid "invalid hash algorithm '%s'\n"
-msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
+msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
 
 #, fuzzy, c-format
 msgid "error parsing key specification '%s': %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, c-format
 msgid "'%s' does not appear to be a valid key ID, fingerprint or keygrip\n"
 msgstr ""
 
 msgid "[filename]"
-msgstr "[fájlnév]"
+msgstr "[fájlnév]"
 
 msgid "Go ahead and type your message ...\n"
-msgstr "Kezdheti gépelni az üzenetet...\n"
+msgstr "Kezdheti gépelni az üzenetet...\n"
 
 msgid "the given certification policy URL is invalid\n"
-msgstr "A megadott igazolási eljárásmód URL-je érvénytelen!\n"
+msgstr "A megadott igazolási eljárásmód URL-je érvénytelen!\n"
 
 msgid "the given signature policy URL is invalid\n"
-msgstr "A megadott aláírási eljárásmód URL-je érvénytelen!\n"
+msgstr "A megadott aláírási eljárásmód URL-je érvénytelen!\n"
 
 #, fuzzy
 msgid "the given preferred keyserver URL is invalid\n"
-msgstr "A megadott aláírási eljárásmód URL-je érvénytelen!\n"
+msgstr "A megadott aláírási eljárásmód URL-je érvénytelen!\n"
 
 #, fuzzy
 msgid "|FILE|take the keys from the keyring FILE"
-msgstr "a megadott kulcskarikáról vegye a kulcsokat"
+msgstr "a megadott kulcskarikáról vegye a kulcsokat"
 
 msgid "make timestamp conflicts only a warning"
-msgstr "idõbélyeg-konfliktus esetén csak figyelmeztessen"
+msgstr "időbélyeg-konfliktus esetén csak figyelmeztessen"
 
 msgid "|FD|write status info to this FD"
-msgstr "|ÁL|állapotinformációk írása ÁL állományleíróra"
+msgstr "|ÁL|állapotinformációk írása ÁL állományleíróra"
 
 msgid "|ALGO|reject signatures made with ALGO"
 msgstr ""
 
 msgid "Usage: gpgv [options] [files] (-h for help)"
-msgstr "Használat: gpgv [opciók] [fájlok] (-h a súgóhoz)"
+msgstr "Használat: gpgv [opciók] [fájlok] (-h a súgóhoz)"
 
 #, fuzzy
 msgid ""
 "Syntax: gpgv [options] [files]\n"
 "Check signatures against known trusted keys\n"
 msgstr ""
-"Szintaxis: gpg [opciók] [fájlok]\n"
-"Ellenõrzi az aláírásokat az ismert, megbízható kulcsok segítségével.\n"
+"Szintaxis: gpg [opciók] [fájlok]\n"
+"Ellenőrzi az aláírásokat az ismert, megbízható kulcsok segítségével.\n"
 
 msgid "No help available"
-msgstr "Nem áll rendelkezésre segítség."
+msgstr "Nem áll rendelkezésre segítség."
 
 #, fuzzy, c-format
 #| msgid "No help available for `%s'"
 msgid "No help available for '%s'"
-msgstr "Nem áll rendelkezésre segítség \"%s\" témához."
+msgstr "Nem áll rendelkezésre segítség \"%s\" témához."
 
 msgid "import signatures that are marked as local-only"
 msgstr ""
@@ -2578,11 +2587,11 @@ msgstr ""
 
 #, fuzzy
 msgid "do not clear the ownertrust values during import"
-msgstr "bizalmi adatbázis frissítése"
+msgstr "bizalmi adatbázis frissítése"
 
 #, fuzzy
 msgid "do not update the trustdb after import"
-msgstr "bizalmi adatbázis frissítése"
+msgstr "bizalmi adatbázis frissítése"
 
 #, fuzzy
 msgid "show key during import"
@@ -2593,7 +2602,7 @@ msgstr ""
 
 #, fuzzy
 msgid "remove unusable parts from key after import"
-msgstr "használhatatlan titkos kulcs"
+msgstr "használhatatlan titkos kulcs"
 
 msgid "remove as much as possible from key after import"
 msgstr ""
@@ -2603,7 +2612,7 @@ msgstr ""
 
 #, c-format
 msgid "skipping block of type %d\n"
-msgstr "%d típusú blokkot kihagyom.\n"
+msgstr "%d típusú blokkot kihagyom.\n"
 
 #, fuzzy, c-format
 msgid "%lu keys processed so far\n"
@@ -2611,44 +2620,44 @@ msgstr "Eddig %lu kulcsot dolgoztam fel.\n"
 
 #, c-format
 msgid "Total number processed: %lu\n"
-msgstr "     Összesen feldolgoztam: %lu\n"
+msgstr "     Összesen feldolgoztam: %lu\n"
 
 #, fuzzy, c-format
 #| msgid "      skipped new keys: %lu\n"
 msgid "    skipped PGP-2 keys: %lu\n"
-msgstr "       új kulcsok kihagyva: %lu\n"
+msgstr "       új kulcsok kihagyva: %lu\n"
 
 #, c-format
 msgid "      skipped new keys: %lu\n"
-msgstr "       új kulcsok kihagyva: %lu\n"
+msgstr "       új kulcsok kihagyva: %lu\n"
 
 #, c-format
 msgid "          w/o user IDs: %lu\n"
-msgstr "    felh. azonosító nélkül: %lu\n"
+msgstr "    felh. azonosító nélkül: %lu\n"
 
 #, c-format
 msgid "              imported: %lu"
-msgstr "                importálva: %lu"
+msgstr "                importálva: %lu"
 
 #, c-format
 msgid "             unchanged: %lu\n"
-msgstr "               változatlan: %lu\n"
+msgstr "               változatlan: %lu\n"
 
 #, c-format
 msgid "          new user IDs: %lu\n"
-msgstr "       új felh. azonosítók: %lu\n"
+msgstr "       új felh. azonosítók: %lu\n"
 
 #, c-format
 msgid "           new subkeys: %lu\n"
-msgstr "              új alkulcsok: %lu\n"
+msgstr "              új alkulcsok: %lu\n"
 
 #, c-format
 msgid "        new signatures: %lu\n"
-msgstr "              új aláírások: %lu\n"
+msgstr "              új aláírások: %lu\n"
 
 #, c-format
 msgid "   new key revocations: %lu\n"
-msgstr "     új kulcsvisszavonások: %lu\n"
+msgstr "     új kulcsvisszavonások: %lu\n"
 
 #, c-format
 msgid "      secret keys read: %lu\n"
@@ -2656,19 +2665,19 @@ msgstr "   olvasott titkos kulcsok: %lu\n"
 
 #, c-format
 msgid "  secret keys imported: %lu\n"
-msgstr "  importált titkos kulcsok: %lu\n"
+msgstr "  importált titkos kulcsok: %lu\n"
 
 #, c-format
 msgid " secret keys unchanged: %lu\n"
-msgstr "változatlan titkos kulcsok: %lu\n"
+msgstr "változatlan titkos kulcsok: %lu\n"
 
 #, c-format
 msgid "          not imported: %lu\n"
-msgstr "             nem importált: %lu\n"
+msgstr "             nem importált: %lu\n"
 
 #, fuzzy, c-format
 msgid "    signatures cleaned: %lu\n"
-msgstr "              új aláírások: %lu\n"
+msgstr "              új aláírások: %lu\n"
 
 #, fuzzy, c-format
 msgid "      user IDs cleaned: %lu\n"
@@ -2686,7 +2695,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "         \"%s\": preference for digest algorithm %s\n"
-msgstr "%s aláírás, %s kivonatoló algoritmus.\n"
+msgstr "%s aláírás, %s kivonatoló algoritmus.\n"
 
 #, c-format
 msgid "         \"%s\": preference for compression algorithm %s\n"
@@ -2704,7 +2713,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "key %s: no user ID\n"
-msgstr "%08lX kulcs: Nincs felhasználói azonosító.\n"
+msgstr "%08lX kulcs: Nincs felhasználói azonosító.\n"
 
 #, fuzzy, c-format
 msgid "key %s: %s\n"
@@ -2715,47 +2724,47 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "key %s: PKS subkey corruption repaired\n"
-msgstr "%08lX kulcs: HKP alkulcssérülés kijavítva.\n"
+msgstr "%08lX kulcs: HKP alkulcssérülés kijavítva.\n"
 
 #, fuzzy, c-format
 msgid "key %s: accepted non self-signed user ID \"%s\"\n"
-msgstr "%08lX kulcs: Nem önaláírt felh. azonosító (\"%s\") elfogadva.\n"
+msgstr "%08lX kulcs: Nem önaláírt felh. azonosító (\"%s\") elfogadva.\n"
 
 #, fuzzy, c-format
 msgid "key %s: no valid user IDs\n"
-msgstr "%08lX kulcs: Nincs érvényes felhasználói azonosító.\n"
+msgstr "%08lX kulcs: Nincs érvényes felhasználói azonosító.\n"
 
 msgid "this may be caused by a missing self-signature\n"
-msgstr "Ezt okozhatja egy hiányzó önaláírás.\n"
+msgstr "Ezt okozhatja egy hiányzó önaláírás.\n"
 
 #, fuzzy, c-format
 msgid "key %s: public key not found: %s\n"
-msgstr "%08lX kulcs: Nyilvános kulcs nem található: %s\n"
+msgstr "%08lX kulcs: Nyilvános kulcs nem található: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: new key - skipped\n"
-msgstr "%08lX kulcs: új kulcs - kihagytam.\n"
+msgstr "%08lX kulcs: új kulcs - kihagytam.\n"
 
 #, c-format
 msgid "no writable keyring found: %s\n"
-msgstr "Nem írható kulcskarikát találtam: %s\n"
+msgstr "Nem írható kulcskarikát találtam: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing keyring `%s': %s\n"
 msgid "error writing keyring '%s': %s\n"
-msgstr "Hiba a \"%s\" kulcskarika írásakor: %s\n"
+msgstr "Hiba a \"%s\" kulcskarika írásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: public key \"%s\" imported\n"
-msgstr "%08lX kulcs: \"%s\" nyilvános kulcs importálva.\n"
+msgstr "%08lX kulcs: \"%s\" nyilvános kulcs importálva.\n"
 
 #, fuzzy, c-format
 msgid "key %s: doesn't match our copy\n"
-msgstr "%08lX kulcs: Nem egyezik a mi másolatunkkal!\n"
+msgstr "%08lX kulcs: Nem egyezik a mi másolatunkkal!\n"
 
 #, fuzzy, c-format
 msgid "key %s: can't locate original keyblock: %s\n"
-msgstr "%08lX kulcs: Nem találom az eredeti kulcsblokkot: %s\n"
+msgstr "%08lX kulcs: Nem találom az eredeti kulcsblokkot: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: can't read original keyblock: %s\n"
@@ -2763,73 +2772,73 @@ msgstr "%08lX kulcs: Nem tudom beolvasni az eredeti kulcsblokkot: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" 1 new user ID\n"
-msgstr "%08lX kulcs: \"%s\" 1 új felhasználói azonosító.\n"
+msgstr "%08lX kulcs: \"%s\" 1 új felhasználói azonosító.\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d new user IDs\n"
-msgstr "%08lX kulcs: \"%s\" %d új felhasználói azonosító.\n"
+msgstr "%08lX kulcs: \"%s\" %d új felhasználói azonosító.\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" 1 new signature\n"
-msgstr "%08lX kulcs: \"%s\" 1 új aláírás.\n"
+msgstr "%08lX kulcs: \"%s\" 1 új aláírás.\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d new signatures\n"
-msgstr "%08lX kulcs: \"%s\" %d új aláírás.\n"
+msgstr "%08lX kulcs: \"%s\" %d új aláírás.\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" 1 new subkey\n"
-msgstr "%08lX kulcs: \"%s\" 1 új alkulcs.\n"
+msgstr "%08lX kulcs: \"%s\" 1 új alkulcs.\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d new subkeys\n"
-msgstr "%08lX kulcs: \"%s\" %d új alkulcs.\n"
+msgstr "%08lX kulcs: \"%s\" %d új alkulcs.\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d signature cleaned\n"
-msgstr "%08lX kulcs: \"%s\" %d új aláírás.\n"
+msgstr "%08lX kulcs: \"%s\" %d új aláírás.\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d signatures cleaned\n"
-msgstr "%08lX kulcs: \"%s\" %d új aláírás.\n"
+msgstr "%08lX kulcs: \"%s\" %d új aláírás.\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d user ID cleaned\n"
-msgstr "%08lX kulcs: \"%s\" %d új felhasználói azonosító.\n"
+msgstr "%08lX kulcs: \"%s\" %d új felhasználói azonosító.\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d user IDs cleaned\n"
-msgstr "%08lX kulcs: \"%s\" %d új felhasználói azonosító.\n"
+msgstr "%08lX kulcs: \"%s\" %d új felhasználói azonosító.\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" not changed\n"
-msgstr "%08lX kulcs: \"%s\" nem változott.\n"
+msgstr "%08lX kulcs: \"%s\" nem változott.\n"
 
 #, fuzzy, c-format
 msgid "key %s: secret key imported\n"
-msgstr "%08lX kulcs: Titkos kulcs importálva.\n"
+msgstr "%08lX kulcs: Titkos kulcs importálva.\n"
 
 #, fuzzy, c-format
 #| msgid "skipped: secret key already present\n"
 msgid "key %s: secret key already exists\n"
-msgstr "Kihagytam: titkos kulcs már jelen van.\n"
+msgstr "Kihagytam: titkos kulcs már jelen van.\n"
 
 #, fuzzy, c-format
 msgid "key %s: error sending to agent: %s\n"
-msgstr "Hiba %s-ra/-re küldéskor: %s\n"
+msgstr "Hiba %s-ra/-re küldéskor: %s\n"
 
 #, fuzzy, c-format
 msgid "secret key %s: %s\n"
-msgstr "\"%s\" titkos kulcs nem található: %s\n"
+msgstr "\"%s\" titkos kulcs nem található: %s\n"
 
 #, fuzzy
 msgid "importing secret keys not allowed\n"
-msgstr "Írom a titkos kulcsot a %s állományba.\n"
+msgstr "Írom a titkos kulcsot a %s állományba.\n"
 
 #, fuzzy, c-format
 msgid "key %s: secret key with invalid cipher %d - skipped\n"
 msgstr ""
-"%08lX kulcs: Titkos kulcs érvénytelen (%d) rejtjelezõvel - kihagytam.\n"
+"%08lX kulcs: Titkos kulcs érvénytelen (%d) rejtjelezővel - kihagytam.\n"
 
 #. TRANSLATORS: For smartcard, each private key on
 #. host has a reference (stub) to a smartcard and
@@ -2847,65 +2856,65 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "key %s: no public key - can't apply revocation certificate\n"
-msgstr "%08lX kulcs: Nincs nyilvános kulcs - nem tudok visszavonni.\n"
+msgstr "%08lX kulcs: Nincs nyilvános kulcs - nem tudok visszavonni.\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid revocation certificate: %s - rejected\n"
-msgstr "%08lX kulcs: Érvénytelen visszavonó igazolás: %s - visszautasítva.\n"
+msgstr "%08lX kulcs: Érvénytelen visszavonó igazolás: %s - visszautasítva.\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" revocation certificate imported\n"
-msgstr "%08lX kulcs: \"%s\" visszavonó igazolást importáltam.\n"
+msgstr "%08lX kulcs: \"%s\" visszavonó igazolást importáltam.\n"
 
 #, fuzzy, c-format
 msgid "key %s: no user ID for signature\n"
-msgstr "%08lX kulcs: Nincs felhasználói azonosító ehhez az aláíráshoz!\n"
+msgstr "%08lX kulcs: Nincs felhasználói azonosító ehhez az aláíráshoz!\n"
 
 #, fuzzy, c-format
 msgid "key %s: unsupported public key algorithm on user ID \"%s\"\n"
 msgstr ""
-"%08lX kulcs: Nem támogatott nyilvános kulcsú alg. a \"%s\" felh. "
-"azonosítón!\n"
+"%08lX kulcs: Nem támogatott nyilvános kulcsú alg. a \"%s\" felh. "
+"azonosítón!\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid self-signature on user ID \"%s\"\n"
-msgstr "%08lX kulcs: Érvénytelen önaláírás a \"%s\" felh. azonosítón!\n"
+msgstr "%08lX kulcs: Érvénytelen önaláírás a \"%s\" felh. azonosítón!\n"
 
 #, fuzzy, c-format
 msgid "key %s: unsupported public key algorithm\n"
-msgstr "%08lX kulcs: Nem támogatott nyilvános kulcsú algoritmus!\n"
+msgstr "%08lX kulcs: Nem támogatott nyilvános kulcsú algoritmus!\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid direct key signature\n"
-msgstr "%08lX kulcs: Kulcsaláírást hozzáadtam.\n"
+msgstr "%08lX kulcs: Kulcsaláírást hozzáadtam.\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for key binding\n"
-msgstr "%08lX kulcs: Nincs alkulcs a kulcskötéshez!\n"
+msgstr "%08lX kulcs: Nincs alkulcs a kulcskötéshez!\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid subkey binding\n"
-msgstr "%08lX kulcs: Érvénytelen alkulcskötés!\n"
+msgstr "%08lX kulcs: Érvénytelen alkulcskötés!\n"
 
 #, fuzzy, c-format
 msgid "key %s: removed multiple subkey binding\n"
-msgstr "%08lX kulcs: Eltávolítottam a többszörös alkulcskötést.\n"
+msgstr "%08lX kulcs: Eltávolítottam a többszörös alkulcskötést.\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for key revocation\n"
-msgstr "%08lX kulcs: Nincs alkulcs a kulcsvisszavonáshoz.\n"
+msgstr "%08lX kulcs: Nincs alkulcs a kulcsvisszavonáshoz.\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid subkey revocation\n"
-msgstr "%08lX kulcs: Érvénytelen alkulcsvisszavonás.\n"
+msgstr "%08lX kulcs: Érvénytelen alkulcsvisszavonás.\n"
 
 #, fuzzy, c-format
 msgid "key %s: removed multiple subkey revocation\n"
-msgstr "%08lX kulcs: Eltávolítottam a többszörös alkulcsvisszavonást.\n"
+msgstr "%08lX kulcs: Eltávolítottam a többszörös alkulcsvisszavonást.\n"
 
 #, fuzzy, c-format
 msgid "key %s: skipped user ID \"%s\"\n"
-msgstr "%08lX kulcs: Kihagytam a felh. azonosítót: '"
+msgstr "%08lX kulcs: Kihagytam a felh. azonosítót: '"
 
 #, fuzzy, c-format
 msgid "key %s: skipped subkey\n"
@@ -2913,96 +2922,100 @@ msgstr "%08lX kulcs: Alkulcsot kihagytam.\n"
 
 #, fuzzy, c-format
 msgid "key %s: non exportable signature (class 0x%02X) - skipped\n"
-msgstr "%08lX kulcs: Nem exportálható aláírás (%02x. osztály) - kihagytam.\n"
+msgstr "%08lX kulcs: Nem exportálható aláírás (%02x. osztály) - kihagytam.\n"
 
 #, fuzzy, c-format
 msgid "key %s: revocation certificate at wrong place - skipped\n"
-msgstr "%08lX kulcs: Visszavonó igazolás rossz helyen - kihagytam.\n"
+msgstr "%08lX kulcs: Visszavonó igazolás rossz helyen - kihagytam.\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid revocation certificate: %s - skipped\n"
-msgstr "%08lX kulcs: Érvénytelen visszavonó igazolás: %s - kihagytam.\n"
+msgstr "%08lX kulcs: Érvénytelen visszavonó igazolás: %s - kihagytam.\n"
 
 #, fuzzy, c-format
 msgid "key %s: subkey signature in wrong place - skipped\n"
-msgstr "%08lX kulcs: Alkulcsaláírás rossz helyen - kihagytam.\n"
+msgstr "%08lX kulcs: Alkulcsaláírás rossz helyen - kihagytam.\n"
 
 #, fuzzy, c-format
 msgid "key %s: unexpected signature class (0x%02X) - skipped\n"
-msgstr "%08lX kulcs: Váratlan aláírásosztály (0x%02X) - kihagytam.\n"
+msgstr "%08lX kulcs: Váratlan aláírásosztály (0x%02X) - kihagytam.\n"
 
 #, fuzzy, c-format
 msgid "key %s: duplicated user ID detected - merged\n"
-msgstr "%08lX kulcs: Duplázott felh. azonosítót találtam - összefûztem.\n"
+msgstr "%08lX kulcs: Duplázott felh. azonosítót találtam - összefűztem.\n"
 
 #, fuzzy, c-format
 msgid "WARNING: key %s may be revoked: fetching revocation key %s\n"
 msgstr ""
-"FIGYELEM: %08lX kulcsot visszavonhatták:\n"
-"lehívom a %08lX visszavonó kulcsot.\n"
+"FIGYELEM: %08lX kulcsot visszavonhatták:\n"
+"lehívom a %08lX visszavonó kulcsot.\n"
 
 #, fuzzy, c-format
 msgid "WARNING: key %s may be revoked: revocation key %s not present.\n"
 msgstr ""
-"FIGYELEM: %08lX kulcsot visszavonhatták:\n"
-"visszavonó kulcs (%08lX) nincs jelen.\n"
+"FIGYELEM: %08lX kulcsot visszavonhatták:\n"
+"visszavonó kulcs (%08lX) nincs jelen.\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" revocation certificate added\n"
-msgstr "%08lX kulcs: \"%s\" visszavonó igazolást hozzáadtam.\n"
+msgstr "%08lX kulcs: \"%s\" visszavonó igazolást hozzáadtam.\n"
 
 #, fuzzy, c-format
 msgid "key %s: direct key signature added\n"
-msgstr "%08lX kulcs: Kulcsaláírást hozzáadtam.\n"
+msgstr "%08lX kulcs: Kulcsaláírást hozzáadtam.\n"
 
 #, fuzzy, c-format
 msgid "error creating keybox '%s': %s\n"
-msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
+msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
 msgid "error creating keyring '%s': %s\n"
-msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
+msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "keybox '%s' created\n"
-msgstr "\"%s\" kulcskarikát létrehoztam.\n"
+msgstr "\"%s\" kulcskarikát létrehoztam.\n"
 
 #, fuzzy, c-format
 #| msgid "keyring `%s' created\n"
 msgid "keyring '%s' created\n"
-msgstr "\"%s\" kulcskarikát létrehoztam.\n"
+msgstr "\"%s\" kulcskarikát létrehoztam.\n"
 
 #, fuzzy, c-format
 msgid "keyblock resource '%s': %s\n"
-msgstr "Hiba \"%s\" létrehozásakor: %s\n"
+msgstr "Hiba \"%s\" létrehozásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "error opening key DB: %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, c-format
 msgid "failed to rebuild keyring cache: %s\n"
-msgstr "Nem tudtam újraépíteni a kulcskarika cache-ét: %s\n"
+msgstr "Nem tudtam újraépíteni a kulcskarika cache-ét: %s\n"
 
 msgid "[revocation]"
-msgstr "[visszavonás]"
+msgstr "[visszavonás]"
 
 msgid "[self-signature]"
-msgstr "[önaláírás]"
+msgstr "[önaláírás]"
+
+#, fuzzy, c-format
+msgid "error allocating memory: %s\n"
+msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
-msgstr "%08lX kulcs: Nem támogatott nyilvános kulcsú algoritmus!\n"
+msgstr "%08lX kulcs: Nem támogatott nyilvános kulcsú algoritmus!\n"
 
 #, fuzzy, c-format
 msgid ""
 "can't check signature with unsupported message-digest algorithm %d: %s.\n"
-msgstr "%s aláírás, %s kivonatoló algoritmus.\n"
+msgstr "%s aláírás, %s kivonatoló algoritmus.\n"
 
 #, fuzzy
 msgid " (reordered signatures follow)"
-msgstr "Jó aláírás a következõtõl: \""
+msgstr "Jó aláírás a következőtől: \""
 
 #, fuzzy, c-format
 msgid "key %s:\n"
@@ -3011,28 +3024,28 @@ msgstr "Kihagytam \"%s\"-t: %s.\n"
 #, fuzzy, c-format
 msgid "%d duplicate signature removed\n"
 msgid_plural "%d duplicate signatures removed\n"
-msgstr[0] "\"%s\" felhasználói azonosítót visszavonták."
-msgstr[1] "\"%s\" felhasználói azonosítót visszavonták."
+msgstr[0] "\"%s\" felhasználói azonosítót visszavonták."
+msgstr[1] "\"%s\" felhasználói azonosítót visszavonták."
 
 #, fuzzy, c-format
 #| msgid "1 signature not checked due to a missing key\n"
 msgid "%d signature not checked due to a missing key\n"
 msgid_plural "%d signatures not checked due to missing keys\n"
-msgstr[0] "1 aláírást nem ellenõriztem hiányzó kulcs miatt.\n"
-msgstr[1] "1 aláírást nem ellenõriztem hiányzó kulcs miatt.\n"
+msgstr[0] "1 aláírást nem ellenőriztem hiányzó kulcs miatt.\n"
+msgstr[1] "1 aláírást nem ellenőriztem hiányzó kulcs miatt.\n"
 
 #, fuzzy, c-format
 #| msgid "%d bad signatures\n"
 msgid "%d bad signature\n"
 msgid_plural "%d bad signatures\n"
-msgstr[0] "%d rossz aláírás.\n"
-msgstr[1] "%d rossz aláírás.\n"
+msgstr[0] "%d rossz aláírás.\n"
+msgstr[1] "%d rossz aláírás.\n"
 
 #, fuzzy, c-format
 msgid "%d signature reordered\n"
 msgid_plural "%d signatures reordered\n"
-msgstr[0] "Jó aláírás a következõtõl: \""
-msgstr[1] "Jó aláírás a következõtõl: \""
+msgstr[0] "Jó aláírás a következőtől: \""
+msgstr[1] "Jó aláírás a következőtől: \""
 
 #, c-format
 msgid ""
@@ -3047,18 +3060,18 @@ msgid ""
 "(by looking at passports, checking fingerprints from different sources, "
 "etc.)\n"
 msgstr ""
-"Kérem, döntse el, hogy mennyire bízik meg ebben a felhasználóban,\n"
-"hogy megfelelõen ellenõrzi mások kulcsait (útlevelek ellenõrzésével,\n"
-"különbözõ forrásból származó digitális ujjlenyomatokkal...)!\n"
+"Kérem, döntse el, hogy mennyire bízik meg ebben a felhasználóban,\n"
+"hogy megfelelően ellenőrzi mások kulcsait (útlevelek ellenőrzésével,\n"
+"különböző forrásból származó digitális ujjlenyomatokkal...)!\n"
 "\n"
 
 #, fuzzy, c-format
 msgid "  %d = I trust marginally\n"
-msgstr " %d = részlegesen megbízom benne\n"
+msgstr " %d = részlegesen megbízom benne\n"
 
 #, fuzzy, c-format
 msgid "  %d = I trust fully\n"
-msgstr " %d = teljesen megbízom benne\n"
+msgstr " %d = teljesen megbízom benne\n"
 
 msgid ""
 "Please enter the depth of this trust signature.\n"
@@ -3075,179 +3088,179 @@ msgstr ""
 
 #, c-format
 msgid "User ID \"%s\" is revoked."
-msgstr "\"%s\" felhasználói azonosítót visszavonták."
+msgstr "\"%s\" felhasználói azonosítót visszavonták."
 
 msgid "Are you sure you still want to sign it? (y/N) "
-msgstr "Biztos abban, hogy továbbra is alá akarja írni? (i/N) "
+msgstr "Biztos abban, hogy továbbra is alá akarja írni? (i/N) "
 
 msgid "  Unable to sign.\n"
-msgstr "  Nem tudom aláírni.\n"
+msgstr "  Nem tudom aláírni.\n"
 
 #, c-format
 msgid "User ID \"%s\" is expired."
-msgstr "\"%s\" felhasználói azonosító lejárt."
+msgstr "\"%s\" felhasználói azonosító lejárt."
 
 #, c-format
 msgid "User ID \"%s\" is not self-signed."
-msgstr "\"%s\" felhasználóazonosítón nincs önaláírás."
+msgstr "\"%s\" felhasználóazonosítón nincs önaláírás."
 
 #, fuzzy, c-format
 msgid "User ID \"%s\" is signable.  "
-msgstr "\"%s\" felhasználóazonosítón nincs önaláírás."
+msgstr "\"%s\" felhasználóazonosítón nincs önaláírás."
 
 #, fuzzy
 msgid "Sign it? (y/N) "
-msgstr "Valóban aláírja? "
+msgstr "Valóban aláírja? "
 
 #, c-format
 msgid ""
 "The self-signature on \"%s\"\n"
 "is a PGP 2.x-style signature.\n"
 msgstr ""
-"\"%s\" önaláírása\n"
-"PGP 2.x stílusú.\n"
+"\"%s\" önaláírása\n"
+"PGP 2.x stílusú.\n"
 
 msgid "Do you want to promote it to an OpenPGP self-signature? (y/N) "
-msgstr "Szeretné átalakítani OpenPGP önaláírássá? (i/N) "
+msgstr "Szeretné átalakítani OpenPGP önaláírássá? (i/N) "
 
 #, c-format
 msgid ""
 "Your current signature on \"%s\"\n"
 "has expired.\n"
 msgstr ""
-"Az Ön jelenlegi aláírása a(z) \"%s\"\n"
-"kulcson lejárt.\n"
+"Az Ön jelenlegi aláírása a(z) \"%s\"\n"
+"kulcson lejárt.\n"
 
 msgid "Do you want to issue a new signature to replace the expired one? (y/N) "
-msgstr "Szeretne kiadni egy új aláírást, amellyel lecseréli a lejártat? (i/N) "
+msgstr "Szeretne kiadni egy új aláírást, amellyel lecseréli a lejártat? (i/N) "
 
 #, c-format
 msgid ""
 "Your current signature on \"%s\"\n"
 "is a local signature.\n"
 msgstr ""
-"Az Ön jelenlegi aláírása a(z) \"%s\"\n"
-"kulcson helyi aláírás.\n"
+"Az Ön jelenlegi aláírása a(z) \"%s\"\n"
+"kulcson helyi aláírás.\n"
 
 msgid "Do you want to promote it to a full exportable signature? (y/N) "
-msgstr "Szeretné átalakítani teljes, exportálható aláírássá? (i/N) "
+msgstr "Szeretné átalakítani teljes, exportálható aláírássá? (i/N) "
 
 #, fuzzy, c-format
 msgid "\"%s\" was already locally signed by key %s\n"
-msgstr "\"%s\" már alá lett írva helyileg a %08lX kulccsal!\n"
+msgstr "\"%s\" már alá lett írva helyileg a %08lX kulccsal!\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" was already signed by key %s\n"
-msgstr "\"%s\" már alá lett írva a %08lX kulccsal!\n"
+msgstr "\"%s\" már alá lett írva a %08lX kulccsal!\n"
 
 msgid "Do you want to sign it again anyway? (y/N) "
-msgstr "Még egyszer alá akarja írni? (i/N) "
+msgstr "Még egyszer alá akarja írni? (i/N) "
 
 #, fuzzy, c-format
 msgid "Nothing to sign with key %s\n"
-msgstr "Nincs mit aláírni a %08lX kulccsal!\n"
+msgstr "Nincs mit aláírni a %08lX kulccsal!\n"
 
 msgid "This key has expired!"
-msgstr "Ez a kulcs lejárt!"
+msgstr "Ez a kulcs lejárt!"
 
 #, c-format
 msgid "This key is due to expire on %s.\n"
-msgstr "Ez a kulcs lejár: %s.\n"
+msgstr "Ez a kulcs lejár: %s.\n"
 
 msgid "Do you want your signature to expire at the same time? (Y/n) "
-msgstr "Szeretné, ha az aláírása ugyanekkor járna le? (I/n) "
+msgstr "Szeretné, ha az aláírása ugyanekkor járna le? (I/n) "
 
 msgid ""
 "How carefully have you verified the key you are about to sign actually "
 "belongs\n"
 "to the person named above?  If you don't know what to answer, enter \"0\".\n"
 msgstr ""
-"Mennyire gondosan ellenõrizte, hogy a kulcs, melyet aláírni készül, valóban\n"
-"a fent nevezett személyhez tartozik? Ha nem tudja a választ, írjon \"0\"-t!\n"
+"Mennyire gondosan ellenőrizte, hogy a kulcs, melyet aláírni készül, valóban\n"
+"a fent nevezett személyhez tartozik? Ha nem tudja a választ, írjon \"0\"-t!\n"
 
 #, c-format
 msgid "   (0) I will not answer.%s\n"
-msgstr "   (0) Nem válaszolok.%s\n"
+msgstr "   (0) Nem válaszolok.%s\n"
 
 #, c-format
 msgid "   (1) I have not checked at all.%s\n"
-msgstr "   (1) Egyáltalán nem ellenõriztem.%s\n"
+msgstr "   (1) Egyáltalán nem ellenőriztem.%s\n"
 
 #, c-format
 msgid "   (2) I have done casual checking.%s\n"
-msgstr "   (2) A szokásos ellenõrzéseket végeztem.%s\n"
+msgstr "   (2) A szokásos ellenőrzéseket végeztem.%s\n"
 
 #, c-format
 msgid "   (3) I have done very careful checking.%s\n"
-msgstr "   (3) Nagyon alaposan ellenõriztem.%s\n"
+msgstr "   (3) Nagyon alaposan ellenőriztem.%s\n"
 
 #, fuzzy
 msgid "Your selection? (enter '?' for more information): "
-msgstr "Mi a válasza? (Adjon meg \"?\"-et magyarázathoz!): "
+msgstr "Mi a válasza? (Adjon meg \"?\"-et magyarázathoz!): "
 
 #, fuzzy, c-format
 msgid ""
 "Are you sure that you want to sign this key with your\n"
 "key \"%s\" (%s)\n"
 msgstr ""
-"Teljesen biztos abban, hogy alá akarja írni ezt a kulcsot\n"
-"az Ön kulcsával: \""
+"Teljesen biztos abban, hogy alá akarja írni ezt a kulcsot\n"
+"az Ön kulcsával: \""
 
 #, fuzzy
 msgid "This will be a self-signature.\n"
 msgstr ""
 "\n"
-"Ez egy önaláírás lesz.\n"
+"Ez egy önaláírás lesz.\n"
 
 #, fuzzy
 msgid "WARNING: the signature will not be marked as non-exportable.\n"
 msgstr ""
 "\n"
-"FIGYELEM: Az aláírás nem lesz \"nem exportálhatóként\" megjelölve.\n"
+"FIGYELEM: Az aláírás nem lesz \"nem exportálhatóként\" megjelölve.\n"
 
 #, fuzzy
 msgid "WARNING: the signature will not be marked as non-revocable.\n"
 msgstr ""
 "\n"
-"FIGYELEM: Az aláírás nem lesz \"nem visszavonhatóként\" megjelölve.\n"
+"FIGYELEM: Az aláírás nem lesz \"nem visszavonhatóként\" megjelölve.\n"
 
 #, fuzzy
 msgid "The signature will be marked as non-exportable.\n"
 msgstr ""
 "\n"
-"Az aláírást \"nem exportálhatónak\" jelöljük.\n"
+"Az aláírást \"nem exportálhatónak\" jelöljük.\n"
 
 #, fuzzy
 msgid "The signature will be marked as non-revocable.\n"
 msgstr ""
 "\n"
-"Az aláírást \"nem visszavonhatónak\" jelöljük.\n"
+"Az aláírást \"nem visszavonhatónak\" jelöljük.\n"
 
 #, fuzzy
 msgid "I have not checked this key at all.\n"
 msgstr ""
 "\n"
-"Egyáltalán nem ellenõriztem ezt a kulcsot.\n"
+"Egyáltalán nem ellenőriztem ezt a kulcsot.\n"
 
 #, fuzzy
 msgid "I have checked this key casually.\n"
 msgstr ""
 "\n"
-"A szokásos módon ellenõriztem ezt a kulcsot.\n"
+"A szokásos módon ellenőriztem ezt a kulcsot.\n"
 
 #, fuzzy
 msgid "I have checked this key very carefully.\n"
 msgstr ""
 "\n"
-"Nagyon gondosan ellenõriztem ezt a kulcsot.\n"
+"Nagyon gondosan ellenőriztem ezt a kulcsot.\n"
 
 #, fuzzy
 msgid "Really sign? (y/N) "
-msgstr "Valóban aláírja? "
+msgstr "Valóban aláírja? "
 
 #, c-format
 msgid "signing failed: %s\n"
-msgstr "Aláírás sikertelen: %s\n"
+msgstr "Aláírás sikertelen: %s\n"
 
 msgid "Key has only stub or on-card key items - no passphrase to change.\n"
 msgstr ""
@@ -3255,10 +3268,10 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error creating passphrase: %s\n"
 msgid "key %s: error changing passphrase: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 msgid "save and quit"
-msgstr "mentés és kilépés"
+msgstr "mentés és kilépés"
 
 #, fuzzy
 msgid "show key fingerprint"
@@ -3266,45 +3279,45 @@ msgstr "megmutatja az ujjlenyomatot"
 
 #, fuzzy
 msgid "show the keygrip"
-msgstr "Aláírás-jelölés: "
+msgstr "Aláírás-jelölés: "
 
 msgid "list key and user IDs"
-msgstr "kilistázza a kulcs- és felhasználóazonosítókat"
+msgstr "kilistázza a kulcs- és felhasználóazonosítókat"
 
 msgid "select user ID N"
-msgstr "N. felhasználói azonosító kiválasztása"
+msgstr "N. felhasználói azonosító kiválasztása"
 
 #, fuzzy
 msgid "select subkey N"
-msgstr "N. felhasználói azonosító kiválasztása"
+msgstr "N. felhasználói azonosító kiválasztása"
 
 #, fuzzy
 msgid "check signatures"
-msgstr "aláírások visszavonása"
+msgstr "aláírások visszavonása"
 
 msgid "sign selected user IDs [* see below for related commands]"
 msgstr ""
 
 #, fuzzy
 msgid "sign selected user IDs locally"
-msgstr "kulcs helyi aláírása"
+msgstr "kulcs helyi aláírása"
 
 #, fuzzy
 msgid "sign selected user IDs with a trust signature"
-msgstr "Javaslat: Válassza ki az aláírni kívánt felhasználóazonosítókat!\n"
+msgstr "Javaslat: Válassza ki az aláírni kívánt felhasználóazonosítókat!\n"
 
 msgid "sign selected user IDs with a non-revocable signature"
 msgstr ""
 
 msgid "add a user ID"
-msgstr "felhasználói azonosító hozzáadása"
+msgstr "felhasználói azonosító hozzáadása"
 
 msgid "add a photo ID"
-msgstr "fotóazonosító hozzáadása"
+msgstr "fotóazonosító hozzáadása"
 
 #, fuzzy
 msgid "delete selected user IDs"
-msgstr "felhasználói azonosító törlése"
+msgstr "felhasználói azonosító törlése"
 
 #, fuzzy
 msgid "add a subkey"
@@ -3321,70 +3334,70 @@ msgstr ""
 
 #, fuzzy
 msgid "delete selected subkeys"
-msgstr "másodlagos kulcs törlése"
+msgstr "másodlagos kulcs törlése"
 
 msgid "add a revocation key"
-msgstr "visszavonó kulcs hozzáadása"
+msgstr "visszavonó kulcs hozzáadása"
 
 #, fuzzy
 msgid "delete signatures from the selected user IDs"
-msgstr "Valóban frissíti a kijelölt felhasználóazonosítók preferenciáit? "
+msgstr "Valóban frissíti a kijelölt felhasználóazonosítók preferenciáit? "
 
 #, fuzzy
 msgid "change the expiration date for the key or selected subkeys"
-msgstr "Nem változtathatja meg egy v3 kulcs lejárati dátumát!\n"
+msgstr "Nem változtathatja meg egy v3 kulcs lejárati dátumát!\n"
 
 #, fuzzy
 msgid "flag the selected user ID as primary"
-msgstr "felhasználóazonosító megjelölése elsõdlegesként"
+msgstr "felhasználóazonosító megjelölése elsődlegesként"
 
 msgid "list preferences (expert)"
-msgstr "preferenciák listázása (szakértõ)"
+msgstr "preferenciák listázása (szakértő)"
 
 msgid "list preferences (verbose)"
-msgstr "preferenciák listázása (részletes)"
+msgstr "preferenciák listázása (részletes)"
 
 #, fuzzy
 msgid "set preference list for the selected user IDs"
-msgstr "Valóban frissíti a kijelölt felhasználóazonosítók preferenciáit? "
+msgstr "Valóban frissíti a kijelölt felhasználóazonosítók preferenciáit? "
 
 #, fuzzy
 msgid "set the preferred keyserver URL for the selected user IDs"
-msgstr "Értelmezhetetlen a kulcsszerver URI-ja!\n"
+msgstr "Értelmezhetetlen a kulcsszerver URI-ja!\n"
 
 #, fuzzy
 msgid "set a notation for the selected user IDs"
-msgstr "Valóban frissíti a kijelölt felhasználóazonosítók preferenciáit? "
+msgstr "Valóban frissíti a kijelölt felhasználóazonosítók preferenciáit? "
 
 msgid "change the passphrase"
-msgstr "jelszóváltoztatás"
+msgstr "jelszóváltoztatás"
 
 msgid "change the ownertrust"
-msgstr "kulcstulajdonos megbízhatóságának beállítása"
+msgstr "kulcstulajdonos megbízhatóságának beállítása"
 
 #, fuzzy
 msgid "revoke signatures on the selected user IDs"
-msgstr "Valóban visszavonja az összes kijelölt felhasználóazonosítót? "
+msgstr "Valóban visszavonja az összes kijelölt felhasználóazonosítót? "
 
 #, fuzzy
 msgid "revoke selected user IDs"
-msgstr "felhasználói azonosító visszavonása"
+msgstr "felhasználói azonosító visszavonása"
 
 #, fuzzy
 msgid "revoke key or selected subkeys"
-msgstr "másodlagos kulcs visszavonása"
+msgstr "másodlagos kulcs visszavonása"
 
 #, fuzzy
 msgid "enable key"
-msgstr "kulcs engedélyezése"
+msgstr "kulcs engedélyezése"
 
 #, fuzzy
 msgid "disable key"
-msgstr "kulcs tiltása"
+msgstr "kulcs tiltása"
 
 #, fuzzy
 msgid "show selected photo IDs"
-msgstr "fotóazonosító megmutatása"
+msgstr "fotóazonosító megmutatása"
 
 msgid "compact unusable user IDs and remove unusable signatures from key"
 msgstr ""
@@ -3393,10 +3406,10 @@ msgid "compact unusable user IDs and remove all signatures from key"
 msgstr ""
 
 msgid "Secret key is available.\n"
-msgstr "Titkos kulcs rendelkezésre áll.\n"
+msgstr "Titkos kulcs rendelkezésre áll.\n"
 
 msgid "Need the secret key to do this.\n"
-msgstr "Ehhez szükség van a titkos kulcsra.\n"
+msgstr "Ehhez szükség van a titkos kulcsra.\n"
 
 msgid ""
 "* The 'sign' command may be prefixed with an 'l' for local signatures "
@@ -3406,159 +3419,159 @@ msgid ""
 msgstr ""
 
 msgid "Key is revoked."
-msgstr "A kulcsot visszavonták."
+msgstr "A kulcsot visszavonták."
 
 #, fuzzy
 msgid "Really sign all user IDs? (y/N) "
-msgstr "Valóban aláírja az összes felhasználóazonosítót? "
+msgstr "Valóban aláírja az összes felhasználóazonosítót? "
 
 #, fuzzy
 msgid "Really sign all text user IDs? (y/N) "
-msgstr "Valóban aláírja az összes felhasználóazonosítót? "
+msgstr "Valóban aláírja az összes felhasználóazonosítót? "
 
 msgid "Hint: Select the user IDs to sign\n"
-msgstr "Javaslat: Válassza ki az aláírni kívánt felhasználóazonosítókat!\n"
+msgstr "Javaslat: Válassza ki az aláírni kívánt felhasználóazonosítókat!\n"
 
 #, fuzzy, c-format
 msgid "Unknown signature type '%s'\n"
-msgstr "ismeretlen aláírásosztály"
+msgstr "ismeretlen aláírásosztály"
 
 #, c-format
 msgid "This command is not allowed while in %s mode.\n"
-msgstr "Ez a parancs %s módban nem engedélyezett.\n"
+msgstr "Ez a parancs %s módban nem engedélyezett.\n"
 
 msgid "You must select at least one user ID.\n"
-msgstr "Legalább egy felhasználóazonosítót ki kell választania!\n"
+msgstr "Legalább egy felhasználóazonosítót ki kell választania!\n"
 
 #, c-format
 msgid "(Use the '%s' command.)\n"
 msgstr ""
 
 msgid "You can't delete the last user ID!\n"
-msgstr "Nem törölheti az utolsó felhasználóazonosítót!\n"
+msgstr "Nem törölheti az utolsó felhasználóazonosítót!\n"
 
 #, fuzzy
 msgid "Really remove all selected user IDs? (y/N) "
-msgstr "Valóban eltávolítja az összes kijelölt felhasználóazonosítót? "
+msgstr "Valóban eltávolítja az összes kijelölt felhasználóazonosítót? "
 
 #, fuzzy
 msgid "Really remove this user ID? (y/N) "
-msgstr "Valóban eltávolítja ezt a felhasználóazonosítót? "
+msgstr "Valóban eltávolítja ezt a felhasználóazonosítót? "
 
 #. TRANSLATORS: Please take care: This is about
 #. moving the key and not about removing it.
 #, fuzzy
 msgid "Really move the primary key? (y/N) "
-msgstr "Valóban eltávolítja ezt a felhasználóazonosítót? "
+msgstr "Valóban eltávolítja ezt a felhasználóazonosítót? "
 
 #, fuzzy
 msgid "You must select exactly one key.\n"
-msgstr "Legalább egy kulcsot ki kell választania!\n"
+msgstr "Legalább egy kulcsot ki kell választania!\n"
 
 msgid "Command expects a filename argument\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "Can't open '%s': %s\n"
-msgstr "Nem tudom megnyitni a(z) \"%s\" állományt: %s.\n"
+msgstr "Nem tudom megnyitni a(z) \"%s\" állományt: %s.\n"
 
 #, fuzzy, c-format
 msgid "Error reading backup key from '%s': %s\n"
-msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
+msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
 
 msgid "You must select at least one key.\n"
-msgstr "Legalább egy kulcsot ki kell választania!\n"
+msgstr "Legalább egy kulcsot ki kell választania!\n"
 
 #, fuzzy
 msgid "Do you really want to delete the selected keys? (y/N) "
-msgstr "Valóban törli a kiválasztott kulcsokat? "
+msgstr "Valóban törli a kiválasztott kulcsokat? "
 
 #, fuzzy
 msgid "Do you really want to delete this key? (y/N) "
-msgstr "Valóban törli ezt a kulcsot? "
+msgstr "Valóban törli ezt a kulcsot? "
 
 #, fuzzy
 msgid "Really revoke all selected user IDs? (y/N) "
-msgstr "Valóban visszavonja az összes kijelölt felhasználóazonosítót? "
+msgstr "Valóban visszavonja az összes kijelölt felhasználóazonosítót? "
 
 #, fuzzy
 msgid "Really revoke this user ID? (y/N) "
-msgstr "Valóban visszavonja ezt a felhasználóazonosítót? "
+msgstr "Valóban visszavonja ezt a felhasználóazonosítót? "
 
 #, fuzzy
 msgid "Do you really want to revoke the entire key? (y/N) "
-msgstr "Valóban visszavonja ezt a kulcsot? "
+msgstr "Valóban visszavonja ezt a kulcsot? "
 
 #, fuzzy
 msgid "Do you really want to revoke the selected subkeys? (y/N) "
-msgstr "Valóban visszavonja a kijelölt kulcsokat? "
+msgstr "Valóban visszavonja a kijelölt kulcsokat? "
 
 #, fuzzy
 msgid "Do you really want to revoke this subkey? (y/N) "
-msgstr "Valóban visszavonja ezt a kulcsot? "
+msgstr "Valóban visszavonja ezt a kulcsot? "
 
 msgid "Owner trust may not be set while using a user provided trust database\n"
 msgstr ""
 
 #, fuzzy
 msgid "Set preference list to:\n"
-msgstr "preferencialista beállítása"
+msgstr "preferencialista beállítása"
 
 #, fuzzy
 msgid "Really update the preferences for the selected user IDs? (y/N) "
-msgstr "Valóban frissíti a kijelölt felhasználóazonosítók preferenciáit? "
+msgstr "Valóban frissíti a kijelölt felhasználóazonosítók preferenciáit? "
 
 #, fuzzy
 msgid "Really update the preferences? (y/N) "
-msgstr "Valóban frissítsem a preferenciákat? "
+msgstr "Valóban frissítsem a preferenciákat? "
 
 #, fuzzy
 msgid "Save changes? (y/N) "
-msgstr "Mentsem a változtatásokat? "
+msgstr "Mentsem a változtatásokat? "
 
 #, fuzzy
 msgid "Quit without saving? (y/N) "
-msgstr "Kilépjek mentés nélkül? "
+msgstr "Kilépjek mentés nélkül? "
 
 #, c-format
 msgid "update failed: %s\n"
-msgstr "Frissítés sikertelen: %s.\n"
+msgstr "Frissítés sikertelen: %s.\n"
 
 msgid "Key not changed so no update needed.\n"
-msgstr "A kulcs nem változott, nincs szükség frissítésre.\n"
+msgstr "A kulcs nem változott, nincs szükség frissítésre.\n"
 
 #, fuzzy, c-format
 #| msgid "Key generation failed: %s\n"
 msgid "User ID revocation failed: %s\n"
-msgstr "Kulcsgenerálás sikertelen: %s\n"
+msgstr "Kulcsgenerálás sikertelen: %s\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" is not a fingerprint\n"
-msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
+msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" is not the primary fingerprint\n"
-msgstr "Bizalmi adatbázis (%s) inicializálása sikertelen!\n"
+msgstr "Bizalmi adatbázis (%s) inicializálása sikertelen!\n"
 
 #, fuzzy, c-format
 #| msgid "invalid value\n"
 msgid "Invalid user ID '%s': %s\n"
-msgstr "Érvénytelen érték!\n"
+msgstr "Érvénytelen érték!\n"
 
 #, fuzzy
 #| msgid "No such user ID.\n"
 msgid "No matching user IDs."
-msgstr "Nincs ilyen felhasználói azonosító.\n"
+msgstr "Nincs ilyen felhasználói azonosító.\n"
 
 #, fuzzy
 msgid "Nothing to sign.\n"
-msgstr "Nincs mit aláírni a %08lX kulccsal!\n"
+msgstr "Nincs mit aláírni a %08lX kulccsal!\n"
 
 msgid "Digest: "
 msgstr "Kivonat: "
 
 msgid "Features: "
-msgstr "Jellemzõk: "
+msgstr "Jellemzők: "
 
 msgid "Keyserver no-modify"
 msgstr ""
@@ -3568,26 +3581,26 @@ msgstr ""
 
 #, fuzzy
 msgid "Notations: "
-msgstr "Jelölés: "
+msgstr "Jelölés: "
 
 msgid "There are no preferences on a PGP 2.x-style user ID.\n"
-msgstr "Nincsenek preferenciák egy PGP 2.x felhasználóazonosítón!\n"
+msgstr "Nincsenek preferenciák egy PGP 2.x felhasználóazonosítón!\n"
 
 #, fuzzy, c-format
 msgid "The following key was revoked on %s by %s key %s\n"
-msgstr "Ezt a kulcsot a következõ %s kulcs visszavonhatja: "
+msgstr "Ezt a kulcsot a következő %s kulcs visszavonhatja: "
 
 #, fuzzy, c-format
 msgid "This key may be revoked by %s key %s"
-msgstr "Ezt a kulcsot a következõ %s kulcs visszavonhatja: "
+msgstr "Ezt a kulcsot a következő %s kulcs visszavonhatja: "
 
 #, fuzzy
 msgid "(sensitive)"
-msgstr " (érzékeny)"
+msgstr " (érzékeny)"
 
 #, fuzzy, c-format
 msgid "created: %s"
-msgstr "%s nem hozható létre: %s\n"
+msgstr "%s nem hozható létre: %s\n"
 
 #, fuzzy, c-format
 msgid "revoked: %s"
@@ -3595,11 +3608,11 @@ msgstr "[visszavont] "
 
 #, fuzzy, c-format
 msgid "expired: %s"
-msgstr " [lejár: %s]"
+msgstr " [lejár: %s]"
 
 #, fuzzy, c-format
 msgid "expires: %s"
-msgstr " [lejár: %s]"
+msgstr " [lejár: %s]"
 
 #, fuzzy, c-format
 msgid "usage: %s"
@@ -3623,8 +3636,8 @@ msgid ""
 "Please note that the shown key validity is not necessarily correct\n"
 "unless you restart the program.\n"
 msgstr ""
-"Kérem, vegye figyelembe, hogy az itt látható kulcs érvényessége nem\n"
-"feltétlenül helyes, amíg újra nem indítja a programot!\n"
+"Kérem, vegye figyelembe, hogy az itt látható kulcs érvényessége nem\n"
+"feltétlenül helyes, amíg újra nem indítja a programot!\n"
 
 #, fuzzy
 msgid "revoked"
@@ -3638,8 +3651,8 @@ msgid ""
 "WARNING: no user ID has been marked as primary.  This command may\n"
 "              cause a different user ID to become the assumed primary.\n"
 msgstr ""
-"FIGYELEM: Nincs kijelölt elsõdleges felhasználóazonosító. Ez a parancs\n"
-" azt okozhatja, hogy egy másik azonosító lesz elsõdlegesként használva.\n"
+"FIGYELEM: Nincs kijelölt elsődleges felhasználóazonosító. Ez a parancs\n"
+" azt okozhatja, hogy egy másik azonosító lesz elsődlegesként használva.\n"
 
 msgid "WARNING: Your encryption subkey expires soon.\n"
 msgstr ""
@@ -3647,213 +3660,213 @@ msgstr ""
 #, fuzzy
 #| msgid "You can't change the expiration date of a v3 key\n"
 msgid "You may want to change its expiration date too.\n"
-msgstr "Nem változtathatja meg egy v3 kulcs lejárati dátumát!\n"
+msgstr "Nem változtathatja meg egy v3 kulcs lejárati dátumát!\n"
 
 msgid ""
 "WARNING: This is a PGP2-style key.  Adding a photo ID may cause some "
 "versions\n"
 "         of PGP to reject this key.\n"
 msgstr ""
-"FIGYELEM: Ez egy PGP2 stílusú kulcs. Fotóazonosító hozzáadása azt "
+"FIGYELEM: Ez egy PGP2 stílusú kulcs. Fotóazonosító hozzáadása azt "
 "okozhatja,\n"
-"          hogy a PGP egyes verziói visszautasítják ezt a kulcsot.\n"
+"          hogy a PGP egyes verziói visszautasítják ezt a kulcsot.\n"
 
 msgid "Are you sure you still want to add it? (y/N) "
-msgstr "Továbbra is hozzá akarja adni? (i/N) "
+msgstr "Továbbra is hozzá akarja adni? (i/N) "
 
 msgid "You may not add a photo ID to a PGP2-style key.\n"
-msgstr "Lehet, hogy nem adhat fotóazonosítót egy PGP2 stílusú kulcshoz!\n"
+msgstr "Lehet, hogy nem adhat fotóazonosítót egy PGP2 stílusú kulcshoz!\n"
 
 msgid "Such a user ID already exists on this key!\n"
 msgstr ""
 
 msgid "Delete this good signature? (y/N/q)"
-msgstr "Törli ezt a jó aláírást? (i/N/k)"
+msgstr "Törli ezt a jó aláírást? (i/N/k)"
 
 msgid "Delete this invalid signature? (y/N/q)"
-msgstr "Törli ezt az érvénytelen aláírást? (i/N/k)"
+msgstr "Törli ezt az érvénytelen aláírást? (i/N/k)"
 
 msgid "Delete this unknown signature? (y/N/q)"
-msgstr "Törli ezt az ismeretlen aláírást? (i/N/k)"
+msgstr "Törli ezt az ismeretlen aláírást? (i/N/k)"
 
 msgid "Really delete this self-signature? (y/N)"
-msgstr "Valóban törli ezt az önaláírást? (i/N)"
+msgstr "Valóban törli ezt az önaláírást? (i/N)"
 
 #, fuzzy, c-format
 #| msgid "Deleted %d signature.\n"
 msgid "Deleted %d signature.\n"
 msgid_plural "Deleted %d signatures.\n"
-msgstr[0] "Töröltem %d aláírást.\n"
-msgstr[1] "Töröltem %d aláírást.\n"
+msgstr[0] "Töröltem %d aláírást.\n"
+msgstr[1] "Töröltem %d aláírást.\n"
 
 msgid "Nothing deleted.\n"
-msgstr "Nem töröltem semmit.\n"
+msgstr "Nem töröltem semmit.\n"
 
 #, fuzzy
 msgid "invalid"
-msgstr "érvénytelen páncél"
+msgstr "érvénytelen páncél"
 
 #, fuzzy, c-format
 msgid "User ID \"%s\" compacted: %s\n"
-msgstr "\"%s\" felhasználói azonosítót visszavonták."
+msgstr "\"%s\" felhasználói azonosítót visszavonták."
 
 #, fuzzy, c-format
 msgid "User ID \"%s\": %d signature removed\n"
 msgid_plural "User ID \"%s\": %d signatures removed\n"
-msgstr[0] "\"%s\" felhasználói azonosítót visszavonták."
-msgstr[1] "\"%s\" felhasználói azonosítót visszavonták."
+msgstr[0] "\"%s\" felhasználói azonosítót visszavonták."
+msgstr[1] "\"%s\" felhasználói azonosítót visszavonták."
 
 #, fuzzy, c-format
 msgid "User ID \"%s\": already minimized\n"
-msgstr "\"%s\" felhasználói azonosítót már visszavonták.\n"
+msgstr "\"%s\" felhasználói azonosítót már visszavonták.\n"
 
 #, fuzzy, c-format
 msgid "User ID \"%s\": already clean\n"
-msgstr "\"%s\" felhasználói azonosítót már visszavonták.\n"
+msgstr "\"%s\" felhasználói azonosítót már visszavonták.\n"
 
 msgid ""
 "WARNING: This is a PGP 2.x-style key.  Adding a designated revoker may "
 "cause\n"
 "         some versions of PGP to reject this key.\n"
 msgstr ""
-"FIGYELEM: Ez egy PGP 2.x stílusú kulcs. Kijelölt visszavonó hozzáadása\n"
-"          azt okozhatja, hogy egyes PGP verziók visszautasítják ezt a "
+"FIGYELEM: Ez egy PGP 2.x stílusú kulcs. Kijelölt visszavonó hozzáadása\n"
+"          azt okozhatja, hogy egyes PGP verziók visszautasítják ezt a "
 "kulcsot!\n"
 
 msgid "You may not add a designated revoker to a PGP 2.x-style key.\n"
 msgstr ""
-"Lehet, hogy nem adhat kijelölt visszavonót egy PGP 2.x-stílusú kulcshoz.\n"
+"Lehet, hogy nem adhat kijelölt visszavonót egy PGP 2.x-stílusú kulcshoz.\n"
 
 msgid "Enter the user ID of the designated revoker: "
-msgstr "Írja be a kijelölt visszavonó felhasználóazonosítóját: "
+msgstr "Írja be a kijelölt visszavonó felhasználóazonosítóját: "
 
 msgid "cannot appoint a PGP 2.x style key as a designated revoker\n"
-msgstr "Nem adhat meg PGP 2.x stílusú kulcsot kijelölt visszavonónak!\n"
+msgstr "Nem adhat meg PGP 2.x stílusú kulcsot kijelölt visszavonónak!\n"
 
 msgid "you cannot appoint a key as its own designated revoker\n"
-msgstr "Nem adhat meg egy kulcsot saját kijelölt visszavonójának!\n"
+msgstr "Nem adhat meg egy kulcsot saját kijelölt visszavonójának!\n"
 
 #, fuzzy
 msgid "this key has already been designated as a revoker\n"
-msgstr "FIGYELEM: Ezt a kulcsot a kijelölt visszavonó visszavonta!\n"
+msgstr "FIGYELEM: Ezt a kulcsot a kijelölt visszavonó visszavonta!\n"
 
 msgid "WARNING: appointing a key as a designated revoker cannot be undone!\n"
 msgstr ""
-"FIGYELEM: A kijelölt visszavonó kulcs megadása nem csinálható vissza!\n"
+"FIGYELEM: A kijelölt visszavonó kulcs megadása nem csinálható vissza!\n"
 
 #, fuzzy
 msgid ""
 "Are you sure you want to appoint this key as a designated revoker? (y/N) "
-msgstr "Biztosan ez a kulcs legyen a kijelölt visszavonó? (i/N): "
+msgstr "Biztosan ez a kulcs legyen a kijelölt visszavonó? (i/N): "
 
 #, fuzzy
 msgid ""
 "Are you sure you want to change the expiration time for multiple subkeys? (y/"
 "N) "
-msgstr "Biztosan ez a kulcs legyen a kijelölt visszavonó? (i/N): "
+msgstr "Biztosan ez a kulcs legyen a kijelölt visszavonó? (i/N): "
 
 #, fuzzy
 msgid "Changing expiration time for a subkey.\n"
-msgstr "Másodlagos kulcs lejárati idejének változtatása.\n"
+msgstr "Másodlagos kulcs lejárati idejének változtatása.\n"
 
 msgid "Changing expiration time for the primary key.\n"
-msgstr "Elsõdleges kulcs lejárati idejének változtatása.\n"
+msgstr "Elsődleges kulcs lejárati idejének változtatása.\n"
 
 msgid "You can't change the expiration date of a v3 key\n"
-msgstr "Nem változtathatja meg egy v3 kulcs lejárati dátumát!\n"
+msgstr "Nem változtathatja meg egy v3 kulcs lejárati dátumát!\n"
 
 #, fuzzy, c-format
 msgid "signing subkey %s is already cross-certified\n"
-msgstr "FIGYELEM: %08lX aláíró alkulcs nem kereszthitelesített.\n"
+msgstr "FIGYELEM: %08lX aláíró alkulcs nem kereszthitelesített.\n"
 
 #, c-format
 msgid "subkey %s does not sign and so does not need to be cross-certified\n"
 msgstr ""
 
 msgid "Please select exactly one user ID.\n"
-msgstr "Kérem, válasszon ki pontosan egy felhasználóazonosítót!\n"
+msgstr "Kérem, válasszon ki pontosan egy felhasználóazonosítót!\n"
 
 #, fuzzy, c-format
 msgid "skipping v3 self-signature on user ID \"%s\"\n"
-msgstr "Kihagyom a v3 önaláírást a \"%s\" felhasználóazonosítón.\n"
+msgstr "Kihagyom a v3 önaláírást a \"%s\" felhasználóazonosítón.\n"
 
 msgid "Enter your preferred keyserver URL: "
 msgstr ""
 
 #, fuzzy
 msgid "Are you sure you want to replace it? (y/N) "
-msgstr "Biztos abban, hogy használni akarja (i/N)? "
+msgstr "Biztos abban, hogy használni akarja (i/N)? "
 
 #, fuzzy
 msgid "Are you sure you want to delete it? (y/N) "
-msgstr "Biztos abban, hogy használni akarja (i/N)? "
+msgstr "Biztos abban, hogy használni akarja (i/N)? "
 
 #, fuzzy
 msgid "Enter the notation: "
-msgstr "Aláírás-jelölés: "
+msgstr "Aláírás-jelölés: "
 
 #, fuzzy
 msgid "Proceed? (y/N) "
-msgstr "Felülírjam (i/N)? "
+msgstr "Felülírjam (i/N)? "
 
 #, c-format
 msgid "No user ID with index %d\n"
-msgstr "Nincs %d indexû felhasználóazonosító!\n"
+msgstr "Nincs %d indexű felhasználóazonosító!\n"
 
 #, fuzzy, c-format
 msgid "No user ID with hash %s\n"
-msgstr "Nincs %d indexû felhasználóazonosító!\n"
+msgstr "Nincs %d indexű felhasználóazonosító!\n"
 
 #, fuzzy, c-format
 msgid "No subkey with key ID '%s'.\n"
-msgstr "Nincs %d indexû felhasználóazonosító!\n"
+msgstr "Nincs %d indexű felhasználóazonosító!\n"
 
 #, fuzzy, c-format
 msgid "No subkey with index %d\n"
-msgstr "Nincs %d indexû felhasználóazonosító!\n"
+msgstr "Nincs %d indexű felhasználóazonosító!\n"
 
 #, fuzzy, c-format
 msgid "user ID: \"%s\"\n"
-msgstr "Felhasználóazonosító: \""
+msgstr "Felhasználóazonosító: \""
 
 #, fuzzy, c-format
 msgid "signed by your key %s on %s%s%s\n"
-msgstr "   aláírva %08lX által %s%s%s idõpontban.\n"
+msgstr "   aláírva %08lX által %s%s%s időpontban.\n"
 
 msgid " (non-exportable)"
-msgstr " (nem exportálható)"
+msgstr " (nem exportálható)"
 
 #, c-format
 msgid "This signature expired on %s.\n"
-msgstr "Ez az aláírás lejárt %s idõpontban.\n"
+msgstr "Ez az aláírás lejárt %s időpontban.\n"
 
 msgid "Are you sure you still want to revoke it? (y/N) "
-msgstr "Biztos benne, hogy mégis visszavonja? (i/N) "
+msgstr "Biztos benne, hogy mégis visszavonja? (i/N) "
 
 msgid "Create a revocation certificate for this signature? (y/N) "
-msgstr "Csináljunk egy visszavonó igazolást ehhez az aláíráshoz? (i/N) "
+msgstr "Csináljunk egy visszavonó igazolást ehhez az aláíráshoz? (i/N) "
 
 #, fuzzy
 msgid "Not signed by you.\n"
-msgstr "   aláírva %08lX által %s%s idõpontban.\n"
+msgstr "   aláírva %08lX által %s%s időpontban.\n"
 
 #, fuzzy, c-format
 msgid "You have signed these user IDs on key %s:\n"
-msgstr "Ön aláírta a következõ felhasználóazonosítókat:\n"
+msgstr "Ön aláírta a következő felhasználóazonosítókat:\n"
 
 #, fuzzy
 msgid " (non-revocable)"
-msgstr " (nem exportálható)"
+msgstr " (nem exportálható)"
 
 #, fuzzy, c-format
 msgid "revoked by your key %s on %s\n"
-msgstr "   visszavonva %08lX által %s idõpontban.\n"
+msgstr "   visszavonva %08lX által %s időpontban.\n"
 
 msgid "You are about to revoke these signatures:\n"
-msgstr "A következõ aláírásokat fogja visszavonni:\n"
+msgstr "A következő aláírásokat fogja visszavonni:\n"
 
 msgid "Really create the revocation certificates? (y/N) "
-msgstr "Valóban létrehozzam a visszavonó igazolást? (i/N) "
+msgstr "Valóban létrehozzam a visszavonó igazolást? (i/N) "
 
 msgid "no secret key\n"
 msgstr "Nincs titkos kulcs.\n"
@@ -3864,61 +3877,61 @@ msgstr ""
 
 #, c-format
 msgid "user ID \"%s\" is already revoked\n"
-msgstr "\"%s\" felhasználói azonosítót már visszavonták.\n"
+msgstr "\"%s\" felhasználói azonosítót már visszavonták.\n"
 
 #, c-format
 msgid "WARNING: a user ID signature is dated %d seconds in the future\n"
 msgstr ""
-"FIGYELEM: A felhasználóazonosítót %d másodperccel a jövõben írták alá.\n"
+"FIGYELEM: A felhasználóazonosítót %d másodperccel a jövőben írták alá.\n"
 
 #, fuzzy, c-format
 msgid "Key %s is already revoked.\n"
-msgstr "\"%s\" felhasználói azonosítót már visszavonták.\n"
+msgstr "\"%s\" felhasználói azonosítót már visszavonták.\n"
 
 #, fuzzy, c-format
 msgid "Subkey %s is already revoked.\n"
-msgstr "\"%s\" felhasználói azonosítót már visszavonták.\n"
+msgstr "\"%s\" felhasználói azonosítót már visszavonták.\n"
 
 #, fuzzy, c-format
 msgid "Displaying %s photo ID of size %ld for key %s (uid %d)\n"
-msgstr "%s fotóazonosító (méret: %ld, kulcs: 0x%08lX, felh: %d) mutatása.\n"
+msgstr "%s fotóazonosító (méret: %ld, kulcs: 0x%08lX, felh: %d) mutatása.\n"
 
 #, fuzzy, c-format
 msgid "preference '%s' duplicated\n"
-msgstr "%c%lu preferencia kétszer szerepel!\n"
+msgstr "%c%lu preferencia kétszer szerepel!\n"
 
 #, fuzzy
 msgid "too many cipher preferences\n"
-msgstr "Túl sok \"%c\" preferencia.\n"
+msgstr "Túl sok \"%c\" preferencia.\n"
 
 #, fuzzy
 msgid "too many digest preferences\n"
-msgstr "Túl sok \"%c\" preferencia.\n"
+msgstr "Túl sok \"%c\" preferencia.\n"
 
 #, fuzzy
 msgid "too many compression preferences\n"
-msgstr "Túl sok \"%c\" preferencia.\n"
+msgstr "Túl sok \"%c\" preferencia.\n"
 
 #, fuzzy, c-format
 msgid "invalid item '%s' in preference string\n"
-msgstr "Érvénytelen karakter a preferenciák között!\n"
+msgstr "Érvénytelen karakter a preferenciák között!\n"
 
 msgid "writing direct signature\n"
-msgstr "Sima aláírást írok.\n"
+msgstr "Sima aláírást írok.\n"
 
 msgid "writing self signature\n"
-msgstr "Önaláírást írok.\n"
+msgstr "Önaláírást írok.\n"
 
 msgid "writing key binding signature\n"
-msgstr "Összefûzõ aláírást írok.\n"
+msgstr "Összefűző aláírást írok.\n"
 
 #, c-format
 msgid "keysize invalid; using %u bits\n"
-msgstr "Kulcsméret érvénytelen; %u bitet használok.\n"
+msgstr "Kulcsméret érvénytelen; %u bitet használok.\n"
 
 #, c-format
 msgid "keysize rounded up to %u bits\n"
-msgstr "Kulcsméretet felkerekítettem %u bitre.\n"
+msgstr "Kulcsméretet felkerekítettem %u bitre.\n"
 
 msgid ""
 "WARNING: some OpenPGP programs can't handle a DSA key with this digest size\n"
@@ -3933,7 +3946,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Encrypt"
-msgstr "adat titkosítása"
+msgstr "adat titkosítása"
 
 msgid "Authenticate"
 msgstr ""
@@ -3964,7 +3977,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "   (%c) Toggle the encrypt capability\n"
-msgstr "   (%d) ElGamal (csak titkosítás)\n"
+msgstr "   (%d) ElGamal (csak titkosítás)\n"
 
 #, c-format
 msgid "   (%c) Toggle the authenticate capability\n"
@@ -3975,77 +3988,77 @@ msgid "   (%c) Finished\n"
 msgstr ""
 
 msgid "Please select what kind of key you want:\n"
-msgstr "Kérem, adja meg, milyen kulcsot kíván:\n"
+msgstr "Kérem, adja meg, milyen kulcsot kíván:\n"
 
 #, fuzzy, c-format
 msgid "   (%d) RSA and RSA (default)\n"
-msgstr "   (%d) DSA és ElGamal (alapértelmezés)\n"
+msgstr "   (%d) DSA és ElGamal (alapértelmezés)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) DSA and Elgamal\n"
-msgstr "   (%d) DSA és ElGamal (alapértelmezés)\n"
+msgstr "   (%d) DSA és ElGamal (alapértelmezés)\n"
 
 #, c-format
 msgid "   (%d) DSA (sign only)\n"
-msgstr "   (%d) DSA (csak aláírás)\n"
+msgstr "   (%d) DSA (csak aláírás)\n"
 
 #, c-format
 msgid "   (%d) RSA (sign only)\n"
-msgstr "   (%d) RSA (csak aláírás)\n"
+msgstr "   (%d) RSA (csak aláírás)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) Elgamal (encrypt only)\n"
-msgstr "   (%d) ElGamal (csak titkosítás)\n"
+msgstr "   (%d) ElGamal (csak titkosítás)\n"
 
 #, c-format
 msgid "   (%d) RSA (encrypt only)\n"
-msgstr "   (%d) RSA (csak titkosítás)\n"
+msgstr "   (%d) RSA (csak titkosítás)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) DSA (set your own capabilities)\n"
-msgstr "   (%d) RSA (csak titkosítás)\n"
+msgstr "   (%d) RSA (csak titkosítás)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) RSA (set your own capabilities)\n"
-msgstr "   (%d) RSA (csak titkosítás)\n"
+msgstr "   (%d) RSA (csak titkosítás)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) ECC and ECC\n"
-msgstr "   (%d) DSA és ElGamal (alapértelmezés)\n"
+msgstr "   (%d) DSA és ElGamal (alapértelmezés)\n"
 
 #, fuzzy, c-format
 #| msgid "   (%d) DSA (sign only)\n"
 msgid "  (%d) ECC (sign only)\n"
-msgstr "   (%d) DSA (csak aláírás)\n"
+msgstr "   (%d) DSA (csak aláírás)\n"
 
 #, fuzzy, c-format
 msgid "  (%d) ECC (set your own capabilities)\n"
-msgstr "   (%d) RSA (csak titkosítás)\n"
+msgstr "   (%d) RSA (csak titkosítás)\n"
 
 #, fuzzy, c-format
 #| msgid "   (%d) RSA (encrypt only)\n"
 msgid "  (%d) ECC (encrypt only)\n"
-msgstr "   (%d) RSA (csak titkosítás)\n"
+msgstr "   (%d) RSA (csak titkosítás)\n"
 
 #, fuzzy, c-format
 msgid "  (%d) Existing key\n"
-msgstr "   (%d) RSA (csak titkosítás)\n"
+msgstr "   (%d) RSA (csak titkosítás)\n"
 
 #, fuzzy
 msgid "Enter the keygrip: "
-msgstr "Aláírás-jelölés: "
+msgstr "Aláírás-jelölés: "
 
 msgid "Not a valid keygrip (expecting 40 hex digits)\n"
 msgstr ""
 
 #, fuzzy
 msgid "No key with this keygrip\n"
-msgstr "Nincs %d indexû felhasználóazonosító!\n"
+msgstr "Nincs %d indexű felhasználóazonosító!\n"
 
 #, fuzzy, c-format
 #| msgid "rounded up to %u bits\n"
 msgid "rounded to %u bits\n"
-msgstr "Felkerekítve %u bitre.\n"
+msgstr "Felkerekítve %u bitre.\n"
 
 #, c-format
 msgid "%s keys may be between %u and %u bits long.\n"
@@ -4053,20 +4066,20 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the subkey? (%u) "
-msgstr "Milyen kulcsméretet szeretne? (1024) "
+msgstr "Milyen kulcsméretet szeretne? (1024) "
 
 #, fuzzy, c-format
 msgid "What keysize do you want? (%u) "
-msgstr "Milyen kulcsméretet szeretne? (1024) "
+msgstr "Milyen kulcsméretet szeretne? (1024) "
 
 #, c-format
 msgid "Requested keysize is %u bits\n"
-msgstr "A kívánt kulcsméret %u bit.\n"
+msgstr "A kívánt kulcsméret %u bit.\n"
 
 #, fuzzy
 #| msgid "Please select what kind of key you want:\n"
 msgid "Please select which elliptic curve you want:\n"
-msgstr "Kérem, adja meg, milyen kulcsot kíván:\n"
+msgstr "Kérem, adja meg, milyen kulcsot kíván:\n"
 
 msgid ""
 "Please specify how long the key should be valid.\n"
@@ -4076,12 +4089,12 @@ msgid ""
 "      <n>m = key expires in n months\n"
 "      <n>y = key expires in n years\n"
 msgstr ""
-"Kérem, adja meg, meddig legyen érvényes a kulcs!\n"
-"         0 = a kulcs soha nem jár le\n"
-"      <n>  = a kulcs n napig érvényes\n"
-"      <n>w = a kulcs n hétig érvényes\n"
-"      <n>m = a kulcs n hónapig érvényes\n"
-"      <n>y = a kulcs n évig érvényes\n"
+"Kérem, adja meg, meddig legyen érvényes a kulcs!\n"
+"         0 = a kulcs soha nem jár le\n"
+"      <n>  = a kulcs n napig érvényes\n"
+"      <n>w = a kulcs n hétig érvényes\n"
+"      <n>m = a kulcs n hónapig érvényes\n"
+"      <n>y = a kulcs n évig érvényes\n"
 
 msgid ""
 "Please specify how long the signature should be valid.\n"
@@ -4091,49 +4104,49 @@ msgid ""
 "      <n>m = signature expires in n months\n"
 "      <n>y = signature expires in n years\n"
 msgstr ""
-"Kérem, adja meg, meddig legyen érvényes az aláírás!\n"
-"         0 = az aláírás soha nem jár le\n"
-"      <n>  = az aláírás n napig érvényes\n"
-"      <n>w = az aláírás n hétig érvényes\n"
-"      <n>m = az aláírás n hónapig érvényes\n"
-"      <n>y = az aláírás n évig érvényes\n"
+"Kérem, adja meg, meddig legyen érvényes az aláírás!\n"
+"         0 = az aláírás soha nem jár le\n"
+"      <n>  = az aláírás n napig érvényes\n"
+"      <n>w = az aláírás n hétig érvényes\n"
+"      <n>m = az aláírás n hónapig érvényes\n"
+"      <n>y = az aláírás n évig érvényes\n"
 
 msgid "Key is valid for? (0) "
-msgstr "Meddig érvényes a kulcs? (0) "
+msgstr "Meddig érvényes a kulcs? (0) "
 
 #, fuzzy, c-format
 msgid "Signature is valid for? (%s) "
-msgstr "Meddig érvényes az aláírás? (0) "
+msgstr "Meddig érvényes az aláírás? (0) "
 
 msgid "invalid value\n"
-msgstr "Érvénytelen érték!\n"
+msgstr "Érvénytelen érték!\n"
 
 #, fuzzy
 msgid "Key does not expire at all\n"
-msgstr "%s soha nem jár le.\n"
+msgstr "%s soha nem jár le.\n"
 
 #, fuzzy
 msgid "Signature does not expire at all\n"
-msgstr "%s soha nem jár le.\n"
+msgstr "%s soha nem jár le.\n"
 
 #, fuzzy, c-format
 msgid "Key expires at %s\n"
-msgstr "%s lejár: %s\n"
+msgstr "%s lejár: %s\n"
 
 #, fuzzy, c-format
 msgid "Signature expires at %s\n"
-msgstr "Az aláírás lejár: %s.\n"
+msgstr "Az aláírás lejár: %s.\n"
 
 msgid ""
 "Your system can't display dates beyond 2038.\n"
 "However, it will be correctly handled up to 2106.\n"
 msgstr ""
-"Az Ön rendszere nem tud megjeleníteni 2038 utáni dátumokat.\n"
-"Azonban kezelni helyesen tudja õket egészen 2106-ig.\n"
+"Az Ön rendszere nem tud megjeleníteni 2038 utáni dátumokat.\n"
+"Azonban kezelni helyesen tudja őket egészen 2106-ig.\n"
 
 #, fuzzy
 msgid "Is this correct? (y/N) "
-msgstr "Ez így helyes (i/n)? "
+msgstr "Ez így helyes (i/n)? "
 
 msgid ""
 "\n"
@@ -4155,44 +4168,44 @@ msgid ""
 "\n"
 msgstr ""
 "\n"
-"Szüksége lesz egy felhasználói azonosítóra a kulcsa azonosításához;\n"
-"a szoftver ezt a teljes névbõl, megjegyzésbõl és e-mail címbõl állítja\n"
-"elõ a következõ formában:\n"
-"    \"Heinrich Heine (a költõ) <heinrichh@duesseldorf.de>\"\n"
+"Szüksége lesz egy felhasználói azonosítóra a kulcsa azonosításához;\n"
+"a szoftver ezt a teljes névből, megjegyzésből és e-mail címből állítja\n"
+"elő a következő formában:\n"
+"    \"Heinrich Heine (a költő) <heinrichh@duesseldorf.de>\"\n"
 "\n"
 
 msgid "Real name: "
-msgstr "Teljes név: "
+msgstr "Teljes név: "
 
 msgid "Invalid character in name\n"
-msgstr "Érvénytelen karakter a névben!\n"
+msgstr "Érvénytelen karakter a névben!\n"
 
 #, c-format
 msgid "The characters '%s' and '%s' may not appear in name\n"
 msgstr ""
 
 msgid "Name may not start with a digit\n"
-msgstr "A név lehet, hogy nem kezdõdhet számmal!\n"
+msgstr "A név lehet, hogy nem kezdődhet számmal!\n"
 
 msgid "Name must be at least 5 characters long\n"
-msgstr "A név legalább 5 karakter kell legyen!\n"
+msgstr "A név legalább 5 karakter kell legyen!\n"
 
 msgid "Email address: "
-msgstr "E-mail cím: "
+msgstr "E-mail cím: "
 
 msgid "Not a valid email address\n"
-msgstr "Ez nem érvényes e-mail cím.\n"
+msgstr "Ez nem érvényes e-mail cím.\n"
 
 msgid "Comment: "
-msgstr "Megjegyzés: "
+msgstr "Megjegyzés: "
 
 msgid "Invalid character in comment\n"
-msgstr "Érvénytelen karakter a megjegyzésben!\n"
+msgstr "Érvénytelen karakter a megjegyzésben!\n"
 
 #, fuzzy, c-format
 #| msgid "You are using the `%s' character set.\n"
 msgid "You are using the '%s' character set.\n"
-msgstr "Ön a(z) %s karakterkódolást használja.\n"
+msgstr "Ön a(z) %s karakterkódolást használja.\n"
 
 #, c-format
 msgid ""
@@ -4200,12 +4213,12 @@ msgid ""
 "    \"%s\"\n"
 "\n"
 msgstr ""
-"Ön a következõ felhasználói azonosítót választotta:\n"
+"Ön a következő felhasználói azonosítót választotta:\n"
 "    \"%s\"\n"
 "\n"
 
 msgid "Please don't put the email address into the real name or the comment\n"
-msgstr "Kérem, ne rakja az e-mail címet a teljes névbe vagy a megjegyzésbe!\n"
+msgstr "Kérem, ne rakja az e-mail címet a teljes névbe vagy a megjegyzésbe!\n"
 
 #. TRANSLATORS: These are the allowed answers in
 #. lower and uppercase.  Below you will find the matching
@@ -4222,25 +4235,25 @@ msgid "NnCcEeOoQq"
 msgstr "NnMmEeRrKk"
 
 msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
-msgstr "(N)év, (M)egjegyzés, (E)-mail megváltoztatása vagy (K)ilépés? "
+msgstr "(N)év, (M)egjegyzés, (E)-mail megváltoztatása vagy (K)ilépés? "
 
 msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
 msgstr ""
-"(N)év, (M)egjegyzés, (E)-mail megváltoztatása vagy (R)endben/(K)ilépés? "
+"(N)év, (M)egjegyzés, (E)-mail megváltoztatása vagy (R)endben/(K)ilépés? "
 
 #, fuzzy
 #| msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
 msgid "Change (N)ame, (E)mail, or (Q)uit? "
-msgstr "(N)év, (M)egjegyzés, (E)-mail megváltoztatása vagy (K)ilépés? "
+msgstr "(N)év, (M)egjegyzés, (E)-mail megváltoztatása vagy (K)ilépés? "
 
 #, fuzzy
 #| msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
 msgid "Change (N)ame, (E)mail, or (O)kay/(Q)uit? "
 msgstr ""
-"(N)év, (M)egjegyzés, (E)-mail megváltoztatása vagy (R)endben/(K)ilépés? "
+"(N)év, (M)egjegyzés, (E)-mail megváltoztatása vagy (R)endben/(K)ilépés? "
 
 msgid "Please correct the error first\n"
-msgstr "Kérem, elõbb javítsa ki a hibát!\n"
+msgstr "Kérem, előbb javítsa ki a hibát!\n"
 
 msgid ""
 "We need to generate a lot of random bytes. It is a good idea to perform\n"
@@ -4248,14 +4261,14 @@ msgid ""
 "disks) during the prime generation; this gives the random number\n"
 "generator a better chance to gain enough entropy.\n"
 msgstr ""
-"Nagyon sok véletlen bájtra van szükségünk. Jó ötlet, ha csinál valami\n"
-"egyéb mûveletet (gépel a billentyûzeten, mozgatja az egeret, használja\n"
-"a lemezeket) a prímszám generálása alatt. Ez segíti a véletlenszám-\n"
-"generátort, hogy entrópiát tudjon gyûjteni.\n"
+"Nagyon sok véletlen bájtra van szükségünk. Jó ötlet, ha csinál valami\n"
+"egyéb műveletet (gépel a billentyűzeten, mozgatja az egeret, használja\n"
+"a lemezeket) a prímszám generálása alatt. Ez segíti a véletlenszám-\n"
+"generátort, hogy entrópiát tudjon gyűjteni.\n"
 
 #, c-format
 msgid "Key generation failed: %s\n"
-msgstr "Kulcsgenerálás sikertelen: %s\n"
+msgstr "Kulcsgenerálás sikertelen: %s\n"
 
 #, c-format
 msgid ""
@@ -4269,119 +4282,119 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "A key for \"%s\" already exists\n"
-msgstr "\"%s\" már tömörített.\n"
+msgstr "\"%s\" már tömörített.\n"
 
 #, fuzzy
 #| msgid "Create anyway? "
 msgid "Create anyway? (y/N) "
-msgstr "Mégis létrehozzam? "
+msgstr "Mégis létrehozzam? "
 
 #, fuzzy
 #| msgid "Create anyway? "
 msgid "creating anyway\n"
-msgstr "Mégis létrehozzam? "
+msgstr "Mégis létrehozzam? "
 
 #, c-format
 msgid "Note: Use \"%s %s\" for a full featured key generation dialog.\n"
 msgstr ""
 
 msgid "Key generation canceled.\n"
-msgstr "Kulcs létrehozása megszakítva.\n"
+msgstr "Kulcs létrehozása megszakítva.\n"
 
 #, fuzzy, c-format
 msgid "can't create backup file '%s': %s\n"
-msgstr "Nem tudom létrehozni a(z) \"%s\" állományt: %s.\n"
+msgstr "Nem tudom létrehozni a(z) \"%s\" állományt: %s.\n"
 
 #, fuzzy, c-format
 msgid "Note: backup of card key saved to '%s'\n"
-msgstr "MEGJEGYZÉS: %08lX titkos kulcs %s-kor lejárt.\n"
+msgstr "MEGJEGYZÉS: %08lX titkos kulcs %s-kor lejárt.\n"
 
 #, fuzzy, c-format
 #| msgid "writing public key to `%s'\n"
 msgid "writing public key to '%s'\n"
-msgstr "Írom a kulcsot a %s állományba.\n"
+msgstr "Írom a kulcsot a %s állományba.\n"
 
 #, c-format
 msgid "no writable public keyring found: %s\n"
-msgstr "Nem írható nyilvánoskulcs-karikát találtam: %s\n"
+msgstr "Nem írható nyilvánoskulcs-karikát találtam: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing public keyring `%s': %s\n"
 msgid "error writing public keyring '%s': %s\n"
-msgstr "Hiba a(z) \"%s\" nyilvánoskulcs-karika írásakor: %s.\n"
+msgstr "Hiba a(z) \"%s\" nyilvánoskulcs-karika írásakor: %s.\n"
 
 msgid "public and secret key created and signed.\n"
-msgstr "A nyilvános és titkos kulcsokat létrehoztam és aláírtam.\n"
+msgstr "A nyilvános és titkos kulcsokat létrehoztam és aláírtam.\n"
 
 #, fuzzy
 msgid ""
 "Note that this key cannot be used for encryption.  You may want to use\n"
 "the command \"--edit-key\" to generate a subkey for this purpose.\n"
 msgstr ""
-"Ez a kulcs nem használható titkosításra. Ha egy másodlagos kulcsot\n"
-"kíván ilyen célra létrehozni, azt az \"--edit-key\" parancs segítségével\n"
+"Ez a kulcs nem használható titkosításra. Ha egy másodlagos kulcsot\n"
+"kíván ilyen célra létrehozni, azt az \"--edit-key\" parancs segítségével\n"
 "teheti meg.\n"
 
 #, c-format
 msgid ""
 "key has been created %lu second in future (time warp or clock problem)\n"
 msgstr ""
-"A kulcs %lu másodperccel a jövõben készült. (Idõugrás vagy óraprobléma.)\n"
+"A kulcs %lu másodperccel a jövőben készült. (Időugrás vagy óraprobléma.)\n"
 
 #, c-format
 msgid ""
 "key has been created %lu seconds in future (time warp or clock problem)\n"
 msgstr ""
-"A kulcs %lu másodperccel a jövõben készült. (Idõugrás vagy óraprobléma.)\n"
+"A kulcs %lu másodperccel a jövőben készült. (Időugrás vagy óraprobléma.)\n"
 
 #, fuzzy
 #| msgid "NOTE: creating subkeys for v3 keys is not OpenPGP compliant\n"
 msgid "Note: creating subkeys for v3 keys is not OpenPGP compliant\n"
 msgstr ""
-"MEGJEGYZÉS: Alkulcsok létrehozása v3 kulcsokhoz nem OpenPGP-megfelelõ.\n"
+"MEGJEGYZÉS: Alkulcsok létrehozása v3 kulcsokhoz nem OpenPGP-megfelelő.\n"
 
 msgid "Secret parts of primary key are not available.\n"
-msgstr "Az elsõdleges kulcs titkos részei nem elérhetõk.\n"
+msgstr "Az elsődleges kulcs titkos részei nem elérhetők.\n"
 
 #, fuzzy
 msgid "Secret parts of primary key are stored on-card.\n"
-msgstr "Az elsõdleges kulcs titkos részei nem elérhetõk.\n"
+msgstr "Az elsődleges kulcs titkos részei nem elérhetők.\n"
 
 #, fuzzy
 msgid "Really create? (y/N) "
-msgstr "Valóban létrehozzam? "
+msgstr "Valóban létrehozzam? "
 
 msgid "never     "
 msgstr "soha      "
 
 msgid "Critical signature policy: "
-msgstr "Kritikus aláírási eljárásmód: "
+msgstr "Kritikus aláírási eljárásmód: "
 
 msgid "Signature policy: "
-msgstr "Aláírási eljárásmód: "
+msgstr "Aláírási eljárásmód: "
 
 msgid "Critical preferred keyserver: "
 msgstr ""
 
 msgid "Critical signature notation: "
-msgstr "Kritikus aláírás-jelölés: "
+msgstr "Kritikus aláírás-jelölés: "
 
 msgid "Signature notation: "
-msgstr "Aláírás-jelölés: "
+msgstr "Aláírás-jelölés: "
 
 #, fuzzy, c-format
 #| msgid "%d bad signatures\n"
 msgid "%d good signature\n"
 msgid_plural "%d good signatures\n"
-msgstr[0] "%d rossz aláírás.\n"
-msgstr[1] "%d rossz aláírás.\n"
+msgstr[0] "%d rossz aláírás.\n"
+msgstr[1] "%d rossz aláírás.\n"
 
 #, fuzzy, c-format
 #| msgid "1 signature not checked due to an error\n"
 msgid "%d signature not checked due to an error\n"
 msgid_plural "%d signatures not checked due to errors\n"
-msgstr[0] "1 aláírást nem ellenõriztem hiba miatt.\n"
-msgstr[1] "1 aláírást nem ellenõriztem hiba miatt.\n"
+msgstr[0] "1 aláírást nem ellenőriztem hiba miatt.\n"
+msgstr[1] "1 aláírást nem ellenőriztem hiba miatt.\n"
 
 #, c-format
 msgid "Warning: %lu key skipped due to its large size\n"
@@ -4393,7 +4406,7 @@ msgid "Keyring"
 msgstr "Kulcskarika"
 
 msgid "Primary key fingerprint:"
-msgstr "Elsõdlegeskulcs-ujjlenyomat:"
+msgstr "Elsődlegeskulcs-ujjlenyomat:"
 
 msgid "     Subkey fingerprint:"
 msgstr "         Alkulcsujjlenyomat:"
@@ -4401,7 +4414,7 @@ msgstr "         Alkulcsujjlenyomat:"
 #. TRANSLATORS: this should fit into 24 bytes so that the
 #. * fingerprint data is properly aligned with the user ID
 msgid " Primary key fingerprint:"
-msgstr "Elsõdlegeskulcs-ujjlenyomat:"
+msgstr "Elsődlegeskulcs-ujjlenyomat:"
 
 msgid "      Subkey fingerprint:"
 msgstr "         Alkulcsujjlenyomat:"
@@ -4415,13 +4428,13 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "caching keyring '%s'\n"
-msgstr "Ellenõrzöm a(z) \"%s\" kulcskarikát.\n"
+msgstr "Ellenőrzöm a(z) \"%s\" kulcskarikát.\n"
 
 #, fuzzy, c-format
 msgid "%lu keys cached so far (%lu signature)\n"
 msgid_plural "%lu keys cached so far (%lu signatures)\n"
-msgstr[0] "%lu kulcsot ellenõriztem (%lu aláírással).\n"
-msgstr[1] "%lu kulcsot ellenõriztem (%lu aláírással).\n"
+msgstr[0] "%lu kulcsot ellenőriztem (%lu aláírással).\n"
+msgstr[1] "%lu kulcsot ellenőriztem (%lu aláírással).\n"
 
 #, c-format
 msgid "%lu key cached"
@@ -4433,12 +4446,12 @@ msgstr[1] ""
 #| msgid "1 bad signature\n"
 msgid " (%lu signature)\n"
 msgid_plural " (%lu signatures)\n"
-msgstr[0] "1 rossz aláírás.\n"
-msgstr[1] "1 rossz aláírás.\n"
+msgstr[0] "1 rossz aláírás.\n"
+msgstr[1] "1 rossz aláírás.\n"
 
 #, c-format
 msgid "%s: keyring created\n"
-msgstr "%s: Kulcskarikát létrehoztam.\n"
+msgstr "%s: Kulcskarikát létrehoztam.\n"
 
 msgid "override proxy options set for dirmngr"
 msgstr ""
@@ -4457,7 +4470,7 @@ msgstr ""
 
 #, fuzzy
 msgid "honor the preferred keyserver URL set on the key"
-msgstr "A megadott aláírási eljárásmód URL-je érvénytelen!\n"
+msgstr "A megadott aláírási eljárásmód URL-je érvénytelen!\n"
 
 msgid "honor the PKA record set on a key when retrieving keys"
 msgstr ""
@@ -4471,7 +4484,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid keyserver protocol (us %d!=handler %d)\n"
-msgstr "Érvénytelen export opciók!\n"
+msgstr "Érvénytelen export opciók!\n"
 
 #, c-format
 msgid "\"%s\" not a key ID: skipping\n"
@@ -4480,36 +4493,36 @@ msgstr ""
 #, fuzzy, c-format
 msgid "refreshing %d key from %s\n"
 msgid_plural "refreshing %d keys from %s\n"
-msgstr[0] "Lekérem a %08lX kulcsot a %s kulcsszerverrõl.\n"
-msgstr[1] "Lekérem a %08lX kulcsot a %s kulcsszerverrõl.\n"
+msgstr[0] "Lekérem a %08lX kulcsot a %s kulcsszerverről.\n"
+msgstr[1] "Lekérem a %08lX kulcsot a %s kulcsszerverről.\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unable to refresh key %s via %s: %s\n"
 msgstr ""
-"FIGYELEM: Nem tudom törölni az (\"%s\") átmeneti állományt: \"%s\": %s.\n"
+"FIGYELEM: Nem tudom törölni az (\"%s\") átmeneti állományt: \"%s\": %s.\n"
 
 #, fuzzy, c-format
 msgid "key \"%s\" not found on keyserver\n"
-msgstr "\"%s\" kulcs nem található: %s\n"
+msgstr "\"%s\" kulcs nem található: %s\n"
 
 #, fuzzy
 msgid "key not found on keyserver\n"
-msgstr "\"%s\" kulcs nem található: %s\n"
+msgstr "\"%s\" kulcs nem található: %s\n"
 
 msgid "no keyserver known (use option --keyserver)\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "requesting key %s from %s server %s\n"
-msgstr "Lekérem a %08lX kulcsot a %s kulcsszerverrõl.\n"
+msgstr "Lekérem a %08lX kulcsot a %s kulcsszerverről.\n"
 
 #, fuzzy, c-format
 msgid "requesting key %s from %s\n"
-msgstr "Lekérem a %08lX kulcsot a %s kulcsszerverrõl.\n"
+msgstr "Lekérem a %08lX kulcsot a %s kulcsszerverről.\n"
 
 #, fuzzy
 msgid "no keyserver known\n"
-msgstr "Érvénytelen export opciók!\n"
+msgstr "Érvénytelen export opciók!\n"
 
 #, fuzzy, c-format
 msgid "skipped \"%s\": %s\n"
@@ -4519,39 +4532,39 @@ msgstr "Kihagytam \"%s\"-t: %s.\n"
 msgid "sending key %s to %s\n"
 msgstr ""
 "\"\n"
-"Aláírva az Ön %08lX kulcsával %s idõpontban.\n"
+"Aláírva az Ön %08lX kulcsával %s időpontban.\n"
 
 #, fuzzy, c-format
 msgid "requesting key from '%s'\n"
-msgstr "Lekérem a %08lX kulcsot a %s kulcsszerverrõl.\n"
+msgstr "Lekérem a %08lX kulcsot a %s kulcsszerverről.\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unable to fetch URI %s: %s\n"
 msgstr ""
-"FIGYELEM: Nem tudom törölni az (\"%s\") átmeneti állományt: \"%s\": %s.\n"
+"FIGYELEM: Nem tudom törölni az (\"%s\") átmeneti állományt: \"%s\": %s.\n"
 
 #, c-format
 msgid "weird size for an encrypted session key (%d)\n"
-msgstr "Furcsa méretû (%d) titkosított munkafolyamatkulcs.\n"
+msgstr "Furcsa méretű (%d) titkosított munkafolyamatkulcs.\n"
 
 #, c-format
 msgid "%s encrypted session key\n"
-msgstr "%s titkosított munkafolyamatkulcs\n"
+msgstr "%s titkosított munkafolyamatkulcs\n"
 
 #, fuzzy, c-format
 msgid "passphrase generated with unknown digest algorithm %d\n"
-msgstr "Ismeretlen algoritmussal (%d) titkosítva.\n"
+msgstr "Ismeretlen algoritmussal (%d) titkosítva.\n"
 
 #, fuzzy, c-format
 msgid "public key is %s\n"
-msgstr "Nyilvános kulcs: %08lX\n"
+msgstr "Nyilvános kulcs: %08lX\n"
 
 msgid "public key encrypted data: good DEK\n"
-msgstr "Nyilvános kulccsal titkosított adat: jó DEK.\n"
+msgstr "Nyilvános kulccsal titkosított adat: jó DEK.\n"
 
 #, fuzzy, c-format
 msgid "encrypted with %u-bit %s key, ID %s, created %s\n"
-msgstr "Titkosítva %u bites %s kulccsal, azonosító: %08lX, létrehozva: %s\n"
+msgstr "Titkosítva %u bites %s kulccsal, azonosító: %08lX, létrehozva: %s\n"
 
 #, fuzzy, c-format
 msgid "      \"%s\"\n"
@@ -4559,84 +4572,84 @@ msgstr "               azaz \""
 
 #, fuzzy, c-format
 msgid "encrypted with %s key, ID %s\n"
-msgstr "Titkosítva %s kulccsal, azonosító: %08lX\n"
+msgstr "Titkosítva %s kulccsal, azonosító: %08lX\n"
 
 #, c-format
 msgid "public key decryption failed: %s\n"
-msgstr "Nyilvános kulcsú visszafejtés sikertelen: %s\n"
+msgstr "Nyilvános kulcsú visszafejtés sikertelen: %s\n"
 
 #, c-format
 msgid "encrypted with %lu passphrases\n"
-msgstr "%lu jelszóval rejtjelezve\n"
+msgstr "%lu jelszóval rejtjelezve\n"
 
 msgid "encrypted with 1 passphrase\n"
-msgstr "1 jelszóval rejtjelezve\n"
+msgstr "1 jelszóval rejtjelezve\n"
 
 #, c-format
 msgid "assuming %s encrypted data\n"
-msgstr "%s titkosított adatot feltételezek.\n"
+msgstr "%s titkosított adatot feltételezek.\n"
 
 #, c-format
 msgid "IDEA cipher unavailable, optimistically attempting to use %s instead\n"
 msgstr ""
-"IDEA rejtjelezõ nem áll rendelkezésre, optimista módon megpróbálok\n"
-"%s-t használni helyette.\n"
+"IDEA rejtjelező nem áll rendelkezésre, optimista módon megpróbálok\n"
+"%s-t használni helyette.\n"
 
 msgid "WARNING: message was not integrity protected\n"
-msgstr "FIGYELEM: Az üzenetet nem látták el integritásvédelemmel.\n"
+msgstr "FIGYELEM: Az üzenetet nem látták el integritásvédelemmel.\n"
 
 msgid "decryption okay\n"
-msgstr "Visszafejtés rendben.\n"
+msgstr "Visszafejtés rendben.\n"
 
 msgid "WARNING: encrypted message has been manipulated!\n"
-msgstr "FIGYELEM: A titkosított üzenetet manipulálták!\n"
+msgstr "FIGYELEM: A titkosított üzenetet manipulálták!\n"
 
 #, c-format
 msgid "decryption failed: %s\n"
-msgstr "Visszafejtés sikertelen: %s.\n"
+msgstr "Visszafejtés sikertelen: %s.\n"
 
 #, fuzzy
 #| msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
 msgid "Note: sender requested \"for-your-eyes-only\"\n"
-msgstr "MEGJEGYZÉS: A feladó kérése: \"csak az Ön szemeinek\".\n"
+msgstr "MEGJEGYZÉS: A feladó kérése: \"csak az Ön szemeinek\".\n"
 
 #, c-format
 msgid "original file name='%.*s'\n"
-msgstr "Eredeti fájlnév: '%.*s'.\n"
+msgstr "Eredeti fájlnév: '%.*s'.\n"
 
 msgid "WARNING: multiple plaintexts seen\n"
 msgstr ""
 
 msgid "standalone revocation - use \"gpg --import\" to apply\n"
 msgstr ""
-"Különálló visszavonás. Használja a \"gpg --import\"-ot az alkalmazásához!\n"
+"Különálló visszavonás. Használja a \"gpg --import\"-ot az alkalmazásához!\n"
 
 #, fuzzy
 msgid "no signature found\n"
-msgstr "Jó aláírás a következõtõl: \""
+msgstr "Jó aláírás a következőtől: \""
 
 #, fuzzy, c-format
 msgid "BAD signature from \"%s\""
-msgstr "ROSSZ aláírás a következõtõl: \""
+msgstr "ROSSZ aláírás a következőtől: \""
 
 #, fuzzy, c-format
 msgid "Expired signature from \"%s\""
-msgstr "Lejárt aláírás a következõtõl: \""
+msgstr "Lejárt aláírás a következőtől: \""
 
 #, fuzzy, c-format
 msgid "Good signature from \"%s\""
-msgstr "Jó aláírás a következõtõl: \""
+msgstr "Jó aláírás a következőtől: \""
 
 msgid "signature verification suppressed\n"
-msgstr "Aláírás-ellenõrzés elnyomva.\n"
+msgstr "Aláírás-ellenőrzés elnyomva.\n"
 
 #, fuzzy
 msgid "can't handle this ambiguous signature data\n"
-msgstr "Nem tudom kezelni ezeket a többszörös aláírásokat!\n"
+msgstr "Nem tudom kezelni ezeket a többszörös aláírásokat!\n"
 
 #, fuzzy, c-format
 msgid "Signature made %s\n"
-msgstr "Az aláírás lejárt: %s.\n"
+msgstr "Az aláírás lejárt: %s.\n"
 
 #, fuzzy, c-format
 msgid "               using %s key %s\n"
@@ -4644,14 +4657,14 @@ msgstr "               azaz \""
 
 #, fuzzy, c-format
 msgid "Signature made %s using %s key ID %s\n"
-msgstr "Aláírva: %.*s; kulcs: %s, %08lX.\n"
+msgstr "Aláírva: %.*s; kulcs: %s, %08lX.\n"
 
 #, fuzzy, c-format
 msgid "               issuer \"%s\"\n"
 msgstr "               azaz \""
 
 msgid "Key available at: "
-msgstr "Kulcs található: "
+msgstr "Kulcs található: "
 
 msgid "[uncertain]"
 msgstr "[bizonytalan]"
@@ -4662,30 +4675,30 @@ msgstr "               azaz \""
 
 #, c-format
 msgid "Signature expired %s\n"
-msgstr "Az aláírás lejárt: %s.\n"
+msgstr "Az aláírás lejárt: %s.\n"
 
 #, c-format
 msgid "Signature expires %s\n"
-msgstr "Az aláírás lejár: %s.\n"
+msgstr "Az aláírás lejár: %s.\n"
 
 #, fuzzy, c-format
 #| msgid "%s signature, digest algorithm %s\n"
 msgid "%s signature, digest algorithm %s%s%s\n"
-msgstr "%s aláírás, %s kivonatoló algoritmus.\n"
+msgstr "%s aláírás, %s kivonatoló algoritmus.\n"
 
 msgid "binary"
-msgstr "Bináris"
+msgstr "Bináris"
 
 msgid "textmode"
-msgstr "Szövegmódú"
+msgstr "Szövegmódú"
 
 msgid "unknown"
-msgstr "Ismeretlen módú"
+msgstr "Ismeretlen módú"
 
 #, fuzzy
 #| msgid "unknown pubkey algorithm"
 msgid ", key algorithm "
-msgstr "ismeretlen nyilvános kulcsú algoritmus"
+msgstr "ismeretlen nyilvános kulcsú algoritmus"
 
 #, c-format
 msgid "WARNING: not a detached signature; file '%s' was NOT verified!\n"
@@ -4693,208 +4706,208 @@ msgstr ""
 
 #, c-format
 msgid "Can't check signature: %s\n"
-msgstr "Nem tudom ellenõrizni az aláírást: %s.\n"
+msgstr "Nem tudom ellenőrizni az aláírást: %s.\n"
 
 msgid "not a detached signature\n"
-msgstr "Nem különálló aláírás.\n"
+msgstr "Nem különálló aláírás.\n"
 
 msgid ""
 "WARNING: multiple signatures detected.  Only the first will be checked.\n"
-msgstr "FIGYELEM: Többszörös aláírást érzékeltem. Csak az elsõt ellenõrzöm.\n"
+msgstr "FIGYELEM: Többszörös aláírást érzékeltem. Csak az elsőt ellenőrzöm.\n"
 
 #, c-format
 msgid "standalone signature of class 0x%02x\n"
-msgstr "0x%02x osztályú különálló aláírás.\n"
+msgstr "0x%02x osztályú különálló aláírás.\n"
 
 msgid "old style (PGP 2.x) signature\n"
-msgstr "Régi stílusú (PGP 2.x) aláírás.\n"
+msgstr "Régi stílusú (PGP 2.x) aláírás.\n"
 
 #, fuzzy, c-format
 msgid "fstat of '%s' failed in %s: %s\n"
-msgstr "Nem tudom megnyitni az állományt: %s.\n"
+msgstr "Nem tudom megnyitni az állományt: %s.\n"
 
 #, fuzzy, c-format
 msgid "fstat(%d) failed in %s: %s\n"
-msgstr "Bizalmi adatbázis: olvasás sikertelen (n=%d): %s.\n"
+msgstr "Bizalmi adatbázis: olvasás sikertelen (n=%d): %s.\n"
 
 #, fuzzy, c-format
 msgid "WARNING: using experimental public key algorithm %s\n"
-msgstr "Nem tudom kezelni a(z) %d. számú nyilvános kulcsú algoritmust!\n"
+msgstr "Nem tudom kezelni a(z) %d. számú nyilvános kulcsú algoritmust!\n"
 
 #, fuzzy
 msgid "WARNING: Elgamal sign+encrypt keys are deprecated\n"
 msgstr ""
-"%s (%d) kivonatoló algoritmus használatának erõltetése ellentétes\n"
-"a címzett preferenciáival.\n"
+"%s (%d) kivonatoló algoritmus használatának erőltetése ellentétes\n"
+"a címzett preferenciáival.\n"
 
 #, fuzzy, c-format
 msgid "WARNING: using experimental cipher algorithm %s\n"
-msgstr "nem megvalósított rejtjelezõ algoritmus"
+msgstr "nem megvalósított rejtjelező algoritmus"
 
 #, fuzzy, c-format
 msgid "WARNING: using experimental digest algorithm %s\n"
-msgstr "%s aláírás, %s kivonatoló algoritmus.\n"
+msgstr "%s aláírás, %s kivonatoló algoritmus.\n"
 
 #, fuzzy, c-format
 msgid "WARNING: digest algorithm %s is deprecated\n"
 msgstr ""
-"%s (%d) kivonatoló algoritmus használatának erõltetése ellentétes\n"
-"a címzett preferenciáival.\n"
+"%s (%d) kivonatoló algoritmus használatának erőltetése ellentétes\n"
+"a címzett preferenciáival.\n"
 
 #, fuzzy, c-format
 #| msgid "%s signature, digest algorithm %s\n"
 msgid "Note: signatures using the %s algorithm are rejected\n"
-msgstr "%s aláírás, %s kivonatoló algoritmus.\n"
+msgstr "%s aláírás, %s kivonatoló algoritmus.\n"
 
 #, fuzzy, c-format
 msgid "(reported error: %s)\n"
-msgstr "Olvasási hiba: %s.\n"
+msgstr "Olvasási hiba: %s.\n"
 
 #, fuzzy, c-format
 msgid "(reported error: %s <%s>)\n"
-msgstr "Olvasási hiba: %s.\n"
+msgstr "Olvasási hiba: %s.\n"
 
 msgid "(further info: "
 msgstr ""
 
 #, c-format
 msgid "%s:%d: deprecated option \"%s\"\n"
-msgstr "%s:%d: Elavult opció: \"%s\"\n"
+msgstr "%s:%d: Elavult opció: \"%s\"\n"
 
 #, c-format
 msgid "WARNING: \"%s\" is a deprecated option\n"
-msgstr "FIGYELEM: \"%s\" elavult opció!\n"
+msgstr "FIGYELEM: \"%s\" elavult opció!\n"
 
 #, c-format
 msgid "please use \"%s%s\" instead\n"
-msgstr "Kérem, ezt használja helyette: \"%s%s\"\n"
+msgstr "Kérem, ezt használja helyette: \"%s%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: \"%s\" is a deprecated command - do not use it\n"
-msgstr "FIGYELEM: \"%s\" elavult opció!\n"
+msgstr "FIGYELEM: \"%s\" elavult opció!\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: \"%s\" is obsolete in this file - it only has effect in %s\n"
-msgstr "FIGYELEM: \"%s\" elavult opció!\n"
+msgstr "FIGYELEM: \"%s\" elavult opció!\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: \"%s%s\" is an obsolete option - it has no effect except on %s\n"
-msgstr "FIGYELEM: \"%s\" elavult opció!\n"
+msgstr "FIGYELEM: \"%s\" elavult opció!\n"
 
 msgid "Uncompressed"
-msgstr "tömörítetlen"
+msgstr "tömörítetlen"
 
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 #, fuzzy
 msgid "uncompressed|none"
-msgstr "tömörítetlen"
+msgstr "tömörítetlen"
 
 #, c-format
 msgid "this message may not be usable by %s\n"
-msgstr "Lehet, hogy ez az üzenet használhatatlan a %s számára!\n"
+msgstr "Lehet, hogy ez az üzenet használhatatlan a %s számára!\n"
 
 #, fuzzy, c-format
 msgid "ambiguous option '%s'\n"
-msgstr "Az opciókat a \"%s\" állományból olvasom.\n"
+msgstr "Az opciókat a \"%s\" állományból olvasom.\n"
 
 #, fuzzy, c-format
 msgid "unknown option '%s'\n"
-msgstr "Ismeretlen alapértelmezett címzett: \"%s\"\n"
+msgstr "Ismeretlen alapértelmezett címzett: \"%s\"\n"
 
 msgid "ECDSA public key is expected to be in SEC encoding multiple of 8 bits\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "unknown weak digest '%s'\n"
-msgstr "ismeretlen aláírásosztály"
+msgstr "ismeretlen aláírásosztály"
 
 #, fuzzy, c-format
 #| msgid "File `%s' exists. "
 msgid "File '%s' exists. "
-msgstr "\"%s\" állomány létezik. "
+msgstr "\"%s\" állomány létezik. "
 
 #, fuzzy
 msgid "Overwrite? (y/N) "
-msgstr "Felülírjam (i/N)? "
+msgstr "Felülírjam (i/N)? "
 
 #, c-format
 msgid "%s: unknown suffix\n"
-msgstr "%s: ismeretlen végzõdés.\n"
+msgstr "%s: ismeretlen végződés.\n"
 
 msgid "Enter new filename"
-msgstr "Írja be az új állománynevet"
+msgstr "Írja be az új állománynevet"
 
 msgid "writing to stdout\n"
-msgstr "Írok a szabványos kimenetre.\n"
+msgstr "Írok a szabványos kimenetre.\n"
 
 #, fuzzy, c-format
 #| msgid "assuming signed data in `%s'\n"
 msgid "assuming signed data in '%s'\n"
-msgstr "Azt feltételezem, hogy az aláírt adat a %s állományban van.\n"
+msgstr "Azt feltételezem, hogy az aláírt adat a %s állományban van.\n"
 
 #, fuzzy, c-format
 #| msgid "new configuration file `%s' created\n"
 msgid "new configuration file '%s' created\n"
-msgstr "\"%s\" új konfigurációs állományt létrehoztam.\n"
+msgstr "\"%s\" új konfigurációs állományt létrehoztam.\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: options in `%s' are not yet active during this run\n"
 msgid "WARNING: options in '%s' are not yet active during this run\n"
 msgstr ""
-"FIGYELEM: \"%s\" opciói csak a következõ futáskor lesznek érvényesek!\n"
+"FIGYELEM: \"%s\" opciói csak a következő futáskor lesznek érvényesek!\n"
 
 #, c-format
 msgid "can't handle public key algorithm %d\n"
-msgstr "Nem tudom kezelni a(z) %d. számú nyilvános kulcsú algoritmust!\n"
+msgstr "Nem tudom kezelni a(z) %d. számú nyilvános kulcsú algoritmust!\n"
 
 msgid "WARNING: potentially insecure symmetrically encrypted session key\n"
 msgstr ""
-"FIGYELEM: A rejtjelezett munkafolyamat-kulcs lehet, hogy nem biztonságos!\n"
+"FIGYELEM: A rejtjelezett munkafolyamat-kulcs lehet, hogy nem biztonságos!\n"
 
 #, c-format
 msgid "subpacket of type %d has critical bit set\n"
-msgstr "A %d típusú alcsomag kritikus bitje beállított.\n"
+msgstr "A %d típusú alcsomag kritikus bitje beállított.\n"
 
 #, fuzzy, c-format
 msgid "problem with the agent: %s\n"
-msgstr "Probléma az ügynökkel: ügynök válasza: 0x%lx\n"
+msgstr "Probléma az ügynökkel: ügynök válasza: 0x%lx\n"
 
 msgid "Enter passphrase\n"
-msgstr "Írja be a jelszót!\n"
+msgstr "Írja be a jelszót!\n"
 
 msgid "cancelled by user\n"
-msgstr "A felhasználó megszakította a mûveletet.\n"
+msgstr "A felhasználó megszakította a műveletet.\n"
 
 #, fuzzy, c-format
 msgid " (main key ID %s)"
 msgstr ""
 " \n"
-"  (fõ kulcsazonosító: %08lX)"
+"  (fő kulcsazonosító: %08lX)"
 
 #, fuzzy
 msgid "Please enter the passphrase to unlock the OpenPGP secret key:"
-msgstr "Kérem, adja meg a jelszót! Ezt egy titkos mondat. \n"
+msgstr "Kérem, adja meg a jelszót! Ezt egy titkos mondat. \n"
 
 #, fuzzy
 msgid "Please enter the passphrase to import the OpenPGP secret key:"
-msgstr "Kérem, adja meg a jelszót! Ezt egy titkos mondat. \n"
+msgstr "Kérem, adja meg a jelszót! Ezt egy titkos mondat. \n"
 
 #, fuzzy
 msgid "Please enter the passphrase to export the OpenPGP secret subkey:"
-msgstr "Kérem, adja meg a jelszót! Ezt egy titkos mondat. \n"
+msgstr "Kérem, adja meg a jelszót! Ezt egy titkos mondat. \n"
 
 #, fuzzy
 msgid "Please enter the passphrase to export the OpenPGP secret key:"
-msgstr "Kérem, adja meg a jelszót! Ezt egy titkos mondat. \n"
+msgstr "Kérem, adja meg a jelszót! Ezt egy titkos mondat. \n"
 
 #, fuzzy
 msgid "Do you really want to permanently delete the OpenPGP secret subkey key:"
-msgstr "Valóban törli a kiválasztott kulcsokat? "
+msgstr "Valóban törli a kiválasztott kulcsokat? "
 
 #, fuzzy
 msgid "Do you really want to permanently delete the OpenPGP secret key:"
-msgstr "Valóban törli a kiválasztott kulcsokat? "
+msgstr "Valóban törli a kiválasztott kulcsokat? "
 
 #, fuzzy, c-format
 msgid ""
@@ -4903,7 +4916,7 @@ msgid ""
 "%u-bit %s key, ID %s,\n"
 "created %s%s.\n"
 "%s"
-msgstr "%u bites %s kulcs, azonosító: %08lX, létrehozva: %s."
+msgstr "%u bites %s kulcs, azonosító: %08lX, létrehozva: %s."
 
 msgid ""
 "\n"
@@ -4913,17 +4926,17 @@ msgid ""
 "Keeping the image close to 240x288 is a good size to use.\n"
 msgstr ""
 "\n"
-"Válasszon egy képet a fotóazonosítójához! A kép JPEG formátumú legyen!\n"
-"Emlékeztetjük, hogy a kép a nyilvános kulcsában tárolódik. Ha nagyon nagy\n"
-"képet használ, a kulcsa is nagyon nagy lesz!\n"
-"A 240x288 körüli képméret jól használható.\n"
+"Válasszon egy képet a fotóazonosítójához! A kép JPEG formátumú legyen!\n"
+"Emlékeztetjük, hogy a kép a nyilvános kulcsában tárolódik. Ha nagyon nagy\n"
+"képet használ, a kulcsa is nagyon nagy lesz!\n"
+"A 240x288 körüli képméret jól használható.\n"
 
 msgid "Enter JPEG filename for photo ID: "
-msgstr "Adja meg egy JPEG fájl nevét a fotóazonosítóhoz: "
+msgstr "Adja meg egy JPEG fájl nevét a fotóazonosítóhoz: "
 
 #, fuzzy, c-format
 msgid "unable to open JPEG file '%s': %s\n"
-msgstr "Nem tudom megnyitni az állományt: %s.\n"
+msgstr "Nem tudom megnyitni az állományt: %s.\n"
 
 #, c-format
 msgid "This JPEG is really large (%d bytes) !\n"
@@ -4931,38 +4944,38 @@ msgstr ""
 
 #, fuzzy
 msgid "Are you sure you want to use it? (y/N) "
-msgstr "Biztos abban, hogy használni akarja (i/N)? "
+msgstr "Biztos abban, hogy használni akarja (i/N)? "
 
 #, fuzzy, c-format
 msgid "'%s' is not a JPEG file\n"
-msgstr "\"%s\" nem JPEG állomány.\n"
+msgstr "\"%s\" nem JPEG állomány.\n"
 
 msgid "Is this photo correct (y/N/q)? "
-msgstr "Ez a fotó megfelelõ (i/N/k)? "
+msgstr "Ez a fotó megfelelő (i/N/k)? "
 
 msgid "unable to display photo ID!\n"
-msgstr "Nem tudom megjeleníteni a fotóazonosítót!\n"
+msgstr "Nem tudom megjeleníteni a fotóazonosítót!\n"
 
 msgid "No reason specified"
 msgstr "Nincs megadva ok."
 
 msgid "Key is superseded"
-msgstr "A kulcsot lecserélték."
+msgstr "A kulcsot lecserélték."
 
 msgid "Key has been compromised"
-msgstr "A kulcs kompromittálódott."
+msgstr "A kulcs kompromittálódott."
 
 msgid "Key is no longer used"
-msgstr "A kulcs már nem használatos."
+msgstr "A kulcs már nem használatos."
 
 msgid "User ID is no longer valid"
-msgstr "A felhasználói azonosító már nem érvényes."
+msgstr "A felhasználói azonosító már nem érvényes."
 
 msgid "reason for revocation: "
-msgstr "Visszavonás oka: "
+msgstr "Visszavonás oka: "
 
 msgid "revocation comment: "
-msgstr "Megjegyzés a visszavonáshoz: "
+msgstr "Megjegyzés a visszavonáshoz: "
 
 #. TRANSLATORS: These are the allowed answers in lower and
 #. uppercase.  Below you will find the matching strings which
@@ -4980,7 +4993,7 @@ msgstr "iIfFkKhH"
 #, fuzzy
 msgid "No trust value assigned to:\n"
 msgstr ""
-"Nincs megbízhatósági érték rendelve:\n"
+"Nincs megbízhatósági érték rendelve:\n"
 "%4u%c/%08lX %s \""
 
 #, fuzzy, c-format
@@ -4990,7 +5003,7 @@ msgstr "               azaz \""
 #, fuzzy
 msgid ""
 "How much do you trust that this key actually belongs to the named user?\n"
-msgstr "Ez a kulcs valószínûleg a jelzett tulajdonoshoz tartozik.\n"
+msgstr "Ez a kulcs valószínűleg a jelzett tulajdonoshoz tartozik.\n"
 
 #, fuzzy, c-format
 msgid "  %d = I don't know or won't say\n"
@@ -4998,23 +5011,23 @@ msgstr " %d = Nem tudom\n"
 
 #, fuzzy, c-format
 msgid "  %d = I do NOT trust\n"
-msgstr " %d = NEM bízom benne\n"
+msgstr " %d = NEM bízom benne\n"
 
 #, fuzzy, c-format
 msgid "  %d = I trust ultimately\n"
-msgstr " %d = alapvetõen megbízom benne\n"
+msgstr " %d = alapvetően megbízom benne\n"
 
 #, fuzzy
 msgid "  m = back to the main menu\n"
-msgstr " f = visszatérés a fõmenübe\n"
+msgstr " f = visszatérés a főmenübe\n"
 
 #, fuzzy
 msgid "  s = skip this key\n"
-msgstr " h = kulcs kihagyása\n"
+msgstr " h = kulcs kihagyása\n"
 
 #, fuzzy
 msgid "  q = quit\n"
-msgstr " k = kilépés\n"
+msgstr " k = kilépés\n"
 
 #, c-format
 msgid ""
@@ -5023,14 +5036,14 @@ msgid ""
 msgstr ""
 
 msgid "Your decision? "
-msgstr "Mit választ? "
+msgstr "Mit választ? "
 
 #, fuzzy
 msgid "Do you really want to set this key to ultimate trust? (y/N) "
-msgstr "Tényleg be akarja állítani ezt a kulcsot alapvetõen megbízhatóra? "
+msgstr "Tényleg be akarja állítani ezt a kulcsot alapvetően megbízhatóra? "
 
 msgid "Certificates leading to an ultimately trusted key:\n"
-msgstr "Alapvetõen megbízható kulcshoz vezetõ igazolások:\n"
+msgstr "Alapvetően megbízható kulcshoz vezető igazolások:\n"
 
 #, fuzzy, c-format
 msgid "%s: There is no assurance this key belongs to the named user\n"
@@ -5044,10 +5057,25 @@ msgstr ""
 
 #, fuzzy
 msgid "This key probably belongs to the named user\n"
-msgstr "Ez a kulcs valószínûleg a jelzett tulajdonoshoz tartozik.\n"
+msgstr "Ez a kulcs valószínűleg a jelzett tulajdonoshoz tartozik.\n"
 
 msgid "This key belongs to us\n"
-msgstr "Ez a kulcs hozzánk tartozik.\n"
+msgstr "Ez a kulcs hozzánk tartozik.\n"
+
+#, c-format
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr ""
+
+#, fuzzy
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"NEM biztos, hogy a kulcs a felhasználói azonosítóban szereplő\n"
+"személyhez tartozik. Ha Ön *valóban* tudja, hogy mit csinál,\n"
+"a következő kérdésre válaszolhat igennel.\n"
+"\n"
 
 #, fuzzy
 msgid ""
@@ -5055,36 +5083,36 @@ msgid ""
 "in the user ID.  If you *really* know what you are doing,\n"
 "you may answer the next question with yes.\n"
 msgstr ""
-"NEM biztos, hogy a kulcs a felhasználói azonosítóban szereplõ\n"
-"személyhez tartozik. Ha Ön *valóban* tudja, hogy mit csinál,\n"
-"a következõ kérdésre válaszolhat igennel.\n"
+"NEM biztos, hogy a kulcs a felhasználói azonosítóban szereplő\n"
+"személyhez tartozik. Ha Ön *valóban* tudja, hogy mit csinál,\n"
+"a következő kérdésre válaszolhat igennel.\n"
 "\n"
 
 #, fuzzy
 msgid "Use this key anyway? (y/N) "
-msgstr "Mégis használjuk ezt a kulcsot? "
+msgstr "Mégis használjuk ezt a kulcsot? "
 
 msgid "WARNING: Using untrusted key!\n"
-msgstr "FIGYELEM: Nem bízunk a kulcsban, amit használunk!\n"
+msgstr "FIGYELEM: Nem bízunk a kulcsban, amit használunk!\n"
 
 msgid "WARNING: this key might be revoked (revocation key not present)\n"
-msgstr "FIGYELEM: a kulcsot visszavonhatták (visszavonó kulcs nincs jelen).\n"
+msgstr "FIGYELEM: a kulcsot visszavonhatták (visszavonó kulcs nincs jelen).\n"
 
 msgid "WARNING: This key has been revoked by its designated revoker!\n"
-msgstr "FIGYELEM: Ezt a kulcsot a kijelölt visszavonó visszavonta!\n"
+msgstr "FIGYELEM: Ezt a kulcsot a kijelölt visszavonó visszavonta!\n"
 
 msgid "WARNING: This key has been revoked by its owner!\n"
 msgstr "FIGYELEM: Ezt a kulcsot a tulajdonosa visszavonta!\n"
 
 #, fuzzy
 msgid "         This could mean that the signature is forged.\n"
-msgstr "         Ez jelentheti azt, hogy az aláírás hamis.\n"
+msgstr "         Ez jelentheti azt, hogy az aláírás hamis.\n"
 
 msgid "WARNING: This subkey has been revoked by its owner!\n"
 msgstr "FIGYELEM: Ezt az alkulcsot a tulajdonosa visszavonta!\n"
 
 msgid "Note: This key has been disabled.\n"
-msgstr "Megjegyzés: Ez a kulcs le lett tiltva.\n"
+msgstr "Megjegyzés: Ez a kulcs le lett tiltva.\n"
 
 #, c-format
 msgid "Note: Verified signer's address is '%s'\n"
@@ -5101,10 +5129,10 @@ msgid "trustlevel adjusted to NEVER due to bad PKA info\n"
 msgstr ""
 
 msgid "Note: This key has expired!\n"
-msgstr "Megjegyzés: Ez a kulcs lejárt!\n"
+msgstr "Megjegyzés: Ez a kulcs lejárt!\n"
 
 msgid "WARNING: This key is not certified with a trusted signature!\n"
-msgstr "FIGYELEM: Ez a kulcs nincs hitelesítve megbízható aláírással!\n"
+msgstr "FIGYELEM: Ez a kulcs nincs hitelesítve megbízható aláírással!\n"
 
 msgid ""
 "         There is no indication that the signature belongs to the owner.\n"
@@ -5112,18 +5140,18 @@ msgstr ""
 "          Semmi jele, hogy ez a kulcs a megadott tulajdonoshoz tartozik.\n"
 
 msgid "WARNING: We do NOT trust this key!\n"
-msgstr "FIGYELEM: NEM bízunk ebben a kulcsban!\n"
+msgstr "FIGYELEM: NEM bízunk ebben a kulcsban!\n"
 
 msgid "         The signature is probably a FORGERY.\n"
-msgstr "         Az aláírás valószínûleg HAMIS.\n"
+msgstr "         Az aláírás valószínűleg HAMIS.\n"
 
 msgid ""
 "WARNING: This key is not certified with sufficiently trusted signatures!\n"
 msgstr ""
-"FIGYELEM: Ez a kulcs nincs igazolva kellõképpen megbízható aláírással!\n"
+"FIGYELEM: Ez a kulcs nincs igazolva kellőképpen megbízható aláírással!\n"
 
 msgid "         It is not certain that the signature belongs to the owner.\n"
-msgstr "         Nem biztos, hogy az aláírás a tulajdonoshoz tartozik.\n"
+msgstr "         Nem biztos, hogy az aláírás a tulajdonoshoz tartozik.\n"
 
 #, c-format
 msgid "%s: skipped: %s\n"
@@ -5131,28 +5159,28 @@ msgstr "%s: kihagyva: %s\n"
 
 #, c-format
 msgid "%s: skipped: public key is disabled\n"
-msgstr "%s: Kihagyva: Nyilvános kulcs nincs engedélyezve.\n"
+msgstr "%s: Kihagyva: Nyilvános kulcs nincs engedélyezve.\n"
 
 #, c-format
 msgid "%s: skipped: public key already present\n"
-msgstr "%s: kihagyva: nyilvános kulcs már szerepel\n"
+msgstr "%s: kihagyva: nyilvános kulcs már szerepel\n"
 
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't encrypt to '%s'\n"
-msgstr "Nem tudok kapcsolódni \"%s\" objektumhoz: %s\n"
+msgstr "Nem tudok kapcsolódni \"%s\" objektumhoz: %s\n"
 
 #, fuzzy, c-format
 msgid "option '%s' given, but no valid default keys given\n"
-msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
+msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
 
 #, fuzzy, c-format
 msgid "option '%s' given, but option '%s' not given\n"
-msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
+msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
 
 msgid "You did not specify a user ID. (you may use \"-r\")\n"
 msgstr ""
-"Nem adott meg felhasználói azonosítót! (Használhatja a \"-r\" opciót.)\n"
+"Nem adott meg felhasználói azonosítót! (Használhatja a \"-r\" opciót.)\n"
 
 msgid "Current recipients:\n"
 msgstr ""
@@ -5162,87 +5190,87 @@ msgid ""
 "Enter the user ID.  End with an empty line: "
 msgstr ""
 "\n"
-"Adja meg a felhasználói azonosítót! Üres sorral fejezze be: "
+"Adja meg a felhasználói azonosítót! Üres sorral fejezze be: "
 
 msgid "No such user ID.\n"
-msgstr "Nincs ilyen felhasználói azonosító.\n"
+msgstr "Nincs ilyen felhasználói azonosító.\n"
 
 msgid "skipped: public key already set as default recipient\n"
 msgstr ""
-"Kihagyva: Nyilvános kulcs már be lett állítva alapértelmezett címzettnek.\n"
+"Kihagyva: Nyilvános kulcs már be lett állítva alapértelmezett címzettnek.\n"
 
 msgid "Public key is disabled.\n"
-msgstr "Nyilvános kulcs nincs engedélyezve.\n"
+msgstr "Nyilvános kulcs nincs engedélyezve.\n"
 
 msgid "skipped: public key already set\n"
-msgstr "Kihagyva: Nyilvános kulcs már be lett állítva.\n"
+msgstr "Kihagyva: Nyilvános kulcs már be lett állítva.\n"
 
 #, fuzzy, c-format
 msgid "unknown default recipient \"%s\"\n"
-msgstr "Ismeretlen alapértelmezett címzett: \"%s\"\n"
+msgstr "Ismeretlen alapértelmezett címzett: \"%s\"\n"
 
 msgid "no valid addressees\n"
-msgstr "Nincsenek érvényes címzettek!\n"
+msgstr "Nincsenek érvényes címzettek!\n"
 
 #, fuzzy, c-format
 msgid "Note: key %s has no %s feature\n"
-msgstr "%08lX kulcs: Nincs felhasználói azonosító.\n"
+msgstr "%08lX kulcs: Nincs felhasználói azonosító.\n"
 
 #, fuzzy, c-format
 msgid "Note: key %s has no preference for %s\n"
-msgstr "%08lX kulcs: Nincs felhasználói azonosító.\n"
+msgstr "%08lX kulcs: Nincs felhasználói azonosító.\n"
 
 msgid "data not saved; use option \"--output\" to save it\n"
 msgstr ""
-"Az adatot nem mentettem el. Használja az \"--output\" opciót a mentéshez!\n"
+"Az adatot nem mentettem el. Használja az \"--output\" opciót a mentéshez!\n"
 
 msgid "Detached signature.\n"
-msgstr "Különálló aláírás.\n"
+msgstr "Különálló aláírás.\n"
 
 msgid "Please enter name of data file: "
-msgstr "Kérem, adja meg az adatállomány nevét: "
+msgstr "Kérem, adja meg az adatállomány nevét: "
 
 msgid "reading stdin ...\n"
-msgstr "Olvasom a szabványos bemenetet...\n"
+msgstr "Olvasom a szabványos bemenetet...\n"
 
 msgid "no signed data\n"
-msgstr "Nincs aláírt adat.\n"
+msgstr "Nincs aláírt adat.\n"
 
 #, fuzzy, c-format
 #| msgid "can't open signed data `%s'\n"
 msgid "can't open signed data '%s'\n"
-msgstr "Nem tudom megnyitni a(z) \"%s\" aláírt adatot!\n"
+msgstr "Nem tudom megnyitni a(z) \"%s\" aláírt adatot!\n"
 
 #, fuzzy, c-format
 msgid "can't open signed data fd=%d: %s\n"
-msgstr "Nem tudom megnyitni a(z) \"%s\" aláírt adatot!\n"
+msgstr "Nem tudom megnyitni a(z) \"%s\" aláírt adatot!\n"
 
 #, fuzzy, c-format
 msgid "anonymous recipient; trying secret key %s ...\n"
-msgstr "Anonim címzett. A %08lX titkos kulcsot próbálom...\n"
+msgstr "Anonim címzett. A %08lX titkos kulcsot próbálom...\n"
 
 msgid "okay, we are the anonymous recipient.\n"
-msgstr "Rendben, mi vagyunk az anonim címzett.\n"
+msgstr "Rendben, mi vagyunk az anonim címzett.\n"
 
 msgid "old encoding of the DEK is not supported\n"
-msgstr "A DEK régi kódolása nem támogatott.\n"
+msgstr "A DEK régi kódolása nem támogatott.\n"
 
 #, c-format
 msgid "cipher algorithm %d%s is unknown or disabled\n"
-msgstr "A %d%s rejtjelezõ algoritmus ismeretlen vagy tiltott.\n"
+msgstr "A %d%s rejtjelező algoritmus ismeretlen vagy tiltott.\n"
 
 #, fuzzy, c-format
 msgid "WARNING: cipher algorithm %s not found in recipient preferences\n"
-msgstr "MEGJEGYZÉS: %d rejtjelezõ algoritmus nincs a preferenciák között.\n"
+msgstr "MEGJEGYZÉS: %d rejtjelező algoritmus nincs a preferenciák között.\n"
 
 #, fuzzy, c-format
 msgid "Note: secret key %s expired at %s\n"
-msgstr "MEGJEGYZÉS: %08lX titkos kulcs %s-kor lejárt.\n"
+msgstr "MEGJEGYZÉS: %08lX titkos kulcs %s-kor lejárt.\n"
 
 #, fuzzy
 #| msgid "NOTE: key has been revoked"
 msgid "Note: key has been revoked"
-msgstr "MEGJEGYZÉS: A kulcsot visszavonták."
+msgstr "MEGJEGYZÉS: A kulcsot visszavonták."
 
 #, c-format
 msgid "build_packet failed: %s\n"
@@ -5250,40 +5278,40 @@ msgstr "build_packet sikertelen: %s.\n"
 
 #, fuzzy, c-format
 msgid "key %s has no user IDs\n"
-msgstr "%08lX kulcs: Nincs felhasználói azonosító.\n"
+msgstr "%08lX kulcs: Nincs felhasználói azonosító.\n"
 
 msgid "To be revoked by:\n"
 msgstr "Visszavonja:\n"
 
 msgid "(This is a sensitive revocation key)\n"
-msgstr "(Ez egy érzékeny visszavonó kulcs.)\n"
+msgstr "(Ez egy érzékeny visszavonó kulcs.)\n"
 
 #, fuzzy
 #| msgid "Secret key is available.\n"
 msgid "Secret key is not available.\n"
-msgstr "Titkos kulcs rendelkezésre áll.\n"
+msgstr "Titkos kulcs rendelkezésre áll.\n"
 
 #, fuzzy
 msgid "Create a designated revocation certificate for this key? (y/N) "
-msgstr "Csináljunk egy visszavonó igazolást ehhez a kulcshoz? "
+msgstr "Csináljunk egy visszavonó igazolást ehhez a kulcshoz? "
 
 msgid "ASCII armored output forced.\n"
-msgstr "ASCII-páncélozott kimenet kiválasztva.\n"
+msgstr "ASCII-páncélozott kimenet kiválasztva.\n"
 
 #, c-format
 msgid "make_keysig_packet failed: %s\n"
 msgstr "make_keysig_packet sikertelen: %s\n"
 
 msgid "Revocation certificate created.\n"
-msgstr "Visszavonó igazolás létrehozva.\n"
+msgstr "Visszavonó igazolás létrehozva.\n"
 
 #, fuzzy, c-format
 msgid "no revocation keys found for \"%s\"\n"
-msgstr "Nem találtam visszavonó kulcsot a következõhöz: \"%s\".\n"
+msgstr "Nem találtam visszavonó kulcsot a következőhöz: \"%s\".\n"
 
 #, fuzzy
 msgid "This is a revocation certificate for the OpenPGP key:"
-msgstr "Csináljunk egy visszavonó igazolást ehhez a kulcshoz? "
+msgstr "Csináljunk egy visszavonó igazolást ehhez a kulcshoz? "
 
 msgid ""
 "A revocation certificate is a kind of \"kill switch\" to publicly\n"
@@ -5308,11 +5336,11 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "Revocation certificate created.\n"
 msgid "revocation certificate stored as '%s.rev'\n"
-msgstr "Visszavonó igazolás létrehozva.\n"
+msgstr "Visszavonó igazolás létrehozva.\n"
 
 #, fuzzy, c-format
 msgid "secret key \"%s\" not found\n"
-msgstr "\"%s\" titkos kulcs nem található: %s\n"
+msgstr "\"%s\" titkos kulcs nem található: %s\n"
 
 #. TRANSLATORS: The %s prints a key specification which
 #. for example has been given at the command line.  Several lines
@@ -5324,11 +5352,11 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
 msgid "error searching the keyring: %s\n"
-msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
+msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
 
 #, fuzzy
 msgid "Create a revocation certificate for this key? (y/N) "
-msgstr "Csináljunk egy visszavonó igazolást ehhez a kulcshoz? "
+msgstr "Csináljunk egy visszavonó igazolást ehhez a kulcshoz? "
 
 msgid ""
 "Revocation certificate created.\n"
@@ -5339,46 +5367,46 @@ msgid ""
 "your media become unreadable.  But have some caution:  The print system of\n"
 "your machine might store the data and make it available to others!\n"
 msgstr ""
-"A visszavonó igazolást létrehoztam.\n"
+"A visszavonó igazolást létrehoztam.\n"
 "\n"
-"Kérem, tegye olyan helyre, ahol más nem fér hozzá! Ha valaki megszerzi\n"
-"ezt az igazolást, használhatatlanná teheti vele az Ön kulcsát. Okos dolog\n"
-"kinyomtatni és megõrizni ezt az igazolást, arra az esetre, ha az\n"
-"adathordozó olvashatatlanná válik. De vigyázat: az Ön gépének nyomtatási\n"
-"rendszere is tárolhatja az adatot, és mások esetleg hozzáférhetnek ehhez!\n"
+"Kérem, tegye olyan helyre, ahol más nem fér hozzá! Ha valaki megszerzi\n"
+"ezt az igazolást, használhatatlanná teheti vele az Ön kulcsát. Okos dolog\n"
+"kinyomtatni és megőrizni ezt az igazolást, arra az esetre, ha az\n"
+"adathordozó olvashatatlanná válik. De vigyázat: az Ön gépének nyomtatási\n"
+"rendszere is tárolhatja az adatot, és mások esetleg hozzáférhetnek ehhez!\n"
 
 msgid "Please select the reason for the revocation:\n"
-msgstr "Kérem, válassza ki a visszavonás okát:\n"
+msgstr "Kérem, válassza ki a visszavonás okát:\n"
 
 msgid "Cancel"
-msgstr "Mégsem"
+msgstr "Mégsem"
 
 #, c-format
 msgid "(Probably you want to select %d here)\n"
-msgstr "(Valószínûleg a(z) %d. lehetõséget akarja választani.)\n"
+msgstr "(Valószínűleg a(z) %d. lehetőséget akarja választani.)\n"
 
 msgid "Enter an optional description; end it with an empty line:\n"
-msgstr "Adjon meg egy nem kötelezõ leírást! Üres sorral fejezze be:\n"
+msgstr "Adjon meg egy nem kötelező leírást! Üres sorral fejezze be:\n"
 
 #, c-format
 msgid "Reason for revocation: %s\n"
-msgstr "Visszavonás oka: %s\n"
+msgstr "Visszavonás oka: %s\n"
 
 msgid "(No description given)\n"
-msgstr "(Nincs leírás.)\n"
+msgstr "(Nincs leírás.)\n"
 
 #, fuzzy
 msgid "Is this okay? (y/N) "
-msgstr "Ez így rendben van? "
+msgstr "Ez így rendben van? "
 
 msgid "weak key created - retrying\n"
-msgstr "Gyenge kulcs jött létre. Újrapróbálom.\n"
+msgstr "Gyenge kulcs jött létre. Újrapróbálom.\n"
 
 #, c-format
 msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
 msgstr ""
-"Nem tudom elkerülni a gyenge kulcsot a szimmetrikus titkosítóhoz.\n"
-"%d alkalommal próbáltam!\n"
+"Nem tudom elkerülni a gyenge kulcsot a szimmetrikus titkosítóhoz.\n"
+"%d alkalommal próbáltam!\n"
 
 #, c-format
 msgid "%s key %s uses an unsafe (%zu bit) hash\n"
@@ -5389,31 +5417,31 @@ msgid "%s key %s requires a %zu bit or larger hash (hash is %s)\n"
 msgstr ""
 
 msgid "WARNING: signature digest conflict in message\n"
-msgstr "FIGYELEM: Aláíráskivonat-konfliktus az üzenetben.\n"
+msgstr "FIGYELEM: Aláíráskivonat-konfliktus az üzenetben.\n"
 
 #, fuzzy, c-format
 msgid "WARNING: signing subkey %s is not cross-certified\n"
-msgstr "FIGYELEM: %08lX aláíró alkulcs nem kereszthitelesített.\n"
+msgstr "FIGYELEM: %08lX aláíró alkulcs nem kereszthitelesített.\n"
 
 #, fuzzy, c-format
 msgid "please see %s for more information\n"
-msgstr " i = további információkat kérek\n"
+msgstr " i = további információkat kérek\n"
 
 #, fuzzy, c-format
 msgid "WARNING: signing subkey %s has an invalid cross-certification\n"
-msgstr "FIGYELEM: %08lX aláíró alkulcson érvénytelen kereszthitelesítés van.\n"
+msgstr "FIGYELEM: %08lX aláíró alkulcson érvénytelen kereszthitelesítés van.\n"
 
 #, fuzzy, c-format
 msgid "public key %s is %lu second newer than the signature\n"
 msgid_plural "public key %s is %lu seconds newer than the signature\n"
-msgstr[0] "A(z) %08lX nyilvános kulcs %lu másodperccel újabb az aláírásnál!\n"
-msgstr[1] "A(z) %08lX nyilvános kulcs %lu másodperccel újabb az aláírásnál!\n"
+msgstr[0] "A(z) %08lX nyilvános kulcs %lu másodperccel újabb az aláírásnál!\n"
+msgstr[1] "A(z) %08lX nyilvános kulcs %lu másodperccel újabb az aláírásnál!\n"
 
 #, fuzzy, c-format
 msgid "public key %s is %lu day newer than the signature\n"
 msgid_plural "public key %s is %lu days newer than the signature\n"
-msgstr[0] "A(z) %08lX nyilvános kulcs %lu másodperccel újabb az aláírásnál!\n"
-msgstr[1] "A(z) %08lX nyilvános kulcs %lu másodperccel újabb az aláírásnál!\n"
+msgstr[0] "A(z) %08lX nyilvános kulcs %lu másodperccel újabb az aláírásnál!\n"
+msgstr[1] "A(z) %08lX nyilvános kulcs %lu másodperccel újabb az aláírásnál!\n"
 
 #, fuzzy, c-format
 msgid ""
@@ -5421,146 +5449,146 @@ msgid ""
 msgid_plural ""
 "key %s was created %lu seconds in the future (time warp or clock problem)\n"
 msgstr[0] ""
-"A kulcs %lu másodperccel a jövõben készült. (Idõugrás vagy óraprobléma.)\n"
+"A kulcs %lu másodperccel a jövőben készült. (Időugrás vagy óraprobléma.)\n"
 msgstr[1] ""
-"A kulcs %lu másodperccel a jövõben készült. (Idõugrás vagy óraprobléma.)\n"
+"A kulcs %lu másodperccel a jövőben készült. (Időugrás vagy óraprobléma.)\n"
 
 #, fuzzy, c-format
 msgid "key %s was created %lu day in the future (time warp or clock problem)\n"
 msgid_plural ""
 "key %s was created %lu days in the future (time warp or clock problem)\n"
 msgstr[0] ""
-"A kulcs %lu másodperccel a jövõben készült. (Idõugrás vagy óraprobléma.)\n"
+"A kulcs %lu másodperccel a jövőben készült. (Időugrás vagy óraprobléma.)\n"
 msgstr[1] ""
-"A kulcs %lu másodperccel a jövõben készült. (Idõugrás vagy óraprobléma.)\n"
+"A kulcs %lu másodperccel a jövőben készült. (Időugrás vagy óraprobléma.)\n"
 
 #, fuzzy, c-format
 msgid "Note: signature key %s expired %s\n"
-msgstr "MEGJEGYZÉS: Aláíró kulcs (%08lX) lejárt: %s\n"
+msgstr "MEGJEGYZÉS: Aláíró kulcs (%08lX) lejárt: %s\n"
 
 #, fuzzy, c-format
 msgid "Note: signature key %s has been revoked\n"
-msgstr "MEGJEGYZÉS: A kulcsot visszavonták."
+msgstr "MEGJEGYZÉS: A kulcsot visszavonták."
 
 #, fuzzy, c-format
 msgid "assuming bad signature from key %s due to an unknown critical bit\n"
 msgstr ""
-"Rossz aláírást feltételezek a %08lX kulcstól egy ismeretlen\n"
+"Rossz aláírást feltételezek a %08lX kulcstól egy ismeretlen\n"
 "kritikus bit miatt.\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for subkey revocation signature\n"
-msgstr "%08lX kulcs: Nincs alkulcs az alkulcsvisszavonó csomaghoz.\n"
+msgstr "%08lX kulcs: Nincs alkulcs az alkulcsvisszavonó csomaghoz.\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for subkey binding signature\n"
-msgstr "%08lX kulcs: Nincs alkulcs az alkulcskötõ aláíráshoz!\n"
+msgstr "%08lX kulcs: Nincs alkulcs az alkulcskötő aláíráshoz!\n"
 
 #, c-format
 msgid "WARNING: unable to %%-expand notation (too large).  Using unexpanded.\n"
 msgstr ""
-"FIGYELEM: Nem tudom kifejteni a %% jeleket a jelölésben (túl hosszú).\n"
-"Kifejtés nélkül használom.\n"
+"FIGYELEM: Nem tudom kifejteni a %% jeleket a jelölésben (túl hosszú).\n"
+"Kifejtés nélkül használom.\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: unable to %%-expand policy URL (too large).  Using unexpanded.\n"
 msgstr ""
-"FIGYELEM: Nem tudom kifejteni a %% jeleket az eljárásmód URL-ben (túl "
-"hosszú).\n"
-"Kifejtés nélkül használom.\n"
+"FIGYELEM: Nem tudom kifejteni a %% jeleket az eljárásmód URL-ben (túl "
+"hosszú).\n"
+"Kifejtés nélkül használom.\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: unable to %%-expand preferred keyserver URL (too large).  Using "
 "unexpanded.\n"
 msgstr ""
-"FIGYELEM: Nem tudom kifejteni a %% jeleket az eljárásmód URL-ben (túl "
-"hosszú).\n"
-"Kifejtés nélkül használom.\n"
+"FIGYELEM: Nem tudom kifejteni a %% jeleket az eljárásmód URL-ben (túl "
+"hosszú).\n"
+"Kifejtés nélkül használom.\n"
 
 #, fuzzy, c-format
 msgid "%s/%s signature from: \"%s\"\n"
-msgstr "%s aláírás a következõtõl: \"%s\"\n"
+msgstr "%s aláírás a következőtől: \"%s\"\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: forcing digest algorithm %s (%d) violates recipient preferences\n"
 msgstr ""
-"%s (%d) kivonatoló algoritmus használatának erõltetése ellentétes\n"
-"a címzett preferenciáival.\n"
+"%s (%d) kivonatoló algoritmus használatának erőltetése ellentétes\n"
+"a címzett preferenciáival.\n"
 
 msgid "signing:"
-msgstr "Aláírom:"
+msgstr "Aláírom:"
 
 #, c-format
 msgid "%s encryption will be used\n"
-msgstr "%s titkosítást fogok használni.\n"
+msgstr "%s titkosítást fogok használni.\n"
 
 msgid "key is not flagged as insecure - can't use it with the faked RNG!\n"
 msgstr ""
-"A kulcs nincs \"nem biztonságosnak\" jelölve,\n"
-"nem tudom a pótló véletlenszám-generátorral használni!\n"
+"A kulcs nincs \"nem biztonságosnak\" jelölve,\n"
+"nem tudom a pótló véletlenszám-generátorral használni!\n"
 
 #, fuzzy, c-format
 msgid "skipped \"%s\": duplicated\n"
-msgstr "\"%s\"-t kihagytam: másodpéldány.\n"
+msgstr "\"%s\"-t kihagytam: másodpéldány.\n"
 
 msgid "skipped: secret key already present\n"
-msgstr "Kihagytam: titkos kulcs már jelen van.\n"
+msgstr "Kihagytam: titkos kulcs már jelen van.\n"
 
 #, fuzzy
 msgid "this is a PGP generated Elgamal key which is not secure for signatures!"
 msgstr ""
-"Kihagytam \"%s\"-t: ez egy PGP által létrehozott ElGamal kulcs, amely nem\n"
-"biztonságos aláírásokhoz!\n"
+"Kihagytam \"%s\"-t: ez egy PGP által létrehozott ElGamal kulcs, amely nem\n"
+"biztonságos aláírásokhoz!\n"
 
 #, c-format
 msgid "trust record %lu, type %d: write failed: %s\n"
-msgstr "%lu bizalmi rekord, %d típus: írás sikertelen: %s.\n"
+msgstr "%lu bizalmi rekord, %d típus: írás sikertelen: %s.\n"
 
 #, c-format
 msgid ""
 "# List of assigned trustvalues, created %s\n"
 "# (Use \"gpg --import-ownertrust\" to restore them)\n"
 msgstr ""
-"# Meghatározott bizalmi értékek listája, %s.\n"
-"# (Használja a \"gpg --import-ownertrust\" parancsot a visszaállításhoz!)\n"
+"# Meghatározott bizalmi értékek listája, %s.\n"
+"# (Használja a \"gpg --import-ownertrust\" parancsot a visszaállításhoz!)\n"
 
 #, fuzzy, c-format
 msgid "error in '%s': %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy
 msgid "line too long"
-msgstr "A sor túl hosszú!\n"
+msgstr "A sor túl hosszú!\n"
 
 msgid "colon missing"
 msgstr ""
 
 #, fuzzy
 msgid "invalid fingerprint"
-msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
+msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
 
 #, fuzzy
 msgid "ownertrust value missing"
-msgstr "bizalmi értékek importja"
+msgstr "bizalmi értékek importja"
 
 #, fuzzy, c-format
 msgid "error finding trust record in '%s': %s\n"
-msgstr "Hiba bizalmi rekord keresésekor: %s.\n"
+msgstr "Hiba bizalmi rekord keresésekor: %s.\n"
 
 #, fuzzy, c-format
 msgid "read error in '%s': %s\n"
-msgstr "Olvasási hiba: %s.\n"
+msgstr "Olvasási hiba: %s.\n"
 
 #, c-format
 msgid "trustdb: sync failed: %s\n"
-msgstr "Bizalmi adatbázis: szinkronizáció sikertelen: %s.\n"
+msgstr "Bizalmi adatbázis: szinkronizáció sikertelen: %s.\n"
 
 #, fuzzy, c-format
 msgid "can't create lock for '%s'\n"
-msgstr "Nem tudom létrehozni a(z) \"%s\" állományt: %s.\n"
+msgstr "Nem tudom létrehozni a(z) \"%s\" állományt: %s.\n"
 
 #, fuzzy, c-format
 msgid "can't lock '%s'\n"
@@ -5568,103 +5596,103 @@ msgstr "Nem tudom megnyitni %s-t!\n"
 
 #, c-format
 msgid "trustdb rec %lu: lseek failed: %s\n"
-msgstr "Bizalmi adatbázis %lu. rekord: lseek sikertelen: %s.\n"
+msgstr "Bizalmi adatbázis %lu. rekord: lseek sikertelen: %s.\n"
 
 #, c-format
 msgid "trustdb rec %lu: write failed (n=%d): %s\n"
-msgstr "Bizalmi adatbázis %lu. rekord: írás sikertelen (n=%d): %s.\n"
+msgstr "Bizalmi adatbázis %lu. rekord: írás sikertelen (n=%d): %s.\n"
 
 msgid "trustdb transaction too large\n"
-msgstr "Bizalmi adatbázis tranzakciója túl nagy.\n"
+msgstr "Bizalmi adatbázis tranzakciója túl nagy.\n"
 
 #, c-format
 msgid "%s: directory does not exist!\n"
-msgstr "%s: Könyvtár nem létezik!\n"
+msgstr "%s: Könyvtár nem létezik!\n"
 
 #, fuzzy, c-format
 msgid "can't access '%s': %s\n"
-msgstr "Nem tudom bezárni a(z) \"%s\" állományt: %s.\n"
+msgstr "Nem tudom bezárni a(z) \"%s\" állományt: %s.\n"
 
 #, c-format
 msgid "%s: failed to create version record: %s"
-msgstr "%s: Nem sikerült verziórekordot létrehoznom: %s"
+msgstr "%s: Nem sikerült verziórekordot létrehoznom: %s"
 
 #, c-format
 msgid "%s: invalid trustdb created\n"
-msgstr "%s: Érvénytelen bizalmi adatbázis jött létre.\n"
+msgstr "%s: Érvénytelen bizalmi adatbázis jött létre.\n"
 
 #, c-format
 msgid "%s: trustdb created\n"
-msgstr "%s: Bizalmi adatbázis létrejött.\n"
+msgstr "%s: Bizalmi adatbázis létrejött.\n"
 
 #, fuzzy
 #| msgid "NOTE: trustdb not writable\n"
 msgid "Note: trustdb not writable\n"
-msgstr "MEGJEGYZÉS: Bizalmi adatbázis nem írható.\n"
+msgstr "MEGJEGYZÉS: Bizalmi adatbázis nem írható.\n"
 
 #, c-format
 msgid "%s: invalid trustdb\n"
-msgstr "%s: Érvénytelen bizalmi adatbázis.\n"
+msgstr "%s: Érvénytelen bizalmi adatbázis.\n"
 
 #, c-format
 msgid "%s: failed to create hashtable: %s\n"
-msgstr "%s: Hashtábla létrehozása sikertelen: %s.\n"
+msgstr "%s: Hashtábla létrehozása sikertelen: %s.\n"
 
 #, c-format
 msgid "%s: error updating version record: %s\n"
-msgstr "%s: Hiba a verziórekord frissítésekor: %s.\n"
+msgstr "%s: Hiba a verziórekord frissítésekor: %s.\n"
 
 #, c-format
 msgid "%s: error reading version record: %s\n"
-msgstr "%s: Hiba a verziórekord olvasásakor: %s.\n"
+msgstr "%s: Hiba a verziórekord olvasásakor: %s.\n"
 
 #, c-format
 msgid "%s: error writing version record: %s\n"
-msgstr "%s: Hiba a verziórekord írásakor: %s.\n"
+msgstr "%s: Hiba a verziórekord írásakor: %s.\n"
 
 #, c-format
 msgid "trustdb: lseek failed: %s\n"
-msgstr "Bizalmi adatbázis: lseek sikertelen: %s.\n"
+msgstr "Bizalmi adatbázis: lseek sikertelen: %s.\n"
 
 #, c-format
 msgid "trustdb: read failed (n=%d): %s\n"
-msgstr "Bizalmi adatbázis: olvasás sikertelen (n=%d): %s.\n"
+msgstr "Bizalmi adatbázis: olvasás sikertelen (n=%d): %s.\n"
 
 #, c-format
 msgid "%s: not a trustdb file\n"
-msgstr "%s: Nem bizalmi adatbázis.\n"
+msgstr "%s: Nem bizalmi adatbázis.\n"
 
 #, c-format
 msgid "%s: version record with recnum %lu\n"
-msgstr "%s: Verziórekord, rekordszám: %lu.\n"
+msgstr "%s: Verziórekord, rekordszám: %lu.\n"
 
 #, c-format
 msgid "%s: invalid file version %d\n"
-msgstr "%s: Érvénytelen állományverzió (%d).\n"
+msgstr "%s: Érvénytelen állományverzió (%d).\n"
 
 #, c-format
 msgid "%s: error reading free record: %s\n"
-msgstr "%s: Hiba szabad rekord olvasásakor: %s.\n"
+msgstr "%s: Hiba szabad rekord olvasásakor: %s.\n"
 
 #, c-format
 msgid "%s: error writing dir record: %s\n"
-msgstr "%s: Hiba könyvtárrekord írásakor: %s.\n"
+msgstr "%s: Hiba könyvtárrekord írásakor: %s.\n"
 
 #, c-format
 msgid "%s: failed to zero a record: %s\n"
-msgstr "%s: Nem sikerült egy rekord nullázása: %s.\n"
+msgstr "%s: Nem sikerült egy rekord nullázása: %s.\n"
 
 #, c-format
 msgid "%s: failed to append a record: %s\n"
-msgstr "%s: Nem sikerült egy rekord hozzáadása: %s.\n"
+msgstr "%s: Nem sikerült egy rekord hozzáadása: %s.\n"
 
 #, fuzzy
 msgid "Error: The trustdb is corrupted.\n"
-msgstr "%s: Bizalmi adatbázis létrejött.\n"
+msgstr "%s: Bizalmi adatbázis létrejött.\n"
 
 #, c-format
 msgid "can't handle text lines longer than %d characters\n"
-msgstr "Nem tudok %d karakternél hosszabb szövegsorokat kezelni!\n"
+msgstr "Nem tudok %d karakternél hosszabb szövegsorokat kezelni!\n"
 
 #, c-format
 msgid "input line longer than %d characters\n"
@@ -5672,7 +5700,7 @@ msgstr "A bemeneti sor hosszabb, mint %d karakter.\n"
 
 #, fuzzy, c-format
 msgid "error beginning transaction on TOFU database: %s\n"
-msgstr "Hiba %s-ra/-re küldéskor: %s\n"
+msgstr "Hiba %s-ra/-re küldéskor: %s\n"
 
 #, c-format
 msgid "error committing transaction on TOFU database: %s\n"
@@ -5686,61 +5714,65 @@ msgstr ""
 msgid "unsupported TOFU database version: %s\n"
 msgstr ""
 "\n"
-"Támogatott algoritmusok:\n"
+"Támogatott algoritmusok:\n"
 
 #, fuzzy, c-format
 msgid "error reading TOFU database: %s\n"
-msgstr "Hiba %s-ra/-re küldéskor: %s\n"
+msgstr "Hiba %s-ra/-re küldéskor: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing secret keyring `%s': %s\n"
 msgid "error determining TOFU database's version: %s\n"
-msgstr "Hiba a(z) \"%s\" titkoskulcs-karika írásakor: %s.\n"
+msgstr "Hiba a(z) \"%s\" titkoskulcs-karika írásakor: %s.\n"
 
 #, fuzzy, c-format
 #| msgid "%s: error writing dir record: %s\n"
 msgid "error initializing TOFU database: %s\n"
-msgstr "%s: Hiba könyvtárrekord írásakor: %s.\n"
+msgstr "%s: Hiba könyvtárrekord írásakor: %s.\n"
 
 #, fuzzy, c-format
 msgid "error opening TOFU database '%s': %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "error updating TOFU database: %s\n"
-msgstr "Hiba %s-ra/-re küldéskor: %s\n"
+msgstr "Hiba %s-ra/-re küldéskor: %s\n"
 
 #, c-format
-msgid "The binding %s is NOT known."
+msgid ""
+"This is the first time the email address \"%s\" is being used with key %s."
 msgstr ""
 
 #, c-format
-msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr ""
+
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error gathering other user IDs: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr ""
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "kilistázza a kulcs- és felhasználóazonosítókat"
 
 #, fuzzy, c-format
 #| msgid "Policy: "
 msgid "policy: %s"
-msgstr "Eljárásmód: "
+msgstr "Eljárásmód: "
 
 #, fuzzy, c-format
 msgid "error gathering signature stats: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, c-format
 msgid "The email address \"%s\" is associated with %d key:\n"
@@ -5752,41 +5784,47 @@ msgstr[1] ""
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr ""
 
+msgid ", "
+msgstr ""
+
 #, fuzzy
 #| msgid "list keys"
 msgid "this key"
-msgstr "kulcsok listázása"
+msgstr "kulcsok listázása"
+
+#, fuzzy, c-format
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
+msgstr[0] "|algo [fájlok]|üzenet kivonatának kiírása"
+msgstr[1] "|algo [fájlok]|üzenet kivonatának kiírása"
 
 #, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
 msgstr[0] ""
 msgstr[1] ""
 
-#, fuzzy, c-format
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
-msgstr[0] "|algo [fájlok]|üzenet kivonatának kiírása"
-msgstr[1] "|algo [fájlok]|üzenet kivonatának kiírása"
-
 #, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+msgid " over the past year."
+msgid_plural " over the past %d years."
 msgstr[0] ""
 msgstr[1] ""
 
+msgid " in the past."
+msgstr ""
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5802,13 +5840,23 @@ msgstr ""
 msgid "(G)ood, (A)ccept once, (U)nknown, (R)eject once, (B)ad? "
 msgstr ""
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "resetting keydb: %s\n"
+msgstr "Hiba a \"%s\" kulcskarika írásakor: %s\n"
+
 #, fuzzy, c-format
 msgid "error setting TOFU binding's trust level to %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "error changing TOFU policy: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #. TRANSLATORS: The tilde ('~') is used here to indicate a
 #. * non-breakable space
@@ -5849,50 +5897,56 @@ msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
+msgid "%s: "
 msgstr ""
 
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
-msgstr ""
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "Töröltem %d aláírást.\n"
 
 #, fuzzy, c-format
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "|algo [fájlok]|üzenet kivonatának kiírása"
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
+msgstr[0] "|algo [fájlok]|üzenet kivonatának kiírása"
+msgstr[1] "|algo [fájlok]|üzenet kivonatának kiírása"
+
+#, fuzzy, c-format
+#| msgid "encrypted with %lu passphrases\n"
+msgid ", and encrypted %ld messages"
+msgstr "%lu jelszóval rejtjelezve\n"
+
+#, fuzzy, c-format
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] "|algo [fájlok]|üzenet kivonatának kiírása"
+msgstr[1] "|algo [fájlok]|üzenet kivonatának kiírása"
 
-#, c-format
 msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
-msgstr[0] ""
-msgstr[1] ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
+msgstr ""
 
-#, c-format
-msgid "The most recent message was verified %s ago."
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
 msgstr ""
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
 msgstr ""
 
 #, c-format
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -5900,37 +5954,46 @@ msgstr[1] ""
 
 #, fuzzy, c-format
 msgid "error opening TOFU database: %s\n"
-msgstr "Hiba %s-ra/-re küldéskor: %s\n"
+msgstr "Hiba %s-ra/-re küldéskor: %s\n"
+
+#, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring `%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "Hiba a(z) \"%s\" nyilvánoskulcs-karika írásakor: %s.\n"
 
 #, fuzzy, c-format
 #| msgid "`%s' is not a valid long keyID\n"
 msgid "'%s' is not a valid long keyID\n"
-msgstr "\"%s\" nem egy érvényes hosszú kulcsazonosító.\n"
+msgstr "\"%s\" nem egy érvényes hosszú kulcsazonosító.\n"
 
 #, fuzzy, c-format
 msgid "key %s: accepted as trusted key\n"
-msgstr "%08lX kulcs: Elfogadva megbízható kulcsként.\n"
+msgstr "%08lX kulcs: Elfogadva megbízható kulcsként.\n"
 
 #, fuzzy, c-format
 msgid "key %s occurs more than once in the trustdb\n"
-msgstr "A(z) %08lX kulcs egynél többször szerepel a bizalmi adatbázisban.\n"
+msgstr "A(z) %08lX kulcs egynél többször szerepel a bizalmi adatbázisban.\n"
 
 #, fuzzy, c-format
 msgid "key %s: no public key for trusted key - skipped\n"
 msgstr ""
-"%08lX kulcs: Nincs nyilvános kulcs a megbízható kulcshoz - kihagytam.\n"
+"%08lX kulcs: Nincs nyilvános kulcs a megbízható kulcshoz - kihagytam.\n"
 
 #, fuzzy, c-format
 msgid "key %s marked as ultimately trusted\n"
-msgstr "A kulcsot alapvetõen megbízhatónak jelöltem.\n"
+msgstr "A kulcsot alapvetően megbízhatónak jelöltem.\n"
 
 #, c-format
 msgid "trust record %lu, req type %d: read failed: %s\n"
-msgstr "%lu bizalmi rekord, %d kéréstípus: olvasás sikertelen: %s.\n"
+msgstr "%lu bizalmi rekord, %d kéréstípus: olvasás sikertelen: %s.\n"
 
 #, c-format
 msgid "trust record %lu is not of requested type %d\n"
-msgstr "%lu bizalmi rekord nem a kért típusú (%d).\n"
+msgstr "%lu bizalmi rekord nem a kért típusú (%d).\n"
 
 msgid "You may try to re-create the trustdb using the commands:\n"
 msgstr ""
@@ -5947,29 +6010,29 @@ msgid "using %s trust model\n"
 msgstr ""
 
 msgid "no need for a trustdb check\n"
-msgstr "Nincs szükség a bizalmi adatbázis ellenõrzésére.\n"
+msgstr "Nincs szükség a bizalmi adatbázis ellenőrzésére.\n"
 
 #, c-format
 msgid "next trustdb check due at %s\n"
-msgstr "A bizalmi adatbázis következõ ellenõrzése: %s.\n"
+msgstr "A bizalmi adatbázis következő ellenőrzése: %s.\n"
 
 #, fuzzy, c-format
 msgid "no need for a trustdb check with '%s' trust model\n"
-msgstr "Nincs szükség a bizalmi adatbázis ellenõrzésére.\n"
+msgstr "Nincs szükség a bizalmi adatbázis ellenőrzésére.\n"
 
 #, fuzzy, c-format
 msgid "no need for a trustdb update with '%s' trust model\n"
-msgstr "Nincs szükség a bizalmi adatbázis ellenõrzésére.\n"
+msgstr "Nincs szükség a bizalmi adatbázis ellenőrzésére.\n"
 
 #, fuzzy, c-format
 msgid "public key %s not found: %s\n"
-msgstr "A(z) %08lX nyilvános kulcsot nem találom: %s.\n"
+msgstr "A(z) %08lX nyilvános kulcsot nem találom: %s.\n"
 
 msgid "please do a --check-trustdb\n"
-msgstr "Kérem, hajtson végre egy --check-trustdb parancsot!\n"
+msgstr "Kérem, hajtson végre egy --check-trustdb parancsot!\n"
 
 msgid "checking the trustdb\n"
-msgstr "Ellenõrzöm a bizalmi adatbázist.\n"
+msgstr "Ellenőrzöm a bizalmi adatbázist.\n"
 
 #, fuzzy, c-format
 msgid "%d key processed"
@@ -5981,15 +6044,15 @@ msgstr[1] "Eddig %lu kulcsot dolgoztam fel.\n"
 #| msgid "%d keys processed (%d validity counts cleared)\n"
 msgid " (%d validity count cleared)\n"
 msgid_plural " (%d validity counts cleared)\n"
-msgstr[0] "%d kulcsot feldolgoztam (%d érvényességszámlálót töröltem)\n"
-msgstr[1] "%d kulcsot feldolgoztam (%d érvényességszámlálót töröltem)\n"
+msgstr[0] "%d kulcsot feldolgoztam (%d érvényességszámlálót töröltem)\n"
+msgstr[1] "%d kulcsot feldolgoztam (%d érvényességszámlálót töröltem)\n"
 
 msgid "no ultimately trusted keys found\n"
-msgstr "Nem találtam alapvetõen megbízható kulcsot.\n"
+msgstr "Nem találtam alapvetően megbízható kulcsot.\n"
 
 #, fuzzy, c-format
 msgid "public key of ultimately trusted key %s not found\n"
-msgstr "Nem találom az alapvetõen megbízható %08lX kulcs nyilvános kulcsát!\n"
+msgstr "Nem találom az alapvetően megbízható %08lX kulcs nyilvános kulcsát!\n"
 
 #, c-format
 msgid ""
@@ -5998,7 +6061,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "unable to update trustdb version record: write failed: %s\n"
-msgstr "%lu bizalmi rekord, %d típus: írás sikertelen: %s.\n"
+msgstr "%lu bizalmi rekord, %d típus: írás sikertelen: %s.\n"
 
 msgid "undefined"
 msgstr ""
@@ -6033,11 +6096,11 @@ msgstr "[visszavont] "
 
 #, fuzzy
 msgid "[ expired]"
-msgstr "[lejárt]     "
+msgstr "[lejárt]     "
 
 #, fuzzy
 msgid "[ unknown]"
-msgstr "Ismeretlen módú"
+msgstr "Ismeretlen módú"
 
 msgid "[  undef ]"
 msgstr ""
@@ -6060,17 +6123,17 @@ msgid ""
 "Please remember that the signature file (.sig or .asc)\n"
 "should be the first file given on the command line.\n"
 msgstr ""
-"Nem tudom ellenõrizni az aláírást.\n"
-"Ne felejtse el, hogy az aláírást tartalmazó állományt (.sig vagy .asc)\n"
-"kell az elsõ helyre írni a parancssorban!\n"
+"Nem tudom ellenőrizni az aláírást.\n"
+"Ne felejtse el, hogy az aláírást tartalmazó állományt (.sig vagy .asc)\n"
+"kell az első helyre írni a parancssorban!\n"
 
 #, c-format
 msgid "input line %u too long or missing LF\n"
-msgstr "A bemeneti sor (%u) túl hosszú, vagy hiányzik a soremelés.\n"
+msgstr "A bemeneti sor (%u) túl hosszú, vagy hiányzik a soremelés.\n"
 
 #, fuzzy, c-format
 msgid "can't open fd %d: %s\n"
-msgstr "Nem tudom megnyitni a(z) \"%s\" állományt: %s.\n"
+msgstr "Nem tudom megnyitni a(z) \"%s\" állományt: %s.\n"
 
 msgid "set debugging flags"
 msgstr ""
@@ -6080,13 +6143,13 @@ msgstr ""
 
 #, fuzzy
 msgid "Usage: kbxutil [options] [files] (-h for help)"
-msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
+msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
 
 #, fuzzy
 msgid ""
 "Syntax: kbxutil [options] [files]\n"
 "List, export, import Keybox data\n"
-msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
+msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
 
 #, c-format
 msgid "RSA modulus missing or not of size %d bits\n"
@@ -6105,19 +6168,19 @@ msgstr ""
 
 #, fuzzy
 msgid "|N|Please enter a new PIN for the standard keys."
-msgstr "jelszóváltoztatás"
+msgstr "jelszóváltoztatás"
 
 #, fuzzy
 msgid "||Please enter the PIN for the standard keys."
-msgstr "jelszóváltoztatás"
+msgstr "jelszóváltoztatás"
 
 #, fuzzy
 msgid "|NP|Please enter a new PIN Unblocking Code (PUK) for the standard keys."
-msgstr "Kérem, válassza ki a visszavonás okát:\n"
+msgstr "Kérem, válassza ki a visszavonás okát:\n"
 
 #, fuzzy
 msgid "|P|Please enter the PIN Unblocking Code (PUK) for the standard keys."
-msgstr "Kérem, válassza ki a visszavonás okát:\n"
+msgstr "Kérem, válassza ki a visszavonás okát:\n"
 
 msgid "|N|Please enter a new PIN for the key to create qualified signatures."
 msgstr ""
@@ -6137,22 +6200,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting new PIN: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, fuzzy, c-format
 msgid "failed to store the fingerprint: %s\n"
-msgstr "Bizalmi adatbázis (%s) inicializálása sikertelen!\n"
+msgstr "Bizalmi adatbázis (%s) inicializálása sikertelen!\n"
 
 #, fuzzy, c-format
 msgid "failed to store the creation date: %s\n"
-msgstr "Nem tudtam újraépíteni a kulcskarika cache-ét: %s\n"
-
-#, fuzzy, c-format
-msgid "reading public key failed: %s\n"
-msgstr "A kulcsblokk törlése sikertelen: %s.\n"
-
-msgid "response does not contain the public key data\n"
-msgstr ""
+msgstr "Nem tudtam újraépíteni a kulcskarika cache-ét: %s\n"
 
 msgid "response does not contain the RSA modulus\n"
 msgstr ""
@@ -6160,9 +6216,18 @@ msgstr ""
 msgid "response does not contain the RSA public exponent\n"
 msgstr ""
 
-msgid "response does not contain the EC public point\n"
+#, fuzzy
+#| msgid "remove keys from the public keyring"
+msgid "response does not contain the EC public key\n"
+msgstr "kulcsok eltávolítása a nyilvánoskulcs-karikáról"
+
+msgid "response does not contain the public key data\n"
 msgstr ""
 
+#, fuzzy, c-format
+msgid "reading public key failed: %s\n"
+msgstr "A kulcsblokk törlése sikertelen: %s.\n"
+
 #, c-format
 msgid "using default PIN as %s\n"
 msgstr ""
@@ -6177,7 +6242,7 @@ msgstr ""
 
 #, fuzzy
 msgid "||Please enter the PIN"
-msgstr "jelszóváltoztatás"
+msgstr "jelszóváltoztatás"
 
 #, c-format
 msgid "PIN for CHV%d is too short; minimum length is %d\n"
@@ -6185,7 +6250,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "verify CHV%d failed: %s\n"
-msgstr "Küldés a kulcsszerverre sikertelen: %s\n"
+msgstr "Küldés a kulcsszerverre sikertelen: %s\n"
 
 msgid "error retrieving CHV status from card\n"
 msgstr ""
@@ -6204,18 +6269,18 @@ msgstr[1] ""
 #. the start of the string.  Use %%0A to force a linefeed.
 #, fuzzy, c-format
 msgid "|A|Please enter the Admin PIN%%0A[remaining attempts: %d]"
-msgstr "jelszóváltoztatás"
+msgstr "jelszóváltoztatás"
 
 #, fuzzy
 msgid "|A|Please enter the Admin PIN"
-msgstr "jelszóváltoztatás"
+msgstr "jelszóváltoztatás"
 
 msgid "access to admin commands is not configured\n"
 msgstr ""
 
 #, fuzzy
 msgid "||Please enter the Reset Code for the card"
-msgstr "Kérem, válassza ki a visszavonás okát:\n"
+msgstr "Kérem, válassza ki a visszavonás okát:\n"
 
 #, c-format
 msgid "Reset Code is too short; minimum length is %d\n"
@@ -6235,34 +6300,34 @@ msgstr ""
 
 #, fuzzy
 msgid "||Please enter the Admin PIN and New Admin PIN"
-msgstr "jelszóváltoztatás"
+msgstr "jelszóváltoztatás"
 
 #, fuzzy
 msgid "||Please enter the PIN and New PIN"
-msgstr "jelszóváltoztatás"
+msgstr "jelszóváltoztatás"
 
 #, fuzzy
 msgid "error reading application data\n"
-msgstr "Hiba a kulcsblokk olvasásakor: %s\n"
+msgstr "Hiba a kulcsblokk olvasásakor: %s\n"
 
 #, fuzzy
 msgid "error reading fingerprint DO\n"
-msgstr "%s: Hiba szabad rekord olvasásakor: %s.\n"
+msgstr "%s: Hiba szabad rekord olvasásakor: %s.\n"
 
 #, fuzzy
 msgid "key already exists\n"
-msgstr "\"%s\" már tömörített.\n"
+msgstr "\"%s\" már tömörített.\n"
 
 msgid "existing key will be replaced\n"
 msgstr ""
 
 #, fuzzy
 msgid "generating new key\n"
-msgstr "új kulcspár létrehozása"
+msgstr "új kulcspár létrehozása"
 
 #, fuzzy
 msgid "writing new key\n"
-msgstr "új kulcspár létrehozása"
+msgstr "új kulcspár létrehozása"
 
 msgid "creation timestamp missing\n"
 msgstr ""
@@ -6273,25 +6338,25 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "failed to store the key: %s\n"
-msgstr "Bizalmi adatbázis (%s) inicializálása sikertelen!\n"
+msgstr "Bizalmi adatbázis (%s) inicializálása sikertelen!\n"
 
 #, fuzzy
 #| msgid "unsupported URI"
 msgid "unsupported curve\n"
-msgstr "nem támogatott URI"
+msgstr "nem támogatott URI"
 
 msgid "please wait while key is being generated ...\n"
 msgstr ""
 
 #, fuzzy
 msgid "generating key failed\n"
-msgstr "A kulcsblokk törlése sikertelen: %s.\n"
+msgstr "A kulcsblokk törlése sikertelen: %s.\n"
 
 #, fuzzy, c-format
 msgid "key generation completed (%d second)\n"
 msgid_plural "key generation completed (%d seconds)\n"
-msgstr[0] "Kulcsgenerálás sikertelen: %s\n"
-msgstr[1] "Kulcsgenerálás sikertelen: %s\n"
+msgstr[0] "Kulcsgenerálás sikertelen: %s\n"
+msgstr[1] "Kulcsgenerálás sikertelen: %s\n"
 
 msgid "invalid structure of OpenPGP card (DO 0x93)\n"
 msgstr ""
@@ -6301,7 +6366,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "card does not support digest algorithm %s\n"
-msgstr "%s aláírás, %s kivonatoló algoritmus.\n"
+msgstr "%s aláírás, %s kivonatoló algoritmus.\n"
 
 #, c-format
 msgid "signatures created so far: %lu\n"
@@ -6313,11 +6378,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "can't access %s - invalid OpenPGP card?\n"
-msgstr "Nem találtam érvényes OpenPGP adatot.\n"
+msgstr "Nem találtam érvényes OpenPGP adatot.\n"
 
 #, fuzzy
 msgid "||Please enter your PIN at the reader's pinpad"
-msgstr "jelszóváltoztatás"
+msgstr "jelszóváltoztatás"
 
 #. TRANSLATORS: Do not translate the "|*|" prefixes but
 #. keep it at the start of the string.  We need this elsewhere
@@ -6333,22 +6398,22 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|write a log to FILE"
-msgstr "|fájl|bõvítõ modul betöltése"
+msgstr "|fájl|bővítő modul betöltése"
 
 msgid "|N|connect to reader at port N"
 msgstr ""
 
 #, fuzzy
 msgid "|NAME|use NAME as ct-API driver"
-msgstr "|NÉV|NÉV használata alapértelmezett címzettként"
+msgstr "|NÉV|NÉV használata alapértelmezett címzettként"
 
 #, fuzzy
 msgid "|NAME|use NAME as PC/SC driver"
-msgstr "|NÉV|NÉV használata alapértelmezett címzettként"
+msgstr "|NÉV|NÉV használata alapértelmezett címzettként"
 
 #, fuzzy
 msgid "do not use the internal CCID driver"
-msgstr "ne használja a terminált egyáltalán"
+msgstr "ne használja a terminált egyáltalán"
 
 msgid "|N|disconnect the card after N seconds of inactivity"
 msgstr ""
@@ -6358,14 +6423,14 @@ msgstr ""
 
 #, fuzzy
 msgid "deny the use of admin card commands"
-msgstr "Egymásnak ellentmondó parancsok!\n"
+msgstr "Egymásnak ellentmondó parancsok!\n"
 
 msgid "use variable length input for pinpad"
 msgstr ""
 
 #, fuzzy
 msgid "Usage: @SCDAEMON@ [options] (-h for help)"
-msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
+msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
 
 msgid ""
 "Syntax: scdaemon [options] [command [args]]\n"
@@ -6385,11 +6450,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid radix64 character %02x skipped\n"
-msgstr "Kihagytam a %02x kódú érvénytelen radix64 karaktert.\n"
+msgstr "Kihagytam a %02x kódú érvénytelen radix64 karaktert.\n"
 
 #, fuzzy
 msgid "no dirmngr running in this session\n"
-msgstr "GPG ügynök nem elérhetõ ebben a munkafolyamatban.\n"
+msgstr "GPG ügynök nem elérhető ebben a munkafolyamatban.\n"
 
 #, c-format
 msgid "validation model requested by certificate: %s"
@@ -6404,7 +6469,7 @@ msgstr "help"
 
 #, fuzzy, c-format
 msgid "critical certificate extension %s is not supported"
-msgstr "%d gpg-agent protokollverzió nem támogatott!\n"
+msgstr "%d gpg-agent protokollverzió nem támogatott!\n"
 
 msgid "issuer certificate is not marked as a CA"
 msgstr ""
@@ -6414,15 +6479,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "failed to open '%s': %s\n"
-msgstr "Nem tudom megnyitni a(z) \"%s\" állományt: %s.\n"
+msgstr "Nem tudom megnyitni a(z) \"%s\" állományt: %s.\n"
 
 #, fuzzy
 msgid "Note: non-critical certificate policy not allowed"
-msgstr "Írom a titkos kulcsot a %s állományba.\n"
+msgstr "Írom a titkos kulcsot a %s állományba.\n"
 
 #, fuzzy
 msgid "certificate policy not allowed"
-msgstr "Írom a titkos kulcsot a %s állományba.\n"
+msgstr "Írom a titkos kulcsot a %s állományba.\n"
 
 msgid "looking up issuer at external location\n"
 msgstr ""
@@ -6436,19 +6501,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "number of matching certificates: %d\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, fuzzy, c-format
 msgid "dirmngr cache-only key lookup failed: %s\n"
-msgstr "A kulcsblokk törlése sikertelen: %s.\n"
+msgstr "A kulcsblokk törlése sikertelen: %s.\n"
 
 #, fuzzy
 msgid "failed to allocate keyDB handle\n"
-msgstr "Bizalmi adatbázis (%s) inicializálása sikertelen!\n"
+msgstr "Bizalmi adatbázis (%s) inicializálása sikertelen!\n"
 
 #, fuzzy
 msgid "certificate has been revoked"
-msgstr "MEGJEGYZÉS: A kulcsot visszavonták."
+msgstr "MEGJEGYZÉS: A kulcsot visszavonták."
 
 msgid "the status of the certificate is unknown"
 msgstr ""
@@ -6458,7 +6523,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "checking the CRL failed: %s"
-msgstr "A létrehozott aláírás ellenõrzése sikertelen: %s.\n"
+msgstr "A létrehozott aláírás ellenőrzése sikertelen: %s.\n"
 
 #, c-format
 msgid "certificate with invalid validity: %s"
@@ -6469,22 +6534,22 @@ msgstr ""
 
 #, fuzzy
 msgid "root certificate not yet valid"
-msgstr "Írom a titkos kulcsot a %s állományba.\n"
+msgstr "Írom a titkos kulcsot a %s állományba.\n"
 
 msgid "intermediate certificate not yet valid"
 msgstr ""
 
 #, fuzzy
 msgid "certificate has expired"
-msgstr "Ez a kulcs lejárt!"
+msgstr "Ez a kulcs lejárt!"
 
 #, fuzzy
 msgid "root certificate has expired"
-msgstr "Ez a kulcs lejárt!"
+msgstr "Ez a kulcs lejárt!"
 
 #, fuzzy
 msgid "intermediate certificate has expired"
-msgstr "Ez a kulcs lejárt!"
+msgstr "Ez a kulcs lejárt!"
 
 #, c-format
 msgid "required certificate attributes missing: %s%s%s"
@@ -6492,7 +6557,7 @@ msgstr ""
 
 #, fuzzy
 msgid "certificate with invalid validity"
-msgstr "Ez a kulcs lejárt!"
+msgstr "Ez a kulcs lejárt!"
 
 msgid "signature not created during lifetime of certificate"
 msgstr ""
@@ -6505,15 +6570,15 @@ msgstr ""
 
 #, fuzzy
 msgid "  (  signature created at "
-msgstr "              új aláírások: %lu\n"
+msgstr "              új aláírások: %lu\n"
 
 #, fuzzy
 msgid "  (certificate created at "
-msgstr "Visszavonó igazolás létrehozva.\n"
+msgstr "Visszavonó igazolás létrehozva.\n"
 
 #, fuzzy
 msgid "  (certificate valid from "
-msgstr "rossz igazolás"
+msgstr "rossz igazolás"
 
 msgid "  (     issuer valid from "
 msgstr ""
@@ -6536,7 +6601,7 @@ msgstr ""
 
 #, fuzzy
 msgid "no issuer found in certificate"
-msgstr "visszavonási igazolás készítése"
+msgstr "visszavonási igazolás készítése"
 
 msgid "self-signed certificate has a BAD signature"
 msgstr ""
@@ -6546,7 +6611,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "checking the trust list failed: %s\n"
-msgstr "A létrehozott aláírás ellenõrzése sikertelen: %s.\n"
+msgstr "A létrehozott aláírás ellenőrzése sikertelen: %s.\n"
 
 msgid "certificate chain too long\n"
 msgstr ""
@@ -6556,7 +6621,7 @@ msgstr ""
 
 #, fuzzy
 msgid "certificate has a BAD signature"
-msgstr "aláírás ellenõrzése"
+msgstr "aláírás ellenőrzése"
 
 msgid "found another possible matching CA certificate - trying again"
 msgstr ""
@@ -6567,15 +6632,15 @@ msgstr ""
 
 #, fuzzy
 msgid "certificate is good\n"
-msgstr "%c%lu preferencia kétszer szerepel!\n"
+msgstr "%c%lu preferencia kétszer szerepel!\n"
 
 #, fuzzy
 msgid "intermediate certificate is good\n"
-msgstr "Visszavonó igazolás létrehozva.\n"
+msgstr "Visszavonó igazolás létrehozva.\n"
 
 #, fuzzy
 msgid "root certificate is good\n"
-msgstr "rossz igazolás"
+msgstr "rossz igazolás"
 
 msgid "switching to chain model"
 msgstr ""
@@ -6597,7 +6662,7 @@ msgstr "nem"
 
 #, fuzzy
 msgid "[Error - invalid encoding]"
-msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
+msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
 
 msgid "[Error - out of core]"
 msgstr ""
@@ -6607,7 +6672,7 @@ msgstr ""
 
 #, fuzzy
 msgid "[Error - invalid DN]"
-msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
+msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
 
 #, fuzzy, c-format
 msgid ""
@@ -6617,17 +6682,17 @@ msgid ""
 "S/N %s, ID 0x%08lX,\n"
 "created %s, expires %s.\n"
 msgstr ""
-"Most meg kell adnia a jelszót, mellyel a következõ felhasználó\n"
-"titkos kulcsa használatba vehetõ:\n"
+"Most meg kell adnia a jelszót, mellyel a következő felhasználó\n"
+"titkos kulcsa használatba vehető:\n"
 "\"%.*s\"\n"
-"%u bites %s key, azonosító: %08lX, létrehozva: %s%s\n"
+"%u bites %s key, azonosító: %08lX, létrehozva: %s%s\n"
 
 msgid "no key usage specified - assuming all usages\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting key usage information: %s\n"
-msgstr "Hiba a(z) \"%s\" titkoskulcs-karika írásakor: %s.\n"
+msgstr "Hiba a(z) \"%s\" titkoskulcs-karika írásakor: %s.\n"
 
 msgid "certificate should not have been used for certification\n"
 msgstr ""
@@ -6649,7 +6714,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "line %d: invalid algorithm\n"
-msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
+msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
 
 #, c-format
 msgid "line %d: invalid key length %u (valid are %d to %d)\n"
@@ -6661,19 +6726,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "line %d: invalid subject name label '%.*s'\n"
-msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
+msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid subject name '%s' at pos %d\n"
-msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
+msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: not a valid email address\n"
-msgstr "Ez nem érvényes e-mail cím.\n"
+msgstr "Ez nem érvényes e-mail cím.\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid serial number\n"
-msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
+msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
 
 #, c-format
 msgid "line %d: invalid issuer name label '%.*s'\n"
@@ -6685,39 +6750,39 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "line %d: invalid date given\n"
-msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
+msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: error getting signing key by keygrip '%s': %s\n"
-msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
+msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid hash algorithm given\n"
-msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
+msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid authority-key-id\n"
-msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
+msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid subject-key-id\n"
-msgstr "%08lX kulcs: Érvénytelen alkulcskötés!\n"
+msgstr "%08lX kulcs: Érvénytelen alkulcskötés!\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid extension syntax\n"
-msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
+msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: error reading key '%s' from card: %s\n"
-msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
+msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: error getting key by keygrip '%s': %s\n"
-msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
+msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: key generation failed: %s <%s>\n"
-msgstr "Kulcsgenerálás sikertelen: %s\n"
+msgstr "Kulcsgenerálás sikertelen: %s\n"
 
 msgid ""
 "To complete this certificate request please enter the passphrase for the key "
@@ -6726,11 +6791,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "   (%d) RSA\n"
-msgstr "   (%d) RSA (csak aláírás)\n"
+msgstr "   (%d) RSA (csak aláírás)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) Existing key\n"
-msgstr "   (%d) RSA (csak titkosítás)\n"
+msgstr "   (%d) RSA (csak titkosítás)\n"
 
 #, c-format
 msgid "   (%d) Existing key from card\n"
@@ -6738,15 +6803,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error reading the card: %s\n"
-msgstr "%s: Hiba szabad rekord olvasásakor: %s.\n"
+msgstr "%s: Hiba szabad rekord olvasásakor: %s.\n"
 
 #, fuzzy, c-format
 msgid "Serial number of the card: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, fuzzy
 msgid "Available keys:\n"
-msgstr "kulcs tiltása"
+msgstr "kulcs tiltása"
 
 #, c-format
 msgid "Possible actions for a %s key:\n"
@@ -6754,26 +6819,26 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "   (%d) sign, encrypt\n"
-msgstr "   (%d) RSA (aláírás és titkosítás)\n"
+msgstr "   (%d) RSA (aláírás és titkosítás)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) sign\n"
-msgstr "   (%d) DSA (csak aláírás)\n"
+msgstr "   (%d) DSA (csak aláírás)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) encrypt\n"
-msgstr "   (%d) RSA (csak titkosítás)\n"
+msgstr "   (%d) RSA (csak titkosítás)\n"
 
 msgid "Enter the X.509 subject name: "
 msgstr ""
 
 #, fuzzy
 msgid "No subject name given\n"
-msgstr "(Nincs leírás.)\n"
+msgstr "(Nincs leírás.)\n"
 
 #, fuzzy, c-format
 msgid "Invalid subject name label '%.*s'\n"
-msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
+msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
 
 #. TRANSLATORS: The 22 in the second string is the
 #. length of the first string up to the "%s".  Please
@@ -6782,35 +6847,35 @@ msgstr "
 #. drop everything after the number.
 #, fuzzy, c-format
 msgid "Invalid subject name '%s'\n"
-msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
+msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
 
 msgid "22 translator: see certreg-ui.c:gpgsm_gencertreq_tty"
 msgstr ""
 
 #, fuzzy
 msgid "Enter email addresses"
-msgstr "E-mail cím: "
+msgstr "E-mail cím: "
 
 #, fuzzy
 msgid " (end with an empty line):\n"
 msgstr ""
 "\n"
-"Adja meg a felhasználói azonosítót! Üres sorral fejezze be: "
+"Adja meg a felhasználói azonosítót! Üres sorral fejezze be: "
 
 #, fuzzy
 msgid "Enter DNS names"
-msgstr "Írja be az új állománynevet"
+msgstr "Írja be az új állománynevet"
 
 #, fuzzy
 msgid " (optional; end with an empty line):\n"
-msgstr "Adjon meg egy nem kötelezõ leírást! Üres sorral fejezze be:\n"
+msgstr "Adjon meg egy nem kötelező leírást! Üres sorral fejezze be:\n"
 
 msgid "Enter URIs"
 msgstr ""
 
 #, fuzzy
 msgid "Create self-signed certificate? (y/N) "
-msgstr "Csináljunk egy visszavonó igazolást ehhez a kulcshoz? "
+msgstr "Csináljunk egy visszavonó igazolást ehhez a kulcshoz? "
 
 msgid "These parameters are used:\n"
 msgstr ""
@@ -6821,7 +6886,7 @@ msgstr ""
 #, fuzzy
 #| msgid "Revocation certificate created.\n"
 msgid "Now creating certificate request.  "
-msgstr "Visszavonó igazolás létrehozva.\n"
+msgstr "Visszavonó igazolás létrehozva.\n"
 
 msgid "This may take a while ...\n"
 msgstr ""
@@ -6843,43 +6908,43 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "certificate '%s' not found: %s\n"
-msgstr "\"%s\" kulcs nem található: %s\n"
+msgstr "\"%s\" kulcs nem található: %s\n"
 
 #, fuzzy, c-format
 msgid "error locking keybox: %s\n"
-msgstr "Hiba a kulcsblokk olvasásakor: %s\n"
+msgstr "Hiba a kulcsblokk olvasásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "duplicated certificate '%s' deleted\n"
-msgstr "Visszavonó igazolás létrehozva.\n"
+msgstr "Visszavonó igazolás létrehozva.\n"
 
 #, fuzzy, c-format
 msgid "certificate '%s' deleted\n"
-msgstr "%c%lu preferencia kétszer szerepel!\n"
+msgstr "%c%lu preferencia kétszer szerepel!\n"
 
 #, fuzzy, c-format
 msgid "deleting certificate \"%s\" failed: %s\n"
-msgstr "A kulcsblokk törlése sikertelen: %s.\n"
+msgstr "A kulcsblokk törlése sikertelen: %s.\n"
 
 #, fuzzy
 msgid "no valid recipients given\n"
-msgstr "(Nincs leírás.)\n"
+msgstr "(Nincs leírás.)\n"
 
 #, fuzzy
 msgid "list external keys"
-msgstr "titkos kulcsok listázása"
+msgstr "titkos kulcsok listázása"
 
 #, fuzzy
 msgid "list certificate chain"
-msgstr "rossz igazolás"
+msgstr "rossz igazolás"
 
 #, fuzzy
 msgid "import certificates"
-msgstr "rossz igazolás"
+msgstr "rossz igazolás"
 
 #, fuzzy
 msgid "export certificates"
-msgstr "rossz igazolás"
+msgstr "rossz igazolás"
 
 msgid "register a smartcard"
 msgstr ""
@@ -6892,7 +6957,7 @@ msgstr ""
 
 #, fuzzy
 msgid "create base-64 encoded output"
-msgstr "ascii páncélozott kimenet létrehozása"
+msgstr "ascii páncélozott kimenet létrehozása"
 
 msgid "assume input is in PEM format"
 msgstr ""
@@ -6922,46 +6987,46 @@ msgid "fetch missing issuer certificates"
 msgstr ""
 
 msgid "don't use the terminal at all"
-msgstr "ne használja a terminált egyáltalán"
+msgstr "ne használja a terminált egyáltalán"
 
 msgid "|FILE|write a server mode log to FILE"
 msgstr ""
 
 #, fuzzy
 msgid "|FILE|write an audit log to FILE"
-msgstr "|fájl|bõvítõ modul betöltése"
+msgstr "|fájl|bővítő modul betöltése"
 
 msgid "batch mode: never ask"
-msgstr "kötegelt mód: soha nem kérdez"
+msgstr "kötegelt mód: soha nem kérdez"
 
 msgid "assume yes on most questions"
-msgstr "igen válasz feltételezése a legtöbb kérdésre"
+msgstr "igen válasz feltételezése a legtöbb kérdésre"
 
 msgid "assume no on most questions"
-msgstr "nem válasz feltételezése a legtöbb kérdésre"
+msgstr "nem válasz feltételezése a legtöbb kérdésre"
 
 #, fuzzy
 msgid "|FILE|add keyring to the list of keyrings"
-msgstr "kulcskarika hozzáadása a kulcskarikalistához"
+msgstr "kulcskarika hozzáadása a kulcskarikalistához"
 
 #, fuzzy
 msgid "|USER-ID|use USER-ID as default secret key"
-msgstr "|NÉV|NÉV használata alapértelmezett titkos kulcsként"
+msgstr "|NÉV|NÉV használata alapértelmezett titkos kulcsként"
 
 #, fuzzy
 msgid "|SPEC|use this keyserver to lookup keys"
-msgstr "|GÉPNÉV|kulcsszerver beállítása kulcsok kereséséhez"
+msgstr "|GÉPNÉV|kulcsszerver beállítása kulcsok kereséséhez"
 
 msgid "|NAME|use cipher algorithm NAME"
-msgstr "|NÉV|NÉV rejtjelezõ algoritmus használata"
+msgstr "|NÉV|NÉV rejtjelező algoritmus használata"
 
 msgid "|NAME|use message digest algorithm NAME"
-msgstr "|NÉV|NÉV kivonatoló algoritmus használata"
+msgstr "|NÉV|NÉV kivonatoló algoritmus használata"
 
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: @GPGSM@ [options] [files] (-h for help)"
-msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
+msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
 
 #, fuzzy
 msgid ""
@@ -6969,21 +7034,21 @@ msgid ""
 "Sign, check, encrypt or decrypt using the S/MIME protocol\n"
 "Default operation depends on the input data\n"
 msgstr ""
-"Szintaxis: gpg [opciók] [fájlok]\n"
-"Aláírás, ellenõrzés, titkosítás vagy visszafejtés.\n"
-"Az alapértelmezett mûvelet a bemeneti adattól függ.\n"
+"Szintaxis: gpg [opciók] [fájlok]\n"
+"Aláírás, ellenőrzés, titkosítás vagy visszafejtés.\n"
+"Az alapértelmezett művelet a bemeneti adattól függ.\n"
 
 #, fuzzy, c-format
 msgid "Note: won't be able to encrypt to '%s': %s\n"
-msgstr "Nem tudok kapcsolódni \"%s\" objektumhoz: %s\n"
+msgstr "Nem tudok kapcsolódni \"%s\" objektumhoz: %s\n"
 
 #, fuzzy, c-format
 msgid "unknown validation model '%s'\n"
-msgstr "Ismeretlen alapértelmezett címzett: \"%s\"\n"
+msgstr "Ismeretlen alapértelmezett címzett: \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: no hostname given\n"
-msgstr "(Nincs leírás.)\n"
+msgstr "(Nincs leírás.)\n"
 
 #, c-format
 msgid "%s:%u: password given without user\n"
@@ -6991,49 +7056,49 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "%s:%u: skipping this line\n"
-msgstr " h = kulcs kihagyása\n"
+msgstr " h = kulcs kihagyása\n"
 
 #, fuzzy
 msgid "could not parse keyserver\n"
-msgstr "Értelmezhetetlen a kulcsszerver URI-ja!\n"
+msgstr "Értelmezhetetlen a kulcsszerver URI-ja!\n"
 
 #, fuzzy, c-format
 msgid "importing common certificates '%s'\n"
-msgstr "Írok a \"%s\" állományba.\n"
+msgstr "Írok a \"%s\" állományba.\n"
 
 #, fuzzy, c-format
 msgid "can't sign using '%s': %s\n"
-msgstr "Nem tudom bezárni a(z) \"%s\" állományt: %s.\n"
+msgstr "Nem tudom bezárni a(z) \"%s\" állományt: %s.\n"
 
 msgid "invalid command (there is no implicit command)\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "total number processed: %lu\n"
-msgstr "     Összesen feldolgoztam: %lu\n"
+msgstr "     Összesen feldolgoztam: %lu\n"
 
 #, fuzzy
 msgid "error storing certificate\n"
-msgstr "visszavonási igazolás készítése"
+msgstr "visszavonási igazolás készítése"
 
 msgid "basic certificate checks failed - not imported\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting stored flags: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, fuzzy, c-format
 msgid "error importing certificate: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, fuzzy, c-format
 msgid "error reading input: %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy
 msgid "failed to get the fingerprint\n"
-msgstr "Bizalmi adatbázis (%s) inicializálása sikertelen!\n"
+msgstr "Bizalmi adatbázis (%s) inicializálása sikertelen!\n"
 
 #, c-format
 msgid "problem looking for existing certificate: %s\n"
@@ -7041,19 +7106,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error finding writable keyDB: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, fuzzy, c-format
 msgid "error storing certificate: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, fuzzy, c-format
 msgid "problem re-searching certificate: %s\n"
-msgstr "rev? Nem tudom ellenõrizni a visszavonást: %s.\n"
+msgstr "rev? Nem tudom ellenőrizni a visszavonást: %s.\n"
 
 #, fuzzy, c-format
 msgid "error storing flags: %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 msgid "Error - "
 msgstr ""
@@ -7063,11 +7128,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid formatted fingerprint in '%s', line %d\n"
-msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
+msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
 
 #, fuzzy, c-format
 msgid "invalid country code in '%s', line %d\n"
-msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
+msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
 
 #, c-format
 msgid ""
@@ -7093,7 +7158,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "hash algorithm %d (%s) for signer %d not supported; using %s\n"
-msgstr "%d%s védõ algoritmus nem támogatott.\n"
+msgstr "%d%s védő algoritmus nem támogatott.\n"
 
 #, c-format
 msgid "hash algorithm used for signer %d: %s (%s)\n"
@@ -7101,18 +7166,18 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "checking for qualified certificate failed: %s\n"
-msgstr "A létrehozott aláírás ellenõrzése sikertelen: %s.\n"
+msgstr "A létrehozott aláírás ellenőrzése sikertelen: %s.\n"
 
 #, fuzzy
 msgid "Signature made "
-msgstr "Az aláírás lejárt: %s.\n"
+msgstr "Az aláírás lejárt: %s.\n"
 
 msgid "[date not given]"
 msgstr ""
 
 #, fuzzy, c-format
 msgid " using certificate ID 0x%08lX\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 msgid ""
 "invalid signature: message digest attribute does not match computed one\n"
@@ -7120,7 +7185,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Good signature from"
-msgstr "Jó aláírás a következõtõl: \""
+msgstr "Jó aláírás a következőtől: \""
 
 #, fuzzy
 msgid "                aka"
@@ -7130,11 +7195,11 @@ msgstr "               azaz \""
 msgid "This is a qualified signature\n"
 msgstr ""
 "\n"
-"Ez egy önaláírás lesz.\n"
+"Ez egy önaláírás lesz.\n"
 
 #, fuzzy, c-format
 msgid "can't initialize certificate cache lock: %s\n"
-msgstr "A létrehozott aláírás ellenõrzése sikertelen: %s.\n"
+msgstr "A létrehozott aláírás ellenőrzése sikertelen: %s.\n"
 
 #, c-format
 msgid "can't acquire read lock on the certificate cache: %s\n"
@@ -7155,19 +7220,19 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "can't create `%s': %s\n"
 msgid "can't parse certificate '%s': %s\n"
-msgstr "Nem tudom létrehozni a(z) \"%s\" állományt: %s.\n"
+msgstr "Nem tudom létrehozni a(z) \"%s\" állományt: %s.\n"
 
 #, fuzzy, c-format
 msgid "certificate '%s' already cached\n"
-msgstr "%c%lu preferencia kétszer szerepel!\n"
+msgstr "%c%lu preferencia kétszer szerepel!\n"
 
 #, fuzzy, c-format
 msgid "trusted certificate '%s' loaded\n"
-msgstr "Visszavonó igazolás létrehozva.\n"
+msgstr "Visszavonó igazolás létrehozva.\n"
 
 #, fuzzy, c-format
 msgid "certificate '%s' loaded\n"
-msgstr "%c%lu preferencia kétszer szerepel!\n"
+msgstr "%c%lu preferencia kétszer szerepel!\n"
 
 #, fuzzy, c-format
 msgid "  SHA1 fingerprint = %s\n"
@@ -7181,103 +7246,103 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error loading certificate '%s': %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, fuzzy, c-format
 msgid "permanently loaded certificates: %u\n"
-msgstr "rossz igazolás"
+msgstr "rossz igazolás"
 
 #, fuzzy, c-format
 msgid "    runtime cached certificates: %u\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, fuzzy
 msgid "certificate already cached\n"
-msgstr "Visszavonó igazolás létrehozva.\n"
+msgstr "Visszavonó igazolás létrehozva.\n"
 
 #, fuzzy
 msgid "certificate cached\n"
-msgstr "%c%lu preferencia kétszer szerepel!\n"
+msgstr "%c%lu preferencia kétszer szerepel!\n"
 
 #, fuzzy, c-format
 msgid "error caching certificate: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, fuzzy, c-format
 msgid "invalid SHA1 fingerprint string '%s'\n"
-msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
+msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
 
 #, fuzzy, c-format
 msgid "error fetching certificate by S/N: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, fuzzy, c-format
 msgid "error fetching certificate by subject: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, fuzzy
 msgid "no issuer found in certificate\n"
-msgstr "visszavonási igazolás készítése"
+msgstr "visszavonási igazolás készítése"
 
 #, fuzzy, c-format
 msgid "error getting authorityKeyIdentifier: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, fuzzy, c-format
 #| msgid "can't create directory `%s': %s\n"
 msgid "creating directory '%s'\n"
-msgstr "Nem tudom a \"%s\" könyvtárat létrehozni: %s.\n"
+msgstr "Nem tudom a \"%s\" könyvtárat létrehozni: %s.\n"
 
 #, fuzzy, c-format
 msgid "error creating directory '%s': %s\n"
-msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
+msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "ignoring database dir '%s'\n"
-msgstr "Hiba a záró sorban!\n"
+msgstr "Hiba a záró sorban!\n"
 
 #, fuzzy, c-format
 msgid "error reading directory '%s': %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "removing cache file '%s'\n"
-msgstr "A kulcsblokk törlése sikertelen: %s.\n"
+msgstr "A kulcsblokk törlése sikertelen: %s.\n"
 
 #, fuzzy, c-format
 #| msgid "enarmoring failed: %s\n"
 msgid "not removing file '%s'\n"
-msgstr "Páncélozás nem sikerült: %s\n"
+msgstr "Páncélozás nem sikerült: %s\n"
 
 #, fuzzy, c-format
 msgid "error closing cache file: %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to open cache dir file '%s': %s\n"
-msgstr "Nem tudom megnyitni a(z) \"%s\" állományt: %s.\n"
+msgstr "Nem tudom megnyitni a(z) \"%s\" állományt: %s.\n"
 
 #, fuzzy, c-format
 msgid "error creating new cache dir file '%s': %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, fuzzy, c-format
 #| msgid "error writing secret keyring `%s': %s\n"
 msgid "error writing new cache dir file '%s': %s\n"
-msgstr "Hiba a(z) \"%s\" titkoskulcs-karika írásakor: %s.\n"
+msgstr "Hiba a(z) \"%s\" titkoskulcs-karika írásakor: %s.\n"
 
 #, fuzzy, c-format
 msgid "error closing new cache dir file '%s': %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy, c-format
 #| msgid "new configuration file `%s' created\n"
 msgid "new cache dir file '%s' created\n"
-msgstr "\"%s\" új konfigurációs állományt létrehoztam.\n"
+msgstr "\"%s\" új konfigurációs állományt létrehoztam.\n"
 
 #, fuzzy, c-format
 msgid "failed to re-open cache dir file '%s': %s\n"
-msgstr "Nem tudom a \"%s\" könyvtárat létrehozni: %s.\n"
+msgstr "Nem tudom a \"%s\" könyvtárat létrehozni: %s.\n"
 
 #, c-format
 msgid "first record of '%s' is not the version\n"
@@ -7295,11 +7360,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid line detected in '%s' line %u\n"
-msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
+msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
 
 #, fuzzy, c-format
 msgid "duplicate entry detected in '%s' line %u\n"
-msgstr "Visszavonó igazolás létrehozva.\n"
+msgstr "Visszavonó igazolás létrehozva.\n"
 
 #, c-format
 msgid "unsupported record type in '%s' line %u skipped\n"
@@ -7307,20 +7372,20 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid issuer hash in '%s' line %u\n"
-msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
+msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
 
 #, fuzzy, c-format
 msgid "no issuer DN in '%s' line %u\n"
-msgstr "Olvasási hiba: %s.\n"
+msgstr "Olvasási hiba: %s.\n"
 
 #, fuzzy, c-format
 msgid "invalid timestamp in '%s' line %u\n"
-msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
+msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: invalid size of random_seed file - not used\n"
 msgid "WARNING: invalid cache file hash in '%s' line %u\n"
-msgstr "FIGYELEM: Érvénytelen méretû random_seed állomány. Nem használom.\n"
+msgstr "FIGYELEM: Érvénytelen méretű random_seed állomány. Nem használom.\n"
 
 msgid "detected errors in cache dir file\n"
 msgstr ""
@@ -7330,43 +7395,43 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "failed to create temporary cache dir file '%s': %s\n"
-msgstr "Nem tudom a \"%s\" könyvtárat létrehozni: %s.\n"
+msgstr "Nem tudom a \"%s\" könyvtárat létrehozni: %s.\n"
 
 #, fuzzy, c-format
 msgid "error closing '%s': %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error reading `%s': %s\n"
 msgid "error renaming '%s' to '%s': %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "can't hash '%s': %s\n"
-msgstr "Nem tudom bezárni a(z) \"%s\" állományt: %s.\n"
+msgstr "Nem tudom bezárni a(z) \"%s\" állományt: %s.\n"
 
 #, fuzzy, c-format
 msgid "error setting up MD5 hash context: %s\n"
-msgstr "Hiba %s-ra/-re küldéskor: %s\n"
+msgstr "Hiba %s-ra/-re küldéskor: %s\n"
 
 #, fuzzy, c-format
 msgid "error hashing '%s': %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "invalid formatted checksum for '%s'\n"
-msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
+msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
 
 msgid "too many open cache files; can't open anymore\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "opening cache file '%s'\n"
-msgstr "Aláírás sikertelen: %s\n"
+msgstr "Aláírás sikertelen: %s\n"
 
 #, fuzzy, c-format
 msgid "error opening cache file '%s': %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, c-format
 msgid "error initializing cache file '%s' for reading: %s\n"
@@ -7380,12 +7445,12 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "failed to create a new cache object: %s\n"
-msgstr "%s: Hashtábla létrehozása sikertelen: %s.\n"
+msgstr "%s: Hashtábla létrehozása sikertelen: %s.\n"
 
 #, fuzzy, c-format
 #| msgid "No help available for `%s'"
 msgid "no CRL available for issuer id %s\n"
-msgstr "Nem áll rendelkezésre segítség \"%s\" témához."
+msgstr "Nem áll rendelkezésre segítség \"%s\" témához."
 
 #, c-format
 msgid "cached CRL for issuer id %s too old; update required\n"
@@ -7414,7 +7479,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "problem reading cache record for S/N %s: %s\n"
-msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
+msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
 
 #, c-format
 msgid "S/N %s is not valid; reason=%02X  date=%.15s\n"
@@ -7426,12 +7491,12 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting data from cache file: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, fuzzy, c-format
 #| msgid "invalid hash algorithm `%s'\n"
 msgid "unknown hash algorithm '%s'\n"
-msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
+msgstr "Érvénytelen kivonatoló algoritmus: %s\n"
 
 #, c-format
 msgid "gcry_md_open for algorithm %d failed: %s\n"
@@ -7440,15 +7505,15 @@ msgstr ""
 #, fuzzy
 #| msgid "invalid response from agent\n"
 msgid "got an invalid S-expression from libksba\n"
-msgstr "Érvénytelen válasz az ügynöktõl!\n"
+msgstr "Érvénytelen válasz az ügynöktől!\n"
 
 #, fuzzy, c-format
 msgid "converting S-expression failed: %s\n"
-msgstr "Nem tudom megnyitni az állományt: %s.\n"
+msgstr "Nem tudom megnyitni az állományt: %s.\n"
 
 #, fuzzy, c-format
 msgid "creating S-expression failed: %s\n"
-msgstr "A kulcsblokk törlése sikertelen: %s.\n"
+msgstr "A kulcsblokk törlése sikertelen: %s.\n"
 
 #, fuzzy, c-format
 #| msgid "build_packet failed: %s\n"
@@ -7457,7 +7522,7 @@ msgstr "build_packet sikertelen: %s.\n"
 
 #, fuzzy, c-format
 msgid "error getting update times of CRL: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, c-format
 msgid "update times of this CRL: this=%s next=%s\n"
@@ -7468,15 +7533,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting CRL item: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, fuzzy, c-format
 msgid "error inserting item into temporary cache file: %s\n"
-msgstr "Írok a \"%s\" állományba.\n"
+msgstr "Írok a \"%s\" állományba.\n"
 
 #, fuzzy, c-format
 msgid "no CRL issuer found in CRL: %s\n"
-msgstr "visszavonási igazolás készítése"
+msgstr "visszavonási igazolás készítése"
 
 msgid "locating CRL issuer certificate by authorityKeyIdentifier\n"
 msgstr ""
@@ -7484,44 +7549,44 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "signature verification suppressed\n"
 msgid "CRL signature verification failed: %s\n"
-msgstr "Aláírás-ellenõrzés elnyomva.\n"
+msgstr "Aláírás-ellenőrzés elnyomva.\n"
 
 #, fuzzy, c-format
 msgid "error checking validity of CRL issuer certificate: %s\n"
-msgstr "A létrehozott aláírás ellenõrzése sikertelen: %s.\n"
+msgstr "A létrehozott aláírás ellenőrzése sikertelen: %s.\n"
 
 #, fuzzy, c-format
 msgid "ksba_crl_new failed: %s\n"
-msgstr "A kulcsblokk törlése sikertelen: %s.\n"
+msgstr "A kulcsblokk törlése sikertelen: %s.\n"
 
 #, fuzzy, c-format
 msgid "ksba_crl_set_reader failed: %s\n"
-msgstr "Frissítés sikertelen: %s.\n"
+msgstr "Frissítés sikertelen: %s.\n"
 
 #, fuzzy, c-format
 msgid "removed stale temporary cache file '%s'\n"
-msgstr "Nem tudom a \"%s\" könyvtárat létrehozni: %s.\n"
+msgstr "Nem tudom a \"%s\" könyvtárat létrehozni: %s.\n"
 
 #, fuzzy, c-format
 msgid "problem removing stale temporary cache file '%s': %s\n"
-msgstr "Nem tudom a \"%s\" könyvtárat létrehozni: %s.\n"
+msgstr "Nem tudom a \"%s\" könyvtárat létrehozni: %s.\n"
 
 #, fuzzy, c-format
 msgid "error creating temporary cache file '%s': %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, fuzzy, c-format
 #| msgid "update secret failed: %s\n"
 msgid "crl_parse_insert failed: %s\n"
-msgstr "Titkoskulcs-blokk frissítése sikertelen: %s\n"
+msgstr "Titkoskulcs-blokk frissítése sikertelen: %s\n"
 
 #, fuzzy, c-format
 msgid "error finishing temporary cache file '%s': %s\n"
-msgstr "Írok a \"%s\" állományba.\n"
+msgstr "Írok a \"%s\" állományba.\n"
 
 #, fuzzy, c-format
 msgid "error closing temporary cache file '%s': %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, c-format
 msgid "WARNING: new CRL still too old; it expired on %s - loading anyway\n"
@@ -7537,15 +7602,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error reading CRL extensions: %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "creating cache file '%s'\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, fuzzy, c-format
 msgid "problem renaming '%s' to '%s': %s\n"
-msgstr "Páncélozás nem sikerült: %s\n"
+msgstr "Páncélozás nem sikerült: %s\n"
 
 msgid ""
 "updating the DIR file failed - cache entry will get lost with the next "
@@ -7574,34 +7639,34 @@ msgstr ""
 #, fuzzy
 #| msgid "WARNING: invalid size of random_seed file - not used\n"
 msgid " WARNING: invalid cache record length\n"
-msgstr "FIGYELEM: Érvénytelen méretû random_seed állomány. Nem használom.\n"
+msgstr "FIGYELEM: Érvénytelen méretű random_seed állomány. Nem használom.\n"
 
 #, fuzzy, c-format
 msgid "problem reading cache record: %s\n"
-msgstr "%s: Hiba szabad rekord olvasásakor: %s.\n"
+msgstr "%s: Hiba szabad rekord olvasásakor: %s.\n"
 
 #, fuzzy, c-format
 msgid "problem reading cache key: %s\n"
-msgstr "rev? Nem tudom ellenõrizni a visszavonást: %s.\n"
+msgstr "rev? Nem tudom ellenőrizni a visszavonást: %s.\n"
 
 #, fuzzy, c-format
 msgid "error reading cache entry from db: %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 msgid "End CRL dump\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "crl_fetch via DP failed: %s\n"
-msgstr "Frissítés sikertelen: %s.\n"
+msgstr "Frissítés sikertelen: %s.\n"
 
 #, fuzzy, c-format
 msgid "crl_cache_insert via DP failed: %s\n"
-msgstr "A létrehozott aláírás ellenõrzése sikertelen: %s.\n"
+msgstr "A létrehozott aláírás ellenőrzése sikertelen: %s.\n"
 
 #, fuzzy, c-format
 msgid "crl_cache_insert via issuer failed: %s\n"
-msgstr "A kulcsblokk törlése sikertelen: %s.\n"
+msgstr "A kulcsblokk törlése sikertelen: %s.\n"
 
 msgid "reader to file mapping table full - waiting\n"
 msgstr ""
@@ -7616,7 +7681,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "%s: error writing dir record: %s\n"
 msgid "error initializing reader object: %s\n"
-msgstr "%s: Hiba könyvtárrekord írásakor: %s.\n"
+msgstr "%s: Hiba könyvtárrekord írásakor: %s.\n"
 
 #, c-format
 msgid "URL '%s' redirected to '%s' (%u)\n"
@@ -7624,23 +7689,23 @@ msgstr ""
 
 #, fuzzy
 msgid "too many redirections\n"
-msgstr "Túl sok \"%c\" preferencia.\n"
+msgstr "Túl sok \"%c\" preferencia.\n"
 
 #, fuzzy, c-format
 msgid "error retrieving '%s': %s\n"
-msgstr "Hiba \"%s\" létrehozásakor: %s\n"
+msgstr "Hiba \"%s\" létrehozásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "error retrieving '%s': http status %u\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy
 msgid "CRL access not possible due to Tor mode\n"
-msgstr "\"%s\" kulcs nem található: %s\n"
+msgstr "\"%s\" kulcs nem található: %s\n"
 
 #, fuzzy, c-format
 msgid "certificate search not possible due to disabled %s\n"
-msgstr "\"%s\" kulcs nem található: %s\n"
+msgstr "\"%s\" kulcs nem található: %s\n"
 
 msgid "use OCSP instead of CRLs"
 msgstr ""
@@ -7650,19 +7715,19 @@ msgstr ""
 
 #, fuzzy
 msgid "add a certificate to the cache"
-msgstr "Visszavonó igazolás létrehozva.\n"
+msgstr "Visszavonó igazolás létrehozva.\n"
 
 #, fuzzy
 msgid "validate a certificate"
-msgstr "rossz igazolás"
+msgstr "rossz igazolás"
 
 #, fuzzy
 msgid "lookup a certificate"
-msgstr "rossz igazolás"
+msgstr "rossz igazolás"
 
 #, fuzzy
 msgid "lookup only locally stored certificates"
-msgstr "rossz igazolás"
+msgstr "rossz igazolás"
 
 msgid "expect an URL for --lookup"
 msgstr ""
@@ -7675,17 +7740,17 @@ msgstr ""
 
 #, fuzzy
 msgid "expect certificates in PEM format"
-msgstr "rossz igazolás"
+msgstr "rossz igazolás"
 
 #, fuzzy
 #| msgid "Enter the user ID of the designated revoker: "
 msgid "force the use of the default OCSP responder"
-msgstr "Írja be a kijelölt visszavonó felhasználóazonosítóját: "
+msgstr "Írja be a kijelölt visszavonó felhasználóazonosítóját: "
 
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: dirmngr-client [options] [certfile|pattern] (-h for help)\n"
-msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
+msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
 
 msgid ""
 "Syntax: dirmngr-client [options] [certfile|pattern]\n"
@@ -7696,11 +7761,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error reading certificate from stdin: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, fuzzy, c-format
 msgid "error reading certificate from '%s': %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 msgid "certificate too large to make any sense\n"
 msgstr ""
@@ -7708,51 +7773,51 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to the dirmngr: %s\n"
-msgstr "Nem tudok kapcsolódni \"%s\" objektumhoz: %s\n"
+msgstr "Nem tudok kapcsolódni \"%s\" objektumhoz: %s\n"
 
 #, fuzzy, c-format
 #| msgid "update failed: %s\n"
 msgid "lookup failed: %s\n"
-msgstr "Frissítés sikertelen: %s.\n"
+msgstr "Frissítés sikertelen: %s.\n"
 
 #, fuzzy, c-format
 msgid "loading CRL '%s' failed: %s\n"
-msgstr "Páncélozás nem sikerült: %s\n"
+msgstr "Páncélozás nem sikerült: %s\n"
 
 msgid "a dirmngr daemon is up and running\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "validation of certificate failed: %s\n"
-msgstr "A kulcsblokk törlése sikertelen: %s.\n"
+msgstr "A kulcsblokk törlése sikertelen: %s.\n"
 
 #, fuzzy
 msgid "certificate is valid\n"
-msgstr "%c%lu preferencia kétszer szerepel!\n"
+msgstr "%c%lu preferencia kétszer szerepel!\n"
 
 #, fuzzy
 msgid "certificate has been revoked\n"
-msgstr "MEGJEGYZÉS: A kulcsot visszavonták."
+msgstr "MEGJEGYZÉS: A kulcsot visszavonták."
 
 #, fuzzy, c-format
 msgid "certificate check failed: %s\n"
-msgstr "A kulcsblokk törlése sikertelen: %s.\n"
+msgstr "A kulcsblokk törlése sikertelen: %s.\n"
 
 #, fuzzy, c-format
 #| msgid "can't stat `%s': %s\n"
 msgid "got status: '%s'\n"
-msgstr "Nem tudom a stat mûveletet elvégezni a(z) \"%s\" állományon: %s.\n"
+msgstr "Nem tudom a stat műveletet elvégezni a(z) \"%s\" állományon: %s.\n"
 
 #, fuzzy, c-format
 #| msgid "error writing secret keyring `%s': %s\n"
 msgid "error writing base64 encoding: %s\n"
-msgstr "Hiba a(z) \"%s\" titkoskulcs-karika írásakor: %s.\n"
+msgstr "Hiba a(z) \"%s\" titkoskulcs-karika írásakor: %s.\n"
 
 #, fuzzy, c-format
 msgid "unsupported inquiry '%s'\n"
 msgstr ""
 "\n"
-"Támogatott algoritmusok:\n"
+"Támogatott algoritmusok:\n"
 
 msgid "absolute file name expected\n"
 msgstr ""
@@ -7766,7 +7831,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|load CRL from FILE into cache"
-msgstr "|fájl|bõvítõ modul betöltése"
+msgstr "|fájl|bővítő modul betöltése"
 
 msgid "|URL|fetch a CRL from URL"
 msgstr ""
@@ -7782,7 +7847,7 @@ msgstr ""
 
 #, fuzzy
 msgid "run without asking a user"
-msgstr "Kilépjek mentés nélkül? "
+msgstr "Kilépjek mentés nélkül? "
 
 msgid "force loading of outdated CRLs"
 msgstr ""
@@ -7790,6 +7855,9 @@ msgstr ""
 msgid "allow sending OCSP requests"
 msgstr ""
 
+msgid "allow online software version check"
+msgstr ""
+
 msgid "inhibit the use of HTTP"
 msgstr ""
 
@@ -7816,7 +7884,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|read LDAP server list from FILE"
-msgstr "|fájl|bõvítõ modul betöltése"
+msgstr "|fájl|bővítő modul betöltése"
 
 msgid "add new servers discovered in CRL distribution points to serverlist"
 msgstr ""
@@ -7826,7 +7894,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|URL|use OCSP responder at URL"
-msgstr "Értelmezhetetlen a kulcsszerver URI-ja!\n"
+msgstr "Értelmezhetetlen a kulcsszerver URI-ja!\n"
 
 msgid "|FPR|OCSP response signed by FPR"
 msgstr ""
@@ -7850,11 +7918,11 @@ msgid ""
 "options)\n"
 msgstr ""
 "@\n"
-"(A parancsok és opciók teljes listáját a man oldalon tekintheti meg.)\n"
+"(A parancsok és opciók teljes listáját a man oldalon tekintheti meg.)\n"
 
 #, fuzzy
 msgid "Usage: @DIRMNGR@ [options] (-h for help)"
-msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
+msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
 
 msgid ""
 "Syntax: @DIRMNGR@ [options] [command [args]]\n"
@@ -7867,32 +7935,32 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "usage: %s [options] "
-msgstr "Használat: gpg [opciók] "
+msgstr "Használat: gpg [opciók] "
 
 #, fuzzy
 #| msgid "%s not allowed with %s!\n"
 msgid "colons are not allowed in the socket name\n"
-msgstr "%s és %s nem használható együtt!\n"
+msgstr "%s és %s nem használható együtt!\n"
 
 #, fuzzy, c-format
 msgid "fetching CRL from '%s' failed: %s\n"
-msgstr "Páncélozás nem sikerült: %s\n"
+msgstr "Páncélozás nem sikerült: %s\n"
 
 #, fuzzy, c-format
 msgid "processing CRL from '%s' failed: %s\n"
-msgstr "Páncélozás nem sikerült: %s\n"
+msgstr "Páncélozás nem sikerült: %s\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: line too long - skipped\n"
-msgstr "A sor túl hosszú!\n"
+msgstr "A sor túl hosszú!\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: invalid fingerprint detected\n"
-msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
+msgstr "Hiba: Érvénytelen ujjlenyomat.\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: read error: %s\n"
-msgstr "Olvasási hiba: %s.\n"
+msgstr "Olvasási hiba: %s.\n"
 
 #, c-format
 msgid "%s:%u: garbage at end of line ignored\n"
@@ -7931,7 +7999,7 @@ msgstr ""
 #, fuzzy
 #| msgid "|NAME|set terminal charset to NAME"
 msgid "|NAME|connect to host NAME"
-msgstr "|NÉV|terminál karakterkódolásának megadása"
+msgstr "|NÉV|terminál karakterkódolásának megadása"
 
 msgid "|N|connect to port N"
 msgstr ""
@@ -7939,7 +8007,7 @@ msgstr ""
 #, fuzzy
 #| msgid "|NAME|use NAME as default recipient"
 msgid "|NAME|use user NAME for authentication"
-msgstr "|NÉV|NÉV használata alapértelmezett címzettként"
+msgstr "|NÉV|NÉV használata alapértelmezett címzettként"
 
 msgid "|PASS|use password PASS for authentication"
 msgstr ""
@@ -7959,7 +8027,7 @@ msgstr ""
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: dirmngr_ldap [options] [URL] (-h for help)\n"
-msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
+msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
 
 msgid ""
 "Syntax: dirmngr_ldap [options] [URL]\n"
@@ -7970,7 +8038,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "invalid import options\n"
 msgid "invalid port number %d\n"
-msgstr "Érvénytelen import opciók!\n"
+msgstr "Érvénytelen import opciók!\n"
 
 #, c-format
 msgid "scanning result for attribute '%s'\n"
@@ -7978,7 +8046,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error writing to stdout: %s\n"
-msgstr "Hiba a \"%s\" kulcskarika írásakor: %s\n"
+msgstr "Hiba a \"%s\" kulcskarika írásakor: %s\n"
 
 #, c-format
 msgid "          available attribute '%s'\n"
@@ -7986,7 +8054,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "attribute '%s' not found\n"
-msgstr "\"%s\" kulcs nem található: %s\n"
+msgstr "\"%s\" kulcs nem található: %s\n"
 
 #, c-format
 msgid "found attribute '%s'\n"
@@ -7995,12 +8063,12 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "reading from `%s'\n"
 msgid "processing url '%s'\n"
-msgstr "Olvasok a \"%s\" állományból.\n"
+msgstr "Olvasok a \"%s\" állományból.\n"
 
 #, fuzzy, c-format
 #| msgid "          w/o user IDs: %lu\n"
 msgid "          user '%s'\n"
-msgstr "    felh. azonosító nélkül: %lu\n"
+msgstr "    felh. azonosító nélkül: %lu\n"
 
 #, fuzzy, c-format
 msgid "          pass '%s'\n"
@@ -8013,7 +8081,7 @@ msgstr "               azaz \""
 #, fuzzy, c-format
 #| msgid "          not imported: %lu\n"
 msgid "          port %d\n"
-msgstr "             nem importált: %lu\n"
+msgstr "             nem importált: %lu\n"
 
 #, fuzzy, c-format
 msgid "            DN '%s'\n"
@@ -8029,7 +8097,7 @@ msgstr "               azaz \""
 
 #, fuzzy, c-format
 msgid "no host name in '%s'\n"
-msgstr "(Nincs leírás.)\n"
+msgstr "(Nincs leírás.)\n"
 
 #, c-format
 msgid "no attribute given for query '%s'\n"
@@ -8038,44 +8106,40 @@ msgstr ""
 #, fuzzy
 #| msgid "WARNING: using insecure memory!\n"
 msgid "WARNING: using first attribute only\n"
-msgstr "FIGYELEM: Nem biztonságos memóriát használunk!\n"
+msgstr "FIGYELEM: Nem biztonságos memóriát használunk!\n"
 
 #, fuzzy, c-format
 msgid "LDAP init to '%s:%d' failed: %s\n"
-msgstr "Páncélozás nem sikerült: %s\n"
+msgstr "Páncélozás nem sikerült: %s\n"
 
 #, fuzzy, c-format
 msgid "binding to '%s:%d' failed: %s\n"
-msgstr "Páncélozás nem sikerült: %s\n"
+msgstr "Páncélozás nem sikerült: %s\n"
 
 #, fuzzy, c-format
 #| msgid "dearmoring failed: %s\n"
 msgid "searching '%s' failed: %s\n"
-msgstr "Páncél eltávolítása nem sikerült: %s\n"
+msgstr "Páncél eltávolítása nem sikerült: %s\n"
 
 #, fuzzy, c-format
 msgid "'%s' is not an LDAP URL\n"
-msgstr "\"%s\" nem JPEG állomány.\n"
+msgstr "\"%s\" nem JPEG állomány.\n"
 
 #, c-format
 msgid "'%s' is an invalid LDAP URL\n"
 msgstr ""
 
 #, fuzzy, c-format
-msgid "error allocating memory: %s\n"
-msgstr "Hiba a(z) \"%s\" kulcskarika létrehozásakor: %s\n"
-
-#, fuzzy, c-format
 msgid "error printing log line: %s\n"
-msgstr "Hiba a \"%s\" kulcskarika írásakor: %s\n"
+msgstr "Hiba a \"%s\" kulcskarika írásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "error reading log from ldap wrapper %d: %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "npth_select failed: %s - waiting 1s\n"
-msgstr "Titkoskulcs-blokk frissítése sikertelen: %s\n"
+msgstr "Titkoskulcs-blokk frissítése sikertelen: %s\n"
 
 #, c-format
 msgid "ldap wrapper %d ready"
@@ -8091,7 +8155,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "waiting for ldap wrapper %d failed: %s\n"
-msgstr "Frissítés sikertelen: %s.\n"
+msgstr "Frissítés sikertelen: %s.\n"
 
 #, c-format
 msgid "ldap wrapper %d stalled - killing\n"
@@ -8103,7 +8167,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "reading from ldap wrapper %d failed: %s\n"
-msgstr "A kulcsblokk törlése sikertelen: %s.\n"
+msgstr "A kulcsblokk törlése sikertelen: %s.\n"
 
 #, c-format
 msgid "invalid char 0x%02x in host name - not added\n"
@@ -8115,7 +8179,7 @@ msgstr "Keresem \"%s\"-t a %s HKP szerveren.\n"
 
 #, fuzzy, c-format
 msgid "malloc failed: %s\n"
-msgstr "A kulcsblokk törlése sikertelen: %s.\n"
+msgstr "A kulcsblokk törlése sikertelen: %s.\n"
 
 #, c-format
 msgid "start_cert_fetch: invalid pattern '%s'\n"
@@ -8127,23 +8191,23 @@ msgstr ""
 #, fuzzy
 #| msgid "%s: invalid file version %d\n"
 msgid "invalid canonical S-expression found\n"
-msgstr "%s: Érvénytelen állományverzió (%d).\n"
+msgstr "%s: Érvénytelen állományverzió (%d).\n"
 
 #, fuzzy, c-format
 msgid "gcry_md_open failed: %s\n"
-msgstr "Nem tudom megnyitni az állományt: %s.\n"
+msgstr "Nem tudom megnyitni az állományt: %s.\n"
 
 #, fuzzy, c-format
 #| msgid "update secret failed: %s\n"
 msgid "oops: ksba_cert_hash failed: %s\n"
-msgstr "Titkoskulcs-blokk frissítése sikertelen: %s\n"
+msgstr "Titkoskulcs-blokk frissítése sikertelen: %s\n"
 
 msgid "bad URL encoding detected\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error reading from responder: %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, c-format
 msgid "response from server too large; limit is %d bytes\n"
@@ -8151,34 +8215,34 @@ msgstr ""
 
 #, fuzzy
 msgid "OCSP request not possible due to Tor mode\n"
-msgstr "\"%s\" kulcs nem található: %s\n"
+msgstr "\"%s\" kulcs nem található: %s\n"
 
 msgid "OCSP request not possible due to disabled HTTP\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error setting OCSP target: %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "error building OCSP request: %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "error connecting to '%s': %s\n"
-msgstr "Hiba a \"%s\" kulcskarika írásakor: %s\n"
+msgstr "Hiba a \"%s\" kulcskarika írásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "error reading HTTP response for '%s': %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "error accessing '%s': http status %u\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "error parsing OCSP response for '%s': %s\n"
-msgstr "Hiba %s-ra/-re küldéskor: %s\n"
+msgstr "Hiba %s-ra/-re küldéskor: %s\n"
 
 #, c-format
 msgid "OCSP responder at '%s' status: %s\n"
@@ -8186,7 +8250,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "hashing the OCSP response for '%s' failed: %s\n"
-msgstr "A létrehozott aláírás ellenõrzése sikertelen: %s.\n"
+msgstr "A létrehozott aláírás ellenőrzése sikertelen: %s.\n"
 
 msgid "not signed by a default OCSP signer's certificate"
 msgstr ""
@@ -8196,34 +8260,34 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "allocating list item failed: %s\n"
-msgstr "A kulcsblokk törlése sikertelen: %s.\n"
+msgstr "A kulcsblokk törlése sikertelen: %s.\n"
 
 #, fuzzy, c-format
 msgid "error getting responder ID: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 msgid "no suitable certificate found to verify the OCSP response\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "issuer certificate not found: %s\n"
-msgstr "\"%s\" kulcs nem található: %s\n"
+msgstr "\"%s\" kulcs nem található: %s\n"
 
 msgid "caller did not return the target certificate\n"
 msgstr ""
 
 #, fuzzy
 msgid "caller did not return the issuing certificate\n"
-msgstr "visszavonási igazolás készítése"
+msgstr "visszavonási igazolás készítése"
 
 #, fuzzy, c-format
 msgid "failed to allocate OCSP context: %s\n"
-msgstr "Bizalmi adatbázis (%s) inicializálása sikertelen!\n"
+msgstr "Bizalmi adatbázis (%s) inicializálása sikertelen!\n"
 
 #, fuzzy, c-format
 #| msgid "%s: can't access: %s\n"
 msgid "can't get authorityInfoAccess: %s\n"
-msgstr "%s: Nem tudom elérni: %s.\n"
+msgstr "%s: Nem tudom elérni: %s.\n"
 
 msgid "no default OCSP responder defined\n"
 msgstr ""
@@ -8231,7 +8295,7 @@ msgstr ""
 #, fuzzy
 #| msgid "no default secret keyring: %s\n"
 msgid "no default OCSP signer defined\n"
-msgstr "Nincs alapértelmezett titkoskulcs-karika: %s\n"
+msgstr "Nincs alapértelmezett titkoskulcs-karika: %s\n"
 
 #, c-format
 msgid "using default OCSP responder '%s'\n"
@@ -8240,7 +8304,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "using cipher %s\n"
 msgid "using OCSP responder '%s'\n"
-msgstr "%s rejtjelezést használok.\n"
+msgstr "%s rejtjelezést használok.\n"
 
 #, c-format
 msgid "failed to establish a hashing context for OCSP: %s\n"
@@ -8248,7 +8312,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting OCSP status for target certificate: %s\n"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 #, c-format
 msgid "certificate status is: %s  (this=%s  next=%s)\n"
@@ -8259,7 +8323,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "certificate has been revoked at: %s due to: %s\n"
-msgstr "MEGJEGYZÉS: A kulcsot visszavonták."
+msgstr "MEGJEGYZÉS: A kulcsot visszavonták."
 
 msgid "OCSP responder returned a status in the future\n"
 msgstr ""
@@ -8272,7 +8336,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "assuan_inquire(%s) failed: %s\n"
-msgstr "Aláírás sikertelen: %s\n"
+msgstr "Aláírás sikertelen: %s\n"
 
 msgid "ldapserver missing"
 msgstr ""
@@ -8282,23 +8346,23 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "assuan_inquire failed: %s\n"
-msgstr "Aláírás sikertelen: %s\n"
+msgstr "Aláírás sikertelen: %s\n"
 
 #, fuzzy, c-format
 msgid "fetch_cert_by_url failed: %s\n"
-msgstr "A kulcsblokk törlése sikertelen: %s.\n"
+msgstr "A kulcsblokk törlése sikertelen: %s.\n"
 
 #, fuzzy, c-format
 msgid "error sending data: %s\n"
-msgstr "Hiba %s-ra/-re küldéskor: %s\n"
+msgstr "Hiba %s-ra/-re küldéskor: %s\n"
 
 #, fuzzy, c-format
 msgid "start_cert_fetch failed: %s\n"
-msgstr "A kulcsblokk törlése sikertelen: %s.\n"
+msgstr "A kulcsblokk törlése sikertelen: %s.\n"
 
 #, fuzzy, c-format
 msgid "fetch_next_cert failed: %s\n"
-msgstr "A kulcsblokk törlése sikertelen: %s.\n"
+msgstr "A kulcsblokk törlése sikertelen: %s.\n"
 
 #, c-format
 msgid "max_replies %d exceeded\n"
@@ -8306,20 +8370,20 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "can't allocate control structure: %s\n"
-msgstr "Nem tudom létrehozni a(z) \"%s\" állományt: %s.\n"
+msgstr "Nem tudom létrehozni a(z) \"%s\" állományt: %s.\n"
 
 #, fuzzy, c-format
 msgid "failed to allocate assuan context: %s\n"
-msgstr "%s: Hashtábla létrehozása sikertelen: %s.\n"
+msgstr "%s: Hashtábla létrehozása sikertelen: %s.\n"
 
 #, fuzzy, c-format
 #| msgid "failed to initialize the TrustDB: %s\n"
 msgid "failed to initialize the server: %s\n"
-msgstr "Bizalmi adatbázis (%s) inicializálása sikertelen!\n"
+msgstr "Bizalmi adatbázis (%s) inicializálása sikertelen!\n"
 
 #, fuzzy, c-format
 msgid "failed to the register commands with Assuan: %s\n"
-msgstr "Nem tudtam újraépíteni a kulcskarika cache-ét: %s\n"
+msgstr "Nem tudtam újraépíteni a kulcskarika cache-ét: %s\n"
 
 #, c-format
 msgid "Assuan accept problem: %s\n"
@@ -8328,7 +8392,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "signing failed: %s\n"
 msgid "Assuan processing failed: %s\n"
-msgstr "Aláírás sikertelen: %s\n"
+msgstr "Aláírás sikertelen: %s\n"
 
 msgid "accepting root CA not marked as a CA"
 msgstr ""
@@ -8336,36 +8400,36 @@ msgstr ""
 #, fuzzy
 #| msgid "checking the trustdb\n"
 msgid "CRL checking too deeply nested\n"
-msgstr "Ellenõrzöm a bizalmi adatbázist.\n"
+msgstr "Ellenőrzöm a bizalmi adatbázist.\n"
 
 msgid "not checking CRL for"
 msgstr ""
 
 #, fuzzy
 msgid "checking CRL for"
-msgstr "A létrehozott aláírás ellenõrzése sikertelen: %s.\n"
+msgstr "A létrehozott aláírás ellenőrzése sikertelen: %s.\n"
 
 #, fuzzy
 msgid "selfsigned certificate has a BAD signature"
-msgstr "aláírás ellenõrzése"
+msgstr "aláírás ellenőrzése"
 
 #, fuzzy, c-format
 msgid "checking trustworthiness of root certificate failed: %s\n"
-msgstr "A létrehozott aláírás ellenõrzése sikertelen: %s.\n"
+msgstr "A létrehozott aláírás ellenőrzése sikertelen: %s.\n"
 
 #, fuzzy
 msgid "certificate chain is good\n"
-msgstr "%c%lu preferencia kétszer szerepel!\n"
+msgstr "%c%lu preferencia kétszer szerepel!\n"
 
 msgid "DSA requires the use of a 160 bit hash algorithm\n"
-msgstr "A DSA 160 bites hash (kivonatoló) algoritmust igényel.\n"
+msgstr "A DSA 160 bites hash (kivonatoló) algoritmust igényel.\n"
 
 msgid "certificate should not have been used for CRL signing\n"
 msgstr ""
 
 #, fuzzy
 msgid "quiet"
-msgstr "kilépés|kilepes"
+msgstr "kilépés|kilepes"
 
 msgid "print data out hex encoded"
 msgstr ""
@@ -8390,14 +8454,14 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|run commands from FILE on startup"
-msgstr "|fájl|bõvítõ modul betöltése"
+msgstr "|fájl|bővítő modul betöltése"
 
 msgid "run /subst on startup"
 msgstr ""
 
 #, fuzzy
 msgid "Usage: @GPG@-connect-agent [options] (-h for help)"
-msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
+msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
 
 msgid ""
 "Syntax: @GPG@-connect-agent [options]\n"
@@ -8414,26 +8478,26 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "receiving line failed: %s\n"
-msgstr "A kulcsblokk törlése sikertelen: %s.\n"
+msgstr "A kulcsblokk törlése sikertelen: %s.\n"
 
 #, fuzzy
 msgid "line too long - skipped\n"
-msgstr "A sor túl hosszú!\n"
+msgstr "A sor túl hosszú!\n"
 
 msgid "line shortened due to embedded Nul character\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "unknown command '%s'\n"
-msgstr "Ismeretlen alapértelmezett címzett: \"%s\"\n"
+msgstr "Ismeretlen alapértelmezett címzett: \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "sending line failed: %s\n"
-msgstr "Aláírás sikertelen: %s\n"
+msgstr "Aláírás sikertelen: %s\n"
 
 #, fuzzy, c-format
 msgid "error sending standard options: %s\n"
-msgstr "Hiba %s-ra/-re küldéskor: %s\n"
+msgstr "Hiba %s-ra/-re küldéskor: %s\n"
 
 msgid "Options controlling the diagnostic output"
 msgstr ""
@@ -8473,21 +8537,21 @@ msgstr ""
 
 #, fuzzy
 msgid "|N|expire the passphrase after N days"
-msgstr "|N|N. sorszámú jelszómód használata"
+msgstr "|N|N. sorszámú jelszómód használata"
 
 #, fuzzy
 msgid "do not allow the reuse of old passphrases"
-msgstr "Hiba a jelszó létrehozásakor: %s.\n"
+msgstr "Hiba a jelszó létrehozásakor: %s.\n"
 
 msgid "|N|set the Pinentry timeout to N seconds"
 msgstr ""
 
 msgid "|NAME|use NAME as default secret key"
-msgstr "|NÉV|NÉV használata alapértelmezett titkos kulcsként"
+msgstr "|NÉV|NÉV használata alapértelmezett titkos kulcsként"
 
 #, fuzzy
 msgid "|NAME|encrypt to user ID NAME as well"
-msgstr "|NÉV|titkosítás NÉV részére"
+msgstr "|NÉV|titkosítás NÉV részére"
 
 msgid "|SPEC|set up email aliases"
 msgstr ""
@@ -8497,7 +8561,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|URL|use keyserver at URL"
-msgstr "Értelmezhetetlen a kulcsszerver URI-ja!\n"
+msgstr "Értelmezhetetlen a kulcsszerver URI-ja!\n"
 
 msgid "allow PKA lookups (DNS requests)"
 msgstr ""
@@ -8510,7 +8574,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|NAME|use encoding NAME for PKCS#12 passphrases"
-msgstr "|NÉV|NÉV rejtjelezõ algoritmus haszn. jelszavakhoz"
+msgstr "|NÉV|NÉV rejtjelező algoritmus haszn. jelszavakhoz"
 
 msgid "do not check CRLs for root certificates"
 msgstr ""
@@ -8539,28 +8603,30 @@ msgstr ""
 msgid "Configuration for OCSP"
 msgstr ""
 
-msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr ""
 
-msgid "GPG Agent"
+msgid "Private Keys"
 msgstr ""
 
-msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr ""
 
-msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr ""
 
-msgid "Key Acquirer"
-msgstr ""
+#, fuzzy
+#| msgid "network error"
+msgid "Network"
+msgstr "hálózati hiba"
 
 #, fuzzy
-msgid "PIN and Passphrase Entry"
-msgstr "rossz jelszó"
+msgid "Passphrase Entry"
+msgstr "rossz jelszó"
 
 #, fuzzy
 msgid "Component not suitable for launching"
-msgstr "nyilvános kulcs nem található"
+msgstr "nyilvános kulcs nem található"
 
 #, c-format
 msgid "External verification of component %s failed"
@@ -8592,11 +8658,16 @@ msgstr ""
 
 #, fuzzy
 msgid "list global configuration file"
-msgstr "\"%s\": ismeretlen konfigurációs elem.\n"
+msgstr "\"%s\": ismeretlen konfigurációs elem.\n"
 
 #, fuzzy
 msgid "check global configuration file"
-msgstr "\"%s\": ismeretlen konfigurációs elem.\n"
+msgstr "\"%s\": ismeretlen konfigurációs elem.\n"
+
+#, fuzzy
+#| msgid "update the trust database"
+msgid "query the software version database"
+msgstr "bizalmi adatbázis frissítése"
 
 msgid "reload all or a given component"
 msgstr ""
@@ -8608,14 +8679,14 @@ msgid "kill a given component"
 msgstr ""
 
 msgid "use as output file"
-msgstr "kimeneti állomány megadása"
+msgstr "kimeneti állomány megadása"
 
 msgid "activate changes at runtime, if possible"
 msgstr ""
 
 #, fuzzy
 msgid "Usage: @GPGCONF@ [options] (-h for help)"
-msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
+msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
 
 msgid ""
 "Syntax: @GPGCONF@ [options]\n"
@@ -8627,11 +8698,11 @@ msgstr ""
 
 #, fuzzy
 msgid "Component not found"
-msgstr "nyilvános kulcs nem található"
+msgstr "nyilvános kulcs nem található"
 
 #, fuzzy
 msgid "No argument allowed"
-msgstr "Írom a titkos kulcsot a %s állományba.\n"
+msgstr "Írom a titkos kulcsot a %s állományba.\n"
 
 #, fuzzy
 msgid ""
@@ -8644,18 +8715,18 @@ msgstr ""
 
 #, fuzzy
 msgid "decryption modus"
-msgstr "Visszafejtés rendben.\n"
+msgstr "Visszafejtés rendben.\n"
 
 #, fuzzy
 msgid "encryption modus"
-msgstr "Visszafejtés rendben.\n"
+msgstr "Visszafejtés rendben.\n"
 
 msgid "tool class (confucius)"
 msgstr ""
 
 #, fuzzy
 msgid "program filename"
-msgstr "--store [fájlnév]"
+msgstr "--store [fájlnév]"
 
 msgid "secret key file (required)"
 msgstr ""
@@ -8665,7 +8736,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Usage: symcryptrun [options] (-h for help)"
-msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
+msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
 
 msgid ""
 "Syntax: symcryptrun --class CLASS --program PROGRAM --keyfile KEYFILE "
@@ -8675,15 +8746,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "%s on %s aborted with status %i\n"
-msgstr "%s és %s nem használható együtt!\n"
+msgstr "%s és %s nem használható együtt!\n"
 
 #, fuzzy, c-format
 msgid "%s on %s failed with status %i\n"
-msgstr "Nem tudom megnyitni az állományt: %s.\n"
+msgstr "Nem tudom megnyitni az állományt: %s.\n"
 
 #, fuzzy, c-format
 msgid "can't create temporary directory '%s': %s\n"
-msgstr "Nem tudom a \"%s\" könyvtárat létrehozni: %s.\n"
+msgstr "Nem tudom a \"%s\" könyvtárat létrehozni: %s.\n"
 
 #, fuzzy, c-format
 msgid "could not open %s for writing: %s\n"
@@ -8691,19 +8762,19 @@ msgstr "Nem tudom megnyitni %s-t: %s\n"
 
 #, fuzzy, c-format
 msgid "error writing to %s: %s\n"
-msgstr "Hiba a \"%s\" kulcskarika írásakor: %s\n"
+msgstr "Hiba a \"%s\" kulcskarika írásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "error reading from %s: %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy, c-format
 msgid "error closing %s: %s\n"
-msgstr "Hiba \"%s\" olvasásakor: %s\n"
+msgstr "Hiba \"%s\" olvasásakor: %s\n"
 
 #, fuzzy
 msgid "no --program option provided\n"
-msgstr "Külsõ program meghívása nem támogatott.\n"
+msgstr "Külső program meghívása nem támogatott.\n"
 
 msgid "only --decrypt and --encrypt are supported\n"
 msgstr ""
@@ -8716,11 +8787,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "could not create pipe: %s\n"
-msgstr "%s nem hozható létre: %s\n"
+msgstr "%s nem hozható létre: %s\n"
 
 #, fuzzy, c-format
 msgid "could not create pty: %s\n"
-msgstr "%s nem hozható létre: %s\n"
+msgstr "%s nem hozható létre: %s\n"
 
 #, c-format
 msgid "could not fork: %s\n"
@@ -8728,23 +8799,23 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "execv failed: %s\n"
-msgstr "Frissítés sikertelen: %s.\n"
+msgstr "Frissítés sikertelen: %s.\n"
 
 #, fuzzy, c-format
 msgid "select failed: %s\n"
-msgstr "A kulcsblokk törlése sikertelen: %s.\n"
+msgstr "A kulcsblokk törlése sikertelen: %s.\n"
 
 #, fuzzy, c-format
 msgid "read failed: %s\n"
-msgstr "Frissítés sikertelen: %s.\n"
+msgstr "Frissítés sikertelen: %s.\n"
 
 #, fuzzy, c-format
 msgid "pty read failed: %s\n"
-msgstr "Frissítés sikertelen: %s.\n"
+msgstr "Frissítés sikertelen: %s.\n"
 
 #, fuzzy, c-format
 msgid "waitpid failed: %s\n"
-msgstr "Frissítés sikertelen: %s.\n"
+msgstr "Frissítés sikertelen: %s.\n"
 
 #, c-format
 msgid "child aborted with status %i\n"
@@ -8752,11 +8823,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "cannot allocate infile string: %s\n"
-msgstr "Nem tudom létrehozni a(z) \"%s\" állományt: %s.\n"
+msgstr "Nem tudom létrehozni a(z) \"%s\" állományt: %s.\n"
 
 #, fuzzy, c-format
 msgid "cannot allocate outfile string: %s\n"
-msgstr "Nem tudom létrehozni a(z) \"%s\" állományt: %s.\n"
+msgstr "Nem tudom létrehozni a(z) \"%s\" állományt: %s.\n"
 
 #, c-format
 msgid "either %s or %s must be given\n"
@@ -8767,35 +8838,49 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "class %s is not supported\n"
-msgstr "%d%s védõ algoritmus nem támogatott.\n"
+msgstr "%d%s védő algoritmus nem támogatott.\n"
 
 #, fuzzy
 msgid "Usage: gpg-check-pattern [options] patternfile (-h for help)\n"
-msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
+msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
 
 msgid ""
 "Syntax: gpg-check-pattern [options] patternfile\n"
 "Check a passphrase given on stdin against the patternfile\n"
 msgstr ""
 
+#, fuzzy
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "A kulcsblokk törlése sikertelen: %s.\n"
+
+#, fuzzy
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "kulcs tiltása"
+
+#, fuzzy
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "|algo [fájlok]|üzenet kivonatának kiírása"
+#~ msgstr[1] "|algo [fájlok]|üzenet kivonatának kiírása"
+
 #~ msgid "communication problem with gpg-agent\n"
-#~ msgstr "Kommunikációs probléma a gpg ügynökkel!\n"
+#~ msgstr "Kommunikációs probléma a gpg ügynökkel!\n"
 
 #, fuzzy
 #~ msgid "canceled by user\n"
-#~ msgstr "A felhasználó megszakította a mûveletet.\n"
+#~ msgstr "A felhasználó megszakította a műveletet.\n"
 
 #, fuzzy
 #~ msgid "problem with the agent\n"
-#~ msgstr "Probléma az ügynökkel: ügynök válasza: 0x%lx\n"
+#~ msgstr "Probléma az ügynökkel: ügynök válasza: 0x%lx\n"
 
 #, fuzzy
 #~ msgid "problem with the agent (unexpected response \"%s\")\n"
-#~ msgstr "Probléma az ügynökkel: ügynök válasza: 0x%lx\n"
+#~ msgstr "Probléma az ügynökkel: ügynök válasza: 0x%lx\n"
 
 #, fuzzy
 #~ msgid "unknown TOFU DB format '%s'\n"
-#~ msgstr "Ismeretlen alapértelmezett címzett: \"%s\"\n"
+#~ msgstr "Ismeretlen alapértelmezett címzett: \"%s\"\n"
 
 #, fuzzy
 #~ msgid ""
@@ -8805,10 +8890,10 @@ msgstr ""
 #~ "%u-bit %s key, ID %s,\n"
 #~ "created %s%s.\n"
 #~ msgstr ""
-#~ "Most meg kell adnia a jelszót, mellyel a következõ felhasználó\n"
-#~ "titkos kulcsa használatba vehetõ:\n"
+#~ "Most meg kell adnia a jelszót, mellyel a következő felhasználó\n"
+#~ "titkos kulcsa használatba vehető:\n"
 #~ "\"%.*s\"\n"
-#~ "%u bites %s key, azonosító: %08lX, létrehozva: %s%s\n"
+#~ "%u bites %s key, azonosító: %08lX, létrehozva: %s%s\n"
 
 #, fuzzy
 #~ msgid ""
@@ -8816,64 +8901,61 @@ msgstr ""
 #~ "user: \"%s\"\n"
 #~ msgstr ""
 #~ "\n"
-#~ "Jelszóra van szüksége a következõ felhasználó titkos kulcsának "
-#~ "használatához:\n"
+#~ "Jelszóra van szüksége a következő felhasználó titkos kulcsának "
+#~ "használatához:\n"
 #~ "\""
 
 #, fuzzy
 #~ msgid "%u-bit %s key, ID %s, created %s"
-#~ msgstr "%u bites %s kulcs, azonosító: %08lX, létrehozva: %s."
+#~ msgstr "%u bites %s kulcs, azonosító: %08lX, létrehozva: %s."
 
 #, fuzzy
 #~| msgid "can't create directory `%s': %s\n"
 #~ msgid "can't access directory '%s': %s\n"
-#~ msgstr "Nem tudom a \"%s\" könyvtárat létrehozni: %s.\n"
+#~ msgstr "Nem tudom a \"%s\" könyvtárat létrehozni: %s.\n"
 
 #~ msgid "you found a bug ... (%s:%d)\n"
-#~ msgstr "Talált egy programhibát... (%s:%d)\n"
+#~ msgstr "Talált egy programhibát... (%s:%d)\n"
 
 #, fuzzy
 #~| msgid "%d user IDs without valid self-signatures detected\n"
 #~ msgid "%d user ID without valid self-signature detected\n"
 #~ msgid_plural "%d user IDs without valid self-signatures detected\n"
-#~ msgstr[0] "%d felhasználóazonosítót találtam érvényes önaláírás nélkül.\n"
-#~ msgstr[1] "%d felhasználóazonosítót találtam érvényes önaláírás nélkül.\n"
+#~ msgstr[0] "%d felhasználóazonosítót találtam érvényes önaláírás nélkül.\n"
+#~ msgstr[1] "%d felhasználóazonosítót találtam érvényes önaláírás nélkül.\n"
 
 #~ msgid "moving a key signature to the correct place\n"
-#~ msgstr "Átrakom a kulcsaláírást a megfelelõ helyre.\n"
+#~ msgstr "Átrakom a kulcsaláírást a megfelelő helyre.\n"
 
 #~ msgid "%d signatures not checked due to missing keys\n"
-#~ msgstr "%d aláírást nem ellenõriztem hiányzó kulcs miatt.\n"
+#~ msgstr "%d aláírást nem ellenőriztem hiányzó kulcs miatt.\n"
 
 #~ msgid "%d signatures not checked due to errors\n"
-#~ msgstr "%d aláírást nem ellenõriztem hiba miatt.\n"
+#~ msgstr "%d aláírást nem ellenőriztem hiba miatt.\n"
 
 #~ msgid "1 user ID without valid self-signature detected\n"
-#~ msgstr "1 felhasználóazonosítót találtam érvényes önaláírás nélkül.\n"
-
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "Töröltem %d aláírást.\n"
+#~ msgstr "1 felhasználóazonosítót találtam érvényes önaláírás nélkül.\n"
 
 #, fuzzy
 #~ msgid "User ID \"%s\": %d signatures removed\n"
-#~ msgstr "\"%s\" felhasználói azonosítót visszavonták."
+#~ msgstr "\"%s\" felhasználói azonosítót visszavonták."
 
 #~ msgid ""
 #~ "You need a Passphrase to protect your secret key.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Most szükség van egy jelszóra (vagy mondatra), amely a titkos kulcsát "
-#~ "védi.\n"
+#~ "Most szükség van egy jelszóra (vagy mondatra), amely a titkos kulcsát "
+#~ "védi.\n"
 #~ "\n"
 
 #, fuzzy
 #~ msgid ""
 #~ "Please enter a passphrase to protect the off-card backup of the new "
 #~ "encryption key."
-#~ msgstr "Kérem, adja meg a jelszót! Ezt egy titkos mondat. \n"
+#~ msgstr "Kérem, adja meg a jelszót! Ezt egy titkos mondat. \n"
 
 #~ msgid "passphrase not correctly repeated; try again"
-#~ msgstr "Nem ismételte meg helyesen a jelszót! Próbálja újra!"
+#~ msgstr "Nem ismételte meg helyesen a jelszót! Próbálja újra!"
 
 #~ msgid "%s.\n"
 #~ msgstr "%s.\n"
@@ -8884,31 +8966,27 @@ msgstr ""
 #~ "using this program with the option \"--edit-key\".\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Ön nem akar jelszót. Ez valószínûleg egy *rossz* ötlet!\n"
-#~ "De azért megcsinálom. Bármikor megváltoztathatja a jelszavát\n"
-#~ "az \"--edit-key\" opcióval.\n"
+#~ "Ön nem akar jelszót. Ez valószínűleg egy *rossz* ötlet!\n"
+#~ "De azért megcsinálom. Bármikor megváltoztathatja a jelszavát\n"
+#~ "az \"--edit-key\" opcióval.\n"
 #~ "\n"
 
 #, fuzzy
 #~ msgid "storing key onto card failed: %s\n"
-#~ msgstr "A kulcsblokk törlése sikertelen: %s.\n"
+#~ msgstr "A kulcsblokk törlése sikertelen: %s.\n"
 
 #, fuzzy
 #~| msgid "1 bad signature\n"
 #~ msgid "1 good signature\n"
-#~ msgstr "1 rossz aláírás.\n"
-
-#, fuzzy
-#~ msgid "renaming '%s' to '%s' failed: %s\n"
-#~ msgstr "Páncélozás nem sikerült: %s\n"
+#~ msgstr "1 rossz aláírás.\n"
 
 #, fuzzy
 #~ msgid "%lu keys cached (%lu signatures)\n"
-#~ msgstr "%lu kulcsot ellenõriztem (%lu aláírással).\n"
+#~ msgstr "%lu kulcsot ellenőriztem (%lu aláírással).\n"
 
 #, fuzzy
 #~ msgid "refreshing 1 key from %s\n"
-#~ msgstr "Lekérem a %08lX kulcsot a %s kulcsszerverrõl.\n"
+#~ msgstr "Lekérem a %08lX kulcsot a %s kulcsszerverről.\n"
 
 #, fuzzy
 #~ msgid "sending key %s to %s server %s\n"
@@ -8916,80 +8994,80 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "public key %s is %lu seconds newer than the signature\n"
-#~ msgstr "A(z) %08lX nyilvános kulcs %lu másodperccel újabb az aláírásnál!\n"
+#~ msgstr "A(z) %08lX nyilvános kulcs %lu másodperccel újabb az aláírásnál!\n"
 
 #, fuzzy
 #~ msgid ""
 #~ "key %s was created %lu seconds in the future (time warp or clock "
 #~ "problem)\n"
 #~ msgstr ""
-#~ "A kulcs %lu másodperccel a jövõben készült. (Idõugrás vagy óraprobléma.)\n"
+#~ "A kulcs %lu másodperccel a jövőben készült. (Időugrás vagy óraprobléma.)\n"
 
 #, fuzzy
 #~| msgid "can't open the keyring"
 #~ msgid "Failed to open the keyring DB.\n"
-#~ msgstr "nem lehet megnyitni a kulcskarikát"
+#~ msgstr "nem lehet megnyitni a kulcskarikát"
 
 #, fuzzy
 #~ msgid "Failed to parse '%s'.\n"
-#~ msgstr "Nem tudom megnyitni a(z) \"%s\" állományt: %s.\n"
+#~ msgstr "Nem tudom megnyitni a(z) \"%s\" állományt: %s.\n"
 
 #, fuzzy
 #~ msgid "error looking up secret key \"%s\": %s\n"
-#~ msgstr "Hiba \"%s\" titkoskulcs-blokk olvasásakor: %s.\n"
+#~ msgstr "Hiba \"%s\" titkoskulcs-blokk olvasásakor: %s.\n"
 
 #, fuzzy
 #~ msgid "Please select at most one subkey.\n"
-#~ msgstr "Maximum egy másodlagos kulcsot jelöljön ki, kérem!\n"
+#~ msgstr "Maximum egy másodlagos kulcsot jelöljön ki, kérem!\n"
 
 #, fuzzy
 #~ msgid "malformed %s environment variable\n"
-#~ msgstr "Nem megfelelõ formájú GPG_AGENT_INFO környezeti változó!\n"
+#~ msgstr "Nem megfelelő formájú GPG_AGENT_INFO környezeti változó!\n"
 
 #, fuzzy
 #~ msgid "dirmngr protocol version %d is not supported\n"
-#~ msgstr "%d gpg-agent protokollverzió nem támogatott!\n"
+#~ msgstr "%d gpg-agent protokollverzió nem támogatott!\n"
 
 #, fuzzy
 #~ msgid "toggle between the secret and public key listings"
-#~ msgstr "váltás a titkos és a nyilvános kulcs listázása között"
+#~ msgstr "váltás a titkos és a nyilvános kulcs listázása között"
 
 #~ msgid "Please use the command \"toggle\" first.\n"
-#~ msgstr "Kérem, használja elõbb a \"toggle\" parancsot!\n"
+#~ msgstr "Kérem, használja előbb a \"toggle\" parancsot!\n"
 
 #, fuzzy
 #~ msgid "Passphrase"
-#~ msgstr "rossz jelszó"
+#~ msgstr "rossz jelszó"
 
 #, fuzzy
 #~ msgid "WARNING: keyserver option '%s' is not used on this platform\n"
 #~ msgstr ""
-#~ "FIGYELEM: \"%s\" opciói csak a következõ futáskor lesznek érvényesek!\n"
+#~ "FIGYELEM: \"%s\" opciói csak a következő futáskor lesznek érvényesek!\n"
 
 #~ msgid "gpg-agent is not available in this session\n"
-#~ msgstr "GPG ügynök nem elérhetõ ebben a munkafolyamatban.\n"
+#~ msgstr "GPG ügynök nem elérhető ebben a munkafolyamatban.\n"
 
 #, fuzzy
 #~ msgid "use a standard location for the socket"
-#~ msgstr "Valóban frissíti a kijelölt felhasználóazonosítók preferenciáit? "
+#~ msgstr "Valóban frissíti a kijelölt felhasználóazonosítók preferenciáit? "
 
 #, fuzzy
 #~ msgid "Usage: gpg-agent [options] (-h for help)"
-#~ msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
+#~ msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
 
 #~ msgid "malformed GPG_AGENT_INFO environment variable\n"
-#~ msgstr "Nem megfelelõ formájú GPG_AGENT_INFO környezeti változó!\n"
+#~ msgstr "Nem megfelelő formájú GPG_AGENT_INFO környezeti változó!\n"
 
 #~ msgid "gpg-agent protocol version %d is not supported\n"
-#~ msgstr "%d gpg-agent protokollverzió nem támogatott!\n"
+#~ msgstr "%d gpg-agent protokollverzió nem támogatott!\n"
 
 #, fuzzy
 #~ msgid "can't fdopen pipe for reading: %s\n"
-#~ msgstr "Nem tudom megnyitni az állományt: %s.\n"
+#~ msgstr "Nem tudom megnyitni az állományt: %s.\n"
 
 #, fuzzy
 #~ msgid "error creating socket: %s\n"
-#~ msgstr "Hiba \"%s\" létrehozásakor: %s\n"
+#~ msgstr "Hiba \"%s\" létrehozásakor: %s\n"
 
 #, fuzzy
 #~ msgid "host not found"
@@ -8997,117 +9075,117 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "unknown key protection algorithm\n"
-#~ msgstr "Ismeretlen védelmi algoritmus!\n"
+#~ msgstr "Ismeretlen védelmi algoritmus!\n"
 
 #, fuzzy
 #~ msgid "secret parts of key are not available\n"
-#~ msgstr "Az elsõdleges kulcs titkos részei nem elérhetõk.\n"
+#~ msgstr "Az elsődleges kulcs titkos részei nem elérhetők.\n"
 
 #, fuzzy
 #~ msgid "secret key already stored on a card\n"
-#~ msgstr "Kihagytam: titkos kulcs már jelen van.\n"
+#~ msgstr "Kihagytam: titkos kulcs már jelen van.\n"
 
 #, fuzzy
 #~ msgid "error writing key to card: %s\n"
-#~ msgstr "Hiba a \"%s\" kulcskarika írásakor: %s\n"
+#~ msgstr "Hiba a \"%s\" kulcskarika írásakor: %s\n"
 
 #~ msgid ""
 #~ "you can only encrypt to RSA keys of 2048 bits or less in --pgp2 mode\n"
 #~ msgstr ""
-#~ "Csak 2048 bites, vagy rövidebb RSA kulcsokkal titkosíthat --pgp2 módban!\n"
+#~ "Csak 2048 bites, vagy rövidebb RSA kulcsokkal titkosíthat --pgp2 módban!\n"
 
 #~ msgid ""
 #~ "unable to use the IDEA cipher for all of the keys you are encrypting to.\n"
 #~ msgstr ""
-#~ "Nem tudom az IDEA rejtjelezõt használni az összes címzett kulcshoz.\n"
+#~ "Nem tudom az IDEA rejtjelezőt használni az összes címzett kulcshoz.\n"
 
 #, fuzzy
 #~ msgid "remove the passphrase from exported subkeys"
-#~ msgstr "másodlagos kulcs visszavonása"
+#~ msgstr "másodlagos kulcs visszavonása"
 
 #, fuzzy
 #~ msgid "key %s: not protected - skipped\n"
-#~ msgstr "%08lX kulcs: nem védett - kihagytam.\n"
+#~ msgstr "%08lX kulcs: nem védett - kihagytam.\n"
 
 #, fuzzy
 #~ msgid "failed to unprotect the subkey: %s\n"
-#~ msgstr "Bizalmi adatbázis (%s) inicializálása sikertelen!\n"
+#~ msgstr "Bizalmi adatbázis (%s) inicializálása sikertelen!\n"
 
 #, fuzzy
 #~ msgid "WARNING: secret key %s does not have a simple SK checksum\n"
 #~ msgstr ""
-#~ "FIGYELEM: %08lX titkos kulcsnak nincs egyszerû SK ellenõrzõösszege.\n"
+#~ "FIGYELEM: %08lX titkos kulcsnak nincs egyszerű SK ellenőrzőösszege.\n"
 
 #~ msgid "too many entries in pk cache - disabled\n"
-#~ msgstr "Túl sok bejegyzés van a nyilvánoskulcs-gyorsítótárban - letiltom.\n"
+#~ msgstr "Túl sok bejegyzés van a nyilvánoskulcs-gyorsítótárban - letiltom.\n"
 
 #, fuzzy
 #~ msgid "no secret subkey for public subkey %s - ignoring\n"
 #~ msgstr ""
-#~ "Nincs titkos alkulcs a %08lX nyilvános alkulcshoz - figyelmen kívül "
+#~ "Nincs titkos alkulcs a %08lX nyilvános alkulcshoz - figyelmen kívül "
 #~ "hagyom.\n"
 
 #, fuzzy
 #~ msgid "key %s: secret key without public key - skipped\n"
-#~ msgstr "%08lX kulcs: titkos kulcs nyilvános kulcs nélkül - kihagytam.\n"
+#~ msgstr "%08lX kulcs: titkos kulcs nyilvános kulcs nélkül - kihagytam.\n"
 
 #~ msgid "usage: gpg [options] "
-#~ msgstr "Használat: gpg [opciók] "
+#~ msgstr "Használat: gpg [opciók] "
 
 #~ msgid ""
 #~ "you can only make detached or clear signatures while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "Csak különálló és olvashatószöveg-aláírást készíthet --pgp2 módban!\n"
+#~ "Csak különálló és olvashatószöveg-aláírást készíthet --pgp2 módban!\n"
 
 #~ msgid "you can't sign and encrypt at the same time while in --pgp2 mode\n"
-#~ msgstr "Nem írhat alá és titkosíthat egyszerre --pgp2 módban!\n"
+#~ msgstr "Nem írhat alá és titkosíthat egyszerre --pgp2 módban!\n"
 
 #~ msgid ""
 #~ "you must use files (and not a pipe) when working with --pgp2 enabled.\n"
-#~ msgstr "Csak állományokat (pipe-ot nem) használhat --pgp2 módban!\n"
+#~ msgstr "Csak állományokat (pipe-ot nem) használhat --pgp2 módban!\n"
 
 #~ msgid "encrypting a message in --pgp2 mode requires the IDEA cipher\n"
-#~ msgstr "Üzenet titkosítása --pgp2 módban IDEA rejtjelezõt igényel!\n"
+#~ msgstr "Üzenet titkosítása --pgp2 módban IDEA rejtjelezőt igényel!\n"
 
 #, fuzzy
 #~ msgid "create a public key when importing a secret key"
-#~ msgstr "A nyilvános kulcs nem passzol a titkos kulcshoz!\n"
+#~ msgstr "A nyilvános kulcs nem passzol a titkos kulcshoz!\n"
 
 #, fuzzy
 #~ msgid "key %s: already in secret keyring\n"
-#~ msgstr "%08lX kulcs: Már szerepel a titkoskulcs-karikán.\n"
+#~ msgstr "%08lX kulcs: Már szerepel a titkoskulcs-karikán.\n"
 
 #, fuzzy
 #~ msgid "key %s: secret key not found: %s\n"
-#~ msgstr "%08lX kulcs: Titkos kulcs nem található: %s\n"
+#~ msgstr "%08lX kulcs: Titkos kulcs nem található: %s\n"
 
 #, fuzzy
 #~ msgid "NOTE: a key's S/N does not match the card's one\n"
-#~ msgstr "A nyilvános kulcs nem passzol a titkos kulcshoz!\n"
+#~ msgstr "A nyilvános kulcs nem passzol a titkos kulcshoz!\n"
 
 #, fuzzy
 #~ msgid "NOTE: primary key is online and stored on card\n"
-#~ msgstr "Kihagytam: titkos kulcs már jelen van.\n"
+#~ msgstr "Kihagytam: titkos kulcs már jelen van.\n"
 
 #, fuzzy
 #~ msgid "NOTE: secondary key is online and stored on card\n"
-#~ msgstr "Kihagytam: titkos kulcs már jelen van.\n"
+#~ msgstr "Kihagytam: titkos kulcs már jelen van.\n"
 
 #~ msgid ""
 #~ "You may not make an OpenPGP signature on a PGP 2.x key while in --pgp2 "
 #~ "mode.\n"
 #~ msgstr ""
-#~ "Lehet, hogy nem rakhat OpenPGP aláírást egy PGP 2.x kulcsra --pgp2 "
-#~ "módban.\n"
+#~ "Lehet, hogy nem rakhat OpenPGP aláírást egy PGP 2.x kulcsra --pgp2 "
+#~ "módban.\n"
 
 #~ msgid "This would make the key unusable in PGP 2.x.\n"
-#~ msgstr "Ez használhatatlanná tenné a kulcsot PGP 2.x-ben.\n"
+#~ msgstr "Ez használhatatlanná tenné a kulcsot PGP 2.x-ben.\n"
 
 #~ msgid "This key is not protected.\n"
-#~ msgstr "Ez a kulcs nem védett.\n"
+#~ msgstr "Ez a kulcs nem védett.\n"
 
 #~ msgid "Key is protected.\n"
-#~ msgstr "A kulcs védett.\n"
+#~ msgstr "A kulcs védett.\n"
 
 #~ msgid "Can't edit this key: %s\n"
 #~ msgstr "Nem tudom szerkeszteni ezt a kulcsot: %s\n"
@@ -9116,47 +9194,47 @@ msgstr ""
 #~ "Enter the new passphrase for this secret key.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Írja be az új jelszót ehhez a titkos kulcshoz!\n"
+#~ "Írja be az új jelszót ehhez a titkos kulcshoz!\n"
 #~ "\n"
 
 #~ msgid ""
 #~ "You don't want a passphrase - this is probably a *bad* idea!\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Ön nem akar jelszót. Ez valószínûleg *rossz* ötlet!\n"
+#~ "Ön nem akar jelszót. Ez valószínűleg *rossz* ötlet!\n"
 #~ "\n"
 
 #, fuzzy
 #~ msgid "Do you really want to do this? (y/N) "
-#~ msgstr "Valóban ezt akarja? "
+#~ msgstr "Valóban ezt akarja? "
 
 #~ msgid "Please remove selections from the secret keys.\n"
-#~ msgstr "Kérem, távolítsa el a kijelöléseket a titkos kulcsokról!\n"
+#~ msgstr "Kérem, távolítsa el a kijelöléseket a titkos kulcsokról!\n"
 
 #~ msgid "No corresponding signature in secret ring\n"
-#~ msgstr "Nincs megfelelõ aláírás a titkoskulcs-karikán.\n"
+#~ msgstr "Nincs megfelelő aláírás a titkoskulcs-karikán.\n"
 
 #, fuzzy
 #~ msgid "writing secret key stub to `%s'\n"
-#~ msgstr "Írom a titkos kulcsot a %s állományba.\n"
+#~ msgstr "Írom a titkos kulcsot a %s állományba.\n"
 
 #~ msgid "writing secret key to `%s'\n"
-#~ msgstr "Írom a titkos kulcsot a %s állományba.\n"
+#~ msgstr "Írom a titkos kulcsot a %s állományba.\n"
 
 #~ msgid "no writable secret keyring found: %s\n"
-#~ msgstr "Nem írható titkoskulcs-karikát találtam: %s\n"
+#~ msgstr "Nem írható titkoskulcs-karikát találtam: %s\n"
 
 #~ msgid "WARNING: 2 files with confidential information exists.\n"
-#~ msgstr "FIGYELEM: 2 bizalmas információkat tartalmazó állomány van!\n"
+#~ msgstr "FIGYELEM: 2 bizalmas információkat tartalmazó állomány van!\n"
 
 #~ msgid "%s is the unchanged one\n"
-#~ msgstr "%s az eredeti példány.\n"
+#~ msgstr "%s az eredeti példány.\n"
 
 #~ msgid "%s is the new one\n"
-#~ msgstr "%s az új példány.\n"
+#~ msgstr "%s az új példány.\n"
 
 #~ msgid "Please fix this possible security flaw\n"
-#~ msgstr "Kérem, oldja meg ezt a lehetséges biztonsági problémát!\n"
+#~ msgstr "Kérem, oldja meg ezt a lehetséges biztonsági problémát!\n"
 
 #, fuzzy
 #~ msgid "searching for names from %s server %s\n"
@@ -9184,135 +9262,135 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "keyserver communications error: %s\n"
-#~ msgstr "Vétel a kulcsszerverrõl sikertelen: %s\n"
+#~ msgstr "Vétel a kulcsszerverről sikertelen: %s\n"
 
 #, fuzzy
 #~ msgid "WARNING: unable to parse URI %s\n"
 #~ msgstr ""
-#~ "FIGYELEM: Nem tudom törölni az (\"%s\") átmeneti állományt: \"%s\": %s.\n"
+#~ "FIGYELEM: Nem tudom törölni az (\"%s\") átmeneti állományt: \"%s\": %s.\n"
 
 #~ msgid "invalid root packet detected in proc_tree()\n"
-#~ msgstr "Érvénytelen gyökércsomagot találtam a proc_tree() függvényben!\n"
+#~ msgstr "Érvénytelen gyökércsomagot találtam a proc_tree() függvényben!\n"
 
 #~ msgid "the IDEA cipher plugin is not present\n"
-#~ msgstr "Az IDEA rejtjelezõ bõvítés nincs jelen!\n"
+#~ msgstr "Az IDEA rejtjelező bővítés nincs jelen!\n"
 
 #~ msgid "no corresponding public key: %s\n"
-#~ msgstr "Nincs hozzá tartozó nyilvános kulcs: %s\n"
+#~ msgstr "Nincs hozzá tartozó nyilvános kulcs: %s\n"
 
 #~ msgid "public key does not match secret key!\n"
-#~ msgstr "A nyilvános kulcs nem passzol a titkos kulcshoz!\n"
+#~ msgstr "A nyilvános kulcs nem passzol a titkos kulcshoz!\n"
 
 #~ msgid "unknown protection algorithm\n"
-#~ msgstr "Ismeretlen védelmi algoritmus!\n"
+#~ msgstr "Ismeretlen védelmi algoritmus!\n"
 
 #~ msgid "NOTE: This key is not protected!\n"
-#~ msgstr "MEGJEGYZÉS: Ez a kulcs nem védett.\n"
+#~ msgstr "MEGJEGYZÉS: Ez a kulcs nem védett.\n"
 
 #, fuzzy
 #~ msgid "protection digest %d is not supported\n"
-#~ msgstr "%d%s védõ algoritmus nem támogatott.\n"
+#~ msgstr "%d%s védő algoritmus nem támogatott.\n"
 
 #~ msgid "Invalid passphrase; please try again"
-#~ msgstr "Érvénytelen jelszó. Próbálja újra"
+#~ msgstr "Érvénytelen jelszó. Próbálja újra"
 
 #~ msgid "%s ...\n"
 #~ msgstr "%s...\n"
 
 #~ msgid "WARNING: Weak key detected - please change passphrase again.\n"
 #~ msgstr ""
-#~ "FIGYELEM: Gyenge kulcsot találtam. Kérem, változtassa meg ismét a "
-#~ "jelszót!\n"
+#~ "FIGYELEM: Gyenge kulcsot találtam. Kérem, változtassa meg ismét a "
+#~ "jelszót!\n"
 
 #~ msgid ""
 #~ "generating the deprecated 16-bit checksum for secret key protection\n"
 #~ msgstr ""
-#~ "Elavult, 16 bites ellenõrzõösszeget hozok létre titkos kulcs védelméhez.\n"
+#~ "Elavult, 16 bites ellenőrzőösszeget hozok létre titkos kulcs védelméhez.\n"
 
 #~ msgid ""
 #~ "you can only detach-sign with PGP 2.x style keys while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "Különálló aláírást PGP 2.x stílusú kulcsokkal csak --pgp2 módban "
-#~ "készíthet!\n"
+#~ "Különálló aláírást PGP 2.x stílusú kulcsokkal csak --pgp2 módban "
+#~ "készíthet!\n"
 
 #~ msgid ""
 #~ "you can only clearsign with PGP 2.x style keys while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "Olvasható szöveget PGP 2.x stílusú kulccsal csak --pgp2 módban írhat "
-#~ "alá!\n"
+#~ "Olvasható szöveget PGP 2.x stílusú kulccsal csak --pgp2 módban írhat "
+#~ "alá!\n"
 
 #, fuzzy
 #~ msgid "Usage: scdaemon [options] (-h for help)"
-#~ msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
+#~ msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
 
 #, fuzzy
 #~ msgid "Usage: gpgsm [options] [files] (-h for help)"
-#~ msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
+#~ msgstr "Használat: gpg [opciók] [fájlok] (-h a súgóhoz)"
 
 #, fuzzy
 #~ msgid "usage: gpgconf [options] "
-#~ msgstr "Használat: gpg [opciók] "
+#~ msgstr "Használat: gpg [opciók] "
 
 #, fuzzy
 #~ msgid "failed to allocated keyDB handle\n"
-#~ msgstr "Bizalmi adatbázis (%s) inicializálása sikertelen!\n"
+#~ msgstr "Bizalmi adatbázis (%s) inicializálása sikertelen!\n"
 
 #~ msgid "Command> "
 #~ msgstr "Parancs> "
 
 #~ msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
-#~ msgstr "Bizalmi adatbázis sérült. Kérem, futtassa: \"gpg --fix-trustdb\".\n"
+#~ msgstr "Bizalmi adatbázis sérült. Kérem, futtassa: \"gpg --fix-trustdb\".\n"
 
 #~ msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
-#~ msgstr "A hibákat (angolul) a <gnupg-bugs@gnu.org> címre írja meg!\n"
+#~ msgstr "A hibákat (angolul) a <gnupg-bugs@gnu.org> címre írja meg!\n"
 
 #, fuzzy
 #~ msgid "Please report bugs to "
-#~ msgstr "A hibákat (angolul) a <gnupg-bugs@gnu.org> címre írja meg!\n"
+#~ msgstr "A hibákat (angolul) a <gnupg-bugs@gnu.org> címre írja meg!\n"
 
 #, fuzzy
 #~ msgid "DSA keypair will have %u bits.\n"
-#~ msgstr "A DSA kulcspár 1024 bites lesz.\n"
+#~ msgstr "A DSA kulcspár 1024 bites lesz.\n"
 
 #~ msgid "Repeat passphrase\n"
-#~ msgstr "Ismételje meg a jelszót!\n"
+#~ msgstr "Ismételje meg a jelszót!\n"
 
 #, fuzzy
 #~ msgid "read options from file"
-#~ msgstr "Az opciókat a \"%s\" állományból olvasom.\n"
+#~ msgstr "Az opciókat a \"%s\" állományból olvasom.\n"
 
 #~ msgid "|[file]|make a signature"
-#~ msgstr "|[fájl]|aláírás készítése"
+#~ msgstr "|[fájl]|aláírás készítése"
 
 #, fuzzy
 #~ msgid "|[FILE]|make a signature"
-#~ msgstr "|[fájl]|aláírás készítése"
+#~ msgstr "|[fájl]|aláírás készítése"
 
 #, fuzzy
 #~ msgid "|[FILE]|make a clear text signature"
-#~ msgstr "|[fájl]|olvasható szöveg aláírása"
+#~ msgstr "|[fájl]|olvasható szöveg aláírása"
 
 #~ msgid "use the default key as default recipient"
-#~ msgstr "alapért. kulcs haszn. alapért. címzettként"
+#~ msgstr "alapért. kulcs haszn. alapért. címzettként"
 
 #~ msgid "force v3 signatures"
-#~ msgstr "3-as verziójú aláírások erõltetése"
+#~ msgstr "3-as verziójú aláírások erőltetése"
 
 #~ msgid "always use a MDC for encryption"
-#~ msgstr "mindig használjon MDC-t titkosításkor"
+#~ msgstr "mindig használjon MDC-t titkosításkor"
 
 #~ msgid "add this secret keyring to the list"
-#~ msgstr "titkoskulcs-karika hozzáadása a listához"
+#~ msgstr "titkoskulcs-karika hozzáadása a listához"
 
 #~ msgid "|FILE|load extension module FILE"
-#~ msgstr "|fájl|bõvítõ modul betöltése"
+#~ msgstr "|fájl|bővítő modul betöltése"
 
 #~ msgid "|N|use compress algorithm N"
-#~ msgstr "|N|N. sorszámú tömörítõ algoritmus használata"
+#~ msgstr "|N|N. sorszámú tömörítő algoritmus használata"
 
 #, fuzzy
 #~ msgid "remove key from the public keyring"
-#~ msgstr "kulcsok eltávolítása a nyilvánoskulcs-karikáról"
+#~ msgstr "kulcsok eltávolítása a nyilvánoskulcs-karikáról"
 
 #~ msgid ""
 #~ "It's up to you to assign a value here; this value will never be exported\n"
@@ -9320,10 +9398,10 @@ msgstr ""
 #~ "nothing\n"
 #~ "to do with the (implicitly created) web-of-certificates."
 #~ msgstr ""
-#~ "Az Ön döntésén múlik, hogy milyen értéket ad meg itt. Ezt az értéket "
+#~ "Az Ön döntésén múlik, hogy milyen értéket ad meg itt. Ezt az értéket "
 #~ "soha\n"
-#~ "nem exportáljuk mások részére. Ez a bizalmak hálózatához (web-of-trust)\n"
-#~ "szükséges, semmi köze az igazolások hálózatához (web-of-certificates)."
+#~ "nem exportáljuk mások részére. Ez a bizalmak hálózatához (web-of-trust)\n"
+#~ "szükséges, semmi köze az igazolások hálózatához (web-of-certificates)."
 
 #~ msgid ""
 #~ "To build the Web-of-Trust, GnuPG needs to know which keys are\n"
@@ -9331,34 +9409,34 @@ msgstr ""
 #~ "access to the secret key.  Answer \"yes\" to set this key to\n"
 #~ "ultimately trusted\n"
 #~ msgstr ""
-#~ "Hogy a bizalmak hálózatát felépítsük, a GnuPG-nek tudnia kell, hogy\n"
-#~ "mely kulcsok alapvetõen megbízhatóak - általában ezek azok a kulcsok,\n"
-#~ "melyek titkos kulcsához hozzáfér. Válaszoljon \"igen\"-nel, ha kulcsot\n"
-#~ "alapvetõen megbízhatónak jelöli!\n"
+#~ "Hogy a bizalmak hálózatát felépítsük, a GnuPG-nek tudnia kell, hogy\n"
+#~ "mely kulcsok alapvetően megbízhatóak - általában ezek azok a kulcsok,\n"
+#~ "melyek titkos kulcsához hozzáfér. Válaszoljon \"igen\"-nel, ha kulcsot\n"
+#~ "alapvetően megbízhatónak jelöli!\n"
 
 #~ msgid "If you want to use this untrusted key anyway, answer \"yes\"."
 #~ msgstr ""
-#~ "Ha mégis használni akarja ezt a kulcsot, melyben nem bízunk,\n"
-#~ "válaszoljon \"igen\"-nel!"
+#~ "Ha mégis használni akarja ezt a kulcsot, melyben nem bízunk,\n"
+#~ "válaszoljon \"igen\"-nel!"
 
 #~ msgid ""
 #~ "Enter the user ID of the addressee to whom you want to send the message."
-#~ msgstr "Adja meg a címzett felhasználói azonosítóját!"
+#~ msgstr "Adja meg a címzett felhasználói azonosítóját!"
 
 #~ msgid ""
 #~ "In general it is not a good idea to use the same key for signing and\n"
 #~ "encryption.  This algorithm should only be used in certain domains.\n"
 #~ "Please consult your security expert first."
 #~ msgstr ""
-#~ "Általában nem jó ötlet ugyanazt a kulcsot használni aláíráshoz és\n"
-#~ "titkosításhoz. Ezt az algoritmust csak bizonyos területeken ajánlatos\n"
-#~ "használni. Kérem, elõször konzultáljon a biztonsági szakértõjével!"
+#~ "Általában nem jó ötlet ugyanazt a kulcsot használni aláíráshoz és\n"
+#~ "titkosításhoz. Ezt az algoritmust csak bizonyos területeken ajánlatos\n"
+#~ "használni. Kérem, először konzultáljon a biztonsági szakértőjével!"
 
 #~ msgid "Enter the size of the key"
-#~ msgstr "Adja meg a kulcs méretét!"
+#~ msgstr "Adja meg a kulcs méretét!"
 
 #~ msgid "Answer \"yes\" or \"no\""
-#~ msgstr "Kérem, adjon \"igen\" vagy \"nem\" választ!"
+#~ msgstr "Kérem, adjon \"igen\" vagy \"nem\" választ!"
 
 #~ msgid ""
 #~ "Enter the required value as shown in the prompt.\n"
@@ -9366,19 +9444,19 @@ msgstr ""
 #~ "get a good error response - instead the system tries to interpret\n"
 #~ "the given value as an interval."
 #~ msgstr ""
-#~ "Adja meg a szükséges értéket, ahogy a prompt mutatja!\n"
-#~ "Lehetséges ISO dátumot is beírni (ÉÉÉÉ-HH-NN), de nem fog rendes\n"
-#~ "hibaüzenetet kapni, hanem a rendszer megpróbálja az értéket\n"
-#~ "intervallumként értelmezni."
+#~ "Adja meg a szükséges értéket, ahogy a prompt mutatja!\n"
+#~ "Lehetséges ISO dátumot is beírni (ÉÉÉÉ-HH-NN), de nem fog rendes\n"
+#~ "hibaüzenetet kapni, hanem a rendszer megpróbálja az értéket\n"
+#~ "intervallumként értelmezni."
 
 #~ msgid "Enter the name of the key holder"
-#~ msgstr "Adja meg a kulcs tulajdonosának a nevét!"
+#~ msgstr "Adja meg a kulcs tulajdonosának a nevét!"
 
 #~ msgid "please enter an optional but highly suggested email address"
-#~ msgstr "Kérem, adjon meg egy opcionális, de nagyon ajánlott e-mail címet!"
+#~ msgstr "Kérem, adjon meg egy opcionális, de nagyon ajánlott e-mail címet!"
 
 #~ msgid "Please enter an optional comment"
-#~ msgstr "Kérem, adjon meg egy opcionális megjegyzést!"
+#~ msgstr "Kérem, adjon meg egy opcionális megjegyzést!"
 
 #~ msgid ""
 #~ "N  to change the name.\n"
@@ -9387,17 +9465,17 @@ msgstr ""
 #~ "O  to continue with key generation.\n"
 #~ "Q  to to quit the key generation."
 #~ msgstr ""
-#~ "N  név változtatása\n"
-#~ "M  megjegyzés változtatása\n"
-#~ "E  e-mail változtatása\n"
-#~ "R  kulcsgenerálás folytatása\n"
-#~ "Q  kilépés a kulcsgenerálásból"
+#~ "N  név változtatása\n"
+#~ "M  megjegyzés változtatása\n"
+#~ "E  e-mail változtatása\n"
+#~ "R  kulcsgenerálás folytatása\n"
+#~ "Q  kilépés a kulcsgenerálásból"
 
 #~ msgid ""
 #~ "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
 #~ msgstr ""
-#~ "Válaszoljon \"igen\"-nel (vagy csak \"i\"-vel), ha kezdhetjük az alkulcs\n"
-#~ "létrehozását!"
+#~ "Válaszoljon \"igen\"-nel (vagy csak \"i\"-vel), ha kezdhetjük az alkulcs\n"
+#~ "létrehozását!"
 
 #~ msgid ""
 #~ "When you sign a user ID on a key, you should first verify that the key\n"
@@ -9442,72 +9520,72 @@ msgstr ""
 #~ "\n"
 #~ "If you don't know what the right answer is, answer \"0\"."
 #~ msgstr ""
-#~ "Mielõtt aláír egy felhasználói azonosítót egy kulcson, ellenõriznie "
+#~ "Mielőtt aláír egy felhasználói azonosítót egy kulcson, ellenőriznie "
 #~ "kell,\n"
-#~ "hogy a kulcs a felhasználói azonosítóban megnevezett személyhez "
+#~ "hogy a kulcs a felhasználói azonosítóban megnevezett személyhez "
 #~ "tartozik.\n"
-#~ "Mások számára hasznos lehet, ha tudják, hogy milyen gondosan ellenõrizte\n"
-#~ "Ön ezt.\n"
+#~ "Mások számára hasznos lehet, ha tudják, hogy milyen gondosan ellenőrizte\n"
+#~ "Ön ezt.\n"
 #~ "\n"
-#~ "\"0\" azt jelenti, hogy nem tesz az ellenõrzés gondosságára vonatkozó\n"
-#~ "    kijelentést.\n"
+#~ "\"0\" azt jelenti, hogy nem tesz az ellenőrzés gondosságára vonatkozó\n"
+#~ "    kijelentést.\n"
 #~ "\n"
-#~ "\"1\" azt jelenti, hogy Ön hiszi, hogy a kulcs annak a személynek a\n"
-#~ "    tulajdona, aki azt állítja, hogy az övé, de Ön nem tudta ezt\n"
-#~ "    ellenõrizni, vagy egyszerûen nem ellenõrizte ezt. Ez hasznos egy\n"
-#~ "    \"persona\" típusú ellenõrzéshez, mikor Ön egy pszeudonim "
-#~ "felhasználó\n"
-#~ "    kulcsát írja alá.\n"
+#~ "\"1\" azt jelenti, hogy Ön hiszi, hogy a kulcs annak a személynek a\n"
+#~ "    tulajdona, aki azt állítja, hogy az övé, de Ön nem tudta ezt\n"
+#~ "    ellenőrizni, vagy egyszerűen nem ellenőrizte ezt. Ez hasznos egy\n"
+#~ "    \"persona\" típusú ellenőrzéshez, mikor Ön egy pszeudonim "
+#~ "felhasználó\n"
+#~ "    kulcsát írja alá.\n"
 #~ "\n"
-#~ "\"2\" azt jelenti, hogy Ön a kulcsot hétköznapi alapossággal "
-#~ "ellenõrizte.\n"
-#~ "    Például ez azt jelentheti, hogy ellenõrizte a kulcs ujjlenyomatát, "
-#~ "és\n"
-#~ "    összevetette a kulcson szereplõ felhasználóazonosítót egy fényképes\n"
-#~ "    igazolvánnyal.\n"
+#~ "\"2\" azt jelenti, hogy Ön a kulcsot hétköznapi alapossággal "
+#~ "ellenőrizte.\n"
+#~ "    Például ez azt jelentheti, hogy ellenőrizte a kulcs ujjlenyomatát, "
+#~ "és\n"
+#~ "    összevetette a kulcson szereplő felhasználóazonosítót egy fényképes\n"
+#~ "    igazolvánnyal.\n"
 #~ "\n"
-#~ "\"3\" azt jelenti, hogy alaposan ellenõrizte a kulcsot. Például ez azt\n"
-#~ "    jelentheti, hogy a kulcs ujjlenyomatát a tulajdonossal személyesen\n"
-#~ "    találkozva ellenõrizte, egy nehezen hamisítható, fényképes "
-#~ "igazolvánnyal\n"
-#~ "    (mint az útlevél) meggyõzõdött arról, hogy a személy neve egyezik a\n"
-#~ "    kulcson levõvel, és végül (e-mail váltással) ellenõrizte, hogy a "
+#~ "\"3\" azt jelenti, hogy alaposan ellenőrizte a kulcsot. Például ez azt\n"
+#~ "    jelentheti, hogy a kulcs ujjlenyomatát a tulajdonossal személyesen\n"
+#~ "    találkozva ellenőrizte, egy nehezen hamisítható, fényképes "
+#~ "igazolvánnyal\n"
+#~ "    (mint az útlevél) meggyőződött arról, hogy a személy neve egyezik a\n"
+#~ "    kulcson levővel, és végül (e-mail váltással) ellenőrizte, hogy a "
 #~ "kulcson\n"
-#~ "    szereplõ e-mail cím a kulcs tulajdonosához tartozik.\n"
+#~ "    szereplő e-mail cím a kulcs tulajdonosához tartozik.\n"
 #~ "\n"
-#~ "A 2-es és 3-as szintekhez adott példák *csak* példák. Végsõ soron Ön "
-#~ "dönti\n"
-#~ "el, hogy mit jelentenek Önnek a \"hétköznapi\" és \"alapos\" "
-#~ "kifejezések,\n"
-#~ "amikor mások kulcsát aláírja.\n"
+#~ "A 2-es és 3-as szintekhez adott példák *csak* példák. Végső soron Ön "
+#~ "dönti\n"
+#~ "el, hogy mit jelentenek Önnek a \"hétköznapi\" és \"alapos\" "
+#~ "kifejezések,\n"
+#~ "amikor mások kulcsát aláírja.\n"
 #~ "\n"
-#~ "Ha nem tudja, hogy mit válaszoljon, írjon \"0\"-t!"
+#~ "Ha nem tudja, hogy mit válaszoljon, írjon \"0\"-t!"
 
 #, fuzzy
 #~ msgid "Answer \"yes\" if you want to sign ALL the user IDs"
 #~ msgstr ""
-#~ "Válaszoljon \"igen\"-nel, ha az ÖSSZES felhasználóazonosítót alá akarja "
-#~ "írni!"
+#~ "Válaszoljon \"igen\"-nel, ha az ÖSSZES felhasználóazonosítót alá akarja "
+#~ "írni!"
 
 #~ msgid ""
 #~ "Answer \"yes\" if you really want to delete this user ID.\n"
 #~ "All certificates are then also lost!"
 #~ msgstr ""
-#~ "Válaszoljon \"igen\"-nel, ha valóban törölni akarja ezt a "
-#~ "felhasználóazonosítót!\n"
-#~ "Minden igazolás törlõdik vele együtt!"
+#~ "Válaszoljon \"igen\"-nel, ha valóban törölni akarja ezt a "
+#~ "felhasználóazonosítót!\n"
+#~ "Minden igazolás törlődik vele együtt!"
 
 #~ msgid "Answer \"yes\" if it is okay to delete the subkey"
-#~ msgstr "Válaszoljon \"igen\"-nel, ha az alkulcs törölhetõ."
+#~ msgstr "Válaszoljon \"igen\"-nel, ha az alkulcs törölhető."
 
 #~ msgid ""
 #~ "This is a valid signature on the key; you normally don't want\n"
 #~ "to delete this signature because it may be important to establish a\n"
 #~ "trust connection to the key or another key certified by this key."
 #~ msgstr ""
-#~ "Ez egy érvényes aláírás a kulcson. Normál esetben nincs értelme\n"
-#~ "törölni, mert fontos lehet ahhoz, hogy érvényesítse ezt a kulcsot,\n"
-#~ "vagy egy másikat, melyet ezzel a kulccsal igazolnak."
+#~ "Ez egy érvényes aláírás a kulcson. Normál esetben nincs értelme\n"
+#~ "törölni, mert fontos lehet ahhoz, hogy érvényesítse ezt a kulcsot,\n"
+#~ "vagy egy másikat, melyet ezzel a kulccsal igazolnak."
 
 #~ msgid ""
 #~ "This signature can't be checked because you don't have the\n"
@@ -9515,16 +9593,16 @@ msgstr ""
 #~ "know which key was used because this signing key might establish\n"
 #~ "a trust connection through another already certified key."
 #~ msgstr ""
-#~ "Ezt az aláírást nem tudom ellenõrizni, mert nincs meg a hozzá tartozó\n"
-#~ "kulcs. Ajánlatos lenne elhalasztani a törlést addig, amíg meg nem tudja,\n"
-#~ "hogy melyik kulcsot használták, mert ez az aláíró kulcs bizalmi\n"
-#~ "kapcsolatot hozhat létre egy már hitelesített kulcson keresztül."
+#~ "Ezt az aláírást nem tudom ellenőrizni, mert nincs meg a hozzá tartozó\n"
+#~ "kulcs. Ajánlatos lenne elhalasztani a törlést addig, amíg meg nem tudja,\n"
+#~ "hogy melyik kulcsot használták, mert ez az aláíró kulcs bizalmi\n"
+#~ "kapcsolatot hozhat létre egy már hitelesített kulcson keresztül."
 
 #~ msgid ""
 #~ "The signature is not valid.  It does make sense to remove it from\n"
 #~ "your keyring."
 #~ msgstr ""
-#~ "Ez az aláírás nem érvényes. Értelmetlen eltávolítani a kulcskarikáról."
+#~ "Ez az aláírás nem érvényes. Értelmetlen eltávolítani a kulcskarikáról."
 
 #~ msgid ""
 #~ "This is a signature which binds the user ID to the key. It is\n"
@@ -9533,40 +9611,40 @@ msgstr ""
 #~ "only if this self-signature is for some reason not valid and\n"
 #~ "a second one is available."
 #~ msgstr ""
-#~ "Ez egy olyan aláírás, amely összeköti a felhasználóazonosítót\n"
-#~ "a kulccsal. Általában nem jó ötlet egy ilyen aláírást eltávolítani.\n"
-#~ "Az is lehetséges, hogy a GnuPG többé nem tudja használni ezt\n"
-#~ "a kulcsot. Csak akkor tegye ezt, ha valami okból ez az önaláírás nem\n"
-#~ "érvényes, és rendelkezésre áll egy másik!"
+#~ "Ez egy olyan aláírás, amely összeköti a felhasználóazonosítót\n"
+#~ "a kulccsal. Általában nem jó ötlet egy ilyen aláírást eltávolítani.\n"
+#~ "Az is lehetséges, hogy a GnuPG többé nem tudja használni ezt\n"
+#~ "a kulcsot. Csak akkor tegye ezt, ha valami okból ez az önaláírás nem\n"
+#~ "érvényes, és rendelkezésre áll egy másik!"
 
 #~ msgid ""
 #~ "Change the preferences of all user IDs (or just of the selected ones)\n"
 #~ "to the current list of preferences.  The timestamp of all affected\n"
 #~ "self-signatures will be advanced by one second.\n"
 #~ msgstr ""
-#~ "Lecseréli az összes felhasználóazonosítóhoz (vagy csak a kijelöltekhez)\n"
-#~ "tartozó preferenciákat az aktuális preferenciákra. Minden érintett\n"
-#~ "önaláírás idõpontját egy másodperccel növeli.\n"
+#~ "Lecseréli az összes felhasználóazonosítóhoz (vagy csak a kijelöltekhez)\n"
+#~ "tartozó preferenciákat az aktuális preferenciákra. Minden érintett\n"
+#~ "önaláírás időpontját egy másodperccel növeli.\n"
 
-#~ msgid "Please enter the passhrase; this is a secret sentence \n"
-#~ msgstr "Kérem, adja meg a jelszót! Ezt egy titkos mondat. \n"
+#~ msgid "Please enter the passphrase; this is a secret sentence \n"
+#~ msgstr "Kérem, adja meg a jelszót! Ezt egy titkos mondat. \n"
 
 #~ msgid ""
 #~ "Please repeat the last passphrase, so you are sure what you typed in."
-#~ msgstr "Kérem, ismételje meg az elõzõ jelszót ellenõrzésképpen!"
+#~ msgstr "Kérem, ismételje meg az előző jelszót ellenőrzésképpen!"
 
 #~ msgid "Give the name of the file to which the signature applies"
-#~ msgstr "Adja meg az állomány nevét, melyhez az aláírás tartozik!"
+#~ msgstr "Adja meg az állomány nevét, melyhez az aláírás tartozik!"
 
 #~ msgid "Answer \"yes\" if it is okay to overwrite the file"
-#~ msgstr "Válaszoljon \"igen\"-nel, ha felülírható az állomány!"
+#~ msgstr "Válaszoljon \"igen\"-nel, ha felülírható az állomány!"
 
 #~ msgid ""
 #~ "Please enter a new filename. If you just hit RETURN the default\n"
 #~ "file (which is shown in brackets) will be used."
 #~ msgstr ""
-#~ "Kérem, adjon meg egy új fájlnevet! Ha RETURN-t/ENTER-t nyom, akkor\n"
-#~ "a szögletes zárójelben levõ alapértelmezett nevet használom."
+#~ "Kérem, adjon meg egy új fájlnevet! Ha RETURN-t/ENTER-t nyom, akkor\n"
+#~ "a szögletes zárójelben levő alapértelmezett nevet használom."
 
 #~ msgid ""
 #~ "You should specify a reason for the certification.  Depending on the\n"
@@ -9582,41 +9660,41 @@ msgstr ""
 #~ "      Use this to state that the user ID should not longer be used;\n"
 #~ "      this is normally used to mark an email address invalid.\n"
 #~ msgstr ""
-#~ "Ajánlatos megadni a visszavonás okát. A helyzettõl függõen válasszon\n"
-#~ "a következõ listából:\n"
-#~ "  \"A kulcs kompromittálódott.\"\n"
-#~ "      Használja ezt akkor, ha oka van azt hinni, hogy titkos kulcsa\n"
-#~ "      illetéktelen kezekbe került!\n"
-#~ "  \"A kulcsot lecserélték.\"\n"
-#~ "      Használja ezt akkor, ha a kulcsot lecserélte egy újabbra!\n"
-#~ "  \"A kulcs már nem használatos.\"\n"
-#~ "      Használja ezt akkor, ha már nem használja a kulcsot!\n"
-#~ "  \"A felhasználóazonosító már nem érvényes.\"\n"
-#~ "      Használja ezt akkor, ha azt állítja, hogy a felhasználóazonosító\n"
-#~ "      már nem használatos! Általában érvénytelen e-mail címet jelent.\n"
+#~ "Ajánlatos megadni a visszavonás okát. A helyzettől függően válasszon\n"
+#~ "a következő listából:\n"
+#~ "  \"A kulcs kompromittálódott.\"\n"
+#~ "      Használja ezt akkor, ha oka van azt hinni, hogy titkos kulcsa\n"
+#~ "      illetéktelen kezekbe került!\n"
+#~ "  \"A kulcsot lecserélték.\"\n"
+#~ "      Használja ezt akkor, ha a kulcsot lecserélte egy újabbra!\n"
+#~ "  \"A kulcs már nem használatos.\"\n"
+#~ "      Használja ezt akkor, ha már nem használja a kulcsot!\n"
+#~ "  \"A felhasználóazonosító már nem érvényes.\"\n"
+#~ "      Használja ezt akkor, ha azt állítja, hogy a felhasználóazonosító\n"
+#~ "      már nem használatos! Általában érvénytelen e-mail címet jelent.\n"
 
 #~ msgid ""
 #~ "If you like, you can enter a text describing why you issue this\n"
 #~ "revocation certificate.  Please keep this text concise.\n"
 #~ "An empty line ends the text.\n"
 #~ msgstr ""
-#~ "Ha akarja, megadhat egy szöveget, melyben megindokolja, hogy miért\n"
-#~ "adta ki ezt a visszavonó igazolást. Kérem, fogalmazzon tömören!\n"
-#~ "Egy üres sor jelzi a szöveg végét.\n"
+#~ "Ha akarja, megadhat egy szöveget, melyben megindokolja, hogy miért\n"
+#~ "adta ki ezt a visszavonó igazolást. Kérem, fogalmazzon tömören!\n"
+#~ "Egy üres sor jelzi a szöveg végét.\n"
 
 #~ msgid "can't put notation data into v3 (PGP 2.x style) signatures\n"
-#~ msgstr "Nem tehet jelölõadatot a v3-as (PGP 2.x stílusú) aláírásokba!\n"
+#~ msgstr "Nem tehet jelölőadatot a v3-as (PGP 2.x stílusú) aláírásokba!\n"
 
 #~ msgid "can't put notation data into v3 (PGP 2.x style) key signatures\n"
 #~ msgstr ""
-#~ "Nem tehet jelölõadatot a v3-as (PGP 2.x stílusú) kulcsaláírásokba!\n"
+#~ "Nem tehet jelölőadatot a v3-as (PGP 2.x stílusú) kulcsaláírásokba!\n"
 
 #~ msgid "can't put a policy URL into v3 (PGP 2.x style) signatures\n"
-#~ msgstr "Nem tehet eljárásmód-URL-t a v3-as (PGP 2.x stílusú) aláírásokba!\n"
+#~ msgstr "Nem tehet eljárásmód-URL-t a v3-as (PGP 2.x stílusú) aláírásokba!\n"
 
 #~ msgid "can't put a policy URL into v3 key (PGP 2.x style) signatures\n"
 #~ msgstr ""
-#~ "Nem tehet eljárásmód-URL-t a v3-as (PGP 2.x stílusú) kulcsaláírásokba!\n"
+#~ "Nem tehet eljárásmód-URL-t a v3-as (PGP 2.x stílusú) kulcsaláírásokba!\n"
 
 #, fuzzy
 #~ msgid "shelll"
@@ -9626,72 +9704,72 @@ msgstr ""
 #~ msgid ""
 #~ "please see http://www.gnupg.org/download/iconv.html for more information\n"
 #~ msgstr ""
-#~ "További információ a http://www.gnupg.org/faq.html címen található.\n"
+#~ "További információ a http://www.gnupg.org/faq.html címen található.\n"
 
 #, fuzzy
 #~ msgid "key generation is not available from the commandline\n"
-#~ msgstr "GPG ügynök nem elérhetõ ebben a munkafolyamatban.\n"
+#~ msgstr "GPG ügynök nem elérhető ebben a munkafolyamatban.\n"
 
 #, fuzzy
 #~ msgid "please use the script \"%s\" to generate a new key\n"
-#~ msgstr "Kérem, adja meg, milyen kulcsot kíván:\n"
+#~ msgstr "Kérem, adja meg, milyen kulcsot kíván:\n"
 
 #, fuzzy
 #~ msgid "cipher extension `%s' not loaded due to unsafe permissions\n"
-#~ msgstr "A \"%s\" rejtjelezõ bõvítést rossz engedélyek miatt töltöm be.\n"
+#~ msgstr "A \"%s\" rejtjelező bővítést rossz engedélyek miatt töltöm be.\n"
 
 #, fuzzy
 #~ msgid ".\n"
 #~ msgstr "%s.\n"
 
 #~ msgid "problem with the agent - disabling agent use\n"
-#~ msgstr "Probléma van az ügynökkel. Letiltom a használatát.\n"
+#~ msgstr "Probléma van az ügynökkel. Letiltom a használatát.\n"
 
 #, fuzzy
 #~ msgid "can't query passphrase in batch mode\n"
-#~ msgstr "Nem tudok jelszót bekérni kötegelt módban!\n"
+#~ msgstr "Nem tudok jelszót bekérni kötegelt módban!\n"
 
 #~ msgid "Repeat passphrase: "
-#~ msgstr "Ismételje meg a jelszót: "
+#~ msgstr "Ismételje meg a jelszót: "
 
 #~ msgid "-k[v][v][v][c] [user-id] [keyring]"
-#~ msgstr "-k[v][v][v][c] [felh-azonosító] [kulcskarika]"
+#~ msgstr "-k[v][v][v][c] [felh-azonosító] [kulcskarika]"
 
 #, fuzzy
 #~ msgid "can't gen prime with pbits=%u qbits=%u\n"
-#~ msgstr "Nem tudok létrehozni %d bitesnél kisebb prímszámot.\n"
+#~ msgstr "Nem tudok létrehozni %d bitesnél kisebb prímszámot.\n"
 
 #~ msgid "can't generate a prime with less than %d bits\n"
-#~ msgstr "Nem tudok létrehozni %d bitesnél kisebb prímszámot.\n"
+#~ msgstr "Nem tudok létrehozni %d bitesnél kisebb prímszámot.\n"
 
 #~ msgid "no entropy gathering module detected\n"
-#~ msgstr "Nem észleltem entrópiagyûjtõ modult.\n"
+#~ msgstr "Nem észleltem entrópiagyűjtő modult.\n"
 
 #, fuzzy
 #~ msgid "can't lock `%s': %s\n"
 #~ msgstr "Nem tudom megnyitni %s-t!\n"
 
 #~ msgid "`%s' is not a regular file - ignored\n"
-#~ msgstr "\"%s\" nem szabályos állomány. Figyelmen kívül hagyom.\n"
+#~ msgstr "\"%s\" nem szabályos állomány. Figyelmen kívül hagyom.\n"
 
 #~ msgid "note: random_seed file is empty\n"
 #~ msgstr ""
-#~ "Megjegyzés: random_seed állomány (véletlenszám-generátor állapota) üres.\n"
+#~ "Megjegyzés: random_seed állomány (véletlenszám-generátor állapota) üres.\n"
 
 #~ msgid "can't read `%s': %s\n"
-#~ msgstr "Nem tudom olvasni a(z) \"%s\" állományt: %s.\n"
+#~ msgstr "Nem tudom olvasni a(z) \"%s\" állományt: %s.\n"
 
 #~ msgid "note: random_seed file not updated\n"
-#~ msgstr "Megjegyzés: random_seed állományt nem frissítettem.\n"
+#~ msgstr "Megjegyzés: random_seed állományt nem frissítettem.\n"
 
 #~ msgid "can't write `%s': %s\n"
-#~ msgstr "Nem tudom írni a(z) \"%s\" állományt: %s.\n"
+#~ msgstr "Nem tudom írni a(z) \"%s\" állományt: %s.\n"
 
 #~ msgid "can't close `%s': %s\n"
-#~ msgstr "Nem tudom bezárni a(z) \"%s\" állományt: %s.\n"
+#~ msgstr "Nem tudom bezárni a(z) \"%s\" állományt: %s.\n"
 
 #~ msgid "WARNING: using insecure random number generator!!\n"
-#~ msgstr "FIGYELEM: Nem biztonságos véletlenszám-generátort használok!!!\n"
+#~ msgstr "FIGYELEM: Nem biztonságos véletlenszám-generátort használok!!!\n"
 
 #~ msgid ""
 #~ "The random number generator is only a kludge to let\n"
@@ -9700,10 +9778,10 @@ msgstr ""
 #~ "DON'T USE ANY DATA GENERATED BY THIS PROGRAM!!\n"
 #~ "\n"
 #~ msgstr ""
-#~ "A véletlenszám-generátor csak egy szükségmegoldás, hogy a program\n"
-#~ "elinduljon, semmiképpen nem egy erõs véletlenszám-generátor!\n"
+#~ "A véletlenszám-generátor csak egy szükségmegoldás, hogy a program\n"
+#~ "elinduljon, semmiképpen nem egy erős véletlenszám-generátor!\n"
 #~ "\n"
-#~ "NE HASZNÁLJON SEMMILYEN ADATOT, AMIT EZ A PROGRAM ELÕÁLLÍT!\n"
+#~ "NE HASZNÁLJON SEMMILYEN ADATOT, AMIT EZ A PROGRAM ELŐÁLLÍT!\n"
 #~ "\n"
 
 #~ msgid ""
@@ -9711,8 +9789,8 @@ msgstr ""
 #~ "keep you from getting bored, because it will improve the quality\n"
 #~ "of the entropy.\n"
 #~ msgstr ""
-#~ "Kérem, várjon, entrópiát gyûjtök! Vagy inkább csináljon közben valamit\n"
-#~ "a gépen, az az entrópiám minõségét is javítani fogja!\n"
+#~ "Kérem, várjon, entrópiát gyűjtök! Vagy inkább csináljon közben valamit\n"
+#~ "a gépen, az az entrópiám minőségét is javítani fogja!\n"
 
 #~ msgid ""
 #~ "\n"
@@ -9720,114 +9798,114 @@ msgstr ""
 #~ "the OS a chance to collect more entropy! (Need %d more bytes)\n"
 #~ msgstr ""
 #~ "\n"
-#~ "Nem áll rendelkezésre elég véletlen bájt. Kérem, csináljon most valami\n"
-#~ "mást, hogy az operációs rendszer entrópiát gyûjthessen!\n"
-#~ "(Még %d bájt szükséges.)\n"
+#~ "Nem áll rendelkezésre elég véletlen bájt. Kérem, csináljon most valami\n"
+#~ "mást, hogy az operációs rendszer entrópiát gyűjthessen!\n"
+#~ "(Még %d bájt szükséges.)\n"
 
 #, fuzzy
 #~ msgid "card reader not available\n"
-#~ msgstr "titkos kulcs nem áll rendelkezésre"
+#~ msgstr "titkos kulcs nem áll rendelkezésre"
 
 #, fuzzy
 #~ msgid "NOTE: %s is not available in this version\n"
-#~ msgstr "GPG ügynök nem elérhetõ ebben a munkafolyamatban.\n"
+#~ msgstr "GPG ügynök nem elérhető ebben a munkafolyamatban.\n"
 
 #, fuzzy
 #~ msgid "         algorithms on these user IDs:\n"
-#~ msgstr "Ön aláírta a következõ felhasználóazonosítókat:\n"
+#~ msgstr "Ön aláírta a következő felhasználóazonosítókat:\n"
 
 #~ msgid "general error"
-#~ msgstr "általános hiba"
+#~ msgstr "általános hiba"
 
 #~ msgid "unknown packet type"
-#~ msgstr "ismeretlen csomagtípus"
+#~ msgstr "ismeretlen csomagtípus"
 
 #~ msgid "unknown digest algorithm"
-#~ msgstr "ismeretlen kivonatoló algoritmus"
+#~ msgstr "ismeretlen kivonatoló algoritmus"
 
 #~ msgid "bad public key"
-#~ msgstr "rossz nyilvános kulcs"
+#~ msgstr "rossz nyilvános kulcs"
 
 #~ msgid "bad secret key"
 #~ msgstr "rossz titkos kulcs"
 
 #~ msgid "bad signature"
-#~ msgstr "rossz aláírás"
+#~ msgstr "rossz aláírás"
 
 #~ msgid "checksum error"
-#~ msgstr "hibás ellenõrzõösszeg"
+#~ msgstr "hibás ellenőrzőösszeg"
 
 #~ msgid "unknown cipher algorithm"
-#~ msgstr "ismeretlen rejtjelezõ algoritmus"
+#~ msgstr "ismeretlen rejtjelező algoritmus"
 
 #~ msgid "invalid packet"
-#~ msgstr "érvénytelen csomag"
+#~ msgstr "érvénytelen csomag"
 
 #~ msgid "no such user id"
-#~ msgstr "nincs ilyen felhasználói azonosító"
+#~ msgstr "nincs ilyen felhasználói azonosító"
 
 #~ msgid "secret key not available"
-#~ msgstr "titkos kulcs nem áll rendelkezésre"
+#~ msgstr "titkos kulcs nem áll rendelkezésre"
 
 #~ msgid "wrong secret key used"
-#~ msgstr "rossz titkos kulcs használata"
+#~ msgstr "rossz titkos kulcs használata"
 
 #~ msgid "bad key"
 #~ msgstr "rossz kulcs"
 
 #~ msgid "file write error"
-#~ msgstr "állományírási hiba"
+#~ msgstr "állományírási hiba"
 
 #~ msgid "unknown compress algorithm"
-#~ msgstr "ismeretlen tömörítõ algoritmus"
+#~ msgstr "ismeretlen tömörítő algoritmus"
 
 #~ msgid "file open error"
-#~ msgstr "állománymegnyitási hiba"
+#~ msgstr "állománymegnyitási hiba"
 
 #~ msgid "file create error"
-#~ msgstr "állománylétrehozási hiba"
+#~ msgstr "állománylétrehozási hiba"
 
 #~ msgid "unimplemented pubkey algorithm"
-#~ msgstr "nem megvalósított nyilvános kulcsú algoritmus"
+#~ msgstr "nem megvalósított nyilvános kulcsú algoritmus"
 
 #~ msgid "unimplemented cipher algorithm"
-#~ msgstr "nem megvalósított rejtjelezõ algoritmus"
+#~ msgstr "nem megvalósított rejtjelező algoritmus"
 
 #~ msgid "unknown signature class"
-#~ msgstr "ismeretlen aláírásosztály"
+#~ msgstr "ismeretlen aláírásosztály"
 
 #~ msgid "trust database error"
-#~ msgstr "hibás bizalmi adatbázis"
+#~ msgstr "hibás bizalmi adatbázis"
 
 #~ msgid "resource limit"
-#~ msgstr "erõforráshatár"
+#~ msgstr "erőforráshatár"
 
 #~ msgid "invalid keyring"
-#~ msgstr "érvénytelen kulcskarika"
+#~ msgstr "érvénytelen kulcskarika"
 
 #~ msgid "malformed user id"
-#~ msgstr "rossz formájú felhasználói azonosító"
+#~ msgstr "rossz formájú felhasználói azonosító"
 
 #~ msgid "file close error"
-#~ msgstr "állományzárási hiba"
+#~ msgstr "állományzárási hiba"
 
 #~ msgid "file rename error"
-#~ msgstr "állományátnevezési hiba"
+#~ msgstr "állományátnevezési hiba"
 
 #~ msgid "file delete error"
-#~ msgstr "állománytörlési hiba"
+#~ msgstr "állománytörlési hiba"
 
 #~ msgid "unexpected data"
-#~ msgstr "nem várt adat"
+#~ msgstr "nem várt adat"
 
 #~ msgid "timestamp conflict"
-#~ msgstr "idõbélyeg-konfliktus"
+#~ msgstr "időbélyeg-konfliktus"
 
 #~ msgid "unusable pubkey algorithm"
-#~ msgstr "használhatatlan nyilvános kulcsú algoritmus"
+#~ msgstr "használhatatlan nyilvános kulcsú algoritmus"
 
 #~ msgid "file exists"
-#~ msgstr "állomány létezik"
+#~ msgstr "állomány létezik"
 
 #~ msgid "weak key"
 #~ msgstr "gyenge kulcs"
@@ -9835,119 +9913,116 @@ msgstr ""
 #~ msgid "bad URI"
 #~ msgstr "rossz URI"
 
-#~ msgid "network error"
-#~ msgstr "hálózati hiba"
-
 #~ msgid "not processed"
 #~ msgstr "nem feldolgozott"
 
 #~ msgid "unusable public key"
-#~ msgstr "használhatatlan nyilvános kulcs"
+#~ msgstr "használhatatlan nyilvános kulcs"
 
 #~ msgid "unusable secret key"
-#~ msgstr "használhatatlan titkos kulcs"
+#~ msgstr "használhatatlan titkos kulcs"
 
 #~ msgid "keyserver error"
 #~ msgstr "kulcsszerverhiba"
 
 #, fuzzy
 #~ msgid "no card"
-#~ msgstr "nem titkosított"
+#~ msgstr "nem titkosított"
 
 #, fuzzy
 #~ msgid "no data"
-#~ msgstr "Nincs aláírt adat.\n"
+#~ msgstr "Nincs aláírt adat.\n"
 
 #~ msgid "... this is a bug (%s:%d:%s)\n"
 #~ msgstr "Ez egy programhiba... (%s:%d:%s)\n"
 
 #~ msgid "operation is not possible without initialized secure memory\n"
-#~ msgstr "A mûvelet nem lehetséges biztonságos memória nélkül.\n"
+#~ msgstr "A művelet nem lehetséges biztonságos memória nélkül.\n"
 
 #~ msgid "(you may have used the wrong program for this task)\n"
-#~ msgstr "(Lehet, hogy nem a megfelelõ programot használja a feladatra.)\n"
+#~ msgstr "(Lehet, hogy nem a megfelelő programot használja a feladatra.)\n"
 
 #~ msgid ""
 #~ "please see http://www.gnupg.org/why-not-idea.html for more information\n"
 #~ msgstr ""
-#~ "További információt a http://www.gnupg.org/why-not-idea.html oldalon "
-#~ "talál.\n"
+#~ "További információt a http://www.gnupg.org/why-not-idea.html oldalon "
+#~ "talál.\n"
 
 #, fuzzy
 #~ msgid "all export-clean-* options from above"
-#~ msgstr "opciók beolvasása állományból"
+#~ msgstr "opciók beolvasása állományból"
 
 #, fuzzy
 #~ msgid "all import-clean-* options from above"
-#~ msgstr "opciók beolvasása állományból"
+#~ msgstr "opciók beolvasása állományból"
 
 #, fuzzy
 #~ msgid "expired: %s)"
-#~ msgstr " [lejár: %s]"
+#~ msgstr " [lejár: %s]"
 
 #, fuzzy
 #~ msgid "key %s: expired signature from key %s - skipped\n"
-#~ msgstr "%08lX kulcs: Váratlan aláírásosztály (0x%02X) - kihagytam.\n"
+#~ msgstr "%08lX kulcs: Váratlan aláírásosztály (0x%02X) - kihagytam.\n"
 
 #, fuzzy
 #~ msgid "Unable to clean `%s'\n"
-#~ msgstr "Nem tudom végrehajtani a következõ \"%s\"-t: \"%s\": %s.\n"
+#~ msgstr "Nem tudom végrehajtani a következő \"%s\"-t: \"%s\": %s.\n"
 
 #, fuzzy
 #~ msgid "No user IDs are removable.\n"
-#~ msgstr "\"%s\" felhasználói azonosítót már visszavonták.\n"
+#~ msgstr "\"%s\" felhasználói azonosítót már visszavonták.\n"
 
 #~ msgid "bad passphrase or unknown cipher algorithm (%d)\n"
-#~ msgstr "Rossz jelszó vagy ismeretlen rejtjelezõ algoritmus (%d).\n"
+#~ msgstr "Rossz jelszó vagy ismeretlen rejtjelező algoritmus (%d).\n"
 
 #~ msgid "can't set client pid for the agent\n"
-#~ msgstr "Nem tudom beállítani a kliens pid-et az ügynöknek.\n"
+#~ msgstr "Nem tudom beállítani a kliens pid-et az ügynöknek.\n"
 
 #~ msgid "can't get server read FD for the agent\n"
 #~ msgstr ""
-#~ "Nem tudom lekérni a szerver olvasási állományleíróját az ügynöknek.\n"
+#~ "Nem tudom lekérni a szerver olvasási állományleíróját az ügynöknek.\n"
 
 #~ msgid "can't get server write FD for the agent\n"
-#~ msgstr "Nem tudom lekérni a szerver írási állományleíróját az ügynöknek.\n"
+#~ msgstr "Nem tudom lekérni a szerver írási állományleíróját az ügynöknek.\n"
 
 #~ msgid "select secondary key N"
-#~ msgstr "N. másodlagos kulcs kiválasztása"
+#~ msgstr "N. másodlagos kulcs kiválasztása"
 
 #~ msgid "list signatures"
-#~ msgstr "aláírások kilistázása"
+#~ msgstr "aláírások kilistázása"
 
 #~ msgid "sign the key"
-#~ msgstr "kulcs aláírása"
+#~ msgstr "kulcs aláírása"
 
 #~ msgid "add a secondary key"
-#~ msgstr "másodlagos kulcs (alkulcs) hozzáadása"
+#~ msgstr "másodlagos kulcs (alkulcs) hozzáadása"
 
 #~ msgid "delete signatures"
-#~ msgstr "aláírások törlése"
+#~ msgstr "aláírások törlése"
 
 #~ msgid "change the expire date"
-#~ msgstr "lejárat megváltoztatása"
+#~ msgstr "lejárat megváltoztatása"
 
 #~ msgid "set preference list"
-#~ msgstr "preferencialista beállítása"
+#~ msgstr "preferencialista beállítása"
 
 #~ msgid "updated preferences"
-#~ msgstr "preferenciák frissítése"
+#~ msgstr "preferenciák frissítése"
 
 #~ msgid "No secondary key with index %d\n"
-#~ msgstr "Nincs %d indexû másodlagos kulcs!\n"
+#~ msgstr "Nincs %d indexű másodlagos kulcs!\n"
 
 #~ msgid "--nrsign-key user-id"
-#~ msgstr "--nrsign-key felh-azonosító"
+#~ msgstr "--nrsign-key felh-azonosító"
 
 #~ msgid "--nrlsign-key user-id"
-#~ msgstr "--nrlsign-key felh-azonosító"
+#~ msgstr "--nrlsign-key felh-azonosító"
 
 #~ msgid "sign the key non-revocably"
-#~ msgstr "kulcs nem visszavonható aláírása"
+#~ msgstr "kulcs nem visszavonható aláírása"
 
 #~ msgid "sign the key locally and non-revocably"
-#~ msgstr "kulcs nem visszavonható helyi aláírása"
+#~ msgstr "kulcs nem visszavonható helyi aláírása"
 
 #~ msgid "q"
 #~ msgstr "q"
@@ -9979,7 +10054,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "generate"
-#~ msgstr "általános hiba"
+#~ msgstr "általános hiba"
 
 #~ msgid "passwd"
 #~ msgstr "passwd"
@@ -10093,7 +10168,7 @@ msgstr ""
 #~ msgstr "showphoto"
 
 #~ msgid "digest algorithm `%s' is read-only in this release\n"
-#~ msgstr "\"%s\" kivonatoló algoritmus csak olvasható ebben a kiadásban\n"
+#~ msgstr "\"%s\" kivonatoló algoritmus csak olvasható ebben a kiadásban\n"
 
 #~ msgid ""
 #~ "About to generate a new %s keypair.\n"
@@ -10101,56 +10176,56 @@ msgstr ""
 #~ "              default keysize is 1024 bits\n"
 #~ "    highest suggested keysize is 2048 bits\n"
 #~ msgstr ""
-#~ "Most egy új %s kulcspárt hozunk létre.\n"
-#~ "           minimális kulcsméret:  768 bit\n"
-#~ "     alapértelmezett kulcsméret: 1024 bit\n"
-#~ " legnagyobb ajánlott kulcsméret: 2048 bit\n"
+#~ "Most egy új %s kulcspárt hozunk létre.\n"
+#~ "           minimális kulcsméret:  768 bit\n"
+#~ "     alapértelmezett kulcsméret: 1024 bit\n"
+#~ " legnagyobb ajánlott kulcsméret: 2048 bit\n"
 
 #~ msgid "DSA only allows keysizes from 512 to 1024\n"
-#~ msgstr "A DSA csak 512 és 1024 közötti kulcsméretet támogat.\n"
+#~ msgstr "A DSA csak 512 és 1024 közötti kulcsméretet támogat.\n"
 
 #~ msgid "keysize too small; 1024 is smallest value allowed for RSA.\n"
-#~ msgstr "Kulcsméret túl kicsi; 1024 a legkisebb megengedett érték RSA-hoz.\n"
+#~ msgstr "Kulcsméret túl kicsi; 1024 a legkisebb megengedett érték RSA-hoz.\n"
 
 #~ msgid "keysize too small; 768 is smallest value allowed.\n"
-#~ msgstr "Kulcsméret túl kicsi; 768 a legkisebb megengedett érték.\n"
+#~ msgstr "Kulcsméret túl kicsi; 768 a legkisebb megengedett érték.\n"
 
 #~ msgid "keysize too large; %d is largest value allowed.\n"
-#~ msgstr "Kulcsméret túl nagy; %d a legnagyobb megengedett érték.\n"
+#~ msgstr "Kulcsméret túl nagy; %d a legnagyobb megengedett érték.\n"
 
 #~ msgid ""
 #~ "Keysizes larger than 2048 are not suggested because\n"
 #~ "computations take REALLY long!\n"
 #~ msgstr ""
-#~ "2048-nál nagyobb kulcsméret nem ajánlott, mert a számítások\n"
-#~ "NAGYON sokáig fognak tartani!\n"
+#~ "2048-nál nagyobb kulcsméret nem ajánlott, mert a számítások\n"
+#~ "NAGYON sokáig fognak tartani!\n"
 
 #, fuzzy
 #~ msgid "Are you sure that you want this keysize? (y/N) "
-#~ msgstr "Biztos benne, hogy akarja ezt a kulcsméretet? "
+#~ msgstr "Biztos benne, hogy akarja ezt a kulcsméretet? "
 
 #~ msgid ""
 #~ "Okay, but keep in mind that your monitor and keyboard radiation is also "
 #~ "very vulnerable to attacks!\n"
 #~ msgstr ""
-#~ "Rendben, de vegye figyelembe, hogy a támadók a monitorának vagy\n"
-#~ "a billentyûzetének a sugárzását is felhasználhatják!\n"
+#~ "Rendben, de vegye figyelembe, hogy a támadók a monitorának vagy\n"
+#~ "a billentyűzetének a sugárzását is felhasználhatják!\n"
 
 #~ msgid "Experimental algorithms should not be used!\n"
-#~ msgstr "Nem szabadna kísérleti algoritmusokat használni!\n"
+#~ msgstr "Nem szabadna kísérleti algoritmusokat használni!\n"
 
 #~ msgid ""
 #~ "this cipher algorithm is deprecated; please use a more standard one!\n"
 #~ msgstr ""
-#~ "Ez a rejtjelezõ algoritmus nem ajánlott. Kérem, használjon "
-#~ "szabványosabbat!\n"
+#~ "Ez a rejtjelező algoritmus nem ajánlott. Kérem, használjon "
+#~ "szabványosabbat!\n"
 
 #~ msgid "sorry, can't do this in batch mode\n"
-#~ msgstr "Sajnálom, ezt nem tudom megcsinálni kötegelt módban!\n"
+#~ msgstr "Sajnálom, ezt nem tudom megcsinálni kötegelt módban!\n"
 
 #, fuzzy
 #~ msgid "can't open file `%s': %s\n"
-#~ msgstr "Nem tudom megnyitni az állományt: %s.\n"
+#~ msgstr "Nem tudom megnyitni az állományt: %s.\n"
 
 #~ msgid "key %08lX: key has been revoked!\n"
 #~ msgstr "%08lX kulcs vissza lett vonva!\n"
@@ -10159,40 +10234,40 @@ msgstr ""
 #~ msgstr "%08lX alkulcs vissza lett vonva!\n"
 
 #~ msgid "%08lX: key has expired\n"
-#~ msgstr "%08lX kulcs lejárt!\n"
+#~ msgstr "%08lX kulcs lejárt!\n"
 
 #~ msgid "%08lX: We do NOT trust this key\n"
-#~ msgstr "%08lX: Ebben a kulcsban NEM bízunk.\n"
+#~ msgstr "%08lX: Ebben a kulcsban NEM bízunk.\n"
 
 #, fuzzy
 #~ msgid "   (%d) RSA (auth only)\n"
-#~ msgstr "   (%d) RSA (csak aláírás)\n"
+#~ msgstr "   (%d) RSA (csak aláírás)\n"
 
 #, fuzzy
 #~ msgid "   (%d) RSA (sign and auth)\n"
-#~ msgstr "   (%d) RSA (aláírás és titkosítás)\n"
+#~ msgstr "   (%d) RSA (aláírás és titkosítás)\n"
 
 #, fuzzy
 #~ msgid "   (%d) RSA (encrypt and auth)\n"
-#~ msgstr "   (%d) RSA (csak titkosítás)\n"
+#~ msgstr "   (%d) RSA (csak titkosítás)\n"
 
 #, fuzzy
 #~ msgid "  (%d) RSA (sign, encrypt and auth)\n"
-#~ msgstr "   (%d) RSA (aláírás és titkosítás)\n"
+#~ msgstr "   (%d) RSA (aláírás és titkosítás)\n"
 
 #~ msgid "%s: can't open: %s\n"
 #~ msgstr "%s-t nem tudom megnyitni: %s.\n"
 
 #~ msgid "%s: WARNING: empty file\n"
-#~ msgstr "FIGYELEM: \"%s\" üres állomány.\n"
+#~ msgstr "FIGYELEM: \"%s\" üres állomány.\n"
 
 #, fuzzy
 #~ msgid "   (%d) I trust marginally\n"
-#~ msgstr " %d = részlegesen megbízom benne\n"
+#~ msgstr " %d = részlegesen megbízom benne\n"
 
 #, fuzzy
 #~ msgid "   (%d) I trust fully\n"
-#~ msgstr " %d = teljesen megbízom benne\n"
+#~ msgstr " %d = teljesen megbízom benne\n"
 
 #, fuzzy
 #~ msgid "expires"
@@ -10204,48 +10279,48 @@ msgstr ""
 #~ "locally signed with your key %s at %s\n"
 #~ msgstr ""
 #~ "\"\n"
-#~ "Helyileg aláírva az Ön %08lX kulcsával %s idõpontban.\n"
+#~ "Helyileg aláírva az Ön %08lX kulcsával %s időpontban.\n"
 
 #~ msgid "%s: can't create lock\n"
-#~ msgstr "%s: Nem tudok lock-ot létrehozni.\n"
+#~ msgstr "%s: Nem tudok lock-ot létrehozni.\n"
 
 #~ msgid "%s: can't make lock\n"
-#~ msgstr "%s: Nem tudok lock-ot csinálni.\n"
+#~ msgstr "%s: Nem tudok lock-ot csinálni.\n"
 
 #~ msgid "%s: can't create: %s\n"
-#~ msgstr "%s: Nem tudom létrehozni: %s.\n"
+#~ msgstr "%s: Nem tudom létrehozni: %s.\n"
 
 #~ msgid "If you want to use this revoked key anyway, answer \"yes\"."
 #~ msgstr ""
-#~ "Ha mégis használni akarja ezt a visszavont kulcsot,\n"
-#~ "válaszoljon \"igen\"-nel!"
+#~ "Ha mégis használni akarja ezt a visszavont kulcsot,\n"
+#~ "válaszoljon \"igen\"-nel!"
 
 #~ msgid "Unable to open photo \"%s\": %s\n"
-#~ msgstr "Nem tudom megnyitni a \"%s\" fotót: %s.\n"
+#~ msgstr "Nem tudom megnyitni a \"%s\" fotót: %s.\n"
 
 #~ msgid "error: missing colon\n"
-#~ msgstr "Hiba: Hiányzó kettõspont.\n"
+#~ msgstr "Hiba: Hiányzó kettőspont.\n"
 
 #~ msgid "error: no ownertrust value\n"
-#~ msgstr "Hiba: Nincs tulajdonosmegbízhatósági érték.\n"
+#~ msgstr "Hiba: Nincs tulajdonosmegbízhatósági érték.\n"
 
 #~ msgid " (main key ID %08lX)"
 #~ msgstr ""
 #~ " \n"
-#~ "  (fõ kulcsazonosító: %08lX)"
+#~ "  (fő kulcsazonosító: %08lX)"
 
 #~ msgid "rev! subkey has been revoked: %s\n"
-#~ msgstr "rev! Alkulcsot visszavonták: %s.\n"
+#~ msgstr "rev! Alkulcsot visszavonták: %s.\n"
 
 #~ msgid "rev- faked revocation found\n"
-#~ msgstr "rev- Hamis visszavonást találtam!\n"
+#~ msgstr "rev- Hamis visszavonást találtam!\n"
 
 #, fuzzy
 #~ msgid " [expired: %s]"
-#~ msgstr " [lejár: %s]"
+#~ msgstr " [lejár: %s]"
 
 #~ msgid " [expires: %s]"
-#~ msgstr " [lejár: %s]"
+#~ msgstr " [lejár: %s]"
 
 #, fuzzy
 #~ msgid " [revoked: %s]"
@@ -10254,102 +10329,102 @@ msgstr ""
 #~ msgid ""
 #~ "WARNING: digest `%s' is not part of OpenPGP.  Use at your own risk!\n"
 #~ msgstr ""
-#~ "FIGYELEM: \"%s\" kivonatoló algoritmus nem része az OpenPGP-nek. Csak "
-#~ "saját felelõsségére használja!\n"
+#~ "FIGYELEM: \"%s\" kivonatoló algoritmus nem része az OpenPGP-nek. Csak "
+#~ "saját felelősségére használja!\n"
 
 #~ msgid "|[files]|encrypt files"
-#~ msgstr "|[fájlok]|állományok titkosítása"
+#~ msgstr "|[fájlok]|állományok titkosítása"
 
 #~ msgid "store only"
-#~ msgstr "csak tárolás"
+#~ msgstr "csak tárolás"
 
 #~ msgid "|[files]|decrypt files"
-#~ msgstr "|[fájlok]|állományok visszafejtése"
+#~ msgstr "|[fájlok]|állományok visszafejtése"
 
 #~ msgid "sign a key non-revocably"
-#~ msgstr "kulcs aláírása visszavonhatatlanul"
+#~ msgstr "kulcs aláírása visszavonhatatlanul"
 
 #~ msgid "sign a key locally and non-revocably"
-#~ msgstr "kulcs aláírása helyileg és visszavonhatatlanul"
+#~ msgstr "kulcs aláírása helyileg és visszavonhatatlanul"
 
 #~ msgid "list only the sequence of packets"
-#~ msgstr "csak a csomagok listázása"
+#~ msgstr "csak a csomagok listázása"
 
 #~ msgid "export the ownertrust values"
-#~ msgstr "bizalmi értékek exportja"
+#~ msgstr "bizalmi értékek exportja"
 
 #~ msgid "unattended trust database update"
-#~ msgstr "bizalmi adatbázis frissítése felügyelet nélkül"
+#~ msgstr "bizalmi adatbázis frissítése felügyelet nélkül"
 
 #~ msgid "fix a corrupted trust database"
-#~ msgstr "sérült bizalmi adatbázis kijavítása"
+#~ msgstr "sérült bizalmi adatbázis kijavítása"
 
 #~ msgid "De-Armor a file or stdin"
-#~ msgstr "páncél eltávolítása állományról vagy bemenetrõl"
+#~ msgstr "páncél eltávolítása állományról vagy bemenetről"
 
 #~ msgid "En-Armor a file or stdin"
-#~ msgstr "állomány vagy bemenet páncélozása"
+#~ msgstr "állomány vagy bemenet páncélozása"
 
 #~ msgid "do not force v3 signatures"
-#~ msgstr "ne erõltesse a 3-as verziójú aláírásokat"
+#~ msgstr "ne erőltesse a 3-as verziójú aláírásokat"
 
 #~ msgid "force v4 key signatures"
-#~ msgstr "4-es verziójú aláírások erõltetése"
+#~ msgstr "4-es verziójú aláírások erőltetése"
 
 #~ msgid "do not force v4 key signatures"
-#~ msgstr "ne erõltesse a 4-es verziójú aláírásokat"
+#~ msgstr "ne erőltesse a 4-es verziójú aláírásokat"
 
 #~ msgid "never use a MDC for encryption"
-#~ msgstr "soha ne használjon MDC-t titkosításkor"
+#~ msgstr "soha ne használjon MDC-t titkosításkor"
 
 #~ msgid "use the gpg-agent"
-#~ msgstr "gpg ügynök használata"
+#~ msgstr "gpg ügynök használata"
 
 #~ msgid "|[file]|write status info to file"
-#~ msgstr "|[fájl]|állapotinformációk állományba írása"
+#~ msgstr "|[fájl]|állapotinformációk állományba írása"
 
 #~ msgid "|KEYID|ultimately trust this key"
-#~ msgstr "|KULCS|alapvetõen megbízunk ebben a kulcsban"
+#~ msgstr "|KULCS|alapvetően megbízunk ebben a kulcsban"
 
 #~ msgid "emulate the mode described in RFC1991"
-#~ msgstr "RFC1991-ben leírt mód emulációja"
+#~ msgstr "RFC1991-ben leírt mód emulációja"
 
 #~ msgid "set all packet, cipher and digest options to OpenPGP behavior"
-#~ msgstr "opciók OpenPGP módra állítása"
+#~ msgstr "opciók OpenPGP módra állítása"
 
 #~ msgid "set all packet, cipher and digest options to PGP 2.x behavior"
-#~ msgstr "opciók PGP 2.x módra állítása"
+#~ msgstr "opciók PGP 2.x módra állítása"
 
 #~ msgid "|NAME|use message digest algorithm NAME for passphrases"
-#~ msgstr "|NÉV|NÉV kivonatoló algoritmus haszn. jelszavakhoz"
+#~ msgstr "|NÉV|NÉV kivonatoló algoritmus haszn. jelszavakhoz"
 
 #~ msgid "throw keyid field of encrypted packets"
-#~ msgstr "titkosított csomagok keyid mezõjének eldobása"
+#~ msgstr "titkosított csomagok keyid mezőjének eldobása"
 
 #~ msgid "Show Photo IDs"
-#~ msgstr "fotóazonosítók mutatása"
+#~ msgstr "fotóazonosítók mutatása"
 
 #~ msgid "Don't show Photo IDs"
-#~ msgstr "ne mutassa a fotóazonosítókat"
+#~ msgstr "ne mutassa a fotóazonosítókat"
 
 #~ msgid "Set command line to view Photo IDs"
-#~ msgstr "parancssor állítása fotóazonosítók megnézéséhez"
+#~ msgstr "parancssor állítása fotóazonosítók megnézéséhez"
 
 #~ msgid "compress algorithm `%s' is read-only in this release\n"
-#~ msgstr "\"%s\" tömörítõalgoritmus csak olvasható ebben a kiadásban.\n"
+#~ msgstr "\"%s\" tömörítőalgoritmus csak olvasható ebben a kiadásban.\n"
 
 #~ msgid "compress algorithm must be in range %d..%d\n"
-#~ msgstr "A tömörítõalgoritmus száma %d és %d közé kell essen!\n"
+#~ msgstr "A tömörítőalgoritmus száma %d és %d közé kell essen!\n"
 
 #~ msgid ""
 #~ "%08lX: It is not sure that this key really belongs to the owner\n"
 #~ "but it is accepted anyway\n"
 #~ msgstr ""
-#~ "%08lX: Nem biztos, hogy ez a kulcs valóban a jelzett tulajdonoshoz\n"
-#~ "tartozik, ennek ellenére elfogadtuk.\n"
+#~ "%08lX: Nem biztos, hogy ez a kulcs valóban a jelzett tulajdonoshoz\n"
+#~ "tartozik, ennek ellenére elfogadtuk.\n"
 
 #~ msgid "preference %c%lu is not valid\n"
-#~ msgstr "%c%lu preferencia érvénytelen!\n"
+#~ msgstr "%c%lu preferencia érvénytelen!\n"
 
 #~ msgid "key %08lX: not a rfc2440 key - skipped\n"
 #~ msgstr "%08lX kulcs: nem rfc2440 kulcs - kihagytam.\n"
@@ -10357,26 +10432,26 @@ msgstr ""
 #~ msgid ""
 #~ "NOTE: Elgamal primary key detected - this may take some time to import\n"
 #~ msgstr ""
-#~ "MEGJEGYZÉS: Elgamal elsõdleges kulcsot érzékeltem.\n"
-#~ "Eltarthat egy ideig az importálása.\n"
+#~ "MEGJEGYZÉS: Elgamal elsődleges kulcsot érzékeltem.\n"
+#~ "Eltarthat egy ideig az importálása.\n"
 
 #~ msgid " (default)"
-#~ msgstr " (alapértelmezés)"
+#~ msgstr " (alapértelmezés)"
 
 #~ msgid "%s%c %4u%c/%08lX  created: %s expires: %s"
-#~ msgstr "%s%c %4u%c/%08lX  létrehozva: %s lejár: %s"
+#~ msgstr "%s%c %4u%c/%08lX  létrehozva: %s lejár: %s"
 
 #~ msgid "can't get key from keyserver: %s\n"
-#~ msgstr "Nem tudom lehívni a kulcsot a %s kulcsszerverrõl.\n"
+#~ msgstr "Nem tudom lehívni a kulcsot a %s kulcsszerverről.\n"
 
 #~ msgid "success sending to `%s' (status=%u)\n"
-#~ msgstr "Sikeresen felküldtem %s kulcsszerverre. (Státusz: %u.)\n"
+#~ msgstr "Sikeresen felküldtem %s kulcsszerverre. (Státusz: %u.)\n"
 
 #~ msgid "failed sending to `%s': status=%u\n"
-#~ msgstr "Nem tudtam felküldeni %s kulcsszerverre. Státusz: %u.\n"
+#~ msgstr "Nem tudtam felküldeni %s kulcsszerverre. Státusz: %u.\n"
 
 #~ msgid "this keyserver does not support --search-keys\n"
-#~ msgstr "Ez a kulcsszerver nem támogatja a --search-keys kapcsolót.\n"
+#~ msgstr "Ez a kulcsszerver nem támogatja a --search-keys kapcsolót.\n"
 
 #~ msgid "can't search keyserver: %s\n"
 #~ msgstr "Nem tudok keresni a %s kulcsszerveren.\n"
@@ -10385,37 +10460,37 @@ msgstr ""
 #~ "key %08lX: this is a PGP generated ElGamal key which is NOT secure for "
 #~ "signatures!\n"
 #~ msgstr ""
-#~ "%08lX kulcs: Ez egy PGP által létrehozott ElGamal kulcs, mely\n"
-#~ "NEM biztonságos aláírásokhoz!\n"
+#~ "%08lX kulcs: Ez egy PGP által létrehozott ElGamal kulcs, mely\n"
+#~ "NEM biztonságos aláírásokhoz!\n"
 
 #~ msgid ""
 #~ "key %08lX has been created %lu second in future (time warp or clock "
 #~ "problem)\n"
 #~ msgstr ""
-#~ "%08lX kulcs %lu másodperccel a jövõben készült. (Idõugrás vagy "
-#~ "óraprobléma.)\n"
+#~ "%08lX kulcs %lu másodperccel a jövőben készült. (Időugrás vagy "
+#~ "óraprobléma.)\n"
 
 #~ msgid ""
 #~ "key %08lX has been created %lu seconds in future (time warp or clock "
 #~ "problem)\n"
 #~ msgstr ""
-#~ "%08lX kulcs %lu másodperccel a jövõben készült. (Idõugrás vagy "
-#~ "óraprobléma.)\n"
+#~ "%08lX kulcs %lu másodperccel a jövőben készült. (Időugrás vagy "
+#~ "óraprobléma.)\n"
 
 #~ msgid "key %08lX marked as ultimately trusted\n"
-#~ msgstr "A(z) %08lX kulcs alapvetõen megbízhatónak lett jelölve.\n"
+#~ msgstr "A(z) %08lX kulcs alapvetően megbízhatónak lett jelölve.\n"
 
 #~ msgid "signature from Elgamal signing key %08lX to %08lX skipped\n"
 #~ msgstr ""
-#~ "%08lX Elgamal aláírókulccsal %08lX kulcshoz készült aláírást kihagytam.\n"
+#~ "%08lX Elgamal aláírókulccsal %08lX kulcshoz készült aláírást kihagytam.\n"
 
 #~ msgid "signature from %08lX to Elgamal signing key %08lX skipped\n"
 #~ msgstr ""
-#~ "%08lX kulccsal %08lX Elgamal aláírókulcshoz készült aláírást kihagytam.\n"
+#~ "%08lX kulccsal %08lX Elgamal aláírókulcshoz készült aláírást kihagytam.\n"
 
 #~ msgid "checking at depth %d signed=%d ot(-/q/n/m/f/u)=%d/%d/%d/%d/%d/%d\n"
 #~ msgstr ""
-#~ "Vizsgálok a(z) %d. szinten, aláírt=%d tb(-/k/n/r/t/a)=%d/%d/%d/%d/%d/%d.\n"
+#~ "Vizsgálok a(z) %d. szinten, aláírt=%d tb(-/k/n/r/t/a)=%d/%d/%d/%d/%d/%d.\n"
 
 #~ msgid ""
 #~ "Select the algorithm to use.\n"
@@ -10440,48 +10515,48 @@ msgstr ""
 #~ "in\n"
 #~ "this menu."
 #~ msgstr ""
-#~ "Válassza ki a használni kívánt algoritmust!\n"
+#~ "Válassza ki a használni kívánt algoritmust!\n"
 #~ "\n"
-#~ "A DSA (más néven DSS) egy digitális aláírási algoritmus, mely kizárólag\n"
-#~ "aláírásokhoz használható. Ez az ajánlott algoritmus, mivel a DSA "
-#~ "aláírások\n"
-#~ "ellenõrzése jóval gyorsabb az ElGamal aláírásokénál.\n"
+#~ "A DSA (más néven DSS) egy digitális aláírási algoritmus, mely kizárólag\n"
+#~ "aláírásokhoz használható. Ez az ajánlott algoritmus, mivel a DSA "
+#~ "aláírások\n"
+#~ "ellenőrzése jóval gyorsabb az ElGamal aláírásokénál.\n"
 #~ "\n"
-#~ "Az ElGamal egy algoritmus, mely aláírásokhoz és titkosításhoz is\n"
-#~ "használható. Az OpenPGP az algoritmus két fajtáját különbözteti meg:\n"
-#~ "egy csak titkosítót, és egy aláírót és titkosítót. Tulajdonképpen ez\n"
-#~ "a kettõ ugyanaz, de néhány paramétert speciálisan kell megválasztani\n"
-#~ "ahhoz, hogy a kulcs biztonságos legyen aláírás-készítéshez. Ez a program\n"
-#~ "megteszi ezt, de más OpenPGP megvalósításoknak nem kötelezõ érteni a\n"
-#~ "az aláíró+titkosító fajtát.\n"
+#~ "Az ElGamal egy algoritmus, mely aláírásokhoz és titkosításhoz is\n"
+#~ "használható. Az OpenPGP az algoritmus két fajtáját különbözteti meg:\n"
+#~ "egy csak titkosítót, és egy aláírót és titkosítót. Tulajdonképpen ez\n"
+#~ "a kettő ugyanaz, de néhány paramétert speciálisan kell megválasztani\n"
+#~ "ahhoz, hogy a kulcs biztonságos legyen aláírás-készítéshez. Ez a program\n"
+#~ "megteszi ezt, de más OpenPGP megvalósításoknak nem kötelező érteni a\n"
+#~ "az aláíró+titkosító fajtát.\n"
 #~ "\n"
-#~ "Az elsõdleges kulcsnak mindig olyannak kell lenni, amely képes aláírni.\n"
-#~ "Ez az oka annak, hogy a csak titkosító ElGamal kulcs nem szerepel ebben\n"
-#~ "a menüben."
+#~ "Az elsődleges kulcsnak mindig olyannak kell lenni, amely képes aláírni.\n"
+#~ "Ez az oka annak, hogy a csak titkosító ElGamal kulcs nem szerepel ebben\n"
+#~ "a menüben."
 
 #~ msgid ""
 #~ "Although these keys are defined in RFC2440 they are not suggested\n"
 #~ "because they are not supported by all programs and signatures created\n"
 #~ "with them are quite large and very slow to verify."
 #~ msgstr ""
-#~ "Habár ezek a kulcsok definiáltak az RFC2440-ben, mégsem ajánljuk õket,\n"
-#~ "mert nem támogatottak minden programban, és az ezekkel készült aláírások\n"
-#~ "nagyon hosszúak, és nagyon lassú az ellenõrzésük."
+#~ "Habár ezek a kulcsok definiáltak az RFC2440-ben, mégsem ajánljuk őket,\n"
+#~ "mert nem támogatottak minden programban, és az ezekkel készült aláírások\n"
+#~ "nagyon hosszúak, és nagyon lassú az ellenőrzésük."
 
 #~ msgid "%lu keys so far checked (%lu signatures)\n"
-#~ msgstr "%lu kulcsot ellenõriztem eddig (%lu aláírással).\n"
+#~ msgstr "%lu kulcsot ellenőriztem eddig (%lu aláírással).\n"
 
 #~ msgid "key incomplete\n"
-#~ msgstr "hiányos kulcs\n"
+#~ msgstr "hiányos kulcs\n"
 
 #~ msgid "key %08lX incomplete\n"
-#~ msgstr "A(z) %08lX kulcs hiányos.\n"
+#~ msgstr "A(z) %08lX kulcs hiányos.\n"
 
 #~ msgid "quit|quit"
-#~ msgstr "kilépés"
+#~ msgstr "kilépés"
 
 #~ msgid "   (%d) ElGamal (sign and encrypt)\n"
-#~ msgstr "   (%d) ElGamal (aláírás és titkosítás)\n"
+#~ msgstr "   (%d) ElGamal (aláírás és titkosítás)\n"
 
 #~ msgid ""
 #~ "The use of this algorithm is only supported by GnuPG.  You will not be\n"
@@ -10489,13 +10564,13 @@ msgstr ""
 #~ "also\n"
 #~ "very slow, and may not be as secure as the other choices.\n"
 #~ msgstr ""
-#~ "Ennek az algoritmusnak a használatát csak a GnuPG támogatja. Ezzel\n"
-#~ "a kulccsal Ön nem fog tudni kommunikálni a PGP-t használókkal. Továbbá\n"
-#~ "ez az algoritmus nagyon lassú, és talán nem is olyan biztonságos, mint\n"
-#~ "a többi választható.\n"
+#~ "Ennek az algoritmusnak a használatát csak a GnuPG támogatja. Ezzel\n"
+#~ "a kulccsal Ön nem fog tudni kommunikálni a PGP-t használókkal. Továbbá\n"
+#~ "ez az algoritmus nagyon lassú, és talán nem is olyan biztonságos, mint\n"
+#~ "a többi választható.\n"
 
 #~ msgid "invalid symkey algorithm detected (%d)\n"
-#~ msgstr "Érvénytelen szimmetrikus kulcsú algoritmust találtam (%d).\n"
+#~ msgstr "Érvénytelen szimmetrikus kulcsú algoritmust találtam (%d).\n"
 
 #~ msgid "this keyserver is not fully HKP compatible\n"
-#~ msgstr "Ez a kulcsszerver nem teljesen HKP kompatíbilis.\n"
+#~ msgstr "Ez a kulcsszerver nem teljesen HKP kompatíbilis.\n"
index 015e419..fc9af08 100644 (file)
--- a/po/id.po
+++ b/po/id.po
@@ -157,14 +157,6 @@ msgstr "kesalahan menulis keyring rahasia `%s': %s\n"
 msgid "no suitable card key found: %s\n"
 msgstr "tidak ditemukan keyring rahasia yang dapat ditulisi: %s\n"
 
-#, fuzzy, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "gagal menghapus keyblok: %s\n"
-
-#, fuzzy, c-format
-msgid "error writing key: %s\n"
-msgstr "kesalahan menulis keyring `%s': %s\n"
-
 #, c-format
 msgid ""
 "An ssh process requested the use of key%%0A  %s%%0A  (%s)%%0ADo you want to "
@@ -320,6 +312,11 @@ msgstr ""
 msgid "run in server mode (foreground)"
 msgstr ""
 
+#, fuzzy
+#| msgid "Key is superseded"
+msgid "run in supervised mode"
+msgstr "Kunci dilampaui"
+
 msgid "verbose"
 msgstr "detil"
 
@@ -734,9 +731,9 @@ msgstr "kesalahan penciptaan passphrase: %s\n"
 msgid "error forking process: %s\n"
 msgstr "kesalahan membaca `%s': %s\n"
 
-#, fuzzy, c-format
-msgid "waiting for processes to terminate failed: %s\n"
-msgstr "gagal memperbarui: %s\n"
+#, c-format
+msgid "waiting for process %d to terminate failed: %s\n"
+msgstr ""
 
 #, fuzzy, c-format
 msgid "error running '%s': probably not installed\n"
@@ -751,13 +748,13 @@ msgid "error running '%s': terminated\n"
 msgstr "kesalahan membaca `%s': %s\n"
 
 #, fuzzy, c-format
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "gagal memperbarui: %s\n"
+
+#, fuzzy, c-format
 msgid "error getting exit code of process %d: %s\n"
 msgstr "kesalahan menulis keyring rahasia `%s': %s\n"
 
-#, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr ""
-
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to '%s': %s\n"
@@ -779,6 +776,14 @@ msgstr "Peringatan: kepemilikan tidak aman pada %s \"%s\"\n"
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
 msgstr "Peringatan: permisi tidak aman pada %s \"%s\"\n"
 
+#, fuzzy, c-format
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "gagal memperbarui: %s\n"
+
+#, fuzzy, c-format
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "gagal enarmoring: %s\n"
+
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "yes"
 msgstr "y|ya"
@@ -2188,9 +2193,9 @@ msgstr "tampilkan keyring tempat kunci yang dipilih berada"
 msgid "show expiration dates during signature listings"
 msgstr "Tidak ada signature koresponden di ring rahasia\n"
 
-#, fuzzy
-msgid "available TOFU policies:\n"
-msgstr "tiadakan kunci"
+#, fuzzy, c-format
+msgid "valid values for option '%s':\n"
+msgstr "opsi impor tidak valid\n"
 
 #, fuzzy, c-format
 msgid "unknown TOFU policy '%s'\n"
@@ -2200,6 +2205,10 @@ msgid "(use \"help\" to list choices)\n"
 msgstr ""
 
 #, fuzzy, c-format
+msgid "invalid value for option '%s'\n"
+msgstr "opsi impor tidak valid\n"
+
+#, fuzzy, c-format
 #| msgid "NOTE: old default options file `%s' ignored\n"
 msgid "Note: old default options file '%s' ignored\n"
 msgstr "CATATAN: file pilihan baku lama `%s' diabaikan\n"
@@ -2994,6 +3003,10 @@ msgid "[self-signature]"
 msgstr "[self-signature]"
 
 #, fuzzy, c-format
+msgid "error allocating memory: %s\n"
+msgstr "kesalahan menulis keyring `%s': %s\n"
+
+#, fuzzy, c-format
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
 msgstr "kunci %08lX: algoritma publik key tidak didukung\n"
 
@@ -5043,6 +5056,21 @@ msgstr "Kunci ini mungkin milik pemiliknya\n"
 msgid "This key belongs to us\n"
 msgstr "Kunci ini milik kita\n"
 
+#, c-format
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr ""
+
+#, fuzzy
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"Tidak pasti bahwa kunci milik orang yang disebutkan\n"
+"Jika anda sangat tahu apa yang sedang anda lakukan, anda boleh menjawab\n"
+"pertanyaan berikut dengan ya\n"
+"\n"
+
 #, fuzzy
 msgid ""
 "It is NOT certain that the key belongs to the person named\n"
@@ -5703,27 +5731,31 @@ msgid "error updating TOFU database: %s\n"
 msgstr "kesalahan mengirim ke `%s': %s\n"
 
 #, c-format
-msgid "The binding %s is NOT known."
+msgid ""
+"This is the first time the email address \"%s\" is being used with key %s."
 msgstr ""
 
 #, c-format
-msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr ""
+
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error gathering other user IDs: %s\n"
 msgstr "kesalahan penciptaan passphrase: %s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr ""
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "tampilkan kunci dan ID user"
 
 #, fuzzy, c-format
 #| msgid "Policy: "
@@ -5744,41 +5776,47 @@ msgstr[1] ""
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr ""
 
+msgid ", "
+msgstr ""
+
 #, fuzzy
 #| msgid "list keys"
 msgid "this key"
 msgstr "tampilkan kunci"
 
-#, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
-msgstr[0] ""
-msgstr[1] ""
-
 #, fuzzy, c-format
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
 msgstr[0] "|algo [file]|cetak digest pesan"
 msgstr[1] "|algo [file]|cetak digest pesan"
 
 #, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+msgid " over the past year."
+msgid_plural " over the past %d years."
 msgstr[0] ""
 msgstr[1] ""
 
+msgid " in the past."
+msgstr ""
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5794,6 +5832,16 @@ msgstr ""
 msgid "(G)ood, (A)ccept once, (U)nknown, (R)eject once, (B)ad? "
 msgstr ""
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "resetting keydb: %s\n"
+msgstr "kesalahan menulis keyring `%s': %s\n"
+
 #, fuzzy, c-format
 msgid "error setting TOFU binding's trust level to %s\n"
 msgstr "kesalahan membaca `%s': %s\n"
@@ -5841,50 +5889,56 @@ msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
+msgid "%s: "
 msgstr ""
 
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
-msgstr ""
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "Menghapus %d signature.\n"
 
 #, fuzzy, c-format
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "|algo [file]|cetak digest pesan"
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
+msgstr[0] "|algo [file]|cetak digest pesan"
+msgstr[1] "|algo [file]|cetak digest pesan"
+
+#, fuzzy, c-format
+#| msgid "encrypted with %lu passphrases\n"
+msgid ", and encrypted %ld messages"
+msgstr "dienkripsi dengan passphrase %lu\n"
+
+#, fuzzy, c-format
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] "|algo [file]|cetak digest pesan"
+msgstr[1] "|algo [file]|cetak digest pesan"
 
-#, c-format
 msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
-msgstr[0] ""
-msgstr[1] ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
+msgstr ""
 
-#, c-format
-msgid "The most recent message was verified %s ago."
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
 msgstr ""
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
 msgstr ""
 
 #, c-format
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -5894,6 +5948,15 @@ msgstr[1] ""
 msgid "error opening TOFU database: %s\n"
 msgstr "kesalahan mengirim ke `%s': %s\n"
 
+#, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring `%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "kesalahan menulis keyring publik `%s': %s\n"
+
 #, fuzzy, c-format
 #| msgid "`%s' is not a valid long keyID\n"
 msgid "'%s' is not a valid long keyID\n"
@@ -6138,22 +6201,24 @@ msgstr "gagal inisialisasi TrustDB: %s\n"
 msgid "failed to store the creation date: %s\n"
 msgstr "gagal membuat kembali cache keyring: %s\n"
 
-#, fuzzy, c-format
-msgid "reading public key failed: %s\n"
-msgstr "gagal menghapus keyblok: %s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr ""
-
 msgid "response does not contain the RSA modulus\n"
 msgstr ""
 
 msgid "response does not contain the RSA public exponent\n"
 msgstr ""
 
-msgid "response does not contain the EC public point\n"
+#, fuzzy
+#| msgid "remove keys from the public keyring"
+msgid "response does not contain the EC public key\n"
+msgstr "hapus kunci dari keyring publik"
+
+msgid "response does not contain the public key data\n"
 msgstr ""
 
+#, fuzzy, c-format
+msgid "reading public key failed: %s\n"
+msgstr "gagal menghapus keyblok: %s\n"
+
 #, c-format
 msgid "using default PIN as %s\n"
 msgstr ""
@@ -7781,6 +7846,9 @@ msgstr ""
 msgid "allow sending OCSP requests"
 msgstr ""
 
+msgid "allow online software version check"
+msgstr ""
+
 msgid "inhibit the use of HTTP"
 msgstr ""
 
@@ -8053,10 +8121,6 @@ msgid "'%s' is an invalid LDAP URL\n"
 msgstr ""
 
 #, fuzzy, c-format
-msgid "error allocating memory: %s\n"
-msgstr "kesalahan menulis keyring `%s': %s\n"
-
-#, fuzzy, c-format
 msgid "error printing log line: %s\n"
 msgstr "kesalahan menulis keyring `%s': %s\n"
 
@@ -8530,23 +8594,25 @@ msgstr ""
 msgid "Configuration for OCSP"
 msgstr ""
 
-msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr ""
 
-msgid "GPG Agent"
+msgid "Private Keys"
 msgstr ""
 
-msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr ""
 
-msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr ""
 
-msgid "Key Acquirer"
-msgstr ""
+#, fuzzy
+#| msgid "network error"
+msgid "Network"
+msgstr "kesalahan jaringan"
 
 #, fuzzy
-msgid "PIN and Passphrase Entry"
+msgid "Passphrase Entry"
 msgstr "passphrase yang buruk"
 
 #, fuzzy
@@ -8589,6 +8655,11 @@ msgstr "Item Konfigurasi tidak dikenal \"%s\"\n"
 msgid "check global configuration file"
 msgstr "Item Konfigurasi tidak dikenal \"%s\"\n"
 
+#, fuzzy
+#| msgid "update the trust database"
+msgid "query the software version database"
+msgstr "perbarui database trust"
+
 msgid "reload all or a given component"
 msgstr ""
 
@@ -8769,6 +8840,20 @@ msgid ""
 "Check a passphrase given on stdin against the patternfile\n"
 msgstr ""
 
+#, fuzzy
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "gagal menghapus keyblok: %s\n"
+
+#, fuzzy
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "tiadakan kunci"
+
+#, fuzzy
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "|algo [file]|cetak digest pesan"
+#~ msgstr[1] "|algo [file]|cetak digest pesan"
+
 #~ msgid "communication problem with gpg-agent\n"
 #~ msgstr "masalah komunikasi dengan gpg-agent\n"
 
@@ -8840,9 +8925,6 @@ msgstr ""
 #~ msgid "1 user ID without valid self-signature detected\n"
 #~ msgstr "terdeteksi 1 ID user tanpa self-signature yang valid\n"
 
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "Menghapus %d signature.\n"
-
 #, fuzzy
 #~ msgid "User ID \"%s\": %d signatures removed\n"
 #~ msgstr "User ID \"%s\" dibatalkan."
@@ -8888,10 +8970,6 @@ msgstr ""
 #~ msgstr "1 signature yang buruk\n"
 
 #, fuzzy
-#~ msgid "renaming '%s' to '%s' failed: %s\n"
-#~ msgstr "gagal enarmoring: %s\n"
-
-#, fuzzy
 #~ msgid "%lu keys cached (%lu signatures)\n"
 #~ msgstr "%lu kunci telah diperiksa (%lu signature)\n"
 
@@ -9540,7 +9618,7 @@ msgstr ""
 #~ "ke daftar preferensi saat ini.  Timestamp seluruh self-signature\n"
 #~ "yang terpengaruh akan bertambah satu detik.\n"
 
-#~ msgid "Please enter the passhrase; this is a secret sentence \n"
+#~ msgid "Please enter the passphrase; this is a secret sentence \n"
 #~ msgstr "Silakan masukkan passphrase; ini kalimat rahasia\n"
 
 #~ msgid ""
@@ -9832,9 +9910,6 @@ msgstr ""
 #~ msgid "bad URI"
 #~ msgstr "URI yang buruk"
 
-#~ msgid "network error"
-#~ msgstr "kesalahan jaringan"
-
 #~ msgid "not processed"
 #~ msgstr "tidak diproses"
 
index 7be477f..ea6c820 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -11,7 +11,7 @@ msgstr ""
 "Language-Team: Italian <tp@lists.linux.it>\n"
 "Language: it\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #, fuzzy, c-format
@@ -77,7 +77,7 @@ msgstr ""
 msgid ""
 "Please enter your passphrase, so that the secret key can be unlocked for "
 "this session"
-msgstr "Inserisci la passphrase, cioè una frase segreta \n"
+msgstr "Inserisci la passphrase, cioè una frase segreta \n"
 
 msgid "PIN:"
 msgstr ""
@@ -124,7 +124,7 @@ msgstr "passphrase errata"
 
 #, fuzzy, c-format
 msgid "ssh keys greater than %d bits are not supported\n"
-msgstr "l'algoritmo di protezione %d%s non è gestito\n"
+msgstr "l'algoritmo di protezione %d%s non è gestito\n"
 
 #, fuzzy, c-format
 #| msgid "can't create `%s': %s\n"
@@ -150,15 +150,7 @@ msgstr "errore scrivendo il portachiavi segreto `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "no suitable card key found: %s\n"
-msgstr "non è stato trovato un portachiavi segreto scrivibile: %s\n"
-
-#, fuzzy, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "cancellazione del keyblock fallita: %s\n"
-
-#, fuzzy, c-format
-msgid "error writing key: %s\n"
-msgstr "errore scrivendo il portachiavi `%s': %s\n"
+msgstr "non è stato trovato un portachiavi segreto scrivibile: %s\n"
 
 #, c-format
 msgid ""
@@ -174,7 +166,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "Please enter the passphrase for the ssh key%%0A  %F%%0A  (%c)"
-msgstr "Inserisci la passphrase, cioè una frase segreta \n"
+msgstr "Inserisci la passphrase, cioè una frase segreta \n"
 
 #, fuzzy
 msgid "Please re-enter this passphrase"
@@ -184,7 +176,7 @@ msgstr "cambia la passphrase"
 msgid ""
 "Please enter a passphrase to protect the received secret key%%0A   %s%%0A   "
 "%s%%0Awithin gpg-agent's key storage"
-msgstr "Inserisci la passphrase, cioè una frase segreta \n"
+msgstr "Inserisci la passphrase, cioè una frase segreta \n"
 
 #, fuzzy, c-format
 msgid "failed to create stream from socket: %s\n"
@@ -315,6 +307,11 @@ msgstr ""
 msgid "run in server mode (foreground)"
 msgstr ""
 
+#, fuzzy
+#| msgid "Key is superseded"
+msgid "run in supervised mode"
+msgstr "Questa chiave è stata sostituita"
+
 msgid "verbose"
 msgstr "prolisso"
 
@@ -433,7 +430,7 @@ msgstr "lettura delle opzioni da `%s'\n"
 #, fuzzy, c-format
 #| msgid "WARNING: \"%s\" is a deprecated option\n"
 msgid "Note: '%s' is not considered an option\n"
-msgstr "ATTENZIONE: \"%s\" è una opzione deprecata\n"
+msgstr "ATTENZIONE: \"%s\" è una opzione deprecata\n"
 
 #, fuzzy, c-format
 msgid "can't create socket: %s\n"
@@ -445,7 +442,7 @@ msgstr ""
 
 #, fuzzy
 msgid "a gpg-agent is already running - not starting a new one\n"
-msgstr "gpg-agent non è disponibile in questa sessione\n"
+msgstr "gpg-agent non è disponibile in questa sessione\n"
 
 #, fuzzy
 msgid "error getting nonce for the socket\n"
@@ -514,7 +511,7 @@ msgstr "%s: saltata: %s\n"
 
 #, fuzzy
 msgid "no gpg-agent running in this session\n"
-msgstr "gpg-agent non è disponibile in questa sessione\n"
+msgstr "gpg-agent non è disponibile in questa sessione\n"
 
 #, fuzzy
 msgid "Usage: gpg-preset-passphrase [options] KEYGRIP (-h for help)\n"
@@ -552,11 +549,11 @@ msgstr ""
 
 #, fuzzy
 msgid "Please enter the passphrase to unprotect the PKCS#12 object."
-msgstr "Inserisci la passphrase, cioè una frase segreta \n"
+msgstr "Inserisci la passphrase, cioè una frase segreta \n"
 
 #, fuzzy
 msgid "Please enter the passphrase to protect the new PKCS#12 object."
-msgstr "Inserisci la passphrase, cioè una frase segreta \n"
+msgstr "Inserisci la passphrase, cioè una frase segreta \n"
 
 msgid ""
 "Please enter the passphrase to protect the imported object within the GnuPG "
@@ -567,7 +564,7 @@ msgstr ""
 msgid ""
 "Please enter the passphrase or the PIN\n"
 "needed to complete this operation."
-msgstr "Inserisci la passphrase, cioè una frase segreta \n"
+msgstr "Inserisci la passphrase, cioè una frase segreta \n"
 
 #, fuzzy
 msgid "cancelled\n"
@@ -624,7 +621,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Yes"
-msgstr "si|sì"
+msgstr "si|sì"
 
 msgid "No"
 msgstr ""
@@ -705,17 +702,17 @@ msgstr "parti della chiave segreta non sono disponibili\n"
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "public key algorithm %d (%s) is not supported\n"
-msgstr "l'algoritmo di protezione %d%s non è gestito\n"
+msgstr "l'algoritmo di protezione %d%s non è gestito\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "protection algorithm %d (%s) is not supported\n"
-msgstr "l'algoritmo di protezione %d%s non è gestito\n"
+msgstr "l'algoritmo di protezione %d%s non è gestito\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "protection hash algorithm %d (%s) is not supported\n"
-msgstr "l'algoritmo di protezione %d%s non è gestito\n"
+msgstr "l'algoritmo di protezione %d%s non è gestito\n"
 
 #, fuzzy, c-format
 msgid "error creating a pipe: %s\n"
@@ -729,9 +726,9 @@ msgstr "errore nella creazione della passhprase: %s\n"
 msgid "error forking process: %s\n"
 msgstr "errore leggendo `%s': %s\n"
 
-#, fuzzy, c-format
-msgid "waiting for processes to terminate failed: %s\n"
-msgstr "aggiornamento fallito: %s\n"
+#, c-format
+msgid "waiting for process %d to terminate failed: %s\n"
+msgstr ""
 
 #, fuzzy, c-format
 msgid "error running '%s': probably not installed\n"
@@ -746,13 +743,13 @@ msgid "error running '%s': terminated\n"
 msgstr "errore leggendo `%s': %s\n"
 
 #, fuzzy, c-format
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "aggiornamento fallito: %s\n"
+
+#, fuzzy, c-format
 msgid "error getting exit code of process %d: %s\n"
 msgstr "errore scrivendo il portachiavi segreto `%s': %s\n"
 
-#, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr ""
-
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to '%s': %s\n"
@@ -768,15 +765,23 @@ msgstr "impossibile disabilitare i core dump: %s\n"
 
 #, fuzzy, c-format
 msgid "Warning: unsafe ownership on %s \"%s\"\n"
-msgstr "ATTENZIONE: il proprietario \"%s\" di %s è insicuro\n"
+msgstr "ATTENZIONE: il proprietario \"%s\" di %s è insicuro\n"
 
 #, fuzzy, c-format
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
 msgstr "ATTENZIONE: i permessi \"%s\" di %s sono insicuri\n"
 
+#, fuzzy, c-format
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "aggiornamento fallito: %s\n"
+
+#, fuzzy, c-format
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "creazione dell'armatura fallita: %s\n"
+
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "yes"
-msgstr "si|sì"
+msgstr "si|sì"
 
 msgid "yY"
 msgstr "sS"
@@ -828,7 +833,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "WARNING: \"%s%s\" is an obsolete option - it has no effect\n"
-msgstr "ATTENZIONE: \"%s\" è una opzione deprecata\n"
+msgstr "ATTENZIONE: \"%s\" è una opzione deprecata\n"
 
 #, c-format
 msgid "unknown debug flag '%s' ignored\n"
@@ -958,7 +963,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Encryption algorithm supported"
-msgstr "l'algoritmo di protezione %d%s non è gestito\n"
+msgstr "l'algoritmo di protezione %d%s non è gestito\n"
 
 #, fuzzy
 msgid "Data verification succeeded"
@@ -982,7 +987,7 @@ msgstr "Firma scaduta il %s\n"
 
 #, fuzzy
 msgid "Certificate chain valid"
-msgstr "Questa chiave è scaduta!"
+msgstr "Questa chiave è scaduta!"
 
 #, fuzzy
 msgid "Root certificate trustworthy"
@@ -1019,7 +1024,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "No help available for '%s'."
-msgstr "Non è disponibile un aiuto per `%s'"
+msgstr "Non è disponibile un aiuto per `%s'"
 
 #, fuzzy
 msgid "ignoring garbage line"
@@ -1199,12 +1204,12 @@ msgstr "Non sono stati trovati dati OpenPGP validi.\n"
 
 #, c-format
 msgid "invalid armor: line longer than %d characters\n"
-msgstr "armatura non valida: linea più lunga di %d caratteri\n"
+msgstr "armatura non valida: linea più lunga di %d caratteri\n"
 
 msgid ""
 "quoted printable character in armor - probably a buggy MTA has been used\n"
 msgstr ""
-"carattere quoted printable nell'armatura - probabilmente è stato usato\n"
+"carattere quoted printable nell'armatura - probabilmente è stato usato\n"
 "un MTA buggato\n"
 
 #, fuzzy, c-format
@@ -1268,7 +1273,7 @@ msgstr "ATTENZIONE: %s ha la precedenza su %s\n"
 
 #, fuzzy, c-format
 msgid "OpenPGP card not available: %s\n"
-msgstr "la chiave segreta non è disponibile"
+msgstr "la chiave segreta non è disponibile"
 
 #, c-format
 msgid "OpenPGP card no. %s detected\n"
@@ -1280,7 +1285,7 @@ msgstr "impossibile fare questo in modo batch\n"
 
 #, fuzzy
 msgid "This command is only available for version 2 cards\n"
-msgstr "Questo comando non è permesso in modalità %s.\n"
+msgstr "Questo comando non è permesso in modalità %s.\n"
 
 #, fuzzy
 msgid "Reset Code not or not anymore available\n"
@@ -1333,7 +1338,7 @@ msgstr ""
 
 #, fuzzy
 msgid "URL to retrieve public key: "
-msgstr "non c'è una chiave pubblica corrispondente: %s\n"
+msgstr "non c'è una chiave pubblica corrispondente: %s\n"
 
 #, c-format
 msgid "Error: URL too long (limit is %d characters).\n"
@@ -1443,7 +1448,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Note: keys are already stored on the card!\n"
-msgstr "saltata: chiave pubblica già presente\n"
+msgstr "saltata: chiave pubblica già presente\n"
 
 msgid "Replace existing keys? (y/N) "
 msgstr ""
@@ -1484,11 +1489,11 @@ msgstr "aggiornamento fallito: %s\n"
 #, fuzzy
 #| msgid "This command is not allowed while in %s mode.\n"
 msgid "This command is not supported by this card\n"
-msgstr "Questo comando non è permesso in modalità %s.\n"
+msgstr "Questo comando non è permesso in modalità %s.\n"
 
 #, fuzzy
 msgid "Note: This command destroys all keys stored on the card!\n"
-msgstr "saltata: chiave pubblica già presente\n"
+msgstr "saltata: chiave pubblica già presente\n"
 
 #, fuzzy
 msgid "Continue? (y/N) "
@@ -1498,7 +1503,7 @@ msgid "Really do a factory reset? (enter \"yes\") "
 msgstr ""
 
 msgid "quit this menu"
-msgstr "abbandona questo menù"
+msgstr "abbandona questo menù"
 
 #, fuzzy
 msgid "show admin commands"
@@ -1605,7 +1610,7 @@ msgstr "Vuoi cancellare questa chiave dal portachiavi? "
 
 #, fuzzy
 msgid "This is a secret key! - really delete? (y/N) "
-msgstr "È una chiave segreta! - Vuoi cancellarla davvero? "
+msgstr "È una chiave segreta! - Vuoi cancellarla davvero? "
 
 #, fuzzy, c-format
 msgid "deleting secret %s failed: %s\n"
@@ -1628,7 +1633,7 @@ msgstr "informazioni di fiducia del possessore cancellate\n"
 
 #, c-format
 msgid "there is a secret key for public key \"%s\"!\n"
-msgstr "c'è una chiave segreta per la chiave pubblica \"%s\"!\n"
+msgstr "c'è una chiave segreta per la chiave pubblica \"%s\"!\n"
 
 msgid "use option \"--delete-secret-keys\" to delete it first.\n"
 msgstr "usa prima l'opzione \"--delete-secret-keys\" per cancellarla.\n"
@@ -1639,7 +1644,7 @@ msgstr "errore nella creazione della passhprase: %s\n"
 
 msgid "can't use a symmetric ESK packet due to the S2K mode\n"
 msgstr ""
-"impossibile usare un pacchetto ESK simmetrico a causa della modalità S2K\n"
+"impossibile usare un pacchetto ESK simmetrico a causa della modalità S2K\n"
 
 #, c-format
 msgid "using cipher %s\n"
@@ -1648,12 +1653,12 @@ msgstr "uso il cifrario %s\n"
 #, fuzzy, c-format
 #| msgid "`%s' already compressed\n"
 msgid "'%s' already compressed\n"
-msgstr "`%s' è già compresso\n"
+msgstr "`%s' è già compresso\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: `%s' is an empty file\n"
 msgid "WARNING: '%s' is an empty file\n"
-msgstr "ATTENZIONE: `%s' è un file vuoto\n"
+msgstr "ATTENZIONE: `%s' è un file vuoto\n"
 
 #, fuzzy, c-format
 #| msgid "reading from `%s'\n"
@@ -1687,7 +1692,7 @@ msgstr "%s/%s cifrato per: \"%s\"\n"
 
 #, c-format
 msgid "you may not use %s while in %s mode\n"
-msgstr "non è possibile usare %s in modalità %s\n"
+msgstr "non è possibile usare %s in modalità %s\n"
 
 #, c-format
 msgid "%s encrypted data\n"
@@ -1707,7 +1712,7 @@ msgid "problem handling encrypted packet\n"
 msgstr "problema nella gestione del pacchetto cifrato\n"
 
 msgid "no remote program execution supported\n"
-msgstr "l'esecuzione remota dei programmi non è gestita\n"
+msgstr "l'esecuzione remota dei programmi non è gestita\n"
 
 msgid ""
 "external program calls are disabled due to unsafe options file permissions\n"
@@ -1757,7 +1762,7 @@ msgstr "ATTENZIONE: impossibile rimuovere la directory temporanea `%s': %s\n"
 msgid "export signatures that are marked as local-only"
 msgstr ""
 "\n"
-"La firma sarà marcata come irrevocabile.\n"
+"La firma sarà marcata come irrevocabile.\n"
 
 msgid "export attribute user IDs (generally photo IDs)"
 msgstr ""
@@ -1796,7 +1801,7 @@ msgid "key %s: PGP 2.x style key - skipped\n"
 msgstr "chiave %08lX: chiave in stile PGP 2.x - saltata\n"
 
 msgid "WARNING: nothing exported\n"
-msgstr "ATTENZIONE: non è stato esportato nulla\n"
+msgstr "ATTENZIONE: non è stato esportato nulla\n"
 
 #, fuzzy, c-format
 #| msgid "error creating `%s': %s\n"
@@ -2098,19 +2103,19 @@ msgstr "comandi in conflitto\n"
 
 #, fuzzy, c-format
 msgid "no = sign found in group definition '%s'\n"
-msgstr "non è stato trovato il segno = nella definizione del gruppo \"%s\"\n"
+msgstr "non è stato trovato il segno = nella definizione del gruppo \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe ownership on homedir '%s'\n"
-msgstr "ATTENZIONE: il proprietario \"%s\" di %s è insicuro\n"
+msgstr "ATTENZIONE: il proprietario \"%s\" di %s è insicuro\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe ownership on configuration file '%s'\n"
-msgstr "ATTENZIONE: il proprietario \"%s\" di %s è insicuro\n"
+msgstr "ATTENZIONE: il proprietario \"%s\" di %s è insicuro\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe ownership on extension '%s'\n"
-msgstr "ATTENZIONE: il proprietario \"%s\" di %s è insicuro\n"
+msgstr "ATTENZIONE: il proprietario \"%s\" di %s è insicuro\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe permissions on homedir '%s'\n"
@@ -2126,16 +2131,16 @@ msgstr "ATTENZIONE: i permessi \"%s\" di %s sono insicuri\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe enclosing directory ownership on homedir '%s'\n"
-msgstr "ATTENZIONE: il proprietario \"%s\" di %s è insicuro\n"
+msgstr "ATTENZIONE: il proprietario \"%s\" di %s è insicuro\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: unsafe enclosing directory ownership on configuration file '%s'\n"
-msgstr "ATTENZIONE: il proprietario \"%s\" di %s è insicuro\n"
+msgstr "ATTENZIONE: il proprietario \"%s\" di %s è insicuro\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe enclosing directory ownership on extension '%s'\n"
-msgstr "ATTENZIONE: il proprietario \"%s\" di %s è insicuro\n"
+msgstr "ATTENZIONE: il proprietario \"%s\" di %s è insicuro\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe enclosing directory permissions on homedir '%s'\n"
@@ -2176,7 +2181,7 @@ msgstr ""
 
 #, fuzzy
 msgid "show preferred keyserver URLs during signature listings"
-msgstr "l'URL della politica di firma indicato non è valido\n"
+msgstr "l'URL della politica di firma indicato non è valido\n"
 
 msgid "show user ID validity during key listings"
 msgstr ""
@@ -2195,9 +2200,9 @@ msgstr "mostra in quali portachiavi sono contenute le chiavi elencate"
 msgid "show expiration dates during signature listings"
 msgstr "Manca la firma corrispondente nel portachiavi segreto\n"
 
-#, fuzzy
-msgid "available TOFU policies:\n"
-msgstr "disabilita una chiave"
+#, fuzzy, c-format
+msgid "valid values for option '%s':\n"
+msgstr "opzioni di importazione non valide\n"
 
 #, fuzzy, c-format
 msgid "unknown TOFU policy '%s'\n"
@@ -2207,10 +2212,14 @@ msgid "(use \"help\" to list choices)\n"
 msgstr ""
 
 #, fuzzy, c-format
+msgid "invalid value for option '%s'\n"
+msgstr "opzioni di importazione non valide\n"
+
+#, fuzzy, c-format
 #| msgid "NOTE: old default options file `%s' ignored\n"
 msgid "Note: old default options file '%s' ignored\n"
 msgstr ""
-"NOTA: il vecchio file `%s' con le opzioni predefinite è stato ignorato\n"
+"NOTA: il vecchio file `%s' con le opzioni predefinite è stato ignorato\n"
 
 #, fuzzy, c-format
 #| msgid "NOTE: %s is not for normal use!\n"
@@ -2219,11 +2228,11 @@ msgstr "NOTA: %s normalmente non deve essere usato!\n"
 
 #, fuzzy, c-format
 msgid "'%s' is not a valid signature expiration\n"
-msgstr "%s non è un set di caratteri valido\n"
+msgstr "%s non è un set di caratteri valido\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" is not a proper mail address\n"
-msgstr "L'indirizzo di email non è valido\n"
+msgstr "L'indirizzo di email non è valido\n"
 
 #, fuzzy, c-format
 msgid "invalid pinentry mode '%s'\n"
@@ -2231,7 +2240,7 @@ msgstr "algoritmo di hash non valido `%s'\n"
 
 #, fuzzy, c-format
 msgid "'%s' is not a valid character set\n"
-msgstr "%s non è un set di caratteri valido\n"
+msgstr "%s non è un set di caratteri valido\n"
 
 #, fuzzy
 msgid "could not parse keyserver URL\n"
@@ -2279,7 +2288,7 @@ msgstr ""
 
 #, fuzzy
 msgid "show all notations during signature verification"
-msgstr "%s non è un set di caratteri valido\n"
+msgstr "%s non è un set di caratteri valido\n"
 
 msgid "show IETF standard notations during signature verification"
 msgstr ""
@@ -2289,18 +2298,18 @@ msgstr ""
 
 #, fuzzy
 msgid "show preferred keyserver URLs during signature verification"
-msgstr "l'URL della politica di firma indicato non è valido\n"
+msgstr "l'URL della politica di firma indicato non è valido\n"
 
 #, fuzzy
 msgid "show user ID validity during signature verification"
-msgstr "%s non è un set di caratteri valido\n"
+msgstr "%s non è un set di caratteri valido\n"
 
 msgid "show revoked and expired user IDs in signature verification"
 msgstr ""
 
 #, fuzzy
 msgid "show only the primary user ID in signature verification"
-msgstr "%s non è un set di caratteri valido\n"
+msgstr "%s non è un set di caratteri valido\n"
 
 msgid "validate signatures with PKA data"
 msgstr ""
@@ -2336,7 +2345,7 @@ msgstr "ATTENZIONE: %s ha la precedenza su %s\n"
 
 #, c-format
 msgid "%s not allowed with %s!\n"
-msgstr "Non è permesso usare %s con %s!\n"
+msgstr "Non è permesso usare %s con %s!\n"
 
 #, c-format
 msgid "%s makes no sense with %s!\n"
@@ -2350,17 +2359,17 @@ msgid "will not run with insecure memory due to %s\n"
 msgstr "scrittura della chiave segreta in `%s'\n"
 
 msgid "selected cipher algorithm is invalid\n"
-msgstr "l'algoritmo di cifratura selezionato non è valido\n"
+msgstr "l'algoritmo di cifratura selezionato non è valido\n"
 
 msgid "selected digest algorithm is invalid\n"
-msgstr "l'algoritmo di digest selezionato non è valido\n"
+msgstr "l'algoritmo di digest selezionato non è valido\n"
 
 #, fuzzy
 msgid "selected compression algorithm is invalid\n"
-msgstr "l'algoritmo di cifratura selezionato non è valido\n"
+msgstr "l'algoritmo di cifratura selezionato non è valido\n"
 
 msgid "selected certification digest algorithm is invalid\n"
-msgstr "l'algoritmo di digest selezionato non è valido\n"
+msgstr "l'algoritmo di digest selezionato non è valido\n"
 
 msgid "completes-needed must be greater than 0\n"
 msgstr "completes-needed deve essere maggiore di 0\n"
@@ -2381,7 +2390,7 @@ msgstr "min-cert-level non valido; deve essere 1, 2 o 3\n"
 #, fuzzy
 #| msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
 msgid "Note: simple S2K mode (0) is strongly discouraged\n"
-msgstr "NOTA: l'uso del modo S2K semplice (0) è fortemente scoraggiato\n"
+msgstr "NOTA: l'uso del modo S2K semplice (0) è fortemente scoraggiato\n"
 
 msgid "invalid S2K mode; must be 0, 1 or 3\n"
 msgstr "modo S2K non valido; deve essere 0, 1 o 3\n"
@@ -2404,16 +2413,16 @@ msgstr "%s non funziona ancora con %s\n"
 
 #, fuzzy, c-format
 msgid "you may not use cipher algorithm '%s' while in %s mode\n"
-msgstr "non è possibile usare l'algoritmo di cifratura \"%s\" in modalità %s\n"
+msgstr "non è possibile usare l'algoritmo di cifratura \"%s\" in modalità %s\n"
 
 #, fuzzy, c-format
 msgid "you may not use digest algorithm '%s' while in %s mode\n"
-msgstr "non è possibile usare l'algoritmo di digest \"%s\" in modalità %s\n"
+msgstr "non è possibile usare l'algoritmo di digest \"%s\" in modalità %s\n"
 
 #, fuzzy, c-format
 msgid "you may not use compression algorithm '%s' while in %s mode\n"
 msgstr ""
-"non è possibile usare l'algoritmo di compressione \"%s\" in modalità %s\n"
+"non è possibile usare l'algoritmo di compressione \"%s\" in modalità %s\n"
 
 #, c-format
 msgid "failed to initialize the TrustDB: %s\n"
@@ -2446,7 +2455,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "you cannot use --symmetric --encrypt while in %s mode\n"
-msgstr "non è possibile usare %s in modalità %s\n"
+msgstr "non è possibile usare %s in modalità %s\n"
 
 msgid "--sign [filename]"
 msgstr "--sign [nomefile]"
@@ -2463,7 +2472,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "you cannot use --symmetric --sign --encrypt while in %s mode\n"
-msgstr "non è possibile usare %s in modalità %s\n"
+msgstr "non è possibile usare %s in modalità %s\n"
 
 msgid "--sign --symmetric [filename]"
 msgstr "--sign --symmetric [nomefile]"
@@ -2540,14 +2549,14 @@ msgid "Go ahead and type your message ...\n"
 msgstr "Vai avanti e scrivi il messaggio...\n"
 
 msgid "the given certification policy URL is invalid\n"
-msgstr "l'URL della politica di certificazione indicato non è valido\n"
+msgstr "l'URL della politica di certificazione indicato non è valido\n"
 
 msgid "the given signature policy URL is invalid\n"
-msgstr "l'URL della politica di firma indicato non è valido\n"
+msgstr "l'URL della politica di firma indicato non è valido\n"
 
 #, fuzzy
 msgid "the given preferred keyserver URL is invalid\n"
-msgstr "l'URL della politica di firma indicato non è valido\n"
+msgstr "l'URL della politica di firma indicato non è valido\n"
 
 #, fuzzy
 msgid "|FILE|take the keys from the keyring FILE"
@@ -2574,12 +2583,12 @@ msgstr ""
 "Controlla le firme con le chiavi affidabili note\n"
 
 msgid "No help available"
-msgstr "Non è disponibile un aiuto"
+msgstr "Non è disponibile un aiuto"
 
 #, fuzzy, c-format
 #| msgid "No help available for `%s'"
 msgid "No help available for '%s'"
-msgstr "Non è disponibile un aiuto per `%s'"
+msgstr "Non è disponibile un aiuto per `%s'"
 
 msgid "import signatures that are marked as local-only"
 msgstr ""
@@ -2737,7 +2746,7 @@ msgid "key %s: no valid user IDs\n"
 msgstr "chiave %08lX: nessun user ID valido\n"
 
 msgid "this may be caused by a missing self-signature\n"
-msgstr "questo può essere causato da una autofirma mancante\n"
+msgstr "questo può essere causato da una autofirma mancante\n"
 
 #, fuzzy, c-format
 msgid "key %s: public key not found: %s\n"
@@ -2749,7 +2758,7 @@ msgstr "chiave %08lX: nuova chiave - saltata\n"
 
 #, c-format
 msgid "no writable keyring found: %s\n"
-msgstr "non è stato trovato un portachiavi scrivibile: %s\n"
+msgstr "non è stato trovato un portachiavi scrivibile: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing keyring `%s': %s\n"
@@ -2823,7 +2832,7 @@ msgstr "chiave %08lX: chiave segreta importata\n"
 #, fuzzy, c-format
 #| msgid "skipped: secret key already present\n"
 msgid "key %s: secret key already exists\n"
-msgstr "saltata: chiave pubblica già presente\n"
+msgstr "saltata: chiave pubblica già presente\n"
 
 #, fuzzy, c-format
 msgid "key %s: error sending to agent: %s\n"
@@ -2949,14 +2958,14 @@ msgstr "chiave %08lX: trovato un user ID duplicato - unito\n"
 #, fuzzy, c-format
 msgid "WARNING: key %s may be revoked: fetching revocation key %s\n"
 msgstr ""
-"ATTENZIONE: la chiave %08lX può essere stata revocata: scarico la chiave\n"
+"ATTENZIONE: la chiave %08lX può essere stata revocata: scarico la chiave\n"
 "di revoca %08lX.\n"
 
 #, fuzzy, c-format
 msgid "WARNING: key %s may be revoked: revocation key %s not present.\n"
 msgstr ""
-"ATTENZIONE: la chiave %08lX può essere stata revocata: la chiave di\n"
-"revoca %08lX non è presente.\n"
+"ATTENZIONE: la chiave %08lX può essere stata revocata: la chiave di\n"
+"revoca %08lX non è presente.\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" revocation certificate added\n"
@@ -3003,6 +3012,10 @@ msgid "[self-signature]"
 msgstr "[autofirma]"
 
 #, fuzzy, c-format
+msgid "error allocating memory: %s\n"
+msgstr "errore creando il portachiavi `%s': %s\n"
+
+#, fuzzy, c-format
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
 msgstr "chiave %08lX: algoritmo a chiave pubblica non gestito\n"
 
@@ -3022,8 +3035,8 @@ msgstr "saltata `%s': %s\n"
 #, fuzzy, c-format
 msgid "%d duplicate signature removed\n"
 msgid_plural "%d duplicate signatures removed\n"
-msgstr[0] "L'user ID \"%s\" è stato revocato."
-msgstr[1] "L'user ID \"%s\" è stato revocato."
+msgstr[0] "L'user ID \"%s\" è stato revocato."
+msgstr[1] "L'user ID \"%s\" è stato revocato."
 
 #, fuzzy, c-format
 #| msgid "1 signature not checked due to a missing key\n"
@@ -3086,7 +3099,7 @@ msgstr ""
 
 #, c-format
 msgid "User ID \"%s\" is revoked."
-msgstr "L'user ID \"%s\" è stato revocato."
+msgstr "L'user ID \"%s\" è stato revocato."
 
 msgid "Are you sure you still want to sign it? (y/N) "
 msgstr "Sei ancora sicuro di volerla firmare? (s/N) "
@@ -3096,15 +3109,15 @@ msgstr "  Impossibile firmarla.\n"
 
 #, c-format
 msgid "User ID \"%s\" is expired."
-msgstr "L'user ID \"%s\" è scaduto."
+msgstr "L'user ID \"%s\" è scaduto."
 
 #, c-format
 msgid "User ID \"%s\" is not self-signed."
-msgstr "L'user ID \"%s\" non è autofirmato."
+msgstr "L'user ID \"%s\" non è autofirmato."
 
 #, fuzzy, c-format
 msgid "User ID \"%s\" is signable.  "
-msgstr "L'user ID \"%s\" non è autofirmato."
+msgstr "L'user ID \"%s\" non è autofirmato."
 
 #, fuzzy
 msgid "Sign it? (y/N) "
@@ -3116,7 +3129,7 @@ msgid ""
 "is a PGP 2.x-style signature.\n"
 msgstr ""
 "L'autofirma su \"%s\"\n"
-"è una firma in stile PGP 2.x.\n"
+"è una firma in stile PGP 2.x.\n"
 
 msgid "Do you want to promote it to an OpenPGP self-signature? (y/N) "
 msgstr "Vuoi promuoverla in una autofirma di OpenPGP? (s/N) "
@@ -3127,7 +3140,7 @@ msgid ""
 "has expired.\n"
 msgstr ""
 "La tua firma attuale su \"%s\"\n"
-"è scaduta\n"
+"è scaduta\n"
 
 msgid "Do you want to issue a new signature to replace the expired one? (y/N) "
 msgstr "Vuoi fare una nuova firma per sostituire quella scaduta? (s/N) "
@@ -3138,18 +3151,18 @@ msgid ""
 "is a local signature.\n"
 msgstr ""
 "La tua firma attuale su \"%s\"\n"
-"è una firma locale.\n"
+"è una firma locale.\n"
 
 msgid "Do you want to promote it to a full exportable signature? (y/N) "
 msgstr "Vuoi trasformarla in una firma completa esportabile? (s/N) "
 
 #, fuzzy, c-format
 msgid "\"%s\" was already locally signed by key %s\n"
-msgstr "\"%s\" era già stato firmato localmente dalla chiave %08lX\n"
+msgstr "\"%s\" era già stato firmato localmente dalla chiave %08lX\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" was already signed by key %s\n"
-msgstr "\"%s\" era già stato firmato dalla chiave %08lX\n"
+msgstr "\"%s\" era già stato firmato dalla chiave %08lX\n"
 
 msgid "Do you want to sign it again anyway? (y/N) "
 msgstr "Sei ancora sicuro di volerla firmare di nuovo? (s/N) "
@@ -3159,11 +3172,11 @@ msgid "Nothing to sign with key %s\n"
 msgstr "Niente da firmare con la chiave %08lX\n"
 
 msgid "This key has expired!"
-msgstr "Questa chiave è scaduta!"
+msgstr "Questa chiave è scaduta!"
 
 #, c-format
 msgid "This key is due to expire on %s.\n"
-msgstr "Questa chiave scadrà il %s.\n"
+msgstr "Questa chiave scadrà il %s.\n"
 
 msgid "Do you want your signature to expire at the same time? (Y/n) "
 msgstr "Vuoi che la tua firma scada nello stesso momento? (S/n) "
@@ -3209,31 +3222,31 @@ msgstr ""
 msgid "This will be a self-signature.\n"
 msgstr ""
 "\n"
-"Questa sarà una autofirma.\n"
+"Questa sarà una autofirma.\n"
 
 #, fuzzy
 msgid "WARNING: the signature will not be marked as non-exportable.\n"
 msgstr ""
 "\n"
-"ATTENZIONE: la firma non sarà marcata come non esportabile.\n"
+"ATTENZIONE: la firma non sarà marcata come non esportabile.\n"
 
 #, fuzzy
 msgid "WARNING: the signature will not be marked as non-revocable.\n"
 msgstr ""
 "\n"
-"ATTENZIONE: la firma sarà marcata come irrevocabile.\n"
+"ATTENZIONE: la firma sarà marcata come irrevocabile.\n"
 
 #, fuzzy
 msgid "The signature will be marked as non-exportable.\n"
 msgstr ""
 "\n"
-"La firma sarà marcata come non esportabile.\n"
+"La firma sarà marcata come non esportabile.\n"
 
 #, fuzzy
 msgid "The signature will be marked as non-revocable.\n"
 msgstr ""
 "\n"
-"La firma sarà marcata come irrevocabile.\n"
+"La firma sarà marcata come irrevocabile.\n"
 
 #, fuzzy
 msgid "I have not checked this key at all.\n"
@@ -3344,7 +3357,7 @@ msgstr "Aggiorno davvero le preferenze per gli user ID selezionati? "
 
 #, fuzzy
 msgid "change the expiration date for the key or selected subkeys"
-msgstr "Non è possibile cambiare la data di scadenza di una chiave v3\n"
+msgstr "Non è possibile cambiare la data di scadenza di una chiave v3\n"
 
 #, fuzzy
 msgid "flag the selected user ID as primary"
@@ -3405,7 +3418,7 @@ msgid "compact unusable user IDs and remove all signatures from key"
 msgstr ""
 
 msgid "Secret key is available.\n"
-msgstr "È disponibile una chiave segreta.\n"
+msgstr "È disponibile una chiave segreta.\n"
 
 msgid "Need the secret key to do this.\n"
 msgstr "Per fare questo serve la chiave segreta.\n"
@@ -3418,7 +3431,7 @@ msgid ""
 msgstr ""
 
 msgid "Key is revoked."
-msgstr "La chiave è stata revocata."
+msgstr "La chiave è stata revocata."
 
 #, fuzzy
 msgid "Really sign all user IDs? (y/N) "
@@ -3437,7 +3450,7 @@ msgstr "classe della firma sconosciuta"
 
 #, c-format
 msgid "This command is not allowed while in %s mode.\n"
-msgstr "Questo comando non è permesso in modalità %s.\n"
+msgstr "Questo comando non è permesso in modalità %s.\n"
 
 msgid "You must select at least one user ID.\n"
 msgstr "Devi selezionare almeno un user ID.\n"
@@ -3537,7 +3550,7 @@ msgid "update failed: %s\n"
 msgstr "aggiornamento fallito: %s\n"
 
 msgid "Key not changed so no update needed.\n"
-msgstr "La chiave non è cambiata quindi non sono necessari aggiornamenti.\n"
+msgstr "La chiave non è cambiata quindi non sono necessari aggiornamenti.\n"
 
 #, fuzzy, c-format
 #| msgid "Key generation failed: %s\n"
@@ -3587,11 +3600,11 @@ msgstr "Non esistono preferense su un user ID in stile PGP 2.x\n"
 
 #, fuzzy, c-format
 msgid "The following key was revoked on %s by %s key %s\n"
-msgstr "Questa chiave può essere revocata dalla chiave %s "
+msgstr "Questa chiave può essere revocata dalla chiave %s "
 
 #, fuzzy, c-format
 msgid "This key may be revoked by %s key %s"
-msgstr "Questa chiave può essere revocata dalla chiave %s "
+msgstr "Questa chiave può essere revocata dalla chiave %s "
 
 #, fuzzy
 msgid "(sensitive)"
@@ -3629,15 +3642,15 @@ msgid "validity: %s"
 msgstr ""
 
 msgid "This key has been disabled"
-msgstr "Questa chiave è stata disabilitata"
+msgstr "Questa chiave è stata disabilitata"
 
 msgid ""
 "Please note that the shown key validity is not necessarily correct\n"
 "unless you restart the program.\n"
 msgstr ""
-"Nota che la validità della chiave indicata non sarà necessariamente "
+"Nota che la validità della chiave indicata non sarà necessariamente "
 "corretta\n"
-"finchè non eseguirai di nuovo il programma.\n"
+"finchè non eseguirai di nuovo il programma.\n"
 
 #, fuzzy
 msgid "revoked"
@@ -3651,7 +3664,7 @@ msgid ""
 "WARNING: no user ID has been marked as primary.  This command may\n"
 "              cause a different user ID to become the assumed primary.\n"
 msgstr ""
-"ATTENZIONE: nessun user ID è stato indicato come primario. Questo comando\n"
+"ATTENZIONE: nessun user ID è stato indicato come primario. Questo comando\n"
 "            potrebbe fare diventare un altro user ID il primario "
 "predefinito.\n"
 
@@ -3661,22 +3674,22 @@ msgstr ""
 #, fuzzy
 #| msgid "You can't change the expiration date of a v3 key\n"
 msgid "You may want to change its expiration date too.\n"
-msgstr "Non è possibile cambiare la data di scadenza di una chiave v3\n"
+msgstr "Non è possibile cambiare la data di scadenza di una chiave v3\n"
 
 msgid ""
 "WARNING: This is a PGP2-style key.  Adding a photo ID may cause some "
 "versions\n"
 "         of PGP to reject this key.\n"
 msgstr ""
-"ATTENZIONE: Questa è una chiave in stile PGP2. Aggiungere un ID fotografico\n"
-"            può causarne il rifiuto da parte di alcune versioni di PGP.\n"
+"ATTENZIONE: Questa è una chiave in stile PGP2. Aggiungere un ID fotografico\n"
+"            può causarne il rifiuto da parte di alcune versioni di PGP.\n"
 
 msgid "Are you sure you still want to add it? (y/N) "
 msgstr "Sei ancora sicuro di volerlo aggiungere? (s/N) "
 
 msgid "You may not add a photo ID to a PGP2-style key.\n"
 msgstr ""
-"Non è possibile aggiungere un ID fotografico a una chiave in stile PGP2.\n"
+"Non è possibile aggiungere un ID fotografico a una chiave in stile PGP2.\n"
 
 msgid "Such a user ID already exists on this key!\n"
 msgstr ""
@@ -3701,7 +3714,7 @@ msgstr[0] "Cancellata %d firma.\n"
 msgstr[1] "Cancellata %d firma.\n"
 
 msgid "Nothing deleted.\n"
-msgstr "Non è stato cancellato nulla.\n"
+msgstr "Non è stato cancellato nulla.\n"
 
 #, fuzzy
 msgid "invalid"
@@ -3709,34 +3722,34 @@ msgstr "armatura non valida"
 
 #, fuzzy, c-format
 msgid "User ID \"%s\" compacted: %s\n"
-msgstr "L'user ID \"%s\" è stato revocato."
+msgstr "L'user ID \"%s\" è stato revocato."
 
 #, fuzzy, c-format
 msgid "User ID \"%s\": %d signature removed\n"
 msgid_plural "User ID \"%s\": %d signatures removed\n"
-msgstr[0] "L'user ID \"%s\" è stato revocato."
-msgstr[1] "L'user ID \"%s\" è stato revocato."
+msgstr[0] "L'user ID \"%s\" è stato revocato."
+msgstr[1] "L'user ID \"%s\" è stato revocato."
 
 #, fuzzy, c-format
 msgid "User ID \"%s\": already minimized\n"
-msgstr "l'user ID \"%s\" è già stato revocato\n"
+msgstr "l'user ID \"%s\" è già stato revocato\n"
 
 #, fuzzy, c-format
 msgid "User ID \"%s\": already clean\n"
-msgstr "l'user ID \"%s\" è già stato revocato\n"
+msgstr "l'user ID \"%s\" è già stato revocato\n"
 
 msgid ""
 "WARNING: This is a PGP 2.x-style key.  Adding a designated revoker may "
 "cause\n"
 "         some versions of PGP to reject this key.\n"
 msgstr ""
-"ATTENZIONE: Questa è una chiave in stile PGP 2.x. Aggiungere un revocatore\n"
-"            designato può causarne il rifiuto da parte di alcune versioni\n"
+"ATTENZIONE: Questa è una chiave in stile PGP 2.x. Aggiungere un revocatore\n"
+"            designato può causarne il rifiuto da parte di alcune versioni\n"
 "            di PGP.\n"
 
 msgid "You may not add a designated revoker to a PGP 2.x-style key.\n"
 msgstr ""
-"Non è possibile aggiungere un revocatore designato a una chiave in stile\n"
+"Non è possibile aggiungere un revocatore designato a una chiave in stile\n"
 "PGP 2.x.\n"
 
 msgid "Enter the user ID of the designated revoker: "
@@ -3748,16 +3761,16 @@ msgstr ""
 
 msgid "you cannot appoint a key as its own designated revoker\n"
 msgstr ""
-"impossibile nominare una chiave come revocatore designato di sè stessa\n"
+"impossibile nominare una chiave come revocatore designato di sè stessa\n"
 
 #, fuzzy
 msgid "this key has already been designated as a revoker\n"
 msgstr ""
-"ATTENZIONE: questa chiave è stata revocata dal suo revocatore designato!\n"
+"ATTENZIONE: questa chiave è stata revocata dal suo revocatore designato!\n"
 
 msgid "WARNING: appointing a key as a designated revoker cannot be undone!\n"
 msgstr ""
-"ATTENZIONE: la nomina di una chiave a revocatrice designata non può essere\n"
+"ATTENZIONE: la nomina di una chiave a revocatrice designata non può essere\n"
 "annullata.\n"
 
 #, fuzzy
@@ -3781,7 +3794,7 @@ msgid "Changing expiration time for the primary key.\n"
 msgstr "Cambio la data di scadenza per la chiave primaria.\n"
 
 msgid "You can't change the expiration date of a v3 key\n"
-msgstr "Non è possibile cambiare la data di scadenza di una chiave v3\n"
+msgstr "Non è possibile cambiare la data di scadenza di una chiave v3\n"
 
 #, fuzzy, c-format
 msgid "signing subkey %s is already cross-certified\n"
@@ -3848,7 +3861,7 @@ msgstr " (non esportabile)"
 
 #, c-format
 msgid "This signature expired on %s.\n"
-msgstr "Questa chiave è scaduta il %s.\n"
+msgstr "Questa chiave è scaduta il %s.\n"
 
 msgid "Are you sure you still want to revoke it? (y/N) "
 msgstr "Sei ancora sicuro di volerlo aggiungere? (s/N) "
@@ -3887,7 +3900,7 @@ msgstr ""
 
 #, c-format
 msgid "user ID \"%s\" is already revoked\n"
-msgstr "l'user ID \"%s\" è già stato revocato\n"
+msgstr "l'user ID \"%s\" è già stato revocato\n"
 
 #, c-format
 msgid "WARNING: a user ID signature is dated %d seconds in the future\n"
@@ -3896,11 +3909,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "Key %s is already revoked.\n"
-msgstr "l'user ID \"%s\" è già stato revocato\n"
+msgstr "l'user ID \"%s\" è già stato revocato\n"
 
 #, fuzzy, c-format
 msgid "Subkey %s is already revoked.\n"
-msgstr "l'user ID \"%s\" è già stato revocato\n"
+msgstr "l'user ID \"%s\" è già stato revocato\n"
 
 #, fuzzy, c-format
 msgid "Displaying %s photo ID of size %ld for key %s (uid %d)\n"
@@ -3909,7 +3922,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "preference '%s' duplicated\n"
-msgstr "la preferenza %c%lu è doppia\n"
+msgstr "la preferenza %c%lu è doppia\n"
 
 #, fuzzy
 msgid "too many cipher preferences\n"
@@ -4085,7 +4098,7 @@ msgstr "Di che dimensioni vuoi la chiave? (1024) "
 
 #, c-format
 msgid "Requested keysize is %u bits\n"
-msgstr "La dimensione richiesta della chiave è %u bit\n"
+msgstr "La dimensione richiesta della chiave è %u bit\n"
 
 #, fuzzy
 #| msgid "Please select what kind of key you want:\n"
@@ -4100,12 +4113,12 @@ msgid ""
 "      <n>m = key expires in n months\n"
 "      <n>y = key expires in n years\n"
 msgstr ""
-"Per favore specifica per quanto tempo la chiave sarà valida.\n"
-"         0 = la chiave non scadrà\n"
-"      <n>  = la chiave scadrà dopo n giorni\n"
-"      <n>w = la chiave scadrà dopo n settimane\n"
-"      <n>m = la chiave scadrà dopo n mesi\n"
-"      <n>y = la chiave scadrà dopo n anni\n"
+"Per favore specifica per quanto tempo la chiave sarà valida.\n"
+"         0 = la chiave non scadrà\n"
+"      <n>  = la chiave scadrà dopo n giorni\n"
+"      <n>w = la chiave scadrà dopo n settimane\n"
+"      <n>m = la chiave scadrà dopo n mesi\n"
+"      <n>y = la chiave scadrà dopo n anni\n"
 
 msgid ""
 "Please specify how long the signature should be valid.\n"
@@ -4115,12 +4128,12 @@ msgid ""
 "      <n>m = signature expires in n months\n"
 "      <n>y = signature expires in n years\n"
 msgstr ""
-"Per favore specifica per quanto tempo la firma sarà valida.\n"
-"         0 = la chiave non scadrà\n"
-"      <n>  = la chiave scadrà dopo n giorni\n"
-"      <n>w = la chiave scadrà dopo n settimane\n"
-"      <n>m = la chiave scadrà dopo n mesi\n"
-"      <n>y = la chiave scadrà dopo n anni\n"
+"Per favore specifica per quanto tempo la firma sarà valida.\n"
+"         0 = la chiave non scadrà\n"
+"      <n>  = la chiave scadrà dopo n giorni\n"
+"      <n>w = la chiave scadrà dopo n settimane\n"
+"      <n>m = la chiave scadrà dopo n mesi\n"
+"      <n>y = la chiave scadrà dopo n anni\n"
 
 msgid "Key is valid for? (0) "
 msgstr "Chiave valida per? (0) "
@@ -4142,22 +4155,22 @@ msgstr "%s non ha scadenza\n"
 
 #, fuzzy, c-format
 msgid "Key expires at %s\n"
-msgstr "%s scadrà il %s\n"
+msgstr "%s scadrà il %s\n"
 
 #, fuzzy, c-format
 msgid "Signature expires at %s\n"
-msgstr "Questa firma scadrà il %s\n"
+msgstr "Questa firma scadrà il %s\n"
 
 msgid ""
 "Your system can't display dates beyond 2038.\n"
 "However, it will be correctly handled up to 2106.\n"
 msgstr ""
-"Il tuo sistema non può mostrare date oltre il 2038.\n"
-"Comunque, sarà gestita correttamente fino al 2106.\n"
+"Il tuo sistema non può mostrare date oltre il 2038.\n"
+"Comunque, sarà gestita correttamente fino al 2106.\n"
 
 #, fuzzy
 msgid "Is this correct? (y/N) "
-msgstr "È giusto (s/n)? "
+msgstr "È giusto (s/n)? "
 
 msgid ""
 "\n"
@@ -4196,7 +4209,7 @@ msgid "The characters '%s' and '%s' may not appear in name\n"
 msgstr ""
 
 msgid "Name may not start with a digit\n"
-msgstr "Il nome non può iniziare con una cifra\n"
+msgstr "Il nome non può iniziare con una cifra\n"
 
 msgid "Name must be at least 5 characters long\n"
 msgstr "Il nome deve essere lungo almeno 5 caratteri\n"
@@ -4205,7 +4218,7 @@ msgid "Email address: "
 msgstr "Indirizzo di Email: "
 
 msgid "Not a valid email address\n"
-msgstr "L'indirizzo di email non è valido\n"
+msgstr "L'indirizzo di email non è valido\n"
 
 msgid "Comment: "
 msgstr "Commento: "
@@ -4270,10 +4283,10 @@ msgid ""
 "disks) during the prime generation; this gives the random number\n"
 "generator a better chance to gain enough entropy.\n"
 msgstr ""
-"Dobbiamo generare un mucchio di byte casuali. È una buona idea eseguire\n"
+"Dobbiamo generare un mucchio di byte casuali. È una buona idea eseguire\n"
 "qualche altra azione (scrivere sulla tastiera, muovere il mouse, usare i\n"
 "dischi) durante la generazione dei numeri primi; questo da al generatore di\n"
-"numeri casuali migliori possibilità di raccogliere abbastanza entropia.\n"
+"numeri casuali migliori possibilità di raccogliere abbastanza entropia.\n"
 
 #, c-format
 msgid "Key generation failed: %s\n"
@@ -4291,7 +4304,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "A key for \"%s\" already exists\n"
-msgstr "`%s' è già compresso\n"
+msgstr "`%s' è già compresso\n"
 
 #, fuzzy
 msgid "Create anyway? (y/N) "
@@ -4323,7 +4336,7 @@ msgstr "scrittura della chiave pubblica in `%s'\n"
 
 #, c-format
 msgid "no writable public keyring found: %s\n"
-msgstr "non è stato trovato un portachiavi pubblico scrivibile: %s\n"
+msgstr "non è stato trovato un portachiavi pubblico scrivibile: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing public keyring `%s': %s\n"
@@ -4338,7 +4351,7 @@ msgid ""
 "Note that this key cannot be used for encryption.  You may want to use\n"
 "the command \"--edit-key\" to generate a subkey for this purpose.\n"
 msgstr ""
-"Nota che questa chiave non può essere usata per cifrare. Forse vorrai usare\n"
+"Nota che questa chiave non può essere usata per cifrare. Forse vorrai usare\n"
 "il comando \"--edit-key\" per generare una chiave secondaria per questo "
 "scopo.\n"
 
@@ -4346,14 +4359,14 @@ msgstr ""
 msgid ""
 "key has been created %lu second in future (time warp or clock problem)\n"
 msgstr ""
-"la chiave è stata creata %lu secondo nel futuro (salto nel tempo o problema\n"
+"la chiave è stata creata %lu secondo nel futuro (salto nel tempo o problema\n"
 "con l'orologio)\n"
 
 #, c-format
 msgid ""
 "key has been created %lu seconds in future (time warp or clock problem)\n"
 msgstr ""
-"la chiave è stata creata %lu secondi nel futuro (salto nel tempo o problema\n"
+"la chiave è stata creata %lu secondi nel futuro (salto nel tempo o problema\n"
 "con l'orologio)\n"
 
 #, fuzzy
@@ -4478,7 +4491,7 @@ msgstr ""
 
 #, fuzzy
 msgid "honor the preferred keyserver URL set on the key"
-msgstr "l'URL della politica di firma indicato non è valido\n"
+msgstr "l'URL della politica di firma indicato non è valido\n"
 
 msgid "honor the PKA record set on a key when retrieving keys"
 msgstr ""
@@ -4564,7 +4577,7 @@ msgstr "cifrato con l'algoritmo sconosciuto %d\n"
 
 #, fuzzy, c-format
 msgid "public key is %s\n"
-msgstr "la chiave pubblica è %08lX\n"
+msgstr "la chiave pubblica è %08lX\n"
 
 msgid "public key encrypted data: good DEK\n"
 msgstr "dati cifrati con la chiave pubblica: DEK corretto\n"
@@ -4601,13 +4614,13 @@ msgid "IDEA cipher unavailable, optimistically attempting to use %s instead\n"
 msgstr "Cifrario IDEA non disponibile, ottimisticamente cerco di usare %s\n"
 
 msgid "WARNING: message was not integrity protected\n"
-msgstr "ATTENZIONE: l'integrità del messaggio non era protetta\n"
+msgstr "ATTENZIONE: l'integrità del messaggio non era protetta\n"
 
 msgid "decryption okay\n"
 msgstr "decifratura corretta\n"
 
 msgid "WARNING: encrypted message has been manipulated!\n"
-msgstr "ATTENZIONE: il messaggio cifrato è stato manipolato!\n"
+msgstr "ATTENZIONE: il messaggio cifrato è stato manipolato!\n"
 
 #, c-format
 msgid "decryption failed: %s\n"
@@ -4683,7 +4696,7 @@ msgstr "Firma scaduta il %s\n"
 
 #, c-format
 msgid "Signature expires %s\n"
-msgstr "Questa firma scadrà il %s\n"
+msgstr "Questa firma scadrà il %s\n"
 
 #, fuzzy, c-format
 #| msgid "%s signature, digest algorithm %s\n"
@@ -4713,11 +4726,11 @@ msgid "Can't check signature: %s\n"
 msgstr "Impossibile controllare la firma: %s\n"
 
 msgid "not a detached signature\n"
-msgstr "non è una firma separata\n"
+msgstr "non è una firma separata\n"
 
 msgid ""
 "WARNING: multiple signatures detected.  Only the first will be checked.\n"
-msgstr "ATTENZIONE: trovate firme multiple. Sarà controllata solo la prima.\n"
+msgstr "ATTENZIONE: trovate firme multiple. Sarà controllata solo la prima.\n"
 
 #, c-format
 msgid "standalone signature of class 0x%02x\n"
@@ -4774,11 +4787,11 @@ msgstr ""
 
 #, c-format
 msgid "%s:%d: deprecated option \"%s\"\n"
-msgstr "%s:%d \"%s\" è una opzione deprecata\n"
+msgstr "%s:%d \"%s\" è una opzione deprecata\n"
 
 #, c-format
 msgid "WARNING: \"%s\" is a deprecated option\n"
-msgstr "ATTENZIONE: \"%s\" è una opzione deprecata\n"
+msgstr "ATTENZIONE: \"%s\" è una opzione deprecata\n"
 
 #, c-format
 msgid "please use \"%s%s\" instead\n"
@@ -4786,16 +4799,16 @@ msgstr "usa al suo posto \"%s%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: \"%s\" is a deprecated command - do not use it\n"
-msgstr "ATTENZIONE: \"%s\" è una opzione deprecata\n"
+msgstr "ATTENZIONE: \"%s\" è una opzione deprecata\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: \"%s\" is obsolete in this file - it only has effect in %s\n"
-msgstr "ATTENZIONE: \"%s\" è una opzione deprecata\n"
+msgstr "ATTENZIONE: \"%s\" è una opzione deprecata\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: \"%s%s\" is an obsolete option - it has no effect except on %s\n"
-msgstr "ATTENZIONE: \"%s\" è una opzione deprecata\n"
+msgstr "ATTENZIONE: \"%s\" è una opzione deprecata\n"
 
 msgid "Uncompressed"
 msgstr "Non compresso"
@@ -4807,7 +4820,7 @@ msgstr "Non compresso"
 
 #, c-format
 msgid "this message may not be usable by %s\n"
-msgstr "questo messaggio può non essere utilizzabile da %s\n"
+msgstr "questo messaggio può non essere utilizzabile da %s\n"
 
 #, fuzzy, c-format
 msgid "ambiguous option '%s'\n"
@@ -4866,7 +4879,7 @@ msgstr "impossibile gestire l'algoritmo a chiave pubblica %d\n"
 
 msgid "WARNING: potentially insecure symmetrically encrypted session key\n"
 msgstr ""
-"ATTENZIONE: la chiave di sessione cifrata simmetricamente è potenzialmente\n"
+"ATTENZIONE: la chiave di sessione cifrata simmetricamente è potenzialmente\n"
 "non sicura\n"
 
 #, c-format
@@ -4889,19 +4902,19 @@ msgstr " (key ID principale %08lX)"
 
 #, fuzzy
 msgid "Please enter the passphrase to unlock the OpenPGP secret key:"
-msgstr "Inserisci la passphrase, cioè una frase segreta \n"
+msgstr "Inserisci la passphrase, cioè una frase segreta \n"
 
 #, fuzzy
 msgid "Please enter the passphrase to import the OpenPGP secret key:"
-msgstr "Inserisci la passphrase, cioè una frase segreta \n"
+msgstr "Inserisci la passphrase, cioè una frase segreta \n"
 
 #, fuzzy
 msgid "Please enter the passphrase to export the OpenPGP secret subkey:"
-msgstr "Inserisci la passphrase, cioè una frase segreta \n"
+msgstr "Inserisci la passphrase, cioè una frase segreta \n"
 
 #, fuzzy
 msgid "Please enter the passphrase to export the OpenPGP secret key:"
-msgstr "Inserisci la passphrase, cioè una frase segreta \n"
+msgstr "Inserisci la passphrase, cioè una frase segreta \n"
 
 #, fuzzy
 msgid "Do you really want to permanently delete the OpenPGP secret subkey key:"
@@ -4930,9 +4943,9 @@ msgstr ""
 "\n"
 "Scegli un'immagine da usare per l'identificazione fotografica. L'immagine "
 "deve\n"
-"essere un file JPEG. Ricorda che l'immagine è immagazzinata nella tua "
+"essere un file JPEG. Ricorda che l'immagine è immagazzinata nella tua "
 "chiave\n"
-"pubblica, se usi una immagine molto grande anche la tua chiave diventerà "
+"pubblica, se usi una immagine molto grande anche la tua chiave diventerà "
 "molto\n"
 "grande! Dimensioni vicine a 240x288 sono una buona scelta.\n"
 
@@ -4953,10 +4966,10 @@ msgstr "Sei sicuro di volerla usare? (s/N) "
 
 #, fuzzy, c-format
 msgid "'%s' is not a JPEG file\n"
-msgstr "\"%s\": non è un file JPEG\n"
+msgstr "\"%s\": non è un file JPEG\n"
 
 msgid "Is this photo correct (y/N/q)? "
-msgstr "Questa foto è giusta? (s/N/q) "
+msgstr "Questa foto è giusta? (s/N/q) "
 
 msgid "unable to display photo ID!\n"
 msgstr "impossibile mostrare l'ID fotografico\n"
@@ -4965,16 +4978,16 @@ msgid "No reason specified"
 msgstr "Nessuna ragione specificata"
 
 msgid "Key is superseded"
-msgstr "Questa chiave è stata sostituita"
+msgstr "Questa chiave è stata sostituita"
 
 msgid "Key has been compromised"
-msgstr "Questa chiave è stata compromessa"
+msgstr "Questa chiave è stata compromessa"
 
 msgid "Key is no longer used"
-msgstr "La chiave non è più usata"
+msgstr "La chiave non è più usata"
 
 msgid "User ID is no longer valid"
-msgstr "L'user ID non è più valido"
+msgstr "L'user ID non è più valido"
 
 msgid "reason for revocation: "
 msgstr "ragione della revoca: "
@@ -5024,7 +5037,7 @@ msgstr " %d = Mi fido definitivamente\n"
 
 #, fuzzy
 msgid "  m = back to the main menu\n"
-msgstr " m = torna al menù principale\n"
+msgstr " m = torna al menù principale\n"
 
 #, fuzzy
 msgid "  s = skip this key\n"
@@ -5067,15 +5080,30 @@ msgstr "Questa chiave probabilmente appartiene al proprietario\n"
 msgid "This key belongs to us\n"
 msgstr "Questa chiave ci appartiene\n"
 
+#, c-format
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr ""
+
+#, fuzzy
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"NON è sicuro che la chiave appartenga alla persona indicata.\n"
+"nell'user ID. Se sai *davvero* cosa stai facendo, puoi\n"
+"rispondere sì alla prossima domanda.\n"
+"\n"
+
 #, fuzzy
 msgid ""
 "It is NOT certain that the key belongs to the person named\n"
 "in the user ID.  If you *really* know what you are doing,\n"
 "you may answer the next question with yes.\n"
 msgstr ""
-"NON è sicuro che la chiave appartenga alla persona indicata.\n"
+"NON è sicuro che la chiave appartenga alla persona indicata.\n"
 "nell'user ID. Se sai *davvero* cosa stai facendo, puoi\n"
-"rispondere sì alla prossima domanda.\n"
+"rispondere sì alla prossima domanda.\n"
 "\n"
 
 #, fuzzy
@@ -5087,25 +5115,25 @@ msgstr "ATTENZIONE: uso di una chiave non fidata!\n"
 
 msgid "WARNING: this key might be revoked (revocation key not present)\n"
 msgstr ""
-"ATTENZIONE: questa chiave può essere stata revocata (la chiave di revoca\n"
-"non è presente).\n"
+"ATTENZIONE: questa chiave può essere stata revocata (la chiave di revoca\n"
+"non è presente).\n"
 
 msgid "WARNING: This key has been revoked by its designated revoker!\n"
 msgstr ""
-"ATTENZIONE: questa chiave è stata revocata dal suo revocatore designato!\n"
+"ATTENZIONE: questa chiave è stata revocata dal suo revocatore designato!\n"
 
 msgid "WARNING: This key has been revoked by its owner!\n"
-msgstr "ATTENZIONE: questa chiave è stata revocata dal suo proprietario!\n"
+msgstr "ATTENZIONE: questa chiave è stata revocata dal suo proprietario!\n"
 
 #, fuzzy
 msgid "         This could mean that the signature is forged.\n"
-msgstr "         Questo può significare che la firma è stata falsificata.\n"
+msgstr "         Questo può significare che la firma è stata falsificata.\n"
 
 msgid "WARNING: This subkey has been revoked by its owner!\n"
-msgstr "ATTENZIONE: questa subchiave è stata revocata dal proprietario!\n"
+msgstr "ATTENZIONE: questa subchiave è stata revocata dal proprietario!\n"
 
 msgid "Note: This key has been disabled.\n"
-msgstr "Nota: questa chiave è stata disabilitata.\n"
+msgstr "Nota: questa chiave è stata disabilitata.\n"
 
 #, c-format
 msgid "Note: Verified signer's address is '%s'\n"
@@ -5122,10 +5150,10 @@ msgid "trustlevel adjusted to NEVER due to bad PKA info\n"
 msgstr ""
 
 msgid "Note: This key has expired!\n"
-msgstr "Nota: questa chiave è scaduta!\n"
+msgstr "Nota: questa chiave è scaduta!\n"
 
 msgid "WARNING: This key is not certified with a trusted signature!\n"
-msgstr "ATTENZIONE: questa chiave non è certificata con una firma fidata!\n"
+msgstr "ATTENZIONE: questa chiave non è certificata con una firma fidata!\n"
 
 msgid ""
 "         There is no indication that the signature belongs to the owner.\n"
@@ -5136,15 +5164,15 @@ msgid "WARNING: We do NOT trust this key!\n"
 msgstr "ATTENZIONE: NON ci fidiamo di questa chiave!\n"
 
 msgid "         The signature is probably a FORGERY.\n"
-msgstr "          La firma è probabilmente un FALSO.\n"
+msgstr "          La firma è probabilmente un FALSO.\n"
 
 msgid ""
 "WARNING: This key is not certified with sufficiently trusted signatures!\n"
 msgstr ""
-"ATTENZIONE: questa chiave non è certificata con firme abbastanza fidate!\n"
+"ATTENZIONE: questa chiave non è certificata con firme abbastanza fidate!\n"
 
 msgid "         It is not certain that the signature belongs to the owner.\n"
-msgstr "         Non è sicuro che la firma appartenga al proprietario.\n"
+msgstr "         Non è sicuro che la firma appartenga al proprietario.\n"
 
 #, c-format
 msgid "%s: skipped: %s\n"
@@ -5156,7 +5184,7 @@ msgstr "%s: saltata: chiave pubblica disabilitata\n"
 
 #, c-format
 msgid "%s: skipped: public key already present\n"
-msgstr "%s: saltata: chiave pubblica già presente\n"
+msgstr "%s: saltata: chiave pubblica già presente\n"
 
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
@@ -5188,13 +5216,13 @@ msgid "No such user ID.\n"
 msgstr "User ID inesistente.\n"
 
 msgid "skipped: public key already set as default recipient\n"
-msgstr "saltata: chiave pubblica già impostata come destinatario predefinito\n"
+msgstr "saltata: chiave pubblica già impostata come destinatario predefinito\n"
 
 msgid "Public key is disabled.\n"
-msgstr "La chiave pubblica è disabilitata.\n"
+msgstr "La chiave pubblica è disabilitata.\n"
 
 msgid "skipped: public key already set\n"
-msgstr "saltata: chiave pubblica già impostata\n"
+msgstr "saltata: chiave pubblica già impostata\n"
 
 #, fuzzy, c-format
 msgid "unknown default recipient \"%s\"\n"
@@ -5244,16 +5272,16 @@ msgid "okay, we are the anonymous recipient.\n"
 msgstr "bene, siamo il destinatario anonimo.\n"
 
 msgid "old encoding of the DEK is not supported\n"
-msgstr "la vecchia codifica del DEK non è gestita\n"
+msgstr "la vecchia codifica del DEK non è gestita\n"
 
 #, c-format
 msgid "cipher algorithm %d%s is unknown or disabled\n"
-msgstr "l'algoritmo di cifratura %d%s è sconosciuto o disattivato\n"
+msgstr "l'algoritmo di cifratura %d%s è sconosciuto o disattivato\n"
 
 #, fuzzy, c-format
 msgid "WARNING: cipher algorithm %s not found in recipient preferences\n"
 msgstr ""
-"NOTA: l'algoritmo di cifratura %d non è stato trovato tra le preferenze\n"
+"NOTA: l'algoritmo di cifratura %d non è stato trovato tra le preferenze\n"
 
 #, fuzzy, c-format
 msgid "Note: secret key %s expired at %s\n"
@@ -5262,7 +5290,7 @@ msgstr "NOTA: chiave %08lX scaduta il %s\n"
 #, fuzzy
 #| msgid "NOTE: key has been revoked"
 msgid "Note: key has been revoked"
-msgstr "NOTA: la chiave è stata revocata"
+msgstr "NOTA: la chiave è stata revocata"
 
 #, c-format
 msgid "build_packet failed: %s\n"
@@ -5276,12 +5304,12 @@ msgid "To be revoked by:\n"
 msgstr "Revocabile da:\n"
 
 msgid "(This is a sensitive revocation key)\n"
-msgstr "(Questa è una chiave di revoca sensibile)\n"
+msgstr "(Questa è una chiave di revoca sensibile)\n"
 
 #, fuzzy
 #| msgid "Secret key is available.\n"
 msgid "Secret key is not available.\n"
-msgstr "È disponibile una chiave segreta.\n"
+msgstr "È disponibile una chiave segreta.\n"
 
 #, fuzzy
 msgid "Create a designated revocation certificate for this key? (y/N) "
@@ -5362,8 +5390,8 @@ msgstr ""
 "Creato un certificato di revoca.\n"
 "\n"
 "Per favore spostalo su un media che puoi nascondere; se l'uomo nel mezzo\n"
-"riuscirà ad accedere a questo certificato potrà usarlo per rendere\n"
-"inutilizzabile la tua chiave. È una buona idea stamparlo ed archiviarlo,\n"
+"riuscirà ad accedere a questo certificato potrà usarlo per rendere\n"
+"inutilizzabile la tua chiave. È una buona idea stamparlo ed archiviarlo,\n"
 "nel caso il media diventasse illeggibile. Ma fai attenzione: il sistema di\n"
 "stampa della tua macchina potrebbe immagazzinare i dati e renderli "
 "disponibili\n"
@@ -5387,11 +5415,11 @@ msgid "Reason for revocation: %s\n"
 msgstr "Motivo della revoca: %s\n"
 
 msgid "(No description given)\n"
-msgstr "(Non è stata data una descrizione)\n"
+msgstr "(Non è stata data una descrizione)\n"
 
 #, fuzzy
 msgid "Is this okay? (y/N) "
-msgstr "Va bene così? "
+msgstr "Va bene così? "
 
 msgid "weak key created - retrying\n"
 msgstr "creata una chiave debole - riprovo\n"
@@ -5432,14 +5460,14 @@ msgstr ""
 #, fuzzy, c-format
 msgid "public key %s is %lu second newer than the signature\n"
 msgid_plural "public key %s is %lu seconds newer than the signature\n"
-msgstr[0] "la chiave pubblica %08lX è più recente della firma di %lu secondo\n"
-msgstr[1] "la chiave pubblica %08lX è più recente della firma di %lu secondo\n"
+msgstr[0] "la chiave pubblica %08lX è più recente della firma di %lu secondo\n"
+msgstr[1] "la chiave pubblica %08lX è più recente della firma di %lu secondo\n"
 
 #, fuzzy, c-format
 msgid "public key %s is %lu day newer than the signature\n"
 msgid_plural "public key %s is %lu days newer than the signature\n"
-msgstr[0] "la chiave pubblica %08lX è più recente della firma di %lu secondo\n"
-msgstr[1] "la chiave pubblica %08lX è più recente della firma di %lu secondo\n"
+msgstr[0] "la chiave pubblica %08lX è più recente della firma di %lu secondo\n"
+msgstr[1] "la chiave pubblica %08lX è più recente della firma di %lu secondo\n"
 
 #, fuzzy, c-format
 msgid ""
@@ -5447,10 +5475,10 @@ msgid ""
 msgid_plural ""
 "key %s was created %lu seconds in the future (time warp or clock problem)\n"
 msgstr[0] ""
-"la chiave è stata creata %lu secondo nel futuro (salto nel tempo o problema\n"
+"la chiave è stata creata %lu secondo nel futuro (salto nel tempo o problema\n"
 "con l'orologio)\n"
 msgstr[1] ""
-"la chiave è stata creata %lu secondo nel futuro (salto nel tempo o problema\n"
+"la chiave è stata creata %lu secondo nel futuro (salto nel tempo o problema\n"
 "con l'orologio)\n"
 
 #, fuzzy, c-format
@@ -5458,10 +5486,10 @@ msgid "key %s was created %lu day in the future (time warp or clock problem)\n"
 msgid_plural ""
 "key %s was created %lu days in the future (time warp or clock problem)\n"
 msgstr[0] ""
-"la chiave è stata creata %lu secondo nel futuro (salto nel tempo o problema\n"
+"la chiave è stata creata %lu secondo nel futuro (salto nel tempo o problema\n"
 "con l'orologio)\n"
 msgstr[1] ""
-"la chiave è stata creata %lu secondo nel futuro (salto nel tempo o problema\n"
+"la chiave è stata creata %lu secondo nel futuro (salto nel tempo o problema\n"
 "con l'orologio)\n"
 
 #, fuzzy, c-format
@@ -5470,7 +5498,7 @@ msgstr "NOTA: chiave per firmare %08lX scaduta il %s\n"
 
 #, fuzzy, c-format
 msgid "Note: signature key %s has been revoked\n"
-msgstr "NOTA: la chiave è stata revocata"
+msgstr "NOTA: la chiave è stata revocata"
 
 #, fuzzy, c-format
 msgid "assuming bad signature from key %s due to an unknown critical bit\n"
@@ -5481,13 +5509,13 @@ msgstr ""
 #, fuzzy, c-format
 msgid "key %s: no subkey for subkey revocation signature\n"
 msgstr ""
-"chiave %08lX: non c'è una subchiave per il pacchetto di revoca della "
+"chiave %08lX: non c'è una subchiave per il pacchetto di revoca della "
 "subchiave\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for subkey binding signature\n"
 msgstr ""
-"chiave %08lX: non c'è una subchiave per la firma di collegamento della "
+"chiave %08lX: non c'è una subchiave per la firma di collegamento della "
 "subchiave\n"
 
 #, c-format
@@ -5528,11 +5556,11 @@ msgstr "firma:"
 
 #, c-format
 msgid "%s encryption will be used\n"
-msgstr "sarà usato il cifrario %s\n"
+msgstr "sarà usato il cifrario %s\n"
 
 msgid "key is not flagged as insecure - can't use it with the faked RNG!\n"
 msgstr ""
-"la chiave non è indicata come insicura - impossibile usarla con il RNG "
+"la chiave non è indicata come insicura - impossibile usarla con il RNG "
 "finto!\n"
 
 #, fuzzy, c-format
@@ -5540,12 +5568,12 @@ msgid "skipped \"%s\": duplicated\n"
 msgstr "saltata `%s': doppia\n"
 
 msgid "skipped: secret key already present\n"
-msgstr "saltata: chiave pubblica già presente\n"
+msgstr "saltata: chiave pubblica già presente\n"
 
 #, fuzzy
 msgid "this is a PGP generated Elgamal key which is not secure for signatures!"
 msgstr ""
-"saltata %s: questa è una chiave ElGamal generata da PGP che NON è sicura per "
+"saltata %s: questa è una chiave ElGamal generata da PGP che NON è sicura per "
 "le firme!\n"
 
 #, c-format
@@ -5624,7 +5652,7 @@ msgstr "%s: creazione del record della versione fallita: %s"
 
 #, c-format
 msgid "%s: invalid trustdb created\n"
-msgstr "%s: è stato creato un trustdb non valido\n"
+msgstr "%s: è stato creato un trustdb non valido\n"
 
 #, c-format
 msgid "%s: trustdb created\n"
@@ -5633,7 +5661,7 @@ msgstr "%s: creato il trustdb\n"
 #, fuzzy
 #| msgid "NOTE: trustdb not writable\n"
 msgid "Note: trustdb not writable\n"
-msgstr "NOTA: il trustdb non è scrivibile\n"
+msgstr "NOTA: il trustdb non è scrivibile\n"
 
 #, c-format
 msgid "%s: invalid trustdb\n"
@@ -5665,7 +5693,7 @@ msgstr "trustdb: read fallita (n=%d): %s\n"
 
 #, c-format
 msgid "%s: not a trustdb file\n"
-msgstr "%s: non è un file di trustdb\n"
+msgstr "%s: non è un file di trustdb\n"
 
 #, c-format
 msgid "%s: version record with recnum %lu\n"
@@ -5697,11 +5725,11 @@ msgstr "%s: creato il trustdb\n"
 
 #, c-format
 msgid "can't handle text lines longer than %d characters\n"
-msgstr "impossibile gestire linee di testo più lunghe di %d caratteri\n"
+msgstr "impossibile gestire linee di testo più lunghe di %d caratteri\n"
 
 #, c-format
 msgid "input line longer than %d characters\n"
-msgstr "linea di input più lunga di %d caratteri\n"
+msgstr "linea di input più lunga di %d caratteri\n"
 
 #, fuzzy, c-format
 msgid "error beginning transaction on TOFU database: %s\n"
@@ -5744,27 +5772,31 @@ msgid "error updating TOFU database: %s\n"
 msgstr "errore leggendo `%s': %s\n"
 
 #, c-format
-msgid "The binding %s is NOT known."
+msgid ""
+"This is the first time the email address \"%s\" is being used with key %s."
 msgstr ""
 
 #, c-format
-msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr ""
+
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error gathering other user IDs: %s\n"
 msgstr "errore nella creazione della passhprase: %s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr ""
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "elenca le chiavi e gli user ID"
 
 #, fuzzy, c-format
 #| msgid "Policy: "
@@ -5785,41 +5817,47 @@ msgstr[1] ""
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr ""
 
+msgid ", "
+msgstr ""
+
 #, fuzzy
 #| msgid "list keys"
 msgid "this key"
 msgstr "elenca le chiavi"
 
-#, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
-msgstr[0] ""
-msgstr[1] ""
-
 #, fuzzy, c-format
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
 msgstr[0] "|algo [files]|stampa tutti i message digests"
 msgstr[1] "|algo [files]|stampa tutti i message digests"
 
 #, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] ""
 msgstr[1] ""
 
+#, c-format
+msgid " over the past year."
+msgid_plural " over the past %d years."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid " in the past."
+msgstr ""
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5835,6 +5873,16 @@ msgstr ""
 msgid "(G)ood, (A)ccept once, (U)nknown, (R)eject once, (B)ad? "
 msgstr ""
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "resetting keydb: %s\n"
+msgstr "errore scrivendo il portachiavi `%s': %s\n"
+
 #, fuzzy, c-format
 msgid "error setting TOFU binding's trust level to %s\n"
 msgstr "errore leggendo `%s': %s\n"
@@ -5882,50 +5930,56 @@ msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
+msgid "%s: "
 msgstr ""
 
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
-msgstr ""
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "Cancellate %d firme.\n"
 
 #, fuzzy, c-format
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "|algo [files]|stampa tutti i message digests"
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
+msgstr[0] "|algo [files]|stampa tutti i message digests"
+msgstr[1] "|algo [files]|stampa tutti i message digests"
+
+#, fuzzy, c-format
+#| msgid "encrypted with %lu passphrases\n"
+msgid ", and encrypted %ld messages"
+msgstr "cifratto con %lu passphrase\n"
+
+#, fuzzy, c-format
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] "|algo [files]|stampa tutti i message digests"
+msgstr[1] "|algo [files]|stampa tutti i message digests"
 
-#, c-format
 msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
-msgstr[0] ""
-msgstr[1] ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
+msgstr ""
 
-#, c-format
-msgid "The most recent message was verified %s ago."
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
 msgstr ""
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
 msgstr ""
 
 #, c-format
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -5935,10 +5989,19 @@ msgstr[1] ""
 msgid "error opening TOFU database: %s\n"
 msgstr "errore leggendo `%s': %s\n"
 
+#, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring `%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "errore scrivendo il portachiavi pubblico `%s': %s\n"
+
 #, fuzzy, c-format
 #| msgid "`%s' is not a valid long keyID\n"
 msgid "'%s' is not a valid long keyID\n"
-msgstr "`%s' non è un key ID lungo valido\n"
+msgstr "`%s' non è un key ID lungo valido\n"
 
 #, fuzzy, c-format
 msgid "key %s: accepted as trusted key\n"
@@ -5946,7 +6009,7 @@ msgstr "chiave %08lX: accettata come chiave affidabile\n"
 
 #, fuzzy, c-format
 msgid "key %s occurs more than once in the trustdb\n"
-msgstr "chiave %08lX: appare nel trustdb più di una volta\n"
+msgstr "chiave %08lX: appare nel trustdb più di una volta\n"
 
 #, fuzzy, c-format
 msgid "key %s: no public key for trusted key - skipped\n"
@@ -5963,7 +6026,7 @@ msgstr "trust record %lu, tipo %d: read fallita: %s\n"
 
 #, c-format
 msgid "trust record %lu is not of requested type %d\n"
-msgstr "il trust record %lu non è del tipo richiesto %d\n"
+msgstr "il trust record %lu non è del tipo richiesto %d\n"
 
 msgid "You may try to re-create the trustdb using the commands:\n"
 msgstr ""
@@ -5980,19 +6043,19 @@ msgid "using %s trust model\n"
 msgstr ""
 
 msgid "no need for a trustdb check\n"
-msgstr "non è necessario un controllo del trustdb\n"
+msgstr "non è necessario un controllo del trustdb\n"
 
 #, c-format
 msgid "next trustdb check due at %s\n"
-msgstr "il prossimo controllo del trustdb sarà fatto il %s\n"
+msgstr "il prossimo controllo del trustdb sarà fatto il %s\n"
 
 #, fuzzy, c-format
 msgid "no need for a trustdb check with '%s' trust model\n"
-msgstr "non è necessario un controllo del trustdb\n"
+msgstr "non è necessario un controllo del trustdb\n"
 
 #, fuzzy, c-format
 msgid "no need for a trustdb update with '%s' trust model\n"
-msgstr "non è necessario un controllo del trustdb\n"
+msgstr "non è necessario un controllo del trustdb\n"
 
 #, fuzzy, c-format
 msgid "public key %s not found: %s\n"
@@ -6014,11 +6077,11 @@ msgstr[1] "Per ora sono state esaminate %lu chiavi\n"
 #| msgid "%d keys processed (%d validity counts cleared)\n"
 msgid " (%d validity count cleared)\n"
 msgid_plural " (%d validity counts cleared)\n"
-msgstr[0] "%d chiavi processate (%d conteggi di validità azzerati)\n"
-msgstr[1] "%d chiavi processate (%d conteggi di validità azzerati)\n"
+msgstr[0] "%d chiavi processate (%d conteggi di validità azzerati)\n"
+msgstr[1] "%d chiavi processate (%d conteggi di validità azzerati)\n"
 
 msgid "no ultimately trusted keys found\n"
-msgstr "non è stata trovata alcuna chiave definitivamente affidabile\n"
+msgstr "non è stata trovata alcuna chiave definitivamente affidabile\n"
 
 #, fuzzy, c-format
 msgid "public key of ultimately trusted key %s not found\n"
@@ -6093,7 +6156,7 @@ msgid ""
 "Please remember that the signature file (.sig or .asc)\n"
 "should be the first file given on the command line.\n"
 msgstr ""
-"non è stato possibile verificare la firma.\n"
+"non è stato possibile verificare la firma.\n"
 "Ricorda che il file con la firma (.sig or .asc) deve\n"
 "essere il primo file indicato sulla riga di comando.\n"
 
@@ -6180,22 +6243,24 @@ msgstr "inizializzazione del trustdb fallita: %s\n"
 msgid "failed to store the creation date: %s\n"
 msgstr "rebuild della cache del portachiavi fallito: %s\n"
 
-#, fuzzy, c-format
-msgid "reading public key failed: %s\n"
-msgstr "cancellazione del keyblock fallita: %s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr ""
-
 msgid "response does not contain the RSA modulus\n"
 msgstr ""
 
 msgid "response does not contain the RSA public exponent\n"
 msgstr ""
 
-msgid "response does not contain the EC public point\n"
+#, fuzzy
+#| msgid "remove keys from the public keyring"
+msgid "response does not contain the EC public key\n"
+msgstr "rimuove le chiavi dal portachiavi pubblico"
+
+msgid "response does not contain the public key data\n"
 msgstr ""
 
+#, fuzzy, c-format
+msgid "reading public key failed: %s\n"
+msgstr "cancellazione del keyblock fallita: %s\n"
+
 #, c-format
 msgid "using default PIN as %s\n"
 msgstr ""
@@ -6284,7 +6349,7 @@ msgstr "%s: errore durante la lettura del record libero: %s\n"
 
 #, fuzzy
 msgid "key already exists\n"
-msgstr "`%s' è già compresso\n"
+msgstr "`%s' è già compresso\n"
 
 msgid "existing key will be replaced\n"
 msgstr ""
@@ -6422,7 +6487,7 @@ msgstr "Carattere radix64 non valido %02x saltato\n"
 
 #, fuzzy
 msgid "no dirmngr running in this session\n"
-msgstr "gpg-agent non è disponibile in questa sessione\n"
+msgstr "gpg-agent non è disponibile in questa sessione\n"
 
 #, c-format
 msgid "validation model requested by certificate: %s"
@@ -6437,7 +6502,7 @@ msgstr "help"
 
 #, fuzzy, c-format
 msgid "critical certificate extension %s is not supported"
-msgstr "la versione %d del protocollo di gpg-agent non è gestita\n"
+msgstr "la versione %d del protocollo di gpg-agent non è gestita\n"
 
 msgid "issuer certificate is not marked as a CA"
 msgstr ""
@@ -6481,7 +6546,7 @@ msgstr "inizializzazione del trustdb fallita: %s\n"
 
 #, fuzzy
 msgid "certificate has been revoked"
-msgstr "NOTA: la chiave è stata revocata"
+msgstr "NOTA: la chiave è stata revocata"
 
 msgid "the status of the certificate is unknown"
 msgstr ""
@@ -6509,15 +6574,15 @@ msgstr ""
 
 #, fuzzy
 msgid "certificate has expired"
-msgstr "Questa chiave è scaduta!"
+msgstr "Questa chiave è scaduta!"
 
 #, fuzzy
 msgid "root certificate has expired"
-msgstr "Questa chiave è scaduta!"
+msgstr "Questa chiave è scaduta!"
 
 #, fuzzy
 msgid "intermediate certificate has expired"
-msgstr "Questa chiave è scaduta!"
+msgstr "Questa chiave è scaduta!"
 
 #, c-format
 msgid "required certificate attributes missing: %s%s%s"
@@ -6525,7 +6590,7 @@ msgstr ""
 
 #, fuzzy
 msgid "certificate with invalid validity"
-msgstr "Questa chiave è scaduta!"
+msgstr "Questa chiave è scaduta!"
 
 msgid "signature not created during lifetime of certificate"
 msgstr ""
@@ -6600,7 +6665,7 @@ msgstr ""
 
 #, fuzzy
 msgid "certificate is good\n"
-msgstr "la preferenza %c%lu è doppia\n"
+msgstr "la preferenza %c%lu è doppia\n"
 
 #, fuzzy
 msgid "intermediate certificate is good\n"
@@ -6701,7 +6766,7 @@ msgstr "algoritmo di hash non valido `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: not a valid email address\n"
-msgstr "L'indirizzo di email non è valido\n"
+msgstr "L'indirizzo di email non è valido\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid serial number\n"
@@ -6801,7 +6866,7 @@ msgstr ""
 
 #, fuzzy
 msgid "No subject name given\n"
-msgstr "(Non è stata data una descrizione)\n"
+msgstr "(Non è stata data una descrizione)\n"
 
 #, fuzzy, c-format
 msgid "Invalid subject name label '%.*s'\n"
@@ -6887,7 +6952,7 @@ msgstr "Certificato di revoca creato.\n"
 
 #, fuzzy, c-format
 msgid "certificate '%s' deleted\n"
-msgstr "la preferenza %c%lu è doppia\n"
+msgstr "la preferenza %c%lu è doppia\n"
 
 #, fuzzy, c-format
 msgid "deleting certificate \"%s\" failed: %s\n"
@@ -6895,7 +6960,7 @@ msgstr "cancellazione del keyblock fallita: %s\n"
 
 #, fuzzy
 msgid "no valid recipients given\n"
-msgstr "(Non è stata data una descrizione)\n"
+msgstr "(Non è stata data una descrizione)\n"
 
 #, fuzzy
 msgid "list external keys"
@@ -6967,7 +7032,7 @@ msgid "batch mode: never ask"
 msgstr "modo batch: non fa domande"
 
 msgid "assume yes on most questions"
-msgstr "risponde \"sì\" a quasi tutte le domande"
+msgstr "risponde \"sì\" a quasi tutte le domande"
 
 msgid "assume no on most questions"
 msgstr "risponde \"no\" a quasi tutte le domande"
@@ -7015,7 +7080,7 @@ msgstr "destinatario predefinito `%s' sconosciuto\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: no hostname given\n"
-msgstr "(Non è stata data una descrizione)\n"
+msgstr "(Non è stata data una descrizione)\n"
 
 #, c-format
 msgid "%s:%u: password given without user\n"
@@ -7125,7 +7190,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "hash algorithm %d (%s) for signer %d not supported; using %s\n"
-msgstr "l'algoritmo di protezione %d%s non è gestito\n"
+msgstr "l'algoritmo di protezione %d%s non è gestito\n"
 
 #, c-format
 msgid "hash algorithm used for signer %d: %s (%s)\n"
@@ -7162,7 +7227,7 @@ msgstr "                alias \""
 msgid "This is a qualified signature\n"
 msgstr ""
 "\n"
-"Questa sarà una autofirma.\n"
+"Questa sarà una autofirma.\n"
 
 #, fuzzy, c-format
 msgid "can't initialize certificate cache lock: %s\n"
@@ -7191,7 +7256,7 @@ msgstr "impossibile creare `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "certificate '%s' already cached\n"
-msgstr "la preferenza %c%lu è doppia\n"
+msgstr "la preferenza %c%lu è doppia\n"
 
 #, fuzzy, c-format
 msgid "trusted certificate '%s' loaded\n"
@@ -7199,7 +7264,7 @@ msgstr "Certificato di revoca creato.\n"
 
 #, fuzzy, c-format
 msgid "certificate '%s' loaded\n"
-msgstr "la preferenza %c%lu è doppia\n"
+msgstr "la preferenza %c%lu è doppia\n"
 
 #, fuzzy, c-format
 msgid "  SHA1 fingerprint = %s\n"
@@ -7229,7 +7294,7 @@ msgstr "Certificato di revoca creato.\n"
 
 #, fuzzy
 msgid "certificate cached\n"
-msgstr "la preferenza %c%lu è doppia\n"
+msgstr "la preferenza %c%lu è doppia\n"
 
 #, fuzzy, c-format
 msgid "error caching certificate: %s\n"
@@ -7418,7 +7483,7 @@ msgstr "%s: creazione della tabella hash fallita: %s\n"
 #, fuzzy, c-format
 #| msgid "No help available for `%s'"
 msgid "no CRL available for issuer id %s\n"
-msgstr "Non è disponibile un aiuto per `%s'"
+msgstr "Non è disponibile un aiuto per `%s'"
 
 #, c-format
 msgid "cached CRL for issuer id %s too old; update required\n"
@@ -7762,11 +7827,11 @@ msgstr "cancellazione del keyblock fallita: %s\n"
 
 #, fuzzy
 msgid "certificate is valid\n"
-msgstr "la preferenza %c%lu è doppia\n"
+msgstr "la preferenza %c%lu è doppia\n"
 
 #, fuzzy
 msgid "certificate has been revoked\n"
-msgstr "NOTA: la chiave è stata revocata"
+msgstr "NOTA: la chiave è stata revocata"
 
 #, fuzzy, c-format
 msgid "certificate check failed: %s\n"
@@ -7824,6 +7889,9 @@ msgstr ""
 msgid "allow sending OCSP requests"
 msgstr ""
 
+msgid "allow online software version check"
+msgstr ""
+
 msgid "inhibit the use of HTTP"
 msgstr ""
 
@@ -7906,7 +7974,7 @@ msgstr "uso: gpg [opzioni] "
 #, fuzzy
 #| msgid "%s not allowed with %s!\n"
 msgid "colons are not allowed in the socket name\n"
-msgstr "Non è permesso usare %s con %s!\n"
+msgstr "Non è permesso usare %s con %s!\n"
 
 #, fuzzy, c-format
 msgid "fetching CRL from '%s' failed: %s\n"
@@ -8064,7 +8132,7 @@ msgstr "                alias \""
 
 #, fuzzy, c-format
 msgid "no host name in '%s'\n"
-msgstr "(Non è stata data una descrizione)\n"
+msgstr "(Non è stata data una descrizione)\n"
 
 #, c-format
 msgid "no attribute given for query '%s'\n"
@@ -8090,17 +8158,13 @@ msgstr "rimozione dell'armatura fallita: %s\n"
 
 #, fuzzy, c-format
 msgid "'%s' is not an LDAP URL\n"
-msgstr "\"%s\": non è un file JPEG\n"
+msgstr "\"%s\": non è un file JPEG\n"
 
 #, c-format
 msgid "'%s' is an invalid LDAP URL\n"
 msgstr ""
 
 #, fuzzy, c-format
-msgid "error allocating memory: %s\n"
-msgstr "errore creando il portachiavi `%s': %s\n"
-
-#, fuzzy, c-format
 msgid "error printing log line: %s\n"
 msgstr "errore scrivendo il portachiavi `%s': %s\n"
 
@@ -8294,7 +8358,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "certificate has been revoked at: %s due to: %s\n"
-msgstr "NOTA: la chiave è stata revocata"
+msgstr "NOTA: la chiave è stata revocata"
 
 msgid "OCSP responder returned a status in the future\n"
 msgstr ""
@@ -8390,7 +8454,7 @@ msgstr "controllo della firma creata fallito: %s\n"
 
 #, fuzzy
 msgid "certificate chain is good\n"
-msgstr "la preferenza %c%lu è doppia\n"
+msgstr "la preferenza %c%lu è doppia\n"
 
 msgid "DSA requires the use of a 160 bit hash algorithm\n"
 msgstr "DSA richiede l'uso di un algoritmo di hashing con almeno 160 bit\n"
@@ -8574,23 +8638,25 @@ msgstr ""
 msgid "Configuration for OCSP"
 msgstr ""
 
-msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr ""
 
-msgid "GPG Agent"
+msgid "Private Keys"
 msgstr ""
 
-msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr ""
 
-msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr ""
 
-msgid "Key Acquirer"
-msgstr ""
+#, fuzzy
+#| msgid "network error"
+msgid "Network"
+msgstr "errore di rete"
 
 #, fuzzy
-msgid "PIN and Passphrase Entry"
+msgid "Passphrase Entry"
 msgstr "passphrase errata"
 
 #, fuzzy
@@ -8633,6 +8699,11 @@ msgstr "elemento della configurazione sconosciuto \"%s\"\n"
 msgid "check global configuration file"
 msgstr "elemento della configurazione sconosciuto \"%s\"\n"
 
+#, fuzzy
+#| msgid "update the trust database"
+msgid "query the software version database"
+msgstr "aggiorna il database della fiducia"
+
 msgid "reload all or a given component"
 msgstr ""
 
@@ -8710,7 +8781,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "%s on %s aborted with status %i\n"
-msgstr "Non è permesso usare %s con %s!\n"
+msgstr "Non è permesso usare %s con %s!\n"
 
 #, fuzzy, c-format
 msgid "%s on %s failed with status %i\n"
@@ -8738,7 +8809,7 @@ msgstr "errore leggendo `%s': %s\n"
 
 #, fuzzy
 msgid "no --program option provided\n"
-msgstr "l'esecuzione remota dei programmi non è gestita\n"
+msgstr "l'esecuzione remota dei programmi non è gestita\n"
 
 msgid "only --decrypt and --encrypt are supported\n"
 msgstr ""
@@ -8802,7 +8873,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "class %s is not supported\n"
-msgstr "l'algoritmo di protezione %d%s non è gestito\n"
+msgstr "l'algoritmo di protezione %d%s non è gestito\n"
 
 #, fuzzy
 msgid "Usage: gpg-check-pattern [options] patternfile (-h for help)\n"
@@ -8813,6 +8884,20 @@ msgid ""
 "Check a passphrase given on stdin against the patternfile\n"
 msgstr ""
 
+#, fuzzy
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "cancellazione del keyblock fallita: %s\n"
+
+#, fuzzy
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "disabilita una chiave"
+
+#, fuzzy
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "|algo [files]|stampa tutti i message digests"
+#~ msgstr[1] "|algo [files]|stampa tutti i message digests"
+
 #~ msgid "communication problem with gpg-agent\n"
 #~ msgstr "problema di comunicazione con gpg-agent\n"
 
@@ -8884,12 +8969,9 @@ msgstr ""
 #~ msgid "1 user ID without valid self-signature detected\n"
 #~ msgstr "Trovato un user ID senza autofirma valida\n"
 
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "Cancellate %d firme.\n"
-
 #, fuzzy
 #~ msgid "User ID \"%s\": %d signatures removed\n"
-#~ msgstr "L'user ID \"%s\" è stato revocato."
+#~ msgstr "L'user ID \"%s\" è stato revocato."
 
 #~ msgid ""
 #~ "You need a Passphrase to protect your secret key.\n"
@@ -8902,7 +8984,7 @@ msgstr ""
 #~ msgid ""
 #~ "Please enter a passphrase to protect the off-card backup of the new "
 #~ "encryption key."
-#~ msgstr "Inserisci la passphrase, cioè una frase segreta \n"
+#~ msgstr "Inserisci la passphrase, cioè una frase segreta \n"
 
 #~ msgid "passphrase not correctly repeated; try again"
 #~ msgstr "passphrase non ripetuta correttamente; prova ancora"
@@ -8916,9 +8998,9 @@ msgstr ""
 #~ "using this program with the option \"--edit-key\".\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Non hai specificato una passphrase - questa è probabilmente una "
+#~ "Non hai specificato una passphrase - questa è probabilmente una "
 #~ "*cattiva*\n"
-#~ "idea! Lo farò io comunque. Puoi cambiarla in ogni momento, usando questo\n"
+#~ "idea! Lo farò io comunque. Puoi cambiarla in ogni momento, usando questo\n"
 #~ "programma con l'opzione \"--edit-key\".\n"
 #~ "\n"
 
@@ -8932,10 +9014,6 @@ msgstr ""
 #~ msgstr "una firma non corretta\n"
 
 #, fuzzy
-#~ msgid "renaming '%s' to '%s' failed: %s\n"
-#~ msgstr "creazione dell'armatura fallita: %s\n"
-
-#, fuzzy
 #~ msgid "%lu keys cached (%lu signatures)\n"
 #~ msgstr "Sono state controllate %lu chiavi (%lu firme)\n"
 
@@ -8949,14 +9027,14 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "public key %s is %lu seconds newer than the signature\n"
-#~ msgstr "la chiave pubblica %08lX è più recente della firma di %lu secondi\n"
+#~ msgstr "la chiave pubblica %08lX è più recente della firma di %lu secondi\n"
 
 #, fuzzy
 #~ msgid ""
 #~ "key %s was created %lu seconds in the future (time warp or clock "
 #~ "problem)\n"
 #~ msgstr ""
-#~ "la chiave è stata creata %lu secondi nel futuro (salto nel tempo o "
+#~ "la chiave è stata creata %lu secondi nel futuro (salto nel tempo o "
 #~ "problema\n"
 #~ "con l'orologio)\n"
 
@@ -8983,7 +9061,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "dirmngr protocol version %d is not supported\n"
-#~ msgstr "la versione %d del protocollo di gpg-agent non è gestita\n"
+#~ msgstr "la versione %d del protocollo di gpg-agent non è gestita\n"
 
 #, fuzzy
 #~ msgid "toggle between the secret and public key listings"
@@ -9003,7 +9081,7 @@ msgstr ""
 #~ "esecuzione del programma\n"
 
 #~ msgid "gpg-agent is not available in this session\n"
-#~ msgstr "gpg-agent non è disponibile in questa sessione\n"
+#~ msgstr "gpg-agent non è disponibile in questa sessione\n"
 
 #, fuzzy
 #~ msgid "use a standard location for the socket"
@@ -9017,7 +9095,7 @@ msgstr ""
 #~ msgstr "variabile di ambiente GPG_AGENT_INFO malformata\n"
 
 #~ msgid "gpg-agent protocol version %d is not supported\n"
-#~ msgstr "la versione %d del protocollo di gpg-agent non è gestita\n"
+#~ msgstr "la versione %d del protocollo di gpg-agent non è gestita\n"
 
 #, fuzzy
 #~ msgid "can't fdopen pipe for reading: %s\n"
@@ -9041,7 +9119,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "secret key already stored on a card\n"
-#~ msgstr "saltata: chiave pubblica già presente\n"
+#~ msgstr "saltata: chiave pubblica già presente\n"
 
 #, fuzzy
 #~ msgid "error writing key to card: %s\n"
@@ -9050,7 +9128,7 @@ msgstr ""
 #~ msgid ""
 #~ "you can only encrypt to RSA keys of 2048 bits or less in --pgp2 mode\n"
 #~ msgstr ""
-#~ "in modalità --pgp2 puoi cifrare solo per chiavi RSA non più lunghe di "
+#~ "in modalità --pgp2 puoi cifrare solo per chiavi RSA non più lunghe di "
 #~ "2048 bit\n"
 
 #~ msgid ""
@@ -9093,11 +9171,11 @@ msgstr ""
 
 #~ msgid ""
 #~ "you can only make detached or clear signatures while in --pgp2 mode\n"
-#~ msgstr "nella modalità --pgp2 puoi fare solo firme in chiaro o separate\n"
+#~ msgstr "nella modalità --pgp2 puoi fare solo firme in chiaro o separate\n"
 
 #~ msgid "you can't sign and encrypt at the same time while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "nella modalità --pgp2 non puoi firmare e cifrare contemporaneamente\n"
+#~ "nella modalità --pgp2 non puoi firmare e cifrare contemporaneamente\n"
 
 #~ msgid ""
 #~ "you must use files (and not a pipe) when working with --pgp2 enabled.\n"
@@ -9106,7 +9184,7 @@ msgstr ""
 
 #~ msgid "encrypting a message in --pgp2 mode requires the IDEA cipher\n"
 #~ msgstr ""
-#~ "nella modalità --pgp2 è richiesto il cifrario IDEA per cifrare un "
+#~ "nella modalità --pgp2 è richiesto il cifrario IDEA per cifrare un "
 #~ "messaggio\n"
 
 #, fuzzy
@@ -9115,7 +9193,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "key %s: already in secret keyring\n"
-#~ msgstr "chiave %08lX: già nel portachiavi segreto\n"
+#~ msgstr "chiave %08lX: già nel portachiavi segreto\n"
 
 #, fuzzy
 #~ msgid "key %s: secret key not found: %s\n"
@@ -9127,27 +9205,27 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "NOTE: primary key is online and stored on card\n"
-#~ msgstr "saltata: chiave pubblica già presente\n"
+#~ msgstr "saltata: chiave pubblica già presente\n"
 
 #, fuzzy
 #~ msgid "NOTE: secondary key is online and stored on card\n"
-#~ msgstr "saltata: chiave pubblica già presente\n"
+#~ msgstr "saltata: chiave pubblica già presente\n"
 
 #~ msgid ""
 #~ "You may not make an OpenPGP signature on a PGP 2.x key while in --pgp2 "
 #~ "mode.\n"
 #~ msgstr ""
-#~ "In modalità -pgp2 non è possibile fare firme OpenPGP su chiavi in stile "
+#~ "In modalità -pgp2 non è possibile fare firme OpenPGP su chiavi in stile "
 #~ "PGP 2.x.\n"
 
 #~ msgid "This would make the key unusable in PGP 2.x.\n"
 #~ msgstr "Questo renderebbe la chiave non utilizzabile da PGP 2.x.\n"
 
 #~ msgid "This key is not protected.\n"
-#~ msgstr "Questa chiave non è protetta.\n"
+#~ msgstr "Questa chiave non è protetta.\n"
 
 #~ msgid "Key is protected.\n"
-#~ msgstr "La chiave è protetta.\n"
+#~ msgstr "La chiave è protetta.\n"
 
 #~ msgid "Can't edit this key: %s\n"
 #~ msgstr "Impossibile modificare questa chiave: %s\n"
@@ -9163,7 +9241,7 @@ msgstr ""
 #~ "You don't want a passphrase - this is probably a *bad* idea!\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Non vuoi una passphrase - questa è probabilmente una *cattiva* idea!\n"
+#~ "Non vuoi una passphrase - questa è probabilmente una *cattiva* idea!\n"
 #~ "\n"
 
 #, fuzzy
@@ -9184,16 +9262,16 @@ msgstr ""
 #~ msgstr "scrittura della chiave segreta in `%s'\n"
 
 #~ msgid "no writable secret keyring found: %s\n"
-#~ msgstr "non è stato trovato un portachiavi segreto scrivibile: %s\n"
+#~ msgstr "non è stato trovato un portachiavi segreto scrivibile: %s\n"
 
 #~ msgid "WARNING: 2 files with confidential information exists.\n"
 #~ msgstr "ATTENZIONE: esistono due file con informazioni confidenziali.\n"
 
 #~ msgid "%s is the unchanged one\n"
-#~ msgstr "%s è quello non modificato\n"
+#~ msgstr "%s è quello non modificato\n"
 
 #~ msgid "%s is the new one\n"
-#~ msgstr "%s è quello nuovo\n"
+#~ msgstr "%s è quello nuovo\n"
 
 #~ msgid "Please fix this possible security flaw\n"
 #~ msgstr "Per favore risolvete questo possibile problema di sicurezza\n"
@@ -9235,10 +9313,10 @@ msgstr ""
 #~ msgstr "individuato un pacchetto radice non valido in proc_tree()\n"
 
 #~ msgid "the IDEA cipher plugin is not present\n"
-#~ msgstr "il plugin per il cifrario IDEA non è presente\n"
+#~ msgstr "il plugin per il cifrario IDEA non è presente\n"
 
 #~ msgid "no corresponding public key: %s\n"
-#~ msgstr "non c'è una chiave pubblica corrispondente: %s\n"
+#~ msgstr "non c'è una chiave pubblica corrispondente: %s\n"
 
 #~ msgid "public key does not match secret key!\n"
 #~ msgstr "la chiave pubblica non corrisponde alla chiave segreta!\n"
@@ -9247,11 +9325,11 @@ msgstr ""
 #~ msgstr "algoritmo di protezione sconosciuto\n"
 
 #~ msgid "NOTE: This key is not protected!\n"
-#~ msgstr "NOTA: Questa chiave non è protetta!\n"
+#~ msgstr "NOTA: Questa chiave non è protetta!\n"
 
 #, fuzzy
 #~ msgid "protection digest %d is not supported\n"
-#~ msgstr "l'algoritmo di protezione %d%s non è gestito\n"
+#~ msgstr "l'algoritmo di protezione %d%s non è gestito\n"
 
 #~ msgid "Invalid passphrase; please try again"
 #~ msgstr "Passphrase non valida; riprova"
@@ -9273,13 +9351,13 @@ msgstr ""
 #~ msgid ""
 #~ "you can only detach-sign with PGP 2.x style keys while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "nella modalità --pgp2 puoi fare firme separate solo con chiavi in stile "
+#~ "nella modalità --pgp2 puoi fare firme separate solo con chiavi in stile "
 #~ "PGP 2.x\n"
 
 #~ msgid ""
 #~ "you can only clearsign with PGP 2.x style keys while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "In modalità -pgp2 puoi firmare in chiaro solo con chiavi in stile PGP 2."
+#~ "In modalità -pgp2 puoi firmare in chiaro solo con chiavi in stile PGP 2."
 #~ "x\n"
 
 #, fuzzy
@@ -9302,7 +9380,7 @@ msgstr ""
 #~ msgstr "Comando> "
 
 #~ msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
-#~ msgstr "Il trustdb è danneggiato; eseguire \"gpg --fix-trust-db\".\n"
+#~ msgstr "Il trustdb è danneggiato; eseguire \"gpg --fix-trust-db\".\n"
 
 #~ msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
 #~ msgstr "Per favore segnala i bug a <gnupg-bugs@gnu.org>.\n"
@@ -9313,7 +9391,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "DSA keypair will have %u bits.\n"
-#~ msgstr "La coppia DSA avrà 1024 bit.\n"
+#~ msgstr "La coppia DSA avrà 1024 bit.\n"
 
 #~ msgid "Repeat passphrase\n"
 #~ msgstr "Ripeti la passphrase\n"
@@ -9361,7 +9439,7 @@ msgstr ""
 #~ "nothing\n"
 #~ "to do with the (implicitly created) web-of-certificates."
 #~ msgstr ""
-#~ "E compito tuo assegnare un valore; questo valore non sarà mai esportato "
+#~ "E compito tuo assegnare un valore; questo valore non sarà mai esportato "
 #~ "a\n"
 #~ "terzi. Ci serve per implementare il web-of-trust; non ha nulla a che "
 #~ "fare\n"
@@ -9378,7 +9456,7 @@ msgstr ""
 #~ "definitivamente affidabili - di solito quelle per cui hai accesso alla "
 #~ "chiave\n"
 #~ "segreta.\n"
-#~ "Rispondi \"sì\" per impostare questa chiave come definitivamente "
+#~ "Rispondi \"sì\" per impostare questa chiave come definitivamente "
 #~ "affidabile\n"
 
 #~ msgid "If you want to use this untrusted key anyway, answer \"yes\"."
@@ -9394,7 +9472,7 @@ msgstr ""
 #~ "encryption.  This algorithm should only be used in certain domains.\n"
 #~ "Please consult your security expert first."
 #~ msgstr ""
-#~ "In generale non è una buona idea usare la stessa chiave per le firme e "
+#~ "In generale non è una buona idea usare la stessa chiave per le firme e "
 #~ "la\n"
 #~ "cifratura. Questo algoritmo dovrebbe solo essere usato in determinati "
 #~ "campi.\n"
@@ -9413,7 +9491,7 @@ msgstr ""
 #~ "the given value as an interval."
 #~ msgstr ""
 #~ "Inserisci il valore richiesto come indicato dal prompt.\n"
-#~ "È possibile inserire una data in formato ISO (YYYY-MM-DD) ma non avrai "
+#~ "È possibile inserire una data in formato ISO (YYYY-MM-DD) ma non avrai "
 #~ "un\n"
 #~ "messaggio di errore corretto: il sistema cerca di interpretare il valore\n"
 #~ "dato come un intervallo."
@@ -9489,7 +9567,7 @@ msgstr ""
 #~ msgstr ""
 #~ "Quando firmi l'user ID di una chiave dovresti prima verificare che "
 #~ "questa\n"
-#~ "appartiene alla persona indicata nell'user ID. È utile agli altri sapere\n"
+#~ "appartiene alla persona indicata nell'user ID. È utile agli altri sapere\n"
 #~ "con quanta attenzione lo hai verificato.\n"
 #~ "\n"
 #~ "\"0\" significa che non fai particolari affermazioni sull'attenzione con "
@@ -9505,7 +9583,7 @@ msgstr ""
 #~ "esempio\n"
 #~ "    potrebbe significare che hai verificato l'impronta digitale e "
 #~ "confrontato\n"
-#~ "    l'user ID della chiave con un documento di identità con fotografia.\n"
+#~ "    l'user ID della chiave con un documento di identità con fotografia.\n"
 #~ "\n"
 #~ "\"3\" significa che hai fatto una verifica approfondita della chiave. Per "
 #~ "esempio\n"
@@ -9513,7 +9591,7 @@ msgstr ""
 #~ "digitale con\n"
 #~ "    il possessore della chiave e hai controllato, per esempio per mezzo "
 #~ "di\n"
-#~ "    un documento di identità con fotografia difficile da falsificare "
+#~ "    un documento di identità con fotografia difficile da falsificare "
 #~ "(come\n"
 #~ "    un passaporto), che il nome del proprietario della chiave corrisponde "
 #~ "a\n"
@@ -9549,9 +9627,9 @@ msgstr ""
 #~ "to delete this signature because it may be important to establish a\n"
 #~ "trust connection to the key or another key certified by this key."
 #~ msgstr ""
-#~ "Questa è una firma valida per la chiave. Normalmente non vorresti "
+#~ "Questa è una firma valida per la chiave. Normalmente non vorresti "
 #~ "cancellare\n"
-#~ "questa firma perchè può essere importante per stabilire una connessione "
+#~ "questa firma perchè può essere importante per stabilire una connessione "
 #~ "di\n"
 #~ "fiducia alla chiave o a un'altra chiave certificata da questa chiave."
 
@@ -9561,17 +9639,17 @@ msgstr ""
 #~ "know which key was used because this signing key might establish\n"
 #~ "a trust connection through another already certified key."
 #~ msgstr ""
-#~ "Questa firma non può essere verificata perchè non hai la chiave "
+#~ "Questa firma non può essere verificata perchè non hai la chiave "
 #~ "corrispondente.\n"
-#~ "Dovresti rimandare la sua cancellazione finchè non saprai quale chiave è "
+#~ "Dovresti rimandare la sua cancellazione finchè non saprai quale chiave è "
 #~ "stata\n"
-#~ "usata perchè questa chiave potrebbe stabilire una connessione di fiducia\n"
-#~ "attraverso una chiave già certificata."
+#~ "usata perchè questa chiave potrebbe stabilire una connessione di fiducia\n"
+#~ "attraverso una chiave già certificata."
 
 #~ msgid ""
 #~ "The signature is not valid.  It does make sense to remove it from\n"
 #~ "your keyring."
-#~ msgstr "La firma non è valida. Ha senso rimuoverla dal tuo portachiavi."
+#~ msgstr "La firma non è valida. Ha senso rimuoverla dal tuo portachiavi."
 
 #~ msgid ""
 #~ "This is a signature which binds the user ID to the key. It is\n"
@@ -9580,13 +9658,13 @@ msgstr ""
 #~ "only if this self-signature is for some reason not valid and\n"
 #~ "a second one is available."
 #~ msgstr ""
-#~ "Questa è una firma che collega l'user id alla chiave. Solitamente non è "
+#~ "Questa è una firma che collega l'user id alla chiave. Solitamente non è "
 #~ "una\n"
-#~ "buona idea rimuovere questo tipo di firma. In realtà GnuPG potrebbe non "
+#~ "buona idea rimuovere questo tipo di firma. In realtà GnuPG potrebbe non "
 #~ "essere\n"
-#~ "più in grado di usare questa chiave. Quindi fallo solo se questa "
+#~ "più in grado di usare questa chiave. Quindi fallo solo se questa "
 #~ "autofirma non\n"
-#~ "è valida per qualche ragione e ne è disponibile un'altra."
+#~ "è valida per qualche ragione e ne è disponibile un'altra."
 
 #~ msgid ""
 #~ "Change the preferences of all user IDs (or just of the selected ones)\n"
@@ -9597,10 +9675,10 @@ msgstr ""
 #~ "con\n"
 #~ "la lista di preferenze corrente. L'orario di tutte le autofirme "
 #~ "coinvolte\n"
-#~ "sarà aumentato di un secondo.\n"
+#~ "sarà aumentato di un secondo.\n"
 
-#~ msgid "Please enter the passhrase; this is a secret sentence \n"
-#~ msgstr "Inserisci la passphrase, cioè una frase segreta \n"
+#~ msgid "Please enter the passphrase; this is a secret sentence \n"
+#~ msgstr "Inserisci la passphrase, cioè una frase segreta \n"
 
 #~ msgid ""
 #~ "Please repeat the last passphrase, so you are sure what you typed in."
@@ -9616,7 +9694,7 @@ msgstr ""
 #~ "Please enter a new filename. If you just hit RETURN the default\n"
 #~ "file (which is shown in brackets) will be used."
 #~ msgstr ""
-#~ "Inserisci il nuovo nome del file. Se premi INVIO sarà usato il nome\n"
+#~ "Inserisci il nuovo nome del file. Se premi INVIO sarà usato il nome\n"
 #~ "predefinito (quello indicato tra parentesi)."
 
 #~ msgid ""
@@ -9634,26 +9712,26 @@ msgstr ""
 #~ "      this is normally used to mark an email address invalid.\n"
 #~ msgstr ""
 #~ "Dovresti specificare un motivo per questa certificazione. A seconda del\n"
-#~ "contesto hai la possibilità di scegliere tra questa lista:\n"
+#~ "contesto hai la possibilità di scegliere tra questa lista:\n"
 #~ "  \"Key has been compromised\"\n"
 #~ "      Usa questo se hai un motivo per credere che una persona non "
 #~ "autorizzata\n"
 #~ "      abbia avuto accesso alla tua chiave segreta.\n"
 #~ "  \"Key is superseded\"\n"
-#~ "      Usa questo se hai sostituito questa chiave con una più recente.\n"
+#~ "      Usa questo se hai sostituito questa chiave con una più recente.\n"
 #~ "  \"Key is no longer used\"\n"
 #~ "      Usa questo se hai mandato in pensione questa chiave.\n"
 #~ "  \"User ID is no longer valid\"\n"
-#~ "      Usa questo per affermare che l'user ID non dovrebbe più essere "
+#~ "      Usa questo per affermare che l'user ID non dovrebbe più essere "
 #~ "usato;\n"
-#~ "      solitamente è usato per indicare un indirizzo di email non valido.\n"
+#~ "      solitamente è usato per indicare un indirizzo di email non valido.\n"
 
 #~ msgid ""
 #~ "If you like, you can enter a text describing why you issue this\n"
 #~ "revocation certificate.  Please keep this text concise.\n"
 #~ "An empty line ends the text.\n"
 #~ msgstr ""
-#~ "Se vuoi, puoi digitare un testo che descrive perché hai emesso\n"
+#~ "Se vuoi, puoi digitare un testo che descrive perché hai emesso\n"
 #~ "questo certificato di revoca. Per favore sii conciso.\n"
 #~ "Una riga vuota termina il testo.\n"
 
@@ -9685,7 +9763,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "key generation is not available from the commandline\n"
-#~ msgstr "gpg-agent non è disponibile in questa sessione\n"
+#~ msgstr "gpg-agent non è disponibile in questa sessione\n"
 
 #, fuzzy
 #~ msgid "please use the script \"%s\" to generate a new key\n"
@@ -9694,7 +9772,7 @@ msgstr ""
 #, fuzzy
 #~ msgid "cipher extension `%s' not loaded due to unsafe permissions\n"
 #~ msgstr ""
-#~ "l'estensione crittografica \"%s\" non è stata caricata a causa dei\n"
+#~ "l'estensione crittografica \"%s\" non è stata caricata a causa dei\n"
 #~ "permessi insicuri.\n"
 
 #, fuzzy
@@ -9722,23 +9800,23 @@ msgstr ""
 #~ msgstr "impossibile generare un numero primo di meno di %d bit\n"
 
 #~ msgid "no entropy gathering module detected\n"
-#~ msgstr "non è stato trovato il modulo per raccogliere l'entropia\n"
+#~ msgstr "non è stato trovato il modulo per raccogliere l'entropia\n"
 
 #, fuzzy
 #~ msgid "can't lock `%s': %s\n"
 #~ msgstr "impossibile aprire `%s'\n"
 
 #~ msgid "`%s' is not a regular file - ignored\n"
-#~ msgstr "`%s' non è un file regolare - ignorato\n"
+#~ msgstr "`%s' non è un file regolare - ignorato\n"
 
 #~ msgid "note: random_seed file is empty\n"
-#~ msgstr "nota: il file random_seed è vuoto\n"
+#~ msgstr "nota: il file random_seed è vuoto\n"
 
 #~ msgid "can't read `%s': %s\n"
 #~ msgstr "impossibile leggere `%s': %s\n"
 
 #~ msgid "note: random_seed file not updated\n"
-#~ msgstr "nota: il file random_seed non è stato aggiornato\n"
+#~ msgstr "nota: il file random_seed non è stato aggiornato\n"
 
 #~ msgid "can't write `%s': %s\n"
 #~ msgstr "impossibile scrivere su `%s': %s\n"
@@ -9757,8 +9835,8 @@ msgstr ""
 #~ "DON'T USE ANY DATA GENERATED BY THIS PROGRAM!!\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Il generatore di numeri casuali è solo un ripiego per fare\n"
-#~ "funzionare il programma - non è assolutamente un RNG forte!\n"
+#~ "Il generatore di numeri casuali è solo un ripiego per fare\n"
+#~ "funzionare il programma - non è assolutamente un RNG forte!\n"
 #~ "\n"
 #~ "NON USARE ALCUN DATO GENERATO DA QUESTO PROGRAMMA!\n"
 #~ "\n"
@@ -9768,9 +9846,9 @@ msgstr ""
 #~ "keep you from getting bored, because it will improve the quality\n"
 #~ "of the entropy.\n"
 #~ msgstr ""
-#~ "Attendi, sto raccogliendo entropia. Se può evitare di annoiarti lavora un "
+#~ "Attendi, sto raccogliendo entropia. Se può evitare di annoiarti lavora un "
 #~ "po',\n"
-#~ "visto che questo migliorerà la qualità dell'entropia.\n"
+#~ "visto che questo migliorerà la qualità dell'entropia.\n"
 
 #~ msgid ""
 #~ "\n"
@@ -9779,16 +9857,16 @@ msgstr ""
 #~ msgstr ""
 #~ "\n"
 #~ "Non ci sono abbastanza byte casuali disponibili. Per favore fai qualche\n"
-#~ "altra cosa per dare all'OS la possibilità di raccogliere altra entropia!\n"
+#~ "altra cosa per dare all'OS la possibilità di raccogliere altra entropia!\n"
 #~ "(Servono altri %d byte)\n"
 
 #, fuzzy
 #~ msgid "card reader not available\n"
-#~ msgstr "la chiave segreta non è disponibile"
+#~ msgstr "la chiave segreta non è disponibile"
 
 #, fuzzy
 #~ msgid "NOTE: %s is not available in this version\n"
-#~ msgstr "gpg-agent non è disponibile in questa sessione\n"
+#~ msgstr "gpg-agent non è disponibile in questa sessione\n"
 
 #, fuzzy
 #~ msgid "         algorithms on these user IDs:\n"
@@ -9825,10 +9903,10 @@ msgstr ""
 #~ msgstr "l'user id non esiste"
 
 #~ msgid "secret key not available"
-#~ msgstr "la chiave segreta non è disponibile"
+#~ msgstr "la chiave segreta non è disponibile"
 
 #~ msgid "wrong secret key used"
-#~ msgstr "è stata usata la chiave segreta sbagliata"
+#~ msgstr "è stata usata la chiave segreta sbagliata"
 
 #~ msgid "bad key"
 #~ msgstr "chiave sbagliata"
@@ -9893,9 +9971,6 @@ msgstr ""
 #~ msgid "bad URI"
 #~ msgstr "URI non valida"
 
-#~ msgid "network error"
-#~ msgstr "errore di rete"
-
 # ??? (Md)
 #~ msgid "not processed"
 #~ msgstr "non esaminato"
@@ -9918,10 +9993,10 @@ msgstr ""
 #~ msgstr "non ci sono dati firmati\n"
 
 #~ msgid "... this is a bug (%s:%d:%s)\n"
-#~ msgstr "... questo è un bug (%s:%d:%s)\n"
+#~ msgstr "... questo è un bug (%s:%d:%s)\n"
 
 #~ msgid "operation is not possible without initialized secure memory\n"
-#~ msgstr "l'operazione non è possibile senza memoria sicura inizializzata\n"
+#~ msgstr "l'operazione non è possibile senza memoria sicura inizializzata\n"
 
 #~ msgid "(you may have used the wrong program for this task)\n"
 #~ msgstr "(potresti avere usato il programma sbagliato per questa funzione)\n"
@@ -9954,7 +10029,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "No user IDs are removable.\n"
-#~ msgstr "l'user ID \"%s\" è già stato revocato\n"
+#~ msgstr "l'user ID \"%s\" è già stato revocato\n"
 
 #~ msgid "bad passphrase or unknown cipher algorithm (%d)\n"
 #~ msgstr "passphrase errata o algoritmo di cifratura sconosciuto (%d)\n"
@@ -10151,7 +10226,7 @@ msgstr ""
 #~ msgstr "showphoto"
 
 #~ msgid "digest algorithm `%s' is read-only in this release\n"
-#~ msgstr "in questa versione l'algoritmo digest `%s' è in sola lettura\n"
+#~ msgstr "in questa versione l'algoritmo digest `%s' è in sola lettura\n"
 
 #~ msgid ""
 #~ "About to generate a new %s keypair.\n"
@@ -10160,28 +10235,28 @@ msgstr ""
 #~ "    highest suggested keysize is 2048 bits\n"
 #~ msgstr ""
 #~ "Sto per generare una nuova coppia di chiavi %s.\n"
-#~ "               la dimensione minima è  768 bit\n"
-#~ "          la dimensione predefinita è 1024 bit\n"
-#~ "  la dimensione massima consigliata è 2048 bit\n"
+#~ "               la dimensione minima è  768 bit\n"
+#~ "          la dimensione predefinita è 1024 bit\n"
+#~ "  la dimensione massima consigliata è 2048 bit\n"
 
 #~ msgid "DSA only allows keysizes from 512 to 1024\n"
 #~ msgstr "DSA permette solo chiavi di dimensioni tra 512 e 1024\n"
 
 #~ msgid "keysize too small; 1024 is smallest value allowed for RSA.\n"
 #~ msgstr ""
-#~ "la chiave è troppo corta; 1024 è il minimo valore permesso per RSA.\n"
+#~ "la chiave è troppo corta; 1024 è il minimo valore permesso per RSA.\n"
 
 #~ msgid "keysize too small; 768 is smallest value allowed.\n"
-#~ msgstr "la chiave è troppo corta; 768 è il minimo valore permesso.\n"
+#~ msgstr "la chiave è troppo corta; 768 è il minimo valore permesso.\n"
 
 #~ msgid "keysize too large; %d is largest value allowed.\n"
-#~ msgstr "la chiave è troppo lunga; %d è il massimo valore permesso.\n"
+#~ msgstr "la chiave è troppo lunga; %d è il massimo valore permesso.\n"
 
 #~ msgid ""
 #~ "Keysizes larger than 2048 are not suggested because\n"
 #~ "computations take REALLY long!\n"
 #~ msgstr ""
-#~ "Chiavi più lunghe di 2048 non sono consigliate perchè i calcoli sono\n"
+#~ "Chiavi più lunghe di 2048 non sono consigliate perchè i calcoli sono\n"
 #~ "VERAMENTE lunghi!\n"
 
 #, fuzzy
@@ -10201,23 +10276,23 @@ msgstr ""
 #~ msgid ""
 #~ "this cipher algorithm is deprecated; please use a more standard one!\n"
 #~ msgstr ""
-#~ "questo algoritmo di cifratura è deprecato; usane uno più standard!\n"
+#~ "questo algoritmo di cifratura è deprecato; usane uno più standard!\n"
 
 #~ msgid "sorry, can't do this in batch mode\n"
-#~ msgstr "mi dispiace, non è possibile fare questo in modo batch\n"
+#~ msgstr "mi dispiace, non è possibile fare questo in modo batch\n"
 
 #, fuzzy
 #~ msgid "can't open file `%s': %s\n"
 #~ msgstr "impossibile aprire il file: %s\n"
 
 #~ msgid "key %08lX: key has been revoked!\n"
-#~ msgstr "chiave %08lX: la chiave è stata revocata!\n"
+#~ msgstr "chiave %08lX: la chiave è stata revocata!\n"
 
 #~ msgid "key %08lX: subkey has been revoked!\n"
-#~ msgstr "chiave %08lX: la subchiave è stata revocata!\n"
+#~ msgstr "chiave %08lX: la subchiave è stata revocata!\n"
 
 #~ msgid "%08lX: key has expired\n"
-#~ msgstr "%08lX: la chiave è scaduta\n"
+#~ msgstr "%08lX: la chiave è scaduta\n"
 
 #~ msgid "%08lX: We do NOT trust this key\n"
 #~ msgstr "%08lX: NON ci fidiamo di questa chiave!\n"
@@ -10284,13 +10359,13 @@ msgstr ""
 #~ msgstr "errore: mancano due punti\n"
 
 #~ msgid "error: no ownertrust value\n"
-#~ msgstr "errore: non c'è il valore della fiducia\n"
+#~ msgstr "errore: non c'è il valore della fiducia\n"
 
 #~ msgid " (main key ID %08lX)"
 #~ msgstr " (key ID principale %08lX)"
 
 #~ msgid "rev! subkey has been revoked: %s\n"
-#~ msgstr "rev! la subchiave è stata revocata: %s\n"
+#~ msgstr "rev! la subchiave è stata revocata: %s\n"
 
 #~ msgid "rev- faked revocation found\n"
 #~ msgstr "rev- trovata una revoca falsificata\n"
@@ -10395,7 +10470,7 @@ msgstr ""
 
 #~ msgid "compress algorithm `%s' is read-only in this release\n"
 #~ msgstr ""
-#~ "in questa versione l'algoritmo di compressione `%s' è in sola lettura\n"
+#~ "in questa versione l'algoritmo di compressione `%s' è in sola lettura\n"
 
 #~ msgid "compress algorithm must be in range %d..%d\n"
 #~ msgstr "l'algoritmo di compressione deve essere tra %d e %d\n"
@@ -10404,12 +10479,12 @@ msgstr ""
 #~ "%08lX: It is not sure that this key really belongs to the owner\n"
 #~ "but it is accepted anyway\n"
 #~ msgstr ""
-#~ "%08lX: Non è sicuro che questa chiave appartenga veramente al "
+#~ "%08lX: Non è sicuro che questa chiave appartenga veramente al "
 #~ "proprietario\n"
-#~ "ma è accettata comunque\n"
+#~ "ma è accettata comunque\n"
 
 #~ msgid "preference %c%lu is not valid\n"
-#~ msgstr "la preferenza %c%lu non è valida\n"
+#~ msgstr "la preferenza %c%lu non è valida\n"
 
 #~ msgid "key %08lX: not a rfc2440 key - skipped\n"
 #~ msgstr "chiave %08lX: chiave non rfc2440 - saltata\n"
@@ -10417,7 +10492,7 @@ msgstr ""
 #~ msgid ""
 #~ "NOTE: Elgamal primary key detected - this may take some time to import\n"
 #~ msgstr ""
-#~ "NOTA: trovata una chiave primaria Elgamal - importarla può essere lungo\n"
+#~ "NOTA: trovata una chiave primaria Elgamal - importarla può essere lungo\n"
 
 #~ msgid " (default)"
 #~ msgstr " (predefinito)"
@@ -10444,21 +10519,21 @@ msgstr ""
 #~ "key %08lX: this is a PGP generated ElGamal key which is NOT secure for "
 #~ "signatures!\n"
 #~ msgstr ""
-#~ "chiave %08lX: questa è una chiave ElGamal generata da PGP che NON è "
+#~ "chiave %08lX: questa è una chiave ElGamal generata da PGP che NON è "
 #~ "sicura per le firme!\n"
 
 #~ msgid ""
 #~ "key %08lX has been created %lu second in future (time warp or clock "
 #~ "problem)\n"
 #~ msgstr ""
-#~ "la chiave %08lX è stata creata %lu secondo nel futuro (salto nel tempo\n"
+#~ "la chiave %08lX è stata creata %lu secondo nel futuro (salto nel tempo\n"
 #~ "o problema con l'orologio)\n"
 
 #~ msgid ""
 #~ "key %08lX has been created %lu seconds in future (time warp or clock "
 #~ "problem)\n"
 #~ msgstr ""
-#~ "la chiave %08lX è stata creata %lu secondi nel futuro (salto nel tempo\n"
+#~ "la chiave %08lX è stata creata %lu secondi nel futuro (salto nel tempo\n"
 #~ "o problema con l'orologio)\n"
 
 #~ msgid "key %08lX marked as ultimately trusted\n"
@@ -10499,31 +10574,31 @@ msgstr ""
 #~ msgstr ""
 #~ "Seleziona l'algoritmo da usare.\n"
 #~ "\n"
-#~ "DSA (alias DSS) è un algoritmo usabile solo per firmare. E l'algoritmo\n"
-#~ "suggerito perché verificare firme DSA è molto più veloce di quelle "
+#~ "DSA (alias DSS) è un algoritmo usabile solo per firmare. E l'algoritmo\n"
+#~ "suggerito perché verificare firme DSA è molto più veloce di quelle "
 #~ "ElGamal.\n"
 #~ "\n"
-#~ "ElGamal è un algoritmo usabile per firmare e cifrare.\n"
+#~ "ElGamal è un algoritmo usabile per firmare e cifrare.\n"
 #~ "OpenPGP distingue tra due versioni di questo algoritmo: una solo per "
 #~ "firmare\n"
-#~ "e una per firmare e cifrare. In realtà è sempre lo stesso, ma per creare\n"
+#~ "e una per firmare e cifrare. In realtà è sempre lo stesso, ma per creare\n"
 #~ "firme sicure per la cifratura occorre scegliere in un modo particolare "
 #~ "alcuni\n"
-#~ "parametri: questo programma lo fa ma non è richiesto che altre "
+#~ "parametri: questo programma lo fa ma non è richiesto che altre "
 #~ "implementazioni\n"
 #~ "di OpenPGP capiscano la versione per firmare e cifrare.\n"
 #~ "\n"
 #~ "La prima chiave (primaria) deve sempre essere una chiave in grado di "
 #~ "firmare;\n"
-#~ "questo è il motivo per cui le chiavi ElGamal solo per cifrare non sono\n"
-#~ "disponibili in questo menù."
+#~ "questo è il motivo per cui le chiavi ElGamal solo per cifrare non sono\n"
+#~ "disponibili in questo menù."
 
 #~ msgid ""
 #~ "Although these keys are defined in RFC2440 they are not suggested\n"
 #~ "because they are not supported by all programs and signatures created\n"
 #~ "with them are quite large and very slow to verify."
 #~ msgstr ""
-#~ "Anche se queste chiavi sono definite da RFC2400 non sono suggerite perché "
+#~ "Anche se queste chiavi sono definite da RFC2400 non sono suggerite perché "
 #~ "non\n"
 #~ "sono gestite da tutti i programmi e le firme create sono grandi e lunghe "
 #~ "da\n"
index 9048df6..e94e34f 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnupg 2.1.15\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
-"PO-Revision-Date: 2016-08-04 17:30+0900\n"
+"PO-Revision-Date: 2016-09-02 16:58+0200\n"
 "Last-Translator: NIIBE Yutaka <gniibe@fsij.org>\n"
 "Language-Team: none\n"
 "Language: ja\n"
@@ -150,14 +150,6 @@ msgid "no suitable card key found: %s\n"
 msgstr "適当なカードの鍵が見つかりません: %s\n"
 
 #, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "鍵のシャドウ化に失敗しました: %s\n"
-
-#, c-format
-msgid "error writing key: %s\n"
-msgstr "鍵の書き込みエラー: %s\n"
-
-#, c-format
 msgid ""
 "An ssh process requested the use of key%%0A  %s%%0A  (%s)%%0ADo you want to "
 "allow this?"
@@ -304,6 +296,11 @@ msgstr "デーモン・モードで実行 (バックグラウンド)"
 msgid "run in server mode (foreground)"
 msgstr "サーバ・モードで実行 (フォアグラウンド)"
 
+#, fuzzy
+#| msgid "run in server mode"
+msgid "run in supervised mode"
+msgstr "サーバ・モードで実行"
+
 msgid "verbose"
 msgstr "冗長"
 
@@ -703,8 +700,8 @@ msgid "error forking process: %s\n"
 msgstr "プロセスforkエラー: %s\n"
 
 #, c-format
-msgid "waiting for processes to terminate failed: %s\n"
-msgstr "プロセスの終了待ちが失敗: %s\n"
+msgid "waiting for process %d to terminate failed: %s\n"
+msgstr "プロセス%dの終了待ちが失敗: %s\n"
 
 #, c-format
 msgid "error running '%s': probably not installed\n"
@@ -719,12 +716,12 @@ msgid "error running '%s': terminated\n"
 msgstr "'%s'の実行エラー: 終了しました\n"
 
 #, c-format
-msgid "error getting exit code of process %d: %s\n"
-msgstr "プロセス %d のexitコード取得エラー: %s\n"
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "プロセスの終了待ちが失敗: %s\n"
 
 #, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr "プロセス%dの終了待ちが失敗: %s\n"
+msgid "error getting exit code of process %d: %s\n"
+msgstr "プロセス %d のexitコード取得エラー: %s\n"
 
 #, c-format
 msgid "can't connect to '%s': %s\n"
@@ -745,6 +742,15 @@ msgstr "警告: '%s'の安全でない所有 \"%s\"\n"
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
 msgstr "警告: '%s'の安全でない許可 \"%s\"\n"
 
+#, fuzzy, c-format
+#| msgid "waiting for the agent to come up ... (%ds)\n"
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "agentの起動のため、%d秒待ちます\n"
+
+#, c-format
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "'%s'から'%s'へ名前変更に失敗: %s\n"
+
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "yes"
 msgstr "yes"
@@ -2019,8 +2025,10 @@ msgstr "鍵の一覧に鍵リングの名前を表示する"
 msgid "show expiration dates during signature listings"
 msgstr "署名の一覧時に有効期限の日付を表示する"
 
-msgid "available TOFU policies:\n"
-msgstr "利用可能なTOFUポリシー:\n"
+#, fuzzy, c-format
+#| msgid "invalid argument for option \"%.50s\"\n"
+msgid "valid values for option '%s':\n"
+msgstr "オプション\"%.50s\"には無効な引数です\n"
 
 #, c-format
 msgid "unknown TOFU policy '%s'\n"
@@ -2029,6 +2037,11 @@ msgstr "不明のTOFUポリシー'%s'\n"
 msgid "(use \"help\" to list choices)\n"
 msgstr "(選択肢の一覧には\"help\"を使ってください)\n"
 
+#, fuzzy, c-format
+#| msgid "invalid argument for option \"%.50s\"\n"
+msgid "invalid value for option '%s'\n"
+msgstr "オプション\"%.50s\"には無効な引数です\n"
+
 #, c-format
 msgid "Note: old default options file '%s' ignored\n"
 msgstr "*注意*: 以前デフォルトだったオプション・ファイル'%s'は、無視されます\n"
@@ -2041,10 +2054,9 @@ msgstr "*注意*: 普通%sは使いません!\n"
 msgid "'%s' is not a valid signature expiration\n"
 msgstr "'%s'は、有効な署名表現ではありません\n"
 
-#, fuzzy, c-format
-#| msgid "line %d: not a valid email address\n"
+#, c-format
 msgid "\"%s\" is not a proper mail address\n"
-msgstr "行 %d: 有効な電子メール・アドレスではありません\n"
+msgstr "\"%s\"は正しいメール・アドレスではありません\n"
 
 #, c-format
 msgid "invalid pinentry mode '%s'\n"
@@ -2785,6 +2797,10 @@ msgid "[self-signature]"
 msgstr "[自己署名]"
 
 #, c-format
+msgid "error allocating memory: %s\n"
+msgstr "メモリの確保のエラー: %s\n"
+
+#, c-format
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
 msgstr "サポートしていない公開鍵アルゴリズム(%d)の署名は確認できません: %s.\n"
 
@@ -4289,10 +4305,9 @@ msgstr "               %s鍵%sを使用\n"
 msgid "Signature made %s using %s key ID %s\n"
 msgstr "%sに%s鍵ID %sで施された署名\n"
 
-#, fuzzy, c-format
-#| msgid "                aka \"%s\""
+#, c-format
 msgid "               issuer \"%s\"\n"
-msgstr "                別名\"%s\""
+msgstr "               発行者\"%s\"\n"
 
 msgid "Key available at: "
 msgstr "以下に鍵があります: "
@@ -4668,6 +4683,25 @@ msgstr "この鍵はたぶん本人のものです\n"
 msgid "This key belongs to us\n"
 msgstr "この鍵は自分のものです\n"
 
+#, fuzzy, c-format
+#| msgid "root certificate has now been marked as trusted\n"
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr "ルート証明書は信用すると今、マークされました\n"
+
+#, fuzzy
+#| msgid ""
+#| "It is NOT certain that the key belongs to the person named\n"
+#| "in the user ID.  If you *really* know what you are doing,\n"
+#| "you may answer the next question with yes.\n"
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"この鍵は、このユーザIDをなのる本人のものかどうか確信でき\n"
+"ません。今から行うことを*本当に*理解していない場合には、\n"
+"次の質問にはnoと答えてください。\n"
+
 msgid ""
 "It is NOT certain that the key belongs to the person named\n"
 "in the user ID.  If you *really* know what you are doing,\n"
@@ -5291,32 +5325,42 @@ msgstr "TOFUデータベースのオープンでエラー '%s': %s\n"
 msgid "error updating TOFU database: %s\n"
 msgstr "TOFUデータベースの更新エラー: %s\n"
 
-#, c-format
-msgid "The binding %s is NOT known."
-msgstr "%sのバインディングは不明です。"
-
-#, c-format
+#, fuzzy, c-format
+#| msgid "The email address \"%s\" is associated with %d key:\n"
+#| msgid_plural "The email address \"%s\" is associated with %d keys:\n"
 msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+"This is the first time the email address \"%s\" is being used with key %s."
+msgstr "電子メールアドレス\"%s\"は%d個の鍵に結びつけられます:\n"
+
+#, fuzzy, c-format
+#| msgid "The email address \"%s\" is associated with %d key:\n"
+#| msgid_plural "The email address \"%s\" is associated with %d keys:\n"
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr "電子メールアドレス\"%s\"は%d個の鍵に結びつけられます:\n"
+
+#, fuzzy
+#| msgid ""
+#| "The key with fingerprint %s raised a conflict with the binding %s.  Since "
+#| "this binding's policy was 'auto', it was changed to 'ask'."
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 "鍵のフィンガープリント%sがバインディング%sと衝突しました。このバインディング"
 "ポリシーは'auto'だったので、'ask'に変更されました。"
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
-"バインディング%s%sが適切(鍵は述べられた所有者に属する)か、偽られたものか(ダ"
-"メ)かを指示してください。"
 
 #, c-format
 msgid "error gathering other user IDs: %s\n"
 msgstr "ほかのユーザIDの収集エラー: %s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr "この鍵に結びつけられた知られているユーザID:\n"
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "鍵とユーザIDの一覧"
 
 #, c-format
 msgid "policy: %s"
@@ -5335,34 +5379,50 @@ msgstr[0] "電子メールアドレス\"%s\"は%d個の鍵に結びつけられ
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr "この電子メールアドレス\"%s\"の鍵の統計:\n"
 
+msgid ", "
+msgstr ""
+
 msgid "this key"
 msgstr "この鍵"
 
-#, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
-msgstr[0] "%ld個のメッセージが未来に署名されました。"
+#, fuzzy, c-format
+#| msgid "Verified %ld messages signed by \"%s\"."
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
+msgstr[0] "%ld個のメッセージを検証しました(\"%s\"で署名されたもの)。"
 
 #, c-format
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
-msgstr[0] "%ld個のメッセージに署名しました"
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
+msgstr[0] ""
 
-#, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+#, fuzzy, c-format
+#| msgid " over the past %ld day."
+#| msgid_plural " over the past %ld days."
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] "過去%ld日に。"
 
-#, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
-msgstr[0] "過去%ld週間に。"
-
-#, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+#, fuzzy, c-format
+#| msgid " over the past %ld month."
+#| msgid_plural " over the past %ld months."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] "過去%ld月に。"
 
+#, fuzzy, c-format
+#| msgid " over the past %ld day."
+#| msgid_plural " over the past %ld days."
+msgid " over the past year."
+msgid_plural " over the past %d years."
+msgstr[0] "過去%ld日に。"
+
+#, fuzzy
+#| msgid " over the past %ld day."
+#| msgid_plural " over the past %ld days."
+msgid " in the past."
+msgstr "過去%ld日に。"
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5380,6 +5440,17 @@ msgstr ""
 "(G)ood-良, (A)ccept once-一度だけ良, (U)nknown-不明, (R)eject once-一度だけ"
 "否, (B)ad-ダメ? "
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing key: %s\n"
+msgid "resetting keydb: %s\n"
+msgstr "鍵の書き込みエラー: %s\n"
+
 #, c-format
 msgid "error setting TOFU binding's trust level to %s\n"
 msgstr "TOFUデータベースの信用レベルの設定エラー: %s\n"
@@ -5421,52 +5492,88 @@ msgid_plural "%d~seconds"
 msgstr[0] "%d~秒"
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
-msgstr "鍵%sで署名されたメッセージを検証したことは一度もありません!\n"
-
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
+msgid "%s: "
 msgstr ""
-"\"%s\"の署名の統計を収集することに失敗しました\n"
-"(鍵 %s)\n"
 
-#, c-format
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "%ld個のメッセージを検証しました(\"%s\"で署名されたもの)。"
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "%d個の署名を削除しました。\n"
 
-#, c-format
-msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
+#, fuzzy, c-format
+#| msgid ""
+#| "Verified %ld message signed by \"%s\"\n"
+#| "in the past %s."
+#| msgid_plural ""
+#| "Verified %ld messages signed by \"%s\"\n"
+#| "in the past %s."
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
 msgstr[0] "メッセージを%ld回検証しました(\"%s\"で署名されたもの。かつて %s)。"
 
-#, c-format
-msgid "The most recent message was verified %s ago."
-msgstr "もっとも最近のメッセージは%s前に検証されました。"
+#, fuzzy, c-format
+#| msgid "encrypted with %lu passphrases\n"
+msgid ", and encrypted %ld messages"
+msgstr "%lu 個のパスフレーズで暗号化\n"
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+#, fuzzy, c-format
+#| msgid ""
+#| "Verified %ld message signed by \"%s\"\n"
+#| "in the past %s."
+#| msgid_plural ""
+#| "Verified %ld messages signed by \"%s\"\n"
+#| "in the past %s."
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] "メッセージを%ld回検証しました(\"%s\"で署名されたもの。かつて %s)。"
+
+#, fuzzy
+#| msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
 msgstr "警告: この鍵で署名されたメッセージを検証したことはありません!\n"
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+#, fuzzy
+#| msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 "警告: この鍵で署名されたメッセージを検証したことは一度しかありません!\n"
 
-#, c-format
+#, fuzzy
+#| msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
+msgstr "警告: この鍵で署名されたメッセージを検証したことはありません!\n"
+
+#, fuzzy
+#| msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
+msgstr ""
+"警告: この鍵で署名されたメッセージを検証したことは一度しかありません!\n"
+
+#, fuzzy, c-format
+#| msgid ""
+#| "Warning: if you think you've seen more than %ld message signed by this "
+#| "key, then this key might be a forgery!  Carefully examine the email "
+#| "address for small variations.  If the key is suspect, then use\n"
+#| "  %s\n"
+#| "to mark it as being bad.\n"
+#| msgid_plural ""
+#| "Warning: if you think you've seen more than %ld messages signed by this "
+#| "key, then this key might be a forgery!  Carefully examine the email "
+#| "address for small variations.  If the key is suspect, then use\n"
+#| "  %s\n"
+#| "to mark it as being bad.\n"
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -5481,6 +5588,15 @@ msgid "error opening TOFU database: %s\n"
 msgstr "TOFUデータベースのオープンでエラー: %s\n"
 
 #, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring '%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "公開鍵リング'%s'の書き込みエラー: %s\n"
+
+#, c-format
 msgid "'%s' is not a valid long keyID\n"
 msgstr "'%s'は、有効な大型鍵IDでありません\n"
 
@@ -5715,22 +5831,24 @@ msgstr "指紋の保管に失敗しました: %s\n"
 msgid "failed to store the creation date: %s\n"
 msgstr "生成日の保管に失敗しました: %s\n"
 
-#, c-format
-msgid "reading public key failed: %s\n"
-msgstr "公開鍵の読み込みに失敗しました: %s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr "応答に公開鍵データが含まれていません\n"
-
 msgid "response does not contain the RSA modulus\n"
 msgstr "応答にRSAのモジュラスが含まれていません\n"
 
 msgid "response does not contain the RSA public exponent\n"
 msgstr "応答にRSA公開指数が含まれていません\n"
 
-msgid "response does not contain the EC public point\n"
+#, fuzzy
+#| msgid "response does not contain the EC public point\n"
+msgid "response does not contain the EC public key\n"
 msgstr "応答に楕円曲線の公開点が含まれていません\n"
 
+msgid "response does not contain the public key data\n"
+msgstr "応答に公開鍵データが含まれていません\n"
+
+#, c-format
+msgid "reading public key failed: %s\n"
+msgstr "公開鍵の読み込みに失敗しました: %s\n"
+
 #, c-format
 msgid "using default PIN as %s\n"
 msgstr "デフォルトPINを%sとして使います\n"
@@ -7278,6 +7396,9 @@ msgstr "期日の過ぎたCRLのロードを強制する"
 msgid "allow sending OCSP requests"
 msgstr "OCSP要求の送信を認める"
 
+msgid "allow online software version check"
+msgstr ""
+
 msgid "inhibit the use of HTTP"
 msgstr "HTTPの使用を禁止する"
 
@@ -7532,10 +7653,6 @@ msgid "'%s' is an invalid LDAP URL\n"
 msgstr "'%s' は無効なLDAP URLです\n"
 
 #, c-format
-msgid "error allocating memory: %s\n"
-msgstr "メモリの確保のエラー: %s\n"
-
-#, c-format
 msgid "error printing log line: %s\n"
 msgstr "log出力エラー: %s\n"
 
@@ -7987,22 +8104,30 @@ msgstr "LDAPサーバ・リスト"
 msgid "Configuration for OCSP"
 msgstr "OCSPのコンフィグレーション"
 
-msgid "GPG for OpenPGP"
+#, fuzzy
+#| msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr "OpenPGPのためのGPG"
 
-msgid "GPG Agent"
-msgstr "GPG Agent"
+msgid "Private Keys"
+msgstr ""
 
-msgid "Smartcard Daemon"
+#, fuzzy
+#| msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr "スマートカード・デーモン"
 
-msgid "GPG for S/MIME"
+#, fuzzy
+#| msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr "S/MIME のためのGPG"
 
-msgid "Key Acquirer"
-msgstr "キー取得プログラム"
+msgid "Network"
+msgstr ""
 
-msgid "PIN and Passphrase Entry"
+#, fuzzy
+#| msgid "PIN and Passphrase Entry"
+msgid "Passphrase Entry"
 msgstr "PINとパスフレーズの入力"
 
 msgid "Component not suitable for launching"
@@ -8042,6 +8167,11 @@ msgstr "グローバルのコンフィグレーション・ファイルをリス
 msgid "check global configuration file"
 msgstr "グローバルのコンフィグレーション・ファイルをチェックする"
 
+#, fuzzy
+#| msgid "update the trust database"
+msgid "query the software version database"
+msgstr "信用データベースを更新"
+
 msgid "reload all or a given component"
 msgstr "すべて、あるいは指定されたコンポーネントをリロードする"
 
@@ -8220,6 +8350,56 @@ msgstr ""
 "形式: gpg-check-pattern [オプション] パターンファイル\n"
 "パターンファイルに対して標準入力のパスフレーズを確認する\n"
 
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "鍵のシャドウ化に失敗しました: %s\n"
+
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "利用可能なTOFUポリシー:\n"
+
+#~ msgid "The binding %s is NOT known."
+#~ msgstr "%sのバインディングは不明です。"
+
+#~ msgid ""
+#~ "Please indicate whether you believe the binding %s%sis legitimate (the "
+#~ "key belongs to the stated owner) or a forgery (bad)."
+#~ msgstr ""
+#~ "バインディング%s%sが適切(鍵は述べられた所有者に属する)か、偽られたものか"
+#~ "(ダメ)かを指示してください。"
+
+#~ msgid "Known user IDs associated with this key:\n"
+#~ msgstr "この鍵に結びつけられた知られているユーザID:\n"
+
+#~ msgid "%ld message signed in the future."
+#~ msgid_plural "%ld messages signed in the future."
+#~ msgstr[0] "%ld個のメッセージが未来に署名されました。"
+
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "%ld個のメッセージに署名しました"
+
+#~ msgid " over the past %ld week."
+#~ msgid_plural " over the past %ld weeks."
+#~ msgstr[0] "過去%ld週間に。"
+
+#~ msgid "Have never verified a message signed by key %s!\n"
+#~ msgstr "鍵%sで署名されたメッセージを検証したことは一度もありません!\n"
+
+#~ msgid ""
+#~ "Failed to collect signature statistics for \"%s\"\n"
+#~ "(key %s)\n"
+#~ msgstr ""
+#~ "\"%s\"の署名の統計を収集することに失敗しました\n"
+#~ "(鍵 %s)\n"
+
+#~ msgid "The most recent message was verified %s ago."
+#~ msgstr "もっとも最近のメッセージは%s前に検証されました。"
+
+#~ msgid "GPG Agent"
+#~ msgstr "GPG Agent"
+
+#~ msgid "Key Acquirer"
+#~ msgstr "キー取得プログラム"
+
 #~ msgid "communication problem with gpg-agent\n"
 #~ msgstr "gpg-agentとの通信障害\n"
 
@@ -8300,9 +8480,6 @@ msgstr ""
 #~ msgid "1 user ID without valid self-signature detected\n"
 #~ msgstr "有効な自己署名のないユーザIDを1個検出\n"
 
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "%d個の署名を削除しました。\n"
-
 #~ msgid "User ID \"%s\": %d signatures removed\n"
 #~ msgstr "ユーザID \"%s\": %d の署名が除去されました\n"
 
@@ -8343,9 +8520,6 @@ msgstr ""
 #~ msgid "1 good signature\n"
 #~ msgstr "正しい署名1個\n"
 
-#~ msgid "renaming '%s' to '%s' failed: %s\n"
-#~ msgstr "'%s'から'%s'へ名前変更に失敗: %s\n"
-
 #~ msgid "%lu keys cached (%lu signatures)\n"
 #~ msgstr "%lu個の鍵をキャッシュ済 (%lu個の署名)\n"
 
index 4e5bc40..c6bfb7f 100644 (file)
--- a/po/nb.po
+++ b/po/nb.po
@@ -154,14 +154,6 @@ msgid "no suitable card key found: %s\n"
 msgstr "fant ingen passende kortnøkkel: %s\n"
 
 #, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "skyggelegging av nøkkel mislyktes: %s\n"
-
-#, c-format
-msgid "error writing key: %s\n"
-msgstr "feil under skriving av nøkkel: %s\n"
-
-#, c-format
 msgid ""
 "An ssh process requested the use of key%%0A  %s%%0A  (%s)%%0ADo you want to "
 "allow this?"
@@ -308,6 +300,11 @@ msgstr "kjør som bakgrunnsprosess («daemon»)"
 msgid "run in server mode (foreground)"
 msgstr "kjør i tjenermodus (forgrunn)"
 
+#, fuzzy
+#| msgid "run in server mode"
+msgid "run in supervised mode"
+msgstr "kjør i tjenermodus"
+
 msgid "verbose"
 msgstr "detaljert utskrift"
 
@@ -708,8 +705,8 @@ msgid "error forking process: %s\n"
 msgstr "feil under kopiering av prosess: %s\n"
 
 #, c-format
-msgid "waiting for processes to terminate failed: %s\n"
-msgstr "venting på avslutning av prosesser mislyktes: %s\n"
+msgid "waiting for process %d to terminate failed: %s\n"
+msgstr "prosess %d avsluttet ikke i tide: %s\n"
 
 #, c-format
 msgid "error running '%s': probably not installed\n"
@@ -725,12 +722,12 @@ msgid "error running '%s': terminated\n"
 msgstr "feil under kjøring av «%s». Avsluttet\n"
 
 #, c-format
-msgid "error getting exit code of process %d: %s\n"
-msgstr "feil under henting av prosess-avslutningskode %d: %s\n"
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "venting på avslutning av prosesser mislyktes: %s\n"
 
 #, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr "prosess %d avsluttet ikke i tide: %s\n"
+msgid "error getting exit code of process %d: %s\n"
+msgstr "feil under henting av prosess-avslutningskode %d: %s\n"
 
 #, c-format
 msgid "can't connect to '%s': %s\n"
@@ -751,6 +748,16 @@ msgstr "Advarsel: utrygt eierskap til %s «%s»\n"
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
 msgstr "Advarsel: utrygge tillatelser til %s «%s»\n"
 
+#, fuzzy, c-format
+#| msgid "waiting for the agent to come up ... (%ds)\n"
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "venter på at agent skal dukke opp … (%ds)\n"
+
+#, fuzzy, c-format
+#| msgid "error renaming '%s' to '%s': %s\n"
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "klarte ikke å gi «%s» det nye navnet «%s»: %s\n"
+
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "yes"
 msgstr "ja"
@@ -2027,8 +2034,10 @@ msgstr "vis nøkkelknippe-navn i nøkkelvisning"
 msgid "show expiration dates during signature listings"
 msgstr "vis utløpsdatoer i nøkkelvisning"
 
-msgid "available TOFU policies:\n"
-msgstr "tilgjengelige TOFU-regler:\n"
+#, fuzzy, c-format
+#| msgid "invalid argument for option \"%.50s\"\n"
+msgid "valid values for option '%s':\n"
+msgstr "ugyldig argument for valget «%.50s»\n"
 
 #, c-format
 msgid "unknown TOFU policy '%s'\n"
@@ -2037,6 +2046,11 @@ msgstr "«%s» er et ukjent TOFU-regelverk\n"
 msgid "(use \"help\" to list choices)\n"
 msgstr "(bruk «help» for å vise valg)\n"
 
+#, fuzzy, c-format
+#| msgid "invalid argument for option \"%.50s\"\n"
+msgid "invalid value for option '%s'\n"
+msgstr "ugyldig argument for valget «%.50s»\n"
+
 #, c-format
 msgid "Note: old default options file '%s' ignored\n"
 msgstr "Merk: gammel standardvalgfil «%s» ble ignorert\n"
@@ -2804,6 +2818,10 @@ msgid "[self-signature]"
 msgstr "[selvsignatur]"
 
 #, c-format
+msgid "error allocating memory: %s\n"
+msgstr "feil under minnetildeling: %s\n"
+
+#, c-format
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
 msgstr ""
 "klarte ikke å kontrollere signatur på grunn av ustøttet algoritme for "
@@ -4734,6 +4752,25 @@ msgstr "Denne nøkkelen tilhører sannsynligvis navngitt bruker\n"
 msgid "This key belongs to us\n"
 msgstr "denne nøkkelen tilhører oss\n"
 
+#, fuzzy, c-format
+#| msgid "root certificate has now been marked as trusted\n"
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr "rotsertifikat er nå merket som troverdig\n"
+
+#, fuzzy
+#| msgid ""
+#| "It is NOT certain that the key belongs to the person named\n"
+#| "in the user ID.  If you *really* know what you are doing,\n"
+#| "you may answer the next question with yes.\n"
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"Det er IKKE sikkert at nøkkelen tilhører personen som er navngitt i\n"
+"bruker-id-en.  Hvis du *virkelig* vet hva du gjør, kan du svare ja\n"
+"på neste spørsmål.\n"
+
 msgid ""
 "It is NOT certain that the key belongs to the person named\n"
 "in the user ID.  If you *really* know what you are doing,\n"
@@ -5377,32 +5414,42 @@ msgstr "feil under åpning av TOFU-database «%s»: %s\n"
 msgid "error updating TOFU database: %s\n"
 msgstr "feil under oppdatering av TOFU-database: %s\n"
 
-#, c-format
-msgid "The binding %s is NOT known."
-msgstr "Tilknytning %s er ukjent."
-
-#, c-format
+#, fuzzy, c-format
+#| msgid "The email address \"%s\" is associated with %d key:\n"
+#| msgid_plural "The email address \"%s\" is associated with %d keys:\n"
 msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+"This is the first time the email address \"%s\" is being used with key %s."
+msgstr "E-postadressen «%s» er tilknyttet %d nøkkel:\n"
+
+#, fuzzy, c-format
+#| msgid "The email address \"%s\" is associated with %d key:\n"
+#| msgid_plural "The email address \"%s\" is associated with %d keys:\n"
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr "E-postadressen «%s» er tilknyttet %d nøkkel:\n"
+
+#, fuzzy
+#| msgid ""
+#| "The key with fingerprint %s raised a conflict with the binding %s.  Since "
+#| "this binding's policy was 'auto', it was changed to 'ask'."
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 "Nøkkel med fingeravtrykk %s forårsaket konflikt med tilknytning %s. Siden "
 "regelen var «auto» er den nå endret til «ask» (spør)."
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
-"Oppgi hvorvidt du tror tilknytninga %s%ser sannferdig (dvs.: at nøkkelen "
-"tilhører personen som hevder å eie den) eller falsk."
 
 #, c-format
 msgid "error gathering other user IDs: %s\n"
 msgstr "feil under henting av andre bruker-id-er: %s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr "Kjente bruker-id-er tilknyttet denne nøkkelen:\n"
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "vis nøkler og bruker-id-er"
 
 #, c-format
 msgid "policy: %s"
@@ -5422,39 +5469,55 @@ msgstr[1] "E-postadressen «%s» er tilknyttet %d nøkler:\n"
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr "Statistikk for nøkler med e-postadresse «%s»:\n"
 
+msgid ", "
+msgstr ""
+
 msgid "this key"
 msgstr "denne nøkkelen"
 
-#, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
-msgstr[0] "%ld melding signert i fremtid."
-msgstr[1] "%ld meldinger signert i fremtid."
+#, fuzzy, c-format
+#| msgid "Verified %ld messages signed by \"%s\"."
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
+msgstr[0] "Bekreftet %ld meldinger signert av «%s»."
+msgstr[1] "Bekreftet %ld meldinger signert av «%s»."
 
 #, c-format
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
-msgstr[0] "%ld melding signert"
-msgstr[1] "%ld meldinger signert"
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
+msgstr[0] ""
+msgstr[1] ""
 
-#, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+#, fuzzy, c-format
+#| msgid " over the past %ld day."
+#| msgid_plural " over the past %ld days."
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] " i løpet av gårsdagen (%ld)."
 msgstr[1] " i løpet av de %ld siste dagene."
 
-#, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
-msgstr[0] " i løpet av den siste uka (%ld)."
-msgstr[1] " i løpet av de siste %ld ukene."
-
-#, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+#, fuzzy, c-format
+#| msgid " over the past %ld month."
+#| msgid_plural " over the past %ld months."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] " i løpet av den siste måneden (%ld)."
 msgstr[1] " i løpet av de siste %ld månedene."
 
+#, fuzzy, c-format
+#| msgid " over the past %ld day."
+#| msgid_plural " over the past %ld days."
+msgid " over the past year."
+msgid_plural " over the past %d years."
+msgstr[0] " i løpet av gårsdagen (%ld)."
+msgstr[1] " i løpet av de %ld siste dagene."
+
+#, fuzzy
+#| msgid " over the past %ld day."
+#| msgid_plural " over the past %ld days."
+msgid " in the past."
+msgstr " i løpet av gårsdagen (%ld)."
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5470,6 +5533,17 @@ msgstr "gGaAuUnNdD"
 msgid "(G)ood, (A)ccept once, (U)nknown, (R)eject once, (B)ad? "
 msgstr "(G)od, (A)ksepter én gang, (U)kjent, (N)ekt én gang, (D)årlig? "
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing key: %s\n"
+msgid "resetting keydb: %s\n"
+msgstr "feil under skriving av nøkkel: %s\n"
+
 #, c-format
 msgid "error setting TOFU binding's trust level to %s\n"
 msgstr "feil under endring av tillitsnivå for TOFU-tilknytning til %s\n"
@@ -5517,28 +5591,23 @@ msgstr[0] "%d~sekund"
 msgstr[1] "%d~sekunder"
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
-msgstr "Har aldri bekreftet en melding som er signert av nøkkel %s.\n"
-
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
+msgid "%s: "
 msgstr ""
-"Klarte ikke å samle inn signaturstatistikk for «%s»\n"
-"(nøkkel %s)\n"
 
-#, c-format
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "Bekreftet %ld meldinger signert av «%s»."
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "Slettet %d signaturer.\n"
 
-#, c-format
-msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
+#, fuzzy, c-format
+#| msgid ""
+#| "Verified %ld message signed by \"%s\"\n"
+#| "in the past %s."
+#| msgid_plural ""
+#| "Verified %ld messages signed by \"%s\"\n"
+#| "in the past %s."
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
 msgstr[0] ""
 "Bekreftet %ld melding signert av «%s»\n"
 "siste %s."
@@ -5546,30 +5615,78 @@ msgstr[1] ""
 "Bekreftet %ld meldinger signert av «%s»\n"
 "siste %s."
 
-#, c-format
-msgid "The most recent message was verified %s ago."
-msgstr "Nyeste melding ble bekreftet for %s siden."
+#, fuzzy, c-format
+#| msgid "encrypted with %lu passphrases\n"
+msgid ", and encrypted %ld messages"
+msgstr "kryptert med %lu passordfraser\n"
+
+#, fuzzy, c-format
+#| msgid ""
+#| "Verified %ld message signed by \"%s\"\n"
+#| "in the past %s."
+#| msgid_plural ""
+#| "Verified %ld messages signed by \"%s\"\n"
+#| "in the past %s."
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] ""
+"Bekreftet %ld melding signert av «%s»\n"
+"siste %s."
+msgstr[1] ""
+"Bekreftet %ld meldinger signert av «%s»\n"
+"siste %s."
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+#, fuzzy
+#| msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
 msgstr ""
 "Advarsel: vi har enda ikke sett en melding som er signert av denne "
 "nøkkelen.\n"
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+#, fuzzy
+#| msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 "Advarsel: vi har bare sett én melding som er signert av denne nøkkelen.\n"
 
-#, c-format
+#, fuzzy
+#| msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
+msgstr ""
+"Advarsel: vi har enda ikke sett en melding som er signert av denne "
+"nøkkelen.\n"
+
+#, fuzzy
+#| msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
+msgstr ""
+"Advarsel: vi har bare sett én melding som er signert av denne nøkkelen.\n"
+
+#, fuzzy, c-format
+#| msgid ""
+#| "Warning: if you think you've seen more than %ld message signed by this "
+#| "key, then this key might be a forgery!  Carefully examine the email "
+#| "address for small variations.  If the key is suspect, then use\n"
+#| "  %s\n"
+#| "to mark it as being bad.\n"
+#| msgid_plural ""
+#| "Warning: if you think you've seen more than %ld messages signed by this "
+#| "key, then this key might be a forgery!  Carefully examine the email "
+#| "address for small variations.  If the key is suspect, then use\n"
+#| "  %s\n"
+#| "to mark it as being bad.\n"
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -5590,6 +5707,15 @@ msgid "error opening TOFU database: %s\n"
 msgstr "feil under åpning av TOFU-database: %s\n"
 
 #, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring '%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "feil under skriving av offentlig nøkkelknippe «%s»: %s\n"
+
+#, c-format
 msgid "'%s' is not a valid long keyID\n"
 msgstr "«%s» er en ugyldig lang nøkkel-ID\n"
 
@@ -5827,22 +5953,24 @@ msgstr "klarte ikke å lagre fingeravtrykk: %s\n"
 msgid "failed to store the creation date: %s\n"
 msgstr "klarte ikke å lagre opprettelsesdato: %s\n"
 
-#, c-format
-msgid "reading public key failed: %s\n"
-msgstr "lesing av offentlig nøkkel mislyktes: %s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr "svar inneholder ikke offentlig nøkkeldata\n"
-
 msgid "response does not contain the RSA modulus\n"
 msgstr "svar inneholder ikke RSA-modulus\n"
 
 msgid "response does not contain the RSA public exponent\n"
 msgstr "svar inneholder ikke offentlig RSA-eksponent\n"
 
-msgid "response does not contain the EC public point\n"
+#, fuzzy
+#| msgid "response does not contain the EC public point\n"
+msgid "response does not contain the EC public key\n"
 msgstr "svar inneholder ikke offentlig EC-punkt\n"
 
+msgid "response does not contain the public key data\n"
+msgstr "svar inneholder ikke offentlig nøkkeldata\n"
+
+#, c-format
+msgid "reading public key failed: %s\n"
+msgstr "lesing av offentlig nøkkel mislyktes: %s\n"
+
 #, c-format
 msgid "using default PIN as %s\n"
 msgstr "bruker forvalgt PIN som %s\n"
@@ -7392,6 +7520,9 @@ msgstr "tving innlasting av utdatert CRL"
 msgid "allow sending OCSP requests"
 msgstr "tillat sending av OCSP-forespørsler"
 
+msgid "allow online software version check"
+msgstr ""
+
 msgid "inhibit the use of HTTP"
 msgstr "hindre bruk av HTTP"
 
@@ -7647,10 +7778,6 @@ msgid "'%s' is an invalid LDAP URL\n"
 msgstr "«%s» er en ugyldig LDAP-adresse\n"
 
 #, c-format
-msgid "error allocating memory: %s\n"
-msgstr "feil under minnetildeling: %s\n"
-
-#, c-format
 msgid "error printing log line: %s\n"
 msgstr "feil under utskrift av logglinje: %s\n"
 
@@ -8104,22 +8231,32 @@ msgstr "LDAP-tjenerliste"
 msgid "Configuration for OCSP"
 msgstr "Oppsett for OCSP"
 
-msgid "GPG for OpenPGP"
+#, fuzzy
+#| msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr "GPG for OpenPGP"
 
-msgid "GPG Agent"
-msgstr "GPG Agent"
+msgid "Private Keys"
+msgstr ""
 
-msgid "Smartcard Daemon"
+#, fuzzy
+#| msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr "Smartcard-bakgrunnsprosess"
 
-msgid "GPG for S/MIME"
+#, fuzzy
+#| msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr "GPG for S/MIME"
 
-msgid "Key Acquirer"
-msgstr "Nøkkelhenter"
+#, fuzzy
+#| msgid "network error"
+msgid "Network"
+msgstr "nettverksfeil"
 
-msgid "PIN and Passphrase Entry"
+#, fuzzy
+#| msgid "PIN and Passphrase Entry"
+msgid "Passphrase Entry"
 msgstr "Skriving av PIN og passordfrase"
 
 msgid "Component not suitable for launching"
@@ -8159,6 +8296,11 @@ msgstr "vis global oppsettsfil"
 msgid "check global configuration file"
 msgstr "kontroller global oppsettsfil"
 
+#, fuzzy
+#| msgid "update the trust database"
+msgid "query the software version database"
+msgstr "oppdater tillitsdatabase"
+
 msgid "reload all or a given component"
 msgstr "last inn én eller alle komponenter på nytt"
 
@@ -8337,6 +8479,59 @@ msgstr ""
 "Syntaks: gpg-check-pattern [valg] mønsterfil\n"
 "Kontroller passordfrase oppgitt på standard innkanal mot valgt mønsterfil\n"
 
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "skyggelegging av nøkkel mislyktes: %s\n"
+
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "tilgjengelige TOFU-regler:\n"
+
+#~ msgid "The binding %s is NOT known."
+#~ msgstr "Tilknytning %s er ukjent."
+
+#~ msgid ""
+#~ "Please indicate whether you believe the binding %s%sis legitimate (the "
+#~ "key belongs to the stated owner) or a forgery (bad)."
+#~ msgstr ""
+#~ "Oppgi hvorvidt du tror tilknytninga %s%ser sannferdig (dvs.: at nøkkelen "
+#~ "tilhører personen som hevder å eie den) eller falsk."
+
+#~ msgid "Known user IDs associated with this key:\n"
+#~ msgstr "Kjente bruker-id-er tilknyttet denne nøkkelen:\n"
+
+#~ msgid "%ld message signed in the future."
+#~ msgid_plural "%ld messages signed in the future."
+#~ msgstr[0] "%ld melding signert i fremtid."
+#~ msgstr[1] "%ld meldinger signert i fremtid."
+
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "%ld melding signert"
+#~ msgstr[1] "%ld meldinger signert"
+
+#~ msgid " over the past %ld week."
+#~ msgid_plural " over the past %ld weeks."
+#~ msgstr[0] " i løpet av den siste uka (%ld)."
+#~ msgstr[1] " i løpet av de siste %ld ukene."
+
+#~ msgid "Have never verified a message signed by key %s!\n"
+#~ msgstr "Har aldri bekreftet en melding som er signert av nøkkel %s.\n"
+
+#~ msgid ""
+#~ "Failed to collect signature statistics for \"%s\"\n"
+#~ "(key %s)\n"
+#~ msgstr ""
+#~ "Klarte ikke å samle inn signaturstatistikk for «%s»\n"
+#~ "(nøkkel %s)\n"
+
+#~ msgid "The most recent message was verified %s ago."
+#~ msgstr "Nyeste melding ble bekreftet for %s siden."
+
+#~ msgid "GPG Agent"
+#~ msgstr "GPG Agent"
+
+#~ msgid "Key Acquirer"
+#~ msgstr "Nøkkelhenter"
+
 #~ msgid "communication problem with gpg-agent\n"
 #~ msgstr "kommunikasjonsproblemer med gpg-agent\n"
 
@@ -8932,9 +9127,6 @@ msgstr ""
 #~ msgid "Please use the command \"toggle\" first.\n"
 #~ msgstr "Bruk kommandoen «toggle» først.\n"
 
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "Slettet %d signaturer.\n"
-
 #~ msgid "User ID \"%s\": %d signatures removed\n"
 #~ msgstr "Bruker-ID «%s»: %d signaturer fjernet\n"
 
@@ -9207,9 +9399,6 @@ msgstr ""
 #~ msgid "bad URI"
 #~ msgstr "ugyldig URI"
 
-#~ msgid "network error"
-#~ msgstr "nettverksfeil"
-
 #~ msgid "not processed"
 #~ msgstr "ikke behandlet"
 
index 4904ce3..6b77df7 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -13,14 +13,14 @@ msgstr ""
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
 "Language: pl\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
 "|| n%100>=20) ? 1 : 2);\n"
 
 #, c-format
 msgid "failed to acquire the pinentry lock: %s\n"
-msgstr "nie uda³o siê uzyskaæ blokady pinentry: %s\n"
+msgstr "nie udało się uzyskać blokady pinentry: %s\n"
 
 #. TRANSLATORS: These are labels for buttons etc used in
 #. Pinentries.  An underscore indicates that the next letter
@@ -55,7 +55,7 @@ msgstr "|pinentry-label|_Anuluj"
 #, fuzzy
 #| msgid "Do you really want to delete the selected keys? (y/N) "
 msgid "Do you really want to make your passphrase visible on the screen?"
-msgstr "Czy na pewno chcesz usun±æ wybrane klucze? (t/N) "
+msgstr "Czy na pewno chcesz usunąć wybrane klucze? (t/N) "
 
 msgid "|pinentry-tt|Make passphrase visible"
 msgstr ""
@@ -63,12 +63,12 @@ msgstr ""
 #, fuzzy
 #| msgid "Enter new passphrase"
 msgid "|pinentry-tt|Hide passphrase"
-msgstr "Wprowad¼ nowe has³o"
+msgstr "Wprowadź nowe hasło"
 
 #. TRANSLATORS: This string is displayed by Pinentry as the label
 #. for the quality bar.
 msgid "Quality:"
-msgstr "Jako¶æ:"
+msgstr "Jakość:"
 
 #. TRANSLATORS: This string is a tooltip, shown by pinentry when
 #. hovering over the quality bar.  Please use an appropriate
@@ -78,102 +78,94 @@ msgstr "Jako
 #. will be used.
 msgid "pinentry.qualitybar.tooltip"
 msgstr ""
-"Jako¶æ wpisanego wy¿ej tekstu.\n"
-"Kryteria jako¶ci mo¿na uzyskaæ od administratora."
+"Jakość wpisanego wyżej tekstu.\n"
+"Kryteria jakości można uzyskać od administratora."
 
 msgid ""
 "Please enter your PIN, so that the secret key can be unlocked for this "
 "session"
-msgstr "Proszê wprowadziæ swój PIN, ¿eby odblokowaæ klucz tajny dla tej sesji"
+msgstr "Proszę wprowadzić swój PIN, żeby odblokować klucz tajny dla tej sesji"
 
 msgid ""
 "Please enter your passphrase, so that the secret key can be unlocked for "
 "this session"
 msgstr ""
-"Proszê wprowadziæ swoje has³o, ¿eby odblokowaæ klucz tajny dla tej sesji"
+"Proszę wprowadzić swoje hasło, żeby odblokować klucz tajny dla tej sesji"
 
 msgid "PIN:"
 msgstr ""
 
 msgid "Passphrase:"
-msgstr "Has³o:"
+msgstr "Hasło:"
 
 msgid "does not match - try again"
-msgstr "nie pasuj± - proszê spróbowaæ jeszcze raz"
+msgstr "nie pasują - proszę spróbować jeszcze raz"
 
 #. TRANSLATORS: The string is appended to an error message in
 #. the pinentry.  The %s is the actual error message, the
 #. two %d give the current and maximum number of tries.
 #, c-format
 msgid "SETERROR %s (try %d of %d)"
-msgstr "SETERROR %s (próba %d z %d)"
+msgstr "SETERROR %s (próba %d z %d)"
 
 msgid "Repeat:"
 msgstr ""
 
 msgid "PIN too long"
-msgstr "PIN zbyt d³ugi"
+msgstr "PIN zbyt długi"
 
 msgid "Passphrase too long"
-msgstr "Has³o zbyt d³ugie"
+msgstr "Hasło zbyt długie"
 
 msgid "Invalid characters in PIN"
-msgstr "Niew³a¶ciwy znak w PIN-ie"
+msgstr "Niewłaściwy znak w PIN-ie"
 
 msgid "PIN too short"
-msgstr "PIN zbyt krótki"
+msgstr "PIN zbyt krótki"
 
 msgid "Bad PIN"
 msgstr "Niepoprawny PIN"
 
 msgid "Bad Passphrase"
-msgstr "Niepoprawne has³o"
+msgstr "Niepoprawne hasło"
 
 #, c-format
 msgid "ssh keys greater than %d bits are not supported\n"
-msgstr "klucze ssh wiêksze ni¿ %d bitów nie s± obs³ugiwane\n"
+msgstr "klucze ssh większe niż %d bitów nie są obsługiwane\n"
 
 #, fuzzy, c-format
 #| msgid "can't create `%s': %s\n"
 msgid "can't create '%s': %s\n"
-msgstr "nie mo¿na utworzyæ ,,%s'': %s\n"
+msgstr "nie można utworzyć ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't open `%s': %s\n"
 msgid "can't open '%s': %s\n"
-msgstr "nie mo¿na otworzyæ ,,%s'': %s\n"
+msgstr "nie można otworzyć ,,%s'': %s\n"
 
 #, c-format
 msgid "error getting serial number of card: %s\n"
-msgstr "b³±d pobierania numeru seryjnego karty: %s\n"
+msgstr "błąd pobierania numeru seryjnego karty: %s\n"
 
 #, c-format
 msgid "detected card with S/N: %s\n"
-msgstr "wykryto kartê o numerze seryjnym: %s\n"
+msgstr "wykryto kartę o numerze seryjnym: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error getting default authentication keyID of card: %s\n"
 msgid "no authentication key for ssh on card: %s\n"
-msgstr "b³±d pobierania domy¶lnego keyID uwierzytelnienia karty: %s\n"
+msgstr "błąd pobierania domyślnego keyID uwierzytelnienia karty: %s\n"
 
 #, c-format
 msgid "no suitable card key found: %s\n"
-msgstr "nie znaleziono pasuj±cego klucza karty: %s\n"
-
-#, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "zaciemnienie klucza nie powiod³o siê: %s\n"
-
-#, c-format
-msgid "error writing key: %s\n"
-msgstr "b³±d zapisu klucza: %s\n"
+msgstr "nie znaleziono pasującego klucza karty: %s\n"
 
 #, c-format
 msgid ""
 "An ssh process requested the use of key%%0A  %s%%0A  (%s)%%0ADo you want to "
 "allow this?"
 msgstr ""
-"Proces ssh zarz±da³ u¿ycia klucza%%0a  %s%%0A  (%s)%%0ACzy zezwoliæ na to?"
+"Proces ssh zarządał użycia klucza%%0a  %s%%0A  (%s)%%0ACzy zezwolić na to?"
 
 msgid "Allow"
 msgstr "Zgoda"
@@ -183,28 +175,28 @@ msgstr "Odmowa"
 
 #, c-format
 msgid "Please enter the passphrase for the ssh key%%0A  %F%%0A  (%c)"
-msgstr "Proszê wprowadziæ has³o dla klucza ssh%%0A  %F%%0A  (%c)"
+msgstr "Proszę wprowadzić hasło dla klucza ssh%%0A  %F%%0A  (%c)"
 
 msgid "Please re-enter this passphrase"
-msgstr "Proszê ponownie wprowadziæ to has³o"
+msgstr "Proszę ponownie wprowadzić to hasło"
 
 #, c-format
 msgid ""
 "Please enter a passphrase to protect the received secret key%%0A   %s%%0A   "
 "%s%%0Awithin gpg-agent's key storage"
 msgstr ""
-"Proszê wprowadziæ has³o do zabezpieczenia odebranego klucza tajnego%%0A   %s"
+"Proszę wprowadzić hasło do zabezpieczenia odebranego klucza tajnego%%0A   %s"
 "%%0A   %s%%0Aw miejscu przechowywania kluczy gpg-agenta"
 
 #, c-format
 msgid "failed to create stream from socket: %s\n"
-msgstr "nie uda³o siê utworzyæ strumienia z gniazda: %s\n"
+msgstr "nie udało się utworzyć strumienia z gniazda: %s\n"
 
 msgid "Please insert the card with serial number"
-msgstr "Proszê w³o¿yæ kartê z numerem seryjnym"
+msgstr "Proszę włożyć kartę z numerem seryjnym"
 
 msgid "Please remove the current card and insert the one with serial number"
-msgstr "Proszê wyj±æ obecn± kartê i w³o¿yæ kartê z numerem seryjnym"
+msgstr "Proszę wyjąć obecną kartę i włożyć kartę z numerem seryjnym"
 
 msgid "Admin PIN"
 msgstr "PIN administracyjny"
@@ -215,44 +207,44 @@ msgid "PUK"
 msgstr "PUK"
 
 msgid "Reset Code"
-msgstr "Kod resetuj±cy"
+msgstr "Kod resetujący"
 
 #, c-format
 msgid "%s%%0A%%0AUse the reader's pinpad for input."
-msgstr "%s%%0A%%0ADo wpisywania nale¿y u¿yæ klawiatury czytnika."
+msgstr "%s%%0A%%0ADo wpisywania należy użyć klawiatury czytnika."
 
 msgid "Repeat this Reset Code"
-msgstr "Powtórz ten kod resetuj±cy"
+msgstr "Powtórz ten kod resetujący"
 
 msgid "Repeat this PUK"
-msgstr "Powtórz ten PUK"
+msgstr "Powtórz ten PUK"
 
 msgid "Repeat this PIN"
-msgstr "Powtórz ten PIN"
+msgstr "Powtórz ten PIN"
 
 msgid "Reset Code not correctly repeated; try again"
-msgstr "Kod resetuj±cy nie powtórzony poprawnie; spróbuj jeszcze raz"
+msgstr "Kod resetujący nie powtórzony poprawnie; spróbuj jeszcze raz"
 
 msgid "PUK not correctly repeated; try again"
-msgstr "PUK nie powtórzony poprawnie; spróbuj jeszcze raz"
+msgstr "PUK nie powtórzony poprawnie; spróbuj jeszcze raz"
 
 msgid "PIN not correctly repeated; try again"
-msgstr "PIN nie powtórzony poprawnie; spróbuj jeszcze raz"
+msgstr "PIN nie powtórzony poprawnie; spróbuj jeszcze raz"
 
 #, c-format
 msgid "Please enter the PIN%s%s%s to unlock the card"
-msgstr "Proszê wprowadziæ PIN%s%s%s aby odblokowaæ kartê"
+msgstr "Proszę wprowadzić PIN%s%s%s aby odblokować kartę"
 
 #, c-format
 msgid "error creating temporary file: %s\n"
-msgstr "b³±d tworzenia pliku tymczasowego: %s\n"
+msgstr "błąd tworzenia pliku tymczasowego: %s\n"
 
 #, c-format
 msgid "error writing to temporary file: %s\n"
-msgstr "b³±d zapisu do pliku tymczasowego: %s\n"
+msgstr "błąd zapisu do pliku tymczasowego: %s\n"
 
 msgid "Enter new passphrase"
-msgstr "Wprowad¼ nowe has³o"
+msgstr "Wprowadź nowe hasło"
 
 msgid "Take this one anyway"
 msgstr "Przyjmij je mimo to"
@@ -260,15 +252,15 @@ msgstr "Przyjmij je mimo to"
 #, c-format
 msgid ""
 "You have not entered a passphrase!%0AAn empty passphrase is not allowed."
-msgstr "Nie wprowadzono has³a!%0APuste has³o nie jest dozwolone."
+msgstr "Nie wprowadzono hasła!%0APuste hasło nie jest dozwolone."
 
 #, c-format
 msgid ""
 "You have not entered a passphrase - this is in general a bad idea!%0APlease "
 "confirm that you do not want to have any protection on your key."
 msgstr ""
-"Nie wprowadzono has³a - to jest ogólnie z³y pomys³!%0AProszê potwierdziæ, ¿e "
-"naprawdê ma nie byæ ¿adnej ochrony tego klucza."
+"Nie wprowadzono hasła - to jest ogólnie zły pomysł!%0AProszę potwierdzić, że "
+"naprawdę ma nie być żadnej ochrony tego klucza."
 
 msgid "Yes, protection is not needed"
 msgstr "Tak, ochrona nie jest potrzebna"
@@ -277,9 +269,9 @@ msgstr "Tak, ochrona nie jest potrzebna"
 #| msgid "Name must be at least 5 characters long\n"
 msgid "A passphrase should be at least %u character long."
 msgid_plural "A passphrase should be at least %u characters long."
-msgstr[0] "Imiê i nazwisko musz± mieæ co najmniej 5 znaków d³ugo¶ci.\n"
-msgstr[1] "Imiê i nazwisko musz± mieæ co najmniej 5 znaków d³ugo¶ci.\n"
-msgstr[2] "Imiê i nazwisko musz± mieæ co najmniej 5 znaków d³ugo¶ci.\n"
+msgstr[0] "Imię i nazwisko muszą mieć co najmniej 5 znaków długości.\n"
+msgstr[1] "Imię i nazwisko muszą mieć co najmniej 5 znaków długości.\n"
+msgstr[2] "Imię i nazwisko muszą mieć co najmniej 5 znaków długości.\n"
 
 #, fuzzy, c-format
 #| msgid ""
@@ -292,14 +284,14 @@ msgid "A passphrase should contain at least %u digit or%%0Aspecial character."
 msgid_plural ""
 "A passphrase should contain at least %u digits or%%0Aspecial characters."
 msgstr[0] ""
-"Uwaga: Wprowadzono has³o, które nie jest bezpieczne.%%0AHas³o powinno mieæ "
-"przynajmniej %u cyfrê lub%%0Aznak specjalny."
+"Uwaga: Wprowadzono hasło, które nie jest bezpieczne.%%0AHasło powinno mieć "
+"przynajmniej %u cyfrę lub%%0Aznak specjalny."
 msgstr[1] ""
-"Uwaga: Wprowadzono has³o, które nie jest bezpieczne.%%0AHas³o powinno mieæ "
+"Uwaga: Wprowadzono hasło, które nie jest bezpieczne.%%0AHasło powinno mieć "
 "przynajmniej %u cyfry lub%%0Aznaki specjalne."
 msgstr[2] ""
-"Uwaga: Wprowadzono has³o, które nie jest bezpieczne.%%0AHas³o powinno mieæ "
-"przynajmniej %u cyfr lub%%0Aznaków specjalnych."
+"Uwaga: Wprowadzono hasło, które nie jest bezpieczne.%%0AHasło powinno mieć "
+"przynajmniej %u cyfr lub%%0Aznaków specjalnych."
 
 #, fuzzy, c-format
 #| msgid ""
@@ -307,8 +299,8 @@ msgstr[2] ""
 #| "be a known term or match%%0Acertain pattern."
 msgid "A passphrase may not be a known term or match%%0Acertain pattern."
 msgstr ""
-"Uwaga: Wprowadzono has³o, które nie jest bezpieczne.%%0AHas³o nie mo¿e byæ "
-"znanym s³owem ani pasowaæ%%0Ado okre¶lonego wzorca."
+"Uwaga: Wprowadzono hasło, które nie jest bezpieczne.%%0AHasło nie może być "
+"znanym słowem ani pasować%%0Ado określonego wzorca."
 
 #, fuzzy
 #| msgid ""
@@ -319,15 +311,15 @@ msgstr ""
 #| "be at least %u characters long."
 msgid "Warning: You have entered an insecure passphrase."
 msgstr ""
-"Uwaga: Wprowadzono has³o, które nie jest bezpieczne.%%0AHas³o powinno mieæ "
-"przynajmniej %u znak d³ugo¶ci."
+"Uwaga: Wprowadzono hasło, które nie jest bezpieczne.%%0AHasło powinno mieć "
+"przynajmniej %u znak długości."
 
 #, c-format
 msgid "Please enter the passphrase to%0Aprotect your new key"
-msgstr "Proszê wprowadziæ has³o do%0Azabezpieczenia swojego nowego klucza"
+msgstr "Proszę wprowadzić hasło do%0Azabezpieczenia swojego nowego klucza"
 
 msgid "Please enter the new passphrase"
-msgstr "Proszê wprowadziæ nowe has³o"
+msgstr "Proszę wprowadzić nowe hasło"
 
 msgid ""
 "@Options:\n"
@@ -342,17 +334,22 @@ msgstr "uruchomienie w trybie demona (w tle)"
 msgid "run in server mode (foreground)"
 msgstr "uruchomienie w trybie serwera (pierwszoplanowo)"
 
+#, fuzzy
+#| msgid "run in server mode"
+msgid "run in supervised mode"
+msgstr "uruchomienie w trybie serwera"
+
 msgid "verbose"
 msgstr "z dodatkowymi informacjami"
 
 msgid "be somewhat more quiet"
-msgstr "mniej komunikatów"
+msgstr "mniej komunikatów"
 
 msgid "sh-style command output"
-msgstr "wyj¶cie poleceñ w stylu sh"
+msgstr "wyjście poleceń w stylu sh"
 
 msgid "csh-style command output"
-msgstr "wyj¶cie poleceñ w stylu csh"
+msgstr "wyjście poleceń w stylu csh"
 
 msgid "|FILE|read options from FILE"
 msgstr "|PLIK|odczyt opcji z PLIKU"
@@ -364,38 +361,38 @@ msgid "do not grab keyboard and mouse"
 msgstr "nie przechwytywanie klawiatury i myszy"
 
 msgid "use a log file for the server"
-msgstr "u¿ycie pliku loga dla serwera"
+msgstr "użycie pliku loga dla serwera"
 
 msgid "|PGM|use PGM as the PIN-Entry program"
-msgstr "|PGM|u¿ycie PGM jako programu do wprowadzania PIN-u"
+msgstr "|PGM|użycie PGM jako programu do wprowadzania PIN-u"
 
 msgid "|PGM|use PGM as the SCdaemon program"
-msgstr "|PGM|u¿ycie PGM jako programu SCdaemon"
+msgstr "|PGM|użycie PGM jako programu SCdaemon"
 
 msgid "do not use the SCdaemon"
-msgstr "nie u¿ywanie SCdaemona"
+msgstr "nie używanie SCdaemona"
 
 #, fuzzy
 #| msgid "|NAME|connect to Assuan socket NAME"
 msgid "|NAME|accept some commands via NAME"
-msgstr "|NAZWA|po³±czenie z gniazdem Assuan o tej nazwie"
+msgstr "|NAZWA|połączenie z gniazdem Assuan o tej nazwie"
 
 msgid "ignore requests to change the TTY"
-msgstr "ignorowanie ¿±dañ zmiany TTY"
+msgstr "ignorowanie żądań zmiany TTY"
 
 msgid "ignore requests to change the X display"
-msgstr "ignorowanie ¿±dañ zmiany ekranu X"
+msgstr "ignorowanie żądań zmiany ekranu X"
 
 msgid "|N|expire cached PINs after N seconds"
-msgstr "|N|przedawnienie pamiêtanych PIN-ów po N sekundach"
+msgstr "|N|przedawnienie pamiętanych PIN-ów po N sekundach"
 
 msgid "do not use the PIN cache when signing"
-msgstr "nie u¿ywanie pamiêci PIN-ów przy podpisywaniu"
+msgstr "nie używanie pamięci PIN-ów przy podpisywaniu"
 
 #, fuzzy
 #| msgid "do not allow the reuse of old passphrases"
 msgid "disallow the use of an external password cache"
-msgstr "nie zezwalanie na ponowne u¿ycie starych hase³"
+msgstr "nie zezwalanie na ponowne użycie starych haseł"
 
 #, fuzzy
 #| msgid "allow clients to mark keys as \"trusted\""
@@ -403,7 +400,7 @@ msgid "disallow clients to mark keys as \"trusted\""
 msgstr "zezwolenie klientom na oznaczanie kluczy jako \"zaufanych\""
 
 msgid "allow presetting passphrase"
-msgstr "zezwolenie na predefiniowane has³o"
+msgstr "zezwolenie na predefiniowane hasło"
 
 msgid "disallow caller to override the pinentry"
 msgstr ""
@@ -421,12 +418,12 @@ msgstr ""
 #. reporting address.  This is so that we can change the
 #. reporting address without breaking the translations.
 msgid "Please report bugs to <@EMAIL@>.\n"
-msgstr "B³êdy prosimy zg³aszaæ na adres <@EMAIL@>.\n"
+msgstr "Błędy prosimy zgłaszać na adres <@EMAIL@>.\n"
 
 #, fuzzy
 #| msgid "Usage: gpgconf [options] (-h for help)"
 msgid "Usage: @GPG_AGENT@ [options] (-h for help)"
-msgstr "Wywo³anie: gpgconf [opcje] (-h podaje pomoc)"
+msgstr "Wywołanie: gpgconf [opcje] (-h podaje pomoc)"
 
 #, fuzzy
 #| msgid ""
@@ -436,18 +433,18 @@ msgid ""
 "Syntax: @GPG_AGENT@ [options] [command [args]]\n"
 "Secret key management for @GNUPG@\n"
 msgstr ""
-"Sk³adnia: gpg-agent [opcje] [polecenie [argumenty]]\n"
-"Zarz±dzanie kluczem tajnym dla GnuPG\n"
+"Składnia: gpg-agent [opcje] [polecenie [argumenty]]\n"
+"Zarządzanie kluczem tajnym dla GnuPG\n"
 
 #, fuzzy, c-format
 #| msgid "invalid debug-level `%s' given\n"
 msgid "invalid debug-level '%s' given\n"
-msgstr "podano b³êdny poziom diagnostyki ,,%s''\n"
+msgstr "podano błędny poziom diagnostyki ,,%s''\n"
 
 #, fuzzy, c-format
 #| msgid "NOTE: no default option file `%s'\n"
 msgid "Note: no default option file '%s'\n"
-msgstr "UWAGA: brak domylnego pliku opcji ,,%s''\n"
+msgstr "UWAGA: brak domyślnego pliku opcji ,,%s''\n"
 
 #, fuzzy, c-format
 #| msgid "option file `%s': %s\n"
@@ -462,46 +459,46 @@ msgstr "odczyt opcji z ,,%s''\n"
 #, fuzzy, c-format
 #| msgid "WARNING: \"%s\" is a deprecated option\n"
 msgid "Note: '%s' is not considered an option\n"
-msgstr "OSTRZE¯ENIE: ,,%s'' jest przestarza³± opcj±.\n"
+msgstr "OSTRZEŻENIE: ,,%s'' jest przestarzałą opcją.\n"
 
 #, c-format
 msgid "can't create socket: %s\n"
-msgstr "nie mo¿na utworzyæ gniazda: %s\n"
+msgstr "nie można utworzyć gniazda: %s\n"
 
 #, fuzzy, c-format
 #| msgid "socket name `%s' is too long\n"
 msgid "socket name '%s' is too long\n"
-msgstr "nazwa gniazda `%s' zbyt d³uga\n"
+msgstr "nazwa gniazda `%s' zbyt długa\n"
 
 msgid "a gpg-agent is already running - not starting a new one\n"
-msgstr "gpg-agent ju¿ dzia³a - nie uruchamianie nowego\n"
+msgstr "gpg-agent już działa - nie uruchamianie nowego\n"
 
 msgid "error getting nonce for the socket\n"
-msgstr "b³±d podczas pobierania nonce z gniazda\n"
+msgstr "błąd podczas pobierania nonce z gniazda\n"
 
 #, fuzzy, c-format
 #| msgid "error binding socket to `%s': %s\n"
 msgid "error binding socket to '%s': %s\n"
-msgstr "b³±d podczas przypisywania gniazda do ,,%s'': %s\n"
+msgstr "błąd podczas przypisywania gniazda do ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "Warning: unsafe permissions on %s \"%s\"\n"
 msgid "can't set permissions of '%s': %s\n"
-msgstr "Ostrze¿enie: niebezpieczne prawa dostêpu do %s ,,%s''\n"
+msgstr "Ostrzeżenie: niebezpieczne prawa dostępu do %s ,,%s''\n"
 
 #, c-format
 msgid "listen() failed: %s\n"
-msgstr "listen() nie powiod³o siê: %s\n"
+msgstr "listen() nie powiodło się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "listening on socket `%s'\n"
 msgid "listening on socket '%s'\n"
-msgstr "nas³uchiwanie na gnie¼dzie ,,%s''\n"
+msgstr "nasłuchiwanie na gnieździe ,,%s''\n"
 
 #, fuzzy, c-format
 #| msgid "can't create directory `%s': %s\n"
 msgid "can't create directory '%s': %s\n"
-msgstr "nie mo¿na utworzyæ katalogu ,,%s'': %s\n"
+msgstr "nie można utworzyć katalogu ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "directory `%s' created\n"
@@ -511,55 +508,55 @@ msgstr "katalog ,,%s'' utworzony\n"
 #, fuzzy, c-format
 #| msgid "stat() failed for `%s': %s\n"
 msgid "stat() failed for '%s': %s\n"
-msgstr "stat() nie powiod³o siê dla ,,%s'': %s\n"
+msgstr "stat() nie powiodło się dla ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't use `%s' as home directory\n"
 msgid "can't use '%s' as home directory\n"
-msgstr "nie mo¿na u¿yæ ,,%s'' jako katalogu domowego\n"
+msgstr "nie można użyć ,,%s'' jako katalogu domowego\n"
 
 #, c-format
 msgid "error reading nonce on fd %d: %s\n"
-msgstr "b³±d odczytu nonce z fd %d: %s\n"
+msgstr "błąd odczytu nonce z fd %d: %s\n"
 
 #, c-format
 msgid "handler 0x%lx for fd %d started\n"
-msgstr "obs³uga 0x%lx dla fd %d uruchomiona\n"
+msgstr "obsługa 0x%lx dla fd %d uruchomiona\n"
 
 #, c-format
 msgid "handler 0x%lx for fd %d terminated\n"
-msgstr "obs³uga 0x%lx dla fd %d zakoñczona\n"
+msgstr "obsługa 0x%lx dla fd %d zakończona\n"
 
 #, c-format
 msgid "ssh handler 0x%lx for fd %d started\n"
-msgstr "obs³uga ssh 0x%lx dla fd %d uruchomiona\n"
+msgstr "obsługa ssh 0x%lx dla fd %d uruchomiona\n"
 
 #, c-format
 msgid "ssh handler 0x%lx for fd %d terminated\n"
-msgstr "obs³uga ssh 0x%lx dla fd %d zakoñczona\n"
+msgstr "obsługa ssh 0x%lx dla fd %d zakończona\n"
 
 #, fuzzy, c-format
 #| msgid "pth_select failed: %s - waiting 1s\n"
 msgid "npth_pselect failed: %s - waiting 1s\n"
-msgstr "pth_select nie powiod³o siê: %s - czekanie 1s\n"
+msgstr "pth_select nie powiodło się: %s - czekanie 1s\n"
 
 #, c-format
 msgid "%s %s stopped\n"
 msgstr "%s %s zatrzymany\n"
 
 msgid "no gpg-agent running in this session\n"
-msgstr "brak dzia³aj±cego gpg-agenta w tej sesji\n"
+msgstr "brak działającego gpg-agenta w tej sesji\n"
 
 msgid "Usage: gpg-preset-passphrase [options] KEYGRIP (-h for help)\n"
 msgstr ""
-"Wywo³anie: gpg-preset-passphrase [opcje] UCHWYT_KLUCZA (-h podaje pomoc)\n"
+"Wywołanie: gpg-preset-passphrase [opcje] UCHWYT_KLUCZA (-h podaje pomoc)\n"
 
 msgid ""
 "Syntax: gpg-preset-passphrase [options] KEYGRIP\n"
 "Password cache maintenance\n"
 msgstr ""
-"Sk³adnia: gpg-preset-passphrase [opcje] UCHWYT_KLUCZA\n"
-"Utrzymuwanie pamiêci hase³\n"
+"Składnia: gpg-preset-passphrase [opcje] UCHWYT_KLUCZA\n"
+"Utrzymuwanie pamięci haseł\n"
 
 msgid ""
 "@Commands:\n"
@@ -578,45 +575,45 @@ msgstr ""
 " "
 
 msgid "Usage: gpg-protect-tool [options] (-h for help)\n"
-msgstr "Wywo³anie: gpg-protect-tool [opcje] (-h podaje pomoc)\n"
+msgstr "Wywołanie: gpg-protect-tool [opcje] (-h podaje pomoc)\n"
 
 msgid ""
 "Syntax: gpg-protect-tool [options] [args]\n"
 "Secret key maintenance tool\n"
 msgstr ""
-"Sk³adnia: gpg-protect-tool [opcje] [argumenty]\n"
-"Narzêdzie do utrzymywania kluczy tajnych\n"
+"Składnia: gpg-protect-tool [opcje] [argumenty]\n"
+"Narzędzie do utrzymywania kluczy tajnych\n"
 
 msgid "Please enter the passphrase to unprotect the PKCS#12 object."
-msgstr "Proszê wprowadziæ has³o do odbezpieczenia obiektu PKCS#12."
+msgstr "Proszę wprowadzić hasło do odbezpieczenia obiektu PKCS#12."
 
 msgid "Please enter the passphrase to protect the new PKCS#12 object."
-msgstr "Proszê wprowadziæ has³o do zabezpieczenia obiektu PKCS#12."
+msgstr "Proszę wprowadzić hasło do zabezpieczenia obiektu PKCS#12."
 
 msgid ""
 "Please enter the passphrase to protect the imported object within the GnuPG "
 "system."
 msgstr ""
-"Proszê wprowadziæ has³o do zabezpieczenia wa¿nego obiektu w systemie GnuPG."
+"Proszę wprowadzić hasło do zabezpieczenia ważnego obiektu w systemie GnuPG."
 
 msgid ""
 "Please enter the passphrase or the PIN\n"
 "needed to complete this operation."
 msgstr ""
-"Proszê wprowadziæ has³o lub PIN\n"
-"Potrzebny do zakoñczenia tej operacji."
+"Proszę wprowadzić hasło lub PIN\n"
+"Potrzebny do zakończenia tej operacji."
 
 msgid "cancelled\n"
 msgstr "anulowano\n"
 
 #, c-format
 msgid "error while asking for the passphrase: %s\n"
-msgstr "b³±d podczas pytania o has³o: %s\n"
+msgstr "błąd podczas pytania o hasło: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error opening `%s': %s\n"
 msgid "error opening '%s': %s\n"
-msgstr "b³±d podczas otwierania ,,%s'': %s\n"
+msgstr "błąd podczas otwierania ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "file `%s', line %d: %s\n"
@@ -631,25 +628,25 @@ msgstr "instrukcja \"%s\" zignorowana w ,,%s'', w linii %d\n"
 #, fuzzy, c-format
 #| msgid "system trustlist `%s' not available\n"
 msgid "system trustlist '%s' not available\n"
-msgstr "systemowa lista zaufania ,,%s'' niedostêpna\n"
+msgstr "systemowa lista zaufania ,,%s'' niedostępna\n"
 
 #, fuzzy, c-format
 #| msgid "bad fingerprint in `%s', line %d\n"
 msgid "bad fingerprint in '%s', line %d\n"
-msgstr "b³êdny odcisk w ,,%s'', w linii %d\n"
+msgstr "błędny odcisk w ,,%s'', w linii %d\n"
 
 #, fuzzy, c-format
 #| msgid "invalid keyflag in `%s', line %d\n"
 msgid "invalid keyflag in '%s', line %d\n"
-msgstr "nieprawid³owa flaga klucza w ,,%s'', w linii %d\n"
+msgstr "nieprawidłowa flaga klucza w ,,%s'', w linii %d\n"
 
 #, fuzzy, c-format
 #| msgid "error reading `%s', line %d: %s\n"
 msgid "error reading '%s', line %d: %s\n"
-msgstr "b³±d odczytu ,,%s'', w linii %d: %s\n"
+msgstr "błąd odczytu ,,%s'', w linii %d: %s\n"
 
 msgid "error reading list of trusted root certificates\n"
-msgstr "b³±d odczytu listy zaufanych certyfikatów g³ównych\n"
+msgstr "błąd odczytu listy zaufanych certyfikatów głównych\n"
 
 #. TRANSLATORS: This prompt is shown by the Pinentry
 #. and has one special property: A "%%0A" is used by
@@ -664,8 +661,8 @@ msgid ""
 "Do you ultimately trust%%0A  \"%s\"%%0Ato correctly certify user "
 "certificates?"
 msgstr ""
-"Czy absolutnie ufasz, ¿e%%0A  ,,%s''%%0Apoprawnie po¶wiadcza certyfikaty "
-"u¿ytkowników?"
+"Czy absolutnie ufasz, że%%0A  ,,%s''%%0Apoprawnie poświadcza certyfikaty "
+"użytkowników?"
 
 msgid "Yes"
 msgstr "Tak"
@@ -686,7 +683,7 @@ msgid ""
 "Please verify that the certificate identified as:%%0A  \"%s\"%%0Ahas the "
 "fingerprint:%%0A  %s"
 msgstr ""
-"Proszê sprawdziæ, ¿e certyfikat zidentyfikowany jako:%%0a  ,,%s''%%0Ama "
+"Proszę sprawdzić, że certyfikat zidentyfikowany jako:%%0a  ,,%s''%%0Ama "
 "odcisk:%%0A  %s"
 
 #. TRANSLATORS: "Correct" is the label of a button and intended
@@ -696,36 +693,36 @@ msgid "Correct"
 msgstr "Akceptuj"
 
 msgid "Wrong"
-msgstr "Odrzuæ"
+msgstr "Odrzuć"
 
 #, c-format
 msgid "Note: This passphrase has never been changed.%0APlease change it now."
-msgstr "Uwaga: To has³o nie by³o nigdy zmieniane.%0AProszê zmieniæ je teraz."
+msgstr "Uwaga: To hasło nie było nigdy zmieniane.%0AProszę zmienić je teraz."
 
 #, c-format
 msgid ""
 "This passphrase has not been changed%%0Asince %.4s-%.2s-%.2s.  Please change "
 "it now."
 msgstr ""
-"To has³o nie zosta³o zmienione%%0Aod %.4s-%.2s-%.2s. Proszê zmieniæ je teraz."
+"To hasło nie zostało zmienione%%0Aod %.4s-%.2s-%.2s. Proszę zmienić je teraz."
 
 msgid "Change passphrase"
-msgstr "Zmiana has³a"
+msgstr "Zmiana hasła"
 
 msgid "I'll change it later"
-msgstr "Zmieniê je pó¼niej"
+msgstr "Zmienię je później"
 
 #, fuzzy, c-format
 #| msgid "Do you really want to delete the selected keys? (y/N) "
 msgid ""
 "Do you really want to delete the key identified by keygrip%%0A  %s%%0A  %%C"
 "%%0A?"
-msgstr "Czy na pewno chcesz usun±æ wybrane klucze? (t/N) "
+msgstr "Czy na pewno chcesz usunąć wybrane klucze? (t/N) "
 
 #, fuzzy
 #| msgid "enable key"
 msgid "Delete key"
-msgstr "w³±czenie klucza do u¿ycia"
+msgstr "włączenie klucza do użycia"
 
 msgid ""
 "Warning: This key is also listed for use with SSH!\n"
@@ -733,99 +730,109 @@ msgid ""
 msgstr ""
 
 msgid "DSA requires the hash length to be a multiple of 8 bits\n"
-msgstr "DSA wymaga d³ugo¶ci skrótu bêd±cego wielokrotno¶ci± 8 bitów\n"
+msgstr "DSA wymaga długości skrótu będącego wielokrotnością 8 bitów\n"
 
 #, c-format
 msgid "%s key uses an unsafe (%u bit) hash\n"
-msgstr "Klucz %s u¿ywa niebezpiecznego (%u-bitowego) skrótu\n"
+msgstr "Klucz %s używa niebezpiecznego (%u-bitowego) skrótu\n"
 
 #, fuzzy, c-format
 #| msgid "a %u bit hash is not valid for a %u bit %s key\n"
 msgid "a %zu bit hash is not valid for a %u bit %s key\n"
-msgstr "skrót %u-bitowy nie jest poprawny dla %u-bitowego klucza %s\n"
+msgstr "skrót %u-bitowy nie jest poprawny dla %u-bitowego klucza %s\n"
 
 #, c-format
 msgid "checking created signature failed: %s\n"
-msgstr "sprawdzenie z³o¿onego podpisu nie powiod³o siê: %s\n"
+msgstr "sprawdzenie złożonego podpisu nie powiodło się: %s\n"
 
 msgid "secret key parts are not available\n"
-msgstr "tajne czê¶ci klucza s± niedostêpne\n"
+msgstr "tajne części klucza są niedostępne\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "public key algorithm %d (%s) is not supported\n"
-msgstr "algorytm ochrony %d%s nie jest obs³ugiwany\n"
+msgstr "algorytm ochrony %d%s nie jest obsługiwany\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "protection algorithm %d (%s) is not supported\n"
-msgstr "algorytm ochrony %d%s nie jest obs³ugiwany\n"
+msgstr "algorytm ochrony %d%s nie jest obsługiwany\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "protection hash algorithm %d (%s) is not supported\n"
-msgstr "algorytm ochrony %d%s nie jest obs³ugiwany\n"
+msgstr "algorytm ochrony %d%s nie jest obsługiwany\n"
 
 #, c-format
 msgid "error creating a pipe: %s\n"
-msgstr "b³±d tworzenia potoku: %s\n"
+msgstr "błąd tworzenia potoku: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error creating a pipe: %s\n"
 msgid "error creating a stream for a pipe: %s\n"
-msgstr "b³±d tworzenia potoku: %s\n"
+msgstr "błąd tworzenia potoku: %s\n"
 
 #, c-format
 msgid "error forking process: %s\n"
-msgstr "b³±d podczas tworzenia procesu: %s\n"
+msgstr "błąd podczas tworzenia procesu: %s\n"
 
-#, fuzzy, c-format
-#| msgid "waiting for process %d to terminate failed: %s\n"
-msgid "waiting for processes to terminate failed: %s\n"
-msgstr "oczekiwanie na zakoñczenie procesu %d nie powiod³o siê: %s\n"
+#, c-format
+msgid "waiting for process %d to terminate failed: %s\n"
+msgstr "oczekiwanie na zakończenie procesu %d nie powiodło się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error running `%s': probably not installed\n"
 msgid "error running '%s': probably not installed\n"
-msgstr "b³±d uruchamiania ,,%s'': prawdopodobnie nie zainstalowany\n"
+msgstr "błąd uruchamiania ,,%s'': prawdopodobnie nie zainstalowany\n"
 
 #, fuzzy, c-format
 #| msgid "error running `%s': exit status %d\n"
 msgid "error running '%s': exit status %d\n"
-msgstr "b³±d uruchamiania ,,%s'': kod wyj¶cia %d\n"
+msgstr "błąd uruchamiania ,,%s'': kod wyjścia %d\n"
 
 #, fuzzy, c-format
 #| msgid "error running `%s': terminated\n"
 msgid "error running '%s': terminated\n"
-msgstr "b³±d uruchamiania ,,%s'': zakoñczono\n"
+msgstr "błąd uruchamiania ,,%s'': zakończono\n"
 
-#, c-format
-msgid "error getting exit code of process %d: %s\n"
-msgstr "b³±d odczytu kodu zakoñczenia procesu %d: %s\n"
+#, fuzzy, c-format
+#| msgid "waiting for process %d to terminate failed: %s\n"
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "oczekiwanie na zakończenie procesu %d nie powiodło się: %s\n"
 
 #, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr "oczekiwanie na zakoñczenie procesu %d nie powiod³o siê: %s\n"
+msgid "error getting exit code of process %d: %s\n"
+msgstr "błąd odczytu kodu zakończenia procesu %d: %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to '%s': %s\n"
-msgstr "nie mo¿na siê po³±czyæ z ,,%s'': %s\n"
+msgstr "nie można się połączyć z ,,%s'': %s\n"
 
 msgid "problem setting the gpg-agent options\n"
 msgstr "problem z ustawieniem opcji gpg-agenta\n"
 
 #, c-format
 msgid "can't disable core dumps: %s\n"
-msgstr "nie mo¿na wy³±czyæ zrzutów pamiêci: %s\n"
+msgstr "nie można wyłączyć zrzutów pamięci: %s\n"
 
 #, c-format
 msgid "Warning: unsafe ownership on %s \"%s\"\n"
-msgstr "Ostrze¿enie: niebezpieczne prawa w³asno¶ci do %s ,,%s''\n"
+msgstr "Ostrzeżenie: niebezpieczne prawa własności do %s ,,%s''\n"
 
 #, c-format
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
-msgstr "Ostrze¿enie: niebezpieczne prawa dostêpu do %s ,,%s''\n"
+msgstr "Ostrzeżenie: niebezpieczne prawa dostępu do %s ,,%s''\n"
+
+#, fuzzy, c-format
+#| msgid "waiting %d seconds for the agent to come up\n"
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "oczekiwanie (%d s) na uruchomienie agenta\n"
+
+#, fuzzy, c-format
+#| msgid "renaming `%s' to `%s' failed: %s\n"
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "zmiana nazwy ,,%s'' na ,,%s'' nie powiodła się: %s\n"
 
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "yes"
@@ -843,7 +850,7 @@ msgstr "nN"
 
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "quit"
-msgstr "wyjcie"
+msgstr "wyjście"
 
 msgid "qQ"
 msgstr "wW"
@@ -864,24 +871,24 @@ msgstr "aA"
 
 #, c-format
 msgid "out of core in secure memory while allocating %lu bytes"
-msgstr "brak miejsca w bezpiecznej pamiêci podczas przydzielania %lu bajtów"
+msgstr "brak miejsca w bezpiecznej pamięci podczas przydzielania %lu bajtów"
 
 #, c-format
 msgid "out of core while allocating %lu bytes"
-msgstr "brak miejsca podczas przydzielania %lu bajtów"
+msgstr "brak miejsca podczas przydzielania %lu bajtów"
 
 #, c-format
 msgid "error allocating enough memory: %s\n"
-msgstr "b³±d przydzielania wystarczaj±cej ilo¶ci pamiêci: %s\n"
+msgstr "błąd przydzielania wystarczającej ilości pamięci: %s\n"
 
 #, c-format
 msgid "%s:%u: obsolete option \"%s\" - it has no effect\n"
-msgstr "%s:%u: przestarza³a opcja ,,%s'' - nie ma efektu\n"
+msgstr "%s:%u: przestarzała opcja ,,%s'' - nie ma efektu\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: \"%s\" is an obsolete option - it has no effect\n"
 msgid "WARNING: \"%s%s\" is an obsolete option - it has no effect\n"
-msgstr "OSTRZE¯ENIE: ,,%s'' jest przestarza³± opcj± - nie ma efektu\n"
+msgstr "OSTRZEŻENIE: ,,%s'' jest przestarzałą opcją - nie ma efektu\n"
 
 #, c-format
 msgid "unknown debug flag '%s' ignored\n"
@@ -890,7 +897,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "no running gpg-agent - starting one\n"
 msgid "no running gpg-agent - starting '%s'\n"
-msgstr "gpg-agent nie dzia³a - uruchamianie\n"
+msgstr "gpg-agent nie działa - uruchamianie\n"
 
 #, fuzzy, c-format
 #| msgid "waiting %d seconds for the agent to come up\n"
@@ -903,12 +910,12 @@ msgstr ""
 #, fuzzy
 #| msgid "can't connect to the dirmngr - trying fall back\n"
 msgid "connection to agent is in restricted mode\n"
-msgstr "nie mo¿na po³±czyæ siê z dirmngr - próba fallbacku\n"
+msgstr "nie można połączyć się z dirmngr - próba fallbacku\n"
 
 #, fuzzy, c-format
 #| msgid "no running dirmngr - starting `%s'\n"
 msgid "no running Dirmngr - starting '%s'\n"
-msgstr "dirmngr nie dzia³a - uruchamianie ,,%s''\n"
+msgstr "dirmngr nie działa - uruchamianie ,,%s''\n"
 
 #, fuzzy, c-format
 #| msgid "waiting %d seconds for the agent to come up\n"
@@ -918,7 +925,7 @@ msgstr "oczekiwanie (%d s) na uruchomienie agenta\n"
 #, fuzzy
 #| msgid "can't connect to the dirmngr - trying fall back\n"
 msgid "connection to the dirmngr established\n"
-msgstr "nie mo¿na po³±czyæ siê z dirmngr - próba fallbacku\n"
+msgstr "nie można połączyć się z dirmngr - próba fallbacku\n"
 
 #. TRANSLATORS: Copy the prefix between the vertical bars
 #. verbatim.  It will not be printed.
@@ -926,43 +933,43 @@ msgid "|audit-log-result|Good"
 msgstr "|audit-log-result|Dobry"
 
 msgid "|audit-log-result|Bad"
-msgstr "|audit-log-result|Z³y"
+msgstr "|audit-log-result|Zły"
 
 msgid "|audit-log-result|Not supported"
-msgstr "|audit-log-result|Nieobs³ugiwany"
+msgstr "|audit-log-result|Nieobsługiwany"
 
 msgid "|audit-log-result|No certificate"
 msgstr "|audit-log-result|Brak certyfikatu"
 
 msgid "|audit-log-result|Not enabled"
-msgstr "|audit-log-result|Nie w³±czony"
+msgstr "|audit-log-result|Nie włączony"
 
 msgid "|audit-log-result|Error"
-msgstr "|audit-log-result|B³±d"
+msgstr "|audit-log-result|Błąd"
 
 msgid "|audit-log-result|Not used"
-msgstr "|audit-log-result|Nie u¿ywany"
+msgstr "|audit-log-result|Nie używany"
 
 msgid "|audit-log-result|Okay"
 msgstr "|audit-log-result|OK"
 
 msgid "|audit-log-result|Skipped"
-msgstr "|audit-log-result|Pominiêto"
+msgstr "|audit-log-result|Pominięto"
 
 msgid "|audit-log-result|Some"
-msgstr "|audit-log-result|Czê¶ciowo"
+msgstr "|audit-log-result|Częściowo"
 
 msgid "Certificate chain available"
-msgstr "£añcuch certyfikatów dostêpny"
+msgstr "Łańcuch certyfikatów dostępny"
 
 msgid "root certificate missing"
-msgstr "brak certyfikatu g³ównego"
+msgstr "brak certyfikatu głównego"
 
 msgid "Data encryption succeeded"
-msgstr "Szyfrowanie danych zakoñczone"
+msgstr "Szyfrowanie danych zakończone"
 
 msgid "Data available"
-msgstr "Dane dostêpne"
+msgstr "Dane dostępne"
 
 msgid "Session key created"
 msgstr "Klucz sesji utworzony"
@@ -973,76 +980,76 @@ msgstr "algorytm: %s"
 
 #, c-format
 msgid "unsupported algorithm: %s"
-msgstr "nieobs³ugiwany algorytm: %s"
+msgstr "nieobsługiwany algorytm: %s"
 
 msgid "seems to be not encrypted"
-msgstr "nie wygl±da na zaszyfrowan± wiadomo¶æ"
+msgstr "nie wygląda na zaszyfrowaną wiadomość"
 
 msgid "Number of recipients"
-msgstr "Liczba odbiorców"
+msgstr "Liczba odbiorców"
 
 #, c-format
 msgid "Recipient %d"
 msgstr "Odbiorca %d"
 
 msgid "Data signing succeeded"
-msgstr "Podpisywanie danych zakoñczone"
+msgstr "Podpisywanie danych zakończone"
 
 #, c-format
 msgid "data hash algorithm: %s"
-msgstr "algorytm skrótu danych: %s"
+msgstr "algorytm skrótu danych: %s"
 
 #, c-format
 msgid "Signer %d"
-msgstr "Podpisuj±cy %d"
+msgstr "Podpisujący %d"
 
 #, c-format
 msgid "attr hash algorithm: %s"
-msgstr "algorytm skrótu atrybutów: %s"
+msgstr "algorytm skrótu atrybutów: %s"
 
 msgid "Data decryption succeeded"
-msgstr "Odszyfrowywanie danych zakoñczone"
+msgstr "Odszyfrowywanie danych zakończone"
 
 msgid "Encryption algorithm supported"
-msgstr "Algorytm szyfrowania obs³ugiwany"
+msgstr "Algorytm szyfrowania obsługiwany"
 
 msgid "Data verification succeeded"
-msgstr "Weryfikacja danych zakoñczona"
+msgstr "Weryfikacja danych zakończona"
 
 msgid "Signature available"
-msgstr "Podpis dostêpny"
+msgstr "Podpis dostępny"
 
 msgid "Parsing data succeeded"
-msgstr "Analiza danych zakoñczona"
+msgstr "Analiza danych zakończona"
 
 #, c-format
 msgid "bad data hash algorithm: %s"
-msgstr "niew³a¶ciwy algorytm skrótu danych: %s"
+msgstr "niewłaściwy algorytm skrótu danych: %s"
 
 #, c-format
 msgid "Signature %d"
 msgstr "Podpis %d"
 
 msgid "Certificate chain valid"
-msgstr "£añcuch certyfikatów poprawny"
+msgstr "Łańcuch certyfikatów poprawny"
 
 msgid "Root certificate trustworthy"
-msgstr "Certyfikat g³ówny jest zaufany"
+msgstr "Certyfikat główny jest zaufany"
 
 msgid "no CRL found for certificate"
 msgstr "nie znaleziono CRL dla certyfikatu"
 
 msgid "the available CRL is too old"
-msgstr "dostêpny CRL jest zbyt stary"
+msgstr "dostępny CRL jest zbyt stary"
 
 msgid "CRL/OCSP check of certificates"
-msgstr "weryfikacja CRL/OCSP certyfikatów"
+msgstr "weryfikacja CRL/OCSP certyfikatów"
 
 msgid "Included certificates"
-msgstr "Do³±czone certyfikaty"
+msgstr "Dołączone certyfikaty"
 
 msgid "No audit log entries."
-msgstr "Brak wpisów w logu."
+msgstr "Brak wpisów w logu."
 
 msgid "Unknown operation"
 msgstr "Nieznana operacja"
@@ -1059,7 +1066,7 @@ msgid "No help available for '%s'."
 msgstr "Brak pomocy dla ,,%s''."
 
 msgid "ignoring garbage line"
-msgstr "zignorowano b³êdn± liniê"
+msgstr "zignorowano błędną linię"
 
 msgid "[none]"
 msgstr "[brak]"
@@ -1068,10 +1075,10 @@ msgid "argument not expected"
 msgstr "nieoczekiwany argument"
 
 msgid "read error"
-msgstr "b³±d odczytu"
+msgstr "błąd odczytu"
 
 msgid "keyword too long"
-msgstr "s³owo kluczowe zbyt d³ugie"
+msgstr "słowo kluczowe zbyt długie"
 
 msgid "missing argument"
 msgstr "brak argumentu"
@@ -1079,19 +1086,19 @@ msgstr "brak argumentu"
 #, fuzzy
 #| msgid "invalid value\n"
 msgid "invalid argument"
-msgstr "niepoprawna warto¶æ\n"
+msgstr "niepoprawna wartość\n"
 
 msgid "invalid command"
-msgstr "b³êdne polecenie"
+msgstr "błędne polecenie"
 
 msgid "invalid alias definition"
-msgstr "b³êdna definicja aliasu"
+msgstr "błędna definicja aliasu"
 
 msgid "out of core"
-msgstr "brak pamiêci"
+msgstr "brak pamięci"
 
 msgid "invalid option"
-msgstr "b³êdna opcja"
+msgstr "błędna opcja"
 
 #, c-format
 msgid "missing argument for option \"%.50s\"\n"
@@ -1104,11 +1111,11 @@ msgstr "brak argumentu dla opcji ,,%.50s''\n"
 
 #, c-format
 msgid "option \"%.50s\" does not expect an argument\n"
-msgstr "opcja ,,%.50s'' nie mo¿e mieæ argumentów\n"
+msgstr "opcja ,,%.50s'' nie może mieć argumentów\n"
 
 #, c-format
 msgid "invalid command \"%.50s\"\n"
-msgstr "b³êdne polecenie ,,%.50s''\n"
+msgstr "błędne polecenie ,,%.50s''\n"
 
 #, c-format
 msgid "option \"%.50s\" is ambiguous\n"
@@ -1119,35 +1126,35 @@ msgid "command \"%.50s\" is ambiguous\n"
 msgstr "polecenie ,,%.50s'' jest niejednoznaczne\n"
 
 msgid "out of core\n"
-msgstr "brak pamiêci\n"
+msgstr "brak pamięci\n"
 
 #, c-format
 msgid "invalid option \"%.50s\"\n"
-msgstr "b³êdna opcja ,,%.50s''\n"
+msgstr "błędna opcja ,,%.50s''\n"
 
 #, fuzzy, c-format
 #| msgid "conversion from `%s' to `%s' not available\n"
 msgid "conversion from '%s' to '%s' not available\n"
-msgstr "konwersja z ,,%s'' do ,,%s'' niedostêpna\n"
+msgstr "konwersja z ,,%s'' do ,,%s'' niedostępna\n"
 
 #, c-format
 msgid "iconv_open failed: %s\n"
-msgstr "iconv_open nie powiod³o siê: %s\n"
+msgstr "iconv_open nie powiodło się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "conversion from `%s' to `%s' failed: %s\n"
 msgid "conversion from '%s' to '%s' failed: %s\n"
-msgstr "konwersja z ,,%s'' do ,,%s'' nie powiod³a siê: %s\n"
+msgstr "konwersja z ,,%s'' do ,,%s'' nie powiodła się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "failed to create temporary file `%s': %s\n"
 msgid "failed to create temporary file '%s': %s\n"
-msgstr "nie uda³o siê utworzyæ pliku tymczasowego ,,%s'': %s\n"
+msgstr "nie udało się utworzyć pliku tymczasowego ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing to `%s': %s\n"
 msgid "error writing to '%s': %s\n"
-msgstr "b³±d zapisu do ,,%s'': %s\n"
+msgstr "błąd zapisu do ,,%s'': %s\n"
 
 #, c-format
 msgid "removing stale lockfile (created by %d)\n"
@@ -1155,7 +1162,7 @@ msgstr "usuwanie nieaktualnego pliku blokady (utworzonego przez %d)\n"
 
 #, c-format
 msgid "waiting for lock (held by %d%s) %s...\n"
-msgstr "oczekiwanie na blokadê (trzyman± przez %d%s) %s...\n"
+msgstr "oczekiwanie na blokadę (trzymaną przez %d%s) %s...\n"
 
 msgid "(deadlock?) "
 msgstr "(zakleszczenie?) "
@@ -1163,11 +1170,11 @@ msgstr "(zakleszczenie?) "
 #, fuzzy, c-format
 #| msgid "lock `%s' not made: %s\n"
 msgid "lock '%s' not made: %s\n"
-msgstr "blokada ,,%s'' nie za³o¿ona: %s\n"
+msgstr "blokada ,,%s'' nie założona: %s\n"
 
 #, c-format
 msgid "waiting for lock %s...\n"
-msgstr "oczekiwanie na blokadê %s...\n"
+msgstr "oczekiwanie na blokadę %s...\n"
 
 #, c-format
 msgid "%s is too old (need %s, have %s)\n"
@@ -1178,19 +1185,19 @@ msgid "armor: %s\n"
 msgstr "opakowanie: %s\n"
 
 msgid "invalid armor header: "
-msgstr "niepoprawny nag³ówek opakowania: "
+msgstr "niepoprawny nagłówek opakowania: "
 
 msgid "armor header: "
-msgstr "nag³ówek opakowania: "
+msgstr "nagłówek opakowania: "
 
 msgid "invalid clearsig header\n"
-msgstr "niew³a¶ciwy nag³ówek dokumentu z podpisem na koñcu\n"
+msgstr "niewłaściwy nagłówek dokumentu z podpisem na końcu\n"
 
 msgid "unknown armor header: "
-msgstr "nieznany nag³ówek opakowania: "
+msgstr "nieznany nagłówek opakowania: "
 
 msgid "nested clear text signatures\n"
-msgstr "zagnie¿d¿one podpisy na koñcu dokumentu\n"
+msgstr "zagnieżdżone podpisy na końcu dokumentu\n"
 
 msgid "unexpected armor: "
 msgstr "nieoczekiwane opakowanie: "
@@ -1200,7 +1207,7 @@ msgstr "niepoprawne oznaczenie linii minusami: "
 
 #, c-format
 msgid "invalid radix64 character %02X skipped\n"
-msgstr "niew³a¶ciwy znak formatu radix64 ,,%02X'' zosta³ pominiêty\n"
+msgstr "niewłaściwy znak formatu radix64 ,,%02X'' został pominięty\n"
 
 msgid "premature eof (no CRC)\n"
 msgstr "przedwczesny koniec pliku (brak CRC)\n"
@@ -1209,56 +1216,56 @@ msgid "premature eof (in CRC)\n"
 msgstr "przedwczesny koniec pliku (w CRC)\n"
 
 msgid "malformed CRC\n"
-msgstr "b³±d formatu CRC\n"
+msgstr "błąd formatu CRC\n"
 
 #, c-format
 msgid "CRC error; %06lX - %06lX\n"
-msgstr "B³±d sumy CRC; %06lX - %06lX\n"
+msgstr "Błąd sumy CRC; %06lX - %06lX\n"
 
 msgid "premature eof (in trailer)\n"
-msgstr "przedwczesny koniec pliku (w linii koñcz±cej)\n"
+msgstr "przedwczesny koniec pliku (w linii kończącej)\n"
 
 msgid "error in trailer line\n"
-msgstr "b³±d w linii koñcz±cej\n"
+msgstr "błąd w linii kończącej\n"
 
 msgid "no valid OpenPGP data found.\n"
 msgstr "nie odnaleziono poprawnych danych w formacie OpenPGP.\n"
 
 #, c-format
 msgid "invalid armor: line longer than %d characters\n"
-msgstr "b³±d opakowania: linia d³u¿sza ni¿ %d znaków\n"
+msgstr "błąd opakowania: linia dłuższa niż %d znaków\n"
 
 msgid ""
 "quoted printable character in armor - probably a buggy MTA has been used\n"
 msgstr ""
 "znak kodowania quoted-printable w opakowaniu ASCII - prawdopodobnie\n"
-"przek³amanie wprowadzone przez serwer pocztowy\n"
+"przekłamanie wprowadzone przez serwer pocztowy\n"
 
 #, fuzzy, c-format
 #| msgid "not human readable"
 msgid "[ not human readable (%zu bytes: %s%s) ]"
-msgstr "nieczytelne dla cz³owieka"
+msgstr "nieczytelne dla człowieka"
 
 msgid ""
 "a notation name must have only printable characters or spaces, and end with "
 "an '='\n"
 msgstr ""
-"nazwa adnotacji musi zawieraæ tylko znaki drukowalne lub spacje i koñczyæ "
-"siê znakiem ,,=''\n"
+"nazwa adnotacji musi zawierać tylko znaki drukowalne lub spacje i kończyć "
+"się znakiem ,,=''\n"
 
 msgid "a user notation name must contain the '@' character\n"
-msgstr "nazwa adnotacji u¿ytkownika musi zawieraæ znak ,,@''\n"
+msgstr "nazwa adnotacji użytkownika musi zawierać znak ,,@''\n"
 
 msgid "a notation name must not contain more than one '@' character\n"
-msgstr "nazwa adnotacjinie mo¿e zawieraæ wiêcej ni¿ jednego znaku ,,@''\n"
+msgstr "nazwa adnotacjinie może zawierać więcej niż jednego znaku ,,@''\n"
 
 msgid "a notation value must not use any control characters\n"
-msgstr "warto¶æ adnotacji nie mo¿e zawieraæ ¿adnych znaków steruj±cych\n"
+msgstr "wartość adnotacji nie może zawierać żadnych znaków sterujących\n"
 
 #, fuzzy
 #| msgid "a notation name must not contain more than one '@' character\n"
 msgid "a notation name may not contain an '=' character\n"
-msgstr "nazwa adnotacjinie mo¿e zawieraæ wiêcej ni¿ jednego znaku ,,@''\n"
+msgstr "nazwa adnotacjinie może zawierać więcej niż jednego znaku ,,@''\n"
 
 #, fuzzy
 #| msgid ""
@@ -1266,25 +1273,25 @@ msgstr "nazwa adnotacjinie mo
 #| "with an '='\n"
 msgid "a notation name must have only printable characters or spaces\n"
 msgstr ""
-"nazwa adnotacji musi zawieraæ tylko znaki drukowalne lub spacje i koñczyæ "
-"siê znakiem ,,=''\n"
+"nazwa adnotacji musi zawierać tylko znaki drukowalne lub spacje i kończyć "
+"się znakiem ,,=''\n"
 
 msgid "WARNING: invalid notation data found\n"
-msgstr "OSTRZE¯ENIE: napotkano b³êdne dane adnotacji\n"
+msgstr "OSTRZEŻENIE: napotkano błędne dane adnotacji\n"
 
 #, c-format
 msgid "failed to proxy %s inquiry to client\n"
-msgstr "nie uda³o siê przekazaæ zapytania %s do klienta\n"
+msgstr "nie udało się przekazać zapytania %s do klienta\n"
 
 #, fuzzy
 #| msgid "Enter passphrase\n"
 msgid "Enter passphrase: "
-msgstr "Has³o\n"
+msgstr "Hasło\n"
 
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
 msgid "error getting version from '%s': %s\n"
-msgstr "b³±d tworzenia zbioru kluczy `%s': %s\n"
+msgstr "błąd tworzenia zbioru kluczy `%s': %s\n"
 
 #, c-format
 msgid "server '%s' is older than us (%s < %s)"
@@ -1293,33 +1300,33 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "WARNING: %s overrides %s\n"
 msgid "WARNING: %s\n"
-msgstr "OSTRZE¯ENIE: %s powoduje obej¶cie %s\n"
+msgstr "OSTRZEŻENIE: %s powoduje obejście %s\n"
 
 #, c-format
 msgid "OpenPGP card not available: %s\n"
-msgstr "Karta OpenPGP niedostêpna: %s\n"
+msgstr "Karta OpenPGP niedostępna: %s\n"
 
 #, c-format
 msgid "OpenPGP card no. %s detected\n"
-msgstr "Wykryto kartê OpenPGP nr %s\n"
+msgstr "Wykryto kartę OpenPGP nr %s\n"
 
 msgid "can't do this in batch mode\n"
-msgstr "nie dzia³a w trybie wsadowym\n"
+msgstr "nie działa w trybie wsadowym\n"
 
 msgid "This command is only available for version 2 cards\n"
-msgstr "To polecenie jest dostêpne tylko dla kart w wersji 2\n"
+msgstr "To polecenie jest dostępne tylko dla kart w wersji 2\n"
 
 msgid "Reset Code not or not anymore available\n"
-msgstr "Kod resetuj±cy nie jest (ju¿ lub w ogóle) dostêpny\n"
+msgstr "Kod resetujący nie jest (już lub w ogóle) dostępny\n"
 
 msgid "Your selection? "
-msgstr "Twój wybór? "
+msgstr "Twój wybór? "
 
 msgid "[not set]"
 msgstr "[nie ustawiono]"
 
 msgid "male"
-msgstr "mê¿czyzna"
+msgstr "mężczyzna"
 
 msgid "female"
 msgstr "kobieta"
@@ -1334,75 +1341,75 @@ msgid "forced"
 msgstr "wymuszono"
 
 msgid "Error: Only plain ASCII is currently allowed.\n"
-msgstr "B³±d: aktualnie dopuszczalne jest tylko czyste ASCII.\n"
+msgstr "Błąd: aktualnie dopuszczalne jest tylko czyste ASCII.\n"
 
 msgid "Error: The \"<\" character may not be used.\n"
-msgstr "B³±d: znak ,,<'' nie mo¿e byæ u¿yty.\n"
+msgstr "Błąd: znak ,,<'' nie może być użyty.\n"
 
 msgid "Error: Double spaces are not allowed.\n"
-msgstr "B³±d: podwójne spacje nie s± dopuszczalne.\n"
+msgstr "Błąd: podwójne spacje nie są dopuszczalne.\n"
 
 msgid "Cardholder's surname: "
 msgstr "Nazwisko posiadacza karty: "
 
 msgid "Cardholder's given name: "
-msgstr "Imiê posiadacza karty: "
+msgstr "Imię posiadacza karty: "
 
 #, c-format
 msgid "Error: Combined name too long (limit is %d characters).\n"
-msgstr "B³±d: pe³ne personalia zbyt d³ugie (limit to %d znaków).\n"
+msgstr "Błąd: pełne personalia zbyt długie (limit to %d znaków).\n"
 
 msgid "URL to retrieve public key: "
 msgstr "URL do odczytania klucza publicznego: "
 
 #, c-format
 msgid "Error: URL too long (limit is %d characters).\n"
-msgstr "B³±d: URL zbyt d³ugi (limit to %d znaków).\n"
+msgstr "Błąd: URL zbyt długi (limit to %d znaków).\n"
 
 #, fuzzy, c-format
 #| msgid "error reading `%s': %s\n"
 msgid "error reading '%s': %s\n"
-msgstr "b³±d odczytu ,,%s'': %s\n"
+msgstr "błąd odczytu ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing `%s': %s\n"
 msgid "error writing '%s': %s\n"
-msgstr "b³±d zapisu ,,%s'': %s\n"
+msgstr "błąd zapisu ,,%s'': %s\n"
 
 msgid "Login data (account name): "
 msgstr "Dane logowania (nazwa konta): "
 
 #, c-format
 msgid "Error: Login data too long (limit is %d characters).\n"
-msgstr "B³±d: dane logowania zbyt d³ugie (limit to %d znaków).\n"
+msgstr "Błąd: dane logowania zbyt długie (limit to %d znaków).\n"
 
 msgid "Private DO data: "
 msgstr "Prywatne dane DO: "
 
 #, c-format
 msgid "Error: Private DO too long (limit is %d characters).\n"
-msgstr "B³±d: prywatne DO zbyt d³ugie (limit to %d znaków).\n"
+msgstr "Błąd: prywatne DO zbyt długie (limit to %d znaków).\n"
 
 msgid "Language preferences: "
-msgstr "Preferowane jêzyki: "
+msgstr "Preferowane języki: "
 
 msgid "Error: invalid length of preference string.\n"
-msgstr "B³±d: niew³a¶ciwa d³ugo¶æ tekstu preferencji.\n"
+msgstr "Błąd: niewłaściwa długość tekstu preferencji.\n"
 
 msgid "Error: invalid characters in preference string.\n"
-msgstr "B³±d: niew³a¶ciwe znaki w tek¶cie preferencji.\n"
+msgstr "Błąd: niewłaściwe znaki w tekście preferencji.\n"
 
 msgid "Sex ((M)ale, (F)emale or space): "
-msgstr "P³eæ (M - mê¿czyzna, F - kobieta lub spacja): "
+msgstr "Płeć (M - mężczyzna, F - kobieta lub spacja): "
 
 msgid "Error: invalid response.\n"
-msgstr "B³±d: niew³a¶ciwa odpowied¼.\n"
+msgstr "Błąd: niewłaściwa odpowiedź.\n"
 
 msgid "CA fingerprint: "
 msgstr "Odcisk CA:"
 
 msgid "Error: invalid formatted fingerprint.\n"
-msgstr "B³±d: niew³a¶ciwie sformatowany odcisk.\n"
+msgstr "Błąd: niewłaściwie sformatowany odcisk.\n"
 
 #, c-format
 msgid "key operation not possible: %s\n"
@@ -1413,10 +1420,10 @@ msgstr "to nie jest karta OpenPGP"
 
 #, c-format
 msgid "error getting current key info: %s\n"
-msgstr "b³±d podczas odczytu aktualnych informacji o kluczu: %s\n"
+msgstr "błąd podczas odczytu aktualnych informacji o kluczu: %s\n"
 
 msgid "Replace existing key? (y/N) "
-msgstr "Zast±piæ istniej±cy klucz? (t/N) "
+msgstr "Zastąpić istniejący klucz? (t/N) "
 
 #, fuzzy
 #| msgid ""
@@ -1428,29 +1435,29 @@ msgid ""
 "      If the key generation does not succeed, please check the\n"
 "      documentation of your card to see what sizes are allowed.\n"
 msgstr ""
-"UWAGA: Nie ma gwarancji, ¿e karta obs³uguje ¿±dany rozmiar.\n"
-"       Je¶li tworzenie klucza nie powiedzie siê, proszê sprawdziæ\n"
-"       dokumentacjê karty, aby poznaæ dozwolone rozmiary.\n"
+"UWAGA: Nie ma gwarancji, że karta obsługuje żądany rozmiar.\n"
+"       Jeśli tworzenie klucza nie powiedzie się, proszę sprawdzić\n"
+"       dokumentację karty, aby poznać dozwolone rozmiary.\n"
 
 #, c-format
 msgid "What keysize do you want for the Signature key? (%u) "
-msgstr "Jakiej d³ugo¶ci klucz do podpisywania wygenerowaæ? (%u) "
+msgstr "Jakiej długości klucz do podpisywania wygenerować? (%u) "
 
 #, c-format
 msgid "What keysize do you want for the Encryption key? (%u) "
-msgstr "Jakiej d³ugo¶ci klucz do szyfrowania wygenerowaæ? (%u) "
+msgstr "Jakiej długości klucz do szyfrowania wygenerować? (%u) "
 
 #, c-format
 msgid "What keysize do you want for the Authentication key? (%u) "
-msgstr "Jakiej d³ugo¶ci klucz do uwierzytelniania wygenerowaæ? (%u) "
+msgstr "Jakiej długości klucz do uwierzytelniania wygenerować? (%u) "
 
 #, c-format
 msgid "rounded up to %u bits\n"
-msgstr "zaokr±glono do %u bitów\n"
+msgstr "zaokrąglono do %u bitów\n"
 
 #, c-format
 msgid "%s keysizes must be in the range %u-%u\n"
-msgstr "Rozmiary kluczy %s musz± byæ z przedzia³u %u-%u\n"
+msgstr "Rozmiary kluczy %s muszą być z przedziału %u-%u\n"
 
 #, c-format
 msgid "The card will now be re-configured to generate a key of %u bits\n"
@@ -1458,18 +1465,18 @@ msgstr "Karta zostanie przekonfigurowana do tworzenia klucza %u-bitowego\n"
 
 #, c-format
 msgid "error changing size of key %d to %u bits: %s\n"
-msgstr "b³±d podczas zmiany rozmiaru klucza %d na %u bitów: %s\n"
+msgstr "błąd podczas zmiany rozmiaru klucza %d na %u bitów: %s\n"
 
 msgid "Make off-card backup of encryption key? (Y/n) "
-msgstr "Stworzyæ poza kart± kopiê zapasow± klucza szyfruj±cego? (T/n) "
+msgstr "Stworzyć poza kartą kopię zapasową klucza szyfrującego? (T/n) "
 
 #, fuzzy
 #| msgid "NOTE: keys are already stored on the card!\n"
 msgid "Note: keys are already stored on the card!\n"
-msgstr "UWAGA: klucze s± ju¿ zapisane na karcie!\n"
+msgstr "UWAGA: klucze są już zapisane na karcie!\n"
 
 msgid "Replace existing keys? (y/N) "
-msgstr "Zast±piæ istniej±ce klucze? (t/N) "
+msgstr "Zastąpić istniejące klucze? (t/N) "
 
 #, fuzzy, c-format
 #| msgid ""
@@ -1481,15 +1488,15 @@ msgid ""
 "   PIN = '%s'     Admin PIN = '%s'\n"
 "You should change them using the command --change-pin\n"
 msgstr ""
-"Fabryczne ustawienia PIN-ów to\n"
+"Fabryczne ustawienia PIN-ów to\n"
 "   PIN = ,,%s''   PIN administracyjny = ,,%s''\n"
-"Nale¿y je zmieniæ przy u¿yciu polecenia --change-pin\n"
+"Należy je zmienić przy użyciu polecenia --change-pin\n"
 
 msgid "Please select the type of key to generate:\n"
-msgstr "Proszê wybraæ rodzaj klucza do wygenerowania:\n"
+msgstr "Proszę wybrać rodzaj klucza do wygenerowania:\n"
 
 msgid "   (1) Signature key\n"
-msgstr "   (1) Klucz do podpisów\n"
+msgstr "   (1) Klucz do podpisów\n"
 
 msgid "   (2) Encryption key\n"
 msgstr "   (2) Klucz do szyfrowania\n"
@@ -1498,45 +1505,45 @@ msgid "   (3) Authentication key\n"
 msgstr "   (3) Klucz do uwierzytelniania\n"
 
 msgid "Invalid selection.\n"
-msgstr "Niew³a¶ciwy wybór.\n"
+msgstr "Niewłaściwy wybór.\n"
 
 msgid "Please select where to store the key:\n"
-msgstr "Proszê wybraæ gdzie zapisaæ klucz:\n"
+msgstr "Proszę wybrać gdzie zapisać klucz:\n"
 
 #, fuzzy, c-format
 #| msgid "read failed: %s\n"
 msgid "KEYTOCARD failed: %s\n"
-msgstr "odczyt nie powiód³ siê: %s\n"
+msgstr "odczyt nie powiódł się: %s\n"
 
 #, fuzzy
 #| msgid "This command is not allowed while in %s mode.\n"
 msgid "This command is not supported by this card\n"
-msgstr "To polecenie nie jest dostêpne w trybie %s.\n"
+msgstr "To polecenie nie jest dostępne w trybie %s.\n"
 
 #, fuzzy
 #| msgid "NOTE: keys are already stored on the card!\n"
 msgid "Note: This command destroys all keys stored on the card!\n"
-msgstr "UWAGA: klucze s± ju¿ zapisane na karcie!\n"
+msgstr "UWAGA: klucze są już zapisane na karcie!\n"
 
 #, fuzzy
 #| msgid "Sign it? (y/N) "
 msgid "Continue? (y/N) "
-msgstr "Podpisaæ go? (t/N) "
+msgstr "Podpisać go? (t/N) "
 
 msgid "Really do a factory reset? (enter \"yes\") "
 msgstr ""
 
 msgid "quit this menu"
-msgstr "wyjcie z tego menu"
+msgstr "wyjście z tego menu"
 
 msgid "show admin commands"
-msgstr "pokazanie poleceñ administratora"
+msgstr "pokazanie poleceń administratora"
 
 msgid "show this help"
 msgstr "ten tekst pomocy"
 
 msgid "list all available data"
-msgstr "wypisanie wszystkich dostêpnych danych"
+msgstr "wypisanie wszystkich dostępnych danych"
 
 msgid "change card holder's name"
 msgstr "zmiana nazwy posiadacza karty"
@@ -1545,16 +1552,16 @@ msgid "change URL to retrieve key"
 msgstr "zmiana URL-a do odczytu klucza"
 
 msgid "fetch the key specified in the card URL"
-msgstr "pobranie klucza okrelonego w URL-u karty"
+msgstr "pobranie klucza określonego w URL-u karty"
 
 msgid "change the login name"
 msgstr "zmiana nazwy logowania"
 
 msgid "change the language preferences"
-msgstr "zmiana preferowanych jêzyków"
+msgstr "zmiana preferowanych języków"
 
 msgid "change card holder's sex"
-msgstr "zmiana p³ci posiadacza karty"
+msgstr "zmiana płci posiadacza karty"
 
 msgid "change a CA fingerprint"
 msgstr "zmiana odcisku CA"
@@ -1572,7 +1579,7 @@ msgid "verify the PIN and list all data"
 msgstr "sprawdzenie PIN-u i wypisanie wszystkich danych"
 
 msgid "unblock the PIN using a Reset Code"
-msgstr "odblokowanie PIN-u przy u¿yciu kodu resetuj±cego"
+msgstr "odblokowanie PIN-u przy użyciu kodu resetującego"
 
 msgid "destroy all keys and data"
 msgstr ""
@@ -1584,51 +1591,51 @@ msgid "Admin-only command\n"
 msgstr "Polecenie tylko dla administratora\n"
 
 msgid "Admin commands are allowed\n"
-msgstr "Polecenia dla administratora s± dozwolone\n"
+msgstr "Polecenia dla administratora są dozwolone\n"
 
 msgid "Admin commands are not allowed\n"
-msgstr "Polecenia dla administratora nie s± dozwolone\n"
+msgstr "Polecenia dla administratora nie są dozwolone\n"
 
 msgid "Invalid command  (try \"help\")\n"
-msgstr "Niepoprawne polecenie  (spróbuj ,,help'')\n"
+msgstr "Niepoprawne polecenie  (spróbuj ,,help'')\n"
 
 msgid "--output doesn't work for this command\n"
-msgstr "opcja --output nie dzia³a z tym poleceniem\n"
+msgstr "opcja --output nie działa z tym poleceniem\n"
 
 #, fuzzy, c-format
 #| msgid "can't open `%s'\n"
 msgid "can't open '%s'\n"
-msgstr "nie mo¿na otworzyæ ,,%s''\n"
+msgstr "nie można otworzyć ,,%s''\n"
 
 #, c-format
 msgid "key \"%s\" not found: %s\n"
-msgstr "klucz ,,%s'' nie zosta³ odnaleziony: %s\n"
+msgstr "klucz ,,%s'' nie został odnaleziony: %s\n"
 
 #, c-format
 msgid "error reading keyblock: %s\n"
-msgstr "b³±d odczytu bloku kluczy: %s\n"
+msgstr "błąd odczytu bloku kluczy: %s\n"
 
 #, fuzzy, c-format
 #| msgid "key \"%s\" not found: %s\n"
 msgid "key \"%s\" not found\n"
-msgstr "klucz ,,%s'' nie zosta³ odnaleziony: %s\n"
+msgstr "klucz ,,%s'' nie został odnaleziony: %s\n"
 
 msgid "(unless you specify the key by fingerprint)\n"
-msgstr "(chyba, ¿e klucz zostaje wybrany przez podanie odcisku)\n"
+msgstr "(chyba, że klucz zostaje wybrany przez podanie odcisku)\n"
 
 msgid "can't do this in batch mode without \"--yes\"\n"
-msgstr "bez opcji ,,--yes'' nie dzia³a w trybie wsadowym\n"
+msgstr "bez opcji ,,--yes'' nie działa w trybie wsadowym\n"
 
 msgid "Delete this key from the keyring? (y/N) "
-msgstr "Usun±æ ten klucz ze zbioru? (t/N) "
+msgstr "Usunąć ten klucz ze zbioru? (t/N) "
 
 msgid "This is a secret key! - really delete? (y/N) "
-msgstr "To jest klucz tajny! - czy na pewno go usun±æ? (t/N) "
+msgstr "To jest klucz tajny! - czy na pewno go usunąć? (t/N) "
 
 #, fuzzy, c-format
 #| msgid "deleting certificate \"%s\" failed: %s\n"
 msgid "deleting secret %s failed: %s\n"
-msgstr "usuniêcie certyfikatu ,,%s'' nie powiod³o siê: %s\n"
+msgstr "usunięcie certyfikatu ,,%s'' nie powiodło się: %s\n"
 
 msgid "key"
 msgstr ""
@@ -1640,25 +1647,25 @@ msgstr "Asymetryczne: "
 
 #, c-format
 msgid "deleting keyblock failed: %s\n"
-msgstr "usuniêcie bloku klucza nie powiod³o siê: %s\n"
+msgstr "usunięcie bloku klucza nie powiodło się: %s\n"
 
 msgid "ownertrust information cleared\n"
-msgstr "informacja o zaufaniu dla w³a¶ciciela klucza zosta³a wymazana\n"
+msgstr "informacja o zaufaniu dla właściciela klucza została wymazana\n"
 
 #, c-format
 msgid "there is a secret key for public key \"%s\"!\n"
 msgstr "dla klucza publicznego ,,%s'' istnieje klucz prywatny!\n"
 
 msgid "use option \"--delete-secret-keys\" to delete it first.\n"
-msgstr "aby go usun±æ nale¿y najpierw u¿yæ opcji \"--delete-secret-key\".\n"
+msgstr "aby go usunąć należy najpierw użyć opcji \"--delete-secret-key\".\n"
 
 #, c-format
 msgid "error creating passphrase: %s\n"
-msgstr "b³±d podczas tworzenia has³a: %s\n"
+msgstr "błąd podczas tworzenia hasła: %s\n"
 
 msgid "can't use a symmetric ESK packet due to the S2K mode\n"
 msgstr ""
-"ustawiony tryb S2K nie pozwala u¿yæ pakietu ESK dla szyfru symetrycznego\n"
+"ustawiony tryb S2K nie pozwala użyć pakietu ESK dla szyfru symetrycznego\n"
 
 #, c-format
 msgid "using cipher %s\n"
@@ -1667,12 +1674,12 @@ msgstr "szyfrem %s\n"
 #, fuzzy, c-format
 #| msgid "`%s' already compressed\n"
 msgid "'%s' already compressed\n"
-msgstr ",,%s'' ju¿ jest skompresowany\n"
+msgstr ",,%s'' już jest skompresowany\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: `%s' is an empty file\n"
 msgid "WARNING: '%s' is an empty file\n"
-msgstr "OSTRZE¯ENIE: plik ,,%s'' jest pusty\n"
+msgstr "OSTRZEŻENIE: plik ,,%s'' jest pusty\n"
 
 #, fuzzy, c-format
 #| msgid "reading from `%s'\n"
@@ -1683,7 +1690,7 @@ msgstr "odczyt z ,,%s''\n"
 msgid ""
 "WARNING: forcing symmetric cipher %s (%d) violates recipient preferences\n"
 msgstr ""
-"OSTRZE¯ENIE: wymuszone u¿ycie szyfru %s (%d) k³óci siê z ustawieniami "
+"OSTRZEŻENIE: wymuszone użycie szyfru %s (%d) kłóci się z ustawieniami "
 "adresata\n"
 
 #, c-format
@@ -1691,12 +1698,12 @@ msgid ""
 "WARNING: forcing compression algorithm %s (%d) violates recipient "
 "preferences\n"
 msgstr ""
-"OSTRZE¯ENIE: wymuszone u¿ycie kompresji %s (%d) k³óci siê z ustawieniami "
+"OSTRZEŻENIE: wymuszone użycie kompresji %s (%d) kłóci się z ustawieniami "
 "adresata\n"
 
 #, c-format
 msgid "forcing symmetric cipher %s (%d) violates recipient preferences\n"
-msgstr "wymuszone u¿ycie szyfru %s (%d) k³óci siê z ustawieniami adresata\n"
+msgstr "wymuszone użycie szyfru %s (%d) kłóci się z ustawieniami adresata\n"
 
 #, c-format
 msgid "%s/%s encrypted for: \"%s\"\n"
@@ -1704,11 +1711,11 @@ msgstr "%s/%s zaszyfrowany dla: ,,%s''\n"
 
 #, c-format
 msgid "you may not use %s while in %s mode\n"
-msgstr "%s nie jest dostêpne w trybie %s\n"
+msgstr "%s nie jest dostępne w trybie %s\n"
 
 #, c-format
 msgid "%s encrypted data\n"
-msgstr "dane zaszyfrowano za pomoc± %s\n"
+msgstr "dane zaszyfrowano za pomocą %s\n"
 
 #, c-format
 msgid "encrypted with unknown algorithm %d\n"
@@ -1717,77 +1724,77 @@ msgstr "dane zaszyfrowano nieznanym algorytmem numer %d\n"
 msgid ""
 "WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
 msgstr ""
-"OSTRZE¯ENIE: wiadomo¶æ by³a szyfrowana kluczem s³abym szyfru symetrycznego.\n"
+"OSTRZEŻENIE: wiadomość była szyfrowana kluczem słabym szyfru symetrycznego.\n"
 
 msgid "problem handling encrypted packet\n"
-msgstr "problem podczas obróbki pakietu szyfrowego\n"
+msgstr "problem podczas obróbki pakietu szyfrowego\n"
 
 msgid "no remote program execution supported\n"
-msgstr "odwo³ania do zewnêtrznych programów s± wy³±czone\n"
+msgstr "odwołania do zewnętrznych programów są wyłączone\n"
 
 msgid ""
 "external program calls are disabled due to unsafe options file permissions\n"
 msgstr ""
-"nieszczelne uprawnienia ustawieñ - wo³anie zewnêtrznych programów wy³±czone\n"
+"nieszczelne uprawnienia ustawień - wołanie zewnętrznych programów wyłączone\n"
 
 msgid "this platform requires temporary files when calling external programs\n"
 msgstr ""
-"platforma wymaga u¿ycia plików tymczasowych do wo³ania zewnêtrznych "
-"programów\n"
+"platforma wymaga użycia plików tymczasowych do wołania zewnętrznych "
+"programów\n"
 
 #, fuzzy, c-format
 #| msgid "unable to execute program `%s': %s\n"
 msgid "unable to execute program '%s': %s\n"
-msgstr "nie mo¿na uruchomiæ programu ,,%s'': %s\n"
+msgstr "nie można uruchomić programu ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "unable to execute shell `%s': %s\n"
 msgid "unable to execute shell '%s': %s\n"
-msgstr "nie mo¿na uruchomiæ pow³oki ,,%s'': %s\n"
+msgstr "nie można uruchomić powłoki ,,%s'': %s\n"
 
 #, c-format
 msgid "system error while calling external program: %s\n"
-msgstr "b³±d systemu podczas wo³ania programu zewnêtrznego: %s\n"
+msgstr "błąd systemu podczas wołania programu zewnętrznego: %s\n"
 
 msgid "unnatural exit of external program\n"
-msgstr "nienaturalne zakoñczenie pracy zewnêtrznego programu\n"
+msgstr "nienaturalne zakończenie pracy zewnętrznego programu\n"
 
 msgid "unable to execute external program\n"
-msgstr "nie mo¿na uruchomiæ zewnêtrznego programu\n"
+msgstr "nie można uruchomić zewnętrznego programu\n"
 
 #, c-format
 msgid "unable to read external program response: %s\n"
-msgstr "nie mo¿na odczytaæ odpowiedzi programu zewnêtrznego: %s\n"
+msgstr "nie można odczytać odpowiedzi programu zewnętrznego: %s\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unable to remove tempfile (%s) `%s': %s\n"
 msgid "WARNING: unable to remove tempfile (%s) '%s': %s\n"
-msgstr "OSTRZE¯ENIE: nie mo¿na skasowaæ pliku tymczasowego (%s) ,,%s'': %s.\n"
+msgstr "OSTRZEŻENIE: nie można skasować pliku tymczasowego (%s) ,,%s'': %s.\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unable to remove temp directory `%s': %s\n"
 msgid "WARNING: unable to remove temp directory '%s': %s\n"
-msgstr "OSTRZE¯ENIE: nie mo¿na skasowaæ tymczasowego katalogu ,,%s'': %s.\n"
+msgstr "OSTRZEŻENIE: nie można skasować tymczasowego katalogu ,,%s'': %s.\n"
 
 msgid "export signatures that are marked as local-only"
-msgstr "eksport podpisów oznaczonych jako tylko lokalne"
+msgstr "eksport podpisów oznaczonych jako tylko lokalne"
 
 msgid "export attribute user IDs (generally photo IDs)"
-msgstr "eksport atrybutów ID u¿ytkownika (ogólnie ID zdjêæ)"
+msgstr "eksport atrybutów ID użytkownika (ogólnie ID zdjęć)"
 
 msgid "export revocation keys marked as \"sensitive\""
-msgstr "eksport kluczy uniewa¿niaj±cych oznaczonych jako ,,poufne''"
+msgstr "eksport kluczy unieważniających oznaczonych jako ,,poufne''"
 
 msgid "remove unusable parts from key during export"
-msgstr "usuniêcie bezu¿ytecznych czê¶ci z klucza przy eksporcie"
+msgstr "usunięcie bezużytecznych części z klucza przy eksporcie"
 
 msgid "remove as much as possible from key during export"
-msgstr "usuniêcie jak najwiêkszej czê¶ci klucza przy eksporcie"
+msgstr "usunięcie jak największej części klucza przy eksporcie"
 
 #, fuzzy
 #| msgid "%s: skipped: %s\n"
 msgid " - skipped"
-msgstr "%s: pominiêty: %s\n"
+msgstr "%s: pominięty: %s\n"
 
 #, fuzzy, c-format
 #| msgid "writing to `%s'\n"
@@ -1796,25 +1803,25 @@ msgstr "zapis do ,,%s''\n"
 
 #, c-format
 msgid "key %s: key material on-card - skipped\n"
-msgstr "klucz %s: zawarto¶æ klucza na karcie - pominiêto\n"
+msgstr "klucz %s: zawartość klucza na karcie - pominięto\n"
 
 msgid "exporting secret keys not allowed\n"
 msgstr "eksport kluczy tajnych nie jest dozwolony\n"
 
 #, c-format
 msgid "key %s: PGP 2.x style key - skipped\n"
-msgstr "klucz %s: klucz PGP 2.x - pominiêty\n"
+msgstr "klucz %s: klucz PGP 2.x - pominięty\n"
 
 msgid "WARNING: nothing exported\n"
-msgstr "OSTRZE¯ENIE: nic nie zosta³o wyeksportowane!\n"
+msgstr "OSTRZEŻENIE: nic nie zostało wyeksportowane!\n"
 
 #, fuzzy, c-format
 #| msgid "error creating `%s': %s\n"
 msgid "error creating '%s': %s\n"
-msgstr "b³±d tworzenia ,,%s'': %s\n"
+msgstr "błąd tworzenia ,,%s'': %s\n"
 
 msgid "[User ID not found]"
-msgstr "[brak identyfikatora u¿ytkownika]"
+msgstr "[brak identyfikatora użytkownika]"
 
 #, fuzzy, c-format
 #| msgid "missing argument for option \"%.50s\"\n"
@@ -1828,12 +1835,12 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error closing %s: %s\n"
 msgid "error looking up: %s\n"
-msgstr "b³±d zamykania %s: %s\n"
+msgstr "błąd zamykania %s: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
 msgid "Warning: %s appears in the keyring %d times\n"
-msgstr "b³±d tworzenia zbioru kluczy `%s': %s\n"
+msgstr "błąd tworzenia zbioru kluczy `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "automatically retrieved `%s' via %s\n"
@@ -1843,24 +1850,24 @@ msgstr "automatycznie pobrano `%s' poprzez %s\n"
 #, fuzzy, c-format
 #| msgid "error retrieving `%s' via %s: %s\n"
 msgid "error retrieving '%s' via %s: %s\n"
-msgstr "b³±d odtwarzania ,,%s'' poprzez %s: %s\n"
+msgstr "błąd odtwarzania ,,%s'' poprzez %s: %s\n"
 
 msgid "No fingerprint"
 msgstr "Brak odcisku"
 
 #, c-format
 msgid "secret key \"%s\" not found: %s\n"
-msgstr "klucz prywatny ,,%s'' nie zosta³ odnaleziony: %s\n"
+msgstr "klucz prywatny ,,%s'' nie został odnaleziony: %s\n"
 
 #, fuzzy, c-format
 #| msgid "|NAME|use NAME as default secret key"
 msgid "Warning: not using '%s' as default key: %s\n"
-msgstr "|NAZWA|u¿ycie NAZWY jako domy¶lnego klucza tajnego"
+msgstr "|NAZWA|użycie NAZWY jako domyślnego klucza tajnego"
 
 #, fuzzy, c-format
 #| msgid "|NAME|use NAME as default secret key"
 msgid "using \"%s\" as default secret key for signing\n"
-msgstr "|NAZWA|u¿ycie NAZWY jako domy¶lnego klucza tajnego"
+msgstr "|NAZWA|użycie NAZWY jako domyślnego klucza tajnego"
 
 #, c-format
 msgid "all values passed to '%s' ignored\n"
@@ -1869,20 +1876,20 @@ msgstr ""
 #, c-format
 msgid "Invalid key %s made valid by --allow-non-selfsigned-uid\n"
 msgstr ""
-"Opcja --allow-non-selfsigned-uid wymusi³a uznanie za poprawny klucza %s.\n"
+"Opcja --allow-non-selfsigned-uid wymusiła uznanie za poprawny klucza %s.\n"
 
 #, c-format
 msgid "using subkey %s instead of primary key %s\n"
-msgstr "u¿ywany jest podklucz %s zamiast klucza g³ównego %s\n"
+msgstr "używany jest podklucz %s zamiast klucza głównego %s\n"
 
 msgid "make a signature"
-msgstr "z³o¿enie podpisu"
+msgstr "złożenie podpisu"
 
 msgid "make a clear text signature"
-msgstr "z³o¿enie podpisu pod dokumentem"
+msgstr "złożenie podpisu pod dokumentem"
 
 msgid "make a detached signature"
-msgstr "z³o¿enie podpisu oddzielonego od dokumentu"
+msgstr "złożenie podpisu oddzielonego od dokumentu"
 
 msgid "encrypt data"
 msgstr "szyfrowanie danych"
@@ -1891,7 +1898,7 @@ msgid "encryption only with symmetric cipher"
 msgstr "szyfrowanie tylko szyfrem symetrycznym"
 
 msgid "decrypt data (default)"
-msgstr "odszyfrowywanie danych (domylne)"
+msgstr "odszyfrowywanie danych (domyślne)"
 
 msgid "verify a signature"
 msgstr "sprawdzenie podpisu"
@@ -1900,13 +1907,13 @@ msgid "list keys"
 msgstr "lista kluczy"
 
 msgid "list keys and signatures"
-msgstr "lista kluczy i podpisów"
+msgstr "lista kluczy i podpisów"
 
 msgid "list and check key signatures"
-msgstr "wypisanie i sprawdzenie podpisów kluczy"
+msgstr "wypisanie i sprawdzenie podpisów kluczy"
 
 msgid "list keys and fingerprints"
-msgstr "lista kluczy i ich odcisków"
+msgstr "lista kluczy i ich odcisków"
 
 msgid "list secret keys"
 msgstr "lista kluczy prywatnych"
@@ -1933,35 +1940,35 @@ msgid "full featured key pair generation"
 msgstr ""
 
 msgid "generate a revocation certificate"
-msgstr "tworzenie certyfikatu uniewa¿nienia klucza"
+msgstr "tworzenie certyfikatu unieważnienia klucza"
 
 msgid "remove keys from the public keyring"
-msgstr "usuniêcie klucza ze zbioru kluczy publicznych"
+msgstr "usunięcie klucza ze zbioru kluczy publicznych"
 
 msgid "remove keys from the secret keyring"
-msgstr "usuniêcie klucza ze zbioru kluczy prywatnych"
+msgstr "usunięcie klucza ze zbioru kluczy prywatnych"
 
 #, fuzzy
 #| msgid "sign a key"
 msgid "quickly sign a key"
-msgstr "z³o¿enie podpisu na kluczu"
+msgstr "złożenie podpisu na kluczu"
 
 #, fuzzy
 #| msgid "sign a key locally"
 msgid "quickly sign a key locally"
-msgstr "z³o¿enie prywatnego podpisu na kluczu"
+msgstr "złożenie prywatnego podpisu na kluczu"
 
 msgid "sign a key"
-msgstr "z³o¿enie podpisu na kluczu"
+msgstr "złożenie podpisu na kluczu"
 
 msgid "sign a key locally"
-msgstr "z³o¿enie prywatnego podpisu na kluczu"
+msgstr "złożenie prywatnego podpisu na kluczu"
 
 msgid "sign or edit a key"
 msgstr "podpisanie lub modyfikacja klucza"
 
 msgid "change a passphrase"
-msgstr "zmiana has³a"
+msgstr "zmiana hasła"
 
 msgid "export keys"
 msgstr "eksport kluczy do pliku"
@@ -1976,13 +1983,13 @@ msgid "search for keys on a keyserver"
 msgstr "szukanie kluczy na serwerze"
 
 msgid "update all keys from a keyserver"
-msgstr "od¶wie¿enie wszystkich kluczy z serwera"
+msgstr "odświeżenie wszystkich kluczy z serwera"
 
 msgid "import/merge keys"
-msgstr "import/do³±czenie kluczy"
+msgstr "import/dołączenie kluczy"
 
 msgid "print the card status"
-msgstr "wywietlenie stanu karty"
+msgstr "wyświetlenie stanu karty"
 
 msgid "change data on a card"
 msgstr "zmiana danych na karcie"
@@ -1994,7 +2001,7 @@ msgid "update the trust database"
 msgstr "uaktualnienie bazy zaufania"
 
 msgid "print message digests"
-msgstr "wypisanie skrótów wiadomo¶ci"
+msgstr "wypisanie skrótów wiadomości"
 
 msgid "run in server mode"
 msgstr "uruchomienie w trybie serwera"
@@ -2006,11 +2013,11 @@ msgid "create ascii armored output"
 msgstr "opakowanie ASCII pliku wynikowego"
 
 msgid "|USER-ID|encrypt for USER-ID"
-msgstr "|U¯YTKOWNIK|szyfrowanie dla odbiorcy o tym identyfikatorze"
+msgstr "|UŻYTKOWNIK|szyfrowanie dla odbiorcy o tym identyfikatorze"
 
 msgid "|USER-ID|use USER-ID to sign or decrypt"
 msgstr ""
-"|U¯YTKOWNIK|u¿ycie tego identyfikatora u¿ytkownika do podpisania lub "
+"|UŻYTKOWNIK|użycie tego identyfikatora użytkownika do podpisania lub "
 "odszyfrowania"
 
 msgid "|N|set compress level to N (0 disables)"
@@ -2020,23 +2027,23 @@ msgid "use canonical text mode"
 msgstr "kanoniczny format tekstowy"
 
 msgid "|FILE|write output to FILE"
-msgstr "|PLIK|zapis wyjcia do PLIKU"
+msgstr "|PLIK|zapis wyjścia do PLIKU"
 
 msgid "do not make any changes"
 msgstr "pozostawienie bez zmian"
 
 msgid "prompt before overwriting"
-msgstr "pytanie przed nadpisaniem plików"
+msgstr "pytanie przed nadpisaniem plików"
 
 msgid "use strict OpenPGP behavior"
-msgstr "¶cis³e zachowanie OpenPGP"
+msgstr "ścisłe zachowanie OpenPGP"
 
 msgid ""
 "@\n"
 "(See the man page for a complete listing of all commands and options)\n"
 msgstr ""
 "@\n"
-"(Pe³n± listê poleceñ i opcji mo¿na znale¼æ w podrêczniku systemowym.)\n"
+"(Pełną listę poleceń i opcji można znaleźć w podręczniku systemowym.)\n"
 
 msgid ""
 "@\n"
@@ -2049,20 +2056,20 @@ msgid ""
 " --fingerprint [names]      show fingerprints\n"
 msgstr ""
 "@\n"
-"Przyk³ady:\n"
+"Przykłady:\n"
 "\n"
 " -se -r Bob [plik]          podpisanie i zaszyfrowanie kluczem Boba\n"
-" --clearsign [plik]         podpisanie z pozostawieniem czytelnoci "
+" --clearsign [plik]         podpisanie z pozostawieniem czytelności "
 "dokumentu\n"
 " --detach-sign [plik]       podpisanie z umieszczeniem podpisu w osobnym "
 "pliku\n"
 " --list-keys [nazwy]        pokazanie klucze\n"
-" --fingerprint [nazwy]      pokazanie odcisków kluczy\n"
+" --fingerprint [nazwy]      pokazanie odcisków kluczy\n"
 
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: @GPG@ [options] [files] (-h for help)"
-msgstr "Wywo³anie: gpg [opcje] [pliki] (-h podaje pomoc)"
+msgstr "Wywołanie: gpg [opcje] [pliki] (-h podaje pomoc)"
 
 #, fuzzy
 #| msgid ""
@@ -2074,16 +2081,16 @@ msgid ""
 "Sign, check, encrypt or decrypt\n"
 "Default operation depends on the input data\n"
 msgstr ""
-"Sk³adnia: gpg [opcje] [pliki]\n"
-"Podpisywanie, sprawdzanie podpisów, szyfrowanie, rozszyfrowywanie\n"
-"Domy¶lnie wykonywana operacja zale¿y od danych wej¶ciowych\n"
+"Składnia: gpg [opcje] [pliki]\n"
+"Podpisywanie, sprawdzanie podpisów, szyfrowanie, rozszyfrowywanie\n"
+"Domyślnie wykonywana operacja zależy od danych wejściowych\n"
 
 msgid ""
 "\n"
 "Supported algorithms:\n"
 msgstr ""
 "\n"
-"Obs³ugiwane algorytmy:\n"
+"Obsługiwane algorytmy:\n"
 
 msgid "Pubkey: "
 msgstr "Asymetryczne: "
@@ -2092,7 +2099,7 @@ msgid "Cipher: "
 msgstr "Symetryczne: "
 
 msgid "Hash: "
-msgstr "Skrótów: "
+msgstr "Skrótów: "
 
 msgid "Compression: "
 msgstr "Kompresji: "
@@ -2100,7 +2107,7 @@ msgstr "Kompresji: "
 #, fuzzy, c-format
 #| msgid "usage: gpgsm [options] "
 msgid "usage: %s [options] %s\n"
-msgstr "wywo³anie: gpgsm [opcje]"
+msgstr "wywołanie: gpgsm [opcje]"
 
 msgid "conflicting commands\n"
 msgstr "sprzeczne polecenia\n"
@@ -2114,40 +2121,40 @@ msgstr "w definicji grupy ,,%s'' brak znaku ,,=''\n"
 #| msgid "WARNING: unsafe ownership on homedir `%s'\n"
 msgid "WARNING: unsafe ownership on homedir '%s'\n"
 msgstr ""
-"OSTRZE¯ENIE: niebezpieczne prawa w³asno¶ci do katalogu domowego ,,%s''\n"
+"OSTRZEŻENIE: niebezpieczne prawa własności do katalogu domowego ,,%s''\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unsafe ownership on configuration file `%s'\n"
 msgid "WARNING: unsafe ownership on configuration file '%s'\n"
 msgstr ""
-"OSTRZE¯ENIE: niebezpieczne prawa w³asno¶ci do pliku konfiguracyjnego ,,%s''\n"
+"OSTRZEŻENIE: niebezpieczne prawa własności do pliku konfiguracyjnego ,,%s''\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unsafe ownership on extension `%s'\n"
 msgid "WARNING: unsafe ownership on extension '%s'\n"
-msgstr "OSTRZE¯ENIE: niebezpieczne prawa w³asno¶ci do rozszerzenia ,,%s''\n"
+msgstr "OSTRZEŻENIE: niebezpieczne prawa własności do rozszerzenia ,,%s''\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unsafe permissions on homedir `%s'\n"
 msgid "WARNING: unsafe permissions on homedir '%s'\n"
-msgstr "OSTRZE¯ENIE: niebezpieczne prawa dostêpu do katalogu domowego ,,%s''\n"
+msgstr "OSTRZEŻENIE: niebezpieczne prawa dostępu do katalogu domowego ,,%s''\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unsafe permissions on configuration file `%s'\n"
 msgid "WARNING: unsafe permissions on configuration file '%s'\n"
 msgstr ""
-"OSTRZE¯ENIE: niebezpieczne prawa dostêpu do pliku konfiguracyjnego ,,%s''\n"
+"OSTRZEŻENIE: niebezpieczne prawa dostępu do pliku konfiguracyjnego ,,%s''\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unsafe permissions on extension `%s'\n"
 msgid "WARNING: unsafe permissions on extension '%s'\n"
-msgstr "OSTRZE¯ENIE: niebezpieczne prawa dostêpu do rozszerzenia ,,%s''\n"
+msgstr "OSTRZEŻENIE: niebezpieczne prawa dostępu do rozszerzenia ,,%s''\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unsafe enclosing directory ownership on homedir `%s'\n"
 msgid "WARNING: unsafe enclosing directory ownership on homedir '%s'\n"
 msgstr ""
-"OSTRZE¯ENIE: niebezpieczne prawa w³asno¶ci do katalogu zawieraj±cego katalog "
+"OSTRZEŻENIE: niebezpieczne prawa własności do katalogu zawierającego katalog "
 "domowy ,,%s''\n"
 
 #, fuzzy, c-format
@@ -2156,21 +2163,21 @@ msgstr ""
 msgid ""
 "WARNING: unsafe enclosing directory ownership on configuration file '%s'\n"
 msgstr ""
-"OSTRZE¯ENIE: niebezpieczne prawa w³asno¶ci do katalogu zawieraj±cego plik "
+"OSTRZEŻENIE: niebezpieczne prawa własności do katalogu zawierającego plik "
 "konfiguracyjny ,,%s''\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unsafe enclosing directory ownership on extension `%s'\n"
 msgid "WARNING: unsafe enclosing directory ownership on extension '%s'\n"
 msgstr ""
-"OSTRZE¯ENIE: niebezpieczne prawa w³asno¶ci do katalogu zawieraj±cego "
+"OSTRZEŻENIE: niebezpieczne prawa własności do katalogu zawierającego "
 "rozszerzenie ,,%s''\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unsafe enclosing directory permissions on homedir `%s'\n"
 msgid "WARNING: unsafe enclosing directory permissions on homedir '%s'\n"
 msgstr ""
-"OSTRZE¯ENIE: niebezpieczne prawa dostêpu do katalogu zawieraj±cego katalog "
+"OSTRZEŻENIE: niebezpieczne prawa dostępu do katalogu zawierającego katalog "
 "domowy ,,%s''\n"
 
 #, fuzzy, c-format
@@ -2180,14 +2187,14 @@ msgstr ""
 msgid ""
 "WARNING: unsafe enclosing directory permissions on configuration file '%s'\n"
 msgstr ""
-"OSTRZE¯ENIE: niebezpieczne prawa dostêpu do katalogu zawieraj±cego plik "
+"OSTRZEŻENIE: niebezpieczne prawa dostępu do katalogu zawierającego plik "
 "konfiguracyjny ,,%s''\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unsafe enclosing directory permissions on extension `%s'\n"
 msgid "WARNING: unsafe enclosing directory permissions on extension '%s'\n"
 msgstr ""
-"OSTRZE¯ENIE: niebezpieczne prawa dostêpu do katalogu zawieraj±cego "
+"OSTRZEŻENIE: niebezpieczne prawa dostępu do katalogu zawierającego "
 "rozszerzenie ,,%s''\n"
 
 #, fuzzy, c-format
@@ -2196,49 +2203,49 @@ msgid "unknown configuration item '%s'\n"
 msgstr "nieznana opcja konfiguracyjna ,,%s''\n"
 
 msgid "display photo IDs during key listings"
-msgstr "wy¶wietlenie ID zdjêæ przy wypisywaniu kluczy"
+msgstr "wyświetlenie ID zdjęć przy wypisywaniu kluczy"
 
 #, fuzzy
 #| msgid "show user ID validity during key listings"
 msgid "show key usage information during key listings"
-msgstr "pokazywanie poprawno¶ci ID u¿ytkownika przy wypisywaniu kluczy"
+msgstr "pokazywanie poprawności ID użytkownika przy wypisywaniu kluczy"
 
 msgid "show policy URLs during signature listings"
-msgstr "pokazywanie URL-i polityk przy wypisywaniu podpisów"
+msgstr "pokazywanie URL-i polityk przy wypisywaniu podpisów"
 
 msgid "show all notations during signature listings"
-msgstr "pokazywanie wszystkich adnotacji przy wypisywaniu podpisów"
+msgstr "pokazywanie wszystkich adnotacji przy wypisywaniu podpisów"
 
 msgid "show IETF standard notations during signature listings"
-msgstr "pokazywanie standardowych adnotacji IETF przy wypisywaniu podpisów"
+msgstr "pokazywanie standardowych adnotacji IETF przy wypisywaniu podpisów"
 
 msgid "show user-supplied notations during signature listings"
-msgstr "pokazywanie adnotacji u¿ytkownika przy wypisywaniu podpisów"
+msgstr "pokazywanie adnotacji użytkownika przy wypisywaniu podpisów"
 
 msgid "show preferred keyserver URLs during signature listings"
 msgstr ""
-"pokazywanie URL-i preferowanych serwerów kluczy przy wypisywaniu podpisów"
+"pokazywanie URL-i preferowanych serwerów kluczy przy wypisywaniu podpisów"
 
 msgid "show user ID validity during key listings"
-msgstr "pokazywanie poprawno¶ci ID u¿ytkownika przy wypisywaniu kluczy"
+msgstr "pokazywanie poprawności ID użytkownika przy wypisywaniu kluczy"
 
 msgid "show revoked and expired user IDs in key listings"
 msgstr ""
-"pokazywanie uniewa¿nionych i wygas³ych ID u¿ytkownika na listach kluczy"
+"pokazywanie unieważnionych i wygasłych ID użytkownika na listach kluczy"
 
 msgid "show revoked and expired subkeys in key listings"
-msgstr "pokazywanie uniewa¿nionych i wygas³ych podkluczy na listach kluczy"
+msgstr "pokazywanie unieważnionych i wygasłych podkluczy na listach kluczy"
 
 msgid "show the keyring name in key listings"
 msgstr "pokazywanie nazwy zbioru kluczy na listach kluczy"
 
 msgid "show expiration dates during signature listings"
-msgstr "pokazywanie dat wyga¶niêcia przy wypisywaniu podpisów"
+msgstr "pokazywanie dat wygaśnięcia przy wypisywaniu podpisów"
 
-#, fuzzy
-#| msgid "Available keys:\n"
-msgid "available TOFU policies:\n"
-msgstr "Dostêpne klucze:\n"
+#, fuzzy, c-format
+#| msgid "missing argument for option \"%.50s\"\n"
+msgid "valid values for option '%s':\n"
+msgstr "brak argumentu dla opcji ,,%.50s''\n"
 
 #, fuzzy, c-format
 #| msgid "unknown option `%s'\n"
@@ -2249,19 +2256,24 @@ msgid "(use \"help\" to list choices)\n"
 msgstr ""
 
 #, fuzzy, c-format
+#| msgid "missing argument for option \"%.50s\"\n"
+msgid "invalid value for option '%s'\n"
+msgstr "brak argumentu dla opcji ,,%.50s''\n"
+
+#, fuzzy, c-format
 #| msgid "NOTE: old default options file `%s' ignored\n"
 msgid "Note: old default options file '%s' ignored\n"
-msgstr "UWAGA: stary domy¶lny plik opcji ,,%s'' zosta³ zignorowany\n"
+msgstr "UWAGA: stary domyślny plik opcji ,,%s'' został zignorowany\n"
 
 #, fuzzy, c-format
 #| msgid "NOTE: %s is not for normal use!\n"
 msgid "Note: %s is not for normal use!\n"
-msgstr "UWAGA: %s nie jest do normalnego u¿ytku!\n"
+msgstr "UWAGA: %s nie jest do normalnego użytku!\n"
 
 #, fuzzy, c-format
 #| msgid "`%s' is not a valid signature expiration\n"
 msgid "'%s' is not a valid signature expiration\n"
-msgstr ",,%s'' nie jest poprawnym czasem wyga¶niêcia podpisu\n"
+msgstr ",,%s'' nie jest poprawnym czasem wygaśnięcia podpisu\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: not a valid email address\n"
@@ -2271,15 +2283,15 @@ msgstr "linia %d: niepoprawny adres e-mail\n"
 #, fuzzy, c-format
 #| msgid "invalid country code in `%s', line %d\n"
 msgid "invalid pinentry mode '%s'\n"
-msgstr "niew³a¶ciwy kod kraju w ,,%s'', w linii %d\n"
+msgstr "niewłaściwy kod kraju w ,,%s'', w linii %d\n"
 
 #, fuzzy, c-format
 #| msgid "`%s' is not a valid character set\n"
 msgid "'%s' is not a valid character set\n"
-msgstr ",,%s'' nie jest poprawn± nazw± zestawu znaków\n"
+msgstr ",,%s'' nie jest poprawną nazwą zestawu znaków\n"
 
 msgid "could not parse keyserver URL\n"
-msgstr "niezrozumia³y URL serwera kluczy\n"
+msgstr "niezrozumiały URL serwera kluczy\n"
 
 #, c-format
 msgid "%s:%d: invalid keyserver options\n"
@@ -2315,40 +2327,40 @@ msgid "invalid list options\n"
 msgstr "niepoprawne opcje wypisywania\n"
 
 msgid "display photo IDs during signature verification"
-msgstr "wy¶wietlanie ID zdjêæ przy sprawdzaniu podpisów"
+msgstr "wyświetlanie ID zdjęć przy sprawdzaniu podpisów"
 
 msgid "show policy URLs during signature verification"
-msgstr "pokazywanie URL-i polityk przy sprawdzaniu podpisów"
+msgstr "pokazywanie URL-i polityk przy sprawdzaniu podpisów"
 
 msgid "show all notations during signature verification"
-msgstr "pokazywanie wszystkich adnotacji przy sprawdzaniu podpisów"
+msgstr "pokazywanie wszystkich adnotacji przy sprawdzaniu podpisów"
 
 msgid "show IETF standard notations during signature verification"
-msgstr "pokazywanie standardowych adnotacji IETF przy sprawdzaniu podpisów"
+msgstr "pokazywanie standardowych adnotacji IETF przy sprawdzaniu podpisów"
 
 msgid "show user-supplied notations during signature verification"
-msgstr "pokazywanie adnotacji u¿ytkownika przy sprawdzaniu podpisów"
+msgstr "pokazywanie adnotacji użytkownika przy sprawdzaniu podpisów"
 
 msgid "show preferred keyserver URLs during signature verification"
 msgstr ""
-"pokazywanie URL-i preferowanych serwerów kluczy przy sprawdzaniu podpisów"
+"pokazywanie URL-i preferowanych serwerów kluczy przy sprawdzaniu podpisów"
 
 msgid "show user ID validity during signature verification"
-msgstr "pokazywanie poprawno¶ci ID u¿ytkownika przy sprawdzaniu podpisów"
+msgstr "pokazywanie poprawności ID użytkownika przy sprawdzaniu podpisów"
 
 msgid "show revoked and expired user IDs in signature verification"
 msgstr ""
-"pokazywanie uniewa¿nionych i wygas³ych ID u¿ytkownika przy sprawdzaniu "
-"podpisów"
+"pokazywanie unieważnionych i wygasłych ID użytkownika przy sprawdzaniu "
+"podpisów"
 
 msgid "show only the primary user ID in signature verification"
-msgstr "pokazywanie tylko g³ównego ID u¿ytkownika przy sprawdzaniu podpisu"
+msgstr "pokazywanie tylko głównego ID użytkownika przy sprawdzaniu podpisu"
 
 msgid "validate signatures with PKA data"
-msgstr "sprawdzanie podpisów z danymi PKA"
+msgstr "sprawdzanie podpisów z danymi PKA"
 
 msgid "elevate the trust of signatures with valid PKA data"
-msgstr "zwiêkszenie zaufania podpisów z poprawnymi danymi PKA"
+msgstr "zwiększenie zaufania podpisów z poprawnymi danymi PKA"
 
 #, c-format
 msgid "%s:%d: invalid verify options\n"
@@ -2359,7 +2371,7 @@ msgstr "niepoprawne opcje sprawdzania\n"
 
 #, c-format
 msgid "unable to set exec-path to %s\n"
-msgstr "nie mo¿na ustawiæ ¶cie¿ki programów wykonywalnych na %s\n"
+msgstr "nie można ustawić ścieżki programów wykonywalnych na %s\n"
 
 #, c-format
 msgid "%s:%d: invalid auto-key-locate list\n"
@@ -2369,55 +2381,55 @@ msgid "invalid auto-key-locate list\n"
 msgstr "Niepoprawna lista auto-key-locate\n"
 
 msgid "WARNING: program may create a core file!\n"
-msgstr "OSTRZE¯ENIE: program mo¿e stworzyæ plik zrzutu pamiêci!\n"
+msgstr "OSTRZEŻENIE: program może stworzyć plik zrzutu pamięci!\n"
 
 #, c-format
 msgid "WARNING: %s overrides %s\n"
-msgstr "OSTRZE¯ENIE: %s powoduje obej¶cie %s\n"
+msgstr "OSTRZEŻENIE: %s powoduje obejście %s\n"
 
 #, c-format
 msgid "%s not allowed with %s!\n"
-msgstr "Nie wolno u¿ywaæ %s z %s!\n"
+msgstr "Nie wolno używać %s z %s!\n"
 
 #, c-format
 msgid "%s makes no sense with %s!\n"
-msgstr "%s nie ma sensu w po³±czeniu z %s!\n"
+msgstr "%s nie ma sensu w połączeniu z %s!\n"
 
 msgid "WARNING: running with faked system time: "
-msgstr "OSTRZE¯ENIE: dzia³anie z fa³szywym czasem systemowym: "
+msgstr "OSTRZEŻENIE: działanie z fałszywym czasem systemowym: "
 
 #, c-format
 msgid "will not run with insecure memory due to %s\n"
-msgstr "nie zadzia³a z niebezpieczn± pamiêci± z powodu %s\n"
+msgstr "nie zadziała z niebezpieczną pamięcią z powodu %s\n"
 
 msgid "selected cipher algorithm is invalid\n"
-msgstr "wybrany algorytm szyfruj±cy jest niepoprawny\n"
+msgstr "wybrany algorytm szyfrujący jest niepoprawny\n"
 
 msgid "selected digest algorithm is invalid\n"
-msgstr "wybrany algorytm skrótów wiadomo¶ci jest niepoprawny\n"
+msgstr "wybrany algorytm skrótów wiadomości jest niepoprawny\n"
 
 msgid "selected compression algorithm is invalid\n"
 msgstr "wybrany algorytm kompresji jest niepoprawny\n"
 
 msgid "selected certification digest algorithm is invalid\n"
-msgstr "wybrany algorytm skrótów po¶wiadczeñ jest niepoprawny\n"
+msgstr "wybrany algorytm skrótów poświadczeń jest niepoprawny\n"
 
 msgid "completes-needed must be greater than 0\n"
-msgstr "warto¶æ completes-needed musi byæ wiêksza od 0\n"
+msgstr "wartość completes-needed musi być większa od 0\n"
 
 msgid "marginals-needed must be greater than 1\n"
-msgstr "warto¶æ marginals-needed musi byæ wiêksza od 1\n"
+msgstr "wartość marginals-needed musi być większa od 1\n"
 
 msgid "max-cert-depth must be in the range from 1 to 255\n"
-msgstr "warto¶æ max-cert-depth musi mie¶ciæ siê w zakresie od 1 do 255\n"
+msgstr "wartość max-cert-depth musi mieścić się w zakresie od 1 do 255\n"
 
 msgid "invalid default-cert-level; must be 0, 1, 2, or 3\n"
 msgstr ""
-"niew³a¶ciwy domy¶lny poziom sprawdzania; musi mieæ warto¶æ 0, 1, 2 lub 3\n"
+"niewłaściwy domyślny poziom sprawdzania; musi mieć wartość 0, 1, 2 lub 3\n"
 
 msgid "invalid min-cert-level; must be 1, 2, or 3\n"
 msgstr ""
-"niew³a¶ciwy minimalny poziom sprawdzania; musi mieæ warto¶æ 0, 1, 2 lub 3\n"
+"niewłaściwy minimalny poziom sprawdzania; musi mieć wartość 0, 1, 2 lub 3\n"
 
 #, fuzzy
 #| msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
@@ -2425,45 +2437,45 @@ msgid "Note: simple S2K mode (0) is strongly discouraged\n"
 msgstr "UWAGA: prosty tryb S2K (0) jest stanowczo odradzany\n"
 
 msgid "invalid S2K mode; must be 0, 1 or 3\n"
-msgstr "niepoprawny tryb S2K; musi mieæ warto¶æ 0, 1 lub 3\n"
+msgstr "niepoprawny tryb S2K; musi mieć wartość 0, 1 lub 3\n"
 
 msgid "invalid default preferences\n"
-msgstr "niew³a¶ciwe domy¶lne ustawienia\n"
+msgstr "niewłaściwe domyślne ustawienia\n"
 
 msgid "invalid personal cipher preferences\n"
-msgstr "niew³a¶ciwe ustawienia szyfrów\n"
+msgstr "niewłaściwe ustawienia szyfrów\n"
 
 msgid "invalid personal digest preferences\n"
-msgstr "niew³a¶ciwe ustawienia skrótów\n"
+msgstr "niewłaściwe ustawienia skrótów\n"
 
 msgid "invalid personal compress preferences\n"
-msgstr "niew³a¶ciwe ustawienia algorytmów kompresji\n"
+msgstr "niewłaściwe ustawienia algorytmów kompresji\n"
 
 #, c-format
 msgid "%s does not yet work with %s\n"
-msgstr "%s jeszcze nie dzia³a z %s!\n"
+msgstr "%s jeszcze nie działa z %s!\n"
 
 #, fuzzy, c-format
 #| msgid "you may not use cipher algorithm `%s' while in %s mode\n"
 msgid "you may not use cipher algorithm '%s' while in %s mode\n"
-msgstr "szyfr ,,%s'' nie jest dostêpny w trybie %s\n"
+msgstr "szyfr ,,%s'' nie jest dostępny w trybie %s\n"
 
 #, fuzzy, c-format
 #| msgid "you may not use digest algorithm `%s' while in %s mode\n"
 msgid "you may not use digest algorithm '%s' while in %s mode\n"
-msgstr "skrót ,,%s'' nie jest dostêpny w trybie %s\n"
+msgstr "skrót ,,%s'' nie jest dostępny w trybie %s\n"
 
 #, fuzzy, c-format
 #| msgid "you may not use compression algorithm `%s' while in %s mode\n"
 msgid "you may not use compression algorithm '%s' while in %s mode\n"
-msgstr "kompresja ,,%s'' nie jest dostêpna w trybie %s\n"
+msgstr "kompresja ,,%s'' nie jest dostępna w trybie %s\n"
 
 #, c-format
 msgid "failed to initialize the TrustDB: %s\n"
-msgstr "inicjowanie Bazy Zaufania nie powiod³o siê: %s\n"
+msgstr "inicjowanie Bazy Zaufania nie powiodło się: %s\n"
 
 msgid "WARNING: recipients (-r) given without using public key encryption\n"
-msgstr "OSTRZE¯ENIE: podano adresatów (-r) w dzia³aniu które ich nie dotyczy\n"
+msgstr "OSTRZEŻENIE: podano adresatów (-r) w działaniu które ich nie dotyczy\n"
 
 msgid "--store [filename]"
 msgstr "--store [plik]"
@@ -2474,7 +2486,7 @@ msgstr "--symmetric [plik]"
 #, fuzzy, c-format
 #| msgid "symmetric encryption of `%s' failed: %s\n"
 msgid "symmetric encryption of '%s' failed: %s\n"
-msgstr "szyfrowanie symetryczne ,,%s'' nie powiod³o siê: %s\n"
+msgstr "szyfrowanie symetryczne ,,%s'' nie powiodło się: %s\n"
 
 msgid "--encrypt [filename]"
 msgstr "--encrypt [plik]"
@@ -2483,11 +2495,11 @@ msgid "--symmetric --encrypt [filename]"
 msgstr "--symmetric --encrypt [plik]"
 
 msgid "you cannot use --symmetric --encrypt with --s2k-mode 0\n"
-msgstr "nie mo¿na u¿yæ --symmetric --encrypt wraz z --s2k-mode 0\n"
+msgstr "nie można użyć --symmetric --encrypt wraz z --s2k-mode 0\n"
 
 #, c-format
 msgid "you cannot use --symmetric --encrypt while in %s mode\n"
-msgstr "nie mo¿na u¿yæ --symmetric --encrypt w trybie %s\n"
+msgstr "nie można użyć --symmetric --encrypt w trybie %s\n"
 
 msgid "--sign [filename]"
 msgstr "--sign [plik]"
@@ -2499,11 +2511,11 @@ msgid "--symmetric --sign --encrypt [filename]"
 msgstr "--symmetric --sign --encrypt [plik]"
 
 msgid "you cannot use --symmetric --sign --encrypt with --s2k-mode 0\n"
-msgstr "nie mo¿na u¿yæ --symmetric --sign --encrypt wraz z --s2k-mode 0\n"
+msgstr "nie można użyć --symmetric --sign --encrypt wraz z --s2k-mode 0\n"
 
 #, c-format
 msgid "you cannot use --symmetric --sign --encrypt while in %s mode\n"
-msgstr "nie mo¿na u¿yæ --symmetric --sign --encrypt w trybie %s\n"
+msgstr "nie można użyć --symmetric --sign --encrypt w trybie %s\n"
 
 msgid "--sign --symmetric [filename]"
 msgstr "--sign --symmetric [plik]"
@@ -2515,59 +2527,59 @@ msgid "--decrypt [filename]"
 msgstr "--decrypt [plik]"
 
 msgid "--sign-key user-id"
-msgstr "--sign-key nazwa u¿ytkownika"
+msgstr "--sign-key nazwa użytkownika"
 
 msgid "--lsign-key user-id"
-msgstr "--lsign-key nazwa u¿ytkownika"
+msgstr "--lsign-key nazwa użytkownika"
 
 msgid "--edit-key user-id [commands]"
-msgstr "--edit-key nazwa u¿ytkownika [polecenia]"
+msgstr "--edit-key nazwa użytkownika [polecenia]"
 
 msgid "--passwd <user-id>"
-msgstr "--passwd <id-u¿ytkownika>"
+msgstr "--passwd <id-użytkownika>"
 
 #, c-format
 msgid "keyserver send failed: %s\n"
-msgstr "wysy³ka do serwera kluczy nie powiod³a siê: %s\n"
+msgstr "wysyłka do serwera kluczy nie powiodła się: %s\n"
 
 #, c-format
 msgid "keyserver receive failed: %s\n"
-msgstr "odbiór z serwera kluczy nie powiód³ siê: %s\n"
+msgstr "odbiór z serwera kluczy nie powiódł się: %s\n"
 
 #, c-format
 msgid "key export failed: %s\n"
-msgstr "eksport kluczy nie powiód³ siê: %s\n"
+msgstr "eksport kluczy nie powiódł się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "key export failed: %s\n"
 msgid "export as ssh key failed: %s\n"
-msgstr "eksport kluczy nie powiód³ siê: %s\n"
+msgstr "eksport kluczy nie powiódł się: %s\n"
 
 #, c-format
 msgid "keyserver search failed: %s\n"
-msgstr "szukanie w serwerze kluczy nie powiod³o siê: %s\n"
+msgstr "szukanie w serwerze kluczy nie powiodło się: %s\n"
 
 #, c-format
 msgid "keyserver refresh failed: %s\n"
-msgstr "od¶wie¿enie kluczy z serwera nie powiod³o siê: %s\n"
+msgstr "odświeżenie kluczy z serwera nie powiodło się: %s\n"
 
 #, c-format
 msgid "dearmoring failed: %s\n"
-msgstr "zdjêcie opakowania ASCII nie powiod³o siê: %s\n"
+msgstr "zdjęcie opakowania ASCII nie powiodło się: %s\n"
 
 #, c-format
 msgid "enarmoring failed: %s\n"
-msgstr "opakowywanie ASCII nie powiod³o siê: %s\n"
+msgstr "opakowywanie ASCII nie powiodło się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid hash algorithm `%s'\n"
 msgid "invalid hash algorithm '%s'\n"
-msgstr "niew³a¶ciwy algorytm skrótu ,,%s''\n"
+msgstr "niewłaściwy algorytm skrótu ,,%s''\n"
 
 #, fuzzy, c-format
 #| msgid "error storing certificate: %s\n"
 msgid "error parsing key specification '%s': %s\n"
-msgstr "b³±d zapisywania certyfikatu: %s\n"
+msgstr "błąd zapisywania certyfikatu: %s\n"
 
 #, c-format
 msgid "'%s' does not appear to be a valid key ID, fingerprint or keygrip\n"
@@ -2577,13 +2589,13 @@ msgid "[filename]"
 msgstr "[nazwa pliku]"
 
 msgid "Go ahead and type your message ...\n"
-msgstr "Wpisz tutaj swoj± wiadomo¶æ ...\n"
+msgstr "Wpisz tutaj swoją wiadomość ...\n"
 
 msgid "the given certification policy URL is invalid\n"
-msgstr "podany URL regulaminu powiadczania jest niepoprawny\n"
+msgstr "podany URL regulaminu poświadczania jest niepoprawny\n"
 
 msgid "the given signature policy URL is invalid\n"
-msgstr "podany URL regulaminu podpisów jest niepoprawny\n"
+msgstr "podany URL regulaminu podpisów jest niepoprawny\n"
 
 msgid "the given preferred keyserver URL is invalid\n"
 msgstr "podany preferowany URL serwera kluczy jest niepoprawny\n"
@@ -2592,7 +2604,7 @@ msgid "|FILE|take the keys from the keyring FILE"
 msgstr "|PLIK|pobieranie kluczy ze zbioru PLIK"
 
 msgid "make timestamp conflicts only a warning"
-msgstr "nie traktowaæ konfliktu datowników jako b³êdu"
+msgstr "nie traktować konfliktu datowników jako błędu"
 
 msgid "|FD|write status info to this FD"
 msgstr "|FD|pisanie opisu stanu do deskryptora FD"
@@ -2601,17 +2613,17 @@ msgid "|ALGO|reject signatures made with ALGO"
 msgstr ""
 
 msgid "Usage: gpgv [options] [files] (-h for help)"
-msgstr "Wywo³anie: gpgv [opcje] [pliki] (-h podaje pomoc)"
+msgstr "Wywołanie: gpgv [opcje] [pliki] (-h podaje pomoc)"
 
 msgid ""
 "Syntax: gpgv [options] [files]\n"
 "Check signatures against known trusted keys\n"
 msgstr ""
-"Sk³adnia: gpgv [opcje] [pliki]\n"
-"Sprawdzanie podpisów ze znanych zaufanych kluczy\n"
+"Składnia: gpgv [opcje] [pliki]\n"
+"Sprawdzanie podpisów ze znanych zaufanych kluczy\n"
 
 msgid "No help available"
-msgstr "Pomoc niedostêpna"
+msgstr "Pomoc niedostępna"
 
 #, fuzzy, c-format
 #| msgid "No help available for `%s'"
@@ -2619,10 +2631,10 @@ msgid "No help available for '%s'"
 msgstr "Brak pomocy o ,,%s''"
 
 msgid "import signatures that are marked as local-only"
-msgstr "import podpisów oznaczonych jako tylko lokalne"
+msgstr "import podpisów oznaczonych jako tylko lokalne"
 
 msgid "repair damage from the pks keyserver during import"
-msgstr "naprawienie uszkodzeñ z serwera pks przy imporcie"
+msgstr "naprawienie uszkodzeń z serwera pks przy imporcie"
 
 #, fuzzy
 #| msgid "do not update the trustdb after import"
@@ -2638,20 +2650,20 @@ msgid "show key during import"
 msgstr "okazanie odcisku klucza"
 
 msgid "only accept updates to existing keys"
-msgstr "przyjmowanie tylko uaktualnieñ istniej±cych kluczy"
+msgstr "przyjmowanie tylko uaktualnień istniejących kluczy"
 
 msgid "remove unusable parts from key after import"
-msgstr "usuwanie bezu¿ytecznych czê¶ci kluczy po imporcie"
+msgstr "usuwanie bezużytecznych części kluczy po imporcie"
 
 msgid "remove as much as possible from key after import"
-msgstr "usuwanie jak najwiêkszej czê¶ci kluczy po imporcie"
+msgstr "usuwanie jak największej części kluczy po imporcie"
 
 msgid "run import filters and export key immediately"
 msgstr ""
 
 #, c-format
 msgid "skipping block of type %d\n"
-msgstr "blok typu %d zostaje pominiêty\n"
+msgstr "blok typu %d zostaje pominięty\n"
 
 #, c-format
 msgid "%lu keys processed so far\n"
@@ -2659,16 +2671,16 @@ msgstr "%lu kluczy przetworzonych do tej chwili\n"
 
 #, c-format
 msgid "Total number processed: %lu\n"
-msgstr "Ogó³em przetworzonych kluczy: %lu\n"
+msgstr "Ogółem przetworzonych kluczy: %lu\n"
 
 #, fuzzy, c-format
 #| msgid "      skipped new keys: %lu\n"
 msgid "    skipped PGP-2 keys: %lu\n"
-msgstr "   pominiêtych nowych kluczy: %lu\n"
+msgstr "   pominiętych nowych kluczy: %lu\n"
 
 #, c-format
 msgid "      skipped new keys: %lu\n"
-msgstr "   pominiêtych nowych kluczy: %lu\n"
+msgstr "   pominiętych nowych kluczy: %lu\n"
 
 #, c-format
 msgid "          w/o user IDs: %lu\n"
@@ -2676,7 +2688,7 @@ msgstr "          bez identyfikatora: %lu\n"
 
 #, c-format
 msgid "              imported: %lu"
-msgstr "         do³±czono do zbioru: %lu"
+msgstr "         dołączono do zbioru: %lu"
 
 #, c-format
 msgid "             unchanged: %lu\n"
@@ -2684,7 +2696,7 @@ msgstr "                   bez zmian: %lu\n"
 
 #, c-format
 msgid "          new user IDs: %lu\n"
-msgstr "      nowych identyfikatorów: %lu\n"
+msgstr "      nowych identyfikatorów: %lu\n"
 
 #, c-format
 msgid "           new subkeys: %lu\n"
@@ -2692,11 +2704,11 @@ msgstr "            nowych podkluczy: %lu\n"
 
 #, c-format
 msgid "        new signatures: %lu\n"
-msgstr "             nowych podpisów: %lu\n"
+msgstr "             nowych podpisów: %lu\n"
 
 #, c-format
 msgid "   new key revocations: %lu\n"
-msgstr "   nowych uniewa¿nieñ kluczy: %lu\n"
+msgstr "   nowych unieważnień kluczy: %lu\n"
 
 #, c-format
 msgid "      secret keys read: %lu\n"
@@ -2712,23 +2724,23 @@ msgstr "    tajnych kluczy bez zmian: %lu\n"
 
 #, c-format
 msgid "          not imported: %lu\n"
-msgstr "      nie w³±czono do zbioru: %lu\n"
+msgstr "      nie włączono do zbioru: %lu\n"
 
 #, c-format
 msgid "    signatures cleaned: %lu\n"
-msgstr "     podpisów wyczyszczonych: %lu\n"
+msgstr "     podpisów wyczyszczonych: %lu\n"
 
 #, c-format
 msgid "      user IDs cleaned: %lu\n"
-msgstr "ID u¿ytkownika wyczyszczonych: %lu\n"
+msgstr "ID użytkownika wyczyszczonych: %lu\n"
 
 #, c-format
 msgid ""
 "WARNING: key %s contains preferences for unavailable\n"
 "algorithms on these user IDs:\n"
 msgstr ""
-"OSTRZE¯ENIE: klucz %s zawiera preferencje dla niedostêpnych\n"
-"algorytmów dla tych ID u¿ytkownika:\n"
+"OSTRZEŻENIE: klucz %s zawiera preferencje dla niedostępnych\n"
+"algorytmów dla tych ID użytkownika:\n"
 
 #, c-format
 msgid "         \"%s\": preference for cipher algorithm %s\n"
@@ -2736,49 +2748,49 @@ msgstr "         ,,%s'': preferowany szyfr %s\n"
 
 #, c-format
 msgid "         \"%s\": preference for digest algorithm %s\n"
-msgstr "         ,,%s'': preferowany algorytm skrótu %s\n"
+msgstr "         ,,%s'': preferowany algorytm skrótu %s\n"
 
 #, c-format
 msgid "         \"%s\": preference for compression algorithm %s\n"
 msgstr "         ,,%s'': preferowany algorytm kompresji %s\n"
 
 msgid "it is strongly suggested that you update your preferences and\n"
-msgstr "zdecydowanie sugerowane jest uaktualnienie ustawieñ i ponowne\n"
+msgstr "zdecydowanie sugerowane jest uaktualnienie ustawień i ponowne\n"
 
 msgid "re-distribute this key to avoid potential algorithm mismatch problems\n"
-msgstr "rozes³anie tego klucza w celu unikniêcia niezgodno¶ci algorytmów\n"
+msgstr "rozesłanie tego klucza w celu uniknięcia niezgodności algorytmów\n"
 
 #, c-format
 msgid "you can update your preferences with: gpg --edit-key %s updpref save\n"
 msgstr ""
-"mo¿na uaktualniæ swoje ustawienia poprzez: gpg --edit-key %s updpref save\n"
+"można uaktualnić swoje ustawienia poprzez: gpg --edit-key %s updpref save\n"
 
 #, c-format
 msgid "key %s: no user ID\n"
-msgstr "klucz %s: brak identyfikatora u¿ytkownika\n"
+msgstr "klucz %s: brak identyfikatora użytkownika\n"
 
 #, fuzzy, c-format
 #| msgid "skipped \"%s\": %s\n"
 msgid "key %s: %s\n"
-msgstr "pominiêty ,,%s'': %s\n"
+msgstr "pominięty ,,%s'': %s\n"
 
 msgid "rejected by import screener"
 msgstr ""
 
 #, c-format
 msgid "key %s: PKS subkey corruption repaired\n"
-msgstr "klucz %s: podklucz uszkodzony przez serwer zosta³ naprawiony\n"
+msgstr "klucz %s: podklucz uszkodzony przez serwer został naprawiony\n"
 
 #, c-format
 msgid "key %s: accepted non self-signed user ID \"%s\"\n"
-msgstr "klucz %s: przyjêto identyfikator nie podpisany nim samym ,,%s''\n"
+msgstr "klucz %s: przyjęto identyfikator nie podpisany nim samym ,,%s''\n"
 
 #, c-format
 msgid "key %s: no valid user IDs\n"
-msgstr "klucz %s: brak poprawnych identyfikatorów u¿ytkownika\n"
+msgstr "klucz %s: brak poprawnych identyfikatorów użytkownika\n"
 
 msgid "this may be caused by a missing self-signature\n"
-msgstr "to mo¿e byæ spowodowane brakiem podpisu klucza nim samym\n"
+msgstr "to może być spowodowane brakiem podpisu klucza nim samym\n"
 
 #, c-format
 msgid "key %s: public key not found: %s\n"
@@ -2786,7 +2798,7 @@ msgstr "klucz %s: brak klucza publicznego: %s\n"
 
 #, c-format
 msgid "key %s: new key - skipped\n"
-msgstr "klucz %s: nowy klucz - pominiêty\n"
+msgstr "klucz %s: nowy klucz - pominięty\n"
 
 #, c-format
 msgid "no writable keyring found: %s\n"
@@ -2795,7 +2807,7 @@ msgstr "brak zapisywalnego zbioru kluczy: %s\n"
 #, fuzzy, c-format
 #| msgid "error writing keyring `%s': %s\n"
 msgid "error writing keyring '%s': %s\n"
-msgstr "b³±d zapisu zbioru kluczy ,,%s'': %s\n"
+msgstr "błąd zapisu zbioru kluczy ,,%s'': %s\n"
 
 #, c-format
 msgid "key %s: public key \"%s\" imported\n"
@@ -2803,7 +2815,7 @@ msgstr "klucz %s: klucz publiczny ,,%s'' wczytano do zbioru\n"
 
 #, c-format
 msgid "key %s: doesn't match our copy\n"
-msgstr "klucz %s: nie zgadza siê z lokaln± kopi±\n"
+msgstr "klucz %s: nie zgadza się z lokalną kopią\n"
 
 #, c-format
 msgid "key %s: can't locate original keyblock: %s\n"
@@ -2811,15 +2823,15 @@ msgstr "klucz %s: brak oryginalnego bloku klucza; %s\n"
 
 #, c-format
 msgid "key %s: can't read original keyblock: %s\n"
-msgstr "klucz %s: nie mo¿na odczytaæ oryginalnego bloku klucza: %s\n"
+msgstr "klucz %s: nie można odczytać oryginalnego bloku klucza: %s\n"
 
 #, c-format
 msgid "key %s: \"%s\" 1 new user ID\n"
-msgstr "klucz %s: ,,%s'' 1 nowy identyfikator u¿ytkownika\n"
+msgstr "klucz %s: ,,%s'' 1 nowy identyfikator użytkownika\n"
 
 #, c-format
 msgid "key %s: \"%s\" %d new user IDs\n"
-msgstr "klucz %s: ,,%s'' %d nowych identyfikatorów u¿ytkownika\n"
+msgstr "klucz %s: ,,%s'' %d nowych identyfikatorów użytkownika\n"
 
 #, c-format
 msgid "key %s: \"%s\" 1 new signature\n"
@@ -2827,7 +2839,7 @@ msgstr "klucz %s: ,,%s'' 1 nowy podpis\n"
 
 #, c-format
 msgid "key %s: \"%s\" %d new signatures\n"
-msgstr "klucz %s: ,,%s'' %d nowych podpisów\n"
+msgstr "klucz %s: ,,%s'' %d nowych podpisów\n"
 
 #, c-format
 msgid "key %s: \"%s\" 1 new subkey\n"
@@ -2843,15 +2855,15 @@ msgstr "klucz %s: ,,%s'' %d podpis wyczyszczony\n"
 
 #, c-format
 msgid "key %s: \"%s\" %d signatures cleaned\n"
-msgstr "klucz %s: ,,%s'' %d podpisów wyczyszczonych\n"
+msgstr "klucz %s: ,,%s'' %d podpisów wyczyszczonych\n"
 
 #, c-format
 msgid "key %s: \"%s\" %d user ID cleaned\n"
-msgstr "klucz %s: ,,%s'' %d identyfikator u¿ytkownika wyczyszczony\n"
+msgstr "klucz %s: ,,%s'' %d identyfikator użytkownika wyczyszczony\n"
 
 #, c-format
 msgid "key %s: \"%s\" %d user IDs cleaned\n"
-msgstr "klucz %s: ,,%s'' %d identyfikatorów u¿ytkownika wyczyszczonych\n"
+msgstr "klucz %s: ,,%s'' %d identyfikatorów użytkownika wyczyszczonych\n"
 
 #, c-format
 msgid "key %s: \"%s\" not changed\n"
@@ -2864,24 +2876,24 @@ msgstr "klucz %s: klucz tajny wczytany do zbioru\n"
 #, fuzzy, c-format
 #| msgid "skipped: secret key already present\n"
 msgid "key %s: secret key already exists\n"
-msgstr "pominiêty: klucz prywatny jest ju¿ wpisany\n"
+msgstr "pominięty: klucz prywatny jest już wpisany\n"
 
 #, fuzzy, c-format
 #| msgid "error sending %s command: %s\n"
 msgid "key %s: error sending to agent: %s\n"
-msgstr "b³±d wysy³ania polecenia %s: %s\n"
+msgstr "błąd wysyłania polecenia %s: %s\n"
 
 #, fuzzy, c-format
 #| msgid "secret key \"%s\" not found: %s\n"
 msgid "secret key %s: %s\n"
-msgstr "klucz prywatny ,,%s'' nie zosta³ odnaleziony: %s\n"
+msgstr "klucz prywatny ,,%s'' nie został odnaleziony: %s\n"
 
 msgid "importing secret keys not allowed\n"
 msgstr "wczytywanie kluczy tajnych nie jest dozwolone\n"
 
 #, c-format
 msgid "key %s: secret key with invalid cipher %d - skipped\n"
-msgstr "klucz %s: klucz tajny z b³êdnym szyfrem %d - pominiêty\n"
+msgstr "klucz %s: klucz tajny z błędnym szyfrem %d - pominięty\n"
 
 #. TRANSLATORS: For smartcard, each private key on
 #. host has a reference (stub) to a smartcard and
@@ -2900,24 +2912,24 @@ msgstr ""
 #, c-format
 msgid "key %s: no public key - can't apply revocation certificate\n"
 msgstr ""
-"klucz %s: brak klucza publicznego którego dotyczy wczytany certyfikat\n"
-"              uniewa¿nienia\n"
+"klucz %s: brak klucza publicznego którego dotyczy wczytany certyfikat\n"
+"              unieważnienia\n"
 
 #, c-format
 msgid "key %s: invalid revocation certificate: %s - rejected\n"
-msgstr "klucz %s: niepoprawny certyfikat uniewa¿nienia: %s - odrzucony\n"
+msgstr "klucz %s: niepoprawny certyfikat unieważnienia: %s - odrzucony\n"
 
 #, c-format
 msgid "key %s: \"%s\" revocation certificate imported\n"
-msgstr "klucz %s: ,,%s'' certyfikat uniewa¿nienia zosta³ ju¿ wczytany\n"
+msgstr "klucz %s: ,,%s'' certyfikat unieważnienia został już wczytany\n"
 
 #, c-format
 msgid "key %s: no user ID for signature\n"
-msgstr "klucz %s: brak identyfikatora u¿ytkownika do podpisu\n"
+msgstr "klucz %s: brak identyfikatora użytkownika do podpisu\n"
 
 #, c-format
 msgid "key %s: unsupported public key algorithm on user ID \"%s\"\n"
-msgstr "klucz %s: algorytm asymetryczny dla id ,,%s'' nie jest obs³ugiwany\n"
+msgstr "klucz %s: algorytm asymetryczny dla id ,,%s'' nie jest obsługiwany\n"
 
 #, c-format
 msgid "key %s: invalid self-signature on user ID \"%s\"\n"
@@ -2925,99 +2937,99 @@ msgstr "klucz %s: niepoprawny podpis na identyfikatorze ,,%s''\n"
 
 #, c-format
 msgid "key %s: unsupported public key algorithm\n"
-msgstr "klucz %s: nieobs³ugiwany algorytm asymetryczny\n"
+msgstr "klucz %s: nieobsługiwany algorytm asymetryczny\n"
 
 #, c-format
 msgid "key %s: invalid direct key signature\n"
-msgstr "klucz %s: nieprawid³owy bezpo¶redni podpis\n"
+msgstr "klucz %s: nieprawidłowy bezpośredni podpis\n"
 
 #, c-format
 msgid "key %s: no subkey for key binding\n"
-msgstr "klucz %s: brak podklucza do dowi±zania\n"
+msgstr "klucz %s: brak podklucza do dowiązania\n"
 
 #, c-format
 msgid "key %s: invalid subkey binding\n"
-msgstr "klucz %s: niepoprawne dowi±zanie podklucza\n"
+msgstr "klucz %s: niepoprawne dowiązanie podklucza\n"
 
 #, c-format
 msgid "key %s: removed multiple subkey binding\n"
-msgstr "klucz %s: usuniêto wielokrotne dowi±zanie podklucza\n"
+msgstr "klucz %s: usunięto wielokrotne dowiązanie podklucza\n"
 
 #, c-format
 msgid "key %s: no subkey for key revocation\n"
-msgstr "klucz %s: brak podklucza, którego dotyczy uniewa¿nienie\n"
+msgstr "klucz %s: brak podklucza, którego dotyczy unieważnienie\n"
 
 #, c-format
 msgid "key %s: invalid subkey revocation\n"
-msgstr "klucz %s: niepoprawne uniewa¿nienie podklucza\n"
+msgstr "klucz %s: niepoprawne unieważnienie podklucza\n"
 
 #, c-format
 msgid "key %s: removed multiple subkey revocation\n"
-msgstr "klucz %s: usuniêto wielokrotne uniewa¿nienie podklucza\n"
+msgstr "klucz %s: usunięto wielokrotne unieważnienie podklucza\n"
 
 #, c-format
 msgid "key %s: skipped user ID \"%s\"\n"
-msgstr "klucz %s: pominiêto identyfikator u¿ytkownika ,,%s''\n"
+msgstr "klucz %s: pominięto identyfikator użytkownika ,,%s''\n"
 
 #, c-format
 msgid "key %s: skipped subkey\n"
-msgstr "klucz %s: podklucz pominiêty\n"
+msgstr "klucz %s: podklucz pominięty\n"
 
 #, c-format
 msgid "key %s: non exportable signature (class 0x%02X) - skipped\n"
-msgstr "klucz %s: podpis nieeksportowalny (klasy 0x%02X) - pominiêty\n"
+msgstr "klucz %s: podpis nieeksportowalny (klasy 0x%02X) - pominięty\n"
 
 #, c-format
 msgid "key %s: revocation certificate at wrong place - skipped\n"
 msgstr ""
-"klucz %s: pominiêto certyfikat uniewa¿nienia umieszczony\n"
-"              w niew³a¶ciwym miejscu\n"
+"klucz %s: pominięto certyfikat unieważnienia umieszczony\n"
+"              w niewłaściwym miejscu\n"
 
 #, c-format
 msgid "key %s: invalid revocation certificate: %s - skipped\n"
-msgstr "klucz %s: pominiêto -  niepoprawny certyfikat uniewa¿nienia: %s\n"
+msgstr "klucz %s: pominięto -  niepoprawny certyfikat unieważnienia: %s\n"
 
 #, c-format
 msgid "key %s: subkey signature in wrong place - skipped\n"
-msgstr "klucz %s: pominiêto - podpis na podkluczu w niew³a¶ciwym miejscu\n"
+msgstr "klucz %s: pominięto - podpis na podkluczu w niewłaściwym miejscu\n"
 
 #, c-format
 msgid "key %s: unexpected signature class (0x%02X) - skipped\n"
-msgstr "klucz %s: pominiêto - nieoczekiwana klasa podpisu (0x%02X)\n"
+msgstr "klucz %s: pominięto - nieoczekiwana klasa podpisu (0x%02X)\n"
 
 #, c-format
 msgid "key %s: duplicated user ID detected - merged\n"
-msgstr "key %s: do³±czono powtórzony identyfikator u¿ytkownika\n"
+msgstr "key %s: dołączono powtórzony identyfikator użytkownika\n"
 
 #, c-format
 msgid "WARNING: key %s may be revoked: fetching revocation key %s\n"
 msgstr ""
-"OSTRZE¯ENIE: klucz %s móg³ zostaæ uniewa¿niony:\n"
-"             zapytanie o uniewa¿niaj±cy klucz %s w serwerze kluczy\n"
+"OSTRZEŻENIE: klucz %s mógł zostać unieważniony:\n"
+"             zapytanie o unieważniający klucz %s w serwerze kluczy\n"
 
 #, c-format
 msgid "WARNING: key %s may be revoked: revocation key %s not present.\n"
 msgstr ""
-"OSTRZE¯ENIE: klucz %s móg³ zostaæ uniewa¿niony:\n"
-"             brak uniewa¿niaj±cego klucza %s.\n"
+"OSTRZEŻENIE: klucz %s mógł zostać unieważniony:\n"
+"             brak unieważniającego klucza %s.\n"
 
 #, c-format
 msgid "key %s: \"%s\" revocation certificate added\n"
-msgstr "klucz %s: ,,%s'' dodany certyfikat uniewa¿nienia\n"
+msgstr "klucz %s: ,,%s'' dodany certyfikat unieważnienia\n"
 
 #, c-format
 msgid "key %s: direct key signature added\n"
-msgstr "klucz %s: dodano bezporedni podpis\n"
+msgstr "klucz %s: dodano bezpośredni podpis\n"
 
 #, fuzzy, c-format
 #| msgid "error creating keybox `%s': %s\n"
 msgid "error creating keybox '%s': %s\n"
-msgstr "b³±d tworzenia keyboksa ,,%s'': %s\n"
+msgstr "błąd tworzenia keyboksa ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
 msgid "error creating keyring '%s': %s\n"
-msgstr "b³±d tworzenia zbioru kluczy `%s': %s\n"
+msgstr "błąd tworzenia zbioru kluczy `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "keybox `%s' created\n"
@@ -3027,80 +3039,85 @@ msgstr "keybox ,,%s'' utworzony\n"
 #, fuzzy, c-format
 #| msgid "keyring `%s' created\n"
 msgid "keyring '%s' created\n"
-msgstr "zbiór kluczy ,,%s'' zosta³ utworzony\n"
+msgstr "zbiór kluczy ,,%s'' został utworzony\n"
 
 #, fuzzy, c-format
 #| msgid "keyblock resource `%s': %s\n"
 msgid "keyblock resource '%s': %s\n"
-msgstr "zasób bloku klucza `%s': %s\n"
+msgstr "zasób bloku klucza `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error opening `%s': %s\n"
 msgid "error opening key DB: %s\n"
-msgstr "b³±d podczas otwierania ,,%s'': %s\n"
+msgstr "błąd podczas otwierania ,,%s'': %s\n"
 
 #, c-format
 msgid "failed to rebuild keyring cache: %s\n"
-msgstr "nie powiod³a siê odbudowa bufora bazy: %s\n"
+msgstr "nie powiodła się odbudowa bufora bazy: %s\n"
 
 msgid "[revocation]"
-msgstr "[uniewa¿nienie]"
+msgstr "[unieważnienie]"
 
 msgid "[self-signature]"
 msgstr "[podpis klucza nim samym]"
 
 #, fuzzy, c-format
+#| msgid "error allocating enough memory: %s\n"
+msgid "error allocating memory: %s\n"
+msgstr "błąd przydzielania wystarczającej ilości pamięci: %s\n"
+
+#, fuzzy, c-format
 #| msgid "key %s: unsupported public key algorithm\n"
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
-msgstr "klucz %s: nieobs³ugiwany algorytm asymetryczny\n"
+msgstr "klucz %s: nieobsługiwany algorytm asymetryczny\n"
 
 #, fuzzy, c-format
 #| msgid "card does not support digest algorithm %s\n"
 msgid ""
 "can't check signature with unsupported message-digest algorithm %d: %s.\n"
-msgstr "karta nie obs³uguje algorytmu skrótu %s\n"
+msgstr "karta nie obsługuje algorytmu skrótu %s\n"
 
 #, fuzzy
 #| msgid "Good signature from"
 msgid " (reordered signatures follow)"
-msgstr "Poprawny podpis z³o¿ony przez"
+msgstr "Poprawny podpis złożony przez"
 
 #, fuzzy, c-format
 #| msgid "skipped \"%s\": %s\n"
 msgid "key %s:\n"
-msgstr "pominiêty ,,%s'': %s\n"
+msgstr "pominięty ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "User ID \"%s\": %d signature removed\n"
 msgid "%d duplicate signature removed\n"
 msgid_plural "%d duplicate signatures removed\n"
-msgstr[0] "Identyfikator u¿ytkownika ,,%s'': %d podpis wyczyszczony\n"
-msgstr[1] "Identyfikator u¿ytkownika ,,%s'': %d podpis wyczyszczony\n"
-msgstr[2] "Identyfikator u¿ytkownika ,,%s'': %d podpis wyczyszczony\n"
+msgstr[0] "Identyfikator użytkownika ,,%s'': %d podpis wyczyszczony\n"
+msgstr[1] "Identyfikator użytkownika ,,%s'': %d podpis wyczyszczony\n"
+msgstr[2] "Identyfikator użytkownika ,,%s'': %d podpis wyczyszczony\n"
 
 #, fuzzy, c-format
 #| msgid "1 signature not checked due to a missing key\n"
 msgid "%d signature not checked due to a missing key\n"
 msgid_plural "%d signatures not checked due to missing keys\n"
-msgstr[0] "1 podpis nie zosta³ sprawdzony z powodu braku klucza\n"
-msgstr[1] "1 podpis nie zosta³ sprawdzony z powodu braku klucza\n"
-msgstr[2] "1 podpis nie zosta³ sprawdzony z powodu braku klucza\n"
+msgstr[0] "1 podpis nie został sprawdzony z powodu braku klucza\n"
+msgstr[1] "1 podpis nie został sprawdzony z powodu braku klucza\n"
+msgstr[2] "1 podpis nie został sprawdzony z powodu braku klucza\n"
 
 #, fuzzy, c-format
 #| msgid "%d bad signatures\n"
 msgid "%d bad signature\n"
 msgid_plural "%d bad signatures\n"
-msgstr[0] "%d niepoprawnych podpisów\n"
-msgstr[1] "%d niepoprawnych podpisów\n"
-msgstr[2] "%d niepoprawnych podpisów\n"
+msgstr[0] "%d niepoprawnych podpisów\n"
+msgstr[1] "%d niepoprawnych podpisów\n"
+msgstr[2] "%d niepoprawnych podpisów\n"
 
 #, fuzzy, c-format
 #| msgid "Good signature from"
 msgid "%d signature reordered\n"
 msgid_plural "%d signatures reordered\n"
-msgstr[0] "Poprawny podpis z³o¿ony przez"
-msgstr[1] "Poprawny podpis z³o¿ony przez"
-msgstr[2] "Poprawny podpis z³o¿ony przez"
+msgstr[0] "Poprawny podpis złożony przez"
+msgstr[1] "Poprawny podpis złożony przez"
+msgstr[2] "Poprawny podpis złożony przez"
 
 #, c-format
 msgid ""
@@ -3114,9 +3131,9 @@ msgid ""
 "(by looking at passports, checking fingerprints from different sources, "
 "etc.)\n"
 msgstr ""
-"Zastanów siê jak bardzo ufasz temu u¿ytkownikowi w kwestii sprawdzania\n"
-"to¿samo¶ci innych u¿ytkowników (czy sprawdzi on odciski kluczy pobrane\n"
-"z ró¿nych ¼róde³, dokumenty potwierdzaj±ce to¿samo¶æ, itd.).\n"
+"Zastanów się jak bardzo ufasz temu użytkownikowi w kwestii sprawdzania\n"
+"tożsamości innych użytkowników (czy sprawdzi on odciski kluczy pobrane\n"
+"z różnych źródeł, dokumenty potwierdzające tożsamość, itd.).\n"
 
 #, c-format
 msgid "  %d = I trust marginally\n"
@@ -3124,19 +3141,19 @@ msgstr "  %d = mam ograniczone zaufanie\n"
 
 #, c-format
 msgid "  %d = I trust fully\n"
-msgstr "  %d = mam pe³ne zaufanie\n"
+msgstr "  %d = mam pełne zaufanie\n"
 
 msgid ""
 "Please enter the depth of this trust signature.\n"
 "A depth greater than 1 allows the key you are signing to make\n"
 "trust signatures on your behalf.\n"
 msgstr ""
-"Proszê wpisaæ poziom tego podpisu zaufania.\n"
-"Poziom wy¿szy ni¿ 1 umo¿liwia u¿ywanie podpisywanego w³a¶nie klucza\n"
-"do wykonywania zaufanych podpisów w twoim imieniu.\n"
+"Proszę wpisać poziom tego podpisu zaufania.\n"
+"Poziom wyższy niż 1 umożliwia używanie podpisywanego właśnie klucza\n"
+"do wykonywania zaufanych podpisów w twoim imieniu.\n"
 
 msgid "Please enter a domain to restrict this signature, or enter for none.\n"
-msgstr "Proszê wpisaæ domenê ograniczaj±c± ten podpis lub Enter dla ¿adnej.\n"
+msgstr "Proszę wpisać domenę ograniczającą ten podpis lub Enter dla żadnej.\n"
 
 #, c-format
 msgid "Skipping user ID \"%s\", which is not a text ID.\n"
@@ -3144,17 +3161,17 @@ msgstr ""
 
 #, c-format
 msgid "User ID \"%s\" is revoked."
-msgstr "Identyfikator u¿ytkownika ,,%s'' zosta³ uniewa¿niony."
+msgstr "Identyfikator użytkownika ,,%s'' został unieważniony."
 
 msgid "Are you sure you still want to sign it? (y/N) "
-msgstr "Czy na pewno chcesz podpisaæ? (t/N) "
+msgstr "Czy na pewno chcesz podpisać? (t/N) "
 
 msgid "  Unable to sign.\n"
-msgstr " Nie da siê z³o¿yæ podpisu.\n"
+msgstr " Nie da się złożyć podpisu.\n"
 
 #, c-format
 msgid "User ID \"%s\" is expired."
-msgstr "Identyfikator u¿ytkownika ,,%s'' przekroczy³ swój termin wa¿no¶ci."
+msgstr "Identyfikator użytkownika ,,%s'' przekroczył swój termin ważności."
 
 #, c-format
 msgid "User ID \"%s\" is not self-signed."
@@ -3162,10 +3179,10 @@ msgstr "Identyfikator ,,%s'' nie jest podpisany swoim kluczem."
 
 #, c-format
 msgid "User ID \"%s\" is signable.  "
-msgstr "Identyfikator u¿ytkownika ,,%s'' jest podpisywalny. "
+msgstr "Identyfikator użytkownika ,,%s'' jest podpisywalny. "
 
 msgid "Sign it? (y/N) "
-msgstr "Podpisaæ go? (t/N) "
+msgstr "Podpisać go? (t/N) "
 
 #, c-format
 msgid ""
@@ -3173,67 +3190,67 @@ msgid ""
 "is a PGP 2.x-style signature.\n"
 msgstr ""
 "Podpis klucza nim samym na ,,%s''\n"
-"jest podpisem z³o¿onym przez PGP 2.x.\n"
+"jest podpisem złożonym przez PGP 2.x.\n"
 
 msgid "Do you want to promote it to an OpenPGP self-signature? (y/N) "
-msgstr "Czy chcesz zamieniæ go na podpis OpenPGP? (t/N) "
+msgstr "Czy chcesz zamienić go na podpis OpenPGP? (t/N) "
 
 #, c-format
 msgid ""
 "Your current signature on \"%s\"\n"
 "has expired.\n"
 msgstr ""
-"Twój podpis na ,,%s''\n"
-"przekroczy³ datê wa¿no¶ci.\n"
+"Twój podpis na ,,%s''\n"
+"przekroczył datę ważności.\n"
 
 msgid "Do you want to issue a new signature to replace the expired one? (y/N) "
-msgstr "Czy chcesz zast±piæ przeterminowany podpis nowym? (t/N) "
+msgstr "Czy chcesz zastąpić przeterminowany podpis nowym? (t/N) "
 
 #, c-format
 msgid ""
 "Your current signature on \"%s\"\n"
 "is a local signature.\n"
 msgstr ""
-"Twój podpis na ,,%s''\n"
+"Twój podpis na ,,%s''\n"
 "jest podpisem prywatnym (lokalnym).\n"
 
 msgid "Do you want to promote it to a full exportable signature? (y/N) "
 msgstr ""
-"Czy chcesz zamieniæ go na pe³ny, publiczny, eksportowalny podpis? (t/N) "
+"Czy chcesz zamienić go na pełny, publiczny, eksportowalny podpis? (t/N) "
 
 #, c-format
 msgid "\"%s\" was already locally signed by key %s\n"
-msgstr ",,%s'' jest ju¿ lokalnie podpisany kluczem %s\n"
+msgstr ",,%s'' jest już lokalnie podpisany kluczem %s\n"
 
 #, c-format
 msgid "\"%s\" was already signed by key %s\n"
-msgstr ",,%s'' jest ju¿ podpisany kluczem %s\n"
+msgstr ",,%s'' jest już podpisany kluczem %s\n"
 
 msgid "Do you want to sign it again anyway? (y/N) "
-msgstr "Czy na pewno chcesz to podpisaæ jeszcze raz? (t/N) "
+msgstr "Czy na pewno chcesz to podpisać jeszcze raz? (t/N) "
 
 #, c-format
 msgid "Nothing to sign with key %s\n"
 msgstr "Nie ma nic do podpisania kluczem %s\n"
 
 msgid "This key has expired!"
-msgstr "Data wa¿no¶ci tego klucza up³ynê³a!"
+msgstr "Data ważności tego klucza upłynęła!"
 
 #, c-format
 msgid "This key is due to expire on %s.\n"
-msgstr "Wa¿no¶æ tego klucza wygasa %s.\n"
+msgstr "Ważność tego klucza wygasa %s.\n"
 
 msgid "Do you want your signature to expire at the same time? (Y/n) "
 msgstr ""
-"Czy chcesz ¿eby wa¿no¶æ Twojego podpisu wygasa³a w tej samej chwili? (T/n) "
+"Czy chcesz żeby ważność Twojego podpisu wygasała w tej samej chwili? (T/n) "
 
 msgid ""
 "How carefully have you verified the key you are about to sign actually "
 "belongs\n"
 "to the person named above?  If you don't know what to answer, enter \"0\".\n"
 msgstr ""
-"Jak dok³adnie zosta³a przez Ciebie sprawdzona to¿samo¶æ tej osoby?\n"
-"Je¶li nie wiesz co odpowiedzieæ, podaj ,,0''.\n"
+"Jak dokładnie została przez Ciebie sprawdzona tożsamość tej osoby?\n"
+"Jeśli nie wiesz co odpowiedzieć, podaj ,,0''.\n"
 
 #, c-format
 msgid "   (0) I will not answer.%s\n"
@@ -3241,75 +3258,75 @@ msgstr "   (0) Nie odpowiem na to pytanie. %s\n"
 
 #, c-format
 msgid "   (1) I have not checked at all.%s\n"
-msgstr "   (1) W ogóle nie.%s\n"
+msgstr "   (1) W ogóle nie.%s\n"
 
 #, c-format
 msgid "   (2) I have done casual checking.%s\n"
-msgstr "   (2) Pobie¿nie.%s\n"
+msgstr "   (2) Pobieżnie.%s\n"
 
 #, c-format
 msgid "   (3) I have done very careful checking.%s\n"
-msgstr "   (3) Bardzo dok³adnie.%s\n"
+msgstr "   (3) Bardzo dokładnie.%s\n"
 
 #, fuzzy
 #| msgid "Your selection? (enter `?' for more information): "
 msgid "Your selection? (enter '?' for more information): "
-msgstr "Twój wybór (,,?'' podaje wiêcej informacji): "
+msgstr "Twój wybór (,,?'' podaje więcej informacji): "
 
 #, c-format
 msgid ""
 "Are you sure that you want to sign this key with your\n"
 "key \"%s\" (%s)\n"
 msgstr ""
-"Czy jeste¶ naprawdê pewien, ¿e chcesz podpisaæ ten klucz\n"
+"Czy jesteś naprawdę pewien, że chcesz podpisać ten klucz\n"
 "swoim kluczem ,,%s'' (%s)\n"
 
 msgid "This will be a self-signature.\n"
-msgstr "To bêdzie podpis klucza nim samym.\n"
+msgstr "To będzie podpis klucza nim samym.\n"
 
 msgid "WARNING: the signature will not be marked as non-exportable.\n"
 msgstr ""
-"OSTRZE¯ENIE: podpis nie zostanie oznaczony jako prywatny "
+"OSTRZEŻENIE: podpis nie zostanie oznaczony jako prywatny "
 "(nieeksportowalny).\n"
 
 msgid "WARNING: the signature will not be marked as non-revocable.\n"
 msgstr ""
-"OSTRZE¯ENIE: podpis nie zostanie oznaczony jako nie podlegaj±cy "
-"uniewa¿nieniu.\n"
+"OSTRZEŻENIE: podpis nie zostanie oznaczony jako nie podlegający "
+"unieważnieniu.\n"
 
 msgid "The signature will be marked as non-exportable.\n"
 msgstr "Podpis zostanie oznaczony jako prywatny (nieeksportowalny).\n"
 
 msgid "The signature will be marked as non-revocable.\n"
-msgstr "Podpis zostanie oznaczony jako nie podlegaj±cy uniewa¿nieniu.\n"
+msgstr "Podpis zostanie oznaczony jako nie podlegający unieważnieniu.\n"
 
 msgid "I have not checked this key at all.\n"
-msgstr "To¿samo¶æ u¿ytkownika nie zosta³a w ogóle sprawdzona.\n"
+msgstr "Tożsamość użytkownika nie została w ogóle sprawdzona.\n"
 
 msgid "I have checked this key casually.\n"
-msgstr "To¿samo¶æ u¿ytkownika zosta³a sprawdzona pobie¿nie.\n"
+msgstr "Tożsamość użytkownika została sprawdzona pobieżnie.\n"
 
 msgid "I have checked this key very carefully.\n"
-msgstr "To¿samo¶æ u¿ytkownika zosta³a dok³adnie sprawdzona.\n"
+msgstr "Tożsamość użytkownika została dokładnie sprawdzona.\n"
 
 msgid "Really sign? (y/N) "
-msgstr "Czy na pewno podpisaæ? (t/N) "
+msgstr "Czy na pewno podpisać? (t/N) "
 
 #, c-format
 msgid "signing failed: %s\n"
-msgstr "z³o¿enie podpisu nie powiod³o siê: %s\n"
+msgstr "złożenie podpisu nie powiodło się: %s\n"
 
 msgid "Key has only stub or on-card key items - no passphrase to change.\n"
 msgstr ""
-"Klucz ma tylko za¶lepkê albo elementy na karcie - nie ma has³a do zmiany.\n"
+"Klucz ma tylko zaślepkę albo elementy na karcie - nie ma hasła do zmiany.\n"
 
 #, fuzzy, c-format
 #| msgid "error creating passphrase: %s\n"
 msgid "key %s: error changing passphrase: %s\n"
-msgstr "b³±d podczas tworzenia has³a: %s\n"
+msgstr "błąd podczas tworzenia hasła: %s\n"
 
 msgid "save and quit"
-msgstr "zapis zmian i wyjcie"
+msgstr "zapis zmian i wyjście"
 
 msgid "show key fingerprint"
 msgstr "okazanie odcisku klucza"
@@ -3320,43 +3337,43 @@ msgid "show the keygrip"
 msgstr "Uchwyt klucza: "
 
 msgid "list key and user IDs"
-msgstr "lista kluczy i identyfikatorów u¿ytkownika"
+msgstr "lista kluczy i identyfikatorów użytkownika"
 
 msgid "select user ID N"
-msgstr "wybór identyfikatora u¿ytkownika N"
+msgstr "wybór identyfikatora użytkownika N"
 
 msgid "select subkey N"
-msgstr "wybór podklucza N"
+msgstr "wybór podklucza N"
 
 msgid "check signatures"
-msgstr "sprawdzenie podpisów"
+msgstr "sprawdzenie podpisów"
 
 msgid "sign selected user IDs [* see below for related commands]"
 msgstr ""
-"z³o¿enie podpisu na wybranych identyfikatorach u¿ytkownika [* poni¿ej "
-"powi±zane polecenia]"
+"złożenie podpisu na wybranych identyfikatorach użytkownika [* poniżej "
+"powiązane polecenia]"
 
 msgid "sign selected user IDs locally"
 msgstr ""
-"z³o¿enie prywatnego (lokalnego) podpisu na wybranych identyfikatorach "
-"u¿ytkownika"
+"złożenie prywatnego (lokalnego) podpisu na wybranych identyfikatorach "
+"użytkownika"
 
 msgid "sign selected user IDs with a trust signature"
-msgstr "podpisanie wybranych identyfikatorów u¿ytkownika sygnatur± zaufania"
+msgstr "podpisanie wybranych identyfikatorów użytkownika sygnaturą zaufania"
 
 msgid "sign selected user IDs with a non-revocable signature"
 msgstr ""
-"podpisanie wybranych identyfikatorów u¿ytkownika sygnatur± nie podlegaj±c± "
-"uniewa¿nieniu"
+"podpisanie wybranych identyfikatorów użytkownika sygnaturą nie podlegającą "
+"unieważnieniu"
 
 msgid "add a user ID"
-msgstr "dodanie nowego identyfikatora u¿ytkownika do klucza"
+msgstr "dodanie nowego identyfikatora użytkownika do klucza"
 
 msgid "add a photo ID"
-msgstr "dodanie zdjêcia u¿ytkownika do klucza"
+msgstr "dodanie zdjęcia użytkownika do klucza"
 
 msgid "delete selected user IDs"
-msgstr "usuniêcie wybranych identyfikatorów u¿ytkownika z klucza"
+msgstr "usunięcie wybranych identyfikatorów użytkownika z klucza"
 
 msgid "add a subkey"
 msgstr "dodanie podklucza"
@@ -3365,79 +3382,79 @@ msgid "add a key to a smartcard"
 msgstr "dodanie klucza do karty procesorowej"
 
 msgid "move a key to a smartcard"
-msgstr "przeniesienie klucza na kartê procesorow±"
+msgstr "przeniesienie klucza na kartę procesorową"
 
 msgid "move a backup key to a smartcard"
-msgstr "przeniesienie klucza zapasowego na kartê procesorow±"
+msgstr "przeniesienie klucza zapasowego na kartę procesorową"
 
 msgid "delete selected subkeys"
-msgstr "usuniêcie wybranych podkluczy"
+msgstr "usunięcie wybranych podkluczy"
 
 msgid "add a revocation key"
-msgstr "dodanie klucza uniewa¿niaj±cego"
+msgstr "dodanie klucza unieważniającego"
 
 msgid "delete signatures from the selected user IDs"
-msgstr "usuniêcie podpisów z wybranych identyfikatorów u¿ytkownika"
+msgstr "usunięcie podpisów z wybranych identyfikatorów użytkownika"
 
 msgid "change the expiration date for the key or selected subkeys"
-msgstr "zmiana daty wyga¶niêcia dla klucza lub wybranych podkluczy"
+msgstr "zmiana daty wygaśnięcia dla klucza lub wybranych podkluczy"
 
 msgid "flag the selected user ID as primary"
-msgstr "oznaczenie wybranego identyfikatora u¿ytkownika jako g³ównego"
+msgstr "oznaczenie wybranego identyfikatora użytkownika jako głównego"
 
 msgid "list preferences (expert)"
 msgstr "ustawienia (zaawansowane)"
 
 msgid "list preferences (verbose)"
-msgstr "rozbudowana lista ustawieñ"
+msgstr "rozbudowana lista ustawień"
 
 msgid "set preference list for the selected user IDs"
-msgstr "ustawienie listy preferencji dla wybranych identyfikatorów u¿ytkownika"
+msgstr "ustawienie listy preferencji dla wybranych identyfikatorów użytkownika"
 
 msgid "set the preferred keyserver URL for the selected user IDs"
 msgstr ""
-"ustawienie URL-a preferowanego serwera kluczy dla wybranych identyfikatorów "
-"u¿ytkownika"
+"ustawienie URL-a preferowanego serwera kluczy dla wybranych identyfikatorów "
+"użytkownika"
 
 msgid "set a notation for the selected user IDs"
-msgstr "ustawienie adnotacji dla wybranych identyfikatorów u¿ytkownika"
+msgstr "ustawienie adnotacji dla wybranych identyfikatorów użytkownika"
 
 msgid "change the passphrase"
-msgstr "zmiana has³a klucza"
+msgstr "zmiana hasła klucza"
 
 msgid "change the ownertrust"
-msgstr "zmiana zaufania w³a¶ciciela"
+msgstr "zmiana zaufania właściciela"
 
 msgid "revoke signatures on the selected user IDs"
-msgstr "uniewa¿nienie podpisów na wybranych identyfikatorach u¿ytkownika"
+msgstr "unieważnienie podpisów na wybranych identyfikatorach użytkownika"
 
 msgid "revoke selected user IDs"
-msgstr "uniewa¿nienie wybranych identyfikatorów u¿ytkownika"
+msgstr "unieważnienie wybranych identyfikatorów użytkownika"
 
 msgid "revoke key or selected subkeys"
-msgstr "uniewa¿nienie klucza lub wybranych podkluczy"
+msgstr "unieważnienie klucza lub wybranych podkluczy"
 
 msgid "enable key"
-msgstr "w³±czenie klucza do u¿ycia"
+msgstr "włączenie klucza do użycia"
 
 msgid "disable key"
-msgstr "wy³±czenie klucza z u¿ycia"
+msgstr "wyłączenie klucza z użycia"
 
 msgid "show selected photo IDs"
-msgstr "okazanie wybranych identyfikatorów - zdjêæ"
+msgstr "okazanie wybranych identyfikatorów - zdjęć"
 
 msgid "compact unusable user IDs and remove unusable signatures from key"
 msgstr ""
-"zagêszczanie bezu¿ytecznych ID u¿ytkowników i usuwanie bezu¿ytecznych "
-"podpisów z kluczy"
+"zagęszczanie bezużytecznych ID użytkowników i usuwanie bezużytecznych "
+"podpisów z kluczy"
 
 msgid "compact unusable user IDs and remove all signatures from key"
 msgstr ""
-"zagêszczanie bezu¿ytecznych ID u¿ytkowników i usuwanie wszystkich podpisów z "
+"zagęszczanie bezużytecznych ID użytkowników i usuwanie wszystkich podpisów z "
 "kluczy"
 
 msgid "Secret key is available.\n"
-msgstr "Dostêpny jest klucz tajny.\n"
+msgstr "Dostępny jest klucz tajny.\n"
 
 msgid "Need the secret key to do this.\n"
 msgstr "Do wykonania tej operacji potrzebny jest klucz tajny.\n"
@@ -3455,25 +3472,25 @@ msgid ""
 "  a 't' for trust signatures (tsign), an 'nr' for non-revocable signatures\n"
 "  (nrsign), or any combination thereof (ltsign, tnrsign, etc.).\n"
 msgstr ""
-"* Polecenie `sign' mo¿na poprzedziæ ,,l'' dla lokalnych sygnatur (lsign),\n"
+"* Polecenie `sign' można poprzedzić ,,l'' dla lokalnych sygnatur (lsign),\n"
 "  ,,t'' dla sygnatur zaufania (tsign) albo ,,nr'' dla sygnatur nie\n"
-"  podlegaj±cych uniewa¿nieniu (nrsign), albo dowoln± ich kombinacj± "
+"  podlegających unieważnieniu (nrsign), albo dowolną ich kombinacją "
 "(ltsign,\n"
 "  tnrsign itd.).\n"
 
 msgid "Key is revoked."
-msgstr "Klucz uniewa¿niony."
+msgstr "Klucz unieważniony."
 
 msgid "Really sign all user IDs? (y/N) "
-msgstr "Czy na pewno podpisaæ wszystkie identyfikatory u¿ytkownika? (t/N) "
+msgstr "Czy na pewno podpisać wszystkie identyfikatory użytkownika? (t/N) "
 
 #, fuzzy
 #| msgid "Really sign all user IDs? (y/N) "
 msgid "Really sign all text user IDs? (y/N) "
-msgstr "Czy na pewno podpisaæ wszystkie identyfikatory u¿ytkownika? (t/N) "
+msgstr "Czy na pewno podpisać wszystkie identyfikatory użytkownika? (t/N) "
 
 msgid "Hint: Select the user IDs to sign\n"
-msgstr "Podpowied¼: wybierz identyfikatory u¿ytkownika do podpisania.\n"
+msgstr "Podpowiedź: wybierz identyfikatory użytkownika do podpisania.\n"
 
 #, fuzzy, c-format
 #| msgid "Unknown signature type `%s'\n"
@@ -3482,123 +3499,123 @@ msgstr "Nieznany rodzaj podpisu ,,%s''\n"
 
 #, c-format
 msgid "This command is not allowed while in %s mode.\n"
-msgstr "To polecenie nie jest dostêpne w trybie %s.\n"
+msgstr "To polecenie nie jest dostępne w trybie %s.\n"
 
 msgid "You must select at least one user ID.\n"
-msgstr "Musisz wybraæ co najmniej jeden identyfikator u¿ytkownika.\n"
+msgstr "Musisz wybrać co najmniej jeden identyfikator użytkownika.\n"
 
 #, c-format
 msgid "(Use the '%s' command.)\n"
 msgstr ""
 
 msgid "You can't delete the last user ID!\n"
-msgstr "Nie mo¿esz usun±æ ostatniego identyfikatora u¿ytkownika!\n"
+msgstr "Nie możesz usunąć ostatniego identyfikatora użytkownika!\n"
 
 msgid "Really remove all selected user IDs? (y/N) "
 msgstr ""
-"Czy na pewno usun±æ wszystkie wybrane identyfikatory u¿ytkownika? (t/N) "
+"Czy na pewno usunąć wszystkie wybrane identyfikatory użytkownika? (t/N) "
 
 msgid "Really remove this user ID? (y/N) "
-msgstr "Czy na pewno usun±æ ten identyfikator u¿ytkownika? (t/N) "
+msgstr "Czy na pewno usunąć ten identyfikator użytkownika? (t/N) "
 
 #. TRANSLATORS: Please take care: This is about
 #. moving the key and not about removing it.
 msgid "Really move the primary key? (y/N) "
-msgstr "Czy na pewno przenie¶æ g³ówny klucz (t/N) "
+msgstr "Czy na pewno przenieść główny klucz (t/N) "
 
 msgid "You must select exactly one key.\n"
-msgstr "Musisz wybraæ dok³adnie jeden klucz.\n"
+msgstr "Musisz wybrać dokładnie jeden klucz.\n"
 
 msgid "Command expects a filename argument\n"
-msgstr "Polecenie oczekuje argumentu bêd±cego nazw± pliku\n"
+msgstr "Polecenie oczekuje argumentu będącego nazwą pliku\n"
 
 #, fuzzy, c-format
 #| msgid "Can't open `%s': %s\n"
 msgid "Can't open '%s': %s\n"
-msgstr "Nie mo¿na otworzyæ ,,%s'': %s\n"
+msgstr "Nie można otworzyć ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "Error reading backup key from `%s': %s\n"
 msgid "Error reading backup key from '%s': %s\n"
-msgstr "B³±d podczas odczytu klucza zapasowego z `%s': %s\n"
+msgstr "Błąd podczas odczytu klucza zapasowego z `%s': %s\n"
 
 msgid "You must select at least one key.\n"
-msgstr "Musisz wybraæ co najmniej jeden klucz.\n"
+msgstr "Musisz wybrać co najmniej jeden klucz.\n"
 
 msgid "Do you really want to delete the selected keys? (y/N) "
-msgstr "Czy na pewno chcesz usun±æ wybrane klucze? (t/N) "
+msgstr "Czy na pewno chcesz usunąć wybrane klucze? (t/N) "
 
 msgid "Do you really want to delete this key? (y/N) "
-msgstr "Czy na pewno chcesz usun±æ ten klucz? (t/N) "
+msgstr "Czy na pewno chcesz usunąć ten klucz? (t/N) "
 
 msgid "Really revoke all selected user IDs? (y/N) "
 msgstr ""
-"Czy na pewno uniewa¿niæ wszystkie wybrane identyfikatory u¿ytkownika? (t/N) "
+"Czy na pewno unieważnić wszystkie wybrane identyfikatory użytkownika? (t/N) "
 
 msgid "Really revoke this user ID? (y/N) "
-msgstr "Czy na pewno uniewa¿niæ ten identyfikator u¿ytkownika? (t/N) "
+msgstr "Czy na pewno unieważnić ten identyfikator użytkownika? (t/N) "
 
 msgid "Do you really want to revoke the entire key? (y/N) "
-msgstr "Czy na pewno chcesz uniewa¿niæ ca³y klucz? (t/N) "
+msgstr "Czy na pewno chcesz unieważnić cały klucz? (t/N) "
 
 msgid "Do you really want to revoke the selected subkeys? (y/N) "
-msgstr "Czy na pewno chcesz uniewa¿niæ wybrane podklucze? (t/N) "
+msgstr "Czy na pewno chcesz unieważnić wybrane podklucze? (t/N) "
 
 msgid "Do you really want to revoke this subkey? (y/N) "
-msgstr "Czy na pewno chcesz uniewa¿niæ ten podklucz? (t/N) "
+msgstr "Czy na pewno chcesz unieważnić ten podklucz? (t/N) "
 
 msgid "Owner trust may not be set while using a user provided trust database\n"
 msgstr ""
-"Zaufanie u¿ytkownika nie mo¿e byæ ustawione podczas u¿ywania bazy zaufania\n"
-"dostarczonej przez u¿ytkownika\n"
+"Zaufanie użytkownika nie może być ustawione podczas używania bazy zaufania\n"
+"dostarczonej przez użytkownika\n"
 
 msgid "Set preference list to:\n"
-msgstr "Ustawienie listy ustawieñ na:\n"
+msgstr "Ustawienie listy ustawień na:\n"
 
 msgid "Really update the preferences for the selected user IDs? (y/N) "
 msgstr ""
-"Czy na pewno uaktualniæ ustawienia dla wybranych identyfikatorów? (t/N) "
+"Czy na pewno uaktualnić ustawienia dla wybranych identyfikatorów? (t/N) "
 
 msgid "Really update the preferences? (y/N) "
-msgstr "Czy na pewno uaktualniæ ustawienia? (t/N) "
+msgstr "Czy na pewno uaktualnić ustawienia? (t/N) "
 
 msgid "Save changes? (y/N) "
-msgstr "Zapisaæ zmiany? (t/N) "
+msgstr "Zapisać zmiany? (t/N) "
 
 msgid "Quit without saving? (y/N) "
-msgstr "Wyj¶æ bez zapisania zmian? (t/N) "
+msgstr "Wyjść bez zapisania zmian? (t/N) "
 
 #, c-format
 msgid "update failed: %s\n"
-msgstr "zapis zmian nie powiód³ siê: %s\n"
+msgstr "zapis zmian nie powiódł się: %s\n"
 
 msgid "Key not changed so no update needed.\n"
-msgstr "Klucz nie zosta³ zmieniony wiêc zapis zmian nie jest konieczny.\n"
+msgstr "Klucz nie został zmieniony więc zapis zmian nie jest konieczny.\n"
 
 #, fuzzy, c-format
 #| msgid "Key generation failed: %s\n"
 msgid "User ID revocation failed: %s\n"
-msgstr "Generacja klucza nie powiod³a siê: %s\n"
+msgstr "Generacja klucza nie powiodła się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid fingerprint"
 msgid "\"%s\" is not a fingerprint\n"
-msgstr "niew³a¶ciwy odcisk"
+msgstr "niewłaściwy odcisk"
 
 #, fuzzy, c-format
 #| msgid "failed to get the fingerprint\n"
 msgid "\"%s\" is not the primary fingerprint\n"
-msgstr "nie uda³o siê pobraæ odcisku\n"
+msgstr "nie udało się pobrać odcisku\n"
 
 #, fuzzy, c-format
 #| msgid "invalid value\n"
 msgid "Invalid user ID '%s': %s\n"
-msgstr "niepoprawna warto¶æ\n"
+msgstr "niepoprawna wartość\n"
 
 #, fuzzy
 #| msgid "No such user ID.\n"
 msgid "No matching user IDs."
-msgstr "Brak takiego identyfikatora u¿ytkownika.\n"
+msgstr "Brak takiego identyfikatora użytkownika.\n"
 
 #, fuzzy
 #| msgid "Nothing to sign with key %s\n"
@@ -3606,7 +3623,7 @@ msgid "Nothing to sign.\n"
 msgstr "Nie ma nic do podpisania kluczem %s\n"
 
 msgid "Digest: "
-msgstr "Skrót: "
+msgstr "Skrót: "
 
 msgid "Features: "
 msgstr "Ustawienia: "
@@ -3621,15 +3638,15 @@ msgid "Notations: "
 msgstr "Adnotacje: "
 
 msgid "There are no preferences on a PGP 2.x-style user ID.\n"
-msgstr "Klucze PGP 2.x nie zawieraj± opisu ustawieñ.\n"
+msgstr "Klucze PGP 2.x nie zawierają opisu ustawień.\n"
 
 #, c-format
 msgid "The following key was revoked on %s by %s key %s\n"
-msgstr "Ten klucz zosta³ uniewa¿niony %s przez klucz u¿ytkownika %s %s\n"
+msgstr "Ten klucz został unieważniony %s przez klucz użytkownika %s %s\n"
 
 #, c-format
 msgid "This key may be revoked by %s key %s"
-msgstr "Klucz mo¿e zostaæ uniewa¿niony przez klucz %s u¿ytkownika %s"
+msgstr "Klucz może zostać unieważniony przez klucz %s użytkownika %s"
 
 msgid "(sensitive)"
 msgstr "(poufne)"
@@ -3640,11 +3657,11 @@ msgstr "utworzono: %s"
 
 #, c-format
 msgid "revoked: %s"
-msgstr "uniewa¿niono: %s"
+msgstr "unieważniono: %s"
 
 #, c-format
 msgid "expired: %s"
-msgstr "wygas³: %s"
+msgstr "wygasł: %s"
 
 #, c-format
 msgid "expires: %s"
@@ -3652,7 +3669,7 @@ msgstr "wygasa: %s"
 
 #, c-format
 msgid "usage: %s"
-msgstr "u¿ycie: %s"
+msgstr "użycie: %s"
 
 msgid "card-no: "
 msgstr "nr-karty: "
@@ -3663,31 +3680,31 @@ msgstr "zaufanie: %s"
 
 #, c-format
 msgid "validity: %s"
-msgstr "poprawno¶æ: %s"
+msgstr "poprawność: %s"
 
 msgid "This key has been disabled"
-msgstr "Ten klucz zosta³ wy³±czony z u¿ytku"
+msgstr "Ten klucz został wyłączony z użytku"
 
 msgid ""
 "Please note that the shown key validity is not necessarily correct\n"
 "unless you restart the program.\n"
 msgstr ""
-"Pokazana warto¶æ wiarygodno¶ci klucza mo¿e byæ niepoprawna,\n"
-"dopóki program nie zostanie uruchomiony ponownie.\n"
+"Pokazana wartość wiarygodności klucza może być niepoprawna,\n"
+"dopóki program nie zostanie uruchomiony ponownie.\n"
 
 msgid "revoked"
-msgstr "uniewa¿niony"
+msgstr "unieważniony"
 
 msgid "expired"
-msgstr "wygas³"
+msgstr "wygasł"
 
 msgid ""
 "WARNING: no user ID has been marked as primary.  This command may\n"
 "              cause a different user ID to become the assumed primary.\n"
 msgstr ""
-"OSTRZE¯ENIE: ¿aden identyfikator u¿ytkownika nie zosta³ oznaczony explicite\n"
-"             jako g³ówny. Wykonanie tego polecenie mo¿e wiêc spowodowaæ\n"
-"             wy¶wietlanie innego identyfikatora jako domy¶lnego g³ównego.\n"
+"OSTRZEŻENIE: żaden identyfikator użytkownika nie został oznaczony explicite\n"
+"             jako główny. Wykonanie tego polecenie może więc spowodować\n"
+"             wyświetlanie innego identyfikatora jako domyślnego głównego.\n"
 
 msgid "WARNING: Your encryption subkey expires soon.\n"
 msgstr ""
@@ -3695,102 +3712,102 @@ msgstr ""
 #, fuzzy
 #| msgid "You can't change the expiration date of a v3 key\n"
 msgid "You may want to change its expiration date too.\n"
-msgstr "Nie mo¿na zmieniæ daty wa¿no¶ci klucza w wersji 3.\n"
+msgstr "Nie można zmienić daty ważności klucza w wersji 3.\n"
 
 msgid ""
 "WARNING: This is a PGP2-style key.  Adding a photo ID may cause some "
 "versions\n"
 "         of PGP to reject this key.\n"
 msgstr ""
-"OSTRZE¯ENIE: To jest klucz PGP wersji 2. Dodanie zdjêcia spowoduje, ¿e\n"
-"             niektóre wersje przestan± go rozumieæ.\n"
+"OSTRZEŻENIE: To jest klucz PGP wersji 2. Dodanie zdjęcia spowoduje, że\n"
+"             niektóre wersje przestaną go rozumieć.\n"
 
 msgid "Are you sure you still want to add it? (y/N) "
-msgstr "Czy dalej chcesz je dodaæ? (t/N) "
+msgstr "Czy dalej chcesz je dodać? (t/N) "
 
 msgid "You may not add a photo ID to a PGP2-style key.\n"
-msgstr "Do klucza dla PGP 2.x nie mo¿na dodaæ zdjêcia.\n"
+msgstr "Do klucza dla PGP 2.x nie można dodać zdjęcia.\n"
 
 msgid "Such a user ID already exists on this key!\n"
-msgstr "Taki identyfikator u¿ytkownika ju¿ istnieje na tym kluczu!\n"
+msgstr "Taki identyfikator użytkownika już istnieje na tym kluczu!\n"
 
 msgid "Delete this good signature? (y/N/q)"
-msgstr "Usun±æ ten poprawny podpis? (t/N/w) "
+msgstr "Usunąć ten poprawny podpis? (t/N/w) "
 
 msgid "Delete this invalid signature? (y/N/q)"
-msgstr "Usun±æ ten niepoprawny podpis? (t/N/w) "
+msgstr "Usunąć ten niepoprawny podpis? (t/N/w) "
 
 msgid "Delete this unknown signature? (y/N/q)"
-msgstr "Usun±æ ten nieznany podpis? (t/N/w) "
+msgstr "Usunąć ten nieznany podpis? (t/N/w) "
 
 msgid "Really delete this self-signature? (y/N)"
-msgstr "Na pewno usun±æ ten podpis klucza nim samym? (t/N) "
+msgstr "Na pewno usunąć ten podpis klucza nim samym? (t/N) "
 
 #, fuzzy, c-format
 #| msgid "Deleted %d signature.\n"
 msgid "Deleted %d signature.\n"
 msgid_plural "Deleted %d signatures.\n"
-msgstr[0] "%d podpis usuniêty.\n"
-msgstr[1] "%d podpis usuniêty.\n"
-msgstr[2] "%d podpis usuniêty.\n"
+msgstr[0] "%d podpis usunięty.\n"
+msgstr[1] "%d podpis usunięty.\n"
+msgstr[2] "%d podpis usunięty.\n"
 
 msgid "Nothing deleted.\n"
-msgstr "Nic nie zosta³o usuniête.\n"
+msgstr "Nic nie zostało usunięte.\n"
 
 msgid "invalid"
 msgstr "niepoprawny"
 
 #, c-format
 msgid "User ID \"%s\" compacted: %s\n"
-msgstr "Identyfikator u¿ytkownika ,,%s'' upakowany: %s\n"
+msgstr "Identyfikator użytkownika ,,%s'' upakowany: %s\n"
 
 #, fuzzy, c-format
 #| msgid "User ID \"%s\": %d signature removed\n"
 msgid "User ID \"%s\": %d signature removed\n"
 msgid_plural "User ID \"%s\": %d signatures removed\n"
-msgstr[0] "Identyfikator u¿ytkownika ,,%s'': %d podpis wyczyszczony\n"
-msgstr[1] "Identyfikator u¿ytkownika ,,%s'': %d podpis wyczyszczony\n"
-msgstr[2] "Identyfikator u¿ytkownika ,,%s'': %d podpis wyczyszczony\n"
+msgstr[0] "Identyfikator użytkownika ,,%s'': %d podpis wyczyszczony\n"
+msgstr[1] "Identyfikator użytkownika ,,%s'': %d podpis wyczyszczony\n"
+msgstr[2] "Identyfikator użytkownika ,,%s'': %d podpis wyczyszczony\n"
 
 #, c-format
 msgid "User ID \"%s\": already minimized\n"
-msgstr "Identyfikator u¿ytkownika ,,%s'': ju¿ zmniejszony.\n"
+msgstr "Identyfikator użytkownika ,,%s'': już zmniejszony.\n"
 
 #, c-format
 msgid "User ID \"%s\": already clean\n"
-msgstr "Identyfikator u¿ytkownika ,,%s'': ju¿ czysty.\n"
+msgstr "Identyfikator użytkownika ,,%s'': już czysty.\n"
 
 msgid ""
 "WARNING: This is a PGP 2.x-style key.  Adding a designated revoker may "
 "cause\n"
 "         some versions of PGP to reject this key.\n"
 msgstr ""
-"OSTRZE¯ENIE: To jest klucz PGP wersji 2.x. Wyznaczenie mu klucza\n"
-"             uniewa¿niaj±cego spowoduje, ¿e niektóre wersje PGP przestan±\n"
-"             go rozumieæ.\n"
+"OSTRZEŻENIE: To jest klucz PGP wersji 2.x. Wyznaczenie mu klucza\n"
+"             unieważniającego spowoduje, że niektóre wersje PGP przestaną\n"
+"             go rozumieć.\n"
 
 msgid "You may not add a designated revoker to a PGP 2.x-style key.\n"
-msgstr "Do klucza dla PGP 2.x nie mo¿na wyznaczyæ klucza uniewa¿niaj±cego.\n"
+msgstr "Do klucza dla PGP 2.x nie można wyznaczyć klucza unieważniającego.\n"
 
 msgid "Enter the user ID of the designated revoker: "
-msgstr "Podaj identyfikator klucza uniewa¿niaj±cego: "
+msgstr "Podaj identyfikator klucza unieważniającego: "
 
 msgid "cannot appoint a PGP 2.x style key as a designated revoker\n"
-msgstr "klucza PGP 2.x nie mo¿na wyznaczyæ jako uniewa¿niaj±cego\n"
+msgstr "klucza PGP 2.x nie można wyznaczyć jako unieważniającego\n"
 
 msgid "you cannot appoint a key as its own designated revoker\n"
-msgstr "nie mo¿na wyznaczyæ klucza do uniewa¿niania jego samego\n"
+msgstr "nie można wyznaczyć klucza do unieważniania jego samego\n"
 
 msgid "this key has already been designated as a revoker\n"
-msgstr "ten klucz zosta³ ju¿ uznany kluczem uniewa¿niaj±cym\n"
+msgstr "ten klucz został już uznany kluczem unieważniającym\n"
 
 msgid "WARNING: appointing a key as a designated revoker cannot be undone!\n"
 msgstr ""
-"OSTRZE¯ENIE: nie mo¿na cofn±æ wyznaczenia klucza jako uniewa¿niaj±cego!\n"
+"OSTRZEŻENIE: nie można cofnąć wyznaczenia klucza jako unieważniającego!\n"
 
 msgid ""
 "Are you sure you want to appoint this key as a designated revoker? (y/N) "
-msgstr "Czy na pewno chcesz wyznaczyæ ten klucz jako uniewa¿niaj±cy? (t/N) "
+msgstr "Czy na pewno chcesz wyznaczyć ten klucz jako unieważniający? (t/N) "
 
 #, fuzzy
 #| msgid ""
@@ -3798,55 +3815,55 @@ msgstr "Czy na pewno chcesz wyznaczy
 msgid ""
 "Are you sure you want to change the expiration time for multiple subkeys? (y/"
 "N) "
-msgstr "Czy na pewno chcesz wyznaczyæ ten klucz jako uniewa¿niaj±cy? (t/N) "
+msgstr "Czy na pewno chcesz wyznaczyć ten klucz jako unieważniający? (t/N) "
 
 msgid "Changing expiration time for a subkey.\n"
-msgstr "Zmiana daty wa¿no¶ci podklucza.\n"
+msgstr "Zmiana daty ważności podklucza.\n"
 
 msgid "Changing expiration time for the primary key.\n"
-msgstr "Zmiana daty wa¿no¶ci g³ównego klucza.\n"
+msgstr "Zmiana daty ważności głównego klucza.\n"
 
 msgid "You can't change the expiration date of a v3 key\n"
-msgstr "Nie mo¿na zmieniæ daty wa¿no¶ci klucza w wersji 3.\n"
+msgstr "Nie można zmienić daty ważności klucza w wersji 3.\n"
 
 #, c-format
 msgid "signing subkey %s is already cross-certified\n"
-msgstr "podklucz podpisuj±cy %s jest ju¿ skro¶nie podpisany\n"
+msgstr "podklucz podpisujący %s jest już skrośnie podpisany\n"
 
 #, c-format
 msgid "subkey %s does not sign and so does not need to be cross-certified\n"
 msgstr ""
-"podklucz %s nie jest podpisuj±cy, wiêc nie musi byæ skro¶nie podpisany\n"
+"podklucz %s nie jest podpisujący, więc nie musi być skrośnie podpisany\n"
 
 msgid "Please select exactly one user ID.\n"
-msgstr "Proszê wybraæ dok³adnie jeden identyfikator u¿ytkownika.\n"
+msgstr "Proszę wybrać dokładnie jeden identyfikator użytkownika.\n"
 
 #, c-format
 msgid "skipping v3 self-signature on user ID \"%s\"\n"
-msgstr "podpis w wersji 3 na identyfikatorze ,,%s'' zostaje pominiêty\n"
+msgstr "podpis w wersji 3 na identyfikatorze ,,%s'' zostaje pominięty\n"
 
 msgid "Enter your preferred keyserver URL: "
 msgstr "Podaj preferowany URL serwera kluczy: "
 
 msgid "Are you sure you want to replace it? (y/N) "
-msgstr "Czy na pewno chcesz go zast±piæ? (t/N) "
+msgstr "Czy na pewno chcesz go zastąpić? (t/N) "
 
 msgid "Are you sure you want to delete it? (y/N) "
-msgstr "Czy na pewno chcesz go usun±æ? (t/N) "
+msgstr "Czy na pewno chcesz go usunąć? (t/N) "
 
 msgid "Enter the notation: "
 msgstr "Adnotacje: "
 
 msgid "Proceed? (y/N) "
-msgstr "Kontynuowaæ? (t/N) "
+msgstr "Kontynuować? (t/N) "
 
 #, c-format
 msgid "No user ID with index %d\n"
-msgstr "Brak identyfikatora u¿ytkownika o numerze %d.\n"
+msgstr "Brak identyfikatora użytkownika o numerze %d.\n"
 
 #, c-format
 msgid "No user ID with hash %s\n"
-msgstr "Brak identyfikatora u¿ytkownika o skrócie %s\n"
+msgstr "Brak identyfikatora użytkownika o skrócie %s\n"
 
 #, fuzzy, c-format
 #| msgid "No subkey with index %d\n"
@@ -3859,7 +3876,7 @@ msgstr "Brak podklucza o numerze %d.\n"
 
 #, c-format
 msgid "user ID: \"%s\"\n"
-msgstr "identyfikator u¿ytkownika: ,,%s''\n"
+msgstr "identyfikator użytkownika: ,,%s''\n"
 
 #, c-format
 msgid "signed by your key %s on %s%s%s\n"
@@ -3870,33 +3887,33 @@ msgstr " (podpis nieeksportowalny) "
 
 #, c-format
 msgid "This signature expired on %s.\n"
-msgstr "Wa¿no¶æ tego klucza wygas³a %s.\n"
+msgstr "Ważność tego klucza wygasła %s.\n"
 
 msgid "Are you sure you still want to revoke it? (y/N) "
-msgstr "Czy dalej chcesz go uniewa¿niæ? (t/N) "
+msgstr "Czy dalej chcesz go unieważnić? (t/N) "
 
 msgid "Create a revocation certificate for this signature? (y/N) "
-msgstr "Stworzyæ certyfikat uniewa¿nienia tego podpisu? (t/N) "
+msgstr "Stworzyć certyfikat unieważnienia tego podpisu? (t/N) "
 
 msgid "Not signed by you.\n"
 msgstr "Nie podpisane przez ciebie.\n"
 
 #, c-format
 msgid "You have signed these user IDs on key %s:\n"
-msgstr "Te identyfikatory na kluczu %s s± podpisane przez Ciebie:\n"
+msgstr "Te identyfikatory na kluczu %s są podpisane przez Ciebie:\n"
 
 msgid " (non-revocable)"
-msgstr " (podpis nieuniewa¿nialny) "
+msgstr " (podpis nieunieważnialny) "
 
 #, c-format
 msgid "revoked by your key %s on %s\n"
-msgstr "uniewa¿niony przez twój klucz %s w %s\n"
+msgstr "unieważniony przez twój klucz %s w %s\n"
 
 msgid "You are about to revoke these signatures:\n"
-msgstr "Czy na pewno chcesz uniewa¿niæ te podpisy:\n"
+msgstr "Czy na pewno chcesz unieważnić te podpisy:\n"
 
 msgid "Really create the revocation certificates? (y/N) "
-msgstr "Na pewno utworzyæ certyfikaty uniewa¿nienia ? (t/N) "
+msgstr "Na pewno utworzyć certyfikaty unieważnienia ? (t/N) "
 
 msgid "no secret key\n"
 msgstr "brak klucza tajnego\n"
@@ -3907,69 +3924,69 @@ msgstr ""
 
 #, c-format
 msgid "user ID \"%s\" is already revoked\n"
-msgstr "identyfikator u¿ytkownika ,,%s'' zosta³ ju¿ uniewa¿niony\n"
+msgstr "identyfikator użytkownika ,,%s'' został już unieważniony\n"
 
 #, c-format
 msgid "WARNING: a user ID signature is dated %d seconds in the future\n"
 msgstr ""
-"OSTRZE¯ENIE: identyfikator u¿ytkownika podpisany za %d sekund (w "
-"przysz³o¶ci)\n"
+"OSTRZEŻENIE: identyfikator użytkownika podpisany za %d sekund (w "
+"przyszłości)\n"
 
 #, c-format
 msgid "Key %s is already revoked.\n"
-msgstr "Klucz %s jest ju¿ uniewa¿niony.\n"
+msgstr "Klucz %s jest już unieważniony.\n"
 
 #, c-format
 msgid "Subkey %s is already revoked.\n"
-msgstr "Podklucz %s jest ju¿ uniewa¿niony.\n"
+msgstr "Podklucz %s jest już unieważniony.\n"
 
 #, c-format
 msgid "Displaying %s photo ID of size %ld for key %s (uid %d)\n"
 msgstr ""
-"Wy¶wietlanie zdjêcia w formacie %s o rozmiarze %ld bajtów dla klucza %s (id "
+"Wyświetlanie zdjęcia w formacie %s o rozmiarze %ld bajtów dla klucza %s (id "
 "%d).\n"
 
 #, fuzzy, c-format
 #| msgid "preference `%s' duplicated\n"
 msgid "preference '%s' duplicated\n"
-msgstr "ustawienie ,,%s'' powtarza siê\n"
+msgstr "ustawienie ,,%s'' powtarza się\n"
 
 msgid "too many cipher preferences\n"
-msgstr "zbyt wiele ustawieñ szyfru\n"
+msgstr "zbyt wiele ustawień szyfru\n"
 
 msgid "too many digest preferences\n"
-msgstr "zbyt wiele ustawieñ funkcji skrótu\n"
+msgstr "zbyt wiele ustawień funkcji skrótu\n"
 
 msgid "too many compression preferences\n"
-msgstr "zbyt wiele ustawieñ kompresji\n"
+msgstr "zbyt wiele ustawień kompresji\n"
 
 #, fuzzy, c-format
 #| msgid "invalid item `%s' in preference string\n"
 msgid "invalid item '%s' in preference string\n"
-msgstr "niew³a¶ciwy element `%s' w tek¶cie ustawieñ\n"
+msgstr "niewłaściwy element `%s' w tekście ustawień\n"
 
 msgid "writing direct signature\n"
-msgstr "zapis podpisu bezporedniego\n"
+msgstr "zapis podpisu bezpośredniego\n"
 
 msgid "writing self signature\n"
 msgstr "zapis podpisu klucza nim samym\n"
 
 msgid "writing key binding signature\n"
-msgstr "zapis podpisu wi±¿±cego klucz\n"
+msgstr "zapis podpisu wiążącego klucz\n"
 
 #, c-format
 msgid "keysize invalid; using %u bits\n"
-msgstr "niew³a¶ciwa d³ugo¶æ klucza; wykorzystano %u bitów\n"
+msgstr "niewłaściwa długość klucza; wykorzystano %u bitów\n"
 
 #, c-format
 msgid "keysize rounded up to %u bits\n"
-msgstr "rozmiar klucza zaokr±glony w górê do %u bitów\n"
+msgstr "rozmiar klucza zaokrąglony w górę do %u bitów\n"
 
 msgid ""
 "WARNING: some OpenPGP programs can't handle a DSA key with this digest size\n"
 msgstr ""
-"OSTRZE¯ENIE: niektóre programy OpenPGP nie potrafi± obs³u¿yæ klucza RSA o "
-"tej d³ugo¶ci skrótu\n"
+"OSTRZEŻENIE: niektóre programy OpenPGP nie potrafią obsłużyć klucza RSA o "
+"tej długości skrótu\n"
 
 msgid "Sign"
 msgstr "Podpisywanie"
@@ -3998,33 +4015,33 @@ msgstr "PpSsUuZz"
 
 #, c-format
 msgid "Possible actions for a %s key: "
-msgstr "Mo¿liwe akcje dla klucza %s: "
+msgstr "Możliwe akcje dla klucza %s: "
 
 msgid "Current allowed actions: "
 msgstr "Aktualnie dopuszczalne akcje: "
 
 #, c-format
 msgid "   (%c) Toggle the sign capability\n"
-msgstr "   (%c) Prze³±czenie mo¿liwo¶ci podpisywania\n"
+msgstr "   (%c) Przełączenie możliwości podpisywania\n"
 
 #, c-format
 msgid "   (%c) Toggle the encrypt capability\n"
-msgstr "   (%c) Prze³±czenie mo¿liwo¶ci szyfrowania\n"
+msgstr "   (%c) Przełączenie możliwości szyfrowania\n"
 
 #, c-format
 msgid "   (%c) Toggle the authenticate capability\n"
-msgstr "   (%c) Prze³±czenie mo¿liwo¶ci uwierzytelniania\n"
+msgstr "   (%c) Przełączenie możliwości uwierzytelniania\n"
 
 #, c-format
 msgid "   (%c) Finished\n"
-msgstr "   (%c) Zakoñczenie\n"
+msgstr "   (%c) Zakończenie\n"
 
 msgid "Please select what kind of key you want:\n"
-msgstr "Proszê wybraæ rodzaj klucza:\n"
+msgstr "Proszę wybrać rodzaj klucza:\n"
 
 #, c-format
 msgid "   (%d) RSA and RSA (default)\n"
-msgstr "   (%d) RSA i RSA (domylne)\n"
+msgstr "   (%d) RSA i RSA (domyślne)\n"
 
 #, c-format
 msgid "   (%d) DSA and Elgamal\n"
@@ -4048,11 +4065,11 @@ msgstr "   (%d) RSA (tylko do szyfrowania)\n"
 
 #, c-format
 msgid "   (%d) DSA (set your own capabilities)\n"
-msgstr "   (%d) DSA (mo¿liwo¶ci do ustawienia)\n"
+msgstr "   (%d) DSA (możliwości do ustawienia)\n"
 
 #, c-format
 msgid "   (%d) RSA (set your own capabilities)\n"
-msgstr "   (%d) RSA (mo¿liwo¶ci do ustawienia)\n"
+msgstr "   (%d) RSA (możliwości do ustawienia)\n"
 
 #, fuzzy, c-format
 #| msgid "   (%d) DSA and Elgamal\n"
@@ -4067,7 +4084,7 @@ msgstr "   (%d) DSA (tylko do podpisywania)\n"
 #, fuzzy, c-format
 #| msgid "   (%d) DSA (set your own capabilities)\n"
 msgid "  (%d) ECC (set your own capabilities)\n"
-msgstr "   (%d) DSA (mo¿liwo¶ci do ustawienia)\n"
+msgstr "   (%d) DSA (możliwości do ustawienia)\n"
 
 #, fuzzy, c-format
 #| msgid "   (%d) RSA (encrypt only)\n"
@@ -4077,13 +4094,13 @@ msgstr "   (%d) RSA (tylko do szyfrowania)\n"
 #, fuzzy, c-format
 #| msgid "   (%d) Existing key\n"
 msgid "  (%d) Existing key\n"
-msgstr "   (%d) Istniej±cy klucz\n"
+msgstr "   (%d) Istniejący klucz\n"
 
 msgid "Enter the keygrip: "
 msgstr "Uchwyt klucza: "
 
 msgid "Not a valid keygrip (expecting 40 hex digits)\n"
-msgstr "Nieprawid³owy uchwyt klucza (oczekiwano 40 cyfr szesnastkowych)\n"
+msgstr "Nieprawidłowy uchwyt klucza (oczekiwano 40 cyfr szesnastkowych)\n"
 
 msgid "No key with this keygrip\n"
 msgstr "Brak klucza o tym uchwycie\n"
@@ -4091,28 +4108,28 @@ msgstr "Brak klucza o tym uchwycie\n"
 #, fuzzy, c-format
 #| msgid "rounded up to %u bits\n"
 msgid "rounded to %u bits\n"
-msgstr "zaokr±glono do %u bitów\n"
+msgstr "zaokrąglono do %u bitów\n"
 
 #, c-format
 msgid "%s keys may be between %u and %u bits long.\n"
-msgstr "Klucze %s bêd± mia³y od %u do %u bitów d³ugo¶ci.\n"
+msgstr "Klucze %s będą miały od %u do %u bitów długości.\n"
 
 #, c-format
 msgid "What keysize do you want for the subkey? (%u) "
-msgstr "Jakiej d³ugo¶ci podklucz wygenerowaæ? (%u) "
+msgstr "Jakiej długości podklucz wygenerować? (%u) "
 
 #, c-format
 msgid "What keysize do you want? (%u) "
-msgstr "Jakiej d³ugo¶ci klucz wygenerowaæ? (%u) "
+msgstr "Jakiej długości klucz wygenerować? (%u) "
 
 #, c-format
 msgid "Requested keysize is %u bits\n"
-msgstr "¯±dana d³ugo¶æ klucza to %u bitów.\n"
+msgstr "Żądana długość klucza to %u bitów.\n"
 
 #, fuzzy
 #| msgid "Please select what kind of key you want:\n"
 msgid "Please select which elliptic curve you want:\n"
-msgstr "Proszê wybraæ rodzaj klucza:\n"
+msgstr "Proszę wybrać rodzaj klucza:\n"
 
 msgid ""
 "Please specify how long the key should be valid.\n"
@@ -4122,12 +4139,12 @@ msgid ""
 "      <n>m = key expires in n months\n"
 "      <n>y = key expires in n years\n"
 msgstr ""
-"Okres wa¿no¶ci klucza.\n"
-"         0 = klucz nie ma okre¶lonego terminu wa¿no¶ci\n"
-"      <n>  = termin wa¿no¶ci klucza up³ywa za n dni\n"
-"      <n>w = termin wa¿no¶ci klucza up³ywa za n tygodni\n"
-"      <n>m = termin wa¿no¶ci klucza up³ywa za n miesiêcy\n"
-"      <n>y = termin wa¿no¶ci klucza up³ywa za n lat\n"
+"Okres ważności klucza.\n"
+"         0 = klucz nie ma określonego terminu ważności\n"
+"      <n>  = termin ważności klucza upływa za n dni\n"
+"      <n>w = termin ważności klucza upływa za n tygodni\n"
+"      <n>m = termin ważności klucza upływa za n miesięcy\n"
+"      <n>y = termin ważności klucza upływa za n lat\n"
 
 msgid ""
 "Please specify how long the signature should be valid.\n"
@@ -4137,46 +4154,46 @@ msgid ""
 "      <n>m = signature expires in n months\n"
 "      <n>y = signature expires in n years\n"
 msgstr ""
-"Okres wa¿no¶ci podpisu.\n"
-"         0 = klucz nie ma okre¶lonego terminu wa¿no¶ci\n"
-"      <n>  = termin wa¿no¶ci podpisu up³ywa za n dni\n"
-"      <n>w = termin wa¿no¶ci podpisu up³ywa za n tygodni\n"
-"      <n>m = termin wa¿no¶ci podpisu up³ywa za n miesiêcy\n"
-"      <n>y = termin wa¿no¶ci podpisu up³ywa za n lat\n"
+"Okres ważności podpisu.\n"
+"         0 = klucz nie ma określonego terminu ważności\n"
+"      <n>  = termin ważności podpisu upływa za n dni\n"
+"      <n>w = termin ważności podpisu upływa za n tygodni\n"
+"      <n>m = termin ważności podpisu upływa za n miesięcy\n"
+"      <n>y = termin ważności podpisu upływa za n lat\n"
 
 msgid "Key is valid for? (0) "
-msgstr "Okres wa¿no¶ci klucza? (0) "
+msgstr "Okres ważności klucza? (0) "
 
 #, c-format
 msgid "Signature is valid for? (%s) "
-msgstr "Okres wa¿no¶ci podpisu? (%s) "
+msgstr "Okres ważności podpisu? (%s) "
 
 msgid "invalid value\n"
-msgstr "niepoprawna warto¶æ\n"
+msgstr "niepoprawna wartość\n"
 
 msgid "Key does not expire at all\n"
-msgstr "Klucz nie wyga¶nie w ogóle\n"
+msgstr "Klucz nie wygaśnie w ogóle\n"
 
 msgid "Signature does not expire at all\n"
-msgstr "Podpis nie wyga¶nie w ogóle\n"
+msgstr "Podpis nie wygaśnie w ogóle\n"
 
 #, c-format
 msgid "Key expires at %s\n"
-msgstr "Klucz traci wa¿no¶æ %s\n"
+msgstr "Klucz traci ważność %s\n"
 
 #, c-format
 msgid "Signature expires at %s\n"
-msgstr "Wa¿no¶æ podpisu wygasa %s\n"
+msgstr "Ważność podpisu wygasa %s\n"
 
 msgid ""
 "Your system can't display dates beyond 2038.\n"
 "However, it will be correctly handled up to 2106.\n"
 msgstr ""
-"Twój system nie potrafi pokazaæ daty po roku 2038.\n"
-"Niemniej daty do roku 2106 bêd± poprawnie obs³ugiwane.\n"
+"Twój system nie potrafi pokazać daty po roku 2038.\n"
+"Niemniej daty do roku 2106 będą poprawnie obsługiwane.\n"
 
 msgid "Is this correct? (y/N) "
-msgstr "Czy wszystko siê zgadza (t/N)? "
+msgstr "Czy wszystko się zgadza (t/N)? "
 
 msgid ""
 "\n"
@@ -4184,7 +4201,7 @@ msgid ""
 "\n"
 msgstr ""
 "\n"
-"GnuPG musi utworzyæ identyfikator u¿ytkownika do identyfikacji klucza.\n"
+"GnuPG musi utworzyć identyfikator użytkownika do identyfikacji klucza.\n"
 "\n"
 
 #. TRANSLATORS: This string is in general not anymore used
@@ -4200,27 +4217,27 @@ msgid ""
 "\n"
 msgstr ""
 "\n"
-"Musisz podaæ identyfikator u¿ytkownika aby mo¿na by³o rozpoznaæ twój klucz;\n"
-"program z³o¿y go z twojego imienia i nazwiska, komentarza i adresu poczty\n"
-"elektronicznej. Bêdzie on mia³, na przyk³ad, tak± postaæ:\n"
-"    \"Tadeusz ¯eleñski (Boy) <tzb@ziemianska.pl>\"\n"
+"Musisz podać identyfikator użytkownika aby można było rozpoznać twój klucz;\n"
+"program złoży go z twojego imienia i nazwiska, komentarza i adresu poczty\n"
+"elektronicznej. Będzie on miał, na przykład, taką postać:\n"
+"    \"Tadeusz Żeleński (Boy) <tzb@ziemianska.pl>\"\n"
 "\n"
 
 msgid "Real name: "
-msgstr "Imiê i nazwisko: "
+msgstr "Imię i nazwisko: "
 
 msgid "Invalid character in name\n"
-msgstr "Niew³a¶ciwy znak w imieniu lub nazwisku\n"
+msgstr "Niewłaściwy znak w imieniu lub nazwisku\n"
 
 #, c-format
 msgid "The characters '%s' and '%s' may not appear in name\n"
 msgstr ""
 
 msgid "Name may not start with a digit\n"
-msgstr "Imiê lub nazwisko nie mo¿e zaczynaæ siê od cyfry\n"
+msgstr "Imię lub nazwisko nie może zaczynać się od cyfry\n"
 
 msgid "Name must be at least 5 characters long\n"
-msgstr "Imiê i nazwisko musz± mieæ co najmniej 5 znaków d³ugo¶ci.\n"
+msgstr "Imię i nazwisko muszą mieć co najmniej 5 znaków długości.\n"
 
 msgid "Email address: "
 msgstr "Adres poczty elektronicznej: "
@@ -4232,12 +4249,12 @@ msgid "Comment: "
 msgstr "Komentarz: "
 
 msgid "Invalid character in comment\n"
-msgstr "Niew³a¶ciwy znak w komentarzu\n"
+msgstr "Niewłaściwy znak w komentarzu\n"
 
 #, fuzzy, c-format
 #| msgid "You are using the `%s' character set.\n"
 msgid "You are using the '%s' character set.\n"
-msgstr "U¿ywasz zestawu znaków %s.\n"
+msgstr "Używasz zestawu znaków %s.\n"
 
 #, c-format
 msgid ""
@@ -4245,13 +4262,13 @@ msgid ""
 "    \"%s\"\n"
 "\n"
 msgstr ""
-"Twój identyfikator u¿ytkownika bêdzie wygl±da³ tak:\n"
+"Twój identyfikator użytkownika będzie wyglądał tak:\n"
 "    \"%s\"\n"
 "\n"
 
 msgid "Please don't put the email address into the real name or the comment\n"
 msgstr ""
-"Nie nale¿y umieszczaæ adresu poczty elektronicznej w polu nazwiska czy\n"
+"Nie należy umieszczać adresu poczty elektronicznej w polu nazwiska czy\n"
 "komentarza.\n"
 
 #. TRANSLATORS: These are the allowed answers in
@@ -4269,27 +4286,27 @@ msgid "NnCcEeOoQq"
 msgstr "IiKkEeDdWw"
 
 msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
-msgstr "Zmieniæ (I)miê/nazwisko, (K)omentarz, adres (E)mail, czy (W)yj¶æ? "
+msgstr "Zmienić (I)mię/nazwisko, (K)omentarz, adres (E)mail, czy (W)yjść? "
 
 msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
 msgstr ""
-"Zmieniæ (I)miê/nazwisko, (K)omentarz, adres (E)mail, przej¶æ (D)alej,\n"
-"czy (W)yj¶æ z programu? "
+"Zmienić (I)mię/nazwisko, (K)omentarz, adres (E)mail, przejść (D)alej,\n"
+"czy (W)yjść z programu? "
 
 #, fuzzy
 #| msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
 msgid "Change (N)ame, (E)mail, or (Q)uit? "
-msgstr "Zmieniæ (I)miê/nazwisko, (K)omentarz, adres (E)mail, czy (W)yj¶æ? "
+msgstr "Zmienić (I)mię/nazwisko, (K)omentarz, adres (E)mail, czy (W)yjść? "
 
 #, fuzzy
 #| msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
 msgid "Change (N)ame, (E)mail, or (O)kay/(Q)uit? "
 msgstr ""
-"Zmieniæ (I)miê/nazwisko, (K)omentarz, adres (E)mail, przej¶æ (D)alej,\n"
-"czy (W)yj¶æ z programu? "
+"Zmienić (I)mię/nazwisko, (K)omentarz, adres (E)mail, przejść (D)alej,\n"
+"czy (W)yjść z programu? "
 
 msgid "Please correct the error first\n"
-msgstr "Najpierw trzeba poprawiæ ten b³±d\n"
+msgstr "Najpierw trzeba poprawić ten błąd\n"
 
 msgid ""
 "We need to generate a lot of random bytes. It is a good idea to perform\n"
@@ -4297,18 +4314,18 @@ msgid ""
 "disks) during the prime generation; this gives the random number\n"
 "generator a better chance to gain enough entropy.\n"
 msgstr ""
-"Musimy wygenerowaæ du¿o losowych bajtów. Dobrym pomys³em aby pomóc "
+"Musimy wygenerować dużo losowych bajtów. Dobrym pomysłem aby pomóc "
 "komputerowi\n"
 "podczas generowania liczb pierwszych jest wykonywanie w tym czasie innych\n"
-"dzia³añ (pisanie na klawiaturze, poruszanie myszk±, odwo³anie siê do "
-"dysków);\n"
-"dziêki temu generator liczb losowych ma mo¿liwo¶æ zebrania odpowiedniej "
-"iloci\n"
+"działań (pisanie na klawiaturze, poruszanie myszką, odwołanie się do "
+"dysków);\n"
+"dzięki temu generator liczb losowych ma możliwość zebrania odpowiedniej "
+"ilości\n"
 "entropii.\n"
 
 #, c-format
 msgid "Key generation failed: %s\n"
-msgstr "Generacja klucza nie powiod³a siê: %s\n"
+msgstr "Generacja klucza nie powiodła się: %s\n"
 
 #, c-format
 msgid ""
@@ -4323,12 +4340,12 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "key already exists\n"
 msgid "A key for \"%s\" already exists\n"
-msgstr "klucz ju¿ istnieje\n"
+msgstr "klucz już istnieje\n"
 
 #, fuzzy
 #| msgid "Use this key anyway? (y/N) "
 msgid "Create anyway? (y/N) "
-msgstr "U¿yæ tego klucza pomimo to? (t/N) "
+msgstr "Użyć tego klucza pomimo to? (t/N) "
 
 #, fuzzy
 #| msgid "generating new key\n"
@@ -4340,12 +4357,12 @@ msgid "Note: Use \"%s %s\" for a full featured key generation dialog.\n"
 msgstr ""
 
 msgid "Key generation canceled.\n"
-msgstr "Procedura generacji klucza zosta³a anulowana.\n"
+msgstr "Procedura generacji klucza została anulowana.\n"
 
 #, fuzzy, c-format
 #| msgid "can't create backup file `%s': %s\n"
 msgid "can't create backup file '%s': %s\n"
-msgstr "nie mo¿na utworzyæ pliku kopii zapasowej ,,%s'': %s\n"
+msgstr "nie można utworzyć pliku kopii zapasowej ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "NOTE: backup of card key saved to `%s'\n"
@@ -4355,7 +4372,7 @@ msgstr "UWAGA: kopia zapasowa klucza karty zapisana do ,,%s''\n"
 #, fuzzy, c-format
 #| msgid "writing public key to `%s'\n"
 msgid "writing public key to '%s'\n"
-msgstr "zapisujê klucz publiczny w ,,%s''\n"
+msgstr "zapisuję klucz publiczny w ,,%s''\n"
 
 #, c-format
 msgid "no writable public keyring found: %s\n"
@@ -4364,31 +4381,31 @@ msgstr "brak zapisywalnego zbioru kluczy publicznych: %s\n"
 #, fuzzy, c-format
 #| msgid "error writing public keyring `%s': %s\n"
 msgid "error writing public keyring '%s': %s\n"
-msgstr "b³±d podczas zapisu zbioru kluczy publicznych ,,%s'': %s\n"
+msgstr "błąd podczas zapisu zbioru kluczy publicznych ,,%s'': %s\n"
 
 msgid "public and secret key created and signed.\n"
-msgstr "klucz publiczny i prywatny (tajny) zosta³y utworzone i podpisane.\n"
+msgstr "klucz publiczny i prywatny (tajny) zostały utworzone i podpisane.\n"
 
 msgid ""
 "Note that this key cannot be used for encryption.  You may want to use\n"
 "the command \"--edit-key\" to generate a subkey for this purpose.\n"
 msgstr ""
-"Ten klucz nie mo¿e byæ wykorzystany do szyfrowania. Komend± \"--edit-key\"\n"
-"mo¿na dodaæ do niego podklucz szyfruj±cy.\n"
+"Ten klucz nie może być wykorzystany do szyfrowania. Komendą \"--edit-key\"\n"
+"można dodać do niego podklucz szyfrujący.\n"
 
 #, c-format
 msgid ""
 "key has been created %lu second in future (time warp or clock problem)\n"
 msgstr ""
-"klucz zosta³ stworzony %lu sekundê w przysz³o¶ci (zaburzenia\n"
-"czasoprzestrzeni, lub ¼le ustawiony zegar systemowy)\n"
+"klucz został stworzony %lu sekundę w przyszłości (zaburzenia\n"
+"czasoprzestrzeni, lub źle ustawiony zegar systemowy)\n"
 
 #, c-format
 msgid ""
 "key has been created %lu seconds in future (time warp or clock problem)\n"
 msgstr ""
-"klucz zosta³ stworzony %lu sekund w przysz³o¶ci (zaburzenia\n"
-"czasoprzestrzeni, lub ¼le ustawiony zegar systemowy)\n"
+"klucz został stworzony %lu sekund w przyszłości (zaburzenia\n"
+"czasoprzestrzeni, lub źle ustawiony zegar systemowy)\n"
 
 #, fuzzy
 #| msgid "NOTE: creating subkeys for v3 keys is not OpenPGP compliant\n"
@@ -4397,13 +4414,13 @@ msgstr ""
 "UWAGA: tworzenie podkluczy dla kluczy wersji 3 jest niezgodne z OpenPGP.\n"
 
 msgid "Secret parts of primary key are not available.\n"
-msgstr "Czê¶æ tajna g³ównego klucza jest niedostêpna.\n"
+msgstr "Część tajna głównego klucza jest niedostępna.\n"
 
 msgid "Secret parts of primary key are stored on-card.\n"
-msgstr "Czê¶æ tajna g³ównego klucza jest zapisana na karcie.\n"
+msgstr "Część tajna głównego klucza jest zapisana na karcie.\n"
 
 msgid "Really create? (y/N) "
-msgstr "Czy na pewno utworzyæ? (t/N) "
+msgstr "Czy na pewno utworzyć? (t/N) "
 
 msgid "never     "
 msgstr "nigdy     "
@@ -4427,17 +4444,17 @@ msgstr "Adnotacje podpisu: "
 #| msgid "%d bad signatures\n"
 msgid "%d good signature\n"
 msgid_plural "%d good signatures\n"
-msgstr[0] "%d niepoprawnych podpisów\n"
-msgstr[1] "%d niepoprawnych podpisów\n"
-msgstr[2] "%d niepoprawnych podpisów\n"
+msgstr[0] "%d niepoprawnych podpisów\n"
+msgstr[1] "%d niepoprawnych podpisów\n"
+msgstr[2] "%d niepoprawnych podpisów\n"
 
 #, fuzzy, c-format
 #| msgid "1 signature not checked due to an error\n"
 msgid "%d signature not checked due to an error\n"
 msgid_plural "%d signatures not checked due to errors\n"
-msgstr[0] "1 podpis nie zosta³ sprawdzony z powodu b³êdu\n"
-msgstr[1] "1 podpis nie zosta³ sprawdzony z powodu b³êdu\n"
-msgstr[2] "1 podpis nie zosta³ sprawdzony z powodu b³êdu\n"
+msgstr[0] "1 podpis nie został sprawdzony z powodu błędu\n"
+msgstr[1] "1 podpis nie został sprawdzony z powodu błędu\n"
+msgstr[2] "1 podpis nie został sprawdzony z powodu błędu\n"
 
 #, c-format
 msgid "Warning: %lu key skipped due to its large size\n"
@@ -4447,10 +4464,10 @@ msgstr[1] ""
 msgstr[2] ""
 
 msgid "Keyring"
-msgstr "Zbiór kluczy"
+msgstr "Zbiór kluczy"
 
 msgid "Primary key fingerprint:"
-msgstr "Odcisk klucza g³ównego:"
+msgstr "Odcisk klucza głównego:"
 
 msgid "     Subkey fingerprint:"
 msgstr "      Odcisk podklucza:"
@@ -4458,7 +4475,7 @@ msgstr "      Odcisk podklucza:"
 #. TRANSLATORS: this should fit into 24 bytes so that the
 #. * fingerprint data is properly aligned with the user ID
 msgid " Primary key fingerprint:"
-msgstr " Odcisk klucza g³ównego:"
+msgstr " Odcisk klucza głównego:"
 
 msgid "      Subkey fingerprint:"
 msgstr "       Odcisk podklucza:"
@@ -4478,9 +4495,9 @@ msgstr "buforowanie zbioru kluczy ,,%s''\n"
 #| msgid "%lu keys cached so far (%lu signatures)\n"
 msgid "%lu keys cached so far (%lu signature)\n"
 msgid_plural "%lu keys cached so far (%lu signatures)\n"
-msgstr[0] "%lu kluczy zbuforowano do tej pory (%lu podpisów)\n"
-msgstr[1] "%lu kluczy zbuforowano do tej pory (%lu podpisów)\n"
-msgstr[2] "%lu kluczy zbuforowano do tej pory (%lu podpisów)\n"
+msgstr[0] "%lu kluczy zbuforowano do tej pory (%lu podpisów)\n"
+msgstr[1] "%lu kluczy zbuforowano do tej pory (%lu podpisów)\n"
+msgstr[2] "%lu kluczy zbuforowano do tej pory (%lu podpisów)\n"
 
 #, c-format
 msgid "%lu key cached"
@@ -4499,22 +4516,22 @@ msgstr[2] "1 niepoprawny podpis\n"
 
 #, c-format
 msgid "%s: keyring created\n"
-msgstr "%s: zbiór kluczy utworzony\n"
+msgstr "%s: zbiór kluczy utworzony\n"
 
 msgid "override proxy options set for dirmngr"
 msgstr ""
 
 msgid "include revoked keys in search results"
-msgstr "w³±czenie uniewa¿nionych kluczy do wyników wyszukiwania"
+msgstr "włączenie unieważnionych kluczy do wyników wyszukiwania"
 
 msgid "include subkeys when searching by key ID"
-msgstr "w³±czenie podkluczy przy poszukiwaniu po ID klucza"
+msgstr "włączenie podkluczy przy poszukiwaniu po ID klucza"
 
 msgid "override timeout options set for dirmngr"
 msgstr ""
 
 msgid "automatically retrieve keys when verifying signatures"
-msgstr "automatyczne pobieranie kluczy przy sprawdzaniu podpisów"
+msgstr "automatyczne pobieranie kluczy przy sprawdzaniu podpisów"
 
 msgid "honor the preferred keyserver URL set on the key"
 msgstr "honorowanie URL-a preferowanego serwera kluczy ustawionego w kluczu"
@@ -4523,40 +4540,40 @@ msgid "honor the PKA record set on a key when retrieving keys"
 msgstr "honorowanie rekordu PKA ustawionego w kluczu przy pobieraniu kluczy"
 
 msgid "disabled"
-msgstr "wy³±czony"
+msgstr "wyłączony"
 
 msgid "Enter number(s), N)ext, or Q)uit > "
-msgstr "Wprowad¼ numer(y), N)astêpny lub Q)uit > "
+msgstr "Wprowadź numer(y), N)astępny lub Q)uit > "
 
 #, c-format
 msgid "invalid keyserver protocol (us %d!=handler %d)\n"
-msgstr "niepoprawny protokó³ serwera kluczy (nasz %d != modu³ obs³ugi %d)\n"
+msgstr "niepoprawny protokół serwera kluczy (nasz %d != moduł obsługi %d)\n"
 
 #, c-format
 msgid "\"%s\" not a key ID: skipping\n"
-msgstr ",,%s'' nie jest identyfikatorem klucza - pominiêto\n"
+msgstr ",,%s'' nie jest identyfikatorem klucza - pominięto\n"
 
 #, fuzzy, c-format
 #| msgid "refreshing %d keys from %s\n"
 msgid "refreshing %d key from %s\n"
 msgid_plural "refreshing %d keys from %s\n"
-msgstr[0] "od¶wie¿anie %d kluczy z %s\n"
-msgstr[1] "od¶wie¿anie %d kluczy z %s\n"
-msgstr[2] "od¶wie¿anie %d kluczy z %s\n"
+msgstr[0] "odświeżanie %d kluczy z %s\n"
+msgstr[1] "odświeżanie %d kluczy z %s\n"
+msgstr[2] "odświeżanie %d kluczy z %s\n"
 
 #, c-format
 msgid "WARNING: unable to refresh key %s via %s: %s\n"
-msgstr "OSTRZE¯ENIE: nie mo¿na od¶wie¿yæ klucza %s przez %s: %s\n"
+msgstr "OSTRZEŻENIE: nie można odświeżyć klucza %s przez %s: %s\n"
 
 #, c-format
 msgid "key \"%s\" not found on keyserver\n"
-msgstr "klucz ,,%s'' nie zosta³ odnaleziony na serwerze kluczy\n"
+msgstr "klucz ,,%s'' nie został odnaleziony na serwerze kluczy\n"
 
 msgid "key not found on keyserver\n"
-msgstr "klucz nie zosta³ odnaleziony na serwerze kluczy\n"
+msgstr "klucz nie został odnaleziony na serwerze kluczy\n"
 
 msgid "no keyserver known (use option --keyserver)\n"
-msgstr "brak znanyk serwerów kluczy (u¿yj opcji --keyserver)\n"
+msgstr "brak znanyk serwerów kluczy (użyj opcji --keyserver)\n"
 
 #, c-format
 msgid "requesting key %s from %s server %s\n"
@@ -4573,11 +4590,11 @@ msgstr "brak akcji serwera kluczy!\n"
 
 #, c-format
 msgid "skipped \"%s\": %s\n"
-msgstr "pominiêty ,,%s'': %s\n"
+msgstr "pominięty ,,%s'': %s\n"
 
 #, c-format
 msgid "sending key %s to %s\n"
-msgstr "wysy³anie klucza %s na %s\n"
+msgstr "wysyłanie klucza %s na %s\n"
 
 #, fuzzy, c-format
 #| msgid "requesting key %s from %s\n"
@@ -4586,7 +4603,7 @@ msgstr "zapytanie o klucz %s z %s\n"
 
 #, c-format
 msgid "WARNING: unable to fetch URI %s: %s\n"
-msgstr "OSTRZE¯ENIE: nie mo¿na pobraæ URI %s: %s\n"
+msgstr "OSTRZEŻENIE: nie można pobrać URI %s: %s\n"
 
 #, c-format
 msgid "weird size for an encrypted session key (%d)\n"
@@ -4598,7 +4615,7 @@ msgstr "klucz sesyjny zaszyfrowany %s\n"
 
 #, c-format
 msgid "passphrase generated with unknown digest algorithm %d\n"
-msgstr "has³o wygenerowane nieznanym algorytmem skrótu %d\n"
+msgstr "hasło wygenerowane nieznanym algorytmem skrótu %d\n"
 
 #, c-format
 msgid "public key is %s\n"
@@ -4622,72 +4639,72 @@ msgstr "zaszyfrowano kluczem %s o identyfikatorze %s\n"
 
 #, c-format
 msgid "public key decryption failed: %s\n"
-msgstr "b³±d odszyfrowywania kluczem publicznym: %s\n"
+msgstr "błąd odszyfrowywania kluczem publicznym: %s\n"
 
 #, c-format
 msgid "encrypted with %lu passphrases\n"
-msgstr "zaszyfrowane za pomoc± %lu hase³\n"
+msgstr "zaszyfrowane za pomocą %lu haseł\n"
 
 msgid "encrypted with 1 passphrase\n"
-msgstr "zaszyfrowane jednym has³em\n"
+msgstr "zaszyfrowane jednym hasłem\n"
 
 #, c-format
 msgid "assuming %s encrypted data\n"
-msgstr "przyjmuj±c ¿e dane zosta³y zaszyfrowane za pomoc± %s\n"
+msgstr "przyjmując że dane zostały zaszyfrowane za pomocą %s\n"
 
 #, c-format
 msgid "IDEA cipher unavailable, optimistically attempting to use %s instead\n"
-msgstr "szyfr IDEA nie jest dostêpny, próba u¿ycia %s zamiast niego\n"
+msgstr "szyfr IDEA nie jest dostępny, próba użycia %s zamiast niego\n"
 
 msgid "WARNING: message was not integrity protected\n"
-msgstr "OSTRZE¯ENIE: wiadomo¶æ nie by³a zabezpieczona przed manipulacj±\n"
+msgstr "OSTRZEŻENIE: wiadomość nie była zabezpieczona przed manipulacją\n"
 
 msgid "decryption okay\n"
 msgstr "odszyfrowanie poprawne\n"
 
 msgid "WARNING: encrypted message has been manipulated!\n"
-msgstr "OSTRZE¯ENIE: zaszyfrowana wiadomo¶æ by³a manipulowana!\n"
+msgstr "OSTRZEŻENIE: zaszyfrowana wiadomość była manipulowana!\n"
 
 #, c-format
 msgid "decryption failed: %s\n"
-msgstr "b³±d odszyfrowywania: %s\n"
+msgstr "błąd odszyfrowywania: %s\n"
 
 #, fuzzy
 #| msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
 msgid "Note: sender requested \"for-your-eyes-only\"\n"
-msgstr "UWAGA: nadawca zaznaczy³ ¿e wiadomo¶æ nie powinna byæ zapisywana\n"
+msgstr "UWAGA: nadawca zaznaczył że wiadomość nie powinna być zapisywana\n"
 
 #, c-format
 msgid "original file name='%.*s'\n"
 msgstr "pierwotna nazwa pliku='%.*s'\n"
 
 msgid "WARNING: multiple plaintexts seen\n"
-msgstr "OSTRZE¯ENIE: widziano wiele czystych tekstów\n"
+msgstr "OSTRZEŻENIE: widziano wiele czystych tekstów\n"
 
 msgid "standalone revocation - use \"gpg --import\" to apply\n"
 msgstr ""
-"osobny certyfikat uniewa¿nienia - u¿yj ,,gpg --import'' aby go wczytaæ\n"
+"osobny certyfikat unieważnienia - użyj ,,gpg --import'' aby go wczytać\n"
 
 msgid "no signature found\n"
 msgstr "nie znaleziono podpisu\n"
 
 #, c-format
 msgid "BAD signature from \"%s\""
-msgstr "NIEPOPRAWNY podpis z³o¿ony przez ,,%s''"
+msgstr "NIEPOPRAWNY podpis złożony przez ,,%s''"
 
 #, c-format
 msgid "Expired signature from \"%s\""
-msgstr "Przeterminowany podpis z³o¿ony przez ,,%s''"
+msgstr "Przeterminowany podpis złożony przez ,,%s''"
 
 #, c-format
 msgid "Good signature from \"%s\""
-msgstr "Poprawny podpis z³o¿ony przez ,,%s''"
+msgstr "Poprawny podpis złożony przez ,,%s''"
 
 msgid "signature verification suppressed\n"
-msgstr "wymuszono pominiêcie sprawdzenia podpisu\n"
+msgstr "wymuszono pominięcie sprawdzenia podpisu\n"
 
 msgid "can't handle this ambiguous signature data\n"
-msgstr "nie mo¿na obs³u¿yæ tych wieloznacznych danych podpisu\n"
+msgstr "nie można obsłużyć tych wieloznacznych danych podpisu\n"
 
 #, c-format
 msgid "Signature made %s\n"
@@ -4695,7 +4712,7 @@ msgstr "Podpisano w %s\n"
 
 #, c-format
 msgid "               using %s key %s\n"
-msgstr "               przy u¿yciu klucza %s %s\n"
+msgstr "               przy użyciu klucza %s %s\n"
 
 #, c-format
 msgid "Signature made %s using %s key ID %s\n"
@@ -4707,7 +4724,7 @@ msgid "               issuer \"%s\"\n"
 msgstr "                        alias ,,%s''"
 
 msgid "Key available at: "
-msgstr "Klucz dostêpny w: "
+msgstr "Klucz dostępny w: "
 
 msgid "[uncertain]"
 msgstr "[niepewne]"
@@ -4718,16 +4735,16 @@ msgstr "                        alias ,,%s''"
 
 #, c-format
 msgid "Signature expired %s\n"
-msgstr "Wa¿no¶æ podpisu wygas³a %s.\n"
+msgstr "Ważność podpisu wygasła %s.\n"
 
 #, c-format
 msgid "Signature expires %s\n"
-msgstr "Wa¿no¶æ podpisu wygasa %s.\n"
+msgstr "Ważność podpisu wygasa %s.\n"
 
 #, fuzzy, c-format
 #| msgid "%s signature, digest algorithm %s\n"
 msgid "%s signature, digest algorithm %s%s%s\n"
-msgstr "podpis %s, skrót %s\n"
+msgstr "podpis %s, skrót %s\n"
 
 msgid "binary"
 msgstr "binarny"
@@ -4749,7 +4766,7 @@ msgstr ""
 
 #, c-format
 msgid "Can't check signature: %s\n"
-msgstr "Nie mo¿na sprawdziæ podpisu: %s\n"
+msgstr "Nie można sprawdzić podpisu: %s\n"
 
 msgid "not a detached signature\n"
 msgstr "nie jest oddzielonym podpisem.\n"
@@ -4757,7 +4774,7 @@ msgstr "nie jest oddzielonym podpisem.\n"
 msgid ""
 "WARNING: multiple signatures detected.  Only the first will be checked.\n"
 msgstr ""
-"OSTRZE¯ENIE: wielokrotne podpisy. Tylko pierwszy zostanie sprawdzony.\n"
+"OSTRZEŻENIE: wielokrotne podpisy. Tylko pierwszy zostanie sprawdzony.\n"
 
 #, c-format
 msgid "standalone signature of class 0x%02x\n"
@@ -4769,78 +4786,78 @@ msgstr "podpis starego typu (PGP 2.x).\n"
 #, fuzzy, c-format
 #| msgid "fstat of `%s' failed in %s: %s\n"
 msgid "fstat of '%s' failed in %s: %s\n"
-msgstr "fstat na ,,%s'' nie powiod³o siê w %s: %s\n"
+msgstr "fstat na ,,%s'' nie powiodło się w %s: %s\n"
 
 #, c-format
 msgid "fstat(%d) failed in %s: %s\n"
-msgstr "fstat(%d) nie powiod³o siê w %s: %s\n"
+msgstr "fstat(%d) nie powiodło się w %s: %s\n"
 
 #, c-format
 msgid "WARNING: using experimental public key algorithm %s\n"
 msgstr ""
-"OSTRZE¯ENIE: u¿ycie eksperymentalnego algorytmu klucza publicznego %s\n"
+"OSTRZEŻENIE: użycie eksperymentalnego algorytmu klucza publicznego %s\n"
 
 msgid "WARNING: Elgamal sign+encrypt keys are deprecated\n"
 msgstr ""
-"OSTRZE¯ENIE: klucze do podpisywania i szyfrowania Elgamala s± odradzane\n"
+"OSTRZEŻENIE: klucze do podpisywania i szyfrowania Elgamala są odradzane\n"
 
 #, c-format
 msgid "WARNING: using experimental cipher algorithm %s\n"
-msgstr "OSTRZE¯ENIE: u¿ycie eksperymentalnego szyfru %s\n"
+msgstr "OSTRZEŻENIE: użycie eksperymentalnego szyfru %s\n"
 
 #, c-format
 msgid "WARNING: using experimental digest algorithm %s\n"
-msgstr "OSTRZE¯ENIE: u¿ycie eksperymentalnego algorytmu skrótu %s\n"
+msgstr "OSTRZEŻENIE: użycie eksperymentalnego algorytmu skrótu %s\n"
 
 #, c-format
 msgid "WARNING: digest algorithm %s is deprecated\n"
-msgstr "OSTRZE¯ENIE: algorytm skrótu %s jest odradzany\n"
+msgstr "OSTRZEŻENIE: algorytm skrótu %s jest odradzany\n"
 
 #, fuzzy, c-format
 #| msgid "%s signature, digest algorithm %s\n"
 msgid "Note: signatures using the %s algorithm are rejected\n"
-msgstr "podpis %s, skrót %s\n"
+msgstr "podpis %s, skrót %s\n"
 
 #, fuzzy, c-format
 #| msgid "read error in `%s': %s\n"
 msgid "(reported error: %s)\n"
-msgstr "b³±d odczytu w ,,%s'': %s\n"
+msgstr "błąd odczytu w ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "read error in `%s': %s\n"
 msgid "(reported error: %s <%s>)\n"
-msgstr "b³±d odczytu w ,,%s'': %s\n"
+msgstr "błąd odczytu w ,,%s'': %s\n"
 
 msgid "(further info: "
 msgstr ""
 
 #, c-format
 msgid "%s:%d: deprecated option \"%s\"\n"
-msgstr "%s:%d jest przestarza³± opcj± ,,%s''\n"
+msgstr "%s:%d jest przestarzałą opcją ,,%s''\n"
 
 #, c-format
 msgid "WARNING: \"%s\" is a deprecated option\n"
-msgstr "OSTRZE¯ENIE: ,,%s'' jest przestarza³± opcj±.\n"
+msgstr "OSTRZEŻENIE: ,,%s'' jest przestarzałą opcją.\n"
 
 #, c-format
 msgid "please use \"%s%s\" instead\n"
-msgstr "w jej miejsce nale¿y u¿yæ ,,%s%s''\n"
+msgstr "w jej miejsce należy użyć ,,%s%s''\n"
 
 #, c-format
 msgid "WARNING: \"%s\" is a deprecated command - do not use it\n"
 msgstr ""
-"OSTRZE¯ENIE: ,,%s'' jest przestarza³ym poleceniem - nie nale¿y go u¿ywaæ\n"
+"OSTRZEŻENIE: ,,%s'' jest przestarzałym poleceniem - nie należy go używać\n"
 
 #, fuzzy, c-format
 #| msgid "%s:%u: obsolete option \"%s\" - it has no effect\n"
 msgid "%s:%u: \"%s\" is obsolete in this file - it only has effect in %s\n"
-msgstr "%s:%u: przestarza³a opcja ,,%s'' - nie ma efektu\n"
+msgstr "%s:%u: przestarzała opcja ,,%s'' - nie ma efektu\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: \"%s\" is an obsolete option - it has no effect\n"
 msgid ""
 "WARNING: \"%s%s\" is an obsolete option - it has no effect except on %s\n"
-msgstr "OSTRZE¯ENIE: ,,%s'' jest przestarza³± opcj± - nie ma efektu\n"
+msgstr "OSTRZEŻENIE: ,,%s'' jest przestarzałą opcją - nie ma efektu\n"
 
 msgid "Uncompressed"
 msgstr "Nieskompresowany"
@@ -4851,7 +4868,7 @@ msgstr "nieskompresowany|brak"
 
 #, c-format
 msgid "this message may not be usable by %s\n"
-msgstr "ta wiadomo¶æ mo¿e nie daæ siê odczytaæ za pomoc± %s\n"
+msgstr "ta wiadomość może nie dać się odczytać za pomocą %s\n"
 
 #, fuzzy, c-format
 #| msgid "ambiguous option `%s'\n"
@@ -4866,7 +4883,7 @@ msgstr "nieznana opcja ,,%s''\n"
 #, fuzzy
 #| msgid "DSA requires the hash length to be a multiple of 8 bits\n"
 msgid "ECDSA public key is expected to be in SEC encoding multiple of 8 bits\n"
-msgstr "DSA wymaga d³ugo¶ci skrótu bêd±cego wielokrotno¶ci± 8 bitów\n"
+msgstr "DSA wymaga długości skrótu będącego wielokrotnością 8 bitów\n"
 
 #, fuzzy, c-format
 #| msgid "Unknown signature type `%s'\n"
@@ -4876,43 +4893,43 @@ msgstr "Nieznany rodzaj podpisu ,,%s''\n"
 #, fuzzy, c-format
 #| msgid "File `%s' exists. "
 msgid "File '%s' exists. "
-msgstr "Plik ,,%s'' ju¿ istnieje. "
+msgstr "Plik ,,%s'' już istnieje. "
 
 msgid "Overwrite? (y/N) "
-msgstr "Nadpisaæ? (t/N) "
+msgstr "Nadpisać? (t/N) "
 
 #, c-format
 msgid "%s: unknown suffix\n"
-msgstr "%s: nieznana koñcówka nazwy\n"
+msgstr "%s: nieznana końcówka nazwy\n"
 
 msgid "Enter new filename"
 msgstr "Nazwa pliku"
 
 msgid "writing to stdout\n"
-msgstr "zapisywanie na wyjcie standardowe\n"
+msgstr "zapisywanie na wyjście standardowe\n"
 
 #, fuzzy, c-format
 #| msgid "assuming signed data in `%s'\n"
 msgid "assuming signed data in '%s'\n"
-msgstr "przyjêto obecno¶æ podpisanych danych w '%s'\n"
+msgstr "przyjęto obecność podpisanych danych w '%s'\n"
 
 #, fuzzy, c-format
 #| msgid "new configuration file `%s' created\n"
 msgid "new configuration file '%s' created\n"
-msgstr "nowy plik ustawieñ ,,%s'' zosta³ utworzony\n"
+msgstr "nowy plik ustawień ,,%s'' został utworzony\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: options in `%s' are not yet active during this run\n"
 msgid "WARNING: options in '%s' are not yet active during this run\n"
-msgstr "OSTRZE¯ENIE: opcje w ,,%s'' nie s± jeszcze uwzglêdnione.\n"
+msgstr "OSTRZEŻENIE: opcje w ,,%s'' nie są jeszcze uwzględnione.\n"
 
 #, c-format
 msgid "can't handle public key algorithm %d\n"
-msgstr "nie mo¿na obs³u¿yæ tego algorytmu klucza publicznego: %d\n"
+msgstr "nie można obsłużyć tego algorytmu klucza publicznego: %d\n"
 
 msgid "WARNING: potentially insecure symmetrically encrypted session key\n"
 msgstr ""
-"OSTRZE¯ENIE: symetrycznie zaszyfrowany klucz sesyjny mo¿e nie byæ "
+"OSTRZEŻENIE: symetrycznie zaszyfrowany klucz sesyjny może nie być "
 "bezpieczny\n"
 
 #, c-format
@@ -4924,44 +4941,44 @@ msgid "problem with the agent: %s\n"
 msgstr "problem z agentem: %s\n"
 
 msgid "Enter passphrase\n"
-msgstr "Has³o\n"
+msgstr "Hasło\n"
 
 msgid "cancelled by user\n"
-msgstr "anulowano przez u¿ytkownika\n"
+msgstr "anulowano przez użytkownika\n"
 
 #, c-format
 msgid " (main key ID %s)"
-msgstr " (ID g³ównego klucza %s)"
+msgstr " (ID głównego klucza %s)"
 
 #, fuzzy
 #| msgid "Please enter the passphrase to unprotect the PKCS#12 object."
 msgid "Please enter the passphrase to unlock the OpenPGP secret key:"
-msgstr "Proszê wprowadziæ has³o do odbezpieczenia obiektu PKCS#12."
+msgstr "Proszę wprowadzić hasło do odbezpieczenia obiektu PKCS#12."
 
 #, fuzzy
 #| msgid "Please enter the passphrase to protect the new PKCS#12 object."
 msgid "Please enter the passphrase to import the OpenPGP secret key:"
-msgstr "Proszê wprowadziæ has³o do zabezpieczenia obiektu PKCS#12."
+msgstr "Proszę wprowadzić hasło do zabezpieczenia obiektu PKCS#12."
 
 #, fuzzy
 #| msgid "Please enter the passphrase to protect the new PKCS#12 object."
 msgid "Please enter the passphrase to export the OpenPGP secret subkey:"
-msgstr "Proszê wprowadziæ has³o do zabezpieczenia obiektu PKCS#12."
+msgstr "Proszę wprowadzić hasło do zabezpieczenia obiektu PKCS#12."
 
 #, fuzzy
 #| msgid "Please enter the passphrase to protect the new PKCS#12 object."
 msgid "Please enter the passphrase to export the OpenPGP secret key:"
-msgstr "Proszê wprowadziæ has³o do zabezpieczenia obiektu PKCS#12."
+msgstr "Proszę wprowadzić hasło do zabezpieczenia obiektu PKCS#12."
 
 #, fuzzy
 #| msgid "Do you really want to delete the selected keys? (y/N) "
 msgid "Do you really want to permanently delete the OpenPGP secret subkey key:"
-msgstr "Czy na pewno chcesz usun±æ wybrane klucze? (t/N) "
+msgstr "Czy na pewno chcesz usunąć wybrane klucze? (t/N) "
 
 #, fuzzy
 #| msgid "Do you really want to delete the selected keys? (y/N) "
 msgid "Do you really want to permanently delete the OpenPGP secret key:"
-msgstr "Czy na pewno chcesz usun±æ wybrane klucze? (t/N) "
+msgstr "Czy na pewno chcesz usunąć wybrane klucze? (t/N) "
 
 #, fuzzy, c-format
 #| msgid "%u-bit %s key, ID %s, created %s"
@@ -4971,7 +4988,7 @@ msgid ""
 "%u-bit %s key, ID %s,\n"
 "created %s%s.\n"
 "%s"
-msgstr "d³ugo¶æ %u bitów, typ %s, numer %s, stworzony %s"
+msgstr "długość %u bitów, typ %s, numer %s, stworzony %s"
 
 msgid ""
 "\n"
@@ -4981,25 +4998,25 @@ msgid ""
 "Keeping the image close to 240x288 is a good size to use.\n"
 msgstr ""
 "\n"
-"Wybierz zdjêcie które chcesz do³±czyæ do swojego klucza jako identyfikator.\n"
-"Musi to byæ plik w formacie JPEG. Zostanie on zapisany w Twoim kluczu\n"
-"publicznym. Je¶li bêdzie du¿y, powiêkszy to tak¿e rozmiar Twojego klucza!\n"
-"Dobry rozmiar to oko³o 240 na 288 pikseli.\n"
+"Wybierz zdjęcie które chcesz dołączyć do swojego klucza jako identyfikator.\n"
+"Musi to być plik w formacie JPEG. Zostanie on zapisany w Twoim kluczu\n"
+"publicznym. Jeśli będzie duży, powiększy to także rozmiar Twojego klucza!\n"
+"Dobry rozmiar to około 240 na 288 pikseli.\n"
 
 msgid "Enter JPEG filename for photo ID: "
-msgstr "Nazwa pliku ze zdjêciem w formacie JPEG: "
+msgstr "Nazwa pliku ze zdjęciem w formacie JPEG: "
 
 #, fuzzy, c-format
 #| msgid "unable to open JPEG file `%s': %s\n"
 msgid "unable to open JPEG file '%s': %s\n"
-msgstr "nie mo¿na otworzyæ pliku JPEG ,,%s'': %s\n"
+msgstr "nie można otworzyć pliku JPEG ,,%s'': %s\n"
 
 #, c-format
 msgid "This JPEG is really large (%d bytes) !\n"
-msgstr "Ten JPEG jest naprawdê du¿y (%d bajtów)!\n"
+msgstr "Ten JPEG jest naprawdę duży (%d bajtów)!\n"
 
 msgid "Are you sure you want to use it? (y/N) "
-msgstr "Czy na pewno chcesz go u¿yæ? (t/N) "
+msgstr "Czy na pewno chcesz go użyć? (t/N) "
 
 #, fuzzy, c-format
 #| msgid "`%s' is not a JPEG file\n"
@@ -5007,31 +5024,31 @@ msgid "'%s' is not a JPEG file\n"
 msgstr ",,%s'' nie jest plikiem JPEG\n"
 
 msgid "Is this photo correct (y/N/q)? "
-msgstr "Czy zdjêcie jest w porz±dku? (t/N/w) "
+msgstr "Czy zdjęcie jest w porządku? (t/N/w) "
 
 msgid "unable to display photo ID!\n"
-msgstr "nie mo¿na wy¶wietliæ zdjêcia!\n"
+msgstr "nie można wyświetlić zdjęcia!\n"
 
 msgid "No reason specified"
 msgstr "nie podano przyczyny"
 
 msgid "Key is superseded"
-msgstr "klucz zosta³ zast±piony"
+msgstr "klucz został zastąpiony"
 
 msgid "Key has been compromised"
-msgstr "klucz zosta³ skompromitowany"
+msgstr "klucz został skompromitowany"
 
 msgid "Key is no longer used"
-msgstr "klucz nie jest ju¿ u¿ywany"
+msgstr "klucz nie jest już używany"
 
 msgid "User ID is no longer valid"
-msgstr "identyfikator u¿ytkownika przesta³ byæ poprawny"
+msgstr "identyfikator użytkownika przestał być poprawny"
 
 msgid "reason for revocation: "
-msgstr "powód uniewa¿nienia: "
+msgstr "powód unieważnienia: "
 
 msgid "revocation comment: "
-msgstr "komentarz do uniewa¿nienia: "
+msgstr "komentarz do unieważnienia: "
 
 #. TRANSLATORS: These are the allowed answers in lower and
 #. uppercase.  Below you will find the matching strings which
@@ -5047,7 +5064,7 @@ msgid "iImMqQsS"
 msgstr "iImMwWpP"
 
 msgid "No trust value assigned to:\n"
-msgstr "Brak wartoci zaufania dla:\n"
+msgstr "Brak wartości zaufania dla:\n"
 
 #, c-format
 msgid "  aka \"%s\"\n"
@@ -5055,7 +5072,7 @@ msgstr "  alias ,,%s''\n"
 
 msgid ""
 "How much do you trust that this key actually belongs to the named user?\n"
-msgstr "Jak bardzo ufasz, ¿e ten klucz naprawdê nale¿y do tej osoby?\n"
+msgstr "Jak bardzo ufasz, że ten klucz naprawdę należy do tej osoby?\n"
 
 #, c-format
 msgid "  %d = I don't know or won't say\n"
@@ -5070,13 +5087,13 @@ msgid "  %d = I trust ultimately\n"
 msgstr "  %d = ufam absolutnie\n"
 
 msgid "  m = back to the main menu\n"
-msgstr "  m = powrót do g³ównego menu\n"
+msgstr "  m = powrót do głównego menu\n"
 
 msgid "  s = skip this key\n"
-msgstr "  p = pominiêcie tego klucza\n"
+msgstr "  p = pominięcie tego klucza\n"
 
 msgid "  q = quit\n"
-msgstr "  w = wyjcie\n"
+msgstr "  w = wyjście\n"
 
 #, c-format
 msgid ""
@@ -5090,134 +5107,153 @@ msgid "Your decision? "
 msgstr "Twoja decyzja? "
 
 msgid "Do you really want to set this key to ultimate trust? (y/N) "
-msgstr "Czy na pewno chcesz przypisaæ absolutne zaufanie temu kluczowi? (t/N) "
+msgstr "Czy na pewno chcesz przypisać absolutne zaufanie temu kluczowi? (t/N) "
 
 msgid "Certificates leading to an ultimately trusted key:\n"
-msgstr "Certyfikaty prowadz±ce do ostatecznie zaufanego klucza:\n"
+msgstr "Certyfikaty prowadzące do ostatecznie zaufanego klucza:\n"
 
 #, c-format
 msgid "%s: There is no assurance this key belongs to the named user\n"
-msgstr "%s: Nie ma ¿adnej pewno¶ci, czy ten klucz nale¿y do tej osoby\n"
+msgstr "%s: Nie ma żadnej pewności, czy ten klucz należy do tej osoby\n"
 
 #, c-format
 msgid "%s: There is limited assurance this key belongs to the named user\n"
-msgstr "%s: Nie ma ca³kowitej pewno¶ci, czy ten klucz nale¿y do tej osoby\n"
+msgstr "%s: Nie ma całkowitej pewności, czy ten klucz należy do tej osoby\n"
 
 msgid "This key probably belongs to the named user\n"
-msgstr "Ten klucz prawdopodobnie nale¿y do tej osoby\n"
+msgstr "Ten klucz prawdopodobnie należy do tej osoby\n"
 
 msgid "This key belongs to us\n"
-msgstr "Ten klucz nale¿y do nas\n"
+msgstr "Ten klucz należy do nas\n"
+
+#, fuzzy, c-format
+#| msgid "root certificate has now been marked as trusted\n"
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr "główny certyfikat nie został oznaczony jako zaufany\n"
+
+#, fuzzy
+#| msgid ""
+#| "It is NOT certain that the key belongs to the person named\n"
+#| "in the user ID.  If you *really* know what you are doing,\n"
+#| "you may answer the next question with yes.\n"
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"NIE MA pewności, czy klucz należy do osoby wymienionej w identyfikatorze.\n"
+"Jeśli nie masz co do tego żadnych wątpliwości i *naprawdę* wiesz co robisz,\n"
+"możesz odpowiedzieć ,,tak'' na następne pytanie.\n"
 
 msgid ""
 "It is NOT certain that the key belongs to the person named\n"
 "in the user ID.  If you *really* know what you are doing,\n"
 "you may answer the next question with yes.\n"
 msgstr ""
-"NIE MA pewno¶ci, czy klucz nale¿y do osoby wymienionej w identyfikatorze.\n"
-"Je¶li nie masz co do tego ¿adnych w±tpliwo¶ci i *naprawdê* wiesz co robisz,\n"
-"mo¿esz odpowiedzieæ ,,tak'' na nastêpne pytanie.\n"
+"NIE MA pewności, czy klucz należy do osoby wymienionej w identyfikatorze.\n"
+"Jeśli nie masz co do tego żadnych wątpliwości i *naprawdę* wiesz co robisz,\n"
+"możesz odpowiedzieć ,,tak'' na następne pytanie.\n"
 
 msgid "Use this key anyway? (y/N) "
-msgstr "U¿yæ tego klucza pomimo to? (t/N) "
+msgstr "Użyć tego klucza pomimo to? (t/N) "
 
 msgid "WARNING: Using untrusted key!\n"
-msgstr "OSTRZE¯ENIE: u¿ywany jest klucz nie obdarzony zaufaniem!\n"
+msgstr "OSTRZEŻENIE: używany jest klucz nie obdarzony zaufaniem!\n"
 
 msgid "WARNING: this key might be revoked (revocation key not present)\n"
 msgstr ""
-"OSTRZE¯ENIE: ten klucz móg³ zostaæ uniewa¿niony\n"
-"             (brak klucza uniewa¿niaj±cego aby to sprawdziæ)\n"
+"OSTRZEŻENIE: ten klucz mógł zostać unieważniony\n"
+"             (brak klucza unieważniającego aby to sprawdzić)\n"
 
 msgid "WARNING: This key has been revoked by its designated revoker!\n"
-msgstr "OSTRZE¯ENIE: Ten klucz zosta³ uniewa¿niony kluczem uniewa¿niaj±cym!\n"
+msgstr "OSTRZEŻENIE: Ten klucz został unieważniony kluczem unieważniającym!\n"
 
 msgid "WARNING: This key has been revoked by its owner!\n"
-msgstr "OSTRZE¯ENIE: Ten klucz zosta³ uniewa¿niony przez w³a¶ciciela!\n"
+msgstr "OSTRZEŻENIE: Ten klucz został unieważniony przez właściciela!\n"
 
 msgid "         This could mean that the signature is forged.\n"
-msgstr "             To mo¿e oznaczaæ, ¿e podpis jest fa³szerstwem.\n"
+msgstr "             To może oznaczać, że podpis jest fałszerstwem.\n"
 
 msgid "WARNING: This subkey has been revoked by its owner!\n"
-msgstr "OSTRZE¯ENIE: Ten podklucz zosta³ uniewa¿niony przez w³a¶ciciela!\n"
+msgstr "OSTRZEŻENIE: Ten podklucz został unieważniony przez właściciela!\n"
 
 msgid "Note: This key has been disabled.\n"
-msgstr "Uwaga: Ten klucz zosta³ wy³±czony z u¿ytku.\n"
+msgstr "Uwaga: Ten klucz został wyłączony z użytku.\n"
 
 #, fuzzy, c-format
 #| msgid "Note: Verified signer's address is `%s'\n"
 msgid "Note: Verified signer's address is '%s'\n"
-msgstr "Uwaga: Sprawdzony adres pospisuj±cego to `%s'\n"
+msgstr "Uwaga: Sprawdzony adres pospisującego to `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "Note: Signer's address `%s' does not match DNS entry\n"
 msgid "Note: Signer's address '%s' does not match DNS entry\n"
-msgstr "Uwaga: Adres podpisuj±cego `%s' nie pasuje do wpisu DNS\n"
+msgstr "Uwaga: Adres podpisującego `%s' nie pasuje do wpisu DNS\n"
 
 msgid "trustlevel adjusted to FULL due to valid PKA info\n"
 msgstr ""
-"poziom zaufania poprawiony na PE£NY ze wzglêdu na poprawne informacje PKA\n"
+"poziom zaufania poprawiony na PEŁNY ze względu na poprawne informacje PKA\n"
 
 msgid "trustlevel adjusted to NEVER due to bad PKA info\n"
 msgstr ""
-"poziom zaufania poprawiony na ¯ADEN ze wzglêdu na b³êdne informacje PKA\n"
+"poziom zaufania poprawiony na ŻADEN ze względu na błędne informacje PKA\n"
 
 msgid "Note: This key has expired!\n"
-msgstr "Uwaga: Data wa¿no¶ci tego klucza up³ynê³a!\n"
+msgstr "Uwaga: Data ważności tego klucza upłynęła!\n"
 
 msgid "WARNING: This key is not certified with a trusted signature!\n"
-msgstr "OSTRZE¯ENIE: Ten klucz nie jest po¶wiadczony zaufanym podpisem!\n"
+msgstr "OSTRZEŻENIE: Ten klucz nie jest poświadczony zaufanym podpisem!\n"
 
 msgid ""
 "         There is no indication that the signature belongs to the owner.\n"
 msgstr ""
-"             Nie ma pewno¶ci co do to¿samo¶ci osoby która z³o¿y³a podpis.\n"
+"             Nie ma pewności co do tożsamości osoby która złożyła podpis.\n"
 
 msgid "WARNING: We do NOT trust this key!\n"
-msgstr "OSTRZE¯ENIE: NIE UFAMY temu kluczowi!\n"
+msgstr "OSTRZEŻENIE: NIE UFAMY temu kluczowi!\n"
 
 msgid "         The signature is probably a FORGERY.\n"
-msgstr "             Ten podpis prawdopodobnie jest FA£SZYWY.\n"
+msgstr "             Ten podpis prawdopodobnie jest FAŁSZYWY.\n"
 
 msgid ""
 "WARNING: This key is not certified with sufficiently trusted signatures!\n"
 msgstr ""
-"OSTRZE¯ENIE: Tego klucza nie po¶wiadczaj± wystarczaj±co zaufane podpisy!\n"
+"OSTRZEŻENIE: Tego klucza nie poświadczają wystarczająco zaufane podpisy!\n"
 
 msgid "         It is not certain that the signature belongs to the owner.\n"
 msgstr ""
-"             Nie ma pewno¶ci co do to¿samo¶ci osoby która z³o¿y³a ten "
+"             Nie ma pewności co do tożsamości osoby która złożyła ten "
 "podpis.\n"
 
 #, c-format
 msgid "%s: skipped: %s\n"
-msgstr "%s: pominiêty: %s\n"
+msgstr "%s: pominięty: %s\n"
 
 #, c-format
 msgid "%s: skipped: public key is disabled\n"
-msgstr "%s: pominiêty: klucz publiczny wy³±czony z u¿ytku\n"
+msgstr "%s: pominięty: klucz publiczny wyłączony z użytku\n"
 
 #, c-format
 msgid "%s: skipped: public key already present\n"
-msgstr "%s: pominiêty: zosta³ ju¿ wybrany w innej opcji\n"
+msgstr "%s: pominięty: został już wybrany w innej opcji\n"
 
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't encrypt to '%s'\n"
-msgstr "nie mo¿na siê po³±czyæ z ,,%s'': %s\n"
+msgstr "nie można się połączyć z ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: invalid algorithm\n"
 msgid "option '%s' given, but no valid default keys given\n"
-msgstr "linia %d: niew³a¶ciwy algorytm\n"
+msgstr "linia %d: niewłaściwy algorytm\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: invalid algorithm\n"
 msgid "option '%s' given, but option '%s' not given\n"
-msgstr "linia %d: niew³a¶ciwy algorytm\n"
+msgstr "linia %d: niewłaściwy algorytm\n"
 
 msgid "You did not specify a user ID. (you may use \"-r\")\n"
-msgstr "Nie zosta³ podany identyfikator u¿ytkownika (np. za pomoc± ,,-r'')\n"
+msgstr "Nie został podany identyfikator użytkownika (np. za pomocą ,,-r'')\n"
 
 msgid "Current recipients:\n"
 msgstr "Aktualni odbiorcy:\n"
@@ -5227,26 +5263,26 @@ msgid ""
 "Enter the user ID.  End with an empty line: "
 msgstr ""
 "\n"
-"Identyfikator u¿ytkownika (pusta linia oznacza koniec): "
+"Identyfikator użytkownika (pusta linia oznacza koniec): "
 
 msgid "No such user ID.\n"
-msgstr "Brak takiego identyfikatora u¿ytkownika.\n"
+msgstr "Brak takiego identyfikatora użytkownika.\n"
 
 msgid "skipped: public key already set as default recipient\n"
-msgstr "pominiêty: klucz publiczny ju¿ jest domy¶lnym adresatem\n"
+msgstr "pominięty: klucz publiczny już jest domyślnym adresatem\n"
 
 msgid "Public key is disabled.\n"
-msgstr "Klucz publiczny wy³±czony z u¿ycia.\n"
+msgstr "Klucz publiczny wyłączony z użycia.\n"
 
 msgid "skipped: public key already set\n"
-msgstr "pominiêty: zosta³ ju¿ wybrany w innej opcji\n"
+msgstr "pominięty: został już wybrany w innej opcji\n"
 
 #, c-format
 msgid "unknown default recipient \"%s\"\n"
-msgstr "nieznany domylny adresat ,,%s''\n"
+msgstr "nieznany domyślny adresat ,,%s''\n"
 
 msgid "no valid addressees\n"
-msgstr "brak poprawnych adresatów\n"
+msgstr "brak poprawnych adresatów\n"
 
 #, c-format
 msgid "Note: key %s has no %s feature\n"
@@ -5258,7 +5294,7 @@ msgstr "Uwaga: klucz %s nie ma preferencji dla %s\n"
 
 msgid "data not saved; use option \"--output\" to save it\n"
 msgstr ""
-"dane nie zosta³y zapisane; aby to zrobiæ, nale¿y u¿yæ opcji \"--output\"\n"
+"dane nie zostały zapisane; aby to zrobić, należy użyć opcji \"--output\"\n"
 
 msgid "Detached signature.\n"
 msgstr "Podpis oddzielony od danych.\n"
@@ -5267,7 +5303,7 @@ msgid "Please enter name of data file: "
 msgstr "Nazwa pliku danych: "
 
 msgid "reading stdin ...\n"
-msgstr "czytam strumieñ standardowego wej¶cia\n"
+msgstr "czytam strumień standardowego wejścia\n"
 
 msgid "no signed data\n"
 msgstr "brak podpisanych danych\n"
@@ -5275,80 +5311,80 @@ msgstr "brak podpisanych danych\n"
 #, fuzzy, c-format
 #| msgid "can't open signed data `%s'\n"
 msgid "can't open signed data '%s'\n"
-msgstr "nie mo¿na otworzyæ podpisanego pliku ,,%s''\n"
+msgstr "nie można otworzyć podpisanego pliku ,,%s''\n"
 
 #, c-format
 msgid "can't open signed data fd=%d: %s\n"
-msgstr "nie mo¿na otworzyæ podpisanych danych z fd=%d: %s\n"
+msgstr "nie można otworzyć podpisanych danych z fd=%d: %s\n"
 
 #, c-format
 msgid "anonymous recipient; trying secret key %s ...\n"
 msgstr "adresat anonimowy; sprawdzanie klucza tajnego %s...\n"
 
 msgid "okay, we are the anonymous recipient.\n"
-msgstr "OK, to my jestemy adresatem anonimowym.\n"
+msgstr "OK, to my jesteśmy adresatem anonimowym.\n"
 
 msgid "old encoding of the DEK is not supported\n"
-msgstr "stary, nieobs³ugiwany algorytm szyfrowania klucza sesyjnego\n"
+msgstr "stary, nieobsługiwany algorytm szyfrowania klucza sesyjnego\n"
 
 #, c-format
 msgid "cipher algorithm %d%s is unknown or disabled\n"
-msgstr "algorytm szyfruj±cy %d%s jest nieznany lub zosta³ wy³±czony\n"
+msgstr "algorytm szyfrujący %d%s jest nieznany lub został wyłączony\n"
 
 #, c-format
 msgid "WARNING: cipher algorithm %s not found in recipient preferences\n"
-msgstr "OSTRZE¯ENIE: brak algorytmu szyfruj±cego %s w ustawieniach odbiorcy\n"
+msgstr "OSTRZEŻENIE: brak algorytmu szyfrującego %s w ustawieniach odbiorcy\n"
 
 #, fuzzy, c-format
 #| msgid "NOTE: secret key %s expired at %s\n"
 msgid "Note: secret key %s expired at %s\n"
-msgstr "UWAGA: wa¿no¶æ klucza tajnego %s wygas³a %s\n"
+msgstr "UWAGA: ważność klucza tajnego %s wygasła %s\n"
 
 #, fuzzy
 #| msgid "NOTE: key has been revoked"
 msgid "Note: key has been revoked"
-msgstr "UWAGA: klucz zosta³ uniewa¿niony"
+msgstr "UWAGA: klucz został unieważniony"
 
 #, c-format
 msgid "build_packet failed: %s\n"
-msgstr "wywo³anie funkcji build_packet nie powiod³o siê: %s\n"
+msgstr "wywołanie funkcji build_packet nie powiodło się: %s\n"
 
 #, c-format
 msgid "key %s has no user IDs\n"
-msgstr "klucz %s nie ma identyfikatorów u¿ytkownika\n"
+msgstr "klucz %s nie ma identyfikatorów użytkownika\n"
 
 msgid "To be revoked by:\n"
-msgstr "Zostanie uniewa¿niony przez:\n"
+msgstr "Zostanie unieważniony przez:\n"
 
 msgid "(This is a sensitive revocation key)\n"
-msgstr "(to jest czu³y klucz uniewa¿niaj±cy)\n"
+msgstr "(to jest czuły klucz unieważniający)\n"
 
 #, fuzzy
 #| msgid "Secret key is available.\n"
 msgid "Secret key is not available.\n"
-msgstr "Dostêpny jest klucz tajny.\n"
+msgstr "Dostępny jest klucz tajny.\n"
 
 msgid "Create a designated revocation certificate for this key? (y/N) "
-msgstr "Stworzyæ certyfikat uniewa¿nienia tego klucza? (t/N) "
+msgstr "Stworzyć certyfikat unieważnienia tego klucza? (t/N) "
 
 msgid "ASCII armored output forced.\n"
 msgstr "wymuszono opakowanie ASCII wyniku.\n"
 
 #, c-format
 msgid "make_keysig_packet failed: %s\n"
-msgstr "wywo³anie funkcji make_keysig_packet nie powiod³o siê: %s\n"
+msgstr "wywołanie funkcji make_keysig_packet nie powiodło się: %s\n"
 
 msgid "Revocation certificate created.\n"
-msgstr "Certyfikat uniewa¿nienia zosta³ utworzony.\n"
+msgstr "Certyfikat unieważnienia został utworzony.\n"
 
 #, c-format
 msgid "no revocation keys found for \"%s\"\n"
-msgstr "brak kluczy uniewa¿niaj±cych dla ,,%s''\n"
+msgstr "brak kluczy unieważniających dla ,,%s''\n"
 
 #, fuzzy
 #| msgid "Create a revocation certificate for this key? (y/N) "
 msgid "This is a revocation certificate for the OpenPGP key:"
-msgstr "Stworzyæ certyfikat uniewa¿nienia tego klucza? (t/N) "
+msgstr "Stworzyć certyfikat unieważnienia tego klucza? (t/N) "
 
 msgid ""
 "A revocation certificate is a kind of \"kill switch\" to publicly\n"
@@ -5373,12 +5409,12 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "Revocation certificate created.\n"
 msgid "revocation certificate stored as '%s.rev'\n"
-msgstr "Certyfikat uniewa¿nienia zosta³ utworzony.\n"
+msgstr "Certyfikat unieważnienia został utworzony.\n"
 
 #, fuzzy, c-format
 #| msgid "secret key \"%s\" not found: %s\n"
 msgid "secret key \"%s\" not found\n"
-msgstr "klucz prywatny ,,%s'' nie zosta³ odnaleziony: %s\n"
+msgstr "klucz prywatny ,,%s'' nie został odnaleziony: %s\n"
 
 #. TRANSLATORS: The %s prints a key specification which
 #. for example has been given at the command line.  Several lines
@@ -5390,10 +5426,10 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
 msgid "error searching the keyring: %s\n"
-msgstr "b³±d tworzenia zbioru kluczy `%s': %s\n"
+msgstr "błąd tworzenia zbioru kluczy `%s': %s\n"
 
 msgid "Create a revocation certificate for this key? (y/N) "
-msgstr "Stworzyæ certyfikat uniewa¿nienia tego klucza? (t/N) "
+msgstr "Stworzyć certyfikat unieważnienia tego klucza? (t/N) "
 
 msgid ""
 "Revocation certificate created.\n"
@@ -5404,36 +5440,36 @@ msgid ""
 "your media become unreadable.  But have some caution:  The print system of\n"
 "your machine might store the data and make it available to others!\n"
 msgstr ""
-"Certyfikat uniewa¿nienia zosta³ utworzony.\n"
+"Certyfikat unieważnienia został utworzony.\n"
 "\n"
-"Nale¿y przenie¶æ go na no¶nik który mo¿na bezpiecznie ukryæ; je¶li ¼li "
+"Należy przenieść go na nośnik który można bezpiecznie ukryć; jeśli źli "
 "ludzie\n"
-"dostan± ten certyfikat w swoje rêce, mog± u¿yæ go do uczynienia klucza\n"
-"nieu¿ytecznym.\n"
+"dostaną ten certyfikat w swoje ręce, mogą użyć go do uczynienia klucza\n"
+"nieużytecznym.\n"
 "\n"
-"Niez³ym pomys³em jest wydrukowanie certyfikatu uniewa¿nienia i schowanie\n"
-"wydruku w bezpiecznym miejscu, na wypadek gdyby no¶nik z certyfikatem sta³ "
-"siê\n"
-"nieczytelny. Ale nale¿y zachowaæ ostro¿no¶æ, systemy drukowania ró¿nych\n"
-"komputerów mog± zachowaæ tre¶æ wydruku i udostêpniæ j± osobom "
-"nieupowa¿nionym.\n"
+"Niezłym pomysłem jest wydrukowanie certyfikatu unieważnienia i schowanie\n"
+"wydruku w bezpiecznym miejscu, na wypadek gdyby nośnik z certyfikatem stał "
+"się\n"
+"nieczytelny. Ale należy zachować ostrożność, systemy drukowania różnych\n"
+"komputerów mogą zachować treść wydruku i udostępnić ją osobom "
+"nieupoważnionym.\n"
 
 msgid "Please select the reason for the revocation:\n"
-msgstr "Proszê wybraæ powód uniewa¿nienia:\n"
+msgstr "Proszę wybrać powód unieważnienia:\n"
 
 msgid "Cancel"
 msgstr "Anuluj"
 
 #, c-format
 msgid "(Probably you want to select %d here)\n"
-msgstr "(Prawdopodobnie chcesz tu wybraæ %d)\n"
+msgstr "(Prawdopodobnie chcesz tu wybrać %d)\n"
 
 msgid "Enter an optional description; end it with an empty line:\n"
-msgstr "Wprowad¼ opis (nieobowi±zkowy) i zakoñcz go pust± lini±:\n"
+msgstr "Wprowadź opis (nieobowiązkowy) i zakończ go pustą linią:\n"
 
 #, c-format
 msgid "Reason for revocation: %s\n"
-msgstr "Powód uniewa¿nienia: %s\n"
+msgstr "Powód unieważnienia: %s\n"
 
 msgid "(No description given)\n"
 msgstr "(nie podano)\n"
@@ -5442,55 +5478,55 @@ msgid "Is this okay? (y/N) "
 msgstr "Informacje poprawne? (t/N) "
 
 msgid "weak key created - retrying\n"
-msgstr "wygenerowano s³aby klucz - operacja zostaje powtórzona\n"
+msgstr "wygenerowano słaby klucz - operacja zostaje powtórzona\n"
 
 #, c-format
 msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
 msgstr ""
-"brak mo¿liwo¶ci generacji dobrego klucza dla szyfru symetrycznego;\n"
-"operacja by³a powtarzana %d razy!\n"
+"brak możliwości generacji dobrego klucza dla szyfru symetrycznego;\n"
+"operacja była powtarzana %d razy!\n"
 
 #, fuzzy, c-format
 #| msgid "%s key uses an unsafe (%u bit) hash\n"
 msgid "%s key %s uses an unsafe (%zu bit) hash\n"
-msgstr "Klucz %s u¿ywa niebezpiecznego (%u-bitowego) skrótu\n"
+msgstr "Klucz %s używa niebezpiecznego (%u-bitowego) skrótu\n"
 
 #, fuzzy, c-format
 #| msgid "DSA key %s requires a %u bit or larger hash\n"
 msgid "%s key %s requires a %zu bit or larger hash (hash is %s)\n"
-msgstr "Klucz DSA %s wymaga %u-bitowego lub wiêkszego skrótu\n"
+msgstr "Klucz DSA %s wymaga %u-bitowego lub większego skrótu\n"
 
 msgid "WARNING: signature digest conflict in message\n"
-msgstr "OSTRZE¯ENIE: konflikt skrótów podpisów w wiadomo¶ci\n"
+msgstr "OSTRZEŻENIE: konflikt skrótów podpisów w wiadomości\n"
 
 #, c-format
 msgid "WARNING: signing subkey %s is not cross-certified\n"
-msgstr "OSTRZE¯ENIE: podklucz podpisuj±cy %s nie jest skro¶nie podpisany\n"
+msgstr "OSTRZEŻENIE: podklucz podpisujący %s nie jest skrośnie podpisany\n"
 
 #, c-format
 msgid "please see %s for more information\n"
-msgstr "obja¶nienie mo¿na przeczytaæ tutaj: %s\n"
+msgstr "objaśnienie można przeczytać tutaj: %s\n"
 
 #, c-format
 msgid "WARNING: signing subkey %s has an invalid cross-certification\n"
 msgstr ""
-"OSTRZE¯ENIE: podklucz podpisuj±cy %s jest niepoprawnie skro¶nie podpisany\n"
+"OSTRZEŻENIE: podklucz podpisujący %s jest niepoprawnie skrośnie podpisany\n"
 
 #, fuzzy, c-format
 #| msgid "public key %s is %lu second newer than the signature\n"
 msgid "public key %s is %lu second newer than the signature\n"
 msgid_plural "public key %s is %lu seconds newer than the signature\n"
-msgstr[0] "klucz publiczny %s jest o %lu sekundê m³odszy od podpisu\n"
-msgstr[1] "klucz publiczny %s jest o %lu sekundê m³odszy od podpisu\n"
-msgstr[2] "klucz publiczny %s jest o %lu sekundê m³odszy od podpisu\n"
+msgstr[0] "klucz publiczny %s jest o %lu sekundę młodszy od podpisu\n"
+msgstr[1] "klucz publiczny %s jest o %lu sekundę młodszy od podpisu\n"
+msgstr[2] "klucz publiczny %s jest o %lu sekundę młodszy od podpisu\n"
 
 #, fuzzy, c-format
 #| msgid "public key %s is %lu second newer than the signature\n"
 msgid "public key %s is %lu day newer than the signature\n"
 msgid_plural "public key %s is %lu days newer than the signature\n"
-msgstr[0] "klucz publiczny %s jest o %lu sekundê m³odszy od podpisu\n"
-msgstr[1] "klucz publiczny %s jest o %lu sekundê m³odszy od podpisu\n"
-msgstr[2] "klucz publiczny %s jest o %lu sekundê m³odszy od podpisu\n"
+msgstr[0] "klucz publiczny %s jest o %lu sekundę młodszy od podpisu\n"
+msgstr[1] "klucz publiczny %s jest o %lu sekundę młodszy od podpisu\n"
+msgstr[2] "klucz publiczny %s jest o %lu sekundę młodszy od podpisu\n"
 
 #, fuzzy, c-format
 #| msgid ""
@@ -5500,14 +5536,14 @@ msgid ""
 msgid_plural ""
 "key %s was created %lu seconds in the future (time warp or clock problem)\n"
 msgstr[0] ""
-"klucz %s zosta³ stworzony %lu sekundê w przysz³o¶ci (zaburzenia\n"
-"czasoprzestrzeni lub ¼le ustawiony zegar systemowy)\n"
+"klucz %s został stworzony %lu sekundę w przyszłości (zaburzenia\n"
+"czasoprzestrzeni lub źle ustawiony zegar systemowy)\n"
 msgstr[1] ""
-"klucz %s zosta³ stworzony %lu sekundê w przysz³o¶ci (zaburzenia\n"
-"czasoprzestrzeni lub ¼le ustawiony zegar systemowy)\n"
+"klucz %s został stworzony %lu sekundę w przyszłości (zaburzenia\n"
+"czasoprzestrzeni lub źle ustawiony zegar systemowy)\n"
 msgstr[2] ""
-"klucz %s zosta³ stworzony %lu sekundê w przysz³o¶ci (zaburzenia\n"
-"czasoprzestrzeni lub ¼le ustawiony zegar systemowy)\n"
+"klucz %s został stworzony %lu sekundę w przyszłości (zaburzenia\n"
+"czasoprzestrzeni lub źle ustawiony zegar systemowy)\n"
 
 #, fuzzy, c-format
 #| msgid ""
@@ -5516,69 +5552,69 @@ msgid "key %s was created %lu day in the future (time warp or clock problem)\n"
 msgid_plural ""
 "key %s was created %lu days in the future (time warp or clock problem)\n"
 msgstr[0] ""
-"klucz %s zosta³ stworzony %lu sekundê w przysz³o¶ci (zaburzenia\n"
-"czasoprzestrzeni lub ¼le ustawiony zegar systemowy)\n"
+"klucz %s został stworzony %lu sekundę w przyszłości (zaburzenia\n"
+"czasoprzestrzeni lub źle ustawiony zegar systemowy)\n"
 msgstr[1] ""
-"klucz %s zosta³ stworzony %lu sekundê w przysz³o¶ci (zaburzenia\n"
-"czasoprzestrzeni lub ¼le ustawiony zegar systemowy)\n"
+"klucz %s został stworzony %lu sekundę w przyszłości (zaburzenia\n"
+"czasoprzestrzeni lub źle ustawiony zegar systemowy)\n"
 msgstr[2] ""
-"klucz %s zosta³ stworzony %lu sekundê w przysz³o¶ci (zaburzenia\n"
-"czasoprzestrzeni lub ¼le ustawiony zegar systemowy)\n"
+"klucz %s został stworzony %lu sekundę w przyszłości (zaburzenia\n"
+"czasoprzestrzeni lub źle ustawiony zegar systemowy)\n"
 
 #, fuzzy, c-format
 #| msgid "NOTE: signature key %s expired %s\n"
 msgid "Note: signature key %s expired %s\n"
-msgstr "UWAGA: klucz podpisuj±cy %s przekroczy³ datê wa¿no¶ci %s\n"
+msgstr "UWAGA: klucz podpisujący %s przekroczył datę ważności %s\n"
 
 #, fuzzy, c-format
 #| msgid "NOTE: signature key %s has been revoked\n"
 msgid "Note: signature key %s has been revoked\n"
-msgstr "UWAGA: klucz podpisuj±cy %s zosta³ uniewa¿niony\n"
+msgstr "UWAGA: klucz podpisujący %s został unieważniony\n"
 
 #, c-format
 msgid "assuming bad signature from key %s due to an unknown critical bit\n"
 msgstr ""
-"uznano za z³y podpis utworzony kluczem %s z powodu nieznanego bitu "
+"uznano za zły podpis utworzony kluczem %s z powodu nieznanego bitu "
 "krytycznego\n"
 
 #, c-format
 msgid "key %s: no subkey for subkey revocation signature\n"
-msgstr "klucz %s: brak podklucza dla podpisu uniewa¿nienia podklucza\n"
+msgstr "klucz %s: brak podklucza dla podpisu unieważnienia podklucza\n"
 
 #, c-format
 msgid "key %s: no subkey for subkey binding signature\n"
-msgstr "klucz %s: brak podklucza dowi±zywanego podpisem\n"
+msgstr "klucz %s: brak podklucza dowiązywanego podpisem\n"
 
 #, c-format
 msgid "WARNING: unable to %%-expand notation (too large).  Using unexpanded.\n"
 msgstr ""
-"OSTRZE¯ENIE: nie mo¿na rozwin±æ %% w URL adnotacji (jest zbyt d³ugi).\n"
-"             U¿yty zostanie nie rozwiniêty.\n"
+"OSTRZEŻENIE: nie można rozwinąć %% w URL adnotacji (jest zbyt długi).\n"
+"             Użyty zostanie nie rozwinięty.\n"
 
 #, c-format
 msgid ""
 "WARNING: unable to %%-expand policy URL (too large).  Using unexpanded.\n"
 msgstr ""
-"OSTRZE¯ENIE: nie mo¿na rozwin±æ znaczników %% w URL regulaminu\n"
-"           (jest zbyt d³ugi). U¿yty zostanie nie rozwiniêty.\n"
+"OSTRZEŻENIE: nie można rozwinąć znaczników %% w URL regulaminu\n"
+"           (jest zbyt długi). Użyty zostanie nie rozwinięty.\n"
 
 #, c-format
 msgid ""
 "WARNING: unable to %%-expand preferred keyserver URL (too large).  Using "
 "unexpanded.\n"
 msgstr ""
-"OSTRZE¯ENIE: nie mo¿na rozwin±æ znaczników %% w URL-u preferowanego\n"
-"           serwera kluczy (jest zbyt d³ugi). U¿yty zostanie nie rozwiniêty.\n"
+"OSTRZEŻENIE: nie można rozwinąć znaczników %% w URL-u preferowanego\n"
+"           serwera kluczy (jest zbyt długi). Użyty zostanie nie rozwinięty.\n"
 
 #, c-format
 msgid "%s/%s signature from: \"%s\"\n"
-msgstr "podpis %s/%s z³o¿ony przez: ,,%s''\n"
+msgstr "podpis %s/%s złożony przez: ,,%s''\n"
 
 #, c-format
 msgid ""
 "WARNING: forcing digest algorithm %s (%d) violates recipient preferences\n"
 msgstr ""
-"OSTRZE¯ENIE: wymuszone u¿ycie skrótu %s (%d) k³óci siê z ustawieniami "
+"OSTRZEŻENIE: wymuszone użycie skrótu %s (%d) kłóci się z ustawieniami "
 "adresata\n"
 
 msgid "signing:"
@@ -5586,88 +5622,88 @@ msgstr "podpis:"
 
 #, c-format
 msgid "%s encryption will be used\n"
-msgstr "zostanie u¿yty szyfr %s\n"
+msgstr "zostanie użyty szyfr %s\n"
 
 msgid "key is not flagged as insecure - can't use it with the faked RNG!\n"
 msgstr ""
-"klucz nie jest oznaczony jako niepewny - nie mo¿na go u¿yæ z atrap±\n"
+"klucz nie jest oznaczony jako niepewny - nie można go użyć z atrapą\n"
 "generatora liczb losowych!\n"
 
 #, c-format
 msgid "skipped \"%s\": duplicated\n"
-msgstr "pominiêty ,,%s'': duplikat\n"
+msgstr "pominięty ,,%s'': duplikat\n"
 
 msgid "skipped: secret key already present\n"
-msgstr "pominiêty: klucz prywatny jest ju¿ wpisany\n"
+msgstr "pominięty: klucz prywatny jest już wpisany\n"
 
 msgid "this is a PGP generated Elgamal key which is not secure for signatures!"
 msgstr ""
-"klucz algorytmu Elgamala wygenerowany przez PGP nie zapewniaj±cy "
-"bezpiecznych podpisów!"
+"klucz algorytmu Elgamala wygenerowany przez PGP nie zapewniający "
+"bezpiecznych podpisów!"
 
 #, c-format
 msgid "trust record %lu, type %d: write failed: %s\n"
-msgstr "wpis zaufania %lu, typ zapytania %d: zapis nie powiód³ siê: %s\n"
+msgstr "wpis zaufania %lu, typ zapytania %d: zapis nie powiódł się: %s\n"
 
 #, c-format
 msgid ""
 "# List of assigned trustvalues, created %s\n"
 "# (Use \"gpg --import-ownertrust\" to restore them)\n"
 msgstr ""
-"# Lista przypisanych wartoci zaufania, stworzona %s\n"
-"# (u¿yj \"gpg --import-ownertrust\" aby j± przywróciæ)\n"
+"# Lista przypisanych wartości zaufania, stworzona %s\n"
+"# (użyj \"gpg --import-ownertrust\" aby ją przywrócić)\n"
 
 #, fuzzy, c-format
 #| msgid "error in `%s': %s\n"
 msgid "error in '%s': %s\n"
-msgstr "b³±d w ,,%s'': %s\n"
+msgstr "błąd w ,,%s'': %s\n"
 
 msgid "line too long"
-msgstr "linia zbyt d³uga"
+msgstr "linia zbyt długa"
 
 msgid "colon missing"
 msgstr "brak dwukropka"
 
 msgid "invalid fingerprint"
-msgstr "niew³a¶ciwy odcisk"
+msgstr "niewłaściwy odcisk"
 
 msgid "ownertrust value missing"
-msgstr "brak warto¶ci zaufania w³a¶ciciela"
+msgstr "brak wartości zaufania właściciela"
 
 #, fuzzy, c-format
 #| msgid "error finding trust record in `%s': %s\n"
 msgid "error finding trust record in '%s': %s\n"
-msgstr "b³±d podczas szukania zapisu warto¶ci zaufania w ,,%s'': %s\n"
+msgstr "błąd podczas szukania zapisu wartości zaufania w ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "read error in `%s': %s\n"
 msgid "read error in '%s': %s\n"
-msgstr "b³±d odczytu w ,,%s'': %s\n"
+msgstr "błąd odczytu w ,,%s'': %s\n"
 
 #, c-format
 msgid "trustdb: sync failed: %s\n"
-msgstr "baza zaufania: synchronizacja nie powiod³a siê %s\n"
+msgstr "baza zaufania: synchronizacja nie powiodła się %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't create lock for `%s'\n"
 msgid "can't create lock for '%s'\n"
-msgstr "nie mo¿na utworzyæ blokady dla ,,%s''\n"
+msgstr "nie można utworzyć blokady dla ,,%s''\n"
 
 #, fuzzy, c-format
 #| msgid "can't lock `%s'\n"
 msgid "can't lock '%s'\n"
-msgstr "nie mo¿na zablokowaæ ,,%s''\n"
+msgstr "nie można zablokować ,,%s''\n"
 
 #, c-format
 msgid "trustdb rec %lu: lseek failed: %s\n"
-msgstr "baza zaufania, wpis %lu: funkcja lseek() nie powiod³a siê: %s\n"
+msgstr "baza zaufania, wpis %lu: funkcja lseek() nie powiodła się: %s\n"
 
 #, c-format
 msgid "trustdb rec %lu: write failed (n=%d): %s\n"
-msgstr "baza zaufania, wpis %lu: zapis nie powiód³ siê (n=%d): %s\n"
+msgstr "baza zaufania, wpis %lu: zapis nie powiódł się (n=%d): %s\n"
 
 msgid "trustdb transaction too large\n"
-msgstr "zbyt du¿e zlecenie dla bazy zaufania\n"
+msgstr "zbyt duże zlecenie dla bazy zaufania\n"
 
 #, c-format
 msgid "%s: directory does not exist!\n"
@@ -5676,11 +5712,11 @@ msgstr "%s: katalog nie istnieje!\n"
 #, fuzzy, c-format
 #| msgid "can't access `%s': %s\n"
 msgid "can't access '%s': %s\n"
-msgstr "nie mo¿na dostaæ siê do ,,%s'': %s\n"
+msgstr "nie można dostać się do ,,%s'': %s\n"
 
 #, c-format
 msgid "%s: failed to create version record: %s"
-msgstr "%s: stworzenie zapisu o wersji nie powiod³o siê: %s"
+msgstr "%s: stworzenie zapisu o wersji nie powiodło się: %s"
 
 #, c-format
 msgid "%s: invalid trustdb created\n"
@@ -5693,7 +5729,7 @@ msgstr "%s: baza zaufania utworzona\n"
 #, fuzzy
 #| msgid "NOTE: trustdb not writable\n"
 msgid "Note: trustdb not writable\n"
-msgstr "UWAGA: nie mo¿na zapisywaæ bazy zaufania\n"
+msgstr "UWAGA: nie można zapisywać bazy zaufania\n"
 
 #, c-format
 msgid "%s: invalid trustdb\n"
@@ -5701,27 +5737,27 @@ msgstr "%s: niepoprawny plik bazy zaufania\n"
 
 #, c-format
 msgid "%s: failed to create hashtable: %s\n"
-msgstr "%s: tworzenie tablicy skrótów nie powiod³o siê: %s\n"
+msgstr "%s: tworzenie tablicy skrótów nie powiodło się: %s\n"
 
 #, c-format
 msgid "%s: error updating version record: %s\n"
-msgstr "%s: b³±d przy uaktualnianiu numeru wersji: %s\n"
+msgstr "%s: błąd przy uaktualnianiu numeru wersji: %s\n"
 
 #, c-format
 msgid "%s: error reading version record: %s\n"
-msgstr "%s: b³±d odczytu numeru wersji: %s\n"
+msgstr "%s: błąd odczytu numeru wersji: %s\n"
 
 #, c-format
 msgid "%s: error writing version record: %s\n"
-msgstr "%s: b³±d zapisu numeru wersji: %s\n"
+msgstr "%s: błąd zapisu numeru wersji: %s\n"
 
 #, c-format
 msgid "trustdb: lseek failed: %s\n"
-msgstr "baza zaufania: funkcja lseek() zawiod³a: %s\n"
+msgstr "baza zaufania: funkcja lseek() zawiodła: %s\n"
 
 #, c-format
 msgid "trustdb: read failed (n=%d): %s\n"
-msgstr "baza zaufania: funkcja read() (n=%d) zawiod³a: %s\n"
+msgstr "baza zaufania: funkcja read() (n=%d) zawiodła: %s\n"
 
 #, c-format
 msgid "%s: not a trustdb file\n"
@@ -5733,39 +5769,39 @@ msgstr "%s: wpis wersji z numerem %lu\n"
 
 #, c-format
 msgid "%s: invalid file version %d\n"
-msgstr "%s: niew³a¶ciwa wersja pliku %d\n"
+msgstr "%s: niewłaściwa wersja pliku %d\n"
 
 #, c-format
 msgid "%s: error reading free record: %s\n"
-msgstr "%s: b³±d odczytu pustego wpisu: %s\n"
+msgstr "%s: błąd odczytu pustego wpisu: %s\n"
 
 #, c-format
 msgid "%s: error writing dir record: %s\n"
-msgstr "%s: b³±d zapisu wpisu katalogowego: %s\n"
+msgstr "%s: błąd zapisu wpisu katalogowego: %s\n"
 
 #, c-format
 msgid "%s: failed to zero a record: %s\n"
-msgstr "%s: zerowanie rekordu nie powiod³o siê: %s\n"
+msgstr "%s: zerowanie rekordu nie powiodło się: %s\n"
 
 #, c-format
 msgid "%s: failed to append a record: %s\n"
-msgstr "%s: dopisanie rekordu nie powiod³o siê: %s\n"
+msgstr "%s: dopisanie rekordu nie powiodło się: %s\n"
 
 msgid "Error: The trustdb is corrupted.\n"
-msgstr "B³±d: uszkodzona baza zaufania.\n"
+msgstr "Błąd: uszkodzona baza zaufania.\n"
 
 #, c-format
 msgid "can't handle text lines longer than %d characters\n"
-msgstr "nie mo¿na obs³u¿yæ linii tekstu d³u¿szej ni¿ %d znaków\n"
+msgstr "nie można obsłużyć linii tekstu dłuższej niż %d znaków\n"
 
 #, c-format
 msgid "input line longer than %d characters\n"
-msgstr "linia d³u¿sza ni¿ %d znaków\n"
+msgstr "linia dłuższa niż %d znaków\n"
 
 #, fuzzy, c-format
 #| msgid "error sending standard options: %s\n"
 msgid "error beginning transaction on TOFU database: %s\n"
-msgstr "b³±d wysy³ania standardowych opcji: %s\n"
+msgstr "błąd wysyłania standardowych opcji: %s\n"
 
 #, c-format
 msgid "error committing transaction on TOFU database: %s\n"
@@ -5778,66 +5814,70 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "unsupported algorithm: %s"
 msgid "unsupported TOFU database version: %s\n"
-msgstr "nieobs³ugiwany algorytm: %s"
+msgstr "nieobsługiwany algorytm: %s"
 
 #, fuzzy, c-format
 #| msgid "error sending %s command: %s\n"
 msgid "error reading TOFU database: %s\n"
-msgstr "b³±d wysy³ania polecenia %s: %s\n"
+msgstr "błąd wysyłania polecenia %s: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing secret keyring `%s': %s\n"
 msgid "error determining TOFU database's version: %s\n"
-msgstr "b³±d podczas zapisu zbioru kluczy tajnych ,,%s'': %s\n"
+msgstr "błąd podczas zapisu zbioru kluczy tajnych ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "%s: error writing dir record: %s\n"
 msgid "error initializing TOFU database: %s\n"
-msgstr "%s: b³±d zapisu wpisu katalogowego: %s\n"
+msgstr "%s: błąd zapisu wpisu katalogowego: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error opening `%s': %s\n"
 msgid "error opening TOFU database '%s': %s\n"
-msgstr "b³±d podczas otwierania ,,%s'': %s\n"
+msgstr "błąd podczas otwierania ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error sending %s command: %s\n"
 msgid "error updating TOFU database: %s\n"
-msgstr "b³±d wysy³ania polecenia %s: %s\n"
+msgstr "błąd wysyłania polecenia %s: %s\n"
 
 #, c-format
-msgid "The binding %s is NOT known."
+msgid ""
+"This is the first time the email address \"%s\" is being used with key %s."
 msgstr ""
 
 #, c-format
-msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr ""
+
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
 
 #, fuzzy, c-format
 #| msgid "error getting new PIN: %s\n"
 msgid "error gathering other user IDs: %s\n"
-msgstr "b³±d podczas odczytu nowego PIN-u: %s\n"
+msgstr "błąd podczas odczytu nowego PIN-u: %s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr ""
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "lista kluczy i identyfikatorów użytkownika"
 
 #, fuzzy, c-format
 #| msgid "validity: %s"
 msgid "policy: %s"
-msgstr "poprawno¶æ: %s"
+msgstr "poprawność: %s"
 
 #, fuzzy, c-format
 #| msgid "error getting stored flags: %s\n"
 msgid "error gathering signature stats: %s\n"
-msgstr "b³±d pobierania zapisanych flag: %s\n"
+msgstr "błąd pobierania zapisanych flag: %s\n"
 
 #, c-format
 msgid "The email address \"%s\" is associated with %d key:\n"
@@ -5850,47 +5890,53 @@ msgstr[2] ""
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr ""
 
+msgid ", "
+msgstr ""
+
 #, fuzzy
 #| msgid "list keys"
 msgid "this key"
 msgstr "lista kluczy"
 
+#, fuzzy, c-format
+#| msgid "print message digests"
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
+msgstr[0] "wypisanie skrótów wiadomości"
+msgstr[1] "wypisanie skrótów wiadomości"
+msgstr[2] "wypisanie skrótów wiadomości"
+
 #, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
 msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
-#, fuzzy, c-format
-#| msgid "print message digests"
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
-msgstr[0] "wypisanie skrótów wiadomo¶ci"
-msgstr[1] "wypisanie skrótów wiadomo¶ci"
-msgstr[2] "wypisanie skrótów wiadomo¶ci"
-
 #, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
 #, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
 #, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+msgid " over the past year."
+msgid_plural " over the past %d years."
 msgstr[0] ""
 msgstr[1] ""
 msgstr[2] ""
 
+msgid " in the past."
+msgstr ""
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5906,15 +5952,26 @@ msgstr ""
 msgid "(G)ood, (A)ccept once, (U)nknown, (R)eject once, (B)ad? "
 msgstr ""
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing key: %s\n"
+msgid "resetting keydb: %s\n"
+msgstr "błąd zapisu klucza: %s\n"
+
 #, fuzzy, c-format
 #| msgid "error storing flags: %s\n"
 msgid "error setting TOFU binding's trust level to %s\n"
-msgstr "b³±d zapisywania flag: %s\n"
+msgstr "błąd zapisywania flag: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error creating a pipe: %s\n"
 msgid "error changing TOFU policy: %s\n"
-msgstr "b³±d tworzenia potoku: %s\n"
+msgstr "błąd tworzenia potoku: %s\n"
 
 #. TRANSLATORS: The tilde ('~') is used here to indicate a
 #. * non-breakable space
@@ -5961,52 +6018,60 @@ msgstr[1] ""
 msgstr[2] ""
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
+msgid "%s: "
 msgstr ""
 
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
-msgstr ""
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "%d podpisów usuniętych.\n"
 
 #, fuzzy, c-format
 #| msgid "print message digests"
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "wypisanie skrótów wiadomo¶ci"
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
+msgstr[0] "wypisanie skrótów wiadomości"
+msgstr[1] "wypisanie skrótów wiadomości"
+msgstr[2] "wypisanie skrótów wiadomości"
+
+#, fuzzy, c-format
+#| msgid "encrypted with %lu passphrases\n"
+msgid ", and encrypted %ld messages"
+msgstr "zaszyfrowane za pomocą %lu haseł\n"
+
+#, fuzzy, c-format
+#| msgid "print message digests"
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] "wypisanie skrótów wiadomości"
+msgstr[1] "wypisanie skrótów wiadomości"
+msgstr[2] "wypisanie skrótów wiadomości"
 
-#, c-format
 msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
+msgstr ""
 
-#, c-format
-msgid "The most recent message was verified %s ago."
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
 msgstr ""
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
 msgstr ""
 
 #, c-format
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -6016,12 +6081,21 @@ msgstr[2] ""
 #, fuzzy, c-format
 #| msgid "error sending %s command: %s\n"
 msgid "error opening TOFU database: %s\n"
-msgstr "b³±d wysy³ania polecenia %s: %s\n"
+msgstr "błąd wysyłania polecenia %s: %s\n"
+
+#, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring `%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "błąd podczas zapisu zbioru kluczy publicznych ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "`%s' is not a valid long keyID\n"
 msgid "'%s' is not a valid long keyID\n"
-msgstr ",,%s'' nie jest poprawnym d³ugim numerem klucza\n"
+msgstr ",,%s'' nie jest poprawnym długim numerem klucza\n"
 
 #, c-format
 msgid "key %s: accepted as trusted key\n"
@@ -6029,45 +6103,45 @@ msgstr "klucz %s: zaakceptowany jako klucz zaufany\n"
 
 #, c-format
 msgid "key %s occurs more than once in the trustdb\n"
-msgstr "klucz %s jest wpisany wiêcej ni¿ raz w bazie zaufania\n"
+msgstr "klucz %s jest wpisany więcej niż raz w bazie zaufania\n"
 
 #, c-format
 msgid "key %s: no public key for trusted key - skipped\n"
-msgstr "klucz %s: brak klucza publicznego dla zaufanego klucza - pominiêty\n"
+msgstr "klucz %s: brak klucza publicznego dla zaufanego klucza - pominięty\n"
 
 #, c-format
 msgid "key %s marked as ultimately trusted\n"
-msgstr "klucz %s zosta³ oznaczony jako obdarzony absolutnym zaufaniem.\n"
+msgstr "klucz %s został oznaczony jako obdarzony absolutnym zaufaniem.\n"
 
 #, c-format
 msgid "trust record %lu, req type %d: read failed: %s\n"
-msgstr "wpis zaufania %lu, typ zapytania %d: odczyt nie powiód³ siê: %s\n"
+msgstr "wpis zaufania %lu, typ zapytania %d: odczyt nie powiódł się: %s\n"
 
 #, c-format
 msgid "trust record %lu is not of requested type %d\n"
-msgstr "wpis zaufania %lu jest typu innego ni¿ poszukiwany %d\n"
+msgstr "wpis zaufania %lu jest typu innego niż poszukiwany %d\n"
 
 msgid "You may try to re-create the trustdb using the commands:\n"
-msgstr "Mo¿na próbowaæ odtworzyæ bazê zaufania przy u¿yciu poleceñ:\n"
+msgstr "Można próbować odtworzyć bazę zaufania przy użyciu poleceń:\n"
 
 msgid "If that does not work, please consult the manual\n"
-msgstr "Je¶li to nie dzia³a, nale¿y poradziæ siê instrukcji\n"
+msgstr "Jeśli to nie działa, należy poradzić się instrukcji\n"
 
 #, c-format
 msgid "unable to use unknown trust model (%d) - assuming %s trust model\n"
 msgstr ""
-"nie mo¿na u¿yæ nieznanego modelu zaufania (%d) - przyjêto model zaufania %s\n"
+"nie można użyć nieznanego modelu zaufania (%d) - przyjęto model zaufania %s\n"
 
 #, c-format
 msgid "using %s trust model\n"
-msgstr "u¿ycie modelu zaufania %s\n"
+msgstr "użycie modelu zaufania %s\n"
 
 msgid "no need for a trustdb check\n"
 msgstr "sprawdzanie bazy jest niepotrzebne\n"
 
 #, c-format
 msgid "next trustdb check due at %s\n"
-msgstr "nastêpne sprawdzanie bazy odbêdzie siê %s\n"
+msgstr "następne sprawdzanie bazy odbędzie się %s\n"
 
 #, fuzzy, c-format
 #| msgid "no need for a trustdb check with `%s' trust model\n"
@@ -6084,7 +6158,7 @@ msgid "public key %s not found: %s\n"
 msgstr "klucz publiczny %s nie odnaleziony: %s\n"
 
 msgid "please do a --check-trustdb\n"
-msgstr "nale¿y uruchomiæ gpg z opcj± ,,--check-trustdb''\n"
+msgstr "należy uruchomić gpg z opcją ,,--check-trustdb''\n"
 
 msgid "checking the trustdb\n"
 msgstr "sprawdzanie bazy zaufania\n"
@@ -6101,9 +6175,9 @@ msgstr[2] "%lu kluczy przetworzonych do tej chwili\n"
 #| msgid "%d keys processed (%d validity counts cleared)\n"
 msgid " (%d validity count cleared)\n"
 msgid_plural " (%d validity counts cleared)\n"
-msgstr[0] "przetworzono %d kluczy (rozwi±zano %d przeliczeñ zaufania)\n"
-msgstr[1] "przetworzono %d kluczy (rozwi±zano %d przeliczeñ zaufania)\n"
-msgstr[2] "przetworzono %d kluczy (rozwi±zano %d przeliczeñ zaufania)\n"
+msgstr[0] "przetworzono %d kluczy (rozwiązano %d przeliczeń zaufania)\n"
+msgstr[1] "przetworzono %d kluczy (rozwiązano %d przeliczeń zaufania)\n"
+msgstr[2] "przetworzono %d kluczy (rozwiązano %d przeliczeń zaufania)\n"
 
 msgid "no ultimately trusted keys found\n"
 msgstr "brak absolutnie zaufanych kluczy\n"
@@ -6122,11 +6196,11 @@ msgstr ""
 #, c-format
 msgid "unable to update trustdb version record: write failed: %s\n"
 msgstr ""
-"nie mo¿na uaktualniæ rekordu wersji bazy zaufania: zapis nie powiód³ siê: "
+"nie można uaktualnić rekordu wersji bazy zaufania: zapis nie powiódł się: "
 "%s\n"
 
 msgid "undefined"
-msgstr "nieokrelone"
+msgstr "nieokreślone"
 
 msgid "never"
 msgstr "nigdy"
@@ -6135,7 +6209,7 @@ msgid "marginal"
 msgstr "marginalne"
 
 msgid "full"
-msgstr "pe³ne"
+msgstr "pełne"
 
 msgid "ultimate"
 msgstr "absolutne"
@@ -6154,7 +6228,7 @@ msgid "10 translator see trust.c:uid_trust_string_fixed"
 msgstr "17"
 
 msgid "[ revoked]"
-msgstr "[  uniewa¿niony ]"
+msgstr "[  unieważniony ]"
 
 msgid "[ expired]"
 msgstr "[przeterminowany]"
@@ -6163,7 +6237,7 @@ msgid "[ unknown]"
 msgstr "[    nieznane   ]"
 
 msgid "[  undef ]"
-msgstr "[  nieokrelone ]"
+msgstr "[  nieokreślone ]"
 
 #, fuzzy
 #| msgid "never"
@@ -6174,7 +6248,7 @@ msgid "[marginal]"
 msgstr "[   marginalne  ]"
 
 msgid "[  full  ]"
-msgstr "[      pe³ne    ]"
+msgstr "[      pełne    ]"
 
 msgid "[ultimate]"
 msgstr "[    absolutne   ]"
@@ -6184,145 +6258,145 @@ msgid ""
 "Please remember that the signature file (.sig or .asc)\n"
 "should be the first file given on the command line.\n"
 msgstr ""
-"nie mo¿na sprawdziæ podpisu.\n"
-"Nale¿y pamiêtaæ o podawaniu pliku podpisu (.sig lub .asc) jako pierwszego\n"
-"argumentu linii poleceñ.\n"
+"nie można sprawdzić podpisu.\n"
+"Należy pamiętać o podawaniu pliku podpisu (.sig lub .asc) jako pierwszego\n"
+"argumentu linii poleceń.\n"
 
 #, c-format
 msgid "input line %u too long or missing LF\n"
-msgstr "linia wej¶cia %u zbyt d³uga lub brak znaku LF\n"
+msgstr "linia wejścia %u zbyt długa lub brak znaku LF\n"
 
 #, c-format
 msgid "can't open fd %d: %s\n"
-msgstr "nie mo¿na otworzyæ fd %d: %s\n"
+msgstr "nie można otworzyć fd %d: %s\n"
 
 msgid "set debugging flags"
 msgstr "ustawienie flag diagnostycznych"
 
 msgid "enable full debugging"
-msgstr "w³±czenie pe³nej diagnostyki"
+msgstr "włączenie pełnej diagnostyki"
 
 msgid "Usage: kbxutil [options] [files] (-h for help)"
-msgstr "Wywo³anie: kbxutil [opcje] [pliki] (-h podaje pomoc)"
+msgstr "Wywołanie: kbxutil [opcje] [pliki] (-h podaje pomoc)"
 
 msgid ""
 "Syntax: kbxutil [options] [files]\n"
 "List, export, import Keybox data\n"
 msgstr ""
-"Sk³adnia: kbxutil [opcje] [pliki]\n"
+"Składnia: kbxutil [opcje] [pliki]\n"
 "Wypisywanie, eksport, import danych Keybox\n"
 
 #, c-format
 msgid "RSA modulus missing or not of size %d bits\n"
-msgstr "reszta RSA brakuj±ca lub o rozmiarze innym ni¿ %d bity\n"
+msgstr "reszta RSA brakująca lub o rozmiarze innym niż %d bity\n"
 
 #, c-format
 msgid "RSA public exponent missing or larger than %d bits\n"
-msgstr "publiczny wyk³adnik RSA brakuj±cy lub wiêkszy ni¿ %d bity\n"
+msgstr "publiczny wykładnik RSA brakujący lub większy niż %d bity\n"
 
 #, c-format
 msgid "PIN callback returned error: %s\n"
-msgstr "Zapytanie zwrotne o PIN zwróci³o b³±d: %s\n"
+msgstr "Zapytanie zwrotne o PIN zwróciło błąd: %s\n"
 
 msgid "the NullPIN has not yet been changed\n"
-msgstr "NullPIN nie zosta³ jeszcze zmieniony\n"
+msgstr "NullPIN nie został jeszcze zmieniony\n"
 
 msgid "|N|Please enter a new PIN for the standard keys."
-msgstr "|N|Proszê wprowadziæ nowy PIN dla zwyk³ych kluczy."
+msgstr "|N|Proszę wprowadzić nowy PIN dla zwykłych kluczy."
 
 msgid "||Please enter the PIN for the standard keys."
-msgstr "||Proszê wprowadziæ PIN dla zwyk³ych kluczy."
+msgstr "||Proszę wprowadzić PIN dla zwykłych kluczy."
 
 msgid "|NP|Please enter a new PIN Unblocking Code (PUK) for the standard keys."
 msgstr ""
-"|NP|Proszê wprowadziæ nowy kod oblokowuj±cy PIN (PUK) dla zwyk³ych kluczy."
+"|NP|Proszę wprowadzić nowy kod oblokowujący PIN (PUK) dla zwykłych kluczy."
 
 msgid "|P|Please enter the PIN Unblocking Code (PUK) for the standard keys."
-msgstr "|P|Proszê wprowadziæ kod odblokowuj±cy PIN (PUK) dla zwyk³ych kluczy."
+msgstr "|P|Proszę wprowadzić kod odblokowujący PIN (PUK) dla zwykłych kluczy."
 
 msgid "|N|Please enter a new PIN for the key to create qualified signatures."
 msgstr ""
-"|N|Proszê wprowadziæ nowy PIN dla klucza do tworzenia podpisów "
+"|N|Proszę wprowadzić nowy PIN dla klucza do tworzenia podpisów "
 "kwalifikowanych."
 
 msgid "||Please enter the PIN for the key to create qualified signatures."
 msgstr ""
-"||Proszê wprowadziæ PIN PIN dla klucza do tworzenia podpisów kwalifikowanych."
+"||Proszę wprowadzić PIN PIN dla klucza do tworzenia podpisów kwalifikowanych."
 
 msgid ""
 "|NP|Please enter a new PIN Unblocking Code (PUK) for the key to create "
 "qualified signatures."
 msgstr ""
-"|NP|Proszê wprowadziæ nowy kod odblokowuj±cy PIN (PUK) dla klucza do "
-"tworzenia podpisów kwalifikowanych."
+"|NP|Proszę wprowadzić nowy kod odblokowujący PIN (PUK) dla klucza do "
+"tworzenia podpisów kwalifikowanych."
 
 msgid ""
 "|P|Please enter the PIN Unblocking Code (PUK) for the key to create "
 "qualified signatures."
 msgstr ""
-"|P|Proszê wprowadziæ kod odblokowuj±cy PIN (PUK) dla klucza do tworzenia "
-"podpisów kwalifikowanych."
+"|P|Proszę wprowadzić kod odblokowujący PIN (PUK) dla klucza do tworzenia "
+"podpisów kwalifikowanych."
 
 #, c-format
 msgid "error getting new PIN: %s\n"
-msgstr "b³±d podczas odczytu nowego PIN-u: %s\n"
+msgstr "błąd podczas odczytu nowego PIN-u: %s\n"
 
 #, c-format
 msgid "failed to store the fingerprint: %s\n"
-msgstr "nie powiód³ siê zapis odcisku: %s\n"
+msgstr "nie powiódł się zapis odcisku: %s\n"
 
 #, c-format
 msgid "failed to store the creation date: %s\n"
-msgstr "nie powiód³ siê zapis daty utworzenia: %s\n"
-
-#, c-format
-msgid "reading public key failed: %s\n"
-msgstr "odczyt klucza publicznego nie powiód³ siê: %s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr "odpowied¼ nie zawiera danych klucza publicznego\n"
+msgstr "nie powiódł się zapis daty utworzenia: %s\n"
 
 msgid "response does not contain the RSA modulus\n"
-msgstr "odpowied¼ nie zawiera wspó³czynnika RSA\n"
+msgstr "odpowiedź nie zawiera współczynnika RSA\n"
 
 msgid "response does not contain the RSA public exponent\n"
-msgstr "odpowied¼ nie zawiera publicznego wyk³adnika RSA\n"
+msgstr "odpowiedź nie zawiera publicznego wykładnika RSA\n"
 
 #, fuzzy
 #| msgid "response does not contain the RSA public exponent\n"
-msgid "response does not contain the EC public point\n"
-msgstr "odpowied¼ nie zawiera publicznego wyk³adnika RSA\n"
+msgid "response does not contain the EC public key\n"
+msgstr "odpowiedź nie zawiera publicznego wykładnika RSA\n"
+
+msgid "response does not contain the public key data\n"
+msgstr "odpowiedź nie zawiera danych klucza publicznego\n"
+
+#, c-format
+msgid "reading public key failed: %s\n"
+msgstr "odczyt klucza publicznego nie powiódł się: %s\n"
 
 #, c-format
 msgid "using default PIN as %s\n"
-msgstr "u¿ycie domy¶lnego PIN-u jako %s\n"
+msgstr "użycie domyślnego PIN-u jako %s\n"
 
 #, c-format
 msgid "failed to use default PIN as %s: %s - disabling further default use\n"
 msgstr ""
-"nie uda³o siê u¿yæ domy¶lnego PIN-u jako %s: %s - wy³±czenie dalszego "
-"domy¶lnego u¿ycia\n"
+"nie udało się użyć domyślnego PIN-u jako %s: %s - wyłączenie dalszego "
+"domyślnego użycia\n"
 
 #, c-format
 msgid "||Please enter the PIN%%0A[sigs done: %lu]"
-msgstr "||Proszê wpisaæ PIN%%0A[podpisów wykonanych: %lu]"
+msgstr "||Proszę wpisać PIN%%0A[podpisów wykonanych: %lu]"
 
 msgid "||Please enter the PIN"
-msgstr "||Proszê wpisaæ PIN"
+msgstr "||Proszę wpisać PIN"
 
 #, c-format
 msgid "PIN for CHV%d is too short; minimum length is %d\n"
-msgstr "PIN dla CHV%d jest zbyt krótki; minimalna d³ugo¶æ to %d\n"
+msgstr "PIN dla CHV%d jest zbyt krótki; minimalna długość to %d\n"
 
 #, c-format
 msgid "verify CHV%d failed: %s\n"
-msgstr "weryfikacja CHV%d nie powiod³a siê: %s\n"
+msgstr "weryfikacja CHV%d nie powiodła się: %s\n"
 
 msgid "error retrieving CHV status from card\n"
-msgstr "b³±d podczas odczytu stanu CHV z karty\n"
+msgstr "błąd podczas odczytu stanu CHV z karty\n"
 
 msgid "card is permanently locked!\n"
-msgstr "karta zosta³a trwale zablokowana!\n"
+msgstr "karta została trwale zablokowana!\n"
 
 #, fuzzy, c-format
 #| msgid "%d Admin PIN attempts remaining before card is permanently locked\n"
@@ -6330,36 +6404,36 @@ msgid "%d Admin PIN attempt remaining before card is permanently locked\n"
 msgid_plural ""
 "%d Admin PIN attempts remaining before card is permanently locked\n"
 msgstr[0] ""
-"Zosta³o %d prób PIN-u administracyjnego do trwa³ego zablokowania karty\n"
+"Zostało %d prób PIN-u administracyjnego do trwałego zablokowania karty\n"
 msgstr[1] ""
-"Zosta³o %d prób PIN-u administracyjnego do trwa³ego zablokowania karty\n"
+"Zostało %d prób PIN-u administracyjnego do trwałego zablokowania karty\n"
 msgstr[2] ""
-"Zosta³o %d prób PIN-u administracyjnego do trwa³ego zablokowania karty\n"
+"Zostało %d prób PIN-u administracyjnego do trwałego zablokowania karty\n"
 
 #. TRANSLATORS: Do not translate the "|A|" prefix but keep it at
 #. the start of the string.  Use %%0A to force a linefeed.
 #, c-format
 msgid "|A|Please enter the Admin PIN%%0A[remaining attempts: %d]"
-msgstr "|A|Proszê wprowadziæ PIN administracyjny%%0A[pozosta³o prób: %d]"
+msgstr "|A|Proszę wprowadzić PIN administracyjny%%0A[pozostało prób: %d]"
 
 msgid "|A|Please enter the Admin PIN"
-msgstr "|A|Proszê wprowadziæ PIN administracyjny"
+msgstr "|A|Proszę wprowadzić PIN administracyjny"
 
 msgid "access to admin commands is not configured\n"
-msgstr "dostêp do poleceñ administratora nie zosta³ skonfigurowany\n"
+msgstr "dostęp do poleceń administratora nie został skonfigurowany\n"
 
 msgid "||Please enter the Reset Code for the card"
-msgstr "||Proszê wprowadziæ kod resetuj±cy dla karty"
+msgstr "||Proszę wprowadzić kod resetujący dla karty"
 
 #, c-format
 msgid "Reset Code is too short; minimum length is %d\n"
-msgstr "Kod resetuj±cy zbyt krótki; minimalna d³ugo¶æ to %d\n"
+msgstr "Kod resetujący zbyt krótki; minimalna długość to %d\n"
 
 #. TRANSLATORS: Do not translate the "|*|" prefixes but
 #. keep it at the start of the string.  We need this elsewhere
 #. to get some infos on the string.
 msgid "|RN|New Reset Code"
-msgstr "|RN|Nowy kod resetuj±cy"
+msgstr "|RN|Nowy kod resetujący"
 
 msgid "|AN|New Admin PIN"
 msgstr "|AN|Nowy PIN administracyjny"
@@ -6368,22 +6442,22 @@ msgid "|N|New PIN"
 msgstr "|N|Nowy PIN"
 
 msgid "||Please enter the Admin PIN and New Admin PIN"
-msgstr "||Proszê wprowadziæ PIN administracyjny i nowy PIN administracyjny"
+msgstr "||Proszę wprowadzić PIN administracyjny i nowy PIN administracyjny"
 
 msgid "||Please enter the PIN and New PIN"
-msgstr "||Proszê wprowadziæ PIN i nowy PIN"
+msgstr "||Proszę wprowadzić PIN i nowy PIN"
 
 msgid "error reading application data\n"
-msgstr "b³±d podczas odczytu danych aplikacji\n"
+msgstr "błąd podczas odczytu danych aplikacji\n"
 
 msgid "error reading fingerprint DO\n"
-msgstr "b³±d podczas odczytu odcisku DO\n"
+msgstr "błąd podczas odczytu odcisku DO\n"
 
 msgid "key already exists\n"
-msgstr "klucz ju¿ istnieje\n"
+msgstr "klucz już istnieje\n"
 
 msgid "existing key will be replaced\n"
-msgstr "istniej±cy klucz zostanie zast±piony\n"
+msgstr "istniejący klucz zostanie zastąpiony\n"
 
 msgid "generating new key\n"
 msgstr "generowanie nowego klucza\n"
@@ -6396,44 +6470,44 @@ msgstr "brak datownika utworzenia\n"
 
 #, c-format
 msgid "RSA prime %s missing or not of size %d bits\n"
-msgstr "liczba pierwsza %s RSA brakuj±ca lub o rozmiarze innym ni¿ %d bitów\n"
+msgstr "liczba pierwsza %s RSA brakująca lub o rozmiarze innym niż %d bitów\n"
 
 #, c-format
 msgid "failed to store the key: %s\n"
-msgstr "nie powiód³ siê zapis klucza: %s\n"
+msgstr "nie powiódł się zapis klucza: %s\n"
 
 #, fuzzy
 #| msgid "unsupported algorithm: %s"
 msgid "unsupported curve\n"
-msgstr "nieobs³ugiwany algorytm: %s"
+msgstr "nieobsługiwany algorytm: %s"
 
 msgid "please wait while key is being generated ...\n"
-msgstr "proszê czekaæ na wygenerowanie klucza...\n"
+msgstr "proszę czekać na wygenerowanie klucza...\n"
 
 msgid "generating key failed\n"
-msgstr "generowanie klucza nie powiod³o siê\n"
+msgstr "generowanie klucza nie powiodło się\n"
 
 #, fuzzy, c-format
 #| msgid "key generation completed (%d seconds)\n"
 msgid "key generation completed (%d second)\n"
 msgid_plural "key generation completed (%d seconds)\n"
-msgstr[0] "generowanie klucza zakoñczone (%d sekund)\n"
-msgstr[1] "generowanie klucza zakoñczone (%d sekund)\n"
-msgstr[2] "generowanie klucza zakoñczone (%d sekund)\n"
+msgstr[0] "generowanie klucza zakończone (%d sekund)\n"
+msgstr[1] "generowanie klucza zakończone (%d sekund)\n"
+msgstr[2] "generowanie klucza zakończone (%d sekund)\n"
 
 msgid "invalid structure of OpenPGP card (DO 0x93)\n"
 msgstr "niepoprawna struktura karty OpenPGP (DO 0x93)\n"
 
 msgid "fingerprint on card does not match requested one\n"
-msgstr "odcisk na karcie nie zgadza siê z ¿±danym\n"
+msgstr "odcisk na karcie nie zgadza się z żądanym\n"
 
 #, c-format
 msgid "card does not support digest algorithm %s\n"
-msgstr "karta nie obs³uguje algorytmu skrótu %s\n"
+msgstr "karta nie obsługuje algorytmu skrótu %s\n"
 
 #, c-format
 msgid "signatures created so far: %lu\n"
-msgstr "dotychczas stworzono podpisów: %lu\n"
+msgstr "dotychczas stworzono podpisów: %lu\n"
 
 msgid ""
 "verification of Admin PIN is currently prohibited through this command\n"
@@ -6443,16 +6517,16 @@ msgstr ""
 
 #, c-format
 msgid "can't access %s - invalid OpenPGP card?\n"
-msgstr "nie mo¿na dostaæ siê do %s - niepoprawna karta OpenPGP?\n"
+msgstr "nie można dostać się do %s - niepoprawna karta OpenPGP?\n"
 
 msgid "||Please enter your PIN at the reader's pinpad"
-msgstr "||Proszê wprowadziæ PIN na klawiaturze czytnika"
+msgstr "||Proszę wprowadzić PIN na klawiaturze czytnika"
 
 #. TRANSLATORS: Do not translate the "|*|" prefixes but
 #. keep it at the start of the string.  We need this elsewhere
 #. to get some infos on the string.
 msgid "|N|Initial New PIN"
-msgstr "|N|Pocz±tkowy nowy PIN"
+msgstr "|N|Początkowy nowy PIN"
 
 msgid "run in multi server mode (foreground)"
 msgstr "uruchomienie w trybie serwera (pierwszoplanowo)"
@@ -6461,36 +6535,36 @@ msgid "|LEVEL|set the debugging level to LEVEL"
 msgstr "|POZIOM|ustawienie POZIOMU diagnostyki"
 
 msgid "|FILE|write a log to FILE"
-msgstr "|PLIK|zapisanie logów do PLIKu"
+msgstr "|PLIK|zapisanie logów do PLIKu"
 
 msgid "|N|connect to reader at port N"
-msgstr "|N|po³±czenie z czytnikiem na porcie N"
+msgstr "|N|połączenie z czytnikiem na porcie N"
 
 msgid "|NAME|use NAME as ct-API driver"
-msgstr "|NAZWA|u¿ycie NAZWY jako sterownika ct-API"
+msgstr "|NAZWA|użycie NAZWY jako sterownika ct-API"
 
 msgid "|NAME|use NAME as PC/SC driver"
-msgstr "|NAZWA|u¿ycie NAZWY jako sterownika PC/SC"
+msgstr "|NAZWA|użycie NAZWY jako sterownika PC/SC"
 
 msgid "do not use the internal CCID driver"
-msgstr "nie u¿ywanie wewnêtrznego sterownika CCID"
+msgstr "nie używanie wewnętrznego sterownika CCID"
 
 msgid "|N|disconnect the card after N seconds of inactivity"
-msgstr "|N|od³±czenie karty po N sekundach nieaktywno¶ci"
+msgstr "|N|odłączenie karty po N sekundach nieaktywności"
 
 msgid "do not use a reader's pinpad"
-msgstr "nie u¿ywanie klawiatury czytnika"
+msgstr "nie używanie klawiatury czytnika"
 
 msgid "deny the use of admin card commands"
-msgstr "zabronienie u¿ywania poleceñ karty administratora"
+msgstr "zabronienie używania poleceń karty administratora"
 
 msgid "use variable length input for pinpad"
-msgstr "u¿ycie wej¶cia z klawiatury czytnika o zmiennej d³ugo¶ci"
+msgstr "użycie wejścia z klawiatury czytnika o zmiennej długości"
 
 #, fuzzy
 #| msgid "Usage: gpgconf [options] (-h for help)"
 msgid "Usage: @SCDAEMON@ [options] (-h for help)"
-msgstr "Wywo³anie: gpgconf [opcje] (-h podaje pomoc)"
+msgstr "Wywołanie: gpgconf [opcje] (-h podaje pomoc)"
 
 #, fuzzy
 #| msgid ""
@@ -6500,45 +6574,45 @@ msgid ""
 "Syntax: scdaemon [options] [command [args]]\n"
 "Smartcard daemon for @GNUPG@\n"
 msgstr ""
-"Sk³adnia: scdaemon [opcje] [polecenie [argumenty]]\n"
+"Składnia: scdaemon [opcje] [polecenie [argumenty]]\n"
 "Demon kart procesorowych dla GnuPG\n"
 
 #, fuzzy
 #| msgid ""
 #| "please use the option `--daemon' to run the program in the background\n"
 msgid "please use the option '--daemon' to run the program in the background\n"
-msgstr "proszê u¿yæ opcji ,,--daemon'' do uruchomienia programu w tle\n"
+msgstr "proszę użyć opcji ,,--daemon'' do uruchomienia programu w tle\n"
 
 #, c-format
 msgid "handler for fd %d started\n"
-msgstr "obs³uga fd %d uruchomiona\n"
+msgstr "obsługa fd %d uruchomiona\n"
 
 #, c-format
 msgid "handler for fd %d terminated\n"
-msgstr "obs³uga fd %d zakoñczona\n"
+msgstr "obsługa fd %d zakończona\n"
 
 #, c-format
 msgid "invalid radix64 character %02x skipped\n"
-msgstr "niew³a¶ciwy znak formatu radix64 %02x zosta³ pominiêty\n"
+msgstr "niewłaściwy znak formatu radix64 %02x został pominięty\n"
 
 #, fuzzy
 #| msgid "no gpg-agent running in this session\n"
 msgid "no dirmngr running in this session\n"
-msgstr "brak dzia³aj±cego gpg-agenta w tej sesji\n"
+msgstr "brak działającego gpg-agenta w tej sesji\n"
 
 #, c-format
 msgid "validation model requested by certificate: %s"
-msgstr "model poprawno¶ci ¿±dany przez certyfikat: %s"
+msgstr "model poprawności żądany przez certyfikat: %s"
 
 msgid "chain"
-msgstr "³añcuchowy"
+msgstr "łańcuchowy"
 
 msgid "shell"
-msgstr "pow³okowy"
+msgstr "powłokowy"
 
 #, c-format
 msgid "critical certificate extension %s is not supported"
-msgstr "krytyczne rozszerzenie certyfikatu %s nie jest obs³ugiwane"
+msgstr "krytyczne rozszerzenie certyfikatu %s nie jest obsługiwane"
 
 msgid "issuer certificate is not marked as a CA"
 msgstr "wystawca certyfikatu nie jest oznaczony jako CA"
@@ -6549,7 +6623,7 @@ msgstr "polityka oznaczona jako krytyczna bez skonfigurowanych polityk"
 #, fuzzy, c-format
 #| msgid "failed to open `%s': %s\n"
 msgid "failed to open '%s': %s\n"
-msgstr "nie uda³o siê otworzyæ ,,%s'': %s\n"
+msgstr "nie udało się otworzyć ,,%s'': %s\n"
 
 #, fuzzy
 #| msgid "note: non-critical certificate policy not allowed"
@@ -6560,77 +6634,77 @@ msgid "certificate policy not allowed"
 msgstr "polityka certyfikatu niedozwolona"
 
 msgid "looking up issuer at external location\n"
-msgstr "poszukiwanie wystawcy na zewn±trz\n"
+msgstr "poszukiwanie wystawcy na zewnątrz\n"
 
 #, c-format
 msgid "number of issuers matching: %d\n"
-msgstr "liczba pasuj±cych wystawców: %d\n"
+msgstr "liczba pasujących wystawców: %d\n"
 
 msgid "looking up issuer from the Dirmngr cache\n"
-msgstr "poszukiwanie wystawcy w pamiêci podrêcznej Dirmngr\n"
+msgstr "poszukiwanie wystawcy w pamięci podręcznej Dirmngr\n"
 
 #, c-format
 msgid "number of matching certificates: %d\n"
-msgstr "liczba pasuj±cych certyfikatów: %d\n"
+msgstr "liczba pasujących certyfikatów: %d\n"
 
 #, c-format
 msgid "dirmngr cache-only key lookup failed: %s\n"
 msgstr ""
-"wyszukiwanie klucza tylko w pamiêci podrêcznej dirmngr nie powiod³o siê: %s\n"
+"wyszukiwanie klucza tylko w pamięci podręcznej dirmngr nie powiodło się: %s\n"
 
 msgid "failed to allocate keyDB handle\n"
-msgstr "nie uda³o siê przydzieliæ uchwytu keyDB\n"
+msgstr "nie udało się przydzielić uchwytu keyDB\n"
 
 msgid "certificate has been revoked"
-msgstr "certyfikat zosta³ uniewa¿niony"
+msgstr "certyfikat został unieważniony"
 
 msgid "the status of the certificate is unknown"
 msgstr "status certyfikatu jest nieznany"
 
 msgid "please make sure that the \"dirmngr\" is properly installed\n"
-msgstr "proszê upewniæ siê, ¿e ,,dirmngr'' jest poprawnie zainstalowany\n"
+msgstr "proszę upewnić się, że ,,dirmngr'' jest poprawnie zainstalowany\n"
 
 #, c-format
 msgid "checking the CRL failed: %s"
-msgstr "sprawdzenie CRL nie powiod³o siê: %s"
+msgstr "sprawdzenie CRL nie powiodło się: %s"
 
 #, c-format
 msgid "certificate with invalid validity: %s"
-msgstr "certyfikat o niewa¿nej wa¿no¶ci: %s"
+msgstr "certyfikat o nieważnej ważności: %s"
 
 msgid "certificate not yet valid"
-msgstr "certyfikat jeszcze nie jest wa¿ny"
+msgstr "certyfikat jeszcze nie jest ważny"
 
 msgid "root certificate not yet valid"
-msgstr "certyfikat g³ówny jeszcze nie jest wa¿ny"
+msgstr "certyfikat główny jeszcze nie jest ważny"
 
 msgid "intermediate certificate not yet valid"
-msgstr "certyfikat po¶redni jeszcze nie jest wa¿ny"
+msgstr "certyfikat pośredni jeszcze nie jest ważny"
 
 msgid "certificate has expired"
-msgstr "certyfikat wygas³"
+msgstr "certyfikat wygasł"
 
 msgid "root certificate has expired"
-msgstr "certyfikat g³ówny wygas³"
+msgstr "certyfikat główny wygasł"
 
 msgid "intermediate certificate has expired"
-msgstr "certyfikat po¶redni wygas³"
+msgstr "certyfikat pośredni wygasł"
 
 #, c-format
 msgid "required certificate attributes missing: %s%s%s"
-msgstr "brak wymaganych atrybutów certyfikatu: %s%s%s"
+msgstr "brak wymaganych atrybutów certyfikatu: %s%s%s"
 
 msgid "certificate with invalid validity"
-msgstr "certyfikat o niewa¿nej wa¿no¶ci"
+msgstr "certyfikat o nieważnej ważności"
 
 msgid "signature not created during lifetime of certificate"
-msgstr "podpis nie utworzony w czasie ¿ycia certyfikatu"
+msgstr "podpis nie utworzony w czasie życia certyfikatu"
 
 msgid "certificate not created during lifetime of issuer"
-msgstr "certyfikat nie utworzony w czasie ¿ycia wystawcy"
+msgstr "certyfikat nie utworzony w czasie życia wystawcy"
 
 msgid "intermediate certificate not created during lifetime of issuer"
-msgstr "po¶redni certyfikat nie utworzony w czasie ¿ycia wystawcy"
+msgstr "pośredni certyfikat nie utworzony w czasie życia wystawcy"
 
 msgid "  (  signature created at "
 msgstr "  (  podpis utworzony "
@@ -6639,75 +6713,75 @@ msgid "  (certificate created at "
 msgstr "  (certyfikat utworzony "
 
 msgid "  (certificate valid from "
-msgstr "  (certyfikat wa¿ny od "
+msgstr "  (certyfikat ważny od "
 
 msgid "  (     issuer valid from "
-msgstr "  (     wystawca wa¿ny od "
+msgstr "  (     wystawca ważny od "
 
 #, c-format
 msgid "fingerprint=%s\n"
 msgstr "odcisk=%s\n"
 
 msgid "root certificate has now been marked as trusted\n"
-msgstr "g³ówny certyfikat nie zosta³ oznaczony jako zaufany\n"
+msgstr "główny certyfikat nie został oznaczony jako zaufany\n"
 
 msgid "interactive marking as trusted not enabled in gpg-agent\n"
-msgstr "interaktywne oznaczanie zaufania nie w³±czone w gpg-agencie\n"
+msgstr "interaktywne oznaczanie zaufania nie włączone w gpg-agencie\n"
 
 msgid "interactive marking as trusted disabled for this session\n"
-msgstr "interaktywne oznaczanie zaufania wy³±czone dla tej sesji\n"
+msgstr "interaktywne oznaczanie zaufania wyłączone dla tej sesji\n"
 
 msgid "WARNING: creation time of signature not known - assuming current time"
-msgstr "UWAGA: czas utworzenia podpisu nie jest znany - przyjêto czas bie¿±cy"
+msgstr "UWAGA: czas utworzenia podpisu nie jest znany - przyjęto czas bieżący"
 
 msgid "no issuer found in certificate"
 msgstr "nie znaleziono wystawcy w certyfikacie"
 
 msgid "self-signed certificate has a BAD signature"
-msgstr "w³asnorêcznie podpisany certyfikat ma Z£Y podpis"
+msgstr "własnoręcznie podpisany certyfikat ma ZŁY podpis"
 
 msgid "root certificate is not marked trusted"
-msgstr "g³ówny certyfikat nie jest oznaczony jako zaufany"
+msgstr "główny certyfikat nie jest oznaczony jako zaufany"
 
 #, c-format
 msgid "checking the trust list failed: %s\n"
-msgstr "sprawdzenie listy zaufania nie powiod³o siê: %s\n"
+msgstr "sprawdzenie listy zaufania nie powiodło się: %s\n"
 
 msgid "certificate chain too long\n"
-msgstr "³añcuch certyfikatów zbyt d³ugi\n"
+msgstr "łańcuch certyfikatów zbyt długi\n"
 
 msgid "issuer certificate not found"
 msgstr "nie znaleziono wystawcy certyfikatu"
 
 msgid "certificate has a BAD signature"
-msgstr "certyfikat ma Z£Y podpis"
+msgstr "certyfikat ma ZŁY podpis"
 
 msgid "found another possible matching CA certificate - trying again"
-msgstr "znaleziono inny byæ mo¿e pasuj±cy certyfikat CA - ponawianie próby"
+msgstr "znaleziono inny być może pasujący certyfikat CA - ponawianie próby"
 
 #, c-format
 msgid "certificate chain longer than allowed by CA (%d)"
-msgstr "³añcuch certyfikatów d³u¿szy ni¿ zezwala CA (%d)"
+msgstr "łańcuch certyfikatów dłuższy niż zezwala CA (%d)"
 
 msgid "certificate is good\n"
 msgstr "certyfikat jest dobry\n"
 
 msgid "intermediate certificate is good\n"
-msgstr "certyfikat poredni jest dobry\n"
+msgstr "certyfikat pośredni jest dobry\n"
 
 msgid "root certificate is good\n"
-msgstr "certyfikat g³ówny jest dobry\n"
+msgstr "certyfikat główny jest dobry\n"
 
 msgid "switching to chain model"
-msgstr "prze³±czanie do modelu ³añcuchowego"
+msgstr "przełączanie do modelu łańcuchowego"
 
 #, c-format
 msgid "validation model used: %s"
-msgstr "u¿yty model poprawno¶ci: %s"
+msgstr "użyty model poprawności: %s"
 
 #, c-format
 msgid "a %u bit hash is not valid for a %u bit %s key\n"
-msgstr "skrót %u-bitowy nie jest poprawny dla %u-bitowego klucza %s\n"
+msgstr "skrót %u-bitowy nie jest poprawny dla %u-bitowego klucza %s\n"
 
 msgid "(this is the MD2 algorithm)\n"
 msgstr "(to jest algorytm MD2)\n"
@@ -6716,16 +6790,16 @@ msgid "none"
 msgstr "brak"
 
 msgid "[Error - invalid encoding]"
-msgstr "[B³±d - niew³a¶ciwe kodowanie]"
+msgstr "[Błąd - niewłaściwe kodowanie]"
 
 msgid "[Error - out of core]"
-msgstr "[B³±d - brak pamiêci]"
+msgstr "[Błąd - brak pamięci]"
 
 msgid "[Error - No name]"
-msgstr "[B³±d - Brak nazwy]"
+msgstr "[Błąd - Brak nazwy]"
 
 msgid "[Error - invalid DN]"
-msgstr "[B³±d - niew³a¶ciwe DN]"
+msgstr "[Błąd - niewłaściwe DN]"
 
 #, c-format
 msgid ""
@@ -6735,44 +6809,44 @@ msgid ""
 "S/N %s, ID 0x%08lX,\n"
 "created %s, expires %s.\n"
 msgstr ""
-"Proszê wprowadziæ has³o aby odbezpieczyæ klucz tajny certyfikatu X.509:\n"
+"Proszę wprowadzić hasło aby odbezpieczyć klucz tajny certyfikatu X.509:\n"
 ",,%s''\n"
 "S/N %s, ID 0x%08lX,\n"
 "stworzony %s, wygasa %s.\n"
 
 msgid "no key usage specified - assuming all usages\n"
 msgstr ""
-"nie okre¶lono sposobu wykorzystania klucza - przyjêto wszystkie sposoby\n"
+"nie określono sposobu wykorzystania klucza - przyjęto wszystkie sposoby\n"
 
 #, c-format
 msgid "error getting key usage information: %s\n"
-msgstr "b³±d podczas pobierania informacji o wykorzystaniu klucza: %s\n"
+msgstr "błąd podczas pobierania informacji o wykorzystaniu klucza: %s\n"
 
 msgid "certificate should not have been used for certification\n"
-msgstr "certyfikat nie powinien byæ u¿ywany do po¶wiadczania\n"
+msgstr "certyfikat nie powinien być używany do poświadczania\n"
 
 msgid "certificate should not have been used for OCSP response signing\n"
-msgstr "certyfikat nie powinien byæ u¿ywany do podpisywania odpowiedzi OCSP\n"
+msgstr "certyfikat nie powinien być używany do podpisywania odpowiedzi OCSP\n"
 
 msgid "certificate should not have been used for encryption\n"
-msgstr "certyfikat nie powinien byæ u¿ywany do szyfrowania\n"
+msgstr "certyfikat nie powinien być używany do szyfrowania\n"
 
 msgid "certificate should not have been used for signing\n"
-msgstr "certyfikat nie powinien byæ u¿ywany do podpisywania\n"
+msgstr "certyfikat nie powinien być używany do podpisywania\n"
 
 msgid "certificate is not usable for encryption\n"
-msgstr "certyfikat nie nadaje siê do szyfrowania\n"
+msgstr "certyfikat nie nadaje się do szyfrowania\n"
 
 msgid "certificate is not usable for signing\n"
-msgstr "certyfikat nie nadaje siê do podpisywania\n"
+msgstr "certyfikat nie nadaje się do podpisywania\n"
 
 #, c-format
 msgid "line %d: invalid algorithm\n"
-msgstr "linia %d: niew³a¶ciwy algorytm\n"
+msgstr "linia %d: niewłaściwy algorytm\n"
 
 #, c-format
 msgid "line %d: invalid key length %u (valid are %d to %d)\n"
-msgstr "linia %d: niew³a¶ciwa d³ugo¶æ klucza %u (poprawne s± od %d do %d)\n"
+msgstr "linia %d: niewłaściwa długość klucza %u (poprawne są od %d do %d)\n"
 
 #, c-format
 msgid "line %d: no subject name given\n"
@@ -6781,12 +6855,12 @@ msgstr "linia %d: nie podano nazwy przedmiotu\n"
 #, fuzzy, c-format
 #| msgid "line %d: invalid subject name label `%.*s'\n"
 msgid "line %d: invalid subject name label '%.*s'\n"
-msgstr "linia %d: niew³a¶ciwa etykieta nazwy przedmiotu ,,%.*s''\n"
+msgstr "linia %d: niewłaściwa etykieta nazwy przedmiotu ,,%.*s''\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: invalid subject name `%s' at pos %d\n"
 msgid "line %d: invalid subject name '%s' at pos %d\n"
-msgstr "linia %d: niew³a¶ciwa nazwa przedmiotu ,,%s'' na pozycji %d\n"
+msgstr "linia %d: niewłaściwa nazwa przedmiotu ,,%s'' na pozycji %d\n"
 
 #, c-format
 msgid "line %d: not a valid email address\n"
@@ -6795,67 +6869,67 @@ msgstr "linia %d: niepoprawny adres e-mail\n"
 #, fuzzy, c-format
 #| msgid "line %d: invalid algorithm\n"
 msgid "line %d: invalid serial number\n"
-msgstr "linia %d: niew³a¶ciwy algorytm\n"
+msgstr "linia %d: niewłaściwy algorytm\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: invalid subject name label `%.*s'\n"
 msgid "line %d: invalid issuer name label '%.*s'\n"
-msgstr "linia %d: niew³a¶ciwa etykieta nazwy przedmiotu ,,%.*s''\n"
+msgstr "linia %d: niewłaściwa etykieta nazwy przedmiotu ,,%.*s''\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: invalid subject name `%s' at pos %d\n"
 msgid "line %d: invalid issuer name '%s' at pos %d\n"
-msgstr "linia %d: niew³a¶ciwa nazwa przedmiotu ,,%s'' na pozycji %d\n"
+msgstr "linia %d: niewłaściwa nazwa przedmiotu ,,%s'' na pozycji %d\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: invalid algorithm\n"
 msgid "line %d: invalid date given\n"
-msgstr "linia %d: niew³a¶ciwy algorytm\n"
+msgstr "linia %d: niewłaściwy algorytm\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: error getting key by keygrip `%s': %s\n"
 msgid "line %d: error getting signing key by keygrip '%s': %s\n"
-msgstr "linia %d: b³±d pobierania klucza z uchwytu ,,%s'': %s\n"
+msgstr "linia %d: błąd pobierania klucza z uchwytu ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: invalid algorithm\n"
 msgid "line %d: invalid hash algorithm given\n"
-msgstr "linia %d: niew³a¶ciwy algorytm\n"
+msgstr "linia %d: niewłaściwy algorytm\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: invalid algorithm\n"
 msgid "line %d: invalid authority-key-id\n"
-msgstr "linia %d: niew³a¶ciwy algorytm\n"
+msgstr "linia %d: niewłaściwy algorytm\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: invalid subject name `%s' at pos %d\n"
 msgid "line %d: invalid subject-key-id\n"
-msgstr "linia %d: niew³a¶ciwa nazwa przedmiotu ,,%s'' na pozycji %d\n"
+msgstr "linia %d: niewłaściwa nazwa przedmiotu ,,%s'' na pozycji %d\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: invalid algorithm\n"
 msgid "line %d: invalid extension syntax\n"
-msgstr "linia %d: niew³a¶ciwy algorytm\n"
+msgstr "linia %d: niewłaściwy algorytm\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: error reading key `%s' from card: %s\n"
 msgid "line %d: error reading key '%s' from card: %s\n"
-msgstr "linia %d: b³±d odczytu klucza ,,%s'' z karty: %s\n"
+msgstr "linia %d: błąd odczytu klucza ,,%s'' z karty: %s\n"
 
 #, fuzzy, c-format
 #| msgid "line %d: error getting key by keygrip `%s': %s\n"
 msgid "line %d: error getting key by keygrip '%s': %s\n"
-msgstr "linia %d: b³±d pobierania klucza z uchwytu ,,%s'': %s\n"
+msgstr "linia %d: błąd pobierania klucza z uchwytu ,,%s'': %s\n"
 
 #, c-format
 msgid "line %d: key generation failed: %s <%s>\n"
-msgstr "linia %d: generowanie klucza nie powiod³o siê: %s <%s>\n"
+msgstr "linia %d: generowanie klucza nie powiodło się: %s <%s>\n"
 
 msgid ""
 "To complete this certificate request please enter the passphrase for the key "
 "you just created once more.\n"
 msgstr ""
-"Aby zakoñczyæ to ¿±danie certyfikatu proszê wprowadziæ jeszcze raz has³o dla "
+"Aby zakończyć to żądanie certyfikatu proszę wprowadzić jeszcze raz hasło dla "
 "utworzonego klucza.\n"
 
 #, c-format
@@ -6864,26 +6938,26 @@ msgstr "   (%d) RSA\n"
 
 #, c-format
 msgid "   (%d) Existing key\n"
-msgstr "   (%d) Istniej±cy klucz\n"
+msgstr "   (%d) Istniejący klucz\n"
 
 #, c-format
 msgid "   (%d) Existing key from card\n"
-msgstr "   (%d) Istniej±cy klucz z karty\n"
+msgstr "   (%d) Istniejący klucz z karty\n"
 
 #, c-format
 msgid "error reading the card: %s\n"
-msgstr "b³±d odczytu karty: %s\n"
+msgstr "błąd odczytu karty: %s\n"
 
 #, c-format
 msgid "Serial number of the card: %s\n"
 msgstr "Numer seryjny karty: %s\n"
 
 msgid "Available keys:\n"
-msgstr "Dostêpne klucze:\n"
+msgstr "Dostępne klucze:\n"
 
 #, c-format
 msgid "Possible actions for a %s key:\n"
-msgstr "Mo¿liwe akcje dla klucza %s:\n"
+msgstr "Możliwe akcje dla klucza %s:\n"
 
 #, c-format
 msgid "   (%d) sign, encrypt\n"
@@ -6906,7 +6980,7 @@ msgstr "Nie podano nazwy przedmiotu\n"
 #, fuzzy, c-format
 #| msgid "Invalid subject name label `%.*s'\n"
 msgid "Invalid subject name label '%.*s'\n"
-msgstr "Nieprawid³owa etykieta nazwy przedmiotu ,,%.*s''\n"
+msgstr "Nieprawidłowa etykieta nazwy przedmiotu ,,%.*s''\n"
 
 #. TRANSLATORS: The 22 in the second string is the
 #. length of the first string up to the "%s".  Please
@@ -6916,7 +6990,7 @@ msgstr "Nieprawid
 #, fuzzy, c-format
 #| msgid "Invalid subject name `%s'\n"
 msgid "Invalid subject name '%s'\n"
-msgstr "Nieprawid³owa nazwa przedmiotu ,,%s''\n"
+msgstr "Nieprawidłowa nazwa przedmiotu ,,%s''\n"
 
 msgid "22 translator: see certreg-ui.c:gpgsm_gencertreq_tty"
 msgstr "33"
@@ -6939,7 +7013,7 @@ msgstr "URI"
 #, fuzzy
 #| msgid "Create a designated revocation certificate for this key? (y/N) "
 msgid "Create self-signed certificate? (y/N) "
-msgstr "Stworzyæ certyfikat uniewa¿nienia tego klucza? (t/N) "
+msgstr "Stworzyć certyfikat unieważnienia tego klucza? (t/N) "
 
 msgid "These parameters are used:\n"
 msgstr ""
@@ -6947,12 +7021,12 @@ msgstr ""
 #, fuzzy
 #| msgid "self-signed certificate has a BAD signature"
 msgid "Now creating self-signed certificate.  "
-msgstr "w³asnorêcznie podpisany certyfikat ma Z£Y podpis"
+msgstr "własnoręcznie podpisany certyfikat ma ZŁY podpis"
 
 #, fuzzy
 #| msgid "Now creating certificate request.  This may take a while ...\n"
 msgid "Now creating certificate request.  "
-msgstr "Tworzenie ¿±dania certyfikatu. Mo¿e to chwilê potrwaæ...\n"
+msgstr "Tworzenie żądania certyfikatu. Może to chwilę potrwać...\n"
 
 msgid "This may take a while ...\n"
 msgstr ""
@@ -6962,16 +7036,16 @@ msgstr ""
 
 msgid "Ready.  You should now send this request to your CA.\n"
 msgstr ""
-"Gotowe. Teraz nale¿y wys³aæ to ¿±danie do w³asnego centrum certyfikacji.\n"
+"Gotowe. Teraz należy wysłać to żądanie do własnego centrum certyfikacji.\n"
 
 msgid "resource problem: out of core\n"
-msgstr "problem z zasobami: brak pamiêci\n"
+msgstr "problem z zasobami: brak pamięci\n"
 
 msgid "(this is the RC2 algorithm)\n"
 msgstr "(to jest algorytm RC2)\n"
 
 msgid "(this does not seem to be an encrypted message)\n"
-msgstr "(to nie wygl±da na zaszyfrowan± wiadomo¶æ)\n"
+msgstr "(to nie wygląda na zaszyfrowaną wiadomość)\n"
 
 #, fuzzy, c-format
 #| msgid "certificate `%s' not found: %s\n"
@@ -6980,36 +7054,36 @@ msgstr "nie znaleziono certyfikatu ,,%s'': %s\n"
 
 #, c-format
 msgid "error locking keybox: %s\n"
-msgstr "b³±d blokowania keyboksa: %s\n"
+msgstr "błąd blokowania keyboksa: %s\n"
 
 #, fuzzy, c-format
 #| msgid "duplicated certificate `%s' deleted\n"
 msgid "duplicated certificate '%s' deleted\n"
-msgstr "powtórzony certyfikat ,,%s'' usuniêty\n"
+msgstr "powtórzony certyfikat ,,%s'' usunięty\n"
 
 #, fuzzy, c-format
 #| msgid "certificate `%s' deleted\n"
 msgid "certificate '%s' deleted\n"
-msgstr "certyfikat ,,%s'' usuniêty\n"
+msgstr "certyfikat ,,%s'' usunięty\n"
 
 #, c-format
 msgid "deleting certificate \"%s\" failed: %s\n"
-msgstr "usuniêcie certyfikatu ,,%s'' nie powiod³o siê: %s\n"
+msgstr "usunięcie certyfikatu ,,%s'' nie powiodło się: %s\n"
 
 msgid "no valid recipients given\n"
-msgstr "nie podano poprawnych adresatów\n"
+msgstr "nie podano poprawnych adresatów\n"
 
 msgid "list external keys"
-msgstr "wypisanie kluczy zewnêtrznych"
+msgstr "wypisanie kluczy zewnętrznych"
 
 msgid "list certificate chain"
-msgstr "wypisanie ³añcucha certyfikatów"
+msgstr "wypisanie łańcucha certyfikatów"
 
 msgid "import certificates"
-msgstr "import certyfikatów"
+msgstr "import certyfikatów"
 
 msgid "export certificates"
-msgstr "eksport certyfikatów"
+msgstr "eksport certyfikatów"
 
 msgid "register a smartcard"
 msgstr "zarejestrowanie karty procesorowej"
@@ -7018,75 +7092,75 @@ msgid "pass a command to the dirmngr"
 msgstr "przekazanie polecenia do dirmngr"
 
 msgid "invoke gpg-protect-tool"
-msgstr "wywo³anie gpg-protect-tool"
+msgstr "wywołanie gpg-protect-tool"
 
 msgid "create base-64 encoded output"
-msgstr "tworzenie wyjcia zakodowanego base-64"
+msgstr "tworzenie wyjścia zakodowanego base-64"
 
 msgid "assume input is in PEM format"
-msgstr "przyjêcie wej¶cia w formacie PEM"
+msgstr "przyjęcie wejścia w formacie PEM"
 
 msgid "assume input is in base-64 format"
-msgstr "przyjêcie wej¶cia w formacie base-64"
+msgstr "przyjęcie wejścia w formacie base-64"
 
 msgid "assume input is in binary format"
-msgstr "przyjêcie wej¶cia w formacie binarnym"
+msgstr "przyjęcie wejścia w formacie binarnym"
 
 msgid "never consult a CRL"
-msgstr "pominiêcie CRL"
+msgstr "pominięcie CRL"
 
 msgid "check validity using OCSP"
-msgstr "sprawdzenie poprawno¶ci przy u¿yciu OCSP"
+msgstr "sprawdzenie poprawności przy użyciu OCSP"
 
 msgid "|N|number of certificates to include"
-msgstr "|N|liczba certyfikatów do do³±czenia"
+msgstr "|N|liczba certyfikatów do dołączenia"
 
 msgid "|FILE|take policy information from FILE"
 msgstr "|PLIK|pobranie informacji o polityce z PLIKU"
 
 msgid "do not check certificate policies"
-msgstr "nie sprawdzanie polityk certyfikatów"
+msgstr "nie sprawdzanie polityk certyfikatów"
 
 msgid "fetch missing issuer certificates"
-msgstr "pobranie brakuj±cych certyfikatów wystawców"
+msgstr "pobranie brakujących certyfikatów wystawców"
 
 msgid "don't use the terminal at all"
-msgstr "nie u¿ywanie w ogóle terminala"
+msgstr "nie używanie w ogóle terminala"
 
 msgid "|FILE|write a server mode log to FILE"
-msgstr "|PLIK|zapisanie logów trybu serwerowego do PLIKU"
+msgstr "|PLIK|zapisanie logów trybu serwerowego do PLIKU"
 
 msgid "|FILE|write an audit log to FILE"
-msgstr "|PLIK|zapisanie logów audytowych do PLIKU"
+msgstr "|PLIK|zapisanie logów audytowych do PLIKU"
 
 msgid "batch mode: never ask"
-msgstr "tryb wsadowy: bez ¿adnych pytañ"
+msgstr "tryb wsadowy: bez żadnych pytań"
 
 msgid "assume yes on most questions"
-msgstr "przyjêcie odpowiedzi ,,tak'' na wiêkszo¶æ pytañ"
+msgstr "przyjęcie odpowiedzi ,,tak'' na większość pytań"
 
 msgid "assume no on most questions"
-msgstr "przyjêcie odpowiedzi ,,nie'' na wiêkszo¶æ pytañ"
+msgstr "przyjęcie odpowiedzi ,,nie'' na większość pytań"
 
 msgid "|FILE|add keyring to the list of keyrings"
-msgstr "|PLIK|dodanie tego zbioru kluczy do listy zbiorów kluczy"
+msgstr "|PLIK|dodanie tego zbioru kluczy do listy zbiorów kluczy"
 
 msgid "|USER-ID|use USER-ID as default secret key"
-msgstr "|U¯YTKOWNIK|u¿ycie tego identyfikatora jako domy¶lnego klucza tajnego"
+msgstr "|UŻYTKOWNIK|użycie tego identyfikatora jako domyślnego klucza tajnego"
 
 msgid "|SPEC|use this keyserver to lookup keys"
-msgstr "|SPEC|u¿ycie tego serwera do wyszukiwania kluczy"
+msgstr "|SPEC|użycie tego serwera do wyszukiwania kluczy"
 
 msgid "|NAME|use cipher algorithm NAME"
-msgstr "|NAZWA|u¿ycie tego algorytmu szyfrowania NAZWA"
+msgstr "|NAZWA|użycie tego algorytmu szyfrowania NAZWA"
 
 msgid "|NAME|use message digest algorithm NAME"
-msgstr "|NAZWA|u¿ycie tego algorytmu skrótu wiadomo¶ci"
+msgstr "|NAZWA|użycie tego algorytmu skrótu wiadomości"
 
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: @GPGSM@ [options] [files] (-h for help)"
-msgstr "Wywo³anie: gpg [opcje] [pliki] (-h podaje pomoc)"
+msgstr "Wywołanie: gpg [opcje] [pliki] (-h podaje pomoc)"
 
 #, fuzzy
 #| msgid ""
@@ -7098,20 +7172,20 @@ msgid ""
 "Sign, check, encrypt or decrypt using the S/MIME protocol\n"
 "Default operation depends on the input data\n"
 msgstr ""
-"Sk³adnia: gpgsm [opcje] [pliki]\n"
-"Podpisywanie, sprawdzanie podpisów, szyfrowanie, rozszyfrowywanie z u¿yciem "
+"Składnia: gpgsm [opcje] [pliki]\n"
+"Podpisywanie, sprawdzanie podpisów, szyfrowanie, rozszyfrowywanie z użyciem "
 "S/MIME\n"
-"Domy¶lnie wykonywana operacja zale¿y od danych wej¶ciowych\n"
+"Domyślnie wykonywana operacja zależy od danych wejściowych\n"
 
 #, fuzzy, c-format
 #| msgid "NOTE: won't be able to encrypt to `%s': %s\n"
 msgid "Note: won't be able to encrypt to '%s': %s\n"
-msgstr "UWAGA: nie mo¿na zaszyfrowaæ do ,,%s'': %s\n"
+msgstr "UWAGA: nie można zaszyfrować do ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "unknown validation model `%s'\n"
 msgid "unknown validation model '%s'\n"
-msgstr "nieznany model poprawnoci ,,%s''\n"
+msgstr "nieznany model poprawności ,,%s''\n"
 
 #, c-format
 msgid "%s:%u: no hostname given\n"
@@ -7119,65 +7193,65 @@ msgstr "%s:%u: nie podano nazwy hosta\n"
 
 #, c-format
 msgid "%s:%u: password given without user\n"
-msgstr "%s:%u: podano has³o bez u¿ytkownika\n"
+msgstr "%s:%u: podano hasło bez użytkownika\n"
 
 #, c-format
 msgid "%s:%u: skipping this line\n"
-msgstr "%s:%u: linia pominiêta\n"
+msgstr "%s:%u: linia pominięta\n"
 
 msgid "could not parse keyserver\n"
-msgstr "niezrozumia³y adres serwera kluczy\n"
+msgstr "niezrozumiały adres serwera kluczy\n"
 
 #, fuzzy, c-format
 #| msgid "importing common certificates `%s'\n"
 msgid "importing common certificates '%s'\n"
-msgstr "import wspólnych certyfikatów ,,%s''\n"
+msgstr "import wspólnych certyfikatów ,,%s''\n"
 
 #, fuzzy, c-format
 #| msgid "can't sign using `%s': %s\n"
 msgid "can't sign using '%s': %s\n"
-msgstr "nie mo¿na podpisaæ z u¿yciem ,,%s'': %s\n"
+msgstr "nie można podpisać z użyciem ,,%s'': %s\n"
 
 msgid "invalid command (there is no implicit command)\n"
-msgstr "b³êdne polecenie (nie ma polecenia domy¶lnego)\n"
+msgstr "błędne polecenie (nie ma polecenia domyślnego)\n"
 
 #, c-format
 msgid "total number processed: %lu\n"
-msgstr "ca³kowita liczba przetworzonych: %lu\n"
+msgstr "całkowita liczba przetworzonych: %lu\n"
 
 msgid "error storing certificate\n"
-msgstr "b³±d zapisywania certyfikatu\n"
+msgstr "błąd zapisywania certyfikatu\n"
 
 msgid "basic certificate checks failed - not imported\n"
 msgstr ""
-"podstawowe sprawdzenia certyikatu nie powiod³y siê - nie zaimportowany\n"
+"podstawowe sprawdzenia certyikatu nie powiodły się - nie zaimportowany\n"
 
 #, c-format
 msgid "error getting stored flags: %s\n"
-msgstr "b³±d pobierania zapisanych flag: %s\n"
+msgstr "błąd pobierania zapisanych flag: %s\n"
 
 #, c-format
 msgid "error importing certificate: %s\n"
-msgstr "b³±d importu certyfikatu: %s\n"
+msgstr "błąd importu certyfikatu: %s\n"
 
 #, c-format
 msgid "error reading input: %s\n"
-msgstr "b³±d odczytu wej¶cia: %s\n"
+msgstr "błąd odczytu wejścia: %s\n"
 
 msgid "failed to get the fingerprint\n"
-msgstr "nie uda³o siê pobraæ odcisku\n"
+msgstr "nie udało się pobrać odcisku\n"
 
 #, c-format
 msgid "problem looking for existing certificate: %s\n"
-msgstr "problem odszukaniem istniej±cego certyfikatu: %s\n"
+msgstr "problem odszukaniem istniejącego certyfikatu: %s\n"
 
 #, c-format
 msgid "error finding writable keyDB: %s\n"
-msgstr "b³±d podczas szukania zapisywalnego keyDB: %s\n"
+msgstr "błąd podczas szukania zapisywalnego keyDB: %s\n"
 
 #, c-format
 msgid "error storing certificate: %s\n"
-msgstr "b³±d zapisywania certyfikatu: %s\n"
+msgstr "błąd zapisywania certyfikatu: %s\n"
 
 #, c-format
 msgid "problem re-searching certificate: %s\n"
@@ -7185,24 +7259,24 @@ msgstr "problem z ponownym odszukaniem certyfikatu: %s\n"
 
 #, c-format
 msgid "error storing flags: %s\n"
-msgstr "b³±d zapisywania flag: %s\n"
+msgstr "błąd zapisywania flag: %s\n"
 
 msgid "Error - "
-msgstr "B³±d - "
+msgstr "Błąd - "
 
 msgid "GPG_TTY has not been set - using maybe bogus default\n"
 msgstr ""
-"GPG_TTY nie zosta³o ustawione - u¿ycie byæ mo¿e nieprawid³owego domy¶lnego\n"
+"GPG_TTY nie zostało ustawione - użycie być może nieprawidłowego domyślnego\n"
 
 #, fuzzy, c-format
 #| msgid "invalid formatted fingerprint in `%s', line %d\n"
 msgid "invalid formatted fingerprint in '%s', line %d\n"
-msgstr "niew³a¶ciwie sformatowany odcisk w ,,%s'', w linii %d\n"
+msgstr "niewłaściwie sformatowany odcisk w ,,%s'', w linii %d\n"
 
 #, fuzzy, c-format
 #| msgid "invalid country code in `%s', line %d\n"
 msgid "invalid country code in '%s', line %d\n"
-msgstr "niew³a¶ciwy kod kraju w ,,%s'', w linii %d\n"
+msgstr "niewłaściwy kod kraju w ,,%s'', w linii %d\n"
 
 #, c-format
 msgid ""
@@ -7213,18 +7287,18 @@ msgid ""
 "\n"
 "%s%sAre you really sure that you want to do this?"
 msgstr ""
-"Ta operacja z³o¿y podpis przy u¿yciu certyfikatu:\n"
+"Ta operacja złoży podpis przy użyciu certyfikatu:\n"
 ",,%s''\n"
-"Utworzy to kwalifikowany podpis równowa¿ny prawnie podpisowi odrêcznemu.\n"
+"Utworzy to kwalifikowany podpis równoważny prawnie podpisowi odręcznemu.\n"
 "\n"
-"%s%sNa pewno chcesz to zrobiæ?"
+"%s%sNa pewno chcesz to zrobić?"
 
 msgid ""
 "Note, that this software is not officially approved to create or verify such "
 "signatures.\n"
 msgstr ""
-"Nale¿y zauwa¿yæ, ¿e to oprogramowaie nie jest oficjalnie zatwierdzone do "
-"tworzenia i sprawdzania takich podpisów.\n"
+"Należy zauważyć, że to oprogramowaie nie jest oficjalnie zatwierdzone do "
+"tworzenia i sprawdzania takich podpisów.\n"
 
 #, c-format
 msgid ""
@@ -7232,23 +7306,23 @@ msgid ""
 "\"%s\"\n"
 "Note, that this certificate will NOT create a qualified signature!"
 msgstr ""
-"Ta operacja z³o¿y podpis przy u¿yciu certyfikatu:\n"
+"Ta operacja złoży podpis przy użyciu certyfikatu:\n"
 ",,%s''\n"
-"Nale¿y zauwa¿yæ, ¿e ten certyfikat NIE utworzy kwalifikowanego podpisu!"
+"Należy zauważyć, że ten certyfikat NIE utworzy kwalifikowanego podpisu!"
 
 #, c-format
 msgid "hash algorithm %d (%s) for signer %d not supported; using %s\n"
 msgstr ""
-"algorytm skrótu %d (%s) dla podpisuj±cego %d nie jest obs³ugiwany; u¿ycie "
+"algorytm skrótu %d (%s) dla podpisującego %d nie jest obsługiwany; użycie "
 "%s\n"
 
 #, c-format
 msgid "hash algorithm used for signer %d: %s (%s)\n"
-msgstr "algorytm skrótu u¿yty dla podpisuj±cego %d: %s (%s)\n"
+msgstr "algorytm skrótu użyty dla podpisującego %d: %s (%s)\n"
 
 #, c-format
 msgid "checking for qualified certificate failed: %s\n"
-msgstr "sprawdzenie certyfikatu kwalifikowanego nie powiod³o siê: %s\n"
+msgstr "sprawdzenie certyfikatu kwalifikowanego nie powiodło się: %s\n"
 
 msgid "Signature made "
 msgstr "Podpisano w "
@@ -7258,14 +7332,14 @@ msgstr "[nie podano daty]"
 
 #, c-format
 msgid " using certificate ID 0x%08lX\n"
-msgstr " przy u¿yciu certyfikatu o ID 0x%08lX\n"
+msgstr " przy użyciu certyfikatu o ID 0x%08lX\n"
 
 msgid ""
 "invalid signature: message digest attribute does not match computed one\n"
-msgstr "b³êdny podpis: atrybut skrótu wiadomo¶ci nie zgadza siê z obliczonym\n"
+msgstr "błędny podpis: atrybut skrótu wiadomości nie zgadza się z obliczonym\n"
 
 msgid "Good signature from"
-msgstr "Poprawny podpis z³o¿ony przez"
+msgstr "Poprawny podpis złożony przez"
 
 msgid "                aka"
 msgstr "                        alias"
@@ -7276,7 +7350,7 @@ msgstr "To jest podpis kwalifikowany\n"
 #, fuzzy, c-format
 #| msgid "checking for qualified certificate failed: %s\n"
 msgid "can't initialize certificate cache lock: %s\n"
-msgstr "sprawdzenie certyfikatu kwalifikowanego nie powiod³o siê: %s\n"
+msgstr "sprawdzenie certyfikatu kwalifikowanego nie powiodło się: %s\n"
 
 #, c-format
 msgid "can't acquire read lock on the certificate cache: %s\n"
@@ -7289,32 +7363,32 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "problem looking for existing certificate: %s\n"
 msgid "can't release lock on the certificate cache: %s\n"
-msgstr "problem odszukaniem istniej±cego certyfikatu: %s\n"
+msgstr "problem odszukaniem istniejącego certyfikatu: %s\n"
 
 #, fuzzy, c-format
 #| msgid "looking up issuer from the Dirmngr cache\n"
 msgid "dropping %u certificates from the cache\n"
-msgstr "poszukiwanie wystawcy w pamiêci podrêcznej Dirmngr\n"
+msgstr "poszukiwanie wystawcy w pamięci podręcznej Dirmngr\n"
 
 #, fuzzy, c-format
 #| msgid "can't create `%s': %s\n"
 msgid "can't parse certificate '%s': %s\n"
-msgstr "nie mo¿na utworzyæ ,,%s'': %s\n"
+msgstr "nie można utworzyć ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "certificate `%s' deleted\n"
 msgid "certificate '%s' already cached\n"
-msgstr "certyfikat ,,%s'' usuniêty\n"
+msgstr "certyfikat ,,%s'' usunięty\n"
 
 #, fuzzy, c-format
 #| msgid "duplicated certificate `%s' deleted\n"
 msgid "trusted certificate '%s' loaded\n"
-msgstr "powtórzony certyfikat ,,%s'' usuniêty\n"
+msgstr "powtórzony certyfikat ,,%s'' usunięty\n"
 
 #, fuzzy, c-format
 #| msgid "certificate `%s' deleted\n"
 msgid "certificate '%s' loaded\n"
-msgstr "certyfikat ,,%s'' usuniêty\n"
+msgstr "certyfikat ,,%s'' usunięty\n"
 
 #, fuzzy, c-format
 #| msgid "fingerprint=%s\n"
@@ -7330,17 +7404,17 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error storing certificate: %s\n"
 msgid "error loading certificate '%s': %s\n"
-msgstr "b³±d zapisywania certyfikatu: %s\n"
+msgstr "błąd zapisywania certyfikatu: %s\n"
 
 #, fuzzy, c-format
 #| msgid "Included certificates"
 msgid "permanently loaded certificates: %u\n"
-msgstr "Do³±czone certyfikaty"
+msgstr "Dołączone certyfikaty"
 
 #, fuzzy, c-format
 #| msgid "number of matching certificates: %d\n"
 msgid "    runtime cached certificates: %u\n"
-msgstr "liczba pasuj±cych certyfikatów: %d\n"
+msgstr "liczba pasujących certyfikatów: %d\n"
 
 #, fuzzy
 #| msgid "  (certificate created at "
@@ -7355,22 +7429,22 @@ msgstr "certyfikat jest dobry\n"
 #, fuzzy, c-format
 #| msgid "error storing certificate: %s\n"
 msgid "error caching certificate: %s\n"
-msgstr "b³±d zapisywania certyfikatu: %s\n"
+msgstr "błąd zapisywania certyfikatu: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid fingerprint"
 msgid "invalid SHA1 fingerprint string '%s'\n"
-msgstr "niew³a¶ciwy odcisk"
+msgstr "niewłaściwy odcisk"
 
 #, fuzzy, c-format
 #| msgid "error storing certificate: %s\n"
 msgid "error fetching certificate by S/N: %s\n"
-msgstr "b³±d zapisywania certyfikatu: %s\n"
+msgstr "błąd zapisywania certyfikatu: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error storing certificate: %s\n"
 msgid "error fetching certificate by subject: %s\n"
-msgstr "b³±d zapisywania certyfikatu: %s\n"
+msgstr "błąd zapisywania certyfikatu: %s\n"
 
 #, fuzzy
 #| msgid "no issuer found in certificate"
@@ -7380,72 +7454,72 @@ msgstr "nie znaleziono wystawcy w certyfikacie"
 #, fuzzy, c-format
 #| msgid "error getting stored flags: %s\n"
 msgid "error getting authorityKeyIdentifier: %s\n"
-msgstr "b³±d pobierania zapisanych flag: %s\n"
+msgstr "błąd pobierania zapisanych flag: %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't create directory `%s': %s\n"
 msgid "creating directory '%s'\n"
-msgstr "nie mo¿na utworzyæ katalogu ,,%s'': %s\n"
+msgstr "nie można utworzyć katalogu ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error creating keybox `%s': %s\n"
 msgid "error creating directory '%s': %s\n"
-msgstr "b³±d tworzenia keyboksa ,,%s'': %s\n"
+msgstr "błąd tworzenia keyboksa ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "ignoring garbage line"
 msgid "ignoring database dir '%s'\n"
-msgstr "zignorowano b³êdn± liniê"
+msgstr "zignorowano błędną linię"
 
 #, fuzzy, c-format
 #| msgid "error reading from %s: %s\n"
 msgid "error reading directory '%s': %s\n"
-msgstr "b³±d odczytu z %s: %s\n"
+msgstr "błąd odczytu z %s: %s\n"
 
 #, fuzzy, c-format
 #| msgid "receiving line failed: %s\n"
 msgid "removing cache file '%s'\n"
-msgstr "odbieranie linii nie powiod³o siê: %s\n"
+msgstr "odbieranie linii nie powiodło się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "enarmoring failed: %s\n"
 msgid "not removing file '%s'\n"
-msgstr "opakowywanie ASCII nie powiod³o siê: %s\n"
+msgstr "opakowywanie ASCII nie powiodło się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error closing %s: %s\n"
 msgid "error closing cache file: %s\n"
-msgstr "b³±d zamykania %s: %s\n"
+msgstr "błąd zamykania %s: %s\n"
 
 #, fuzzy, c-format
 #| msgid "failed to open `%s': %s\n"
 msgid "failed to open cache dir file '%s': %s\n"
-msgstr "nie uda³o siê otworzyæ ,,%s'': %s\n"
+msgstr "nie udało się otworzyć ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error creating temporary file: %s\n"
 msgid "error creating new cache dir file '%s': %s\n"
-msgstr "b³±d tworzenia pliku tymczasowego: %s\n"
+msgstr "błąd tworzenia pliku tymczasowego: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing secret keyring `%s': %s\n"
 msgid "error writing new cache dir file '%s': %s\n"
-msgstr "b³±d podczas zapisu zbioru kluczy tajnych ,,%s'': %s\n"
+msgstr "błąd podczas zapisu zbioru kluczy tajnych ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error closing %s: %s\n"
 msgid "error closing new cache dir file '%s': %s\n"
-msgstr "b³±d zamykania %s: %s\n"
+msgstr "błąd zamykania %s: %s\n"
 
 #, fuzzy, c-format
 #| msgid "new configuration file `%s' created\n"
 msgid "new cache dir file '%s' created\n"
-msgstr "nowy plik ustawieñ ,,%s'' zosta³ utworzony\n"
+msgstr "nowy plik ustawień ,,%s'' został utworzony\n"
 
 #, fuzzy, c-format
 #| msgid "failed to create temporary file `%s': %s\n"
 msgid "failed to re-open cache dir file '%s': %s\n"
-msgstr "nie uda³o siê utworzyæ pliku tymczasowego ,,%s'': %s\n"
+msgstr "nie udało się utworzyć pliku tymczasowego ,,%s'': %s\n"
 
 #, c-format
 msgid "first record of '%s' is not the version\n"
@@ -7464,12 +7538,12 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "invalid country code in `%s', line %d\n"
 msgid "invalid line detected in '%s' line %u\n"
-msgstr "niew³a¶ciwy kod kraju w ,,%s'', w linii %d\n"
+msgstr "niewłaściwy kod kraju w ,,%s'', w linii %d\n"
 
 #, fuzzy, c-format
 #| msgid "invalid country code in `%s', line %d\n"
 msgid "duplicate entry detected in '%s' line %u\n"
-msgstr "niew³a¶ciwy kod kraju w ,,%s'', w linii %d\n"
+msgstr "niewłaściwy kod kraju w ,,%s'', w linii %d\n"
 
 #, c-format
 msgid "unsupported record type in '%s' line %u skipped\n"
@@ -7478,22 +7552,22 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "invalid keyflag in `%s', line %d\n"
 msgid "invalid issuer hash in '%s' line %u\n"
-msgstr "nieprawid³owa flaga klucza w ,,%s'', w linii %d\n"
+msgstr "nieprawidłowa flaga klucza w ,,%s'', w linii %d\n"
 
 #, fuzzy, c-format
 #| msgid "bad fingerprint in `%s', line %d\n"
 msgid "no issuer DN in '%s' line %u\n"
-msgstr "b³êdny odcisk w ,,%s'', w linii %d\n"
+msgstr "błędny odcisk w ,,%s'', w linii %d\n"
 
 #, fuzzy, c-format
 #| msgid "invalid keyflag in `%s', line %d\n"
 msgid "invalid timestamp in '%s' line %u\n"
-msgstr "nieprawid³owa flaga klucza w ,,%s'', w linii %d\n"
+msgstr "nieprawidłowa flaga klucza w ,,%s'', w linii %d\n"
 
 #, fuzzy, c-format
 #| msgid "invalid keyflag in `%s', line %d\n"
 msgid "WARNING: invalid cache file hash in '%s' line %u\n"
-msgstr "nieprawid³owa flaga klucza w ,,%s'', w linii %d\n"
+msgstr "nieprawidłowa flaga klucza w ,,%s'', w linii %d\n"
 
 msgid "detected errors in cache dir file\n"
 msgstr ""
@@ -7504,37 +7578,37 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "failed to create temporary file `%s': %s\n"
 msgid "failed to create temporary cache dir file '%s': %s\n"
-msgstr "nie uda³o siê utworzyæ pliku tymczasowego ,,%s'': %s\n"
+msgstr "nie udało się utworzyć pliku tymczasowego ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error closing %s: %s\n"
 msgid "error closing '%s': %s\n"
-msgstr "b³±d zamykania %s: %s\n"
+msgstr "błąd zamykania %s: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error reading `%s': %s\n"
 msgid "error renaming '%s' to '%s': %s\n"
-msgstr "b³±d odczytu ,,%s'': %s\n"
+msgstr "błąd odczytu ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't access `%s': %s\n"
 msgid "can't hash '%s': %s\n"
-msgstr "nie mo¿na dostaæ siê do ,,%s'': %s\n"
+msgstr "nie można dostać się do ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error sending %s command: %s\n"
 msgid "error setting up MD5 hash context: %s\n"
-msgstr "b³±d wysy³ania polecenia %s: %s\n"
+msgstr "błąd wysyłania polecenia %s: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error in `%s': %s\n"
 msgid "error hashing '%s': %s\n"
-msgstr "b³±d w ,,%s'': %s\n"
+msgstr "błąd w ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid formatted fingerprint in `%s', line %d\n"
 msgid "invalid formatted checksum for '%s'\n"
-msgstr "niew³a¶ciwie sformatowany odcisk w ,,%s'', w linii %d\n"
+msgstr "niewłaściwie sformatowany odcisk w ,,%s'', w linii %d\n"
 
 msgid "too many open cache files; can't open anymore\n"
 msgstr ""
@@ -7542,12 +7616,12 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "sending line failed: %s\n"
 msgid "opening cache file '%s'\n"
-msgstr "wysy³anie linii nie powiod³o siê: %s\n"
+msgstr "wysyłanie linii nie powiodło się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error opening `%s': %s\n"
 msgid "error opening cache file '%s': %s\n"
-msgstr "b³±d podczas otwierania ,,%s'': %s\n"
+msgstr "błąd podczas otwierania ,,%s'': %s\n"
 
 #, c-format
 msgid "error initializing cache file '%s' for reading: %s\n"
@@ -7562,7 +7636,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "failed to create stream from socket: %s\n"
 msgid "failed to create a new cache object: %s\n"
-msgstr "nie uda³o siê utworzyæ strumienia z gniazda: %s\n"
+msgstr "nie udało się utworzyć strumienia z gniazda: %s\n"
 
 #, fuzzy, c-format
 #| msgid "No help available for `%s'"
@@ -7597,7 +7671,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "Error reading backup key from `%s': %s\n"
 msgid "problem reading cache record for S/N %s: %s\n"
-msgstr "B³±d podczas odczytu klucza zapasowego z `%s': %s\n"
+msgstr "Błąd podczas odczytu klucza zapasowego z `%s': %s\n"
 
 #, c-format
 msgid "S/N %s is not valid; reason=%02X  date=%.15s\n"
@@ -7610,12 +7684,12 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error getting stored flags: %s\n"
 msgid "error getting data from cache file: %s\n"
-msgstr "b³±d pobierania zapisanych flag: %s\n"
+msgstr "błąd pobierania zapisanych flag: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid hash algorithm `%s'\n"
 msgid "unknown hash algorithm '%s'\n"
-msgstr "niew³a¶ciwy algorytm skrótu ,,%s''\n"
+msgstr "niewłaściwy algorytm skrótu ,,%s''\n"
 
 #, c-format
 msgid "gcry_md_open for algorithm %d failed: %s\n"
@@ -7627,22 +7701,22 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "iconv_open failed: %s\n"
 msgid "converting S-expression failed: %s\n"
-msgstr "iconv_open nie powiod³o siê: %s\n"
+msgstr "iconv_open nie powiodło się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "receiving line failed: %s\n"
 msgid "creating S-expression failed: %s\n"
-msgstr "odbieranie linii nie powiod³o siê: %s\n"
+msgstr "odbieranie linii nie powiodło się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "build_packet failed: %s\n"
 msgid "ksba_crl_parse failed: %s\n"
-msgstr "wywo³anie funkcji build_packet nie powiod³o siê: %s\n"
+msgstr "wywołanie funkcji build_packet nie powiodło się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error getting serial number of card: %s\n"
 msgid "error getting update times of CRL: %s\n"
-msgstr "b³±d pobierania numeru seryjnego karty: %s\n"
+msgstr "błąd pobierania numeru seryjnego karty: %s\n"
 
 #, c-format
 msgid "update times of this CRL: this=%s next=%s\n"
@@ -7654,12 +7728,12 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error getting new PIN: %s\n"
 msgid "error getting CRL item: %s\n"
-msgstr "b³±d podczas odczytu nowego PIN-u: %s\n"
+msgstr "błąd podczas odczytu nowego PIN-u: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing to temporary file: %s\n"
 msgid "error inserting item into temporary cache file: %s\n"
-msgstr "b³±d zapisu do pliku tymczasowego: %s\n"
+msgstr "błąd zapisu do pliku tymczasowego: %s\n"
 
 #, fuzzy, c-format
 #| msgid "no issuer found in certificate"
@@ -7672,52 +7746,52 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "signature verification suppressed\n"
 msgid "CRL signature verification failed: %s\n"
-msgstr "wymuszono pominiêcie sprawdzenia podpisu\n"
+msgstr "wymuszono pominięcie sprawdzenia podpisu\n"
 
 #, fuzzy, c-format
 #| msgid "error reading list of trusted root certificates\n"
 msgid "error checking validity of CRL issuer certificate: %s\n"
-msgstr "b³±d odczytu listy zaufanych certyfikatów g³ównych\n"
+msgstr "błąd odczytu listy zaufanych certyfikatów głównych\n"
 
 #, fuzzy, c-format
 #| msgid "select failed: %s\n"
 msgid "ksba_crl_new failed: %s\n"
-msgstr "select nie powiod³o siê: %s\n"
+msgstr "select nie powiodło się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "read failed: %s\n"
 msgid "ksba_crl_set_reader failed: %s\n"
-msgstr "odczyt nie powiód³ siê: %s\n"
+msgstr "odczyt nie powiódł się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "failed to create temporary file `%s': %s\n"
 msgid "removed stale temporary cache file '%s'\n"
-msgstr "nie uda³o siê utworzyæ pliku tymczasowego ,,%s'': %s\n"
+msgstr "nie udało się utworzyć pliku tymczasowego ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "failed to create temporary file `%s': %s\n"
 msgid "problem removing stale temporary cache file '%s': %s\n"
-msgstr "nie uda³o siê utworzyæ pliku tymczasowego ,,%s'': %s\n"
+msgstr "nie udało się utworzyć pliku tymczasowego ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error creating temporary file: %s\n"
 msgid "error creating temporary cache file '%s': %s\n"
-msgstr "b³±d tworzenia pliku tymczasowego: %s\n"
+msgstr "błąd tworzenia pliku tymczasowego: %s\n"
 
 #, fuzzy, c-format
 #| msgid "update secret failed: %s\n"
 msgid "crl_parse_insert failed: %s\n"
-msgstr "zapis zmian na kluczu prywatnym nie powiód³ siê: %s\n"
+msgstr "zapis zmian na kluczu prywatnym nie powiódł się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing to temporary file: %s\n"
 msgid "error finishing temporary cache file '%s': %s\n"
-msgstr "b³±d zapisu do pliku tymczasowego: %s\n"
+msgstr "błąd zapisu do pliku tymczasowego: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error creating temporary file: %s\n"
 msgid "error closing temporary cache file '%s': %s\n"
-msgstr "b³±d tworzenia pliku tymczasowego: %s\n"
+msgstr "błąd tworzenia pliku tymczasowego: %s\n"
 
 #, c-format
 msgid "WARNING: new CRL still too old; it expired on %s - loading anyway\n"
@@ -7734,17 +7808,17 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error reading input: %s\n"
 msgid "error reading CRL extensions: %s\n"
-msgstr "b³±d odczytu wej¶cia: %s\n"
+msgstr "błąd odczytu wejścia: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error creating a pipe: %s\n"
 msgid "creating cache file '%s'\n"
-msgstr "b³±d tworzenia potoku: %s\n"
+msgstr "błąd tworzenia potoku: %s\n"
 
 #, fuzzy, c-format
 #| msgid "renaming `%s' to `%s' failed: %s\n"
 msgid "problem renaming '%s' to '%s': %s\n"
-msgstr "zmiana nazwy ,,%s'' na ,,%s'' nie powiod³a siê: %s\n"
+msgstr "zmiana nazwy ,,%s'' na ,,%s'' nie powiodła się: %s\n"
 
 msgid ""
 "updating the DIR file failed - cache entry will get lost with the next "
@@ -7773,12 +7847,12 @@ msgstr ""
 #, fuzzy
 #| msgid "WARNING: invalid notation data found\n"
 msgid " WARNING: invalid cache record length\n"
-msgstr "OSTRZE¯ENIE: napotkano b³êdne dane adnotacji\n"
+msgstr "OSTRZEŻENIE: napotkano błędne dane adnotacji\n"
 
 #, fuzzy, c-format
 #| msgid "error reading the card: %s\n"
 msgid "problem reading cache record: %s\n"
-msgstr "b³±d odczytu karty: %s\n"
+msgstr "błąd odczytu karty: %s\n"
 
 #, fuzzy, c-format
 #| msgid "problem re-searching certificate: %s\n"
@@ -7788,7 +7862,7 @@ msgstr "problem z ponownym odszukaniem certyfikatu: %s\n"
 #, fuzzy, c-format
 #| msgid "error reading nonce on fd %d: %s\n"
 msgid "error reading cache entry from db: %s\n"
-msgstr "b³±d odczytu nonce z fd %d: %s\n"
+msgstr "błąd odczytu nonce z fd %d: %s\n"
 
 msgid "End CRL dump\n"
 msgstr ""
@@ -7796,17 +7870,17 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "read failed: %s\n"
 msgid "crl_fetch via DP failed: %s\n"
-msgstr "odczyt nie powiód³ siê: %s\n"
+msgstr "odczyt nie powiódł się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "checking the trust list failed: %s\n"
 msgid "crl_cache_insert via DP failed: %s\n"
-msgstr "sprawdzenie listy zaufania nie powiod³o siê: %s\n"
+msgstr "sprawdzenie listy zaufania nie powiodło się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "receiving line failed: %s\n"
 msgid "crl_cache_insert via issuer failed: %s\n"
-msgstr "odbieranie linii nie powiod³o siê: %s\n"
+msgstr "odbieranie linii nie powiodło się: %s\n"
 
 msgid "reader to file mapping table full - waiting\n"
 msgstr ""
@@ -7821,7 +7895,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "%s: error writing dir record: %s\n"
 msgid "error initializing reader object: %s\n"
-msgstr "%s: b³±d zapisu wpisu katalogowego: %s\n"
+msgstr "%s: błąd zapisu wpisu katalogowego: %s\n"
 
 #, c-format
 msgid "URL '%s' redirected to '%s' (%u)\n"
@@ -7830,17 +7904,17 @@ msgstr ""
 #, fuzzy
 #| msgid "too many cipher preferences\n"
 msgid "too many redirections\n"
-msgstr "zbyt wiele ustawieñ szyfru\n"
+msgstr "zbyt wiele ustawień szyfru\n"
 
 #, fuzzy, c-format
 #| msgid "error retrieving `%s' via %s: %s\n"
 msgid "error retrieving '%s': %s\n"
-msgstr "b³±d odtwarzania ,,%s'' poprzez %s: %s\n"
+msgstr "błąd odtwarzania ,,%s'' poprzez %s: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error running `%s': exit status %d\n"
 msgid "error retrieving '%s': http status %u\n"
-msgstr "b³±d uruchamiania ,,%s'': kod wyj¶cia %d\n"
+msgstr "błąd uruchamiania ,,%s'': kod wyjścia %d\n"
 
 #, fuzzy
 #| msgid "certificate `%s' not found: %s\n"
@@ -7866,17 +7940,17 @@ msgstr "  (certyfikat utworzony "
 #, fuzzy
 #| msgid "Included certificates"
 msgid "validate a certificate"
-msgstr "Do³±czone certyfikaty"
+msgstr "Dołączone certyfikaty"
 
 #, fuzzy
 #| msgid "Included certificates"
 msgid "lookup a certificate"
-msgstr "Do³±czone certyfikaty"
+msgstr "Dołączone certyfikaty"
 
 #, fuzzy
 #| msgid "Included certificates"
 msgid "lookup only locally stored certificates"
-msgstr "Do³±czone certyfikaty"
+msgstr "Dołączone certyfikaty"
 
 msgid "expect an URL for --lookup"
 msgstr ""
@@ -7892,17 +7966,17 @@ msgstr ""
 #, fuzzy
 #| msgid "export certificates"
 msgid "expect certificates in PEM format"
-msgstr "eksport certyfikatów"
+msgstr "eksport certyfikatów"
 
 #, fuzzy
 #| msgid "Enter the user ID of the designated revoker: "
 msgid "force the use of the default OCSP responder"
-msgstr "Podaj identyfikator klucza uniewa¿niaj±cego: "
+msgstr "Podaj identyfikator klucza unieważniającego: "
 
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: dirmngr-client [options] [certfile|pattern] (-h for help)\n"
-msgstr "Wywo³anie: gpg [opcje] [pliki] (-h podaje pomoc)"
+msgstr "Wywołanie: gpg [opcje] [pliki] (-h podaje pomoc)"
 
 msgid ""
 "Syntax: dirmngr-client [options] [certfile|pattern]\n"
@@ -7914,12 +7988,12 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error storing certificate: %s\n"
 msgid "error reading certificate from stdin: %s\n"
-msgstr "b³±d zapisywania certyfikatu: %s\n"
+msgstr "błąd zapisywania certyfikatu: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error reading from %s: %s\n"
 msgid "error reading certificate from '%s': %s\n"
-msgstr "b³±d odczytu z %s: %s\n"
+msgstr "błąd odczytu z %s: %s\n"
 
 msgid "certificate too large to make any sense\n"
 msgstr ""
@@ -7927,17 +8001,17 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to the dirmngr: %s\n"
-msgstr "nie mo¿na siê po³±czyæ z ,,%s'': %s\n"
+msgstr "nie można się połączyć z ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "update failed: %s\n"
 msgid "lookup failed: %s\n"
-msgstr "zapis zmian nie powiód³ siê: %s\n"
+msgstr "zapis zmian nie powiódł się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "renaming `%s' to `%s' failed: %s\n"
 msgid "loading CRL '%s' failed: %s\n"
-msgstr "zmiana nazwy ,,%s'' na ,,%s'' nie powiod³a siê: %s\n"
+msgstr "zmiana nazwy ,,%s'' na ,,%s'' nie powiodła się: %s\n"
 
 msgid "a dirmngr daemon is up and running\n"
 msgstr ""
@@ -7945,7 +8019,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "deleting certificate \"%s\" failed: %s\n"
 msgid "validation of certificate failed: %s\n"
-msgstr "usuniêcie certyfikatu ,,%s'' nie powiod³o siê: %s\n"
+msgstr "usunięcie certyfikatu ,,%s'' nie powiodło się: %s\n"
 
 #, fuzzy
 #| msgid "certificate is good\n"
@@ -7955,12 +8029,12 @@ msgstr "certyfikat jest dobry\n"
 #, fuzzy
 #| msgid "certificate has been revoked"
 msgid "certificate has been revoked\n"
-msgstr "certyfikat zosta³ uniewa¿niony"
+msgstr "certyfikat został unieważniony"
 
 #, fuzzy, c-format
 #| msgid "deleting certificate \"%s\" failed: %s\n"
 msgid "certificate check failed: %s\n"
-msgstr "usuniêcie certyfikatu ,,%s'' nie powiod³o siê: %s\n"
+msgstr "usunięcie certyfikatu ,,%s'' nie powiodło się: %s\n"
 
 #, c-format
 msgid "got status: '%s'\n"
@@ -7969,12 +8043,12 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error writing secret keyring `%s': %s\n"
 msgid "error writing base64 encoding: %s\n"
-msgstr "b³±d podczas zapisu zbioru kluczy tajnych ,,%s'': %s\n"
+msgstr "błąd podczas zapisu zbioru kluczy tajnych ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "unsupported algorithm: %s"
 msgid "unsupported inquiry '%s'\n"
-msgstr "nieobs³ugiwany algorytm: %s"
+msgstr "nieobsługiwany algorytm: %s"
 
 msgid "absolute file name expected\n"
 msgstr ""
@@ -7989,7 +8063,7 @@ msgstr ""
 #, fuzzy
 #| msgid "|FILE|run commands from FILE on startup"
 msgid "|FILE|load CRL from FILE into cache"
-msgstr "|PLIK|uruchomienie poleceñ z PLIKU przy starcie"
+msgstr "|PLIK|uruchomienie poleceń z PLIKU przy starcie"
 
 msgid "|URL|fetch a CRL from URL"
 msgstr ""
@@ -8003,12 +8077,12 @@ msgid "flush the cache"
 msgstr ""
 
 msgid "|FILE|write server mode logs to FILE"
-msgstr "|PLIK|zapisanie logów trybu serwerowego do PLIKu"
+msgstr "|PLIK|zapisanie logów trybu serwerowego do PLIKu"
 
 #, fuzzy
 #| msgid "Quit without saving? (y/N) "
 msgid "run without asking a user"
-msgstr "Wyj¶æ bez zapisania zmian? (t/N) "
+msgstr "Wyjść bez zapisania zmian? (t/N) "
 
 msgid "force loading of outdated CRLs"
 msgstr ""
@@ -8016,7 +8090,10 @@ msgstr ""
 #, fuzzy
 #| msgid "allow PKA lookups (DNS requests)"
 msgid "allow sending OCSP requests"
-msgstr "zezwolenie na wyszukiwania PKA (¿±dania DNS)"
+msgstr "zezwolenie na wyszukiwania PKA (żądania DNS)"
+
+msgid "allow online software version check"
+msgstr ""
 
 msgid "inhibit the use of HTTP"
 msgstr ""
@@ -8054,12 +8131,12 @@ msgstr ""
 #| msgid "|N|set maximum PIN cache lifetime to N seconds"
 msgid "|N|set LDAP timeout to N seconds"
 msgstr ""
-"|N|ustawienie maksymalnego czasu ¿ycia pamiêci podrêcznej PIN-ów na N sekund"
+"|N|ustawienie maksymalnego czasu życia pamięci podręcznej PIN-ów na N sekund"
 
 #, fuzzy
 #| msgid "|URL|use keyserver at URL"
 msgid "|URL|use OCSP responder at URL"
-msgstr "|URL|u¿ywaj serwera kluczy URL"
+msgstr "|URL|używaj serwera kluczy URL"
 
 msgid "|FPR|OCSP response signed by FPR"
 msgstr ""
@@ -8083,12 +8160,12 @@ msgid ""
 "options)\n"
 msgstr ""
 "@\n"
-"(Pe³n± listê poleceñ i opcji mo¿na znale¼æ w podrêczniku systemowym.)\n"
+"(Pełną listę poleceń i opcji można znaleźć w podręczniku systemowym.)\n"
 
 #, fuzzy
 #| msgid "Usage: gpgconf [options] (-h for help)"
 msgid "Usage: @DIRMNGR@ [options] (-h for help)"
-msgstr "Wywo³anie: gpgconf [opcje] (-h podaje pomoc)"
+msgstr "Wywołanie: gpgconf [opcje] (-h podaje pomoc)"
 
 #, fuzzy
 #| msgid ""
@@ -8098,48 +8175,48 @@ msgid ""
 "Syntax: @DIRMNGR@ [options] [command [args]]\n"
 "Keyserver, CRL, and OCSP access for @GNUPG@\n"
 msgstr ""
-"Sk³adnia: gpg-agent [opcje] [polecenie [argumenty]]\n"
-"Zarz±dzanie kluczem tajnym dla GnuPG\n"
+"Składnia: gpg-agent [opcje] [polecenie [argumenty]]\n"
+"Zarządzanie kluczem tajnym dla GnuPG\n"
 
 #, fuzzy, c-format
 #| msgid "invalid debug-level `%s' given\n"
 msgid "valid debug levels are: %s\n"
-msgstr "podano b³êdny poziom diagnostyki ,,%s''\n"
+msgstr "podano błędny poziom diagnostyki ,,%s''\n"
 
 #, fuzzy, c-format
 #| msgid "usage: gpgsm [options] "
 msgid "usage: %s [options] "
-msgstr "wywo³anie: gpgsm [opcje]"
+msgstr "wywołanie: gpgsm [opcje]"
 
 #, fuzzy
 #| msgid "%s not allowed with %s!\n"
 msgid "colons are not allowed in the socket name\n"
-msgstr "Nie wolno u¿ywaæ %s z %s!\n"
+msgstr "Nie wolno używać %s z %s!\n"
 
 #, fuzzy, c-format
 #| msgid "renaming `%s' to `%s' failed: %s\n"
 msgid "fetching CRL from '%s' failed: %s\n"
-msgstr "zmiana nazwy ,,%s'' na ,,%s'' nie powiod³a siê: %s\n"
+msgstr "zmiana nazwy ,,%s'' na ,,%s'' nie powiodła się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "conversion from `%s' to `%s' failed: %s\n"
 msgid "processing CRL from '%s' failed: %s\n"
-msgstr "konwersja z ,,%s'' do ,,%s'' nie powiod³a siê: %s\n"
+msgstr "konwersja z ,,%s'' do ,,%s'' nie powiodła się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "line too long - skipped\n"
 msgid "%s:%u: line too long - skipped\n"
-msgstr "linia zbyt d³uga - pominiêta\n"
+msgstr "linia zbyt długa - pominięta\n"
 
 #, fuzzy, c-format
 #| msgid "invalid fingerprint"
 msgid "%s:%u: invalid fingerprint detected\n"
-msgstr "niew³a¶ciwy odcisk"
+msgstr "niewłaściwy odcisk"
 
 #, fuzzy, c-format
 #| msgid "read error in `%s': %s\n"
 msgid "%s:%u: read error: %s\n"
-msgstr "b³±d odczytu w ,,%s'': %s\n"
+msgstr "błąd odczytu w ,,%s'': %s\n"
 
 #, c-format
 msgid "%s:%u: garbage at end of line ignored\n"
@@ -8179,12 +8256,12 @@ msgstr ""
 #, fuzzy
 #| msgid "|NAME|connect to Assuan socket NAME"
 msgid "|NAME|connect to host NAME"
-msgstr "|NAZWA|po³±czenie z gniazdem Assuan o tej nazwie"
+msgstr "|NAZWA|połączenie z gniazdem Assuan o tej nazwie"
 
 #, fuzzy
 #| msgid "|N|connect to reader at port N"
 msgid "|N|connect to port N"
-msgstr "|N|po³±czenie z czytnikiem na porcie N"
+msgstr "|N|połączenie z czytnikiem na porcie N"
 
 msgid "|NAME|use user NAME for authentication"
 msgstr ""
@@ -8207,7 +8284,7 @@ msgstr ""
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: dirmngr_ldap [options] [URL] (-h for help)\n"
-msgstr "Wywo³anie: gpg [opcje] [pliki] (-h podaje pomoc)"
+msgstr "Wywołanie: gpg [opcje] [pliki] (-h podaje pomoc)"
 
 msgid ""
 "Syntax: dirmngr_ldap [options] [URL]\n"
@@ -8227,7 +8304,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error writing to %s: %s\n"
 msgid "error writing to stdout: %s\n"
-msgstr "b³±d zapisu do %s: %s\n"
+msgstr "błąd zapisu do %s: %s\n"
 
 #, c-format
 msgid "          available attribute '%s'\n"
@@ -8265,7 +8342,7 @@ msgstr "          bez identyfikatora: %lu\n"
 #, fuzzy, c-format
 #| msgid "          not imported: %lu\n"
 msgid "          port %d\n"
-msgstr "      nie w³±czono do zbioru: %lu\n"
+msgstr "      nie włączono do zbioru: %lu\n"
 
 #, fuzzy, c-format
 #| msgid "                aka \"%s\""
@@ -8293,22 +8370,22 @@ msgstr ""
 #, fuzzy
 #| msgid "WARNING: Using untrusted key!\n"
 msgid "WARNING: using first attribute only\n"
-msgstr "OSTRZE¯ENIE: u¿ywany jest klucz nie obdarzony zaufaniem!\n"
+msgstr "OSTRZEŻENIE: używany jest klucz nie obdarzony zaufaniem!\n"
 
 #, fuzzy, c-format
 #| msgid "renaming `%s' to `%s' failed: %s\n"
 msgid "LDAP init to '%s:%d' failed: %s\n"
-msgstr "zmiana nazwy ,,%s'' na ,,%s'' nie powiod³a siê: %s\n"
+msgstr "zmiana nazwy ,,%s'' na ,,%s'' nie powiodła się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "renaming `%s' to `%s' failed: %s\n"
 msgid "binding to '%s:%d' failed: %s\n"
-msgstr "zmiana nazwy ,,%s'' na ,,%s'' nie powiod³a siê: %s\n"
+msgstr "zmiana nazwy ,,%s'' na ,,%s'' nie powiodła się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "dearmoring failed: %s\n"
 msgid "searching '%s' failed: %s\n"
-msgstr "zdjêcie opakowania ASCII nie powiod³o siê: %s\n"
+msgstr "zdjęcie opakowania ASCII nie powiodło się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "`%s' is not a JPEG file\n"
@@ -8320,24 +8397,19 @@ msgid "'%s' is an invalid LDAP URL\n"
 msgstr ""
 
 #, fuzzy, c-format
-#| msgid "error allocating enough memory: %s\n"
-msgid "error allocating memory: %s\n"
-msgstr "b³±d przydzielania wystarczaj±cej ilo¶ci pamiêci: %s\n"
-
-#, fuzzy, c-format
 #| msgid "error writing to %s: %s\n"
 msgid "error printing log line: %s\n"
-msgstr "b³±d zapisu do %s: %s\n"
+msgstr "błąd zapisu do %s: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error reading from %s: %s\n"
 msgid "error reading log from ldap wrapper %d: %s\n"
-msgstr "b³±d odczytu z %s: %s\n"
+msgstr "błąd odczytu z %s: %s\n"
 
 #, fuzzy, c-format
 #| msgid "pth_select failed: %s - waiting 1s\n"
 msgid "npth_select failed: %s - waiting 1s\n"
-msgstr "pth_select nie powiod³o siê: %s - czekanie 1s\n"
+msgstr "pth_select nie powiodło się: %s - czekanie 1s\n"
 
 #, c-format
 msgid "ldap wrapper %d ready"
@@ -8354,7 +8426,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "waiting for process %d to terminate failed: %s\n"
 msgid "waiting for ldap wrapper %d failed: %s\n"
-msgstr "oczekiwanie na zakoñczenie procesu %d nie powiod³o siê: %s\n"
+msgstr "oczekiwanie na zakończenie procesu %d nie powiodło się: %s\n"
 
 #, c-format
 msgid "ldap wrapper %d stalled - killing\n"
@@ -8367,7 +8439,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "reading public key failed: %s\n"
 msgid "reading from ldap wrapper %d failed: %s\n"
-msgstr "odczyt klucza publicznego nie powiód³ siê: %s\n"
+msgstr "odczyt klucza publicznego nie powiódł się: %s\n"
 
 #, c-format
 msgid "invalid char 0x%02x in host name - not added\n"
@@ -8376,12 +8448,12 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "sending key %s to %s server %s\n"
 msgid "adding '%s:%d' to the ldap server list\n"
-msgstr "wysy³anie klucza %s na serwer %s %s\n"
+msgstr "wysyłanie klucza %s na serwer %s %s\n"
 
 #, fuzzy, c-format
 #| msgid "select failed: %s\n"
 msgid "malloc failed: %s\n"
-msgstr "select nie powiod³o siê: %s\n"
+msgstr "select nie powiodło się: %s\n"
 
 #, c-format
 msgid "start_cert_fetch: invalid pattern '%s'\n"
@@ -8393,17 +8465,17 @@ msgstr ""
 #, fuzzy
 #| msgid "%s: invalid file version %d\n"
 msgid "invalid canonical S-expression found\n"
-msgstr "%s: niew³a¶ciwa wersja pliku %d\n"
+msgstr "%s: niewłaściwa wersja pliku %d\n"
 
 #, fuzzy, c-format
 #| msgid "iconv_open failed: %s\n"
 msgid "gcry_md_open failed: %s\n"
-msgstr "iconv_open nie powiod³o siê: %s\n"
+msgstr "iconv_open nie powiodło się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "update secret failed: %s\n"
 msgid "oops: ksba_cert_hash failed: %s\n"
-msgstr "zapis zmian na kluczu prywatnym nie powiód³ siê: %s\n"
+msgstr "zapis zmian na kluczu prywatnym nie powiódł się: %s\n"
 
 msgid "bad URL encoding detected\n"
 msgstr ""
@@ -8411,12 +8483,12 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error reading from %s: %s\n"
 msgid "error reading from responder: %s\n"
-msgstr "b³±d odczytu z %s: %s\n"
+msgstr "błąd odczytu z %s: %s\n"
 
 #, fuzzy, c-format
 #| msgid "Error: Private DO too long (limit is %d characters).\n"
 msgid "response from server too large; limit is %d bytes\n"
-msgstr "B³±d: prywatne DO zbyt d³ugie (limit to %d znaków).\n"
+msgstr "Błąd: prywatne DO zbyt długie (limit to %d znaków).\n"
 
 #, fuzzy
 #| msgid "certificate `%s' not found: %s\n"
@@ -8429,32 +8501,32 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error storing flags: %s\n"
 msgid "error setting OCSP target: %s\n"
-msgstr "b³±d zapisywania flag: %s\n"
+msgstr "błąd zapisywania flag: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error loading `%s': %s\n"
 msgid "error building OCSP request: %s\n"
-msgstr "b³±d odczytu ,,%s'': %s\n"
+msgstr "błąd odczytu ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing to `%s': %s\n"
 msgid "error connecting to '%s': %s\n"
-msgstr "b³±d zapisu do ,,%s'': %s\n"
+msgstr "błąd zapisu do ,,%s'': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error reading from %s: %s\n"
 msgid "error reading HTTP response for '%s': %s\n"
-msgstr "b³±d odczytu z %s: %s\n"
+msgstr "błąd odczytu z %s: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error running `%s': exit status %d\n"
 msgid "error accessing '%s': http status %u\n"
-msgstr "b³±d uruchamiania ,,%s'': kod wyj¶cia %d\n"
+msgstr "błąd uruchamiania ,,%s'': kod wyjścia %d\n"
 
 #, fuzzy, c-format
 #| msgid "error binding socket to `%s': %s\n"
 msgid "error parsing OCSP response for '%s': %s\n"
-msgstr "b³±d podczas przypisywania gniazda do ,,%s'': %s\n"
+msgstr "błąd podczas przypisywania gniazda do ,,%s'': %s\n"
 
 #, c-format
 msgid "OCSP responder at '%s' status: %s\n"
@@ -8463,7 +8535,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "checking the trust list failed: %s\n"
 msgid "hashing the OCSP response for '%s' failed: %s\n"
-msgstr "sprawdzenie listy zaufania nie powiod³o siê: %s\n"
+msgstr "sprawdzenie listy zaufania nie powiodło się: %s\n"
 
 msgid "not signed by a default OCSP signer's certificate"
 msgstr ""
@@ -8474,17 +8546,17 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "receiving line failed: %s\n"
 msgid "allocating list item failed: %s\n"
-msgstr "odbieranie linii nie powiod³o siê: %s\n"
+msgstr "odbieranie linii nie powiodło się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error getting new PIN: %s\n"
 msgid "error getting responder ID: %s\n"
-msgstr "b³±d podczas odczytu nowego PIN-u: %s\n"
+msgstr "błąd podczas odczytu nowego PIN-u: %s\n"
 
 #, fuzzy
 #| msgid "certificate should not have been used for OCSP response signing\n"
 msgid "no suitable certificate found to verify the OCSP response\n"
-msgstr "certyfikat nie powinien byæ u¿ywany do podpisywania odpowiedzi OCSP\n"
+msgstr "certyfikat nie powinien być używany do podpisywania odpowiedzi OCSP\n"
 
 #, fuzzy, c-format
 #| msgid "issuer certificate not found"
@@ -8494,22 +8566,22 @@ msgstr "nie znaleziono wystawcy certyfikatu"
 #, fuzzy
 #| msgid "error reading list of trusted root certificates\n"
 msgid "caller did not return the target certificate\n"
-msgstr "b³±d odczytu listy zaufanych certyfikatów g³ównych\n"
+msgstr "błąd odczytu listy zaufanych certyfikatów głównych\n"
 
 #, fuzzy
 #| msgid "error storing certificate\n"
 msgid "caller did not return the issuing certificate\n"
-msgstr "b³±d zapisywania certyfikatu\n"
+msgstr "błąd zapisywania certyfikatu\n"
 
 #, fuzzy, c-format
 #| msgid "failed to allocate keyDB handle\n"
 msgid "failed to allocate OCSP context: %s\n"
-msgstr "nie uda³o siê przydzieliæ uchwytu keyDB\n"
+msgstr "nie udało się przydzielić uchwytu keyDB\n"
 
 #, fuzzy, c-format
 #| msgid "can't access `%s': %s\n"
 msgid "can't get authorityInfoAccess: %s\n"
-msgstr "nie mo¿na dostaæ siê do ,,%s'': %s\n"
+msgstr "nie można dostać się do ,,%s'': %s\n"
 
 msgid "no default OCSP responder defined\n"
 msgstr ""
@@ -8517,12 +8589,12 @@ msgstr ""
 #, fuzzy
 #| msgid "no default secret keyring: %s\n"
 msgid "no default OCSP signer defined\n"
-msgstr "brak domylnego zbioru kluczy tajnych: %s\n"
+msgstr "brak domyślnego zbioru kluczy tajnych: %s\n"
 
 #, fuzzy, c-format
 #| msgid "using default PIN as %s\n"
 msgid "using default OCSP responder '%s'\n"
-msgstr "u¿ycie domy¶lnego PIN-u jako %s\n"
+msgstr "użycie domyślnego PIN-u jako %s\n"
 
 #, fuzzy, c-format
 #| msgid "using cipher %s\n"
@@ -8536,7 +8608,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error storing certificate: %s\n"
 msgid "error getting OCSP status for target certificate: %s\n"
-msgstr "b³±d zapisywania certyfikatu: %s\n"
+msgstr "błąd zapisywania certyfikatu: %s\n"
 
 #, c-format
 msgid "certificate status is: %s  (this=%s  next=%s)\n"
@@ -8548,7 +8620,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "certificate has been revoked"
 msgid "certificate has been revoked at: %s due to: %s\n"
-msgstr "certyfikat zosta³ uniewa¿niony"
+msgstr "certyfikat został unieważniony"
 
 msgid "OCSP responder returned a status in the future\n"
 msgstr ""
@@ -8562,7 +8634,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "sending line failed: %s\n"
 msgid "assuan_inquire(%s) failed: %s\n"
-msgstr "wysy³anie linii nie powiod³o siê: %s\n"
+msgstr "wysyłanie linii nie powiodło się: %s\n"
 
 msgid "ldapserver missing"
 msgstr ""
@@ -8573,27 +8645,27 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "sending line failed: %s\n"
 msgid "assuan_inquire failed: %s\n"
-msgstr "wysy³anie linii nie powiod³o siê: %s\n"
+msgstr "wysyłanie linii nie powiodło się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "select failed: %s\n"
 msgid "fetch_cert_by_url failed: %s\n"
-msgstr "select nie powiod³o siê: %s\n"
+msgstr "select nie powiodło się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error sending %s command: %s\n"
 msgid "error sending data: %s\n"
-msgstr "b³±d wysy³ania polecenia %s: %s\n"
+msgstr "błąd wysyłania polecenia %s: %s\n"
 
 #, fuzzy, c-format
 #| msgid "select failed: %s\n"
 msgid "start_cert_fetch failed: %s\n"
-msgstr "select nie powiod³o siê: %s\n"
+msgstr "select nie powiodło się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "select failed: %s\n"
 msgid "fetch_next_cert failed: %s\n"
-msgstr "select nie powiod³o siê: %s\n"
+msgstr "select nie powiodło się: %s\n"
 
 #, c-format
 msgid "max_replies %d exceeded\n"
@@ -8602,22 +8674,22 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "cannot allocate outfile string: %s\n"
 msgid "can't allocate control structure: %s\n"
-msgstr "nie mo¿na przydzieliæ ³añcucha pliku wyj¶ciowego: %s\n"
+msgstr "nie można przydzielić łańcucha pliku wyjściowego: %s\n"
 
 #, fuzzy, c-format
 #| msgid "failed to create stream from socket: %s\n"
 msgid "failed to allocate assuan context: %s\n"
-msgstr "nie uda³o siê utworzyæ strumienia z gniazda: %s\n"
+msgstr "nie udało się utworzyć strumienia z gniazda: %s\n"
 
 #, fuzzy, c-format
 #| msgid "failed to initialize the TrustDB: %s\n"
 msgid "failed to initialize the server: %s\n"
-msgstr "inicjowanie Bazy Zaufania nie powiod³o siê: %s\n"
+msgstr "inicjowanie Bazy Zaufania nie powiodło się: %s\n"
 
 #, fuzzy, c-format
 #| msgid "failed to store the creation date: %s\n"
 msgid "failed to the register commands with Assuan: %s\n"
-msgstr "nie powiód³ siê zapis daty utworzenia: %s\n"
+msgstr "nie powiódł się zapis daty utworzenia: %s\n"
 
 #, c-format
 msgid "Assuan accept problem: %s\n"
@@ -8626,7 +8698,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "signing failed: %s\n"
 msgid "Assuan processing failed: %s\n"
-msgstr "z³o¿enie podpisu nie powiod³o siê: %s\n"
+msgstr "złożenie podpisu nie powiodło się: %s\n"
 
 #, fuzzy
 #| msgid "issuer certificate is not marked as a CA"
@@ -8644,17 +8716,17 @@ msgstr ""
 #, fuzzy
 #| msgid "checking the CRL failed: %s"
 msgid "checking CRL for"
-msgstr "sprawdzenie CRL nie powiod³o siê: %s"
+msgstr "sprawdzenie CRL nie powiodło się: %s"
 
 #, fuzzy
 #| msgid "self-signed certificate has a BAD signature"
 msgid "selfsigned certificate has a BAD signature"
-msgstr "w³asnorêcznie podpisany certyfikat ma Z£Y podpis"
+msgstr "własnoręcznie podpisany certyfikat ma ZŁY podpis"
 
 #, fuzzy, c-format
 #| msgid "checking for qualified certificate failed: %s\n"
 msgid "checking trustworthiness of root certificate failed: %s\n"
-msgstr "sprawdzenie certyfikatu kwalifikowanego nie powiod³o siê: %s\n"
+msgstr "sprawdzenie certyfikatu kwalifikowanego nie powiodło się: %s\n"
 
 #, fuzzy
 #| msgid "certificate is good\n"
@@ -8667,7 +8739,7 @@ msgstr ""
 #, fuzzy
 #| msgid "certificate should not have been used for signing\n"
 msgid "certificate should not have been used for CRL signing\n"
-msgstr "certyfikat nie powinien byæ u¿ywany do podpisywania\n"
+msgstr "certyfikat nie powinien być używany do podpisywania\n"
 
 msgid "quiet"
 msgstr "cicho"
@@ -8684,21 +8756,21 @@ msgid "connect to the dirmngr"
 msgstr "przekazanie polecenia do dirmngr"
 
 msgid "|NAME|connect to Assuan socket NAME"
-msgstr "|NAZWA|po³±czenie z gniazdem Assuan o tej nazwie"
+msgstr "|NAZWA|połączenie z gniazdem Assuan o tej nazwie"
 
 #, fuzzy
 #| msgid "|NAME|connect to Assuan socket NAME"
 msgid "|ADDR|connect to Assuan server at ADDR"
-msgstr "|NAZWA|po³±czenie z gniazdem Assuan o tej nazwie"
+msgstr "|NAZWA|połączenie z gniazdem Assuan o tej nazwie"
 
 msgid "run the Assuan server given on the command line"
-msgstr "uruchomienie serwera Assuan podanego z linii poleceñ"
+msgstr "uruchomienie serwera Assuan podanego z linii poleceń"
 
 msgid "do not use extended connect mode"
-msgstr "nie u¿ywanie rozszerzonego trybu po³±czenia"
+msgstr "nie używanie rozszerzonego trybu połączenia"
 
 msgid "|FILE|run commands from FILE on startup"
-msgstr "|PLIK|uruchomienie poleceñ z PLIKU przy starcie"
+msgstr "|PLIK|uruchomienie poleceń z PLIKU przy starcie"
 
 msgid "run /subst on startup"
 msgstr "uruchomienie /subst przy starcie"
@@ -8706,7 +8778,7 @@ msgstr "uruchomienie /subst przy starcie"
 #, fuzzy
 #| msgid "Usage: gpg-connect-agent [options] (-h for help)"
 msgid "Usage: @GPG@-connect-agent [options] (-h for help)"
-msgstr "Wywo³anie: gpg-connect-agent [opcje] (-h podaje pomoc)"
+msgstr "Wywołanie: gpg-connect-agent [opcje] (-h podaje pomoc)"
 
 #, fuzzy
 #| msgid ""
@@ -8716,12 +8788,12 @@ msgid ""
 "Syntax: @GPG@-connect-agent [options]\n"
 "Connect to a running agent and send commands\n"
 msgstr ""
-"Sk³adnia: gpg-connect-agent [opcje]\n"
-"Po³±czenie z dzia³aj±cym agentem i wysy³anie poleceñ\n"
+"Składnia: gpg-connect-agent [opcje]\n"
+"Połączenie z działającym agentem i wysyłanie poleceń\n"
 
 #, c-format
 msgid "option \"%s\" requires a program and optional arguments\n"
-msgstr "opcja ,,%s'' wymaga programu i opcjonalnych argumentów\n"
+msgstr "opcja ,,%s'' wymaga programu i opcjonalnych argumentów\n"
 
 #, c-format
 msgid "option \"%s\" ignored due to \"%s\"\n"
@@ -8729,13 +8801,13 @@ msgstr "opcja ,,%s'' zignorowana z powodu ,,%s''\n"
 
 #, c-format
 msgid "receiving line failed: %s\n"
-msgstr "odbieranie linii nie powiod³o siê: %s\n"
+msgstr "odbieranie linii nie powiodło się: %s\n"
 
 msgid "line too long - skipped\n"
-msgstr "linia zbyt d³uga - pominiêta\n"
+msgstr "linia zbyt długa - pominięta\n"
 
 msgid "line shortened due to embedded Nul character\n"
-msgstr "linia skrócona z powodu osadzonego znaku Nul\n"
+msgstr "linia skrócona z powodu osadzonego znaku Nul\n"
 
 #, fuzzy, c-format
 #| msgid "unknown command `%s'\n"
@@ -8744,138 +8816,138 @@ msgstr "nieznane polecenie ,,%s''\n"
 
 #, c-format
 msgid "sending line failed: %s\n"
-msgstr "wysy³anie linii nie powiod³o siê: %s\n"
+msgstr "wysyłanie linii nie powiodło się: %s\n"
 
 #, c-format
 msgid "error sending standard options: %s\n"
-msgstr "b³±d wysy³ania standardowych opcji: %s\n"
+msgstr "błąd wysyłania standardowych opcji: %s\n"
 
 msgid "Options controlling the diagnostic output"
-msgstr "Opcje steruj±ce wyj¶ciem diagnostycznym"
+msgstr "Opcje sterujące wyjściem diagnostycznym"
 
 msgid "Options controlling the configuration"
-msgstr "Opcje steruj±ce konfiguracj±"
+msgstr "Opcje sterujące konfiguracją"
 
 msgid "Options useful for debugging"
 msgstr "Opcje przydatne do diagnostyki"
 
 msgid "Options controlling the security"
-msgstr "Opcje steruj±ce bezpieczeñstwem"
+msgstr "Opcje sterujące bezpieczeństwem"
 
 msgid "|N|expire SSH keys after N seconds"
 msgstr "|N|przedawnienie kluczy SSH po N sekundach"
 
 msgid "|N|set maximum PIN cache lifetime to N seconds"
 msgstr ""
-"|N|ustawienie maksymalnego czasu ¿ycia pamiêci podrêcznej PIN-ów na N sekund"
+"|N|ustawienie maksymalnego czasu życia pamięci podręcznej PIN-ów na N sekund"
 
 msgid "|N|set maximum SSH key lifetime to N seconds"
-msgstr "|N|ustawienie maksymalnego czasu ¿ycia kluczy SSH na N sekund"
+msgstr "|N|ustawienie maksymalnego czasu życia kluczy SSH na N sekund"
 
 msgid "Options enforcing a passphrase policy"
-msgstr "Opcje wymuszaj±ce politykê hase³"
+msgstr "Opcje wymuszające politykę haseł"
 
 msgid "do not allow bypassing the passphrase policy"
-msgstr "nie zezwalanie na pominiêcie polityki hase³"
+msgstr "nie zezwalanie na pominięcie polityki haseł"
 
 msgid "|N|set minimal required length for new passphrases to N"
-msgstr "|N|ustawienie minimalnej d³ugo¶ci nowych hase³ na N"
+msgstr "|N|ustawienie minimalnej długości nowych haseł na N"
 
 msgid "|N|require at least N non-alpha characters for a new passphrase"
-msgstr "|N|wymaganie przynajmniej N znaków niealfanumerycznych w nowym ha¶le"
+msgstr "|N|wymaganie przynajmniej N znaków niealfanumerycznych w nowym haśle"
 
 msgid "|FILE|check new passphrases against pattern in FILE"
-msgstr "|PLIK|sprawdzanie nowych hase³ pod k±tem wzorców z PLIKU"
+msgstr "|PLIK|sprawdzanie nowych haseł pod kątem wzorców z PLIKU"
 
 msgid "|N|expire the passphrase after N days"
-msgstr "|N|przedawnianie hase³ po N dniach"
+msgstr "|N|przedawnianie haseł po N dniach"
 
 msgid "do not allow the reuse of old passphrases"
-msgstr "nie zezwalanie na ponowne u¿ycie starych hase³"
+msgstr "nie zezwalanie na ponowne użycie starych haseł"
 
 #, fuzzy
 #| msgid "|N|set maximum PIN cache lifetime to N seconds"
 msgid "|N|set the Pinentry timeout to N seconds"
 msgstr ""
-"|N|ustawienie maksymalnego czasu ¿ycia pamiêci podrêcznej PIN-ów na N sekund"
+"|N|ustawienie maksymalnego czasu życia pamięci podręcznej PIN-ów na N sekund"
 
 msgid "|NAME|use NAME as default secret key"
-msgstr "|NAZWA|u¿ycie NAZWY jako domy¶lnego klucza tajnego"
+msgstr "|NAZWA|użycie NAZWY jako domyślnego klucza tajnego"
 
 msgid "|NAME|encrypt to user ID NAME as well"
-msgstr "|NAZWA|szyfrowanie tak¿e dla odbiorcy NAZWA"
+msgstr "|NAZWA|szyfrowanie także dla odbiorcy NAZWA"
 
 msgid "|SPEC|set up email aliases"
-msgstr "|SPEC|okrel adres email"
+msgstr "|SPEC|określ adres email"
 
 msgid "Configuration for Keyservers"
-msgstr "Konfiguracja dla serwerów kluczy"
+msgstr "Konfiguracja dla serwerów kluczy"
 
 msgid "|URL|use keyserver at URL"
-msgstr "|URL|u¿ywaj serwera kluczy URL"
+msgstr "|URL|używaj serwera kluczy URL"
 
 msgid "allow PKA lookups (DNS requests)"
-msgstr "zezwolenie na wyszukiwania PKA (¿±dania DNS)"
+msgstr "zezwolenie na wyszukiwania PKA (żądania DNS)"
 
 msgid "|MECHANISMS|use MECHANISMS to locate keys by mail address"
 msgstr ""
 "|MECHANIZMY|wykorzystaj MECHANIZMY do wyszukiwania kluczy na podstawie "
-"adresów e-mail"
+"adresów e-mail"
 
 msgid "disable all access to the dirmngr"
-msgstr "zablokuj dostêp do dirmngr"
+msgstr "zablokuj dostęp do dirmngr"
 
 msgid "|NAME|use encoding NAME for PKCS#12 passphrases"
-msgstr "|NAZWA|u¿ycie kodowania NAZWA dla hase³ PKCS#12"
+msgstr "|NAZWA|użycie kodowania NAZWA dla haseł PKCS#12"
 
 msgid "do not check CRLs for root certificates"
-msgstr "nie sprawdzanie CRL dla g³ównych certyfikatów"
+msgstr "nie sprawdzanie CRL dla głównych certyfikatów"
 
 msgid "Options controlling the format of the output"
-msgstr "Opcje steruj±ce formatem wyj¶cia"
+msgstr "Opcje sterujące formatem wyjścia"
 
 msgid "Options controlling the interactivity and enforcement"
-msgstr "Opcje steruj±ce interaktywno¶ci± i wymuszaniem"
+msgstr "Opcje sterujące interaktywnością i wymuszaniem"
 
 #, fuzzy
 #| msgid "Options controlling the security"
 msgid "Options controlling the use of Tor"
-msgstr "Opcje steruj±ce bezpieczeñstwem"
+msgstr "Opcje sterujące bezpieczeństwem"
 
 msgid "Configuration for HTTP servers"
-msgstr "Konfiguracja dla serwerów HTTP"
+msgstr "Konfiguracja dla serwerów HTTP"
 
 msgid "use system's HTTP proxy setting"
-msgstr "u¿ycie systemowego ustawienia proxy HTTP"
+msgstr "użycie systemowego ustawienia proxy HTTP"
 
 msgid "Configuration of LDAP servers to use"
-msgstr "Konfiguracja u¿ywanych serwerów LDAP"
+msgstr "Konfiguracja używanych serwerów LDAP"
 
 msgid "LDAP server list"
-msgstr "lista serwerów LDAP"
+msgstr "lista serwerów LDAP"
 
 msgid "Configuration for OCSP"
 msgstr "Konfiguracja dla OCSP"
 
-msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr ""
 
-msgid "GPG Agent"
+msgid "Private Keys"
 msgstr ""
 
-msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr ""
 
-msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr ""
 
-msgid "Key Acquirer"
+msgid "Network"
 msgstr ""
 
 #, fuzzy
 #| msgid "Bad Passphrase"
-msgid "PIN and Passphrase Entry"
-msgstr "Niepoprawne has³o"
+msgid "Passphrase Entry"
+msgstr "Niepoprawne hasło"
 
 #, fuzzy
 #| msgid "Component not found"
@@ -8884,16 +8956,16 @@ msgstr "Nie znaleziono komponentu"
 
 #, c-format
 msgid "External verification of component %s failed"
-msgstr "Zewnêtrzna weryfikacja komponentu %s nie powiod³a siê"
+msgstr "Zewnętrzna weryfikacja komponentu %s nie powiodła się"
 
 msgid "Note that group specifications are ignored\n"
-msgstr "Uwaga, okre¶lenia grup s± ignorowane\n"
+msgstr "Uwaga, określenia grup są ignorowane\n"
 
 msgid "list all components"
-msgstr "lista wszystkich komponentów"
+msgstr "lista wszystkich komponentów"
 
 msgid "check all programs"
-msgstr "sprawdzenie wszystkich programów"
+msgstr "sprawdzenie wszystkich programów"
 
 msgid "|COMPONENT|list options"
 msgstr "|KOMPONENT|wypisanie opcji"
@@ -8905,7 +8977,7 @@ msgid "|COMPONENT|check options"
 msgstr "|KOMPONENT|zaznaczenie opcji"
 
 msgid "apply global default values"
-msgstr "zastosowanie globalnych warto¶ci domy¶lnych"
+msgstr "zastosowanie globalnych wartości domyślnych"
 
 #, fuzzy
 #| msgid "get the configuration directories for gpgconf"
@@ -8913,36 +8985,41 @@ msgid "get the configuration directories for @GPGCONF@"
 msgstr "katalogi konfiguracyjne programu gpgconf"
 
 msgid "list global configuration file"
-msgstr "wywietl globalny plik konfiguracyjny"
+msgstr "wyświetl globalny plik konfiguracyjny"
 
 msgid "check global configuration file"
 msgstr "sprawdzenie globalnego pliku konfiguracyjnego"
 
 #, fuzzy
+#| msgid "update the trust database"
+msgid "query the software version database"
+msgstr "uaktualnienie bazy zaufania"
+
+#, fuzzy
 #| msgid "list all components"
 msgid "reload all or a given component"
-msgstr "lista wszystkich komponentów"
+msgstr "lista wszystkich komponentów"
 
 #, fuzzy
 #| msgid "list all components"
 msgid "launch a given component"
-msgstr "lista wszystkich komponentów"
+msgstr "lista wszystkich komponentów"
 
 #, fuzzy
 #| msgid "list all components"
 msgid "kill a given component"
-msgstr "lista wszystkich komponentów"
+msgstr "lista wszystkich komponentów"
 
 msgid "use as output file"
-msgstr "plik wyjciowy"
+msgstr "plik wyjściowy"
 
 msgid "activate changes at runtime, if possible"
-msgstr "uaktywnienie zmian w czasie dzia³ania o ile to mo¿liwe"
+msgstr "uaktywnienie zmian w czasie działania o ile to możliwe"
 
 #, fuzzy
 #| msgid "Usage: gpgconf [options] (-h for help)"
 msgid "Usage: @GPGCONF@ [options] (-h for help)"
-msgstr "Wywo³anie: gpgconf [opcje] (-h podaje pomoc)"
+msgstr "Wywołanie: gpgconf [opcje] (-h podaje pomoc)"
 
 #, fuzzy
 #| msgid ""
@@ -8952,8 +9029,8 @@ msgid ""
 "Syntax: @GPGCONF@ [options]\n"
 "Manage configuration options for tools of the @GNUPG@ system\n"
 msgstr ""
-"Sk³adnia: gpgconf [opcje]\n"
-"Zarz±dzanie opcjami konfiguracji dla narzêdzi z systemu GnuPG\n"
+"Składnia: gpgconf [opcje]\n"
+"Zarządzanie opcjami konfiguracji dla narzędzi z systemu GnuPG\n"
 
 msgid "Need one component argument"
 msgstr "Wymagany jest jeden argument komponentu"
@@ -8980,7 +9057,7 @@ msgid "encryption modus"
 msgstr "tryb szyfrowania"
 
 msgid "tool class (confucius)"
-msgstr "klasa narzêdzia (confucius)"
+msgstr "klasa narzędzia (confucius)"
 
 msgid "program filename"
 msgstr "nazwa programu"
@@ -8989,19 +9066,19 @@ msgid "secret key file (required)"
 msgstr "plik klucza tajnego (wymagany)"
 
 msgid "input file name (default stdin)"
-msgstr "nazwa pliku wej¶ciowego (domy¶lnie standardowe wej¶cie)"
+msgstr "nazwa pliku wejściowego (domyślnie standardowe wejście)"
 
 msgid "Usage: symcryptrun [options] (-h for help)"
-msgstr "Wywo³anie: symcryptrun [opcje] (-h podaje pomoc)"
+msgstr "Wywołanie: symcryptrun [opcje] (-h podaje pomoc)"
 
 msgid ""
 "Syntax: symcryptrun --class CLASS --program PROGRAM --keyfile KEYFILE "
 "[options...] COMMAND [inputfile]\n"
 "Call a simple symmetric encryption tool\n"
 msgstr ""
-"Sk³adnia: symcryptrun --class KLASA --program PROGRAM --keyfile PLIK_KLUCZA "
-"[opcje...] POLECENIE [plik-weciowy]\n"
-"Wywo³anie prostego narzêdzia do szyfrowania symetrycznego\n"
+"Składnia: symcryptrun --class KLASA --program PROGRAM --keyfile PLIK_KLUCZA "
+"[opcje...] POLECENIE [plik-weściowy]\n"
+"Wywołanie prostego narzędzia do szyfrowania symetrycznego\n"
 
 #, c-format
 msgid "%s on %s aborted with status %i\n"
@@ -9009,111 +9086,127 @@ msgstr "%s na %s przerwany ze stanem %i\n"
 
 #, c-format
 msgid "%s on %s failed with status %i\n"
-msgstr "%s na %s nie powiód³ siê ze stanem %i\n"
+msgstr "%s na %s nie powiódł się ze stanem %i\n"
 
 #, fuzzy, c-format
 #| msgid "can't create temporary directory `%s': %s\n"
 msgid "can't create temporary directory '%s': %s\n"
-msgstr "nie mo¿na utworzyæ katalogu tymczasowego,,%s'': %s\n"
+msgstr "nie można utworzyć katalogu tymczasowego,,%s'': %s\n"
 
 #, c-format
 msgid "could not open %s for writing: %s\n"
-msgstr "nie uda³o siê otworzyæ %s do zapisu: %s\n"
+msgstr "nie udało się otworzyć %s do zapisu: %s\n"
 
 #, c-format
 msgid "error writing to %s: %s\n"
-msgstr "b³±d zapisu do %s: %s\n"
+msgstr "błąd zapisu do %s: %s\n"
 
 #, c-format
 msgid "error reading from %s: %s\n"
-msgstr "b³±d odczytu z %s: %s\n"
+msgstr "błąd odczytu z %s: %s\n"
 
 #, c-format
 msgid "error closing %s: %s\n"
-msgstr "b³±d zamykania %s: %s\n"
+msgstr "błąd zamykania %s: %s\n"
 
 msgid "no --program option provided\n"
 msgstr "nie podano opcji --program\n"
 
 msgid "only --decrypt and --encrypt are supported\n"
-msgstr "obs³ugiwane s± tylko --decrypt i --encrypt\n"
+msgstr "obsługiwane są tylko --decrypt i --encrypt\n"
 
 msgid "no --keyfile option provided\n"
 msgstr "nie podano opcji --keyfile\n"
 
 msgid "cannot allocate args vector\n"
-msgstr "nie mo¿na przydzieliæ wektora args\n"
+msgstr "nie można przydzielić wektora args\n"
 
 #, c-format
 msgid "could not create pipe: %s\n"
-msgstr "nie uda³o siê utworzyæ potoku: %s\n"
+msgstr "nie udało się utworzyć potoku: %s\n"
 
 #, c-format
 msgid "could not create pty: %s\n"
-msgstr "nie uda³o siê utworzyæ pty: %s\n"
+msgstr "nie udało się utworzyć pty: %s\n"
 
 #, c-format
 msgid "could not fork: %s\n"
-msgstr "nie uda³o siê wykonaæ fork: %s\n"
+msgstr "nie udało się wykonać fork: %s\n"
 
 #, c-format
 msgid "execv failed: %s\n"
-msgstr "execv nie powiod³o siê: %s\n"
+msgstr "execv nie powiodło się: %s\n"
 
 #, c-format
 msgid "select failed: %s\n"
-msgstr "select nie powiod³o siê: %s\n"
+msgstr "select nie powiodło się: %s\n"
 
 #, c-format
 msgid "read failed: %s\n"
-msgstr "odczyt nie powiód³ siê: %s\n"
+msgstr "odczyt nie powiódł się: %s\n"
 
 #, c-format
 msgid "pty read failed: %s\n"
-msgstr "odczyt pty nie powiód³ siê: %s\n"
+msgstr "odczyt pty nie powiódł się: %s\n"
 
 #, c-format
 msgid "waitpid failed: %s\n"
-msgstr "waitpid nie powiod³o siê: %s\n"
+msgstr "waitpid nie powiodło się: %s\n"
 
 #, c-format
 msgid "child aborted with status %i\n"
-msgstr "potomek zosta³ przerwany ze stanem %i\n"
+msgstr "potomek został przerwany ze stanem %i\n"
 
 #, c-format
 msgid "cannot allocate infile string: %s\n"
-msgstr "nie mo¿na przydzieliæ ³añcucha pliku wej¶ciowego: %s\n"
+msgstr "nie można przydzielić łańcucha pliku wejściowego: %s\n"
 
 #, c-format
 msgid "cannot allocate outfile string: %s\n"
-msgstr "nie mo¿na przydzieliæ ³añcucha pliku wyj¶ciowego: %s\n"
+msgstr "nie można przydzielić łańcucha pliku wyjściowego: %s\n"
 
 #, c-format
 msgid "either %s or %s must be given\n"
-msgstr "musi byæ podane %s lub %s\n"
+msgstr "musi być podane %s lub %s\n"
 
 msgid "no class provided\n"
 msgstr "nie podano klasy\n"
 
 #, c-format
 msgid "class %s is not supported\n"
-msgstr "klasa %s nie jest obs³ugiwana\n"
+msgstr "klasa %s nie jest obsługiwana\n"
 
 msgid "Usage: gpg-check-pattern [options] patternfile (-h for help)\n"
-msgstr "Wywo³anie: gpg-check-pattern [opcje] plik-wzorców (-h podaje pomoc)\n"
+msgstr "Wywołanie: gpg-check-pattern [opcje] plik-wzorców (-h podaje pomoc)\n"
 
 msgid ""
 "Syntax: gpg-check-pattern [options] patternfile\n"
 "Check a passphrase given on stdin against the patternfile\n"
 msgstr ""
-"Sk³adnia: gpg-check-pattern [opcje] plik-wzorców\n"
-"Sprawdzanie has³a ze standardowego wej¶cia wzglêdem pliku wzorców\n"
+"Składnia: gpg-check-pattern [opcje] plik-wzorców\n"
+"Sprawdzanie hasła ze standardowego wejścia względem pliku wzorców\n"
+
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "zaciemnienie klucza nie powiodło się: %s\n"
+
+#, fuzzy
+#~| msgid "Available keys:\n"
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "Dostępne klucze:\n"
+
+#, fuzzy
+#~| msgid "print message digests"
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "wypisanie skrótów wiadomości"
+#~ msgstr[1] "wypisanie skrótów wiadomości"
+#~ msgstr[2] "wypisanie skrótów wiadomości"
 
 #~ msgid "communication problem with gpg-agent\n"
-#~ msgstr "problem z komunikacj± z gpg-agentem\n"
+#~ msgstr "problem z komunikacją z gpg-agentem\n"
 
 #~ msgid "canceled by user\n"
-#~ msgstr "anulowano przez u¿ytkownika\n"
+#~ msgstr "anulowano przez użytkownika\n"
 
 #~ msgid "problem with the agent\n"
 #~ msgstr "problem z agentem\n"
@@ -9139,28 +9232,28 @@ msgstr ""
 #~ "%u-bit %s key, ID %s,\n"
 #~ "created %s%s.\n"
 #~ msgstr ""
-#~ "Musisz podaæ has³o, aby odbezpieczyæ klucz tajny certyfikatu OpenPGP:\n"
+#~ "Musisz podać hasło, aby odbezpieczyć klucz tajny certyfikatu OpenPGP:\n"
 #~ ",,%.*s''.\n"
-#~ "Klucz o d³ugo¶ci %u bitów, typ %s, ID %s,\n"
+#~ "Klucz o długości %u bitów, typ %s, ID %s,\n"
 #~ "stworzony %s%s.\n"
 
 #~ msgid ""
 #~ "You need a passphrase to unlock the secret key for\n"
 #~ "user: \"%s\"\n"
 #~ msgstr ""
-#~ "Musisz podaæ has³o aby odbezpieczyæ klucz prywatny u¿ytkownika:\n"
+#~ "Musisz podać hasło aby odbezpieczyć klucz prywatny użytkownika:\n"
 #~ ",,%s''\n"
 
 #~ msgid "%u-bit %s key, ID %s, created %s"
-#~ msgstr "d³ugo¶æ %u bitów, typ %s, numer %s, stworzony %s"
+#~ msgstr "długość %u bitów, typ %s, numer %s, stworzony %s"
 
 #~ msgid "         (subkey on main key ID %s)"
-#~ msgstr "         (podklucz dla g³ównego klucza o ID %s)"
+#~ msgstr "         (podklucz dla głównego klucza o ID %s)"
 
 #, fuzzy
 #~| msgid "can't create directory `%s': %s\n"
 #~ msgid "can't access directory '%s': %s\n"
-#~ msgstr "nie mo¿na utworzyæ katalogu ,,%s'': %s\n"
+#~ msgstr "nie można utworzyć katalogu ,,%s'': %s\n"
 
 #, fuzzy
 #~| msgid "run in daemon mode (background)"
@@ -9168,21 +9261,21 @@ msgstr ""
 #~ msgstr "uruchomienie w trybie demona (w tle)"
 
 #~ msgid "you found a bug ... (%s:%d)\n"
-#~ msgstr "znalaz³e¶(a¶) b³±d w programie ... (%s:%d)\n"
+#~ msgstr "znalazłeś(aś) błąd w programie ... (%s:%d)\n"
 
 #, fuzzy
 #~| msgid "%d user IDs without valid self-signatures detected\n"
 #~ msgid "%d user ID without valid self-signature detected\n"
 #~ msgid_plural "%d user IDs without valid self-signatures detected\n"
 #~ msgstr[0] ""
-#~ "wykryto %d identyfikatorów u¿ytkownika niepodpisanych tym samym kluczem\n"
+#~ "wykryto %d identyfikatorów użytkownika niepodpisanych tym samym kluczem\n"
 #~ msgstr[1] ""
-#~ "wykryto %d identyfikatorów u¿ytkownika niepodpisanych tym samym kluczem\n"
+#~ "wykryto %d identyfikatorów użytkownika niepodpisanych tym samym kluczem\n"
 #~ msgstr[2] ""
-#~ "wykryto %d identyfikatorów u¿ytkownika niepodpisanych tym samym kluczem\n"
+#~ "wykryto %d identyfikatorów użytkownika niepodpisanych tym samym kluczem\n"
 
 #~ msgid "moving a key signature to the correct place\n"
-#~ msgstr "przenoszê podpis klucza na w³a¶ciwe miejsce\n"
+#~ msgstr "przenoszę podpis klucza na właściwe miejsce\n"
 
 #, fuzzy
 #~| msgid "option \"%.50s\" is ambiguous\n"
@@ -9190,37 +9283,34 @@ msgstr ""
 #~ msgstr "opcja ,,%.50s'' jest niejednoznaczna\n"
 
 #~ msgid "%d signatures not checked due to missing keys\n"
-#~ msgstr "%d podpisów nie zosta³o sprawdzonych z powodu braku kluczy\n"
+#~ msgstr "%d podpisów nie zostało sprawdzonych z powodu braku kluczy\n"
 
 #~ msgid "%d signatures not checked due to errors\n"
-#~ msgstr "%d podpisów nie sprawdzonych z powodu b³êdów\n"
+#~ msgstr "%d podpisów nie sprawdzonych z powodu błędów\n"
 
 #~ msgid "1 user ID without valid self-signature detected\n"
 #~ msgstr ""
-#~ "wykryto 1 identyfikator u¿ytkownika niepodpisany tym samym kluczem\n"
-
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "%d podpisów usuniêtych.\n"
+#~ "wykryto 1 identyfikator użytkownika niepodpisany tym samym kluczem\n"
 
 #~ msgid "User ID \"%s\": %d signatures removed\n"
-#~ msgstr "Identyfikator u¿ytkownika ,,%s'': %d podpisów wyczyszczonych\n"
+#~ msgstr "Identyfikator użytkownika ,,%s'': %d podpisów wyczyszczonych\n"
 
 #~ msgid ""
 #~ "You need a Passphrase to protect your secret key.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Musisz podaæ d³ugie, skomplikowane has³o aby ochroniæ swój klucz tajny.\n"
+#~ "Musisz podać długie, skomplikowane hasło aby ochronić swój klucz tajny.\n"
 #~ "\n"
 
 #~ msgid ""
 #~ "Please enter a passphrase to protect the off-card backup of the new "
 #~ "encryption key."
 #~ msgstr ""
-#~ "Proszê wprowadziæ has³o do zabezpieczenia kopii zapasowej poza kart± "
-#~ "nowego klucza szyfruj±cego."
+#~ "Proszę wprowadzić hasło do zabezpieczenia kopii zapasowej poza kartą "
+#~ "nowego klucza szyfrującego."
 
 #~ msgid "passphrase not correctly repeated; try again"
-#~ msgstr "has³o nie zosta³o poprawnie powtórzone; jeszcze jedna próba"
+#~ msgstr "hasło nie zostało poprawnie powtórzone; jeszcze jedna próba"
 
 #~ msgid "%s.\n"
 #~ msgstr "%s.\n"
@@ -9231,222 +9321,217 @@ msgstr ""
 #~ "using this program with the option \"--edit-key\".\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Nie chcesz podaæ has³a - to *z³y* pomys³!\n"
-#~ "W ka¿dej chwili mo¿esz ustawiæ has³o u¿ywaj±c tego programu i opcji\n"
+#~ "Nie chcesz podać hasła - to *zły* pomysł!\n"
+#~ "W każdej chwili możesz ustawić hasło używając tego programu i opcji\n"
 #~ "\"--edit-key\".\n"
 #~ "\n"
 
 #~ msgid "storing key onto card failed: %s\n"
-#~ msgstr "zapis klucza na karcie nie powiód³ siê: %s\n"
+#~ msgstr "zapis klucza na karcie nie powiódł się: %s\n"
 
 #, fuzzy
 #~| msgid "1 bad signature\n"
 #~ msgid "1 good signature\n"
 #~ msgstr "1 niepoprawny podpis\n"
 
-#, fuzzy
-#~| msgid "renaming `%s' to `%s' failed: %s\n"
-#~ msgid "renaming '%s' to '%s' failed: %s\n"
-#~ msgstr "zmiana nazwy ,,%s'' na ,,%s'' nie powiod³a siê: %s\n"
-
 #~ msgid "%lu keys cached (%lu signatures)\n"
-#~ msgstr "%lu kluczy zbuforowano (%lu podpisów)\n"
+#~ msgstr "%lu kluczy zbuforowano (%lu podpisów)\n"
 
 #~ msgid "refreshing 1 key from %s\n"
-#~ msgstr "od¶wie¿anie 1 klucza z %s\n"
+#~ msgstr "odświeżanie 1 klucza z %s\n"
 
 #~ msgid "sending key %s to %s server %s\n"
-#~ msgstr "wysy³anie klucza %s na serwer %s %s\n"
+#~ msgstr "wysyłanie klucza %s na serwer %s %s\n"
 
 #~ msgid "public key %s is %lu seconds newer than the signature\n"
-#~ msgstr "klucz publiczny %s jest o %lu sekund(y) m³odszy od podpisu\n"
+#~ msgstr "klucz publiczny %s jest o %lu sekund(y) młodszy od podpisu\n"
 
 #~ msgid ""
 #~ "key %s was created %lu seconds in the future (time warp or clock "
 #~ "problem)\n"
 #~ msgstr ""
-#~ "klucz %s zosta³ stworzony %lu sekund w przysz³o¶ci (zaburzenia\n"
-#~ "czasoprzestrzeni lub ¼le ustawiony zegar systemowy)\n"
+#~ "klucz %s został stworzony %lu sekund w przyszłości (zaburzenia\n"
+#~ "czasoprzestrzeni lub źle ustawiony zegar systemowy)\n"
 
 #~ msgid "%d marginal(s) needed, %d complete(s) needed, %s trust model\n"
-#~ msgstr "potrzeba %d marginalnych, %d pe³nych, model zaufania %s\n"
+#~ msgstr "potrzeba %d marginalnych, %d pełnych, model zaufania %s\n"
 
 #~ msgid "cleared passphrase cached with ID: %s\n"
-#~ msgstr "wyczyszczono has³o zapamiêtane z ID: %s\n"
+#~ msgstr "wyczyszczono hasło zapamiętane z ID: %s\n"
 
 #, fuzzy
 #~| msgid "failed to store the key: %s\n"
 #~ msgid "Failed to open the keyring DB.\n"
-#~ msgstr "nie powiód³ siê zapis klucza: %s\n"
+#~ msgstr "nie powiódł się zapis klucza: %s\n"
 
 #, fuzzy
 #~| msgid "failed to open `%s': %s\n"
 #~ msgid "Failed to parse '%s'.\n"
-#~ msgstr "nie uda³o siê otworzyæ ,,%s'': %s\n"
+#~ msgstr "nie udało się otworzyć ,,%s'': %s\n"
 
 #, fuzzy
 #~| msgid "error reading secret keyblock \"%s\": %s\n"
 #~ msgid "error looking up secret key \"%s\": %s\n"
-#~ msgstr "b³±d odczytu bloku klucza tajnego ,,%s'': %s\n"
+#~ msgstr "błąd odczytu bloku klucza tajnego ,,%s'': %s\n"
 
 #~ msgid "Please select at most one subkey.\n"
-#~ msgstr "Proszê wybraæ najwy¿ej jeden podklucz.\n"
+#~ msgstr "Proszę wybrać najwyżej jeden podklucz.\n"
 
 #, fuzzy
 #~| msgid "no running dirmngr - starting `%s'\n"
 #~ msgid "no running dirmngr - starting one\n"
-#~ msgstr "dirmngr nie dzia³a - uruchamianie ,,%s''\n"
+#~ msgstr "dirmngr nie działa - uruchamianie ,,%s''\n"
 
 #, fuzzy
 #~| msgid "malformed DIRMNGR_INFO environment variable\n"
 #~ msgid "malformed %s environment variable\n"
-#~ msgstr "z³y format zmiennej ¶rodowiskowej DIRMNGR_INFO\n"
+#~ msgstr "zły format zmiennej środowiskowej DIRMNGR_INFO\n"
 
 #~ msgid "dirmngr protocol version %d is not supported\n"
-#~ msgstr "wersja %d protoko³u dirmngr nie jest obs³ugiwana\n"
+#~ msgstr "wersja %d protokołu dirmngr nie jest obsługiwana\n"
 
 #~ msgid "can't connect to the dirmngr - trying fall back\n"
-#~ msgstr "nie mo¿na po³±czyæ siê z dirmngr - próba fallbacku\n"
+#~ msgstr "nie można połączyć się z dirmngr - próba fallbacku\n"
 
 #~ msgid "export keys in an S-expression based format"
-#~ msgstr "eksport kluczy w formacie opartym na S-wyra¿eniach"
+#~ msgstr "eksport kluczy w formacie opartym na S-wyrażeniach"
 
 #~ msgid "toggle between the secret and public key listings"
-#~ msgstr "prze³±czenie pomiêdzy listami kluczy tajnych i publicznych"
+#~ msgstr "przełączenie pomiędzy listami kluczy tajnych i publicznych"
 
 #~ msgid "Please use the command \"toggle\" first.\n"
-#~ msgstr "Najpierw trzeba u¿yæ polecenia \"prze³\".\n"
+#~ msgstr "Najpierw trzeba użyć polecenia \"przeł\".\n"
 
 #~ msgid "Passphrase"
-#~ msgstr "Has³o"
+#~ msgstr "Hasło"
 
 #~ msgid "use temporary files to pass data to keyserver helpers"
 #~ msgstr ""
-#~ "u¿ycie plików tymczasowych do przekazywania danych do modu³ów obs³ugi "
+#~ "użycie plików tymczasowych do przekazywania danych do modułów obsługi "
 #~ "serwera kluczy"
 
 #~ msgid "do not delete temporary files after using them"
-#~ msgstr "nie usuwanie plików tymczasowych po u¿yciu ich"
+#~ msgstr "nie usuwanie plików tymczasowych po użyciu ich"
 
 #, fuzzy
 #~| msgid "WARNING: keyserver option `%s' is not used on this platform\n"
 #~ msgid "WARNING: keyserver option '%s' is not used on this platform\n"
 #~ msgstr ""
-#~ "OSTRZE¯ENIE: opcja serwera kluczy ,,%s'' nie jest u¿ywana na tej "
+#~ "OSTRZEŻENIE: opcja serwera kluczy ,,%s'' nie jest używana na tej "
 #~ "platformie.\n"
 
 #~ msgid "name of socket too long\n"
-#~ msgstr "nazwa gniazda zbyt d³uga\n"
+#~ msgstr "nazwa gniazda zbyt długa\n"
 
 #~ msgid "gpg-agent is not available in this session\n"
-#~ msgstr "gpg-agent nie jest dostêpny w tej sesji\n"
+#~ msgstr "gpg-agent nie jest dostępny w tej sesji\n"
 
 #~ msgid "use a standard location for the socket"
-#~ msgstr "u¿ycie standardowego po³o¿enia gniazda"
+#~ msgstr "użycie standardowego położenia gniazda"
 
 #~ msgid "|FILE|write environment settings also to FILE"
-#~ msgstr "|PLIK|zapis ustawieñ ¶rodowiska tak¿e do PLIKU"
+#~ msgstr "|PLIK|zapis ustawień środowiska także do PLIKU"
 
 #~ msgid "Usage: gpg-agent [options] (-h for help)"
-#~ msgstr "Wywo³anie: gpg-agent [opcje] (-h podaje pomoc)"
+#~ msgstr "Wywołanie: gpg-agent [opcje] (-h podaje pomoc)"
 
 #~ msgid "malformed GPG_AGENT_INFO environment variable\n"
-#~ msgstr "z³y format zmiennej ¶rodowiskowej GPG_AGENT_INFO\n"
+#~ msgstr "zły format zmiennej środowiskowej GPG_AGENT_INFO\n"
 
 #~ msgid "gpg-agent protocol version %d is not supported\n"
-#~ msgstr "wersja %d protoko³u agenta nie jest obs³ugiwana\n"
+#~ msgstr "wersja %d protokołu agenta nie jest obsługiwana\n"
 
 #~ msgid "can't fdopen pipe for reading: %s\n"
-#~ msgstr "nie mo¿na wykonaæ fdopen do odczytu na potoku: %s\n"
+#~ msgstr "nie można wykonać fdopen do odczytu na potoku: %s\n"
 
 #~ msgid "error creating socket: %s\n"
-#~ msgstr "b³±d tworzenia gniazda: %s\n"
+#~ msgstr "błąd tworzenia gniazda: %s\n"
 
 #~ msgid "host not found"
 #~ msgstr "nie znaleziono hosta"
 
 #~ msgid "can't connect to the agent - trying fall back\n"
-#~ msgstr "nie mo¿na po³±czyæ siê z agentem - próba fallbacku\n"
+#~ msgstr "nie można połączyć się z agentem - próba fallbacku\n"
 
 #~ msgid "unknown key protection algorithm\n"
 #~ msgstr "nieznany algorytm ochrony klucza\n"
 
 #~ msgid "secret parts of key are not available\n"
-#~ msgstr "czê¶ci tajne klucza s± niedostêpne\n"
+#~ msgstr "części tajne klucza są niedostępne\n"
 
 #~ msgid "secret key already stored on a card\n"
-#~ msgstr "klucz prywatny jest ju¿ zapisany na karcie\n"
+#~ msgstr "klucz prywatny jest już zapisany na karcie\n"
 
 #~ msgid "error writing key to card: %s\n"
-#~ msgstr "b³±d zapisu klucza na karcie: %s\n"
+#~ msgstr "błąd zapisu klucza na karcie: %s\n"
 
 #~ msgid ""
 #~ "you can only encrypt to RSA keys of 2048 bits or less in --pgp2 mode\n"
 #~ msgstr ""
-#~ "w trybie --pgp2 mo¿na szyfrowaæ dla kluczy RSA krótszych od 2048 bitów\n"
+#~ "w trybie --pgp2 można szyfrować dla kluczy RSA krótszych od 2048 bitów\n"
 
 #~ msgid ""
 #~ "unable to use the IDEA cipher for all of the keys you are encrypting to.\n"
 #~ msgstr ""
-#~ "nie mo¿na u¿yæ szyfru IDEA z wszystkimi kluczami dla których szyfrujesz.\n"
+#~ "nie można użyć szyfru IDEA z wszystkimi kluczami dla których szyfrujesz.\n"
 
 #~ msgid "remove the passphrase from exported subkeys"
-#~ msgstr "usuniêcie has³a z wyeksportowanych podkluczy"
+#~ msgstr "usunięcie hasła z wyeksportowanych podkluczy"
 
 #~ msgid "key %s: not protected - skipped\n"
-#~ msgstr "klucz %s: nie jest chroniony - pominiêty\n"
+#~ msgstr "klucz %s: nie jest chroniony - pominięty\n"
 
 #~ msgid "about to export an unprotected subkey\n"
-#~ msgstr "ma byæ wyeksportowany niezabezpieczony podklucz\n"
+#~ msgstr "ma być wyeksportowany niezabezpieczony podklucz\n"
 
 #~ msgid "failed to unprotect the subkey: %s\n"
-#~ msgstr "nie powiod³o siê odbezpieczanie podklucza: %s\n"
+#~ msgstr "nie powiodło się odbezpieczanie podklucza: %s\n"
 
 #~ msgid "WARNING: secret key %s does not have a simple SK checksum\n"
-#~ msgstr "OSTRZE¯ENIE: klucz prywatny %s nie ma prostej sumy kontrolnej SK.\n"
+#~ msgstr "OSTRZEŻENIE: klucz prywatny %s nie ma prostej sumy kontrolnej SK.\n"
 
 #~ msgid "too many entries in pk cache - disabled\n"
-#~ msgstr "zbyt wiele wpisów w buforze kluczy publicznych - wy³±czony\n"
+#~ msgstr "zbyt wiele wpisów w buforze kluczy publicznych - wyłączony\n"
 
 #~ msgid "no secret subkey for public subkey %s - ignoring\n"
-#~ msgstr "brak prywatnego odpowiednika podklucza publicznego %s - pominiêty\n"
+#~ msgstr "brak prywatnego odpowiednika podklucza publicznego %s - pominięty\n"
 
 #~ msgid "key %s: secret key without public key - skipped\n"
-#~ msgstr "klucz %s: klucz tajny bez klucza jawnego - pominiêty\n"
+#~ msgstr "klucz %s: klucz tajny bez klucza jawnego - pominięty\n"
 
 #~ msgid "usage: gpg [options] "
-#~ msgstr "wywo³anie: gpg [opcje]"
+#~ msgstr "wywołanie: gpg [opcje]"
 
 #~ msgid ""
 #~ "you can only make detached or clear signatures while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "w trybie --pgp2 mo¿na sk³adaæ tylko podpisy oddzielne lub do³±czone do "
+#~ "w trybie --pgp2 można składać tylko podpisy oddzielne lub dołączone do "
 #~ "tekstu\n"
 
 #~ msgid "you can't sign and encrypt at the same time while in --pgp2 mode\n"
-#~ msgstr "w trybie --pgp2 nie mo¿na jednocze¶nie szyfrowaæ i podpisywaæ\n"
+#~ msgstr "w trybie --pgp2 nie można jednocześnie szyfrować i podpisywać\n"
 
 #~ msgid ""
 #~ "you must use files (and not a pipe) when working with --pgp2 enabled.\n"
-#~ msgstr "w trybie --pgp2 trzeba u¿ywaæ plików a nie potoków.\n"
+#~ msgstr "w trybie --pgp2 trzeba używać plików a nie potoków.\n"
 
 #~ msgid "encrypting a message in --pgp2 mode requires the IDEA cipher\n"
-#~ msgstr "szyfrowanie wiadomo¶ci w trybie --pgp2 wymaga modu³u szyfru IDEA\n"
+#~ msgstr "szyfrowanie wiadomości w trybie --pgp2 wymaga modułu szyfru IDEA\n"
 
 #~ msgid "create a public key when importing a secret key"
 #~ msgstr "tworzenie kluczy publicznych przy imporcie kluczy tajnych"
 
 #~ msgid "key %s: already in secret keyring\n"
-#~ msgstr "klucz %s: ten klucz tajny ju¿ znajduje siê w zbiorze\n"
+#~ msgstr "klucz %s: ten klucz tajny już znajduje się w zbiorze\n"
 
 #~ msgid "key %s: secret key not found: %s\n"
 #~ msgstr "klucz %s: brak klucza tajnego: %s\n"
 
 #~ msgid "NOTE: a key's S/N does not match the card's one\n"
-#~ msgstr "UWAGA: numer seryjny klucza nie zgadza siê z numerem karty\n"
+#~ msgstr "UWAGA: numer seryjny klucza nie zgadza się z numerem karty\n"
 
 #~ msgid "NOTE: primary key is online and stored on card\n"
-#~ msgstr "UWAGA: klucz g³ówny jest aktywny i zapisany na karcie\n"
+#~ msgstr "UWAGA: klucz główny jest aktywny i zapisany na karcie\n"
 
 #~ msgid "NOTE: secondary key is online and stored on card\n"
 #~ msgstr "UWAGA: klucz dodatkowy jest aktywny i zapisany na karcie\n"
@@ -9455,10 +9540,10 @@ msgstr ""
 #~ "You may not make an OpenPGP signature on a PGP 2.x key while in --pgp2 "
 #~ "mode.\n"
 #~ msgstr ""
-#~ "W trybie --pgp2 nie mo¿na podpisywaæ kluczy PGP 2.x podpisami OpenPGP.\n"
+#~ "W trybie --pgp2 nie można podpisywać kluczy PGP 2.x podpisami OpenPGP.\n"
 
 #~ msgid "This would make the key unusable in PGP 2.x.\n"
-#~ msgstr "To uczyni ten klucz nieu¿ytecznym dla PGP 2.x.\n"
+#~ msgstr "To uczyni ten klucz nieużytecznym dla PGP 2.x.\n"
 
 #~ msgid "This key is not protected.\n"
 #~ msgstr "Ten klucz nie jest chroniony.\n"
@@ -9467,51 +9552,51 @@ msgstr ""
 #~ msgstr "Klucz jest chroniony.\n"
 
 #~ msgid "Can't edit this key: %s\n"
-#~ msgstr "Tego klucza nie mo¿na modyfikowaæ: %s.\n"
+#~ msgstr "Tego klucza nie można modyfikować: %s.\n"
 
 #~ msgid ""
 #~ "Enter the new passphrase for this secret key.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Wprowad¼ nowe d³ugie, skomplikowane has³o dla tego klucza tajnego.\n"
+#~ "Wprowadź nowe długie, skomplikowane hasło dla tego klucza tajnego.\n"
 #~ "\n"
 
 #~ msgid ""
 #~ "You don't want a passphrase - this is probably a *bad* idea!\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Nie chcesz has³a - to *z³y* pomys³!\n"
+#~ "Nie chcesz hasła - to *zły* pomysł!\n"
 #~ "\n"
 
 #~ msgid "Do you really want to do this? (y/N) "
-#~ msgstr "Czy na pewno chcesz to zrobiæ? (t/N) "
+#~ msgstr "Czy na pewno chcesz to zrobić? (t/N) "
 
 #~ msgid "Please remove selections from the secret keys.\n"
-#~ msgstr "Proszê usun±æ znacznik wyboru z kluczy prywatnych.\n"
+#~ msgstr "Proszę usunąć znacznik wyboru z kluczy prywatnych.\n"
 
 #~ msgid "No corresponding signature in secret ring\n"
-#~ msgstr "Brak odpowiadaj±cego podpisu w zbiorze kluczy prywatnych\n"
+#~ msgstr "Brak odpowiadającego podpisu w zbiorze kluczy prywatnych\n"
 
 #~ msgid "writing secret key stub to `%s'\n"
-#~ msgstr "zapisujê za¶lepkê klucza tajnego w ,,%s''\n"
+#~ msgstr "zapisuję zaślepkę klucza tajnego w ,,%s''\n"
 
 #~ msgid "writing secret key to `%s'\n"
-#~ msgstr "zapisujê klucz tajny w ,,%s''\n"
+#~ msgstr "zapisuję klucz tajny w ,,%s''\n"
 
 #~ msgid "no writable secret keyring found: %s\n"
 #~ msgstr "brak zapisywalnego zbioru kluczy tajnych: %s\n"
 
 #~ msgid "WARNING: 2 files with confidential information exists.\n"
-#~ msgstr "OSTRZE¯ENIE: Istniej± dwa pliki z poufnymi informacjami.\n"
+#~ msgstr "OSTRZEŻENIE: Istnieją dwa pliki z poufnymi informacjami.\n"
 
 #~ msgid "%s is the unchanged one\n"
-#~ msgstr "%s pozosta³ bez zmian\n"
+#~ msgstr "%s pozostał bez zmian\n"
 
 #~ msgid "%s is the new one\n"
-#~ msgstr "%s zosta³ utworzony\n"
+#~ msgstr "%s został utworzony\n"
 
 #~ msgid "Please fix this possible security flaw\n"
-#~ msgstr "Proszê usun±æ to naruszenie zasad bezpieczeñstwa\n"
+#~ msgstr "Proszę usunąć to naruszenie zasad bezpieczeństwa\n"
 
 #~ msgid "searching for names from %s server %s\n"
 #~ msgstr "poszukiwanie nazw z serwera %s %s\n"
@@ -9527,45 +9612,45 @@ msgstr ""
 
 #~ msgid "WARNING: keyserver handler from a different version of GnuPG (%s)\n"
 #~ msgstr ""
-#~ "OSTRZE¯ENIE: modu³ obs³ugi serwera kluczy z innej wersji GnuPG (%s)\n"
+#~ "OSTRZEŻENIE: moduł obsługi serwera kluczy z innej wersji GnuPG (%s)\n"
 
 #~ msgid "keyserver did not send VERSION\n"
-#~ msgstr "serwer kluczy nie wys³a³ VERSION\n"
+#~ msgstr "serwer kluczy nie wysłał VERSION\n"
 
 #~ msgid "external keyserver calls are not supported in this build\n"
 #~ msgstr ""
-#~ "zewnêtrzne wywo³ania serwera kluczy nie s± obs³ugiwane w tej kompilacji\n"
+#~ "zewnętrzne wywołania serwera kluczy nie są obsługiwane w tej kompilacji\n"
 
 #~ msgid "no handler for keyserver scheme `%s'\n"
-#~ msgstr "brak modu³u obs³ugi dla schematu serwera kluczy ,,%s''\n"
+#~ msgstr "brak modułu obsługi dla schematu serwera kluczy ,,%s''\n"
 
 #~ msgid "action `%s' not supported with keyserver scheme `%s'\n"
 #~ msgstr ""
-#~ "akcja ,,%s'' nie jest obs³ugiwana przez schemat serwera kluczy ,,%s''\n"
+#~ "akcja ,,%s'' nie jest obsługiwana przez schemat serwera kluczy ,,%s''\n"
 
 #~ msgid "%s does not support handler version %d\n"
-#~ msgstr "%s nie obs³uguje modu³u obs³ugi w wersji %d\n"
+#~ msgstr "%s nie obsługuje modułu obsługi w wersji %d\n"
 
 #~ msgid "keyserver timed out\n"
-#~ msgstr "zbyt d³ugi czas oczekiwania na serwer kluczy\n"
+#~ msgstr "zbyt długi czas oczekiwania na serwer kluczy\n"
 
 #~ msgid "keyserver internal error\n"
-#~ msgstr "b³±d wewnêtrzny serwera kluczy\n"
+#~ msgstr "błąd wewnętrzny serwera kluczy\n"
 
 #~ msgid "keyserver communications error: %s\n"
-#~ msgstr "b³±d komunikacji z serwerem kluczy: %s\n"
+#~ msgstr "błąd komunikacji z serwerem kluczy: %s\n"
 
 #~ msgid "WARNING: unable to parse URI %s\n"
-#~ msgstr "OSTRZE¯ENIE: nie mo¿na przeanalizowaæ URI %s\n"
+#~ msgstr "OSTRZEŻENIE: nie można przeanalizować URI %s\n"
 
 #~ msgid "invalid root packet detected in proc_tree()\n"
 #~ msgstr "wykryto niepoprawny pakiet pierwotny w proc_tree()\n"
 
 #~ msgid "the IDEA cipher plugin is not present\n"
-#~ msgstr "modu³ szyfru IDEA nie jest dostêpny\n"
+#~ msgstr "moduł szyfru IDEA nie jest dostępny\n"
 
 #~ msgid "no corresponding public key: %s\n"
-#~ msgstr "brak odpowiadaj±cego klucza publicznego: %s\n"
+#~ msgstr "brak odpowiadającego klucza publicznego: %s\n"
 
 #~ msgid "public key does not match secret key!\n"
 #~ msgstr "klucz publiczny nie pasuje do klucza prywatnego!\n"
@@ -9577,56 +9662,56 @@ msgstr ""
 #~ msgstr "UWAGA: Ten klucz nie jest chroniony!\n"
 
 #~ msgid "protection digest %d is not supported\n"
-#~ msgstr "algorytm ochrony %d nie jest obs³ugiwany\n"
+#~ msgstr "algorytm ochrony %d nie jest obsługiwany\n"
 
 #~ msgid "Invalid passphrase; please try again"
-#~ msgstr "Niepoprawne has³o; proszê spróbowaæ ponownie"
+#~ msgstr "Niepoprawne hasło; proszę spróbować ponownie"
 
 #~ msgid "%s ...\n"
 #~ msgstr "%s ...\n"
 
 #~ msgid "WARNING: Weak key detected - please change passphrase again.\n"
-#~ msgstr "OSTRZE¯ENIE: Wykryto s³aby klucz - nale¿y ponownie zmieniæ has³o.\n"
+#~ msgstr "OSTRZEŻENIE: Wykryto słaby klucz - należy ponownie zmienić hasło.\n"
 
 #~ msgid ""
 #~ "generating the deprecated 16-bit checksum for secret key protection\n"
 #~ msgstr ""
-#~ "tworzenie przestarza³ej 16-bitowej sumy kontrolnej dla ochrony klucza\n"
+#~ "tworzenie przestarzałej 16-bitowej sumy kontrolnej dla ochrony klucza\n"
 
 #~ msgid "DSA key %s uses an unsafe (%u bit) hash\n"
-#~ msgstr "Klucz DSA %s u¿ywa niebezpiecznego (%u-bitowego) skrótu\n"
+#~ msgstr "Klucz DSA %s używa niebezpiecznego (%u-bitowego) skrótu\n"
 
 #~ msgid ""
 #~ "you can only detach-sign with PGP 2.x style keys while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "kluczami PGP 2 w trybie --pgp2 mo¿na podpisywaæ tylko do oddzielonych "
-#~ "podpisów\n"
+#~ "kluczami PGP 2 w trybie --pgp2 można podpisywać tylko do oddzielonych "
+#~ "podpisów\n"
 
 #~ msgid ""
 #~ "you can only clearsign with PGP 2.x style keys while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "w trybie --pgp2 mo¿na podpisywaæ tylko za pomoc± kluczy z wersji 2.x\n"
+#~ "w trybie --pgp2 można podpisywać tylko za pomocą kluczy z wersji 2.x\n"
 
 #~ msgid " - probably dead - removing lock"
 #~ msgstr " - prawdopodobnie martwy - usuwanie blokady"
 
 #~ msgid "Usage: scdaemon [options] (-h for help)"
-#~ msgstr "Wywo³anie: scdaemon [opcje] (-h podaje pomoc)"
+#~ msgstr "Wywołanie: scdaemon [opcje] (-h podaje pomoc)"
 
 #~ msgid "Parameters to be used for the certificate request:\n"
-#~ msgstr "Parametry, które bêd± u¿yte przy ¿±daniu certyfikatu:\n"
+#~ msgstr "Parametry, które będą użyte przy żądaniu certyfikatu:\n"
 
 #~ msgid "use system's dirmngr if available"
-#~ msgstr "u¿ycie systemowego dirmngr je¶li jest dostêpny"
+#~ msgstr "użycie systemowego dirmngr jeśli jest dostępny"
 
 #~ msgid "Usage: gpgsm [options] [files] (-h for help)"
-#~ msgstr "Wywo³anie: gpgsm [opcje] [pliki] (-h podaje pomoc)"
+#~ msgstr "Wywołanie: gpgsm [opcje] [pliki] (-h podaje pomoc)"
 
 #~ msgid "usage: gpgconf [options] "
-#~ msgstr "wywo³anie: gpgconf [opcje]"
+#~ msgstr "wywołanie: gpgconf [opcje]"
 
 #~ msgid "you may want to start the gpg-agent first\n"
-#~ msgstr "mo¿na najpierw uruchomiæ najpierw gpg-agenta\n"
+#~ msgstr "można najpierw uruchomić najpierw gpg-agenta\n"
 
 #~ msgid "enable ssh-agent emulation"
-#~ msgstr "w³±czenie emulacji ssh-agenta"
+#~ msgstr "włączenie emulacji ssh-agenta"
index 93d2941..f0bbe97 100644 (file)
--- a/po/pt.po
+++ b/po/pt.po
@@ -14,12 +14,12 @@ msgstr ""
 "Language-Team: pt <morais@kde.org>\n"
 "Language: pt\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #, fuzzy, c-format
 msgid "failed to acquire the pinentry lock: %s\n"
-msgstr "falha ao inicializar a base de dados de confiança: %s\n"
+msgstr "falha ao inicializar a base de dados de confiança: %s\n"
 
 #. TRANSLATORS: These are labels for buttons etc used in
 #. Pinentries.  An underscore indicates that the next letter
@@ -47,7 +47,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Do you really want to make your passphrase visible on the screen?"
-msgstr "Você quer realmente remover as chaves selecionadas? "
+msgstr "Você quer realmente remover as chaves selecionadas? "
 
 msgid "|pinentry-tt|Make passphrase visible"
 msgstr ""
@@ -55,7 +55,7 @@ msgstr ""
 #, fuzzy
 #| msgid "invalid passphrase"
 msgid "|pinentry-tt|Hide passphrase"
-msgstr "frase-secreta inválida"
+msgstr "frase-secreta inválida"
 
 #. TRANSLATORS: This string is displayed by Pinentry as the label
 #. for the quality bar.
@@ -112,7 +112,7 @@ msgstr "frase secreta demasiado longa\n"
 
 #, fuzzy
 msgid "Invalid characters in PIN"
-msgstr "Caracter inválido no nome\n"
+msgstr "Caracter inválido no nome\n"
 
 msgid "PIN too short"
 msgstr ""
@@ -127,21 +127,21 @@ msgstr "frase secreta incorrecta"
 
 #, fuzzy, c-format
 msgid "ssh keys greater than %d bits are not supported\n"
-msgstr "algoritmo de protecção %d%s não é suportado\n"
+msgstr "algoritmo de protecção %d%s não é suportado\n"
 
 #, fuzzy, c-format
 #| msgid "can't create `%s': %s\n"
 msgid "can't create '%s': %s\n"
-msgstr "impossível criar `%s': %s\n"
+msgstr "impossível criar `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't open `%s': %s\n"
 msgid "can't open '%s': %s\n"
-msgstr "impossível abrir `%s': %s\n"
+msgstr "impossível abrir `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error getting serial number of card: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, c-format
 msgid "detected card with S/N: %s\n"
@@ -153,15 +153,7 @@ msgstr "erro ao escrever no porta-chaves secreto `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "no suitable card key found: %s\n"
-msgstr "nenhum porta-chaves secreto com permissões de escrita encontrado: %s\n"
-
-#, fuzzy, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "remoção do bloco de chave falhou: %s\n"
-
-#, fuzzy, c-format
-msgid "error writing key: %s\n"
-msgstr "erro na escrita do porta-chaves `%s': %s\n"
+msgstr "nenhum porta-chaves secreto com permissões de escrita encontrado: %s\n"
 
 #, c-format
 msgid ""
@@ -191,7 +183,7 @@ msgstr "Por favor digite a frase secreta \n"
 
 #, fuzzy, c-format
 msgid "failed to create stream from socket: %s\n"
-msgstr "%s: falha ao criar tabela de dispersão: %s\n"
+msgstr "%s: falha ao criar tabela de dispersão: %s\n"
 
 msgid "Please insert the card with serial number"
 msgstr ""
@@ -228,15 +220,15 @@ msgstr "Repita a frase secreta: "
 
 #, fuzzy
 msgid "Reset Code not correctly repeated; try again"
-msgstr "a frase secreta não foi repetida corretamente; tente outra vez"
+msgstr "a frase secreta não foi repetida corretamente; tente outra vez"
 
 #, fuzzy
 msgid "PUK not correctly repeated; try again"
-msgstr "a frase secreta não foi repetida corretamente; tente outra vez"
+msgstr "a frase secreta não foi repetida corretamente; tente outra vez"
 
 #, fuzzy
 msgid "PIN not correctly repeated; try again"
-msgstr "a frase secreta não foi repetida corretamente; tente outra vez"
+msgstr "a frase secreta não foi repetida corretamente; tente outra vez"
 
 #, c-format
 msgid "Please enter the PIN%s%s%s to unlock the card"
@@ -244,7 +236,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error creating temporary file: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, fuzzy, c-format
 msgid "error writing to temporary file: %s\n"
@@ -296,7 +288,7 @@ msgstr ""
 #, fuzzy, c-format
 msgid "Please enter the passphrase to%0Aprotect your new key"
 msgstr ""
-"Você precisa de uma frase secreta para proteger a sua chave.\n"
+"Você precisa de uma frase secreta para proteger a sua chave.\n"
 "\n"
 
 #, fuzzy
@@ -309,7 +301,7 @@ msgid ""
 " "
 msgstr ""
 "@\n"
-"Opções:\n"
+"Opções:\n"
 " "
 
 msgid "run in daemon mode (background)"
@@ -318,6 +310,11 @@ msgstr ""
 msgid "run in server mode (foreground)"
 msgstr ""
 
+#, fuzzy
+#| msgid "Key is superseded"
+msgid "run in supervised mode"
+msgstr "A chave foi substituída"
+
 msgid "verbose"
 msgstr "detalhado"
 
@@ -332,7 +329,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|read options from FILE"
-msgstr "|FICHEIRO|carregar módulo de extensão FICHEIRO"
+msgstr "|FICHEIRO|carregar módulo de extensão FICHEIRO"
 
 msgid "do not detach from the console"
 msgstr ""
@@ -352,7 +349,7 @@ msgstr ""
 
 #, fuzzy
 msgid "do not use the SCdaemon"
-msgstr "actualizar a base de dados de confiança"
+msgstr "actualizar a base de dados de confiança"
 
 #, fuzzy
 #| msgid "|NAME|set terminal charset to NAME"
@@ -375,14 +372,14 @@ msgstr ""
 
 #, fuzzy
 msgid "disallow the use of an external password cache"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 msgid "disallow clients to mark keys as \"trusted\""
 msgstr ""
 
 #, fuzzy
 msgid "allow presetting passphrase"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 msgid "disallow caller to override the pinentry"
 msgstr ""
@@ -393,12 +390,12 @@ msgstr ""
 #, fuzzy
 #| msgid "not supported"
 msgid "enable ssh support"
-msgstr "não suportado"
+msgstr "não suportado"
 
 #, fuzzy
 #| msgid "not supported"
 msgid "enable putty support"
-msgstr "não suportado"
+msgstr "não suportado"
 
 #. TRANSLATORS: @EMAIL@ will get replaced by the actual bug
 #. reporting address.  This is so that we can change the
@@ -409,7 +406,7 @@ msgstr "Por favor comunique bugs para <gnupg-bugs@gnu.org>.\n"
 
 #, fuzzy
 msgid "Usage: @GPG_AGENT@ [options] (-h for help)"
-msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
+msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
 
 msgid ""
 "Syntax: @GPG_AGENT@ [options] [command [args]]\n"
@@ -423,26 +420,26 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "NOTE: no default option file `%s'\n"
 msgid "Note: no default option file '%s'\n"
-msgstr "NOTA: ficheiro de opções por omissão `%s' inexistente\n"
+msgstr "NOTA: ficheiro de opções por omissão `%s' inexistente\n"
 
 #, fuzzy, c-format
 #| msgid "option file `%s': %s\n"
 msgid "option file '%s': %s\n"
-msgstr "ficheiro de opções `%s': %s\n"
+msgstr "ficheiro de opções `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "reading options from `%s'\n"
 msgid "reading options from '%s'\n"
-msgstr "a ler opções de `%s'\n"
+msgstr "a ler opções de `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: \"%s\" is a deprecated option\n"
 msgid "Note: '%s' is not considered an option\n"
-msgstr "AVISO: \"%s\" é uma opção depreciada\n"
+msgstr "AVISO: \"%s\" é uma opção depreciada\n"
 
 #, fuzzy, c-format
 msgid "can't create socket: %s\n"
-msgstr "impossível criar %s: %s\n"
+msgstr "impossível criar %s: %s\n"
 
 #, c-format
 msgid "socket name '%s' is too long\n"
@@ -450,11 +447,11 @@ msgstr ""
 
 #, fuzzy
 msgid "a gpg-agent is already running - not starting a new one\n"
-msgstr "o gpg-agent não está disponível nesta sessão\n"
+msgstr "o gpg-agent não está disponível nesta sessão\n"
 
 #, fuzzy
 msgid "error getting nonce for the socket\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, fuzzy, c-format
 msgid "error binding socket to '%s': %s\n"
@@ -462,11 +459,11 @@ msgstr "erro ao enviar para `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "can't set permissions of '%s': %s\n"
-msgstr "AVISO: permissões pouco seguras em %s \"%s\"\n"
+msgstr "AVISO: permissões pouco seguras em %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "listen() failed: %s\n"
-msgstr "actualização falhou: %s\n"
+msgstr "actualização falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "listening on socket '%s'\n"
@@ -474,7 +471,7 @@ msgstr "a escrever chave privada para `%s'\n"
 
 #, fuzzy, c-format
 msgid "can't create directory '%s': %s\n"
-msgstr "%s: impossível criar directoria: %s\n"
+msgstr "%s: impossível criar directoria: %s\n"
 
 #, fuzzy, c-format
 msgid "directory '%s' created\n"
@@ -482,11 +479,11 @@ msgstr "%s: directoria criada\n"
 
 #, fuzzy, c-format
 msgid "stat() failed for '%s': %s\n"
-msgstr "base de dados de confiança: leitura falhou (n=%d): %s\n"
+msgstr "base de dados de confiança: leitura falhou (n=%d): %s\n"
 
 #, fuzzy, c-format
 msgid "can't use '%s' as home directory\n"
-msgstr "%s: impossível criar directoria: %s\n"
+msgstr "%s: impossível criar directoria: %s\n"
 
 #, fuzzy, c-format
 msgid "error reading nonce on fd %d: %s\n"
@@ -510,7 +507,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "npth_pselect failed: %s - waiting 1s\n"
-msgstr "actualização da chave secreta falhou: %s\n"
+msgstr "actualização da chave secreta falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "%s %s stopped\n"
@@ -518,11 +515,11 @@ msgstr "%s: ignorado: %s\n"
 
 #, fuzzy
 msgid "no gpg-agent running in this session\n"
-msgstr "o gpg-agent não está disponível nesta sessão\n"
+msgstr "o gpg-agent não está disponível nesta sessão\n"
 
 #, fuzzy
 msgid "Usage: gpg-preset-passphrase [options] KEYGRIP (-h for help)\n"
-msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
+msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
 
 msgid ""
 "Syntax: gpg-preset-passphrase [options] KEYGRIP\n"
@@ -542,12 +539,12 @@ msgid ""
 " "
 msgstr ""
 "@\n"
-"Opções:\n"
+"Opções:\n"
 " "
 
 #, fuzzy
 msgid "Usage: gpg-protect-tool [options] (-h for help)\n"
-msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
+msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
 
 msgid ""
 "Syntax: gpg-protect-tool [options] [args]\n"
@@ -579,7 +576,7 @@ msgstr "cancelado pelo utilizador\n"
 
 #, fuzzy, c-format
 msgid "error while asking for the passphrase: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, fuzzy, c-format
 msgid "error opening '%s': %s\n"
@@ -587,7 +584,7 @@ msgstr "erro na leitura de `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "file '%s', line %d: %s\n"
-msgstr "chave `%s' não encontrada: %s\n"
+msgstr "chave `%s' não encontrada: %s\n"
 
 #, fuzzy, c-format
 msgid "statement \"%s\" ignored in '%s', line %d\n"
@@ -595,7 +592,7 @@ msgstr "armadura: %s\n"
 
 #, fuzzy, c-format
 msgid "system trustlist '%s' not available\n"
-msgstr "partes da chave secreta não disponíveis\n"
+msgstr "partes da chave secreta não disponíveis\n"
 
 #, fuzzy, c-format
 msgid "bad fingerprint in '%s', line %d\n"
@@ -603,7 +600,7 @@ msgstr "armadura: %s\n"
 
 #, fuzzy, c-format
 msgid "invalid keyflag in '%s', line %d\n"
-msgstr "%s: versão de ficheiro inválida %d\n"
+msgstr "%s: versão de ficheiro inválida %d\n"
 
 #, fuzzy, c-format
 msgid "error reading '%s', line %d: %s\n"
@@ -677,7 +674,7 @@ msgstr ""
 msgid ""
 "Do you really want to delete the key identified by keygrip%%0A  %s%%0A  %%C"
 "%%0A?"
-msgstr "Você quer realmente remover as chaves selecionadas? "
+msgstr "Você quer realmente remover as chaves selecionadas? "
 
 #, fuzzy
 msgid "Delete key"
@@ -701,41 +698,41 @@ msgstr ""
 
 #, c-format
 msgid "checking created signature failed: %s\n"
-msgstr "verificação da assinatura criada falhou: %s\n"
+msgstr "verificação da assinatura criada falhou: %s\n"
 
 msgid "secret key parts are not available\n"
-msgstr "partes da chave secreta não disponíveis\n"
+msgstr "partes da chave secreta não disponíveis\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "public key algorithm %d (%s) is not supported\n"
-msgstr "algoritmo de protecção %d%s não é suportado\n"
+msgstr "algoritmo de protecção %d%s não é suportado\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "protection algorithm %d (%s) is not supported\n"
-msgstr "algoritmo de protecção %d%s não é suportado\n"
+msgstr "algoritmo de protecção %d%s não é suportado\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "protection hash algorithm %d (%s) is not supported\n"
-msgstr "algoritmo de protecção %d%s não é suportado\n"
+msgstr "algoritmo de protecção %d%s não é suportado\n"
 
 #, fuzzy, c-format
 msgid "error creating a pipe: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, fuzzy, c-format
 msgid "error creating a stream for a pipe: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, fuzzy, c-format
 msgid "error forking process: %s\n"
 msgstr "erro na leitura de `%s': %s\n"
 
-#, fuzzy, c-format
-msgid "waiting for processes to terminate failed: %s\n"
-msgstr "actualização falhou: %s\n"
+#, c-format
+msgid "waiting for process %d to terminate failed: %s\n"
+msgstr ""
 
 #, fuzzy, c-format
 msgid "error running '%s': probably not installed\n"
@@ -750,17 +747,17 @@ msgid "error running '%s': terminated\n"
 msgstr "erro na leitura de `%s': %s\n"
 
 #, fuzzy, c-format
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "actualização falhou: %s\n"
+
+#, fuzzy, c-format
 msgid "error getting exit code of process %d: %s\n"
 msgstr "erro ao escrever no porta-chaves secreto `%s': %s\n"
 
-#, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr ""
-
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to '%s': %s\n"
-msgstr "impossível ligar a `%s': %s\n"
+msgstr "impossível ligar a `%s': %s\n"
 
 #, fuzzy
 msgid "problem setting the gpg-agent options\n"
@@ -768,7 +765,7 @@ msgstr "problema com o agente: o agente returnou 0x%lx\n"
 
 #, c-format
 msgid "can't disable core dumps: %s\n"
-msgstr "impossível desactivar core dumps: %s\n"
+msgstr "impossível desactivar core dumps: %s\n"
 
 #, fuzzy, c-format
 msgid "Warning: unsafe ownership on %s \"%s\"\n"
@@ -776,7 +773,15 @@ msgstr "AVISO: dono pouco seguro em %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
-msgstr "AVISO: permissões pouco seguras em %s \"%s\"\n"
+msgstr "AVISO: permissões pouco seguras em %s \"%s\"\n"
+
+#, fuzzy, c-format
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "actualização falhou: %s\n"
+
+#, fuzzy, c-format
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "criação de armadura falhou: %s\n"
 
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 #, fuzzy
@@ -788,7 +793,7 @@ msgstr "sS"
 
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "no"
-msgstr "não"
+msgstr "não"
 
 msgid "nN"
 msgstr "nN"
@@ -833,7 +838,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "WARNING: \"%s%s\" is an obsolete option - it has no effect\n"
-msgstr "AVISO: \"%s\" é uma opção depreciada\n"
+msgstr "AVISO: \"%s\" é uma opção depreciada\n"
 
 #, c-format
 msgid "unknown debug flag '%s' ignored\n"
@@ -852,7 +857,7 @@ msgstr ""
 
 #, fuzzy
 msgid "connection to agent is in restricted mode\n"
-msgstr "impossível fazer isso em modo não-interativo\n"
+msgstr "impossível fazer isso em modo não-interativo\n"
 
 #, c-format
 msgid "no running Dirmngr - starting '%s'\n"
@@ -916,7 +921,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Data available"
-msgstr "Nenhuma ajuda disponível"
+msgstr "Nenhuma ajuda disponível"
 
 #, fuzzy
 msgid "Session key created"
@@ -934,7 +939,7 @@ msgstr ""
 
 #, fuzzy
 msgid "seems to be not encrypted"
-msgstr "não cifrado"
+msgstr "não cifrado"
 
 msgid "Number of recipients"
 msgstr ""
@@ -948,7 +953,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "data hash algorithm: %s"
-msgstr "algoritmo de dispersão inválido `%s'\n"
+msgstr "algoritmo de dispersão inválido `%s'\n"
 
 #, fuzzy, c-format
 msgid "Signer %d"
@@ -956,18 +961,18 @@ msgstr "Esta assinatura expirou em %s.\n"
 
 #, fuzzy, c-format
 msgid "attr hash algorithm: %s"
-msgstr "algoritmo de dispersão inválido `%s'\n"
+msgstr "algoritmo de dispersão inválido `%s'\n"
 
 msgid "Data decryption succeeded"
 msgstr ""
 
 #, fuzzy
 msgid "Encryption algorithm supported"
-msgstr "algoritmo de protecção %d%s não é suportado\n"
+msgstr "algoritmo de protecção %d%s não é suportado\n"
 
 #, fuzzy
 msgid "Data verification succeeded"
-msgstr "verificação de assinatura suprimida\n"
+msgstr "verificação de assinatura suprimida\n"
 
 #, fuzzy
 msgid "Signature available"
@@ -979,7 +984,7 @@ msgstr "Assinatura correcta de \""
 
 #, fuzzy, c-format
 msgid "bad data hash algorithm: %s"
-msgstr "algoritmo de dispersão inválido `%s'\n"
+msgstr "algoritmo de dispersão inválido `%s'\n"
 
 #, fuzzy, c-format
 msgid "Signature %d"
@@ -999,7 +1004,7 @@ msgstr "certificado incorrecto"
 
 #, fuzzy
 msgid "the available CRL is too old"
-msgstr "Nenhuma ajuda disponível"
+msgstr "Nenhuma ajuda disponível"
 
 #, fuzzy
 msgid "CRL/OCSP check of certificates"
@@ -1014,7 +1019,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Unknown operation"
-msgstr "versão desconhecida"
+msgstr "versão desconhecida"
 
 msgid "Gpg-Agent usable"
 msgstr ""
@@ -1024,15 +1029,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "No help available for '%s'."
-msgstr "Nenhuma ajuda disponível para `%s'"
+msgstr "Nenhuma ajuda disponível para `%s'"
 
 #, fuzzy
 msgid "ignoring garbage line"
-msgstr "erro na última linha\n"
+msgstr "erro na última linha\n"
 
 #, fuzzy
 msgid "[none]"
-msgstr "versão desconhecida"
+msgstr "versão desconhecida"
 
 #, fuzzy
 msgid "argument not expected"
@@ -1048,12 +1053,12 @@ msgstr "frase secreta demasiado longa\n"
 
 #, fuzzy
 msgid "missing argument"
-msgstr "argumento inválido"
+msgstr "argumento inválido"
 
 #, fuzzy
 #| msgid "invalid armor"
 msgid "invalid argument"
-msgstr "armadura inválida"
+msgstr "armadura inválida"
 
 #, fuzzy
 msgid "invalid command"
@@ -1061,15 +1066,15 @@ msgstr "comandos em conflito\n"
 
 #, fuzzy
 msgid "invalid alias definition"
-msgstr "opções de importação inválidas\n"
+msgstr "opções de importação inválidas\n"
 
 #, fuzzy
 msgid "out of core"
-msgstr "não processado"
+msgstr "não processado"
 
 #, fuzzy
 msgid "invalid option"
-msgstr "opções de importação inválidas\n"
+msgstr "opções de importação inválidas\n"
 
 #, c-format
 msgid "missing argument for option \"%.50s\"\n"
@@ -1077,7 +1082,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid argument for option \"%.50s\"\n"
-msgstr "opções de importação inválidas\n"
+msgstr "opções de importação inválidas\n"
 
 #, c-format
 msgid "option \"%.50s\" does not expect an argument\n"
@@ -1085,7 +1090,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid command \"%.50s\"\n"
-msgstr "Comando inválido (tente \"help\")\n"
+msgstr "Comando inválido (tente \"help\")\n"
 
 #, c-format
 msgid "option \"%.50s\" is ambiguous\n"
@@ -1097,27 +1102,27 @@ msgstr ""
 
 #, fuzzy
 msgid "out of core\n"
-msgstr "não processado"
+msgstr "não processado"
 
 #, fuzzy, c-format
 msgid "invalid option \"%.50s\"\n"
-msgstr "opções de importação inválidas\n"
+msgstr "opções de importação inválidas\n"
 
 #, fuzzy, c-format
 msgid "conversion from '%s' to '%s' not available\n"
-msgstr "criação de armadura falhou: %s\n"
+msgstr "criação de armadura falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "iconv_open failed: %s\n"
-msgstr "impossível abrir %s: %s\n"
+msgstr "impossível abrir %s: %s\n"
 
 #, fuzzy, c-format
 msgid "conversion from '%s' to '%s' failed: %s\n"
-msgstr "criação de armadura falhou: %s\n"
+msgstr "criação de armadura falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to create temporary file '%s': %s\n"
-msgstr "%s: impossível criar directoria: %s\n"
+msgstr "%s: impossível criar directoria: %s\n"
 
 #, fuzzy, c-format
 msgid "error writing to '%s': %s\n"
@@ -1136,7 +1141,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "lock '%s' not made: %s\n"
-msgstr "chave pública %08lX não encontrada: %s\n"
+msgstr "chave pública %08lX não encontrada: %s\n"
 
 #, fuzzy, c-format
 msgid "waiting for lock %s...\n"
@@ -1151,17 +1156,17 @@ msgid "armor: %s\n"
 msgstr "armadura: %s\n"
 
 msgid "invalid armor header: "
-msgstr "cabeçalho de armadura inválido: "
+msgstr "cabeçalho de armadura inválido: "
 
 msgid "armor header: "
-msgstr "cabeçalho de armadura: "
+msgstr "cabeçalho de armadura: "
 
 msgid "invalid clearsig header\n"
-msgstr "cabeçalho de assinatura em texto puro inválido\n"
+msgstr "cabeçalho de assinatura em texto puro inválido\n"
 
 #, fuzzy
 msgid "unknown armor header: "
-msgstr "cabeçalho de armadura: "
+msgstr "cabeçalho de armadura: "
 
 msgid "nested clear text signatures\n"
 msgstr "assinaturas em texto puro aninhadas\n"
@@ -1171,11 +1176,11 @@ msgid "unexpected armor: "
 msgstr "armadura inesperada:"
 
 msgid "invalid dash escaped line: "
-msgstr "linha com hífen inválida: "
+msgstr "linha com hífen inválida: "
 
 #, fuzzy, c-format
 msgid "invalid radix64 character %02X skipped\n"
-msgstr "caracter radix64 inválido %02x ignorado\n"
+msgstr "caracter radix64 inválido %02x ignorado\n"
 
 msgid "premature eof (no CRC)\n"
 msgstr "fim de ficheiro prematuro (sem CRC)\n"
@@ -1195,14 +1200,14 @@ msgid "premature eof (in trailer)\n"
 msgstr "fim de ficheiro prematuro (no \"Trailer\")\n"
 
 msgid "error in trailer line\n"
-msgstr "erro na última linha\n"
+msgstr "erro na última linha\n"
 
 msgid "no valid OpenPGP data found.\n"
-msgstr "nenhum dado OpenPGP válido encontrado.\n"
+msgstr "nenhum dado OpenPGP válido encontrado.\n"
 
 #, c-format
 msgid "invalid armor: line longer than %d characters\n"
-msgstr "armadura inválida: linha maior que %d caracteres\n"
+msgstr "armadura inválida: linha maior que %d caracteres\n"
 
 msgid ""
 "quoted printable character in armor - probably a buggy MTA has been used\n"
@@ -1213,28 +1218,28 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "not human readable"
 msgid "[ not human readable (%zu bytes: %s%s) ]"
-msgstr "não legível por humanos"
+msgstr "não legível por humanos"
 
 msgid ""
 "a notation name must have only printable characters or spaces, and end with "
 "an '='\n"
 msgstr ""
-"um nome de notação deve ter apenas caracteres imprimíveis ou espaços, e "
+"um nome de notação deve ter apenas caracteres imprimíveis ou espaços, e "
 "terminar com um '='\n"
 
 msgid "a user notation name must contain the '@' character\n"
-msgstr "um valor de notação de utilizador não deve conter o caracter '@'\n"
+msgstr "um valor de notação de utilizador não deve conter o caracter '@'\n"
 
 #, fuzzy
 msgid "a notation name must not contain more than one '@' character\n"
-msgstr "um valor de notação de utilizador não deve conter o caracter '@'\n"
+msgstr "um valor de notação de utilizador não deve conter o caracter '@'\n"
 
 msgid "a notation value must not use any control characters\n"
-msgstr "um valor de notação não deve usar caracteres de controle\n"
+msgstr "um valor de notação não deve usar caracteres de controle\n"
 
 #, fuzzy
 msgid "a notation name may not contain an '=' character\n"
-msgstr "um valor de notação de utilizador não deve conter o caracter '@'\n"
+msgstr "um valor de notação de utilizador não deve conter o caracter '@'\n"
 
 #, fuzzy
 #| msgid ""
@@ -1242,11 +1247,11 @@ msgstr "um valor de nota
 #| "with an '='\n"
 msgid "a notation name must have only printable characters or spaces\n"
 msgstr ""
-"um nome de notação deve ter apenas caracteres imprimíveis ou espaços, e "
+"um nome de notação deve ter apenas caracteres imprimíveis ou espaços, e "
 "terminar com um '='\n"
 
 msgid "WARNING: invalid notation data found\n"
-msgstr "AVISO: dados de notação inválidos encontrados\n"
+msgstr "AVISO: dados de notação inválidos encontrados\n"
 
 #, c-format
 msgid "failed to proxy %s inquiry to client\n"
@@ -1267,11 +1272,11 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "WARNING: %s overrides %s\n"
 msgid "WARNING: %s\n"
-msgstr "AVISO: %s sobrepõe %s\n"
+msgstr "AVISO: %s sobrepõe %s\n"
 
 #, fuzzy, c-format
 msgid "OpenPGP card not available: %s\n"
-msgstr "chave secreta não disponível"
+msgstr "chave secreta não disponível"
 
 #, c-format
 msgid "OpenPGP card no. %s detected\n"
@@ -1279,18 +1284,18 @@ msgstr ""
 
 #, fuzzy
 msgid "can't do this in batch mode\n"
-msgstr "impossível fazer isso em modo não-interativo\n"
+msgstr "impossível fazer isso em modo não-interativo\n"
 
 #, fuzzy
 msgid "This command is only available for version 2 cards\n"
-msgstr "Este comando não é permitido no modo %s.\n"
+msgstr "Este comando não é permitido no modo %s.\n"
 
 #, fuzzy
 msgid "Reset Code not or not anymore available\n"
-msgstr "partes da chave secreta não disponíveis\n"
+msgstr "partes da chave secreta não disponíveis\n"
 
 msgid "Your selection? "
-msgstr "Opção? "
+msgstr "Opção? "
 
 msgid "[not set]"
 msgstr ""
@@ -1309,7 +1314,7 @@ msgstr "Nenhum motivo especificado"
 
 #, fuzzy
 msgid "not forced"
-msgstr "não processado"
+msgstr "não processado"
 
 msgid "forced"
 msgstr ""
@@ -1335,7 +1340,7 @@ msgstr ""
 
 #, fuzzy
 msgid "URL to retrieve public key: "
-msgstr "a escrever chave pública para `%s'\n"
+msgstr "a escrever chave pública para `%s'\n"
 
 #, c-format
 msgid "Error: URL too long (limit is %d characters).\n"
@@ -1366,38 +1371,38 @@ msgstr ""
 
 #, fuzzy
 msgid "Language preferences: "
-msgstr "preferências actualizadas"
+msgstr "preferências actualizadas"
 
 #, fuzzy
 msgid "Error: invalid length of preference string.\n"
-msgstr "caracter inválido na cadeia de caractéres da preferência\n"
+msgstr "caracter inválido na cadeia de caractéres da preferência\n"
 
 #, fuzzy
 msgid "Error: invalid characters in preference string.\n"
-msgstr "caracter inválido na cadeia de caractéres da preferência\n"
+msgstr "caracter inválido na cadeia de caractéres da preferência\n"
 
 msgid "Sex ((M)ale, (F)emale or space): "
 msgstr ""
 
 #, fuzzy
 msgid "Error: invalid response.\n"
-msgstr "%s: versão de ficheiro inválida %d\n"
+msgstr "%s: versão de ficheiro inválida %d\n"
 
 #, fuzzy
 msgid "CA fingerprint: "
-msgstr "mostra impressão digital"
+msgstr "mostra impressão digital"
 
 #, fuzzy
 msgid "Error: invalid formatted fingerprint.\n"
-msgstr "%s: versão de ficheiro inválida %d\n"
+msgstr "%s: versão de ficheiro inválida %d\n"
 
 #, fuzzy, c-format
 msgid "key operation not possible: %s\n"
-msgstr "A geração de chaves falhou: %s\n"
+msgstr "A geração de chaves falhou: %s\n"
 
 #, fuzzy
 msgid "not an OpenPGP card"
-msgstr "nenhum dado OpenPGP válido encontrado.\n"
+msgstr "nenhum dado OpenPGP válido encontrado.\n"
 
 #, fuzzy, c-format
 msgid "error getting current key info: %s\n"
@@ -1445,7 +1450,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Note: keys are already stored on the card!\n"
-msgstr "ignorado: a chave secreta já está presente\n"
+msgstr "ignorado: a chave secreta já está presente\n"
 
 msgid "Replace existing keys? (y/N) "
 msgstr ""
@@ -1473,24 +1478,24 @@ msgid "   (3) Authentication key\n"
 msgstr ""
 
 msgid "Invalid selection.\n"
-msgstr "Opção inválida.\n"
+msgstr "Opção inválida.\n"
 
 #, fuzzy
 msgid "Please select where to store the key:\n"
-msgstr "motivo da revocação: "
+msgstr "motivo da revocação: "
 
 #, fuzzy, c-format
 msgid "KEYTOCARD failed: %s\n"
-msgstr "actualização falhou: %s\n"
+msgstr "actualização falhou: %s\n"
 
 #, fuzzy
 #| msgid "This command is not allowed while in %s mode.\n"
 msgid "This command is not supported by this card\n"
-msgstr "Este comando não é permitido no modo %s.\n"
+msgstr "Este comando não é permitido no modo %s.\n"
 
 #, fuzzy
 msgid "Note: This command destroys all keys stored on the card!\n"
-msgstr "ignorado: a chave secreta já está presente\n"
+msgstr "ignorado: a chave secreta já está presente\n"
 
 #, fuzzy
 msgid "Continue? (y/N) "
@@ -1511,7 +1516,7 @@ msgstr "mostra esta ajuda"
 
 #, fuzzy
 msgid "list all available data"
-msgstr "Nenhuma ajuda disponível"
+msgstr "Nenhuma ajuda disponível"
 
 msgid "change card holder's name"
 msgstr ""
@@ -1528,14 +1533,14 @@ msgstr "muda a data de validade"
 
 #, fuzzy
 msgid "change the language preferences"
-msgstr "muda os valores de confiança"
+msgstr "muda os valores de confiança"
 
 msgid "change card holder's sex"
 msgstr ""
 
 #, fuzzy
 msgid "change a CA fingerprint"
-msgstr "mostra impressão digital"
+msgstr "mostra impressão digital"
 
 msgid "toggle the signature force PIN flag"
 msgstr ""
@@ -1572,19 +1577,19 @@ msgid "Admin commands are not allowed\n"
 msgstr "a escrever chave privada para `%s'\n"
 
 msgid "Invalid command  (try \"help\")\n"
-msgstr "Comando inválido (tente \"help\")\n"
+msgstr "Comando inválido (tente \"help\")\n"
 
 msgid "--output doesn't work for this command\n"
-msgstr "--output não funciona para este comando\n"
+msgstr "--output não funciona para este comando\n"
 
 #, fuzzy, c-format
 #| msgid "can't open `%s'\n"
 msgid "can't open '%s'\n"
-msgstr "impossível abrir `%s'\n"
+msgstr "impossível abrir `%s'\n"
 
 #, fuzzy, c-format
 msgid "key \"%s\" not found: %s\n"
-msgstr "chave `%s' não encontrada: %s\n"
+msgstr "chave `%s' não encontrada: %s\n"
 
 #, c-format
 msgid "error reading keyblock: %s\n"
@@ -1592,14 +1597,14 @@ msgstr "erro na leitura do bloco de chave: %s\n"
 
 #, fuzzy, c-format
 msgid "key \"%s\" not found\n"
-msgstr "chave `%s' não encontrada: %s\n"
+msgstr "chave `%s' não encontrada: %s\n"
 
 msgid "(unless you specify the key by fingerprint)\n"
-msgstr "(a não ser que escolha a chave pela sua impressão digital)\n"
+msgstr "(a não ser que escolha a chave pela sua impressão digital)\n"
 
 #, fuzzy
 msgid "can't do this in batch mode without \"--yes\"\n"
-msgstr "impossível fazer isso em modo não-interactivo sem utilizar \"--yes\"\n"
+msgstr "impossível fazer isso em modo não-interactivo sem utilizar \"--yes\"\n"
 
 #, fuzzy
 msgid "Delete this key from the keyring? (y/N) "
@@ -1607,11 +1612,11 @@ msgstr "Remover esta chave do porta-chaves?"
 
 #, fuzzy
 msgid "This is a secret key! - really delete? (y/N) "
-msgstr "Esta chave é secreta! - apagar de qualquer modo? "
+msgstr "Esta chave é secreta! - apagar de qualquer modo? "
 
 #, fuzzy, c-format
 msgid "deleting secret %s failed: %s\n"
-msgstr "remoção do bloco de chave falhou: %s\n"
+msgstr "remoção do bloco de chave falhou: %s\n"
 
 msgid "key"
 msgstr "key"
@@ -1619,28 +1624,28 @@ msgstr "key"
 #, fuzzy
 #| msgid "Pubkey: "
 msgid "subkey"
-msgstr "Chave pública: "
+msgstr "Chave pública: "
 
 #, c-format
 msgid "deleting keyblock failed: %s\n"
-msgstr "remoção do bloco de chave falhou: %s\n"
+msgstr "remoção do bloco de chave falhou: %s\n"
 
 msgid "ownertrust information cleared\n"
-msgstr "informações de 'ownertrust' limpas\n"
+msgstr "informações de 'ownertrust' limpas\n"
 
 #, c-format
 msgid "there is a secret key for public key \"%s\"!\n"
-msgstr "há uma chave secreta para a chave pública \"%s\"!\n"
+msgstr "há uma chave secreta para a chave pública \"%s\"!\n"
 
 msgid "use option \"--delete-secret-keys\" to delete it first.\n"
-msgstr "utilize a opção \"--delete-secret-keys\" para a apagar primeiro.\n"
+msgstr "utilize a opção \"--delete-secret-keys\" para a apagar primeiro.\n"
 
 #, c-format
 msgid "error creating passphrase: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 msgid "can't use a symmetric ESK packet due to the S2K mode\n"
-msgstr "não é possível utilizar o pacote ESK simétrico devido ao modo S2K\n"
+msgstr "não é possível utilizar o pacote ESK simétrico devido ao modo S2K\n"
 
 #, fuzzy, c-format
 msgid "using cipher %s\n"
@@ -1649,12 +1654,12 @@ msgstr "assinatura falhou: %s\n"
 #, fuzzy, c-format
 #| msgid "`%s' already compressed\n"
 msgid "'%s' already compressed\n"
-msgstr "%s' já comprimido\n"
+msgstr "%s' já comprimido\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: `%s' is an empty file\n"
 msgid "WARNING: '%s' is an empty file\n"
-msgstr "AVISO: `%s' é um ficheiro vazio\n"
+msgstr "AVISO: `%s' é um ficheiro vazio\n"
 
 #, fuzzy, c-format
 #| msgid "reading from `%s'\n"
@@ -1665,20 +1670,20 @@ msgstr "lendo de `%s'\n"
 msgid ""
 "WARNING: forcing symmetric cipher %s (%d) violates recipient preferences\n"
 msgstr ""
-"ao forçar a cifra simétrica %s (%d) viola as preferências do destinatário\n"
+"ao forçar a cifra simétrica %s (%d) viola as preferências do destinatário\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: forcing compression algorithm %s (%d) violates recipient "
 "preferences\n"
 msgstr ""
-"ao forçar o algoritmo de compressão %s (%d) viola as preferências do "
-"destinatário\n"
+"ao forçar o algoritmo de compressão %s (%d) viola as preferências do "
+"destinatário\n"
 
 #, c-format
 msgid "forcing symmetric cipher %s (%d) violates recipient preferences\n"
 msgstr ""
-"ao forçar a cifra simétrica %s (%d) viola as preferências do destinatário\n"
+"ao forçar a cifra simétrica %s (%d) viola as preferências do destinatário\n"
 
 #, c-format
 msgid "%s/%s encrypted for: \"%s\"\n"
@@ -1686,7 +1691,7 @@ msgstr "%s/%s cifrado para: \"%s\"\n"
 
 #, c-format
 msgid "you may not use %s while in %s mode\n"
-msgstr "não pode utilizar %s enquanto estiver no modo %s\n"
+msgstr "não pode utilizar %s enquanto estiver no modo %s\n"
 
 #, c-format
 msgid "%s encrypted data\n"
@@ -1699,7 +1704,7 @@ msgstr "cifrado com algoritmo desconhecido %d\n"
 msgid ""
 "WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
 msgstr ""
-"AVISO: A mensagem foi cifrada com uma chave fraca na cifragem simétrica.\n"
+"AVISO: A mensagem foi cifrada com uma chave fraca na cifragem simétrica.\n"
 
 msgid "problem handling encrypted packet\n"
 msgstr "problema ao tratar pacote cifrado\n"
@@ -1713,30 +1718,30 @@ msgstr ""
 
 #, fuzzy
 msgid "this platform requires temporary files when calling external programs\n"
-msgstr "%s: erro ao ler registo de versão: %s\n"
+msgstr "%s: erro ao ler registo de versão: %s\n"
 
 #, fuzzy, c-format
 msgid "unable to execute program '%s': %s\n"
-msgstr "não foi possível alterar o exec-path para %s\n"
+msgstr "não foi possível alterar o exec-path para %s\n"
 
 #, fuzzy, c-format
 msgid "unable to execute shell '%s': %s\n"
-msgstr "não foi possível alterar o exec-path para %s\n"
+msgstr "não foi possível alterar o exec-path para %s\n"
 
 #, fuzzy, c-format
 msgid "system error while calling external program: %s\n"
-msgstr "%s: erro ao ler registo de versão: %s\n"
+msgstr "%s: erro ao ler registo de versão: %s\n"
 
 msgid "unnatural exit of external program\n"
 msgstr ""
 
 #, fuzzy
 msgid "unable to execute external program\n"
-msgstr "não foi possível alterar o exec-path para %s\n"
+msgstr "não foi possível alterar o exec-path para %s\n"
 
 #, fuzzy, c-format
 msgid "unable to read external program response: %s\n"
-msgstr "não foi possível alterar o exec-path para %s\n"
+msgstr "não foi possível alterar o exec-path para %s\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unable to remove tempfile (%s) '%s': %s\n"
@@ -1750,7 +1755,7 @@ msgstr "AVISO: dono pouco seguro em %s \"%s\"\n"
 msgid "export signatures that are marked as local-only"
 msgstr ""
 "\n"
-"A assinatura será marcada como não-revocável.\n"
+"A assinatura será marcada como não-revocável.\n"
 
 msgid "export attribute user IDs (generally photo IDs)"
 msgstr ""
@@ -1760,7 +1765,7 @@ msgstr ""
 
 #, fuzzy
 msgid "remove unusable parts from key during export"
-msgstr "chave secreta não utilizável"
+msgstr "chave secreta não utilizável"
 
 msgid "remove as much as possible from key during export"
 msgstr ""
@@ -1797,11 +1802,11 @@ msgstr "erro ao criar `%s': %s\n"
 
 #, fuzzy
 msgid "[User ID not found]"
-msgstr "[Utilizador não encontrado]"
+msgstr "[Utilizador não encontrado]"
 
 #, fuzzy, c-format
 msgid "(check argument of option '%s')\n"
-msgstr "opções de importação inválidas\n"
+msgstr "opções de importação inválidas\n"
 
 #, c-format
 msgid "Warning: '%s' should be a long key ID or a fingerprint\n"
@@ -1826,21 +1831,21 @@ msgstr "erro ao criar `%s': %s\n"
 
 #, fuzzy
 msgid "No fingerprint"
-msgstr "mostra impressão digital"
+msgstr "mostra impressão digital"
 
 #, fuzzy, c-format
 msgid "secret key \"%s\" not found: %s\n"
-msgstr "chave `%s' não encontrada: %s\n"
+msgstr "chave `%s' não encontrada: %s\n"
 
 #, fuzzy, c-format
 #| msgid "|NAME|use NAME as default secret key"
 msgid "Warning: not using '%s' as default key: %s\n"
-msgstr "|NOME|usar NOME como chave secreta por omissão"
+msgstr "|NOME|usar NOME como chave secreta por omissão"
 
 #, fuzzy, c-format
 #| msgid "|NAME|use NAME as default secret key"
 msgid "using \"%s\" as default secret key for signing\n"
-msgstr "|NOME|usar NOME como chave secreta por omissão"
+msgstr "|NOME|usar NOME como chave secreta por omissão"
 
 #, c-format
 msgid "all values passed to '%s' ignored\n"
@@ -1848,11 +1853,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "Invalid key %s made valid by --allow-non-selfsigned-uid\n"
-msgstr "Chave inválida %08lX tornada válida por --allow-non-selfsigned-uid\n"
+msgstr "Chave inválida %08lX tornada válida por --allow-non-selfsigned-uid\n"
 
 #, fuzzy, c-format
 msgid "using subkey %s instead of primary key %s\n"
-msgstr "usando chave secundária %08lX ao invés de chave primária %08lX\n"
+msgstr "usando chave secundária %08lX ao invés de chave primária %08lX\n"
 
 #, fuzzy
 msgid "make a signature"
@@ -1869,10 +1874,10 @@ msgid "encrypt data"
 msgstr "cifrar dados"
 
 msgid "encryption only with symmetric cipher"
-msgstr "cifrar apenas com cifra simétrica"
+msgstr "cifrar apenas com cifra simétrica"
 
 msgid "decrypt data (default)"
-msgstr "decifrar dados (acção por omissão)"
+msgstr "decifrar dados (acção por omissão)"
 
 msgid "verify a signature"
 msgstr "verificar uma assinatura"
@@ -1888,7 +1893,7 @@ msgid "list and check key signatures"
 msgstr "verificar as assinaturas das chaves"
 
 msgid "list keys and fingerprints"
-msgstr "listar as chaves e as impressões digitais"
+msgstr "listar as chaves e as impressões digitais"
 
 msgid "list secret keys"
 msgstr "listar as chaves secretas"
@@ -1915,10 +1920,10 @@ msgid "full featured key pair generation"
 msgstr ""
 
 msgid "generate a revocation certificate"
-msgstr "gerar um certificado de revogação"
+msgstr "gerar um certificado de revogação"
 
 msgid "remove keys from the public keyring"
-msgstr "remover chaves do porta-chaves público"
+msgstr "remover chaves do porta-chaves público"
 
 msgid "remove keys from the secret keyring"
 msgstr "remover chaves do porta-chaves secreto"
@@ -1974,7 +1979,7 @@ msgid "change a card's PIN"
 msgstr ""
 
 msgid "update the trust database"
-msgstr "actualizar a base de dados de confiança"
+msgstr "actualizar a base de dados de confiança"
 
 #, fuzzy
 msgid "print message digests"
@@ -1987,7 +1992,7 @@ msgid "|VALUE|set the TOFU policy for a key"
 msgstr ""
 
 msgid "create ascii armored output"
-msgstr "criar saída com armadura ascii"
+msgstr "criar saída com armadura ascii"
 
 #, fuzzy
 msgid "|USER-ID|encrypt for USER-ID"
@@ -2002,21 +2007,21 @@ msgstr ""
 #, fuzzy
 msgid "|N|set compress level to N (0 disables)"
 msgstr ""
-"|N|estabelecer nível de compressão N\n"
+"|N|estabelecer nível de compressão N\n"
 "(0 desactiva)"
 
 msgid "use canonical text mode"
-msgstr "usar modo de texto canônico"
+msgstr "usar modo de texto canônico"
 
 #, fuzzy
 msgid "|FILE|write output to FILE"
-msgstr "|FICHEIRO|carregar módulo de extensão FICHEIRO"
+msgstr "|FICHEIRO|carregar módulo de extensão FICHEIRO"
 
 msgid "do not make any changes"
-msgstr "não fazer alterações"
+msgstr "não fazer alterações"
 
 msgid "prompt before overwriting"
-msgstr "perguntar antes de sobrepôr"
+msgstr "perguntar antes de sobrepôr"
 
 msgid "use strict OpenPGP behavior"
 msgstr ""
@@ -2026,7 +2031,7 @@ msgid ""
 "(See the man page for a complete listing of all commands and options)\n"
 msgstr ""
 "@\n"
-"(Veja a página man para uma lista completa de comandos e opções)\n"
+"(Veja a página man para uma lista completa de comandos e opções)\n"
 
 msgid ""
 "@\n"
@@ -2045,12 +2050,12 @@ msgstr ""
 " --clearsign [ficheiro]     criar uma assinatura em texto puro\n"
 " --detach-sign [ficheiro]   criar uma assinatura separada\n"
 " --list-keys [nomes]        mostrar chaves\n"
-" --fingerprint [nomes]      mostrar impressões digitais\n"
+" --fingerprint [nomes]      mostrar impressões digitais\n"
 
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: @GPG@ [options] [files] (-h for help)"
-msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
+msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
 
 #, fuzzy
 #| msgid ""
@@ -2062,9 +2067,9 @@ msgid ""
 "Sign, check, encrypt or decrypt\n"
 "Default operation depends on the input data\n"
 msgstr ""
-"Sintaxe: gpg [opções] [ficheiros]\n"
+"Sintaxe: gpg [opções] [ficheiros]\n"
 "assina, verifica, cifra ou decifra\n"
-"a operação por omissão depende dos dados de entrada\n"
+"a operação por omissão depende dos dados de entrada\n"
 
 msgid ""
 "\n"
@@ -2074,27 +2079,27 @@ msgstr ""
 "Algoritmos suportados:\n"
 
 msgid "Pubkey: "
-msgstr "Chave pública: "
+msgstr "Chave pública: "
 
 msgid "Cipher: "
 msgstr "Cifra: "
 
 msgid "Hash: "
-msgstr "Dispersão: "
+msgstr "Dispersão: "
 
 msgid "Compression: "
-msgstr "Compressão: "
+msgstr "Compressão: "
 
 #, fuzzy, c-format
 msgid "usage: %s [options] %s\n"
-msgstr "uso: gpg [opções] "
+msgstr "uso: gpg [opções] "
 
 msgid "conflicting commands\n"
 msgstr "comandos em conflito\n"
 
 #, fuzzy, c-format
 msgid "no = sign found in group definition '%s'\n"
-msgstr "nenhum sinal = encontrada na definição de grupo \"%s\"\n"
+msgstr "nenhum sinal = encontrada na definição de grupo \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe ownership on homedir '%s'\n"
@@ -2110,15 +2115,15 @@ msgstr "AVISO: dono pouco seguro em %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe permissions on homedir '%s'\n"
-msgstr "AVISO: permissões pouco seguras em %s \"%s\"\n"
+msgstr "AVISO: permissões pouco seguras em %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe permissions on configuration file '%s'\n"
-msgstr "AVISO: permissões pouco seguras em %s \"%s\"\n"
+msgstr "AVISO: permissões pouco seguras em %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe permissions on extension '%s'\n"
-msgstr "AVISO: permissões pouco seguras em %s \"%s\"\n"
+msgstr "AVISO: permissões pouco seguras em %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe enclosing directory ownership on homedir '%s'\n"
@@ -2135,20 +2140,20 @@ msgstr "AVISO: dono pouco seguro em %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe enclosing directory permissions on homedir '%s'\n"
-msgstr "AVISO: permissões pouco seguras em %s \"%s\"\n"
+msgstr "AVISO: permissões pouco seguras em %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: unsafe enclosing directory permissions on configuration file '%s'\n"
-msgstr "AVISO: permissões pouco seguras em %s \"%s\"\n"
+msgstr "AVISO: permissões pouco seguras em %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe enclosing directory permissions on extension '%s'\n"
-msgstr "AVISO: permissões pouco seguras em %s \"%s\"\n"
+msgstr "AVISO: permissões pouco seguras em %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "unknown configuration item '%s'\n"
-msgstr "criado um novo ficheiro de configuração `%s'\n"
+msgstr "criado um novo ficheiro de configuração `%s'\n"
 
 msgid "display photo IDs during key listings"
 msgstr ""
@@ -2172,7 +2177,7 @@ msgstr ""
 
 #, fuzzy
 msgid "show preferred keyserver URLs during signature listings"
-msgstr "a URL de política de assinatura dada é inválida\n"
+msgstr "a URL de política de assinatura dada é inválida\n"
 
 msgid "show user ID validity during key listings"
 msgstr ""
@@ -2185,86 +2190,90 @@ msgstr ""
 
 #, fuzzy
 msgid "show the keyring name in key listings"
-msgstr "mostrar em que porta-chave a chave está"
+msgstr "mostrar em que porta-chave a chave está"
 
 #, fuzzy
 msgid "show expiration dates during signature listings"
 msgstr "Nenhuma assinatura correspondente no porta-chaves secreto\n"
 
-#, fuzzy
-msgid "available TOFU policies:\n"
-msgstr "desactiva uma chave"
+#, fuzzy, c-format
+msgid "valid values for option '%s':\n"
+msgstr "opções de importação inválidas\n"
 
 #, fuzzy, c-format
 msgid "unknown TOFU policy '%s'\n"
-msgstr "destinatário por omissão desconhecido `%s'\n"
+msgstr "destinatário por omissão desconhecido `%s'\n"
 
 msgid "(use \"help\" to list choices)\n"
 msgstr ""
 
 #, fuzzy, c-format
+msgid "invalid value for option '%s'\n"
+msgstr "opções de importação inválidas\n"
+
+#, fuzzy, c-format
 #| msgid "NOTE: old default options file `%s' ignored\n"
 msgid "Note: old default options file '%s' ignored\n"
-msgstr "NOTA: o ficheiro antigo de opções por omissão `%s' foi ignorado\n"
+msgstr "NOTA: o ficheiro antigo de opções por omissão `%s' foi ignorado\n"
 
 #, fuzzy, c-format
 #| msgid "NOTE: %s is not for normal use!\n"
 msgid "Note: %s is not for normal use!\n"
-msgstr "NOTA: %s não é para uso normal!\n"
+msgstr "NOTA: %s não é para uso normal!\n"
 
 #, fuzzy, c-format
 msgid "'%s' is not a valid signature expiration\n"
-msgstr "%s não é um conjunto de caracteres válido\n"
+msgstr "%s não é um conjunto de caracteres válido\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" is not a proper mail address\n"
-msgstr "Endereço eletrónico inválido\n"
+msgstr "Endereço eletrónico inválido\n"
 
 #, fuzzy, c-format
 msgid "invalid pinentry mode '%s'\n"
-msgstr "algoritmo de dispersão inválido `%s'\n"
+msgstr "algoritmo de dispersão inválido `%s'\n"
 
 #, fuzzy, c-format
 msgid "'%s' is not a valid character set\n"
-msgstr "%s não é um conjunto de caracteres válido\n"
+msgstr "%s não é um conjunto de caracteres válido\n"
 
 #, fuzzy
 msgid "could not parse keyserver URL\n"
-msgstr "não consegui processar a URI do servidor de chaves\n"
+msgstr "não consegui processar a URI do servidor de chaves\n"
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid keyserver options\n"
-msgstr "%s:%d: opções de exportação inválidas\n"
+msgstr "%s:%d: opções de exportação inválidas\n"
 
 #, fuzzy
 msgid "invalid keyserver options\n"
-msgstr "opções de exportação inválidas\n"
+msgstr "opções de exportação inválidas\n"
 
 #, c-format
 msgid "%s:%d: invalid import options\n"
-msgstr "%s:%d: opções de importação inválidas\n"
+msgstr "%s:%d: opções de importação inválidas\n"
 
 msgid "invalid import options\n"
-msgstr "opções de importação inválidas\n"
+msgstr "opções de importação inválidas\n"
 
 #, fuzzy, c-format
 msgid "invalid filter option: %s\n"
-msgstr "opções de importação inválidas\n"
+msgstr "opções de importação inválidas\n"
 
 #, c-format
 msgid "%s:%d: invalid export options\n"
-msgstr "%s:%d: opções de exportação inválidas\n"
+msgstr "%s:%d: opções de exportação inválidas\n"
 
 msgid "invalid export options\n"
-msgstr "opções de exportação inválidas\n"
+msgstr "opções de exportação inválidas\n"
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid list options\n"
-msgstr "%s:%d: opções de importação inválidas\n"
+msgstr "%s:%d: opções de importação inválidas\n"
 
 #, fuzzy
 msgid "invalid list options\n"
-msgstr "opções de importação inválidas\n"
+msgstr "opções de importação inválidas\n"
 
 msgid "display photo IDs during signature verification"
 msgstr ""
@@ -2274,7 +2283,7 @@ msgstr ""
 
 #, fuzzy
 msgid "show all notations during signature verification"
-msgstr "%s não é um conjunto de caracteres válido\n"
+msgstr "%s não é um conjunto de caracteres válido\n"
 
 msgid "show IETF standard notations during signature verification"
 msgstr ""
@@ -2284,18 +2293,18 @@ msgstr ""
 
 #, fuzzy
 msgid "show preferred keyserver URLs during signature verification"
-msgstr "a URL de política de assinatura dada é inválida\n"
+msgstr "a URL de política de assinatura dada é inválida\n"
 
 #, fuzzy
 msgid "show user ID validity during signature verification"
-msgstr "%s não é um conjunto de caracteres válido\n"
+msgstr "%s não é um conjunto de caracteres válido\n"
 
 msgid "show revoked and expired user IDs in signature verification"
 msgstr ""
 
 #, fuzzy
 msgid "show only the primary user ID in signature verification"
-msgstr "%s não é um conjunto de caracteres válido\n"
+msgstr "%s não é um conjunto de caracteres válido\n"
 
 msgid "validate signatures with PKA data"
 msgstr ""
@@ -2305,19 +2314,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid verify options\n"
-msgstr "%s:%d: opções de exportação inválidas\n"
+msgstr "%s:%d: opções de exportação inválidas\n"
 
 #, fuzzy
 msgid "invalid verify options\n"
-msgstr "opções de exportação inválidas\n"
+msgstr "opções de exportação inválidas\n"
 
 #, c-format
 msgid "unable to set exec-path to %s\n"
-msgstr "não foi possível alterar o exec-path para %s\n"
+msgstr "não foi possível alterar o exec-path para %s\n"
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid auto-key-locate list\n"
-msgstr "%s:%d: opções de exportação inválidas\n"
+msgstr "%s:%d: opções de exportação inválidas\n"
 
 msgid "invalid auto-key-locate list\n"
 msgstr ""
@@ -2327,15 +2336,15 @@ msgstr "AVISO: O programa pode criar um ficheiro core!\n"
 
 #, c-format
 msgid "WARNING: %s overrides %s\n"
-msgstr "AVISO: %s sobrepõe %s\n"
+msgstr "AVISO: %s sobrepõe %s\n"
 
 #, c-format
 msgid "%s not allowed with %s!\n"
-msgstr "%s não é permitido com %s!\n"
+msgstr "%s não é permitido com %s!\n"
 
 #, c-format
 msgid "%s makes no sense with %s!\n"
-msgstr "%s não faz sentido com %s!\n"
+msgstr "%s não faz sentido com %s!\n"
 
 msgid "WARNING: running with faked system time: "
 msgstr ""
@@ -2345,17 +2354,17 @@ msgid "will not run with insecure memory due to %s\n"
 msgstr "a escrever chave privada para `%s'\n"
 
 msgid "selected cipher algorithm is invalid\n"
-msgstr "o algoritmo de cifragem selecionado é inválido\n"
+msgstr "o algoritmo de cifragem selecionado é inválido\n"
 
 msgid "selected digest algorithm is invalid\n"
-msgstr "o algoritmo de \"digest\" selecionado é inválido\n"
+msgstr "o algoritmo de \"digest\" selecionado é inválido\n"
 
 #, fuzzy
 msgid "selected compression algorithm is invalid\n"
-msgstr "o algoritmo de cifragem selecionado é inválido\n"
+msgstr "o algoritmo de cifragem selecionado é inválido\n"
 
 msgid "selected certification digest algorithm is invalid\n"
-msgstr "o algoritmo de \"digest\" de certificação selecionado é inválido\n"
+msgstr "o algoritmo de \"digest\" de certificação selecionado é inválido\n"
 
 msgid "completes-needed must be greater than 0\n"
 msgstr "completes-needed deve ser maior que 0\n"
@@ -2369,55 +2378,55 @@ msgstr "max-cert-depth deve estar na entre 1 e 255\n"
 
 #, fuzzy
 msgid "invalid default-cert-level; must be 0, 1, 2, or 3\n"
-msgstr "nível de verificação por omissão inválido: deve ser 0, 1, 2 ou 3\n"
+msgstr "nível de verificação por omissão inválido: deve ser 0, 1, 2 ou 3\n"
 
 #, fuzzy
 msgid "invalid min-cert-level; must be 1, 2, or 3\n"
-msgstr "nível de verificação por omissão inválido: deve ser 0, 1, 2 ou 3\n"
+msgstr "nível de verificação por omissão inválido: deve ser 0, 1, 2 ou 3\n"
 
 #, fuzzy
 #| msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
 msgid "Note: simple S2K mode (0) is strongly discouraged\n"
-msgstr "NOTA: o modo S2K simples (0) não é recomendável\n"
+msgstr "NOTA: o modo S2K simples (0) não é recomendável\n"
 
 msgid "invalid S2K mode; must be 0, 1 or 3\n"
-msgstr "modo S2K inválido: deve ser 0, 1 ou 3\n"
+msgstr "modo S2K inválido: deve ser 0, 1 ou 3\n"
 
 msgid "invalid default preferences\n"
-msgstr "preferências por omissão inválidas\n"
+msgstr "preferências por omissão inválidas\n"
 
 msgid "invalid personal cipher preferences\n"
-msgstr "preferências pessoais de cifra inválidas\n"
+msgstr "preferências pessoais de cifra inválidas\n"
 
 msgid "invalid personal digest preferences\n"
-msgstr "preferências pessoais de 'digest' inválidas\n"
+msgstr "preferências pessoais de 'digest' inválidas\n"
 
 msgid "invalid personal compress preferences\n"
-msgstr "preferências pessoais de compressão inválidas\n"
+msgstr "preferências pessoais de compressão inválidas\n"
 
 #, fuzzy, c-format
 msgid "%s does not yet work with %s\n"
-msgstr "%s não faz sentido com %s!\n"
+msgstr "%s não faz sentido com %s!\n"
 
 #, fuzzy, c-format
 msgid "you may not use cipher algorithm '%s' while in %s mode\n"
-msgstr "não pode utilizar %s enquanto estiver no modo %s\n"
+msgstr "não pode utilizar %s enquanto estiver no modo %s\n"
 
 #, fuzzy, c-format
 msgid "you may not use digest algorithm '%s' while in %s mode\n"
-msgstr "não pode utilizar %s enquanto estiver no modo %s\n"
+msgstr "não pode utilizar %s enquanto estiver no modo %s\n"
 
 #, fuzzy, c-format
 msgid "you may not use compression algorithm '%s' while in %s mode\n"
-msgstr "não pode utilizar %s enquanto estiver no modo %s\n"
+msgstr "não pode utilizar %s enquanto estiver no modo %s\n"
 
 #, c-format
 msgid "failed to initialize the TrustDB: %s\n"
-msgstr "falha ao inicializar a base de dados de confiança: %s\n"
+msgstr "falha ao inicializar a base de dados de confiança: %s\n"
 
 msgid "WARNING: recipients (-r) given without using public key encryption\n"
 msgstr ""
-"AVISO: destinatários (-r) dados sem utilizar uma cifra de chave pública\n"
+"AVISO: destinatários (-r) dados sem utilizar uma cifra de chave pública\n"
 
 msgid "--store [filename]"
 msgstr "--store [nome_do_ficheiro]"
@@ -2441,7 +2450,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "you cannot use --symmetric --encrypt while in %s mode\n"
-msgstr "não pode utilizar %s enquanto estiver no modo %s\n"
+msgstr "não pode utilizar %s enquanto estiver no modo %s\n"
 
 msgid "--sign [filename]"
 msgstr "--sign [nome_do_ficheiro]"
@@ -2458,7 +2467,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "you cannot use --symmetric --sign --encrypt while in %s mode\n"
-msgstr "não pode utilizar %s enquanto estiver no modo %s\n"
+msgstr "não pode utilizar %s enquanto estiver no modo %s\n"
 
 msgid "--sign --symmetric [filename]"
 msgstr "--sign --symmetric [nome_do_ficheiro]"
@@ -2484,27 +2493,27 @@ msgstr "--sign-key id-utilizador"
 
 #, fuzzy, c-format
 msgid "keyserver send failed: %s\n"
-msgstr "A geração de chaves falhou: %s\n"
+msgstr "A geração de chaves falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "keyserver receive failed: %s\n"
-msgstr "A geração de chaves falhou: %s\n"
+msgstr "A geração de chaves falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "key export failed: %s\n"
-msgstr "A geração de chaves falhou: %s\n"
+msgstr "A geração de chaves falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "export as ssh key failed: %s\n"
-msgstr "A geração de chaves falhou: %s\n"
+msgstr "A geração de chaves falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "keyserver search failed: %s\n"
-msgstr "A geração de chaves falhou: %s\n"
+msgstr "A geração de chaves falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "keyserver refresh failed: %s\n"
-msgstr "actualização da chave secreta falhou: %s\n"
+msgstr "actualização da chave secreta falhou: %s\n"
 
 #, c-format
 msgid "dearmoring failed: %s\n"
@@ -2512,16 +2521,16 @@ msgstr "retirada de armadura falhou: %s\n"
 
 #, c-format
 msgid "enarmoring failed: %s\n"
-msgstr "criação de armadura falhou: %s\n"
+msgstr "criação de armadura falhou: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid hash algorithm `%s'\n"
 msgid "invalid hash algorithm '%s'\n"
-msgstr "algoritmo de dispersão inválido `%s'\n"
+msgstr "algoritmo de dispersão inválido `%s'\n"
 
 #, fuzzy, c-format
 msgid "error parsing key specification '%s': %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, c-format
 msgid "'%s' does not appear to be a valid key ID, fingerprint or keygrip\n"
@@ -2534,14 +2543,14 @@ msgid "Go ahead and type your message ...\n"
 msgstr "Digite a sua mensagem ...\n"
 
 msgid "the given certification policy URL is invalid\n"
-msgstr "a URL de política de certificação dada é inválida\n"
+msgstr "a URL de política de certificação dada é inválida\n"
 
 msgid "the given signature policy URL is invalid\n"
-msgstr "a URL de política de assinatura dada é inválida\n"
+msgstr "a URL de política de assinatura dada é inválida\n"
 
 #, fuzzy
 msgid "the given preferred keyserver URL is invalid\n"
-msgstr "a URL de política de assinatura dada é inválida\n"
+msgstr "a URL de política de assinatura dada é inválida\n"
 
 #, fuzzy
 msgid "|FILE|take the keys from the keyring FILE"
@@ -2553,7 +2562,7 @@ msgstr "conflito de \"timestamp\""
 
 msgid "|FD|write status info to this FD"
 msgstr ""
-"|DF|escrever informações de estado para o\n"
+"|DF|escrever informações de estado para o\n"
 "descritor de ficheiro DF"
 
 msgid "|ALGO|reject signatures made with ALGO"
@@ -2561,7 +2570,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Usage: gpgv [options] [files] (-h for help)"
-msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
+msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
 
 msgid ""
 "Syntax: gpgv [options] [files]\n"
@@ -2569,12 +2578,12 @@ msgid ""
 msgstr ""
 
 msgid "No help available"
-msgstr "Nenhuma ajuda disponível"
+msgstr "Nenhuma ajuda disponível"
 
 #, fuzzy, c-format
 #| msgid "No help available for `%s'"
 msgid "No help available for '%s'"
-msgstr "Nenhuma ajuda disponível para `%s'"
+msgstr "Nenhuma ajuda disponível para `%s'"
 
 msgid "import signatures that are marked as local-only"
 msgstr ""
@@ -2584,22 +2593,22 @@ msgstr ""
 
 #, fuzzy
 msgid "do not clear the ownertrust values during import"
-msgstr "actualizar a base de dados de confiança"
+msgstr "actualizar a base de dados de confiança"
 
 #, fuzzy
 msgid "do not update the trustdb after import"
-msgstr "actualizar a base de dados de confiança"
+msgstr "actualizar a base de dados de confiança"
 
 #, fuzzy
 msgid "show key during import"
-msgstr "mostra impressão digital"
+msgstr "mostra impressão digital"
 
 msgid "only accept updates to existing keys"
 msgstr ""
 
 #, fuzzy
 msgid "remove unusable parts from key after import"
-msgstr "chave secreta não utilizável"
+msgstr "chave secreta não utilizável"
 
 msgid "remove as much as possible from key after import"
 msgstr ""
@@ -2613,11 +2622,11 @@ msgstr "ignorando bloco do tipo %d\n"
 
 #, fuzzy, c-format
 msgid "%lu keys processed so far\n"
-msgstr "%lu chaves processadas até agora\n"
+msgstr "%lu chaves processadas até agora\n"
 
 #, c-format
 msgid "Total number processed: %lu\n"
-msgstr "Número total processado: %lu\n"
+msgstr "Número total processado: %lu\n"
 
 #, fuzzy, c-format
 #| msgid "      skipped new keys: %lu\n"
@@ -2638,7 +2647,7 @@ msgstr "              importados: %lu"
 
 #, c-format
 msgid "             unchanged: %lu\n"
-msgstr "             não modificados: %lu\n"
+msgstr "             não modificados: %lu\n"
 
 #, c-format
 msgid "          new user IDs: %lu\n"
@@ -2654,7 +2663,7 @@ msgstr "        novas assinaturas: %lu\n"
 
 #, c-format
 msgid "   new key revocations: %lu\n"
-msgstr "   novas revogações de chaves: %lu\n"
+msgstr "   novas revogações de chaves: %lu\n"
 
 #, c-format
 msgid "      secret keys read: %lu\n"
@@ -2666,11 +2675,11 @@ msgstr "  chaves secretas importadas: %lu\n"
 
 #, c-format
 msgid " secret keys unchanged: %lu\n"
-msgstr " chaves secretas não modificadas: %lu\n"
+msgstr " chaves secretas não modificadas: %lu\n"
 
 #, c-format
 msgid "          not imported: %lu\n"
-msgstr "        não importadas: %lu\n"
+msgstr "        não importadas: %lu\n"
 
 #, fuzzy, c-format
 msgid "    signatures cleaned: %lu\n"
@@ -2729,14 +2738,14 @@ msgstr "chave %08lX: aceite ID de utilizador sem auto-assinatura '%s'\n"
 
 #, fuzzy, c-format
 msgid "key %s: no valid user IDs\n"
-msgstr "chave %08lX: sem IDs de utilizadores válidos\n"
+msgstr "chave %08lX: sem IDs de utilizadores válidos\n"
 
 msgid "this may be caused by a missing self-signature\n"
 msgstr "isto pode ser causado por falta de auto-assinatura\n"
 
 #, fuzzy, c-format
 msgid "key %s: public key not found: %s\n"
-msgstr "chave %08lX: chave pública não encontrada: %s\n"
+msgstr "chave %08lX: chave pública não encontrada: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: new key - skipped\n"
@@ -2744,7 +2753,7 @@ msgstr "chave %08lX: chave nova - ignorada\n"
 
 #, c-format
 msgid "no writable keyring found: %s\n"
-msgstr "não foi encontrada nenhum porta-chaves onde escrever: %s\n"
+msgstr "não foi encontrada nenhum porta-chaves onde escrever: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing keyring `%s': %s\n"
@@ -2753,19 +2762,19 @@ msgstr "erro na escrita do porta-chaves `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: public key \"%s\" imported\n"
-msgstr "chave %08lX: chave pública \"%s\" importada\n"
+msgstr "chave %08lX: chave pública \"%s\" importada\n"
 
 #, fuzzy, c-format
 msgid "key %s: doesn't match our copy\n"
-msgstr "chave %08lX: não corresponde à nossa cópia\n"
+msgstr "chave %08lX: não corresponde à nossa cópia\n"
 
 #, fuzzy, c-format
 msgid "key %s: can't locate original keyblock: %s\n"
-msgstr "chave %08lX: impossível localizar bloco de chaves original: %s\n"
+msgstr "chave %08lX: impossível localizar bloco de chaves original: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: can't read original keyblock: %s\n"
-msgstr "chave %08lX: impossível ler bloco de chaves original: %s\n"
+msgstr "chave %08lX: impossível ler bloco de chaves original: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" 1 new user ID\n"
@@ -2809,7 +2818,7 @@ msgstr "chave %08lX: \"%s\" %d novos IDs de utilizadores\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" not changed\n"
-msgstr "chave %08lX: \"%s\" não modificada\n"
+msgstr "chave %08lX: \"%s\" não modificada\n"
 
 #, fuzzy, c-format
 msgid "key %s: secret key imported\n"
@@ -2818,7 +2827,7 @@ msgstr "chave %08lX: chave secreta importada\n"
 #, fuzzy, c-format
 #| msgid "skipped: secret key already present\n"
 msgid "key %s: secret key already exists\n"
-msgstr "ignorado: a chave secreta já está presente\n"
+msgstr "ignorado: a chave secreta já está presente\n"
 
 #, fuzzy, c-format
 msgid "key %s: error sending to agent: %s\n"
@@ -2826,7 +2835,7 @@ msgstr "erro ao enviar para `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "secret key %s: %s\n"
-msgstr "chave `%s' não encontrada: %s\n"
+msgstr "chave `%s' não encontrada: %s\n"
 
 #, fuzzy
 msgid "importing secret keys not allowed\n"
@@ -2834,7 +2843,7 @@ msgstr "a escrever chave privada para `%s'\n"
 
 #, fuzzy, c-format
 msgid "key %s: secret key with invalid cipher %d - skipped\n"
-msgstr "chave %08lX: chave secreta com cifra inválida %d - ignorada\n"
+msgstr "chave %08lX: chave secreta com cifra inválida %d - ignorada\n"
 
 #. TRANSLATORS: For smartcard, each private key on
 #. host has a reference (stub) to a smartcard and
@@ -2853,16 +2862,16 @@ msgstr ""
 #, fuzzy, c-format
 msgid "key %s: no public key - can't apply revocation certificate\n"
 msgstr ""
-"chave %08lX: sem chave pública - impossível aplicar certificado\n"
-"de revogação\n"
+"chave %08lX: sem chave pública - impossível aplicar certificado\n"
+"de revogação\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid revocation certificate: %s - rejected\n"
-msgstr "chave %08lX: certificado de revogação inválido: %s - rejeitado\n"
+msgstr "chave %08lX: certificado de revogação inválido: %s - rejeitado\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" revocation certificate imported\n"
-msgstr "chave %08lX: \"%s\" certificado de revogação importado\n"
+msgstr "chave %08lX: \"%s\" certificado de revogação importado\n"
 
 #, fuzzy, c-format
 msgid "key %s: no user ID for signature\n"
@@ -2871,15 +2880,15 @@ msgstr "chave %08lX: nenhum ID de utilizador para assinatura\n"
 #, fuzzy, c-format
 msgid "key %s: unsupported public key algorithm on user ID \"%s\"\n"
 msgstr ""
-"chave %08lX: algoritmo de chave pública não suportado no utilizador \"%s\"\n"
+"chave %08lX: algoritmo de chave pública não suportado no utilizador \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid self-signature on user ID \"%s\"\n"
-msgstr "chave %08lX: auto-assinatura inválida do utilizador \"%s\"\n"
+msgstr "chave %08lX: auto-assinatura inválida do utilizador \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "key %s: unsupported public key algorithm\n"
-msgstr "chave %08lX: algoritmo de chave pública não suportado\n"
+msgstr "chave %08lX: algoritmo de chave pública não suportado\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid direct key signature\n"
@@ -2887,27 +2896,27 @@ msgstr "chave %08lX: assinatura directa de chave adicionada\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for key binding\n"
-msgstr "chave %08lX: sem subchave para ligação de chaves\n"
+msgstr "chave %08lX: sem subchave para ligação de chaves\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid subkey binding\n"
-msgstr "chave %08lX: ligação de subchave inválida\n"
+msgstr "chave %08lX: ligação de subchave inválida\n"
 
 #, fuzzy, c-format
 msgid "key %s: removed multiple subkey binding\n"
-msgstr "chave %08lX: apagada ligação múltipla de subchave \n"
+msgstr "chave %08lX: apagada ligação múltipla de subchave \n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for key revocation\n"
-msgstr "chave %08lX: sem subchave para revocação de chave\n"
+msgstr "chave %08lX: sem subchave para revocação de chave\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid subkey revocation\n"
-msgstr "chave %08lX: revocação de subchave inválida\n"
+msgstr "chave %08lX: revocação de subchave inválida\n"
 
 #, fuzzy, c-format
 msgid "key %s: removed multiple subkey revocation\n"
-msgstr "chave %08lX: removida revogação múltiplace de subchaves\n"
+msgstr "chave %08lX: removida revogação múltiplace de subchaves\n"
 
 #, fuzzy, c-format
 msgid "key %s: skipped user ID \"%s\"\n"
@@ -2919,15 +2928,15 @@ msgstr "chave %08lX: subchave ignorada\n"
 
 #, fuzzy, c-format
 msgid "key %s: non exportable signature (class 0x%02X) - skipped\n"
-msgstr "chave %08lX: assinatura não exportável (classe %02x) - ignorada\n"
+msgstr "chave %08lX: assinatura não exportável (classe %02x) - ignorada\n"
 
 #, fuzzy, c-format
 msgid "key %s: revocation certificate at wrong place - skipped\n"
-msgstr "chave %08lX: certificado de revogação no local errado - ignorado\n"
+msgstr "chave %08lX: certificado de revogação no local errado - ignorado\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid revocation certificate: %s - skipped\n"
-msgstr "chave %08lX: certificado de revogação inválido: %s - ignorado\n"
+msgstr "chave %08lX: certificado de revogação inválido: %s - ignorado\n"
 
 #, fuzzy, c-format
 msgid "key %s: subkey signature in wrong place - skipped\n"
@@ -2944,18 +2953,18 @@ msgstr "chave %08lX: detectado ID de utilizador duplicado - fundido\n"
 #, fuzzy, c-format
 msgid "WARNING: key %s may be revoked: fetching revocation key %s\n"
 msgstr ""
-"AVISO: a chave %08lX pode estar revocada: a transferir a chave de revocação "
+"AVISO: a chave %08lX pode estar revocada: a transferir a chave de revocação "
 "%08lX\n"
 
 #, fuzzy, c-format
 msgid "WARNING: key %s may be revoked: revocation key %s not present.\n"
 msgstr ""
-"AVISO: a chave %08lX pode estar revocada: chave de revocação %08lX não "
+"AVISO: a chave %08lX pode estar revocada: chave de revocação %08lX não "
 "presente.\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" revocation certificate added\n"
-msgstr "chave %08lX: certificado de revogação \"%s\" adicionado\n"
+msgstr "chave %08lX: certificado de revogação \"%s\" adicionado\n"
 
 #, fuzzy, c-format
 msgid "key %s: direct key signature added\n"
@@ -2992,14 +3001,18 @@ msgid "failed to rebuild keyring cache: %s\n"
 msgstr "falha ao criar 'cache' do porta-chaves: %s\n"
 
 msgid "[revocation]"
-msgstr "[revogação]"
+msgstr "[revogação]"
 
 msgid "[self-signature]"
 msgstr "[auto-assinatura]"
 
 #, fuzzy, c-format
+msgid "error allocating memory: %s\n"
+msgstr "erro ao criar porta-chaves `%s': %s\n"
+
+#, fuzzy, c-format
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
-msgstr "chave %08lX: algoritmo de chave pública não suportado\n"
+msgstr "chave %08lX: algoritmo de chave pública não suportado\n"
 
 #, fuzzy, c-format
 msgid ""
@@ -3017,15 +3030,15 @@ msgstr "ignorado `%s': %s\n"
 #, fuzzy, c-format
 msgid "%d duplicate signature removed\n"
 msgid_plural "%d duplicate signatures removed\n"
-msgstr[0] "Utilizador \"%s\" está revocado."
-msgstr[1] "Utilizador \"%s\" está revocado."
+msgstr[0] "Utilizador \"%s\" está revocado."
+msgstr[1] "Utilizador \"%s\" está revocado."
 
 #, fuzzy, c-format
 #| msgid "1 signature not checked due to a missing key\n"
 msgid "%d signature not checked due to a missing key\n"
 msgid_plural "%d signatures not checked due to missing keys\n"
-msgstr[0] "1 assinatura não verificada por falta de chave\n"
-msgstr[1] "1 assinatura não verificada por falta de chave\n"
+msgstr[0] "1 assinatura não verificada por falta de chave\n"
+msgstr[1] "1 assinatura não verificada por falta de chave\n"
 
 #, fuzzy, c-format
 #| msgid "%d bad signatures\n"
@@ -3055,7 +3068,7 @@ msgid ""
 msgstr ""
 "Por favor decida quanto confia neste utilizador para\n"
 "verificar correctamente as chaves de outros utilizadores\n"
-"(vendo passaportes, verificando impressões digitais...)?\n"
+"(vendo passaportes, verificando impressões digitais...)?\n"
 "\n"
 
 #, fuzzy, c-format
@@ -3081,25 +3094,25 @@ msgstr ""
 
 #, c-format
 msgid "User ID \"%s\" is revoked."
-msgstr "Utilizador \"%s\" está revocado."
+msgstr "Utilizador \"%s\" está revocado."
 
 msgid "Are you sure you still want to sign it? (y/N) "
-msgstr "Você tem certeza de que quer adicioná-la de qualquer forma? (s/N) "
+msgstr "Você tem certeza de que quer adicioná-la de qualquer forma? (s/N) "
 
 msgid "  Unable to sign.\n"
-msgstr "  Não foi possível assinar.\n"
+msgstr "  Não foi possível assinar.\n"
 
 #, fuzzy, c-format
 msgid "User ID \"%s\" is expired."
-msgstr "Utilizador \"%s\" está revocado."
+msgstr "Utilizador \"%s\" está revocado."
 
 #, fuzzy, c-format
 msgid "User ID \"%s\" is not self-signed."
-msgstr "AVISO: o ID do utilizador \"%s\" não é auto-assinado.\n"
+msgstr "AVISO: o ID do utilizador \"%s\" não é auto-assinado.\n"
 
 #, fuzzy, c-format
 msgid "User ID \"%s\" is signable.  "
-msgstr "AVISO: o ID do utilizador \"%s\" não é auto-assinado.\n"
+msgstr "AVISO: o ID do utilizador \"%s\" não é auto-assinado.\n"
 
 #, fuzzy
 msgid "Sign it? (y/N) "
@@ -3111,10 +3124,10 @@ msgid ""
 "is a PGP 2.x-style signature.\n"
 msgstr ""
 "A sua auto-assinatura em \"%s\"\n"
-"é uma assinatura do tipo PGP 2.x.\n"
+"é uma assinatura do tipo PGP 2.x.\n"
 
 msgid "Do you want to promote it to an OpenPGP self-signature? (y/N) "
-msgstr "Quer promovê-la a uma auto-assinatura OpenPGP? (s/N) "
+msgstr "Quer promovê-la a uma auto-assinatura OpenPGP? (s/N) "
 
 #, fuzzy, c-format
 msgid ""
@@ -3122,7 +3135,7 @@ msgid ""
 "has expired.\n"
 msgstr ""
 "A sua assinatura actual em \"%s\"\n"
-"é uma assinatura local.\n"
+"é uma assinatura local.\n"
 
 #, fuzzy
 msgid "Do you want to issue a new signature to replace the expired one? (y/N) "
@@ -3134,22 +3147,22 @@ msgid ""
 "is a local signature.\n"
 msgstr ""
 "A sua assinatura actual em \"%s\"\n"
-"é uma assinatura local.\n"
+"é uma assinatura local.\n"
 
 msgid "Do you want to promote it to a full exportable signature? (y/N) "
-msgstr "Quer promovê-la a uma assinatura exportável? (s/N)"
+msgstr "Quer promovê-la a uma assinatura exportável? (s/N)"
 
 #, fuzzy, c-format
 msgid "\"%s\" was already locally signed by key %s\n"
-msgstr "\"%s\" já foi assinado localmente pela chave %08lX\n"
+msgstr "\"%s\" já foi assinado localmente pela chave %08lX\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" was already signed by key %s\n"
-msgstr "\"%s\" já foi assinado pela chave %08lX\n"
+msgstr "\"%s\" já foi assinado pela chave %08lX\n"
 
 #, fuzzy
 msgid "Do you want to sign it again anyway? (y/N) "
-msgstr "Você tem certeza de que quer adicioná-la de qualquer forma? (s/N) "
+msgstr "Você tem certeza de que quer adicioná-la de qualquer forma? (s/N) "
 
 #, fuzzy, c-format
 msgid "Nothing to sign with key %s\n"
@@ -3170,17 +3183,17 @@ msgid ""
 "belongs\n"
 "to the person named above?  If you don't know what to answer, enter \"0\".\n"
 msgstr ""
-"Com que cuidado é que verificou que chave que está prestes a assinar "
+"Com que cuidado é que verificou que chave que está prestes a assinar "
 "pertence\n"
-"à pessoa correcta? Se não sabe o que responder, escolha \"0\".\n"
+"à pessoa correcta? Se não sabe o que responder, escolha \"0\".\n"
 
 #, c-format
 msgid "   (0) I will not answer.%s\n"
-msgstr "   (0) Não vou responder.%s\n"
+msgstr "   (0) Não vou responder.%s\n"
 
 #, c-format
 msgid "   (1) I have not checked at all.%s\n"
-msgstr "   (1) Não verifiquei.%s\n"
+msgstr "   (1) Não verifiquei.%s\n"
 
 #, c-format
 msgid "   (2) I have done casual checking.%s\n"
@@ -3192,51 +3205,51 @@ msgstr "   (3) Verifiquei com bastante cuidado.%s\n"
 
 #, fuzzy
 msgid "Your selection? (enter '?' for more information): "
-msgstr " i = mostrar mais informações\n"
+msgstr " i = mostrar mais informações\n"
 
 #, fuzzy, c-format
 msgid ""
 "Are you sure that you want to sign this key with your\n"
 "key \"%s\" (%s)\n"
 msgstr ""
-"Você tem certeza de que quer assinar esta chave com\n"
+"Você tem certeza de que quer assinar esta chave com\n"
 "a sua chave: \""
 
 #, fuzzy
 msgid "This will be a self-signature.\n"
 msgstr ""
 "\n"
-"Isto será uma auto-assinatura.\n"
+"Isto será uma auto-assinatura.\n"
 
 #, fuzzy
 msgid "WARNING: the signature will not be marked as non-exportable.\n"
 msgstr ""
 "\n"
-"AVISO: a assinatura não será marcada como não-exportável.\n"
+"AVISO: a assinatura não será marcada como não-exportável.\n"
 
 #, fuzzy
 msgid "WARNING: the signature will not be marked as non-revocable.\n"
 msgstr ""
 "\n"
-"AVISO: a assinatura não será marcada como não-revocável.\n"
+"AVISO: a assinatura não será marcada como não-revocável.\n"
 
 #, fuzzy
 msgid "The signature will be marked as non-exportable.\n"
 msgstr ""
 "\n"
-"A assinatura será marcada como não-exportável.\n"
+"A assinatura será marcada como não-exportável.\n"
 
 #, fuzzy
 msgid "The signature will be marked as non-revocable.\n"
 msgstr ""
 "\n"
-"A assinatura será marcada como não-revocável.\n"
+"A assinatura será marcada como não-revocável.\n"
 
 #, fuzzy
 msgid "I have not checked this key at all.\n"
 msgstr ""
 "\n"
-"Não verifiquei esta chave.\n"
+"Não verifiquei esta chave.\n"
 
 #, fuzzy
 msgid "I have checked this key casually.\n"
@@ -3264,18 +3277,18 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error creating passphrase: %s\n"
 msgid "key %s: error changing passphrase: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 msgid "save and quit"
 msgstr "gravar e sair"
 
 #, fuzzy
 msgid "show key fingerprint"
-msgstr "mostra impressão digital"
+msgstr "mostra impressão digital"
 
 #, fuzzy
 msgid "show the keygrip"
-msgstr "Notação de assinatura: "
+msgstr "Notação de assinatura: "
 
 msgid "list key and user IDs"
 msgstr "lista chave e identificadores de utilizadores"
@@ -3300,7 +3313,7 @@ msgstr "assina a chave localmente"
 
 #, fuzzy
 msgid "sign selected user IDs with a trust signature"
-msgstr "Sugestão: Selecione os IDs de utilizador para assinar\n"
+msgstr "Sugestão: Selecione os IDs de utilizador para assinar\n"
 
 msgid "sign selected user IDs with a non-revocable signature"
 msgstr ""
@@ -3309,7 +3322,7 @@ msgid "add a user ID"
 msgstr "adiciona um novo ID de utilizador"
 
 msgid "add a photo ID"
-msgstr "adiciona um identificador fotográfico"
+msgstr "adiciona um identificador fotográfico"
 
 #, fuzzy
 msgid "delete selected user IDs"
@@ -3330,49 +3343,49 @@ msgstr ""
 
 #, fuzzy
 msgid "delete selected subkeys"
-msgstr "remove uma chave secundária"
+msgstr "remove uma chave secundária"
 
 msgid "add a revocation key"
-msgstr "adiciona uma chave de revocação"
+msgstr "adiciona uma chave de revocação"
 
 #, fuzzy
 msgid "delete signatures from the selected user IDs"
 msgstr ""
-"Realmente actualizar as preferências para os utilizadores seleccionados?"
+"Realmente actualizar as preferências para os utilizadores seleccionados?"
 
 #, fuzzy
 msgid "change the expiration date for the key or selected subkeys"
-msgstr "Você não pode modificar a data de validade de uma chave v3\n"
+msgstr "Você não pode modificar a data de validade de uma chave v3\n"
 
 #, fuzzy
 msgid "flag the selected user ID as primary"
-msgstr "seleccionar o identificador do utilizador como primário"
+msgstr "seleccionar o identificador do utilizador como primário"
 
 msgid "list preferences (expert)"
-msgstr "lista preferências (perito)"
+msgstr "lista preferências (perito)"
 
 msgid "list preferences (verbose)"
-msgstr "lista preferências (detalhadamente)"
+msgstr "lista preferências (detalhadamente)"
 
 #, fuzzy
 msgid "set preference list for the selected user IDs"
 msgstr ""
-"Realmente actualizar as preferências para os utilizadores seleccionados?"
+"Realmente actualizar as preferências para os utilizadores seleccionados?"
 
 #, fuzzy
 msgid "set the preferred keyserver URL for the selected user IDs"
-msgstr "não consegui processar a URI do servidor de chaves\n"
+msgstr "não consegui processar a URI do servidor de chaves\n"
 
 #, fuzzy
 msgid "set a notation for the selected user IDs"
 msgstr ""
-"Realmente actualizar as preferências para os utilizadores seleccionados?"
+"Realmente actualizar as preferências para os utilizadores seleccionados?"
 
 msgid "change the passphrase"
 msgstr "muda a frase secreta"
 
 msgid "change the ownertrust"
-msgstr "muda os valores de confiança"
+msgstr "muda os valores de confiança"
 
 #, fuzzy
 msgid "revoke signatures on the selected user IDs"
@@ -3384,7 +3397,7 @@ msgstr "revocar um ID de utilizador"
 
 #, fuzzy
 msgid "revoke key or selected subkeys"
-msgstr "revoga uma chave secundária"
+msgstr "revoga uma chave secundária"
 
 #, fuzzy
 msgid "enable key"
@@ -3396,7 +3409,7 @@ msgstr "desactiva uma chave"
 
 #, fuzzy
 msgid "show selected photo IDs"
-msgstr "mostrar identificador fotográfico"
+msgstr "mostrar identificador fotográfico"
 
 msgid "compact unusable user IDs and remove unusable signatures from key"
 msgstr ""
@@ -3405,10 +3418,10 @@ msgid "compact unusable user IDs and remove all signatures from key"
 msgstr ""
 
 msgid "Secret key is available.\n"
-msgstr "Chave secreta disponível.\n"
+msgstr "Chave secreta disponível.\n"
 
 msgid "Need the secret key to do this.\n"
-msgstr "A chave secreta é necessária para fazer isto.\n"
+msgstr "A chave secreta é necessária para fazer isto.\n"
 
 msgid ""
 "* The 'sign' command may be prefixed with an 'l' for local signatures "
@@ -3418,7 +3431,7 @@ msgid ""
 msgstr ""
 
 msgid "Key is revoked."
-msgstr "A chave está revogada."
+msgstr "A chave está revogada."
 
 #, fuzzy
 msgid "Really sign all user IDs? (y/N) "
@@ -3429,7 +3442,7 @@ msgid "Really sign all text user IDs? (y/N) "
 msgstr "Realmente assinar todos os IDs de utilizador? "
 
 msgid "Hint: Select the user IDs to sign\n"
-msgstr "Sugestão: Selecione os IDs de utilizador para assinar\n"
+msgstr "Sugestão: Selecione os IDs de utilizador para assinar\n"
 
 #, fuzzy, c-format
 msgid "Unknown signature type '%s'\n"
@@ -3437,17 +3450,17 @@ msgstr "classe de assinatura desconhecida"
 
 #, c-format
 msgid "This command is not allowed while in %s mode.\n"
-msgstr "Este comando não é permitido no modo %s.\n"
+msgstr "Este comando não é permitido no modo %s.\n"
 
 msgid "You must select at least one user ID.\n"
-msgstr "Você precisa selecionar pelo menos um ID de utilizador.\n"
+msgstr "Você precisa selecionar pelo menos um ID de utilizador.\n"
 
 #, c-format
 msgid "(Use the '%s' command.)\n"
 msgstr ""
 
 msgid "You can't delete the last user ID!\n"
-msgstr "Você não pode remover o último ID de utilizador!\n"
+msgstr "Você não pode remover o último ID de utilizador!\n"
 
 #, fuzzy
 msgid "Really remove all selected user IDs? (y/N) "
@@ -3465,29 +3478,29 @@ msgstr "Realmente remover este ID de utilizador? "
 
 #, fuzzy
 msgid "You must select exactly one key.\n"
-msgstr "Você deve selecionar pelo menos uma chave.\n"
+msgstr "Você deve selecionar pelo menos uma chave.\n"
 
 msgid "Command expects a filename argument\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "Can't open '%s': %s\n"
-msgstr "impossível abrir `%s': %s\n"
+msgstr "impossível abrir `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "Error reading backup key from '%s': %s\n"
 msgstr "erro ao criar porta-chaves `%s': %s\n"
 
 msgid "You must select at least one key.\n"
-msgstr "Você deve selecionar pelo menos uma chave.\n"
+msgstr "Você deve selecionar pelo menos uma chave.\n"
 
 #, fuzzy
 msgid "Do you really want to delete the selected keys? (y/N) "
-msgstr "Você quer realmente remover as chaves selecionadas? "
+msgstr "Você quer realmente remover as chaves selecionadas? "
 
 #, fuzzy
 msgid "Do you really want to delete this key? (y/N) "
-msgstr "Você quer realmente remover esta chave? "
+msgstr "Você quer realmente remover esta chave? "
 
 #, fuzzy
 msgid "Really revoke all selected user IDs? (y/N) "
@@ -3499,35 +3512,35 @@ msgstr "Realmente revocar este ID de utilizador? "
 
 #, fuzzy
 msgid "Do you really want to revoke the entire key? (y/N) "
-msgstr "Você quer realmente revogar esta chave? "
+msgstr "Você quer realmente revogar esta chave? "
 
 #, fuzzy
 msgid "Do you really want to revoke the selected subkeys? (y/N) "
-msgstr "Você quer realmente revogar as chaves selecionadas? "
+msgstr "Você quer realmente revogar as chaves selecionadas? "
 
 #, fuzzy
 msgid "Do you really want to revoke this subkey? (y/N) "
-msgstr "Você quer realmente revogar esta chave? "
+msgstr "Você quer realmente revogar esta chave? "
 
 msgid "Owner trust may not be set while using a user provided trust database\n"
 msgstr ""
 
 #, fuzzy
 msgid "Set preference list to:\n"
-msgstr "configurar lista de preferências"
+msgstr "configurar lista de preferências"
 
 #, fuzzy
 msgid "Really update the preferences for the selected user IDs? (y/N) "
 msgstr ""
-"Realmente actualizar as preferências para os utilizadores seleccionados?"
+"Realmente actualizar as preferências para os utilizadores seleccionados?"
 
 #, fuzzy
 msgid "Really update the preferences? (y/N) "
-msgstr "Realmente actualizar as preferências?"
+msgstr "Realmente actualizar as preferências?"
 
 #, fuzzy
 msgid "Save changes? (y/N) "
-msgstr "Gravar alterações? "
+msgstr "Gravar alterações? "
 
 #, fuzzy
 msgid "Quit without saving? (y/N) "
@@ -3535,28 +3548,28 @@ msgstr "Sair sem gravar? "
 
 #, c-format
 msgid "update failed: %s\n"
-msgstr "actualização falhou: %s\n"
+msgstr "actualização falhou: %s\n"
 
 msgid "Key not changed so no update needed.\n"
-msgstr "Chave não alterada, nenhuma actualização é necessária.\n"
+msgstr "Chave não alterada, nenhuma actualização é necessária.\n"
 
 #, fuzzy, c-format
 #| msgid "Key generation failed: %s\n"
 msgid "User ID revocation failed: %s\n"
-msgstr "A geração de chaves falhou: %s\n"
+msgstr "A geração de chaves falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" is not a fingerprint\n"
-msgstr "%s: versão de ficheiro inválida %d\n"
+msgstr "%s: versão de ficheiro inválida %d\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" is not the primary fingerprint\n"
-msgstr "falha ao inicializar a base de dados de confiança: %s\n"
+msgstr "falha ao inicializar a base de dados de confiança: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid value\n"
 msgid "Invalid user ID '%s': %s\n"
-msgstr "valor inválido\n"
+msgstr "valor inválido\n"
 
 #, fuzzy
 #| msgid "No such user ID.\n"
@@ -3571,7 +3584,7 @@ msgid "Digest: "
 msgstr "'Digest': "
 
 msgid "Features: "
-msgstr "Características: "
+msgstr "Características: "
 
 msgid "Keyserver no-modify"
 msgstr ""
@@ -3581,10 +3594,10 @@ msgstr ""
 
 #, fuzzy
 msgid "Notations: "
-msgstr "Notação: "
+msgstr "Notação: "
 
 msgid "There are no preferences on a PGP 2.x-style user ID.\n"
-msgstr "Não há preferências no ID de utilizador tipo PGP 2.x.\n"
+msgstr "Não há preferências no ID de utilizador tipo PGP 2.x.\n"
 
 #, fuzzy, c-format
 msgid "The following key was revoked on %s by %s key %s\n"
@@ -3596,11 +3609,11 @@ msgstr "Esta chave pode ser revogada pela chave %s "
 
 #, fuzzy
 msgid "(sensitive)"
-msgstr " (sensível)"
+msgstr " (sensível)"
 
 #, fuzzy, c-format
 msgid "created: %s"
-msgstr "impossível criar %s: %s\n"
+msgstr "impossível criar %s: %s\n"
 
 #, fuzzy, c-format
 msgid "revoked: %s"
@@ -3616,14 +3629,14 @@ msgstr "[expira: %s]"
 
 #, fuzzy, c-format
 msgid "usage: %s"
-msgstr " confiança: %c/%c"
+msgstr " confiança: %c/%c"
 
 msgid "card-no: "
 msgstr ""
 
 #, fuzzy, c-format
 msgid "trust: %s"
-msgstr " confiança: %c/%c"
+msgstr " confiança: %c/%c"
 
 #, c-format
 msgid "validity: %s"
@@ -3636,8 +3649,8 @@ msgid ""
 "Please note that the shown key validity is not necessarily correct\n"
 "unless you restart the program.\n"
 msgstr ""
-"Não se esqueça que a validade de chave mostrada não é necessáriamente a\n"
-"correcta a não ser que reinicie o programa.\n"
+"Não se esqueça que a validade de chave mostrada não é necessáriamente a\n"
+"correcta a não ser que reinicie o programa.\n"
 
 #, fuzzy
 msgid "revoked"
@@ -3658,31 +3671,31 @@ msgstr ""
 #, fuzzy
 #| msgid "You can't change the expiration date of a v3 key\n"
 msgid "You may want to change its expiration date too.\n"
-msgstr "Você não pode modificar a data de validade de uma chave v3\n"
+msgstr "Você não pode modificar a data de validade de uma chave v3\n"
 
 msgid ""
 "WARNING: This is a PGP2-style key.  Adding a photo ID may cause some "
 "versions\n"
 "         of PGP to reject this key.\n"
 msgstr ""
-"AVISO: Esta chave é do tipo PGP2. Se adicionar um identificador fotográfico\n"
-"       algumas versão do PGP podem rejeitá-la.\n"
+"AVISO: Esta chave é do tipo PGP2. Se adicionar um identificador fotográfico\n"
+"       algumas versão do PGP podem rejeitá-la.\n"
 
 msgid "Are you sure you still want to add it? (y/N) "
-msgstr "Tem a certeza de que quer adicioná-la de qualquer forma? (s/N) "
+msgstr "Tem a certeza de que quer adicioná-la de qualquer forma? (s/N) "
 
 msgid "You may not add a photo ID to a PGP2-style key.\n"
 msgstr ""
-"Não pode adicionar um identificador fotográfico a uma chave tipo PGP2.\n"
+"Não pode adicionar um identificador fotográfico a uma chave tipo PGP2.\n"
 
 msgid "Such a user ID already exists on this key!\n"
 msgstr ""
 
 msgid "Delete this good signature? (y/N/q)"
-msgstr "Apagar esta assinatura válida? (s/N/q)"
+msgstr "Apagar esta assinatura válida? (s/N/q)"
 
 msgid "Delete this invalid signature? (y/N/q)"
-msgstr "Apagar esta assinatura inválida? (s/N/q)"
+msgstr "Apagar esta assinatura inválida? (s/N/q)"
 
 msgid "Delete this unknown signature? (y/N/q)"
 msgstr "Apagar esta assinatura desconhecida? (s/N/q)"
@@ -3702,45 +3715,45 @@ msgstr "Nada removido.\n"
 
 #, fuzzy
 msgid "invalid"
-msgstr "armadura inválida"
+msgstr "armadura inválida"
 
 #, fuzzy, c-format
 msgid "User ID \"%s\" compacted: %s\n"
-msgstr "Utilizador \"%s\" está revocado."
+msgstr "Utilizador \"%s\" está revocado."
 
 #, fuzzy, c-format
 msgid "User ID \"%s\": %d signature removed\n"
 msgid_plural "User ID \"%s\": %d signatures removed\n"
-msgstr[0] "Utilizador \"%s\" está revocado."
-msgstr[1] "Utilizador \"%s\" está revocado."
+msgstr[0] "Utilizador \"%s\" está revocado."
+msgstr[1] "Utilizador \"%s\" está revocado."
 
 #, fuzzy, c-format
 msgid "User ID \"%s\": already minimized\n"
-msgstr "o utilizador com o id \"%s\" já está revocado\n"
+msgstr "o utilizador com o id \"%s\" já está revocado\n"
 
 #, fuzzy, c-format
 msgid "User ID \"%s\": already clean\n"
-msgstr "o utilizador com o id \"%s\" já está revocado\n"
+msgstr "o utilizador com o id \"%s\" já está revocado\n"
 
 msgid ""
 "WARNING: This is a PGP 2.x-style key.  Adding a designated revoker may "
 "cause\n"
 "         some versions of PGP to reject this key.\n"
 msgstr ""
-"AVISO: Esta chave é do tipo PGP 2.x. Se adicionar um revogador designado\n"
-"       algumas versão do PGP podem rejeitá-la.\n"
+"AVISO: Esta chave é do tipo PGP 2.x. Se adicionar um revogador designado\n"
+"       algumas versão do PGP podem rejeitá-la.\n"
 
 msgid "You may not add a designated revoker to a PGP 2.x-style key.\n"
-msgstr "Não pode adicionar um revogador designado a uma chave tipo PGP 2.x.\n"
+msgstr "Não pode adicionar um revogador designado a uma chave tipo PGP 2.x.\n"
 
 msgid "Enter the user ID of the designated revoker: "
 msgstr "Insira o ID de utilizador do revogador escolhido: "
 
 msgid "cannot appoint a PGP 2.x style key as a designated revoker\n"
-msgstr "não pode escolher uma chave do tipo PGP 2.x como revogadora\n"
+msgstr "não pode escolher uma chave do tipo PGP 2.x como revogadora\n"
 
 msgid "you cannot appoint a key as its own designated revoker\n"
-msgstr "não pode escolher uma chave como revogadora de si mesmo\n"
+msgstr "não pode escolher uma chave como revogadora de si mesmo\n"
 
 #, fuzzy
 msgid "this key has already been designated as a revoker\n"
@@ -3748,32 +3761,32 @@ msgstr "AVISO: Esta chave foi revogada pelo seu dono!\n"
 
 #, fuzzy
 msgid "WARNING: appointing a key as a designated revoker cannot be undone!\n"
-msgstr "não pode escolher uma chave como revogadora de si mesmo\n"
+msgstr "não pode escolher uma chave como revogadora de si mesmo\n"
 
 #, fuzzy
 msgid ""
 "Are you sure you want to appoint this key as a designated revoker? (y/N) "
-msgstr "não pode escolher uma chave como revogadora de si mesmo\n"
+msgstr "não pode escolher uma chave como revogadora de si mesmo\n"
 
 #, fuzzy
 msgid ""
 "Are you sure you want to change the expiration time for multiple subkeys? (y/"
 "N) "
-msgstr "não pode escolher uma chave como revogadora de si mesmo\n"
+msgstr "não pode escolher uma chave como revogadora de si mesmo\n"
 
 #, fuzzy
 msgid "Changing expiration time for a subkey.\n"
-msgstr "A modificar a data de validade para uma chave secundária.\n"
+msgstr "A modificar a data de validade para uma chave secundária.\n"
 
 msgid "Changing expiration time for the primary key.\n"
-msgstr "Modificar a data de validade para uma chave primária.\n"
+msgstr "Modificar a data de validade para uma chave primária.\n"
 
 msgid "You can't change the expiration date of a v3 key\n"
-msgstr "Você não pode modificar a data de validade de uma chave v3\n"
+msgstr "Você não pode modificar a data de validade de uma chave v3\n"
 
 #, fuzzy, c-format
 msgid "signing subkey %s is already cross-certified\n"
-msgstr "não pode escolher uma chave como revogadora de si mesmo\n"
+msgstr "não pode escolher uma chave como revogadora de si mesmo\n"
 
 #, c-format
 msgid "subkey %s does not sign and so does not need to be cross-certified\n"
@@ -3791,15 +3804,15 @@ msgstr ""
 
 #, fuzzy
 msgid "Are you sure you want to replace it? (y/N) "
-msgstr "Você tem certeza de que quer adicioná-la de qualquer forma? (s/N) "
+msgstr "Você tem certeza de que quer adicioná-la de qualquer forma? (s/N) "
 
 #, fuzzy
 msgid "Are you sure you want to delete it? (y/N) "
-msgstr "Você tem certeza de que quer adicioná-la de qualquer forma? (s/N) "
+msgstr "Você tem certeza de que quer adicioná-la de qualquer forma? (s/N) "
 
 #, fuzzy
 msgid "Enter the notation: "
-msgstr "Notação de assinatura: "
+msgstr "Notação de assinatura: "
 
 #, fuzzy
 msgid "Proceed? (y/N) "
@@ -3807,19 +3820,19 @@ msgstr "Escrever por cima (s/N)? "
 
 #, c-format
 msgid "No user ID with index %d\n"
-msgstr "Nenhum ID de utilizador com índice %d\n"
+msgstr "Nenhum ID de utilizador com índice %d\n"
 
 #, fuzzy, c-format
 msgid "No user ID with hash %s\n"
-msgstr "Nenhum ID de utilizador com índice %d\n"
+msgstr "Nenhum ID de utilizador com índice %d\n"
 
 #, fuzzy, c-format
 msgid "No subkey with key ID '%s'.\n"
-msgstr "Nenhum ID de utilizador com índice %d\n"
+msgstr "Nenhum ID de utilizador com índice %d\n"
 
 #, fuzzy, c-format
 msgid "No subkey with index %d\n"
-msgstr "Nenhum ID de utilizador com índice %d\n"
+msgstr "Nenhum ID de utilizador com índice %d\n"
 
 #, fuzzy, c-format
 msgid "user ID: \"%s\"\n"
@@ -3830,17 +3843,17 @@ msgid "signed by your key %s on %s%s%s\n"
 msgstr "   assinado por %08lX em %s%s%s\n"
 
 msgid " (non-exportable)"
-msgstr "  (não-exportável)"
+msgstr "  (não-exportável)"
 
 #, c-format
 msgid "This signature expired on %s.\n"
 msgstr "Esta assinatura expirou em %s.\n"
 
 msgid "Are you sure you still want to revoke it? (y/N) "
-msgstr "Tem a certeza de que quer revogá-la de qualquer forma? (s/N) "
+msgstr "Tem a certeza de que quer revogá-la de qualquer forma? (s/N) "
 
 msgid "Create a revocation certificate for this signature? (y/N) "
-msgstr "Gerar um certificado de revogação para esta assinatura? (s/N)"
+msgstr "Gerar um certificado de revogação para esta assinatura? (s/N)"
 
 #, fuzzy
 msgid "Not signed by you.\n"
@@ -3852,17 +3865,17 @@ msgstr "Assinou estes identificadores de utilizadores:\n"
 
 #, fuzzy
 msgid " (non-revocable)"
-msgstr "  (não-exportável)"
+msgstr "  (não-exportável)"
 
 #, fuzzy, c-format
 msgid "revoked by your key %s on %s\n"
 msgstr "   revogado por %08lX em %s\n"
 
 msgid "You are about to revoke these signatures:\n"
-msgstr "Está prestes a revogar estas assinaturas:\n"
+msgstr "Está prestes a revogar estas assinaturas:\n"
 
 msgid "Really create the revocation certificates? (y/N) "
-msgstr "Realmente criar os certificados de revogação? (s/N) "
+msgstr "Realmente criar os certificados de revogação? (s/N) "
 
 msgid "no secret key\n"
 msgstr "nenhuma chave secreta\n"
@@ -3873,7 +3886,7 @@ msgstr ""
 
 #, c-format
 msgid "user ID \"%s\" is already revoked\n"
-msgstr "o utilizador com o id \"%s\" já está revocado\n"
+msgstr "o utilizador com o id \"%s\" já está revocado\n"
 
 #, c-format
 msgid "WARNING: a user ID signature is dated %d seconds in the future\n"
@@ -3882,11 +3895,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "Key %s is already revoked.\n"
-msgstr "o utilizador com o id \"%s\" já está revocado\n"
+msgstr "o utilizador com o id \"%s\" já está revocado\n"
 
 #, fuzzy, c-format
 msgid "Subkey %s is already revoked.\n"
-msgstr "o utilizador com o id \"%s\" já está revocado\n"
+msgstr "o utilizador com o id \"%s\" já está revocado\n"
 
 #, fuzzy, c-format
 msgid "Displaying %s photo ID of size %ld for key %s (uid %d)\n"
@@ -3895,23 +3908,23 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "preference '%s' duplicated\n"
-msgstr "preferência %c%lu duplicada\n"
+msgstr "preferência %c%lu duplicada\n"
 
 #, fuzzy
 msgid "too many cipher preferences\n"
-msgstr "demasiadas preferências `%c'\n"
+msgstr "demasiadas preferências `%c'\n"
 
 #, fuzzy
 msgid "too many digest preferences\n"
-msgstr "demasiadas preferências `%c'\n"
+msgstr "demasiadas preferências `%c'\n"
 
 #, fuzzy
 msgid "too many compression preferences\n"
-msgstr "demasiadas preferências `%c'\n"
+msgstr "demasiadas preferências `%c'\n"
 
 #, fuzzy, c-format
 msgid "invalid item '%s' in preference string\n"
-msgstr "caracter inválido na cadeia de caractéres da preferência\n"
+msgstr "caracter inválido na cadeia de caractéres da preferência\n"
 
 msgid "writing direct signature\n"
 msgstr "a escrever a assinatura directa\n"
@@ -3924,7 +3937,7 @@ msgstr "a escrever a assinatura ligada a uma chave\n"
 
 #, c-format
 msgid "keysize invalid; using %u bits\n"
-msgstr "tamanho de chave inválido; a utilizar %u bits\n"
+msgstr "tamanho de chave inválido; a utilizar %u bits\n"
 
 #, c-format
 msgid "keysize rounded up to %u bits\n"
@@ -3989,11 +4002,11 @@ msgstr "Por favor selecione o tipo de chave desejado:\n"
 
 #, fuzzy, c-format
 msgid "   (%d) RSA and RSA (default)\n"
-msgstr "   (%d) DSA e ElGamal (por omissão)\n"
+msgstr "   (%d) DSA e ElGamal (por omissão)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) DSA and Elgamal\n"
-msgstr "   (%d) DSA e ElGamal (por omissão)\n"
+msgstr "   (%d) DSA e ElGamal (por omissão)\n"
 
 #, c-format
 msgid "   (%d) DSA (sign only)\n"
@@ -4021,7 +4034,7 @@ msgstr "   (%d) RSA (apenas cifragem)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) ECC and ECC\n"
-msgstr "   (%d) DSA e ElGamal (por omissão)\n"
+msgstr "   (%d) DSA e ElGamal (por omissão)\n"
 
 #, fuzzy, c-format
 #| msgid "   (%d) DSA (sign only)\n"
@@ -4043,14 +4056,14 @@ msgstr "   (%d) RSA (apenas cifragem)\n"
 
 #, fuzzy
 msgid "Enter the keygrip: "
-msgstr "Notação de assinatura: "
+msgstr "Notação de assinatura: "
 
 msgid "Not a valid keygrip (expecting 40 hex digits)\n"
 msgstr ""
 
 #, fuzzy
 msgid "No key with this keygrip\n"
-msgstr "Nenhum ID de utilizador com índice %d\n"
+msgstr "Nenhum ID de utilizador com índice %d\n"
 
 #, fuzzy, c-format
 #| msgid "rounded up to %u bits\n"
@@ -4071,7 +4084,7 @@ msgstr "Qual o tamanho de chave desejado? (1024) "
 
 #, c-format
 msgid "Requested keysize is %u bits\n"
-msgstr "O tamanho de chave pedido é %u bits\n"
+msgstr "O tamanho de chave pedido é %u bits\n"
 
 #, fuzzy
 #| msgid "Please select what kind of key you want:\n"
@@ -4086,8 +4099,8 @@ msgid ""
 "      <n>m = key expires in n months\n"
 "      <n>y = key expires in n years\n"
 msgstr ""
-"Por favor especifique por quanto tempo a chave deve ser válida.\n"
-"         0 = chave não expira\n"
+"Por favor especifique por quanto tempo a chave deve ser válida.\n"
+"         0 = chave não expira\n"
 "      <n>  = chave expira em n dias\n"
 "      <n>w = chave expira em n semanas\n"
 "      <n>m = chave expira em n meses\n"
@@ -4101,30 +4114,30 @@ msgid ""
 "      <n>m = signature expires in n months\n"
 "      <n>y = signature expires in n years\n"
 msgstr ""
-"Por favor especifique por quanto tempo a assinatura deve ser válida.\n"
-"         0 = assinatura não expira\n"
+"Por favor especifique por quanto tempo a assinatura deve ser válida.\n"
+"         0 = assinatura não expira\n"
 "      <n>  = assinatura expira em n dias\n"
 "      <n>w = assinatura expira em n semanas\n"
 "      <n>m = assinatura expira em n meses\n"
 "      <n>y = assinatura expira em n anos\n"
 
 msgid "Key is valid for? (0) "
-msgstr "A chave é valida por? (0) "
+msgstr "A chave é valida por? (0) "
 
 #, fuzzy, c-format
 msgid "Signature is valid for? (%s) "
-msgstr "A assinatura é valida por? (0) "
+msgstr "A assinatura é valida por? (0) "
 
 msgid "invalid value\n"
-msgstr "valor inválido\n"
+msgstr "valor inválido\n"
 
 #, fuzzy
 msgid "Key does not expire at all\n"
-msgstr "A %s não expira nunca\n"
+msgstr "A %s não expira nunca\n"
 
 #, fuzzy
 msgid "Signature does not expire at all\n"
-msgstr "A %s não expira nunca\n"
+msgstr "A %s não expira nunca\n"
 
 #, fuzzy, c-format
 msgid "Key expires at %s\n"
@@ -4138,12 +4151,12 @@ msgid ""
 "Your system can't display dates beyond 2038.\n"
 "However, it will be correctly handled up to 2106.\n"
 msgstr ""
-"O seu sistema não consegue mostrar datas para além de 2038.\n"
-"No entanto, estas vão ser tratadas correctamente até 2106.\n"
+"O seu sistema não consegue mostrar datas para além de 2038.\n"
+"No entanto, estas vão ser tratadas correctamente até 2106.\n"
 
 #, fuzzy
 msgid "Is this correct? (y/N) "
-msgstr "Está correto (s/n)? "
+msgstr "Está correto (s/n)? "
 
 msgid ""
 "\n"
@@ -4165,10 +4178,10 @@ msgid ""
 "\n"
 msgstr ""
 "\n"
-"Você precisa de um identificador de utilizador para identificar sua chave; "
+"Você precisa de um identificador de utilizador para identificar sua chave; "
 "o\n"
-"programa constrói o identificador a partir do Nome Completo, Comentário e\n"
-"Endereço Eletrónico desta forma:\n"
+"programa constrói o identificador a partir do Nome Completo, Comentário e\n"
+"Endereço Eletrónico desta forma:\n"
 "    \"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>\"\n"
 "\n"
 
@@ -4176,34 +4189,34 @@ msgid "Real name: "
 msgstr "Nome completo: "
 
 msgid "Invalid character in name\n"
-msgstr "Caracter inválido no nome\n"
+msgstr "Caracter inválido no nome\n"
 
 #, c-format
 msgid "The characters '%s' and '%s' may not appear in name\n"
 msgstr ""
 
 msgid "Name may not start with a digit\n"
-msgstr "O nome não pode começar com um dígito\n"
+msgstr "O nome não pode começar com um dígito\n"
 
 msgid "Name must be at least 5 characters long\n"
 msgstr "O nome deve ter pelo menos 5 caracteres\n"
 
 msgid "Email address: "
-msgstr "Endereço de correio eletrónico: "
+msgstr "Endereço de correio eletrónico: "
 
 msgid "Not a valid email address\n"
-msgstr "Endereço eletrónico inválido\n"
+msgstr "Endereço eletrónico inválido\n"
 
 msgid "Comment: "
-msgstr "Comentário: "
+msgstr "Comentário: "
 
 msgid "Invalid character in comment\n"
-msgstr "Caracter inválido no comentário\n"
+msgstr "Caracter inválido no comentário\n"
 
 #, fuzzy, c-format
 #| msgid "You are using the `%s' character set.\n"
 msgid "You are using the '%s' character set.\n"
-msgstr "Você está usando o conjunto de caracteres `%s'.\n"
+msgstr "Você está usando o conjunto de caracteres `%s'.\n"
 
 #, c-format
 msgid ""
@@ -4211,14 +4224,14 @@ msgid ""
 "    \"%s\"\n"
 "\n"
 msgstr ""
-"Você selecionou este identificador de utilizador:\n"
+"Você selecionou este identificador de utilizador:\n"
 "    \"%s\"\n"
 "\n"
 
 msgid "Please don't put the email address into the real name or the comment\n"
 msgstr ""
-"Por favor não coloque o endereço de email no nome verdadeiro ou no "
-"comentário\n"
+"Por favor não coloque o endereço de email no nome verdadeiro ou no "
+"comentário\n"
 
 #. TRANSLATORS: These are the allowed answers in
 #. lower and uppercase.  Below you will find the matching
@@ -4235,20 +4248,20 @@ msgid "NnCcEeOoQq"
 msgstr "NnCcEeOoSs"
 
 msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
-msgstr "Mudar (N)ome, (C)omentário, (E)mail ou (S)air? "
+msgstr "Mudar (N)ome, (C)omentário, (E)mail ou (S)air? "
 
 msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
-msgstr "Mudar (N)ome, (C)omentário, (E)ndereço ou (O)k/(S)air? "
+msgstr "Mudar (N)ome, (C)omentário, (E)ndereço ou (O)k/(S)air? "
 
 #, fuzzy
 #| msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
 msgid "Change (N)ame, (E)mail, or (Q)uit? "
-msgstr "Mudar (N)ome, (C)omentário, (E)mail ou (S)air? "
+msgstr "Mudar (N)ome, (C)omentário, (E)mail ou (S)air? "
 
 #, fuzzy
 #| msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
 msgid "Change (N)ame, (E)mail, or (O)kay/(Q)uit? "
-msgstr "Mudar (N)ome, (C)omentário, (E)ndereço ou (O)k/(S)air? "
+msgstr "Mudar (N)ome, (C)omentário, (E)ndereço ou (O)k/(S)air? "
 
 msgid "Please correct the error first\n"
 msgstr "Por favor corrija primeiro o erro\n"
@@ -4259,14 +4272,14 @@ msgid ""
 "disks) during the prime generation; this gives the random number\n"
 "generator a better chance to gain enough entropy.\n"
 msgstr ""
-"Precisamos gerar muitos bytes aleatórios. É uma boa ideia realizar outra\n"
+"Precisamos gerar muitos bytes aleatórios. É uma boa ideia realizar outra\n"
 "actividade (escrever no teclado, mover o rato, usar os discos) durante a\n"
-"geração dos números primos; isso dá ao gerador de números aleatórios\n"
-"uma hipótese maior de ganhar entropia suficiente.\n"
+"geração dos números primos; isso dá ao gerador de números aleatórios\n"
+"uma hipótese maior de ganhar entropia suficiente.\n"
 
 #, c-format
 msgid "Key generation failed: %s\n"
-msgstr "A geração de chaves falhou: %s\n"
+msgstr "A geração de chaves falhou: %s\n"
 
 #, c-format
 msgid ""
@@ -4280,7 +4293,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "A key for \"%s\" already exists\n"
-msgstr "%s' já comprimido\n"
+msgstr "%s' já comprimido\n"
 
 #, fuzzy
 #| msgid "Create anyway? "
@@ -4297,11 +4310,11 @@ msgid "Note: Use \"%s %s\" for a full featured key generation dialog.\n"
 msgstr ""
 
 msgid "Key generation canceled.\n"
-msgstr "Geração de chave cancelada.\n"
+msgstr "Geração de chave cancelada.\n"
 
 #, fuzzy, c-format
 msgid "can't create backup file '%s': %s\n"
-msgstr "impossível criar `%s': %s\n"
+msgstr "impossível criar `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "Note: backup of card key saved to '%s'\n"
@@ -4310,53 +4323,53 @@ msgstr "NOTA: chave secreta %08lX expirou em %s\n"
 #, fuzzy, c-format
 #| msgid "writing public key to `%s'\n"
 msgid "writing public key to '%s'\n"
-msgstr "a escrever chave pública para `%s'\n"
+msgstr "a escrever chave pública para `%s'\n"
 
 #, c-format
 msgid "no writable public keyring found: %s\n"
-msgstr "nenhum porta-chaves público com permissões de escrita encontrado: %s\n"
+msgstr "nenhum porta-chaves público com permissões de escrita encontrado: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing public keyring `%s': %s\n"
 msgid "error writing public keyring '%s': %s\n"
-msgstr "erro ao escrever no porta-chaves público `%s': %s\n"
+msgstr "erro ao escrever no porta-chaves público `%s': %s\n"
 
 msgid "public and secret key created and signed.\n"
-msgstr "chaves pública e privada criadas e assinadas.\n"
+msgstr "chaves pública e privada criadas e assinadas.\n"
 
 #, fuzzy
 msgid ""
 "Note that this key cannot be used for encryption.  You may want to use\n"
 "the command \"--edit-key\" to generate a subkey for this purpose.\n"
 msgstr ""
-"Note que esta chave não pode ser usada para cifragem. Você pode usar\n"
-"o comando \"--edit-key\" para gerar uma chave secundária para esse fim.\n"
+"Note que esta chave não pode ser usada para cifragem. Você pode usar\n"
+"o comando \"--edit-key\" para gerar uma chave secundária para esse fim.\n"
 
 #, c-format
 msgid ""
 "key has been created %lu second in future (time warp or clock problem)\n"
 msgstr ""
 "a chave foi criada %lu segundo no futuro\n"
-"(viagem no tempo ou problema no relógio)\n"
+"(viagem no tempo ou problema no relógio)\n"
 
 #, c-format
 msgid ""
 "key has been created %lu seconds in future (time warp or clock problem)\n"
 msgstr ""
 "a chave foi criada %lu segundos no futuro\n"
-"(viagem no tempo ou problema no relógio)\n"
+"(viagem no tempo ou problema no relógio)\n"
 
 #, fuzzy
 #| msgid "NOTE: creating subkeys for v3 keys is not OpenPGP compliant\n"
 msgid "Note: creating subkeys for v3 keys is not OpenPGP compliant\n"
-msgstr "NOTA: a criação de sub-chave para chaves v3 não respeito o OpenPGP\n"
+msgstr "NOTA: a criação de sub-chave para chaves v3 não respeito o OpenPGP\n"
 
 msgid "Secret parts of primary key are not available.\n"
-msgstr "Componentes secretas da chave primária não disponíveis.\n"
+msgstr "Componentes secretas da chave primária não disponíveis.\n"
 
 #, fuzzy
 msgid "Secret parts of primary key are stored on-card.\n"
-msgstr "Componentes secretas da chave primária não disponíveis.\n"
+msgstr "Componentes secretas da chave primária não disponíveis.\n"
 
 #, fuzzy
 msgid "Really create? (y/N) "
@@ -4366,7 +4379,7 @@ msgid "never     "
 msgstr ""
 
 msgid "Critical signature policy: "
-msgstr "Politica de assinatura crítica: "
+msgstr "Politica de assinatura crítica: "
 
 msgid "Signature policy: "
 msgstr "Politica de assinatura: "
@@ -4375,10 +4388,10 @@ msgid "Critical preferred keyserver: "
 msgstr ""
 
 msgid "Critical signature notation: "
-msgstr "Notação de assinatura crítica: "
+msgstr "Notação de assinatura crítica: "
 
 msgid "Signature notation: "
-msgstr "Notação de assinatura: "
+msgstr "Notação de assinatura: "
 
 #, fuzzy, c-format
 #| msgid "%d bad signatures\n"
@@ -4391,8 +4404,8 @@ msgstr[1] "%d assinaturas incorrectas\n"
 #| msgid "1 signature not checked due to an error\n"
 msgid "%d signature not checked due to an error\n"
 msgid_plural "%d signatures not checked due to errors\n"
-msgstr[0] "1 assinatura não verificada devido a um erro\n"
-msgstr[1] "1 assinatura não verificada devido a um erro\n"
+msgstr[0] "1 assinatura não verificada devido a um erro\n"
+msgstr[1] "1 assinatura não verificada devido a um erro\n"
 
 #, c-format
 msgid "Warning: %lu key skipped due to its large size\n"
@@ -4404,22 +4417,22 @@ msgid "Keyring"
 msgstr "Porta-chaves"
 
 msgid "Primary key fingerprint:"
-msgstr "Impressão da chave primária:"
+msgstr "Impressão da chave primária:"
 
 msgid "     Subkey fingerprint:"
-msgstr "      Impressão da subchave:"
+msgstr "      Impressão da subchave:"
 
 #. TRANSLATORS: this should fit into 24 bytes so that the
 #. * fingerprint data is properly aligned with the user ID
 msgid " Primary key fingerprint:"
-msgstr "Impressão da chave primária:"
+msgstr "Impressão da chave primária:"
 
 msgid "      Subkey fingerprint:"
-msgstr "      Impressão da subchave:"
+msgstr "      Impressão da subchave:"
 
 #, fuzzy
 msgid "      Key fingerprint ="
-msgstr "  Impressão da chave ="
+msgstr "  Impressão da chave ="
 
 msgid "      Card serial no. ="
 msgstr ""
@@ -4468,7 +4481,7 @@ msgstr ""
 
 #, fuzzy
 msgid "honor the preferred keyserver URL set on the key"
-msgstr "a URL de política de assinatura dada é inválida\n"
+msgstr "a URL de política de assinatura dada é inválida\n"
 
 msgid "honor the PKA record set on a key when retrieving keys"
 msgstr ""
@@ -4482,7 +4495,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid keyserver protocol (us %d!=handler %d)\n"
-msgstr "opções de exportação inválidas\n"
+msgstr "opções de exportação inválidas\n"
 
 #, c-format
 msgid "\"%s\" not a key ID: skipping\n"
@@ -4500,11 +4513,11 @@ msgstr "AVISO: dono pouco seguro em %s \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "key \"%s\" not found on keyserver\n"
-msgstr "chave `%s' não encontrada: %s\n"
+msgstr "chave `%s' não encontrada: %s\n"
 
 #, fuzzy
 msgid "key not found on keyserver\n"
-msgstr "chave `%s' não encontrada: %s\n"
+msgstr "chave `%s' não encontrada: %s\n"
 
 msgid "no keyserver known (use option --keyserver)\n"
 msgstr ""
@@ -4519,7 +4532,7 @@ msgstr "a pedir a chave %08lX de %s\n"
 
 #, fuzzy
 msgid "no keyserver known\n"
-msgstr "opções de exportação inválidas\n"
+msgstr "opções de exportação inválidas\n"
 
 #, fuzzy, c-format
 msgid "skipped \"%s\": %s\n"
@@ -4541,11 +4554,11 @@ msgstr "AVISO: dono pouco seguro em %s \"%s\"\n"
 
 #, c-format
 msgid "weird size for an encrypted session key (%d)\n"
-msgstr "tamanho estranho para uma chave de sessão cifrada (%d)\n"
+msgstr "tamanho estranho para uma chave de sessão cifrada (%d)\n"
 
 #, fuzzy, c-format
 msgid "%s encrypted session key\n"
-msgstr "tamanho estranho para uma chave de sessão cifrada (%d)\n"
+msgstr "tamanho estranho para uma chave de sessão cifrada (%d)\n"
 
 #, fuzzy, c-format
 msgid "passphrase generated with unknown digest algorithm %d\n"
@@ -4553,10 +4566,10 @@ msgstr "cifrado com algoritmo desconhecido %d\n"
 
 #, fuzzy, c-format
 msgid "public key is %s\n"
-msgstr "a chave pública é %08lX\n"
+msgstr "a chave pública é %08lX\n"
 
 msgid "public key encrypted data: good DEK\n"
-msgstr "dados cifrados com chave pública: DEK válido\n"
+msgstr "dados cifrados com chave pública: DEK válido\n"
 
 #, fuzzy, c-format
 msgid "encrypted with %u-bit %s key, ID %s, created %s\n"
@@ -4572,7 +4585,7 @@ msgstr "cifrado com chave %s, ID %08lX\n"
 
 #, c-format
 msgid "public key decryption failed: %s\n"
-msgstr "decifragem de chave pública falhou: %s\n"
+msgstr "decifragem de chave pública falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "encrypted with %lu passphrases\n"
@@ -4588,10 +4601,10 @@ msgstr "a assumir dados cifrados %s\n"
 
 #, c-format
 msgid "IDEA cipher unavailable, optimistically attempting to use %s instead\n"
-msgstr "Cifra IDEO não disponível, a tentar utilizar %s em substituição\n"
+msgstr "Cifra IDEO não disponível, a tentar utilizar %s em substituição\n"
 
 msgid "WARNING: message was not integrity protected\n"
-msgstr "AVISO: a mensagem não tinha a sua integridade protegida\n"
+msgstr "AVISO: a mensagem não tinha a sua integridade protegida\n"
 
 msgid "decryption okay\n"
 msgstr "decifragem correcta\n"
@@ -4616,7 +4629,7 @@ msgid "WARNING: multiple plaintexts seen\n"
 msgstr ""
 
 msgid "standalone revocation - use \"gpg --import\" to apply\n"
-msgstr "revocação solitária - utilize \"gpg --import\" para aplicar\n"
+msgstr "revocação solitária - utilize \"gpg --import\" para aplicar\n"
 
 #, fuzzy
 msgid "no signature found\n"
@@ -4635,11 +4648,11 @@ msgid "Good signature from \"%s\""
 msgstr "Assinatura correcta de \""
 
 msgid "signature verification suppressed\n"
-msgstr "verificação de assinatura suprimida\n"
+msgstr "verificação de assinatura suprimida\n"
 
 #, fuzzy
 msgid "can't handle this ambiguous signature data\n"
-msgstr "não consigo tratar estas assinaturas múltiplas\n"
+msgstr "não consigo tratar estas assinaturas múltiplas\n"
 
 #, fuzzy, c-format
 msgid "Signature made %s\n"
@@ -4659,7 +4672,7 @@ msgstr "                   ou \""
 
 #, fuzzy
 msgid "Key available at: "
-msgstr "Nenhuma ajuda disponível"
+msgstr "Nenhuma ajuda disponível"
 
 msgid "[uncertain]"
 msgstr "[incerto]"
@@ -4689,12 +4702,12 @@ msgstr ""
 
 #, fuzzy
 msgid "unknown"
-msgstr "versão desconhecida"
+msgstr "versão desconhecida"
 
 #, fuzzy
 #| msgid "unknown pubkey algorithm"
 msgid ", key algorithm "
-msgstr "algoritmo de chave pública desconhecido"
+msgstr "algoritmo de chave pública desconhecido"
 
 #, c-format
 msgid "WARNING: not a detached signature; file '%s' was NOT verified!\n"
@@ -4702,15 +4715,15 @@ msgstr ""
 
 #, c-format
 msgid "Can't check signature: %s\n"
-msgstr "Impossível verificar assinatura: %s\n"
+msgstr "Impossível verificar assinatura: %s\n"
 
 msgid "not a detached signature\n"
-msgstr "não é uma assinatura separada\n"
+msgstr "não é uma assinatura separada\n"
 
 msgid ""
 "WARNING: multiple signatures detected.  Only the first will be checked.\n"
 msgstr ""
-"AVISO: várias assinaturas detectadas.  Apenas a primeira será verificada.\n"
+"AVISO: várias assinaturas detectadas.  Apenas a primeira será verificada.\n"
 
 #, c-format
 msgid "standalone signature of class 0x%02x\n"
@@ -4721,25 +4734,25 @@ msgstr "formato de assinatura antigo (PGP2.x)\n"
 
 #, fuzzy, c-format
 msgid "fstat of '%s' failed in %s: %s\n"
-msgstr "impossível abrir %s: %s\n"
+msgstr "impossível abrir %s: %s\n"
 
 #, fuzzy, c-format
 msgid "fstat(%d) failed in %s: %s\n"
-msgstr "base de dados de confiança: leitura falhou (n=%d): %s\n"
+msgstr "base de dados de confiança: leitura falhou (n=%d): %s\n"
 
 #, fuzzy, c-format
 msgid "WARNING: using experimental public key algorithm %s\n"
-msgstr "impossível manipular algoritmo de chave pública %d\n"
+msgstr "impossível manipular algoritmo de chave pública %d\n"
 
 #, fuzzy
 msgid "WARNING: Elgamal sign+encrypt keys are deprecated\n"
 msgstr ""
-"forçar o algoritmo de 'digest' %s (%d) viola as preferências do "
-"destinatário\n"
+"forçar o algoritmo de 'digest' %s (%d) viola as preferências do "
+"destinatário\n"
 
 #, fuzzy, c-format
 msgid "WARNING: using experimental cipher algorithm %s\n"
-msgstr "algoritmo de criptografia não implementado"
+msgstr "algoritmo de criptografia não implementado"
 
 #, fuzzy, c-format
 msgid "WARNING: using experimental digest algorithm %s\n"
@@ -4748,8 +4761,8 @@ msgstr "assinatura %s de: \"%s\"\n"
 #, fuzzy, c-format
 msgid "WARNING: digest algorithm %s is deprecated\n"
 msgstr ""
-"forçar o algoritmo de 'digest' %s (%d) viola as preferências do "
-"destinatário\n"
+"forçar o algoritmo de 'digest' %s (%d) viola as preferências do "
+"destinatário\n"
 
 #, fuzzy, c-format
 msgid "Note: signatures using the %s algorithm are rejected\n"
@@ -4768,11 +4781,11 @@ msgstr ""
 
 #, c-format
 msgid "%s:%d: deprecated option \"%s\"\n"
-msgstr "%s:%d: opção depreciada \"%s\"\n"
+msgstr "%s:%d: opção depreciada \"%s\"\n"
 
 #, c-format
 msgid "WARNING: \"%s\" is a deprecated option\n"
-msgstr "AVISO: \"%s\" é uma opção depreciada\n"
+msgstr "AVISO: \"%s\" é uma opção depreciada\n"
 
 #, c-format
 msgid "please use \"%s%s\" instead\n"
@@ -4780,37 +4793,37 @@ msgstr "por favor utilize \"%s%s\" em vez dela\n"
 
 #, fuzzy, c-format
 msgid "WARNING: \"%s\" is a deprecated command - do not use it\n"
-msgstr "AVISO: \"%s\" é uma opção depreciada\n"
+msgstr "AVISO: \"%s\" é uma opção depreciada\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: \"%s\" is obsolete in this file - it only has effect in %s\n"
-msgstr "AVISO: \"%s\" é uma opção depreciada\n"
+msgstr "AVISO: \"%s\" é uma opção depreciada\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: \"%s%s\" is an obsolete option - it has no effect except on %s\n"
-msgstr "AVISO: \"%s\" é uma opção depreciada\n"
+msgstr "AVISO: \"%s\" é uma opção depreciada\n"
 
 #, fuzzy
 msgid "Uncompressed"
-msgstr "não processado"
+msgstr "não processado"
 
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 #, fuzzy
 msgid "uncompressed|none"
-msgstr "não processado"
+msgstr "não processado"
 
 #, c-format
 msgid "this message may not be usable by %s\n"
-msgstr "esta mensagem poderá não ser utilizável pelo %s\n"
+msgstr "esta mensagem poderá não ser utilizável pelo %s\n"
 
 #, fuzzy, c-format
 msgid "ambiguous option '%s'\n"
-msgstr "a ler opções de `%s'\n"
+msgstr "a ler opções de `%s'\n"
 
 #, fuzzy, c-format
 msgid "unknown option '%s'\n"
-msgstr "destinatário por omissão desconhecido `%s'\n"
+msgstr "destinatário por omissão desconhecido `%s'\n"
 
 msgid "ECDSA public key is expected to be in SEC encoding multiple of 8 bits\n"
 msgstr ""
@@ -4822,7 +4835,7 @@ msgstr "classe de assinatura desconhecida"
 #, fuzzy, c-format
 #| msgid "File `%s' exists. "
 msgid "File '%s' exists. "
-msgstr "Arquivo `%s' já existe. "
+msgstr "Arquivo `%s' já existe. "
 
 #, fuzzy
 msgid "Overwrite? (y/N) "
@@ -4846,23 +4859,23 @@ msgstr "a assumir dados assinados em `%s'\n"
 #, fuzzy, c-format
 #| msgid "new configuration file `%s' created\n"
 msgid "new configuration file '%s' created\n"
-msgstr "criado um novo ficheiro de configuração `%s'\n"
+msgstr "criado um novo ficheiro de configuração `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: options in `%s' are not yet active during this run\n"
 msgid "WARNING: options in '%s' are not yet active during this run\n"
-msgstr "AVISO: opções em `%s' ainda não estão activas nesta execução\n"
+msgstr "AVISO: opções em `%s' ainda não estão activas nesta execução\n"
 
 #, c-format
 msgid "can't handle public key algorithm %d\n"
-msgstr "impossível manipular algoritmo de chave pública %d\n"
+msgstr "impossível manipular algoritmo de chave pública %d\n"
 
 msgid "WARNING: potentially insecure symmetrically encrypted session key\n"
 msgstr ""
 
 #, c-format
 msgid "subpacket of type %d has critical bit set\n"
-msgstr "subpacote do tipo %d tem bit crítico ligado\n"
+msgstr "subpacote do tipo %d tem bit crítico ligado\n"
 
 #, fuzzy, c-format
 msgid "problem with the agent: %s\n"
@@ -4896,11 +4909,11 @@ msgstr "Por favor digite a frase secreta \n"
 
 #, fuzzy
 msgid "Do you really want to permanently delete the OpenPGP secret subkey key:"
-msgstr "Você quer realmente remover as chaves selecionadas? "
+msgstr "Você quer realmente remover as chaves selecionadas? "
 
 #, fuzzy
 msgid "Do you really want to permanently delete the OpenPGP secret key:"
-msgstr "Você quer realmente remover as chaves selecionadas? "
+msgstr "Você quer realmente remover as chaves selecionadas? "
 
 #, fuzzy, c-format
 msgid ""
@@ -4924,7 +4937,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "unable to open JPEG file '%s': %s\n"
-msgstr "impossível abrir %s: %s\n"
+msgstr "impossível abrir %s: %s\n"
 
 #, c-format
 msgid "This JPEG is really large (%d bytes) !\n"
@@ -4932,40 +4945,40 @@ msgstr ""
 
 #, fuzzy
 msgid "Are you sure you want to use it? (y/N) "
-msgstr "Você tem certeza de que quer adicioná-la de qualquer forma? (s/N) "
+msgstr "Você tem certeza de que quer adicioná-la de qualquer forma? (s/N) "
 
 #, fuzzy, c-format
 msgid "'%s' is not a JPEG file\n"
-msgstr "%s: não é um base de dados de confiança\n"
+msgstr "%s: não é um base de dados de confiança\n"
 
 #, fuzzy
 msgid "Is this photo correct (y/N/q)? "
-msgstr "Está correto (s/n)? "
+msgstr "Está correto (s/n)? "
 
 #, fuzzy
 msgid "unable to display photo ID!\n"
-msgstr "não foi possível alterar o exec-path para %s\n"
+msgstr "não foi possível alterar o exec-path para %s\n"
 
 msgid "No reason specified"
 msgstr "Nenhum motivo especificado"
 
 msgid "Key is superseded"
-msgstr "A chave foi substituída"
+msgstr "A chave foi substituída"
 
 msgid "Key has been compromised"
 msgstr "A chave foi comprometida"
 
 msgid "Key is no longer used"
-msgstr "A chave já não é utilizada"
+msgstr "A chave já não é utilizada"
 
 msgid "User ID is no longer valid"
-msgstr "O identificador do utilizador já não é válido"
+msgstr "O identificador do utilizador já não é válido"
 
 msgid "reason for revocation: "
-msgstr "motivo da revocação: "
+msgstr "motivo da revocação: "
 
 msgid "revocation comment: "
-msgstr "comentário da revocação: "
+msgstr "comentário da revocação: "
 
 #. TRANSLATORS: These are the allowed answers in lower and
 #. uppercase.  Below you will find the matching strings which
@@ -4983,7 +4996,7 @@ msgstr "iImMqQsS"
 #, fuzzy
 msgid "No trust value assigned to:\n"
 msgstr ""
-"Nenhum valor de confiança designado para:\n"
+"Nenhum valor de confiança designado para:\n"
 "%4u%c/%08lX %s \""
 
 #, fuzzy, c-format
@@ -4997,11 +5010,11 @@ msgstr "Esta chave provavelmente pertence ao dono\n"
 
 #, fuzzy, c-format
 msgid "  %d = I don't know or won't say\n"
-msgstr " %d = Não sei\n"
+msgstr " %d = Não sei\n"
 
 #, fuzzy, c-format
 msgid "  %d = I do NOT trust\n"
-msgstr " %d = Eu NÃO confio\n"
+msgstr " %d = Eu NÃ\83O confio\n"
 
 #, fuzzy, c-format
 msgid "  %d = I trust ultimately\n"
@@ -5026,7 +5039,7 @@ msgid ""
 msgstr ""
 
 msgid "Your decision? "
-msgstr "Decisão? "
+msgstr "Decisão? "
 
 #, fuzzy
 msgid "Do you really want to set this key to ultimate trust? (y/N) "
@@ -5038,12 +5051,12 @@ msgstr "Certificados que levam a uma chave confiada plenamente:\n"
 #, fuzzy, c-format
 msgid "%s: There is no assurance this key belongs to the named user\n"
 msgstr ""
-"%08lx: Não há indicação de que a assinatura pertence realmente ao dono.\n"
+"%08lx: Não há indicação de que a assinatura pertence realmente ao dono.\n"
 
 #, fuzzy, c-format
 msgid "%s: There is limited assurance this key belongs to the named user\n"
 msgstr ""
-"%08lx: Não há indicação de que a assinatura pertence realmente ao dono.\n"
+"%08lx: Não há indicação de que a assinatura pertence realmente ao dono.\n"
 
 #, fuzzy
 msgid "This key probably belongs to the named user\n"
@@ -5052,15 +5065,30 @@ msgstr "Esta chave provavelmente pertence ao dono\n"
 msgid "This key belongs to us\n"
 msgstr "Esta chave pertence-nos\n"
 
+#, c-format
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr ""
+
+#, fuzzy
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"NÃO se tem certeza de que esta chave pertence ao seu dono.\n"
+"Se você *realmente* sabe o que está a fazer, pode responder\n"
+"sim à próxima pergunta\n"
+"\n"
+
 #, fuzzy
 msgid ""
 "It is NOT certain that the key belongs to the person named\n"
 "in the user ID.  If you *really* know what you are doing,\n"
 "you may answer the next question with yes.\n"
 msgstr ""
-"NÃO se tem certeza de que esta chave pertence ao seu dono.\n"
-"Se você *realmente* sabe o que está a fazer, pode responder\n"
-"sim à próxima pergunta\n"
+"NÃ\83O se tem certeza de que esta chave pertence ao seu dono.\n"
+"Se você *realmente* sabe o que está a fazer, pode responder\n"
+"sim à próxima pergunta\n"
 "\n"
 
 #, fuzzy
@@ -5068,12 +5096,12 @@ msgid "Use this key anyway? (y/N) "
 msgstr "Usar esta chave de qualquer modo? "
 
 msgid "WARNING: Using untrusted key!\n"
-msgstr "AVISO: A utilizar uma chave que não é de confiança!\n"
+msgstr "AVISO: A utilizar uma chave que não é de confiança!\n"
 
 #, fuzzy
 msgid "WARNING: this key might be revoked (revocation key not present)\n"
 msgstr ""
-"AVISO: a chave %08lX pode estar revocada: chave de revocação %08lX não "
+"AVISO: a chave %08lX pode estar revocada: chave de revocação %08lX não "
 "presente.\n"
 
 #, fuzzy
@@ -5085,7 +5113,7 @@ msgstr "AVISO: Esta chave foi revogada pelo seu dono!\n"
 
 #, fuzzy
 msgid "         This could mean that the signature is forged.\n"
-msgstr "         Isto pode significar que a assinatura é falsificada.\n"
+msgstr "         Isto pode significar que a assinatura é falsificada.\n"
 
 msgid "WARNING: This subkey has been revoked by its owner!\n"
 msgstr "AVISO: Esta subchave foi revogada pelo seu dono!\n"
@@ -5111,26 +5139,26 @@ msgid "Note: This key has expired!\n"
 msgstr "Nota: Esta chave expirou!\n"
 
 msgid "WARNING: This key is not certified with a trusted signature!\n"
-msgstr "AVISO: Esta chave não está certificada com uma assinatura confiável!\n"
+msgstr "AVISO: Esta chave não está certificada com uma assinatura confiável!\n"
 
 msgid ""
 "         There is no indication that the signature belongs to the owner.\n"
-msgstr "         Não há indicação de que a assinatura pertence ao dono.\n"
+msgstr "         Não há indicação de que a assinatura pertence ao dono.\n"
 
 msgid "WARNING: We do NOT trust this key!\n"
-msgstr "AVISO: Nós NÃO confiamos nesta chave!\n"
+msgstr "AVISO: Nós NÃO confiamos nesta chave!\n"
 
 msgid "         The signature is probably a FORGERY.\n"
-msgstr "         A assinatura é provavelmente uma FALSIFICAÇÃO.\n"
+msgstr "         A assinatura é provavelmente uma FALSIFICAÇÃO.\n"
 
 msgid ""
 "WARNING: This key is not certified with sufficiently trusted signatures!\n"
 msgstr ""
-"AVISO: Esta chave não está certificada com assinaturas suficientemente\n"
-"       confiáveis!\n"
+"AVISO: Esta chave não está certificada com assinaturas suficientemente\n"
+"       confiáveis!\n"
 
 msgid "         It is not certain that the signature belongs to the owner.\n"
-msgstr "         Não se tem certeza de que a assinatura pertence ao dono.\n"
+msgstr "         Não se tem certeza de que a assinatura pertence ao dono.\n"
 
 #, c-format
 msgid "%s: skipped: %s\n"
@@ -5138,27 +5166,27 @@ msgstr "%s: ignorado: %s\n"
 
 #, c-format
 msgid "%s: skipped: public key is disabled\n"
-msgstr "%s: ignorado: a chave pública está desactivada\n"
+msgstr "%s: ignorado: a chave pública está desactivada\n"
 
 #, c-format
 msgid "%s: skipped: public key already present\n"
-msgstr "%s: ignorado: a chave pública já está presente\n"
+msgstr "%s: ignorado: a chave pública já está presente\n"
 
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't encrypt to '%s'\n"
-msgstr "impossível ligar a `%s': %s\n"
+msgstr "impossível ligar a `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "option '%s' given, but no valid default keys given\n"
-msgstr "algoritmo de dispersão inválido `%s'\n"
+msgstr "algoritmo de dispersão inválido `%s'\n"
 
 #, fuzzy, c-format
 msgid "option '%s' given, but option '%s' not given\n"
-msgstr "algoritmo de dispersão inválido `%s'\n"
+msgstr "algoritmo de dispersão inválido `%s'\n"
 
 msgid "You did not specify a user ID. (you may use \"-r\")\n"
-msgstr "Não especificou um identificador de utilizador. (pode usar \"-r\")\n"
+msgstr "Não especificou um identificador de utilizador. (pode usar \"-r\")\n"
 
 msgid "Current recipients:\n"
 msgstr ""
@@ -5174,20 +5202,20 @@ msgid "No such user ID.\n"
 msgstr "Identificador de utilizador inexistente.\n"
 
 msgid "skipped: public key already set as default recipient\n"
-msgstr "ignorado: chave pública já colocada como destinatário por omissão\n"
+msgstr "ignorado: chave pública já colocada como destinatário por omissão\n"
 
 msgid "Public key is disabled.\n"
-msgstr "A chave pública está desativada.\n"
+msgstr "A chave pública está desativada.\n"
 
 msgid "skipped: public key already set\n"
-msgstr "ignorado: a chave pública já está presente\n"
+msgstr "ignorado: a chave pública já está presente\n"
 
 #, fuzzy, c-format
 msgid "unknown default recipient \"%s\"\n"
-msgstr "destinatário por omissão desconhecido `%s'\n"
+msgstr "destinatário por omissão desconhecido `%s'\n"
 
 msgid "no valid addressees\n"
-msgstr "nenhum endereço válido\n"
+msgstr "nenhum endereço válido\n"
 
 #, fuzzy, c-format
 msgid "Note: key %s has no %s feature\n"
@@ -5198,7 +5226,7 @@ msgid "Note: key %s has no preference for %s\n"
 msgstr "chave %08lX: sem ID de utilizador\n"
 
 msgid "data not saved; use option \"--output\" to save it\n"
-msgstr "dados não gravados; use a opção \"--output\" para gravá-los\n"
+msgstr "dados não gravados; use a opção \"--output\" para gravá-los\n"
 
 msgid "Detached signature.\n"
 msgstr "Assinatura separada.\n"
@@ -5210,34 +5238,34 @@ msgid "reading stdin ...\n"
 msgstr "lendo do \"stdin\" ...\n"
 
 msgid "no signed data\n"
-msgstr "não há dados assinados\n"
+msgstr "não há dados assinados\n"
 
 #, fuzzy, c-format
 #| msgid "can't open signed data `%s'\n"
 msgid "can't open signed data '%s'\n"
-msgstr "impossível abrir dados assinados `%s'\n"
+msgstr "impossível abrir dados assinados `%s'\n"
 
 #, fuzzy, c-format
 msgid "can't open signed data fd=%d: %s\n"
-msgstr "impossível abrir dados assinados `%s'\n"
+msgstr "impossível abrir dados assinados `%s'\n"
 
 #, fuzzy, c-format
 msgid "anonymous recipient; trying secret key %s ...\n"
-msgstr "destinatário anónimo; a tentar chave secreta %08lX ...\n"
+msgstr "destinatário anónimo; a tentar chave secreta %08lX ...\n"
 
 msgid "okay, we are the anonymous recipient.\n"
-msgstr "certo, nós somos o destinatário anónimo.\n"
+msgstr "certo, nós somos o destinatário anónimo.\n"
 
 msgid "old encoding of the DEK is not supported\n"
-msgstr "codificação antiga do DEK não suportada\n"
+msgstr "codificação antiga do DEK não suportada\n"
 
 #, c-format
 msgid "cipher algorithm %d%s is unknown or disabled\n"
-msgstr "algoritmo de cifra %d%s é desconhecido ou foi desactivado\n"
+msgstr "algoritmo de cifra %d%s é desconhecido ou foi desactivado\n"
 
 #, fuzzy, c-format
 msgid "WARNING: cipher algorithm %s not found in recipient preferences\n"
-msgstr "NOTA: algoritmo de cifragem %d não encontrado nas preferências\n"
+msgstr "NOTA: algoritmo de cifragem %d não encontrado nas preferências\n"
 
 #, fuzzy, c-format
 msgid "Note: secret key %s expired at %s\n"
@@ -5250,7 +5278,7 @@ msgstr "NOTA: a chave foi revogada"
 
 #, fuzzy, c-format
 msgid "build_packet failed: %s\n"
-msgstr "actualização falhou: %s\n"
+msgstr "actualização falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s has no user IDs\n"
@@ -5265,22 +5293,22 @@ msgstr ""
 #, fuzzy
 #| msgid "Secret key is available.\n"
 msgid "Secret key is not available.\n"
-msgstr "Chave secreta disponível.\n"
+msgstr "Chave secreta disponível.\n"
 
 #, fuzzy
 msgid "Create a designated revocation certificate for this key? (y/N) "
-msgstr "Gerar um certificado de revogação para esta assinatura? (s/N)"
+msgstr "Gerar um certificado de revogação para esta assinatura? (s/N)"
 
 msgid "ASCII armored output forced.\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "make_keysig_packet failed: %s\n"
-msgstr "actualização da chave secreta falhou: %s\n"
+msgstr "actualização da chave secreta falhou: %s\n"
 
 #, fuzzy
 msgid "Revocation certificate created.\n"
-msgstr "chave %08lX: certificado de revogação \"%s\" adicionado\n"
+msgstr "chave %08lX: certificado de revogação \"%s\" adicionado\n"
 
 #, c-format
 msgid "no revocation keys found for \"%s\"\n"
@@ -5288,7 +5316,7 @@ msgstr ""
 
 #, fuzzy
 msgid "This is a revocation certificate for the OpenPGP key:"
-msgstr "Gerar um certificado de revogação para esta assinatura? (s/N)"
+msgstr "Gerar um certificado de revogação para esta assinatura? (s/N)"
 
 msgid ""
 "A revocation certificate is a kind of \"kill switch\" to publicly\n"
@@ -5312,11 +5340,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "revocation certificate stored as '%s.rev'\n"
-msgstr "chave %08lX: certificado de revogação \"%s\" adicionado\n"
+msgstr "chave %08lX: certificado de revogação \"%s\" adicionado\n"
 
 #, fuzzy, c-format
 msgid "secret key \"%s\" not found\n"
-msgstr "chave `%s' não encontrada: %s\n"
+msgstr "chave `%s' não encontrada: %s\n"
 
 #. TRANSLATORS: The %s prints a key specification which
 #. for example has been given at the command line.  Several lines
@@ -5332,7 +5360,7 @@ msgstr "erro ao criar porta-chaves `%s': %s\n"
 
 #, fuzzy
 msgid "Create a revocation certificate for this key? (y/N) "
-msgstr "Gerar um certificado de revogação para esta assinatura? (s/N)"
+msgstr "Gerar um certificado de revogação para esta assinatura? (s/N)"
 
 msgid ""
 "Revocation certificate created.\n"
@@ -5346,7 +5374,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Please select the reason for the revocation:\n"
-msgstr "motivo da revocação: "
+msgstr "motivo da revocação: "
 
 msgid "Cancel"
 msgstr ""
@@ -5363,7 +5391,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "Reason for revocation: %s\n"
-msgstr "motivo da revocação: "
+msgstr "motivo da revocação: "
 
 msgid "(No description given)\n"
 msgstr ""
@@ -5378,7 +5406,7 @@ msgstr "chave fraca criada - tentando novamente\n"
 #, c-format
 msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
 msgstr ""
-"impossível evitar chave fraca para criptografia simétrica;\n"
+"impossível evitar chave fraca para criptografia simétrica;\n"
 "tentei %d vezes!\n"
 
 #, c-format
@@ -5398,23 +5426,23 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "please see %s for more information\n"
-msgstr " i = mostrar mais informações\n"
+msgstr " i = mostrar mais informações\n"
 
 #, fuzzy, c-format
 msgid "WARNING: signing subkey %s has an invalid cross-certification\n"
-msgstr "não pode escolher uma chave como revogadora de si mesmo\n"
+msgstr "não pode escolher uma chave como revogadora de si mesmo\n"
 
 #, fuzzy, c-format
 msgid "public key %s is %lu second newer than the signature\n"
 msgid_plural "public key %s is %lu seconds newer than the signature\n"
-msgstr[0] "a chave pública %08lX é %lu segundo mais nova que a assinatura\n"
-msgstr[1] "a chave pública %08lX é %lu segundo mais nova que a assinatura\n"
+msgstr[0] "a chave pública %08lX é %lu segundo mais nova que a assinatura\n"
+msgstr[1] "a chave pública %08lX é %lu segundo mais nova que a assinatura\n"
 
 #, fuzzy, c-format
 msgid "public key %s is %lu day newer than the signature\n"
 msgid_plural "public key %s is %lu days newer than the signature\n"
-msgstr[0] "a chave pública %08lX é %lu segundo mais nova que a assinatura\n"
-msgstr[1] "a chave pública %08lX é %lu segundo mais nova que a assinatura\n"
+msgstr[0] "a chave pública %08lX é %lu segundo mais nova que a assinatura\n"
+msgstr[1] "a chave pública %08lX é %lu segundo mais nova que a assinatura\n"
 
 #, fuzzy, c-format
 msgid ""
@@ -5423,10 +5451,10 @@ msgid_plural ""
 "key %s was created %lu seconds in the future (time warp or clock problem)\n"
 msgstr[0] ""
 "a chave foi criada %lu segundo no futuro\n"
-"(viagem no tempo ou problema no relógio)\n"
+"(viagem no tempo ou problema no relógio)\n"
 msgstr[1] ""
 "a chave foi criada %lu segundo no futuro\n"
-"(viagem no tempo ou problema no relógio)\n"
+"(viagem no tempo ou problema no relógio)\n"
 
 #, fuzzy, c-format
 msgid "key %s was created %lu day in the future (time warp or clock problem)\n"
@@ -5434,10 +5462,10 @@ msgid_plural ""
 "key %s was created %lu days in the future (time warp or clock problem)\n"
 msgstr[0] ""
 "a chave foi criada %lu segundo no futuro\n"
-"(viagem no tempo ou problema no relógio)\n"
+"(viagem no tempo ou problema no relógio)\n"
 msgstr[1] ""
 "a chave foi criada %lu segundo no futuro\n"
-"(viagem no tempo ou problema no relógio)\n"
+"(viagem no tempo ou problema no relógio)\n"
 
 #, fuzzy, c-format
 msgid "Note: signature key %s expired %s\n"
@@ -5450,37 +5478,37 @@ msgstr "NOTA: a chave foi revogada"
 #, fuzzy, c-format
 msgid "assuming bad signature from key %s due to an unknown critical bit\n"
 msgstr ""
-"assumindo assinatura incorrecta na chave %08lX devido a um bit crítico "
+"assumindo assinatura incorrecta na chave %08lX devido a um bit crítico "
 "desconhecido\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for subkey revocation signature\n"
-msgstr "chave %08lX: sem subchave para o pacote revocação de subchave\n"
+msgstr "chave %08lX: sem subchave para o pacote revocação de subchave\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for subkey binding signature\n"
-msgstr "chave %08lX: sem subchave para ligação de chaves\n"
+msgstr "chave %08lX: sem subchave para ligação de chaves\n"
 
 #, c-format
 msgid "WARNING: unable to %%-expand notation (too large).  Using unexpanded.\n"
 msgstr ""
-"AVISO: impossível expandir-%% a url de política (demasiado grande).  A "
-"utilizar não expandida.\n"
+"AVISO: impossível expandir-%% a url de política (demasiado grande).  A "
+"utilizar não expandida.\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: unable to %%-expand policy URL (too large).  Using unexpanded.\n"
 msgstr ""
-"AVISO: impossível expandir-%% a url de política (demasiado grande).\n"
-"A utilizar não expandida.\n"
+"AVISO: impossível expandir-%% a url de política (demasiado grande).\n"
+"A utilizar não expandida.\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: unable to %%-expand preferred keyserver URL (too large).  Using "
 "unexpanded.\n"
 msgstr ""
-"AVISO: impossível expandir-%% a url de política (demasiado grande).\n"
-"A utilizar não expandida.\n"
+"AVISO: impossível expandir-%% a url de política (demasiado grande).\n"
+"A utilizar não expandida.\n"
 
 #, fuzzy, c-format
 msgid "%s/%s signature from: \"%s\"\n"
@@ -5490,36 +5518,36 @@ msgstr "assinatura %s de: \"%s\"\n"
 msgid ""
 "WARNING: forcing digest algorithm %s (%d) violates recipient preferences\n"
 msgstr ""
-"forçar o algoritmo de 'digest' %s (%d) viola as preferências do "
-"destinatário\n"
+"forçar o algoritmo de 'digest' %s (%d) viola as preferências do "
+"destinatário\n"
 
 msgid "signing:"
 msgstr "a assinar:"
 
 #, c-format
 msgid "%s encryption will be used\n"
-msgstr "será utilizada a cifragem %s\n"
+msgstr "será utilizada a cifragem %s\n"
 
 msgid "key is not flagged as insecure - can't use it with the faked RNG!\n"
 msgstr ""
-"a chave não está marcada insegura - impossível usá-la com o RNG falso!\n"
+"a chave não está marcada insegura - impossível usá-la com o RNG falso!\n"
 
 #, fuzzy, c-format
 msgid "skipped \"%s\": duplicated\n"
 msgstr "ignorado `%s': duplicada\n"
 
 msgid "skipped: secret key already present\n"
-msgstr "ignorado: a chave secreta já está presente\n"
+msgstr "ignorado: a chave secreta já está presente\n"
 
 #, fuzzy
 msgid "this is a PGP generated Elgamal key which is not secure for signatures!"
 msgstr ""
-"ignorado `%s': esta é uma chave ElGamal gerada pelo PGP que não é segura "
+"ignorado `%s': esta é uma chave ElGamal gerada pelo PGP que não é segura "
 "para assinaturas!\n"
 
 #, c-format
 msgid "trust record %lu, type %d: write failed: %s\n"
-msgstr "registo de confiança %lu, tipo %d: escrita falhou: %s\n"
+msgstr "registo de confiança %lu, tipo %d: escrita falhou: %s\n"
 
 #, c-format
 msgid ""
@@ -5540,15 +5568,15 @@ msgstr ""
 
 #, fuzzy
 msgid "invalid fingerprint"
-msgstr "%s: versão de ficheiro inválida %d\n"
+msgstr "%s: versão de ficheiro inválida %d\n"
 
 #, fuzzy
 msgid "ownertrust value missing"
-msgstr "importar os valores de confiança"
+msgstr "importar os valores de confiança"
 
 #, fuzzy, c-format
 msgid "error finding trust record in '%s': %s\n"
-msgstr "%s: erro ao escrever registo de diretório: %s\n"
+msgstr "%s: erro ao escrever registo de diretório: %s\n"
 
 #, fuzzy, c-format
 msgid "read error in '%s': %s\n"
@@ -5556,26 +5584,26 @@ msgstr "armadura: %s\n"
 
 #, c-format
 msgid "trustdb: sync failed: %s\n"
-msgstr "base de dados de confiança: sincronização falhou: %s\n"
+msgstr "base de dados de confiança: sincronização falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "can't create lock for '%s'\n"
-msgstr "impossível criar `%s': %s\n"
+msgstr "impossível criar `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "can't lock '%s'\n"
-msgstr "impossível abrir `%s'\n"
+msgstr "impossível abrir `%s'\n"
 
 #, c-format
 msgid "trustdb rec %lu: lseek failed: %s\n"
-msgstr "base de dados de confiança rec %lu: lseek falhou: %s\n"
+msgstr "base de dados de confiança rec %lu: lseek falhou: %s\n"
 
 #, c-format
 msgid "trustdb rec %lu: write failed (n=%d): %s\n"
-msgstr "base de dados de confiança rec %lu: escrita falhou (n=%d): %s\n"
+msgstr "base de dados de confiança rec %lu: escrita falhou (n=%d): %s\n"
 
 msgid "trustdb transaction too large\n"
-msgstr "transação de base de dados de confiança muito grande\n"
+msgstr "transação de base de dados de confiança muito grande\n"
 
 #, c-format
 msgid "%s: directory does not exist!\n"
@@ -5583,64 +5611,64 @@ msgstr "%s: diretoria inexistente!\n"
 
 #, fuzzy, c-format
 msgid "can't access '%s': %s\n"
-msgstr "impossível fechar `%s': %s\n"
+msgstr "impossível fechar `%s': %s\n"
 
 #, c-format
 msgid "%s: failed to create version record: %s"
-msgstr "%s: falha ao criar registo de versão: %s"
+msgstr "%s: falha ao criar registo de versão: %s"
 
 #, c-format
 msgid "%s: invalid trustdb created\n"
-msgstr "%s: base de dados de confiança inválida criada\n"
+msgstr "%s: base de dados de confiança inválida criada\n"
 
 #, c-format
 msgid "%s: trustdb created\n"
-msgstr "%s: base de dados de confiança criada\n"
+msgstr "%s: base de dados de confiança criada\n"
 
 #, fuzzy
 #| msgid "NOTE: trustdb not writable\n"
 msgid "Note: trustdb not writable\n"
-msgstr "NOTA: não é possível escrever na trustdb\n"
+msgstr "NOTA: não é possível escrever na trustdb\n"
 
 #, c-format
 msgid "%s: invalid trustdb\n"
-msgstr "%s: base de dados de confiança inválida\n"
+msgstr "%s: base de dados de confiança inválida\n"
 
 #, c-format
 msgid "%s: failed to create hashtable: %s\n"
-msgstr "%s: falha ao criar tabela de dispersão: %s\n"
+msgstr "%s: falha ao criar tabela de dispersão: %s\n"
 
 #, c-format
 msgid "%s: error updating version record: %s\n"
-msgstr "%s: erro a actualizar registo de versão: %s\n"
+msgstr "%s: erro a actualizar registo de versão: %s\n"
 
 #, c-format
 msgid "%s: error reading version record: %s\n"
-msgstr "%s: erro ao ler registo de versão: %s\n"
+msgstr "%s: erro ao ler registo de versão: %s\n"
 
 #, c-format
 msgid "%s: error writing version record: %s\n"
-msgstr "%s: erro ao escrever registo de versão: %s\n"
+msgstr "%s: erro ao escrever registo de versão: %s\n"
 
 #, c-format
 msgid "trustdb: lseek failed: %s\n"
-msgstr "base de dados de confiança: lseek falhou: %s\n"
+msgstr "base de dados de confiança: lseek falhou: %s\n"
 
 #, c-format
 msgid "trustdb: read failed (n=%d): %s\n"
-msgstr "base de dados de confiança: leitura falhou (n=%d): %s\n"
+msgstr "base de dados de confiança: leitura falhou (n=%d): %s\n"
 
 #, c-format
 msgid "%s: not a trustdb file\n"
-msgstr "%s: não é um base de dados de confiança\n"
+msgstr "%s: não é um base de dados de confiança\n"
 
 #, c-format
 msgid "%s: version record with recnum %lu\n"
-msgstr "%s: registo de versão com recnum %lu\n"
+msgstr "%s: registo de versão com recnum %lu\n"
 
 #, c-format
 msgid "%s: invalid file version %d\n"
-msgstr "%s: versão de ficheiro inválida %d\n"
+msgstr "%s: versão de ficheiro inválida %d\n"
 
 #, c-format
 msgid "%s: error reading free record: %s\n"
@@ -5648,7 +5676,7 @@ msgstr "%s: erro ao ler registo livre: %s\n"
 
 #, c-format
 msgid "%s: error writing dir record: %s\n"
-msgstr "%s: erro ao escrever registo de diretório: %s\n"
+msgstr "%s: erro ao escrever registo de diretório: %s\n"
 
 #, c-format
 msgid "%s: failed to zero a record: %s\n"
@@ -5660,11 +5688,11 @@ msgstr "%s: falha ao anexar um registo: %s\n"
 
 #, fuzzy
 msgid "Error: The trustdb is corrupted.\n"
-msgstr "%s: base de dados de confiança criada\n"
+msgstr "%s: base de dados de confiança criada\n"
 
 #, c-format
 msgid "can't handle text lines longer than %d characters\n"
-msgstr "impossível manipular linhas de texto maiores que %d caracteres\n"
+msgstr "impossível manipular linhas de texto maiores que %d caracteres\n"
 
 #, c-format
 msgid "input line longer than %d characters\n"
@@ -5700,7 +5728,7 @@ msgstr "erro ao escrever no porta-chaves secreto `%s': %s\n"
 #, fuzzy, c-format
 #| msgid "%s: error writing dir record: %s\n"
 msgid "error initializing TOFU database: %s\n"
-msgstr "%s: erro ao escrever registo de diretório: %s\n"
+msgstr "%s: erro ao escrever registo de diretório: %s\n"
 
 #, fuzzy, c-format
 msgid "error opening TOFU database '%s': %s\n"
@@ -5711,36 +5739,40 @@ msgid "error updating TOFU database: %s\n"
 msgstr "erro ao enviar para `%s': %s\n"
 
 #, c-format
-msgid "The binding %s is NOT known."
+msgid ""
+"This is the first time the email address \"%s\" is being used with key %s."
 msgstr ""
 
 #, c-format
-msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr ""
+
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error gathering other user IDs: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr ""
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "lista chave e identificadores de utilizadores"
 
 #, fuzzy, c-format
 #| msgid "Policy: "
 msgid "policy: %s"
-msgstr "Política: "
+msgstr "Política: "
 
 #, fuzzy, c-format
 msgid "error gathering signature stats: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, c-format
 msgid "The email address \"%s\" is associated with %d key:\n"
@@ -5752,41 +5784,47 @@ msgstr[1] ""
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr ""
 
+msgid ", "
+msgstr ""
+
 #, fuzzy
 #| msgid "list keys"
 msgid "this key"
 msgstr "listar as chaves"
 
-#, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
-msgstr[0] ""
-msgstr[1] ""
-
 #, fuzzy, c-format
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
 msgstr[0] "|algo [ficheiros]|imprimir \"digests\" de mensagens"
 msgstr[1] "|algo [ficheiros]|imprimir \"digests\" de mensagens"
 
 #, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+msgid " over the past year."
+msgid_plural " over the past %d years."
 msgstr[0] ""
 msgstr[1] ""
 
+msgid " in the past."
+msgstr ""
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5802,13 +5840,23 @@ msgstr ""
 msgid "(G)ood, (A)ccept once, (U)nknown, (R)eject once, (B)ad? "
 msgstr ""
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "resetting keydb: %s\n"
+msgstr "erro na escrita do porta-chaves `%s': %s\n"
+
 #, fuzzy, c-format
 msgid "error setting TOFU binding's trust level to %s\n"
 msgstr "erro na leitura de `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error changing TOFU policy: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #. TRANSLATORS: The tilde ('~') is used here to indicate a
 #. * non-breakable space
@@ -5849,50 +5897,55 @@ msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
+msgid "%s: "
 msgstr ""
 
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
-msgstr ""
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "%d assinaturas removidas.\n"
 
 #, fuzzy, c-format
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "|algo [ficheiros]|imprimir \"digests\" de mensagens"
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
+msgstr[0] "|algo [ficheiros]|imprimir \"digests\" de mensagens"
+msgstr[1] "|algo [ficheiros]|imprimir \"digests\" de mensagens"
+
+#, fuzzy, c-format
+msgid ", and encrypted %ld messages"
+msgstr "Repita a frase secreta\n"
+
+#, fuzzy, c-format
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] "|algo [ficheiros]|imprimir \"digests\" de mensagens"
+msgstr[1] "|algo [ficheiros]|imprimir \"digests\" de mensagens"
 
-#, c-format
 msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
-msgstr[0] ""
-msgstr[1] ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
+msgstr ""
 
-#, c-format
-msgid "The most recent message was verified %s ago."
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
 msgstr ""
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
 msgstr ""
 
 #, c-format
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -5902,36 +5955,45 @@ msgstr[1] ""
 msgid "error opening TOFU database: %s\n"
 msgstr "erro ao enviar para `%s': %s\n"
 
+#, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring `%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "erro ao escrever no porta-chaves público `%s': %s\n"
+
 #, fuzzy, c-format
 #| msgid "`%s' is not a valid long keyID\n"
 msgid "'%s' is not a valid long keyID\n"
-msgstr "`%s' não é um identificador longo de chave válido\n"
+msgstr "`%s' não é um identificador longo de chave válido\n"
 
 #, fuzzy, c-format
 msgid "key %s: accepted as trusted key\n"
-msgstr "chave %08lX: aceite como chave de confiança\n"
+msgstr "chave %08lX: aceite como chave de confiança\n"
 
 #, fuzzy, c-format
 msgid "key %s occurs more than once in the trustdb\n"
-msgstr "chave %08lX ocrreu mais do que uma vez na base de dados de confiança\n"
+msgstr "chave %08lX ocrreu mais do que uma vez na base de dados de confiança\n"
 
 #, fuzzy, c-format
 msgid "key %s: no public key for trusted key - skipped\n"
 msgstr ""
-"chave %08lX: nenhuma chave pública para chave de confiança - ignorada\n"
+"chave %08lX: nenhuma chave pública para chave de confiança - ignorada\n"
 "\n"
 
 #, fuzzy, c-format
 msgid "key %s marked as ultimately trusted\n"
-msgstr "chave marcada como de confiança absoluta\n"
+msgstr "chave marcada como de confiança absoluta\n"
 
 #, c-format
 msgid "trust record %lu, req type %d: read failed: %s\n"
-msgstr "registo de confiança %lu, tipo req %d: falha na leitura: %s\n"
+msgstr "registo de confiança %lu, tipo req %d: falha na leitura: %s\n"
 
 #, c-format
 msgid "trust record %lu is not of requested type %d\n"
-msgstr "registo de confiança %lu não é do tipo pedido %d\n"
+msgstr "registo de confiança %lu não é do tipo pedido %d\n"
 
 msgid "You may try to re-create the trustdb using the commands:\n"
 msgstr ""
@@ -5948,35 +6010,35 @@ msgid "using %s trust model\n"
 msgstr ""
 
 msgid "no need for a trustdb check\n"
-msgstr "não é necessária uma verificação da base de dados de confiança\n"
+msgstr "não é necessária uma verificação da base de dados de confiança\n"
 
 #, c-format
 msgid "next trustdb check due at %s\n"
-msgstr "proxima verificação da base de dados de confiança a %s\n"
+msgstr "proxima verificação da base de dados de confiança a %s\n"
 
 #, fuzzy, c-format
 msgid "no need for a trustdb check with '%s' trust model\n"
-msgstr "não é necessária uma verificação da base de dados de confiança\n"
+msgstr "não é necessária uma verificação da base de dados de confiança\n"
 
 #, fuzzy, c-format
 msgid "no need for a trustdb update with '%s' trust model\n"
-msgstr "não é necessária uma verificação da base de dados de confiança\n"
+msgstr "não é necessária uma verificação da base de dados de confiança\n"
 
 #, fuzzy, c-format
 msgid "public key %s not found: %s\n"
-msgstr "chave pública %08lX não encontrada: %s\n"
+msgstr "chave pública %08lX não encontrada: %s\n"
 
 msgid "please do a --check-trustdb\n"
 msgstr ""
 
 msgid "checking the trustdb\n"
-msgstr "a verificar a base de dados de confiança\n"
+msgstr "a verificar a base de dados de confiança\n"
 
 #, fuzzy, c-format
 msgid "%d key processed"
 msgid_plural "%d keys processed"
-msgstr[0] "%lu chaves processadas até agora\n"
-msgstr[1] "%lu chaves processadas até agora\n"
+msgstr[0] "%lu chaves processadas até agora\n"
+msgstr[1] "%lu chaves processadas até agora\n"
 
 #, c-format
 msgid " (%d validity count cleared)\n"
@@ -5987,12 +6049,12 @@ msgstr[1] ""
 #, fuzzy
 msgid "no ultimately trusted keys found\n"
 msgstr ""
-"chave pública da chave absolutamente de confiança %08lX não encontrada\n"
+"chave pública da chave absolutamente de confiança %08lX não encontrada\n"
 
 #, fuzzy, c-format
 msgid "public key of ultimately trusted key %s not found\n"
 msgstr ""
-"chave pública da chave absolutamente de confiança %08lX não encontrada\n"
+"chave pública da chave absolutamente de confiança %08lX não encontrada\n"
 
 #, c-format
 msgid ""
@@ -6001,7 +6063,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "unable to update trustdb version record: write failed: %s\n"
-msgstr "registo de confiança %lu, tipo %d: escrita falhou: %s\n"
+msgstr "registo de confiança %lu, tipo %d: escrita falhou: %s\n"
 
 msgid "undefined"
 msgstr ""
@@ -6039,7 +6101,7 @@ msgstr "expire"
 
 #, fuzzy
 msgid "[ unknown]"
-msgstr "versão desconhecida"
+msgstr "versão desconhecida"
 
 msgid "[  undef ]"
 msgstr ""
@@ -6061,8 +6123,8 @@ msgid ""
 "Please remember that the signature file (.sig or .asc)\n"
 "should be the first file given on the command line.\n"
 msgstr ""
-"a assinatura não pode ser verificada.\n"
-"Não se esqueça que o ficheiro com a assinatura (.sig ou .asc)\n"
+"a assinatura não pode ser verificada.\n"
+"Não se esqueça que o ficheiro com a assinatura (.sig ou .asc)\n"
 "deve ser o primeiro a ser dado na linha de comando.\n"
 
 #, c-format
@@ -6071,7 +6133,7 @@ msgstr "linha de entrada %u demasiado longa ou falta o LF\n"
 
 #, fuzzy, c-format
 msgid "can't open fd %d: %s\n"
-msgstr "impossível abrir `%s': %s\n"
+msgstr "impossível abrir `%s': %s\n"
 
 msgid "set debugging flags"
 msgstr ""
@@ -6081,13 +6143,13 @@ msgstr ""
 
 #, fuzzy
 msgid "Usage: kbxutil [options] [files] (-h for help)"
-msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
+msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
 
 #, fuzzy
 msgid ""
 "Syntax: kbxutil [options] [files]\n"
 "List, export, import Keybox data\n"
-msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
+msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
 
 #, c-format
 msgid "RSA modulus missing or not of size %d bits\n"
@@ -6114,11 +6176,11 @@ msgstr "muda a frase secreta"
 
 #, fuzzy
 msgid "|NP|Please enter a new PIN Unblocking Code (PUK) for the standard keys."
-msgstr "motivo da revocação: "
+msgstr "motivo da revocação: "
 
 #, fuzzy
 msgid "|P|Please enter the PIN Unblocking Code (PUK) for the standard keys."
-msgstr "motivo da revocação: "
+msgstr "motivo da revocação: "
 
 msgid "|N|Please enter a new PIN for the key to create qualified signatures."
 msgstr ""
@@ -6138,32 +6200,34 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting new PIN: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to store the fingerprint: %s\n"
-msgstr "falha ao inicializar a base de dados de confiança: %s\n"
+msgstr "falha ao inicializar a base de dados de confiança: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to store the creation date: %s\n"
 msgstr "falha ao criar 'cache' do porta-chaves: %s\n"
 
-#, fuzzy, c-format
-msgid "reading public key failed: %s\n"
-msgstr "remoção do bloco de chave falhou: %s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr ""
-
 msgid "response does not contain the RSA modulus\n"
 msgstr ""
 
 msgid "response does not contain the RSA public exponent\n"
 msgstr ""
 
-msgid "response does not contain the EC public point\n"
+#, fuzzy
+#| msgid "remove keys from the public keyring"
+msgid "response does not contain the EC public key\n"
+msgstr "remover chaves do porta-chaves público"
+
+msgid "response does not contain the public key data\n"
 msgstr ""
 
+#, fuzzy, c-format
+msgid "reading public key failed: %s\n"
+msgstr "remoção do bloco de chave falhou: %s\n"
+
 #, c-format
 msgid "using default PIN as %s\n"
 msgstr ""
@@ -6186,7 +6250,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "verify CHV%d failed: %s\n"
-msgstr "A geração de chaves falhou: %s\n"
+msgstr "A geração de chaves falhou: %s\n"
 
 msgid "error retrieving CHV status from card\n"
 msgstr ""
@@ -6216,7 +6280,7 @@ msgstr ""
 
 #, fuzzy
 msgid "||Please enter the Reset Code for the card"
-msgstr "motivo da revocação: "
+msgstr "motivo da revocação: "
 
 #, c-format
 msgid "Reset Code is too short; minimum length is %d\n"
@@ -6252,7 +6316,7 @@ msgstr "%s: erro ao ler registo livre: %s\n"
 
 #, fuzzy
 msgid "key already exists\n"
-msgstr "%s' já comprimido\n"
+msgstr "%s' já comprimido\n"
 
 msgid "existing key will be replaced\n"
 msgstr ""
@@ -6274,25 +6338,25 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "failed to store the key: %s\n"
-msgstr "falha ao inicializar a base de dados de confiança: %s\n"
+msgstr "falha ao inicializar a base de dados de confiança: %s\n"
 
 #, fuzzy
 #| msgid "unsupported URI"
 msgid "unsupported curve\n"
-msgstr "URI não suportado"
+msgstr "URI não suportado"
 
 msgid "please wait while key is being generated ...\n"
 msgstr ""
 
 #, fuzzy
 msgid "generating key failed\n"
-msgstr "remoção do bloco de chave falhou: %s\n"
+msgstr "remoção do bloco de chave falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "key generation completed (%d second)\n"
 msgid_plural "key generation completed (%d seconds)\n"
-msgstr[0] "A geração de chaves falhou: %s\n"
-msgstr[1] "A geração de chaves falhou: %s\n"
+msgstr[0] "A geração de chaves falhou: %s\n"
+msgstr[1] "A geração de chaves falhou: %s\n"
 
 msgid "invalid structure of OpenPGP card (DO 0x93)\n"
 msgstr ""
@@ -6314,7 +6378,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "can't access %s - invalid OpenPGP card?\n"
-msgstr "nenhum dado OpenPGP válido encontrado.\n"
+msgstr "nenhum dado OpenPGP válido encontrado.\n"
 
 #, fuzzy
 msgid "||Please enter your PIN at the reader's pinpad"
@@ -6334,18 +6398,18 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|write a log to FILE"
-msgstr "|FICHEIRO|carregar módulo de extensão FICHEIRO"
+msgstr "|FICHEIRO|carregar módulo de extensão FICHEIRO"
 
 msgid "|N|connect to reader at port N"
 msgstr ""
 
 #, fuzzy
 msgid "|NAME|use NAME as ct-API driver"
-msgstr "|NOME|usar NOME como destinatário por omissão"
+msgstr "|NOME|usar NOME como destinatário por omissão"
 
 #, fuzzy
 msgid "|NAME|use NAME as PC/SC driver"
-msgstr "|NOME|usar NOME como destinatário por omissão"
+msgstr "|NOME|usar NOME como destinatário por omissão"
 
 #, fuzzy
 msgid "do not use the internal CCID driver"
@@ -6366,7 +6430,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Usage: @SCDAEMON@ [options] (-h for help)"
-msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
+msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
 
 msgid ""
 "Syntax: scdaemon [options] [command [args]]\n"
@@ -6386,11 +6450,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid radix64 character %02x skipped\n"
-msgstr "caracter radix64 inválido %02x ignorado\n"
+msgstr "caracter radix64 inválido %02x ignorado\n"
 
 #, fuzzy
 msgid "no dirmngr running in this session\n"
-msgstr "o gpg-agent não está disponível nesta sessão\n"
+msgstr "o gpg-agent não está disponível nesta sessão\n"
 
 #, c-format
 msgid "validation model requested by certificate: %s"
@@ -6405,7 +6469,7 @@ msgstr "help"
 
 #, fuzzy, c-format
 msgid "critical certificate extension %s is not supported"
-msgstr "a versão %d do protocolo gpg-agent não é suportada\n"
+msgstr "a versão %d do protocolo gpg-agent não é suportada\n"
 
 msgid "issuer certificate is not marked as a CA"
 msgstr ""
@@ -6415,7 +6479,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "failed to open '%s': %s\n"
-msgstr "impossível abrir `%s': %s\n"
+msgstr "impossível abrir `%s': %s\n"
 
 #, fuzzy
 msgid "Note: non-critical certificate policy not allowed"
@@ -6437,15 +6501,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "number of matching certificates: %d\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, fuzzy, c-format
 msgid "dirmngr cache-only key lookup failed: %s\n"
-msgstr "remoção do bloco de chave falhou: %s\n"
+msgstr "remoção do bloco de chave falhou: %s\n"
 
 #, fuzzy
 msgid "failed to allocate keyDB handle\n"
-msgstr "falha ao inicializar a base de dados de confiança: %s\n"
+msgstr "falha ao inicializar a base de dados de confiança: %s\n"
 
 #, fuzzy
 msgid "certificate has been revoked"
@@ -6459,7 +6523,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "checking the CRL failed: %s"
-msgstr "verificação da assinatura criada falhou: %s\n"
+msgstr "verificação da assinatura criada falhou: %s\n"
 
 #, c-format
 msgid "certificate with invalid validity: %s"
@@ -6510,7 +6574,7 @@ msgstr "        novas assinaturas: %lu\n"
 
 #, fuzzy
 msgid "  (certificate created at "
-msgstr "chave %08lX: certificado de revogação \"%s\" adicionado\n"
+msgstr "chave %08lX: certificado de revogação \"%s\" adicionado\n"
 
 #, fuzzy
 msgid "  (certificate valid from "
@@ -6521,7 +6585,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "fingerprint=%s\n"
-msgstr "mostra impressão digital"
+msgstr "mostra impressão digital"
 
 msgid "root certificate has now been marked as trusted\n"
 msgstr ""
@@ -6537,7 +6601,7 @@ msgstr ""
 
 #, fuzzy
 msgid "no issuer found in certificate"
-msgstr "gerar um certificado de revogação"
+msgstr "gerar um certificado de revogação"
 
 msgid "self-signed certificate has a BAD signature"
 msgstr ""
@@ -6547,7 +6611,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "checking the trust list failed: %s\n"
-msgstr "verificação da assinatura criada falhou: %s\n"
+msgstr "verificação da assinatura criada falhou: %s\n"
 
 msgid "certificate chain too long\n"
 msgstr ""
@@ -6568,11 +6632,11 @@ msgstr ""
 
 #, fuzzy
 msgid "certificate is good\n"
-msgstr "preferência %c%lu duplicada\n"
+msgstr "preferência %c%lu duplicada\n"
 
 #, fuzzy
 msgid "intermediate certificate is good\n"
-msgstr "chave %08lX: certificado de revogação \"%s\" adicionado\n"
+msgstr "chave %08lX: certificado de revogação \"%s\" adicionado\n"
 
 #, fuzzy
 msgid "root certificate is good\n"
@@ -6594,11 +6658,11 @@ msgstr ""
 
 #, fuzzy
 msgid "none"
-msgstr "não"
+msgstr "não"
 
 #, fuzzy
 msgid "[Error - invalid encoding]"
-msgstr "%s: versão de ficheiro inválida %d\n"
+msgstr "%s: versão de ficheiro inválida %d\n"
 
 msgid "[Error - out of core]"
 msgstr ""
@@ -6608,7 +6672,7 @@ msgstr ""
 
 #, fuzzy
 msgid "[Error - invalid DN]"
-msgstr "%s: versão de ficheiro inválida %d\n"
+msgstr "%s: versão de ficheiro inválida %d\n"
 
 #, fuzzy, c-format
 msgid ""
@@ -6651,7 +6715,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "line %d: invalid algorithm\n"
-msgstr "algoritmo de dispersão inválido `%s'\n"
+msgstr "algoritmo de dispersão inválido `%s'\n"
 
 #, c-format
 msgid "line %d: invalid key length %u (valid are %d to %d)\n"
@@ -6663,19 +6727,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "line %d: invalid subject name label '%.*s'\n"
-msgstr "algoritmo de dispersão inválido `%s'\n"
+msgstr "algoritmo de dispersão inválido `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid subject name '%s' at pos %d\n"
-msgstr "algoritmo de dispersão inválido `%s'\n"
+msgstr "algoritmo de dispersão inválido `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: not a valid email address\n"
-msgstr "Endereço eletrónico inválido\n"
+msgstr "Endereço eletrónico inválido\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid serial number\n"
-msgstr "algoritmo de dispersão inválido `%s'\n"
+msgstr "algoritmo de dispersão inválido `%s'\n"
 
 #, c-format
 msgid "line %d: invalid issuer name label '%.*s'\n"
@@ -6687,7 +6751,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "line %d: invalid date given\n"
-msgstr "algoritmo de dispersão inválido `%s'\n"
+msgstr "algoritmo de dispersão inválido `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: error getting signing key by keygrip '%s': %s\n"
@@ -6695,19 +6759,19 @@ msgstr "erro ao criar porta-chaves `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid hash algorithm given\n"
-msgstr "algoritmo de dispersão inválido `%s'\n"
+msgstr "algoritmo de dispersão inválido `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid authority-key-id\n"
-msgstr "algoritmo de dispersão inválido `%s'\n"
+msgstr "algoritmo de dispersão inválido `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid subject-key-id\n"
-msgstr "chave %08lX: ligação de subchave inválida\n"
+msgstr "chave %08lX: ligação de subchave inválida\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid extension syntax\n"
-msgstr "algoritmo de dispersão inválido `%s'\n"
+msgstr "algoritmo de dispersão inválido `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: error reading key '%s' from card: %s\n"
@@ -6719,7 +6783,7 @@ msgstr "erro ao criar porta-chaves `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: key generation failed: %s <%s>\n"
-msgstr "A geração de chaves falhou: %s\n"
+msgstr "A geração de chaves falhou: %s\n"
 
 msgid ""
 "To complete this certificate request please enter the passphrase for the key "
@@ -6744,7 +6808,7 @@ msgstr "%s: erro ao ler registo livre: %s\n"
 
 #, fuzzy, c-format
 msgid "Serial number of the card: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, fuzzy
 msgid "Available keys:\n"
@@ -6774,7 +6838,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "Invalid subject name label '%.*s'\n"
-msgstr "algoritmo de dispersão inválido `%s'\n"
+msgstr "algoritmo de dispersão inválido `%s'\n"
 
 #. TRANSLATORS: The 22 in the second string is the
 #. length of the first string up to the "%s".  Please
@@ -6783,14 +6847,14 @@ msgstr "algoritmo de dispers
 #. drop everything after the number.
 #, fuzzy, c-format
 msgid "Invalid subject name '%s'\n"
-msgstr "algoritmo de dispersão inválido `%s'\n"
+msgstr "algoritmo de dispersão inválido `%s'\n"
 
 msgid "22 translator: see certreg-ui.c:gpgsm_gencertreq_tty"
 msgstr ""
 
 #, fuzzy
 msgid "Enter email addresses"
-msgstr "Endereço de correio eletrónico: "
+msgstr "Endereço de correio eletrónico: "
 
 #, fuzzy
 msgid " (end with an empty line):\n"
@@ -6813,7 +6877,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Create self-signed certificate? (y/N) "
-msgstr "Gerar um certificado de revogação para esta assinatura? (s/N)"
+msgstr "Gerar um certificado de revogação para esta assinatura? (s/N)"
 
 msgid "These parameters are used:\n"
 msgstr ""
@@ -6823,7 +6887,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Now creating certificate request.  "
-msgstr "chave %08lX: certificado de revogação \"%s\" adicionado\n"
+msgstr "chave %08lX: certificado de revogação \"%s\" adicionado\n"
 
 msgid "This may take a while ...\n"
 msgstr ""
@@ -6845,7 +6909,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "certificate '%s' not found: %s\n"
-msgstr "chave `%s' não encontrada: %s\n"
+msgstr "chave `%s' não encontrada: %s\n"
 
 #, fuzzy, c-format
 msgid "error locking keybox: %s\n"
@@ -6853,19 +6917,19 @@ msgstr "erro na leitura do bloco de chave: %s\n"
 
 #, fuzzy, c-format
 msgid "duplicated certificate '%s' deleted\n"
-msgstr "chave %08lX: certificado de revogação \"%s\" adicionado\n"
+msgstr "chave %08lX: certificado de revogação \"%s\" adicionado\n"
 
 #, fuzzy, c-format
 msgid "certificate '%s' deleted\n"
-msgstr "preferência %c%lu duplicada\n"
+msgstr "preferência %c%lu duplicada\n"
 
 #, fuzzy, c-format
 msgid "deleting certificate \"%s\" failed: %s\n"
-msgstr "remoção do bloco de chave falhou: %s\n"
+msgstr "remoção do bloco de chave falhou: %s\n"
 
 #, fuzzy
 msgid "no valid recipients given\n"
-msgstr "resposta do agente inválida\n"
+msgstr "resposta do agente inválida\n"
 
 #, fuzzy
 msgid "list external keys"
@@ -6894,7 +6958,7 @@ msgstr ""
 
 #, fuzzy
 msgid "create base-64 encoded output"
-msgstr "criar saída com armadura ascii"
+msgstr "criar saída com armadura ascii"
 
 msgid "assume input is in PEM format"
 msgstr ""
@@ -6931,30 +6995,30 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|write an audit log to FILE"
-msgstr "|FICHEIRO|carregar módulo de extensão FICHEIRO"
+msgstr "|FICHEIRO|carregar módulo de extensão FICHEIRO"
 
 msgid "batch mode: never ask"
-msgstr "modo não-interactivo: nunca perguntar"
+msgstr "modo não-interactivo: nunca perguntar"
 
 msgid "assume yes on most questions"
 msgstr "assumir sim para a maioria das perguntas"
 
 msgid "assume no on most questions"
-msgstr "assumir não para a maioria das perguntas"
+msgstr "assumir não para a maioria das perguntas"
 
 #, fuzzy
 msgid "|FILE|add keyring to the list of keyrings"
 msgstr ""
 "adicionar este porta-chaves\n"
-"à lista de porta-chaves"
+"à lista de porta-chaves"
 
 #, fuzzy
 msgid "|USER-ID|use USER-ID as default secret key"
-msgstr "|NOME|usar NOME como chave secreta por omissão"
+msgstr "|NOME|usar NOME como chave secreta por omissão"
 
 #, fuzzy
 msgid "|SPEC|use this keyserver to lookup keys"
-msgstr "|ENDEREÇO|usar este servidor para buscar chaves"
+msgstr "|ENDEREÇO|usar este servidor para buscar chaves"
 
 msgid "|NAME|use cipher algorithm NAME"
 msgstr "|NOME|usar algoritmo de criptografia NOME"
@@ -6965,7 +7029,7 @@ msgstr "|NOME|usar algoritmo de \"digest\" de mensagens NOME"
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: @GPGSM@ [options] [files] (-h for help)"
-msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
+msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
 
 #, fuzzy
 msgid ""
@@ -6973,17 +7037,17 @@ msgid ""
 "Sign, check, encrypt or decrypt using the S/MIME protocol\n"
 "Default operation depends on the input data\n"
 msgstr ""
-"Sintaxe: gpg [opções] [ficheiros]\n"
+"Sintaxe: gpg [opções] [ficheiros]\n"
 "assina, verifica, cifra ou decifra\n"
-"a operação por omissão depende dos dados de entrada\n"
+"a operação por omissão depende dos dados de entrada\n"
 
 #, fuzzy, c-format
 msgid "Note: won't be able to encrypt to '%s': %s\n"
-msgstr "impossível ligar a `%s': %s\n"
+msgstr "impossível ligar a `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "unknown validation model '%s'\n"
-msgstr "destinatário por omissão desconhecido `%s'\n"
+msgstr "destinatário por omissão desconhecido `%s'\n"
 
 #, c-format
 msgid "%s:%u: no hostname given\n"
@@ -6999,7 +7063,7 @@ msgstr " s = saltar esta chave\n"
 
 #, fuzzy
 msgid "could not parse keyserver\n"
-msgstr "não consegui processar a URI do servidor de chaves\n"
+msgstr "não consegui processar a URI do servidor de chaves\n"
 
 #, fuzzy, c-format
 msgid "importing common certificates '%s'\n"
@@ -7007,29 +7071,29 @@ msgstr "a escrever para `%s'\n"
 
 #, fuzzy, c-format
 msgid "can't sign using '%s': %s\n"
-msgstr "impossível fechar `%s': %s\n"
+msgstr "impossível fechar `%s': %s\n"
 
 msgid "invalid command (there is no implicit command)\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "total number processed: %lu\n"
-msgstr "Número total processado: %lu\n"
+msgstr "Número total processado: %lu\n"
 
 #, fuzzy
 msgid "error storing certificate\n"
-msgstr "gerar um certificado de revogação"
+msgstr "gerar um certificado de revogação"
 
 msgid "basic certificate checks failed - not imported\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting stored flags: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, fuzzy, c-format
 msgid "error importing certificate: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, fuzzy, c-format
 msgid "error reading input: %s\n"
@@ -7037,7 +7101,7 @@ msgstr "erro na leitura de `%s': %s\n"
 
 #, fuzzy
 msgid "failed to get the fingerprint\n"
-msgstr "falha ao inicializar a base de dados de confiança: %s\n"
+msgstr "falha ao inicializar a base de dados de confiança: %s\n"
 
 #, c-format
 msgid "problem looking for existing certificate: %s\n"
@@ -7045,15 +7109,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error finding writable keyDB: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, fuzzy, c-format
 msgid "error storing certificate: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, fuzzy, c-format
 msgid "problem re-searching certificate: %s\n"
-msgstr "rev? problema ao verificar revogação: %s\n"
+msgstr "rev? problema ao verificar revogação: %s\n"
 
 #, fuzzy, c-format
 msgid "error storing flags: %s\n"
@@ -7067,11 +7131,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid formatted fingerprint in '%s', line %d\n"
-msgstr "%s: versão de ficheiro inválida %d\n"
+msgstr "%s: versão de ficheiro inválida %d\n"
 
 #, fuzzy, c-format
 msgid "invalid country code in '%s', line %d\n"
-msgstr "%s: versão de ficheiro inválida %d\n"
+msgstr "%s: versão de ficheiro inválida %d\n"
 
 #, c-format
 msgid ""
@@ -7097,7 +7161,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "hash algorithm %d (%s) for signer %d not supported; using %s\n"
-msgstr "algoritmo de protecção %d%s não é suportado\n"
+msgstr "algoritmo de protecção %d%s não é suportado\n"
 
 #, c-format
 msgid "hash algorithm used for signer %d: %s (%s)\n"
@@ -7105,7 +7169,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "checking for qualified certificate failed: %s\n"
-msgstr "verificação da assinatura criada falhou: %s\n"
+msgstr "verificação da assinatura criada falhou: %s\n"
 
 #, fuzzy
 msgid "Signature made "
@@ -7116,7 +7180,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid " using certificate ID 0x%08lX\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 msgid ""
 "invalid signature: message digest attribute does not match computed one\n"
@@ -7134,11 +7198,11 @@ msgstr "                   ou \""
 msgid "This is a qualified signature\n"
 msgstr ""
 "\n"
-"Isto será uma auto-assinatura.\n"
+"Isto será uma auto-assinatura.\n"
 
 #, fuzzy, c-format
 msgid "can't initialize certificate cache lock: %s\n"
-msgstr "verificação da assinatura criada falhou: %s\n"
+msgstr "verificação da assinatura criada falhou: %s\n"
 
 #, c-format
 msgid "can't acquire read lock on the certificate cache: %s\n"
@@ -7159,23 +7223,23 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "can't create `%s': %s\n"
 msgid "can't parse certificate '%s': %s\n"
-msgstr "impossível criar `%s': %s\n"
+msgstr "impossível criar `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "certificate '%s' already cached\n"
-msgstr "preferência %c%lu duplicada\n"
+msgstr "preferência %c%lu duplicada\n"
 
 #, fuzzy, c-format
 msgid "trusted certificate '%s' loaded\n"
-msgstr "chave %08lX: certificado de revogação \"%s\" adicionado\n"
+msgstr "chave %08lX: certificado de revogação \"%s\" adicionado\n"
 
 #, fuzzy, c-format
 msgid "certificate '%s' loaded\n"
-msgstr "preferência %c%lu duplicada\n"
+msgstr "preferência %c%lu duplicada\n"
 
 #, fuzzy, c-format
 msgid "  SHA1 fingerprint = %s\n"
-msgstr "mostra impressão digital"
+msgstr "mostra impressão digital"
 
 msgid "   issuer ="
 msgstr ""
@@ -7185,7 +7249,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error loading certificate '%s': %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, fuzzy, c-format
 msgid "permanently loaded certificates: %u\n"
@@ -7193,43 +7257,43 @@ msgstr "certificado incorrecto"
 
 #, fuzzy, c-format
 msgid "    runtime cached certificates: %u\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, fuzzy
 msgid "certificate already cached\n"
-msgstr "chave %08lX: certificado de revogação \"%s\" adicionado\n"
+msgstr "chave %08lX: certificado de revogação \"%s\" adicionado\n"
 
 #, fuzzy
 msgid "certificate cached\n"
-msgstr "preferência %c%lu duplicada\n"
+msgstr "preferência %c%lu duplicada\n"
 
 #, fuzzy, c-format
 msgid "error caching certificate: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, fuzzy, c-format
 msgid "invalid SHA1 fingerprint string '%s'\n"
-msgstr "%s: versão de ficheiro inválida %d\n"
+msgstr "%s: versão de ficheiro inválida %d\n"
 
 #, fuzzy, c-format
 msgid "error fetching certificate by S/N: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, fuzzy, c-format
 msgid "error fetching certificate by subject: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, fuzzy
 msgid "no issuer found in certificate\n"
-msgstr "gerar um certificado de revogação"
+msgstr "gerar um certificado de revogação"
 
 #, fuzzy, c-format
 msgid "error getting authorityKeyIdentifier: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, fuzzy, c-format
 msgid "creating directory '%s'\n"
-msgstr "%s: impossível criar directoria: %s\n"
+msgstr "%s: impossível criar directoria: %s\n"
 
 #, fuzzy, c-format
 msgid "error creating directory '%s': %s\n"
@@ -7237,7 +7301,7 @@ msgstr "erro ao criar porta-chaves `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "ignoring database dir '%s'\n"
-msgstr "erro na última linha\n"
+msgstr "erro na última linha\n"
 
 #, fuzzy, c-format
 msgid "error reading directory '%s': %s\n"
@@ -7245,12 +7309,12 @@ msgstr "erro na leitura de `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "removing cache file '%s'\n"
-msgstr "remoção do bloco de chave falhou: %s\n"
+msgstr "remoção do bloco de chave falhou: %s\n"
 
 #, fuzzy, c-format
 #| msgid "enarmoring failed: %s\n"
 msgid "not removing file '%s'\n"
-msgstr "criação de armadura falhou: %s\n"
+msgstr "criação de armadura falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "error closing cache file: %s\n"
@@ -7258,11 +7322,11 @@ msgstr "erro na leitura de `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "failed to open cache dir file '%s': %s\n"
-msgstr "impossível abrir `%s': %s\n"
+msgstr "impossível abrir `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error creating new cache dir file '%s': %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing secret keyring `%s': %s\n"
@@ -7276,11 +7340,11 @@ msgstr "erro na leitura de `%s': %s\n"
 #, fuzzy, c-format
 #| msgid "new configuration file `%s' created\n"
 msgid "new cache dir file '%s' created\n"
-msgstr "criado um novo ficheiro de configuração `%s'\n"
+msgstr "criado um novo ficheiro de configuração `%s'\n"
 
 #, fuzzy, c-format
 msgid "failed to re-open cache dir file '%s': %s\n"
-msgstr "%s: impossível criar directoria: %s\n"
+msgstr "%s: impossível criar directoria: %s\n"
 
 #, c-format
 msgid "first record of '%s' is not the version\n"
@@ -7298,11 +7362,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid line detected in '%s' line %u\n"
-msgstr "%s: versão de ficheiro inválida %d\n"
+msgstr "%s: versão de ficheiro inválida %d\n"
 
 #, fuzzy, c-format
 msgid "duplicate entry detected in '%s' line %u\n"
-msgstr "chave %08lX: certificado de revogação \"%s\" adicionado\n"
+msgstr "chave %08lX: certificado de revogação \"%s\" adicionado\n"
 
 #, c-format
 msgid "unsupported record type in '%s' line %u skipped\n"
@@ -7310,7 +7374,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid issuer hash in '%s' line %u\n"
-msgstr "%s: versão de ficheiro inválida %d\n"
+msgstr "%s: versão de ficheiro inválida %d\n"
 
 #, fuzzy, c-format
 msgid "no issuer DN in '%s' line %u\n"
@@ -7318,13 +7382,13 @@ msgstr "armadura: %s\n"
 
 #, fuzzy, c-format
 msgid "invalid timestamp in '%s' line %u\n"
-msgstr "%s: versão de ficheiro inválida %d\n"
+msgstr "%s: versão de ficheiro inválida %d\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: invalid size of random_seed file - not used\n"
 msgid "WARNING: invalid cache file hash in '%s' line %u\n"
 msgstr ""
-"AVISO: o ficheiro random_seed tem um tamanho inválido - não utilizado\n"
+"AVISO: o ficheiro random_seed tem um tamanho inválido - não utilizado\n"
 
 msgid "detected errors in cache dir file\n"
 msgstr ""
@@ -7334,7 +7398,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "failed to create temporary cache dir file '%s': %s\n"
-msgstr "%s: impossível criar directoria: %s\n"
+msgstr "%s: impossível criar directoria: %s\n"
 
 #, fuzzy, c-format
 msgid "error closing '%s': %s\n"
@@ -7347,7 +7411,7 @@ msgstr "erro na leitura de `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "can't hash '%s': %s\n"
-msgstr "impossível fechar `%s': %s\n"
+msgstr "impossível fechar `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error setting up MD5 hash context: %s\n"
@@ -7359,7 +7423,7 @@ msgstr "erro na leitura de `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "invalid formatted checksum for '%s'\n"
-msgstr "%s: versão de ficheiro inválida %d\n"
+msgstr "%s: versão de ficheiro inválida %d\n"
 
 msgid "too many open cache files; can't open anymore\n"
 msgstr ""
@@ -7384,12 +7448,12 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "failed to create a new cache object: %s\n"
-msgstr "%s: falha ao criar tabela de dispersão: %s\n"
+msgstr "%s: falha ao criar tabela de dispersão: %s\n"
 
 #, fuzzy, c-format
 #| msgid "No help available for `%s'"
 msgid "no CRL available for issuer id %s\n"
-msgstr "Nenhuma ajuda disponível para `%s'"
+msgstr "Nenhuma ajuda disponível para `%s'"
 
 #, c-format
 msgid "cached CRL for issuer id %s too old; update required\n"
@@ -7430,12 +7494,12 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting data from cache file: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid hash algorithm `%s'\n"
 msgid "unknown hash algorithm '%s'\n"
-msgstr "algoritmo de dispersão inválido `%s'\n"
+msgstr "algoritmo de dispersão inválido `%s'\n"
 
 #, c-format
 msgid "gcry_md_open for algorithm %d failed: %s\n"
@@ -7446,19 +7510,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "converting S-expression failed: %s\n"
-msgstr "impossível abrir %s: %s\n"
+msgstr "impossível abrir %s: %s\n"
 
 #, fuzzy, c-format
 msgid "creating S-expression failed: %s\n"
-msgstr "remoção do bloco de chave falhou: %s\n"
+msgstr "remoção do bloco de chave falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "ksba_crl_parse failed: %s\n"
-msgstr "actualização falhou: %s\n"
+msgstr "actualização falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "error getting update times of CRL: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, c-format
 msgid "update times of this CRL: this=%s next=%s\n"
@@ -7469,7 +7533,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting CRL item: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, fuzzy, c-format
 msgid "error inserting item into temporary cache file: %s\n"
@@ -7477,7 +7541,7 @@ msgstr "a escrever para `%s'\n"
 
 #, fuzzy, c-format
 msgid "no CRL issuer found in CRL: %s\n"
-msgstr "gerar um certificado de revogação"
+msgstr "gerar um certificado de revogação"
 
 msgid "locating CRL issuer certificate by authorityKeyIdentifier\n"
 msgstr ""
@@ -7485,36 +7549,36 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "signature verification suppressed\n"
 msgid "CRL signature verification failed: %s\n"
-msgstr "verificação de assinatura suprimida\n"
+msgstr "verificação de assinatura suprimida\n"
 
 #, fuzzy, c-format
 msgid "error checking validity of CRL issuer certificate: %s\n"
-msgstr "verificação da assinatura criada falhou: %s\n"
+msgstr "verificação da assinatura criada falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "ksba_crl_new failed: %s\n"
-msgstr "remoção do bloco de chave falhou: %s\n"
+msgstr "remoção do bloco de chave falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "ksba_crl_set_reader failed: %s\n"
-msgstr "actualização falhou: %s\n"
+msgstr "actualização falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "removed stale temporary cache file '%s'\n"
-msgstr "%s: impossível criar directoria: %s\n"
+msgstr "%s: impossível criar directoria: %s\n"
 
 #, fuzzy, c-format
 msgid "problem removing stale temporary cache file '%s': %s\n"
-msgstr "%s: impossível criar directoria: %s\n"
+msgstr "%s: impossível criar directoria: %s\n"
 
 #, fuzzy, c-format
 msgid "error creating temporary cache file '%s': %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, fuzzy, c-format
 #| msgid "update secret failed: %s\n"
 msgid "crl_parse_insert failed: %s\n"
-msgstr "actualização da chave secreta falhou: %s\n"
+msgstr "actualização da chave secreta falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "error finishing temporary cache file '%s': %s\n"
@@ -7522,7 +7586,7 @@ msgstr "a escrever para `%s'\n"
 
 #, fuzzy, c-format
 msgid "error closing temporary cache file '%s': %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, c-format
 msgid "WARNING: new CRL still too old; it expired on %s - loading anyway\n"
@@ -7542,11 +7606,11 @@ msgstr "erro na leitura de `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "creating cache file '%s'\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, fuzzy, c-format
 msgid "problem renaming '%s' to '%s': %s\n"
-msgstr "criação de armadura falhou: %s\n"
+msgstr "criação de armadura falhou: %s\n"
 
 msgid ""
 "updating the DIR file failed - cache entry will get lost with the next "
@@ -7576,7 +7640,7 @@ msgstr ""
 #| msgid "WARNING: invalid size of random_seed file - not used\n"
 msgid " WARNING: invalid cache record length\n"
 msgstr ""
-"AVISO: o ficheiro random_seed tem um tamanho inválido - não utilizado\n"
+"AVISO: o ficheiro random_seed tem um tamanho inválido - não utilizado\n"
 
 #, fuzzy, c-format
 msgid "problem reading cache record: %s\n"
@@ -7584,7 +7648,7 @@ msgstr "%s: erro ao ler registo livre: %s\n"
 
 #, fuzzy, c-format
 msgid "problem reading cache key: %s\n"
-msgstr "rev? problema ao verificar revogação: %s\n"
+msgstr "rev? problema ao verificar revogação: %s\n"
 
 #, fuzzy, c-format
 msgid "error reading cache entry from db: %s\n"
@@ -7595,15 +7659,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "crl_fetch via DP failed: %s\n"
-msgstr "actualização falhou: %s\n"
+msgstr "actualização falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "crl_cache_insert via DP failed: %s\n"
-msgstr "verificação da assinatura criada falhou: %s\n"
+msgstr "verificação da assinatura criada falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "crl_cache_insert via issuer failed: %s\n"
-msgstr "remoção do bloco de chave falhou: %s\n"
+msgstr "remoção do bloco de chave falhou: %s\n"
 
 msgid "reader to file mapping table full - waiting\n"
 msgstr ""
@@ -7618,7 +7682,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "%s: error writing dir record: %s\n"
 msgid "error initializing reader object: %s\n"
-msgstr "%s: erro ao escrever registo de diretório: %s\n"
+msgstr "%s: erro ao escrever registo de diretório: %s\n"
 
 #, c-format
 msgid "URL '%s' redirected to '%s' (%u)\n"
@@ -7626,7 +7690,7 @@ msgstr ""
 
 #, fuzzy
 msgid "too many redirections\n"
-msgstr "demasiadas preferências `%c'\n"
+msgstr "demasiadas preferências `%c'\n"
 
 #, fuzzy, c-format
 msgid "error retrieving '%s': %s\n"
@@ -7638,11 +7702,11 @@ msgstr "erro na leitura de `%s': %s\n"
 
 #, fuzzy
 msgid "CRL access not possible due to Tor mode\n"
-msgstr "chave `%s' não encontrada: %s\n"
+msgstr "chave `%s' não encontrada: %s\n"
 
 #, fuzzy, c-format
 msgid "certificate search not possible due to disabled %s\n"
-msgstr "chave `%s' não encontrada: %s\n"
+msgstr "chave `%s' não encontrada: %s\n"
 
 msgid "use OCSP instead of CRLs"
 msgstr ""
@@ -7652,7 +7716,7 @@ msgstr ""
 
 #, fuzzy
 msgid "add a certificate to the cache"
-msgstr "chave %08lX: certificado de revogação \"%s\" adicionado\n"
+msgstr "chave %08lX: certificado de revogação \"%s\" adicionado\n"
 
 #, fuzzy
 msgid "validate a certificate"
@@ -7687,7 +7751,7 @@ msgstr "Insira o ID de utilizador do revogador escolhido: "
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: dirmngr-client [options] [certfile|pattern] (-h for help)\n"
-msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
+msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
 
 msgid ""
 "Syntax: dirmngr-client [options] [certfile|pattern]\n"
@@ -7698,7 +7762,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error reading certificate from stdin: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, fuzzy, c-format
 msgid "error reading certificate from '%s': %s\n"
@@ -7710,27 +7774,27 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to the dirmngr: %s\n"
-msgstr "impossível ligar a `%s': %s\n"
+msgstr "impossível ligar a `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "update failed: %s\n"
 msgid "lookup failed: %s\n"
-msgstr "actualização falhou: %s\n"
+msgstr "actualização falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "loading CRL '%s' failed: %s\n"
-msgstr "criação de armadura falhou: %s\n"
+msgstr "criação de armadura falhou: %s\n"
 
 msgid "a dirmngr daemon is up and running\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "validation of certificate failed: %s\n"
-msgstr "remoção do bloco de chave falhou: %s\n"
+msgstr "remoção do bloco de chave falhou: %s\n"
 
 #, fuzzy
 msgid "certificate is valid\n"
-msgstr "preferência %c%lu duplicada\n"
+msgstr "preferência %c%lu duplicada\n"
 
 #, fuzzy
 msgid "certificate has been revoked\n"
@@ -7738,12 +7802,12 @@ msgstr "NOTA: a chave foi revogada"
 
 #, fuzzy, c-format
 msgid "certificate check failed: %s\n"
-msgstr "remoção do bloco de chave falhou: %s\n"
+msgstr "remoção do bloco de chave falhou: %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't stat `%s': %s\n"
 msgid "got status: '%s'\n"
-msgstr "impossível 'stat' a `%s': %s\n"
+msgstr "impossível 'stat' a `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing secret keyring `%s': %s\n"
@@ -7768,7 +7832,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|load CRL from FILE into cache"
-msgstr "|FICHEIRO|carregar módulo de extensão FICHEIRO"
+msgstr "|FICHEIRO|carregar módulo de extensão FICHEIRO"
 
 msgid "|URL|fetch a CRL from URL"
 msgstr ""
@@ -7792,6 +7856,9 @@ msgstr ""
 msgid "allow sending OCSP requests"
 msgstr ""
 
+msgid "allow online software version check"
+msgstr ""
+
 msgid "inhibit the use of HTTP"
 msgstr ""
 
@@ -7818,7 +7885,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|read LDAP server list from FILE"
-msgstr "|FICHEIRO|carregar módulo de extensão FICHEIRO"
+msgstr "|FICHEIRO|carregar módulo de extensão FICHEIRO"
 
 msgid "add new servers discovered in CRL distribution points to serverlist"
 msgstr ""
@@ -7828,7 +7895,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|URL|use OCSP responder at URL"
-msgstr "não consegui processar a URI do servidor de chaves\n"
+msgstr "não consegui processar a URI do servidor de chaves\n"
 
 msgid "|FPR|OCSP response signed by FPR"
 msgstr ""
@@ -7852,11 +7919,11 @@ msgid ""
 "options)\n"
 msgstr ""
 "@\n"
-"(Veja a página man para uma lista completa de comandos e opções)\n"
+"(Veja a página man para uma lista completa de comandos e opções)\n"
 
 #, fuzzy
 msgid "Usage: @DIRMNGR@ [options] (-h for help)"
-msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
+msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
 
 msgid ""
 "Syntax: @DIRMNGR@ [options] [command [args]]\n"
@@ -7869,20 +7936,20 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "usage: %s [options] "
-msgstr "uso: gpg [opções] "
+msgstr "uso: gpg [opções] "
 
 #, fuzzy
 #| msgid "%s not allowed with %s!\n"
 msgid "colons are not allowed in the socket name\n"
-msgstr "%s não é permitido com %s!\n"
+msgstr "%s não é permitido com %s!\n"
 
 #, fuzzy, c-format
 msgid "fetching CRL from '%s' failed: %s\n"
-msgstr "criação de armadura falhou: %s\n"
+msgstr "criação de armadura falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "processing CRL from '%s' failed: %s\n"
-msgstr "criação de armadura falhou: %s\n"
+msgstr "criação de armadura falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: line too long - skipped\n"
@@ -7890,7 +7957,7 @@ msgstr "frase secreta demasiado longa\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: invalid fingerprint detected\n"
-msgstr "%s: versão de ficheiro inválida %d\n"
+msgstr "%s: versão de ficheiro inválida %d\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: read error: %s\n"
@@ -7915,7 +7982,7 @@ msgstr ""
 
 #, fuzzy
 msgid "shutdown forced\n"
-msgstr "não processado"
+msgstr "não processado"
 
 msgid "SIGINT received - immediate shutdown\n"
 msgstr ""
@@ -7943,7 +8010,7 @@ msgstr ""
 #, fuzzy
 #| msgid "|NAME|use NAME as default recipient"
 msgid "|NAME|use user NAME for authentication"
-msgstr "|NOME|usar NOME como destinatário por omissão"
+msgstr "|NOME|usar NOME como destinatário por omissão"
 
 msgid "|PASS|use password PASS for authentication"
 msgstr ""
@@ -7963,7 +8030,7 @@ msgstr ""
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: dirmngr_ldap [options] [URL] (-h for help)\n"
-msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
+msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
 
 msgid ""
 "Syntax: dirmngr_ldap [options] [URL]\n"
@@ -7974,7 +8041,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "invalid import options\n"
 msgid "invalid port number %d\n"
-msgstr "opções de importação inválidas\n"
+msgstr "opções de importação inválidas\n"
 
 #, c-format
 msgid "scanning result for attribute '%s'\n"
@@ -7990,7 +8057,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "attribute '%s' not found\n"
-msgstr "chave `%s' não encontrada: %s\n"
+msgstr "chave `%s' não encontrada: %s\n"
 
 #, c-format
 msgid "found attribute '%s'\n"
@@ -8017,7 +8084,7 @@ msgstr "                   ou \""
 #, fuzzy, c-format
 #| msgid "          not imported: %lu\n"
 msgid "          port %d\n"
-msgstr "        não importadas: %lu\n"
+msgstr "        não importadas: %lu\n"
 
 #, fuzzy, c-format
 msgid "            DN '%s'\n"
@@ -8042,15 +8109,15 @@ msgstr ""
 #, fuzzy
 #| msgid "WARNING: using insecure memory!\n"
 msgid "WARNING: using first attribute only\n"
-msgstr "AVISO: a utilizar memória insegura!\n"
+msgstr "AVISO: a utilizar memória insegura!\n"
 
 #, fuzzy, c-format
 msgid "LDAP init to '%s:%d' failed: %s\n"
-msgstr "criação de armadura falhou: %s\n"
+msgstr "criação de armadura falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "binding to '%s:%d' failed: %s\n"
-msgstr "criação de armadura falhou: %s\n"
+msgstr "criação de armadura falhou: %s\n"
 
 #, fuzzy, c-format
 #| msgid "dearmoring failed: %s\n"
@@ -8059,17 +8126,13 @@ msgstr "retirada de armadura falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "'%s' is not an LDAP URL\n"
-msgstr "%s: não é um base de dados de confiança\n"
+msgstr "%s: não é um base de dados de confiança\n"
 
 #, c-format
 msgid "'%s' is an invalid LDAP URL\n"
 msgstr ""
 
 #, fuzzy, c-format
-msgid "error allocating memory: %s\n"
-msgstr "erro ao criar porta-chaves `%s': %s\n"
-
-#, fuzzy, c-format
 msgid "error printing log line: %s\n"
 msgstr "erro na escrita do porta-chaves `%s': %s\n"
 
@@ -8079,7 +8142,7 @@ msgstr "erro na leitura de `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "npth_select failed: %s - waiting 1s\n"
-msgstr "actualização da chave secreta falhou: %s\n"
+msgstr "actualização da chave secreta falhou: %s\n"
 
 #, c-format
 msgid "ldap wrapper %d ready"
@@ -8095,7 +8158,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "waiting for ldap wrapper %d failed: %s\n"
-msgstr "actualização falhou: %s\n"
+msgstr "actualização falhou: %s\n"
 
 #, c-format
 msgid "ldap wrapper %d stalled - killing\n"
@@ -8107,7 +8170,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "reading from ldap wrapper %d failed: %s\n"
-msgstr "remoção do bloco de chave falhou: %s\n"
+msgstr "remoção do bloco de chave falhou: %s\n"
 
 #, c-format
 msgid "invalid char 0x%02x in host name - not added\n"
@@ -8119,7 +8182,7 @@ msgstr "a procurar por \"%s\" no servidor HKP %s\n"
 
 #, fuzzy, c-format
 msgid "malloc failed: %s\n"
-msgstr "remoção do bloco de chave falhou: %s\n"
+msgstr "remoção do bloco de chave falhou: %s\n"
 
 #, c-format
 msgid "start_cert_fetch: invalid pattern '%s'\n"
@@ -8131,16 +8194,16 @@ msgstr ""
 #, fuzzy
 #| msgid "%s: invalid file version %d\n"
 msgid "invalid canonical S-expression found\n"
-msgstr "%s: versão de ficheiro inválida %d\n"
+msgstr "%s: versão de ficheiro inválida %d\n"
 
 #, fuzzy, c-format
 msgid "gcry_md_open failed: %s\n"
-msgstr "impossível abrir %s: %s\n"
+msgstr "impossível abrir %s: %s\n"
 
 #, fuzzy, c-format
 #| msgid "update secret failed: %s\n"
 msgid "oops: ksba_cert_hash failed: %s\n"
-msgstr "actualização da chave secreta falhou: %s\n"
+msgstr "actualização da chave secreta falhou: %s\n"
 
 msgid "bad URL encoding detected\n"
 msgstr ""
@@ -8155,7 +8218,7 @@ msgstr ""
 
 #, fuzzy
 msgid "OCSP request not possible due to Tor mode\n"
-msgstr "chave `%s' não encontrada: %s\n"
+msgstr "chave `%s' não encontrada: %s\n"
 
 msgid "OCSP request not possible due to disabled HTTP\n"
 msgstr ""
@@ -8190,7 +8253,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "hashing the OCSP response for '%s' failed: %s\n"
-msgstr "verificação da assinatura criada falhou: %s\n"
+msgstr "verificação da assinatura criada falhou: %s\n"
 
 msgid "not signed by a default OCSP signer's certificate"
 msgstr ""
@@ -8200,34 +8263,34 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "allocating list item failed: %s\n"
-msgstr "remoção do bloco de chave falhou: %s\n"
+msgstr "remoção do bloco de chave falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "error getting responder ID: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 msgid "no suitable certificate found to verify the OCSP response\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "issuer certificate not found: %s\n"
-msgstr "chave `%s' não encontrada: %s\n"
+msgstr "chave `%s' não encontrada: %s\n"
 
 msgid "caller did not return the target certificate\n"
 msgstr ""
 
 #, fuzzy
 msgid "caller did not return the issuing certificate\n"
-msgstr "gerar um certificado de revogação"
+msgstr "gerar um certificado de revogação"
 
 #, fuzzy, c-format
 msgid "failed to allocate OCSP context: %s\n"
-msgstr "falha ao inicializar a base de dados de confiança: %s\n"
+msgstr "falha ao inicializar a base de dados de confiança: %s\n"
 
 #, fuzzy, c-format
 #| msgid "%s: can't access: %s\n"
 msgid "can't get authorityInfoAccess: %s\n"
-msgstr "%s: impossível aceder: %s\n"
+msgstr "%s: impossível aceder: %s\n"
 
 msgid "no default OCSP responder defined\n"
 msgstr ""
@@ -8235,7 +8298,7 @@ msgstr ""
 #, fuzzy
 #| msgid "no default secret keyring: %s\n"
 msgid "no default OCSP signer defined\n"
-msgstr "sem porta-chaves público por omissão: %s\n"
+msgstr "sem porta-chaves público por omissão: %s\n"
 
 #, c-format
 msgid "using default OCSP responder '%s'\n"
@@ -8251,7 +8314,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting OCSP status for target certificate: %s\n"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 #, c-format
 msgid "certificate status is: %s  (this=%s  next=%s)\n"
@@ -8289,7 +8352,7 @@ msgstr "assinatura falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "fetch_cert_by_url failed: %s\n"
-msgstr "remoção do bloco de chave falhou: %s\n"
+msgstr "remoção do bloco de chave falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "error sending data: %s\n"
@@ -8297,11 +8360,11 @@ msgstr "erro ao enviar para `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "start_cert_fetch failed: %s\n"
-msgstr "remoção do bloco de chave falhou: %s\n"
+msgstr "remoção do bloco de chave falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "fetch_next_cert failed: %s\n"
-msgstr "remoção do bloco de chave falhou: %s\n"
+msgstr "remoção do bloco de chave falhou: %s\n"
 
 #, c-format
 msgid "max_replies %d exceeded\n"
@@ -8309,16 +8372,16 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "can't allocate control structure: %s\n"
-msgstr "impossível criar `%s': %s\n"
+msgstr "impossível criar `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "failed to allocate assuan context: %s\n"
-msgstr "%s: falha ao criar tabela de dispersão: %s\n"
+msgstr "%s: falha ao criar tabela de dispersão: %s\n"
 
 #, fuzzy, c-format
 #| msgid "failed to initialize the TrustDB: %s\n"
 msgid "failed to initialize the server: %s\n"
-msgstr "falha ao inicializar a base de dados de confiança: %s\n"
+msgstr "falha ao inicializar a base de dados de confiança: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to the register commands with Assuan: %s\n"
@@ -8339,14 +8402,14 @@ msgstr ""
 #, fuzzy
 #| msgid "checking the trustdb\n"
 msgid "CRL checking too deeply nested\n"
-msgstr "a verificar a base de dados de confiança\n"
+msgstr "a verificar a base de dados de confiança\n"
 
 msgid "not checking CRL for"
 msgstr ""
 
 #, fuzzy
 msgid "checking CRL for"
-msgstr "verificação da assinatura criada falhou: %s\n"
+msgstr "verificação da assinatura criada falhou: %s\n"
 
 #, fuzzy
 msgid "selfsigned certificate has a BAD signature"
@@ -8354,14 +8417,14 @@ msgstr "verificar uma assinatura"
 
 #, fuzzy, c-format
 msgid "checking trustworthiness of root certificate failed: %s\n"
-msgstr "verificação da assinatura criada falhou: %s\n"
+msgstr "verificação da assinatura criada falhou: %s\n"
 
 #, fuzzy
 msgid "certificate chain is good\n"
-msgstr "preferência %c%lu duplicada\n"
+msgstr "preferência %c%lu duplicada\n"
 
 msgid "DSA requires the use of a 160 bit hash algorithm\n"
-msgstr "DSA necessita de utilização de uma algoritmo de dispersão de 160 bit\n"
+msgstr "DSA necessita de utilização de uma algoritmo de dispersão de 160 bit\n"
 
 msgid "certificate should not have been used for CRL signing\n"
 msgstr ""
@@ -8393,14 +8456,14 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|run commands from FILE on startup"
-msgstr "|FICHEIRO|carregar módulo de extensão FICHEIRO"
+msgstr "|FICHEIRO|carregar módulo de extensão FICHEIRO"
 
 msgid "run /subst on startup"
 msgstr ""
 
 #, fuzzy
 msgid "Usage: @GPG@-connect-agent [options] (-h for help)"
-msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
+msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
 
 msgid ""
 "Syntax: @GPG@-connect-agent [options]\n"
@@ -8417,7 +8480,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "receiving line failed: %s\n"
-msgstr "remoção do bloco de chave falhou: %s\n"
+msgstr "remoção do bloco de chave falhou: %s\n"
 
 #, fuzzy
 msgid "line too long - skipped\n"
@@ -8428,7 +8491,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "unknown command '%s'\n"
-msgstr "destinatário por omissão desconhecido `%s'\n"
+msgstr "destinatário por omissão desconhecido `%s'\n"
 
 #, fuzzy, c-format
 msgid "sending line failed: %s\n"
@@ -8480,13 +8543,13 @@ msgstr "|N|usar mode de frase secreta N"
 
 #, fuzzy
 msgid "do not allow the reuse of old passphrases"
-msgstr "erro na criação da frase secreta: %s\n"
+msgstr "erro na criação da frase secreta: %s\n"
 
 msgid "|N|set the Pinentry timeout to N seconds"
 msgstr ""
 
 msgid "|NAME|use NAME as default secret key"
-msgstr "|NOME|usar NOME como chave secreta por omissão"
+msgstr "|NOME|usar NOME como chave secreta por omissão"
 
 #, fuzzy
 msgid "|NAME|encrypt to user ID NAME as well"
@@ -8500,7 +8563,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|URL|use keyserver at URL"
-msgstr "não consegui processar a URI do servidor de chaves\n"
+msgstr "não consegui processar a URI do servidor de chaves\n"
 
 msgid "allow PKA lookups (DNS requests)"
 msgstr ""
@@ -8544,28 +8607,30 @@ msgstr ""
 msgid "Configuration for OCSP"
 msgstr ""
 
-msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr ""
 
-msgid "GPG Agent"
+msgid "Private Keys"
 msgstr ""
 
-msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr ""
 
-msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr ""
 
-msgid "Key Acquirer"
-msgstr ""
+#, fuzzy
+#| msgid "network error"
+msgid "Network"
+msgstr "erro na rede"
 
 #, fuzzy
-msgid "PIN and Passphrase Entry"
+msgid "Passphrase Entry"
 msgstr "frase secreta incorrecta"
 
 #, fuzzy
 msgid "Component not suitable for launching"
-msgstr "chave pública não encontrada"
+msgstr "chave pública não encontrada"
 
 #, c-format
 msgid "External verification of component %s failed"
@@ -8597,11 +8662,16 @@ msgstr ""
 
 #, fuzzy
 msgid "list global configuration file"
-msgstr "criado um novo ficheiro de configuração `%s'\n"
+msgstr "criado um novo ficheiro de configuração `%s'\n"
 
 #, fuzzy
 msgid "check global configuration file"
-msgstr "criado um novo ficheiro de configuração `%s'\n"
+msgstr "criado um novo ficheiro de configuração `%s'\n"
+
+#, fuzzy
+#| msgid "update the trust database"
+msgid "query the software version database"
+msgstr "actualizar a base de dados de confiança"
 
 msgid "reload all or a given component"
 msgstr ""
@@ -8613,14 +8683,14 @@ msgid "kill a given component"
 msgstr ""
 
 msgid "use as output file"
-msgstr "usar como ficheiro de saída"
+msgstr "usar como ficheiro de saída"
 
 msgid "activate changes at runtime, if possible"
 msgstr ""
 
 #, fuzzy
 msgid "Usage: @GPGCONF@ [options] (-h for help)"
-msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
+msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
 
 msgid ""
 "Syntax: @GPGCONF@ [options]\n"
@@ -8632,7 +8702,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Component not found"
-msgstr "chave pública não encontrada"
+msgstr "chave pública não encontrada"
 
 #, fuzzy
 msgid "No argument allowed"
@@ -8670,7 +8740,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Usage: symcryptrun [options] (-h for help)"
-msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
+msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
 
 msgid ""
 "Syntax: symcryptrun --class CLASS --program PROGRAM --keyfile KEYFILE "
@@ -8680,19 +8750,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "%s on %s aborted with status %i\n"
-msgstr "%s não é permitido com %s!\n"
+msgstr "%s não é permitido com %s!\n"
 
 #, fuzzy, c-format
 msgid "%s on %s failed with status %i\n"
-msgstr "impossível abrir %s: %s\n"
+msgstr "impossível abrir %s: %s\n"
 
 #, fuzzy, c-format
 msgid "can't create temporary directory '%s': %s\n"
-msgstr "%s: impossível criar directoria: %s\n"
+msgstr "%s: impossível criar directoria: %s\n"
 
 #, fuzzy, c-format
 msgid "could not open %s for writing: %s\n"
-msgstr "impossível abrir %s: %s\n"
+msgstr "impossível abrir %s: %s\n"
 
 #, fuzzy, c-format
 msgid "error writing to %s: %s\n"
@@ -8720,11 +8790,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "could not create pipe: %s\n"
-msgstr "impossível criar %s: %s\n"
+msgstr "impossível criar %s: %s\n"
 
 #, fuzzy, c-format
 msgid "could not create pty: %s\n"
-msgstr "impossível criar %s: %s\n"
+msgstr "impossível criar %s: %s\n"
 
 #, c-format
 msgid "could not fork: %s\n"
@@ -8732,23 +8802,23 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "execv failed: %s\n"
-msgstr "actualização falhou: %s\n"
+msgstr "actualização falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "select failed: %s\n"
-msgstr "remoção do bloco de chave falhou: %s\n"
+msgstr "remoção do bloco de chave falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "read failed: %s\n"
-msgstr "actualização falhou: %s\n"
+msgstr "actualização falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "pty read failed: %s\n"
-msgstr "actualização falhou: %s\n"
+msgstr "actualização falhou: %s\n"
 
 #, fuzzy, c-format
 msgid "waitpid failed: %s\n"
-msgstr "actualização falhou: %s\n"
+msgstr "actualização falhou: %s\n"
 
 #, c-format
 msgid "child aborted with status %i\n"
@@ -8756,11 +8826,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "cannot allocate infile string: %s\n"
-msgstr "impossível criar `%s': %s\n"
+msgstr "impossível criar `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "cannot allocate outfile string: %s\n"
-msgstr "impossível criar `%s': %s\n"
+msgstr "impossível criar `%s': %s\n"
 
 #, c-format
 msgid "either %s or %s must be given\n"
@@ -8771,19 +8841,33 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "class %s is not supported\n"
-msgstr "algoritmo de protecção %d%s não é suportado\n"
+msgstr "algoritmo de protecção %d%s não é suportado\n"
 
 #, fuzzy
 msgid "Usage: gpg-check-pattern [options] patternfile (-h for help)\n"
-msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
+msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
 
 msgid ""
 "Syntax: gpg-check-pattern [options] patternfile\n"
 "Check a passphrase given on stdin against the patternfile\n"
 msgstr ""
 
+#, fuzzy
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "remoção do bloco de chave falhou: %s\n"
+
+#, fuzzy
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "desactiva uma chave"
+
+#, fuzzy
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "|algo [ficheiros]|imprimir \"digests\" de mensagens"
+#~ msgstr[1] "|algo [ficheiros]|imprimir \"digests\" de mensagens"
+
 #~ msgid "communication problem with gpg-agent\n"
-#~ msgstr "problemas na comunicação com o gpg-agent\n"
+#~ msgstr "problemas na comunicação com o gpg-agent\n"
 
 #, fuzzy
 #~ msgid "canceled by user\n"
@@ -8799,7 +8883,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "unknown TOFU DB format '%s'\n"
-#~ msgstr "destinatário por omissão desconhecido `%s'\n"
+#~ msgstr "destinatário por omissão desconhecido `%s'\n"
 
 #, fuzzy
 #~ msgid ""
@@ -8821,7 +8905,7 @@ msgstr ""
 #~ "user: \"%s\"\n"
 #~ msgstr ""
 #~ "\n"
-#~ "Você precisa de uma frase secreta para desbloquear a chave secreta do\n"
+#~ "Você precisa de uma frase secreta para desbloquear a chave secreta do\n"
 #~ "utilizador: \""
 
 #, fuzzy
@@ -8830,42 +8914,39 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "can't access directory '%s': %s\n"
-#~ msgstr "%s: impossível criar directoria: %s\n"
+#~ msgstr "%s: impossível criar directoria: %s\n"
 
 #~ msgid "you found a bug ... (%s:%d)\n"
-#~ msgstr "você encontrou um bug ... (%s:%d)\n"
+#~ msgstr "você encontrou um bug ... (%s:%d)\n"
 
 #, fuzzy
 #~| msgid "%d user IDs without valid self-signatures detected\n"
 #~ msgid "%d user ID without valid self-signature detected\n"
 #~ msgid_plural "%d user IDs without valid self-signatures detected\n"
-#~ msgstr[0] "%d IDs de utilizadores sem auto-assinaturas válidas detectados\n"
-#~ msgstr[1] "%d IDs de utilizadores sem auto-assinaturas válidas detectados\n"
+#~ msgstr[0] "%d IDs de utilizadores sem auto-assinaturas válidas detectados\n"
+#~ msgstr[1] "%d IDs de utilizadores sem auto-assinaturas válidas detectados\n"
 
 #~ msgid "moving a key signature to the correct place\n"
 #~ msgstr "a mover a assinatura da chave para o local correcto\n"
 
 #~ msgid "%d signatures not checked due to missing keys\n"
-#~ msgstr "%d assinaturas não verificadas por falta de chaves\n"
+#~ msgstr "%d assinaturas não verificadas por falta de chaves\n"
 
 #~ msgid "%d signatures not checked due to errors\n"
-#~ msgstr "%d assinaturas não verificadas devido a erros\n"
+#~ msgstr "%d assinaturas não verificadas devido a erros\n"
 
 #~ msgid "1 user ID without valid self-signature detected\n"
-#~ msgstr "1 ID de utilizador sem auto-assinatura válida detectado\n"
-
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "%d assinaturas removidas.\n"
+#~ msgstr "1 ID de utilizador sem auto-assinatura válida detectado\n"
 
 #, fuzzy
 #~ msgid "User ID \"%s\": %d signatures removed\n"
-#~ msgstr "Utilizador \"%s\" está revocado."
+#~ msgstr "Utilizador \"%s\" está revocado."
 
 #~ msgid ""
 #~ "You need a Passphrase to protect your secret key.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Você precisa de uma frase secreta para proteger a sua chave.\n"
+#~ "Você precisa de uma frase secreta para proteger a sua chave.\n"
 #~ "\n"
 
 #, fuzzy
@@ -8875,7 +8956,7 @@ msgstr ""
 #~ msgstr "Por favor digite a frase secreta \n"
 
 #~ msgid "passphrase not correctly repeated; try again"
-#~ msgstr "a frase secreta não foi repetida corretamente; tente outra vez"
+#~ msgstr "a frase secreta não foi repetida corretamente; tente outra vez"
 
 #~ msgid "%s.\n"
 #~ msgstr "%s.\n"
@@ -8886,14 +8967,14 @@ msgstr ""
 #~ "using this program with the option \"--edit-key\".\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Você não quer uma frase secreta - provavelmente isto é uma *má* idéia!\n"
-#~ "Vou continuar assim mesmo. Você pode mudar sua frase secreta a\n"
-#~ "qualquer hora, usando este programa com a opção \"--edit-key\".\n"
+#~ "Você não quer uma frase secreta - provavelmente isto é uma *má* idéia!\n"
+#~ "Vou continuar assim mesmo. Você pode mudar sua frase secreta a\n"
+#~ "qualquer hora, usando este programa com a opção \"--edit-key\".\n"
 #~ "\n"
 
 #, fuzzy
 #~ msgid "storing key onto card failed: %s\n"
-#~ msgstr "remoção do bloco de chave falhou: %s\n"
+#~ msgstr "remoção do bloco de chave falhou: %s\n"
 
 #, fuzzy
 #~| msgid "1 bad signature\n"
@@ -8901,10 +8982,6 @@ msgstr ""
 #~ msgstr "1 assinatura incorrecta\n"
 
 #, fuzzy
-#~ msgid "renaming '%s' to '%s' failed: %s\n"
-#~ msgstr "criação de armadura falhou: %s\n"
-
-#, fuzzy
 #~ msgid "%lu keys cached (%lu signatures)\n"
 #~ msgstr "%lu chave verificadas (%lu assinaturas)\n"
 
@@ -8918,7 +8995,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "public key %s is %lu seconds newer than the signature\n"
-#~ msgstr "a chave pública %08lX é %lu segundos mais nova que a assinatura\n"
+#~ msgstr "a chave pública %08lX é %lu segundos mais nova que a assinatura\n"
 
 #, fuzzy
 #~ msgid ""
@@ -8926,16 +9003,16 @@ msgstr ""
 #~ "problem)\n"
 #~ msgstr ""
 #~ "a chave foi criada %lu segundos no futuro\n"
-#~ "(viagem no tempo ou problema no relógio)\n"
+#~ "(viagem no tempo ou problema no relógio)\n"
 
 #, fuzzy
 #~| msgid "can't open the keyring"
 #~ msgid "Failed to open the keyring DB.\n"
-#~ msgstr "não é possível abrir o porta-chaves"
+#~ msgstr "não é possível abrir o porta-chaves"
 
 #, fuzzy
 #~ msgid "Failed to parse '%s'.\n"
-#~ msgstr "impossível abrir `%s': %s\n"
+#~ msgstr "impossível abrir `%s': %s\n"
 
 #, fuzzy
 #~ msgid "error looking up secret key \"%s\": %s\n"
@@ -8943,19 +9020,19 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "Please select at most one subkey.\n"
-#~ msgstr "Por favor seleccione no máximo uma chave secundária.\n"
+#~ msgstr "Por favor seleccione no máximo uma chave secundária.\n"
 
 #, fuzzy
 #~ msgid "malformed %s environment variable\n"
-#~ msgstr "variável de ambiente GPG_AGENT_INFO inválida\n"
+#~ msgstr "variável de ambiente GPG_AGENT_INFO inválida\n"
 
 #, fuzzy
 #~ msgid "dirmngr protocol version %d is not supported\n"
-#~ msgstr "a versão %d do protocolo gpg-agent não é suportada\n"
+#~ msgstr "a versão %d do protocolo gpg-agent não é suportada\n"
 
 #, fuzzy
 #~ msgid "toggle between the secret and public key listings"
-#~ msgstr "alterna entre listagem de chave secreta e pública"
+#~ msgstr "alterna entre listagem de chave secreta e pública"
 
 #~ msgid "Please use the command \"toggle\" first.\n"
 #~ msgstr "Por favor utilize o comando \"toggle\" primeiro.\n"
@@ -8966,29 +9043,29 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "WARNING: keyserver option '%s' is not used on this platform\n"
-#~ msgstr "AVISO: opções em `%s' ainda não estão activas nesta execução\n"
+#~ msgstr "AVISO: opções em `%s' ainda não estão activas nesta execução\n"
 
 #~ msgid "gpg-agent is not available in this session\n"
-#~ msgstr "o gpg-agent não está disponível nesta sessão\n"
+#~ msgstr "o gpg-agent não está disponível nesta sessão\n"
 
 #, fuzzy
 #~ msgid "use a standard location for the socket"
 #~ msgstr ""
-#~ "Realmente actualizar as preferências para os utilizadores seleccionados?"
+#~ "Realmente actualizar as preferências para os utilizadores seleccionados?"
 
 #, fuzzy
 #~ msgid "Usage: gpg-agent [options] (-h for help)"
-#~ msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
+#~ msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
 
 #~ msgid "malformed GPG_AGENT_INFO environment variable\n"
-#~ msgstr "variável de ambiente GPG_AGENT_INFO inválida\n"
+#~ msgstr "variável de ambiente GPG_AGENT_INFO inválida\n"
 
 #~ msgid "gpg-agent protocol version %d is not supported\n"
-#~ msgstr "a versão %d do protocolo gpg-agent não é suportada\n"
+#~ msgstr "a versão %d do protocolo gpg-agent não é suportada\n"
 
 #, fuzzy
 #~ msgid "can't fdopen pipe for reading: %s\n"
-#~ msgstr "impossível abrir %s: %s\n"
+#~ msgstr "impossível abrir %s: %s\n"
 
 #, fuzzy
 #~ msgid "error creating socket: %s\n"
@@ -8996,19 +9073,19 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "host not found"
-#~ msgstr "[Utilizador não encontrado]"
+#~ msgstr "[Utilizador não encontrado]"
 
 #, fuzzy
 #~ msgid "unknown key protection algorithm\n"
-#~ msgstr "algoritmo de compressão desconhecido"
+#~ msgstr "algoritmo de compressão desconhecido"
 
 #, fuzzy
 #~ msgid "secret parts of key are not available\n"
-#~ msgstr "Componentes secretas da chave primária não disponíveis.\n"
+#~ msgstr "Componentes secretas da chave primária não disponíveis.\n"
 
 #, fuzzy
 #~ msgid "secret key already stored on a card\n"
-#~ msgstr "ignorado: a chave secreta já está presente\n"
+#~ msgstr "ignorado: a chave secreta já está presente\n"
 
 #, fuzzy
 #~ msgid "error writing key to card: %s\n"
@@ -9017,52 +9094,52 @@ msgstr ""
 #~ msgid ""
 #~ "you can only encrypt to RSA keys of 2048 bits or less in --pgp2 mode\n"
 #~ msgstr ""
-#~ "no modo --pgp2 só pode cifrar com chaves RSA de 2048 bits ou menos\n"
+#~ "no modo --pgp2 só pode cifrar com chaves RSA de 2048 bits ou menos\n"
 
 #~ msgid ""
 #~ "unable to use the IDEA cipher for all of the keys you are encrypting to.\n"
 #~ msgstr ""
-#~ "impossível utilizar a cifra IDEA para todas as chaves para que está a "
+#~ "impossível utilizar a cifra IDEA para todas as chaves para que está a "
 #~ "cifrar.\n"
 
 #, fuzzy
 #~ msgid "remove the passphrase from exported subkeys"
-#~ msgstr "revoga uma chave secundária"
+#~ msgstr "revoga uma chave secundária"
 
 #, fuzzy
 #~ msgid "key %s: not protected - skipped\n"
-#~ msgstr "chave %08lX: não está protegida - ignorada\n"
+#~ msgstr "chave %08lX: não está protegida - ignorada\n"
 
 #, fuzzy
 #~ msgid "failed to unprotect the subkey: %s\n"
-#~ msgstr "falha ao inicializar a base de dados de confiança: %s\n"
+#~ msgstr "falha ao inicializar a base de dados de confiança: %s\n"
 
 #~ msgid "too many entries in pk cache - disabled\n"
 #~ msgstr "entradas demais no cache pk - desactivado\n"
 
 #, fuzzy
 #~ msgid "no secret subkey for public subkey %s - ignoring\n"
-#~ msgstr "há uma chave secreta para a chave pública \"%s\"!\n"
+#~ msgstr "há uma chave secreta para a chave pública \"%s\"!\n"
 
 #, fuzzy
 #~ msgid "key %s: secret key without public key - skipped\n"
-#~ msgstr "chave %08lX: chave secreta sem chave pública - ignorada\n"
+#~ msgstr "chave %08lX: chave secreta sem chave pública - ignorada\n"
 
 #~ msgid "usage: gpg [options] "
-#~ msgstr "uso: gpg [opções] "
+#~ msgstr "uso: gpg [opções] "
 
 #~ msgid ""
 #~ "you can only make detached or clear signatures while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "só pode fazer assinaturas separadas ou em texto puro no modo --pgp2\n"
+#~ "só pode fazer assinaturas separadas ou em texto puro no modo --pgp2\n"
 
 #~ msgid "you can't sign and encrypt at the same time while in --pgp2 mode\n"
-#~ msgstr "não pode assinar e cifrar ao mesmo tempo no modo --pgp2\n"
+#~ msgstr "não pode assinar e cifrar ao mesmo tempo no modo --pgp2\n"
 
 #~ msgid ""
 #~ "you must use files (and not a pipe) when working with --pgp2 enabled.\n"
 #~ msgstr ""
-#~ "deve utilizar ficheiros (e não um 'pipe') quando trabalho no modo --"
+#~ "deve utilizar ficheiros (e não um 'pipe') quando trabalho no modo --"
 #~ "pgp2.\n"
 
 #~ msgid "encrypting a message in --pgp2 mode requires the IDEA cipher\n"
@@ -9070,37 +9147,37 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "key %s: already in secret keyring\n"
-#~ msgstr "chave %08lX: já está no porta-chaves secreto\n"
+#~ msgstr "chave %08lX: já está no porta-chaves secreto\n"
 
 #, fuzzy
 #~ msgid "key %s: secret key not found: %s\n"
-#~ msgstr "chave %08lX: chave secreta não encontrada: %s\n"
+#~ msgstr "chave %08lX: chave secreta não encontrada: %s\n"
 
 #, fuzzy
 #~ msgid "NOTE: primary key is online and stored on card\n"
-#~ msgstr "ignorado: a chave secreta já está presente\n"
+#~ msgstr "ignorado: a chave secreta já está presente\n"
 
 #, fuzzy
 #~ msgid "NOTE: secondary key is online and stored on card\n"
-#~ msgstr "ignorado: a chave secreta já está presente\n"
+#~ msgstr "ignorado: a chave secreta já está presente\n"
 
 #~ msgid ""
 #~ "You may not make an OpenPGP signature on a PGP 2.x key while in --pgp2 "
 #~ "mode.\n"
 #~ msgstr ""
-#~ "Não pode criar uma assinatura OpenPGP numa chave PGP 2.x no modo --pgp2.\n"
+#~ "Não pode criar uma assinatura OpenPGP numa chave PGP 2.x no modo --pgp2.\n"
 
 #~ msgid "This would make the key unusable in PGP 2.x.\n"
-#~ msgstr "Isto tornaria a chave inutilizável no PGP 2.x.\n"
+#~ msgstr "Isto tornaria a chave inutilizável no PGP 2.x.\n"
 
 #~ msgid "This key is not protected.\n"
-#~ msgstr "Esta chave não é protegida.\n"
+#~ msgstr "Esta chave não é protegida.\n"
 
 #~ msgid "Key is protected.\n"
-#~ msgstr "A chave é protegida.\n"
+#~ msgstr "A chave é protegida.\n"
 
 #~ msgid "Can't edit this key: %s\n"
-#~ msgstr "Impossível editar esta chave: %s\n"
+#~ msgstr "Impossível editar esta chave: %s\n"
 
 #~ msgid ""
 #~ "Enter the new passphrase for this secret key.\n"
@@ -9113,15 +9190,15 @@ msgstr ""
 #~ "You don't want a passphrase - this is probably a *bad* idea!\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Você não quer uma frase secreta - provavelmente isto é uma *má* idéia!\n"
+#~ "Você não quer uma frase secreta - provavelmente isto é uma *má* idéia!\n"
 #~ "\n"
 
 #, fuzzy
 #~ msgid "Do you really want to do this? (y/N) "
-#~ msgstr "Você quer realmente fazer isso? "
+#~ msgstr "Você quer realmente fazer isso? "
 
 #~ msgid "Please remove selections from the secret keys.\n"
-#~ msgstr "Por favor remova as selecções das chaves secretas.\n"
+#~ msgstr "Por favor remova as selecções das chaves secretas.\n"
 
 #~ msgid "No corresponding signature in secret ring\n"
 #~ msgstr "Nenhuma assinatura correspondente no porta-chaves secreto\n"
@@ -9135,19 +9212,19 @@ msgstr ""
 
 #~ msgid "no writable secret keyring found: %s\n"
 #~ msgstr ""
-#~ "nenhum porta-chaves secreto com permissões de escrita encontrado: %s\n"
+#~ "nenhum porta-chaves secreto com permissões de escrita encontrado: %s\n"
 
 #~ msgid "WARNING: 2 files with confidential information exists.\n"
-#~ msgstr "AVISO: existem 2 ficheiros com informações confidenciais.\n"
+#~ msgstr "AVISO: existem 2 ficheiros com informações confidenciais.\n"
 
 #~ msgid "%s is the unchanged one\n"
-#~ msgstr "%s é o não modificado\n"
+#~ msgstr "%s é o não modificado\n"
 
 #~ msgid "%s is the new one\n"
-#~ msgstr "%s é o novo\n"
+#~ msgstr "%s é o novo\n"
 
 #~ msgid "Please fix this possible security flaw\n"
-#~ msgstr "Por favor conserte esta possível falha de segurança\n"
+#~ msgstr "Por favor conserte esta possível falha de segurança\n"
 
 #, fuzzy
 #~ msgid "searching for names from %s server %s\n"
@@ -9175,36 +9252,36 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "keyserver communications error: %s\n"
-#~ msgstr "A geração de chaves falhou: %s\n"
+#~ msgstr "A geração de chaves falhou: %s\n"
 
 #, fuzzy
 #~ msgid "WARNING: unable to parse URI %s\n"
 #~ msgstr "AVISO: dono pouco seguro em %s \"%s\"\n"
 
 #~ msgid "invalid root packet detected in proc_tree()\n"
-#~ msgstr "pacote raiz inválido detectado em proc_tree()\n"
+#~ msgstr "pacote raiz inválido detectado em proc_tree()\n"
 
 #~ msgid "the IDEA cipher plugin is not present\n"
-#~ msgstr "o 'plugin' com a cifra IDEA não está presente\n"
+#~ msgstr "o 'plugin' com a cifra IDEA não está presente\n"
 
 #, fuzzy
 #~ msgid "no corresponding public key: %s\n"
-#~ msgstr "a escrever chave pública para `%s'\n"
+#~ msgstr "a escrever chave pública para `%s'\n"
 
 #, fuzzy
 #~ msgid "unknown protection algorithm\n"
-#~ msgstr "algoritmo de compressão desconhecido"
+#~ msgstr "algoritmo de compressão desconhecido"
 
 #, fuzzy
 #~ msgid "NOTE: This key is not protected!\n"
-#~ msgstr "Esta chave não é protegida.\n"
+#~ msgstr "Esta chave não é protegida.\n"
 
 #, fuzzy
 #~ msgid "protection digest %d is not supported\n"
-#~ msgstr "algoritmo de protecção %d%s não é suportado\n"
+#~ msgstr "algoritmo de protecção %d%s não é suportado\n"
 
 #~ msgid "Invalid passphrase; please try again"
-#~ msgstr "Frase secreta inválida; por favor tente novamente"
+#~ msgstr "Frase secreta inválida; por favor tente novamente"
 
 #~ msgid "%s ...\n"
 #~ msgstr "%s ...\n"
@@ -9216,40 +9293,40 @@ msgstr ""
 #~ msgid ""
 #~ "generating the deprecated 16-bit checksum for secret key protection\n"
 #~ msgstr ""
-#~ "a gerar a 'checksum' (depreciada) de 16-bit para protecção da chave "
+#~ "a gerar a 'checksum' (depreciada) de 16-bit para protecção da chave "
 #~ "secreta\n"
 
 #~ msgid ""
 #~ "you can only detach-sign with PGP 2.x style keys while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "só pode assinar-desligar com chaves do tipo PGP 2.x no modo --pgp2\n"
+#~ "só pode assinar-desligar com chaves do tipo PGP 2.x no modo --pgp2\n"
 
 #~ msgid ""
 #~ "you can only clearsign with PGP 2.x style keys while in --pgp2 mode\n"
-#~ msgstr "só pode assinar à vista com chaves do tipo PGP 2.x no modo --pgp2\n"
+#~ msgstr "só pode assinar à vista com chaves do tipo PGP 2.x no modo --pgp2\n"
 
 #, fuzzy
 #~ msgid "Usage: scdaemon [options] (-h for help)"
-#~ msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
+#~ msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
 
 #, fuzzy
 #~ msgid "Usage: gpgsm [options] [files] (-h for help)"
-#~ msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
+#~ msgstr "Uso: gpg [opções] [ficheiros] (-h para ajuda)"
 
 #, fuzzy
 #~ msgid "usage: gpgconf [options] "
-#~ msgstr "uso: gpg [opções] "
+#~ msgstr "uso: gpg [opções] "
 
 #, fuzzy
 #~ msgid "failed to allocated keyDB handle\n"
-#~ msgstr "falha ao inicializar a base de dados de confiança: %s\n"
+#~ msgstr "falha ao inicializar a base de dados de confiança: %s\n"
 
 #~ msgid "Command> "
 #~ msgstr "Comando> "
 
 #~ msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
 #~ msgstr ""
-#~ "A base de dados de confiança está danificada; por favor execute\n"
+#~ "A base de dados de confiança está danificada; por favor execute\n"
 #~ "\"gpg --fix-trustdb\".\n"
 
 #~ msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
@@ -9261,14 +9338,14 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "DSA keypair will have %u bits.\n"
-#~ msgstr "O par de chaves DSA terá 1024 bits.\n"
+#~ msgstr "O par de chaves DSA terá 1024 bits.\n"
 
 #~ msgid "Repeat passphrase\n"
 #~ msgstr "Repita a frase secreta\n"
 
 #, fuzzy
 #~ msgid "read options from file"
-#~ msgstr "a ler opções de `%s'\n"
+#~ msgstr "a ler opções de `%s'\n"
 
 #~ msgid "|[file]|make a signature"
 #~ msgstr "|[ficheiro]|fazer uma assinatura"
@@ -9282,26 +9359,26 @@ msgstr ""
 #~ msgstr "|[ficheiro]|fazer uma assinatura em texto puro"
 
 #~ msgid "use the default key as default recipient"
-#~ msgstr "usar a chave por omissão como destinatário por omissão"
+#~ msgstr "usar a chave por omissão como destinatário por omissão"
 
 #~ msgid "force v3 signatures"
-#~ msgstr "forçar assinaturas v3"
+#~ msgstr "forçar assinaturas v3"
 
 #~ msgid "always use a MDC for encryption"
 #~ msgstr "sempre usar um MDC para cifrar"
 
 #~ msgid "add this secret keyring to the list"
-#~ msgstr "adicionar este porta-chaves secreto à lista"
+#~ msgstr "adicionar este porta-chaves secreto à lista"
 
 #~ msgid "|FILE|load extension module FILE"
-#~ msgstr "|FICHEIRO|carregar módulo de extensão FICHEIRO"
+#~ msgstr "|FICHEIRO|carregar módulo de extensão FICHEIRO"
 
 #~ msgid "|N|use compress algorithm N"
-#~ msgstr "|N|usar algoritmo de compressão N"
+#~ msgstr "|N|usar algoritmo de compressão N"
 
 #, fuzzy
 #~ msgid "remove key from the public keyring"
-#~ msgstr "remover chaves do porta-chaves público"
+#~ msgstr "remover chaves do porta-chaves público"
 
 #~ msgid ""
 #~ "It's up to you to assign a value here; this value will never be exported\n"
@@ -9309,8 +9386,8 @@ msgstr ""
 #~ "nothing\n"
 #~ "to do with the (implicitly created) web-of-certificates."
 #~ msgstr ""
-#~ "Você decide que valor usar aqui; este valor nunca será exportado para\n"
-#~ "terceiros. Precisamos dele implementar a rede de confiança, que não tem\n"
+#~ "Você decide que valor usar aqui; este valor nunca será exportado para\n"
+#~ "terceiros. Precisamos dele implementar a rede de confiança, que não tem\n"
 #~ "nada a ver com a rede de certificados (implicitamente criada)."
 
 #~ msgid ""
@@ -9319,22 +9396,22 @@ msgstr ""
 #~ "access to the secret key.  Answer \"yes\" to set this key to\n"
 #~ "ultimately trusted\n"
 #~ msgstr ""
-#~ "Para construir a Teia-de-Confiança ('Web-of-Trust'), o GnuPG precisa de\n"
-#~ "saber quais são as chaves em que deposita confiança absoluta - "
+#~ "Para construir a Teia-de-Confiança ('Web-of-Trust'), o GnuPG precisa de\n"
+#~ "saber quais são as chaves em que deposita confiança absoluta - "
 #~ "normalmente\n"
-#~ "estas são as chaves a que tem acesso à chave privada.  Responda \"sim\" "
+#~ "estas são as chaves a que tem acesso à chave privada.  Responda \"sim\" "
 #~ "para\n"
-#~ "que esta chave seja de confiança absoluta.\n"
+#~ "que esta chave seja de confiança absoluta.\n"
 
 #~ msgid "If you want to use this untrusted key anyway, answer \"yes\"."
 #~ msgstr ""
-#~ "Se você quiser usar esta chave, não de confiança, assim mesmo, responda "
+#~ "Se você quiser usar esta chave, não de confiança, assim mesmo, responda "
 #~ "\"sim\"."
 
 #~ msgid ""
 #~ "Enter the user ID of the addressee to whom you want to send the message."
 #~ msgstr ""
-#~ "Digite o ID de utilizador do destinatário para quem quer enviar a\n"
+#~ "Digite o ID de utilizador do destinatário para quem quer enviar a\n"
 #~ "mensagem."
 
 #~ msgid ""
@@ -9342,15 +9419,15 @@ msgstr ""
 #~ "encryption.  This algorithm should only be used in certain domains.\n"
 #~ "Please consult your security expert first."
 #~ msgstr ""
-#~ "Em geral não é uma boa ideia utilizar a mesma chave para assinar e para\n"
-#~ "cifrar.  Este algoritmo só deve ser utilizado em alguns domínios.\n"
-#~ "Por favor consulte primeiro o seu perito em segurança."
+#~ "Em geral não é uma boa ideia utilizar a mesma chave para assinar e para\n"
+#~ "cifrar.  Este algoritmo só deve ser utilizado em alguns domínios.\n"
+#~ "Por favor consulte primeiro o seu perito em segurança."
 
 #~ msgid "Enter the size of the key"
 #~ msgstr "Insira o tamanho da chave"
 
 #~ msgid "Answer \"yes\" or \"no\""
-#~ msgstr "Responda \"sim\" ou \"não\""
+#~ msgstr "Responda \"sim\" ou \"não\""
 
 #~ msgid ""
 #~ "Enter the required value as shown in the prompt.\n"
@@ -9358,19 +9435,19 @@ msgstr ""
 #~ "get a good error response - instead the system tries to interpret\n"
 #~ "the given value as an interval."
 #~ msgstr ""
-#~ "Digite o valor necessário conforme pedido.\n"
-#~ "É possível digitar uma data ISO (AAAA-MM-DD) mas você não terá uma boa\n"
-#~ "reacção a erros - o sistema tentará interpretar o valor dado como um "
+#~ "Digite o valor necessário conforme pedido.\n"
+#~ "É possível digitar uma data ISO (AAAA-MM-DD) mas você não terá uma boa\n"
+#~ "reacção a erros - o sistema tentará interpretar o valor dado como um "
 #~ "intervalo."
 
 #~ msgid "Enter the name of the key holder"
 #~ msgstr "Digite o nome do possuidor da chave"
 
 #~ msgid "please enter an optional but highly suggested email address"
-#~ msgstr "por favor digite um endereço de email (opcional mas recomendado)"
+#~ msgstr "por favor digite um endereço de email (opcional mas recomendado)"
 
 #~ msgid "Please enter an optional comment"
-#~ msgstr "Por favor digite um comentário (opcional)"
+#~ msgstr "Por favor digite um comentário (opcional)"
 
 #~ msgid ""
 #~ "N  to change the name.\n"
@@ -9380,10 +9457,10 @@ msgstr ""
 #~ "Q  to to quit the key generation."
 #~ msgstr ""
 #~ "N  para mudar o nome.\n"
-#~ "C  para mudar o comentário.\n"
-#~ "E  para mudar o endereço de email\n"
-#~ "O  para continuar a geração da chave.\n"
-#~ "S  para interromper a geração da chave."
+#~ "C  para mudar o comentário.\n"
+#~ "E  para mudar o endereço de email\n"
+#~ "O  para continuar a geração da chave.\n"
+#~ "S  para interromper a geração da chave."
 
 #~ msgid ""
 #~ "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
@@ -9432,41 +9509,41 @@ msgstr ""
 #~ "\n"
 #~ "If you don't know what the right answer is, answer \"0\"."
 #~ msgstr ""
-#~ "Quando assina uma chave de identificação de um utilizador, deve primeiro\n"
-#~ "verificar que a chave pertence realmente à pessoa em questão. É útil "
+#~ "Quando assina uma chave de identificação de um utilizador, deve primeiro\n"
+#~ "verificar que a chave pertence realmente à pessoa em questão. É útil "
 #~ "para\n"
-#~ "terceiros saberem com que cuidado é que efectuou esta verificação.\n"
+#~ "terceiros saberem com que cuidado é que efectuou esta verificação.\n"
 #~ "\n"
-#~ "\"0\" significa que não deseja declarar a forma com verificou a chave\n"
+#~ "\"0\" significa que não deseja declarar a forma com verificou a chave\n"
 #~ "\n"
-#~ "\"1\" significa que acredita que a chave pertence à pessoa em questão, "
+#~ "\"1\" significa que acredita que a chave pertence à pessoa em questão, "
 #~ "mas\n"
-#~ "    não conseguiu ou não tentou verificar. Este grau é útil para quando\n"
-#~ "    assina a chave de uma utilizador pseudo-anónimo.\n"
+#~ "    não conseguiu ou não tentou verificar. Este grau é útil para quando\n"
+#~ "    assina a chave de uma utilizador pseudo-anónimo.\n"
 #~ "\n"
-#~ "\"2\" significa que efectuou uma verificação normal da chave. Por "
+#~ "\"2\" significa que efectuou uma verificação normal da chave. Por "
 #~ "exemplo,\n"
-#~ "    isto pode significar que verificou a impressão digital da chave e\n"
+#~ "    isto pode significar que verificou a impressão digital da chave e\n"
 #~ "    verificou o identificador de utilizador da chave contra uma "
-#~ "identificação\n"
-#~ "    fotográfica.\n"
+#~ "identificação\n"
+#~ "    fotográfica.\n"
 #~ "\n"
-#~ "\"3\" significa que efectuou uma verificação exaustiva da chave. Por "
+#~ "\"3\" significa que efectuou uma verificação exaustiva da chave. Por "
 #~ "exemplo,\n"
-#~ "    isto pode significar que efectuou a verificação pessoalmente, e que \n"
-#~ "    utilizou um documento, com fotografia, difícil de falsificar \n"
-#~ "    (como por exemplo um passaporte) que o nome do dono da chave é o\n"
+#~ "    isto pode significar que efectuou a verificação pessoalmente, e que \n"
+#~ "    utilizou um documento, com fotografia, difícil de falsificar \n"
+#~ "    (como por exemplo um passaporte) que o nome do dono da chave é o\n"
 #~ "    mesmo do que o identificador da chave, e que, finalmente, verificou\n"
-#~ "    (através de troca de e-mail) que o endereço de email da chave "
+#~ "    (através de troca de e-mail) que o endereço de email da chave "
 #~ "pertence\n"
 #~ "    ao done da chave.\n"
 #~ "\n"
-#~ "Atenção: os exemplos dados para os níveis 2 e 3 são *apenas* exemplos.\n"
+#~ "Atenção: os exemplos dados para os níveis 2 e 3 são *apenas* exemplos.\n"
 #~ "Compete-lhe a si decidir o que considera, ao assinar chaves, uma "
-#~ "verificação\n"
-#~ "\"normal\" e uma verificação \"exaustiva\".\n"
+#~ "verificação\n"
+#~ "\"normal\" e uma verificação \"exaustiva\".\n"
 #~ "\n"
-#~ "Se não sabe qual é a resposta correcta, responda \"0\"."
+#~ "Se não sabe qual é a resposta correcta, responda \"0\"."
 
 #, fuzzy
 #~ msgid "Answer \"yes\" if you want to sign ALL the user IDs"
@@ -9477,7 +9554,7 @@ msgstr ""
 #~ "All certificates are then also lost!"
 #~ msgstr ""
 #~ "Responda \"sim\" se quiser realmente remover este ID de utilizador.\n"
-#~ "Todos os certificados também serão perdidos!"
+#~ "Todos os certificados também serão perdidos!"
 
 #~ msgid "Answer \"yes\" if it is okay to delete the subkey"
 #~ msgstr "Responda \"sim\" se quiser remover a subchave"
@@ -9487,9 +9564,9 @@ msgstr ""
 #~ "to delete this signature because it may be important to establish a\n"
 #~ "trust connection to the key or another key certified by this key."
 #~ msgstr ""
-#~ "Esta é uma assinatura válida na chave; normalmente não é desejável\n"
+#~ "Esta é uma assinatura válida na chave; normalmente não é desejável\n"
 #~ "remover esta assinatura porque ela pode ser importante para estabelecer\n"
-#~ "uma conexão de confiança à chave ou a outra chave certificada por esta."
+#~ "uma conexão de confiança à chave ou a outra chave certificada por esta."
 
 #~ msgid ""
 #~ "This signature can't be checked because you don't have the\n"
@@ -9497,18 +9574,18 @@ msgstr ""
 #~ "know which key was used because this signing key might establish\n"
 #~ "a trust connection through another already certified key."
 #~ msgstr ""
-#~ "Esta assinatura não pode ser verificada porque você não tem a chave\n"
-#~ "correspondente. Você deve adiar sua remoção até saber que chave foi "
+#~ "Esta assinatura não pode ser verificada porque você não tem a chave\n"
+#~ "correspondente. Você deve adiar sua remoção até saber que chave foi "
 #~ "usada\n"
-#~ "porque a chave desta assinatura pode estabelecer uma conexão de "
-#~ "confiança\n"
-#~ "através de outra chave já certificada."
+#~ "porque a chave desta assinatura pode estabelecer uma conexão de "
+#~ "confiança\n"
+#~ "através de outra chave já certificada."
 
 #~ msgid ""
 #~ "The signature is not valid.  It does make sense to remove it from\n"
 #~ "your keyring."
 #~ msgstr ""
-#~ "A assinatura não é válida. Faz sentido removê-la do seu porta-chaves."
+#~ "A assinatura não é válida. Faz sentido removê-la do seu porta-chaves."
 
 #~ msgid ""
 #~ "This is a signature which binds the user ID to the key. It is\n"
@@ -9517,22 +9594,22 @@ msgstr ""
 #~ "only if this self-signature is for some reason not valid and\n"
 #~ "a second one is available."
 #~ msgstr ""
-#~ "Esta é uma assinatura que liga o ID de utilizador à chave. Geralmente\n"
-#~ "não é uma boa idéia remover tal assinatura. É possível que o GnuPG\n"
-#~ "não consiga mais usar esta chave. Faça isto apenas se por alguma\n"
-#~ "razão esta auto-assinatura não for válida e há uma segunda disponível."
+#~ "Esta é uma assinatura que liga o ID de utilizador à chave. Geralmente\n"
+#~ "não é uma boa idéia remover tal assinatura. É possível que o GnuPG\n"
+#~ "não consiga mais usar esta chave. Faça isto apenas se por alguma\n"
+#~ "razão esta auto-assinatura não for válida e há uma segunda disponível."
 
 #~ msgid ""
 #~ "Change the preferences of all user IDs (or just of the selected ones)\n"
 #~ "to the current list of preferences.  The timestamp of all affected\n"
 #~ "self-signatures will be advanced by one second.\n"
 #~ msgstr ""
-#~ "Muda as preferências de todos os identificadores de utilizadores\n"
-#~ "(ou apenas dos seleccionados) para a lista actual de preferências.\n"
-#~ "O 'timestamp' de todas as auto-assinaturas afectuadas será avançado\n"
+#~ "Muda as preferências de todos os identificadores de utilizadores\n"
+#~ "(ou apenas dos seleccionados) para a lista actual de preferências.\n"
+#~ "O 'timestamp' de todas as auto-assinaturas afectuadas será avançado\n"
 #~ "em um segundo.\n"
 
-#~ msgid "Please enter the passhrase; this is a secret sentence \n"
+#~ msgid "Please enter the passphrase; this is a secret sentence \n"
 #~ msgstr "Por favor digite a frase secreta \n"
 
 #~ msgid ""
@@ -9540,7 +9617,7 @@ msgstr ""
 #~ msgstr "Por favor repita a frase secreta, para ter certeza do que digitou."
 
 #~ msgid "Give the name of the file to which the signature applies"
-#~ msgstr "Dê o nome para o ficheiro ao qual a assinatura se aplica"
+#~ msgstr "Dê o nome para o ficheiro ao qual a assinatura se aplica"
 
 #~ msgid "Answer \"yes\" if it is okay to overwrite the file"
 #~ msgstr "Responda \"sim\" se quiser escrever por cima do ficheiro"
@@ -9549,9 +9626,9 @@ msgstr ""
 #~ "Please enter a new filename. If you just hit RETURN the default\n"
 #~ "file (which is shown in brackets) will be used."
 #~ msgstr ""
-#~ "Por favor digite um novo nome de ficheiro. Se você apenas carregar em "
+#~ "Por favor digite um novo nome de ficheiro. Se você apenas carregar em "
 #~ "RETURN\n"
-#~ "o ficheiro por omissão (que é mostrado entre parênteses) será utilizado."
+#~ "o ficheiro por omissão (que é mostrado entre parênteses) será utilizado."
 
 #~ msgid ""
 #~ "You should specify a reason for the certification.  Depending on the\n"
@@ -9567,40 +9644,40 @@ msgstr ""
 #~ "      Use this to state that the user ID should not longer be used;\n"
 #~ "      this is normally used to mark an email address invalid.\n"
 #~ msgstr ""
-#~ "Deve especificar uma razão para a emissão do certificado. Dependendo no\n"
-#~ "contexto, pode escolher as seguintes opções desta lista:\n"
+#~ "Deve especificar uma razão para a emissão do certificado. Dependendo no\n"
+#~ "contexto, pode escolher as seguintes opções desta lista:\n"
 #~ "  \"A chave foi comprometida\"\n"
-#~ "     Utilize esta opção se tem razões para acreditar que indivíduos não\n"
-#~ "     autorizados obtiveram acesso à sua chave secreta.\n"
+#~ "     Utilize esta opção se tem razões para acreditar que indivíduos não\n"
+#~ "     autorizados obtiveram acesso à sua chave secreta.\n"
 #~ "  \"A chave foi substituida\"\n"
-#~ "     Utilize esta opção se substituiu esta chave com uma mais recente.\n"
-#~ "  \"A chave já não é utilizada\"\n"
-#~ "     Utilize esta opção se já não utiliza a chave.\n"
-#~ "  \"O identificador do utilizador já não é válido\"\n"
-#~ "     Utilize esta opção para comunicar que o identificador do utilizador\n"
-#~ "     não deve ser mais utilizado; normalmente utilizada para indicar\n"
-#~ "     que um endereço de email é inválido.\n"
+#~ "     Utilize esta opção se substituiu esta chave com uma mais recente.\n"
+#~ "  \"A chave já não é utilizada\"\n"
+#~ "     Utilize esta opção se já não utiliza a chave.\n"
+#~ "  \"O identificador do utilizador já não é válido\"\n"
+#~ "     Utilize esta opção para comunicar que o identificador do utilizador\n"
+#~ "     não deve ser mais utilizado; normalmente utilizada para indicar\n"
+#~ "     que um endereço de email é inválido.\n"
 
 #~ msgid ""
 #~ "If you like, you can enter a text describing why you issue this\n"
 #~ "revocation certificate.  Please keep this text concise.\n"
 #~ "An empty line ends the text.\n"
 #~ msgstr ""
-#~ "Se desejar, pode inserir uma texto descrevendo a razão pela qual criou\n"
-#~ "este certificado de revogação. Por favor mantenha este texto conciso.\n"
+#~ "Se desejar, pode inserir uma texto descrevendo a razão pela qual criou\n"
+#~ "este certificado de revogação. Por favor mantenha este texto conciso.\n"
 #~ "Uma linha vazia termina o texto.\n"
 
 #, fuzzy
 #~ msgid "can't put notation data into v3 (PGP 2.x style) signatures\n"
-#~ msgstr "não pode escolher uma chave do tipo PGP 2.x como revogadora\n"
+#~ msgstr "não pode escolher uma chave do tipo PGP 2.x como revogadora\n"
 
 #, fuzzy
 #~ msgid "can't put notation data into v3 (PGP 2.x style) key signatures\n"
-#~ msgstr "não pode escolher uma chave do tipo PGP 2.x como revogadora\n"
+#~ msgstr "não pode escolher uma chave do tipo PGP 2.x como revogadora\n"
 
 #, fuzzy
 #~ msgid "can't put a policy URL into v3 (PGP 2.x style) signatures\n"
-#~ msgstr "não pode escolher uma chave do tipo PGP 2.x como revogadora\n"
+#~ msgstr "não pode escolher uma chave do tipo PGP 2.x como revogadora\n"
 
 #, fuzzy
 #~ msgid "shelll"
@@ -9610,11 +9687,11 @@ msgstr ""
 #~ msgid ""
 #~ "please see http://www.gnupg.org/download/iconv.html for more information\n"
 #~ msgstr ""
-#~ "por favor veja http://www.gnupg.org/faq.html para mais informações\n"
+#~ "por favor veja http://www.gnupg.org/faq.html para mais informações\n"
 
 #, fuzzy
 #~ msgid "key generation is not available from the commandline\n"
-#~ msgstr "o gpg-agent não está disponível nesta sessão\n"
+#~ msgstr "o gpg-agent não está disponível nesta sessão\n"
 
 #, fuzzy
 #~ msgid "please use the script \"%s\" to generate a new key\n"
@@ -9623,7 +9700,7 @@ msgstr ""
 #, fuzzy
 #~ msgid "cipher extension `%s' not loaded due to unsafe permissions\n"
 #~ msgstr ""
-#~ "a extensão de cifra \"%s\" não foi carregada devido às suas permissões "
+#~ "a extensão de cifra \"%s\" não foi carregada devido às suas permissões "
 #~ "inseguras\n"
 
 #, fuzzy
@@ -9631,11 +9708,11 @@ msgstr ""
 #~ msgstr "%s.\n"
 
 #~ msgid "problem with the agent - disabling agent use\n"
-#~ msgstr "problema com o agente - a desactivar a utilização deste\n"
+#~ msgstr "problema com o agente - a desactivar a utilização deste\n"
 
 #, fuzzy
 #~ msgid "can't query passphrase in batch mode\n"
-#~ msgstr "impossível pedir senha em modo não-interactivo\n"
+#~ msgstr "impossível pedir senha em modo não-interactivo\n"
 
 #~ msgid "Repeat passphrase: "
 #~ msgstr "Repita a frase secreta: "
@@ -9644,32 +9721,32 @@ msgstr ""
 #~ msgstr "-k[v][v][v][c] [id-utilizador] [porta-chaves]"
 
 #~ msgid "no entropy gathering module detected\n"
-#~ msgstr "nenhum módulo de recolha de entropia detectado\n"
+#~ msgstr "nenhum módulo de recolha de entropia detectado\n"
 
 #, fuzzy
 #~ msgid "can't lock `%s': %s\n"
-#~ msgstr "impossível abrir `%s'\n"
+#~ msgstr "impossível abrir `%s'\n"
 
 #~ msgid "`%s' is not a regular file - ignored\n"
-#~ msgstr "`%s' não é um ficheiro normal - ignorado\n"
+#~ msgstr "`%s' não é um ficheiro normal - ignorado\n"
 
 #~ msgid "note: random_seed file is empty\n"
-#~ msgstr "nota: random_seed está vazia\n"
+#~ msgstr "nota: random_seed está vazia\n"
 
 #~ msgid "can't read `%s': %s\n"
-#~ msgstr "impossível ler `%s': %s\n"
+#~ msgstr "impossível ler `%s': %s\n"
 
 #~ msgid "note: random_seed file not updated\n"
-#~ msgstr "nota: ficheiro random_seed não actualizado\n"
+#~ msgstr "nota: ficheiro random_seed não actualizado\n"
 
 #~ msgid "can't write `%s': %s\n"
-#~ msgstr "impossível escrever `%s': %s\n"
+#~ msgstr "impossível escrever `%s': %s\n"
 
 #~ msgid "can't close `%s': %s\n"
-#~ msgstr "impossível fechar `%s': %s\n"
+#~ msgstr "impossível fechar `%s': %s\n"
 
 #~ msgid "WARNING: using insecure random number generator!!\n"
-#~ msgstr "AVISO: a utilizar gerador de números aleatórios inseguro!\n"
+#~ msgstr "AVISO: a utilizar gerador de números aleatórios inseguro!\n"
 
 #~ msgid ""
 #~ "The random number generator is only a kludge to let\n"
@@ -9678,10 +9755,10 @@ msgstr ""
 #~ "DON'T USE ANY DATA GENERATED BY THIS PROGRAM!!\n"
 #~ "\n"
 #~ msgstr ""
-#~ "O gerador de números aleatórios é apenas um \"remendo\"\n"
-#~ "para poder funcionar - não é de modo algum um bom gerador!\n"
+#~ "O gerador de números aleatórios é apenas um \"remendo\"\n"
+#~ "para poder funcionar - não é de modo algum um bom gerador!\n"
 #~ "\n"
-#~ "NÃO USE NENHUM DADO GERADO POR ESTE PROGRAMA!\n"
+#~ "NÃ\83O USE NENHUM DADO GERADO POR ESTE PROGRAMA!\n"
 #~ "\n"
 
 #~ msgid ""
@@ -9690,17 +9767,17 @@ msgstr ""
 #~ "the OS a chance to collect more entropy! (Need %d more bytes)\n"
 #~ msgstr ""
 #~ "\n"
-#~ "Não há bytes aleatórios suficientes. Por favor, faça outro trabalho para\n"
-#~ "que o sistema possa recolher mais entropia! (São necessários mais %d "
+#~ "Não há bytes aleatórios suficientes. Por favor, faça outro trabalho para\n"
+#~ "que o sistema possa recolher mais entropia! (São necessários mais %d "
 #~ "bytes)\n"
 
 #, fuzzy
 #~ msgid "card reader not available\n"
-#~ msgstr "chave secreta não disponível"
+#~ msgstr "chave secreta não disponível"
 
 #, fuzzy
 #~ msgid "NOTE: %s is not available in this version\n"
-#~ msgstr "o gpg-agent não está disponível nesta sessão\n"
+#~ msgstr "o gpg-agent não está disponível nesta sessão\n"
 
 #, fuzzy
 #~ msgid "         algorithms on these user IDs:\n"
@@ -9716,7 +9793,7 @@ msgstr ""
 #~ msgstr "algoritmo de \"digest\" desconhecido"
 
 #~ msgid "bad public key"
-#~ msgstr "chave pública incorrecta"
+#~ msgstr "chave pública incorrecta"
 
 #~ msgid "bad secret key"
 #~ msgstr "chave secreta incorrecta"
@@ -9731,13 +9808,13 @@ msgstr ""
 #~ msgstr "algoritmo de criptografia desconhecido"
 
 #~ msgid "invalid packet"
-#~ msgstr "pacote inválido"
+#~ msgstr "pacote inválido"
 
 #~ msgid "no such user id"
 #~ msgstr "identificador de utilizador inexistente"
 
 #~ msgid "secret key not available"
-#~ msgstr "chave secreta não disponível"
+#~ msgstr "chave secreta não disponível"
 
 #~ msgid "wrong secret key used"
 #~ msgstr "chave secreta incorrecta"
@@ -9749,31 +9826,31 @@ msgstr ""
 #~ msgstr "erro de escrita"
 
 #~ msgid "unknown compress algorithm"
-#~ msgstr "algoritmo de compressão desconhecido"
+#~ msgstr "algoritmo de compressão desconhecido"
 
 #~ msgid "file open error"
 #~ msgstr "erro na abertura do ficheiro"
 
 #~ msgid "file create error"
-#~ msgstr "erro na criação do ficheiro"
+#~ msgstr "erro na criação do ficheiro"
 
 #~ msgid "unimplemented pubkey algorithm"
-#~ msgstr "algoritmo de chave pública não implementado"
+#~ msgstr "algoritmo de chave pública não implementado"
 
 #~ msgid "unimplemented cipher algorithm"
-#~ msgstr "algoritmo de criptografia não implementado"
+#~ msgstr "algoritmo de criptografia não implementado"
 
 #~ msgid "unknown signature class"
 #~ msgstr "classe de assinatura desconhecida"
 
 #~ msgid "trust database error"
-#~ msgstr "erro na base de dados de confiança"
+#~ msgstr "erro na base de dados de confiança"
 
 #~ msgid "resource limit"
 #~ msgstr "limite de recursos"
 
 #~ msgid "invalid keyring"
-#~ msgstr "porta-chaves inválido"
+#~ msgstr "porta-chaves inválido"
 
 #~ msgid "malformed user id"
 #~ msgstr "identificador de utilizador malformado"
@@ -9782,10 +9859,10 @@ msgstr ""
 #~ msgstr "erro ao fechar ficheiro"
 
 #~ msgid "file rename error"
-#~ msgstr "erro na renomeação do ficheiro"
+#~ msgstr "erro na renomeação do ficheiro"
 
 #~ msgid "file delete error"
-#~ msgstr "erro na remoção do ficheiro"
+#~ msgstr "erro na remoção do ficheiro"
 
 #~ msgid "unexpected data"
 #~ msgstr "dados inesperados"
@@ -9794,10 +9871,10 @@ msgstr ""
 #~ msgstr "conflito de \"timestamp\""
 
 #~ msgid "unusable pubkey algorithm"
-#~ msgstr "algoritmo de chave pública inutilizável"
+#~ msgstr "algoritmo de chave pública inutilizável"
 
 #~ msgid "file exists"
-#~ msgstr "o ficheiro já existe"
+#~ msgstr "o ficheiro já existe"
 
 #~ msgid "weak key"
 #~ msgstr "chave fraca"
@@ -9805,49 +9882,46 @@ msgstr ""
 #~ msgid "bad URI"
 #~ msgstr "URI incorrecto"
 
-#~ msgid "network error"
-#~ msgstr "erro na rede"
-
 #~ msgid "not processed"
-#~ msgstr "não processado"
+#~ msgstr "não processado"
 
 #~ msgid "unusable public key"
-#~ msgstr "chave pública não utilizável"
+#~ msgstr "chave pública não utilizável"
 
 #~ msgid "unusable secret key"
-#~ msgstr "chave secreta não utilizável"
+#~ msgstr "chave secreta não utilizável"
 
 #~ msgid "keyserver error"
 #~ msgstr "erro do servidor de chaves"
 
 #, fuzzy
 #~ msgid "no card"
-#~ msgstr "não cifrado"
+#~ msgstr "não cifrado"
 
 #, fuzzy
 #~ msgid "no data"
-#~ msgstr "não há dados assinados\n"
+#~ msgstr "não há dados assinados\n"
 
 #~ msgid "... this is a bug (%s:%d:%s)\n"
-#~ msgstr "... isto é um bug (%s:%d:%s)\n"
+#~ msgstr "... isto é um bug (%s:%d:%s)\n"
 
 #~ msgid "operation is not possible without initialized secure memory\n"
-#~ msgstr "a operação não é possível sem memória segura inicializada\n"
+#~ msgstr "a operação não é possível sem memória segura inicializada\n"
 
 #~ msgid "(you may have used the wrong program for this task)\n"
-#~ msgstr "(você pode ter usado o programa errado para esta tarefa)\n"
+#~ msgstr "(você pode ter usado o programa errado para esta tarefa)\n"
 
 #~ msgid ""
 #~ "please see http://www.gnupg.org/why-not-idea.html for more information\n"
-#~ msgstr "veja http://www.gnupg.org/why-not-idea.html para mais informações\n"
+#~ msgstr "veja http://www.gnupg.org/why-not-idea.html para mais informações\n"
 
 #, fuzzy
 #~ msgid "all export-clean-* options from above"
-#~ msgstr "ler opções do ficheiro"
+#~ msgstr "ler opções do ficheiro"
 
 #, fuzzy
 #~ msgid "all import-clean-* options from above"
-#~ msgstr "ler opções do ficheiro"
+#~ msgstr "ler opções do ficheiro"
 
 #, fuzzy
 #~ msgid "expired: %s)"
@@ -9859,27 +9933,27 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "Unable to clean `%s'\n"
-#~ msgstr "não foi possível alterar o exec-path para %s\n"
+#~ msgstr "não foi possível alterar o exec-path para %s\n"
 
 #, fuzzy
 #~ msgid "No user IDs are removable.\n"
-#~ msgstr "o utilizador com o id \"%s\" já está revocado\n"
+#~ msgstr "o utilizador com o id \"%s\" já está revocado\n"
 
 #, fuzzy
 #~ msgid "bad passphrase or unknown cipher algorithm (%d)\n"
 #~ msgstr "algoritmo de criptografia desconhecido"
 
 #~ msgid "can't set client pid for the agent\n"
-#~ msgstr "não consegui colocar o pid do cliente no agente\n"
+#~ msgstr "não consegui colocar o pid do cliente no agente\n"
 
 #~ msgid "can't get server read FD for the agent\n"
-#~ msgstr "não consigo obter FD de leitura no servidor para o agente\n"
+#~ msgstr "não consigo obter FD de leitura no servidor para o agente\n"
 
 #~ msgid "can't get server write FD for the agent\n"
-#~ msgstr "não consigo obter FD de escrita no servidor para o agente\n"
+#~ msgstr "não consigo obter FD de escrita no servidor para o agente\n"
 
 #~ msgid "select secondary key N"
-#~ msgstr "seleciona chave secundária N"
+#~ msgstr "seleciona chave secundária N"
 
 #~ msgid "list signatures"
 #~ msgstr "lista assinaturas"
@@ -9888,7 +9962,7 @@ msgstr ""
 #~ msgstr "assina a chave"
 
 #~ msgid "add a secondary key"
-#~ msgstr "adiciona nova chave secundária"
+#~ msgstr "adiciona nova chave secundária"
 
 #~ msgid "delete signatures"
 #~ msgstr "remove assinaturas"
@@ -9897,13 +9971,13 @@ msgstr ""
 #~ msgstr "muda a data de validade"
 
 #~ msgid "set preference list"
-#~ msgstr "configurar lista de preferências"
+#~ msgstr "configurar lista de preferências"
 
 #~ msgid "updated preferences"
-#~ msgstr "preferências actualizadas"
+#~ msgstr "preferências actualizadas"
 
 #~ msgid "No secondary key with index %d\n"
-#~ msgstr "Nenhuma chave secundária com índice %d\n"
+#~ msgstr "Nenhuma chave secundária com índice %d\n"
 
 #~ msgid "--nrsign-key user-id"
 #~ msgstr "--nrsign-key id-utilizador"
@@ -9912,10 +9986,10 @@ msgstr ""
 #~ msgstr "--nrlsign-key id-utilizador"
 
 #~ msgid "sign the key non-revocably"
-#~ msgstr "assina a chave de forma não-revogável"
+#~ msgstr "assina a chave de forma não-revogável"
 
 #~ msgid "sign the key locally and non-revocably"
-#~ msgstr "assinar a chave localmente e de forma não revogável"
+#~ msgstr "assinar a chave localmente e de forma não revogável"
 
 #~ msgid "q"
 #~ msgstr "q"
@@ -10067,56 +10141,56 @@ msgstr ""
 #~ "    highest suggested keysize is 2048 bits\n"
 #~ msgstr ""
 #~ "Prestes a gerar um novo par de chaves %s.\n"
-#~ "              tamanho mínimo é  768 bits\n"
-#~ "         tamanho por omissão é 1024 bits\n"
-#~ "     tamanho máximo sugerido é 2048 bits\n"
+#~ "              tamanho mínimo é  768 bits\n"
+#~ "         tamanho por omissão é 1024 bits\n"
+#~ "     tamanho máximo sugerido é 2048 bits\n"
 
 #~ msgid "DSA only allows keysizes from 512 to 1024\n"
 #~ msgstr "DSA permite apenas tamanhos de 512 a 1024\n"
 
 #~ msgid "keysize too small; 1024 is smallest value allowed for RSA.\n"
-#~ msgstr "tamanho muito pequeno; 1024 é o valor mínimo permitido para RSA.\n"
+#~ msgstr "tamanho muito pequeno; 1024 é o valor mínimo permitido para RSA.\n"
 
 #~ msgid "keysize too small; 768 is smallest value allowed.\n"
-#~ msgstr "tamanho muito pequeno; 768 é o valor mínimo permitido.\n"
+#~ msgstr "tamanho muito pequeno; 768 é o valor mínimo permitido.\n"
 
 #~ msgid "keysize too large; %d is largest value allowed.\n"
-#~ msgstr "tamanho muito grande; %d é o valor máximo permitido.\n"
+#~ msgstr "tamanho muito grande; %d é o valor máximo permitido.\n"
 
 #~ msgid ""
 #~ "Keysizes larger than 2048 are not suggested because\n"
 #~ "computations take REALLY long!\n"
 #~ msgstr ""
-#~ "Tamanhos de chave maiores que 2048 não são recomendados\n"
-#~ "porque o tempo de computação é REALMENTE longo!\n"
+#~ "Tamanhos de chave maiores que 2048 não são recomendados\n"
+#~ "porque o tempo de computação é REALMENTE longo!\n"
 
 #, fuzzy
 #~ msgid "Are you sure that you want this keysize? (y/N) "
-#~ msgstr "Você tem certeza de que quer este tamanho de chave? "
+#~ msgstr "Você tem certeza de que quer este tamanho de chave? "
 
 #~ msgid ""
 #~ "Okay, but keep in mind that your monitor and keyboard radiation is also "
 #~ "very vulnerable to attacks!\n"
 #~ msgstr ""
-#~ "Tudo bem, mas não se esqueça que a radiação do seu monitor e teclado "
-#~ "também é extremamente vulnerável a ataques!\n"
+#~ "Tudo bem, mas não se esqueça que a radiação do seu monitor e teclado "
+#~ "também é extremamente vulnerável a ataques!\n"
 
 #~ msgid "Experimental algorithms should not be used!\n"
-#~ msgstr "Algoritmos experimentais não devem ser usados!\n"
+#~ msgstr "Algoritmos experimentais não devem ser usados!\n"
 
 #~ msgid ""
 #~ "this cipher algorithm is deprecated; please use a more standard one!\n"
 #~ msgstr ""
-#~ "este algoritmo de criptografia está desctualizado; por favor use um "
+#~ "este algoritmo de criptografia está desctualizado; por favor use um "
 #~ "algoritmo mais standard!x\n"
 
 #, fuzzy
 #~ msgid "sorry, can't do this in batch mode\n"
-#~ msgstr "impossível fazer isso em modo não-interativo\n"
+#~ msgstr "impossível fazer isso em modo não-interativo\n"
 
 #, fuzzy
 #~ msgid "can't open file `%s': %s\n"
-#~ msgstr "impossível abrir %s: %s\n"
+#~ msgstr "impossível abrir %s: %s\n"
 
 #~ msgid "key %08lX: key has been revoked!\n"
 #~ msgstr "chave %08lX: a chave foi revogada!\n"
@@ -10128,7 +10202,7 @@ msgstr ""
 #~ msgstr "%08lX: a chave expirou\n"
 
 #~ msgid "%08lX: We do NOT trust this key\n"
-#~ msgstr "%08lX: Nós NÃO confiamos nesta chave\n"
+#~ msgstr "%08lX: Nós NÃO confiamos nesta chave\n"
 
 #, fuzzy
 #~ msgid "   (%d) RSA (auth only)\n"
@@ -10147,7 +10221,7 @@ msgstr ""
 #~ msgstr "   (%d) RSA (assinatura e cifragem)\n"
 
 #~ msgid "%s: can't open: %s\n"
-#~ msgstr "%s: impossível abrir: %s\n"
+#~ msgstr "%s: impossível abrir: %s\n"
 
 #~ msgid "%s: WARNING: empty file\n"
 #~ msgstr "%s: AVISO: ficheiro vazio\n"
@@ -10173,25 +10247,25 @@ msgstr ""
 #~ "assinada localmente com a sua chave %08lX em %s\n"
 
 #~ msgid "%s: can't create lock\n"
-#~ msgstr "%s: impossível criar tranca\n"
+#~ msgstr "%s: impossível criar tranca\n"
 
 #~ msgid "%s: can't make lock\n"
-#~ msgstr "%s: impossível criar tranca\n"
+#~ msgstr "%s: impossível criar tranca\n"
 
 #~ msgid "%s: can't create: %s\n"
-#~ msgstr "%s: impossível criar: %s\n"
+#~ msgstr "%s: impossível criar: %s\n"
 
 #~ msgid "If you want to use this revoked key anyway, answer \"yes\"."
 #~ msgstr ""
-#~ "Se você quiser usar esta chave revogada assim mesmo, responda \"sim\"."
+#~ "Se você quiser usar esta chave revogada assim mesmo, responda \"sim\"."
 
 #, fuzzy
 #~ msgid "Unable to open photo \"%s\": %s\n"
-#~ msgstr "não foi possível alterar o exec-path para %s\n"
+#~ msgstr "não foi possível alterar o exec-path para %s\n"
 
 #, fuzzy
 #~ msgid "error: no ownertrust value\n"
-#~ msgstr "exportar os valores de confiança"
+#~ msgstr "exportar os valores de confiança"
 
 #~ msgid " (main key ID %08lX)"
 #~ msgstr " (ID principal da chave %08lX)"
@@ -10200,7 +10274,7 @@ msgstr ""
 #~ msgstr "rev! subchave foi revogada: %s\n"
 
 #~ msgid "rev- faked revocation found\n"
-#~ msgstr "rev- revogação falsa encontrada\n"
+#~ msgstr "rev- revogação falsa encontrada\n"
 
 #, fuzzy
 #~ msgid " [expired: %s]"
@@ -10223,22 +10297,22 @@ msgstr ""
 #~ msgstr "|[ficheiros]|decifrar ficheiros"
 
 #~ msgid "sign a key non-revocably"
-#~ msgstr "assinar uma chave de forma não revocável"
+#~ msgstr "assinar uma chave de forma não revocável"
 
 #~ msgid "sign a key locally and non-revocably"
-#~ msgstr "assinar uma chave localmente e de forma não revocável"
+#~ msgstr "assinar uma chave localmente e de forma não revocável"
 
 #~ msgid "list only the sequence of packets"
-#~ msgstr "listar apenas as sequências de pacotes"
+#~ msgstr "listar apenas as sequências de pacotes"
 
 #~ msgid "export the ownertrust values"
-#~ msgstr "exportar os valores de confiança"
+#~ msgstr "exportar os valores de confiança"
 
 #~ msgid "unattended trust database update"
-#~ msgstr "actualizar automaticamente a base de dados de confiança"
+#~ msgstr "actualizar automaticamente a base de dados de confiança"
 
 #~ msgid "fix a corrupted trust database"
-#~ msgstr "consertar uma base de dados de confiança"
+#~ msgstr "consertar uma base de dados de confiança"
 
 #~ msgid "De-Armor a file or stdin"
 #~ msgstr "retirar armadura de um ficheiro ou do \"stdin\""
@@ -10247,13 +10321,13 @@ msgstr ""
 #~ msgstr "criar armadura para um ficheiro ou \"stdin\""
 
 #~ msgid "do not force v3 signatures"
-#~ msgstr "não forçar assinaturas v3"
+#~ msgstr "não forçar assinaturas v3"
 
 #~ msgid "force v4 key signatures"
-#~ msgstr "forçar assinaturas v4"
+#~ msgstr "forçar assinaturas v4"
 
 #~ msgid "do not force v4 key signatures"
-#~ msgstr "não forçar assinaturas v4"
+#~ msgstr "não forçar assinaturas v4"
 
 #~ msgid "never use a MDC for encryption"
 #~ msgstr "nunca usar um MDC para cifrar"
@@ -10262,7 +10336,7 @@ msgstr ""
 #~ msgstr "utilizar o gpg-agent"
 
 #~ msgid "|[file]|write status info to file"
-#~ msgstr "|[ficheiro]|escrever ifnroamções de estado para o ficheiro"
+#~ msgstr "|[ficheiro]|escrever ifnroamções de estado para o ficheiro"
 
 #~ msgid "|KEYID|ultimately trust this key"
 #~ msgstr "|KEYID|confiar totalmente nesta chave"
@@ -10272,12 +10346,12 @@ msgstr ""
 
 #~ msgid "set all packet, cipher and digest options to OpenPGP behavior"
 #~ msgstr ""
-#~ "configurar todas as opções de pacote, cifragem e \"digest\"\n"
+#~ "configurar todas as opções de pacote, cifragem e \"digest\"\n"
 #~ "para comportamento OpenPGP"
 
 #~ msgid "set all packet, cipher and digest options to PGP 2.x behavior"
 #~ msgstr ""
-#~ "configurar todas as opções de pacote, cifragem e \"digest\"\n"
+#~ "configurar todas as opções de pacote, cifragem e \"digest\"\n"
 #~ "para comportamento PGP 2.x"
 
 #~ msgid "|NAME|use message digest algorithm NAME for passphrases"
@@ -10289,48 +10363,48 @@ msgstr ""
 #~ msgstr "eliminar campo keyid dos pacotes cifrados"
 
 #~ msgid "Show Photo IDs"
-#~ msgstr "Mostrar IDs Fotográficos"
+#~ msgstr "Mostrar IDs Fotográficos"
 
 #~ msgid "Don't show Photo IDs"
-#~ msgstr "Não mostrar IDs Fotográficos"
+#~ msgstr "Não mostrar IDs Fotográficos"
 
 #~ msgid "Set command line to view Photo IDs"
 #~ msgstr "Configurar linha de comandos para ver fotografias"
 
 #, fuzzy
 #~ msgid "compress algorithm `%s' is read-only in this release\n"
-#~ msgstr "o algoritmo de compressão deve estar na faixa %d..%d\n"
+#~ msgstr "o algoritmo de compressão deve estar na faixa %d..%d\n"
 
 #~ msgid "compress algorithm must be in range %d..%d\n"
-#~ msgstr "o algoritmo de compressão deve estar na faixa %d..%d\n"
+#~ msgstr "o algoritmo de compressão deve estar na faixa %d..%d\n"
 
 #~ msgid ""
 #~ "%08lX: It is not sure that this key really belongs to the owner\n"
 #~ "but it is accepted anyway\n"
 #~ msgstr ""
-#~ "%08lX: Não se tem certeza de que esta chave realmente pertence ao dono,\n"
-#~ "mas é aceite de qualquer modo\n"
+#~ "%08lX: Não se tem certeza de que esta chave realmente pertence ao dono,\n"
+#~ "mas é aceite de qualquer modo\n"
 
 #~ msgid "preference %c%lu is not valid\n"
-#~ msgstr "preferência %c%lu não é válida\n"
+#~ msgstr "preferência %c%lu não é válida\n"
 
 #~ msgid "key %08lX: not a rfc2440 key - skipped\n"
-#~ msgstr "chave %08lX: não é uma chave rfc2440 - ignorada\n"
+#~ msgstr "chave %08lX: não é uma chave rfc2440 - ignorada\n"
 
 #~ msgid ""
 #~ "NOTE: Elgamal primary key detected - this may take some time to import\n"
 #~ msgstr ""
-#~ "NOTA: Chave primária Elgamal detectada - pode demorar algum tempo a "
+#~ "NOTA: Chave primária Elgamal detectada - pode demorar algum tempo a "
 #~ "importar\n"
 
 #~ msgid " (default)"
-#~ msgstr " (por omissão)"
+#~ msgstr " (por omissão)"
 
 #~ msgid "%s%c %4u%c/%08lX  created: %s expires: %s"
 #~ msgstr "%s%c %4u%c/%08lX  criada: %s expira: %s"
 
 #~ msgid "can't get key from keyserver: %s\n"
-#~ msgstr "não consigo obter chave do servidor: %s\n"
+#~ msgstr "não consigo obter chave do servidor: %s\n"
 
 #~ msgid "success sending to `%s' (status=%u)\n"
 #~ msgstr "sucesso ao enviar para `%s' (estado=%u)\n"
@@ -10339,13 +10413,13 @@ msgstr ""
 #~ msgstr "erro ao enviar para `%s': estado=%u\n"
 
 #~ msgid "can't search keyserver: %s\n"
-#~ msgstr "não consigo procurar no servidor de chaves: %s\n"
+#~ msgstr "não consigo procurar no servidor de chaves: %s\n"
 
 #~ msgid ""
 #~ "key %08lX: this is a PGP generated ElGamal key which is NOT secure for "
 #~ "signatures!\n"
 #~ msgstr ""
-#~ "chave: %08lX: esta é uma chave ElGamal gerada pelo PGP que NÃO é segura "
+#~ "chave: %08lX: esta é uma chave ElGamal gerada pelo PGP que NÃO é segura "
 #~ "para assinaturas!\n"
 
 #~ msgid ""
@@ -10353,21 +10427,21 @@ msgstr ""
 #~ "problem)\n"
 #~ msgstr ""
 #~ "a chave %08lX foi criada %lu segundo no futuro\n"
-#~ "(viagem no tempo ou problema no relógio)\n"
+#~ "(viagem no tempo ou problema no relógio)\n"
 
 #~ msgid ""
 #~ "key %08lX has been created %lu seconds in future (time warp or clock "
 #~ "problem)\n"
 #~ msgstr ""
 #~ "a chave %08lX foi criada %lu segundos no futuro\n"
-#~ "(viagem no tempo ou problema no relógio)\n"
+#~ "(viagem no tempo ou problema no relógio)\n"
 
 #~ msgid "key %08lX marked as ultimately trusted\n"
-#~ msgstr "chave %08lX marcada como de confiança absoluta\n"
+#~ msgstr "chave %08lX marcada como de confiança absoluta\n"
 
 #~ msgid "checking at depth %d signed=%d ot(-/q/n/m/f/u)=%d/%d/%d/%d/%d/%d\n"
 #~ msgstr ""
-#~ "a verificar à profundidade %d assinado=%d ot(-/q/n/m/f/u)=%d/%d/%d/%d/%d/"
+#~ "a verificar à profundidade %d assinado=%d ot(-/q/n/m/f/u)=%d/%d/%d/%d/%d/"
 #~ "%d\n"
 
 #~ msgid ""
@@ -10395,37 +10469,37 @@ msgstr ""
 #~ msgstr ""
 #~ "Seleccione o algoritmo a ser usado.\n"
 #~ "\n"
-#~ "DSA (ou DSS) é o algoritmo de assinatura digital que pode ser usado "
+#~ "DSA (ou DSS) é o algoritmo de assinatura digital que pode ser usado "
 #~ "apenas\n"
-#~ "para assinaturas. Este é o algoritmo recomendado porque a verificação de\n"
-#~ "assinaturas DSA é muito mais rápida que a verificação de ElGamal.\n"
+#~ "para assinaturas. Este é o algoritmo recomendado porque a verificação de\n"
+#~ "assinaturas DSA é muito mais rápida que a verificação de ElGamal.\n"
 #~ "\n"
-#~ "ElGamal é um algoritmo que pode ser usado para assinatura e cifragem.\n"
+#~ "ElGamal é um algoritmo que pode ser usado para assinatura e cifragem.\n"
 #~ "O OpenPGP distingue dois tipos deste algoritmo: um apenas para cifragem\n"
-#~ "e outro para assinatura+cifragem; na verdade são iguais, mas alguns\n"
-#~ "parâmetros precisam ser escolhidos de modo especial para criar uma chave\n"
+#~ "e outro para assinatura+cifragem; na verdade são iguais, mas alguns\n"
+#~ "parâmetros precisam ser escolhidos de modo especial para criar uma chave\n"
 #~ "segura para assinatura: este programa faz isso, mas algumas outras\n"
-#~ "implementações do OpenPGP não vão necessariamente entender o tipo\n"
+#~ "implementações do OpenPGP não vão necessariamente entender o tipo\n"
 #~ "assinatura+cifragem.\n"
 #~ "\n"
-#~ "A  chave primária precisa sempre ser uma chave capaz de fazer "
+#~ "A  chave primária precisa sempre ser uma chave capaz de fazer "
 #~ "assinaturas;\n"
-#~ "este é o motivo pelo qual a chave ElGamal apenas para cifragem não está\n"
-#~ "disponível neste menu."
+#~ "este é o motivo pelo qual a chave ElGamal apenas para cifragem não está\n"
+#~ "disponível neste menu."
 
 #~ msgid ""
 #~ "Although these keys are defined in RFC2440 they are not suggested\n"
 #~ "because they are not supported by all programs and signatures created\n"
 #~ "with them are quite large and very slow to verify."
 #~ msgstr ""
-#~ "Apesar de estas chaves estarem definidas no RFC2440, elas não são "
+#~ "Apesar de estas chaves estarem definidas no RFC2440, elas não são "
 #~ "recomendadas\n"
-#~ "porque não são suportadas por todos os programas e assinaturas criadas "
+#~ "porque não são suportadas por todos os programas e assinaturas criadas "
 #~ "com\n"
-#~ "elas são grandes e sua verificação é lenta."
+#~ "elas são grandes e sua verificação é lenta."
 
 #~ msgid "%lu keys so far checked (%lu signatures)\n"
-#~ msgstr "%lu chaves verificadas até agora (%lu assinaturas)\n"
+#~ msgstr "%lu chaves verificadas até agora (%lu assinaturas)\n"
 
 #, fuzzy
 #~ msgid "key %08lX incomplete\n"
@@ -10444,14 +10518,14 @@ msgstr ""
 #~ "also\n"
 #~ "very slow, and may not be as secure as the other choices.\n"
 #~ msgstr ""
-#~ "A utilização deste algoritmo só é suportada pelo GnuPG.  Não poderá "
+#~ "A utilização deste algoritmo só é suportada pelo GnuPG.  Não poderá "
 #~ "utilizar\n"
-#~ "esta chave para comunicar com utilizadores do PGP.  Este algoritmo é "
+#~ "esta chave para comunicar com utilizadores do PGP.  Este algoritmo é "
 #~ "para\n"
-#~ "além disto muito lento, e pode não ser tão seguro como as outras opções.\n"
+#~ "além disto muito lento, e pode não ser tão seguro como as outras opções.\n"
 
 #~ msgid "invalid symkey algorithm detected (%d)\n"
-#~ msgstr "algoritmo de 'symkey' inválido detectado (%d)\n"
+#~ msgstr "algoritmo de 'symkey' inválido detectado (%d)\n"
 
 #~ msgid "this keyserver is not fully HKP compatible\n"
-#~ msgstr "o servidor de chaves não é totalmente compatível com HKP\n"
+#~ msgstr "o servidor de chaves não é totalmente compatível com HKP\n"
index b1b1dd9..ea68dc3 100644 (file)
--- a/po/ro.po
+++ b/po/ro.po
@@ -1,6 +1,6 @@
-# Mesajele în limba românã pentru gnupg.
+# Mesajele în limba română pentru gnupg.
 # Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
-# Acest fiºier este distribuit sub aceeaºi licenþã ca ºi pachetul gnupg.
+# Acest fişier este distribuit sub aceeaşi licenţă ca şi pachetul gnupg.
 # Laurentiu Buzdugan <lbuz@rolix.org>, 2003, 2004, 2005.
 #
 #
@@ -14,13 +14,13 @@ msgstr ""
 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
 "Language: ro\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #, fuzzy, c-format
 msgid "failed to acquire the pinentry lock: %s\n"
-msgstr "am eºuat sã stochez amprenta: %s\n"
+msgstr "am eşuat să stochez amprenta: %s\n"
 
 #. TRANSLATORS: These are labels for buttons etc used in
 #. Pinentries.  An underscore indicates that the next letter
@@ -49,7 +49,7 @@ msgstr ""
 #, fuzzy
 #| msgid "Do you really want to delete the selected keys? (y/N) "
 msgid "Do you really want to make your passphrase visible on the screen?"
-msgstr "Doriþi într-adevãr sã ºtergeþi cheile selectate? (d/N) "
+msgstr "Doriţi într-adevăr să ştergeţi cheile selectate? (d/N) "
 
 msgid "|pinentry-tt|Make passphrase visible"
 msgstr ""
@@ -57,7 +57,7 @@ msgstr ""
 #, fuzzy
 #| msgid "invalid passphrase"
 msgid "|pinentry-tt|Hide passphrase"
-msgstr "frazã-parolã invalidã"
+msgstr "frază-parolă invalidă"
 
 #. TRANSLATORS: This string is displayed by Pinentry as the label
 #. for the quality bar.
@@ -84,14 +84,14 @@ msgid ""
 "Please enter your passphrase, so that the secret key can be unlocked for "
 "this session"
 msgstr ""
-"Vã rugãm introduceþi fraza-parolã; aceasta este o propoziþie secretã \n"
+"Vă rugăm introduceţi fraza-parolă; aceasta este o propoziţie secretă \n"
 
 msgid "PIN:"
 msgstr ""
 
 #, fuzzy
 msgid "Passphrase:"
-msgstr "frazã-parolã incorectã"
+msgstr "frază-parolă incorectă"
 
 msgid "does not match - try again"
 msgstr ""
@@ -108,15 +108,15 @@ msgstr ""
 
 #, fuzzy
 msgid "PIN too long"
-msgstr "linie prea lungã"
+msgstr "linie prea lungă"
 
 #, fuzzy
 msgid "Passphrase too long"
-msgstr "frazã-parolã prea lungã\n"
+msgstr "frază-parolă prea lungă\n"
 
 #, fuzzy
 msgid "Invalid characters in PIN"
-msgstr "Caracter invalid în nume\n"
+msgstr "Caracter invalid în nume\n"
 
 msgid "PIN too short"
 msgstr ""
@@ -127,7 +127,7 @@ msgstr "MPI incorect"
 
 #, fuzzy
 msgid "Bad Passphrase"
-msgstr "frazã-parolã incorectã"
+msgstr "frază-parolă incorectă"
 
 #, fuzzy, c-format
 msgid "ssh keys greater than %d bits are not supported\n"
@@ -145,7 +145,7 @@ msgstr "nu pot deschide `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error getting serial number of card: %s\n"
-msgstr "eroare la obþinerea numãrului serial: %s\n"
+msgstr "eroare la obţinerea numărului serial: %s\n"
 
 #, c-format
 msgid "detected card with S/N: %s\n"
@@ -153,19 +153,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "no authentication key for ssh on card: %s\n"
-msgstr "eroare la obþinerea informaþiei pentru cheia curentã: %s\n"
+msgstr "eroare la obţinerea informaţiei pentru cheia curentă: %s\n"
 
 #, fuzzy, c-format
 msgid "no suitable card key found: %s\n"
-msgstr "nu am gãsit nici un inel de chei secret de scris: %s\n"
-
-#, fuzzy, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "citirea cheii publice a eºuat: %s\n"
-
-#, fuzzy, c-format
-msgid "error writing key: %s\n"
-msgstr "eroare la scrierea inelului de chei `%s': %s\n"
+msgstr "nu am găsit nici un inel de chei secret de scris: %s\n"
 
 #, c-format
 msgid ""
@@ -182,33 +174,33 @@ msgstr ""
 #, fuzzy, c-format
 msgid "Please enter the passphrase for the ssh key%%0A  %F%%0A  (%c)"
 msgstr ""
-"Vã rugãm introduceþi fraza-parolã; aceasta este o propoziþie secretã \n"
+"Vă rugăm introduceţi fraza-parolă; aceasta este o propoziţie secretă \n"
 
 #, fuzzy
 msgid "Please re-enter this passphrase"
-msgstr "schimbã fraza-parolã"
+msgstr "schimbă fraza-parolă"
 
 #, fuzzy, c-format
 msgid ""
 "Please enter a passphrase to protect the received secret key%%0A   %s%%0A   "
 "%s%%0Awithin gpg-agent's key storage"
 msgstr ""
-"Vã rugãm introduceþi fraza-parolã; aceasta este o propoziþie secretã \n"
+"Vă rugăm introduceţi fraza-parolă; aceasta este o propoziţie secretă \n"
 
 #, fuzzy, c-format
 msgid "failed to create stream from socket: %s\n"
-msgstr "%s: am eºuat sã creez hashtable: %s\n"
+msgstr "%s: am eşuat să creez hashtable: %s\n"
 
 #, fuzzy
 msgid "Please insert the card with serial number"
 msgstr ""
-"Vã rugãm scoateþi cardul curent ºi introducaþi unul cu numãr de serie:\n"
+"Vă rugăm scoateţi cardul curent şi introducaţi unul cu număr de serie:\n"
 "   %.*s\n"
 
 #, fuzzy
 msgid "Please remove the current card and insert the one with serial number"
 msgstr ""
-"Vã rugãm scoateþi cardul curent ºi introducaþi unul cu numãr de serie:\n"
+"Vă rugăm scoateţi cardul curent şi introducaţi unul cu număr de serie:\n"
 "   %.*s\n"
 
 #, fuzzy
@@ -229,46 +221,46 @@ msgstr ""
 
 #, fuzzy
 msgid "Repeat this Reset Code"
-msgstr "Repetaþi acest PIN: "
+msgstr "Repetaţi acest PIN: "
 
 #, fuzzy
 msgid "Repeat this PUK"
-msgstr "Repetaþi acest PIN: "
+msgstr "Repetaţi acest PIN: "
 
 #, fuzzy
 msgid "Repeat this PIN"
-msgstr "Repetaþi acest PIN: "
+msgstr "Repetaţi acest PIN: "
 
 #, fuzzy
 msgid "Reset Code not correctly repeated; try again"
-msgstr "PIN-ul nu a fost repetat corect; mai încercaþi o datã"
+msgstr "PIN-ul nu a fost repetat corect; mai încercaţi o dată"
 
 #, fuzzy
 msgid "PUK not correctly repeated; try again"
-msgstr "PIN-ul nu a fost repetat corect; mai încercaþi o datã"
+msgstr "PIN-ul nu a fost repetat corect; mai încercaţi o dată"
 
 msgid "PIN not correctly repeated; try again"
-msgstr "PIN-ul nu a fost repetat corect; mai încercaþi o datã"
+msgstr "PIN-ul nu a fost repetat corect; mai încercaţi o dată"
 
 #, fuzzy, c-format
 msgid "Please enter the PIN%s%s%s to unlock the card"
-msgstr "||Vã rugãm introduceþi PIN%%0A[semnãturi fãcute: %lu]"
+msgstr "||Vă rugăm introduceţi PIN%%0A[semnături făcute: %lu]"
 
 #, fuzzy, c-format
 msgid "error creating temporary file: %s\n"
-msgstr "eroare la crearea frazei-parolã: %s\n"
+msgstr "eroare la crearea frazei-parolă: %s\n"
 
 #, fuzzy, c-format
 msgid "error writing to temporary file: %s\n"
-msgstr "%s: eroare scriere înregistrare dir: %s\n"
+msgstr "%s: eroare scriere înregistrare dir: %s\n"
 
 #, fuzzy
 msgid "Enter new passphrase"
-msgstr "Introduceþi fraza-parolã\n"
+msgstr "Introduceţi fraza-parolă\n"
 
 #, fuzzy
 msgid "Take this one anyway"
-msgstr "Folosiþi oricum aceastã cheie? (d/N) "
+msgstr "Folosiţi oricum această cheie? (d/N) "
 
 #, c-format
 msgid ""
@@ -288,8 +280,8 @@ msgstr ""
 #| msgid "Name must be at least 5 characters long\n"
 msgid "A passphrase should be at least %u character long."
 msgid_plural "A passphrase should be at least %u characters long."
-msgstr[0] "Numele trebuie sã fie de cel puþin 5 caractere\n"
-msgstr[1] "Numele trebuie sã fie de cel puþin 5 caractere\n"
+msgstr[0] "Numele trebuie să fie de cel puţin 5 caractere\n"
+msgstr[1] "Numele trebuie să fie de cel puţin 5 caractere\n"
 
 #, c-format
 msgid "A passphrase should contain at least %u digit or%%0Aspecial character."
@@ -308,12 +300,12 @@ msgstr ""
 #, fuzzy, c-format
 msgid "Please enter the passphrase to%0Aprotect your new key"
 msgstr ""
-"Aveþi nevoie de o frazã-parolã pentru a vã proteja cheia secretã.\n"
+"Aveţi nevoie de o frază-parolă pentru a vă proteja cheia secretă.\n"
 "\n"
 
 #, fuzzy
 msgid "Please enter the new passphrase"
-msgstr "schimbã fraza-parolã"
+msgstr "schimbă fraza-parolă"
 
 #, fuzzy
 msgid ""
@@ -321,7 +313,7 @@ msgid ""
 " "
 msgstr ""
 "@\n"
-"Opþiuni:\n"
+"Opţiuni:\n"
 " "
 
 msgid "run in daemon mode (background)"
@@ -330,11 +322,16 @@ msgstr ""
 msgid "run in server mode (foreground)"
 msgstr ""
 
+#, fuzzy
+#| msgid "Key is superseded"
+msgid "run in supervised mode"
+msgstr "Cheia este înlocuită"
+
 msgid "verbose"
 msgstr "locvace"
 
 msgid "be somewhat more quiet"
-msgstr "fii oarecum mai tãcut"
+msgstr "fii oarecum mai tăcut"
 
 msgid "sh-style command output"
 msgstr ""
@@ -344,7 +341,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|read options from FILE"
-msgstr "|FIªIER|încarcã modulul extensie FIªIER"
+msgstr "|FIŞIER|încarcă modulul extensie FIŞIER"
 
 msgid "do not detach from the console"
 msgstr ""
@@ -354,7 +351,7 @@ msgstr ""
 
 #, fuzzy
 msgid "use a log file for the server"
-msgstr "cautã pentru chei pe un server de chei"
+msgstr "caută pentru chei pe un server de chei"
 
 msgid "|PGM|use PGM as the PIN-Entry program"
 msgstr ""
@@ -364,12 +361,12 @@ msgstr ""
 
 #, fuzzy
 msgid "do not use the SCdaemon"
-msgstr "actualizeazã baza de date de încredere"
+msgstr "actualizează baza de date de încredere"
 
 #, fuzzy
 #| msgid "|NAME|set terminal charset to NAME"
 msgid "|NAME|accept some commands via NAME"
-msgstr "|NUME|seteazã charset-ul pentru terminal ca NUME"
+msgstr "|NUME|setează charset-ul pentru terminal ca NUME"
 
 msgid "ignore requests to change the TTY"
 msgstr ""
@@ -385,14 +382,14 @@ msgstr ""
 
 #, fuzzy
 msgid "disallow the use of an external password cache"
-msgstr "eroare la crearea frazei-parolã: %s\n"
+msgstr "eroare la crearea frazei-parolă: %s\n"
 
 msgid "disallow clients to mark keys as \"trusted\""
 msgstr ""
 
 #, fuzzy
 msgid "allow presetting passphrase"
-msgstr "eroare la crearea frazei-parolã: %s\n"
+msgstr "eroare la crearea frazei-parolă: %s\n"
 
 msgid "disallow caller to override the pinentry"
 msgstr ""
@@ -403,23 +400,23 @@ msgstr ""
 #, fuzzy
 #| msgid "not supported"
 msgid "enable ssh support"
-msgstr "nu este suportat(ã)"
+msgstr "nu este suportat(ă)"
 
 #, fuzzy
 #| msgid "not supported"
 msgid "enable putty support"
-msgstr "nu este suportat(ã)"
+msgstr "nu este suportat(ă)"
 
 #. TRANSLATORS: @EMAIL@ will get replaced by the actual bug
 #. reporting address.  This is so that we can change the
 #. reporting address without breaking the translations.
 #, fuzzy
 msgid "Please report bugs to <@EMAIL@>.\n"
-msgstr "Raportaþi bug-uri la <gnupg-bugs@gnu.org>.\n"
+msgstr "Raportaţi bug-uri la <gnupg-bugs@gnu.org>.\n"
 
 #, fuzzy
 msgid "Usage: @GPG_AGENT@ [options] (-h for help)"
-msgstr "Folosire: gpg [opþiuni] [fiºiere] (-h pentru ajutor)"
+msgstr "Folosire: gpg [opţiuni] [fişiere] (-h pentru ajutor)"
 
 msgid ""
 "Syntax: @GPG_AGENT@ [options] [command [args]]\n"
@@ -433,22 +430,22 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "NOTE: no default option file `%s'\n"
 msgid "Note: no default option file '%s'\n"
-msgstr "NOTÃ: nici un fiºier opþiuni implicit `%s'\n"
+msgstr "NOTĂ: nici un fişier opţiuni implicit `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "option file `%s': %s\n"
 msgid "option file '%s': %s\n"
-msgstr "fiºier opþiuni `%s': %s\n"
+msgstr "fişier opţiuni `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "reading options from `%s'\n"
 msgid "reading options from '%s'\n"
-msgstr "citesc opþiuni din `%s'\n"
+msgstr "citesc opţiuni din `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: \"%s\" is a deprecated option\n"
 msgid "Note: '%s' is not considered an option\n"
-msgstr "AVERTISMENT: \"%s\" este o opþiune învechitã\n"
+msgstr "AVERTISMENT: \"%s\" este o opţiune învechită\n"
 
 #, fuzzy, c-format
 msgid "can't create socket: %s\n"
@@ -460,11 +457,11 @@ msgstr ""
 
 #, fuzzy
 msgid "a gpg-agent is already running - not starting a new one\n"
-msgstr "gpg-agent nu este disponibil în aceastã sesiune\n"
+msgstr "gpg-agent nu este disponibil în această sesiune\n"
 
 #, fuzzy
 msgid "error getting nonce for the socket\n"
-msgstr "eroare la obþinere noului PIN: %s\n"
+msgstr "eroare la obţinere noului PIN: %s\n"
 
 #, fuzzy, c-format
 msgid "error binding socket to '%s': %s\n"
@@ -476,11 +473,11 @@ msgstr "AVERTISMENT: permisiuni nesigure (unsafe) pentru extensia `%s'\n"
 
 #, fuzzy, c-format
 msgid "listen() failed: %s\n"
-msgstr "actualizarea a eºuat: %s\n"
+msgstr "actualizarea a eşuat: %s\n"
 
 #, fuzzy, c-format
 msgid "listening on socket '%s'\n"
-msgstr "scriu cheia secretã în `%s'\n"
+msgstr "scriu cheia secretă în `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "can't create directory `%s': %s\n"
@@ -494,7 +491,7 @@ msgstr "director `%s' creat\n"
 
 #, fuzzy, c-format
 msgid "stat() failed for '%s': %s\n"
-msgstr "fstat(%d) a eºuat în %s: %s\n"
+msgstr "fstat(%d) a eşuat în %s: %s\n"
 
 #, fuzzy, c-format
 msgid "can't use '%s' as home directory\n"
@@ -522,19 +519,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "npth_pselect failed: %s - waiting 1s\n"
-msgstr "actualizarea secretului a eºuat: %s\n"
+msgstr "actualizarea secretului a eşuat: %s\n"
 
 #, fuzzy, c-format
 msgid "%s %s stopped\n"
-msgstr "%s: sãritã: %s\n"
+msgstr "%s: sărită: %s\n"
 
 #, fuzzy
 msgid "no gpg-agent running in this session\n"
-msgstr "gpg-agent nu este disponibil în aceastã sesiune\n"
+msgstr "gpg-agent nu este disponibil în această sesiune\n"
 
 #, fuzzy
 msgid "Usage: gpg-preset-passphrase [options] KEYGRIP (-h for help)\n"
-msgstr "Folosire: gpg [opþiuni] [fiºiere] (-h pentru ajutor)"
+msgstr "Folosire: gpg [opţiuni] [fişiere] (-h pentru ajutor)"
 
 msgid ""
 "Syntax: gpg-preset-passphrase [options] KEYGRIP\n"
@@ -554,12 +551,12 @@ msgid ""
 " "
 msgstr ""
 "@\n"
-"Opþiuni:\n"
+"Opţiuni:\n"
 " "
 
 #, fuzzy
 msgid "Usage: gpg-protect-tool [options] (-h for help)\n"
-msgstr "Folosire: gpg [opþiuni] [fiºiere] (-h pentru ajutor)"
+msgstr "Folosire: gpg [opţiuni] [fişiere] (-h pentru ajutor)"
 
 msgid ""
 "Syntax: gpg-protect-tool [options] [args]\n"
@@ -569,12 +566,12 @@ msgstr ""
 #, fuzzy
 msgid "Please enter the passphrase to unprotect the PKCS#12 object."
 msgstr ""
-"Vã rugãm introduceþi fraza-parolã; aceasta este o propoziþie secretã \n"
+"Vă rugăm introduceţi fraza-parolă; aceasta este o propoziţie secretă \n"
 
 #, fuzzy
 msgid "Please enter the passphrase to protect the new PKCS#12 object."
 msgstr ""
-"Vã rugãm introduceþi fraza-parolã; aceasta este o propoziþie secretã \n"
+"Vă rugăm introduceţi fraza-parolă; aceasta este o propoziţie secretă \n"
 
 msgid ""
 "Please enter the passphrase to protect the imported object within the GnuPG "
@@ -586,39 +583,39 @@ msgid ""
 "Please enter the passphrase or the PIN\n"
 "needed to complete this operation."
 msgstr ""
-"Vã rugãm introduceþi fraza-parolã; aceasta este o propoziþie secretã \n"
+"Vă rugăm introduceţi fraza-parolă; aceasta este o propoziţie secretă \n"
 
 #, fuzzy
 msgid "cancelled\n"
-msgstr "anulatã"
+msgstr "anulată"
 
 #, fuzzy, c-format
 msgid "error while asking for the passphrase: %s\n"
-msgstr "eroare la crearea frazei-parolã: %s\n"
+msgstr "eroare la crearea frazei-parolă: %s\n"
 
 #, fuzzy, c-format
 msgid "error opening '%s': %s\n"
-msgstr "eroare în `%s': %s\n"
+msgstr "eroare în `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "file '%s', line %d: %s\n"
-msgstr "fiºier opþiuni `%s': %s\n"
+msgstr "fişier opţiuni `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "statement \"%s\" ignored in '%s', line %d\n"
-msgstr "eroare citire în `%s': %s\n"
+msgstr "eroare citire în `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "system trustlist '%s' not available\n"
-msgstr "pãrþi ale cheii secrete nu sunt disponibile\n"
+msgstr "părţi ale cheii secrete nu sunt disponibile\n"
 
 #, fuzzy, c-format
 msgid "bad fingerprint in '%s', line %d\n"
-msgstr "eroare citire în `%s': %s\n"
+msgstr "eroare citire în `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "invalid keyflag in '%s', line %d\n"
-msgstr "Eroare: amprentã formatatã invalid.\n"
+msgstr "Eroare: amprentă formatată invalid.\n"
 
 #, fuzzy, c-format
 msgid "error reading '%s', line %d: %s\n"
@@ -683,7 +680,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Change passphrase"
-msgstr "schimbã fraza-parolã"
+msgstr "schimbă fraza-parolă"
 
 msgid "I'll change it later"
 msgstr ""
@@ -693,12 +690,12 @@ msgstr ""
 msgid ""
 "Do you really want to delete the key identified by keygrip%%0A  %s%%0A  %%C"
 "%%0A?"
-msgstr "Doriþi într-adevãr sã ºtergeþi cheile selectate? (d/N) "
+msgstr "Doriţi într-adevăr să ştergeţi cheile selectate? (d/N) "
 
 #, fuzzy
 #| msgid "enable key"
 msgid "Delete key"
-msgstr "activeazã cheia"
+msgstr "activează cheia"
 
 msgid ""
 "Warning: This key is also listed for use with SSH!\n"
@@ -718,41 +715,41 @@ msgstr ""
 
 #, c-format
 msgid "checking created signature failed: %s\n"
-msgstr "verificarea semnãturii create a eºuat: %s\n"
+msgstr "verificarea semnăturii create a eşuat: %s\n"
 
 msgid "secret key parts are not available\n"
-msgstr "pãrþi ale cheii secrete nu sunt disponibile\n"
+msgstr "părţi ale cheii secrete nu sunt disponibile\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "public key algorithm %d (%s) is not supported\n"
-msgstr "algoritm de protecþie %d%s nu este suportat\n"
+msgstr "algoritm de protecţie %d%s nu este suportat\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "protection algorithm %d (%s) is not supported\n"
-msgstr "algoritm de protecþie %d%s nu este suportat\n"
+msgstr "algoritm de protecţie %d%s nu este suportat\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "protection hash algorithm %d (%s) is not supported\n"
-msgstr "algoritm de protecþie %d%s nu este suportat\n"
+msgstr "algoritm de protecţie %d%s nu este suportat\n"
 
 #, fuzzy, c-format
 msgid "error creating a pipe: %s\n"
-msgstr "eroare la crearea frazei-parolã: %s\n"
+msgstr "eroare la crearea frazei-parolă: %s\n"
 
 #, fuzzy, c-format
 msgid "error creating a stream for a pipe: %s\n"
-msgstr "eroare la crearea frazei-parolã: %s\n"
+msgstr "eroare la crearea frazei-parolă: %s\n"
 
 #, fuzzy, c-format
 msgid "error forking process: %s\n"
 msgstr "eroare la citire `%s': %s\n"
 
-#, fuzzy, c-format
-msgid "waiting for processes to terminate failed: %s\n"
-msgstr "actualizarea a eºuat: %s\n"
+#, c-format
+msgid "waiting for process %d to terminate failed: %s\n"
+msgstr ""
 
 #, fuzzy, c-format
 msgid "error running '%s': probably not installed\n"
@@ -767,34 +764,43 @@ msgid "error running '%s': terminated\n"
 msgstr "eroare la citire `%s': %s\n"
 
 #, fuzzy, c-format
-msgid "error getting exit code of process %d: %s\n"
-msgstr "eroare la obþinerea informaþiei pentru cheia curentã: %s\n"
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "actualizarea a eşuat: %s\n"
 
-#, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr ""
+#, fuzzy, c-format
+msgid "error getting exit code of process %d: %s\n"
+msgstr "eroare la obţinerea informaţiei pentru cheia curentă: %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to '%s': %s\n"
-msgstr "nu mã pot conecta la `%s': %s\n"
+msgstr "nu mă pot conecta la `%s': %s\n"
 
 #, fuzzy
 msgid "problem setting the gpg-agent options\n"
-msgstr "problemã cu agentul: agentul returneazã 0x%lx\n"
+msgstr "problemă cu agentul: agentul returnează 0x%lx\n"
 
 #, c-format
 msgid "can't disable core dumps: %s\n"
-msgstr "nu pot deactiva generarea fiºierelor core: %s\n"
+msgstr "nu pot deactiva generarea fişierelor core: %s\n"
 
 #, fuzzy, c-format
 msgid "Warning: unsafe ownership on %s \"%s\"\n"
-msgstr "AVERTISMENT: proprietate nesigurã (unsafe) pentru extensia `%s'\n"
+msgstr "AVERTISMENT: proprietate nesigură (unsafe) pentru extensia `%s'\n"
 
 #, fuzzy, c-format
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
 msgstr "AVERTISMENT: permisiuni nesigure (unsafe) pentru extensia `%s'\n"
 
+#, fuzzy, c-format
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "actualizarea a eşuat: %s\n"
+
+#, fuzzy, c-format
+#| msgid "renaming `%s' to `%s' failed: %s\n"
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "redenumirea `%s' ca `%s' a eşuat: %s\n"
+
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "yes"
 msgstr "da"
@@ -811,7 +817,7 @@ msgstr "nN"
 
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "quit"
-msgstr "terminã"
+msgstr "termină"
 
 msgid "qQ"
 msgstr "tT"
@@ -822,7 +828,7 @@ msgstr "OK|OK"
 
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "cancel|cancel"
-msgstr "renunþã|renunþã"
+msgstr "renunţă|renunţă"
 
 msgid "oO"
 msgstr "oO"
@@ -848,7 +854,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "WARNING: \"%s%s\" is an obsolete option - it has no effect\n"
-msgstr "AVERTISMENT: \"%s\" este o opþiune învechitã\n"
+msgstr "AVERTISMENT: \"%s\" este o opţiune învechită\n"
 
 #, c-format
 msgid "unknown debug flag '%s' ignored\n"
@@ -868,7 +874,7 @@ msgstr ""
 #, fuzzy
 #| msgid "can't do this in batch mode\n"
 msgid "connection to agent is in restricted mode\n"
-msgstr "nu pot face acest lucru în modul batch\n"
+msgstr "nu pot face acest lucru în modul batch\n"
 
 #, c-format
 msgid "no running Dirmngr - starting '%s'\n"
@@ -932,7 +938,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Data available"
-msgstr "afiºeazã toate datele disponibile"
+msgstr "afişează toate datele disponibile"
 
 #, fuzzy
 msgid "Session key created"
@@ -954,7 +960,7 @@ msgstr "necifrat"
 
 #, fuzzy
 msgid "Number of recipients"
-msgstr "Destinatari curenþi:\n"
+msgstr "Destinatari curenţi:\n"
 
 #, c-format
 msgid "Recipient %d"
@@ -969,7 +975,7 @@ msgstr "algoritm hash invalid `%s'\n"
 
 #, fuzzy, c-format
 msgid "Signer %d"
-msgstr "Semnãturã fãcutã %s\n"
+msgstr "Semnătură făcută %s\n"
 
 #, fuzzy, c-format
 msgid "attr hash algorithm: %s"
@@ -980,19 +986,19 @@ msgstr ""
 
 #, fuzzy
 msgid "Encryption algorithm supported"
-msgstr "algoritm de protecþie %d%s nu este suportat\n"
+msgstr "algoritm de protecţie %d%s nu este suportat\n"
 
 #, fuzzy
 msgid "Data verification succeeded"
-msgstr "verificare semnãturã eliminatã\n"
+msgstr "verificare semnătură eliminată\n"
 
 #, fuzzy
 msgid "Signature available"
-msgstr "Semnãturã fãcutã %s\n"
+msgstr "Semnătură făcută %s\n"
 
 #, fuzzy
 msgid "Parsing data succeeded"
-msgstr "Semnãturã bunã din \"%s\""
+msgstr "Semnătură bună din \"%s\""
 
 #, fuzzy, c-format
 msgid "bad data hash algorithm: %s"
@@ -1000,11 +1006,11 @@ msgstr "algoritm hash invalid `%s'\n"
 
 #, fuzzy, c-format
 msgid "Signature %d"
-msgstr "Semnãturã fãcutã %s\n"
+msgstr "Semnătură făcută %s\n"
 
 #, fuzzy
 msgid "Certificate chain valid"
-msgstr "Aceastã cheie a expirat!"
+msgstr "Această cheie a expirat!"
 
 #, fuzzy
 msgid "Root certificate trustworthy"
@@ -1016,7 +1022,7 @@ msgstr "certificat incorect"
 
 #, fuzzy
 msgid "the available CRL is too old"
-msgstr "Cheie disponibilã la: "
+msgstr "Cheie disponibilă la: "
 
 #, fuzzy
 msgid "CRL/OCSP check of certificates"
@@ -1031,7 +1037,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Unknown operation"
-msgstr "versiune necunoscutã"
+msgstr "versiune necunoscută"
 
 msgid "Gpg-Agent usable"
 msgstr ""
@@ -1049,7 +1055,7 @@ msgstr "eroare linia de trailer\n"
 
 #, fuzzy
 msgid "[none]"
-msgstr "[nesetat(ã)]"
+msgstr "[nesetat(ă)]"
 
 #, fuzzy
 msgid "argument not expected"
@@ -1057,11 +1063,11 @@ msgstr "Nu sunt permise comenzi administrare\n"
 
 #, fuzzy
 msgid "read error"
-msgstr "eroare citire fiºier"
+msgstr "eroare citire fişier"
 
 #, fuzzy
 msgid "keyword too long"
-msgstr "linie prea lungã"
+msgstr "linie prea lungă"
 
 #, fuzzy
 msgid "missing argument"
@@ -1070,23 +1076,23 @@ msgstr "argument invalid"
 #, fuzzy
 #| msgid "invalid armor"
 msgid "invalid argument"
-msgstr "armurã invalidã"
+msgstr "armură invalidă"
 
 #, fuzzy
 msgid "invalid command"
-msgstr "Comandã numai-administrare\n"
+msgstr "Comandă numai-administrare\n"
 
 #, fuzzy
 msgid "invalid alias definition"
-msgstr "opþiuni enumerare invalide\n"
+msgstr "opţiuni enumerare invalide\n"
 
 #, fuzzy
 msgid "out of core"
-msgstr "neforþat(ã)"
+msgstr "neforţat(ă)"
 
 #, fuzzy
 msgid "invalid option"
-msgstr "opþiuni enumerare invalide\n"
+msgstr "opţiuni enumerare invalide\n"
 
 #, c-format
 msgid "missing argument for option \"%.50s\"\n"
@@ -1094,7 +1100,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid argument for option \"%.50s\"\n"
-msgstr "opþiuni enumerare invalide\n"
+msgstr "opţiuni enumerare invalide\n"
 
 #, c-format
 msgid "option \"%.50s\" does not expect an argument\n"
@@ -1102,7 +1108,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid command \"%.50s\"\n"
-msgstr "Comandã invalidã  (încercaþi \"ajutor\")\n"
+msgstr "Comandă invalidă  (încercaţi \"ajutor\")\n"
 
 #, c-format
 msgid "option \"%.50s\" is ambiguous\n"
@@ -1114,23 +1120,23 @@ msgstr ""
 
 #, fuzzy
 msgid "out of core\n"
-msgstr "neforþat(ã)"
+msgstr "neforţat(ă)"
 
 #, fuzzy, c-format
 msgid "invalid option \"%.50s\"\n"
-msgstr "opþiuni enumerare invalide\n"
+msgstr "opţiuni enumerare invalide\n"
 
 #, fuzzy, c-format
 msgid "conversion from '%s' to '%s' not available\n"
-msgstr "redenumirea `%s' ca `%s' a eºuat: %s\n"
+msgstr "redenumirea `%s' ca `%s' a eşuat: %s\n"
 
 #, fuzzy, c-format
 msgid "iconv_open failed: %s\n"
-msgstr "nu pot deschide fiºierul: %s\n"
+msgstr "nu pot deschide fişierul: %s\n"
 
 #, fuzzy, c-format
 msgid "conversion from '%s' to '%s' failed: %s\n"
-msgstr "redenumirea `%s' ca `%s' a eºuat: %s\n"
+msgstr "redenumirea `%s' ca `%s' a eşuat: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to create temporary file '%s': %s\n"
@@ -1146,18 +1152,18 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "waiting for lock (held by %d%s) %s...\n"
-msgstr "scriu cheia secretã în `%s'\n"
+msgstr "scriu cheia secretă în `%s'\n"
 
 msgid "(deadlock?) "
 msgstr ""
 
 #, fuzzy, c-format
 msgid "lock '%s' not made: %s\n"
-msgstr "cheia publicã %s nu a fost gãsitã: %s\n"
+msgstr "cheia publică %s nu a fost găsită: %s\n"
 
 #, fuzzy, c-format
 msgid "waiting for lock %s...\n"
-msgstr "scriu cheia secretã în `%s'\n"
+msgstr "scriu cheia secretă în `%s'\n"
 
 #, c-format
 msgid "%s is too old (need %s, have %s)\n"
@@ -1165,39 +1171,39 @@ msgstr ""
 
 #, c-format
 msgid "armor: %s\n"
-msgstr "armurã: %s\n"
+msgstr "armură: %s\n"
 
 msgid "invalid armor header: "
-msgstr "header armurã invalid: "
+msgstr "header armură invalid: "
 
 msgid "armor header: "
-msgstr "header armurã: "
+msgstr "header armură: "
 
 msgid "invalid clearsig header\n"
 msgstr "header clearsig invalid\n"
 
 #, fuzzy
 msgid "unknown armor header: "
-msgstr "header armurã: "
+msgstr "header armură: "
 
 msgid "nested clear text signatures\n"
-msgstr "semnãturi text în clar încuibãrite\n"
+msgstr "semnături text în clar încuibărite\n"
 
 msgid "unexpected armor: "
-msgstr "armurã neaºteptatã: "
+msgstr "armură neaşteptată: "
 
 msgid "invalid dash escaped line: "
-msgstr "linie cu liniuþã escape invalidã: "
+msgstr "linie cu liniuţă escape invalidă: "
 
 #, c-format
 msgid "invalid radix64 character %02X skipped\n"
-msgstr "caracter radix64 invalid %02X sãrit\n"
+msgstr "caracter radix64 invalid %02X sărit\n"
 
 msgid "premature eof (no CRC)\n"
 msgstr "eof prematur (nici un CRC)\n"
 
 msgid "premature eof (in CRC)\n"
-msgstr "eof prematur (în CRC)\n"
+msgstr "eof prematur (în CRC)\n"
 
 msgid "malformed CRC\n"
 msgstr "CRC anormal\n"
@@ -1207,22 +1213,22 @@ msgid "CRC error; %06lX - %06lX\n"
 msgstr "eroare CRC; %06lX - %06lX\n"
 
 msgid "premature eof (in trailer)\n"
-msgstr "eof prematur (în trailer)\n"
+msgstr "eof prematur (în trailer)\n"
 
 msgid "error in trailer line\n"
 msgstr "eroare linia de trailer\n"
 
 msgid "no valid OpenPGP data found.\n"
-msgstr "nici o datã OpenPGP validã gãsitã.\n"
+msgstr "nici o dată OpenPGP validă găsită.\n"
 
 #, c-format
 msgid "invalid armor: line longer than %d characters\n"
-msgstr "armurã invalidã: linie mai lungã de %d caractere\n"
+msgstr "armură invalidă: linie mai lungă de %d caractere\n"
 
 msgid ""
 "quoted printable character in armor - probably a buggy MTA has been used\n"
 msgstr ""
-"caracter printabil în ghilimele în armurã - probabil a fost folosit un MTA "
+"caracter printabil în ghilimele în armură - probabil a fost folosit un MTA "
 "cu bug-uri\n"
 
 #, fuzzy, c-format
@@ -1234,23 +1240,23 @@ msgid ""
 "a notation name must have only printable characters or spaces, and end with "
 "an '='\n"
 msgstr ""
-"un nume de notaþie trebuie sã conþinã numai caractere imprimabile sau spaþii "
-"ºi sã se termine cu un '='\n"
+"un nume de notaţie trebuie să conţină numai caractere imprimabile sau spaţii "
+"şi să se termine cu un '='\n"
 
 msgid "a user notation name must contain the '@' character\n"
-msgstr "un nume de notaþie utilizator trebuie sã conþinã caracterul '@'\n"
+msgstr "un nume de notaţie utilizator trebuie să conţină caracterul '@'\n"
 
 msgid "a notation name must not contain more than one '@' character\n"
-msgstr "un nume de notaþie trebuie sã nu conþinã mai mult de un caracter '@'\n"
+msgstr "un nume de notaţie trebuie să nu conţină mai mult de un caracter '@'\n"
 
 msgid "a notation value must not use any control characters\n"
 msgstr ""
-"o valoare de notaþie trebuie sã nu foloseascã nici un caracter de control\n"
+"o valoare de notaţie trebuie să nu folosească nici un caracter de control\n"
 
 #, fuzzy
 #| msgid "a notation name must not contain more than one '@' character\n"
 msgid "a notation name may not contain an '=' character\n"
-msgstr "un nume de notaþie trebuie sã nu conþinã mai mult de un caracter '@'\n"
+msgstr "un nume de notaţie trebuie să nu conţină mai mult de un caracter '@'\n"
 
 #, fuzzy
 #| msgid ""
@@ -1258,18 +1264,18 @@ msgstr "un nume de nota
 #| "with an '='\n"
 msgid "a notation name must have only printable characters or spaces\n"
 msgstr ""
-"un nume de notaþie trebuie sã conþinã numai caractere imprimabile sau spaþii "
-"ºi sã se termine cu un '='\n"
+"un nume de notaţie trebuie să conţină numai caractere imprimabile sau spaţii "
+"şi să se termine cu un '='\n"
 
 msgid "WARNING: invalid notation data found\n"
-msgstr "AVERTISMENT: am gãsit date de notare invalide\n"
+msgstr "AVERTISMENT: am găsit date de notare invalide\n"
 
 #, c-format
 msgid "failed to proxy %s inquiry to client\n"
 msgstr ""
 
 msgid "Enter passphrase: "
-msgstr "Introduceþi fraza-parolã: "
+msgstr "Introduceţi fraza-parolă: "
 
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
@@ -1294,21 +1300,21 @@ msgid "OpenPGP card no. %s detected\n"
 msgstr "cardul OpenPGP nr. %s detectat\n"
 
 msgid "can't do this in batch mode\n"
-msgstr "nu pot face acest lucru în modul batch\n"
+msgstr "nu pot face acest lucru în modul batch\n"
 
 #, fuzzy
 msgid "This command is only available for version 2 cards\n"
-msgstr "Aceastã comandã nu este permisã în modul %s.\n"
+msgstr "Această comandă nu este permisă în modul %s.\n"
 
 #, fuzzy
 msgid "Reset Code not or not anymore available\n"
-msgstr "pãrþi ale cheii secrete nu sunt disponibile\n"
+msgstr "părţi ale cheii secrete nu sunt disponibile\n"
 
 msgid "Your selection? "
-msgstr "Selecþia d-voastrã? "
+msgstr "Selecţia d-voastră? "
 
 msgid "[not set]"
-msgstr "[nesetat(ã)]"
+msgstr "[nesetat(ă)]"
 
 msgid "male"
 msgstr "masculin"
@@ -1317,22 +1323,22 @@ msgid "female"
 msgstr "feminin"
 
 msgid "unspecified"
-msgstr "nespecificat(ã)"
+msgstr "nespecificat(ă)"
 
 msgid "not forced"
-msgstr "neforþat(ã)"
+msgstr "neforţat(ă)"
 
 msgid "forced"
-msgstr "forþat(ã)"
+msgstr "forţat(ă)"
 
 msgid "Error: Only plain ASCII is currently allowed.\n"
-msgstr "Eroare: Deocamdatã sunt permise numai caractere ASCII.\n"
+msgstr "Eroare: Deocamdată sunt permise numai caractere ASCII.\n"
 
 msgid "Error: The \"<\" character may not be used.\n"
 msgstr "Eroare: Caracterul \"<\" nu poate fi folosit.\n"
 
 msgid "Error: Double spaces are not allowed.\n"
-msgstr "Eroare: Spaþiile duble nu sunt permise.\n"
+msgstr "Eroare: Spaţiile duble nu sunt permise.\n"
 
 msgid "Cardholder's surname: "
 msgstr "Numele de familie al proprietarului cardului: "
@@ -1345,7 +1351,7 @@ msgid "Error: Combined name too long (limit is %d characters).\n"
 msgstr "Eroare: Nume combinat prea lung (limita este de %d caractere).\n"
 
 msgid "URL to retrieve public key: "
-msgstr "URL pentru a aduce cheia publicã: "
+msgstr "URL pentru a aduce cheia publică: "
 
 #, c-format
 msgid "Error: URL too long (limit is %d characters).\n"
@@ -1375,39 +1381,39 @@ msgid "Error: Private DO too long (limit is %d characters).\n"
 msgstr "Eroare DO personal pre lung (limita este de %d caractere).\n"
 
 msgid "Language preferences: "
-msgstr "Preferinþe limbã: "
+msgstr "Preferinţe limbă: "
 
 msgid "Error: invalid length of preference string.\n"
-msgstr "Eroare: lungime invalidã pentru ºir preferinþe.\n"
+msgstr "Eroare: lungime invalidă pentru şir preferinţe.\n"
 
 msgid "Error: invalid characters in preference string.\n"
-msgstr "Eroare: caractere invalide în ºir preferinþe.\n"
+msgstr "Eroare: caractere invalide în şir preferinţe.\n"
 
 msgid "Sex ((M)ale, (F)emale or space): "
-msgstr "Sex ((M)asculin, (F)eminin sau spaþiu): "
+msgstr "Sex ((M)asculin, (F)eminin sau spaţiu): "
 
 msgid "Error: invalid response.\n"
-msgstr "Eroare: rãspuns invalid.\n"
+msgstr "Eroare: răspuns invalid.\n"
 
 msgid "CA fingerprint: "
 msgstr "Amprenta CA: "
 
 msgid "Error: invalid formatted fingerprint.\n"
-msgstr "Eroare: amprentã formatatã invalid.\n"
+msgstr "Eroare: amprentă formatată invalid.\n"
 
 #, c-format
 msgid "key operation not possible: %s\n"
-msgstr "operaþia pe cheie nu e posibilã: %s\n"
+msgstr "operaţia pe cheie nu e posibilă: %s\n"
 
 msgid "not an OpenPGP card"
 msgstr "nu este un card OpenPGP"
 
 #, c-format
 msgid "error getting current key info: %s\n"
-msgstr "eroare la obþinerea informaþiei pentru cheia curentã: %s\n"
+msgstr "eroare la obţinerea informaţiei pentru cheia curentă: %s\n"
 
 msgid "Replace existing key? (y/N) "
-msgstr "Înlocuiesc cheia existentã? (d/N) "
+msgstr "Înlocuiesc cheia existentă? (d/N) "
 
 msgid ""
 "Note: There is no guarantee that the card supports the requested size.\n"
@@ -1417,23 +1423,23 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the Signature key? (%u) "
-msgstr "Ce lungime de cheie doriþi? (%u) "
+msgstr "Ce lungime de cheie doriţi? (%u) "
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the Encryption key? (%u) "
-msgstr "Ce lungime de cheie doriþi? (%u) "
+msgstr "Ce lungime de cheie doriţi? (%u) "
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the Authentication key? (%u) "
-msgstr "Ce lungime de cheie doriþi? (%u) "
+msgstr "Ce lungime de cheie doriţi? (%u) "
 
 #, c-format
 msgid "rounded up to %u bits\n"
-msgstr "rotunjitã prin adaos la %u biþi\n"
+msgstr "rotunjită prin adaos la %u biţi\n"
 
 #, c-format
 msgid "%s keysizes must be in the range %u-%u\n"
-msgstr "dimensiunile cheii %s trebuie sã fie în intervalul %u-%u\n"
+msgstr "dimensiunile cheii %s trebuie să fie în intervalul %u-%u\n"
 
 #, c-format
 msgid "The card will now be re-configured to generate a key of %u bits\n"
@@ -1444,14 +1450,14 @@ msgid "error changing size of key %d to %u bits: %s\n"
 msgstr "eroare trimitere la `%s': %s\n"
 
 msgid "Make off-card backup of encryption key? (Y/n) "
-msgstr "Creez copie de rezervã a cheii de cifrare în afara cardului? (d/N) "
+msgstr "Creez copie de rezervă a cheii de cifrare în afara cardului? (d/N) "
 
 #, fuzzy
 msgid "Note: keys are already stored on the card!\n"
-msgstr "cheia secretã deja stocatã pe un card\n"
+msgstr "cheia secretă deja stocată pe un card\n"
 
 msgid "Replace existing keys? (y/N) "
-msgstr "Înlocuiesc cheile existente? (d/N) "
+msgstr "Înlocuiesc cheile existente? (d/N) "
 
 #, fuzzy, c-format
 #| msgid ""
@@ -1463,12 +1469,12 @@ msgid ""
 "   PIN = '%s'     Admin PIN = '%s'\n"
 "You should change them using the command --change-pin\n"
 msgstr ""
-"Vã rugãm sã observaþi cã setãrile din fabricã ale PIN-urilor sunt\n"
+"Vă rugăm să observaţi că setările din fabrică ale PIN-urilor sunt\n"
 "   PIN = `%s'     PIN Admin = `%s'\n"
-"Ar trebui sã le schimbaþi folosind comanda --change-pin\n"
+"Ar trebui să le schimbaţi folosind comanda --change-pin\n"
 
 msgid "Please select the type of key to generate:\n"
-msgstr "Vã rugãm selectaþi tipul de cheie de generat:\n"
+msgstr "Vă rugăm selectaţi tipul de cheie de generat:\n"
 
 msgid "   (1) Signature key\n"
 msgstr "   (1) Cheie de semnare\n"
@@ -1480,76 +1486,76 @@ msgid "   (3) Authentication key\n"
 msgstr "   (3) Cheie de autentificare\n"
 
 msgid "Invalid selection.\n"
-msgstr "Selecþie invalidã.\n"
+msgstr "Selecţie invalidă.\n"
 
 msgid "Please select where to store the key:\n"
-msgstr "Vã rugãm selectaþi unde sã fie stocatã cheia:\n"
+msgstr "Vă rugăm selectaţi unde să fie stocată cheia:\n"
 
 #, fuzzy, c-format
 msgid "KEYTOCARD failed: %s\n"
-msgstr "actualizarea a eºuat: %s\n"
+msgstr "actualizarea a eşuat: %s\n"
 
 #, fuzzy
 #| msgid "This command is not allowed while in %s mode.\n"
 msgid "This command is not supported by this card\n"
-msgstr "Aceastã comandã nu este permisã în modul %s.\n"
+msgstr "Această comandă nu este permisă în modul %s.\n"
 
 #, fuzzy
 msgid "Note: This command destroys all keys stored on the card!\n"
-msgstr "cheia secretã deja stocatã pe un card\n"
+msgstr "cheia secretă deja stocată pe un card\n"
 
 #, fuzzy
 #| msgid "Sign it? (y/N) "
 msgid "Continue? (y/N) "
-msgstr "Doriþi sã-l semnaþi? (d/N) "
+msgstr "Doriţi să-l semnaţi? (d/N) "
 
 msgid "Really do a factory reset? (enter \"yes\") "
 msgstr ""
 
 msgid "quit this menu"
-msgstr "ieºi din acest meniu"
+msgstr "ieşi din acest meniu"
 
 msgid "show admin commands"
-msgstr "aratã comenzi administrare"
+msgstr "arată comenzi administrare"
 
 msgid "show this help"
-msgstr "afiºeazã acest mesaj"
+msgstr "afişează acest mesaj"
 
 msgid "list all available data"
-msgstr "afiºeazã toate datele disponibile"
+msgstr "afişează toate datele disponibile"
 
 msgid "change card holder's name"
-msgstr "schimbã numele purtãtorului cardului"
+msgstr "schimbă numele purtătorului cardului"
 
 msgid "change URL to retrieve key"
-msgstr "schimbã URL-ul de unde sã fie adusã cheia"
+msgstr "schimbă URL-ul de unde să fie adusă cheia"
 
 msgid "fetch the key specified in the card URL"
-msgstr "adu cheia specificatã de URL-ul de pe card"
+msgstr "adu cheia specificată de URL-ul de pe card"
 
 msgid "change the login name"
-msgstr "schimbã numele de login"
+msgstr "schimbă numele de login"
 
 msgid "change the language preferences"
-msgstr "schimbã preferinþele de limbã"
+msgstr "schimbă preferinţele de limbă"
 
 msgid "change card holder's sex"
-msgstr "schimbã sexul purtãtorului cardului"
+msgstr "schimbă sexul purtătorului cardului"
 
 msgid "change a CA fingerprint"
-msgstr "schimbã o amprentã CA"
+msgstr "schimbă o amprentă CA"
 
 msgid "toggle the signature force PIN flag"
-msgstr "comutã fanionul PIN de forþare a semnãturii"
+msgstr "comută fanionul PIN de forţare a semnăturii"
 
 msgid "generate new keys"
-msgstr "genereazã noi chei"
+msgstr "generează noi chei"
 
 msgid "menu to change or unblock the PIN"
 msgstr "meniu pentru a schimba sau debloca PIN-ul"
 
 msgid "verify the PIN and list all data"
-msgstr "verificã PIN-ul ºi listeazã toate datele"
+msgstr "verifică PIN-ul şi listează toate datele"
 
 msgid "unblock the PIN using a Reset Code"
 msgstr ""
@@ -1561,7 +1567,7 @@ msgid "gpg/card> "
 msgstr ""
 
 msgid "Admin-only command\n"
-msgstr "Comandã numai-administrare\n"
+msgstr "Comandă numai-administrare\n"
 
 msgid "Admin commands are allowed\n"
 msgstr "Sunt permise comenzi administrare\n"
@@ -1570,10 +1576,10 @@ msgid "Admin commands are not allowed\n"
 msgstr "Nu sunt permise comenzi administrare\n"
 
 msgid "Invalid command  (try \"help\")\n"
-msgstr "Comandã invalidã  (încercaþi \"ajutor\")\n"
+msgstr "Comandă invalidă  (încercaţi \"ajutor\")\n"
 
 msgid "--output doesn't work for this command\n"
-msgstr "--output nu merge pentru aceastã comandã\n"
+msgstr "--output nu merge pentru această comandă\n"
 
 #, fuzzy, c-format
 #| msgid "can't open `%s'\n"
@@ -1582,7 +1588,7 @@ msgstr "nu pot deschide `%s'\n"
 
 #, c-format
 msgid "key \"%s\" not found: %s\n"
-msgstr "cheia \"%s\" nu a fost gãsitã: %s\n"
+msgstr "cheia \"%s\" nu a fost găsită: %s\n"
 
 #, c-format
 msgid "error reading keyblock: %s\n"
@@ -1591,23 +1597,23 @@ msgstr "eroare la citire keyblock: %s\n"
 #, fuzzy, c-format
 #| msgid "key \"%s\" not found: %s\n"
 msgid "key \"%s\" not found\n"
-msgstr "cheia \"%s\" nu a fost gãsitã: %s\n"
+msgstr "cheia \"%s\" nu a fost găsită: %s\n"
 
 msgid "(unless you specify the key by fingerprint)\n"
-msgstr "(dacã nu specificaþi cheia prin amprentã)\n"
+msgstr "(dacă nu specificaţi cheia prin amprentă)\n"
 
 msgid "can't do this in batch mode without \"--yes\"\n"
-msgstr "nu pot face acest lucru în mod batch fãrã \"--yes\"\n"
+msgstr "nu pot face acest lucru în mod batch fără \"--yes\"\n"
 
 msgid "Delete this key from the keyring? (y/N) "
-msgstr "ªterge aceastã cheie din inelul de chei? (d/N) "
+msgstr "Şterge această cheie din inelul de chei? (d/N) "
 
 msgid "This is a secret key! - really delete? (y/N) "
-msgstr "Aceasta este o cheie secretã! - chiar doriþi sã o ºtergeþi? (d/N) "
+msgstr "Aceasta este o cheie secretă! - chiar doriţi să o ştergeţi? (d/N) "
 
 #, fuzzy, c-format
 msgid "deleting secret %s failed: %s\n"
-msgstr "stergere keyblock a eºuat: %s\n"
+msgstr "stergere keyblock a eşuat: %s\n"
 
 msgid "key"
 msgstr "cheie"
@@ -1619,26 +1625,26 @@ msgstr "Pubkey: "
 
 #, c-format
 msgid "deleting keyblock failed: %s\n"
-msgstr "stergere keyblock a eºuat: %s\n"
+msgstr "stergere keyblock a eşuat: %s\n"
 
 msgid "ownertrust information cleared\n"
-msgstr "informaþii încredere-proprietar curãþate\n"
+msgstr "informaţii încredere-proprietar curăţate\n"
 
 #, c-format
 msgid "there is a secret key for public key \"%s\"!\n"
-msgstr "existã o cheie secretã pentru cheia publicã \"%s\"!\n"
+msgstr "există o cheie secretă pentru cheia publică \"%s\"!\n"
 
 msgid "use option \"--delete-secret-keys\" to delete it first.\n"
 msgstr ""
-"folosiþi opþiunea \"--delete-secret-keys\" pentru a o ºterge pe aceasta mai "
-"întâi.\n"
+"folosiţi opţiunea \"--delete-secret-keys\" pentru a o şterge pe aceasta mai "
+"întâi.\n"
 
 #, c-format
 msgid "error creating passphrase: %s\n"
-msgstr "eroare la crearea frazei-parolã: %s\n"
+msgstr "eroare la crearea frazei-parolă: %s\n"
 
 msgid "can't use a symmetric ESK packet due to the S2K mode\n"
-msgstr "nu pot crea un pachet ESK simetric datoritã modului S2K\n"
+msgstr "nu pot crea un pachet ESK simetric datorită modului S2K\n"
 
 #, c-format
 msgid "using cipher %s\n"
@@ -1652,7 +1658,7 @@ msgstr "`%s' deja compresat\n"
 #, fuzzy, c-format
 #| msgid "WARNING: `%s' is an empty file\n"
 msgid "WARNING: '%s' is an empty file\n"
-msgstr "AVERTISMENT: `%s' este un fiºier gol\n"
+msgstr "AVERTISMENT: `%s' este un fişier gol\n"
 
 #, fuzzy, c-format
 #| msgid "reading from `%s'\n"
@@ -1663,7 +1669,7 @@ msgstr "citesc din `%s'\n"
 msgid ""
 "WARNING: forcing symmetric cipher %s (%d) violates recipient preferences\n"
 msgstr ""
-"AVERTISMENT: forþând cifrul simetric %s (%d) violaþi preferinþele "
+"AVERTISMENT: forţând cifrul simetric %s (%d) violaţi preferinţele "
 "destinatarului\n"
 
 #, c-format
@@ -1671,12 +1677,12 @@ msgid ""
 "WARNING: forcing compression algorithm %s (%d) violates recipient "
 "preferences\n"
 msgstr ""
-"AVERTISMENT: forþând algoritmul de compresie %s (%d) violaþi preferinþele "
+"AVERTISMENT: forţând algoritmul de compresie %s (%d) violaţi preferinţele "
 "destinatarului\n"
 
 #, c-format
 msgid "forcing symmetric cipher %s (%d) violates recipient preferences\n"
-msgstr "forþând cifrul simetric %s (%d) violaþi preferinþele destinatarului\n"
+msgstr "forţând cifrul simetric %s (%d) violaţi preferinţele destinatarului\n"
 
 #, c-format
 msgid "%s/%s encrypted for: \"%s\"\n"
@@ -1684,7 +1690,7 @@ msgstr "%s/%s cifrat pentru: \"%s\"\n"
 
 #, c-format
 msgid "you may not use %s while in %s mode\n"
-msgstr "nu puteþi folosi %s câtã vreme în modul %s\n"
+msgstr "nu puteţi folosi %s câtă vreme în modul %s\n"
 
 #, c-format
 msgid "%s encrypted data\n"
@@ -1697,23 +1703,23 @@ msgstr "cifrat cu un algoritm necunoscut %d\n"
 msgid ""
 "WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
 msgstr ""
-"AVERTISMENT: mesajul a fost cifrat cu o cheie slabã din cifrul simetric.\n"
+"AVERTISMENT: mesajul a fost cifrat cu o cheie slabă din cifrul simetric.\n"
 
 msgid "problem handling encrypted packet\n"
-msgstr "problemã cu mânuirea pachetului cifrat\n"
+msgstr "problemă cu mânuirea pachetului cifrat\n"
 
 msgid "no remote program execution supported\n"
-msgstr "nu este suportatã execuþia nici unui program la distanþã\n"
+msgstr "nu este suportată execuţia nici unui program la distanţă\n"
 
 msgid ""
 "external program calls are disabled due to unsafe options file permissions\n"
 msgstr ""
-"chemarea programelor externe sunt deactivate datoritã opþiunilor nesigure "
-"pentru permisiunile fiºierului\n"
+"chemarea programelor externe sunt deactivate datorită opţiunilor nesigure "
+"pentru permisiunile fişierului\n"
 
 msgid "this platform requires temporary files when calling external programs\n"
 msgstr ""
-"aceastã platformã necesitã fiºiere temporare când sunt chemate programe "
+"această platformă necesită fişiere temporare când sunt chemate programe "
 "externe\n"
 
 #, fuzzy, c-format
@@ -1731,39 +1737,39 @@ msgid "system error while calling external program: %s\n"
 msgstr "eroare de sistem la chemarea programului extern: %s\n"
 
 msgid "unnatural exit of external program\n"
-msgstr "ieºire nenaturalã a programului extern\n"
+msgstr "ieşire nenaturală a programului extern\n"
 
 msgid "unable to execute external program\n"
 msgstr "nu pot executa programul extern\n"
 
 #, c-format
 msgid "unable to read external program response: %s\n"
-msgstr "nu pot citi rãspunsul programului extern: %s\n"
+msgstr "nu pot citi răspunsul programului extern: %s\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unable to remove tempfile (%s) `%s': %s\n"
 msgid "WARNING: unable to remove tempfile (%s) '%s': %s\n"
-msgstr "AVERTISMENT: nu pot ºterge fiºierul temporar (%s) `%s': %s\n"
+msgstr "AVERTISMENT: nu pot şterge fişierul temporar (%s) `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unable to remove temp directory `%s': %s\n"
 msgid "WARNING: unable to remove temp directory '%s': %s\n"
-msgstr "AVERTISMENT: nu pot ºterge directorul temporar `%s': %s\n"
+msgstr "AVERTISMENT: nu pot şterge directorul temporar `%s': %s\n"
 
 #, fuzzy
 msgid "export signatures that are marked as local-only"
-msgstr "Semnãtura va fi marcatã ca non-revocabilã.\n"
+msgstr "Semnătura va fi marcată ca non-revocabilă.\n"
 
 msgid "export attribute user IDs (generally photo IDs)"
 msgstr ""
 
 #, fuzzy
 msgid "export revocation keys marked as \"sensitive\""
-msgstr "nici o cheie de revocare gãsitã pentru \"%s\"\n"
+msgstr "nici o cheie de revocare găsită pentru \"%s\"\n"
 
 #, fuzzy
 msgid "remove unusable parts from key during export"
-msgstr "cheie secretã de nefolosit"
+msgstr "cheie secretă de nefolosit"
 
 msgid "remove as much as possible from key during export"
 msgstr ""
@@ -1771,23 +1777,23 @@ msgstr ""
 #, fuzzy
 #| msgid "%s: skipped: %s\n"
 msgid " - skipped"
-msgstr "%s: sãritã: %s\n"
+msgstr "%s: sărită: %s\n"
 
 #, fuzzy, c-format
 #| msgid "writing to `%s'\n"
 msgid "writing to '%s'\n"
-msgstr "scriu în `%s'\n"
+msgstr "scriu în `%s'\n"
 
 #, fuzzy, c-format
 msgid "key %s: key material on-card - skipped\n"
-msgstr "cheia %s: semnãturã subcheie într-un loc greºit - sãritã\n"
+msgstr "cheia %s: semnătură subcheie într-un loc greşit - sărită\n"
 
 msgid "exporting secret keys not allowed\n"
 msgstr "exportul cheilor secrete nu este permis\n"
 
 #, c-format
 msgid "key %s: PGP 2.x style key - skipped\n"
-msgstr "cheia %s: cheie stil PGP 2.x - sãritã\n"
+msgstr "cheia %s: cheie stil PGP 2.x - sărită\n"
 
 msgid "WARNING: nothing exported\n"
 msgstr "AVERTISMENT: nimic exportat\n"
@@ -1798,11 +1804,11 @@ msgid "error creating '%s': %s\n"
 msgstr "eroare la creearea `%s': %s\n"
 
 msgid "[User ID not found]"
-msgstr "[ID utilizator nu a fost gãsit]"
+msgstr "[ID utilizator nu a fost găsit]"
 
 #, fuzzy, c-format
 msgid "(check argument of option '%s')\n"
-msgstr "opþiuni enumerare invalide\n"
+msgstr "opţiuni enumerare invalide\n"
 
 #, c-format
 msgid "Warning: '%s' should be a long key ID or a fingerprint\n"
@@ -1810,7 +1816,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error looking up: %s\n"
-msgstr "eroare în `%s': %s\n"
+msgstr "eroare în `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
@@ -1831,17 +1837,17 @@ msgstr "Amprenta CA: "
 
 #, c-format
 msgid "secret key \"%s\" not found: %s\n"
-msgstr "cheia secretã \"%s\" nu a fost gãsitã: %s\n"
+msgstr "cheia secretă \"%s\" nu a fost găsită: %s\n"
 
 #, fuzzy, c-format
 #| msgid "|NAME|use NAME as default secret key"
 msgid "Warning: not using '%s' as default key: %s\n"
-msgstr "|NUME|foloseºte NUME ca cheie secretã implicitã"
+msgstr "|NUME|foloseşte NUME ca cheie secretă implicită"
 
 #, fuzzy, c-format
 #| msgid "|NAME|use NAME as default secret key"
 msgid "using \"%s\" as default secret key for signing\n"
-msgstr "|NUME|foloseºte NUME ca cheie secretã implicitã"
+msgstr "|NUME|foloseşte NUME ca cheie secretă implicită"
 
 #, c-format
 msgid "all values passed to '%s' ignored\n"
@@ -1849,136 +1855,136 @@ msgstr ""
 
 #, c-format
 msgid "Invalid key %s made valid by --allow-non-selfsigned-uid\n"
-msgstr "Cheia invalidã %s fãcutã validã de --allow-non-selfsigned-uid\n"
+msgstr "Cheia invalidă %s făcută validă de --allow-non-selfsigned-uid\n"
 
 #, c-format
 msgid "using subkey %s instead of primary key %s\n"
-msgstr "folosim subcheia %s în loc de cheia primarã %s\n"
+msgstr "folosim subcheia %s în loc de cheia primară %s\n"
 
 #, fuzzy
 msgid "make a signature"
-msgstr "|[fiºier]|creazã o semnãturã"
+msgstr "|[fişier]|crează o semnătură"
 
 #, fuzzy
 msgid "make a clear text signature"
-msgstr "|[fiºier]|creazã o semnãturã text în clar"
+msgstr "|[fişier]|crează o semnătură text în clar"
 
 msgid "make a detached signature"
-msgstr "creazã o semnãturã detaºatã"
+msgstr "crează o semnătură detaşată"
 
 msgid "encrypt data"
-msgstr "cifreazã datele"
+msgstr "cifrează datele"
 
 msgid "encryption only with symmetric cipher"
-msgstr "cifreazã numai cu cifru simetric"
+msgstr "cifrează numai cu cifru simetric"
 
 msgid "decrypt data (default)"
-msgstr "decripteazã datele (implicit)"
+msgstr "decriptează datele (implicit)"
 
 msgid "verify a signature"
-msgstr "verificã o semnãturã"
+msgstr "verifică o semnătură"
 
 msgid "list keys"
-msgstr "enumerã chei"
+msgstr "enumeră chei"
 
 msgid "list keys and signatures"
-msgstr "enumerã chei ºi semnãturi"
+msgstr "enumeră chei şi semnături"
 
 msgid "list and check key signatures"
-msgstr "enumerã ºi verificã semnãturile cheii"
+msgstr "enumeră şi verifică semnăturile cheii"
 
 msgid "list keys and fingerprints"
-msgstr "enumerã chei ºi amprente"
+msgstr "enumeră chei şi amprente"
 
 msgid "list secret keys"
-msgstr "enumerã chei secrete"
+msgstr "enumeră chei secrete"
 
 msgid "generate a new key pair"
-msgstr "genereazã o nouã perechi de chei"
+msgstr "generează o nouă perechi de chei"
 
 #, fuzzy
 #| msgid "generate a new key pair"
 msgid "quickly generate a new key pair"
-msgstr "genereazã o nouã perechi de chei"
+msgstr "generează o nouă perechi de chei"
 
 #, fuzzy
 #| msgid "generate a new key pair"
 msgid "quickly add a new user-id"
-msgstr "genereazã o nouã perechi de chei"
+msgstr "generează o nouă perechi de chei"
 
 #, fuzzy
 #| msgid "generate a new key pair"
 msgid "quickly revoke a user-id"
-msgstr "genereazã o nouã perechi de chei"
+msgstr "generează o nouă perechi de chei"
 
 msgid "full featured key pair generation"
 msgstr ""
 
 msgid "generate a revocation certificate"
-msgstr "genereazã un certificat de revocare"
+msgstr "generează un certificat de revocare"
 
 msgid "remove keys from the public keyring"
-msgstr "ºterge chei de pe inelul de chei public"
+msgstr "şterge chei de pe inelul de chei public"
 
 msgid "remove keys from the secret keyring"
-msgstr "ºterge chei de pe inelul de chei secret"
+msgstr "şterge chei de pe inelul de chei secret"
 
 #, fuzzy
 #| msgid "sign a key"
 msgid "quickly sign a key"
-msgstr "semneazã o cheie"
+msgstr "semnează o cheie"
 
 #, fuzzy
 #| msgid "sign a key locally"
 msgid "quickly sign a key locally"
-msgstr "semneazã o cheie local"
+msgstr "semnează o cheie local"
 
 msgid "sign a key"
-msgstr "semneazã o cheie"
+msgstr "semnează o cheie"
 
 msgid "sign a key locally"
-msgstr "semneazã o cheie local"
+msgstr "semnează o cheie local"
 
 msgid "sign or edit a key"
-msgstr "semneazã sau editeazã o cheie"
+msgstr "semnează sau editează o cheie"
 
 #, fuzzy
 msgid "change a passphrase"
-msgstr "schimbã fraza-parolã"
+msgstr "schimbă fraza-parolă"
 
 msgid "export keys"
-msgstr "exportã chei"
+msgstr "exportă chei"
 
 msgid "export keys to a keyserver"
-msgstr "exportã chei pentru un server de chei"
+msgstr "exportă chei pentru un server de chei"
 
 msgid "import keys from a keyserver"
-msgstr "importã chei de la un server de chei"
+msgstr "importă chei de la un server de chei"
 
 msgid "search for keys on a keyserver"
-msgstr "cautã pentru chei pe un server de chei"
+msgstr "caută pentru chei pe un server de chei"
 
 msgid "update all keys from a keyserver"
-msgstr "actualizeazã toate cheile de la un server de chei"
+msgstr "actualizează toate cheile de la un server de chei"
 
 msgid "import/merge keys"
-msgstr "importã/combinã chei"
+msgstr "importă/combină chei"
 
 msgid "print the card status"
-msgstr "afiºeazã starea cardului"
+msgstr "afişează starea cardului"
 
 msgid "change data on a card"
-msgstr "schimbã data de pe card"
+msgstr "schimbă data de pe card"
 
 msgid "change a card's PIN"
-msgstr "schimbã PIN-ul unui card"
+msgstr "schimbă PIN-ul unui card"
 
 msgid "update the trust database"
-msgstr "actualizeazã baza de date de încredere"
+msgstr "actualizează baza de date de încredere"
 
 #, fuzzy
 msgid "print message digests"
-msgstr "|algo [fiºiere]|afiºeazã rezumate mesaje"
+msgstr "|algo [fişiere]|afişează rezumate mesaje"
 
 msgid "run in server mode"
 msgstr ""
@@ -1987,7 +1993,7 @@ msgid "|VALUE|set the TOFU policy for a key"
 msgstr ""
 
 msgid "create ascii armored output"
-msgstr "creazã ieºire în armurã ascii"
+msgstr "crează ieşire în armură ascii"
 
 #, fuzzy
 msgid "|USER-ID|encrypt for USER-ID"
@@ -1995,34 +2001,34 @@ msgstr "|NUME|cifrare pentru NUME"
 
 #, fuzzy
 msgid "|USER-ID|use USER-ID to sign or decrypt"
-msgstr "foloseºte acest id-utilizator pentru a semna sau decripta"
+msgstr "foloseşte acest id-utilizator pentru a semna sau decripta"
 
 #, fuzzy
 msgid "|N|set compress level to N (0 disables)"
-msgstr "|N|seteazã nivel de compresie N (0 deactiveazã)"
+msgstr "|N|setează nivel de compresie N (0 deactivează)"
 
 msgid "use canonical text mode"
-msgstr "foloseºte modul text canonic"
+msgstr "foloseşte modul text canonic"
 
 #, fuzzy
 msgid "|FILE|write output to FILE"
-msgstr "|FIªIER|încarcã modulul extensie FIªIER"
+msgstr "|FIŞIER|încarcă modulul extensie FIŞIER"
 
 msgid "do not make any changes"
 msgstr "nu face nici o schimbare"
 
 msgid "prompt before overwriting"
-msgstr "întreabã înainte de a suprascrie"
+msgstr "întreabă înainte de a suprascrie"
 
 msgid "use strict OpenPGP behavior"
-msgstr "foloseºte comportament strict OpenPGP"
+msgstr "foloseşte comportament strict OpenPGP"
 
 msgid ""
 "@\n"
 "(See the man page for a complete listing of all commands and options)\n"
 msgstr ""
 "@\n"
-"(Aratã pagina man pentru o listã completã a comenzilor ºi opþiunilor)\n"
+"(Arată pagina man pentru o listă completă a comenzilor şi opţiunilor)\n"
 
 msgid ""
 "@\n"
@@ -2037,16 +2043,16 @@ msgstr ""
 "@\n"
 "Exemple:\n"
 "\n"
-" -se -r Dan [fiºier]        semneazã ºi cifreazã pentru utilizatorul Dan\n"
-" --clearsign [fiºier]       creazã o semnãturã text în clar\n"
-" --detach-sign [fiºier]     creazã o semnãturã detaºatã\n"
-" --list-keys [nume]         aratã chei\n"
-" --fingerprint [nume]       aratã amprente\n"
+" -se -r Dan [fişier]        semnează şi cifrează pentru utilizatorul Dan\n"
+" --clearsign [fişier]       crează o semnătură text în clar\n"
+" --detach-sign [fişier]     crează o semnătură detaşată\n"
+" --list-keys [nume]         arată chei\n"
+" --fingerprint [nume]       arată amprente\n"
 
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: @GPG@ [options] [files] (-h for help)"
-msgstr "Folosire: gpg [opþiuni] [fiºiere] (-h pentru ajutor)"
+msgstr "Folosire: gpg [opţiuni] [fişiere] (-h pentru ajutor)"
 
 #, fuzzy
 #| msgid ""
@@ -2058,9 +2064,9 @@ msgid ""
 "Sign, check, encrypt or decrypt\n"
 "Default operation depends on the input data\n"
 msgstr ""
-"Sintaxã: gpg [opþiuni] [fiºiere]\n"
+"Sintaxă: gpg [opţiuni] [fişiere]\n"
 "sign, check, encrypt sau decrypt\n"
-"operaþiunea implicitã depinde de datele de intrare\n"
+"operaţiunea implicită depinde de datele de intrare\n"
 
 msgid ""
 "\n"
@@ -2083,32 +2089,32 @@ msgstr "Compresie: "
 
 #, fuzzy, c-format
 msgid "usage: %s [options] %s\n"
-msgstr "folosire: gpg [opþiuni] "
+msgstr "folosire: gpg [opţiuni] "
 
 msgid "conflicting commands\n"
-msgstr "comenzi în conflict\n"
+msgstr "comenzi în conflict\n"
 
 #, fuzzy, c-format
 #| msgid "no = sign found in group definition `%s'\n"
 msgid "no = sign found in group definition '%s'\n"
-msgstr "nu am gãsit nici un semn = în definiþia grupului `%s'\n"
+msgstr "nu am găsit nici un semn = în definiţia grupului `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unsafe ownership on homedir `%s'\n"
 msgid "WARNING: unsafe ownership on homedir '%s'\n"
 msgstr ""
-"AVERTISMENT: proprietate nesigurã (unsafe) pentru directorul home `%s'\n"
+"AVERTISMENT: proprietate nesigură (unsafe) pentru directorul home `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unsafe ownership on configuration file `%s'\n"
 msgid "WARNING: unsafe ownership on configuration file '%s'\n"
 msgstr ""
-"AVERTISMENT: proprietate nesigurã (unsafe) pentru fiºier configurare `%s'\n"
+"AVERTISMENT: proprietate nesigură (unsafe) pentru fişier configurare `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unsafe ownership on extension `%s'\n"
 msgid "WARNING: unsafe ownership on extension '%s'\n"
-msgstr "AVERTISMENT: proprietate nesigurã (unsafe) pentru extensia `%s'\n"
+msgstr "AVERTISMENT: proprietate nesigură (unsafe) pentru extensia `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unsafe permissions on homedir `%s'\n"
@@ -2120,7 +2126,7 @@ msgstr ""
 #| msgid "WARNING: unsafe permissions on configuration file `%s'\n"
 msgid "WARNING: unsafe permissions on configuration file '%s'\n"
 msgstr ""
-"AVERTISMENT: permisiuni nesigure (unsafe) pentru fiºier configurare `%s'\n"
+"AVERTISMENT: permisiuni nesigure (unsafe) pentru fişier configurare `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unsafe permissions on extension `%s'\n"
@@ -2140,7 +2146,7 @@ msgstr ""
 msgid ""
 "WARNING: unsafe enclosing directory ownership on configuration file '%s'\n"
 msgstr ""
-"AVERTISMENT: proprietate director incluziuni nesigur (unsafe) pentru fiºier "
+"AVERTISMENT: proprietate director incluziuni nesigur (unsafe) pentru fişier "
 "configurare `%s'\n"
 
 #, fuzzy, c-format
@@ -2164,7 +2170,7 @@ msgstr ""
 msgid ""
 "WARNING: unsafe enclosing directory permissions on configuration file '%s'\n"
 msgstr ""
-"AVERTISMENT: permisiuni director incluziuni nesigure (unsafe) pentru fiºier "
+"AVERTISMENT: permisiuni director incluziuni nesigure (unsafe) pentru fişier "
 "configurare `%s'\n"
 
 #, fuzzy, c-format
@@ -2184,14 +2190,14 @@ msgstr ""
 
 #, fuzzy
 msgid "show key usage information during key listings"
-msgstr "Nici o semnãturã corespunzãtoare în inelul secret\n"
+msgstr "Nici o semnătură corespunzătoare în inelul secret\n"
 
 msgid "show policy URLs during signature listings"
 msgstr ""
 
 #, fuzzy
 msgid "show all notations during signature listings"
-msgstr "Nici o semnãturã corespunzãtoare în inelul secret\n"
+msgstr "Nici o semnătură corespunzătoare în inelul secret\n"
 
 msgid "show IETF standard notations during signature listings"
 msgstr ""
@@ -2214,42 +2220,46 @@ msgstr ""
 
 #, fuzzy
 msgid "show the keyring name in key listings"
-msgstr "aratã cãruia dintre inelele de chei îi aparþine o cheie enumeratã"
+msgstr "arată căruia dintre inelele de chei îi aparţine o cheie enumerată"
 
 #, fuzzy
 msgid "show expiration dates during signature listings"
-msgstr "Nici o semnãturã corespunzãtoare în inelul secret\n"
+msgstr "Nici o semnătură corespunzătoare în inelul secret\n"
 
-#, fuzzy
-msgid "available TOFU policies:\n"
-msgstr "deactiveazã cheia"
+#, fuzzy, c-format
+msgid "valid values for option '%s':\n"
+msgstr "opţiuni enumerare invalide\n"
 
 #, fuzzy, c-format
 #| msgid "unknown option `%s'\n"
 msgid "unknown TOFU policy '%s'\n"
-msgstr "opþiune necunoscutã `%s'\n"
+msgstr "opţiune necunoscută `%s'\n"
 
 msgid "(use \"help\" to list choices)\n"
 msgstr ""
 
 #, fuzzy, c-format
+msgid "invalid value for option '%s'\n"
+msgstr "opţiuni enumerare invalide\n"
+
+#, fuzzy, c-format
 #| msgid "NOTE: old default options file `%s' ignored\n"
 msgid "Note: old default options file '%s' ignored\n"
-msgstr "NOTÃ: fisier opþiuni implicite vechi `%s' ignorat\n"
+msgstr "NOTĂ: fisier opţiuni implicite vechi `%s' ignorat\n"
 
 #, fuzzy, c-format
 #| msgid "NOTE: %s is not for normal use!\n"
 msgid "Note: %s is not for normal use!\n"
-msgstr "NOTÃ: %s nu este pentru o folosire normalã!\n"
+msgstr "NOTĂ: %s nu este pentru o folosire normală!\n"
 
 #, fuzzy, c-format
 #| msgid "`%s' is not a valid signature expiration\n"
 msgid "'%s' is not a valid signature expiration\n"
-msgstr "`%s' nu este expirare de semnãturã validã\n"
+msgstr "`%s' nu este expirare de semnătură validă\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" is not a proper mail address\n"
-msgstr "Nu este o adresã de email validã\n"
+msgstr "Nu este o adresă de email validă\n"
 
 #, fuzzy, c-format
 msgid "invalid pinentry mode '%s'\n"
@@ -2266,36 +2276,36 @@ msgstr "nu am putut interpreta URL-ul serverului de chei\n"
 
 #, c-format
 msgid "%s:%d: invalid keyserver options\n"
-msgstr "%s:%d: opþiuni server de chei invalide\n"
+msgstr "%s:%d: opţiuni server de chei invalide\n"
 
 msgid "invalid keyserver options\n"
-msgstr "opþiuni server de chei invalide\n"
+msgstr "opţiuni server de chei invalide\n"
 
 #, c-format
 msgid "%s:%d: invalid import options\n"
-msgstr "%s:%d: opþiuni import invalide\n"
+msgstr "%s:%d: opţiuni import invalide\n"
 
 msgid "invalid import options\n"
-msgstr "opþiuni import invalide\n"
+msgstr "opţiuni import invalide\n"
 
 #, fuzzy, c-format
 #| msgid "invalid list options\n"
 msgid "invalid filter option: %s\n"
-msgstr "opþiuni enumerare invalide\n"
+msgstr "opţiuni enumerare invalide\n"
 
 #, c-format
 msgid "%s:%d: invalid export options\n"
-msgstr "%s:%d: opþiuni export invalide\n"
+msgstr "%s:%d: opţiuni export invalide\n"
 
 msgid "invalid export options\n"
-msgstr "opþiuni export invalide\n"
+msgstr "opţiuni export invalide\n"
 
 #, c-format
 msgid "%s:%d: invalid list options\n"
-msgstr "%s:%d: opþiuni enumerare invalide\n"
+msgstr "%s:%d: opţiuni enumerare invalide\n"
 
 msgid "invalid list options\n"
-msgstr "opþiuni enumerare invalide\n"
+msgstr "opţiuni enumerare invalide\n"
 
 msgid "display photo IDs during signature verification"
 msgstr ""
@@ -2305,7 +2315,7 @@ msgstr ""
 
 #, fuzzy
 msgid "show all notations during signature verification"
-msgstr "`%s' nu este expirare de semnãturã validã\n"
+msgstr "`%s' nu este expirare de semnătură validă\n"
 
 msgid "show IETF standard notations during signature verification"
 msgstr ""
@@ -2319,14 +2329,14 @@ msgstr "URL-ul serverului de chei preferat furnizat este invalid\n"
 
 #, fuzzy
 msgid "show user ID validity during signature verification"
-msgstr "`%s' nu este expirare de semnãturã validã\n"
+msgstr "`%s' nu este expirare de semnătură validă\n"
 
 msgid "show revoked and expired user IDs in signature verification"
 msgstr ""
 
 #, fuzzy
 msgid "show only the primary user ID in signature verification"
-msgstr "`%s' nu este expirare de semnãturã validã\n"
+msgstr "`%s' nu este expirare de semnătură validă\n"
 
 msgid "validate signatures with PKA data"
 msgstr ""
@@ -2336,28 +2346,28 @@ msgstr ""
 
 #, c-format
 msgid "%s:%d: invalid verify options\n"
-msgstr "%s:%d: opþiuni verificare invalide\n"
+msgstr "%s:%d: opţiuni verificare invalide\n"
 
 msgid "invalid verify options\n"
-msgstr "opþiuni verificare invalide\n"
+msgstr "opţiuni verificare invalide\n"
 
 #, c-format
 msgid "unable to set exec-path to %s\n"
-msgstr "nu pot seta cale-execuþie ca %s\n"
+msgstr "nu pot seta cale-execuţie ca %s\n"
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid auto-key-locate list\n"
-msgstr "%s:%d: opþiuni verificare invalide\n"
+msgstr "%s:%d: opţiuni verificare invalide\n"
 
 msgid "invalid auto-key-locate list\n"
 msgstr ""
 
 msgid "WARNING: program may create a core file!\n"
-msgstr "AVERTISMENT: programul ar putea crea un fiºier core!\n"
+msgstr "AVERTISMENT: programul ar putea crea un fişier core!\n"
 
 #, c-format
 msgid "WARNING: %s overrides %s\n"
-msgstr "AVERTISMENT: %s înlocuieºte %s\n"
+msgstr "AVERTISMENT: %s înlocuieşte %s\n"
 
 #, c-format
 msgid "%s not allowed with %s!\n"
@@ -2372,7 +2382,7 @@ msgstr ""
 
 #, c-format
 msgid "will not run with insecure memory due to %s\n"
-msgstr "nu va rula cu memorie neprotejatã (insecure) pentru cã %s\n"
+msgstr "nu va rula cu memorie neprotejată (insecure) pentru că %s\n"
 
 msgid "selected cipher algorithm is invalid\n"
 msgstr "algoritm cifrare selectat este invalid\n"
@@ -2387,116 +2397,116 @@ msgid "selected certification digest algorithm is invalid\n"
 msgstr "algoritm rezumat certificare selectat este invalid\n"
 
 msgid "completes-needed must be greater than 0\n"
-msgstr "completes-needed trebuie sã fie mai mare decât 0\n"
+msgstr "completes-needed trebuie să fie mai mare decât 0\n"
 
 msgid "marginals-needed must be greater than 1\n"
-msgstr "marginals-needed trebuie sã fie mai mare decât 1\n"
+msgstr "marginals-needed trebuie să fie mai mare decât 1\n"
 
 msgid "max-cert-depth must be in the range from 1 to 255\n"
-msgstr "max-cert-depth trebuie sã fie în intervalul de la 1 la 255\n"
+msgstr "max-cert-depth trebuie să fie în intervalul de la 1 la 255\n"
 
 msgid "invalid default-cert-level; must be 0, 1, 2, or 3\n"
-msgstr "default-cert-level invalid; trebuie sã fie 0, 1, 2 sau 3\n"
+msgstr "default-cert-level invalid; trebuie să fie 0, 1, 2 sau 3\n"
 
 msgid "invalid min-cert-level; must be 1, 2, or 3\n"
-msgstr "min-cert-level invalid; trebuie sã fie 0, 1, 2 sau 3\n"
+msgstr "min-cert-level invalid; trebuie să fie 0, 1, 2 sau 3\n"
 
 #, fuzzy
 #| msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
 msgid "Note: simple S2K mode (0) is strongly discouraged\n"
-msgstr "NOTÃ: modul S2K simplu (0) este contraindicat cu insistenþã\n"
+msgstr "NOTĂ: modul S2K simplu (0) este contraindicat cu insistenţă\n"
 
 msgid "invalid S2K mode; must be 0, 1 or 3\n"
-msgstr "mod S2K invalid; trebuie sã fie 0, 1 sau 3\n"
+msgstr "mod S2K invalid; trebuie să fie 0, 1 sau 3\n"
 
 msgid "invalid default preferences\n"
-msgstr "preferinþe implicite invalide\n"
+msgstr "preferinţe implicite invalide\n"
 
 msgid "invalid personal cipher preferences\n"
-msgstr "preferinþe cifrare personale invalide\n"
+msgstr "preferinţe cifrare personale invalide\n"
 
 msgid "invalid personal digest preferences\n"
-msgstr "preferinþe rezumat personale invalide\n"
+msgstr "preferinţe rezumat personale invalide\n"
 
 msgid "invalid personal compress preferences\n"
-msgstr "preferinþe compresie personale invalide\n"
+msgstr "preferinţe compresie personale invalide\n"
 
 #, c-format
 msgid "%s does not yet work with %s\n"
-msgstr "%s nu merge încã cu %s!\n"
+msgstr "%s nu merge încă cu %s!\n"
 
 #, fuzzy, c-format
 #| msgid "you may not use cipher algorithm `%s' while in %s mode\n"
 msgid "you may not use cipher algorithm '%s' while in %s mode\n"
-msgstr "nu puteþi folosi algoritmul de cifrare `%s' câtã vreme în modul %s\n"
+msgstr "nu puteţi folosi algoritmul de cifrare `%s' câtă vreme în modul %s\n"
 
 #, fuzzy, c-format
 #| msgid "you may not use digest algorithm `%s' while in %s mode\n"
 msgid "you may not use digest algorithm '%s' while in %s mode\n"
-msgstr "nu puteþi folosi algorimul de rezumat `%s' câtã vreme în modul %s\n"
+msgstr "nu puteţi folosi algorimul de rezumat `%s' câtă vreme în modul %s\n"
 
 #, fuzzy, c-format
 #| msgid "you may not use compression algorithm `%s' while in %s mode\n"
 msgid "you may not use compression algorithm '%s' while in %s mode\n"
-msgstr "nu puteþi folosi algoritmul de compresie `%s' câtã vreme în modul %s\n"
+msgstr "nu puteţi folosi algoritmul de compresie `%s' câtă vreme în modul %s\n"
 
 #, c-format
 msgid "failed to initialize the TrustDB: %s\n"
-msgstr "am eºuat sã iniþializez TrustDB:%s\n"
+msgstr "am eşuat să iniţializez TrustDB:%s\n"
 
 msgid "WARNING: recipients (-r) given without using public key encryption\n"
 msgstr ""
-"AVERTISMENT: destinatari (-r) furnizaþi fãrã a folosi cifrare cu cheie "
-"publicã\n"
+"AVERTISMENT: destinatari (-r) furnizaţi fără a folosi cifrare cu cheie "
+"publică\n"
 
 msgid "--store [filename]"
-msgstr "--store [nume_fiºier]"
+msgstr "--store [nume_fişier]"
 
 msgid "--symmetric [filename]"
-msgstr "--symmetric [nume_fiºier]"
+msgstr "--symmetric [nume_fişier]"
 
 #, fuzzy, c-format
 #| msgid "symmetric encryption of `%s' failed: %s\n"
 msgid "symmetric encryption of '%s' failed: %s\n"
-msgstr "cifrarea simetricã a lui `%s' a eºuat: %s\n"
+msgstr "cifrarea simetrică a lui `%s' a eşuat: %s\n"
 
 msgid "--encrypt [filename]"
-msgstr "--encrypt [nume_fiºier]"
+msgstr "--encrypt [nume_fişier]"
 
 msgid "--symmetric --encrypt [filename]"
-msgstr "--symmetric --encrypt [nume_fiºier]"
+msgstr "--symmetric --encrypt [nume_fişier]"
 
 msgid "you cannot use --symmetric --encrypt with --s2k-mode 0\n"
-msgstr "nu puteþi folosi --symmetric --encrypt cu --s2k-mode 0\n"
+msgstr "nu puteţi folosi --symmetric --encrypt cu --s2k-mode 0\n"
 
 #, c-format
 msgid "you cannot use --symmetric --encrypt while in %s mode\n"
-msgstr "nu puteþi folosi --symmetric --encrypt câtã vreme în modul %s\n"
+msgstr "nu puteţi folosi --symmetric --encrypt câtă vreme în modul %s\n"
 
 msgid "--sign [filename]"
-msgstr "--sign [nume_fiºier]"
+msgstr "--sign [nume_fişier]"
 
 msgid "--sign --encrypt [filename]"
-msgstr "--sign --encrypt [nume_fiºier]"
+msgstr "--sign --encrypt [nume_fişier]"
 
 msgid "--symmetric --sign --encrypt [filename]"
-msgstr "--symmetric --sign --encrypt [nume_fiºier]"
+msgstr "--symmetric --sign --encrypt [nume_fişier]"
 
 msgid "you cannot use --symmetric --sign --encrypt with --s2k-mode 0\n"
-msgstr "nu puteþi folosi --symmetric --sign --encrypt cu --s2k-mode 0\n"
+msgstr "nu puteţi folosi --symmetric --sign --encrypt cu --s2k-mode 0\n"
 
 #, c-format
 msgid "you cannot use --symmetric --sign --encrypt while in %s mode\n"
-msgstr "nu puteþi folosi --symmetric --sign --encrypt câtã vreme în modul %s\n"
+msgstr "nu puteţi folosi --symmetric --sign --encrypt câtă vreme în modul %s\n"
 
 msgid "--sign --symmetric [filename]"
-msgstr "--sign --symmetric [nume_fiºier]"
+msgstr "--sign --symmetric [nume_fişier]"
 
 msgid "--clearsign [filename]"
-msgstr "--clearsign [nume_fiºier]"
+msgstr "--clearsign [nume_fişier]"
 
 msgid "--decrypt [filename]"
-msgstr "--decrypt [nume_fiºier]"
+msgstr "--decrypt [nume_fişier]"
 
 msgid "--sign-key user-id"
 msgstr "--sign-key id-utilizator"
@@ -2513,36 +2523,36 @@ msgstr "--sign-key id-utilizator"
 
 #, c-format
 msgid "keyserver send failed: %s\n"
-msgstr "trimitere server de chei eºuatã: %s\n"
+msgstr "trimitere server de chei eşuată: %s\n"
 
 #, c-format
 msgid "keyserver receive failed: %s\n"
-msgstr "recepþie server de chei eºuatã: %s\n"
+msgstr "recepţie server de chei eşuată: %s\n"
 
 #, c-format
 msgid "key export failed: %s\n"
-msgstr "export cheie eºuat: %s\n"
+msgstr "export cheie eşuat: %s\n"
 
 #, fuzzy, c-format
 #| msgid "key export failed: %s\n"
 msgid "export as ssh key failed: %s\n"
-msgstr "export cheie eºuat: %s\n"
+msgstr "export cheie eşuat: %s\n"
 
 #, c-format
 msgid "keyserver search failed: %s\n"
-msgstr "cãutare server de chei eºuatã: %s\n"
+msgstr "căutare server de chei eşuată: %s\n"
 
 #, c-format
 msgid "keyserver refresh failed: %s\n"
-msgstr "actualizare server de chei eºuatã: %s\n"
+msgstr "actualizare server de chei eşuată: %s\n"
 
 #, c-format
 msgid "dearmoring failed: %s\n"
-msgstr "eliminarea armurii a eºuat: %s\n"
+msgstr "eliminarea armurii a eşuat: %s\n"
 
 #, c-format
 msgid "enarmoring failed: %s\n"
-msgstr "punerea armurii a eºuat: %s\n"
+msgstr "punerea armurii a eşuat: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid hash algorithm `%s'\n"
@@ -2551,23 +2561,23 @@ msgstr "algoritm hash invalid `%s'\n"
 
 #, fuzzy, c-format
 msgid "error parsing key specification '%s': %s\n"
-msgstr "eroare la obþinerea numãrului serial: %s\n"
+msgstr "eroare la obţinerea numărului serial: %s\n"
 
 #, c-format
 msgid "'%s' does not appear to be a valid key ID, fingerprint or keygrip\n"
 msgstr ""
 
 msgid "[filename]"
-msgstr "[nume_fiºier]"
+msgstr "[nume_fişier]"
 
 msgid "Go ahead and type your message ...\n"
-msgstr "Daþi-i drumul ºi scrieþi mesajul ...\n"
+msgstr "Daţi-i drumul şi scrieţi mesajul ...\n"
 
 msgid "the given certification policy URL is invalid\n"
 msgstr "URL-ul politicii de certificare furnizat este invalid\n"
 
 msgid "the given signature policy URL is invalid\n"
-msgstr "URL-ul politicii de semnãturi furnizat este invalid\n"
+msgstr "URL-ul politicii de semnături furnizat este invalid\n"
 
 msgid "the given preferred keyserver URL is invalid\n"
 msgstr "URL-ul serverului de chei preferat furnizat este invalid\n"
@@ -2577,24 +2587,24 @@ msgid "|FILE|take the keys from the keyring FILE"
 msgstr "ia cheile de pe acest inel de chei"
 
 msgid "make timestamp conflicts only a warning"
-msgstr "dã numai un avertisment la conflicte de timestamp"
+msgstr "dă numai un avertisment la conflicte de timestamp"
 
 msgid "|FD|write status info to this FD"
-msgstr "|FD|scrie informaþii de stare în acest FD"
+msgstr "|FD|scrie informaţii de stare în acest FD"
 
 msgid "|ALGO|reject signatures made with ALGO"
 msgstr ""
 
 msgid "Usage: gpgv [options] [files] (-h for help)"
-msgstr "Folosire: gpgv [opþiuni] [fiºiere] (-h pentru ajutor)"
+msgstr "Folosire: gpgv [opţiuni] [fişiere] (-h pentru ajutor)"
 
 #, fuzzy
 msgid ""
 "Syntax: gpgv [options] [files]\n"
 "Check signatures against known trusted keys\n"
 msgstr ""
-"Sintaxã: gpg [opþiuni] [fiºiere]\n"
-"Verificã semnãturi folosind cheile cunoscute ca fiind de încredere\n"
+"Sintaxă: gpg [opţiuni] [fişiere]\n"
+"Verifică semnături folosind cheile cunoscute ca fiind de încredere\n"
 
 msgid "No help available"
 msgstr "Nici un ajutor disponibil"
@@ -2612,23 +2622,23 @@ msgstr ""
 
 #, fuzzy
 msgid "do not clear the ownertrust values during import"
-msgstr "actualizeazã baza de date de încredere"
+msgstr "actualizează baza de date de încredere"
 
 #, fuzzy
 msgid "do not update the trustdb after import"
-msgstr "actualizeazã baza de date de încredere"
+msgstr "actualizează baza de date de încredere"
 
 #, fuzzy
 #| msgid "show key fingerprint"
 msgid "show key during import"
-msgstr "afiºeazã amprenta cheii"
+msgstr "afişează amprenta cheii"
 
 msgid "only accept updates to existing keys"
 msgstr ""
 
 #, fuzzy
 msgid "remove unusable parts from key after import"
-msgstr "cheie secretã de nefolosit"
+msgstr "cheie secretă de nefolosit"
 
 msgid "remove as much as possible from key after import"
 msgstr ""
@@ -2638,28 +2648,28 @@ msgstr ""
 
 #, c-format
 msgid "skipping block of type %d\n"
-msgstr "bloc de tip %d sãrit\n"
+msgstr "bloc de tip %d sărit\n"
 
 #, c-format
 msgid "%lu keys processed so far\n"
-msgstr "%lu chei procesate pânã acum\n"
+msgstr "%lu chei procesate până acum\n"
 
 #, c-format
 msgid "Total number processed: %lu\n"
-msgstr "Numãr total procesate: %lu\n"
+msgstr "Număr total procesate: %lu\n"
 
 #, fuzzy, c-format
 #| msgid "      skipped new keys: %lu\n"
 msgid "    skipped PGP-2 keys: %lu\n"
-msgstr "      chei noi sãrite: %lu\n"
+msgstr "      chei noi sărite: %lu\n"
 
 #, c-format
 msgid "      skipped new keys: %lu\n"
-msgstr "      chei noi sãrite: %lu\n"
+msgstr "      chei noi sărite: %lu\n"
 
 #, c-format
 msgid "          w/o user IDs: %lu\n"
-msgstr "  fãrã ID-uri utilizator: %lu\n"
+msgstr "  fără ID-uri utilizator: %lu\n"
 
 #, c-format
 msgid "              imported: %lu"
@@ -2679,11 +2689,11 @@ msgstr "             noi subchei: %lu\n"
 
 #, c-format
 msgid "        new signatures: %lu\n"
-msgstr "           noi semnãturi: %lu\n"
+msgstr "           noi semnături: %lu\n"
 
 #, c-format
 msgid "   new key revocations: %lu\n"
-msgstr "    noi revocãri de chei: %lu\n"
+msgstr "    noi revocări de chei: %lu\n"
 
 #, c-format
 msgid "      secret keys read: %lu\n"
@@ -2703,7 +2713,7 @@ msgstr "            ne importate: %lu\n"
 
 #, fuzzy, c-format
 msgid "    signatures cleaned: %lu\n"
-msgstr "semnãturi create pânã acum: %lu\n"
+msgstr "semnături create până acum: %lu\n"
 
 #, fuzzy, c-format
 msgid "      user IDs cleaned: %lu\n"
@@ -2713,32 +2723,32 @@ msgstr "     chei secrete citite: %lu\n"
 msgid ""
 "WARNING: key %s contains preferences for unavailable\n"
 "algorithms on these user IDs:\n"
-msgstr "AVERTISMENT: cheia %s conþine preferinþe pentru indisponibil\n"
+msgstr "AVERTISMENT: cheia %s conţine preferinţe pentru indisponibil\n"
 
 #, c-format
 msgid "         \"%s\": preference for cipher algorithm %s\n"
-msgstr "         \"%s\": preferinþã pentru algoritm de cifrare %s\n"
+msgstr "         \"%s\": preferinţă pentru algoritm de cifrare %s\n"
 
 #, c-format
 msgid "         \"%s\": preference for digest algorithm %s\n"
-msgstr "         \"%s\": preferinþã pentru algoritm rezumat %s\n"
+msgstr "         \"%s\": preferinţă pentru algoritm rezumat %s\n"
 
 #, c-format
 msgid "         \"%s\": preference for compression algorithm %s\n"
-msgstr "         \"%s\": preferinþã pentru algoritm compresie %s\n"
+msgstr "         \"%s\": preferinţă pentru algoritm compresie %s\n"
 
 msgid "it is strongly suggested that you update your preferences and\n"
 msgstr ""
-"este puternic sugerat sã vã actualizaþi preferinþele ºi re-distribuiþi\n"
+"este puternic sugerat să vă actualizaţi preferinţele şi re-distribuiţi\n"
 
 msgid "re-distribute this key to avoid potential algorithm mismatch problems\n"
 msgstr ""
-"aceastã cheie pentru a avita probleme potenþiale de ne-potrivire de "
+"această cheie pentru a avita probleme potenţiale de ne-potrivire de "
 "algoritm\n"
 
 #, c-format
 msgid "you can update your preferences with: gpg --edit-key %s updpref save\n"
-msgstr "vã puteþi actualiza preferinþele cu: gpg --edit-key %s updpref save\n"
+msgstr "vă puteţi actualiza preferinţele cu: gpg --edit-key %s updpref save\n"
 
 #, c-format
 msgid "key %s: no user ID\n"
@@ -2747,14 +2757,14 @@ msgstr "cheia %s: nici un ID utilizator\n"
 #, fuzzy, c-format
 #| msgid "skipped \"%s\": %s\n"
 msgid "key %s: %s\n"
-msgstr "sãritã \"%s\": %s\n"
+msgstr "sărită \"%s\": %s\n"
 
 msgid "rejected by import screener"
 msgstr ""
 
 #, c-format
 msgid "key %s: PKS subkey corruption repaired\n"
-msgstr "cheia %s: subcheia HPK coruptã a fost reparatã\n"
+msgstr "cheia %s: subcheia HPK coruptă a fost reparată\n"
 
 #, c-format
 msgid "key %s: accepted non self-signed user ID \"%s\"\n"
@@ -2765,19 +2775,19 @@ msgid "key %s: no valid user IDs\n"
 msgstr "cheia %s: nici un ID utilizator valid\n"
 
 msgid "this may be caused by a missing self-signature\n"
-msgstr "aceasta poate fi cauzatã de o auto-semnãturã ce lipseºte\n"
+msgstr "aceasta poate fi cauzată de o auto-semnătură ce lipseşte\n"
 
 #, c-format
 msgid "key %s: public key not found: %s\n"
-msgstr "cheia %s: cheia publicã nu a fost gãsitã: %s\n"
+msgstr "cheia %s: cheia publică nu a fost găsită: %s\n"
 
 #, c-format
 msgid "key %s: new key - skipped\n"
-msgstr "cheia %s: cheie nouã - sãritã\n"
+msgstr "cheia %s: cheie nouă - sărită\n"
 
 #, c-format
 msgid "no writable keyring found: %s\n"
-msgstr "n-am gãsit nici un inel de chei ce poate fi scris: %s\n"
+msgstr "n-am găsit nici un inel de chei ce poate fi scris: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing keyring `%s': %s\n"
@@ -2786,15 +2796,15 @@ msgstr "eroare la scrierea inelului de chei `%s': %s\n"
 
 #, c-format
 msgid "key %s: public key \"%s\" imported\n"
-msgstr "cheia %s: cheia publicã \"%s\" importatã\n"
+msgstr "cheia %s: cheia publică \"%s\" importată\n"
 
 #, c-format
 msgid "key %s: doesn't match our copy\n"
-msgstr "cheia %s: nu se potriveºte cu copia noastrã\n"
+msgstr "cheia %s: nu se potriveşte cu copia noastră\n"
 
 #, c-format
 msgid "key %s: can't locate original keyblock: %s\n"
-msgstr "cheia %s: nu pot gãsi keyblock-ul original: %s\n"
+msgstr "cheia %s: nu pot găsi keyblock-ul original: %s\n"
 
 #, c-format
 msgid "key %s: can't read original keyblock: %s\n"
@@ -2810,15 +2820,15 @@ msgstr "cheia %s: \"%s\" %d noi ID-uri utilizator\n"
 
 #, c-format
 msgid "key %s: \"%s\" 1 new signature\n"
-msgstr "cheia %s: \"%s\" 1 nouã semnãturã\n"
+msgstr "cheia %s: \"%s\" 1 nouă semnătură\n"
 
 #, c-format
 msgid "key %s: \"%s\" %d new signatures\n"
-msgstr "cheia %s: \"%s\" %d noi semnãturi\n"
+msgstr "cheia %s: \"%s\" %d noi semnături\n"
 
 #, c-format
 msgid "key %s: \"%s\" 1 new subkey\n"
-msgstr "cheia %s: \"%s\" 1 nouã subcheie\n"
+msgstr "cheia %s: \"%s\" 1 nouă subcheie\n"
 
 #, c-format
 msgid "key %s: \"%s\" %d new subkeys\n"
@@ -2826,11 +2836,11 @@ msgstr "cheia %s: \"%s\" %d noi subchei\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d signature cleaned\n"
-msgstr "cheia %s: \"%s\" %d noi semnãturi\n"
+msgstr "cheia %s: \"%s\" %d noi semnături\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d signatures cleaned\n"
-msgstr "cheia %s: \"%s\" %d noi semnãturi\n"
+msgstr "cheia %s: \"%s\" %d noi semnături\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d user ID cleaned\n"
@@ -2842,16 +2852,16 @@ msgstr "cheia %s: \"%s\" %d noi ID-uri utilizator\n"
 
 #, c-format
 msgid "key %s: \"%s\" not changed\n"
-msgstr "cheia %s: \"%s\" nu a fost schimbatã\n"
+msgstr "cheia %s: \"%s\" nu a fost schimbată\n"
 
 #, c-format
 msgid "key %s: secret key imported\n"
-msgstr "cheia %s: cheie secretã importatã\n"
+msgstr "cheia %s: cheie secretă importată\n"
 
 #, fuzzy, c-format
 #| msgid "skipped: secret key already present\n"
 msgid "key %s: secret key already exists\n"
-msgstr "sãritã: cheia secretã deja prezentã\n"
+msgstr "sărită: cheia secretă deja prezentă\n"
 
 #, fuzzy, c-format
 msgid "key %s: error sending to agent: %s\n"
@@ -2860,14 +2870,14 @@ msgstr "eroare trimitere la `%s': %s\n"
 #, fuzzy, c-format
 #| msgid "secret key \"%s\" not found: %s\n"
 msgid "secret key %s: %s\n"
-msgstr "cheia secretã \"%s\" nu a fost gãsitã: %s\n"
+msgstr "cheia secretă \"%s\" nu a fost găsită: %s\n"
 
 msgid "importing secret keys not allowed\n"
 msgstr "importul de chei secrete nu este permis\n"
 
 #, c-format
 msgid "key %s: secret key with invalid cipher %d - skipped\n"
-msgstr "cheia %s: cheie secretã cu cifru invalid %d - sãritã\n"
+msgstr "cheia %s: cheie secretă cu cifru invalid %d - sărită\n"
 
 #. TRANSLATORS: For smartcard, each private key on
 #. host has a reference (stub) to a smartcard and
@@ -2886,7 +2896,7 @@ msgstr ""
 #, c-format
 msgid "key %s: no public key - can't apply revocation certificate\n"
 msgstr ""
-"cheia %s: nici o cheie publicã - nu pot aplica certificatul de revocare\n"
+"cheia %s: nici o cheie publică - nu pot aplica certificatul de revocare\n"
 
 #, c-format
 msgid "key %s: invalid revocation certificate: %s - rejected\n"
@@ -2898,25 +2908,25 @@ msgstr "cheia %s: certificatul de revocare \"%s\" importat\n"
 
 #, c-format
 msgid "key %s: no user ID for signature\n"
-msgstr "cheia %s: nici un ID utilizator pentru semnãturã\n"
+msgstr "cheia %s: nici un ID utilizator pentru semnătură\n"
 
 #, c-format
 msgid "key %s: unsupported public key algorithm on user ID \"%s\"\n"
 msgstr ""
-"cheia %s: algoritm cu cheie publicã nesuportat pentru ID-ul utilizator \"%s"
+"cheia %s: algoritm cu cheie publică nesuportat pentru ID-ul utilizator \"%s"
 "\"\n"
 
 #, c-format
 msgid "key %s: invalid self-signature on user ID \"%s\"\n"
-msgstr "cheia %s: auto-semnãturã invalidã pentru ID-ul utilizator \"%s\"\n"
+msgstr "cheia %s: auto-semnătură invalidă pentru ID-ul utilizator \"%s\"\n"
 
 #, c-format
 msgid "key %s: unsupported public key algorithm\n"
-msgstr "cheia %s: algoritm cu cheie publicã nesuportat\n"
+msgstr "cheia %s: algoritm cu cheie publică nesuportat\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid direct key signature\n"
-msgstr "cheia %s: am adãugat semnãtura de cheie directã\n"
+msgstr "cheia %s: am adăugat semnătura de cheie directă\n"
 
 #, c-format
 msgid "key %s: no subkey for key binding\n"
@@ -2924,11 +2934,11 @@ msgstr "cheia %s: nici o subcheie pentru legarea cheii\n"
 
 #, c-format
 msgid "key %s: invalid subkey binding\n"
-msgstr "cheia %s: legare subcheie invalidã\n"
+msgstr "cheia %s: legare subcheie invalidă\n"
 
 #, c-format
 msgid "key %s: removed multiple subkey binding\n"
-msgstr "cheia %s: am ºters multiple legãturi de subchei\n"
+msgstr "cheia %s: am şters multiple legături de subchei\n"
 
 #, c-format
 msgid "key %s: no subkey for key revocation\n"
@@ -2936,39 +2946,39 @@ msgstr "cheia %s: nici o subcheie pentru revocare de cheie\n"
 
 #, c-format
 msgid "key %s: invalid subkey revocation\n"
-msgstr "cheia %s: revocare de subcheie invalidã\n"
+msgstr "cheia %s: revocare de subcheie invalidă\n"
 
 #, c-format
 msgid "key %s: removed multiple subkey revocation\n"
-msgstr "cheia %s: am ºters multiple revocãri de subcheie\n"
+msgstr "cheia %s: am şters multiple revocări de subcheie\n"
 
 #, c-format
 msgid "key %s: skipped user ID \"%s\"\n"
-msgstr "cheia %s: am sãrit ID-ul utilizator \"%s\"\n"
+msgstr "cheia %s: am sărit ID-ul utilizator \"%s\"\n"
 
 #, c-format
 msgid "key %s: skipped subkey\n"
-msgstr "cheia %s: am sãrit subcheia\n"
+msgstr "cheia %s: am sărit subcheia\n"
 
 #, c-format
 msgid "key %s: non exportable signature (class 0x%02X) - skipped\n"
-msgstr "cheia %s: semnãtura nu poate fi exportatã (clasa 0x%02X) - sãritã\n"
+msgstr "cheia %s: semnătura nu poate fi exportată (clasa 0x%02X) - sărită\n"
 
 #, c-format
 msgid "key %s: revocation certificate at wrong place - skipped\n"
-msgstr "cheia %s: certificat de revocare într-un loc greºit - sãrit\n"
+msgstr "cheia %s: certificat de revocare într-un loc greşit - sărit\n"
 
 #, c-format
 msgid "key %s: invalid revocation certificate: %s - skipped\n"
-msgstr "cheia %s: certificat de revocare invalid: %s - sãrit\n"
+msgstr "cheia %s: certificat de revocare invalid: %s - sărit\n"
 
 #, c-format
 msgid "key %s: subkey signature in wrong place - skipped\n"
-msgstr "cheia %s: semnãturã subcheie într-un loc greºit - sãritã\n"
+msgstr "cheia %s: semnătură subcheie într-un loc greşit - sărită\n"
 
 #, c-format
 msgid "key %s: unexpected signature class (0x%02X) - skipped\n"
-msgstr "cheia %s: clasã de semnãturã neaºteptatã (0x%02X) - sãritã\n"
+msgstr "cheia %s: clasă de semnătură neaşteptată (0x%02X) - sărită\n"
 
 #, c-format
 msgid "key %s: duplicated user ID detected - merged\n"
@@ -2976,21 +2986,21 @@ msgstr "cheia %s: am detectat un ID utilizator duplicat - combinate\n"
 
 #, c-format
 msgid "WARNING: key %s may be revoked: fetching revocation key %s\n"
-msgstr "AVERTISMENT: cheia %s poate fi revocatã: aduc revocarea cheii %s\n"
+msgstr "AVERTISMENT: cheia %s poate fi revocată: aduc revocarea cheii %s\n"
 
 #, c-format
 msgid "WARNING: key %s may be revoked: revocation key %s not present.\n"
 msgstr ""
-"AVERTISMENT: cheia %s poate fi revocatã: cheia de revocare %s nu este "
-"prezentã.\n"
+"AVERTISMENT: cheia %s poate fi revocată: cheia de revocare %s nu este "
+"prezentă.\n"
 
 #, c-format
 msgid "key %s: \"%s\" revocation certificate added\n"
-msgstr "cheia %s: am adãugat certificatul de revocare \"%s\"\n"
+msgstr "cheia %s: am adăugat certificatul de revocare \"%s\"\n"
 
 #, c-format
 msgid "key %s: direct key signature added\n"
-msgstr "cheia %s: am adãugat semnãtura de cheie directã\n"
+msgstr "cheia %s: am adăugat semnătura de cheie directă\n"
 
 #, fuzzy, c-format
 msgid "error creating keybox '%s': %s\n"
@@ -3013,41 +3023,45 @@ msgstr "inelul de chei `%s' creat\n"
 #, fuzzy, c-format
 #| msgid "keyblock resource `%s': %s\n"
 msgid "keyblock resource '%s': %s\n"
-msgstr "resursã keyblock `%s': %s\n"
+msgstr "resursă keyblock `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error opening key DB: %s\n"
-msgstr "eroare în `%s': %s\n"
+msgstr "eroare în `%s': %s\n"
 
 #, c-format
 msgid "failed to rebuild keyring cache: %s\n"
-msgstr "am eºuat sã reconstruiesc cache-ul inelului de chei: %s\n"
+msgstr "am eşuat să reconstruiesc cache-ul inelului de chei: %s\n"
 
 msgid "[revocation]"
 msgstr "[revocare]"
 
 msgid "[self-signature]"
-msgstr "[auto-semnãturã]"
+msgstr "[auto-semnătură]"
+
+#, fuzzy, c-format
+msgid "error allocating memory: %s\n"
+msgstr "eroare la crearea inelului de chei `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "key %s: unsupported public key algorithm\n"
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
-msgstr "cheia %s: algoritm cu cheie publicã nesuportat\n"
+msgstr "cheia %s: algoritm cu cheie publică nesuportat\n"
 
 #, fuzzy, c-format
 msgid ""
 "can't check signature with unsupported message-digest algorithm %d: %s.\n"
-msgstr "semnãturã %s, algoritm rezumat %s\n"
+msgstr "semnătură %s, algoritm rezumat %s\n"
 
 #, fuzzy
 #| msgid "revoke signatures"
 msgid " (reordered signatures follow)"
-msgstr "revocã semnãturi"
+msgstr "revocă semnături"
 
 #, fuzzy, c-format
 #| msgid "skipped \"%s\": %s\n"
 msgid "key %s:\n"
-msgstr "sãritã \"%s\": %s\n"
+msgstr "sărită \"%s\": %s\n"
 
 #, fuzzy, c-format
 msgid "%d duplicate signature removed\n"
@@ -3059,21 +3073,21 @@ msgstr[1] "ID utilizator \"%s\" a fost revocat."
 #| msgid "1 signature not checked due to a missing key\n"
 msgid "%d signature not checked due to a missing key\n"
 msgid_plural "%d signatures not checked due to missing keys\n"
-msgstr[0] "1 semnãturã nu a fost verificatã din cauza unei chei lipsã\n"
-msgstr[1] "1 semnãturã nu a fost verificatã din cauza unei chei lipsã\n"
+msgstr[0] "1 semnătură nu a fost verificată din cauza unei chei lipsă\n"
+msgstr[1] "1 semnătură nu a fost verificată din cauza unei chei lipsă\n"
 
 #, fuzzy, c-format
 #| msgid "%d bad signatures\n"
 msgid "%d bad signature\n"
 msgid_plural "%d bad signatures\n"
-msgstr[0] "%d semnãturi incorecte\n"
-msgstr[1] "%d semnãturi incorecte\n"
+msgstr[0] "%d semnături incorecte\n"
+msgstr[1] "%d semnături incorecte\n"
 
 #, fuzzy, c-format
 msgid "%d signature reordered\n"
 msgid_plural "%d signatures reordered\n"
-msgstr[0] "Semnãturã bunã din \"%s\""
-msgstr[1] "Semnãturã bunã din \"%s\""
+msgstr[0] "Semnătură bună din \"%s\""
+msgstr[1] "Semnătură bună din \"%s\""
 
 #, c-format
 msgid ""
@@ -3087,31 +3101,31 @@ msgid ""
 "(by looking at passports, checking fingerprints from different sources, "
 "etc.)\n"
 msgstr ""
-"Vã rugãm decideþi cât de multã încredere aveþi în acest utilizator\n"
-"pentru a verifica cheile altor utilizatori (folosind paºapoarte,\n"
-"verificând amprentele din diferite surse, etc.)\n"
+"Vă rugăm decideţi cât de multă încredere aveţi în acest utilizator\n"
+"pentru a verifica cheile altor utilizatori (folosind paşapoarte,\n"
+"verificând amprentele din diferite surse, etc.)\n"
 
 #, c-format
 msgid "  %d = I trust marginally\n"
-msgstr "  %d = Am o încredere marginalã\n"
+msgstr "  %d = Am o încredere marginală\n"
 
 #, c-format
 msgid "  %d = I trust fully\n"
-msgstr "  %d = Am toatã încrederea\n"
+msgstr "  %d = Am toată încrederea\n"
 
 msgid ""
 "Please enter the depth of this trust signature.\n"
 "A depth greater than 1 allows the key you are signing to make\n"
 "trust signatures on your behalf.\n"
 msgstr ""
-"Vã rugãm sã introduceþi adâncimea acestei semnãturi de încredere.\n"
-"O adâncime mai mare de 1 permite ca cheia pe care o semnaþi sã facã\n"
-"semnãturi de încredere în numele d-voastrã.\n"
+"Vă rugăm să introduceţi adâncimea acestei semnături de încredere.\n"
+"O adâncime mai mare de 1 permite ca cheia pe care o semnaţi să facă\n"
+"semnături de încredere în numele d-voastră.\n"
 
 msgid "Please enter a domain to restrict this signature, or enter for none.\n"
 msgstr ""
-"Vã rugãm sã introduceþi domeniul de restricþionare al acestei semnãturi, sau "
-"apãsaþi enter pentru niciunul.\n"
+"Vă rugăm să introduceţi domeniul de restricţionare al acestei semnături, sau "
+"apăsaţi enter pentru niciunul.\n"
 
 #, c-format
 msgid "Skipping user ID \"%s\", which is not a text ID.\n"
@@ -3122,7 +3136,7 @@ msgid "User ID \"%s\" is revoked."
 msgstr "ID utilizator \"%s\" a fost revocat."
 
 msgid "Are you sure you still want to sign it? (y/N) "
-msgstr "Sunteþi sigur(ã) cã doriþi sã ºtergeþi permanent \"%s\"? (d/N)"
+msgstr "Sunteţi sigur(ă) că doriţi să ştergeţi permanent \"%s\"? (d/N)"
 
 msgid "  Unable to sign.\n"
 msgstr "  Nu pot semna.\n"
@@ -3140,80 +3154,80 @@ msgid "User ID \"%s\" is signable.  "
 msgstr "ID-ul utilizator \"%s\" poate fi semnat.  "
 
 msgid "Sign it? (y/N) "
-msgstr "Doriþi sã-l semnaþi? (d/N) "
+msgstr "Doriţi să-l semnaţi? (d/N) "
 
 #, c-format
 msgid ""
 "The self-signature on \"%s\"\n"
 "is a PGP 2.x-style signature.\n"
 msgstr ""
-"Auto-semnãtura pe \"%s\"\n"
-"este o semnãturã stil PGP 2.x.\n"
+"Auto-semnătura pe \"%s\"\n"
+"este o semnătură stil PGP 2.x.\n"
 
 msgid "Do you want to promote it to an OpenPGP self-signature? (y/N) "
-msgstr "Doriþi sã o promovaþi la o auto-semnãturã OpenPGP? (d/N) "
+msgstr "Doriţi să o promovaţi la o auto-semnătură OpenPGP? (d/N) "
 
 #, c-format
 msgid ""
 "Your current signature on \"%s\"\n"
 "has expired.\n"
 msgstr ""
-"Semnãtura d-voastrã curentã pe \"%s\"\n"
+"Semnătura d-voastră curentă pe \"%s\"\n"
 "a expirat.\n"
 
 msgid "Do you want to issue a new signature to replace the expired one? (y/N) "
 msgstr ""
-"Doriþi sã creaþi o nouã semnãturã pentru a o înlocui pe cea expiratã? (d/N) "
+"Doriţi să creaţi o nouă semnătură pentru a o înlocui pe cea expirată? (d/N) "
 
 #, c-format
 msgid ""
 "Your current signature on \"%s\"\n"
 "is a local signature.\n"
 msgstr ""
-"Semnãtura d-voastrã curentã pe \"%s\"\n"
-"semnãturã localã.\n"
+"Semnătura d-voastră curentă pe \"%s\"\n"
+"semnătură locală.\n"
 
 msgid "Do you want to promote it to a full exportable signature? (y/N) "
-msgstr "Doriþi sã o promovaþi la o semnãturã total exportabilã? (d/N) "
+msgstr "Doriţi să o promovaţi la o semnătură total exportabilă? (d/N) "
 
 #, c-format
 msgid "\"%s\" was already locally signed by key %s\n"
-msgstr "\"%s\" a fost deja semnatã local de cheia %s\n"
+msgstr "\"%s\" a fost deja semnată local de cheia %s\n"
 
 #, c-format
 msgid "\"%s\" was already signed by key %s\n"
-msgstr "\"%s\" a fost deja semnatã de cheia %s\n"
+msgstr "\"%s\" a fost deja semnată de cheia %s\n"
 
 msgid "Do you want to sign it again anyway? (y/N) "
-msgstr "Doriþi sã o semnaþi oricum din nou? (d/N) "
+msgstr "Doriţi să o semnaţi oricum din nou? (d/N) "
 
 #, c-format
 msgid "Nothing to sign with key %s\n"
 msgstr "Nimic de semnat cu cheia %s\n"
 
 msgid "This key has expired!"
-msgstr "Aceastã cheie a expirat!"
+msgstr "Această cheie a expirat!"
 
 #, c-format
 msgid "This key is due to expire on %s.\n"
-msgstr "Aceastã cheie va expira pe %s.\n"
+msgstr "Această cheie va expira pe %s.\n"
 
 msgid "Do you want your signature to expire at the same time? (Y/n) "
-msgstr "Doriþi ca semnãtura d-voastrã sã expire în acelaºi timp? (D/n) "
+msgstr "Doriţi ca semnătura d-voastră să expire în acelaşi timp? (D/n) "
 
 msgid ""
 "How carefully have you verified the key you are about to sign actually "
 "belongs\n"
 "to the person named above?  If you don't know what to answer, enter \"0\".\n"
 msgstr ""
-"Cât de atent aþi verificat cã cheia pe care sunteþi pe cale a o semna "
-"aparþine\n"
-"într-adevãr persoanei numite deasupra?  Dacã nu ºtiþi ce sã rãspundeþi,\n"
-"introduceþi \"0\".\n"
+"Cât de atent aţi verificat că cheia pe care sunteţi pe cale a o semna "
+"aparţine\n"
+"într-adevăr persoanei numite deasupra?  Dacă nu ştiţi ce să răspundeţi,\n"
+"introduceţi \"0\".\n"
 
 #, c-format
 msgid "   (0) I will not answer.%s\n"
-msgstr "   (0) Nu voi rãspunde.%s\n"
+msgstr "   (0) Nu voi răspunde.%s\n"
 
 #, c-format
 msgid "   (1) I have not checked at all.%s\n"
@@ -3221,180 +3235,180 @@ msgstr "   (1) Nu am verificat deloc.%s\n"
 
 #, c-format
 msgid "   (2) I have done casual checking.%s\n"
-msgstr "   (2) Am fãcut ceva verificãri superficiale.%s\n"
+msgstr "   (2) Am făcut ceva verificări superficiale.%s\n"
 
 #, c-format
 msgid "   (3) I have done very careful checking.%s\n"
-msgstr "   (3) Am fãcut verificãri foarte atente.%s\n"
+msgstr "   (3) Am făcut verificări foarte atente.%s\n"
 
 #, fuzzy
 #| msgid "Your selection? (enter `?' for more information): "
 msgid "Your selection? (enter '?' for more information): "
-msgstr "Selecþia dvs.? (introduceþi `?' pentru informaþii suplimentare): "
+msgstr "Selecţia dvs.? (introduceţi `?' pentru informaţii suplimentare): "
 
 #, c-format
 msgid ""
 "Are you sure that you want to sign this key with your\n"
 "key \"%s\" (%s)\n"
 msgstr ""
-"Sunteþi într-adevãr sigur(ã) cã doriþi sã semnaþi\n"
-"aceastã cheie cu cheia d-voastrã \"%s\" (%s)\n"
+"Sunteţi într-adevăr sigur(ă) că doriţi să semnaţi\n"
+"această cheie cu cheia d-voastră \"%s\" (%s)\n"
 
 msgid "This will be a self-signature.\n"
-msgstr "Aceasta va fi o auto-semnãturã.\n"
+msgstr "Aceasta va fi o auto-semnătură.\n"
 
 msgid "WARNING: the signature will not be marked as non-exportable.\n"
-msgstr "AVERTISMENT: semnãtura nu va fi marcatã ca non-exportabilã.\n"
+msgstr "AVERTISMENT: semnătura nu va fi marcată ca non-exportabilă.\n"
 
 msgid "WARNING: the signature will not be marked as non-revocable.\n"
-msgstr "AVERTISMENT: semnãtura nu va fi marcatã ca non-revocabilã.\n"
+msgstr "AVERTISMENT: semnătura nu va fi marcată ca non-revocabilă.\n"
 
 msgid "The signature will be marked as non-exportable.\n"
-msgstr "Semnãtura va fi marcatã ca non-exportabilã.\n"
+msgstr "Semnătura va fi marcată ca non-exportabilă.\n"
 
 msgid "The signature will be marked as non-revocable.\n"
-msgstr "Semnãtura va fi marcatã ca non-revocabilã.\n"
+msgstr "Semnătura va fi marcată ca non-revocabilă.\n"
 
 msgid "I have not checked this key at all.\n"
-msgstr "Nu am verificat aceastã cheie deloc.\n"
+msgstr "Nu am verificat această cheie deloc.\n"
 
 msgid "I have checked this key casually.\n"
-msgstr "Am verificat aceastã cheie superficial.\n"
+msgstr "Am verificat această cheie superficial.\n"
 
 msgid "I have checked this key very carefully.\n"
-msgstr "Am verificat aceastã cheie foarte atent.\n"
+msgstr "Am verificat această cheie foarte atent.\n"
 
 msgid "Really sign? (y/N) "
-msgstr "Doriþi cu adevãrat sã semnaþi? (d/N) "
+msgstr "Doriţi cu adevărat să semnaţi? (d/N) "
 
 #, c-format
 msgid "signing failed: %s\n"
-msgstr "semnarea a eºuat: %s\n"
+msgstr "semnarea a eşuat: %s\n"
 
 msgid "Key has only stub or on-card key items - no passphrase to change.\n"
 msgstr ""
-"Cheia are numai articole de cheie sau talon (stub) pe card - nici o frazã "
-"parolã de schimbat.\n"
+"Cheia are numai articole de cheie sau talon (stub) pe card - nici o frază "
+"parolă de schimbat.\n"
 
 #, fuzzy, c-format
 #| msgid "error creating passphrase: %s\n"
 msgid "key %s: error changing passphrase: %s\n"
-msgstr "eroare la crearea frazei-parolã: %s\n"
+msgstr "eroare la crearea frazei-parolă: %s\n"
 
 msgid "save and quit"
-msgstr "salveazã ºi terminã"
+msgstr "salvează şi termină"
 
 msgid "show key fingerprint"
-msgstr "afiºeazã amprenta cheii"
+msgstr "afişează amprenta cheii"
 
 #, fuzzy
 msgid "show the keygrip"
-msgstr "Notare semnãturã: "
+msgstr "Notare semnătură: "
 
 msgid "list key and user IDs"
-msgstr "enumerã chei ºi ID-uri utilizator"
+msgstr "enumeră chei şi ID-uri utilizator"
 
 msgid "select user ID N"
-msgstr "selecteazã ID utilizator N"
+msgstr "selectează ID utilizator N"
 
 msgid "select subkey N"
-msgstr "selecteazã subcheia N"
+msgstr "selectează subcheia N"
 
 msgid "check signatures"
-msgstr "verificã semnãturi"
+msgstr "verifică semnături"
 
 msgid "sign selected user IDs [* see below for related commands]"
 msgstr ""
-"semneazã ID-urile utilizator selectate [* vezi mai jos pentru comenzi "
+"semnează ID-urile utilizator selectate [* vezi mai jos pentru comenzi "
 "relevante]"
 
 msgid "sign selected user IDs locally"
-msgstr "semneazã ID-urile utilizatorilor selectaþi local"
+msgstr "semnează ID-urile utilizatorilor selectaţi local"
 
 msgid "sign selected user IDs with a trust signature"
-msgstr "semneazã ID-urile utilizatorilor selectaþi cu o semnãturã de încredere"
+msgstr "semnează ID-urile utilizatorilor selectaţi cu o semnătură de încredere"
 
 msgid "sign selected user IDs with a non-revocable signature"
-msgstr "semneazã ID-urile utilizatorilor selectaþi cu o semnãturã irevocabilã"
+msgstr "semnează ID-urile utilizatorilor selectaţi cu o semnătură irevocabilă"
 
 msgid "add a user ID"
-msgstr "adaugã un ID utilizator"
+msgstr "adaugă un ID utilizator"
 
 msgid "add a photo ID"
-msgstr "adaugã o pozã ID"
+msgstr "adaugă o poză ID"
 
 msgid "delete selected user IDs"
-msgstr "ºterge ID-urile utilizator selectate"
+msgstr "şterge ID-urile utilizator selectate"
 
 msgid "add a subkey"
-msgstr "adaugã o subcheie"
+msgstr "adaugă o subcheie"
 
 msgid "add a key to a smartcard"
-msgstr "adaugã o cheie la un smartcard"
+msgstr "adaugă o cheie la un smartcard"
 
 msgid "move a key to a smartcard"
-msgstr "mutã o cheie pe un smartcard"
+msgstr "mută o cheie pe un smartcard"
 
 msgid "move a backup key to a smartcard"
-msgstr "mutã o cheie de rezervã pe un smartcard"
+msgstr "mută o cheie de rezervă pe un smartcard"
 
 msgid "delete selected subkeys"
-msgstr "ºterge subcheile selectate"
+msgstr "şterge subcheile selectate"
 
 msgid "add a revocation key"
-msgstr "adaugã o cheie de revocare"
+msgstr "adaugă o cheie de revocare"
 
 msgid "delete signatures from the selected user IDs"
-msgstr "ºterge semnãturile de pe ID-urile utilizator selectate"
+msgstr "şterge semnăturile de pe ID-urile utilizator selectate"
 
 msgid "change the expiration date for the key or selected subkeys"
-msgstr "schimbã data de expirare pentru cheia sau subcheile selectate"
+msgstr "schimbă data de expirare pentru cheia sau subcheile selectate"
 
 msgid "flag the selected user ID as primary"
-msgstr "marcheazã ID-ul utilizator selectat ca primar"
+msgstr "marchează ID-ul utilizator selectat ca primar"
 
 msgid "list preferences (expert)"
-msgstr "enumerã preferinþele (expert)"
+msgstr "enumeră preferinţele (expert)"
 
 msgid "list preferences (verbose)"
-msgstr "afiºeazã preferinþele (detaliat)"
+msgstr "afişează preferinţele (detaliat)"
 
 msgid "set preference list for the selected user IDs"
-msgstr "seteazã lista de preferinþe pentru ID-urile utilizator selectate"
+msgstr "setează lista de preferinţe pentru ID-urile utilizator selectate"
 
 #, fuzzy
 msgid "set the preferred keyserver URL for the selected user IDs"
 msgstr ""
-"seteazã URL-ul serverului de chei preferat pentru ID-urile utilizator "
+"setează URL-ul serverului de chei preferat pentru ID-urile utilizator "
 "selectate"
 
 #, fuzzy
 msgid "set a notation for the selected user IDs"
-msgstr "seteazã lista de preferinþe pentru ID-urile utilizator selectate"
+msgstr "setează lista de preferinţe pentru ID-urile utilizator selectate"
 
 msgid "change the passphrase"
-msgstr "schimbã fraza-parolã"
+msgstr "schimbă fraza-parolă"
 
 msgid "change the ownertrust"
-msgstr "schimbã încrederea pentru proprietar"
+msgstr "schimbă încrederea pentru proprietar"
 
 msgid "revoke signatures on the selected user IDs"
-msgstr "revocã semnãturile pentru ID-urile utilizator selectate"
+msgstr "revocă semnăturile pentru ID-urile utilizator selectate"
 
 msgid "revoke selected user IDs"
-msgstr "revocã ID-urile utilizator selectate"
+msgstr "revocă ID-urile utilizator selectate"
 
 msgid "revoke key or selected subkeys"
-msgstr "revocã cheia sau subcheile selectate"
+msgstr "revocă cheia sau subcheile selectate"
 
 msgid "enable key"
-msgstr "activeazã cheia"
+msgstr "activează cheia"
 
 msgid "disable key"
-msgstr "deactiveazã cheia"
+msgstr "deactivează cheia"
 
 msgid "show selected photo IDs"
-msgstr "aratã pozele pentru ID-urile utilizator selectate"
+msgstr "arată pozele pentru ID-urile utilizator selectate"
 
 msgid "compact unusable user IDs and remove unusable signatures from key"
 msgstr ""
@@ -3403,10 +3417,10 @@ msgid "compact unusable user IDs and remove all signatures from key"
 msgstr ""
 
 msgid "Secret key is available.\n"
-msgstr "Cheia secretã este disponibilã.\n"
+msgstr "Cheia secretă este disponibilă.\n"
 
 msgid "Need the secret key to do this.\n"
-msgstr "Aveþi nevoie de cheia secretã pentru a face aceasta.\n"
+msgstr "Aveţi nevoie de cheia secretă pentru a face aceasta.\n"
 
 #, fuzzy
 #| msgid ""
@@ -3421,60 +3435,60 @@ msgid ""
 "  a 't' for trust signatures (tsign), an 'nr' for non-revocable signatures\n"
 "  (nrsign), or any combination thereof (ltsign, tnrsign, etc.).\n"
 msgstr ""
-"* Comanda `sign' (semneazã) poate fi prefixatã cu un `l' pentru semnãturi\n"
-"  locale (lsign), un `t' pentru semnãturi de încredere (tsign), un `nr'\n"
-"  pentru semnãturi irevocabile (nrsign), sau orice combinaþie a acestora\n"
+"* Comanda `sign' (semnează) poate fi prefixată cu un `l' pentru semnături\n"
+"  locale (lsign), un `t' pentru semnături de încredere (tsign), un `nr'\n"
+"  pentru semnături irevocabile (nrsign), sau orice combinaţie a acestora\n"
 "  (ltsign, tnrsign, etc.).\n"
 
 msgid "Key is revoked."
-msgstr "Cheia este revocatã."
+msgstr "Cheia este revocată."
 
 msgid "Really sign all user IDs? (y/N) "
-msgstr "Semnaþi într-adevãr toate ID-urile utilizator? (d/N) "
+msgstr "Semnaţi într-adevăr toate ID-urile utilizator? (d/N) "
 
 #, fuzzy
 #| msgid "Really sign all user IDs? (y/N) "
 msgid "Really sign all text user IDs? (y/N) "
-msgstr "Semnaþi într-adevãr toate ID-urile utilizator? (d/N) "
+msgstr "Semnaţi într-adevăr toate ID-urile utilizator? (d/N) "
 
 msgid "Hint: Select the user IDs to sign\n"
-msgstr "Sugestie: Selectaþi ID-ul utilizator de semnat\n"
+msgstr "Sugestie: Selectaţi ID-ul utilizator de semnat\n"
 
 #, fuzzy, c-format
 #| msgid "Unknown signature type `%s'\n"
 msgid "Unknown signature type '%s'\n"
-msgstr "Tip de semnãturã necunoscut `%s'\n"
+msgstr "Tip de semnătură necunoscut `%s'\n"
 
 #, c-format
 msgid "This command is not allowed while in %s mode.\n"
-msgstr "Aceastã comandã nu este permisã în modul %s.\n"
+msgstr "Această comandă nu este permisă în modul %s.\n"
 
 msgid "You must select at least one user ID.\n"
-msgstr "Trebuie mai întâi sã selectaþi cel puþin un ID utilizator.\n"
+msgstr "Trebuie mai întâi să selectaţi cel puţin un ID utilizator.\n"
 
 #, c-format
 msgid "(Use the '%s' command.)\n"
 msgstr ""
 
 msgid "You can't delete the last user ID!\n"
-msgstr "Nu puteþi ºterge ultimul ID utilizator!\n"
+msgstr "Nu puteţi şterge ultimul ID utilizator!\n"
 
 msgid "Really remove all selected user IDs? (y/N) "
-msgstr "ªtergeþi într-adevãr toate ID-urile utilizator selectate? (d/N) "
+msgstr "Ştergeţi într-adevăr toate ID-urile utilizator selectate? (d/N) "
 
 msgid "Really remove this user ID? (y/N) "
-msgstr "ªtergeþi într-adevãr acest ID utilizator? (d/N) "
+msgstr "Ştergeţi într-adevăr acest ID utilizator? (d/N) "
 
 #. TRANSLATORS: Please take care: This is about
 #. moving the key and not about removing it.
 msgid "Really move the primary key? (y/N) "
-msgstr "Mutaþi într-adevãr cheia primarã? (d/N) "
+msgstr "Mutaţi într-adevăr cheia primară? (d/N) "
 
 msgid "You must select exactly one key.\n"
-msgstr "Trebuie sã selectaþi exact o cheie.\n"
+msgstr "Trebuie să selectaţi exact o cheie.\n"
 
 msgid "Command expects a filename argument\n"
-msgstr "Comanda aºteaptã un nume de fiºier ca argument\n"
+msgstr "Comanda aşteaptă un nume de fişier ca argument\n"
 
 #, fuzzy, c-format
 #| msgid "Can't open `%s': %s\n"
@@ -3484,85 +3498,85 @@ msgstr "Nu pot deschide `%s': %s\n"
 #, fuzzy, c-format
 #| msgid "Error reading backup key from `%s': %s\n"
 msgid "Error reading backup key from '%s': %s\n"
-msgstr "Eroare citind cheia de rezervã de pe `%s': %s\n"
+msgstr "Eroare citind cheia de rezervă de pe `%s': %s\n"
 
 msgid "You must select at least one key.\n"
-msgstr "Trebuie sã selectaþi cel puþin o cheie.\n"
+msgstr "Trebuie să selectaţi cel puţin o cheie.\n"
 
 msgid "Do you really want to delete the selected keys? (y/N) "
-msgstr "Doriþi într-adevãr sã ºtergeþi cheile selectate? (d/N) "
+msgstr "Doriţi într-adevăr să ştergeţi cheile selectate? (d/N) "
 
 msgid "Do you really want to delete this key? (y/N) "
-msgstr "Doriþi într-adevãr sã ºtergeþi aceastã cheie? (d/N) "
+msgstr "Doriţi într-adevăr să ştergeţi această cheie? (d/N) "
 
 msgid "Really revoke all selected user IDs? (y/N) "
 msgstr ""
-"Doriþi într-adevãr sã revocaþi toate ID-urile utilizator selectate? (d/N) "
+"Doriţi într-adevăr să revocaţi toate ID-urile utilizator selectate? (d/N) "
 
 msgid "Really revoke this user ID? (y/N) "
-msgstr "Doriþi într-adevãr sã revocaþi acest ID utilizator? (d/N) "
+msgstr "Doriţi într-adevăr să revocaţi acest ID utilizator? (d/N) "
 
 msgid "Do you really want to revoke the entire key? (y/N) "
-msgstr "Doriþi într-adevãr sã revocaþi toatã cheia? (d/N) "
+msgstr "Doriţi într-adevăr să revocaţi toată cheia? (d/N) "
 
 msgid "Do you really want to revoke the selected subkeys? (y/N) "
-msgstr "Doriþi într-adevãr sã revocaþi subcheile selectate? (d/N) "
+msgstr "Doriţi într-adevăr să revocaţi subcheile selectate? (d/N) "
 
 msgid "Do you really want to revoke this subkey? (y/N) "
-msgstr "Doriþi într-adevãr sã revocaþi aceastã subcheie? (d/N) "
+msgstr "Doriţi într-adevăr să revocaţi această subcheie? (d/N) "
 
 msgid "Owner trust may not be set while using a user provided trust database\n"
 msgstr ""
-"Încrederea proprietar nu poate fi setatã când este folositã o bazã de date "
-"de încredere furnizatã de utilizator\n"
+"Încrederea proprietar nu poate fi setată când este folosită o bază de date "
+"de încredere furnizată de utilizator\n"
 
 msgid "Set preference list to:\n"
-msgstr "Seteazã lista de preferinþe ca:\n"
+msgstr "Setează lista de preferinţe ca:\n"
 
 msgid "Really update the preferences for the selected user IDs? (y/N) "
 msgstr ""
-"Doriþi într-adevãr sã actualizaþi preferinþele pentru ID-urile utilizator "
+"Doriţi într-adevăr să actualizaţi preferinţele pentru ID-urile utilizator "
 "selectate? (d/N) "
 
 msgid "Really update the preferences? (y/N) "
-msgstr "Doriþi într-adevãr sã actualizaþi preferinþele? (d/N) "
+msgstr "Doriţi într-adevăr să actualizaţi preferinţele? (d/N) "
 
 msgid "Save changes? (y/N) "
-msgstr "Salvaþi schimbãrile?  (d/N) "
+msgstr "Salvaţi schimbările?  (d/N) "
 
 msgid "Quit without saving? (y/N) "
-msgstr "Terminaþi fãrã a salva?  (d/N) "
+msgstr "Terminaţi fără a salva?  (d/N) "
 
 #, c-format
 msgid "update failed: %s\n"
-msgstr "actualizarea a eºuat: %s\n"
+msgstr "actualizarea a eşuat: %s\n"
 
 msgid "Key not changed so no update needed.\n"
-msgstr "Cheia nu a fost schimbatã aºa cã nici o actualizare a fost necesarã.\n"
+msgstr "Cheia nu a fost schimbată aşa că nici o actualizare a fost necesară.\n"
 
 #, fuzzy, c-format
 #| msgid "Key generation failed: %s\n"
 msgid "User ID revocation failed: %s\n"
-msgstr "Generarea cheii a eºuat: %s\n"
+msgstr "Generarea cheii a eşuat: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid fingerprint"
 msgid "\"%s\" is not a fingerprint\n"
-msgstr "amprentã invalidã"
+msgstr "amprentă invalidă"
 
 #, fuzzy, c-format
 msgid "\"%s\" is not the primary fingerprint\n"
-msgstr "am eºuat sã stochez amprenta: %s\n"
+msgstr "am eşuat să stochez amprenta: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid value\n"
 msgid "Invalid user ID '%s': %s\n"
-msgstr "valoare invalidã\n"
+msgstr "valoare invalidă\n"
 
 #, fuzzy
 #| msgid "No such user ID.\n"
 msgid "No matching user IDs."
-msgstr "Nu existã acest ID utilizator.\n"
+msgstr "Nu există acest ID utilizator.\n"
 
 #, fuzzy
 #| msgid "Nothing to sign with key %s\n"
@@ -3573,7 +3587,7 @@ msgid "Digest: "
 msgstr "Rezumat: "
 
 msgid "Features: "
-msgstr "Capabilitãþi: "
+msgstr "Capabilităţi: "
 
 msgid "Keyserver no-modify"
 msgstr "Server de chei no-modify"
@@ -3583,37 +3597,37 @@ msgstr "Server de chei preferat: "
 
 #, fuzzy
 msgid "Notations: "
-msgstr "Notaþie:"
+msgstr "Notaţie:"
 
 msgid "There are no preferences on a PGP 2.x-style user ID.\n"
-msgstr "Nu existã nici o preferinþã pentru un ID utilizator stil PGP 2.x.\n"
+msgstr "Nu există nici o preferinţă pentru un ID utilizator stil PGP 2.x.\n"
 
 #, fuzzy, c-format
 msgid "The following key was revoked on %s by %s key %s\n"
-msgstr "Aceastã cheie a fost revocatã pe %s de %s cheia %s\n"
+msgstr "Această cheie a fost revocată pe %s de %s cheia %s\n"
 
 #, c-format
 msgid "This key may be revoked by %s key %s"
-msgstr "Aceastã cheie poate fi revocatã de %s cheia %s"
+msgstr "Această cheie poate fi revocată de %s cheia %s"
 
 msgid "(sensitive)"
 msgstr " (senzitiv)"
 
 #, c-format
 msgid "created: %s"
-msgstr "creatã: %s"
+msgstr "creată: %s"
 
 #, c-format
 msgid "revoked: %s"
-msgstr "revocatã: %s"
+msgstr "revocată: %s"
 
 #, c-format
 msgid "expired: %s"
-msgstr "expiratã: %s"
+msgstr "expirată: %s"
 
 #, c-format
 msgid "expires: %s"
-msgstr "expirã: %s"
+msgstr "expiră: %s"
 
 #, c-format
 msgid "usage: %s"
@@ -3624,36 +3638,36 @@ msgstr "nr-card: "
 
 #, c-format
 msgid "trust: %s"
-msgstr "încredere: %s"
+msgstr "încredere: %s"
 
 #, c-format
 msgid "validity: %s"
 msgstr "validitate: %s"
 
 msgid "This key has been disabled"
-msgstr "Aceastã cheie a fost deactivatã"
+msgstr "Această cheie a fost deactivată"
 
 msgid ""
 "Please note that the shown key validity is not necessarily correct\n"
 "unless you restart the program.\n"
 msgstr ""
-"Vã rugãm observaþi cã validitatea cheii arãtate nu este în mod necesar\n"
-"corectã dacã nu reporniþi programul.\n"
+"Vă rugăm observaţi că validitatea cheii arătate nu este în mod necesar\n"
+"corectă dacă nu reporniţi programul.\n"
 
 #
 msgid "revoked"
-msgstr "revocatã"
+msgstr "revocată"
 
 msgid "expired"
-msgstr "expiratã"
+msgstr "expirată"
 
 msgid ""
 "WARNING: no user ID has been marked as primary.  This command may\n"
 "              cause a different user ID to become the assumed primary.\n"
 msgstr ""
 "AVERTISMENT: nici un ID utilizator nu a fost marcat ca primar.\n"
-"              Aceastã comandã poate cauza ca un alt ID utilizator\n"
-"              sã devinã ID-ul utilizator primar presupus.\n"
+"              Această comandă poate cauza ca un alt ID utilizator\n"
+"              să devină ID-ul utilizator primar presupus.\n"
 
 msgid "WARNING: Your encryption subkey expires soon.\n"
 msgstr ""
@@ -3661,49 +3675,49 @@ msgstr ""
 #, fuzzy
 #| msgid "You can't change the expiration date of a v3 key\n"
 msgid "You may want to change its expiration date too.\n"
-msgstr "Nu puteþi schimba data de expirare a unei chei v3\n"
+msgstr "Nu puteţi schimba data de expirare a unei chei v3\n"
 
 msgid ""
 "WARNING: This is a PGP2-style key.  Adding a photo ID may cause some "
 "versions\n"
 "         of PGP to reject this key.\n"
 msgstr ""
-"AVERTISMENT: Aceasta este o cheie stil PGP2.  Adãugarea unei poze ID poate\n"
-"         cauza unele versiuni de PGP sã respingã aceastã cheie.\n"
+"AVERTISMENT: Aceasta este o cheie stil PGP2.  Adăugarea unei poze ID poate\n"
+"         cauza unele versiuni de PGP să respingă această cheie.\n"
 
 msgid "Are you sure you still want to add it? (y/N) "
-msgstr "Sunteþi încã sigur(ã) cã doriþi sã o adãugaþi? (d/N) "
+msgstr "Sunteţi încă sigur(ă) că doriţi să o adăugaţi? (d/N) "
 
 msgid "You may not add a photo ID to a PGP2-style key.\n"
-msgstr "Nu puteþi adãuga o pozã ID la o cheie stil PGP2.\n"
+msgstr "Nu puteţi adăuga o poză ID la o cheie stil PGP2.\n"
 
 msgid "Such a user ID already exists on this key!\n"
 msgstr ""
 
 msgid "Delete this good signature? (y/N/q)"
-msgstr "ªtergeþi aceastã semnãturã bunã? (d/N/t)"
+msgstr "Ştergeţi această semnătură bună? (d/N/t)"
 
 msgid "Delete this invalid signature? (y/N/q)"
-msgstr "ªtergeþi aceastã semnãturã invalidã? (d/N/t)"
+msgstr "Ştergeţi această semnătură invalidă? (d/N/t)"
 
 msgid "Delete this unknown signature? (y/N/q)"
-msgstr "ªtergeþi aceastã semnãturã necunoscutã? (d/N/t)"
+msgstr "Ştergeţi această semnătură necunoscută? (d/N/t)"
 
 msgid "Really delete this self-signature? (y/N)"
-msgstr "ªtergeþi într-adevãr aceastã auto-semnãturã? (d/N)"
+msgstr "Ştergeţi într-adevăr această auto-semnătură? (d/N)"
 
 #, fuzzy, c-format
 #| msgid "Deleted %d signature.\n"
 msgid "Deleted %d signature.\n"
 msgid_plural "Deleted %d signatures.\n"
-msgstr[0] "Am ºters %d semnãturi.\n"
-msgstr[1] "Am ºters %d semnãturi.\n"
+msgstr[0] "Am şters %d semnături.\n"
+msgstr[1] "Am şters %d semnături.\n"
 
 msgid "Nothing deleted.\n"
-msgstr "Nu am ºters nimic.\n"
+msgstr "Nu am şters nimic.\n"
 
 msgid "invalid"
-msgstr "invalid(ã)"
+msgstr "invalid(ă)"
 
 #, fuzzy, c-format
 msgid "User ID \"%s\" compacted: %s\n"
@@ -3728,34 +3742,34 @@ msgid ""
 "cause\n"
 "         some versions of PGP to reject this key.\n"
 msgstr ""
-"AVERTISMENT: Aceasta este o cheie stil PGP 2.x.  Adãugarea unui revocator\n"
-"             desemnat poate face ca unele versiuni de PGP sã respingã "
+"AVERTISMENT: Aceasta este o cheie stil PGP 2.x.  Adăugarea unui revocator\n"
+"             desemnat poate face ca unele versiuni de PGP să respingă "
 "cheia.\n"
 
 msgid "You may not add a designated revoker to a PGP 2.x-style key.\n"
-msgstr "Nu puteþi adãuga un revocator desemnat la o cheie stil PGP 2.x.\n"
+msgstr "Nu puteţi adăuga un revocator desemnat la o cheie stil PGP 2.x.\n"
 
 msgid "Enter the user ID of the designated revoker: "
-msgstr "Introduceþi ID-ul utilizator al revocatorului desemnat: "
+msgstr "Introduceţi ID-ul utilizator al revocatorului desemnat: "
 
 msgid "cannot appoint a PGP 2.x style key as a designated revoker\n"
 msgstr "nu pot desemna o cheie stil PGP 2.x ca un revocator desemnat\n"
 
 msgid "you cannot appoint a key as its own designated revoker\n"
-msgstr "nu puteþi desemna o cheie ca propriul sãu revocator desemnat\n"
+msgstr "nu puteţi desemna o cheie ca propriul său revocator desemnat\n"
 
 msgid "this key has already been designated as a revoker\n"
-msgstr "aceastã cheie a fost deja desemnatã ca un revocator\n"
+msgstr "această cheie a fost deja desemnată ca un revocator\n"
 
 msgid "WARNING: appointing a key as a designated revoker cannot be undone!\n"
 msgstr ""
 "AVERTISMENT: desemnarea unei chei ca un revocator desemnat nu poate fi "
-"anulatã!\n"
+"anulată!\n"
 
 msgid ""
 "Are you sure you want to appoint this key as a designated revoker? (y/N) "
 msgstr ""
-"Sunteþi sigur(ã) cã doriþi sã desemnaþi aceastã cheie ca ºi un revocator "
+"Sunteţi sigur(ă) că doriţi să desemnaţi această cheie ca şi un revocator "
 "desemnat? (d/N) "
 
 #, fuzzy
@@ -3765,22 +3779,22 @@ msgid ""
 "Are you sure you want to change the expiration time for multiple subkeys? (y/"
 "N) "
 msgstr ""
-"Sunteþi sigur(ã) cã doriþi sã desemnaþi aceastã cheie ca ºi un revocator "
+"Sunteţi sigur(ă) că doriţi să desemnaţi această cheie ca şi un revocator "
 "desemnat? (d/N) "
 
 msgid "Changing expiration time for a subkey.\n"
 msgstr "Schimb timpul de expirare pentru o subcheie.\n"
 
 msgid "Changing expiration time for the primary key.\n"
-msgstr "Schimb timpul de expirare pentru cheia primarã.\n"
+msgstr "Schimb timpul de expirare pentru cheia primară.\n"
 
 msgid "You can't change the expiration date of a v3 key\n"
-msgstr "Nu puteþi schimba data de expirare a unei chei v3\n"
+msgstr "Nu puteţi schimba data de expirare a unei chei v3\n"
 
 #, fuzzy, c-format
 msgid "signing subkey %s is already cross-certified\n"
 msgstr ""
-"AVERTISMENT: subcheia de semnare %s nu este certificatã reciproc (cross-"
+"AVERTISMENT: subcheia de semnare %s nu este certificată reciproc (cross-"
 "certified)\n"
 
 #, c-format
@@ -3788,24 +3802,24 @@ msgid "subkey %s does not sign and so does not need to be cross-certified\n"
 msgstr ""
 
 msgid "Please select exactly one user ID.\n"
-msgstr "Vã rugãm selectaþi exact un ID utilizator.\n"
+msgstr "Vă rugăm selectaţi exact un ID utilizator.\n"
 
 #, c-format
 msgid "skipping v3 self-signature on user ID \"%s\"\n"
-msgstr "auto-semnãturã v3 sãritã pentru ID-ul utilizator \"%s\"\n"
+msgstr "auto-semnătură v3 sărită pentru ID-ul utilizator \"%s\"\n"
 
 msgid "Enter your preferred keyserver URL: "
-msgstr "Introduceþi URL-ul serverului de chei preferat: "
+msgstr "Introduceţi URL-ul serverului de chei preferat: "
 
 msgid "Are you sure you want to replace it? (y/N) "
-msgstr "Sunteþi sigur(ã) cã doriþi sã o folosiþi? (d/N) "
+msgstr "Sunteţi sigur(ă) că doriţi să o folosiţi? (d/N) "
 
 msgid "Are you sure you want to delete it? (y/N) "
-msgstr "Sunteþi sigur(ã) cã doriþi sã o folosiþi? (d/N) "
+msgstr "Sunteţi sigur(ă) că doriţi să o folosiţi? (d/N) "
 
 #, fuzzy
 msgid "Enter the notation: "
-msgstr "Notare semnãturã: "
+msgstr "Notare semnătură: "
 
 #, fuzzy
 msgid "Proceed? (y/N) "
@@ -3834,48 +3848,48 @@ msgstr "ID utilizator: \"%s\"\n"
 
 #, c-format
 msgid "signed by your key %s on %s%s%s\n"
-msgstr "semnatã de cheia d-voastrã %s la %s%s%s\n"
+msgstr "semnată de cheia d-voastră %s la %s%s%s\n"
 
 msgid " (non-exportable)"
-msgstr " (non-exportabilã)"
+msgstr " (non-exportabilă)"
 
 #, c-format
 msgid "This signature expired on %s.\n"
-msgstr "Aceastã semnãturã a expirat pe %s.\n"
+msgstr "Această semnătură a expirat pe %s.\n"
 
 msgid "Are you sure you still want to revoke it? (y/N) "
-msgstr "Sunteþi încã sigur(ã) cã doriþi sã o revocaþi? (d/N) "
+msgstr "Sunteţi încă sigur(ă) că doriţi să o revocaţi? (d/N) "
 
 msgid "Create a revocation certificate for this signature? (y/N) "
-msgstr "Creaþi un certificat de revocare pentru aceastã semnãturã? (d/N) "
+msgstr "Creaţi un certificat de revocare pentru această semnătură? (d/N) "
 
 msgid "Not signed by you.\n"
 msgstr ""
 
 #, c-format
 msgid "You have signed these user IDs on key %s:\n"
-msgstr "Aþi semnat aceste ID-uri utilizator pe cheia %s:\n"
+msgstr "Aţi semnat aceste ID-uri utilizator pe cheia %s:\n"
 
 msgid " (non-revocable)"
-msgstr " (non-revocabilã)"
+msgstr " (non-revocabilă)"
 
 #, c-format
 msgid "revoked by your key %s on %s\n"
-msgstr "revocatã de cheia d-voastrã %s pe %s\n"
+msgstr "revocată de cheia d-voastră %s pe %s\n"
 
 msgid "You are about to revoke these signatures:\n"
-msgstr "Sunteþi pe cale sã revocaþi aceste semnãturi:\n"
+msgstr "Sunteţi pe cale să revocaţi aceste semnături:\n"
 
 msgid "Really create the revocation certificates? (y/N) "
-msgstr "Doriþi într-adevãr sã creaþi certificatele de revocare? (d/N) "
+msgstr "Doriţi într-adevăr să creaţi certificatele de revocare? (d/N) "
 
 msgid "no secret key\n"
-msgstr "nici o cheie secretã\n"
+msgstr "nici o cheie secretă\n"
 
 #, fuzzy, c-format
 #| msgid "revoke a user ID"
 msgid "tried to revoke a non-user ID: %s\n"
-msgstr "revocã un ID utilizator"
+msgstr "revocă un ID utilizator"
 
 #, c-format
 msgid "user ID \"%s\" is already revoked\n"
@@ -3884,71 +3898,71 @@ msgstr "ID-ul utilizator \"%s\" este deja revocat\n"
 #, c-format
 msgid "WARNING: a user ID signature is dated %d seconds in the future\n"
 msgstr ""
-"AVERTISMENT: o semnãturã ID utilizator este datatã %d secunde în viitor\n"
+"AVERTISMENT: o semnătură ID utilizator este datată %d secunde în viitor\n"
 
 #, c-format
 msgid "Key %s is already revoked.\n"
-msgstr "Cheia %s este deja revocatã.\n"
+msgstr "Cheia %s este deja revocată.\n"
 
 #, c-format
 msgid "Subkey %s is already revoked.\n"
-msgstr "Subcheia %s este deja revocatã.\n"
+msgstr "Subcheia %s este deja revocată.\n"
 
 #, c-format
 msgid "Displaying %s photo ID of size %ld for key %s (uid %d)\n"
-msgstr "Afiºez poza ID %s de dimensiune %ld pentru cheia %s (uid %d)\n"
+msgstr "Afişez poza ID %s de dimensiune %ld pentru cheia %s (uid %d)\n"
 
 #, fuzzy, c-format
 #| msgid "preference `%s' duplicated\n"
 msgid "preference '%s' duplicated\n"
-msgstr "preferinþa `%s' duplicatã\n"
+msgstr "preferinţa `%s' duplicată\n"
 
 msgid "too many cipher preferences\n"
-msgstr "prea multe preferinþe de cifrare\n"
+msgstr "prea multe preferinţe de cifrare\n"
 
 msgid "too many digest preferences\n"
-msgstr "prea multe preferinþe de rezumat\n"
+msgstr "prea multe preferinţe de rezumat\n"
 
 msgid "too many compression preferences\n"
-msgstr "prea multe preferinþe de compresie\n"
+msgstr "prea multe preferinţe de compresie\n"
 
 #, fuzzy, c-format
 #| msgid "invalid item `%s' in preference string\n"
 msgid "invalid item '%s' in preference string\n"
-msgstr "articol invalid `%s' în ºirul de preferinþe\n"
+msgstr "articol invalid `%s' în şirul de preferinţe\n"
 
 msgid "writing direct signature\n"
-msgstr "scriu semnãturã directã\n"
+msgstr "scriu semnătură directă\n"
 
 msgid "writing self signature\n"
-msgstr "scriu auto semnãturã\n"
+msgstr "scriu auto semnătură\n"
 
 msgid "writing key binding signature\n"
-msgstr "scriu semnãturã legatã de cheie\n"
+msgstr "scriu semnătură legată de cheie\n"
 
 #, c-format
 msgid "keysize invalid; using %u bits\n"
-msgstr "lungime cheie invalidã; folosesc %u biþi\n"
+msgstr "lungime cheie invalidă; folosesc %u biţi\n"
 
 #, c-format
 msgid "keysize rounded up to %u bits\n"
-msgstr "lungime cheie rotunjitã la %u biþi\n"
+msgstr "lungime cheie rotunjită la %u biţi\n"
 
 msgid ""
 "WARNING: some OpenPGP programs can't handle a DSA key with this digest size\n"
 msgstr ""
 
 msgid "Sign"
-msgstr "Semneazã"
+msgstr "Semnează"
 
 msgid "Certify"
 msgstr ""
 
 msgid "Encrypt"
-msgstr "Cifreazã"
+msgstr "Cifrează"
 
 msgid "Authenticate"
-msgstr "Autentificã"
+msgstr "Autentifică"
 
 #. TRANSLATORS: Please use only plain ASCII characters for the
 #. translation.  If this is not possible use single digits.  The
@@ -3965,37 +3979,37 @@ msgstr "SsCcAaTt"
 
 #, c-format
 msgid "Possible actions for a %s key: "
-msgstr "Acþiuni posibile pentru o cheie %s: "
+msgstr "Acţiuni posibile pentru o cheie %s: "
 
 msgid "Current allowed actions: "
-msgstr "Acþiuni permise curent: "
+msgstr "Acţiuni permise curent: "
 
 #, c-format
 msgid "   (%c) Toggle the sign capability\n"
-msgstr "   (%c) Comutã capabilitatea de semnare\n"
+msgstr "   (%c) Comută capabilitatea de semnare\n"
 
 #, c-format
 msgid "   (%c) Toggle the encrypt capability\n"
-msgstr "   (%c) Comutã capabilitatea de cifrare\n"
+msgstr "   (%c) Comută capabilitatea de cifrare\n"
 
 #, c-format
 msgid "   (%c) Toggle the authenticate capability\n"
-msgstr "   (%c) Comutã capabilitatea de autentificare\n"
+msgstr "   (%c) Comută capabilitatea de autentificare\n"
 
 #, c-format
 msgid "   (%c) Finished\n"
 msgstr "   (%c) Terminat\n"
 
 msgid "Please select what kind of key you want:\n"
-msgstr "Selectaþi ce fel de cheie doriþi:\n"
+msgstr "Selectaţi ce fel de cheie doriţi:\n"
 
 #, fuzzy, c-format
 msgid "   (%d) RSA and RSA (default)\n"
-msgstr "   (%d) DSA ºi Elgamal (implicit)\n"
+msgstr "   (%d) DSA şi Elgamal (implicit)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) DSA and Elgamal\n"
-msgstr "   (%d) DSA ºi Elgamal (implicit)\n"
+msgstr "   (%d) DSA şi Elgamal (implicit)\n"
 
 #, c-format
 msgid "   (%d) DSA (sign only)\n"
@@ -4015,15 +4029,15 @@ msgstr "   (%d) RSA (numai cifrare)\n"
 
 #, c-format
 msgid "   (%d) DSA (set your own capabilities)\n"
-msgstr "   (%d) DSA (seteazã singur capabilitãþile)\n"
+msgstr "   (%d) DSA (setează singur capabilităţile)\n"
 
 #, c-format
 msgid "   (%d) RSA (set your own capabilities)\n"
-msgstr "   (%d) RSA (seteazã singur capabilitãþile)\n"
+msgstr "   (%d) RSA (setează singur capabilităţile)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) ECC and ECC\n"
-msgstr "   (%d) DSA ºi Elgamal (implicit)\n"
+msgstr "   (%d) DSA şi Elgamal (implicit)\n"
 
 #, fuzzy, c-format
 #| msgid "   (%d) DSA (sign only)\n"
@@ -4033,7 +4047,7 @@ msgstr "   (%d) DSA (numai semnare)\n"
 #, fuzzy, c-format
 #| msgid "   (%d) DSA (set your own capabilities)\n"
 msgid "  (%d) ECC (set your own capabilities)\n"
-msgstr "   (%d) DSA (seteazã singur capabilitãþile)\n"
+msgstr "   (%d) DSA (setează singur capabilităţile)\n"
 
 #, fuzzy, c-format
 #| msgid "   (%d) RSA (encrypt only)\n"
@@ -4046,7 +4060,7 @@ msgstr "   (2) Cheie de cifrare\n"
 
 #, fuzzy
 msgid "Enter the keygrip: "
-msgstr "Notare semnãturã: "
+msgstr "Notare semnătură: "
 
 msgid "Not a valid keygrip (expecting 40 hex digits)\n"
 msgstr ""
@@ -4058,28 +4072,28 @@ msgstr "Nici o subcheie cu indicele %d\n"
 #, fuzzy, c-format
 #| msgid "rounded up to %u bits\n"
 msgid "rounded to %u bits\n"
-msgstr "rotunjitã prin adaos la %u biþi\n"
+msgstr "rotunjită prin adaos la %u biţi\n"
 
 #, c-format
 msgid "%s keys may be between %u and %u bits long.\n"
-msgstr "cheile %s pot avea lungimea între %u ºi %u biþi.\n"
+msgstr "cheile %s pot avea lungimea între %u şi %u biţi.\n"
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the subkey? (%u) "
-msgstr "Ce lungime de cheie doriþi? (%u) "
+msgstr "Ce lungime de cheie doriţi? (%u) "
 
 #, c-format
 msgid "What keysize do you want? (%u) "
-msgstr "Ce lungime de cheie doriþi? (%u) "
+msgstr "Ce lungime de cheie doriţi? (%u) "
 
 #, c-format
 msgid "Requested keysize is %u bits\n"
-msgstr "Lungimea cheii necesarã este %u biþi\n"
+msgstr "Lungimea cheii necesară este %u biţi\n"
 
 #, fuzzy
 #| msgid "Please select what kind of key you want:\n"
 msgid "Please select which elliptic curve you want:\n"
-msgstr "Selectaþi ce fel de cheie doriþi:\n"
+msgstr "Selectaţi ce fel de cheie doriţi:\n"
 
 msgid ""
 "Please specify how long the key should be valid.\n"
@@ -4089,12 +4103,12 @@ msgid ""
 "      <n>m = key expires in n months\n"
 "      <n>y = key expires in n years\n"
 msgstr ""
-"Specificaþi cât de mult timp doriþi sã fie validã cheia.\n"
-"         0 = cheia nu expirã\n"
-"      <n>  = cheia expirã în n zile\n"
-"      <n>w = cheia expirã în n sãptãmâni\n"
-"      <n>m = cheia expirã în n luni\n"
-"      <n>y = cheia expirã în n ani\n"
+"Specificaţi cât de mult timp doriţi să fie validă cheia.\n"
+"         0 = cheia nu expiră\n"
+"      <n>  = cheia expiră în n zile\n"
+"      <n>w = cheia expiră în n săptămâni\n"
+"      <n>m = cheia expiră în n luni\n"
+"      <n>y = cheia expiră în n ani\n"
 
 msgid ""
 "Please specify how long the signature should be valid.\n"
@@ -4104,43 +4118,43 @@ msgid ""
 "      <n>m = signature expires in n months\n"
 "      <n>y = signature expires in n years\n"
 msgstr ""
-"Specificaþi cât de mult timp doriþi sã fie validã semnãtura.\n"
-"         0 = semnãtura nu expirã\n"
-"      <n>  = semnãtura expirã în n zile\n"
-"      <n>w = semnãtura expirã în n sãptãmâni\n"
-"      <n>m = semnãtura expirã în n luni\n"
-"      <n>y = semnãtura expirã în n ani\n"
+"Specificaţi cât de mult timp doriţi să fie validă semnătura.\n"
+"         0 = semnătura nu expiră\n"
+"      <n>  = semnătura expiră în n zile\n"
+"      <n>w = semnătura expiră în n săptămâni\n"
+"      <n>m = semnătura expiră în n luni\n"
+"      <n>y = semnătura expiră în n ani\n"
 
 msgid "Key is valid for? (0) "
-msgstr "Cheia este validã pentru? (0) "
+msgstr "Cheia este validă pentru? (0) "
 
 #, c-format
 msgid "Signature is valid for? (%s) "
-msgstr "Semnãtura este validã pentru? (%s) "
+msgstr "Semnătura este validă pentru? (%s) "
 
 msgid "invalid value\n"
-msgstr "valoare invalidã\n"
+msgstr "valoare invalidă\n"
 
 msgid "Key does not expire at all\n"
-msgstr "Cheia nu expirã deloc\n"
+msgstr "Cheia nu expiră deloc\n"
 
 msgid "Signature does not expire at all\n"
-msgstr "Semnãtura nu expirã deloc\n"
+msgstr "Semnătura nu expiră deloc\n"
 
 #, c-format
 msgid "Key expires at %s\n"
-msgstr "Cheia expirã pe %s\n"
+msgstr "Cheia expiră pe %s\n"
 
 #, c-format
 msgid "Signature expires at %s\n"
-msgstr "Semnãtura expirã pe %s\n"
+msgstr "Semnătura expiră pe %s\n"
 
 msgid ""
 "Your system can't display dates beyond 2038.\n"
 "However, it will be correctly handled up to 2106.\n"
 msgstr ""
-"Sistemul d-voastrã nu poate afiºa date dupã 2038.\n"
-"Totuºi, acestea vor fi corect mânuite pânã în 2106.\n"
+"Sistemul d-voastră nu poate afişa date după 2038.\n"
+"Totuşi, acestea vor fi corect mânuite până în 2106.\n"
 
 msgid "Is this correct? (y/N) "
 msgstr "Este aceasta corect? (d/N) "
@@ -4164,45 +4178,45 @@ msgid ""
 "\n"
 msgstr ""
 "\n"
-"Aveþi nevoie de un ID utilizator pentru a identifica cheia; software-ul\n"
-"construieºte ID-ul utilizator din Numele Real, Comentariul ºi Adresa de "
+"Aveţi nevoie de un ID utilizator pentru a identifica cheia; software-ul\n"
+"construieşte ID-ul utilizator din Numele Real, Comentariul şi Adresa de "
 "Email\n"
-"în aceastã formã:\n"
-"    \"Popa Ioan (popicã) <popa.ioan@compania.ro>\"\n"
+"în această formă:\n"
+"    \"Popa Ioan (popică) <popa.ioan@compania.ro>\"\n"
 "\n"
 
 msgid "Real name: "
 msgstr "Nume real: "
 
 msgid "Invalid character in name\n"
-msgstr "Caracter invalid în nume\n"
+msgstr "Caracter invalid în nume\n"
 
 #, c-format
 msgid "The characters '%s' and '%s' may not appear in name\n"
 msgstr ""
 
 msgid "Name may not start with a digit\n"
-msgstr "Numele nu poate începe cu o cifrã\n"
+msgstr "Numele nu poate începe cu o cifră\n"
 
 msgid "Name must be at least 5 characters long\n"
-msgstr "Numele trebuie sã fie de cel puþin 5 caractere\n"
+msgstr "Numele trebuie să fie de cel puţin 5 caractere\n"
 
 msgid "Email address: "
-msgstr "Adresã de email: "
+msgstr "Adresă de email: "
 
 msgid "Not a valid email address\n"
-msgstr "Nu este o adresã de email validã\n"
+msgstr "Nu este o adresă de email validă\n"
 
 msgid "Comment: "
 msgstr "Comentariu: "
 
 msgid "Invalid character in comment\n"
-msgstr "Caracter invalid în comentariu\n"
+msgstr "Caracter invalid în comentariu\n"
 
 #, fuzzy, c-format
 #| msgid "You are using the `%s' character set.\n"
 msgid "You are using the '%s' character set.\n"
-msgstr "Folosiþi setul de caractere `%s'\n"
+msgstr "Folosiţi setul de caractere `%s'\n"
 
 #, c-format
 msgid ""
@@ -4210,12 +4224,12 @@ msgid ""
 "    \"%s\"\n"
 "\n"
 msgstr ""
-"Aþi selectat acest ID-UTILIZATOR:\n"
+"Aţi selectat acest ID-UTILIZATOR:\n"
 "    \"%s\"\n"
 "\n"
 
 msgid "Please don't put the email address into the real name or the comment\n"
-msgstr "Vã rugãm nu puneþi adresa de email în numele real sau comentariu\n"
+msgstr "Vă rugăm nu puneţi adresa de email în numele real sau comentariu\n"
 
 #. TRANSLATORS: These are the allowed answers in
 #. lower and uppercase.  Below you will find the matching
@@ -4232,23 +4246,23 @@ msgid "NnCcEeOoQq"
 msgstr "NnCcEeOoTt"
 
 msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
-msgstr "Schimbã (N)ume, (C)omentariu, (E)mail sau (T)Terminã? "
+msgstr "Schimbă (N)ume, (C)omentariu, (E)mail sau (T)Termină? "
 
 msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
-msgstr "Schimbã (N)ume, (C)omentariu, (E)mail sau (O)K/(T)Terminã? "
+msgstr "Schimbă (N)ume, (C)omentariu, (E)mail sau (O)K/(T)Termină? "
 
 #, fuzzy
 #| msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
 msgid "Change (N)ame, (E)mail, or (Q)uit? "
-msgstr "Schimbã (N)ume, (C)omentariu, (E)mail sau (T)Terminã? "
+msgstr "Schimbă (N)ume, (C)omentariu, (E)mail sau (T)Termină? "
 
 #, fuzzy
 #| msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
 msgid "Change (N)ame, (E)mail, or (O)kay/(Q)uit? "
-msgstr "Schimbã (N)ume, (C)omentariu, (E)mail sau (O)K/(T)Terminã? "
+msgstr "Schimbă (N)ume, (C)omentariu, (E)mail sau (O)K/(T)Termină? "
 
 msgid "Please correct the error first\n"
-msgstr "Vã rugãm corectaþi mai întâi eroarea\n"
+msgstr "Vă rugăm corectaţi mai întâi eroarea\n"
 
 msgid ""
 "We need to generate a lot of random bytes. It is a good idea to perform\n"
@@ -4256,14 +4270,14 @@ msgid ""
 "disks) during the prime generation; this gives the random number\n"
 "generator a better chance to gain enough entropy.\n"
 msgstr ""
-"Trebuie sã generãm o grãmadã de octeþi aleatori. Este o idee bunã sã faceþi\n"
-"altceva (tastaþi la tastaturã, miºcaþi mausul, utilizaþi discurile)\n"
-"în timpul generãrii numerelor prime; aceasta dã o ºansã generatorului de\n"
-"numere aleatoare o ºansã mai bunã de a aduna destulã entropie.\n"
+"Trebuie să generăm o grămadă de octeţi aleatori. Este o idee bună să faceţi\n"
+"altceva (tastaţi la tastatură, mişcaţi mausul, utilizaţi discurile)\n"
+"în timpul generării numerelor prime; aceasta dă o şansă generatorului de\n"
+"numere aleatoare o şansă mai bună de a aduna destulă entropie.\n"
 
 #, c-format
 msgid "Key generation failed: %s\n"
-msgstr "Generarea cheii a eºuat: %s\n"
+msgstr "Generarea cheii a eşuat: %s\n"
 
 #, c-format
 msgid ""
@@ -4278,43 +4292,43 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "key already exists\n"
 msgid "A key for \"%s\" already exists\n"
-msgstr "cheia existã deja\n"
+msgstr "cheia există deja\n"
 
 #, fuzzy
 #| msgid "Create anyway? "
 msgid "Create anyway? (y/N) "
-msgstr "Creaþi oricum? "
+msgstr "Creaţi oricum? "
 
 #, fuzzy
 #| msgid "Create anyway? "
 msgid "creating anyway\n"
-msgstr "Creaþi oricum? "
+msgstr "Creaţi oricum? "
 
 #, c-format
 msgid "Note: Use \"%s %s\" for a full featured key generation dialog.\n"
 msgstr ""
 
 msgid "Key generation canceled.\n"
-msgstr "Generarea cheii a fost anulatã.\n"
+msgstr "Generarea cheii a fost anulată.\n"
 
 #, fuzzy, c-format
 #| msgid "can't create backup file `%s': %s\n"
 msgid "can't create backup file '%s': %s\n"
-msgstr "nu pot crea fiºier de rezervã `%s': %s\n"
+msgstr "nu pot crea fişier de rezervă `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "NOTE: backup of card key saved to `%s'\n"
 msgid "Note: backup of card key saved to '%s'\n"
-msgstr "NOTÃ: copia de siguranþa a cheii cardului salvatã la `%s'\n"
+msgstr "NOTĂ: copia de siguranţa a cheii cardului salvată la `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "writing public key to `%s'\n"
 msgid "writing public key to '%s'\n"
-msgstr "scriu cheia publicã în `%s'\n"
+msgstr "scriu cheia publică în `%s'\n"
 
 #, c-format
 msgid "no writable public keyring found: %s\n"
-msgstr "nu am gãsit nici un inel de chei public de scris: %s\n"
+msgstr "nu am găsit nici un inel de chei public de scris: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing public keyring `%s': %s\n"
@@ -4322,76 +4336,76 @@ msgid "error writing public keyring '%s': %s\n"
 msgstr "eroare la scrierea inelului de chei public `%s': %s\n"
 
 msgid "public and secret key created and signed.\n"
-msgstr "cheile secretã ºi publicã au fost create ºi semnate.\n"
+msgstr "cheile secretă şi publică au fost create şi semnate.\n"
 
 msgid ""
 "Note that this key cannot be used for encryption.  You may want to use\n"
 "the command \"--edit-key\" to generate a subkey for this purpose.\n"
 msgstr ""
-"De notat cã aceastã cheie nu poate fi folositã pentru cifrare.  Poate "
-"doriþi\n"
-"sã folosiþi comanda \"--edit-key\" pentru a genera o subcheie secundarã\n"
+"De notat că această cheie nu poate fi folosită pentru cifrare.  Poate "
+"doriţi\n"
+"să folosiţi comanda \"--edit-key\" pentru a genera o subcheie secundară\n"
 "pentru acest scop.\n"
 
 #, c-format
 msgid ""
 "key has been created %lu second in future (time warp or clock problem)\n"
 msgstr ""
-"cheia a fost creatã %lu secundã în viitor (warp în timp sau probleme cu "
+"cheia a fost creată %lu secundă în viitor (warp în timp sau probleme cu "
 "ceasul)\n"
 
 #, c-format
 msgid ""
 "key has been created %lu seconds in future (time warp or clock problem)\n"
 msgstr ""
-"cheia a fost creatã %lu secunde în viitor (warp în timp sau probleme cu "
+"cheia a fost creată %lu secunde în viitor (warp în timp sau probleme cu "
 "ceasul)\n"
 
 #, fuzzy
 #| msgid "NOTE: creating subkeys for v3 keys is not OpenPGP compliant\n"
 msgid "Note: creating subkeys for v3 keys is not OpenPGP compliant\n"
-msgstr "NOTÃ: crearea de subchei pentru chei v3 nu este conform OpenPGP\n"
+msgstr "NOTĂ: crearea de subchei pentru chei v3 nu este conform OpenPGP\n"
 
 msgid "Secret parts of primary key are not available.\n"
-msgstr "Pãrþile secrete ale cheii primare nu sunt disponibile.\n"
+msgstr "Părţile secrete ale cheii primare nu sunt disponibile.\n"
 
 msgid "Secret parts of primary key are stored on-card.\n"
-msgstr "Pãrþi secrete ale cheii primare sunt stacate pe card.\n"
+msgstr "Părţi secrete ale cheii primare sunt stacate pe card.\n"
 
 msgid "Really create? (y/N) "
-msgstr "Creaþi într-adevãr? (d/N) "
+msgstr "Creaţi într-adevăr? (d/N) "
 
 msgid "never     "
-msgstr "niciodatã "
+msgstr "niciodată "
 
 msgid "Critical signature policy: "
-msgstr "Politicã de semnãturi criticã: "
+msgstr "Politică de semnături critică: "
 
 msgid "Signature policy: "
-msgstr "Politicã de semnãturi: "
+msgstr "Politică de semnături: "
 
 msgid "Critical preferred keyserver: "
 msgstr "Server de chei preferat critic: "
 
 msgid "Critical signature notation: "
-msgstr "Notare semnãturã criticã: "
+msgstr "Notare semnătură critică: "
 
 msgid "Signature notation: "
-msgstr "Notare semnãturã: "
+msgstr "Notare semnătură: "
 
 #, fuzzy, c-format
 #| msgid "%d bad signatures\n"
 msgid "%d good signature\n"
 msgid_plural "%d good signatures\n"
-msgstr[0] "%d semnãturi incorecte\n"
-msgstr[1] "%d semnãturi incorecte\n"
+msgstr[0] "%d semnături incorecte\n"
+msgstr[1] "%d semnături incorecte\n"
 
 #, fuzzy, c-format
 #| msgid "1 signature not checked due to an error\n"
 msgid "%d signature not checked due to an error\n"
 msgid_plural "%d signatures not checked due to errors\n"
-msgstr[0] "1 semnãturã nu a fost verificatã din cauza unei erori\n"
-msgstr[1] "1 semnãturã nu a fost verificatã din cauza unei erori\n"
+msgstr[0] "1 semnătură nu a fost verificată din cauza unei erori\n"
+msgstr[1] "1 semnătură nu a fost verificată din cauza unei erori\n"
 
 #, c-format
 msgid "Warning: %lu key skipped due to its large size\n"
@@ -4403,21 +4417,21 @@ msgid "Keyring"
 msgstr "Inel de chei"
 
 msgid "Primary key fingerprint:"
-msgstr "Amprentã cheie primarã:"
+msgstr "Amprentă cheie primară:"
 
 msgid "     Subkey fingerprint:"
-msgstr "     Amprentã subcheie:"
+msgstr "     Amprentă subcheie:"
 
 #. TRANSLATORS: this should fit into 24 bytes so that the
 #. * fingerprint data is properly aligned with the user ID
 msgid " Primary key fingerprint:"
-msgstr " Amprentã cheie primarã:"
+msgstr " Amprentă cheie primară:"
 
 msgid "      Subkey fingerprint:"
-msgstr "      Amprentã subcheie:"
+msgstr "      Amprentă subcheie:"
 
 msgid "      Key fingerprint ="
-msgstr "      Amprentã cheie ="
+msgstr "      Amprentă cheie ="
 
 msgid "      Card serial no. ="
 msgstr "      Card nr. serie ="
@@ -4425,14 +4439,14 @@ msgstr "      Card nr. serie ="
 #, fuzzy, c-format
 #| msgid "caching keyring `%s'\n"
 msgid "caching keyring '%s'\n"
-msgstr "pun în cache inelul de chei `%s'\n"
+msgstr "pun în cache inelul de chei `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "%lu keys cached so far (%lu signatures)\n"
 msgid "%lu keys cached so far (%lu signature)\n"
 msgid_plural "%lu keys cached so far (%lu signatures)\n"
-msgstr[0] "%lu chei puse în cache pânã acum (%lu semnãturi)\n"
-msgstr[1] "%lu chei puse în cache pânã acum (%lu semnãturi)\n"
+msgstr[0] "%lu chei puse în cache până acum (%lu semnături)\n"
+msgstr[1] "%lu chei puse în cache până acum (%lu semnături)\n"
 
 #, c-format
 msgid "%lu key cached"
@@ -4444,8 +4458,8 @@ msgstr[1] ""
 #| msgid "1 bad signature\n"
 msgid " (%lu signature)\n"
 msgid_plural " (%lu signatures)\n"
-msgstr[0] "1 semnãturã incorectã\n"
-msgstr[1] "1 semnãturã incorectã\n"
+msgstr[0] "1 semnătură incorectă\n"
+msgstr[1] "1 semnătură incorectă\n"
 
 #, c-format
 msgid "%s: keyring created\n"
@@ -4468,16 +4482,16 @@ msgstr ""
 
 #, fuzzy
 msgid "honor the preferred keyserver URL set on the key"
-msgstr "Introduceþi URL-ul serverului de chei preferat: "
+msgstr "Introduceţi URL-ul serverului de chei preferat: "
 
 msgid "honor the PKA record set on a key when retrieving keys"
 msgstr ""
 
 msgid "disabled"
-msgstr "deactivat(ã)"
+msgstr "deactivat(ă)"
 
 msgid "Enter number(s), N)ext, or Q)uit > "
-msgstr "Introduceþi numãr/numere, N)ext (urmãtor), sau Q)uit (terminã) > "
+msgstr "Introduceţi număr/numere, N)ext (următor), sau Q)uit (termină) > "
 
 #, c-format
 msgid "invalid keyserver protocol (us %d!=handler %d)\n"
@@ -4485,7 +4499,7 @@ msgstr "protocol server de chei invalid (us %d!=handler %d)\n"
 
 #, c-format
 msgid "\"%s\" not a key ID: skipping\n"
-msgstr "\"%s\" nu este un ID de cheie: sãrit\n"
+msgstr "\"%s\" nu este un ID de cheie: sărit\n"
 
 #, fuzzy, c-format
 #| msgid "refreshing %d keys from %s\n"
@@ -4500,13 +4514,13 @@ msgstr "AVERTISMENT: nu pot reactualiza cheia %s via %s: %s\n"
 
 #, c-format
 msgid "key \"%s\" not found on keyserver\n"
-msgstr "cheia \"%s\" nu a fost gãsitã pe serverul de chei\n"
+msgstr "cheia \"%s\" nu a fost găsită pe serverul de chei\n"
 
 msgid "key not found on keyserver\n"
-msgstr "cheia nu a fost gãsitã pe serverul de chei\n"
+msgstr "cheia nu a fost găsită pe serverul de chei\n"
 
 msgid "no keyserver known (use option --keyserver)\n"
-msgstr "nici un server de chei cunoscut (folosiþi opþiunea --keyserver)\n"
+msgstr "nici un server de chei cunoscut (folosiţi opţiunea --keyserver)\n"
 
 #, c-format
 msgid "requesting key %s from %s server %s\n"
@@ -4519,11 +4533,11 @@ msgstr "cer cheia %s de la %s\n"
 #, fuzzy
 #| msgid "no keyserver action!\n"
 msgid "no keyserver known\n"
-msgstr "nici o acþiune pentru serverul de chei!\n"
+msgstr "nici o acţiune pentru serverul de chei!\n"
 
 #, c-format
 msgid "skipped \"%s\": %s\n"
-msgstr "sãritã \"%s\": %s\n"
+msgstr "sărită \"%s\": %s\n"
 
 #, c-format
 msgid "sending key %s to %s\n"
@@ -4540,26 +4554,26 @@ msgstr "AVERTISMENT: nu pot reactualiza cheia %s via %s: %s\n"
 
 #, c-format
 msgid "weird size for an encrypted session key (%d)\n"
-msgstr "dimensiune ciudatã pentru o cheie de sesiune cifratã (%d)\n"
+msgstr "dimensiune ciudată pentru o cheie de sesiune cifrată (%d)\n"
 
 #, c-format
 msgid "%s encrypted session key\n"
-msgstr "%s cheie de sesiune cifratã\n"
+msgstr "%s cheie de sesiune cifrată\n"
 
 #, c-format
 msgid "passphrase generated with unknown digest algorithm %d\n"
-msgstr "fraza-parolã generatã cu un algoritm rezumat necunoscut %d\n"
+msgstr "fraza-parolă generată cu un algoritm rezumat necunoscut %d\n"
 
 #, c-format
 msgid "public key is %s\n"
-msgstr "cheia publicã este %s\n"
+msgstr "cheia publică este %s\n"
 
 msgid "public key encrypted data: good DEK\n"
-msgstr "date cigrate cu cheie publicã: DEK bun\n"
+msgstr "date cigrate cu cheie publică: DEK bun\n"
 
 #, c-format
 msgid "encrypted with %u-bit %s key, ID %s, created %s\n"
-msgstr "cifrat cu cheia %u-bit %s, ID %s, creatã %s\n"
+msgstr "cifrat cu cheia %u-bit %s, ID %s, creată %s\n"
 
 #, c-format
 msgid "      \"%s\"\n"
@@ -4571,14 +4585,14 @@ msgstr "cifrat cu cheia %s, ID %s\n"
 
 #, c-format
 msgid "public key decryption failed: %s\n"
-msgstr "decriptarea cu cheie publicã a eºuat: %s\n"
+msgstr "decriptarea cu cheie publică a eşuat: %s\n"
 
 #, c-format
 msgid "encrypted with %lu passphrases\n"
-msgstr "cifratã cu %lu fraze-parolã\n"
+msgstr "cifrată cu %lu fraze-parolă\n"
 
 msgid "encrypted with 1 passphrase\n"
-msgstr "cifratã cu 1 frazã-parolã\n"
+msgstr "cifrată cu 1 frază-parolă\n"
 
 #, c-format
 msgid "assuming %s encrypted data\n"
@@ -4586,10 +4600,10 @@ msgstr "presupunem date cifrate %s\n"
 
 #, c-format
 msgid "IDEA cipher unavailable, optimistically attempting to use %s instead\n"
-msgstr "cifru IDEA indisponibil, vom încerca sã folosim %s în loc\n"
+msgstr "cifru IDEA indisponibil, vom încerca să folosim %s în loc\n"
 
 msgid "WARNING: message was not integrity protected\n"
-msgstr "AVERTISMENT: mesajul nu a avut integritatea protejatã\n"
+msgstr "AVERTISMENT: mesajul nu a avut integritatea protejată\n"
 
 msgid "decryption okay\n"
 msgstr "decriptare OK\n"
@@ -4599,49 +4613,49 @@ msgstr "AVERTISMENT: mesajul cifrat a fost manipulat!\n"
 
 #, c-format
 msgid "decryption failed: %s\n"
-msgstr "decriptarea a eºuat: %s\n"
+msgstr "decriptarea a eşuat: %s\n"
 
 #, fuzzy
 #| msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
 msgid "Note: sender requested \"for-your-eyes-only\"\n"
-msgstr "NOTÃ: expeditorul a cerut \"doar-pentru-ochii-d-voastrã\"\n"
+msgstr "NOTĂ: expeditorul a cerut \"doar-pentru-ochii-d-voastră\"\n"
 
 #, c-format
 msgid "original file name='%.*s'\n"
-msgstr "nume fiºier original='%.*s'\n"
+msgstr "nume fişier original='%.*s'\n"
 
 msgid "WARNING: multiple plaintexts seen\n"
 msgstr ""
 
 msgid "standalone revocation - use \"gpg --import\" to apply\n"
-msgstr "revocare standalone - folosiþi \"gpg --import\" pentru a aplica\n"
+msgstr "revocare standalone - folosiţi \"gpg --import\" pentru a aplica\n"
 
 #, fuzzy
 msgid "no signature found\n"
-msgstr "Semnãturã bunã din \"%s\""
+msgstr "Semnătură bună din \"%s\""
 
 #, c-format
 msgid "BAD signature from \"%s\""
-msgstr "Semnãturã INCORECTàdin \"%s\""
+msgstr "Semnătură INCORECTĂ din \"%s\""
 
 #, c-format
 msgid "Expired signature from \"%s\""
-msgstr "Semnãturã expiratã din \"%s\""
+msgstr "Semnătură expirată din \"%s\""
 
 #, c-format
 msgid "Good signature from \"%s\""
-msgstr "Semnãturã bunã din \"%s\""
+msgstr "Semnătură bună din \"%s\""
 
 msgid "signature verification suppressed\n"
-msgstr "verificare semnãturã eliminatã\n"
+msgstr "verificare semnătură eliminată\n"
 
 #, fuzzy
 msgid "can't handle this ambiguous signature data\n"
-msgstr "nu pot mânui aceste semnãturi multiple\n"
+msgstr "nu pot mânui aceste semnături multiple\n"
 
 #, c-format
 msgid "Signature made %s\n"
-msgstr "Semnãturã fãcutã %s\n"
+msgstr "Semnătură făcută %s\n"
 
 #, c-format
 msgid "               using %s key %s\n"
@@ -4649,7 +4663,7 @@ msgstr "               folosind cheia %s %s\n"
 
 #, c-format
 msgid "Signature made %s using %s key ID %s\n"
-msgstr "Semnãturã fãcutã %s folosind cheia %s cu ID %s\n"
+msgstr "Semnătură făcută %s folosind cheia %s cu ID %s\n"
 
 #, fuzzy, c-format
 #| msgid "                aka \"%s\""
@@ -4657,7 +4671,7 @@ msgid "               issuer \"%s\"\n"
 msgstr "                aka \"%s\""
 
 msgid "Key available at: "
-msgstr "Cheie disponibilã la: "
+msgstr "Cheie disponibilă la: "
 
 msgid "[uncertain]"
 msgstr "[nesigur]"
@@ -4668,16 +4682,16 @@ msgstr "                aka \"%s\""
 
 #, c-format
 msgid "Signature expired %s\n"
-msgstr "Semnãturã expiratã %s\n"
+msgstr "Semnătură expirată %s\n"
 
 #, c-format
 msgid "Signature expires %s\n"
-msgstr "Semnãtura expirã %s\n"
+msgstr "Semnătura expiră %s\n"
 
 #, fuzzy, c-format
 #| msgid "%s signature, digest algorithm %s\n"
 msgid "%s signature, digest algorithm %s%s%s\n"
-msgstr "semnãturã %s, algoritm rezumat %s\n"
+msgstr "semnătură %s, algoritm rezumat %s\n"
 
 msgid "binary"
 msgstr "binar"
@@ -4699,35 +4713,35 @@ msgstr ""
 
 #, c-format
 msgid "Can't check signature: %s\n"
-msgstr "Nu pot verifica semnãtura: %s\n"
+msgstr "Nu pot verifica semnătura: %s\n"
 
 msgid "not a detached signature\n"
-msgstr "nu o semnãturã detaºatã\n"
+msgstr "nu o semnătură detaşată\n"
 
 msgid ""
 "WARNING: multiple signatures detected.  Only the first will be checked.\n"
 msgstr ""
-"AVERTISMENT: am detectat multiple semnãturi.  Numai prima va fi verificatã.\n"
+"AVERTISMENT: am detectat multiple semnături.  Numai prima va fi verificată.\n"
 
 #, c-format
 msgid "standalone signature of class 0x%02x\n"
-msgstr "semnãturã de sine stãtãtoare (standalone) de clasã 0x%02x\n"
+msgstr "semnătură de sine stătătoare (standalone) de clasă 0x%02x\n"
 
 msgid "old style (PGP 2.x) signature\n"
-msgstr "semnãturã de stil vechi (PGP 2.x)\n"
+msgstr "semnătură de stil vechi (PGP 2.x)\n"
 
 #, fuzzy, c-format
 #| msgid "fstat of `%s' failed in %s: %s\n"
 msgid "fstat of '%s' failed in %s: %s\n"
-msgstr "fstat pentru `%s' a eºuat în %s: %s\n"
+msgstr "fstat pentru `%s' a eşuat în %s: %s\n"
 
 #, c-format
 msgid "fstat(%d) failed in %s: %s\n"
-msgstr "fstat(%d) a eºuat în %s: %s\n"
+msgstr "fstat(%d) a eşuat în %s: %s\n"
 
 #, c-format
 msgid "WARNING: using experimental public key algorithm %s\n"
-msgstr "AVERTISMENT: folosesc algoritmul cu cheie publicã experimental %s\n"
+msgstr "AVERTISMENT: folosesc algoritmul cu cheie publică experimental %s\n"
 
 #, fuzzy
 msgid "WARNING: Elgamal sign+encrypt keys are deprecated\n"
@@ -4748,45 +4762,45 @@ msgstr "AVERTISMENT: algoritmul rezumat %s este prea vechi (deprecated)\n"
 #, fuzzy, c-format
 #| msgid "%s signature, digest algorithm %s\n"
 msgid "Note: signatures using the %s algorithm are rejected\n"
-msgstr "semnãturã %s, algoritm rezumat %s\n"
+msgstr "semnătură %s, algoritm rezumat %s\n"
 
 #, fuzzy, c-format
 #| msgid "read error in `%s': %s\n"
 msgid "(reported error: %s)\n"
-msgstr "eroare citire în `%s': %s\n"
+msgstr "eroare citire în `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "read error in `%s': %s\n"
 msgid "(reported error: %s <%s>)\n"
-msgstr "eroare citire în `%s': %s\n"
+msgstr "eroare citire în `%s': %s\n"
 
 msgid "(further info: "
 msgstr ""
 
 #, c-format
 msgid "%s:%d: deprecated option \"%s\"\n"
-msgstr "%s:%d: opþiune învechitã \"%s\"\n"
+msgstr "%s:%d: opţiune învechită \"%s\"\n"
 
 #, c-format
 msgid "WARNING: \"%s\" is a deprecated option\n"
-msgstr "AVERTISMENT: \"%s\" este o opþiune învechitã\n"
+msgstr "AVERTISMENT: \"%s\" este o opţiune învechită\n"
 
 #, c-format
 msgid "please use \"%s%s\" instead\n"
-msgstr "vã rugãm folosiþi \"%s%s\" în loc\n"
+msgstr "vă rugăm folosiţi \"%s%s\" în loc\n"
 
 #, c-format
 msgid "WARNING: \"%s\" is a deprecated command - do not use it\n"
-msgstr "AVERTISMENT: \"%s\" este o comandã învechitã - nu o folosiþi\n"
+msgstr "AVERTISMENT: \"%s\" este o comandă învechită - nu o folosiţi\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: \"%s\" is obsolete in this file - it only has effect in %s\n"
-msgstr "AVERTISMENT: \"%s\" este o opþiune învechitã\n"
+msgstr "AVERTISMENT: \"%s\" este o opţiune învechită\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: \"%s%s\" is an obsolete option - it has no effect except on %s\n"
-msgstr "AVERTISMENT: \"%s\" este o opþiune învechitã\n"
+msgstr "AVERTISMENT: \"%s\" este o opţiune învechită\n"
 
 msgid "Uncompressed"
 msgstr "Necompresat"
@@ -4798,17 +4812,17 @@ msgstr "necompresat|niciunul"
 
 #, c-format
 msgid "this message may not be usable by %s\n"
-msgstr "acest mesaj s-ar putea sã nu poatã fi folosit de %s\n"
+msgstr "acest mesaj s-ar putea să nu poată fi folosit de %s\n"
 
 #, fuzzy, c-format
 #| msgid "ambiguous option `%s'\n"
 msgid "ambiguous option '%s'\n"
-msgstr "opþiune ambiguã `%s'\n"
+msgstr "opţiune ambiguă `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "unknown option `%s'\n"
 msgid "unknown option '%s'\n"
-msgstr "opþiune necunoscutã `%s'\n"
+msgstr "opţiune necunoscută `%s'\n"
 
 msgid "ECDSA public key is expected to be in SEC encoding multiple of 8 bits\n"
 msgstr ""
@@ -4816,12 +4830,12 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "Unknown signature type `%s'\n"
 msgid "unknown weak digest '%s'\n"
-msgstr "Tip de semnãturã necunoscut `%s'\n"
+msgstr "Tip de semnătură necunoscut `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "File `%s' exists. "
 msgid "File '%s' exists. "
-msgstr "Fiºierul `%s' existã. "
+msgstr "Fişierul `%s' există. "
 
 msgid "Overwrite? (y/N) "
 msgstr "Suprascriu? (d/N) "
@@ -4831,7 +4845,7 @@ msgid "%s: unknown suffix\n"
 msgstr "%s: sufix necunoscut\n"
 
 msgid "Enter new filename"
-msgstr "Introduceþi un nou nume-fiºier"
+msgstr "Introduceţi un nou nume-fişier"
 
 msgid "writing to stdout\n"
 msgstr "scriu la stdout\n"
@@ -4839,26 +4853,26 @@ msgstr "scriu la stdout\n"
 #, fuzzy, c-format
 #| msgid "assuming signed data in `%s'\n"
 msgid "assuming signed data in '%s'\n"
-msgstr "presupun date semnate în `%s'\n"
+msgstr "presupun date semnate în `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "new configuration file `%s' created\n"
 msgid "new configuration file '%s' created\n"
-msgstr "fiºier de configurare nou `%s' creat\n"
+msgstr "fişier de configurare nou `%s' creat\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: options in `%s' are not yet active during this run\n"
 msgid "WARNING: options in '%s' are not yet active during this run\n"
 msgstr ""
-"AVERTISMENT: opþiunile din %s nu sunt încã active în timpul acestei rulãri\n"
+"AVERTISMENT: opţiunile din %s nu sunt încă active în timpul acestei rulări\n"
 
 #, c-format
 msgid "can't handle public key algorithm %d\n"
-msgstr "nu pot mânui algoritmul cu cheie publicã %d\n"
+msgstr "nu pot mânui algoritmul cu cheie publică %d\n"
 
 msgid "WARNING: potentially insecure symmetrically encrypted session key\n"
 msgstr ""
-"AVERTISMENT: cheie de sesiune cifratã simetric potenþial nesigurã "
+"AVERTISMENT: cheie de sesiune cifrată simetric potenţial nesigură "
 "(insecure)\n"
 
 #, c-format
@@ -4867,47 +4881,47 @@ msgstr "subpachetul de tip %d are bitul critic setat\n"
 
 #, fuzzy, c-format
 msgid "problem with the agent: %s\n"
-msgstr "problemã cu agentul: agentul returneazã 0x%lx\n"
+msgstr "problemă cu agentul: agentul returnează 0x%lx\n"
 
 msgid "Enter passphrase\n"
-msgstr "Introduceþi fraza-parolã\n"
+msgstr "Introduceţi fraza-parolă\n"
 
 msgid "cancelled by user\n"
-msgstr "anulatã de utilizator\n"
+msgstr "anulată de utilizator\n"
 
 #, c-format
 msgid " (main key ID %s)"
-msgstr " (ID cheie principalã %s)"
+msgstr " (ID cheie principală %s)"
 
 #, fuzzy
 msgid "Please enter the passphrase to unlock the OpenPGP secret key:"
 msgstr ""
-"Vã rugãm introduceþi fraza-parolã; aceasta este o propoziþie secretã \n"
+"Vă rugăm introduceţi fraza-parolă; aceasta este o propoziţie secretă \n"
 
 #, fuzzy
 msgid "Please enter the passphrase to import the OpenPGP secret key:"
 msgstr ""
-"Vã rugãm introduceþi fraza-parolã; aceasta este o propoziþie secretã \n"
+"Vă rugăm introduceţi fraza-parolă; aceasta este o propoziţie secretă \n"
 
 #, fuzzy
 msgid "Please enter the passphrase to export the OpenPGP secret subkey:"
 msgstr ""
-"Vã rugãm introduceþi fraza-parolã; aceasta este o propoziþie secretã \n"
+"Vă rugăm introduceţi fraza-parolă; aceasta este o propoziţie secretă \n"
 
 #, fuzzy
 msgid "Please enter the passphrase to export the OpenPGP secret key:"
 msgstr ""
-"Vã rugãm introduceþi fraza-parolã; aceasta este o propoziþie secretã \n"
+"Vă rugăm introduceţi fraza-parolă; aceasta este o propoziţie secretă \n"
 
 #, fuzzy
 #| msgid "Do you really want to delete the selected keys? (y/N) "
 msgid "Do you really want to permanently delete the OpenPGP secret subkey key:"
-msgstr "Doriþi într-adevãr sã ºtergeþi cheile selectate? (d/N) "
+msgstr "Doriţi într-adevăr să ştergeţi cheile selectate? (d/N) "
 
 #, fuzzy
 #| msgid "Do you really want to delete the selected keys? (y/N) "
 msgid "Do you really want to permanently delete the OpenPGP secret key:"
-msgstr "Doriþi într-adevãr sã ºtergeþi cheile selectate? (d/N) "
+msgstr "Doriţi într-adevăr să ştergeţi cheile selectate? (d/N) "
 
 #, fuzzy, c-format
 #| msgid "%u-bit %s key, ID %s, created %s"
@@ -4917,7 +4931,7 @@ msgid ""
 "%u-bit %s key, ID %s,\n"
 "created %s%s.\n"
 "%s"
-msgstr "cheia %u-bit %s, ID %s, creatã %s"
+msgstr "cheia %u-bit %s, ID %s, creată %s"
 
 msgid ""
 "\n"
@@ -4927,50 +4941,50 @@ msgid ""
 "Keeping the image close to 240x288 is a good size to use.\n"
 msgstr ""
 "\n"
-"Alegeþi o imagine pentru a o folosi ca pozã ID.  Imaginea trebuie sã fie un\n"
-"fiºier JPEG.  Amintiþi-vã cã imaginea este pãstratã în cheia d-voastrã "
-"publicã.\n"
-"Dacã folosiþi o imagine foarte largã, cheia d-voastrã va deveni de asemenea\n"
-"foarte largã!\n"
-"Încercaþi sã folosiþi o imagine de aproximativ 240x288 pixeli.\n"
+"Alegeţi o imagine pentru a o folosi ca poză ID.  Imaginea trebuie să fie un\n"
+"fişier JPEG.  Amintiţi-vă că imaginea este păstrată în cheia d-voastră "
+"publică.\n"
+"Dacă folosiţi o imagine foarte largă, cheia d-voastră va deveni de asemenea\n"
+"foarte largă!\n"
+"Încercaţi să folosiţi o imagine de aproximativ 240x288 pixeli.\n"
 
 msgid "Enter JPEG filename for photo ID: "
-msgstr "Introduceþi nume-fiºier JPEG pentru pozã ID: "
+msgstr "Introduceţi nume-fişier JPEG pentru poză ID: "
 
 #, fuzzy, c-format
 #| msgid "unable to open JPEG file `%s': %s\n"
 msgid "unable to open JPEG file '%s': %s\n"
-msgstr "nu pot deschide fiºierul JPEG `%s': %s\n"
+msgstr "nu pot deschide fişierul JPEG `%s': %s\n"
 
 #, c-format
 msgid "This JPEG is really large (%d bytes) !\n"
-msgstr "Acest JPEG este foarte mare (%d octeþi) !\n"
+msgstr "Acest JPEG este foarte mare (%d octeţi) !\n"
 
 msgid "Are you sure you want to use it? (y/N) "
-msgstr "Sunteþi sigur(ã) cã doriþi sã îl folosiþi? (d/N) "
+msgstr "Sunteţi sigur(ă) că doriţi să îl folosiţi? (d/N) "
 
 #, fuzzy, c-format
 #| msgid "`%s' is not a JPEG file\n"
 msgid "'%s' is not a JPEG file\n"
-msgstr "`%s' nu este un fiºier JPEG\n"
+msgstr "`%s' nu este un fişier JPEG\n"
 
 msgid "Is this photo correct (y/N/q)? "
-msgstr "Este aceastã pozã corectã (d/N/t)? "
+msgstr "Este această poză corectă (d/N/t)? "
 
 msgid "unable to display photo ID!\n"
-msgstr "nu pot afiºa poza ID!\n"
+msgstr "nu pot afişa poza ID!\n"
 
 msgid "No reason specified"
 msgstr "Nici un motiv specificat"
 
 msgid "Key is superseded"
-msgstr "Cheia este înlocuitã"
+msgstr "Cheia este înlocuită"
 
 msgid "Key has been compromised"
-msgstr "Cheia a fost compromisã"
+msgstr "Cheia a fost compromisă"
 
 msgid "Key is no longer used"
-msgstr "Cheia nu mai este folositã"
+msgstr "Cheia nu mai este folosită"
 
 msgid "User ID is no longer valid"
 msgstr "ID utilizator nu mai este valid"
@@ -4995,7 +5009,7 @@ msgid "iImMqQsS"
 msgstr "iImMtTsS"
 
 msgid "No trust value assigned to:\n"
-msgstr "Nici o valoare de încredere atribuitã lui:\n"
+msgstr "Nici o valoare de încredere atribuită lui:\n"
 
 #, c-format
 msgid "  aka \"%s\"\n"
@@ -5004,100 +5018,118 @@ msgstr "  aka \"%s\"\n"
 msgid ""
 "How much do you trust that this key actually belongs to the named user?\n"
 msgstr ""
-"Cât de mult credeþi cã aceastã cheie aparþine într-adevãr utilizatorului "
+"Cât de mult credeţi că această cheie aparţine într-adevăr utilizatorului "
 "numit?\n"
 
 #, c-format
 msgid "  %d = I don't know or won't say\n"
-msgstr "  %d = Nu ºtiu sau nu vreau sã mã pronunþ\n"
+msgstr "  %d = Nu ştiu sau nu vreau să mă pronunţ\n"
 
 #, c-format
 msgid "  %d = I do NOT trust\n"
-msgstr "  %d = NU am încredere\n"
+msgstr "  %d = NU am încredere\n"
 
 #, c-format
 msgid "  %d = I trust ultimately\n"
-msgstr "  %d = Am încredere supremã\n"
+msgstr "  %d = Am încredere supremă\n"
 
 msgid "  m = back to the main menu\n"
-msgstr "  m = înapoi la meniul principal\n"
+msgstr "  m = înapoi la meniul principal\n"
 
 msgid "  s = skip this key\n"
-msgstr "  s = sãri peste cheia asta\n"
+msgstr "  s = sări peste cheia asta\n"
 
 msgid "  q = quit\n"
-msgstr "  t = terminã\n"
+msgstr "  t = termină\n"
 
 #, c-format
 msgid ""
 "The minimum trust level for this key is: %s\n"
 "\n"
 msgstr ""
-"Nivelul minim de încredere pentru aceastã cheie este: %s\n"
+"Nivelul minim de încredere pentru această cheie este: %s\n"
 "\n"
 
 msgid "Your decision? "
-msgstr "Decizia d-voastrã? "
+msgstr "Decizia d-voastră? "
 
 msgid "Do you really want to set this key to ultimate trust? (y/N) "
 msgstr ""
-"Doriþi într-adevãr sã setaþi aceastã cheie cu încredere supremã? (d/N) "
+"Doriţi într-adevăr să setaţi această cheie cu încredere supremă? (d/N) "
 
 msgid "Certificates leading to an ultimately trusted key:\n"
-msgstr "Certificatele ce conduc la o cheie cu încredere supremã:\n"
+msgstr "Certificatele ce conduc la o cheie cu încredere supremă:\n"
 
 #, c-format
 msgid "%s: There is no assurance this key belongs to the named user\n"
 msgstr ""
-"%s: Nu existã nici o indicaþie cã aceastã cheie aparþine într-adevãr "
+"%s: Nu există nici o indicaţie că această cheie aparţine într-adevăr "
 "utilizatorului numit\n"
 
 #, c-format
 msgid "%s: There is limited assurance this key belongs to the named user\n"
 msgstr ""
-"%s: Nu existã nici o indicaþie cã aceastã cheie aparþine într-adevãr "
+"%s: Nu există nici o indicaţie că această cheie aparţine într-adevăr "
 "utilizatorului numit\n"
 
 msgid "This key probably belongs to the named user\n"
-msgstr "Aceastã cheie aparþine probabil utilizatorului numit\n"
+msgstr "Această cheie aparţine probabil utilizatorului numit\n"
 
 msgid "This key belongs to us\n"
-msgstr "Aceastã cheie ne aparþine\n"
+msgstr "Această cheie ne aparţine\n"
+
+#, c-format
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr ""
+
+#, fuzzy
+#| msgid ""
+#| "It is NOT certain that the key belongs to the person named\n"
+#| "in the user ID.  If you *really* know what you are doing,\n"
+#| "you may answer the next question with yes.\n"
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"NU este sigur că cheia aparţine persoanei numite în ID-ul\n"
+"utilizator.  Dacă ştiţi *cu adevărat* ce faceţi, puteţi\n"
+"răspunde cu da la următoarea întrebare.\n"
 
 msgid ""
 "It is NOT certain that the key belongs to the person named\n"
 "in the user ID.  If you *really* know what you are doing,\n"
 "you may answer the next question with yes.\n"
 msgstr ""
-"NU este sigur cã cheia aparþine persoanei numite în ID-ul\n"
-"utilizator.  Dacã ºtiþi *cu adevãrat* ce faceþi, puteþi\n"
-"rãspunde cu da la urmãtoarea întrebare.\n"
+"NU este sigur că cheia aparţine persoanei numite în ID-ul\n"
+"utilizator.  Dacă ştiţi *cu adevărat* ce faceţi, puteţi\n"
+"răspunde cu da la următoarea întrebare.\n"
 
 msgid "Use this key anyway? (y/N) "
-msgstr "Folosiþi oricum aceastã cheie? (d/N) "
+msgstr "Folosiţi oricum această cheie? (d/N) "
 
 msgid "WARNING: Using untrusted key!\n"
-msgstr "AVERTISMENT: Folosiþi o cheie fãrã încredere!\n"
+msgstr "AVERTISMENT: Folosiţi o cheie fără încredere!\n"
 
 msgid "WARNING: this key might be revoked (revocation key not present)\n"
 msgstr ""
-"AVERTISMENT: aceastã cheie poate fi revocatã (cheia de revocare nu este "
-"prezentã)\n"
+"AVERTISMENT: această cheie poate fi revocată (cheia de revocare nu este "
+"prezentă)\n"
 
 msgid "WARNING: This key has been revoked by its designated revoker!\n"
-msgstr "AVERTISMENT: Aceastã cheie a fost revocatã revocatorul desemnat!\n"
+msgstr "AVERTISMENT: Această cheie a fost revocată revocatorul desemnat!\n"
 
 msgid "WARNING: This key has been revoked by its owner!\n"
-msgstr "AVERTISMENT: Aceastã cheie a fost revocatã de proprietarul ei!\n"
+msgstr "AVERTISMENT: Această cheie a fost revocată de proprietarul ei!\n"
 
 msgid "         This could mean that the signature is forged.\n"
-msgstr "         Aceasta ar putea însemna cã semnãtura e falsificatã.\n"
+msgstr "         Aceasta ar putea însemna că semnătura e falsificată.\n"
 
 msgid "WARNING: This subkey has been revoked by its owner!\n"
-msgstr "AVERTISMENT: Aceastã cheie a fost revocatã de proprietarul ei!\n"
+msgstr "AVERTISMENT: Această cheie a fost revocată de proprietarul ei!\n"
 
 msgid "Note: This key has been disabled.\n"
-msgstr "Notã: Aceastã cheie a fost deactivatã.\n"
+msgstr "Notă: Această cheie a fost deactivată.\n"
 
 #, c-format
 msgid "Note: Verified signer's address is '%s'\n"
@@ -5114,48 +5146,48 @@ msgid "trustlevel adjusted to NEVER due to bad PKA info\n"
 msgstr ""
 
 msgid "Note: This key has expired!\n"
-msgstr "Notã: Aceastã cheie a expirat!\n"
+msgstr "Notă: Această cheie a expirat!\n"
 
 msgid "WARNING: This key is not certified with a trusted signature!\n"
 msgstr ""
-"AVERTISMENT: Aceastã cheie nu este certificatã de o semnãturã de încredere!\n"
+"AVERTISMENT: Această cheie nu este certificată de o semnătură de încredere!\n"
 
 msgid ""
 "         There is no indication that the signature belongs to the owner.\n"
 msgstr ""
-"         Nu existã nici o indicaþie cã semnãtura aparþine proprietarului.\n"
+"         Nu există nici o indicaţie că semnătura aparţine proprietarului.\n"
 
 msgid "WARNING: We do NOT trust this key!\n"
-msgstr "AVERTISMENT: Noi NU avem încredere în aceastã cheie!\n"
+msgstr "AVERTISMENT: Noi NU avem încredere în această cheie!\n"
 
 msgid "         The signature is probably a FORGERY.\n"
-msgstr "         Semnãtura este probabil un FALS.\n"
+msgstr "         Semnătura este probabil un FALS.\n"
 
 msgid ""
 "WARNING: This key is not certified with sufficiently trusted signatures!\n"
 msgstr ""
-"AVERTISMENT: Aceastã cheie nu este certificatã cu suficiente semnãturi de "
-"încredere!\n"
+"AVERTISMENT: Această cheie nu este certificată cu suficiente semnături de "
+"încredere!\n"
 
 msgid "         It is not certain that the signature belongs to the owner.\n"
-msgstr "         Nu este sigur cã semnãtura aparþine proprietarului.\n"
+msgstr "         Nu este sigur că semnătura aparţine proprietarului.\n"
 
 #, c-format
 msgid "%s: skipped: %s\n"
-msgstr "%s: sãritã: %s\n"
+msgstr "%s: sărită: %s\n"
 
 #, c-format
 msgid "%s: skipped: public key is disabled\n"
-msgstr "%s: sãritã: cheia publicã este deactivatã\n"
+msgstr "%s: sărită: cheia publică este deactivată\n"
 
 #, c-format
 msgid "%s: skipped: public key already present\n"
-msgstr "%s: sãritã: cheia publicã este deja prezentã\n"
+msgstr "%s: sărită: cheia publică este deja prezentă\n"
 
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't encrypt to '%s'\n"
-msgstr "nu mã pot conecta la `%s': %s\n"
+msgstr "nu mă pot conecta la `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "option '%s' given, but no valid default keys given\n"
@@ -5166,29 +5198,29 @@ msgid "option '%s' given, but option '%s' not given\n"
 msgstr "algoritm hash invalid `%s'\n"
 
 msgid "You did not specify a user ID. (you may use \"-r\")\n"
-msgstr "Nu aþi specificat un ID utilizator. (puteþi folosi \"-r\")\n"
+msgstr "Nu aţi specificat un ID utilizator. (puteţi folosi \"-r\")\n"
 
 msgid "Current recipients:\n"
-msgstr "Destinatari curenþi:\n"
+msgstr "Destinatari curenţi:\n"
 
 msgid ""
 "\n"
 "Enter the user ID.  End with an empty line: "
 msgstr ""
 "\n"
-"Introduceþi ID-ul utilizator.  Terminaþi cu o linie nouã: "
+"Introduceţi ID-ul utilizator.  Terminaţi cu o linie nouă: "
 
 msgid "No such user ID.\n"
-msgstr "Nu existã acest ID utilizator.\n"
+msgstr "Nu există acest ID utilizator.\n"
 
 msgid "skipped: public key already set as default recipient\n"
-msgstr "sãritã: cheia publicã setatã deja ca destinatar implicit\n"
+msgstr "sărită: cheia publică setată deja ca destinatar implicit\n"
 
 msgid "Public key is disabled.\n"
-msgstr "Cheia publicã este deactivatã.\n"
+msgstr "Cheia publică este deactivată.\n"
 
 msgid "skipped: public key already set\n"
-msgstr "sãritã: cheia publicã setatã deja\n"
+msgstr "sărită: cheia publică setată deja\n"
 
 #, c-format
 msgid "unknown default recipient \"%s\"\n"
@@ -5207,19 +5239,19 @@ msgstr "cheia %s nu are nici un ID utilizator\n"
 
 msgid "data not saved; use option \"--output\" to save it\n"
 msgstr ""
-"datele nu au fost salvate: folosiþi opþiunea \"--output\" pentru a le salva\n"
+"datele nu au fost salvate: folosiţi opţiunea \"--output\" pentru a le salva\n"
 
 msgid "Detached signature.\n"
-msgstr "Semnãturã detaºatã.\n"
+msgstr "Semnătură detaşată.\n"
 
 msgid "Please enter name of data file: "
-msgstr "Vã rugãm introduceþi numele fiºierului de date: "
+msgstr "Vă rugăm introduceţi numele fişierului de date: "
 
 msgid "reading stdin ...\n"
 msgstr "citesc stdin ...\n"
 
 msgid "no signed data\n"
-msgstr "nici o datã semnatã\n"
+msgstr "nici o dată semnată\n"
 
 #, fuzzy, c-format
 #| msgid "can't open signed data `%s'\n"
@@ -5232,13 +5264,13 @@ msgstr "nu pot deschide date semnate `%s'\n"
 
 #, c-format
 msgid "anonymous recipient; trying secret key %s ...\n"
-msgstr "destinator anonim; încerc cheia secretã %s ...\n"
+msgstr "destinator anonim; încerc cheia secretă %s ...\n"
 
 msgid "okay, we are the anonymous recipient.\n"
 msgstr "OK, noi suntem destinatarul anonim.\n"
 
 msgid "old encoding of the DEK is not supported\n"
-msgstr "vechea encodare a lui DEK nu este suportatã\n"
+msgstr "vechea encodare a lui DEK nu este suportată\n"
 
 #, c-format
 msgid "cipher algorithm %d%s is unknown or disabled\n"
@@ -5247,22 +5279,22 @@ msgstr "algoritm cifrare %d%s este necunoscut sau deactivat\n"
 #, c-format
 msgid "WARNING: cipher algorithm %s not found in recipient preferences\n"
 msgstr ""
-"AVERTISMENT: algoritm cifrare %s nu a fost gãsit în preferinþele "
+"AVERTISMENT: algoritm cifrare %s nu a fost găsit în preferinţele "
 "destinatarului\n"
 
 #, fuzzy, c-format
 #| msgid "NOTE: secret key %s expired at %s\n"
 msgid "Note: secret key %s expired at %s\n"
-msgstr "NOTÃ: cheia secretã %s a expirat la %s\n"
+msgstr "NOTĂ: cheia secretă %s a expirat la %s\n"
 
 #, fuzzy
 #| msgid "NOTE: key has been revoked"
 msgid "Note: key has been revoked"
-msgstr "NOTÃ: cheia a fost revocatã"
+msgstr "NOTĂ: cheia a fost revocată"
 
 #, c-format
 msgid "build_packet failed: %s\n"
-msgstr "build_packet a eºuat: %s\n"
+msgstr "build_packet a eşuat: %s\n"
 
 #, c-format
 msgid "key %s has no user IDs\n"
@@ -5272,34 +5304,34 @@ msgid "To be revoked by:\n"
 msgstr "Pentru a fi revocat de:\n"
 
 msgid "(This is a sensitive revocation key)\n"
-msgstr "(Aceasta este o cheie de revocare senzitivã)\n"
+msgstr "(Aceasta este o cheie de revocare senzitivă)\n"
 
 #, fuzzy
 #| msgid "Secret key is available.\n"
 msgid "Secret key is not available.\n"
-msgstr "Cheia secretã este disponibilã.\n"
+msgstr "Cheia secretă este disponibilă.\n"
 
 msgid "Create a designated revocation certificate for this key? (y/N) "
-msgstr "Creaþi un certificat de revocare desemnat pentru aceastã cheie? (d/N) "
+msgstr "Creaţi un certificat de revocare desemnat pentru această cheie? (d/N) "
 
 msgid "ASCII armored output forced.\n"
-msgstr "Ieºire în armurã ASCII forþatã.\n"
+msgstr "Ieşire în armură ASCII forţată.\n"
 
 #, c-format
 msgid "make_keysig_packet failed: %s\n"
-msgstr "make_keysig_packet a eºuat: %s\n"
+msgstr "make_keysig_packet a eşuat: %s\n"
 
 msgid "Revocation certificate created.\n"
 msgstr "Certificat de revocare creat.\n"
 
 #, c-format
 msgid "no revocation keys found for \"%s\"\n"
-msgstr "nici o cheie de revocare gãsitã pentru \"%s\"\n"
+msgstr "nici o cheie de revocare găsită pentru \"%s\"\n"
 
 #, fuzzy
 #| msgid "Create a revocation certificate for this key? (y/N) "
 msgid "This is a revocation certificate for the OpenPGP key:"
-msgstr "Creaþi un certificat de revocare pentru aceastã cheie? (d/N) "
+msgstr "Creaţi un certificat de revocare pentru această cheie? (d/N) "
 
 msgid ""
 "A revocation certificate is a kind of \"kill switch\" to publicly\n"
@@ -5329,7 +5361,7 @@ msgstr "Certificat de revocare creat.\n"
 #, fuzzy, c-format
 #| msgid "secret key \"%s\" not found: %s\n"
 msgid "secret key \"%s\" not found\n"
-msgstr "cheia secretã \"%s\" nu a fost gãsitã: %s\n"
+msgstr "cheia secretă \"%s\" nu a fost găsită: %s\n"
 
 #. TRANSLATORS: The %s prints a key specification which
 #. for example has been given at the command line.  Several lines
@@ -5344,7 +5376,7 @@ msgid "error searching the keyring: %s\n"
 msgstr "eroare la crearea inelului de chei `%s': %s\n"
 
 msgid "Create a revocation certificate for this key? (y/N) "
-msgstr "Creaþi un certificat de revocare pentru aceastã cheie? (d/N) "
+msgstr "Creaţi un certificat de revocare pentru această cheie? (d/N) "
 
 msgid ""
 "Revocation certificate created.\n"
@@ -5357,41 +5389,41 @@ msgid ""
 msgstr ""
 "Certificat de revocare creat.\n"
 "\n"
-"Vã rugãm mutaþi-l pe un medium pe care îl puteþi ascunde; dacã cineva pune\n"
-"mâna pe acest certificat l-ar putea folosi sã vã facã cheia inutilizabilã.\n"
-"Este indicat sã tipãriþi acest certificat ºi sã-l pãstraþi undeva sigur, în\n"
-"caz cã mediumul este deteriorat.  Dar fiþi atent: sistemul de tipãrire al\n"
-"maºinii d-voastrã ar putea pãstra datele ºi sã le facã accesibile altora!\n"
+"Vă rugăm mutaţi-l pe un medium pe care îl puteţi ascunde; dacă cineva pune\n"
+"mâna pe acest certificat l-ar putea folosi să vă facă cheia inutilizabilă.\n"
+"Este indicat să tipăriţi acest certificat şi să-l păstraţi undeva sigur, în\n"
+"caz că mediumul este deteriorat.  Dar fiţi atent: sistemul de tipărire al\n"
+"maşinii d-voastră ar putea păstra datele şi să le facă accesibile altora!\n"
 
 msgid "Please select the reason for the revocation:\n"
-msgstr "Vã rugãm selectaþi motivul pentru revocare:\n"
+msgstr "Vă rugăm selectaţi motivul pentru revocare:\n"
 
 msgid "Cancel"
-msgstr "Renunþã"
+msgstr "Renunţă"
 
 #, c-format
 msgid "(Probably you want to select %d here)\n"
-msgstr "(Probabil doriþi sã selectaþi %d aici)\n"
+msgstr "(Probabil doriţi să selectaţi %d aici)\n"
 
 msgid "Enter an optional description; end it with an empty line:\n"
-msgstr "Introduceþi o descriere opþionalã; terminaþi cu o linie goalã:\n"
+msgstr "Introduceţi o descriere opţională; terminaţi cu o linie goală:\n"
 
 #, c-format
 msgid "Reason for revocation: %s\n"
 msgstr "Motiv pentru revocare: %s\n"
 
 msgid "(No description given)\n"
-msgstr "(Nici o descriere datã)\n"
+msgstr "(Nici o descriere dată)\n"
 
 msgid "Is this okay? (y/N) "
 msgstr "Este aceasta OK? (d/N) "
 
 msgid "weak key created - retrying\n"
-msgstr "cheie slabã creatã - reîncerc\n"
+msgstr "cheie slabă creată - reîncerc\n"
 
 #, c-format
 msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
-msgstr "nu pot evita cheie slabã pentru cifru simetric; am încercat %d ori!\n"
+msgstr "nu pot evita cheie slabă pentru cifru simetric; am încercat %d ori!\n"
 
 #, c-format
 msgid "%s key %s uses an unsafe (%zu bit) hash\n"
@@ -5402,37 +5434,37 @@ msgid "%s key %s requires a %zu bit or larger hash (hash is %s)\n"
 msgstr ""
 
 msgid "WARNING: signature digest conflict in message\n"
-msgstr "AVERTISMENT: conflict pentru rezumat semnãturã în mesaj\n"
+msgstr "AVERTISMENT: conflict pentru rezumat semnătură în mesaj\n"
 
 #, c-format
 msgid "WARNING: signing subkey %s is not cross-certified\n"
 msgstr ""
-"AVERTISMENT: subcheia de semnare %s nu este certificatã reciproc (cross-"
+"AVERTISMENT: subcheia de semnare %s nu este certificată reciproc (cross-"
 "certified)\n"
 
 #, fuzzy, c-format
 msgid "please see %s for more information\n"
-msgstr " i = aratã-mi mai multe informaþii\n"
+msgstr " i = arată-mi mai multe informaţii\n"
 
 #, c-format
 msgid "WARNING: signing subkey %s has an invalid cross-certification\n"
 msgstr ""
-"AVERTISMENT: subcheia de semnare %s are o certificare-reciprocã invalidã "
+"AVERTISMENT: subcheia de semnare %s are o certificare-reciprocă invalidă "
 "(invalid cross-certification)\n"
 
 #, fuzzy, c-format
 #| msgid "public key %s is %lu second newer than the signature\n"
 msgid "public key %s is %lu second newer than the signature\n"
 msgid_plural "public key %s is %lu seconds newer than the signature\n"
-msgstr[0] "cheie publicã %s este mai nouã cu %lu secundã decât semnãtura\n"
-msgstr[1] "cheie publicã %s este mai nouã cu %lu secundã decât semnãtura\n"
+msgstr[0] "cheie publică %s este mai nouă cu %lu secundă decât semnătura\n"
+msgstr[1] "cheie publică %s este mai nouă cu %lu secundă decât semnătura\n"
 
 #, fuzzy, c-format
 #| msgid "public key %s is %lu second newer than the signature\n"
 msgid "public key %s is %lu day newer than the signature\n"
 msgid_plural "public key %s is %lu days newer than the signature\n"
-msgstr[0] "cheie publicã %s este mai nouã cu %lu secundã decât semnãtura\n"
-msgstr[1] "cheie publicã %s este mai nouã cu %lu secundã decât semnãtura\n"
+msgstr[0] "cheie publică %s este mai nouă cu %lu secundă decât semnătura\n"
+msgstr[1] "cheie publică %s este mai nouă cu %lu secundă decât semnătura\n"
 
 #, fuzzy, c-format
 #| msgid ""
@@ -5442,10 +5474,10 @@ msgid ""
 msgid_plural ""
 "key %s was created %lu seconds in the future (time warp or clock problem)\n"
 msgstr[0] ""
-"cheia %s a fost creatã %lu secundã în viitor (warp în timp sau probleme cu "
+"cheia %s a fost creată %lu secundă în viitor (warp în timp sau probleme cu "
 "ceasul)\n"
 msgstr[1] ""
-"cheia %s a fost creatã %lu secundã în viitor (warp în timp sau probleme cu "
+"cheia %s a fost creată %lu secundă în viitor (warp în timp sau probleme cu "
 "ceasul)\n"
 
 #, fuzzy, c-format
@@ -5455,34 +5487,34 @@ msgid "key %s was created %lu day in the future (time warp or clock problem)\n"
 msgid_plural ""
 "key %s was created %lu days in the future (time warp or clock problem)\n"
 msgstr[0] ""
-"cheia %s a fost creatã %lu secundã în viitor (warp în timp sau probleme cu "
+"cheia %s a fost creată %lu secundă în viitor (warp în timp sau probleme cu "
 "ceasul)\n"
 msgstr[1] ""
-"cheia %s a fost creatã %lu secundã în viitor (warp în timp sau probleme cu "
+"cheia %s a fost creată %lu secundă în viitor (warp în timp sau probleme cu "
 "ceasul)\n"
 
 #, fuzzy, c-format
 #| msgid "NOTE: signature key %s expired %s\n"
 msgid "Note: signature key %s expired %s\n"
-msgstr "NOTÃ: cheia semnãturii %s a expirat %s\n"
+msgstr "NOTĂ: cheia semnăturii %s a expirat %s\n"
 
 #, fuzzy, c-format
 msgid "Note: signature key %s has been revoked\n"
-msgstr "NOTÃ: cheia a fost revocatã"
+msgstr "NOTĂ: cheia a fost revocată"
 
 #, c-format
 msgid "assuming bad signature from key %s due to an unknown critical bit\n"
 msgstr ""
-"presupun semnãturã incorectã din cheia %s datoritã unui bit critic "
+"presupun semnătură incorectă din cheia %s datorită unui bit critic "
 "necunoscut\n"
 
 #, c-format
 msgid "key %s: no subkey for subkey revocation signature\n"
-msgstr "cheia %s: nici o subcheie pentru semnãtura de revocare a subcheii\n"
+msgstr "cheia %s: nici o subcheie pentru semnătura de revocare a subcheii\n"
 
 #, c-format
 msgid "key %s: no subkey for subkey binding signature\n"
-msgstr "cheia %s: nici o subcheie pentru semnãtura legatã de subcheie\n"
+msgstr "cheia %s: nici o subcheie pentru semnătura legată de subcheie\n"
 
 #, c-format
 msgid "WARNING: unable to %%-expand notation (too large).  Using unexpanded.\n"
@@ -5493,7 +5525,7 @@ msgstr ""
 msgid ""
 "WARNING: unable to %%-expand policy URL (too large).  Using unexpanded.\n"
 msgstr ""
-"AVERTISMENT: nu pot %%-expanda URL-ul de politici (prea mare).  Îl folosesc "
+"AVERTISMENT: nu pot %%-expanda URL-ul de politici (prea mare).  Îl folosesc "
 "neexpandat.\n"
 
 #, c-format
@@ -5501,18 +5533,18 @@ msgid ""
 "WARNING: unable to %%-expand preferred keyserver URL (too large).  Using "
 "unexpanded.\n"
 msgstr ""
-"AVERTISMENT: nu pot %%-expanda URL-ul serverului de chei (prea mare).  Îl "
+"AVERTISMENT: nu pot %%-expanda URL-ul serverului de chei (prea mare).  Îl "
 "folosesc neexpandat.\n"
 
 #, c-format
 msgid "%s/%s signature from: \"%s\"\n"
-msgstr "%s/%s semnãturã de la: \"%s\"\n"
+msgstr "%s/%s semnătură de la: \"%s\"\n"
 
 #, c-format
 msgid ""
 "WARNING: forcing digest algorithm %s (%d) violates recipient preferences\n"
 msgstr ""
-"AVERTISMENT: forþarea algoritmului rezumat %s (%d) violeazã preferinþele "
+"AVERTISMENT: forţarea algoritmului rezumat %s (%d) violează preferinţele "
 "destinatarului\n"
 
 msgid "signing:"
@@ -5520,90 +5552,90 @@ msgstr "semnare:"
 
 #, c-format
 msgid "%s encryption will be used\n"
-msgstr "va fi folositã cifrarea %s\n"
+msgstr "va fi folosită cifrarea %s\n"
 
 msgid "key is not flagged as insecure - can't use it with the faked RNG!\n"
-msgstr "cheia nu este marcatã ca sigurã - nu o pot folosi cu GNA falsificat!\n"
+msgstr "cheia nu este marcată ca sigură - nu o pot folosi cu GNA falsificat!\n"
 
 #, c-format
 msgid "skipped \"%s\": duplicated\n"
-msgstr "sãritã \"%s\": duplicatã\n"
+msgstr "sărită \"%s\": duplicată\n"
 
 msgid "skipped: secret key already present\n"
-msgstr "sãritã: cheia secretã deja prezentã\n"
+msgstr "sărită: cheia secretă deja prezentă\n"
 
 msgid "this is a PGP generated Elgamal key which is not secure for signatures!"
 msgstr ""
-"aceasta este o cheie ElGamal generatã de PGP care nu e sigurã pentru "
-"semnãturi!"
+"aceasta este o cheie ElGamal generată de PGP care nu e sigură pentru "
+"semnături!"
 
 #, c-format
 msgid "trust record %lu, type %d: write failed: %s\n"
-msgstr "înregistrare încredere %lu, tip %d: scrierea a eºuat: %s\n"
+msgstr "înregistrare încredere %lu, tip %d: scrierea a eşuat: %s\n"
 
 #, c-format
 msgid ""
 "# List of assigned trustvalues, created %s\n"
 "# (Use \"gpg --import-ownertrust\" to restore them)\n"
 msgstr ""
-"# Listã cu valori de încredere atribuite, creatã %s\n"
-"# (Folosiþi \"gpg --import-ownertrust\" pentru a le reface)\n"
+"# Listă cu valori de încredere atribuite, creată %s\n"
+"# (Folosiţi \"gpg --import-ownertrust\" pentru a le reface)\n"
 
 #, fuzzy, c-format
 #| msgid "error in `%s': %s\n"
 msgid "error in '%s': %s\n"
-msgstr "eroare în `%s': %s\n"
+msgstr "eroare în `%s': %s\n"
 
 msgid "line too long"
-msgstr "linie prea lungã"
+msgstr "linie prea lungă"
 
 msgid "colon missing"
-msgstr "caracter : lipsã"
+msgstr "caracter : lipsă"
 
 msgid "invalid fingerprint"
-msgstr "amprentã invalidã"
+msgstr "amprentă invalidă"
 
 msgid "ownertrust value missing"
-msgstr "lipseºte valorea încrederii în proprietari (ownertrust)"
+msgstr "lipseşte valorea încrederii în proprietari (ownertrust)"
 
 #, fuzzy, c-format
 #| msgid "error finding trust record in `%s': %s\n"
 msgid "error finding trust record in '%s': %s\n"
-msgstr "eroare gãsire înregistrare încredere în `%s': %s\n"
+msgstr "eroare găsire înregistrare încredere în `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "read error in `%s': %s\n"
 msgid "read error in '%s': %s\n"
-msgstr "eroare citire în `%s': %s\n"
+msgstr "eroare citire în `%s': %s\n"
 
 #, c-format
 msgid "trustdb: sync failed: %s\n"
-msgstr "trustdb: sincronizarea a eºuat: %s\n"
+msgstr "trustdb: sincronizarea a eşuat: %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't create lock for `%s'\n"
 msgid "can't create lock for '%s'\n"
-msgstr "nu pot crea încuietoare (lock) pentru `%s'\n"
+msgstr "nu pot crea încuietoare (lock) pentru `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "can't lock `%s'\n"
 msgid "can't lock '%s'\n"
-msgstr "nu pot încuia (lock) `%s'\n"
+msgstr "nu pot încuia (lock) `%s'\n"
 
 #, c-format
 msgid "trustdb rec %lu: lseek failed: %s\n"
-msgstr "trustdb rec %lu: lseek a eºuat: %s\n"
+msgstr "trustdb rec %lu: lseek a eşuat: %s\n"
 
 #, c-format
 msgid "trustdb rec %lu: write failed (n=%d): %s\n"
-msgstr "trustdb rec %lu: scrierea a eºuat (n=%d): %s\n"
+msgstr "trustdb rec %lu: scrierea a eşuat (n=%d): %s\n"
 
 msgid "trustdb transaction too large\n"
-msgstr "tranzacþia trustdb prea mare\n"
+msgstr "tranzacţia trustdb prea mare\n"
 
 #, c-format
 msgid "%s: directory does not exist!\n"
-msgstr "%s: directorul nu existã!\n"
+msgstr "%s: directorul nu există!\n"
 
 #, fuzzy, c-format
 #| msgid "can't access `%s': %s\n"
@@ -5612,7 +5644,7 @@ msgstr "nu pot accesa `%s': %s\n"
 
 #, c-format
 msgid "%s: failed to create version record: %s"
-msgstr "%s: am eºuat sã creez înregistrare versiune: %s"
+msgstr "%s: am eşuat să creez înregistrare versiune: %s"
 
 #, c-format
 msgid "%s: invalid trustdb created\n"
@@ -5625,7 +5657,7 @@ msgstr "%s: a fost creat trustdb\n"
 #, fuzzy
 #| msgid "NOTE: trustdb not writable\n"
 msgid "Note: trustdb not writable\n"
-msgstr "NOTÃ: nu poate fi scris în trustdb\n"
+msgstr "NOTĂ: nu poate fi scris în trustdb\n"
 
 #, c-format
 msgid "%s: invalid trustdb\n"
@@ -5633,55 +5665,55 @@ msgstr "%s: trustdb invalid\n"
 
 #, c-format
 msgid "%s: failed to create hashtable: %s\n"
-msgstr "%s: am eºuat sã creez hashtable: %s\n"
+msgstr "%s: am eşuat să creez hashtable: %s\n"
 
 #, c-format
 msgid "%s: error updating version record: %s\n"
-msgstr "%s: eroare actualizare înregistrare versiune: %s\n"
+msgstr "%s: eroare actualizare înregistrare versiune: %s\n"
 
 #, c-format
 msgid "%s: error reading version record: %s\n"
-msgstr "%s: eroare citire înregistrare versiune: %s\n"
+msgstr "%s: eroare citire înregistrare versiune: %s\n"
 
 #, c-format
 msgid "%s: error writing version record: %s\n"
-msgstr "%s: eroare scriere înregistrare versiune: %s\n"
+msgstr "%s: eroare scriere înregistrare versiune: %s\n"
 
 #, c-format
 msgid "trustdb: lseek failed: %s\n"
-msgstr "trustdb: lseek a eºuat: %s\n"
+msgstr "trustdb: lseek a eşuat: %s\n"
 
 #, c-format
 msgid "trustdb: read failed (n=%d): %s\n"
-msgstr "trustdb: citirea a eºuat (n=%d): %s\n"
+msgstr "trustdb: citirea a eşuat (n=%d): %s\n"
 
 #, c-format
 msgid "%s: not a trustdb file\n"
-msgstr "%s: nu e un fiºier trustdb\n"
+msgstr "%s: nu e un fişier trustdb\n"
 
 #, c-format
 msgid "%s: version record with recnum %lu\n"
-msgstr "%s: înregistrare versiune cu recnum %lu\n"
+msgstr "%s: înregistrare versiune cu recnum %lu\n"
 
 #, c-format
 msgid "%s: invalid file version %d\n"
-msgstr "%s: versiune fiºier invalidã %d\n"
+msgstr "%s: versiune fişier invalidă %d\n"
 
 #, c-format
 msgid "%s: error reading free record: %s\n"
-msgstr "%s: eroare citire înregistrare liberã: %s\n"
+msgstr "%s: eroare citire înregistrare liberă: %s\n"
 
 #, c-format
 msgid "%s: error writing dir record: %s\n"
-msgstr "%s: eroare scriere înregistrare dir: %s\n"
+msgstr "%s: eroare scriere înregistrare dir: %s\n"
 
 #, c-format
 msgid "%s: failed to zero a record: %s\n"
-msgstr "%s: eroare setere la zero a înregistrãrii: %s\n"
+msgstr "%s: eroare setere la zero a înregistrării: %s\n"
 
 #, c-format
 msgid "%s: failed to append a record: %s\n"
-msgstr "%s: adãugarea unei înregistrãri a eºuat: %s\n"
+msgstr "%s: adăugarea unei înregistrări a eşuat: %s\n"
 
 #, fuzzy
 msgid "Error: The trustdb is corrupted.\n"
@@ -5689,7 +5721,7 @@ msgstr "%s: a fost creat trustdb\n"
 
 #, c-format
 msgid "can't handle text lines longer than %d characters\n"
-msgstr "nu pot mânui linii de text mai lungi de %d caractere\n"
+msgstr "nu pot mânui linii de text mai lungi de %d caractere\n"
 
 #, c-format
 msgid "input line longer than %d characters\n"
@@ -5725,39 +5757,43 @@ msgstr "eroare la scrierea inelului de chei secret `%s': %s\n"
 #, fuzzy, c-format
 #| msgid "%s: error writing dir record: %s\n"
 msgid "error initializing TOFU database: %s\n"
-msgstr "%s: eroare scriere înregistrare dir: %s\n"
+msgstr "%s: eroare scriere înregistrare dir: %s\n"
 
 #, fuzzy, c-format
 msgid "error opening TOFU database '%s': %s\n"
-msgstr "eroare în `%s': %s\n"
+msgstr "eroare în `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error updating TOFU database: %s\n"
 msgstr "eroare trimitere la `%s': %s\n"
 
 #, c-format
-msgid "The binding %s is NOT known."
+msgid ""
+"This is the first time the email address \"%s\" is being used with key %s."
 msgstr ""
 
 #, c-format
-msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr ""
+
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
 
 #, fuzzy, c-format
 #| msgid "error getting new PIN: %s\n"
 msgid "error gathering other user IDs: %s\n"
-msgstr "eroare la obþinere noului PIN: %s\n"
+msgstr "eroare la obţinere noului PIN: %s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr ""
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "enumeră chei şi ID-uri utilizator"
 
 #, fuzzy, c-format
 #| msgid "Policy: "
@@ -5766,7 +5802,7 @@ msgstr "Politica: "
 
 #, fuzzy, c-format
 msgid "error gathering signature stats: %s\n"
-msgstr "eroare la obþinere noului PIN: %s\n"
+msgstr "eroare la obţinere noului PIN: %s\n"
 
 #, c-format
 msgid "The email address \"%s\" is associated with %d key:\n"
@@ -5778,41 +5814,47 @@ msgstr[1] ""
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr ""
 
+msgid ", "
+msgstr ""
+
 #, fuzzy
 #| msgid "list keys"
 msgid "this key"
-msgstr "enumerã chei"
+msgstr "enumeră chei"
+
+#, fuzzy, c-format
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
+msgstr[0] "|algo [fişiere]|afişează rezumate mesaje"
+msgstr[1] "|algo [fişiere]|afişează rezumate mesaje"
 
 #, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
 msgstr[0] ""
 msgstr[1] ""
 
-#, fuzzy, c-format
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
-msgstr[0] "|algo [fiºiere]|afiºeazã rezumate mesaje"
-msgstr[1] "|algo [fiºiere]|afiºeazã rezumate mesaje"
-
 #, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+msgid " over the past year."
+msgid_plural " over the past %d years."
 msgstr[0] ""
 msgstr[1] ""
 
+msgid " in the past."
+msgstr ""
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5828,13 +5870,23 @@ msgstr ""
 msgid "(G)ood, (A)ccept once, (U)nknown, (R)eject once, (B)ad? "
 msgstr ""
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "resetting keydb: %s\n"
+msgstr "eroare la scrierea inelului de chei `%s': %s\n"
+
 #, fuzzy, c-format
 msgid "error setting TOFU binding's trust level to %s\n"
 msgstr "eroare la citire `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error changing TOFU policy: %s\n"
-msgstr "eroare la crearea frazei-parolã: %s\n"
+msgstr "eroare la crearea frazei-parolă: %s\n"
 
 #. TRANSLATORS: The tilde ('~') is used here to indicate a
 #. * non-breakable space
@@ -5875,50 +5927,56 @@ msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
+msgid "%s: "
 msgstr ""
 
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
-msgstr ""
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "Am şters %d semnături.\n"
 
 #, fuzzy, c-format
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "|algo [fiºiere]|afiºeazã rezumate mesaje"
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
+msgstr[0] "|algo [fişiere]|afişează rezumate mesaje"
+msgstr[1] "|algo [fişiere]|afişează rezumate mesaje"
+
+#, fuzzy, c-format
+#| msgid "encrypted with %lu passphrases\n"
+msgid ", and encrypted %ld messages"
+msgstr "cifrată cu %lu fraze-parolă\n"
+
+#, fuzzy, c-format
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] "|algo [fişiere]|afişează rezumate mesaje"
+msgstr[1] "|algo [fişiere]|afişează rezumate mesaje"
 
-#, c-format
 msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
-msgstr[0] ""
-msgstr[1] ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
+msgstr ""
 
-#, c-format
-msgid "The most recent message was verified %s ago."
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
 msgstr ""
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
 msgstr ""
 
 #, c-format
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -5928,34 +5986,43 @@ msgstr[1] ""
 msgid "error opening TOFU database: %s\n"
 msgstr "eroare trimitere la `%s': %s\n"
 
+#, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring `%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "eroare la scrierea inelului de chei public `%s': %s\n"
+
 #, fuzzy, c-format
 #| msgid "`%s' is not a valid long keyID\n"
 msgid "'%s' is not a valid long keyID\n"
-msgstr "`%s' nu este un ID-cheie de lungime validã\n"
+msgstr "`%s' nu este un ID-cheie de lungime validă\n"
 
 #, c-format
 msgid "key %s: accepted as trusted key\n"
-msgstr "cheia %s: acceptatã ca cheie de încredere\n"
+msgstr "cheia %s: acceptată ca cheie de încredere\n"
 
 #, c-format
 msgid "key %s occurs more than once in the trustdb\n"
-msgstr "cheia %s apare de mai multe ori în trustdb\n"
+msgstr "cheia %s apare de mai multe ori în trustdb\n"
 
 #, c-format
 msgid "key %s: no public key for trusted key - skipped\n"
-msgstr "cheia %s: nici o cheie publicã pentru cheia de încredere - sãritã\n"
+msgstr "cheia %s: nici o cheie publică pentru cheia de încredere - sărită\n"
 
 #, c-format
 msgid "key %s marked as ultimately trusted\n"
-msgstr "cheia %s marcatã ca având încredere supremã\n"
+msgstr "cheia %s marcată ca având încredere supremă\n"
 
 #, c-format
 msgid "trust record %lu, req type %d: read failed: %s\n"
-msgstr "înregistrare încredere %lu, tip req %d: citirea a eºuat: %s\n"
+msgstr "înregistrare încredere %lu, tip req %d: citirea a eşuat: %s\n"
 
 #, c-format
 msgid "trust record %lu is not of requested type %d\n"
-msgstr "înregistrare încredere %lu nu este de tipul cerut %d\n"
+msgstr "înregistrare încredere %lu nu este de tipul cerut %d\n"
 
 msgid "You may try to re-create the trustdb using the commands:\n"
 msgstr ""
@@ -5966,35 +6033,35 @@ msgstr ""
 #, c-format
 msgid "unable to use unknown trust model (%d) - assuming %s trust model\n"
 msgstr ""
-"nu pot folosi model de încredere (%d) - presupun model de încredere %s\n"
+"nu pot folosi model de încredere (%d) - presupun model de încredere %s\n"
 
 #, c-format
 msgid "using %s trust model\n"
-msgstr "folosesc model de încredere %s\n"
+msgstr "folosesc model de încredere %s\n"
 
 msgid "no need for a trustdb check\n"
 msgstr "nu e nevoie de o verificare trustdb\n"
 
 #, c-format
 msgid "next trustdb check due at %s\n"
-msgstr "urmãtoarea verificare trustdb programatã pe %s\n"
+msgstr "următoarea verificare trustdb programată pe %s\n"
 
 #, fuzzy, c-format
 #| msgid "no need for a trustdb check with `%s' trust model\n"
 msgid "no need for a trustdb check with '%s' trust model\n"
-msgstr "nu e nevoie de o verificare trustdb cu modelul de încredere `%s'\n"
+msgstr "nu e nevoie de o verificare trustdb cu modelul de încredere `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "no need for a trustdb update with `%s' trust model\n"
 msgid "no need for a trustdb update with '%s' trust model\n"
-msgstr "nu e nevoie de o actualizare trustdb cu modelul de încredere `%s'\n"
+msgstr "nu e nevoie de o actualizare trustdb cu modelul de încredere `%s'\n"
 
 #, c-format
 msgid "public key %s not found: %s\n"
-msgstr "cheia publicã %s nu a fost gãsitã: %s\n"
+msgstr "cheia publică %s nu a fost găsită: %s\n"
 
 msgid "please do a --check-trustdb\n"
-msgstr "vã rugãm faceþi un --check-trustdb\n"
+msgstr "vă rugăm faceţi un --check-trustdb\n"
 
 msgid "checking the trustdb\n"
 msgstr "verific trustdb\n"
@@ -6003,48 +6070,48 @@ msgstr "verific trustdb\n"
 #| msgid "%lu keys processed so far\n"
 msgid "%d key processed"
 msgid_plural "%d keys processed"
-msgstr[0] "%lu chei procesate pânã acum\n"
-msgstr[1] "%lu chei procesate pânã acum\n"
+msgstr[0] "%lu chei procesate până acum\n"
+msgstr[1] "%lu chei procesate până acum\n"
 
 #, fuzzy, c-format
 #| msgid "%d keys processed (%d validity counts cleared)\n"
 msgid " (%d validity count cleared)\n"
 msgid_plural " (%d validity counts cleared)\n"
-msgstr[0] "%d chei procesate (%d numãrãtori valide anulate)\n"
-msgstr[1] "%d chei procesate (%d numãrãtori valide anulate)\n"
+msgstr[0] "%d chei procesate (%d numărători valide anulate)\n"
+msgstr[1] "%d chei procesate (%d numărători valide anulate)\n"
 
 msgid "no ultimately trusted keys found\n"
-msgstr "nu am gãsit nici o cheie cu încredere supremã\n"
+msgstr "nu am găsit nici o cheie cu încredere supremă\n"
 
 #, c-format
 msgid "public key of ultimately trusted key %s not found\n"
-msgstr "cheia publicã a cheii cu încredere supremã %s nu a fost gãsitã\n"
+msgstr "cheia publică a cheii cu încredere supremă %s nu a fost găsită\n"
 
 #, c-format
 msgid ""
 "depth: %d  valid: %3d  signed: %3d  trust: %d-, %dq, %dn, %dm, %df, %du\n"
 msgstr ""
-"adânc: %d  valid: %3d  semnat: %3d  încredere: %d-, %dq, %dn, %dm, %df, %du\n"
+"adânc: %d  valid: %3d  semnat: %3d  încredere: %d-, %dq, %dn, %dm, %df, %du\n"
 
 #, c-format
 msgid "unable to update trustdb version record: write failed: %s\n"
 msgstr ""
-"nu pot actualiza înregistrare versiunii trustdb: scrierea a eºuat: %s\n"
+"nu pot actualiza înregistrare versiunii trustdb: scrierea a eşuat: %s\n"
 
 msgid "undefined"
-msgstr "nedefinitã"
+msgstr "nedefinită"
 
 msgid "never"
-msgstr "niciodatã"
+msgstr "niciodată"
 
 msgid "marginal"
 msgstr "marginal"
 
 msgid "full"
-msgstr "deplinã"
+msgstr "deplină"
 
 msgid "ultimate"
-msgstr "supremã"
+msgstr "supremă"
 
 #. TRANSLATORS: these strings are similar to those in
 #. trust_value_to_string(), but are a fixed length.  This is needed to
@@ -6057,16 +6124,16 @@ msgstr "suprem
 #, fuzzy
 #| msgid "10 translator see trustdb.c:uid_trust_string_fixed"
 msgid "10 translator see trust.c:uid_trust_string_fixed"
-msgstr "10 traducãtor vezi trustdb.c:uid_trust_string_fixed"
+msgstr "10 traducător vezi trustdb.c:uid_trust_string_fixed"
 
 msgid "[ revoked]"
-msgstr "[revocatã]"
+msgstr "[revocată]"
 
 msgid "[ expired]"
-msgstr "[expiratã] "
+msgstr "[expirată] "
 
 msgid "[ unknown]"
-msgstr "[necunoscutã]"
+msgstr "[necunoscută]"
 
 msgid "[  undef ]"
 msgstr "[  nedef ]"
@@ -6074,29 +6141,29 @@ msgstr "[  nedef ]"
 #, fuzzy
 #| msgid "never"
 msgid "[  never ]"
-msgstr "niciodatã"
+msgstr "niciodată"
 
 msgid "[marginal]"
 msgstr "[marginal]"
 
 msgid "[  full  ]"
-msgstr "[ deplinã]"
+msgstr "[ deplină]"
 
 msgid "[ultimate]"
-msgstr "[ supremã]"
+msgstr "[ supremă]"
 
 msgid ""
 "the signature could not be verified.\n"
 "Please remember that the signature file (.sig or .asc)\n"
 "should be the first file given on the command line.\n"
 msgstr ""
-"semnãtura nu a putut fi verificatã.\n"
-"Vã rugãm amintiþi-vã cã fiºierul de semnãturã (.sig sau .asc)\n"
-"ar trebui sã fie primul dat în linia de comandã.\n"
+"semnătura nu a putut fi verificată.\n"
+"Vă rugăm amintiţi-vă că fişierul de semnătură (.sig sau .asc)\n"
+"ar trebui să fie primul dat în linia de comandă.\n"
 
 #, c-format
 msgid "input line %u too long or missing LF\n"
-msgstr "linia de intrare %u prea lungã sau lipseºte LF\n"
+msgstr "linia de intrare %u prea lungă sau lipseşte LF\n"
 
 #, fuzzy, c-format
 msgid "can't open fd %d: %s\n"
@@ -6110,21 +6177,21 @@ msgstr ""
 
 #, fuzzy
 msgid "Usage: kbxutil [options] [files] (-h for help)"
-msgstr "Folosire: gpg [opþiuni] [fiºiere] (-h pentru ajutor)"
+msgstr "Folosire: gpg [opţiuni] [fişiere] (-h pentru ajutor)"
 
 #, fuzzy
 msgid ""
 "Syntax: kbxutil [options] [files]\n"
 "List, export, import Keybox data\n"
-msgstr "Folosire: gpg [opþiuni] [fiºiere] (-h pentru ajutor)"
+msgstr "Folosire: gpg [opţiuni] [fişiere] (-h pentru ajutor)"
 
 #, c-format
 msgid "RSA modulus missing or not of size %d bits\n"
-msgstr "modulus-ul RSA lipseºte sau nu are %d biþi\n"
+msgstr "modulus-ul RSA lipseşte sau nu are %d biţi\n"
 
 #, fuzzy, c-format
 msgid "RSA public exponent missing or larger than %d bits\n"
-msgstr "exponentul public RSA lipseºte sau are mai mult de %d biþi\n"
+msgstr "exponentul public RSA lipseşte sau are mai mult de %d biţi\n"
 
 #, c-format
 msgid "PIN callback returned error: %s\n"
@@ -6135,19 +6202,19 @@ msgstr ""
 
 #, fuzzy
 msgid "|N|Please enter a new PIN for the standard keys."
-msgstr "||Vã rugãm introduceþi PIN%%0A[semnãturi fãcute: %lu]"
+msgstr "||Vă rugăm introduceţi PIN%%0A[semnături făcute: %lu]"
 
 #, fuzzy
 msgid "||Please enter the PIN for the standard keys."
-msgstr "||Vã rugãm introduceþi PIN%%0A[semnãturi fãcute: %lu]"
+msgstr "||Vă rugăm introduceţi PIN%%0A[semnături făcute: %lu]"
 
 #, fuzzy
 msgid "|NP|Please enter a new PIN Unblocking Code (PUK) for the standard keys."
-msgstr "||Vã rugãm introduceþi PIN%%0A[semnãturi fãcute: %lu]"
+msgstr "||Vă rugăm introduceţi PIN%%0A[semnături făcute: %lu]"
 
 #, fuzzy
 msgid "|P|Please enter the PIN Unblocking Code (PUK) for the standard keys."
-msgstr "||Vã rugãm introduceþi PIN%%0A[semnãturi fãcute: %lu]"
+msgstr "||Vă rugăm introduceţi PIN%%0A[semnături făcute: %lu]"
 
 msgid "|N|Please enter a new PIN for the key to create qualified signatures."
 msgstr ""
@@ -6167,33 +6234,33 @@ msgstr ""
 
 #, c-format
 msgid "error getting new PIN: %s\n"
-msgstr "eroare la obþinere noului PIN: %s\n"
+msgstr "eroare la obţinere noului PIN: %s\n"
 
 #, c-format
 msgid "failed to store the fingerprint: %s\n"
-msgstr "am eºuat sã stochez amprenta: %s\n"
+msgstr "am eşuat să stochez amprenta: %s\n"
 
 #, c-format
 msgid "failed to store the creation date: %s\n"
-msgstr "am eºuat sã stochez data creãrii: %s\n"
-
-#, c-format
-msgid "reading public key failed: %s\n"
-msgstr "citirea cheii publice a eºuat: %s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr "rãspunsul nu conþine datele cheii publice\n"
+msgstr "am eşuat să stochez data creării: %s\n"
 
 msgid "response does not contain the RSA modulus\n"
-msgstr "rãspunsul nu conþine modulul RSA\n"
+msgstr "răspunsul nu conţine modulul RSA\n"
 
 msgid "response does not contain the RSA public exponent\n"
-msgstr "rãspunsul nu conþine exponentul public RSA\n"
+msgstr "răspunsul nu conţine exponentul public RSA\n"
 
 #, fuzzy
 #| msgid "response does not contain the RSA public exponent\n"
-msgid "response does not contain the EC public point\n"
-msgstr "rãspunsul nu conþine exponentul public RSA\n"
+msgid "response does not contain the EC public key\n"
+msgstr "răspunsul nu conţine exponentul public RSA\n"
+
+msgid "response does not contain the public key data\n"
+msgstr "răspunsul nu conţine datele cheii publice\n"
+
+#, c-format
+msgid "reading public key failed: %s\n"
+msgstr "citirea cheii publice a eşuat: %s\n"
 
 #, c-format
 msgid "using default PIN as %s\n"
@@ -6205,25 +6272,25 @@ msgstr ""
 
 #, c-format
 msgid "||Please enter the PIN%%0A[sigs done: %lu]"
-msgstr "||Vã rugãm introduceþi PIN%%0A[semnãturi fãcute: %lu]"
+msgstr "||Vă rugăm introduceţi PIN%%0A[semnături făcute: %lu]"
 
 #, fuzzy
 msgid "||Please enter the PIN"
-msgstr "||Vã rugãm introduceþi PIN%%0A[semnãturi fãcute: %lu]"
+msgstr "||Vă rugăm introduceţi PIN%%0A[semnături făcute: %lu]"
 
 #, c-format
 msgid "PIN for CHV%d is too short; minimum length is %d\n"
-msgstr "PIN-ul pentru CHV%d este prea scurt; lungimea minimã este %d\n"
+msgstr "PIN-ul pentru CHV%d este prea scurt; lungimea minimă este %d\n"
 
 #, c-format
 msgid "verify CHV%d failed: %s\n"
-msgstr "verificarea CHV%d a eºuat: %s\n"
+msgstr "verificarea CHV%d a eşuat: %s\n"
 
 msgid "error retrieving CHV status from card\n"
-msgstr "eroare la recuperarea stãrii CHV de pe card\n"
+msgstr "eroare la recuperarea stării CHV de pe card\n"
 
 msgid "card is permanently locked!\n"
-msgstr "cardul este încuiat permanent!\n"
+msgstr "cardul este încuiat permanent!\n"
 
 #, fuzzy, c-format
 #| msgid "%d Admin PIN attempts remaining before card is permanently locked\n"
@@ -6231,30 +6298,30 @@ msgid "%d Admin PIN attempt remaining before card is permanently locked\n"
 msgid_plural ""
 "%d Admin PIN attempts remaining before card is permanently locked\n"
 msgstr[0] ""
-"%d încercãri PIN Admin rãmase înainte de a încuia cardul permanent\n"
+"%d încercări PIN Admin rămase înainte de a încuia cardul permanent\n"
 msgstr[1] ""
-"%d încercãri PIN Admin rãmase înainte de a încuia cardul permanent\n"
+"%d încercări PIN Admin rămase înainte de a încuia cardul permanent\n"
 
 #. TRANSLATORS: Do not translate the "|A|" prefix but keep it at
 #. the start of the string.  Use %%0A to force a linefeed.
 #, fuzzy, c-format
 msgid "|A|Please enter the Admin PIN%%0A[remaining attempts: %d]"
-msgstr "||Vã rugãm introduceþi PIN%%0A[semnãturi fãcute: %lu]"
+msgstr "||Vă rugăm introduceţi PIN%%0A[semnături făcute: %lu]"
 
 #, fuzzy
 msgid "|A|Please enter the Admin PIN"
-msgstr "||Vã rugãm introduceþi PIN%%0A[semnãturi fãcute: %lu]"
+msgstr "||Vă rugăm introduceţi PIN%%0A[semnături făcute: %lu]"
 
 msgid "access to admin commands is not configured\n"
-msgstr "accesul la comenzile de administrare nu este configuratã\n"
+msgstr "accesul la comenzile de administrare nu este configurată\n"
 
 #, fuzzy
 msgid "||Please enter the Reset Code for the card"
-msgstr "||Vã rugãm introduceþi PIN%%0A[semnãturi fãcute: %lu]"
+msgstr "||Vă rugăm introduceţi PIN%%0A[semnături făcute: %lu]"
 
 #, fuzzy, c-format
 msgid "Reset Code is too short; minimum length is %d\n"
-msgstr "PIN-ul pentru CHV%d este prea scurt; lungimea minimã este %d\n"
+msgstr "PIN-ul pentru CHV%d este prea scurt; lungimea minimă este %d\n"
 
 #. TRANSLATORS: Do not translate the "|*|" prefixes but
 #. keep it at the start of the string.  We need this elsewhere
@@ -6270,41 +6337,41 @@ msgstr "|N|PIN Nou"
 
 #, fuzzy
 msgid "||Please enter the Admin PIN and New Admin PIN"
-msgstr "||Vã rugãm introduceþi PIN%%0A[semnãturi fãcute: %lu]"
+msgstr "||Vă rugăm introduceţi PIN%%0A[semnături făcute: %lu]"
 
 #, fuzzy
 msgid "||Please enter the PIN and New PIN"
-msgstr "||Vã rugãm introduceþi PIN%%0A[semnãturi fãcute: %lu]"
+msgstr "||Vă rugăm introduceţi PIN%%0A[semnături făcute: %lu]"
 
 msgid "error reading application data\n"
-msgstr "eroare la citirea datelor aplicaþiei\n"
+msgstr "eroare la citirea datelor aplicaţiei\n"
 
 msgid "error reading fingerprint DO\n"
 msgstr "eroare la citirea amprentei DO\n"
 
 msgid "key already exists\n"
-msgstr "cheia existã deja\n"
+msgstr "cheia există deja\n"
 
 msgid "existing key will be replaced\n"
-msgstr "cheia existentã va fi înlocuitã\n"
+msgstr "cheia existentă va fi înlocuită\n"
 
 msgid "generating new key\n"
-msgstr "generez o nouã cheie\n"
+msgstr "generez o nouă cheie\n"
 
 #, fuzzy
 msgid "writing new key\n"
-msgstr "generez o nouã cheie\n"
+msgstr "generez o nouă cheie\n"
 
 msgid "creation timestamp missing\n"
-msgstr "timestamp-ul de creare lipseºte\n"
+msgstr "timestamp-ul de creare lipseşte\n"
 
 #, c-format
 msgid "RSA prime %s missing or not of size %d bits\n"
-msgstr "prime-ul RSA %s lipseºte sau nu are %d biþi\n"
+msgstr "prime-ul RSA %s lipseşte sau nu are %d biţi\n"
 
 #, c-format
 msgid "failed to store the key: %s\n"
-msgstr "am eºuat sã stochez cheia: %s\n"
+msgstr "am eşuat să stochez cheia: %s\n"
 
 #, fuzzy
 #| msgid "unsupported URI"
@@ -6312,36 +6379,36 @@ msgid "unsupported curve\n"
 msgstr "URI nesuportat"
 
 msgid "please wait while key is being generated ...\n"
-msgstr "vã rugãm aºteptaþi câtã vreme este creatã noua cheie ...\n"
+msgstr "vă rugăm aşteptaţi câtă vreme este creată noua cheie ...\n"
 
 msgid "generating key failed\n"
-msgstr "generarea cheii a eºuat\n"
+msgstr "generarea cheii a eşuat\n"
 
 #, fuzzy, c-format
 #| msgid "key generation completed (%d seconds)\n"
 msgid "key generation completed (%d second)\n"
 msgid_plural "key generation completed (%d seconds)\n"
-msgstr[0] "generarea cheii este completã (%d secunde)\n"
-msgstr[1] "generarea cheii este completã (%d secunde)\n"
+msgstr[0] "generarea cheii este completă (%d secunde)\n"
+msgstr[1] "generarea cheii este completă (%d secunde)\n"
 
 msgid "invalid structure of OpenPGP card (DO 0x93)\n"
-msgstr "structurã invalidã a cardului OpenPGP (DO 0x93)\n"
+msgstr "structură invalidă a cardului OpenPGP (DO 0x93)\n"
 
 msgid "fingerprint on card does not match requested one\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "card does not support digest algorithm %s\n"
-msgstr "semnãturã %s, algoritm rezumat %s\n"
+msgstr "semnătură %s, algoritm rezumat %s\n"
 
 #, c-format
 msgid "signatures created so far: %lu\n"
-msgstr "semnãturi create pânã acum: %lu\n"
+msgstr "semnături create până acum: %lu\n"
 
 msgid ""
 "verification of Admin PIN is currently prohibited through this command\n"
 msgstr ""
-"verificarea PIN-ului Admin este deocamdatã interzisã prin aceastã comandã\n"
+"verificarea PIN-ului Admin este deocamdată interzisă prin această comandă\n"
 
 #, c-format
 msgid "can't access %s - invalid OpenPGP card?\n"
@@ -6349,7 +6416,7 @@ msgstr "nu pot accesa %s - card OpenPGP invalid?\n"
 
 #, fuzzy
 msgid "||Please enter your PIN at the reader's pinpad"
-msgstr "||Vã rugãm introduceþi PIN%%0A[semnãturi fãcute: %lu]"
+msgstr "||Vă rugăm introduceţi PIN%%0A[semnături făcute: %lu]"
 
 #. TRANSLATORS: Do not translate the "|*|" prefixes but
 #. keep it at the start of the string.  We need this elsewhere
@@ -6366,18 +6433,18 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|write a log to FILE"
-msgstr "|FIªIER|încarcã modulul extensie FIªIER"
+msgstr "|FIŞIER|încarcă modulul extensie FIŞIER"
 
 msgid "|N|connect to reader at port N"
 msgstr ""
 
 #, fuzzy
 msgid "|NAME|use NAME as ct-API driver"
-msgstr "|NUME|foloseºte NUME ca destinatar implicit"
+msgstr "|NUME|foloseşte NUME ca destinatar implicit"
 
 #, fuzzy
 msgid "|NAME|use NAME as PC/SC driver"
-msgstr "|NUME|foloseºte NUME ca destinatar implicit"
+msgstr "|NUME|foloseşte NUME ca destinatar implicit"
 
 #, fuzzy
 msgid "do not use the internal CCID driver"
@@ -6391,14 +6458,14 @@ msgstr ""
 
 #, fuzzy
 msgid "deny the use of admin card commands"
-msgstr "aratã comenzi administrare"
+msgstr "arată comenzi administrare"
 
 msgid "use variable length input for pinpad"
 msgstr ""
 
 #, fuzzy
 msgid "Usage: @SCDAEMON@ [options] (-h for help)"
-msgstr "Folosire: gpg [opþiuni] [fiºiere] (-h pentru ajutor)"
+msgstr "Folosire: gpg [opţiuni] [fişiere] (-h pentru ajutor)"
 
 msgid ""
 "Syntax: scdaemon [options] [command [args]]\n"
@@ -6418,11 +6485,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid radix64 character %02x skipped\n"
-msgstr "caracter radix64 invalid %02X sãrit\n"
+msgstr "caracter radix64 invalid %02X sărit\n"
 
 #, fuzzy
 msgid "no dirmngr running in this session\n"
-msgstr "gpg-agent nu este disponibil în aceastã sesiune\n"
+msgstr "gpg-agent nu este disponibil în această sesiune\n"
 
 #, c-format
 msgid "validation model requested by certificate: %s"
@@ -6469,19 +6536,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "number of matching certificates: %d\n"
-msgstr "eroare la obþinerea numãrului serial: %s\n"
+msgstr "eroare la obţinerea numărului serial: %s\n"
 
 #, fuzzy, c-format
 msgid "dirmngr cache-only key lookup failed: %s\n"
-msgstr "citirea cheii publice a eºuat: %s\n"
+msgstr "citirea cheii publice a eşuat: %s\n"
 
 #, fuzzy
 msgid "failed to allocate keyDB handle\n"
-msgstr "am eºuat sã stochez cheia: %s\n"
+msgstr "am eşuat să stochez cheia: %s\n"
 
 #, fuzzy
 msgid "certificate has been revoked"
-msgstr "NOTÃ: cheia a fost revocatã"
+msgstr "NOTĂ: cheia a fost revocată"
 
 msgid "the status of the certificate is unknown"
 msgstr ""
@@ -6491,7 +6558,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "checking the CRL failed: %s"
-msgstr "verificarea semnãturii create a eºuat: %s\n"
+msgstr "verificarea semnăturii create a eşuat: %s\n"
 
 #, c-format
 msgid "certificate with invalid validity: %s"
@@ -6509,15 +6576,15 @@ msgstr ""
 
 #, fuzzy
 msgid "certificate has expired"
-msgstr "Aceastã cheie a expirat!"
+msgstr "Această cheie a expirat!"
 
 #, fuzzy
 msgid "root certificate has expired"
-msgstr "Aceastã cheie a expirat!"
+msgstr "Această cheie a expirat!"
 
 #, fuzzy
 msgid "intermediate certificate has expired"
-msgstr "Aceastã cheie a expirat!"
+msgstr "Această cheie a expirat!"
 
 #, c-format
 msgid "required certificate attributes missing: %s%s%s"
@@ -6525,7 +6592,7 @@ msgstr ""
 
 #, fuzzy
 msgid "certificate with invalid validity"
-msgstr "Aceastã cheie a expirat!"
+msgstr "Această cheie a expirat!"
 
 msgid "signature not created during lifetime of certificate"
 msgstr ""
@@ -6538,7 +6605,7 @@ msgstr ""
 
 #, fuzzy
 msgid "  (  signature created at "
-msgstr "semnãturi create pânã acum: %lu\n"
+msgstr "semnături create până acum: %lu\n"
 
 #, fuzzy
 msgid "  (certificate created at "
@@ -6570,7 +6637,7 @@ msgstr ""
 
 #, fuzzy
 msgid "no issuer found in certificate"
-msgstr "genereazã un certificat de revocare"
+msgstr "generează un certificat de revocare"
 
 msgid "self-signed certificate has a BAD signature"
 msgstr ""
@@ -6580,7 +6647,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "checking the trust list failed: %s\n"
-msgstr "verificarea semnãturii create a eºuat: %s\n"
+msgstr "verificarea semnăturii create a eşuat: %s\n"
 
 msgid "certificate chain too long\n"
 msgstr ""
@@ -6590,7 +6657,7 @@ msgstr ""
 
 #, fuzzy
 msgid "certificate has a BAD signature"
-msgstr "verificã o semnãturã"
+msgstr "verifică o semnătură"
 
 msgid "found another possible matching CA certificate - trying again"
 msgstr ""
@@ -6601,7 +6668,7 @@ msgstr ""
 
 #, fuzzy
 msgid "certificate is good\n"
-msgstr "preferinþa `%s' duplicatã\n"
+msgstr "preferinţa `%s' duplicată\n"
 
 #, fuzzy
 msgid "intermediate certificate is good\n"
@@ -6631,7 +6698,7 @@ msgstr "nu"
 
 #, fuzzy
 msgid "[Error - invalid encoding]"
-msgstr "Eroare: rãspuns invalid.\n"
+msgstr "Eroare: răspuns invalid.\n"
 
 msgid "[Error - out of core]"
 msgstr ""
@@ -6641,7 +6708,7 @@ msgstr ""
 
 #, fuzzy
 msgid "[Error - invalid DN]"
-msgstr "Eroare: rãspuns invalid.\n"
+msgstr "Eroare: răspuns invalid.\n"
 
 #, fuzzy, c-format
 msgid ""
@@ -6651,17 +6718,17 @@ msgid ""
 "S/N %s, ID 0x%08lX,\n"
 "created %s, expires %s.\n"
 msgstr ""
-"Aveþi nevoie de o frazã-parolã pentru a descuia cheia secretã pt. "
+"Aveţi nevoie de o frază-parolă pentru a descuia cheia secretă pt. "
 "utilizator:\n"
 "\"%.*s\"\n"
-"cheia %u-bit %s, ID %s, creatã %s%s\n"
+"cheia %u-bit %s, ID %s, creată %s%s\n"
 
 msgid "no key usage specified - assuming all usages\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting key usage information: %s\n"
-msgstr "eroare la obþinerea informaþiei pentru cheia curentã: %s\n"
+msgstr "eroare la obţinerea informaţiei pentru cheia curentă: %s\n"
 
 msgid "certificate should not have been used for certification\n"
 msgstr ""
@@ -6703,7 +6770,7 @@ msgstr "algoritm hash invalid `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: not a valid email address\n"
-msgstr "Nu este o adresã de email validã\n"
+msgstr "Nu este o adresă de email validă\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid serial number\n"
@@ -6736,7 +6803,7 @@ msgstr "algoritm hash invalid `%s'\n"
 #, fuzzy, c-format
 #| msgid "key %s: invalid subkey binding\n"
 msgid "line %d: invalid subject-key-id\n"
-msgstr "cheia %s: legare subcheie invalidã\n"
+msgstr "cheia %s: legare subcheie invalidă\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid extension syntax\n"
@@ -6752,7 +6819,7 @@ msgstr "eroare la crearea inelului de chei `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: key generation failed: %s <%s>\n"
-msgstr "Generarea cheii a eºuat: %s\n"
+msgstr "Generarea cheii a eşuat: %s\n"
 
 msgid ""
 "To complete this certificate request please enter the passphrase for the key "
@@ -6773,23 +6840,23 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error reading the card: %s\n"
-msgstr "%s: eroare citire înregistrare liberã: %s\n"
+msgstr "%s: eroare citire înregistrare liberă: %s\n"
 
 #, fuzzy, c-format
 msgid "Serial number of the card: %s\n"
-msgstr "eroare la obþinerea numãrului serial: %s\n"
+msgstr "eroare la obţinerea numărului serial: %s\n"
 
 #, fuzzy
 msgid "Available keys:\n"
-msgstr "deactiveazã cheia"
+msgstr "deactivează cheia"
 
 #, fuzzy, c-format
 msgid "Possible actions for a %s key:\n"
-msgstr "Acþiuni posibile pentru o cheie %s: "
+msgstr "Acţiuni posibile pentru o cheie %s: "
 
 #, fuzzy, c-format
 msgid "   (%d) sign, encrypt\n"
-msgstr "   (%d) RSA (semnare ºi cifrare)\n"
+msgstr "   (%d) RSA (semnare şi cifrare)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) sign\n"
@@ -6804,7 +6871,7 @@ msgstr ""
 
 #, fuzzy
 msgid "No subject name given\n"
-msgstr "(Nici o descriere datã)\n"
+msgstr "(Nici o descriere dată)\n"
 
 #, fuzzy, c-format
 msgid "Invalid subject name label '%.*s'\n"
@@ -6824,30 +6891,30 @@ msgstr ""
 
 #, fuzzy
 msgid "Enter email addresses"
-msgstr "Adresã de email: "
+msgstr "Adresă de email: "
 
 #, fuzzy
 msgid " (end with an empty line):\n"
 msgstr ""
 "\n"
-"Introduceþi ID-ul utilizator.  Terminaþi cu o linie nouã: "
+"Introduceţi ID-ul utilizator.  Terminaţi cu o linie nouă: "
 
 #, fuzzy
 msgid "Enter DNS names"
-msgstr "Introduceþi un nou nume-fiºier"
+msgstr "Introduceţi un nou nume-fişier"
 
 #, fuzzy
 msgid " (optional; end with an empty line):\n"
-msgstr "Introduceþi o descriere opþionalã; terminaþi cu o linie goalã:\n"
+msgstr "Introduceţi o descriere opţională; terminaţi cu o linie goală:\n"
 
 #, fuzzy
 msgid "Enter URIs"
-msgstr "Introduceþi PIN: "
+msgstr "Introduceţi PIN: "
 
 #, fuzzy
 #| msgid "Create a designated revocation certificate for this key? (y/N) "
 msgid "Create self-signed certificate? (y/N) "
-msgstr "Creaþi un certificat de revocare desemnat pentru aceastã cheie? (d/N) "
+msgstr "Creaţi un certificat de revocare desemnat pentru această cheie? (d/N) "
 
 msgid "These parameters are used:\n"
 msgstr ""
@@ -6880,7 +6947,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "certificate '%s' not found: %s\n"
-msgstr "cheia secretã \"%s\" nu a fost gãsitã: %s\n"
+msgstr "cheia secretă \"%s\" nu a fost găsită: %s\n"
 
 #, fuzzy, c-format
 msgid "error locking keybox: %s\n"
@@ -6892,19 +6959,19 @@ msgstr "Certificat de revocare creat.\n"
 
 #, fuzzy, c-format
 msgid "certificate '%s' deleted\n"
-msgstr "preferinþa `%s' duplicatã\n"
+msgstr "preferinţa `%s' duplicată\n"
 
 #, fuzzy, c-format
 msgid "deleting certificate \"%s\" failed: %s\n"
-msgstr "stergere keyblock a eºuat: %s\n"
+msgstr "stergere keyblock a eşuat: %s\n"
 
 #, fuzzy
 msgid "no valid recipients given\n"
-msgstr "(Nici o descriere datã)\n"
+msgstr "(Nici o descriere dată)\n"
 
 #, fuzzy
 msgid "list external keys"
-msgstr "enumerã chei secrete"
+msgstr "enumeră chei secrete"
 
 #, fuzzy
 msgid "list certificate chain"
@@ -6920,7 +6987,7 @@ msgstr "certificat incorect"
 
 #, fuzzy
 msgid "register a smartcard"
-msgstr "adaugã o cheie la un smartcard"
+msgstr "adaugă o cheie la un smartcard"
 
 msgid "pass a command to the dirmngr"
 msgstr ""
@@ -6930,7 +6997,7 @@ msgstr ""
 
 #, fuzzy
 msgid "create base-64 encoded output"
-msgstr "creazã ieºire în armurã ascii"
+msgstr "crează ieşire în armură ascii"
 
 msgid "assume input is in PEM format"
 msgstr ""
@@ -6967,39 +7034,39 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|write an audit log to FILE"
-msgstr "|FIªIER|încarcã modulul extensie FIªIER"
+msgstr "|FIŞIER|încarcă modulul extensie FIŞIER"
 
 msgid "batch mode: never ask"
-msgstr "modul batch: nu întreba niciodatã"
+msgstr "modul batch: nu întreba niciodată"
 
 msgid "assume yes on most questions"
-msgstr "presupune da la cele mai multe întrebãri"
+msgstr "presupune da la cele mai multe întrebări"
 
 msgid "assume no on most questions"
-msgstr "presupune nu la cele mai multe întrebãri"
+msgstr "presupune nu la cele mai multe întrebări"
 
 #, fuzzy
 msgid "|FILE|add keyring to the list of keyrings"
-msgstr "adaugã acest inel de chei la lista inelelor de chei"
+msgstr "adaugă acest inel de chei la lista inelelor de chei"
 
 #, fuzzy
 msgid "|USER-ID|use USER-ID as default secret key"
-msgstr "|NUME|foloseºte NUME ca cheie secretã implicitã"
+msgstr "|NUME|foloseşte NUME ca cheie secretă implicită"
 
 #, fuzzy
 msgid "|SPEC|use this keyserver to lookup keys"
-msgstr "|HOST|foloseºte acest server de chei pentru a cãuta chei"
+msgstr "|HOST|foloseşte acest server de chei pentru a căuta chei"
 
 msgid "|NAME|use cipher algorithm NAME"
-msgstr "|NUME|foloseºte algoritm cifrare NUME"
+msgstr "|NUME|foloseşte algoritm cifrare NUME"
 
 msgid "|NAME|use message digest algorithm NAME"
-msgstr "|NUME|foloseºte algoritm rezumat mesaj NUME"
+msgstr "|NUME|foloseşte algoritm rezumat mesaj NUME"
 
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: @GPGSM@ [options] [files] (-h for help)"
-msgstr "Folosire: gpg [opþiuni] [fiºiere] (-h pentru ajutor)"
+msgstr "Folosire: gpg [opţiuni] [fişiere] (-h pentru ajutor)"
 
 #, fuzzy
 msgid ""
@@ -7007,21 +7074,21 @@ msgid ""
 "Sign, check, encrypt or decrypt using the S/MIME protocol\n"
 "Default operation depends on the input data\n"
 msgstr ""
-"Sintaxã: gpg [opþiuni] [fiºiere]\n"
+"Sintaxă: gpg [opţiuni] [fişiere]\n"
 "sign, check, encrypt sau decrypt\n"
-"operaþiunea implicitã depinde de datele de intrare\n"
+"operaţiunea implicită depinde de datele de intrare\n"
 
 #, fuzzy, c-format
 msgid "Note: won't be able to encrypt to '%s': %s\n"
-msgstr "nu mã pot conecta la `%s': %s\n"
+msgstr "nu mă pot conecta la `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "unknown validation model '%s'\n"
-msgstr "opþiune necunoscutã `%s'\n"
+msgstr "opţiune necunoscută `%s'\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: no hostname given\n"
-msgstr "(Nici o descriere datã)\n"
+msgstr "(Nici o descriere dată)\n"
 
 #, c-format
 msgid "%s:%u: password given without user\n"
@@ -7029,7 +7096,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "%s:%u: skipping this line\n"
-msgstr "  s = sãri peste cheia asta\n"
+msgstr "  s = sări peste cheia asta\n"
 
 #
 #, fuzzy
@@ -7038,7 +7105,7 @@ msgstr "nu am putut interpreta URL-ul serverului de chei\n"
 
 #, fuzzy, c-format
 msgid "importing common certificates '%s'\n"
-msgstr "eroare la obþinerea numãrului serial: %s\n"
+msgstr "eroare la obţinerea numărului serial: %s\n"
 
 #, fuzzy, c-format
 msgid "can't sign using '%s': %s\n"
@@ -7049,22 +7116,22 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "total number processed: %lu\n"
-msgstr "Numãr total procesate: %lu\n"
+msgstr "Număr total procesate: %lu\n"
 
 #, fuzzy
 msgid "error storing certificate\n"
-msgstr "genereazã un certificat de revocare"
+msgstr "generează un certificat de revocare"
 
 msgid "basic certificate checks failed - not imported\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting stored flags: %s\n"
-msgstr "eroare la obþinere noului PIN: %s\n"
+msgstr "eroare la obţinere noului PIN: %s\n"
 
 #, fuzzy, c-format
 msgid "error importing certificate: %s\n"
-msgstr "eroare la obþinerea numãrului serial: %s\n"
+msgstr "eroare la obţinerea numărului serial: %s\n"
 
 #, fuzzy, c-format
 msgid "error reading input: %s\n"
@@ -7072,7 +7139,7 @@ msgstr "eroare la citire `%s': %s\n"
 
 #, fuzzy
 msgid "failed to get the fingerprint\n"
-msgstr "am eºuat sã stochez amprenta: %s\n"
+msgstr "am eşuat să stochez amprenta: %s\n"
 
 #, c-format
 msgid "problem looking for existing certificate: %s\n"
@@ -7080,15 +7147,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error finding writable keyDB: %s\n"
-msgstr "eroare la obþinerea numãrului serial: %s\n"
+msgstr "eroare la obţinerea numărului serial: %s\n"
 
 #, fuzzy, c-format
 msgid "error storing certificate: %s\n"
-msgstr "eroare la obþinerea numãrului serial: %s\n"
+msgstr "eroare la obţinerea numărului serial: %s\n"
 
 #, fuzzy, c-format
 msgid "problem re-searching certificate: %s\n"
-msgstr "rev? probleme la verificare revocãrii: %s\n"
+msgstr "rev? probleme la verificare revocării: %s\n"
 
 #, fuzzy, c-format
 msgid "error storing flags: %s\n"
@@ -7102,11 +7169,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid formatted fingerprint in '%s', line %d\n"
-msgstr "Eroare: amprentã formatatã invalid.\n"
+msgstr "Eroare: amprentă formatată invalid.\n"
 
 #, fuzzy, c-format
 msgid "invalid country code in '%s', line %d\n"
-msgstr "Eroare: amprentã formatatã invalid.\n"
+msgstr "Eroare: amprentă formatată invalid.\n"
 
 #, c-format
 msgid ""
@@ -7132,7 +7199,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "hash algorithm %d (%s) for signer %d not supported; using %s\n"
-msgstr "algoritm de protecþie %d%s nu este suportat\n"
+msgstr "algoritm de protecţie %d%s nu este suportat\n"
 
 #, c-format
 msgid "hash algorithm used for signer %d: %s (%s)\n"
@@ -7140,18 +7207,18 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "checking for qualified certificate failed: %s\n"
-msgstr "verificarea semnãturii create a eºuat: %s\n"
+msgstr "verificarea semnăturii create a eşuat: %s\n"
 
 #, fuzzy
 msgid "Signature made "
-msgstr "Semnãturã fãcutã %s\n"
+msgstr "Semnătură făcută %s\n"
 
 msgid "[date not given]"
 msgstr ""
 
 #, fuzzy, c-format
 msgid " using certificate ID 0x%08lX\n"
-msgstr "eroare la obþinerea numãrului serial: %s\n"
+msgstr "eroare la obţinerea numărului serial: %s\n"
 
 msgid ""
 "invalid signature: message digest attribute does not match computed one\n"
@@ -7159,7 +7226,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Good signature from"
-msgstr "Semnãturã bunã din \"%s\""
+msgstr "Semnătură bună din \"%s\""
 
 #, fuzzy
 msgid "                aka"
@@ -7167,11 +7234,11 @@ msgstr "                aka \"%s\""
 
 #, fuzzy
 msgid "This is a qualified signature\n"
-msgstr "Aceasta va fi o auto-semnãturã.\n"
+msgstr "Aceasta va fi o auto-semnătură.\n"
 
 #, fuzzy, c-format
 msgid "can't initialize certificate cache lock: %s\n"
-msgstr "verificarea semnãturii create a eºuat: %s\n"
+msgstr "verificarea semnăturii create a eşuat: %s\n"
 
 #, c-format
 msgid "can't acquire read lock on the certificate cache: %s\n"
@@ -7196,7 +7263,7 @@ msgstr "nu pot crea `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "certificate '%s' already cached\n"
-msgstr "preferinþa `%s' duplicatã\n"
+msgstr "preferinţa `%s' duplicată\n"
 
 #, fuzzy, c-format
 msgid "trusted certificate '%s' loaded\n"
@@ -7204,7 +7271,7 @@ msgstr "Certificat de revocare creat.\n"
 
 #, fuzzy, c-format
 msgid "certificate '%s' loaded\n"
-msgstr "preferinþa `%s' duplicatã\n"
+msgstr "preferinţa `%s' duplicată\n"
 
 #, fuzzy, c-format
 msgid "  SHA1 fingerprint = %s\n"
@@ -7218,7 +7285,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error loading certificate '%s': %s\n"
-msgstr "eroare la obþinerea numãrului serial: %s\n"
+msgstr "eroare la obţinerea numărului serial: %s\n"
 
 #, fuzzy, c-format
 msgid "permanently loaded certificates: %u\n"
@@ -7226,7 +7293,7 @@ msgstr "certificat incorect"
 
 #, fuzzy, c-format
 msgid "    runtime cached certificates: %u\n"
-msgstr "eroare la obþinerea numãrului serial: %s\n"
+msgstr "eroare la obţinerea numărului serial: %s\n"
 
 #, fuzzy
 msgid "certificate already cached\n"
@@ -7234,32 +7301,32 @@ msgstr "Certificat de revocare creat.\n"
 
 #, fuzzy
 msgid "certificate cached\n"
-msgstr "preferinþa `%s' duplicatã\n"
+msgstr "preferinţa `%s' duplicată\n"
 
 #, fuzzy, c-format
 msgid "error caching certificate: %s\n"
-msgstr "eroare la obþinerea numãrului serial: %s\n"
+msgstr "eroare la obţinerea numărului serial: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid fingerprint"
 msgid "invalid SHA1 fingerprint string '%s'\n"
-msgstr "amprentã invalidã"
+msgstr "amprentă invalidă"
 
 #, fuzzy, c-format
 msgid "error fetching certificate by S/N: %s\n"
-msgstr "eroare la obþinerea numãrului serial: %s\n"
+msgstr "eroare la obţinerea numărului serial: %s\n"
 
 #, fuzzy, c-format
 msgid "error fetching certificate by subject: %s\n"
-msgstr "eroare la obþinerea numãrului serial: %s\n"
+msgstr "eroare la obţinerea numărului serial: %s\n"
 
 #, fuzzy
 msgid "no issuer found in certificate\n"
-msgstr "genereazã un certificat de revocare"
+msgstr "generează un certificat de revocare"
 
 #, fuzzy, c-format
 msgid "error getting authorityKeyIdentifier: %s\n"
-msgstr "eroare la obþinere noului PIN: %s\n"
+msgstr "eroare la obţinere noului PIN: %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't create directory `%s': %s\n"
@@ -7280,16 +7347,16 @@ msgstr "eroare la citire `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "removing cache file '%s'\n"
-msgstr "citirea cheii publice a eºuat: %s\n"
+msgstr "citirea cheii publice a eşuat: %s\n"
 
 #, fuzzy, c-format
 #| msgid "enarmoring failed: %s\n"
 msgid "not removing file '%s'\n"
-msgstr "punerea armurii a eºuat: %s\n"
+msgstr "punerea armurii a eşuat: %s\n"
 
 #, fuzzy, c-format
 msgid "error closing cache file: %s\n"
-msgstr "eroare în `%s': %s\n"
+msgstr "eroare în `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "failed to open cache dir file '%s': %s\n"
@@ -7297,7 +7364,7 @@ msgstr "Nu pot deschide `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error creating new cache dir file '%s': %s\n"
-msgstr "eroare la crearea frazei-parolã: %s\n"
+msgstr "eroare la crearea frazei-parolă: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing secret keyring `%s': %s\n"
@@ -7306,12 +7373,12 @@ msgstr "eroare la scrierea inelului de chei secret `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error closing new cache dir file '%s': %s\n"
-msgstr "eroare în `%s': %s\n"
+msgstr "eroare în `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "new configuration file `%s' created\n"
 msgid "new cache dir file '%s' created\n"
-msgstr "fiºier de configurare nou `%s' creat\n"
+msgstr "fişier de configurare nou `%s' creat\n"
 
 #, fuzzy, c-format
 msgid "failed to re-open cache dir file '%s': %s\n"
@@ -7333,7 +7400,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid line detected in '%s' line %u\n"
-msgstr "Eroare: amprentã formatatã invalid.\n"
+msgstr "Eroare: amprentă formatată invalid.\n"
 
 #, fuzzy, c-format
 msgid "duplicate entry detected in '%s' line %u\n"
@@ -7345,22 +7412,22 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid issuer hash in '%s' line %u\n"
-msgstr "Eroare: amprentã formatatã invalid.\n"
+msgstr "Eroare: amprentă formatată invalid.\n"
 
 #, fuzzy, c-format
 msgid "no issuer DN in '%s' line %u\n"
-msgstr "eroare citire în `%s': %s\n"
+msgstr "eroare citire în `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "invalid timestamp in '%s' line %u\n"
-msgstr "Eroare: amprentã formatatã invalid.\n"
+msgstr "Eroare: amprentă formatată invalid.\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: invalid size of random_seed file - not used\n"
 msgid "WARNING: invalid cache file hash in '%s' line %u\n"
 msgstr ""
-"AVERTISMENT: dimensiune invalidã pentru fiºierul random_seed - nu va fi "
-"folositã\n"
+"AVERTISMENT: dimensiune invalidă pentru fişierul random_seed - nu va fi "
+"folosită\n"
 
 msgid "detected errors in cache dir file\n"
 msgstr ""
@@ -7374,7 +7441,7 @@ msgstr "nu pot crea directorul `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error closing '%s': %s\n"
-msgstr "eroare în `%s': %s\n"
+msgstr "eroare în `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error reading `%s': %s\n"
@@ -7393,22 +7460,22 @@ msgstr "eroare trimitere la `%s': %s\n"
 #, fuzzy, c-format
 #| msgid "error in `%s': %s\n"
 msgid "error hashing '%s': %s\n"
-msgstr "eroare în `%s': %s\n"
+msgstr "eroare în `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "invalid formatted checksum for '%s'\n"
-msgstr "Eroare: amprentã formatatã invalid.\n"
+msgstr "Eroare: amprentă formatată invalid.\n"
 
 msgid "too many open cache files; can't open anymore\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "opening cache file '%s'\n"
-msgstr "semnarea a eºuat: %s\n"
+msgstr "semnarea a eşuat: %s\n"
 
 #, fuzzy, c-format
 msgid "error opening cache file '%s': %s\n"
-msgstr "eroare în `%s': %s\n"
+msgstr "eroare în `%s': %s\n"
 
 #, c-format
 msgid "error initializing cache file '%s' for reading: %s\n"
@@ -7422,7 +7489,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "failed to create a new cache object: %s\n"
-msgstr "%s: am eºuat sã creez hashtable: %s\n"
+msgstr "%s: am eşuat să creez hashtable: %s\n"
 
 #, fuzzy, c-format
 #| msgid "No help available for `%s'"
@@ -7457,7 +7524,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "Error reading backup key from `%s': %s\n"
 msgid "problem reading cache record for S/N %s: %s\n"
-msgstr "Eroare citind cheia de rezervã de pe `%s': %s\n"
+msgstr "Eroare citind cheia de rezervă de pe `%s': %s\n"
 
 #, c-format
 msgid "S/N %s is not valid; reason=%02X  date=%.15s\n"
@@ -7469,7 +7536,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting data from cache file: %s\n"
-msgstr "eroare la obþinere noului PIN: %s\n"
+msgstr "eroare la obţinere noului PIN: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid hash algorithm `%s'\n"
@@ -7483,24 +7550,24 @@ msgstr ""
 #, fuzzy
 #| msgid "invalid response from agent\n"
 msgid "got an invalid S-expression from libksba\n"
-msgstr "rãspuns invalid de la agent\n"
+msgstr "răspuns invalid de la agent\n"
 
 #, fuzzy, c-format
 msgid "converting S-expression failed: %s\n"
-msgstr "nu pot deschide fiºierul: %s\n"
+msgstr "nu pot deschide fişierul: %s\n"
 
 #, fuzzy, c-format
 msgid "creating S-expression failed: %s\n"
-msgstr "citirea cheii publice a eºuat: %s\n"
+msgstr "citirea cheii publice a eşuat: %s\n"
 
 #, fuzzy, c-format
 #| msgid "build_packet failed: %s\n"
 msgid "ksba_crl_parse failed: %s\n"
-msgstr "build_packet a eºuat: %s\n"
+msgstr "build_packet a eşuat: %s\n"
 
 #, fuzzy, c-format
 msgid "error getting update times of CRL: %s\n"
-msgstr "eroare la obþinerea numãrului serial: %s\n"
+msgstr "eroare la obţinerea numărului serial: %s\n"
 
 #, c-format
 msgid "update times of this CRL: this=%s next=%s\n"
@@ -7512,15 +7579,15 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error getting new PIN: %s\n"
 msgid "error getting CRL item: %s\n"
-msgstr "eroare la obþinere noului PIN: %s\n"
+msgstr "eroare la obţinere noului PIN: %s\n"
 
 #, fuzzy, c-format
 msgid "error inserting item into temporary cache file: %s\n"
-msgstr "%s: eroare scriere înregistrare dir: %s\n"
+msgstr "%s: eroare scriere înregistrare dir: %s\n"
 
 #, fuzzy, c-format
 msgid "no CRL issuer found in CRL: %s\n"
-msgstr "genereazã un certificat de revocare"
+msgstr "generează un certificat de revocare"
 
 msgid "locating CRL issuer certificate by authorityKeyIdentifier\n"
 msgstr ""
@@ -7528,19 +7595,19 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "signature verification suppressed\n"
 msgid "CRL signature verification failed: %s\n"
-msgstr "verificare semnãturã eliminatã\n"
+msgstr "verificare semnătură eliminată\n"
 
 #, fuzzy, c-format
 msgid "error checking validity of CRL issuer certificate: %s\n"
-msgstr "verificarea semnãturii create a eºuat: %s\n"
+msgstr "verificarea semnăturii create a eşuat: %s\n"
 
 #, fuzzy, c-format
 msgid "ksba_crl_new failed: %s\n"
-msgstr "stergere keyblock a eºuat: %s\n"
+msgstr "stergere keyblock a eşuat: %s\n"
 
 #, fuzzy, c-format
 msgid "ksba_crl_set_reader failed: %s\n"
-msgstr "actualizarea a eºuat: %s\n"
+msgstr "actualizarea a eşuat: %s\n"
 
 #, fuzzy, c-format
 msgid "removed stale temporary cache file '%s'\n"
@@ -7552,20 +7619,20 @@ msgstr "nu pot crea directorul `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error creating temporary cache file '%s': %s\n"
-msgstr "eroare la crearea frazei-parolã: %s\n"
+msgstr "eroare la crearea frazei-parolă: %s\n"
 
 #, fuzzy, c-format
 #| msgid "update secret failed: %s\n"
 msgid "crl_parse_insert failed: %s\n"
-msgstr "actualizarea secretului a eºuat: %s\n"
+msgstr "actualizarea secretului a eşuat: %s\n"
 
 #, fuzzy, c-format
 msgid "error finishing temporary cache file '%s': %s\n"
-msgstr "%s: eroare scriere înregistrare dir: %s\n"
+msgstr "%s: eroare scriere înregistrare dir: %s\n"
 
 #, fuzzy, c-format
 msgid "error closing temporary cache file '%s': %s\n"
-msgstr "eroare la crearea frazei-parolã: %s\n"
+msgstr "eroare la crearea frazei-parolă: %s\n"
 
 #, c-format
 msgid "WARNING: new CRL still too old; it expired on %s - loading anyway\n"
@@ -7585,12 +7652,12 @@ msgstr "eroare la citire `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "creating cache file '%s'\n"
-msgstr "eroare la crearea frazei-parolã: %s\n"
+msgstr "eroare la crearea frazei-parolă: %s\n"
 
 #, fuzzy, c-format
 #| msgid "renaming `%s' to `%s' failed: %s\n"
 msgid "problem renaming '%s' to '%s': %s\n"
-msgstr "redenumirea `%s' ca `%s' a eºuat: %s\n"
+msgstr "redenumirea `%s' ca `%s' a eşuat: %s\n"
 
 msgid ""
 "updating the DIR file failed - cache entry will get lost with the next "
@@ -7620,16 +7687,16 @@ msgstr ""
 #| msgid "WARNING: invalid size of random_seed file - not used\n"
 msgid " WARNING: invalid cache record length\n"
 msgstr ""
-"AVERTISMENT: dimensiune invalidã pentru fiºierul random_seed - nu va fi "
-"folositã\n"
+"AVERTISMENT: dimensiune invalidă pentru fişierul random_seed - nu va fi "
+"folosită\n"
 
 #, fuzzy, c-format
 msgid "problem reading cache record: %s\n"
-msgstr "%s: eroare citire înregistrare liberã: %s\n"
+msgstr "%s: eroare citire înregistrare liberă: %s\n"
 
 #, fuzzy, c-format
 msgid "problem reading cache key: %s\n"
-msgstr "rev? probleme la verificare revocãrii: %s\n"
+msgstr "rev? probleme la verificare revocării: %s\n"
 
 #, fuzzy, c-format
 msgid "error reading cache entry from db: %s\n"
@@ -7640,15 +7707,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "crl_fetch via DP failed: %s\n"
-msgstr "actualizarea a eºuat: %s\n"
+msgstr "actualizarea a eşuat: %s\n"
 
 #, fuzzy, c-format
 msgid "crl_cache_insert via DP failed: %s\n"
-msgstr "verificarea semnãturii create a eºuat: %s\n"
+msgstr "verificarea semnăturii create a eşuat: %s\n"
 
 #, fuzzy, c-format
 msgid "crl_cache_insert via issuer failed: %s\n"
-msgstr "citirea cheii publice a eºuat: %s\n"
+msgstr "citirea cheii publice a eşuat: %s\n"
 
 msgid "reader to file mapping table full - waiting\n"
 msgstr ""
@@ -7663,7 +7730,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "%s: error writing dir record: %s\n"
 msgid "error initializing reader object: %s\n"
-msgstr "%s: eroare scriere înregistrare dir: %s\n"
+msgstr "%s: eroare scriere înregistrare dir: %s\n"
 
 #, c-format
 msgid "URL '%s' redirected to '%s' (%u)\n"
@@ -7672,7 +7739,7 @@ msgstr ""
 #, fuzzy
 #| msgid "too many cipher preferences\n"
 msgid "too many redirections\n"
-msgstr "prea multe preferinþe de cifrare\n"
+msgstr "prea multe preferinţe de cifrare\n"
 
 #, fuzzy, c-format
 msgid "error retrieving '%s': %s\n"
@@ -7684,11 +7751,11 @@ msgstr "eroare la citire `%s': %s\n"
 
 #, fuzzy
 msgid "CRL access not possible due to Tor mode\n"
-msgstr "cheia secretã \"%s\" nu a fost gãsitã: %s\n"
+msgstr "cheia secretă \"%s\" nu a fost găsită: %s\n"
 
 #, fuzzy, c-format
 msgid "certificate search not possible due to disabled %s\n"
-msgstr "cheia secretã \"%s\" nu a fost gãsitã: %s\n"
+msgstr "cheia secretă \"%s\" nu a fost găsită: %s\n"
 
 msgid "use OCSP instead of CRLs"
 msgstr ""
@@ -7728,12 +7795,12 @@ msgstr "certificat incorect"
 #, fuzzy
 #| msgid "Enter the user ID of the designated revoker: "
 msgid "force the use of the default OCSP responder"
-msgstr "Introduceþi ID-ul utilizator al revocatorului desemnat: "
+msgstr "Introduceţi ID-ul utilizator al revocatorului desemnat: "
 
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: dirmngr-client [options] [certfile|pattern] (-h for help)\n"
-msgstr "Folosire: gpg [opþiuni] [fiºiere] (-h pentru ajutor)"
+msgstr "Folosire: gpg [opţiuni] [fişiere] (-h pentru ajutor)"
 
 msgid ""
 "Syntax: dirmngr-client [options] [certfile|pattern]\n"
@@ -7744,7 +7811,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error reading certificate from stdin: %s\n"
-msgstr "eroare la obþinerea numãrului serial: %s\n"
+msgstr "eroare la obţinerea numărului serial: %s\n"
 
 #, fuzzy, c-format
 msgid "error reading certificate from '%s': %s\n"
@@ -7756,41 +7823,41 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to the dirmngr: %s\n"
-msgstr "nu mã pot conecta la `%s': %s\n"
+msgstr "nu mă pot conecta la `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "update failed: %s\n"
 msgid "lookup failed: %s\n"
-msgstr "actualizarea a eºuat: %s\n"
+msgstr "actualizarea a eşuat: %s\n"
 
 #, fuzzy, c-format
 #| msgid "renaming `%s' to `%s' failed: %s\n"
 msgid "loading CRL '%s' failed: %s\n"
-msgstr "redenumirea `%s' ca `%s' a eºuat: %s\n"
+msgstr "redenumirea `%s' ca `%s' a eşuat: %s\n"
 
 msgid "a dirmngr daemon is up and running\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "validation of certificate failed: %s\n"
-msgstr "stergere keyblock a eºuat: %s\n"
+msgstr "stergere keyblock a eşuat: %s\n"
 
 #, fuzzy
 msgid "certificate is valid\n"
-msgstr "preferinþa `%s' duplicatã\n"
+msgstr "preferinţa `%s' duplicată\n"
 
 #, fuzzy
 msgid "certificate has been revoked\n"
-msgstr "NOTÃ: cheia a fost revocatã"
+msgstr "NOTĂ: cheia a fost revocată"
 
 #, fuzzy, c-format
 msgid "certificate check failed: %s\n"
-msgstr "stergere keyblock a eºuat: %s\n"
+msgstr "stergere keyblock a eşuat: %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't stat `%s': %s\n"
 msgid "got status: '%s'\n"
-msgstr "nu pot obþine statistici `%s': %s\n"
+msgstr "nu pot obţine statistici `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing secret keyring `%s': %s\n"
@@ -7815,7 +7882,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|load CRL from FILE into cache"
-msgstr "|FIªIER|încarcã modulul extensie FIªIER"
+msgstr "|FIŞIER|încarcă modulul extensie FIŞIER"
 
 msgid "|URL|fetch a CRL from URL"
 msgstr ""
@@ -7832,7 +7899,7 @@ msgstr ""
 #, fuzzy
 #| msgid "Quit without saving? (y/N) "
 msgid "run without asking a user"
-msgstr "Terminaþi fãrã a salva?  (d/N) "
+msgstr "Terminaţi fără a salva?  (d/N) "
 
 msgid "force loading of outdated CRLs"
 msgstr ""
@@ -7840,6 +7907,9 @@ msgstr ""
 msgid "allow sending OCSP requests"
 msgstr ""
 
+msgid "allow online software version check"
+msgstr ""
+
 msgid "inhibit the use of HTTP"
 msgstr ""
 
@@ -7866,7 +7936,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|read LDAP server list from FILE"
-msgstr "|FIªIER|încarcã modulul extensie FIªIER"
+msgstr "|FIŞIER|încarcă modulul extensie FIŞIER"
 
 msgid "add new servers discovered in CRL distribution points to serverlist"
 msgstr ""
@@ -7901,11 +7971,11 @@ msgid ""
 "options)\n"
 msgstr ""
 "@\n"
-"(Aratã pagina man pentru o listã completã a comenzilor ºi opþiunilor)\n"
+"(Arată pagina man pentru o listă completă a comenzilor şi opţiunilor)\n"
 
 #, fuzzy
 msgid "Usage: @DIRMNGR@ [options] (-h for help)"
-msgstr "Folosire: gpg [opþiuni] [fiºiere] (-h pentru ajutor)"
+msgstr "Folosire: gpg [opţiuni] [fişiere] (-h pentru ajutor)"
 
 msgid ""
 "Syntax: @DIRMNGR@ [options] [command [args]]\n"
@@ -7918,7 +7988,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "usage: %s [options] "
-msgstr "folosire: gpg [opþiuni] "
+msgstr "folosire: gpg [opţiuni] "
 
 #, fuzzy
 #| msgid "%s not allowed with %s!\n"
@@ -7928,25 +7998,25 @@ msgstr "%s nu este permis cu %s!\n"
 #, fuzzy, c-format
 #| msgid "renaming `%s' to `%s' failed: %s\n"
 msgid "fetching CRL from '%s' failed: %s\n"
-msgstr "redenumirea `%s' ca `%s' a eºuat: %s\n"
+msgstr "redenumirea `%s' ca `%s' a eşuat: %s\n"
 
 #, fuzzy, c-format
 msgid "processing CRL from '%s' failed: %s\n"
-msgstr "redenumirea `%s' ca `%s' a eºuat: %s\n"
+msgstr "redenumirea `%s' ca `%s' a eşuat: %s\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: line too long - skipped\n"
-msgstr "linie prea lungã"
+msgstr "linie prea lungă"
 
 #, fuzzy, c-format
 #| msgid "invalid fingerprint"
 msgid "%s:%u: invalid fingerprint detected\n"
-msgstr "amprentã invalidã"
+msgstr "amprentă invalidă"
 
 #, fuzzy, c-format
 #| msgid "read error in `%s': %s\n"
 msgid "%s:%u: read error: %s\n"
-msgstr "eroare citire în `%s': %s\n"
+msgstr "eroare citire în `%s': %s\n"
 
 #, c-format
 msgid "%s:%u: garbage at end of line ignored\n"
@@ -7968,7 +8038,7 @@ msgstr ""
 #, fuzzy
 #| msgid "not forced"
 msgid "shutdown forced\n"
-msgstr "neforþat(ã)"
+msgstr "neforţat(ă)"
 
 msgid "SIGINT received - immediate shutdown\n"
 msgstr ""
@@ -7986,7 +8056,7 @@ msgstr ""
 #, fuzzy
 #| msgid "|NAME|set terminal charset to NAME"
 msgid "|NAME|connect to host NAME"
-msgstr "|NUME|seteazã charset-ul pentru terminal ca NUME"
+msgstr "|NUME|setează charset-ul pentru terminal ca NUME"
 
 msgid "|N|connect to port N"
 msgstr ""
@@ -7994,7 +8064,7 @@ msgstr ""
 #, fuzzy
 #| msgid "|NAME|use NAME as default recipient"
 msgid "|NAME|use user NAME for authentication"
-msgstr "|NUME|foloseºte NUME ca destinatar implicit"
+msgstr "|NUME|foloseşte NUME ca destinatar implicit"
 
 msgid "|PASS|use password PASS for authentication"
 msgstr ""
@@ -8014,7 +8084,7 @@ msgstr ""
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: dirmngr_ldap [options] [URL] (-h for help)\n"
-msgstr "Folosire: gpg [opþiuni] [fiºiere] (-h pentru ajutor)"
+msgstr "Folosire: gpg [opţiuni] [fişiere] (-h pentru ajutor)"
 
 msgid ""
 "Syntax: dirmngr_ldap [options] [URL]\n"
@@ -8025,7 +8095,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "invalid import options\n"
 msgid "invalid port number %d\n"
-msgstr "opþiuni import invalide\n"
+msgstr "opţiuni import invalide\n"
 
 #, c-format
 msgid "scanning result for attribute '%s'\n"
@@ -8041,7 +8111,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "attribute '%s' not found\n"
-msgstr "cheia secretã \"%s\" nu a fost gãsitã: %s\n"
+msgstr "cheia secretă \"%s\" nu a fost găsită: %s\n"
 
 #, c-format
 msgid "found attribute '%s'\n"
@@ -8055,7 +8125,7 @@ msgstr "citesc din `%s'\n"
 #, fuzzy, c-format
 #| msgid "          w/o user IDs: %lu\n"
 msgid "          user '%s'\n"
-msgstr "  fãrã ID-uri utilizator: %lu\n"
+msgstr "  fără ID-uri utilizator: %lu\n"
 
 #, fuzzy, c-format
 #| msgid "                aka \"%s\""
@@ -8065,7 +8135,7 @@ msgstr "                aka \"%s\""
 #, fuzzy, c-format
 #| msgid "          w/o user IDs: %lu\n"
 msgid "          host '%s'\n"
-msgstr "  fãrã ID-uri utilizator: %lu\n"
+msgstr "  fără ID-uri utilizator: %lu\n"
 
 #, fuzzy, c-format
 #| msgid "          not imported: %lu\n"
@@ -8088,7 +8158,7 @@ msgstr "                aka \"%s\""
 
 #, fuzzy, c-format
 msgid "no host name in '%s'\n"
-msgstr "(Nici o descriere datã)\n"
+msgstr "(Nici o descriere dată)\n"
 
 #, c-format
 msgid "no attribute given for query '%s'\n"
@@ -8097,37 +8167,33 @@ msgstr ""
 #, fuzzy
 #| msgid "WARNING: using insecure memory!\n"
 msgid "WARNING: using first attribute only\n"
-msgstr "AVERTISMENT: este folositã memorie neprotejatã (insecure)!\n"
+msgstr "AVERTISMENT: este folosită memorie neprotejată (insecure)!\n"
 
 #, fuzzy, c-format
 #| msgid "renaming `%s' to `%s' failed: %s\n"
 msgid "LDAP init to '%s:%d' failed: %s\n"
-msgstr "redenumirea `%s' ca `%s' a eºuat: %s\n"
+msgstr "redenumirea `%s' ca `%s' a eşuat: %s\n"
 
 #, fuzzy, c-format
 #| msgid "renaming `%s' to `%s' failed: %s\n"
 msgid "binding to '%s:%d' failed: %s\n"
-msgstr "redenumirea `%s' ca `%s' a eºuat: %s\n"
+msgstr "redenumirea `%s' ca `%s' a eşuat: %s\n"
 
 #, fuzzy, c-format
 #| msgid "dearmoring failed: %s\n"
 msgid "searching '%s' failed: %s\n"
-msgstr "eliminarea armurii a eºuat: %s\n"
+msgstr "eliminarea armurii a eşuat: %s\n"
 
 #, fuzzy, c-format
 #| msgid "`%s' is not a JPEG file\n"
 msgid "'%s' is not an LDAP URL\n"
-msgstr "`%s' nu este un fiºier JPEG\n"
+msgstr "`%s' nu este un fişier JPEG\n"
 
 #, c-format
 msgid "'%s' is an invalid LDAP URL\n"
 msgstr ""
 
 #, fuzzy, c-format
-msgid "error allocating memory: %s\n"
-msgstr "eroare la crearea inelului de chei `%s': %s\n"
-
-#, fuzzy, c-format
 msgid "error printing log line: %s\n"
 msgstr "eroare la scrierea inelului de chei `%s': %s\n"
 
@@ -8137,7 +8203,7 @@ msgstr "eroare la citire `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "npth_select failed: %s - waiting 1s\n"
-msgstr "actualizarea secretului a eºuat: %s\n"
+msgstr "actualizarea secretului a eşuat: %s\n"
 
 #, c-format
 msgid "ldap wrapper %d ready"
@@ -8153,7 +8219,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "waiting for ldap wrapper %d failed: %s\n"
-msgstr "actualizarea a eºuat: %s\n"
+msgstr "actualizarea a eşuat: %s\n"
 
 #, c-format
 msgid "ldap wrapper %d stalled - killing\n"
@@ -8166,7 +8232,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "reading public key failed: %s\n"
 msgid "reading from ldap wrapper %d failed: %s\n"
-msgstr "citirea cheii publice a eºuat: %s\n"
+msgstr "citirea cheii publice a eşuat: %s\n"
 
 #, c-format
 msgid "invalid char 0x%02x in host name - not added\n"
@@ -8179,7 +8245,7 @@ msgstr "trimit cheia %s serverului %s %s\n"
 
 #, fuzzy, c-format
 msgid "malloc failed: %s\n"
-msgstr "stergere keyblock a eºuat: %s\n"
+msgstr "stergere keyblock a eşuat: %s\n"
 
 #, c-format
 msgid "start_cert_fetch: invalid pattern '%s'\n"
@@ -8191,16 +8257,16 @@ msgstr ""
 #, fuzzy
 #| msgid "%s: invalid file version %d\n"
 msgid "invalid canonical S-expression found\n"
-msgstr "%s: versiune fiºier invalidã %d\n"
+msgstr "%s: versiune fişier invalidă %d\n"
 
 #, fuzzy, c-format
 msgid "gcry_md_open failed: %s\n"
-msgstr "nu pot deschide fiºierul: %s\n"
+msgstr "nu pot deschide fişierul: %s\n"
 
 #, fuzzy, c-format
 #| msgid "update secret failed: %s\n"
 msgid "oops: ksba_cert_hash failed: %s\n"
-msgstr "actualizarea secretului a eºuat: %s\n"
+msgstr "actualizarea secretului a eşuat: %s\n"
 
 msgid "bad URL encoding detected\n"
 msgstr ""
@@ -8216,7 +8282,7 @@ msgstr "Eroare DO personal pre lung (limita este de %d caractere).\n"
 
 #, fuzzy
 msgid "OCSP request not possible due to Tor mode\n"
-msgstr "cheia secretã \"%s\" nu a fost gãsitã: %s\n"
+msgstr "cheia secretă \"%s\" nu a fost găsită: %s\n"
 
 msgid "OCSP request not possible due to disabled HTTP\n"
 msgstr ""
@@ -8251,7 +8317,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "hashing the OCSP response for '%s' failed: %s\n"
-msgstr "verificarea semnãturii create a eºuat: %s\n"
+msgstr "verificarea semnăturii create a eşuat: %s\n"
 
 msgid "not signed by a default OCSP signer's certificate"
 msgstr ""
@@ -8261,30 +8327,30 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "allocating list item failed: %s\n"
-msgstr "citirea cheii publice a eºuat: %s\n"
+msgstr "citirea cheii publice a eşuat: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error getting new PIN: %s\n"
 msgid "error getting responder ID: %s\n"
-msgstr "eroare la obþinere noului PIN: %s\n"
+msgstr "eroare la obţinere noului PIN: %s\n"
 
 msgid "no suitable certificate found to verify the OCSP response\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "issuer certificate not found: %s\n"
-msgstr "cheia secretã \"%s\" nu a fost gãsitã: %s\n"
+msgstr "cheia secretă \"%s\" nu a fost găsită: %s\n"
 
 msgid "caller did not return the target certificate\n"
 msgstr ""
 
 #, fuzzy
 msgid "caller did not return the issuing certificate\n"
-msgstr "genereazã un certificat de revocare"
+msgstr "generează un certificat de revocare"
 
 #, fuzzy, c-format
 msgid "failed to allocate OCSP context: %s\n"
-msgstr "am eºuat sã stochez cheia: %s\n"
+msgstr "am eşuat să stochez cheia: %s\n"
 
 #, fuzzy, c-format
 #| msgid "%s: can't access: %s\n"
@@ -8314,7 +8380,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting OCSP status for target certificate: %s\n"
-msgstr "eroare la obþinerea numãrului serial: %s\n"
+msgstr "eroare la obţinerea numărului serial: %s\n"
 
 #, c-format
 msgid "certificate status is: %s  (this=%s  next=%s)\n"
@@ -8325,7 +8391,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "certificate has been revoked at: %s due to: %s\n"
-msgstr "NOTÃ: cheia a fost revocatã"
+msgstr "NOTĂ: cheia a fost revocată"
 
 msgid "OCSP responder returned a status in the future\n"
 msgstr ""
@@ -8338,7 +8404,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "assuan_inquire(%s) failed: %s\n"
-msgstr "semnarea a eºuat: %s\n"
+msgstr "semnarea a eşuat: %s\n"
 
 msgid "ldapserver missing"
 msgstr ""
@@ -8348,11 +8414,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "assuan_inquire failed: %s\n"
-msgstr "semnarea a eºuat: %s\n"
+msgstr "semnarea a eşuat: %s\n"
 
 #, fuzzy, c-format
 msgid "fetch_cert_by_url failed: %s\n"
-msgstr "stergere keyblock a eºuat: %s\n"
+msgstr "stergere keyblock a eşuat: %s\n"
 
 #, fuzzy, c-format
 msgid "error sending data: %s\n"
@@ -8360,11 +8426,11 @@ msgstr "eroare trimitere la `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "start_cert_fetch failed: %s\n"
-msgstr "stergere keyblock a eºuat: %s\n"
+msgstr "stergere keyblock a eşuat: %s\n"
 
 #, fuzzy, c-format
 msgid "fetch_next_cert failed: %s\n"
-msgstr "stergere keyblock a eºuat: %s\n"
+msgstr "stergere keyblock a eşuat: %s\n"
 
 #, c-format
 msgid "max_replies %d exceeded\n"
@@ -8372,21 +8438,21 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "can't allocate control structure: %s\n"
-msgstr "nu pot crea fiºier de rezervã `%s': %s\n"
+msgstr "nu pot crea fişier de rezervă `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "failed to allocate assuan context: %s\n"
-msgstr "%s: am eºuat sã creez hashtable: %s\n"
+msgstr "%s: am eşuat să creez hashtable: %s\n"
 
 #, fuzzy, c-format
 #| msgid "failed to initialize the TrustDB: %s\n"
 msgid "failed to initialize the server: %s\n"
-msgstr "am eºuat sã iniþializez TrustDB:%s\n"
+msgstr "am eşuat să iniţializez TrustDB:%s\n"
 
 #, fuzzy, c-format
 #| msgid "failed to store the creation date: %s\n"
 msgid "failed to the register commands with Assuan: %s\n"
-msgstr "am eºuat sã stochez data creãrii: %s\n"
+msgstr "am eşuat să stochez data creării: %s\n"
 
 #, c-format
 msgid "Assuan accept problem: %s\n"
@@ -8395,7 +8461,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "signing failed: %s\n"
 msgid "Assuan processing failed: %s\n"
-msgstr "semnarea a eºuat: %s\n"
+msgstr "semnarea a eşuat: %s\n"
 
 msgid "accepting root CA not marked as a CA"
 msgstr ""
@@ -8410,29 +8476,29 @@ msgstr ""
 
 #, fuzzy
 msgid "checking CRL for"
-msgstr "verificarea semnãturii create a eºuat: %s\n"
+msgstr "verificarea semnăturii create a eşuat: %s\n"
 
 #, fuzzy
 msgid "selfsigned certificate has a BAD signature"
-msgstr "verificã o semnãturã"
+msgstr "verifică o semnătură"
 
 #, fuzzy, c-format
 msgid "checking trustworthiness of root certificate failed: %s\n"
-msgstr "verificarea semnãturii create a eºuat: %s\n"
+msgstr "verificarea semnăturii create a eşuat: %s\n"
 
 #, fuzzy
 msgid "certificate chain is good\n"
-msgstr "preferinþa `%s' duplicatã\n"
+msgstr "preferinţa `%s' duplicată\n"
 
 msgid "DSA requires the use of a 160 bit hash algorithm\n"
-msgstr "DSA necesitã folosirea unui algoritm cu hash de 160 biþi\n"
+msgstr "DSA necesită folosirea unui algoritm cu hash de 160 biţi\n"
 
 msgid "certificate should not have been used for CRL signing\n"
 msgstr ""
 
 #, fuzzy
 msgid "quiet"
-msgstr "terminã"
+msgstr "termină"
 
 msgid "print data out hex encoded"
 msgstr ""
@@ -8457,14 +8523,14 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|run commands from FILE on startup"
-msgstr "|FIªIER|încarcã modulul extensie FIªIER"
+msgstr "|FIŞIER|încarcă modulul extensie FIŞIER"
 
 msgid "run /subst on startup"
 msgstr ""
 
 #, fuzzy
 msgid "Usage: @GPG@-connect-agent [options] (-h for help)"
-msgstr "Folosire: gpg [opþiuni] [fiºiere] (-h pentru ajutor)"
+msgstr "Folosire: gpg [opţiuni] [fişiere] (-h pentru ajutor)"
 
 msgid ""
 "Syntax: @GPG@-connect-agent [options]\n"
@@ -8481,22 +8547,22 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "receiving line failed: %s\n"
-msgstr "citirea cheii publice a eºuat: %s\n"
+msgstr "citirea cheii publice a eşuat: %s\n"
 
 #, fuzzy
 msgid "line too long - skipped\n"
-msgstr "linie prea lungã"
+msgstr "linie prea lungă"
 
 msgid "line shortened due to embedded Nul character\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "unknown command '%s'\n"
-msgstr "opþiune necunoscutã `%s'\n"
+msgstr "opţiune necunoscută `%s'\n"
 
 #, fuzzy, c-format
 msgid "sending line failed: %s\n"
-msgstr "semnarea a eºuat: %s\n"
+msgstr "semnarea a eşuat: %s\n"
 
 #, fuzzy, c-format
 msgid "error sending standard options: %s\n"
@@ -8540,17 +8606,17 @@ msgstr ""
 
 #, fuzzy
 msgid "|N|expire the passphrase after N days"
-msgstr "|N|foloseºte modul frazã-parolã N"
+msgstr "|N|foloseşte modul frază-parolă N"
 
 #, fuzzy
 msgid "do not allow the reuse of old passphrases"
-msgstr "eroare la crearea frazei-parolã: %s\n"
+msgstr "eroare la crearea frazei-parolă: %s\n"
 
 msgid "|N|set the Pinentry timeout to N seconds"
 msgstr ""
 
 msgid "|NAME|use NAME as default secret key"
-msgstr "|NUME|foloseºte NUME ca cheie secretã implicitã"
+msgstr "|NUME|foloseşte NUME ca cheie secretă implicită"
 
 #, fuzzy
 msgid "|NAME|encrypt to user ID NAME as well"
@@ -8578,7 +8644,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|NAME|use encoding NAME for PKCS#12 passphrases"
-msgstr "|NUME|foloseºte algoritm cifrare NUME pentru fraza-parolã"
+msgstr "|NUME|foloseşte algoritm cifrare NUME pentru fraza-parolă"
 
 msgid "do not check CRLs for root certificates"
 msgstr ""
@@ -8607,28 +8673,30 @@ msgstr ""
 msgid "Configuration for OCSP"
 msgstr ""
 
-msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr ""
 
-msgid "GPG Agent"
+msgid "Private Keys"
 msgstr ""
 
-msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr ""
 
-msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr ""
 
-msgid "Key Acquirer"
-msgstr ""
+#, fuzzy
+#| msgid "network error"
+msgid "Network"
+msgstr "eroare reţea"
 
 #, fuzzy
-msgid "PIN and Passphrase Entry"
-msgstr "frazã-parolã incorectã"
+msgid "Passphrase Entry"
+msgstr "frază-parolă incorectă"
 
 #, fuzzy
 msgid "Component not suitable for launching"
-msgstr "cheia publicã nu a fost gãsitã"
+msgstr "cheia publică nu a fost găsită"
 
 #, c-format
 msgid "External verification of component %s failed"
@@ -8666,6 +8734,11 @@ msgstr "articol configurare necunoscut `%s'\n"
 msgid "check global configuration file"
 msgstr "articol configurare necunoscut `%s'\n"
 
+#, fuzzy
+#| msgid "update the trust database"
+msgid "query the software version database"
+msgstr "actualizează baza de date de încredere"
+
 msgid "reload all or a given component"
 msgstr ""
 
@@ -8676,14 +8749,14 @@ msgid "kill a given component"
 msgstr ""
 
 msgid "use as output file"
-msgstr "foloseºte ca fiºier ieºire"
+msgstr "foloseşte ca fişier ieşire"
 
 msgid "activate changes at runtime, if possible"
 msgstr ""
 
 #, fuzzy
 msgid "Usage: @GPGCONF@ [options] (-h for help)"
-msgstr "Folosire: gpg [opþiuni] [fiºiere] (-h pentru ajutor)"
+msgstr "Folosire: gpg [opţiuni] [fişiere] (-h pentru ajutor)"
 
 msgid ""
 "Syntax: @GPGCONF@ [options]\n"
@@ -8695,7 +8768,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Component not found"
-msgstr "cheia publicã nu a fost gãsitã"
+msgstr "cheia publică nu a fost găsită"
 
 #, fuzzy
 msgid "No argument allowed"
@@ -8723,7 +8796,7 @@ msgstr ""
 
 #, fuzzy
 msgid "program filename"
-msgstr "--store [nume_fiºier]"
+msgstr "--store [nume_fişier]"
 
 msgid "secret key file (required)"
 msgstr ""
@@ -8733,7 +8806,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Usage: symcryptrun [options] (-h for help)"
-msgstr "Folosire: gpg [opþiuni] [fiºiere] (-h pentru ajutor)"
+msgstr "Folosire: gpg [opţiuni] [fişiere] (-h pentru ajutor)"
 
 msgid ""
 "Syntax: symcryptrun --class CLASS --program PROGRAM --keyfile KEYFILE "
@@ -8747,7 +8820,7 @@ msgstr "%s nu este permis cu %s!\n"
 
 #, fuzzy, c-format
 msgid "%s on %s failed with status %i\n"
-msgstr "fstat pentru `%s' a eºuat în %s: %s\n"
+msgstr "fstat pentru `%s' a eşuat în %s: %s\n"
 
 #, fuzzy, c-format
 msgid "can't create temporary directory '%s': %s\n"
@@ -8767,11 +8840,11 @@ msgstr "eroare la citire `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error closing %s: %s\n"
-msgstr "eroare în `%s': %s\n"
+msgstr "eroare în `%s': %s\n"
 
 #, fuzzy
 msgid "no --program option provided\n"
-msgstr "nu este suportatã execuþia nici unui program la distanþã\n"
+msgstr "nu este suportată execuţia nici unui program la distanţă\n"
 
 msgid "only --decrypt and --encrypt are supported\n"
 msgstr ""
@@ -8796,23 +8869,23 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "execv failed: %s\n"
-msgstr "actualizarea a eºuat: %s\n"
+msgstr "actualizarea a eşuat: %s\n"
 
 #, fuzzy, c-format
 msgid "select failed: %s\n"
-msgstr "stergere keyblock a eºuat: %s\n"
+msgstr "stergere keyblock a eşuat: %s\n"
 
 #, fuzzy, c-format
 msgid "read failed: %s\n"
-msgstr "actualizarea a eºuat: %s\n"
+msgstr "actualizarea a eşuat: %s\n"
 
 #, fuzzy, c-format
 msgid "pty read failed: %s\n"
-msgstr "actualizarea a eºuat: %s\n"
+msgstr "actualizarea a eşuat: %s\n"
 
 #, fuzzy, c-format
 msgid "waitpid failed: %s\n"
-msgstr "actualizarea a eºuat: %s\n"
+msgstr "actualizarea a eşuat: %s\n"
 
 #, c-format
 msgid "child aborted with status %i\n"
@@ -8820,11 +8893,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "cannot allocate infile string: %s\n"
-msgstr "nu pot deschide fiºierul: %s\n"
+msgstr "nu pot deschide fişierul: %s\n"
 
 #, fuzzy, c-format
 msgid "cannot allocate outfile string: %s\n"
-msgstr "nu pot crea fiºier de rezervã `%s': %s\n"
+msgstr "nu pot crea fişier de rezervă `%s': %s\n"
 
 #, c-format
 msgid "either %s or %s must be given\n"
@@ -8839,31 +8912,45 @@ msgstr "algoritm rezumat %d nu este suportat\n"
 
 #, fuzzy
 msgid "Usage: gpg-check-pattern [options] patternfile (-h for help)\n"
-msgstr "Folosire: gpg [opþiuni] [fiºiere] (-h pentru ajutor)"
+msgstr "Folosire: gpg [opţiuni] [fişiere] (-h pentru ajutor)"
 
 msgid ""
 "Syntax: gpg-check-pattern [options] patternfile\n"
 "Check a passphrase given on stdin against the patternfile\n"
 msgstr ""
 
+#, fuzzy
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "citirea cheii publice a eşuat: %s\n"
+
+#, fuzzy
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "deactivează cheia"
+
+#, fuzzy
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "|algo [fişiere]|afişează rezumate mesaje"
+#~ msgstr[1] "|algo [fişiere]|afişează rezumate mesaje"
+
 #~ msgid "communication problem with gpg-agent\n"
 #~ msgstr "probleme de comunicare cu gpg-agent\n"
 
 #, fuzzy
 #~ msgid "canceled by user\n"
-#~ msgstr "anulatã de utilizator\n"
+#~ msgstr "anulată de utilizator\n"
 
 #, fuzzy
 #~ msgid "problem with the agent\n"
-#~ msgstr "problemã cu agentul: agentul returneazã 0x%lx\n"
+#~ msgstr "problemă cu agentul: agentul returnează 0x%lx\n"
 
 #, fuzzy
 #~ msgid "problem with the agent (unexpected response \"%s\")\n"
-#~ msgstr "problemã cu agentul: agentul returneazã 0x%lx\n"
+#~ msgstr "problemă cu agentul: agentul returnează 0x%lx\n"
 
 #, fuzzy
 #~ msgid "unknown TOFU DB format '%s'\n"
-#~ msgstr "opþiune necunoscutã `%s'\n"
+#~ msgstr "opţiune necunoscută `%s'\n"
 
 #, fuzzy
 #~ msgid ""
@@ -8873,23 +8960,23 @@ msgstr ""
 #~ "%u-bit %s key, ID %s,\n"
 #~ "created %s%s.\n"
 #~ msgstr ""
-#~ "Aveþi nevoie de o frazã-parolã pentru a descuia cheia secretã pt. "
+#~ "Aveţi nevoie de o frază-parolă pentru a descuia cheia secretă pt. "
 #~ "utilizator:\n"
 #~ "\"%.*s\"\n"
-#~ "cheia %u-bit %s, ID %s, creatã %s%s\n"
+#~ "cheia %u-bit %s, ID %s, creată %s%s\n"
 
 #~ msgid ""
 #~ "You need a passphrase to unlock the secret key for\n"
 #~ "user: \"%s\"\n"
 #~ msgstr ""
-#~ "Aveþi nevoie de o frazã-parolã pentru a descuia cheia secretã pentru\n"
+#~ "Aveţi nevoie de o frază-parolă pentru a descuia cheia secretă pentru\n"
 #~ "utilizator: \"%s\"\n"
 
 #~ msgid "%u-bit %s key, ID %s, created %s"
-#~ msgstr "cheia %u-bit %s, ID %s, creatã %s"
+#~ msgstr "cheia %u-bit %s, ID %s, creată %s"
 
 #~ msgid "         (subkey on main key ID %s)"
-#~ msgstr "         (subcheie pe cheia principalã ID %s)"
+#~ msgstr "         (subcheie pe cheia principală ID %s)"
 
 #, fuzzy
 #~| msgid "can't create directory `%s': %s\n"
@@ -8897,29 +8984,26 @@ msgstr ""
 #~ msgstr "nu pot crea directorul `%s': %s\n"
 
 #~ msgid "you found a bug ... (%s:%d)\n"
-#~ msgstr "aþi gãsit un bug ... (%s:%d)\n"
+#~ msgstr "aţi găsit un bug ... (%s:%d)\n"
 
 #, fuzzy
 #~| msgid "%d user IDs without valid self-signatures detected\n"
 #~ msgid "%d user ID without valid self-signature detected\n"
 #~ msgid_plural "%d user IDs without valid self-signatures detected\n"
-#~ msgstr[0] "am gãsit %d ID-uri utilizator fãrã auto-semnãturi valide\n"
-#~ msgstr[1] "am gãsit %d ID-uri utilizator fãrã auto-semnãturi valide\n"
+#~ msgstr[0] "am găsit %d ID-uri utilizator fără auto-semnături valide\n"
+#~ msgstr[1] "am găsit %d ID-uri utilizator fără auto-semnături valide\n"
 
 #~ msgid "moving a key signature to the correct place\n"
-#~ msgstr "mut o semnãturã de cheie în locul corect\n"
+#~ msgstr "mut o semnătură de cheie în locul corect\n"
 
 #~ msgid "%d signatures not checked due to missing keys\n"
-#~ msgstr "%d semnãturi nu au fost verificate din cauza unor chei lipsã\n"
+#~ msgstr "%d semnături nu au fost verificate din cauza unor chei lipsă\n"
 
 #~ msgid "%d signatures not checked due to errors\n"
-#~ msgstr "%d semnãturi nu au fost verificate din cauza unor erori\n"
+#~ msgstr "%d semnături nu au fost verificate din cauza unor erori\n"
 
 #~ msgid "1 user ID without valid self-signature detected\n"
-#~ msgstr "am gãsit 1 ID utilizator fãrã auto-semnãturã validã\n"
-
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "Am ºters %d semnãturi.\n"
+#~ msgstr "am găsit 1 ID utilizator fără auto-semnătură validă\n"
 
 #, fuzzy
 #~ msgid "User ID \"%s\": %d signatures removed\n"
@@ -8929,7 +9013,7 @@ msgstr ""
 #~ "You need a Passphrase to protect your secret key.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Aveþi nevoie de o frazã-parolã pentru a vã proteja cheia secretã.\n"
+#~ "Aveţi nevoie de o frază-parolă pentru a vă proteja cheia secretă.\n"
 #~ "\n"
 
 #, fuzzy
@@ -8937,10 +9021,10 @@ msgstr ""
 #~ "Please enter a passphrase to protect the off-card backup of the new "
 #~ "encryption key."
 #~ msgstr ""
-#~ "Vã rugãm introduceþi fraza-parolã; aceasta este o propoziþie secretã \n"
+#~ "Vă rugăm introduceţi fraza-parolă; aceasta este o propoziţie secretă \n"
 
 #~ msgid "passphrase not correctly repeated; try again"
-#~ msgstr "fraza-parolã nu a fost repetatã corect; mai încercaþi o datã"
+#~ msgstr "fraza-parolă nu a fost repetată corect; mai încercaţi o dată"
 
 #~ msgid "%s.\n"
 #~ msgstr "%s.\n"
@@ -8951,26 +9035,21 @@ msgstr ""
 #~ "using this program with the option \"--edit-key\".\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Nu aveþi nevoie de o frazã-parolã - aceasta este probabil o idee "
-#~ "*proastã*!\n"
-#~ "O sã o fac oricum.  Puteþi schimba fraza-parolã oricând, folosind acest\n"
-#~ "program cu opþiunea \"--edit-key\".\n"
+#~ "Nu aveţi nevoie de o frază-parolă - aceasta este probabil o idee "
+#~ "*proastă*!\n"
+#~ "O să o fac oricum.  Puteţi schimba fraza-parolă oricând, folosind acest\n"
+#~ "program cu opţiunea \"--edit-key\".\n"
 
 #~ msgid "storing key onto card failed: %s\n"
-#~ msgstr "stocarea cheii pe card a eºuat: %s\n"
+#~ msgstr "stocarea cheii pe card a eşuat: %s\n"
 
 #, fuzzy
 #~| msgid "1 bad signature\n"
 #~ msgid "1 good signature\n"
-#~ msgstr "1 semnãturã incorectã\n"
-
-#, fuzzy
-#~| msgid "renaming `%s' to `%s' failed: %s\n"
-#~ msgid "renaming '%s' to '%s' failed: %s\n"
-#~ msgstr "redenumirea `%s' ca `%s' a eºuat: %s\n"
+#~ msgstr "1 semnătură incorectă\n"
 
 #~ msgid "%lu keys cached (%lu signatures)\n"
-#~ msgstr "%lu chei puse în cache (%lu semnãturi)\n"
+#~ msgstr "%lu chei puse în cache (%lu semnături)\n"
 
 #~ msgid "refreshing 1 key from %s\n"
 #~ msgstr "reactualizez 1 cheie de la %s\n"
@@ -8979,18 +9058,18 @@ msgstr ""
 #~ msgstr "trimit cheia %s serverului %s %s\n"
 
 #~ msgid "public key %s is %lu seconds newer than the signature\n"
-#~ msgstr "cheie publicã %s este mai nouã cu %lu secunde decât semnãtura\n"
+#~ msgstr "cheie publică %s este mai nouă cu %lu secunde decât semnătura\n"
 
 #~ msgid ""
 #~ "key %s was created %lu seconds in the future (time warp or clock "
 #~ "problem)\n"
 #~ msgstr ""
-#~ "cheia %s a fost creatã %lu secunde în viitor (warp în timp sau probleme "
+#~ "cheia %s a fost creată %lu secunde în viitor (warp în timp sau probleme "
 #~ "cu ceasul)\n"
 
 #~ msgid "%d marginal(s) needed, %d complete(s) needed, %s trust model\n"
 #~ msgstr ""
-#~ "%d marginal(e) necesare, %d complet(e) necesare, model de încredere %s\n"
+#~ "%d marginal(e) necesare, %d complet(e) necesare, model de încredere %s\n"
 
 #, fuzzy
 #~| msgid "can't open the keyring"
@@ -9007,53 +9086,53 @@ msgstr ""
 #~ msgstr "eroare la citire keyblock secret \"%s\": %s\n"
 
 #~ msgid "Please select at most one subkey.\n"
-#~ msgstr "Vã rugãm selectaþi cel mult o subcheie.\n"
+#~ msgstr "Vă rugăm selectaţi cel mult o subcheie.\n"
 
 #, fuzzy
 #~ msgid "malformed %s environment variable\n"
-#~ msgstr "variabila de mediu GPG_AGENT_INFO anormalã\n"
+#~ msgstr "variabila de mediu GPG_AGENT_INFO anormală\n"
 
 #, fuzzy
 #~ msgid "dirmngr protocol version %d is not supported\n"
 #~ msgstr "gpg-agent versiune protocol %d nu este suportat\n"
 
 #~ msgid "toggle between the secret and public key listings"
-#~ msgstr "comutã între listele de chei secrete ºi publice"
+#~ msgstr "comută între listele de chei secrete şi publice"
 
 #~ msgid "Please use the command \"toggle\" first.\n"
-#~ msgstr "Vã rugãm folosiþi mai întâi comanda \"toggle\".\n"
+#~ msgstr "Vă rugăm folosiţi mai întâi comanda \"toggle\".\n"
 
 #, fuzzy
 #~ msgid "Passphrase"
-#~ msgstr "frazã-parolã incorectã"
+#~ msgstr "frază-parolă incorectă"
 
 #, fuzzy
 #~| msgid "WARNING: keyserver option `%s' is not used on this platform\n"
 #~ msgid "WARNING: keyserver option '%s' is not used on this platform\n"
 #~ msgstr ""
-#~ "AVERTISMENT: opþiunile serverului de chei `%s' nu sunt folosite pe "
-#~ "aceastã platformã\n"
+#~ "AVERTISMENT: opţiunile serverului de chei `%s' nu sunt folosite pe "
+#~ "această platformă\n"
 
 #~ msgid "gpg-agent is not available in this session\n"
-#~ msgstr "gpg-agent nu este disponibil în aceastã sesiune\n"
+#~ msgstr "gpg-agent nu este disponibil în această sesiune\n"
 
 #, fuzzy
 #~ msgid "use a standard location for the socket"
-#~ msgstr "seteazã lista de preferinþe pentru ID-urile utilizator selectate"
+#~ msgstr "setează lista de preferinţe pentru ID-urile utilizator selectate"
 
 #, fuzzy
 #~ msgid "Usage: gpg-agent [options] (-h for help)"
-#~ msgstr "Folosire: gpg [opþiuni] [fiºiere] (-h pentru ajutor)"
+#~ msgstr "Folosire: gpg [opţiuni] [fişiere] (-h pentru ajutor)"
 
 #~ msgid "malformed GPG_AGENT_INFO environment variable\n"
-#~ msgstr "variabila de mediu GPG_AGENT_INFO anormalã\n"
+#~ msgstr "variabila de mediu GPG_AGENT_INFO anormală\n"
 
 #~ msgid "gpg-agent protocol version %d is not supported\n"
 #~ msgstr "gpg-agent versiune protocol %d nu este suportat\n"
 
 #, fuzzy
 #~ msgid "can't fdopen pipe for reading: %s\n"
-#~ msgstr "nu pot deschide fiºierul: %s\n"
+#~ msgstr "nu pot deschide fişierul: %s\n"
 
 #, fuzzy
 #~ msgid "error creating socket: %s\n"
@@ -9061,16 +9140,16 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "host not found"
-#~ msgstr "[ID utilizator nu a fost gãsit]"
+#~ msgstr "[ID utilizator nu a fost găsit]"
 
 #~ msgid "unknown key protection algorithm\n"
-#~ msgstr "algoritm de protecþie a cheii necunoscut\n"
+#~ msgstr "algoritm de protecţie a cheii necunoscut\n"
 
 #~ msgid "secret parts of key are not available\n"
-#~ msgstr "pãrþi secrete ale cheii nu sunt disponibile\n"
+#~ msgstr "părţi secrete ale cheii nu sunt disponibile\n"
 
 #~ msgid "secret key already stored on a card\n"
-#~ msgstr "cheia secretã deja stocatã pe un card\n"
+#~ msgstr "cheia secretă deja stocată pe un card\n"
 
 #, fuzzy
 #~ msgid "error writing key to card: %s\n"
@@ -9079,133 +9158,133 @@ msgstr ""
 #~ msgid ""
 #~ "you can only encrypt to RSA keys of 2048 bits or less in --pgp2 mode\n"
 #~ msgstr ""
-#~ "în modul --pgp2 puteþi cifra numai cu chei RSA de 2048 biþi sau mai "
-#~ "puþin\n"
+#~ "în modul --pgp2 puteţi cifra numai cu chei RSA de 2048 biţi sau mai "
+#~ "puţin\n"
 
 #~ msgid ""
 #~ "unable to use the IDEA cipher for all of the keys you are encrypting to.\n"
 #~ msgstr ""
 #~ "nu pot folosi cifrul IDEA pentru pentru toate cheile pentru care "
-#~ "cifraþi.\n"
+#~ "cifraţi.\n"
 
 #, fuzzy
 #~ msgid "remove the passphrase from exported subkeys"
-#~ msgstr "revocã cheia sau subcheile selectate"
+#~ msgstr "revocă cheia sau subcheile selectate"
 
 #~ msgid "key %s: not protected - skipped\n"
-#~ msgstr "cheia %s: nu e protejatã - sãritã\n"
+#~ msgstr "cheia %s: nu e protejată - sărită\n"
 
 #, fuzzy
 #~ msgid "failed to unprotect the subkey: %s\n"
-#~ msgstr "am eºuat sã stochez cheia: %s\n"
+#~ msgstr "am eşuat să stochez cheia: %s\n"
 
 #~ msgid "WARNING: secret key %s does not have a simple SK checksum\n"
-#~ msgstr "AVERTISMENT: cheia secretã %s nu are un checksum SK simplu\n"
+#~ msgstr "AVERTISMENT: cheia secretă %s nu are un checksum SK simplu\n"
 
 #~ msgid "too many entries in pk cache - disabled\n"
-#~ msgstr "prea multe intrãri în cache-ul pk - deactivat\n"
+#~ msgstr "prea multe intrări în cache-ul pk - deactivat\n"
 
 #~ msgid "no secret subkey for public subkey %s - ignoring\n"
-#~ msgstr "nici o subcheie secretã pentru subcheia publicã %s - ignoratã\n"
+#~ msgstr "nici o subcheie secretă pentru subcheia publică %s - ignorată\n"
 
 #~ msgid "key %s: secret key without public key - skipped\n"
-#~ msgstr "cheia %s: cheie secretã fãrã cheie publicã - sãritã\n"
+#~ msgstr "cheia %s: cheie secretă fără cheie publică - sărită\n"
 
 #~ msgid "usage: gpg [options] "
-#~ msgstr "folosire: gpg [opþiuni] "
+#~ msgstr "folosire: gpg [opţiuni] "
 
 #~ msgid ""
 #~ "you can only make detached or clear signatures while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "puteþi crea doar semnãturi detaºate sau în clar câtã vreme sunteþi în "
+#~ "puteţi crea doar semnături detaşate sau în clar câtă vreme sunteţi în "
 #~ "modul --pgp2\n"
 
 #~ msgid "you can't sign and encrypt at the same time while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "nu puteþi semna ºi cifra în acelaºi timp câtã vreme sunteþi în modul --"
+#~ "nu puteţi semna şi cifra în acelaşi timp câtă vreme sunteţi în modul --"
 #~ "pgp2\n"
 
 #~ msgid ""
 #~ "you must use files (and not a pipe) when working with --pgp2 enabled.\n"
 #~ msgstr ""
-#~ "trebuie sã folosiþi fiºiere (ºi nu un pipe) când lucraþi cu modul --pgp2 "
+#~ "trebuie să folosiţi fişiere (şi nu un pipe) când lucraţi cu modul --pgp2 "
 #~ "activat.\n"
 
 #~ msgid "encrypting a message in --pgp2 mode requires the IDEA cipher\n"
-#~ msgstr "cifrarea unui mesaj în modul --pgp2 necesitã un cifru IDEA\n"
+#~ msgstr "cifrarea unui mesaj în modul --pgp2 necesită un cifru IDEA\n"
 
 #, fuzzy
 #~ msgid "create a public key when importing a secret key"
-#~ msgstr "cheia publicã nu se potriveºte cu cheia secretã!\n"
+#~ msgstr "cheia publică nu se potriveşte cu cheia secretă!\n"
 
 #~ msgid "key %s: already in secret keyring\n"
-#~ msgstr "cheia %s: deja în inelul de chei secrete\n"
+#~ msgstr "cheia %s: deja în inelul de chei secrete\n"
 
 #~ msgid "key %s: secret key not found: %s\n"
-#~ msgstr "cheia %s: cheia secretã nu a fost gãsitã: %s\n"
+#~ msgstr "cheia %s: cheia secretă nu a fost găsită: %s\n"
 
 #~ msgid "NOTE: a key's S/N does not match the card's one\n"
-#~ msgstr "NOTÃ: S/N-ul unei chei nu se potriveºte cu cel al cardului\n"
+#~ msgstr "NOTĂ: S/N-ul unei chei nu se potriveşte cu cel al cardului\n"
 
 #~ msgid "NOTE: primary key is online and stored on card\n"
-#~ msgstr "NOTÃ: cheia primarã este online ºi stocatã pe card\n"
+#~ msgstr "NOTĂ: cheia primară este online şi stocată pe card\n"
 
 #~ msgid "NOTE: secondary key is online and stored on card\n"
-#~ msgstr "NOTÃ: cheia secundarã este online ºi stocatã pe card\n"
+#~ msgstr "NOTĂ: cheia secundară este online şi stocată pe card\n"
 
 #~ msgid ""
 #~ "You may not make an OpenPGP signature on a PGP 2.x key while in --pgp2 "
 #~ "mode.\n"
 #~ msgstr ""
-#~ "Nu puteþi crea o semnãturã OpenPGP pe o cheie PGP 2.x câtã vreme sunteþi "
-#~ "în modul --pgp2.\n"
+#~ "Nu puteţi crea o semnătură OpenPGP pe o cheie PGP 2.x câtă vreme sunteţi "
+#~ "în modul --pgp2.\n"
 
 #~ msgid "This would make the key unusable in PGP 2.x.\n"
-#~ msgstr "Aceasta va face cheia de nefolosit în PGP 2.x.\n"
+#~ msgstr "Aceasta va face cheia de nefolosit în PGP 2.x.\n"
 
 #~ msgid "This key is not protected.\n"
-#~ msgstr "Aceastã cheie nu este protejatã.\n"
+#~ msgstr "Această cheie nu este protejată.\n"
 
 #~ msgid "Key is protected.\n"
-#~ msgstr "Cheia este protejatã.\n"
+#~ msgstr "Cheia este protejată.\n"
 
 #~ msgid "Can't edit this key: %s\n"
-#~ msgstr "Nu pot edita aceastã cheie: %s\n"
+#~ msgstr "Nu pot edita această cheie: %s\n"
 
 #~ msgid ""
 #~ "Enter the new passphrase for this secret key.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Introduceþi noua frazã-parolã pentru acestã cheie secretã.\n"
+#~ "Introduceţi noua frază-parolă pentru acestă cheie secretă.\n"
 #~ "\n"
 
 #~ msgid ""
 #~ "You don't want a passphrase - this is probably a *bad* idea!\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Nu doriþi o frazã-parolã - aceasta este probabil o idee *proastã*!\n"
+#~ "Nu doriţi o frază-parolă - aceasta este probabil o idee *proastă*!\n"
 #~ "\n"
 
 #~ msgid "Do you really want to do this? (y/N) "
-#~ msgstr "Doriþi într-adevãr sã faceþi acest lucru? (d/N) "
+#~ msgstr "Doriţi într-adevăr să faceţi acest lucru? (d/N) "
 
 #~ msgid "Please remove selections from the secret keys.\n"
-#~ msgstr "Vã rugãm ºtergeþi selecþiile din cheile secrete.\n"
+#~ msgstr "Vă rugăm ştergeţi selecţiile din cheile secrete.\n"
 
 #~ msgid "No corresponding signature in secret ring\n"
-#~ msgstr "Nici o semnãturã corespunzãtoare în inelul secret\n"
+#~ msgstr "Nici o semnătură corespunzătoare în inelul secret\n"
 
 #~ msgid "writing secret key stub to `%s'\n"
-#~ msgstr "scriu talonul (stub) cheii secrete în `%s'\n"
+#~ msgstr "scriu talonul (stub) cheii secrete în `%s'\n"
 
 #~ msgid "writing secret key to `%s'\n"
-#~ msgstr "scriu cheia secretã în `%s'\n"
+#~ msgstr "scriu cheia secretă în `%s'\n"
 
 #~ msgid "no writable secret keyring found: %s\n"
-#~ msgstr "nu am gãsit nici un inel de chei secret de scris: %s\n"
+#~ msgstr "nu am găsit nici un inel de chei secret de scris: %s\n"
 
 #~ msgid "WARNING: 2 files with confidential information exists.\n"
-#~ msgstr "AVERTISMENT: existã 2 fiºiere cu informaþii confidenþiale.\n"
+#~ msgstr "AVERTISMENT: există 2 fişiere cu informaţii confidenţiale.\n"
 
 #~ msgid "%s is the unchanged one\n"
 #~ msgstr "%s este cel neschimbat\n"
@@ -9214,7 +9293,7 @@ msgstr ""
 #~ msgstr "%s este cel nou\n"
 
 #~ msgid "Please fix this possible security flaw\n"
-#~ msgstr "Vã rugãm reparaþi aceastã deficienþã posibilã de securitate\n"
+#~ msgstr "Vă rugăm reparaţi această deficienţă posibilă de securitate\n"
 
 #, fuzzy
 #~ msgid "searching for names from %s server %s\n"
@@ -9232,7 +9311,7 @@ msgstr ""
 
 #~ msgid "WARNING: keyserver handler from a different version of GnuPG (%s)\n"
 #~ msgstr ""
-#~ "AVERTISMENT: manipulator server de chei dintr-o versiune diferitã de "
+#~ "AVERTISMENT: manipulator server de chei dintr-o versiune diferită de "
 #~ "GnuPG (%s)\n"
 
 #~ msgid "keyserver did not send VERSION\n"
@@ -9240,23 +9319,23 @@ msgstr ""
 
 #~ msgid "external keyserver calls are not supported in this build\n"
 #~ msgstr ""
-#~ "apeluri cãtre server de chei extern nu este suportat de acest program\n"
+#~ "apeluri către server de chei extern nu este suportat de acest program\n"
 
 #~ msgid "no handler for keyserver scheme `%s'\n"
 #~ msgstr ""
 #~ "nici un manipulator (handler) pentru schema serverului de chei `%s'\n"
 
 #~ msgid "action `%s' not supported with keyserver scheme `%s'\n"
-#~ msgstr "acþiunea `%s' nu este suportatã cu schema serverului de chei `%s'\n"
+#~ msgstr "acţiunea `%s' nu este suportată cu schema serverului de chei `%s'\n"
 
 #~ msgid "%s does not support handler version %d\n"
-#~ msgstr "%s nu suportã versiunea de manipulator (handler) %d\n"
+#~ msgstr "%s nu suportă versiunea de manipulator (handler) %d\n"
 
 #~ msgid "keyserver timed out\n"
-#~ msgstr "serverul de chei a epuizat timpul de aºteptare (timed out)\n"
+#~ msgstr "serverul de chei a epuizat timpul de aşteptare (timed out)\n"
 
 #~ msgid "keyserver internal error\n"
-#~ msgstr "eroare internã server de chei\n"
+#~ msgstr "eroare internă server de chei\n"
 
 #~ msgid "keyserver communications error: %s\n"
 #~ msgstr "eroare de comunicare server de chei: %s\n"
@@ -9266,124 +9345,124 @@ msgstr ""
 #~ msgstr "AVERTISMENT: nu pot reactualiza cheia %s via %s: %s\n"
 
 #~ msgid "invalid root packet detected in proc_tree()\n"
-#~ msgstr "pachet root invalid detectat în proc_tree()\n"
+#~ msgstr "pachet root invalid detectat în proc_tree()\n"
 
 #~ msgid "the IDEA cipher plugin is not present\n"
 #~ msgstr "plugin-ul pentru cifrare IDEA nu este prezent\n"
 
 #~ msgid "no corresponding public key: %s\n"
-#~ msgstr "nici o cheie publicã corespunzãtoare: %s\n"
+#~ msgstr "nici o cheie publică corespunzătoare: %s\n"
 
 #~ msgid "public key does not match secret key!\n"
-#~ msgstr "cheia publicã nu se potriveºte cu cheia secretã!\n"
+#~ msgstr "cheia publică nu se potriveşte cu cheia secretă!\n"
 
 #~ msgid "unknown protection algorithm\n"
-#~ msgstr "algoritm de protecþie necunoscut\n"
+#~ msgstr "algoritm de protecţie necunoscut\n"
 
 #~ msgid "NOTE: This key is not protected!\n"
-#~ msgstr "NOTÃ: Aceastã cheie nu este protejatã!\n"
+#~ msgstr "NOTĂ: Această cheie nu este protejată!\n"
 
 #~ msgid "protection digest %d is not supported\n"
 #~ msgstr "algoritm rezumat %d nu este suportat\n"
 
 #~ msgid "Invalid passphrase; please try again"
-#~ msgstr "Frazã-parolã invalidã; vã rugãm mai încercaþi o datã"
+#~ msgstr "Frază-parolă invalidă; vă rugăm mai încercaţi o dată"
 
 #~ msgid "%s ...\n"
 #~ msgstr "%s ...\n"
 
 #~ msgid "WARNING: Weak key detected - please change passphrase again.\n"
 #~ msgstr ""
-#~ "AVERTISMENT: Cheie slabã detectatã - vã rugãm schimbaþi din nou fraza-"
-#~ "parolã.\n"
+#~ "AVERTISMENT: Cheie slabă detectată - vă rugăm schimbaţi din nou fraza-"
+#~ "parolă.\n"
 
 #~ msgid ""
 #~ "generating the deprecated 16-bit checksum for secret key protection\n"
 #~ msgstr ""
-#~ "generez învechitul checksum de 16-bit pentru protecþia cheii secrete\n"
+#~ "generez învechitul checksum de 16-bit pentru protecţia cheii secrete\n"
 
 #~ msgid ""
 #~ "you can only detach-sign with PGP 2.x style keys while in --pgp2 mode\n"
-#~ msgstr "puteþi semna-dataºat cu chei stil PGP 2.x numai în modul --pgp2\n"
+#~ msgstr "puteţi semna-dataşat cu chei stil PGP 2.x numai în modul --pgp2\n"
 
 #~ msgid ""
 #~ "you can only clearsign with PGP 2.x style keys while in --pgp2 mode\n"
-#~ msgstr "puteþi semna-în-clar cu chei stil PGP 2.x în modul --pgp2\n"
+#~ msgstr "puteţi semna-în-clar cu chei stil PGP 2.x în modul --pgp2\n"
 
 #, fuzzy
 #~ msgid "Usage: scdaemon [options] (-h for help)"
-#~ msgstr "Folosire: gpg [opþiuni] [fiºiere] (-h pentru ajutor)"
+#~ msgstr "Folosire: gpg [opţiuni] [fişiere] (-h pentru ajutor)"
 
 #, fuzzy
 #~ msgid "Usage: gpgsm [options] [files] (-h for help)"
-#~ msgstr "Folosire: gpg [opþiuni] [fiºiere] (-h pentru ajutor)"
+#~ msgstr "Folosire: gpg [opţiuni] [fişiere] (-h pentru ajutor)"
 
 #, fuzzy
 #~ msgid "usage: gpgconf [options] "
-#~ msgstr "folosire: gpg [opþiuni] "
+#~ msgstr "folosire: gpg [opţiuni] "
 
 #, fuzzy
 #~ msgid "failed to allocated keyDB handle\n"
-#~ msgstr "am eºuat sã stochez cheia: %s\n"
+#~ msgstr "am eşuat să stochez cheia: %s\n"
 
 #~ msgid "Command> "
-#~ msgstr "Comandã> "
+#~ msgstr "Comandă> "
 
 #~ msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
-#~ msgstr "trustdb este coruptã; rulaþi \"gpg --fix-trustdb\".\n"
+#~ msgstr "trustdb este coruptă; rulaţi \"gpg --fix-trustdb\".\n"
 
 #~ msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
-#~ msgstr "Raportaþi bug-uri la <gnupg-bugs@gnu.org>.\n"
+#~ msgstr "Raportaţi bug-uri la <gnupg-bugs@gnu.org>.\n"
 
 #, fuzzy
 #~ msgid "Please report bugs to "
-#~ msgstr "Raportaþi bug-uri la <gnupg-bugs@gnu.org>.\n"
+#~ msgstr "Raportaţi bug-uri la <gnupg-bugs@gnu.org>.\n"
 
 #~ msgid "DSA keypair will have %u bits.\n"
-#~ msgstr "Perechea de chei DSA va avea %u biþi.\n"
+#~ msgstr "Perechea de chei DSA va avea %u biţi.\n"
 
 #~ msgid "Repeat passphrase\n"
-#~ msgstr "Repetaþi fraza-parolã\n"
+#~ msgstr "Repetaţi fraza-parolă\n"
 
 #~ msgid "|A|Admin PIN"
 #~ msgstr "|A|PIN Admin"
 
 #, fuzzy
 #~ msgid "read options from file"
-#~ msgstr "citesc opþiuni din `%s'\n"
+#~ msgstr "citesc opţiuni din `%s'\n"
 
 #~ msgid "generate PGP 2.x compatible messages"
-#~ msgstr "genereazã mesaje compatibile cu PGP 2.x"
+#~ msgstr "generează mesaje compatibile cu PGP 2.x"
 
 #, fuzzy
 #~ msgid "|[FILE]|make a signature"
-#~ msgstr "|[fiºier]|creazã o semnãturã"
+#~ msgstr "|[fişier]|crează o semnătură"
 
 #, fuzzy
 #~ msgid "|[FILE]|make a clear text signature"
-#~ msgstr "|[fiºier]|creazã o semnãturã text în clar"
+#~ msgstr "|[fişier]|crează o semnătură text în clar"
 
 #~ msgid "use the default key as default recipient"
-#~ msgstr "foloseºte cheia implicitã ca destinatar implicit"
+#~ msgstr "foloseşte cheia implicită ca destinatar implicit"
 
 #~ msgid "force v3 signatures"
-#~ msgstr "forþeazã semnãturi v3"
+#~ msgstr "forţează semnături v3"
 
 #~ msgid "always use a MDC for encryption"
-#~ msgstr "foloseºte întotdeauna un MDC pentru cifrare"
+#~ msgstr "foloseşte întotdeauna un MDC pentru cifrare"
 
 #~ msgid "add this secret keyring to the list"
-#~ msgstr "adaugã acest inel de chei secret la listã"
+#~ msgstr "adaugă acest inel de chei secret la listă"
 
 #~ msgid "|FILE|load extension module FILE"
-#~ msgstr "|FIªIER|încarcã modulul extensie FIªIER"
+#~ msgstr "|FIŞIER|încarcă modulul extensie FIŞIER"
 
 #~ msgid "|N|use compress algorithm N"
-#~ msgstr "|N|foloseºte algoritm compresie N"
+#~ msgstr "|N|foloseşte algoritm compresie N"
 
 #, fuzzy
 #~ msgid "remove key from the public keyring"
-#~ msgstr "ºterge chei de pe inelul de chei public"
+#~ msgstr "şterge chei de pe inelul de chei public"
 
 #~ msgid ""
 #~ "It's up to you to assign a value here; this value will never be exported\n"
@@ -9391,10 +9470,10 @@ msgstr ""
 #~ "nothing\n"
 #~ "to do with the (implicitly created) web-of-certificates."
 #~ msgstr ""
-#~ "Este sarcina d-voastrã sã atribuiþi o valoare aici; aceastã valoare\n"
-#~ "nu va fi niciodatã exportatã pentru o terþã parte.  Trebuie sã\n"
-#~ "implementãm reþeaua-de-încredere; aceasta nu are nimic în comun cu\n"
-#~ "certificatele-de-reþea (create implicit)."
+#~ "Este sarcina d-voastră să atribuiţi o valoare aici; această valoare\n"
+#~ "nu va fi niciodată exportată pentru o terţă parte.  Trebuie să\n"
+#~ "implementăm reţeaua-de-încredere; aceasta nu are nimic în comun cu\n"
+#~ "certificatele-de-reţea (create implicit)."
 
 #~ msgid ""
 #~ "To build the Web-of-Trust, GnuPG needs to know which keys are\n"
@@ -9402,19 +9481,19 @@ msgstr ""
 #~ "access to the secret key.  Answer \"yes\" to set this key to\n"
 #~ "ultimately trusted\n"
 #~ msgstr ""
-#~ "Pentru a construi Reþeaua-de-Încredere, GnuPG trebuie sã ºtie care chei\n"
-#~ "au nivel de încredere suprem - acestea de obicei sunt cheile pentru care\n"
-#~ "aveþi acces la cheia secretã.  Rãspundeþi \"da\" pentru a seta\n"
-#~ "aceastã cheie cu nivel de încredere suprem\n"
+#~ "Pentru a construi Reţeaua-de-Încredere, GnuPG trebuie să ştie care chei\n"
+#~ "au nivel de încredere suprem - acestea de obicei sunt cheile pentru care\n"
+#~ "aveţi acces la cheia secretă.  Răspundeţi \"da\" pentru a seta\n"
+#~ "această cheie cu nivel de încredere suprem\n"
 
 #~ msgid "If you want to use this untrusted key anyway, answer \"yes\"."
 #~ msgstr ""
-#~ "Dacã doriþi oricum sã folosiþi aceastã cheie fãrã încredere, rãspundeþi "
+#~ "Dacă doriţi oricum să folosiţi această cheie fără încredere, răspundeţi "
 #~ "\"da\"."
 
 #~ msgid ""
 #~ "Enter the user ID of the addressee to whom you want to send the message."
-#~ msgstr "Introduceþi ID-ul utilizator al destinatarului mesajului."
+#~ msgstr "Introduceţi ID-ul utilizator al destinatarului mesajului."
 
 #~ msgid ""
 #~ "Select the algorithm to use.\n"
@@ -9428,16 +9507,16 @@ msgstr ""
 #~ "\n"
 #~ "The first (primary) key must always be a key which is capable of signing."
 #~ msgstr ""
-#~ "Selectaþi algoritmul de folosit.\n"
+#~ "Selectaţi algoritmul de folosit.\n"
 #~ "\n"
-#~ "DSA (aka DSS) este Digital Signature Algorithm ºi poate fi folosit numai\n"
-#~ "pentru semnãturi.\n"
+#~ "DSA (aka DSS) este Digital Signature Algorithm şi poate fi folosit numai\n"
+#~ "pentru semnături.\n"
 #~ "\n"
 #~ "Elgamal este un algoritm numai pentru cifrare.\n"
 #~ "\n"
-#~ "RSA poate fi folosit pentru semnãturi sau cifrare.\n"
+#~ "RSA poate fi folosit pentru semnături sau cifrare.\n"
 #~ "\n"
-#~ "Prima cheie (primarã) trebuie sã fie întotdeauna o cheie cu care se poate "
+#~ "Prima cheie (primară) trebuie să fie întotdeauna o cheie cu care se poate "
 #~ "semna."
 
 #~ msgid ""
@@ -9445,15 +9524,15 @@ msgstr ""
 #~ "encryption.  This algorithm should only be used in certain domains.\n"
 #~ "Please consult your security expert first."
 #~ msgstr ""
-#~ "În general nu este o idee bunã sã folosiþi aceeaºi cheie ºi pentru\n"
-#~ "semnare ºi pentru cifrare.  Acest algoritm ar trebui folosit numai\n"
-#~ "în anumite domenii.  Vã rugãm consultaþi mai întâi un expert în domeniu."
+#~ "În general nu este o idee bună să folosiţi aceeaşi cheie şi pentru\n"
+#~ "semnare şi pentru cifrare.  Acest algoritm ar trebui folosit numai\n"
+#~ "în anumite domenii.  Vă rugăm consultaţi mai întâi un expert în domeniu."
 
 #~ msgid "Enter the size of the key"
-#~ msgstr "Introduceþi lungimea cheii"
+#~ msgstr "Introduceţi lungimea cheii"
 
 #~ msgid "Answer \"yes\" or \"no\""
-#~ msgstr "Rãspundeþi \"da\" sau \"nu\""
+#~ msgstr "Răspundeţi \"da\" sau \"nu\""
 
 #~ msgid ""
 #~ "Enter the required value as shown in the prompt.\n"
@@ -9461,19 +9540,19 @@ msgstr ""
 #~ "get a good error response - instead the system tries to interpret\n"
 #~ "the given value as an interval."
 #~ msgstr ""
-#~ "Introduceþi valoarea cerutã precum a arãtat la prompt.\n"
-#~ "Este posibil sã introduceþi o datã ISO (AAAA-LL-ZZ) dar nu veþi\n"
-#~ "obþine un rãspuns de eroare bun - în loc sistemul încearcã sã\n"
-#~ "interpreteze valoare datã ca un interval."
+#~ "Introduceţi valoarea cerută precum a arătat la prompt.\n"
+#~ "Este posibil să introduceţi o dată ISO (AAAA-LL-ZZ) dar nu veţi\n"
+#~ "obţine un răspuns de eroare bun - în loc sistemul încearcă să\n"
+#~ "interpreteze valoare dată ca un interval."
 
 #~ msgid "Enter the name of the key holder"
-#~ msgstr "Introduceþi numele deþinãtorului cheii"
+#~ msgstr "Introduceţi numele deţinătorului cheii"
 
 #~ msgid "please enter an optional but highly suggested email address"
-#~ msgstr "vã rugãm introduceþi o adresã de email (opþionalã dar recomandatã)"
+#~ msgstr "vă rugăm introduceţi o adresă de email (opţională dar recomandată)"
 
 #~ msgid "Please enter an optional comment"
-#~ msgstr "Vã rugãm introduceþi un comentriu opþional"
+#~ msgstr "Vă rugăm introduceţi un comentriu opţional"
 
 #~ msgid ""
 #~ "N  to change the name.\n"
@@ -9491,7 +9570,7 @@ msgstr ""
 #~ msgid ""
 #~ "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
 #~ msgstr ""
-#~ "Rãspundeþi \"da\" (sau numai \"d\") dacã sunteþi OK sã generaþi subcheia."
+#~ "Răspundeţi \"da\" (sau numai \"d\") dacă sunteţi OK să generaţi subcheia."
 
 #~ msgid ""
 #~ "When you sign a user ID on a key, you should first verify that the key\n"
@@ -9536,68 +9615,68 @@ msgstr ""
 #~ "\n"
 #~ "If you don't know what the right answer is, answer \"0\"."
 #~ msgstr ""
-#~ "Când semnaþi un ID utilizator pe o cheie ar trebui sã verificaþi mai "
-#~ "întâi\n"
-#~ "cã cheia aparþine persoanei numite în ID-ul utilizator.  Este util ºi "
+#~ "Când semnaţi un ID utilizator pe o cheie ar trebui să verificaţi mai "
+#~ "întâi\n"
+#~ "că cheia aparţine persoanei numite în ID-ul utilizator.  Este util şi "
 #~ "altora\n"
-#~ "sã ºtie cât de atent aþi verificat acest lucru.\n"
+#~ "să ştie cât de atent aţi verificat acest lucru.\n"
 #~ "\n"
-#~ "\"0\" înseamnã cã nu pretindeþi nimic despre cât de atent aþi verificat "
+#~ "\"0\" înseamnă că nu pretindeţi nimic despre cât de atent aţi verificat "
 #~ "cheia\n"
-#~ "\"1\" înseamnã cã credeþi cã cheia este a persoanei ce pretinde cã este\n"
-#~ "    proprietarul ei, dar n-aþi putut, sau nu aþi verificat deloc cheia.\n"
-#~ "    Aceasta este utilã pentru verificare \"persona\", unde semnaþi cheia\n"
+#~ "\"1\" înseamnă că credeţi că cheia este a persoanei ce pretinde că este\n"
+#~ "    proprietarul ei, dar n-aţi putut, sau nu aţi verificat deloc cheia.\n"
+#~ "    Aceasta este utilă pentru verificare \"persona\", unde semnaţi cheia\n"
 #~ "    unui utilizator pseudonim.\n"
 #~ "\n"
-#~ "\"2\" înseamnã cã aþi fãcut o verificare supericialã a cheii.  De "
+#~ "\"2\" înseamnă că aţi făcut o verificare supericială a cheii.  De "
 #~ "exemplu,\n"
-#~ "    aceasta ar putea însemna cã aþi verificat amprenta cheii ºi aþi "
+#~ "    aceasta ar putea însemna că aţi verificat amprenta cheii şi aţi "
 #~ "verificat\n"
-#~ "    ID-ul utilizator de pe cheie cu un ID cu pozã.\n"
+#~ "    ID-ul utilizator de pe cheie cu un ID cu poză.\n"
 #~ "\n"
-#~ "\"3\" înseamnã cã aþi fãcut o verificare extensivã a cheii.  De exemplu,\n"
-#~ "    aceasta ar putea însemna cã aþi verificat amprenta cheii cu "
+#~ "\"3\" înseamnă că aţi făcut o verificare extensivă a cheii.  De exemplu,\n"
+#~ "    aceasta ar putea însemna că aţi verificat amprenta cheii cu "
 #~ "proprietarul\n"
-#~ "    cheii în persoanã, cã aþi verificat folosind un document dificil de\n"
-#~ "    falsificat cu pozã (cum ar fi un paºaport) cã numele proprietarului "
+#~ "    cheii în persoană, că aţi verificat folosind un document dificil de\n"
+#~ "    falsificat cu poză (cum ar fi un paşaport) că numele proprietarului "
 #~ "cheii\n"
-#~ "    este acelaºi cu numele ID-ului utilizator al cheii ºi cã aþi "
+#~ "    este acelaşi cu numele ID-ului utilizator al cheii şi că aţi "
 #~ "verificat\n"
-#~ "    (schimbând emailuri) cã adresa de email de pe cheie aparþine "
+#~ "    (schimbând emailuri) că adresa de email de pe cheie aparţine "
 #~ "proprietarului\n"
 #~ "cheii.\n"
 #~ "\n"
-#~ "De notat cã exemplele date pentru nivelele 2 ºi 3 ceva mai sus sunt "
+#~ "De notat că exemplele date pentru nivelele 2 şi 3 ceva mai sus sunt "
 #~ "*numai*\n"
-#~ "exemple. La urma urmei, d-voastrã decideþi ce înseamnã \"superficial\" "
-#~ "ºi\n"
-#~ "\"extensiv\" pentru d-voastrã când semnaþi alte chei.\n"
+#~ "exemple. La urma urmei, d-voastră decideţi ce înseamnă \"superficial\" "
+#~ "şi\n"
+#~ "\"extensiv\" pentru d-voastră când semnaţi alte chei.\n"
 #~ "\n"
-#~ "Dacã nu ºtiþi care este rãspunsul, rãspundeþi \"0\"."
+#~ "Dacă nu ştiţi care este răspunsul, răspundeţi \"0\"."
 
 #~ msgid "Answer \"yes\" if you want to sign ALL the user IDs"
-#~ msgstr "Rãspundeþi \"da\" dacã doriþi sã semnaþi TOATE ID-urile utilizator"
+#~ msgstr "Răspundeţi \"da\" dacă doriţi să semnaţi TOATE ID-urile utilizator"
 
 #~ msgid ""
 #~ "Answer \"yes\" if you really want to delete this user ID.\n"
 #~ "All certificates are then also lost!"
 #~ msgstr ""
-#~ "Rãspundeþi \"da\" dacã într-adevãr doriþi sã ºtergeþi acest ID "
+#~ "Răspundeţi \"da\" dacă într-adevăr doriţi să ştergeţi acest ID "
 #~ "utilizator.\n"
 #~ "Toate certificatele sunt de asemenea pierdute!"
 
 #~ msgid "Answer \"yes\" if it is okay to delete the subkey"
-#~ msgstr "Rãspundeþi \"da\" dacã este OK sã ºtergeþi subcheia"
+#~ msgstr "Răspundeţi \"da\" dacă este OK să ştergeţi subcheia"
 
 #~ msgid ""
 #~ "This is a valid signature on the key; you normally don't want\n"
 #~ "to delete this signature because it may be important to establish a\n"
 #~ "trust connection to the key or another key certified by this key."
 #~ msgstr ""
-#~ "Aceasta este o semnãturã validã pe cheie; în mod normal n-ar trebui\n"
-#~ "sã ºtergeþi aceastã semnãturã pentru cã aceasta ar putea fi importantãla "
-#~ "stabilirea conexiunii de încredere la cheie sau altã cheie certificatã\n"
-#~ "de aceastã cheie."
+#~ "Aceasta este o semnătură validă pe cheie; în mod normal n-ar trebui\n"
+#~ "să ştergeţi această semnătură pentru că aceasta ar putea fi importantăla "
+#~ "stabilirea conexiunii de încredere la cheie sau altă cheie certificată\n"
+#~ "de această cheie."
 
 #~ msgid ""
 #~ "This signature can't be checked because you don't have the\n"
@@ -9605,17 +9684,17 @@ msgstr ""
 #~ "know which key was used because this signing key might establish\n"
 #~ "a trust connection through another already certified key."
 #~ msgstr ""
-#~ "Aceastã semnãturã nu poate fi verificatã pentru cã nu aveþi cheia\n"
-#~ "corespunzãtoare.  Ar trebui sã amânaþi ºtergerea sa pânã ºtiþi care\n"
-#~ "cheie a fost folositã pentru cã aceastã cheie de semnare ar putea\n"
-#~ "constitui o conexiune de încredere spre o altã cheie deja certificatã."
+#~ "Această semnătură nu poate fi verificată pentru că nu aveţi cheia\n"
+#~ "corespunzătoare.  Ar trebui să amânaţi ştergerea sa până ştiţi care\n"
+#~ "cheie a fost folosită pentru că această cheie de semnare ar putea\n"
+#~ "constitui o conexiune de încredere spre o altă cheie deja certificată."
 
 #~ msgid ""
 #~ "The signature is not valid.  It does make sense to remove it from\n"
 #~ "your keyring."
 #~ msgstr ""
-#~ "Semnãtura nu este validã.  Aceasta ar trebui ºtearsã de pe inelul\n"
-#~ "d-voastrã de chei."
+#~ "Semnătura nu este validă.  Aceasta ar trebui ştearsă de pe inelul\n"
+#~ "d-voastră de chei."
 
 #~ msgid ""
 #~ "This is a signature which binds the user ID to the key. It is\n"
@@ -9624,42 +9703,42 @@ msgstr ""
 #~ "only if this self-signature is for some reason not valid and\n"
 #~ "a second one is available."
 #~ msgstr ""
-#~ "Aceasta este o semnãturã care leagã ID-ul utilizator de cheie.\n"
-#~ "De obicei nu este o idee bunã sã ºtergeþi o asemenea semnãturã.\n"
-#~ "De fapt, GnuPG ar putea sã nu mai poatã folosi aceastã cheie.\n"
-#~ "Aºa cã faceþi acest lucru numai dacã aceastã auto-semnãturã este\n"
-#~ "dintr-o oarecare cauzã invalidã ºi o a doua este disponibilã."
+#~ "Aceasta este o semnătură care leagă ID-ul utilizator de cheie.\n"
+#~ "De obicei nu este o idee bună să ştergeţi o asemenea semnătură.\n"
+#~ "De fapt, GnuPG ar putea să nu mai poată folosi această cheie.\n"
+#~ "Aşa că faceţi acest lucru numai dacă această auto-semnătură este\n"
+#~ "dintr-o oarecare cauză invalidă şi o a doua este disponibilă."
 
 #~ msgid ""
 #~ "Change the preferences of all user IDs (or just of the selected ones)\n"
 #~ "to the current list of preferences.  The timestamp of all affected\n"
 #~ "self-signatures will be advanced by one second.\n"
 #~ msgstr ""
-#~ "Schimbaþi toate preferinþele ale tuturor ID-urilor utilizator (sau doar\n"
-#~ "cele selectate) conform cu lista curentã de preferinþe.  Timestamp-urile\n"
-#~ "tuturor auto-semnãturilor afectate vor fi avansate cu o secundã.\n"
+#~ "Schimbaţi toate preferinţele ale tuturor ID-urilor utilizator (sau doar\n"
+#~ "cele selectate) conform cu lista curentă de preferinţe.  Timestamp-urile\n"
+#~ "tuturor auto-semnăturilor afectate vor fi avansate cu o secundă.\n"
 
-#~ msgid "Please enter the passhrase; this is a secret sentence \n"
+#~ msgid "Please enter the passphrase; this is a secret sentence \n"
 #~ msgstr ""
-#~ "Vã rugãm introduceþi fraza-parolã; aceasta este o propoziþie secretã \n"
+#~ "Vă rugăm introduceţi fraza-parolă; aceasta este o propoziţie secretă \n"
 
 #~ msgid ""
 #~ "Please repeat the last passphrase, so you are sure what you typed in."
 #~ msgstr ""
-#~ "Vã rugãm repetaþi ultima frazã-parolã, pentru a fi sigur(ã) ce aþi tastat."
+#~ "Vă rugăm repetaţi ultima frază-parolă, pentru a fi sigur(ă) ce aţi tastat."
 
 #~ msgid "Give the name of the file to which the signature applies"
-#~ msgstr "Daþi numele fiºierului la care se aplicã semnãtura"
+#~ msgstr "Daţi numele fişierului la care se aplică semnătura"
 
 #~ msgid "Answer \"yes\" if it is okay to overwrite the file"
-#~ msgstr "Rãspundeþi \"da\" dacã este OK sã suprascrieþi fiºierul"
+#~ msgstr "Răspundeţi \"da\" dacă este OK să suprascrieţi fişierul"
 
 #~ msgid ""
 #~ "Please enter a new filename. If you just hit RETURN the default\n"
 #~ "file (which is shown in brackets) will be used."
 #~ msgstr ""
-#~ "Vã rugãm introduceþi un nou nume-fiºier. Dacã doar apãsaþi RETURN,\n"
-#~ "va fi folosit fiºierul implicit (arãtat în paranteze)."
+#~ "Vă rugăm introduceţi un nou nume-fişier. Dacă doar apăsaţi RETURN,\n"
+#~ "va fi folosit fişierul implicit (arătat în paranteze)."
 
 #~ msgid ""
 #~ "You should specify a reason for the certification.  Depending on the\n"
@@ -9675,42 +9754,42 @@ msgstr ""
 #~ "      Use this to state that the user ID should not longer be used;\n"
 #~ "      this is normally used to mark an email address invalid.\n"
 #~ msgstr ""
-#~ "Ar trebui sã specificaþi un motiv pentru certificare.  În funcþie de\n"
-#~ "context aveþi posibilitatea sã alegeþi din aceastã listã:\n"
-#~ "  \"Cheia a fost compromisã\"\n"
-#~ "      Folosiþi aceastã opþiune dacã aveþi un motiv sã credeþi cã "
+#~ "Ar trebui să specificaţi un motiv pentru certificare.  În funcţie de\n"
+#~ "context aveţi posibilitatea să alegeţi din această listă:\n"
+#~ "  \"Cheia a fost compromisă\"\n"
+#~ "      Folosiţi această opţiune dacă aveţi un motiv să credeţi că "
 #~ "persoane\n"
-#~ "      neautorizate au avut acces la cheia d-voastrã secretã.\n"
-#~ "  \"Cheia este înlocuitã\"\n"
-#~ "      Folosiþi aceastã opþiune dacã înlocuiþi cheia cu una nouã.\n"
-#~ "  \"Cheia nu mai este folositã\"\n"
-#~ "      Folosiþi aceastã opþiune dacã pensionaþi cheia.\n"
+#~ "      neautorizate au avut acces la cheia d-voastră secretă.\n"
+#~ "  \"Cheia este înlocuită\"\n"
+#~ "      Folosiţi această opţiune dacă înlocuiţi cheia cu una nouă.\n"
+#~ "  \"Cheia nu mai este folosită\"\n"
+#~ "      Folosiţi această opţiune dacă pensionaţi cheia.\n"
 #~ "  \"ID-ul utilizator nu mai este valid\"\n"
-#~ "      Folosiþi aceastã opþiune dacã ID-ul utilizator nu mai trebuie "
+#~ "      Folosiţi această opţiune dacă ID-ul utilizator nu mai trebuie "
 #~ "folosit;\n"
-#~ "      de obicei folositã pentru a marca o adresã de email ca invalidã.\n"
+#~ "      de obicei folosită pentru a marca o adresă de email ca invalidă.\n"
 
 #~ msgid ""
 #~ "If you like, you can enter a text describing why you issue this\n"
 #~ "revocation certificate.  Please keep this text concise.\n"
 #~ "An empty line ends the text.\n"
 #~ msgstr ""
-#~ "Dacã doriþi, puteþi introduce un text descriind de ce publicaþi acest\n"
-#~ "certificat de revocare.  Vã rugãm fiþi concis.\n"
-#~ "O linie goalã terminã textul.\n"
+#~ "Dacă doriţi, puteţi introduce un text descriind de ce publicaţi acest\n"
+#~ "certificat de revocare.  Vă rugăm fiţi concis.\n"
+#~ "O linie goală termină textul.\n"
 
 #~ msgid "can't put notation data into v3 (PGP 2.x style) signatures\n"
-#~ msgstr "nu pot pune date notare în semnãturi v3 (stil PGP 2.x)\n"
+#~ msgstr "nu pot pune date notare în semnături v3 (stil PGP 2.x)\n"
 
 #~ msgid "can't put notation data into v3 (PGP 2.x style) key signatures\n"
-#~ msgstr "nu pot pune date notare în semnãturi de chei v3 (stil PGP 2.x)\n"
+#~ msgstr "nu pot pune date notare în semnături de chei v3 (stil PGP 2.x)\n"
 
 #~ msgid "can't put a policy URL into v3 (PGP 2.x style) signatures\n"
-#~ msgstr "nu pot pune un URL de politicã în semnãturi v3 (stil PGP 2.x)\n"
+#~ msgstr "nu pot pune un URL de politică în semnături v3 (stil PGP 2.x)\n"
 
 #~ msgid "can't put a policy URL into v3 key (PGP 2.x style) signatures\n"
 #~ msgstr ""
-#~ "nu pot pune un URL de politicã în semnãturi de chei v3 (stil PGP 2.x)\n"
+#~ "nu pot pune un URL de politică în semnături de chei v3 (stil PGP 2.x)\n"
 
 #, fuzzy
 #~ msgid "shelll"
@@ -9720,19 +9799,19 @@ msgstr ""
 #~ msgid ""
 #~ "please see http://www.gnupg.org/download/iconv.html for more information\n"
 #~ msgstr ""
-#~ "vedeþi http://www.gnupg.org/faq.html pentru informaþii suplimentare\n"
+#~ "vedeţi http://www.gnupg.org/faq.html pentru informaţii suplimentare\n"
 
 #, fuzzy
 #~ msgid "key generation is not available from the commandline\n"
-#~ msgstr "gpg-agent nu este disponibil în aceastã sesiune\n"
+#~ msgstr "gpg-agent nu este disponibil în această sesiune\n"
 
 #, fuzzy
 #~ msgid "please use the script \"%s\" to generate a new key\n"
-#~ msgstr "Vã rugãm selectaþi tipul de cheie de generat:\n"
+#~ msgstr "Vă rugăm selectaţi tipul de cheie de generat:\n"
 
 #~ msgid "cipher extension `%s' not loaded due to unsafe permissions\n"
 #~ msgstr ""
-#~ "extensie cifru `%s' nu a fost încãrcat din cauza permisiunilor nesigure "
+#~ "extensie cifru `%s' nu a fost încărcat din cauza permisiunilor nesigure "
 #~ "(unsafe)\n"
 
 #, fuzzy
@@ -9740,48 +9819,48 @@ msgstr ""
 #~ msgstr "%s.\n"
 
 #~ msgid "problem with the agent - disabling agent use\n"
-#~ msgstr "problemã cu agentul - deactivez  folosirea agentului\n"
+#~ msgstr "problemă cu agentul - deactivez  folosirea agentului\n"
 
 #
 #~ msgid "can't query passphrase in batch mode\n"
-#~ msgstr "nu pot cere fraza-parolã în modul batch\n"
+#~ msgstr "nu pot cere fraza-parolă în modul batch\n"
 
 #~ msgid "Repeat passphrase: "
-#~ msgstr "Repetaþi fraza-parolã: "
+#~ msgstr "Repetaţi fraza-parolă: "
 
 #~ msgid "-k[v][v][v][c] [user-id] [keyring]"
 #~ msgstr "-k[v][v][v][c] [id-utilizator] [inel_chei]"
 
 #~ msgid "can't gen prime with pbits=%u qbits=%u\n"
-#~ msgstr "nu pot genera un numãr prim cu  pbiþi=%u qbiþi=%u\n"
+#~ msgstr "nu pot genera un număr prim cu  pbiţi=%u qbiţi=%u\n"
 
 #~ msgid "can't generate a prime with less than %d bits\n"
-#~ msgstr "nu pot genera un numãr prim cu mai puþin de %d biþi\n"
+#~ msgstr "nu pot genera un număr prim cu mai puţin de %d biţi\n"
 
 #~ msgid "no entropy gathering module detected\n"
-#~ msgstr "nu a fost gãsit nici un modul de adunare a entropiei\n"
+#~ msgstr "nu a fost găsit nici un modul de adunare a entropiei\n"
 
 #, fuzzy
 #~ msgid "can't lock `%s': %s\n"
-#~ msgstr "nu pot încuia (lock) `%s'\n"
+#~ msgstr "nu pot încuia (lock) `%s'\n"
 
 #~ msgid "`%s' is not a regular file - ignored\n"
-#~ msgstr "`%s' nu este un fiºier normal - ignorat\n"
+#~ msgstr "`%s' nu este un fişier normal - ignorat\n"
 
 #~ msgid "note: random_seed file is empty\n"
-#~ msgstr "notã: fiºier random_seed este gol\n"
+#~ msgstr "notă: fişier random_seed este gol\n"
 
 #~ msgid "can't read `%s': %s\n"
 #~ msgstr "nu pot citi `%s': %s\n"
 
 #~ msgid "note: random_seed file not updated\n"
-#~ msgstr "notã: fiºierul random_seed nu a fost actualizat\n"
+#~ msgstr "notă: fişierul random_seed nu a fost actualizat\n"
 
 #~ msgid "can't write `%s': %s\n"
 #~ msgstr "nu pot scrie `%s': %s\n"
 
 #~ msgid "can't close `%s': %s\n"
-#~ msgstr "nu pot închide `%s': %s\n"
+#~ msgstr "nu pot închide `%s': %s\n"
 
 #~ msgid "WARNING: using insecure random number generator!!\n"
 #~ msgstr ""
@@ -9796,9 +9875,9 @@ msgstr ""
 #~ "\n"
 #~ msgstr ""
 #~ "Generatorul de numere aleatoare este doar ceva temporar pentru\n"
-#~ "a-l face sã meargã - nu este nicidecum un GNA sigur (secure)!\n"
+#~ "a-l face să meargă - nu este nicidecum un GNA sigur (secure)!\n"
 #~ "\n"
-#~ "NU FOLOSIÞI NICI O DATàGENERATàDE ACEST PROGRAM!!\n"
+#~ "NU FOLOSIŢI NICI O DATĂ GENERATĂ DE ACEST PROGRAM!!\n"
 #~ "\n"
 
 #~ msgid ""
@@ -9806,8 +9885,8 @@ msgstr ""
 #~ "keep you from getting bored, because it will improve the quality\n"
 #~ "of the entropy.\n"
 #~ msgstr ""
-#~ "Vã rugãm aºteptaþi, este adunatã entropia. Faceþi ceva dacã vã ajutã sã\n"
-#~ "nu vã plictisiþi, pentru cã va îmbunãtãþi calitatea entropiei.\n"
+#~ "Vă rugăm aşteptaţi, este adunată entropia. Faceţi ceva dacă vă ajută să\n"
+#~ "nu vă plictisiţi, pentru că va îmbunătăţi calitatea entropiei.\n"
 
 #~ msgid ""
 #~ "\n"
@@ -9815,40 +9894,40 @@ msgstr ""
 #~ "the OS a chance to collect more entropy! (Need %d more bytes)\n"
 #~ msgstr ""
 #~ "\n"
-#~ "Nu sunt disponibili destui octeþi aleatori.  Vã rugãm faceþi ceva pentru\n"
-#~ "a da sistemului de operare o ºansã de a colecta mai multã entropie\n"
-#~ "(Mai sunt necesari %d octeþi)\n"
+#~ "Nu sunt disponibili destui octeţi aleatori.  Vă rugăm faceţi ceva pentru\n"
+#~ "a da sistemului de operare o şansă de a colecta mai multă entropie\n"
+#~ "(Mai sunt necesari %d octeţi)\n"
 
 #, fuzzy
 #~ msgid "card reader not available\n"
-#~ msgstr "cheia secretã nu e disponibilã"
+#~ msgstr "cheia secretă nu e disponibilă"
 
 #~ msgid "Please insert the card and hit return or enter 'c' to cancel: "
 #~ msgstr ""
-#~ "Vã rugãm introduceþi cardul ºi apãsaþi return sau apãsaþi 'c' pentru a "
-#~ "renunþa: "
+#~ "Vă rugăm introduceţi cardul şi apăsaţi return sau apăsaţi 'c' pentru a "
+#~ "renunţa: "
 
 #~ msgid "Hit return when ready or enter 'c' to cancel: "
-#~ msgstr "Apãsaþi return când sunteþi gata sau apãsaþi 'c' pentru a renunþa: "
+#~ msgstr "Apăsaţi return când sunteţi gata sau apăsaţi 'c' pentru a renunţa: "
 
 #~ msgid "Enter New Admin PIN: "
-#~ msgstr "Introduceþi noul PIN Admin: "
+#~ msgstr "Introduceţi noul PIN Admin: "
 
 #~ msgid "Enter New PIN: "
-#~ msgstr "introduceþi noul PIN: "
+#~ msgstr "introduceţi noul PIN: "
 
 #~ msgid "Enter Admin PIN: "
-#~ msgstr "Introduceþi PIN Admin: "
+#~ msgstr "Introduceţi PIN Admin: "
 
 #~ msgid "NOTE: %s is not available in this version\n"
-#~ msgstr "NOTÃ: %s nu este disponibil în aceastã sesiune\n"
+#~ msgstr "NOTĂ: %s nu este disponibil în această sesiune\n"
 
 #, fuzzy
 #~ msgid "         algorithms on these user IDs:\n"
 #~ msgstr "algoritmuri pentru aceste ID-uri utilizator:\n"
 
 #~ msgid "general error"
-#~ msgstr "eroare generalã"
+#~ msgstr "eroare generală"
 
 #~ msgid "unknown packet type"
 #~ msgstr "tip de pachet necunoscut"
@@ -9857,13 +9936,13 @@ msgstr ""
 #~ msgstr "algoritm rezumat necunoscut"
 
 #~ msgid "bad public key"
-#~ msgstr "cheie publicã incorectã"
+#~ msgstr "cheie publică incorectă"
 
 #~ msgid "bad secret key"
-#~ msgstr "cheie secretã incorectã"
+#~ msgstr "cheie secretă incorectă"
 
 #~ msgid "bad signature"
-#~ msgstr "semnãturã incorectã"
+#~ msgstr "semnătură incorectă"
 
 #~ msgid "checksum error"
 #~ msgstr "eroare checksum"
@@ -9875,28 +9954,28 @@ msgstr ""
 #~ msgstr "pachet invalid"
 
 #~ msgid "no such user id"
-#~ msgstr "nu existã acest id utilizator"
+#~ msgstr "nu există acest id utilizator"
 
 #~ msgid "secret key not available"
-#~ msgstr "cheia secretã nu e disponibilã"
+#~ msgstr "cheia secretă nu e disponibilă"
 
 #~ msgid "wrong secret key used"
-#~ msgstr "a fost folositã o cheie secretã greºitã"
+#~ msgstr "a fost folosită o cheie secretă greşită"
 
 #~ msgid "bad key"
-#~ msgstr "cheie incorectã"
+#~ msgstr "cheie incorectă"
 
 #~ msgid "file write error"
-#~ msgstr "eroare scriere fiºier"
+#~ msgstr "eroare scriere fişier"
 
 #~ msgid "unknown compress algorithm"
 #~ msgstr "algoritm compresie necunoscut"
 
 #~ msgid "file open error"
-#~ msgstr "eroare deschidere fiºier"
+#~ msgstr "eroare deschidere fişier"
 
 #~ msgid "file create error"
-#~ msgstr "eroare creare fiºier"
+#~ msgstr "eroare creare fişier"
 
 #~ msgid "unimplemented pubkey algorithm"
 #~ msgstr "algoritm pubkey neimplementat"
@@ -9905,13 +9984,13 @@ msgstr ""
 #~ msgstr "algoritm cifrare neimplementat"
 
 #~ msgid "unknown signature class"
-#~ msgstr "clasã semnãturi necunoscutã"
+#~ msgstr "clasă semnături necunoscută"
 
 #~ msgid "trust database error"
-#~ msgstr "eroare bazã de date încredere"
+#~ msgstr "eroare bază de date încredere"
 
 #~ msgid "resource limit"
-#~ msgstr "limitã resurse"
+#~ msgstr "limită resurse"
 
 #~ msgid "invalid keyring"
 #~ msgstr "inel de chei invalid"
@@ -9920,16 +9999,16 @@ msgstr ""
 #~ msgstr "id utilizator anormal"
 
 #~ msgid "file close error"
-#~ msgstr "eroare închidere fiºier"
+#~ msgstr "eroare închidere fişier"
 
 #~ msgid "file rename error"
-#~ msgstr "eroare redenumire fiºier"
+#~ msgstr "eroare redenumire fişier"
 
 #~ msgid "file delete error"
-#~ msgstr "eroare ºtergere fiºier"
+#~ msgstr "eroare ştergere fişier"
 
 #~ msgid "unexpected data"
-#~ msgstr "date neaºteptate"
+#~ msgstr "date neaşteptate"
 
 #~ msgid "timestamp conflict"
 #~ msgstr "conflict timestamp"
@@ -9938,25 +10017,22 @@ msgstr ""
 #~ msgstr "algoritm pubkey nefolosibil"
 
 #~ msgid "file exists"
-#~ msgstr "fiºierul existã"
+#~ msgstr "fişierul există"
 
 #~ msgid "weak key"
-#~ msgstr "cheie slabã"
+#~ msgstr "cheie slabă"
 
 #~ msgid "bad URI"
 #~ msgstr "URI incorect"
 
-#~ msgid "network error"
-#~ msgstr "eroare reþea"
-
 #~ msgid "not processed"
 #~ msgstr "neprocesat"
 
 #~ msgid "unusable public key"
-#~ msgstr "cheie publicã de nefolosit"
+#~ msgstr "cheie publică de nefolosit"
 
 #~ msgid "unusable secret key"
-#~ msgstr "cheie secretã de nefolosit"
+#~ msgstr "cheie secretă de nefolosit"
 
 #~ msgid "keyserver error"
 #~ msgstr "eroare server de chei"
@@ -9966,7 +10042,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "no data"
-#~ msgstr "nici o datã semnatã\n"
+#~ msgstr "nici o dată semnată\n"
 
 #~ msgid "ERROR: "
 #~ msgstr "EROARE: "
@@ -9976,31 +10052,31 @@ msgstr ""
 
 #~ msgid "operation is not possible without initialized secure memory\n"
 #~ msgstr ""
-#~ "operaþia nu este posibilã fãrã memorie protejatã (secure) iniþializatã\n"
+#~ "operaţia nu este posibilă fără memorie protejată (secure) iniţializată\n"
 
 #~ msgid "(you may have used the wrong program for this task)\n"
 #~ msgstr ""
-#~ "(aþi folosit probabil un program nepotrivit pentru aceastã sarcinã)\n"
+#~ "(aţi folosit probabil un program nepotrivit pentru această sarcină)\n"
 
 #~ msgid ""
 #~ "please see http://www.gnupg.org/why-not-idea.html for more information\n"
 #~ msgstr ""
-#~ "vedeþi http://www.gnupg.org/why-not-idea.html pentru informaþii "
+#~ "vedeţi http://www.gnupg.org/why-not-idea.html pentru informaţii "
 #~ "suplimentare\n"
 
 #, fuzzy
 #~ msgid "all export-clean-* options from above"
-#~ msgstr "citeºte opþiuni din fiºier"
+#~ msgstr "citeşte opţiuni din fişier"
 
 #, fuzzy
 #~ msgid "all import-clean-* options from above"
-#~ msgstr "citeºte opþiuni din fiºier"
+#~ msgstr "citeşte opţiuni din fişier"
 
 #~ msgid "expired: %s)"
 #~ msgstr "expirat: %s)"
 
 #~ msgid "key %s: expired signature from key %s - skipped\n"
-#~ msgstr "cheia %s: semnãturã expiratã de la cheia %s - sãritã\n"
+#~ msgstr "cheia %s: semnătură expirată de la cheia %s - sărită\n"
 
 #, fuzzy
 #~ msgid "Unable to clean `%s'\n"
@@ -10017,113 +10093,113 @@ msgstr ""
 #~ msgstr "lungimea unui prim RSA nu este %d\n"
 
 #~ msgid "bad passphrase or unknown cipher algorithm (%d)\n"
-#~ msgstr "frazã=parolã greºitã sau algoritm cifrare necunoscut (%d)\n"
+#~ msgstr "frază=parolă greşită sau algoritm cifrare necunoscut (%d)\n"
 
 #~ msgid "can't set client pid for the agent\n"
 #~ msgstr "nu pot seta pid-ul client pentru agent\n"
 
 #~ msgid "can't get server read FD for the agent\n"
-#~ msgstr "nu pot convinge serverul sã citeascã FD pentru agent\n"
+#~ msgstr "nu pot convinge serverul să citească FD pentru agent\n"
 
 #~ msgid "can't get server write FD for the agent\n"
-#~ msgstr "nu pot convinge serverul sã scrie FD pentru agent\n"
+#~ msgstr "nu pot convinge serverul să scrie FD pentru agent\n"
 
 #~ msgid "digest algorithm `%s' is read-only in this release\n"
-#~ msgstr "algoritm rezumat `%s' este numai-citire în acestã ediþie\n"
+#~ msgstr "algoritm rezumat `%s' este numai-citire în acestă ediţie\n"
 
 #~ msgid ""
 #~ "WARNING: digest `%s' is not part of OpenPGP.  Use at your own risk!\n"
 #~ msgstr ""
-#~ "AVERTISMENT: rezumatul `%s' nu este parte din OpenPGP.  Folosiþi-l pe "
+#~ "AVERTISMENT: rezumatul `%s' nu este parte din OpenPGP.  Folosiţi-l pe "
 #~ "riscul dvs.!\n"
 
 #~ msgid "|[files]|encrypt files"
-#~ msgstr "|[fiºiere]|cifreazã fiºiere"
+#~ msgstr "|[fişiere]|cifrează fişiere"
 
 #~ msgid "store only"
-#~ msgstr "doar pãstreazã"
+#~ msgstr "doar păstrează"
 
 #~ msgid "|[files]|decrypt files"
-#~ msgstr "|[fiºiere]|decripteazã fiºiere"
+#~ msgstr "|[fişiere]|decriptează fişiere"
 
 #~ msgid "sign a key non-revocably"
-#~ msgstr "semneazã o cheie irevocabil"
+#~ msgstr "semnează o cheie irevocabil"
 
 #~ msgid "sign a key locally and non-revocably"
-#~ msgstr "semneazã o cheie local ºi irevocabil"
+#~ msgstr "semnează o cheie local şi irevocabil"
 
 #~ msgid "list only the sequence of packets"
-#~ msgstr "enumerã numai secvenþa de pachete"
+#~ msgstr "enumeră numai secvenţa de pachete"
 
 #~ msgid "export the ownertrust values"
-#~ msgstr "exportã valorile încrederii în proprietari"
+#~ msgstr "exportă valorile încrederii în proprietari"
 
 #~ msgid "unattended trust database update"
-#~ msgstr "actualizare fãrã supraveghere a bazei de date de încredere"
+#~ msgstr "actualizare fără supraveghere a bazei de date de încredere"
 
 #~ msgid "fix a corrupted trust database"
-#~ msgstr "reparã o bazã de date de încredere coruptã"
+#~ msgstr "repară o bază de date de încredere coruptă"
 
 #~ msgid "De-Armor a file or stdin"
-#~ msgstr "Eliminã armura unui fiºier sau intrãrii standard (stdin)"
+#~ msgstr "Elimină armura unui fişier sau intrării standard (stdin)"
 
 #~ msgid "En-Armor a file or stdin"
-#~ msgstr "Pune armura unui fiºier sau intrãrii standard (stdin)"
+#~ msgstr "Pune armura unui fişier sau intrării standard (stdin)"
 
 #~ msgid "do not force v3 signatures"
-#~ msgstr "nu forþa semnãturi v3"
+#~ msgstr "nu forţa semnături v3"
 
 #~ msgid "force v4 key signatures"
-#~ msgstr "forþeazã semnãturi de chei v4"
+#~ msgstr "forţează semnături de chei v4"
 
 #~ msgid "do not force v4 key signatures"
-#~ msgstr "nu forþa semnãturi de chei v4"
+#~ msgstr "nu forţa semnături de chei v4"
 
 #~ msgid "never use a MDC for encryption"
-#~ msgstr "nu folosi niciodatã un MDC pentru cifrare"
+#~ msgstr "nu folosi niciodată un MDC pentru cifrare"
 
 #~ msgid "use the gpg-agent"
-#~ msgstr "foloseºte gpg-agent"
+#~ msgstr "foloseşte gpg-agent"
 
 #~ msgid "|[file]|write status info to file"
-#~ msgstr "|[fiºier]|scrie informaþii de stare în fiºier"
+#~ msgstr "|[fişier]|scrie informaţii de stare în fişier"
 
 #~ msgid "|KEYID|ultimately trust this key"
-#~ msgstr "|IDCHEIE|ai încredere deplinã în aceastã cheie"
+#~ msgstr "|IDCHEIE|ai încredere deplină în această cheie"
 
 #~ msgid "emulate the mode described in RFC1991"
-#~ msgstr "emuleazã modul descris în RFC1991"
+#~ msgstr "emulează modul descris în RFC1991"
 
 #~ msgid "set all packet, cipher and digest options to OpenPGP behavior"
 #~ msgstr ""
-#~ "seteazã toate opþiunile pentru pachete, cifru ºi rezumat ca pentru "
+#~ "setează toate opţiunile pentru pachete, cifru şi rezumat ca pentru "
 #~ "comportamentul OpenPGP"
 
 #~ msgid "set all packet, cipher and digest options to PGP 2.x behavior"
 #~ msgstr ""
-#~ "seteazã toate opþiunile pentru pachete, cifru ºi rezumat ca pentru "
+#~ "setează toate opţiunile pentru pachete, cifru şi rezumat ca pentru "
 #~ "comportamentul PGP 2.x"
 
 #~ msgid "|NAME|use message digest algorithm NAME for passphrases"
-#~ msgstr "|NUME|foloseºte algoritm rezumat mesaj NUME pentru fraza-parolã"
+#~ msgstr "|NUME|foloseşte algoritm rezumat mesaj NUME pentru fraza-parolă"
 
 #~ msgid "throw keyid field of encrypted packets"
-#~ msgstr "ignorã câmp keyid pentru pachete cifrate"
+#~ msgstr "ignoră câmp keyid pentru pachete cifrate"
 
 #~ msgid "Show Photo IDs"
-#~ msgstr "Aratã poze ID-uri"
+#~ msgstr "Arată poze ID-uri"
 
 #~ msgid "Don't show Photo IDs"
-#~ msgstr "Nu arãta poze ID-uri"
+#~ msgstr "Nu arăta poze ID-uri"
 
 #~ msgid "Set command line to view Photo IDs"
-#~ msgstr "Seteazã linia de comandã pentru a vedea poze ID-uri"
+#~ msgstr "Setează linia de comandă pentru a vedea poze ID-uri"
 
 #~ msgid "compress algorithm `%s' is read-only in this release\n"
-#~ msgstr "algoritm compresie `%s' este numai-citire în acestã ediþie\n"
+#~ msgstr "algoritm compresie `%s' este numai-citire în acestă ediţie\n"
 
 #~ msgid "compress algorithm must be in range %d..%d\n"
-#~ msgstr "algoritm compresie trebuie sã fie în intervalul %d..%d\n"
+#~ msgstr "algoritm compresie trebuie să fie în intervalul %d..%d\n"
 
 #~ msgid "--nrsign-key user-id"
 #~ msgstr "--nrsign-key id-utilizator"
@@ -10132,26 +10208,26 @@ msgstr ""
 #~ msgstr "--nrlsign-key id-utilizator"
 
 #~ msgid "key %08lX: key has been revoked!\n"
-#~ msgstr "cheia %08lX: cheia a fost revocatã!\n"
+#~ msgstr "cheia %08lX: cheia a fost revocată!\n"
 
 #~ msgid "key %08lX: subkey has been revoked!\n"
-#~ msgstr "cheie %08lX: subcheia a fost revocatã!\n"
+#~ msgstr "cheie %08lX: subcheia a fost revocată!\n"
 
 #~ msgid "%08lX: key has expired\n"
 #~ msgstr "%08lX: cheia a expirat\n"
 
 #~ msgid "%08lX: We do NOT trust this key\n"
-#~ msgstr "%08lX: Noi NU avem încredere în acestã cheie\n"
+#~ msgstr "%08lX: Noi NU avem încredere în acestă cheie\n"
 
 #~ msgid ""
 #~ "%08lX: It is not sure that this key really belongs to the owner\n"
 #~ "but it is accepted anyway\n"
 #~ msgstr ""
-#~ "%08lX: Nu este sigur dacã aceastã cheie aparþine într-adevãr\n"
-#~ "proprietarului, dar este oricum acceptatã\n"
+#~ "%08lX: Nu este sigur dacă această cheie aparţine într-adevăr\n"
+#~ "proprietarului, dar este oricum acceptată\n"
 
 #~ msgid "preference %c%lu is not valid\n"
-#~ msgstr "preferinþa %c%lu nu este validã\n"
+#~ msgstr "preferinţa %c%lu nu este validă\n"
 
 #~ msgid ""
 #~ "About to generate a new %s keypair.\n"
@@ -10159,24 +10235,24 @@ msgstr ""
 #~ "              default keysize is 1024 bits\n"
 #~ "    highest suggested keysize is 2048 bits\n"
 #~ msgstr ""
-#~ "Pe cale sã generaþi o nouã pereche de chei %s.\n"
-#~ "              lungimea minimã este  768 bits\n"
-#~ "           lungimea implicitã este 1024 bits\n"
-#~ " cea mai lungã cheie sugeratã este 2048 bits\n"
+#~ "Pe cale să generaţi o nouă pereche de chei %s.\n"
+#~ "              lungimea minimă este  768 bits\n"
+#~ "           lungimea implicită este 1024 bits\n"
+#~ " cea mai lungă cheie sugerată este 2048 bits\n"
 
 #~ msgid "DSA only allows keysizes from 512 to 1024\n"
 #~ msgstr "DSA permite numai chei de la 512 la 1024\n"
 
 #~ msgid "keysize too small; 1024 is smallest value allowed for RSA.\n"
 #~ msgstr ""
-#~ "lungime cheie prea micã; 1024 este cea mai micã valoare permisã pentru "
+#~ "lungime cheie prea mică; 1024 este cea mai mică valoare permisă pentru "
 #~ "RSA.\n"
 
 #~ msgid "keysize too small; 768 is smallest value allowed.\n"
-#~ msgstr "lungime cheie prea micã; 768 este cea mai micã valoare permisã.\n"
+#~ msgstr "lungime cheie prea mică; 768 este cea mai mică valoare permisă.\n"
 
 #~ msgid "keysize too large; %d is largest value allowed.\n"
-#~ msgstr "lungime cheie prea mare; %d este cea mai mare valoare permisã.\n"
+#~ msgstr "lungime cheie prea mare; %d este cea mai mare valoare permisă.\n"
 
 #~ msgid ""
 #~ "Keysizes larger than 2048 are not suggested because\n"
@@ -10186,28 +10262,28 @@ msgstr ""
 #~ "deoarece calculele iau FOARTE MULT timp!\n"
 
 #~ msgid "Are you sure that you want this keysize? "
-#~ msgstr "Sunteþi sigur(ã) cã doriþi aceastã lungime de cheie? "
+#~ msgstr "Sunteţi sigur(ă) că doriţi această lungime de cheie? "
 
 #~ msgid ""
 #~ "Okay, but keep in mind that your monitor and keyboard radiation is also "
 #~ "very vulnerable to attacks!\n"
 #~ msgstr ""
-#~ "Bine, dar þineþi minte cã radiaþia monitorului ºi tastaturii d-voastrã "
-#~ "este de asemenea vulnerabilã la atacuri!\n"
+#~ "Bine, dar ţineţi minte că radiaţia monitorului şi tastaturii d-voastră "
+#~ "este de asemenea vulnerabilă la atacuri!\n"
 
 #~ msgid "%s: can't open: %s\n"
 #~ msgstr "%s: nu pot deschide: %s\n"
 
 #~ msgid "%s: WARNING: empty file\n"
-#~ msgstr "%s: AVERTISMENT: fiºier gol\n"
+#~ msgstr "%s: AVERTISMENT: fişier gol\n"
 
 #~ msgid "key %08lX: not a rfc2440 key - skipped\n"
-#~ msgstr "cheia %08lX: nu e o cheie rfc2440 - sãritã\n"
+#~ msgstr "cheia %08lX: nu e o cheie rfc2440 - sărită\n"
 
 #~ msgid ""
 #~ "NOTE: Elgamal primary key detected - this may take some time to import\n"
 #~ msgstr ""
-#~ "NOTÃ: cheie primarã Elgamal detectatã - poate lua ceva timp pentru a "
+#~ "NOTĂ: cheie primară Elgamal detectată - poate lua ceva timp pentru a "
 #~ "importa\n"
 
 #~ msgid " (default)"
@@ -10217,13 +10293,13 @@ msgstr ""
 #~ msgstr "t"
 
 #~ msgid "save"
-#~ msgstr "salveazã"
+#~ msgstr "salvează"
 
 #~ msgid "fpr"
 #~ msgstr "ampr"
 
 #~ msgid "list"
-#~ msgstr "enumerã"
+#~ msgstr "enumeră"
 
 #~ msgid "l"
 #~ msgstr "l"
@@ -10232,16 +10308,16 @@ msgstr ""
 #~ msgstr "uid"
 
 #~ msgid "select secondary key N"
-#~ msgstr "selecteazã cheie secundarã N"
+#~ msgstr "selectează cheie secundară N"
 
 #~ msgid "check"
-#~ msgstr "verificã"
+#~ msgstr "verifică"
 
 #~ msgid "list signatures"
-#~ msgstr "enumerã semnãturi"
+#~ msgstr "enumeră semnături"
 
 #~ msgid "sign the key"
-#~ msgstr "semneazã cheia"
+#~ msgstr "semnează cheia"
 
 #~ msgid "s"
 #~ msgstr "s"
@@ -10253,13 +10329,13 @@ msgstr ""
 #~ msgstr "nrsign"
 
 #~ msgid "sign the key non-revocably"
-#~ msgstr "semneazã cheia irevocabil"
+#~ msgstr "semnează cheia irevocabil"
 
 #~ msgid "nrlsign"
 #~ msgstr "nrlsign"
 
 #~ msgid "sign the key locally and non-revocably"
-#~ msgstr "semneazã cheia local ºi irevocabil"
+#~ msgstr "semnează cheia local şi irevocabil"
 
 #~ msgid "debug"
 #~ msgstr "depanare"
@@ -10277,7 +10353,7 @@ msgstr ""
 #~ msgstr "delphoto"
 
 #~ msgid "add a secondary key"
-#~ msgstr "adaugã o cheie secundarã"
+#~ msgstr "adaugă o cheie secundară"
 
 #~ msgid "delkey"
 #~ msgstr "stecheie"
@@ -10289,7 +10365,7 @@ msgstr ""
 #~ msgstr "stesem"
 
 #~ msgid "delete signatures"
-#~ msgstr "ºterge semnãturi"
+#~ msgstr "şterge semnături"
 
 #~ msgid "primary"
 #~ msgstr "primar"
@@ -10316,7 +10392,7 @@ msgstr ""
 #~ msgstr "parola"
 
 #~ msgid "trust"
-#~ msgstr "încredere"
+#~ msgstr "încredere"
 
 #~ msgid "revsig"
 #~ msgstr "revsem"
@@ -10331,26 +10407,26 @@ msgstr ""
 #~ msgstr "showphoto"
 
 #~ msgid "%s%c %4u%c/%08lX  created: %s expires: %s"
-#~ msgstr "%s%c %4u%c/%08lX  creatã: %s expirã: %s"
+#~ msgstr "%s%c %4u%c/%08lX  creată: %s expiră: %s"
 
 #~ msgid "rev! subkey has been revoked: %s\n"
-#~ msgstr "rev! subcheia a fost revocatã: %s\n"
+#~ msgstr "rev! subcheia a fost revocată: %s\n"
 
 #~ msgid "rev- faked revocation found\n"
-#~ msgstr "rev- a fost gãsitã o revocare falsificatã\n"
+#~ msgstr "rev- a fost găsită o revocare falsificată\n"
 
 #~ msgid ""
 #~ "\"\n"
 #~ "locally signed with your key %08lX at %s\n"
 #~ msgstr ""
 #~ "\"\n"
-#~ "semnatã local cu cheie d-voastrã %08lX pe %s\n"
+#~ "semnată local cu cheie d-voastră %08lX pe %s\n"
 
 #~ msgid "   signed by %08lX at %s%s%s\n"
-#~ msgstr "   semnatã de %08lX pe %s%s%s\n"
+#~ msgstr "   semnată de %08lX pe %s%s%s\n"
 
 #~ msgid "   signed by %08lX at %s%s\n"
-#~ msgstr "   semnatã de %08lX pe %s%s\n"
+#~ msgstr "   semnată de %08lX pe %s%s\n"
 
 #~ msgid "Experimental algorithms should not be used!\n"
 #~ msgstr "Algoritme experimentale nu ar trebui folosite!\n"
@@ -10358,62 +10434,62 @@ msgstr ""
 #~ msgid ""
 #~ "this cipher algorithm is deprecated; please use a more standard one!\n"
 #~ msgstr ""
-#~ "acest algoritm de cifrare este învechit; vã rugãm folosiþi unul "
+#~ "acest algoritm de cifrare este învechit; vă rugăm folosiţi unul "
 #~ "standard!\n"
 
 #~ msgid "can't get key from keyserver: %s\n"
-#~ msgstr "nu pot obþine cheia de la serverul de chei: %s\n"
+#~ msgstr "nu pot obţine cheia de la serverul de chei: %s\n"
 
 #~ msgid "success sending to `%s' (status=%u)\n"
 #~ msgstr "succes trimitere la `%s' (stare=%u)\n"
 
 #~ msgid "failed sending to `%s': status=%u\n"
-#~ msgstr "a eºuat trimiterea la `%s': stare=%u\n"
+#~ msgstr "a eşuat trimiterea la `%s': stare=%u\n"
 
 #~ msgid "this keyserver does not support --search-keys\n"
-#~ msgstr "acest sercer de chei nu suportã --search-keys\n"
+#~ msgstr "acest sercer de chei nu suportă --search-keys\n"
 
 #~ msgid "can't search keyserver: %s\n"
-#~ msgstr "nu pot cãuta serverul de chei: %s\n"
+#~ msgstr "nu pot căuta serverul de chei: %s\n"
 
 #~ msgid ""
 #~ "key %08lX: this is a PGP generated ElGamal key which is NOT secure for "
 #~ "signatures!\n"
 #~ msgstr ""
-#~ "cheie %08lX: aceasta este o cheie ElGamal generatã de PGP care NU este "
-#~ "sigurã pentru semnãturi!\n"
+#~ "cheie %08lX: aceasta este o cheie ElGamal generată de PGP care NU este "
+#~ "sigură pentru semnături!\n"
 
 #~ msgid ""
 #~ "key %08lX has been created %lu second in future (time warp or clock "
 #~ "problem)\n"
 #~ msgstr ""
-#~ "cheia %08lX a fost creatã %lu secundã în viitor (warp în timp sau "
+#~ "cheia %08lX a fost creată %lu secundă în viitor (warp în timp sau "
 #~ "probleme cu ceasul)\n"
 
 #~ msgid ""
 #~ "key %08lX has been created %lu seconds in future (time warp or clock "
 #~ "problem)\n"
 #~ msgstr ""
-#~ "cheia %08lX a fost creatã %lu secunde în viitor (warp în timp sau "
+#~ "cheia %08lX a fost creată %lu secunde în viitor (warp în timp sau "
 #~ "probleme cu ceasul)\n"
 
 #~ msgid "%s: can't create lock\n"
-#~ msgstr "%s: nu pot crea încuietoare(lock)\n"
+#~ msgstr "%s: nu pot crea încuietoare(lock)\n"
 
 #~ msgid "%s: can't make lock\n"
-#~ msgstr "%s: nu pot crea încuietoare(lock)\n"
+#~ msgstr "%s: nu pot crea încuietoare(lock)\n"
 
 #~ msgid "%s: can't create: %s\n"
 #~ msgstr "%s: nu pot crea: %s\n"
 
 #~ msgid "key %08lX marked as ultimately trusted\n"
-#~ msgstr "cheia %08lX marcatã ca având încredere supremã\n"
+#~ msgstr "cheia %08lX marcată ca având încredere supremă\n"
 
 #~ msgid "signature from Elgamal signing key %08lX to %08lX skipped\n"
-#~ msgstr "semnãturã de la cheia de semnare Elgamal %08lX la %08lX sãritã\n"
+#~ msgstr "semnătură de la cheia de semnare Elgamal %08lX la %08lX sărită\n"
 
 #~ msgid "signature from %08lX to Elgamal signing key %08lX skipped\n"
-#~ msgstr "semnãturã de la %08lX la cheia de semnare Elgamal %08lX sãritã\n"
+#~ msgstr "semnătură de la %08lX la cheia de semnare Elgamal %08lX sărită\n"
 
 #~ msgid "checking at depth %d signed=%d ot(-/q/n/m/f/u)=%d/%d/%d/%d/%d/%d\n"
 #~ msgstr ""
@@ -10421,7 +10497,7 @@ msgstr ""
 
 #~ msgid "If you want to use this revoked key anyway, answer \"yes\"."
 #~ msgstr ""
-#~ "Dacã doriþi oricum sã folosiþi aceastã cheie revocatã, rãspundeþi \"da\"."
+#~ "Dacă doriţi oricum să folosiţi această cheie revocată, răspundeţi \"da\"."
 
 #~ msgid ""
 #~ "Select the algorithm to use.\n"
@@ -10446,29 +10522,29 @@ msgstr ""
 #~ "in\n"
 #~ "this menu."
 #~ msgstr ""
-#~ "Selectaþi algoritmul de folosit.\n"
+#~ "Selectaţi algoritmul de folosit.\n"
 #~ "\n"
-#~ "DSA (sau DSS) este algoritmul de semnãturã digitalã care poate fi "
+#~ "DSA (sau DSS) este algoritmul de semnătură digitală care poate fi "
 #~ "folosit\n"
-#~ "doar pentru semnãturi.  Acesta este algoritmul sugerat pentru cã "
+#~ "doar pentru semnături.  Acesta este algoritmul sugerat pentru că "
 #~ "verificarea\n"
-#~ "semnãturilor DSA este mult mai rapidã decât a celor ElGamal.\n"
+#~ "semnăturilor DSA este mult mai rapidă decât a celor ElGamal.\n"
 #~ "\n"
-#~ "ElGamal este un algoritm ce poate fi folosit pentru semnãturi ºi "
+#~ "ElGamal este un algoritm ce poate fi folosit pentru semnături şi "
 #~ "cifrare.\n"
-#~ "OpenPGP face distincþie între cele douã variante ale acestui algoritm: "
+#~ "OpenPGP face distincţie între cele două variante ale acestui algoritm: "
 #~ "cel\n"
-#~ "numai pentru cifrare ºi cel pentru semnare+cifrare; algoritmul este "
-#~ "acelaºi\n"
-#~ "dar câþiva parametrii trebuie selectaþi într-un mod special pentru a "
+#~ "numai pentru cifrare şi cel pentru semnare+cifrare; algoritmul este "
+#~ "acelaşi\n"
+#~ "dar câţiva parametrii trebuie selectaţi într-un mod special pentru a "
 #~ "crea\n"
-#~ "o cheie sigurã pentru semnãturi: acest program face acest lucru, dar "
+#~ "o cheie sigură pentru semnături: acest program face acest lucru, dar "
 #~ "alte\n"
-#~ "implementãri OpenPGP ar putea sã nu înþeleagã varianta de semnare"
+#~ "implementări OpenPGP ar putea să nu înţeleagă varianta de semnare"
 #~ "+cifrare.\n"
 #~ "\n"
-#~ "Prima cheie (primarã) trebuie sã fie întotdeauna capabilã de semnare;\n"
-#~ "acesta este motivul pentru care cheia ElGamal nu este disponibilã în\n"
+#~ "Prima cheie (primară) trebuie să fie întotdeauna capabilă de semnare;\n"
+#~ "acesta este motivul pentru care cheia ElGamal nu este disponibilă în\n"
 #~ "acest meniu."
 
 #~ msgid ""
@@ -10476,30 +10552,30 @@ msgstr ""
 #~ "because they are not supported by all programs and signatures created\n"
 #~ "with them are quite large and very slow to verify."
 #~ msgstr ""
-#~ "Deºî aceste chei sunt definite în RFC2440 ele nu sunt sugerate pentru\n"
-#~ "cã nu sunt suportate de toate programele ºi semnãturile create cu ele\n"
-#~ "sunt destul de lungi ºi verificarea lor este foarte lentã."
+#~ "Deşî aceste chei sunt definite în RFC2440 ele nu sunt sugerate pentru\n"
+#~ "că nu sunt suportate de toate programele şi semnăturile create cu ele\n"
+#~ "sunt destul de lungi şi verificarea lor este foarte lentă."
 
 #~ msgid "%lu keys so far checked (%lu signatures)\n"
-#~ msgstr "%lu chei pânã acum verificate (%lu semnãturi)\n"
+#~ msgstr "%lu chei până acum verificate (%lu semnături)\n"
 
 #~ msgid "key incomplete\n"
-#~ msgstr "cheie incompletã\n"
+#~ msgstr "cheie incompletă\n"
 
 #~ msgid "key %08lX incomplete\n"
-#~ msgstr "cheie %08lX incompletã\n"
+#~ msgstr "cheie %08lX incompletă\n"
 
 #~ msgid "sorry, can't do this in batch mode\n"
-#~ msgstr "îmi pare rãu, nu pot face acest lucru în modul batch\n"
+#~ msgstr "îmi pare rău, nu pot face acest lucru în modul batch\n"
 
 #~ msgid "error: missing colon\n"
-#~ msgstr "eroare: `:' lipsã\n"
+#~ msgstr "eroare: `:' lipsă\n"
 
 #~ msgid "error: no ownertrust value\n"
-#~ msgstr "eroare: nici o valoare încredere pentru proprietar\n"
+#~ msgstr "eroare: nici o valoare încredere pentru proprietar\n"
 
 #~ msgid "   (%d) ElGamal (sign and encrypt)\n"
-#~ msgstr "   (%d) ElGamal (semnare ºi cifrare)\n"
+#~ msgstr "   (%d) ElGamal (semnare şi cifrare)\n"
 
 #~ msgid ""
 #~ "The use of this algorithm is only supported by GnuPG.  You will not be\n"
@@ -10507,14 +10583,14 @@ msgstr ""
 #~ "also\n"
 #~ "very slow, and may not be as secure as the other choices.\n"
 #~ msgstr ""
-#~ "Folosirea acestui algoritm este suportatã numai de GnuPG.  Nu veþi putea\n"
-#~ "folosi aceastã cheie pentru a comunica cu alþi utilizatori PGP.  Mai "
+#~ "Folosirea acestui algoritm este suportată numai de GnuPG.  Nu veţi putea\n"
+#~ "folosi această cheie pentru a comunica cu alţi utilizatori PGP.  Mai "
 #~ "mult,\n"
-#~ "acest algoritm este foarte lent ºi ar putea fi mai puþin sigur decât\n"
-#~ "celelalte opþiuni.\n"
+#~ "acest algoritm este foarte lent şi ar putea fi mai puţin sigur decât\n"
+#~ "celelalte opţiuni.\n"
 
 #~ msgid "invalid symkey algorithm detected (%d)\n"
 #~ msgstr "am detectat algoritm symkey invalid (%d)\n"
 
 #~ msgid "this keyserver is not fully HKP compatible\n"
-#~ msgstr "acest server de chei nu este în totalitate compatibil cu HKP\n"
+#~ msgstr "acest server de chei nu este în totalitate compatibil cu HKP\n"
index fc12908..53bb489 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GnuPG 2.1.0\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
-"PO-Revision-Date: 2016-07-17 17:17+0000\n"
+"PO-Revision-Date: 2016-11-18 15:44+0100\n"
 "Last-Translator: Ineiev <ineiev@gnu.org>\n"
 "Language-Team: Russian <gnupg-ru@gnupg.org>\n"
 "Language: ru\n"
@@ -151,14 +151,6 @@ msgid "no suitable card key found: %s\n"
 msgstr "на карте не найдено подходящего ключа: %s\n"
 
 #, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "сбой при затенении ключа: %s\n"
-
-#, c-format
-msgid "error writing key: %s\n"
-msgstr "ошибка записи ключа: %s\n"
-
-#, c-format
 msgid ""
 "An ssh process requested the use of key%%0A  %s%%0A  (%s)%%0ADo you want to "
 "allow this?"
@@ -314,6 +306,9 @@ msgstr "запуск в режиме демона (фоновый режим)"
 msgid "run in server mode (foreground)"
 msgstr "запуск в режиме сервера (нефоновый режим)"
 
+msgid "run in supervised mode"
+msgstr "запуск в подконтрольном режиме"
+
 msgid "verbose"
 msgstr "подробно"
 
@@ -714,8 +709,8 @@ msgid "error forking process: %s\n"
 msgstr "ошибка при дублировании процесса: %s\n"
 
 #, c-format
-msgid "waiting for processes to terminate failed: %s\n"
-msgstr "сбой при ожидании завершения процесса: %s\n"
+msgid "waiting for process %d to terminate failed: %s\n"
+msgstr "сбой при ожидании завершения процесса %d: %s\n"
 
 #, c-format
 msgid "error running '%s': probably not installed\n"
@@ -730,12 +725,12 @@ msgid "error running '%s': terminated\n"
 msgstr "ошибка выполнения '%s': прервано\n"
 
 #, c-format
-msgid "error getting exit code of process %d: %s\n"
-msgstr "ошибка получения кода возврата процесса %d: %s\n"
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "сбой при ожидании завершения процесса: %s\n"
 
 #, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr "сбой при ожидании завершения процесса %d: %s\n"
+msgid "error getting exit code of process %d: %s\n"
+msgstr "ошибка получения кода возврата процесса %d: %s\n"
 
 #, c-format
 msgid "can't connect to '%s': %s\n"
@@ -756,6 +751,16 @@ msgstr "Внимание: небезопасный владелец %s \"%s\"\n"
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
 msgstr "Внимание: небезопасные права доступа %s \"%s\"\n"
 
+#, fuzzy, c-format
+#| msgid "waiting for the agent to come up ... (%ds)\n"
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "ожидаю подключения агента ... (%iс)\n"
+
+#, fuzzy, c-format
+#| msgid "error renaming '%s' to '%s': %s\n"
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "ошибка переименования '%s' в '%s': %s\n"
+
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "yes"
 msgstr "да|yes"
@@ -2046,8 +2051,9 @@ msgstr "показать в списке ключей название табл
 msgid "show expiration dates during signature listings"
 msgstr "показать в списке подписей сроки действия"
 
-msgid "available TOFU policies:\n"
-msgstr "Доступные правила TOFU:\n"
+#, c-format
+msgid "valid values for option '%s':\n"
+msgstr "недопустимые значения для параметра \"%s\"\n"
 
 #, c-format
 msgid "unknown TOFU policy '%s'\n"
@@ -2057,6 +2063,10 @@ msgid "(use \"help\" to list choices)\n"
 msgstr "(\"help\" выведет список вариантов)\n"
 
 #, c-format
+msgid "invalid value for option '%s'\n"
+msgstr "недопустимое значения для параметра \"%s\"\n"
+
+#, c-format
 msgid "Note: old default options file '%s' ignored\n"
 msgstr "Замечание: старый основной файл параметров '%s' проигнорирован\n"
 
@@ -2068,10 +2078,9 @@ msgstr "Замечание: %s не предназначен для нормал
 msgid "'%s' is not a valid signature expiration\n"
 msgstr "'%s' - не допустимый срок действия подписи\n"
 
-#, fuzzy, c-format
-#| msgid "line %d: not a valid email address\n"
+#, c-format
 msgid "\"%s\" is not a proper mail address\n"
-msgstr "строка %d: нет допустимого адреса электронной почты\n"
+msgstr "\"%s\" не является адресом электронной почты\n"
 
 #, c-format
 msgid "invalid pinentry mode '%s'\n"
@@ -2820,6 +2829,10 @@ msgid "[self-signature]"
 msgstr "[самоподпись]"
 
 #, c-format
+msgid "error allocating memory: %s\n"
+msgstr "ошибка выделения памяти: %s\n"
+
+#, c-format
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
 msgstr ""
 "не удалось проверить подпись: алгоритм с открытым ключом %d не "
@@ -4372,10 +4385,9 @@ msgstr "               ключом %s с ID %s\n"
 msgid "Signature made %s using %s key ID %s\n"
 msgstr "Подпись сделана %s ключом %s с ID %s\n"
 
-#, fuzzy, c-format
-#| msgid "                aka \"%s\""
+#, c-format
 msgid "               issuer \"%s\"\n"
-msgstr "                Ð¸Ð»Ð¸ \"%s\""
+msgstr "                Ð¸Ð·Ð´Ð°Ñ\82елÑ\8c \"%s\"\n"
 
 msgid "Key available at: "
 msgstr "Ключ доступен на: "
@@ -4759,6 +4771,18 @@ msgstr "Этот ключ, вероятно, принадлежит назван
 msgid "This key belongs to us\n"
 msgstr "Данный ключ принадлежит нам\n"
 
+#, c-format
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr "%s: Некачественный ключ! Он помечен как недоверенный!\n"
+
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"Некачественный ключ! Он помечен как недоверенный! Если Вы ТОЧНО знаете,\n"
+"что делаете, можете ответить на следующий вопрос утвердительно.\n"
+
 msgid ""
 "It is NOT certain that the key belongs to the person named\n"
 "in the user ID.  If you *really* know what you are doing,\n"
@@ -5409,31 +5433,33 @@ msgid "error updating TOFU database: %s\n"
 msgstr "ошибка обновления базы данных TOFU: %s\n"
 
 #, c-format
-msgid "The binding %s is NOT known."
-msgstr "Привязка %s неизвестна."
+msgid ""
+"This is the first time the email address \"%s\" is being used with key %s."
+msgstr "Адрес электронной почты \"%s\" используется с ключом %s впервые."
 
 #, c-format
-msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr "Адрес электронной почты \"%s\" связан с %d ключами!"
+
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
-"Ключ с отпечатком %s противоречит этой привязке %s. Поскольку правило "
-"привязки было 'автоматически', оно изменилось на 'спрашивать'."
+" Поскольку правило привязки было 'автоматически', оно изменилось на "
+"'спрашивать'."
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
-"Укажите, считаете ли Вы привязку %s%sправомерной (ключ принадлежит "
-"заÑ\8fвленномÑ\83 Ð²Ð»Ð°Ð´ÐµÐ»Ñ\8cÑ\86Ñ\83) Ð¸Ð»Ð¸ Ð¿Ð¾Ð´Ð´ÐµÐ»Ñ\8cной (плоÑ\85ой)."
+"Укажите, пожалуйста, следует ли связать этот адрес электронной почты с "
+"клÑ\8eÑ\87ом %s Ð¸Ð»Ð¸ Ð²Ñ\8b Ð´Ñ\83маеÑ\82е, Ñ\87Ñ\82о ÐºÑ\82о-Ñ\82о Ð²Ñ\8bдаеÑ\82 Ñ\81ебÑ\8f Ð·Ð° \"%s\"."
 
 #, c-format
 msgid "error gathering other user IDs: %s\n"
 msgstr "ошибка при сборе ID других пользователей: %s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr "Ð\98звеÑ\81Ñ\82нÑ\8bе ID Ð¿Ð¾Ð»Ñ\8cзоваÑ\82елÑ\8f, Ñ\81вÑ\8fзаннÑ\8bе Ñ\81 Ñ\8dÑ\82им ÐºÐ»Ñ\8eÑ\87ом:\n"
+msgid "This key's user IDs:\n"
+msgstr "Ð\98денÑ\82иÑ\84икаÑ\82оÑ\80Ñ\8b Ð¿Ð¾Ð»Ñ\8cзоваÑ\82елÑ\8f Ñ\8dÑ\82ого ÐºÐ»Ñ\8eÑ\87а:\n"
 
 #, c-format
 msgid "policy: %s"
@@ -5454,43 +5480,49 @@ msgstr[2] "Адрес электронной почты \"%s\" связан с %
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr "Статистика ключей с адресом электронной почты \"%s\":\n"
 
+msgid ", "
+msgstr ", "
+
 msgid "this key"
 msgstr "этот ключ"
 
 #, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
-msgstr[0] "%ld сообщение подписано в будущем."
-msgstr[1] "%ld сообщения подписаны в будущем."
-msgstr[2] "%ld сообщений подписано в будущем."
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
+msgstr[0] "Проверено %d сообщение"
+msgstr[1] "Проверены %d сообщения"
+msgstr[2] "Проверено %d сообщений"
 
 #, c-format
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
-msgstr[0] "%ld сообщение подписано"
-msgstr[1] "%ld сообщения подписаны"
-msgstr[2] "%ld сообщений подписано"
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
+msgstr[0] "Зашифровано %d сообщение"
+msgstr[1] "Зашифрованы %d сообщения"
+msgstr[2] "Зашифровано %d сообщений"
 
 #, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
-msgstr[0] " за %ld прошедший день."
-msgstr[1] " за %ld прошедших дня."
-msgstr[2] " за %ld прошедших дней."
+msgid " over the past day."
+msgid_plural " over the past %d days."
+msgstr[0] " за %d прошедший день."
+msgstr[1] " за %d прошедших дня."
+msgstr[2] " за %d прошедших дней."
 
 #, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
-msgstr[0] " за %ld прошедшую неделю."
-msgstr[1] " за %ld прошедших недели."
-msgstr[2] " за %ld прошедших недель."
+msgid " over the past month."
+msgid_plural " over the past %d months."
+msgstr[0] " за %d прошедший месяц."
+msgstr[1] " за %d прошедших месяца."
+msgstr[2] " за %d прошедших месяцев."
 
 #, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
-msgstr[0] " за %ld прошедший месяц."
-msgstr[1] " за %ld прошедших месяца."
-msgstr[2] " за %ld прошедших месяцев."
+msgid " over the past year."
+msgid_plural " over the past %d years."
+msgstr[0] " за %d прошедший год."
+msgstr[1] " за %d прошедших дня."
+msgstr[2] " за %d прошедших дней."
+
+msgid " in the past."
+msgstr " в прошлом."
 
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
@@ -5514,6 +5546,16 @@ msgid "(G)ood, (A)ccept once, (U)nknown, (R)eject once, (B)ad? "
 msgstr ""
 "(G)Хороший, (A)Пока принять, (U)Неясно, (R)Пока отвергнуть, (B)Плохой? "
 
+msgid "Defaulting to unknown."
+msgstr "Принимается исходное значение (неясно)."
+
+msgid "TOFU db corruption detected.\n"
+msgstr "Обнаружено повреждение базы данных TOFU.\n"
+
+#, c-format
+msgid "resetting keydb: %s\n"
+msgstr "сброс базы данных ключей: %s\n"
+
 #, c-format
 msgid "error setting TOFU binding's trust level to %s\n"
 msgstr "ошибка установки уровня доверия привязки TOFU в %s\n"
@@ -5567,79 +5609,78 @@ msgstr[1] "%d~секунды"
 msgstr[2] "%d~секунд"
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
-msgstr "Сообщения, подписанные ключом %s, никогда не проверялись!\n"
+msgid "%s: "
+msgstr "%s: "
 
 #, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
-msgstr ""
-"Не удалось собрать статистику подписей для \"%s\"\n"
-"(ключ %s)\n"
+msgid "Verified %ld signatures"
+msgstr "Проверено %ld подписей"
 
 #, c-format
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "Проверено %ld сообщений, подписанных \"%s\"."
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
+msgstr[0] "Проверена %ld подпись за %s."
+msgstr[1] "Проверены %ld прописи за %s."
+msgstr[2] "Проверено %ld подписей за %s."
 
 #, c-format
-msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
-msgstr[0] ""
-"Проверено %ld сообщение, подписанное \"%s\"\n"
-" за %s."
-msgstr[1] ""
-"Проверены %ld сообщения, подписанные \"%s\"\n"
-" за %s."
-msgstr[2] ""
-"Проверено %ld сообщений, подписанных \"%s\"\n"
-" за %s."
+msgid ", and encrypted %ld messages"
+msgstr ", зашифровано %ld сообщений"
 
 #, c-format
-msgid "The most recent message was verified %s ago."
-msgstr "Последнее сообщение проверено %s назад."
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] ", зашифровано %ld сообщение за %s."
+msgstr[1] ", зашифрованы %ld сообщения за %s."
+msgstr[2] ", зашифровано %ld сообщений за %s."
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
 msgstr ""
 "Внимание: мы до сих пор не видели ни одного сообщения, подписанного этим "
-"ключом!\n"
+"ключом и этим идентификатором пользователя!\n"
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 "Внимание: мы до сих пор видели только одно сообщение, подписанное этим "
-"ключом!\n"
+"ключом и этим идентификатором пользователя!\n"
+
+msgid "Warning: you have yet to encrypt a message to this key!\n"
+msgstr ""
+"Внимание: мы до сих пор не зашифровали этим ключом ни одного сообщения!\n"
+
+msgid "Warning: you have only encrypted one message to this key!\n"
+msgstr ""
+"Внимание: мы до сих пор зашифровали этим ключом только одно сообщение!\n"
 
 #, c-format
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
-"Ð\92нимание: ÐµÑ\81ли Ð²Ñ\8b Ð²Ð¸Ð´ÐµÐ»Ð¸ Ð±Ð¾Ð»Ñ\8cÑ\88е %ld Ñ\81ообÑ\89ениÑ\8f, Ð¿Ð¾Ð´Ð¿Ð¸Ñ\81анного Ñ\8dÑ\82им ÐºÐ»Ñ\8eÑ\87ом, "
-"этот ключ может быть подделкой! Внимательно проверьте, не внесены ли в адрес "
+"Ð\92нимание: ÐµÑ\81ли Ð²Ñ\8b Ð²Ð¸Ð´ÐµÐ»Ð¸ Ð´Ñ\80Ñ\83гие Ñ\81ообÑ\89ениÑ\8f, Ð¿Ð¾Ð´Ð¿Ð¸Ñ\81аннÑ\8bе Ñ\8dÑ\82им ÐºÐ»Ñ\8eÑ\87ом, Ñ\8dÑ\82оÑ\82 "
+"ключ может быть подделкой! Внимательно проверьте, не внесены ли в адрес "
 "электронной почты небольшие изменения. В случае подозрений пометьте ключ как "
 "некачественный командой\n"
 "  %s\n"
 msgstr[1] ""
-"Ð\92нимание: ÐµÑ\81ли Ð²Ñ\8b Ð²Ð¸Ð´ÐµÐ»Ð¸ Ð±Ð¾Ð»Ñ\8cÑ\88е %ld Ñ\81ообÑ\89ений, Ð¿Ð¾Ð´Ð¿Ð¸Ñ\81аннÑ\8bÑ\85 этим ключом, этот "
+"Ð\92нимание: ÐµÑ\81ли Ð²Ñ\8b Ð²Ð¸Ð´ÐµÐ»Ð¸ Ð´Ñ\80Ñ\83гие Ñ\81ообÑ\89ениÑ\8f, Ð¿Ð¾Ð´Ð¿Ð¸Ñ\81аннÑ\8bе этим ключом, этот "
 "ключ может быть подделкой! Внимательно проверьте, не внесены ли в адрес "
 "электронной почты небольшие изменения. В случае подозрений пометьте ключ как "
 "некачественный командой\n"
 "  %s\n"
 msgstr[2] ""
-"Ð\92нимание: ÐµÑ\81ли Ð²Ñ\8b Ð²Ð¸Ð´ÐµÐ»Ð¸ Ð±Ð¾Ð»Ñ\8cÑ\88е %ld Ñ\81ообÑ\89ений, Ð¿Ð¾Ð´Ð¿Ð¸Ñ\81аннÑ\8bÑ\85 этим ключом, этот "
+"Ð\92нимание: ÐµÑ\81ли Ð²Ñ\8b Ð²Ð¸Ð´ÐµÐ»Ð¸ Ð´Ñ\80Ñ\83гие Ñ\81ообÑ\89ениÑ\8f, Ð¿Ð¾Ð´Ð¿Ð¸Ñ\81аннÑ\8bе этим ключом, этот "
 "ключ может быть подделкой! Внимательно проверьте, не внесены ли в адрес "
 "электронной почты небольшие изменения. В случае подозрений пометьте ключ как "
 "некачественный командой\n"
@@ -5650,6 +5691,18 @@ msgid "error opening TOFU database: %s\n"
 msgstr "ошибка при открытии базы данных TOFU: %s\n"
 
 #, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+"ВНИМАНИЕ: Шифрование для ключа %s, у которого нет неотозванных "
+"идентификаторов пользователя.\n"
+
+#, c-format
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr ""
+"ошибка установки правил для ключа %s с идентификатором пользователя \"%s\": "
+"%s"
+
+#, c-format
 msgid "'%s' is not a valid long keyID\n"
 msgstr "'%s' не является допустимым длинным ID ключа\n"
 
@@ -5892,21 +5945,21 @@ msgstr "сбой при сохранении отпечатка: %s\n"
 msgid "failed to store the creation date: %s\n"
 msgstr "сбой при сохранении даты создания: %s\n"
 
-#, c-format
-msgid "reading public key failed: %s\n"
-msgstr "сбой при чтении открытого ключа: %s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr "ответ не содержит данных открытого ключа\n"
-
 msgid "response does not contain the RSA modulus\n"
 msgstr "в ответе отсутствует модуль RSA\n"
 
 msgid "response does not contain the RSA public exponent\n"
 msgstr "в ответе отсутствует открытая экспонента RSA\n"
 
-msgid "response does not contain the EC public point\n"
-msgstr "в ответе отсутствует открытая точка эллиптической кривой\n"
+msgid "response does not contain the EC public key\n"
+msgstr "в ответе отсутствует открытый ключ эллиптической кривой\n"
+
+msgid "response does not contain the public key data\n"
+msgstr "ответ не содержит данных открытого ключа\n"
+
+#, c-format
+msgid "reading public key failed: %s\n"
+msgstr "сбой при чтении открытого ключа: %s\n"
 
 #, c-format
 msgid "using default PIN as %s\n"
@@ -7492,6 +7545,11 @@ msgstr "принудительная загрузка устаревших сп
 msgid "allow sending OCSP requests"
 msgstr "разрешить посылку запросов OCSP"
 
+#, fuzzy
+#| msgid "query the software version database"
+msgid "allow online software version check"
+msgstr "запросить базу данных версий программ"
+
 msgid "inhibit the use of HTTP"
 msgstr "запретить использование HTTP"
 
@@ -7752,10 +7810,6 @@ msgid "'%s' is an invalid LDAP URL\n"
 msgstr "'%s' - недопустимый URL LDAP\n"
 
 #, c-format
-msgid "error allocating memory: %s\n"
-msgstr "ошибка выделения памяти: %s\n"
-
-#, c-format
 msgid "error printing log line: %s\n"
 msgstr "ошибка вывода строки журнала: %s\n"
 
@@ -8211,22 +8265,30 @@ msgstr "Список серверов LDAP"
 msgid "Configuration for OCSP"
 msgstr "Настройки OCSP"
 
-msgid "GPG for OpenPGP"
+#, fuzzy
+#| msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr "GPG для OpenPGP"
 
-msgid "GPG Agent"
-msgstr "Агент GPG"
+msgid "Private Keys"
+msgstr ""
 
-msgid "Smartcard Daemon"
+#, fuzzy
+#| msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr "Демон криптографических карт"
 
-msgid "GPG for S/MIME"
+#, fuzzy
+#| msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr "GPG для S/MIME"
 
-msgid "Key Acquirer"
-msgstr "Диспетчер ключей"
+msgid "Network"
+msgstr ""
 
-msgid "PIN and Passphrase Entry"
+#, fuzzy
+#| msgid "PIN and Passphrase Entry"
+msgid "Passphrase Entry"
 msgstr "Ввод PIN и фраз-паролей"
 
 msgid "Component not suitable for launching"
@@ -8266,6 +8328,9 @@ msgstr "указать глобальный файл настроек"
 msgid "check global configuration file"
 msgstr "проверить глобальный файл настроек"
 
+msgid "query the software version database"
+msgstr "запросить базу данных версий программ"
+
 msgid "reload all or a given component"
 msgstr "перезагрузить все или заданный компонент"
 
@@ -8445,60 +8510,8 @@ msgstr ""
 "Синтаксис: gpg-check-pattern [параметры] файл_образцов\n"
 "Проверить фразу-пароль, поступающую из stdin, по файлу образцов\n"
 
-#~ msgid "communication problem with gpg-agent\n"
-#~ msgstr "проблема связи с агентом gpg\n"
-
-#~ msgid "canceled by user\n"
-#~ msgstr "прервано пользователем\n"
-
-#~ msgid "problem with the agent\n"
-#~ msgstr "проблема с агентом\n"
-
-#~ msgid "problem with the agent (unexpected response \"%s\")\n"
-#~ msgstr "проблема с агентом (неожиданный ответ \"%s\")\n"
-
-#~ msgid "unknown TOFU DB format '%s'\n"
-#~ msgstr "неизвестный формат базы данных TOFU '%s'\n"
-
-#~ msgid "libgcrypt is too old (need %s, have %s)\n"
-#~ msgstr "слишком старая версия libcrypt (нужно %s, есть %s)\n"
-
-#~ msgid ""
-#~ "Please enter the passphrase to unlock the secret key for the OpenPGP "
-#~ "certificate:\n"
-#~ "\"%.*s\"\n"
-#~ "%u-bit %s key, ID %s,\n"
-#~ "created %s%s.\n"
-#~ msgstr ""
-#~ "Введите фразу-пароль для доступа к секретному ключу сертификата OpenPGP:\n"
-#~ "\"%.*s\"\n"
-#~ "%u-битный ключ %s, ID %s,\n"
-#~ "создан %s%s.\n"
-
-#~ msgid ""
-#~ "You need a passphrase to unlock the secret key for\n"
-#~ "user: \"%s\"\n"
-#~ msgstr ""
-#~ "Необходима фраза-пароль для доступа к секретному ключу пользователя: \"%s"
-#~ "\"\n"
-
-#~ msgid "%u-bit %s key, ID %s, created %s"
-#~ msgstr "%u-битный ключ %s, ID %s, создан %s"
-
-#~ msgid "         (subkey on main key ID %s)"
-#~ msgstr "         (подключ на главном ключе %s)"
-
-#~ msgid "Warning: Home directory contains both tofu.db and tofu.d.\n"
-#~ msgstr "Внимание: Домашний каталог содержит как tofu.db, так и tofu.d\n"
-
-#~ msgid "Using split format for TOFU database\n"
-#~ msgstr "Используется разделенный формат базы данных TOFU\n"
-
-#~ msgid "can't access directory '%s': %s\n"
-#~ msgstr "не могу получить доступ к каталогу '%s': %s\n"
-
-#~ msgid "run as windows service (background)"
-#~ msgstr "запустить как службу окон (фоновый режим)"
+#~ msgid "GPG Agent"
+#~ msgstr "Агент GPG"
 
-#~ msgid "running in compatibility mode - certificate chain not checked!\n"
-#~ msgstr "работа в совместимом режиме - цепочка сертификатов не проверена!\n"
+#~ msgid "Key Acquirer"
+#~ msgstr "Диспетчер ключей"
index 7f9464d..c44b6c3 100644 (file)
--- a/po/sk.po
+++ b/po/sk.po
@@ -14,12 +14,12 @@ msgstr ""
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
 "Language: sk\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-2\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #, fuzzy, c-format
 msgid "failed to acquire the pinentry lock: %s\n"
-msgstr "nemô¾em inicializova» databázu dôvery: %s\n"
+msgstr "nemôžem inicializovať databázu dôvery: %s\n"
 
 #. TRANSLATORS: These are labels for buttons etc used in
 #. Pinentries.  An underscore indicates that the next letter
@@ -47,7 +47,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Do you really want to make your passphrase visible on the screen?"
-msgstr "Skutoène chcete zmaza» vybrané kµúèe? "
+msgstr "Skutočne chcete zmazať vybrané kľúče? "
 
 msgid "|pinentry-tt|Make passphrase visible"
 msgstr ""
@@ -55,7 +55,7 @@ msgstr ""
 #, fuzzy
 #| msgid "invalid passphrase"
 msgid "|pinentry-tt|Hide passphrase"
-msgstr "nesprávne heslo"
+msgstr "nesprávne heslo"
 
 #. TRANSLATORS: This string is displayed by Pinentry as the label
 #. for the quality bar.
@@ -80,14 +80,14 @@ msgstr ""
 msgid ""
 "Please enter your passphrase, so that the secret key can be unlocked for "
 "this session"
-msgstr "Prosím, vlo¾te heslo; toto je tajná veta \n"
+msgstr "Prosím, vložte heslo; toto je tajná veta \n"
 
 msgid "PIN:"
 msgstr ""
 
 #, fuzzy
 msgid "Passphrase:"
-msgstr "nesprávne heslo"
+msgstr "nesprávne heslo"
 
 msgid "does not match - try again"
 msgstr ""
@@ -104,44 +104,44 @@ msgstr ""
 
 #, fuzzy
 msgid "PIN too long"
-msgstr "riadok je príli¹ dlhý\n"
+msgstr "riadok je príliš dlhý\n"
 
 #, fuzzy
 msgid "Passphrase too long"
-msgstr "heslo je príli¹ dlhé\n"
+msgstr "heslo je príliš dlhé\n"
 
 #, fuzzy
 msgid "Invalid characters in PIN"
-msgstr "Neplatný znak ve mene\n"
+msgstr "Neplatný znak ve mene\n"
 
 msgid "PIN too short"
 msgstr ""
 
 #, fuzzy
 msgid "Bad PIN"
-msgstr "nesprávne MPI"
+msgstr "nesprávne MPI"
 
 #, fuzzy
 msgid "Bad Passphrase"
-msgstr "nesprávne heslo"
+msgstr "nesprávne heslo"
 
 #, fuzzy, c-format
 msgid "ssh keys greater than %d bits are not supported\n"
-msgstr "ochranný algoritmus %d%s nie je podporováný\n"
+msgstr "ochranný algoritmus %d%s nie je podporováný\n"
 
 #, fuzzy, c-format
 #| msgid "can't create `%s': %s\n"
 msgid "can't create '%s': %s\n"
-msgstr "nemô¾em vytvori» `%s': %s\n"
+msgstr "nemôžem vytvoriť `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't open `%s': %s\n"
 msgid "can't open '%s': %s\n"
-msgstr "nemô¾em otvori» `%s': %s\n"
+msgstr "nemôžem otvoriť `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error getting serial number of card: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, c-format
 msgid "detected card with S/N: %s\n"
@@ -149,19 +149,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "no authentication key for ssh on card: %s\n"
-msgstr "chyba pri zápise do súboru tajných kµúèov `%s': %s\n"
+msgstr "chyba pri zápise do súboru tajných kľúčov `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "no suitable card key found: %s\n"
-msgstr "nenájdený zapisovateµný súbor tajných kµúèov (secring): %s\n"
-
-#, fuzzy, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "zmazanie bloku kµúèa sa nepodarilo:  %s\n"
-
-#, fuzzy, c-format
-msgid "error writing key: %s\n"
-msgstr "chyba pri zápise súboru kµúèov (keyring)  `%s': %s\n"
+msgstr "nenájdený zapisovateľný súbor tajných kľúčov (secring): %s\n"
 
 #, c-format
 msgid ""
@@ -177,21 +169,21 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "Please enter the passphrase for the ssh key%%0A  %F%%0A  (%c)"
-msgstr "Prosím, vlo¾te heslo; toto je tajná veta \n"
+msgstr "Prosím, vložte heslo; toto je tajná veta \n"
 
 #, fuzzy
 msgid "Please re-enter this passphrase"
-msgstr "zmeni» heslo"
+msgstr "zmeniť heslo"
 
 #, fuzzy, c-format
 msgid ""
 "Please enter a passphrase to protect the received secret key%%0A   %s%%0A   "
 "%s%%0Awithin gpg-agent's key storage"
-msgstr "Prosím, vlo¾te heslo; toto je tajná veta \n"
+msgstr "Prosím, vložte heslo; toto je tajná veta \n"
 
 #, fuzzy, c-format
 msgid "failed to create stream from socket: %s\n"
-msgstr "%s: nepodarilo sa vytvori» hashovaciu tabuµku: %s\n"
+msgstr "%s: nepodarilo sa vytvoriť hashovaciu tabuľku: %s\n"
 
 msgid "Please insert the card with serial number"
 msgstr ""
@@ -228,15 +220,15 @@ msgstr "Opakujte heslo: "
 
 #, fuzzy
 msgid "Reset Code not correctly repeated; try again"
-msgstr "heslo nie je zopakované správne; skúste to znovu"
+msgstr "heslo nie je zopakované správne; skúste to znovu"
 
 #, fuzzy
 msgid "PUK not correctly repeated; try again"
-msgstr "heslo nie je zopakované správne; skúste to znovu"
+msgstr "heslo nie je zopakované správne; skúste to znovu"
 
 #, fuzzy
 msgid "PIN not correctly repeated; try again"
-msgstr "heslo nie je zopakované správne; skúste to znovu"
+msgstr "heslo nie je zopakované správne; skúste to znovu"
 
 #, c-format
 msgid "Please enter the PIN%s%s%s to unlock the card"
@@ -244,7 +236,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error creating temporary file: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, fuzzy, c-format
 msgid "error writing to temporary file: %s\n"
@@ -252,11 +244,11 @@ msgstr "zapisujem do '%s'\n"
 
 #, fuzzy
 msgid "Enter new passphrase"
-msgstr "Vlo¾i» heslo\n"
+msgstr "Vložiť heslo\n"
 
 #, fuzzy
 msgid "Take this one anyway"
-msgstr "Pou¾i» napriek tomu tento kµúè? "
+msgstr "Použiť napriek tomu tento kľúč? "
 
 #, c-format
 msgid ""
@@ -276,8 +268,8 @@ msgstr ""
 #| msgid "Name must be at least 5 characters long\n"
 msgid "A passphrase should be at least %u character long."
 msgid_plural "A passphrase should be at least %u characters long."
-msgstr[0] "Meno musí by» dlhé aspoò 5 znakov\n"
-msgstr[1] "Meno musí by» dlhé aspoò 5 znakov\n"
+msgstr[0] "Meno musí byť dlhé aspoň 5 znakov\n"
+msgstr[1] "Meno musí byť dlhé aspoň 5 znakov\n"
 
 #, c-format
 msgid "A passphrase should contain at least %u digit or%%0Aspecial character."
@@ -296,12 +288,12 @@ msgstr ""
 #, fuzzy, c-format
 msgid "Please enter the passphrase to%0Aprotect your new key"
 msgstr ""
-"Na ochranu Vá¹ho tajného kµúèa musíte zada» heslo.\n"
+"Na ochranu Vášho tajného kľúča musíte zadať heslo.\n"
 "\n"
 
 #, fuzzy
 msgid "Please enter the new passphrase"
-msgstr "zmeni» heslo"
+msgstr "zmeniť heslo"
 
 #, fuzzy
 msgid ""
@@ -309,7 +301,7 @@ msgid ""
 " "
 msgstr ""
 "@\n"
-"Mo¾nosti:\n"
+"Možnosti:\n"
 " "
 
 msgid "run in daemon mode (background)"
@@ -318,11 +310,16 @@ msgstr ""
 msgid "run in server mode (foreground)"
 msgstr ""
 
+#, fuzzy
+#| msgid "Key is superseded"
+msgid "run in supervised mode"
+msgstr "Kľúč je nahradený"
+
 msgid "verbose"
-msgstr "s dodatoènými informáciami"
+msgstr "s dodatočnými informáciami"
 
 msgid "be somewhat more quiet"
-msgstr "by» o trochu tich¹í"
+msgstr "byť o trochu tichší"
 
 msgid "sh-style command output"
 msgstr ""
@@ -332,7 +329,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|read options from FILE"
-msgstr "|SÚBOR|nahra» roz¹irujúci modul SÚBOR"
+msgstr "|SÚBOR|nahrať rozširujúci modul SÚBOR"
 
 msgid "do not detach from the console"
 msgstr ""
@@ -342,7 +339,7 @@ msgstr ""
 
 #, fuzzy
 msgid "use a log file for the server"
-msgstr "vyhµada» kµúèe na serveri kµúèov"
+msgstr "vyhľadať kľúče na serveri kľúčov"
 
 msgid "|PGM|use PGM as the PIN-Entry program"
 msgstr ""
@@ -352,12 +349,12 @@ msgstr ""
 
 #, fuzzy
 msgid "do not use the SCdaemon"
-msgstr "aktualizova» databázu dôvery"
+msgstr "aktualizovať databázu dôvery"
 
 #, fuzzy
 #| msgid "|NAME|set terminal charset to NAME"
 msgid "|NAME|accept some commands via NAME"
-msgstr "|MENO|nastav znakovú sadu terminálu na MENO"
+msgstr "|MENO|nastav znakovú sadu terminálu na MENO"
 
 msgid "ignore requests to change the TTY"
 msgstr ""
@@ -373,14 +370,14 @@ msgstr ""
 
 #, fuzzy
 msgid "disallow the use of an external password cache"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 msgid "disallow clients to mark keys as \"trusted\""
 msgstr ""
 
 #, fuzzy
 msgid "allow presetting passphrase"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 msgid "disallow caller to override the pinentry"
 msgstr ""
@@ -391,12 +388,12 @@ msgstr ""
 #, fuzzy
 #| msgid "not supported"
 msgid "enable ssh support"
-msgstr "nepodporované"
+msgstr "nepodporované"
 
 #, fuzzy
 #| msgid "not supported"
 msgid "enable putty support"
-msgstr "nepodporované"
+msgstr "nepodporované"
 
 #. TRANSLATORS: @EMAIL@ will get replaced by the actual bug
 #. reporting address.  This is so that we can change the
@@ -404,12 +401,12 @@ msgstr "nepodporovan
 #, fuzzy
 msgid "Please report bugs to <@EMAIL@>.\n"
 msgstr ""
-"Chyby oznámte, prosím, na adresu <gnupg-bugs@gnu.org>.\n"
+"Chyby oznámte, prosím, na adresu <gnupg-bugs@gnu.org>.\n"
 "Pripomienky k prekladu <sk-i18n@lists.linux.sk>.\n"
 
 #, fuzzy
 msgid "Usage: @GPG_AGENT@ [options] (-h for help)"
-msgstr "Pou¾itie: gpg [mo¾nosti] [súbory] (-h pre pomoc)"
+msgstr "Použitie: gpg [možnosti] [súbory] (-h pre pomoc)"
 
 msgid ""
 "Syntax: @GPG_AGENT@ [options] [command [args]]\n"
@@ -423,26 +420,26 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "NOTE: no default option file `%s'\n"
 msgid "Note: no default option file '%s'\n"
-msgstr "POZNÁMKA: neexistuje implicitný súbor s mo¾nos»ami `%s'\n"
+msgstr "POZNÁMKA: neexistuje implicitný súbor s možnosťami `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "option file `%s': %s\n"
 msgid "option file '%s': %s\n"
-msgstr "súbor s mo¾nos»ami `%s': %s\n"
+msgstr "súbor s možnosťami `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "reading options from `%s'\n"
 msgid "reading options from '%s'\n"
-msgstr "èítam mo¾nosti z `%s'\n"
+msgstr "Ä\8dítam možnosti z `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: \"%s\" is a deprecated option\n"
 msgid "Note: '%s' is not considered an option\n"
-msgstr "VAROVÁNÍ: pou¾itie parametra \"%s\" sa neodporúèa\n"
+msgstr "VAROVÁNÍ: použitie parametra \"%s\" sa neodporúča\n"
 
 #, fuzzy, c-format
 msgid "can't create socket: %s\n"
-msgstr "%s: nemô¾em vytvori»: %s\n"
+msgstr "%s: nemôžem vytvoriť: %s\n"
 
 #, c-format
 msgid "socket name '%s' is too long\n"
@@ -450,48 +447,48 @@ msgstr ""
 
 #, fuzzy
 msgid "a gpg-agent is already running - not starting a new one\n"
-msgstr "gpg-agent nie je v tomto sedení dostupný\n"
+msgstr "gpg-agent nie je v tomto sedení dostupný\n"
 
 #, fuzzy
 msgid "error getting nonce for the socket\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, fuzzy, c-format
 msgid "error binding socket to '%s': %s\n"
-msgstr "chyba pri posielaní na `%s': %s\n"
+msgstr "chyba pri posielaní na `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "can't set permissions of '%s': %s\n"
-msgstr "VAROVANIE: prístupové práva pre %s nie sú nastavené bezpeène \"%s\"\n"
+msgstr "VAROVANIE: prístupové práva pre %s nie sú nastavené bezpečne \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "listen() failed: %s\n"
-msgstr "aktualizácia zlyhala: %s\n"
+msgstr "aktualizácia zlyhala: %s\n"
 
 #, fuzzy, c-format
 msgid "listening on socket '%s'\n"
-msgstr "zapisujem tajný kµúè do `%s'\n"
+msgstr "zapisujem tajný kľúč do `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "can't create directory `%s': %s\n"
 msgid "can't create directory '%s': %s\n"
-msgstr "nemô¾em vytvori» adresár `%s': %s\n"
+msgstr "nemôžem vytvoriť adresár `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "directory '%s' created\n"
-msgstr "%s: adresár vytvorený\n"
+msgstr "%s: adresár vytvorený\n"
 
 #, fuzzy, c-format
 msgid "stat() failed for '%s': %s\n"
-msgstr "databáza dôvery: procedúra read() (n=%d) zlyhala: %s\n"
+msgstr "databáza dôvery: procedúra read() (n=%d) zlyhala: %s\n"
 
 #, fuzzy, c-format
 msgid "can't use '%s' as home directory\n"
-msgstr "%s: nemô¾em vytvori» adresár: %s\n"
+msgstr "%s: nemôžem vytvoriť adresár: %s\n"
 
 #, fuzzy, c-format
 msgid "error reading nonce on fd %d: %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, c-format
 msgid "handler 0x%lx for fd %d started\n"
@@ -511,19 +508,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "npth_pselect failed: %s - waiting 1s\n"
-msgstr "aktualizácia tajného kµúèa zlyhala: %s\n"
+msgstr "aktualizácia tajného kľúča zlyhala: %s\n"
 
 #, fuzzy, c-format
 msgid "%s %s stopped\n"
-msgstr "%s: preskoèené: %s\n"
+msgstr "%s: preskočené: %s\n"
 
 #, fuzzy
 msgid "no gpg-agent running in this session\n"
-msgstr "gpg-agent nie je v tomto sedení dostupný\n"
+msgstr "gpg-agent nie je v tomto sedení dostupný\n"
 
 #, fuzzy
 msgid "Usage: gpg-preset-passphrase [options] KEYGRIP (-h for help)\n"
-msgstr "Pou¾itie: gpg [mo¾nosti] [súbory] (-h pre pomoc)"
+msgstr "Použitie: gpg [možnosti] [súbory] (-h pre pomoc)"
 
 msgid ""
 "Syntax: gpg-preset-passphrase [options] KEYGRIP\n"
@@ -534,7 +531,7 @@ msgid ""
 "@Commands:\n"
 " "
 msgstr ""
-"@Príkazy:\n"
+"@Príkazy:\n"
 " "
 
 msgid ""
@@ -543,12 +540,12 @@ msgid ""
 " "
 msgstr ""
 "@\n"
-"Mo¾nosti:\n"
+"Možnosti:\n"
 " "
 
 #, fuzzy
 msgid "Usage: gpg-protect-tool [options] (-h for help)\n"
-msgstr "Pou¾itie: gpg [mo¾nosti] [súbory] (-h pre pomoc)"
+msgstr "Použitie: gpg [možnosti] [súbory] (-h pre pomoc)"
 
 msgid ""
 "Syntax: gpg-protect-tool [options] [args]\n"
@@ -557,11 +554,11 @@ msgstr ""
 
 #, fuzzy
 msgid "Please enter the passphrase to unprotect the PKCS#12 object."
-msgstr "Prosím, vlo¾te heslo; toto je tajná veta \n"
+msgstr "Prosím, vložte heslo; toto je tajná veta \n"
 
 #, fuzzy
 msgid "Please enter the passphrase to protect the new PKCS#12 object."
-msgstr "Prosím, vlo¾te heslo; toto je tajná veta \n"
+msgstr "Prosím, vložte heslo; toto je tajná veta \n"
 
 msgid ""
 "Please enter the passphrase to protect the imported object within the GnuPG "
@@ -572,43 +569,43 @@ msgstr ""
 msgid ""
 "Please enter the passphrase or the PIN\n"
 "needed to complete this operation."
-msgstr "Prosím, vlo¾te heslo; toto je tajná veta \n"
+msgstr "Prosím, vložte heslo; toto je tajná veta \n"
 
 #, fuzzy
 msgid "cancelled\n"
-msgstr "Zru¹i»"
+msgstr "Zrušiť"
 
 #, fuzzy, c-format
 msgid "error while asking for the passphrase: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, fuzzy, c-format
 msgid "error opening '%s': %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "file '%s', line %d: %s\n"
-msgstr "kµúè `%s' nebol nájdený: %s\n"
+msgstr "kľúč `%s' nebol nájdený: %s\n"
 
 #, fuzzy, c-format
 msgid "statement \"%s\" ignored in '%s', line %d\n"
-msgstr "chyba pri èítaní: %s\n"
+msgstr "chyba pri čítaní: %s\n"
 
 #, fuzzy, c-format
 msgid "system trustlist '%s' not available\n"
-msgstr "tajné èasti kµúèa nie sú dostupné\n"
+msgstr "tajné časti kľúča nie sú dostupné\n"
 
 #, fuzzy, c-format
 msgid "bad fingerprint in '%s', line %d\n"
-msgstr "chyba pri èítaní: %s\n"
+msgstr "chyba pri čítaní: %s\n"
 
 #, fuzzy, c-format
 msgid "invalid keyflag in '%s', line %d\n"
-msgstr "chyba: neplatný odtlaèok\n"
+msgstr "chyba: neplatný odtlačok\n"
 
 #, fuzzy, c-format
 msgid "error reading '%s', line %d: %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 msgid "error reading list of trusted root certificates\n"
 msgstr ""
@@ -669,7 +666,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Change passphrase"
-msgstr "zmeni» heslo"
+msgstr "zmeniť heslo"
 
 msgid "I'll change it later"
 msgstr ""
@@ -678,11 +675,11 @@ msgstr ""
 msgid ""
 "Do you really want to delete the key identified by keygrip%%0A  %s%%0A  %%C"
 "%%0A?"
-msgstr "Skutoène chcete zmaza» vybrané kµúèe? "
+msgstr "Skutočne chcete zmazať vybrané kľúče? "
 
 #, fuzzy
 msgid "Delete key"
-msgstr "nastavi» kµúè ako platný (enable)"
+msgstr "nastaviť kľúč ako platný (enable)"
 
 msgid ""
 "Warning: This key is also listed for use with SSH!\n"
@@ -702,82 +699,90 @@ msgstr ""
 
 #, c-format
 msgid "checking created signature failed: %s\n"
-msgstr "kontrola vytvoreného podpisu sa nepodarila: %s\n"
+msgstr "kontrola vytvoreného podpisu sa nepodarila: %s\n"
 
 msgid "secret key parts are not available\n"
-msgstr "tajné èasti kµúèa nie sú dostupné\n"
+msgstr "tajné časti kľúča nie sú dostupné\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "public key algorithm %d (%s) is not supported\n"
-msgstr "ochranný algoritmus %d%s nie je podporováný\n"
+msgstr "ochranný algoritmus %d%s nie je podporováný\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "protection algorithm %d (%s) is not supported\n"
-msgstr "ochranný algoritmus %d%s nie je podporováný\n"
+msgstr "ochranný algoritmus %d%s nie je podporováný\n"
 
 #, fuzzy, c-format
 #| msgid "protection algorithm %d%s is not supported\n"
 msgid "protection hash algorithm %d (%s) is not supported\n"
-msgstr "ochranný algoritmus %d%s nie je podporováný\n"
+msgstr "ochranný algoritmus %d%s nie je podporováný\n"
 
 #, fuzzy, c-format
 msgid "error creating a pipe: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, fuzzy, c-format
 msgid "error creating a stream for a pipe: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, fuzzy, c-format
 msgid "error forking process: %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
-#, fuzzy, c-format
-msgid "waiting for processes to terminate failed: %s\n"
-msgstr "aktualizácia zlyhala: %s\n"
+#, c-format
+msgid "waiting for process %d to terminate failed: %s\n"
+msgstr ""
 
 #, fuzzy, c-format
 msgid "error running '%s': probably not installed\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error running '%s': exit status %d\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error running '%s': terminated\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy, c-format
-msgid "error getting exit code of process %d: %s\n"
-msgstr "chyba pri zápise do súboru tajných kµúèov `%s': %s\n"
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "aktualizácia zlyhala: %s\n"
 
-#, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr ""
+#, fuzzy, c-format
+msgid "error getting exit code of process %d: %s\n"
+msgstr "chyba pri zápise do súboru tajných kľúčov `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to '%s': %s\n"
-msgstr "nemô¾em sa pripoji» k `%s': %s\n"
+msgstr "nemôžem sa pripojiť k `%s': %s\n"
 
 #, fuzzy
 msgid "problem setting the gpg-agent options\n"
-msgstr "problém s agentom: agent vracia 0x%lx\n"
+msgstr "problém s agentom: agent vracia 0x%lx\n"
 
 #, c-format
 msgid "can't disable core dumps: %s\n"
-msgstr "nemô¾em vypnú» vytváranie core súborov: %s\n"
+msgstr "nemôžem vypnúť vytváranie core súborov: %s\n"
 
 #, fuzzy, c-format
 msgid "Warning: unsafe ownership on %s \"%s\"\n"
-msgstr "VAROVANIE: vlastníctvo pre %s nastavené nebezpeène \"%s\"\n"
+msgstr "VAROVANIE: vlastníctvo pre %s nastavené nebezpečne \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
-msgstr "VAROVANIE: prístupové práva pre %s nie sú nastavené bezpeène \"%s\"\n"
+msgstr "VAROVANIE: prístupové práva pre %s nie sú nastavené bezpečne \"%s\"\n"
+
+#, fuzzy, c-format
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "aktualizácia zlyhala: %s\n"
+
+#, fuzzy, c-format
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "kódovanie do ASCII formátu zlyhalo: %s\n"
 
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "yes"
@@ -795,7 +800,7 @@ msgstr "nN"
 
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "quit"
-msgstr "ukonèi»"
+msgstr "ukončiť"
 
 msgid "qQ"
 msgstr "uUqQ"
@@ -825,7 +830,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error allocating enough memory: %s\n"
-msgstr "chyba pri vytváraní súboru kµúèov (keyring)`%s': %s\n"
+msgstr "chyba pri vytváraní súboru kľúčov (keyring)`%s': %s\n"
 
 #, c-format
 msgid "%s:%u: obsolete option \"%s\" - it has no effect\n"
@@ -833,7 +838,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "WARNING: \"%s%s\" is an obsolete option - it has no effect\n"
-msgstr "VAROVÁNÍ: pou¾itie parametra \"%s\" sa neodporúèa\n"
+msgstr "VAROVÁNÍ: použitie parametra \"%s\" sa neodporúča\n"
 
 #, c-format
 msgid "unknown debug flag '%s' ignored\n"
@@ -852,7 +857,7 @@ msgstr ""
 
 #, fuzzy
 msgid "connection to agent is in restricted mode\n"
-msgstr "nemo¾no previes» v dávkovom móde\n"
+msgstr "nemožno previesť v dávkovom móde\n"
 
 #, c-format
 msgid "no running Dirmngr - starting '%s'\n"
@@ -878,63 +883,63 @@ msgstr ""
 
 #, fuzzy
 msgid "|audit-log-result|No certificate"
-msgstr "nesprávny certifikát"
+msgstr "nesprávny certifikát"
 
 #, fuzzy
 msgid "|audit-log-result|Not enabled"
-msgstr "nesprávny certifikát"
+msgstr "nesprávny certifikát"
 
 msgid "|audit-log-result|Error"
 msgstr ""
 
 #, fuzzy
 msgid "|audit-log-result|Not used"
-msgstr "nesprávny certifikát"
+msgstr "nesprávny certifikát"
 
 #, fuzzy
 msgid "|audit-log-result|Okay"
-msgstr "nesprávny certifikát"
+msgstr "nesprávny certifikát"
 
 #, fuzzy
 msgid "|audit-log-result|Skipped"
-msgstr "nesprávny certifikát"
+msgstr "nesprávny certifikát"
 
 #, fuzzy
 msgid "|audit-log-result|Some"
-msgstr "nesprávny certifikát"
+msgstr "nesprávny certifikát"
 
 #, fuzzy
 msgid "Certificate chain available"
-msgstr "nesprávny certifikát"
+msgstr "nesprávny certifikát"
 
 #, fuzzy
 msgid "root certificate missing"
-msgstr "nesprávny certifikát"
+msgstr "nesprávny certifikát"
 
 msgid "Data encryption succeeded"
 msgstr ""
 
 #, fuzzy
 msgid "Data available"
-msgstr "Kµúè k dispozícii na: "
+msgstr "Kľúč k dispozícii na: "
 
 #, fuzzy
 msgid "Session key created"
-msgstr "%s: súbor kµúèov (keyring) vytvorený\n"
+msgstr "%s: súbor kľúčov (keyring) vytvorený\n"
 
 #, fuzzy, c-format
 msgid "algorithm: %s"
-msgstr "ASCII kódovanie: %s\n"
+msgstr "ASCII kódovanie: %s\n"
 
 #, fuzzy, c-format
 msgid "unsupported algorithm: %s"
 msgstr ""
 "\n"
-"Podporované algoritmy:\n"
+"Podporované algoritmy:\n"
 
 #, fuzzy
 msgid "seems to be not encrypted"
-msgstr "neza¹ifrované"
+msgstr "nezašifrované"
 
 msgid "Number of recipients"
 msgstr ""
@@ -948,73 +953,73 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "data hash algorithm: %s"
-msgstr "neplatný hashovací algoritmus `%s'\n"
+msgstr "neplatný hashovací algoritmus `%s'\n"
 
 #, fuzzy, c-format
 msgid "Signer %d"
-msgstr "Platnos» podpisu vypr¹ala %s\n"
+msgstr "Platnosť podpisu vypršala %s\n"
 
 #, fuzzy, c-format
 msgid "attr hash algorithm: %s"
-msgstr "neplatný hashovací algoritmus `%s'\n"
+msgstr "neplatný hashovací algoritmus `%s'\n"
 
 msgid "Data decryption succeeded"
 msgstr ""
 
 #, fuzzy
 msgid "Encryption algorithm supported"
-msgstr "ochranný algoritmus %d%s nie je podporováný\n"
+msgstr "ochranný algoritmus %d%s nie je podporováný\n"
 
 #, fuzzy
 msgid "Data verification succeeded"
-msgstr "verifikácia podpisu potlaèená\n"
+msgstr "verifikácia podpisu potlačená\n"
 
 #, fuzzy
 msgid "Signature available"
-msgstr "Platnos» podpisu vypr¹ala %s\n"
+msgstr "Platnosť podpisu vypršala %s\n"
 
 #, fuzzy
 msgid "Parsing data succeeded"
-msgstr "Dobrý podpis od \""
+msgstr "Dobrý podpis od \""
 
 #, fuzzy, c-format
 msgid "bad data hash algorithm: %s"
-msgstr "neplatný hashovací algoritmus `%s'\n"
+msgstr "neplatný hashovací algoritmus `%s'\n"
 
 #, fuzzy, c-format
 msgid "Signature %d"
-msgstr "Platnos» podpisu vypr¹ala %s\n"
+msgstr "Platnosť podpisu vypršala %s\n"
 
 #, fuzzy
 msgid "Certificate chain valid"
-msgstr "Platnos» kµúèa vypr¹ala!"
+msgstr "Platnosť kľúča vypršala!"
 
 #, fuzzy
 msgid "Root certificate trustworthy"
-msgstr "nesprávny certifikát"
+msgstr "nesprávny certifikát"
 
 #, fuzzy
 msgid "no CRL found for certificate"
-msgstr "nesprávny certifikát"
+msgstr "nesprávny certifikát"
 
 #, fuzzy
 msgid "the available CRL is too old"
-msgstr "Kµúè k dispozícii na: "
+msgstr "Kľúč k dispozícii na: "
 
 #, fuzzy
 msgid "CRL/OCSP check of certificates"
-msgstr "nesprávny certifikát"
+msgstr "nesprávny certifikát"
 
 #, fuzzy
 msgid "Included certificates"
-msgstr "nesprávny certifikát"
+msgstr "nesprávny certifikát"
 
 msgid "No audit log entries."
 msgstr ""
 
 #, fuzzy
 msgid "Unknown operation"
-msgstr "neznáma verzia"
+msgstr "neznáma verzia"
 
 msgid "Gpg-Agent usable"
 msgstr ""
@@ -1024,52 +1029,52 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "No help available for '%s'."
-msgstr "Pomoc nie je dostupná pre '%s'"
+msgstr "Pomoc nie je dostupná pre '%s'"
 
 #, fuzzy
 msgid "ignoring garbage line"
-msgstr "chyba v pätièke\n"
+msgstr "chyba v pätičke\n"
 
 #, fuzzy
 msgid "[none]"
-msgstr "neznáme"
+msgstr "neznáme"
 
 #, fuzzy
 msgid "argument not expected"
-msgstr "zapisujem tajný kµúè do `%s'\n"
+msgstr "zapisujem tajný kľúč do `%s'\n"
 
 #, fuzzy
 msgid "read error"
-msgstr "chyba pri èítaní súboru"
+msgstr "chyba pri čítaní súboru"
 
 #, fuzzy
 msgid "keyword too long"
-msgstr "riadok je príli¹ dlhý\n"
+msgstr "riadok je príliš dlhý\n"
 
 #, fuzzy
 msgid "missing argument"
-msgstr "neplatný argument"
+msgstr "neplatný argument"
 
 #, fuzzy
 #| msgid "invalid armor"
 msgid "invalid argument"
-msgstr "neplatný spôsob reprezentácie v ASCII"
+msgstr "neplatný spôsob reprezentácie v ASCII"
 
 #, fuzzy
 msgid "invalid command"
-msgstr "konfliktné príkazy\n"
+msgstr "konfliktné príkazy\n"
 
 #, fuzzy
 msgid "invalid alias definition"
-msgstr "neplatný parameter pre import\n"
+msgstr "neplatný parameter pre import\n"
 
 #, fuzzy
 msgid "out of core"
-msgstr "nespracované"
+msgstr "nespracované"
 
 #, fuzzy
 msgid "invalid option"
-msgstr "neplatný parameter pre import\n"
+msgstr "neplatný parameter pre import\n"
 
 #, c-format
 msgid "missing argument for option \"%.50s\"\n"
@@ -1077,7 +1082,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid argument for option \"%.50s\"\n"
-msgstr "neplatný parameter pre import\n"
+msgstr "neplatný parameter pre import\n"
 
 #, c-format
 msgid "option \"%.50s\" does not expect an argument\n"
@@ -1085,7 +1090,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid command \"%.50s\"\n"
-msgstr "Neplatný príkaz (skúste \"help\")\n"
+msgstr "Neplatný príkaz (skúste \"help\")\n"
 
 #, c-format
 msgid "option \"%.50s\" is ambiguous\n"
@@ -1097,31 +1102,31 @@ msgstr ""
 
 #, fuzzy
 msgid "out of core\n"
-msgstr "nespracované"
+msgstr "nespracované"
 
 #, fuzzy, c-format
 msgid "invalid option \"%.50s\"\n"
-msgstr "neplatný parameter pre import\n"
+msgstr "neplatný parameter pre import\n"
 
 #, fuzzy, c-format
 msgid "conversion from '%s' to '%s' not available\n"
-msgstr "kódovanie do ASCII formátu zlyhalo: %s\n"
+msgstr "kódovanie do ASCII formátu zlyhalo: %s\n"
 
 #, fuzzy, c-format
 msgid "iconv_open failed: %s\n"
-msgstr "nemo¾no otvori» súbor: %s\n"
+msgstr "nemožno otvoriť súbor: %s\n"
 
 #, fuzzy, c-format
 msgid "conversion from '%s' to '%s' failed: %s\n"
-msgstr "kódovanie do ASCII formátu zlyhalo: %s\n"
+msgstr "kódovanie do ASCII formátu zlyhalo: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to create temporary file '%s': %s\n"
-msgstr "nemô¾em vytvori» adresár `%s': %s\n"
+msgstr "nemôžem vytvoriť adresár `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error writing to '%s': %s\n"
-msgstr "chyba pri zápise súboru kµúèov (keyring)  `%s': %s\n"
+msgstr "chyba pri zápise súboru kľúčov (keyring)  `%s': %s\n"
 
 #, c-format
 msgid "removing stale lockfile (created by %d)\n"
@@ -1129,18 +1134,18 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "waiting for lock (held by %d%s) %s...\n"
-msgstr "zapisujem tajný kµúè do `%s'\n"
+msgstr "zapisujem tajný kľúč do `%s'\n"
 
 msgid "(deadlock?) "
 msgstr ""
 
 #, fuzzy, c-format
 msgid "lock '%s' not made: %s\n"
-msgstr "verejný kµúè %08lX nebol nájdený: %s\n"
+msgstr "verejný kľúč %08lX nebol nájdený: %s\n"
 
 #, fuzzy, c-format
 msgid "waiting for lock %s...\n"
-msgstr "zapisujem tajný kµúè do `%s'\n"
+msgstr "zapisujem tajný kľúč do `%s'\n"
 
 #, c-format
 msgid "%s is too old (need %s, have %s)\n"
@@ -1148,43 +1153,43 @@ msgstr ""
 
 #, c-format
 msgid "armor: %s\n"
-msgstr "ASCII kódovanie: %s\n"
+msgstr "ASCII kódovanie: %s\n"
 
 msgid "invalid armor header: "
-msgstr "neplatná hlavièka ASCII kódovania: "
+msgstr "neplatná hlavička ASCII kódovania: "
 
 msgid "armor header: "
-msgstr "ASCII hlavièka: "
+msgstr "ASCII hlavička: "
 
 msgid "invalid clearsig header\n"
-msgstr "neplatná hlavièka podpisu v èitateµnom formáte\n"
+msgstr "neplatná hlavička podpisu v čitateľnom formáte\n"
 
 #, fuzzy
 msgid "unknown armor header: "
-msgstr "ASCII hlavièka: "
+msgstr "ASCII hlavička: "
 
 msgid "nested clear text signatures\n"
-msgstr "vnorené podpisy v èitateµnom formátu\n"
+msgstr "vnorené podpisy v čitateľnom formátu\n"
 
 #, fuzzy
 msgid "unexpected armor: "
-msgstr "neoèakávané kódovanie ASCII:"
+msgstr "neočakávané kódovanie ASCII:"
 
 msgid "invalid dash escaped line: "
-msgstr "nesprávne oznaèenie riadku mínusmi: "
+msgstr "nesprávne označenie riadku mínusmi: "
 
 #, fuzzy, c-format
 msgid "invalid radix64 character %02X skipped\n"
-msgstr "neplatný znak vo formáte radix64 %02x bol preskoèený\n"
+msgstr "neplatný znak vo formáte radix64 %02x bol preskočený\n"
 
 msgid "premature eof (no CRC)\n"
-msgstr "predèasný koniec súboru (¾iadne CRC)\n"
+msgstr "predÄ\8dasný koniec súboru (žiadne CRC)\n"
 
 msgid "premature eof (in CRC)\n"
-msgstr "predèasný koniec súboru (v CRC)\n"
+msgstr "predčasný koniec súboru (v CRC)\n"
 
 msgid "malformed CRC\n"
-msgstr "nesprávny formát CRC\n"
+msgstr "nesprávny formát CRC\n"
 
 #, fuzzy, c-format
 msgid "CRC error; %06lX - %06lX\n"
@@ -1192,49 +1197,49 @@ msgstr "Chyba CRC; %06lx - %06lx\n"
 
 #, fuzzy
 msgid "premature eof (in trailer)\n"
-msgstr "predèasný koniec súboru (v pätièke)\n"
+msgstr "predčasný koniec súboru (v pätičke)\n"
 
 msgid "error in trailer line\n"
-msgstr "chyba v pätièke\n"
+msgstr "chyba v pätičke\n"
 
 msgid "no valid OpenPGP data found.\n"
-msgstr "nenájdené ¾iadne platné dáta vo formáte OpenPGP.\n"
+msgstr "nenájdené žiadne platné dáta vo formáte OpenPGP.\n"
 
 #, c-format
 msgid "invalid armor: line longer than %d characters\n"
-msgstr "neplatné kódovanie ASCII: riadok je dlh¹í ako %d znakov\n"
+msgstr "neplatné kódovanie ASCII: riadok je dlhší ako %d znakov\n"
 
 msgid ""
 "quoted printable character in armor - probably a buggy MTA has been used\n"
 msgstr ""
-"neplatný znak (quoted-printable) v ASCII kódovaní - pravdepodobne bol "
-"pou¾itý nesprávny MTA\n"
+"neplatný znak (quoted-printable) v ASCII kódovaní - pravdepodobne bol "
+"použitý nesprávny MTA\n"
 
 #, fuzzy, c-format
 #| msgid "not human readable"
 msgid "[ not human readable (%zu bytes: %s%s) ]"
-msgstr "nie je v priamo èitateµnom formáte"
+msgstr "nie je v priamo čitateľnom formáte"
 
 msgid ""
 "a notation name must have only printable characters or spaces, and end with "
 "an '='\n"
 msgstr ""
-"meno mô¾e obsahova» len písmená, èíslice, bodky, podèiarníky alebo medzery a "
-"konèi» s '='\n"
+"meno môže obsahovať len písmená, číslice, bodky, podčiarníky alebo medzery a "
+"končiť s '='\n"
 
 msgid "a user notation name must contain the '@' character\n"
-msgstr "hodnota musí obsahova» znak '@'\n"
+msgstr "hodnota musí obsahovať znak '@'\n"
 
 #, fuzzy
 msgid "a notation name must not contain more than one '@' character\n"
-msgstr "hodnota musí obsahova» znak '@'\n"
+msgstr "hodnota musí obsahovať znak '@'\n"
 
 msgid "a notation value must not use any control characters\n"
-msgstr "hodnota nesmie obsahova» ¾iadne kontrolné znaky\n"
+msgstr "hodnota nesmie obsahovať žiadne kontrolné znaky\n"
 
 #, fuzzy
 msgid "a notation name may not contain an '=' character\n"
-msgstr "hodnota musí obsahova» znak '@'\n"
+msgstr "hodnota musí obsahovať znak '@'\n"
 
 #, fuzzy
 #| msgid ""
@@ -1242,23 +1247,23 @@ msgstr "hodnota mus
 #| "with an '='\n"
 msgid "a notation name must have only printable characters or spaces\n"
 msgstr ""
-"meno mô¾e obsahova» len písmená, èíslice, bodky, podèiarníky alebo medzery a "
-"konèi» s '='\n"
+"meno môže obsahovať len písmená, číslice, bodky, podčiarníky alebo medzery a "
+"končiť s '='\n"
 
 msgid "WARNING: invalid notation data found\n"
-msgstr "VAROVANIE: nájdený neplatný formát zápisu dátumu\n"
+msgstr "VAROVANIE: nájdený neplatný formát zápisu dátumu\n"
 
 #, c-format
 msgid "failed to proxy %s inquiry to client\n"
 msgstr ""
 
 msgid "Enter passphrase: "
-msgstr "Vlo¾te heslo: "
+msgstr "Vložte heslo: "
 
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
 msgid "error getting version from '%s': %s\n"
-msgstr "chyba pri vytváraní súboru kµúèov (keyring)`%s': %s\n"
+msgstr "chyba pri vytváraní súboru kľúčov (keyring)`%s': %s\n"
 
 #, c-format
 msgid "server '%s' is older than us (%s < %s)"
@@ -1267,11 +1272,11 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "WARNING: %s overrides %s\n"
 msgid "WARNING: %s\n"
-msgstr "VAROVANIE: %s prepí¹e %s\n"
+msgstr "VAROVANIE: %s prepíše %s\n"
 
 #, fuzzy, c-format
 msgid "OpenPGP card not available: %s\n"
-msgstr "tajný kµúè nie je dostupný"
+msgstr "tajný kľúč nie je dostupný"
 
 #, c-format
 msgid "OpenPGP card no. %s detected\n"
@@ -1279,18 +1284,18 @@ msgstr ""
 
 #, fuzzy
 msgid "can't do this in batch mode\n"
-msgstr "nemo¾no previes» v dávkovom móde\n"
+msgstr "nemožno previesť v dávkovom móde\n"
 
 #, fuzzy
 msgid "This command is only available for version 2 cards\n"
-msgstr "Tento príkaz nie je v módoch %s dovolený.\n"
+msgstr "Tento príkaz nie je v módoch %s dovolený.\n"
 
 #, fuzzy
 msgid "Reset Code not or not anymore available\n"
-msgstr "tajné èasti kµúèa nie sú dostupné\n"
+msgstr "tajné časti kľúča nie sú dostupné\n"
 
 msgid "Your selection? "
-msgstr "Vá¹ výber? "
+msgstr "Váš výber? "
 
 msgid "[not set]"
 msgstr ""
@@ -1305,11 +1310,11 @@ msgstr "enable"
 
 #, fuzzy
 msgid "unspecified"
-msgstr "Dôvod nebol ¹pecifikovaný"
+msgstr "Dôvod nebol špecifikovaný"
 
 #, fuzzy
 msgid "not forced"
-msgstr "nespracované"
+msgstr "nespracované"
 
 msgid "forced"
 msgstr ""
@@ -1335,7 +1340,7 @@ msgstr ""
 
 #, fuzzy
 msgid "URL to retrieve public key: "
-msgstr "¾iadny zodpovedajúci verejný kµúè: %s\n"
+msgstr "žiadny zodpovedajúci verejný kľúč: %s\n"
 
 #, c-format
 msgid "Error: URL too long (limit is %d characters).\n"
@@ -1344,11 +1349,11 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error reading `%s': %s\n"
 msgid "error reading '%s': %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error writing '%s': %s\n"
-msgstr "chyba pri zápise súboru kµúèov (keyring)  `%s': %s\n"
+msgstr "chyba pri zápise súboru kľúčov (keyring)  `%s': %s\n"
 
 msgid "Login data (account name): "
 msgstr ""
@@ -1366,42 +1371,42 @@ msgstr ""
 
 #, fuzzy
 msgid "Language preferences: "
-msgstr "aktualizova» predvoµby"
+msgstr "aktualizovať predvoľby"
 
 #, fuzzy
 msgid "Error: invalid length of preference string.\n"
-msgstr "neplatný znak v re»azci s predvoµbami\n"
+msgstr "neplatný znak v reťazci s predvoľbami\n"
 
 #, fuzzy
 msgid "Error: invalid characters in preference string.\n"
-msgstr "neplatný znak v re»azci s predvoµbami\n"
+msgstr "neplatný znak v reťazci s predvoľbami\n"
 
 msgid "Sex ((M)ale, (F)emale or space): "
 msgstr ""
 
 #, fuzzy
 msgid "Error: invalid response.\n"
-msgstr "chyba: neplatný odtlaèok\n"
+msgstr "chyba: neplatný odtlačok\n"
 
 #, fuzzy
 msgid "CA fingerprint: "
-msgstr "vypísa» fingerprint"
+msgstr "vypísať fingerprint"
 
 #, fuzzy
 msgid "Error: invalid formatted fingerprint.\n"
-msgstr "chyba: neplatný odtlaèok\n"
+msgstr "chyba: neplatný odtlačok\n"
 
 #, fuzzy, c-format
 msgid "key operation not possible: %s\n"
-msgstr "Vytvorenie kµúèa sa nepodarilo: %s\n"
+msgstr "Vytvorenie kľúča sa nepodarilo: %s\n"
 
 #, fuzzy
 msgid "not an OpenPGP card"
-msgstr "nenájdené ¾iadne platné dáta vo formáte OpenPGP.\n"
+msgstr "nenájdené žiadne platné dáta vo formáte OpenPGP.\n"
 
 #, fuzzy, c-format
 msgid "error getting current key info: %s\n"
-msgstr "chyba pri zápise do súboru tajných kµúèov `%s': %s\n"
+msgstr "chyba pri zápise do súboru tajných kľúčov `%s': %s\n"
 
 msgid "Replace existing key? (y/N) "
 msgstr ""
@@ -1414,19 +1419,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the Signature key? (%u) "
-msgstr "Akú veµkos» kµúèa si prajete? (1024) "
+msgstr "Akú veľkosť kľúča si prajete? (1024) "
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the Encryption key? (%u) "
-msgstr "Akú veµkos» kµúèa si prajete? (1024) "
+msgstr "Akú veľkosť kľúča si prajete? (1024) "
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the Authentication key? (%u) "
-msgstr "Akú veµkos» kµúèa si prajete? (1024) "
+msgstr "Akú veľkosť kľúča si prajete? (1024) "
 
 #, c-format
 msgid "rounded up to %u bits\n"
-msgstr "zaokrúhlené na %u bitov\n"
+msgstr "zaokrúhlené na %u bitov\n"
 
 #, c-format
 msgid "%s keysizes must be in the range %u-%u\n"
@@ -1438,14 +1443,14 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error changing size of key %d to %u bits: %s\n"
-msgstr "chyba pri posielaní na `%s': %s\n"
+msgstr "chyba pri posielaní na `%s': %s\n"
 
 msgid "Make off-card backup of encryption key? (Y/n) "
 msgstr ""
 
 #, fuzzy
 msgid "Note: keys are already stored on the card!\n"
-msgstr "preskoèené: tajný kµúè je u¾ v databáze\n"
+msgstr "preskočené: tajný kľúč je už v databáze\n"
 
 msgid "Replace existing keys? (y/N) "
 msgstr ""
@@ -1459,59 +1464,59 @@ msgstr ""
 
 #, fuzzy
 msgid "Please select the type of key to generate:\n"
-msgstr "Prosím, vyberte druh kµúèa, ktorý chcete:\n"
+msgstr "Prosím, vyberte druh kľúča, ktorý chcete:\n"
 
 #, fuzzy
 msgid "   (1) Signature key\n"
-msgstr "Platnos» podpisu vypr¹ala %s\n"
+msgstr "Platnosť podpisu vypršala %s\n"
 
 #, fuzzy
 msgid "   (2) Encryption key\n"
-msgstr "   (%d) RSA (len na ¹ifrovanie)\n"
+msgstr "   (%d) RSA (len na šifrovanie)\n"
 
 msgid "   (3) Authentication key\n"
 msgstr ""
 
 msgid "Invalid selection.\n"
-msgstr "Neplatný výber.\n"
+msgstr "Neplatný výber.\n"
 
 #, fuzzy
 msgid "Please select where to store the key:\n"
-msgstr "Prosím výberte dôvod na revokáciu:\n"
+msgstr "Prosím výberte dôvod na revokáciu:\n"
 
 #, fuzzy, c-format
 msgid "KEYTOCARD failed: %s\n"
-msgstr "aktualizácia zlyhala: %s\n"
+msgstr "aktualizácia zlyhala: %s\n"
 
 #, fuzzy
 #| msgid "This command is not allowed while in %s mode.\n"
 msgid "This command is not supported by this card\n"
-msgstr "Tento príkaz nie je v módoch %s dovolený.\n"
+msgstr "Tento príkaz nie je v módoch %s dovolený.\n"
 
 #, fuzzy
 msgid "Note: This command destroys all keys stored on the card!\n"
-msgstr "preskoèené: tajný kµúè je u¾ v databáze\n"
+msgstr "preskočené: tajný kľúč je už v databáze\n"
 
 #, fuzzy
 msgid "Continue? (y/N) "
-msgstr "Skutoène podpísa»? "
+msgstr "Skutočne podpísať? "
 
 msgid "Really do a factory reset? (enter \"yes\") "
 msgstr ""
 
 msgid "quit this menu"
-msgstr "ukonèi» toto menu"
+msgstr "ukončiť toto menu"
 
 #, fuzzy
 msgid "show admin commands"
-msgstr "konfliktné príkazy\n"
+msgstr "konfliktné príkazy\n"
 
 msgid "show this help"
-msgstr "ukáza» túto pomoc"
+msgstr "ukázať túto pomoc"
 
 #, fuzzy
 msgid "list all available data"
-msgstr "Kµúè k dispozícii na: "
+msgstr "Kľúč k dispozícii na: "
 
 msgid "change card holder's name"
 msgstr ""
@@ -1524,25 +1529,25 @@ msgstr ""
 
 #, fuzzy
 msgid "change the login name"
-msgstr "zmeni» dobu platnosti"
+msgstr "zmeniť dobu platnosti"
 
 #, fuzzy
 msgid "change the language preferences"
-msgstr "zmeni» dôveryhodnos» vlastníka kµúèa"
+msgstr "zmeniť dôveryhodnosť vlastníka kľúča"
 
 msgid "change card holder's sex"
 msgstr ""
 
 #, fuzzy
 msgid "change a CA fingerprint"
-msgstr "vypísa» fingerprint"
+msgstr "vypísať fingerprint"
 
 msgid "toggle the signature force PIN flag"
 msgstr ""
 
 #, fuzzy
 msgid "generate new keys"
-msgstr "vytvori» nový pár kµúèov"
+msgstr "vytvoriť nový pár kľúčov"
 
 msgid "menu to change or unblock the PIN"
 msgstr ""
@@ -1561,57 +1566,57 @@ msgstr ""
 
 #, fuzzy
 msgid "Admin-only command\n"
-msgstr "konfliktné príkazy\n"
+msgstr "konfliktné príkazy\n"
 
 #, fuzzy
 msgid "Admin commands are allowed\n"
-msgstr "konfliktné príkazy\n"
+msgstr "konfliktné príkazy\n"
 
 #, fuzzy
 msgid "Admin commands are not allowed\n"
-msgstr "zapisujem tajný kµúè do `%s'\n"
+msgstr "zapisujem tajný kľúč do `%s'\n"
 
 msgid "Invalid command  (try \"help\")\n"
-msgstr "Neplatný príkaz (skúste \"help\")\n"
+msgstr "Neplatný príkaz (skúste \"help\")\n"
 
 msgid "--output doesn't work for this command\n"
-msgstr "--output pre tento príkaz nefunguje\n"
+msgstr "--output pre tento príkaz nefunguje\n"
 
 #, fuzzy, c-format
 #| msgid "can't open `%s'\n"
 msgid "can't open '%s'\n"
-msgstr "nemo¾no otvori» `%s'\n"
+msgstr "nemožno otvoriť `%s'\n"
 
 #, fuzzy, c-format
 msgid "key \"%s\" not found: %s\n"
-msgstr "kµúè `%s' nebol nájdený: %s\n"
+msgstr "kľúč `%s' nebol nájdený: %s\n"
 
 #, c-format
 msgid "error reading keyblock: %s\n"
-msgstr "chyba pri èítaní bloku kµúèa: %s\n"
+msgstr "chyba pri čítaní bloku kľúča: %s\n"
 
 #, fuzzy, c-format
 msgid "key \"%s\" not found\n"
-msgstr "kµúè `%s' nebol nájdený: %s\n"
+msgstr "kľúč `%s' nebol nájdený: %s\n"
 
 msgid "(unless you specify the key by fingerprint)\n"
-msgstr "(pokiaµ neurèíte kµúè jeho fingerprintom)\n"
+msgstr "(pokiaľ neurčíte kľúč jeho fingerprintom)\n"
 
 #, fuzzy
 msgid "can't do this in batch mode without \"--yes\"\n"
-msgstr "bez parametra \"--yes\" to nemo¾no v dávkovom móde previes»\n"
+msgstr "bez parametra \"--yes\" to nemožno v dávkovom móde previesť\n"
 
 #, fuzzy
 msgid "Delete this key from the keyring? (y/N) "
-msgstr "Zmaza» tento kµúè zo súboru kµúèov? "
+msgstr "Zmazať tento kľúč zo súboru kľúčov? "
 
 #, fuzzy
 msgid "This is a secret key! - really delete? (y/N) "
-msgstr "Toto je tajný kµúè! - skutoène zmaza»? "
+msgstr "Toto je tajný kľúč! - skutočne zmazať? "
 
 #, fuzzy, c-format
 msgid "deleting secret %s failed: %s\n"
-msgstr "zmazanie bloku kµúèa sa nepodarilo:  %s\n"
+msgstr "zmazanie bloku kľúča sa nepodarilo:  %s\n"
 
 msgid "key"
 msgstr "key"
@@ -1619,152 +1624,152 @@ msgstr "key"
 #, fuzzy
 #| msgid "Pubkey: "
 msgid "subkey"
-msgstr "Verejné kµúèe: "
+msgstr "Verejné kľúče: "
 
 #, c-format
 msgid "deleting keyblock failed: %s\n"
-msgstr "zmazanie bloku kµúèa sa nepodarilo:  %s\n"
+msgstr "zmazanie bloku kľúča sa nepodarilo:  %s\n"
 
 msgid "ownertrust information cleared\n"
-msgstr "informácie o dôveryhodnosti vlastníka kµúèa vymazané\n"
+msgstr "informácie o dôveryhodnosti vlastníka kľúča vymazané\n"
 
 #, c-format
 msgid "there is a secret key for public key \"%s\"!\n"
-msgstr "existuje tajný kµúè pre tento verejný kµúè \"%s\"!\n"
+msgstr "existuje tajný kľúč pre tento verejný kľúč \"%s\"!\n"
 
 msgid "use option \"--delete-secret-keys\" to delete it first.\n"
-msgstr "aby ste ho zmazali, pou¾ite najprv prepínaè \"--delete-secret-key\".\n"
+msgstr "aby ste ho zmazali, použite najprv prepínač \"--delete-secret-key\".\n"
 
 #, c-format
 msgid "error creating passphrase: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 msgid "can't use a symmetric ESK packet due to the S2K mode\n"
-msgstr "v móde S2K nemo¾no pou¾i» symetrický ESK paket\n"
+msgstr "v móde S2K nemožno použiť symetrický ESK paket\n"
 
 #, c-format
 msgid "using cipher %s\n"
-msgstr "pou¾itá ¹ifra %s\n"
+msgstr "použitá šifra %s\n"
 
 #, fuzzy, c-format
 #| msgid "`%s' already compressed\n"
 msgid "'%s' already compressed\n"
-msgstr "`%s' je u¾ skomprimovaný\n"
+msgstr "`%s' je už skomprimovaný\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: `%s' is an empty file\n"
 msgid "WARNING: '%s' is an empty file\n"
-msgstr "VAROVANIE: súbor `%s' je prázdny\n"
+msgstr "VAROVANIE: súbor `%s' je prázdny\n"
 
 #, fuzzy, c-format
 #| msgid "reading from `%s'\n"
 msgid "reading from '%s'\n"
-msgstr "èítam z `%s'\n"
+msgstr "čítam z `%s'\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: forcing symmetric cipher %s (%d) violates recipient preferences\n"
-msgstr "vy¾iadaná symetrická ¹ifra %s (%d) nevyhovuje predvoµbám príjemcu\n"
+msgstr "vyžiadaná symetrická šifra %s (%d) nevyhovuje predvoľbám príjemcu\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: forcing compression algorithm %s (%d) violates recipient "
 "preferences\n"
 msgstr ""
-"vy¾iadaný kompresný algoritmus %s (%d) nevyhovuje predvoµbám príjemcu\n"
+"vyžiadaný kompresný algoritmus %s (%d) nevyhovuje predvoľbám príjemcu\n"
 
 #, c-format
 msgid "forcing symmetric cipher %s (%d) violates recipient preferences\n"
-msgstr "vy¾iadaná symetrická ¹ifra %s (%d) nevyhovuje predvoµbám príjemcu\n"
+msgstr "vyžiadaná symetrická šifra %s (%d) nevyhovuje predvoľbám príjemcu\n"
 
 #, c-format
 msgid "%s/%s encrypted for: \"%s\"\n"
-msgstr "%s/%s za¹ifrovaný pre: %s\n"
+msgstr "%s/%s zašifrovaný pre: %s\n"
 
 #, c-format
 msgid "you may not use %s while in %s mode\n"
 msgstr ""
-"pou¾itie %s nie je v móde %s dovolené\n"
+"použitie %s nie je v móde %s dovolené\n"
 "\n"
 
 #, c-format
 msgid "%s encrypted data\n"
-msgstr "%s za¹ifrované dáta\n"
+msgstr "%s zašifrované dáta\n"
 
 #, c-format
 msgid "encrypted with unknown algorithm %d\n"
-msgstr "za¹ifrované neznámym algoritmom %d\n"
+msgstr "zašifrované neznámym algoritmom %d\n"
 
 msgid ""
 "WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
 msgstr ""
-"VAROVANIE: správa bola za¹ifrovaná slabým kµúèom v symetrickej ¹ifre.\n"
+"VAROVANIE: správa bola zašifrovaná slabým kľúčom v symetrickej šifre.\n"
 
 msgid "problem handling encrypted packet\n"
-msgstr "problém so za¹ifrovaným paketom\n"
+msgstr "problém so zašifrovaným paketom\n"
 
 msgid "no remote program execution supported\n"
-msgstr "¾iadne vzialené vykonávanie programu nie je podporované\n"
+msgstr "žiadne vzialené vykonávanie programu nie je podporované\n"
 
 msgid ""
 "external program calls are disabled due to unsafe options file permissions\n"
 msgstr ""
-"volanie externého programu zru¹ené kvôli nebezpeèným právam súboru "
-"nastavení\n"
+"volanie externého programu zrušené kvôli nebezpečným právam súboru "
+"nastavení\n"
 
 #, fuzzy
 msgid "this platform requires temporary files when calling external programs\n"
 msgstr ""
-"táto platforma potrebuje doèasné súbory na spustenie externého programu\n"
+"táto platforma potrebuje dočasné súbory na spustenie externého programu\n"
 
 #, fuzzy, c-format
 msgid "unable to execute program '%s': %s\n"
-msgstr "nemo¾no spusti» %s \"%s\": %s\n"
+msgstr "nemožno spustiť %s \"%s\": %s\n"
 
 #, fuzzy, c-format
 msgid "unable to execute shell '%s': %s\n"
-msgstr "nemo¾no spusti» %s \"%s\": %s\n"
+msgstr "nemožno spustiť %s \"%s\": %s\n"
 
 #, c-format
 msgid "system error while calling external program: %s\n"
-msgstr "systémová chyba pri volaní externého programu: %s\n"
+msgstr "systémová chyba pri volaní externého programu: %s\n"
 
 msgid "unnatural exit of external program\n"
-msgstr "nekorektné ukonèenie externého programu\n"
+msgstr "nekorektné ukončenie externého programu\n"
 
 msgid "unable to execute external program\n"
-msgstr "nemo¾no spusti» externý program\n"
+msgstr "nemožno spustiť externý program\n"
 
 #, c-format
 msgid "unable to read external program response: %s\n"
-msgstr "nemo¾no cíta» odozvu externého programu: %s\n"
+msgstr "nemožno cítať odozvu externého programu: %s\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unable to remove tempfile (%s) `%s': %s\n"
 msgid "WARNING: unable to remove tempfile (%s) '%s': %s\n"
-msgstr "VAROVANIE: nemô¾em vymaza» doèasný súbor (%s) `%s': %s\n"
+msgstr "VAROVANIE: nemôžem vymazať dočasný súbor (%s) `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: unable to remove temp directory `%s': %s\n"
 msgid "WARNING: unable to remove temp directory '%s': %s\n"
-msgstr "VAROVANIE: nemô¾em vymaza» doèasný adresár `%s': %s\n"
+msgstr "VAROVANIE: nemôžem vymazať dočasný adresár `%s': %s\n"
 
 #, fuzzy
 msgid "export signatures that are marked as local-only"
 msgstr ""
 "\n"
-"Podpis bude oznaèený ako neodvolateµný (non-revocable).\n"
+"Podpis bude označený ako neodvolateľný (non-revocable).\n"
 
 msgid "export attribute user IDs (generally photo IDs)"
 msgstr ""
 
 #, fuzzy
 msgid "export revocation keys marked as \"sensitive\""
-msgstr "¾iadne revokaèné kµúèe pre `%s' nenájdené\n"
+msgstr "žiadne revokačné kľúče pre `%s' nenájdené\n"
 
 #, fuzzy
 msgid "remove unusable parts from key during export"
-msgstr "nepou¾iteµný tajný kµúè"
+msgstr "nepoužiteľný tajný kľúč"
 
 msgid "remove as much as possible from key during export"
 msgstr ""
@@ -1772,7 +1777,7 @@ msgstr ""
 #, fuzzy
 #| msgid "%s: skipped: %s\n"
 msgid " - skipped"
-msgstr "%s: preskoèené: %s\n"
+msgstr "%s: preskočené: %s\n"
 
 #, fuzzy, c-format
 #| msgid "writing to `%s'\n"
@@ -1781,23 +1786,23 @@ msgstr "zapisujem do '%s'\n"
 
 #, fuzzy, c-format
 msgid "key %s: key material on-card - skipped\n"
-msgstr "kµúè %08lX: podpis subkµúèa na zlom mieste - preskoèené \n"
+msgstr "kľúč %08lX: podpis subkľúča na zlom mieste - preskočené \n"
 
 #, fuzzy
 msgid "exporting secret keys not allowed\n"
-msgstr "zapisujem tajný kµúè do `%s'\n"
+msgstr "zapisujem tajný kľúč do `%s'\n"
 
 #, fuzzy, c-format
 msgid "key %s: PGP 2.x style key - skipped\n"
-msgstr "kµúè %08lX: PGP 2.x kµúè - preskoèené\n"
+msgstr "kľúč %08lX: PGP 2.x kľúč - preskočené\n"
 
 msgid "WARNING: nothing exported\n"
-msgstr "VAROVANIE: niè nebolo vyexportované\n"
+msgstr "VAROVANIE: nič nebolo vyexportované\n"
 
 #, fuzzy, c-format
 #| msgid "error creating `%s': %s\n"
 msgid "error creating '%s': %s\n"
-msgstr "chyba pri vytváraní `%s': %s\n"
+msgstr "chyba pri vytváraní `%s': %s\n"
 
 #, fuzzy
 msgid "[User ID not found]"
@@ -1805,7 +1810,7 @@ msgstr "[User id not found]"
 
 #, fuzzy, c-format
 msgid "(check argument of option '%s')\n"
-msgstr "neplatný parameter pre import\n"
+msgstr "neplatný parameter pre import\n"
 
 #, c-format
 msgid "Warning: '%s' should be a long key ID or a fingerprint\n"
@@ -1813,38 +1818,38 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error looking up: %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
 msgid "Warning: %s appears in the keyring %d times\n"
-msgstr "chyba pri vytváraní súboru kµúèov (keyring)`%s': %s\n"
+msgstr "chyba pri vytváraní súboru kľúčov (keyring)`%s': %s\n"
 
 #, fuzzy, c-format
 msgid "automatically retrieved '%s' via %s\n"
-msgstr "chyba pri vytváraní `%s': %s\n"
+msgstr "chyba pri vytváraní `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error retrieving '%s' via %s: %s\n"
-msgstr "chyba pri vytváraní `%s': %s\n"
+msgstr "chyba pri vytváraní `%s': %s\n"
 
 #, fuzzy
 msgid "No fingerprint"
-msgstr "vypísa» fingerprint"
+msgstr "vypísať fingerprint"
 
 #, fuzzy, c-format
 msgid "secret key \"%s\" not found: %s\n"
-msgstr "tajný kµúè `%s' nebol nájdený: %s\n"
+msgstr "tajný kľúč `%s' nebol nájdený: %s\n"
 
 #, fuzzy, c-format
 #| msgid "|NAME|use NAME as default secret key"
 msgid "Warning: not using '%s' as default key: %s\n"
-msgstr "|MENO|pou¾i MENO ako implicitný tajný kµúè"
+msgstr "|MENO|použi MENO ako implicitný tajný kľúč"
 
 #, fuzzy, c-format
 #| msgid "|NAME|use NAME as default secret key"
 msgid "using \"%s\" as default secret key for signing\n"
-msgstr "|MENO|pou¾i MENO ako implicitný tajný kµúè"
+msgstr "|MENO|použi MENO ako implicitný tajný kľúč"
 
 #, c-format
 msgid "all values passed to '%s' ignored\n"
@@ -1854,121 +1859,121 @@ msgstr ""
 #, fuzzy, c-format
 msgid "Invalid key %s made valid by --allow-non-selfsigned-uid\n"
 msgstr ""
-"Neplatný kµúè %08lX zmenený na platný pomocou --always-non-selfsigned-uid\n"
+"Neplatný kľúč %08lX zmenený na platný pomocou --always-non-selfsigned-uid\n"
 
 #, fuzzy, c-format
 msgid "using subkey %s instead of primary key %s\n"
-msgstr "pou¾ívam sekundárny kµúè %08lX namiesto primárneho kµúèa %08lX\n"
+msgstr "používam sekundárny kľúč %08lX namiesto primárneho kľúča %08lX\n"
 
 #, fuzzy
 msgid "make a signature"
-msgstr "vytvori» podpis oddelený od dokumentu"
+msgstr "vytvoriť podpis oddelený od dokumentu"
 
 #, fuzzy
 msgid "make a clear text signature"
-msgstr "|[súbor]|vytvori» podpis v èitateµnom dokumente"
+msgstr "|[súbor]|vytvoriť podpis v čitateľnom dokumente"
 
 msgid "make a detached signature"
-msgstr "vytvori» podpis oddelený od dokumentu"
+msgstr "vytvoriť podpis oddelený od dokumentu"
 
 msgid "encrypt data"
-msgstr "¹ifrova» dáta"
+msgstr "šifrovať dáta"
 
 msgid "encryption only with symmetric cipher"
-msgstr "¹ifrovanie len so symetrickou ¹ifrou"
+msgstr "šifrovanie len so symetrickou šifrou"
 
 msgid "decrypt data (default)"
-msgstr "de¹ifrova» dáta (implicitne)"
+msgstr "dešifrovať dáta (implicitne)"
 
 msgid "verify a signature"
-msgstr "verifikova» podpis"
+msgstr "verifikovať podpis"
 
 msgid "list keys"
-msgstr "vypísa» zoznam kµúèov"
+msgstr "vypísať zoznam kľúčov"
 
 msgid "list keys and signatures"
-msgstr "vypísa» zoznam kµúèov a podpisov"
+msgstr "vypísať zoznam kľúčov a podpisov"
 
 #, fuzzy
 msgid "list and check key signatures"
-msgstr "skontrolova» podpisy kµúèov"
+msgstr "skontrolovať podpisy kľúčov"
 
 msgid "list keys and fingerprints"
-msgstr "vypísa» zoznam kµúèov a fingerprintov"
+msgstr "vypísať zoznam kľúčov a fingerprintov"
 
 msgid "list secret keys"
-msgstr "vypísa» zoznam tajných kµúèov"
+msgstr "vypísať zoznam tajných kľúčov"
 
 msgid "generate a new key pair"
-msgstr "vytvori» nový pár kµúèov"
+msgstr "vytvoriť nový pár kľúčov"
 
 #, fuzzy
 #| msgid "generate a new key pair"
 msgid "quickly generate a new key pair"
-msgstr "vytvori» nový pár kµúèov"
+msgstr "vytvoriť nový pár kľúčov"
 
 #, fuzzy
 #| msgid "generate a new key pair"
 msgid "quickly add a new user-id"
-msgstr "vytvori» nový pár kµúèov"
+msgstr "vytvoriť nový pár kľúčov"
 
 #, fuzzy
 #| msgid "generate a new key pair"
 msgid "quickly revoke a user-id"
-msgstr "vytvori» nový pár kµúèov"
+msgstr "vytvoriť nový pár kľúčov"
 
 msgid "full featured key pair generation"
 msgstr ""
 
 msgid "generate a revocation certificate"
-msgstr "vytvori» revokaèný certifikát"
+msgstr "vytvoriť revokačný certifikát"
 
 msgid "remove keys from the public keyring"
-msgstr "odstráni» kµúè zo súboru verejných kµúèov"
+msgstr "odstrániť kľúč zo súboru verejných kľúčov"
 
 msgid "remove keys from the secret keyring"
-msgstr "odstráni» kµúè zo súboru tajných kµúèov"
+msgstr "odstrániť kľúč zo súboru tajných kľúčov"
 
 #, fuzzy
 #| msgid "sign a key"
 msgid "quickly sign a key"
-msgstr "podpísa» kµúè"
+msgstr "podpísať kľúč"
 
 #, fuzzy
 #| msgid "sign a key locally"
 msgid "quickly sign a key locally"
-msgstr "podpísa» kµúè lokálne"
+msgstr "podpísať kľúč lokálne"
 
 msgid "sign a key"
-msgstr "podpísa» kµúè"
+msgstr "podpísať kľúč"
 
 msgid "sign a key locally"
-msgstr "podpísa» kµúè lokálne"
+msgstr "podpísať kľúč lokálne"
 
 msgid "sign or edit a key"
-msgstr "podpísa» alebo modifikova» kµúè"
+msgstr "podpísať alebo modifikovať kľúč"
 
 #, fuzzy
 msgid "change a passphrase"
-msgstr "zmeni» heslo"
+msgstr "zmeniť heslo"
 
 msgid "export keys"
-msgstr "exportova» kµúèe"
+msgstr "exportovať kľúče"
 
 msgid "export keys to a keyserver"
-msgstr "exportova» kµúèe na server kµúèov"
+msgstr "exportovať kľúče na server kľúčov"
 
 msgid "import keys from a keyserver"
-msgstr "importova» kµúèe zo servera kµúèov"
+msgstr "importovať kľúče zo servera kľúčov"
 
 msgid "search for keys on a keyserver"
-msgstr "vyhµada» kµúèe na serveri kµúèov"
+msgstr "vyhľadať kľúče na serveri kľúčov"
 
 msgid "update all keys from a keyserver"
-msgstr "aktualizova» v¹etky kµúèe zo servera kµúèov"
+msgstr "aktualizovať všetky kľúče zo servera kľúčov"
 
 msgid "import/merge keys"
-msgstr "importova»/zlúèi» kµúèe"
+msgstr "importovať/zlúčiť kľúče"
 
 msgid "print the card status"
 msgstr ""
@@ -1980,11 +1985,11 @@ msgid "change a card's PIN"
 msgstr ""
 
 msgid "update the trust database"
-msgstr "aktualizova» databázu dôvery"
+msgstr "aktualizovať databázu dôvery"
 
 #, fuzzy
 msgid "print message digests"
-msgstr "|algo [súbory]|vypí¹ hash"
+msgstr "|algo [súbory]|vypíš hash"
 
 msgid "run in server mode"
 msgstr ""
@@ -1993,36 +1998,36 @@ msgid "|VALUE|set the TOFU policy for a key"
 msgstr ""
 
 msgid "create ascii armored output"
-msgstr "vytvor výstup zakódovaný pomocou ASCII"
+msgstr "vytvor výstup zakódovaný pomocou ASCII"
 
 #, fuzzy
 msgid "|USER-ID|encrypt for USER-ID"
-msgstr "|MENO|¹ifrova» pre MENO"
+msgstr "|MENO|šifrovať pre MENO"
 
 #, fuzzy
 msgid "|USER-ID|use USER-ID to sign or decrypt"
 msgstr ""
-"pou¾i» toto id u¾ívateµa na podpísanie\n"
-" alebo de¹ifrovanie"
+"použiť toto id užívateľa na podpísanie\n"
+" alebo dešifrovanie"
 
 #, fuzzy
 msgid "|N|set compress level to N (0 disables)"
 msgstr ""
-"|N|nastavi» úroveò komprimácie N (0 - ¾iadna\n"
-" komprimácia)"
+"|N|nastaviÅ¥ ÃºroveÅ\88 komprimácie N (0 - Å¾iadna\n"
+" komprimácia)"
 
 msgid "use canonical text mode"
-msgstr "pou¾i» kánonický textový mód"
+msgstr "použiť kánonický textový mód"
 
 #, fuzzy
 msgid "|FILE|write output to FILE"
-msgstr "|SÚBOR|nahra» roz¹irujúci modul SÚBOR"
+msgstr "|SÚBOR|nahrať rozširujúci modul SÚBOR"
 
 msgid "do not make any changes"
-msgstr "nevykona» ¾iadne zmeny"
+msgstr "nevykonaÅ¥ Å¾iadne zmeny"
 
 msgid "prompt before overwriting"
-msgstr "vy¾iada» potvrdenie pred prepísaním"
+msgstr "vyžiadať potvrdenie pred prepísaním"
 
 msgid "use strict OpenPGP behavior"
 msgstr ""
@@ -2032,8 +2037,8 @@ msgid ""
 "(See the man page for a complete listing of all commands and options)\n"
 msgstr ""
 "@\n"
-"(Pou¾ite manuálové stránky pre kompletný zoznam v¹etkých príkazov a "
-"mo¾ností)\n"
+"(Použite manuálové stránky pre kompletný zoznam všetkých príkazov a "
+"možností)\n"
 
 msgid ""
 "@\n"
@@ -2046,18 +2051,18 @@ msgid ""
 " --fingerprint [names]      show fingerprints\n"
 msgstr ""
 "@\n"
-"Príklady:\n"
+"Príklady:\n"
 "\n"
-" -se -r Bob [súbor]        podpísa» a za¹ifrova» pre u¾ívateµa Bob\n"
-" --clearsign [súbor]       vytvori» podpis èitateµného dokumentu\n"
-" --detach-sign [súbor]     vytvori» podpis oddelený od dokumentu\n"
-" --list-keys [mená]        vypísa» kµúèe\n"
-" --fingerprint [mená]      vypísa» fingerprinty\n"
+" -se -r Bob [súbor]        podpísať a zašifrovať pre užívateľa Bob\n"
+" --clearsign [súbor]       vytvoriť podpis čitateľného dokumentu\n"
+" --detach-sign [súbor]     vytvoriť podpis oddelený od dokumentu\n"
+" --list-keys [mená]        vypísať kľúče\n"
+" --fingerprint [mená]      vypísať fingerprinty\n"
 
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: @GPG@ [options] [files] (-h for help)"
-msgstr "Pou¾itie: gpg [mo¾nosti] [súbory] (-h pre pomoc)"
+msgstr "Použitie: gpg [možnosti] [súbory] (-h pre pomoc)"
 
 #, fuzzy
 #| msgid ""
@@ -2069,22 +2074,22 @@ msgid ""
 "Sign, check, encrypt or decrypt\n"
 "Default operation depends on the input data\n"
 msgstr ""
-"Syntax: gpg [mo¾nosti] [súbory]\n"
-"podpísa», overi», ¹ifrova» alebo de¹ifrova»\n"
-"implicitné operácie závisia od vstupných dát\n"
+"Syntax: gpg [možnosti] [súbory]\n"
+"podpísať, overiť, šifrovať alebo dešifrovať\n"
+"implicitné operácie závisia od vstupných dát\n"
 
 msgid ""
 "\n"
 "Supported algorithms:\n"
 msgstr ""
 "\n"
-"Podporované algoritmy:\n"
+"Podporované algoritmy:\n"
 
 msgid "Pubkey: "
-msgstr "Verejné kµúèe: "
+msgstr "Verejné kľúče: "
 
 msgid "Cipher: "
-msgstr "©ifry: "
+msgstr "Šifry: "
 
 msgid "Hash: "
 msgstr "Hash: "
@@ -2094,85 +2099,85 @@ msgstr "Kompresia: "
 
 #, fuzzy, c-format
 msgid "usage: %s [options] %s\n"
-msgstr "pou¾itie: gpg [mo¾nosti] "
+msgstr "použitie: gpg [možnosti] "
 
 msgid "conflicting commands\n"
-msgstr "konfliktné príkazy\n"
+msgstr "konfliktné príkazy\n"
 
 #, fuzzy, c-format
 msgid "no = sign found in group definition '%s'\n"
-msgstr "no = podpis nájdený v definícii skupiny \"%s\"\n"
+msgstr "no = podpis nájdený v definícii skupiny \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe ownership on homedir '%s'\n"
-msgstr "VAROVANIE: vlastníctvo pre %s nastavené nebezpeène \"%s\"\n"
+msgstr "VAROVANIE: vlastníctvo pre %s nastavené nebezpečne \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe ownership on configuration file '%s'\n"
-msgstr "VAROVANIE: vlastníctvo pre %s nastavené nebezpeène \"%s\"\n"
+msgstr "VAROVANIE: vlastníctvo pre %s nastavené nebezpečne \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe ownership on extension '%s'\n"
-msgstr "VAROVANIE: vlastníctvo pre %s nastavené nebezpeène \"%s\"\n"
+msgstr "VAROVANIE: vlastníctvo pre %s nastavené nebezpečne \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe permissions on homedir '%s'\n"
-msgstr "VAROVANIE: prístupové práva pre %s nie sú nastavené bezpeène \"%s\"\n"
+msgstr "VAROVANIE: prístupové práva pre %s nie sú nastavené bezpečne \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe permissions on configuration file '%s'\n"
-msgstr "VAROVANIE: prístupové práva pre %s nie sú nastavené bezpeène \"%s\"\n"
+msgstr "VAROVANIE: prístupové práva pre %s nie sú nastavené bezpečne \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe permissions on extension '%s'\n"
-msgstr "VAROVANIE: prístupové práva pre %s nie sú nastavené bezpeène \"%s\"\n"
+msgstr "VAROVANIE: prístupové práva pre %s nie sú nastavené bezpečne \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe enclosing directory ownership on homedir '%s'\n"
-msgstr "VAROVANIE: vlastníctvo adresára %s nastavené nebezpeène \"%s\"\n"
+msgstr "VAROVANIE: vlastníctvo adresára %s nastavené nebezpečne \"%s\"\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: unsafe enclosing directory ownership on configuration file '%s'\n"
-msgstr "VAROVANIE: vlastníctvo adresára %s nastavené nebezpeène \"%s\"\n"
+msgstr "VAROVANIE: vlastníctvo adresára %s nastavené nebezpečne \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe enclosing directory ownership on extension '%s'\n"
-msgstr "VAROVANIE: vlastníctvo adresára %s nastavené nebezpeène \"%s\"\n"
+msgstr "VAROVANIE: vlastníctvo adresára %s nastavené nebezpečne \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe enclosing directory permissions on homedir '%s'\n"
 msgstr ""
-"VAROVANIE: prístupové práva adresára %s nie sú nastavené bezpeène \"%s\"\n"
+"VAROVANIE: prístupové práva adresára %s nie sú nastavené bezpečne \"%s\"\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: unsafe enclosing directory permissions on configuration file '%s'\n"
 msgstr ""
-"VAROVANIE: prístupové práva adresára %s nie sú nastavené bezpeène \"%s\"\n"
+"VAROVANIE: prístupové práva adresára %s nie sú nastavené bezpečne \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unsafe enclosing directory permissions on extension '%s'\n"
 msgstr ""
-"VAROVANIE: prístupové práva adresára %s nie sú nastavené bezpeène \"%s\"\n"
+"VAROVANIE: prístupové práva adresára %s nie sú nastavené bezpečne \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "unknown configuration item '%s'\n"
-msgstr "neznáma polo¾ka konfigurácie \"%s\"\n"
+msgstr "neznáma položka konfigurácie \"%s\"\n"
 
 msgid "display photo IDs during key listings"
 msgstr ""
 
 #, fuzzy
 msgid "show key usage information during key listings"
-msgstr "V súbore tajných kµúèov chýba zodpovedajúci podpis\n"
+msgstr "V súbore tajných kľúčov chýba zodpovedajúci podpis\n"
 
 msgid "show policy URLs during signature listings"
 msgstr ""
 
 #, fuzzy
 msgid "show all notations during signature listings"
-msgstr "V súbore tajných kµúèov chýba zodpovedajúci podpis\n"
+msgstr "V súbore tajných kľúčov chýba zodpovedajúci podpis\n"
 
 msgid "show IETF standard notations during signature listings"
 msgstr ""
@@ -2182,7 +2187,7 @@ msgstr ""
 
 #, fuzzy
 msgid "show preferred keyserver URLs during signature listings"
-msgstr "zadané URL pre podpisovú politiku je neplatné\n"
+msgstr "zadané URL pre podpisovú politiku je neplatné\n"
 
 msgid "show user ID validity during key listings"
 msgstr ""
@@ -2195,86 +2200,90 @@ msgstr ""
 
 #, fuzzy
 msgid "show the keyring name in key listings"
-msgstr "uká¾ v ktorom súbore kµúèov je vypísaný kµúè"
+msgstr "ukáž v ktorom súbore kľúčov je vypísaný kľúč"
 
 #, fuzzy
 msgid "show expiration dates during signature listings"
-msgstr "V súbore tajných kµúèov chýba zodpovedajúci podpis\n"
+msgstr "V súbore tajných kľúčov chýba zodpovedajúci podpis\n"
 
-#, fuzzy
-msgid "available TOFU policies:\n"
-msgstr "nastavi» kµúè ako neplatný (disable)"
+#, fuzzy, c-format
+msgid "valid values for option '%s':\n"
+msgstr "neplatný parameter pre import\n"
 
 #, fuzzy, c-format
 msgid "unknown TOFU policy '%s'\n"
-msgstr "neznámy implicitný adresát `%s'\n"
+msgstr "neznámy implicitný adresát `%s'\n"
 
 msgid "(use \"help\" to list choices)\n"
 msgstr ""
 
 #, fuzzy, c-format
+msgid "invalid value for option '%s'\n"
+msgstr "neplatný parameter pre import\n"
+
+#, fuzzy, c-format
 #| msgid "NOTE: old default options file `%s' ignored\n"
 msgid "Note: old default options file '%s' ignored\n"
-msgstr "POZNÁMKA: starý implicitný súbor s mo¾nos»ami `%s ignorovaný'\n"
+msgstr "POZNÁMKA: starý implicitný súbor s možnosťami `%s ignorovaný'\n"
 
 #, fuzzy, c-format
 #| msgid "NOTE: %s is not for normal use!\n"
 msgid "Note: %s is not for normal use!\n"
-msgstr "POZNÁMKA: %s nie je pre normálne pou¾itie!\n"
+msgstr "POZNÃ\81MKA: %s nie je pre normálne použitie!\n"
 
 #, fuzzy, c-format
 msgid "'%s' is not a valid signature expiration\n"
-msgstr "%s nie je platná znaková sada\n"
+msgstr "%s nie je platná znaková sada\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" is not a proper mail address\n"
-msgstr "Neplatná e-mailová adresa\n"
+msgstr "Neplatná e-mailová adresa\n"
 
 #, fuzzy, c-format
 msgid "invalid pinentry mode '%s'\n"
-msgstr "neplatný hashovací algoritmus `%s'\n"
+msgstr "neplatný hashovací algoritmus `%s'\n"
 
 #, fuzzy, c-format
 msgid "'%s' is not a valid character set\n"
-msgstr "%s nie je platná znaková sada\n"
+msgstr "%s nie je platná znaková sada\n"
 
 #, fuzzy
 msgid "could not parse keyserver URL\n"
-msgstr "nemo¾no pou¾i» URI servera kµúèov - chyba analýzy URI\n"
+msgstr "nemožno použiť URI servera kľúčov - chyba analýzy URI\n"
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid keyserver options\n"
-msgstr "%s:%d: neplatný parameter pre export\n"
+msgstr "%s:%d: neplatný parameter pre export\n"
 
 #, fuzzy
 msgid "invalid keyserver options\n"
-msgstr "neplatný parameter pre export\n"
+msgstr "neplatný parameter pre export\n"
 
 #, c-format
 msgid "%s:%d: invalid import options\n"
-msgstr "%s:%d: neplatný parameter pre import\n"
+msgstr "%s:%d: neplatný parameter pre import\n"
 
 msgid "invalid import options\n"
-msgstr "neplatný parameter pre import\n"
+msgstr "neplatný parameter pre import\n"
 
 #, fuzzy, c-format
 msgid "invalid filter option: %s\n"
-msgstr "neplatný parameter pre import\n"
+msgstr "neplatný parameter pre import\n"
 
 #, c-format
 msgid "%s:%d: invalid export options\n"
-msgstr "%s:%d: neplatný parameter pre export\n"
+msgstr "%s:%d: neplatný parameter pre export\n"
 
 msgid "invalid export options\n"
-msgstr "neplatný parameter pre export\n"
+msgstr "neplatný parameter pre export\n"
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid list options\n"
-msgstr "%s:%d: neplatný parameter pre import\n"
+msgstr "%s:%d: neplatný parameter pre import\n"
 
 #, fuzzy
 msgid "invalid list options\n"
-msgstr "neplatný parameter pre import\n"
+msgstr "neplatný parameter pre import\n"
 
 msgid "display photo IDs during signature verification"
 msgstr ""
@@ -2284,7 +2293,7 @@ msgstr ""
 
 #, fuzzy
 msgid "show all notations during signature verification"
-msgstr "%s nie je platná znaková sada\n"
+msgstr "%s nie je platná znaková sada\n"
 
 msgid "show IETF standard notations during signature verification"
 msgstr ""
@@ -2294,18 +2303,18 @@ msgstr ""
 
 #, fuzzy
 msgid "show preferred keyserver URLs during signature verification"
-msgstr "zadané URL pre podpisovú politiku je neplatné\n"
+msgstr "zadané URL pre podpisovú politiku je neplatné\n"
 
 #, fuzzy
 msgid "show user ID validity during signature verification"
-msgstr "%s nie je platná znaková sada\n"
+msgstr "%s nie je platná znaková sada\n"
 
 msgid "show revoked and expired user IDs in signature verification"
 msgstr ""
 
 #, fuzzy
 msgid "show only the primary user ID in signature verification"
-msgstr "%s nie je platná znaková sada\n"
+msgstr "%s nie je platná znaková sada\n"
 
 msgid "validate signatures with PKA data"
 msgstr ""
@@ -2315,134 +2324,134 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid verify options\n"
-msgstr "%s:%d: neplatný parameter pre export\n"
+msgstr "%s:%d: neplatný parameter pre export\n"
 
 #, fuzzy
 msgid "invalid verify options\n"
-msgstr "neplatný parameter pre export\n"
+msgstr "neplatný parameter pre export\n"
 
 #, c-format
 msgid "unable to set exec-path to %s\n"
-msgstr "nemo¾no nastavi» exec-path na %s\n"
+msgstr "nemožno nastaviť exec-path na %s\n"
 
 #, fuzzy, c-format
 msgid "%s:%d: invalid auto-key-locate list\n"
-msgstr "%s:%d: neplatný parameter pre export\n"
+msgstr "%s:%d: neplatný parameter pre export\n"
 
 msgid "invalid auto-key-locate list\n"
 msgstr ""
 
 msgid "WARNING: program may create a core file!\n"
-msgstr "VAROVANIE: program mô¾e vytvori» súbor core!\n"
+msgstr "VAROVANIE: program môže vytvoriť súbor core!\n"
 
 #, c-format
 msgid "WARNING: %s overrides %s\n"
-msgstr "VAROVANIE: %s prepí¹e %s\n"
+msgstr "VAROVANIE: %s prepíše %s\n"
 
 #, c-format
 msgid "%s not allowed with %s!\n"
-msgstr "Nie je dovolené pou¾íva» %s s %s!\n"
+msgstr "Nie je dovolené používať %s s %s!\n"
 
 #, c-format
 msgid "%s makes no sense with %s!\n"
-msgstr "%s nedáva s %s zmysel!\n"
+msgstr "%s nedáva s %s zmysel!\n"
 
 msgid "WARNING: running with faked system time: "
 msgstr ""
 
 #, fuzzy, c-format
 msgid "will not run with insecure memory due to %s\n"
-msgstr "zapisujem tajný kµúè do `%s'\n"
+msgstr "zapisujem tajný kľúč do `%s'\n"
 
 msgid "selected cipher algorithm is invalid\n"
-msgstr "vybraný ¹ifrovací algoritmus je neplatný\n"
+msgstr "vybraný šifrovací algoritmus je neplatný\n"
 
 msgid "selected digest algorithm is invalid\n"
-msgstr "vybraný hashovací algoritmus je neplatný\n"
+msgstr "vybraný hashovací algoritmus je neplatný\n"
 
 #, fuzzy
 msgid "selected compression algorithm is invalid\n"
-msgstr "vybraný ¹ifrovací algoritmus je neplatný\n"
+msgstr "vybraný šifrovací algoritmus je neplatný\n"
 
 msgid "selected certification digest algorithm is invalid\n"
-msgstr "vybraný hashovací algoritmus je neplatný\n"
+msgstr "vybraný hashovací algoritmus je neplatný\n"
 
 msgid "completes-needed must be greater than 0\n"
-msgstr "polo¾ka completes-needed musí by» väè¹ia ako 0\n"
+msgstr "položka completes-needed musí byť väčšia ako 0\n"
 
 msgid "marginals-needed must be greater than 1\n"
-msgstr "polo¾ka marginals-needed musí by» väè¹ia ako 1\n"
+msgstr "položka marginals-needed musí byť väčšia ako 1\n"
 
 #, fuzzy
 msgid "max-cert-depth must be in the range from 1 to 255\n"
-msgstr "polo¾ka max-cert-depth musí by» v rozmedzí od 1 do 255\n"
+msgstr "položka max-cert-depth musí byť v rozmedzí od 1 do 255\n"
 
 msgid "invalid default-cert-level; must be 0, 1, 2, or 3\n"
-msgstr "neplatná implicitná úroveò certifikácie; musí by» 0, 1, 2 alebo 3\n"
+msgstr "neplatná implicitná úroveň certifikácie; musí byť 0, 1, 2 alebo 3\n"
 
 msgid "invalid min-cert-level; must be 1, 2, or 3\n"
-msgstr "neplatná minimálna úroveò certifikácie; musí by» 0, 1, 2 alebo 3\n"
+msgstr "neplatná minimálna úroveň certifikácie; musí byť 0, 1, 2 alebo 3\n"
 
 #, fuzzy
 #| msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
 msgid "Note: simple S2K mode (0) is strongly discouraged\n"
-msgstr "POZNÁMKA: jednoduchý mód S2K (0) je dôrazne nedoporuèovaný\n"
+msgstr "POZNÁMKA: jednoduchý mód S2K (0) je dôrazne nedoporučovaný\n"
 
 msgid "invalid S2K mode; must be 0, 1 or 3\n"
-msgstr "neplatný mód S2K; musí by» 0, 1 alebo 3\n"
+msgstr "neplatný mód S2K; musí byť 0, 1 alebo 3\n"
 
 msgid "invalid default preferences\n"
-msgstr "neplatné defaultné predvoµby\n"
+msgstr "neplatné defaultné predvoľby\n"
 
 msgid "invalid personal cipher preferences\n"
-msgstr "neplatné u¾ívateµské predvoµby pre ¹ifrovanie\n"
+msgstr "neplatné užívateľské predvoľby pre šifrovanie\n"
 
 msgid "invalid personal digest preferences\n"
-msgstr "neplatné u¾ívateµské predvoµby pre hashovanie\n"
+msgstr "neplatné užívateľské predvoľby pre hashovanie\n"
 
 msgid "invalid personal compress preferences\n"
-msgstr "neplatné u¾ívateµské predvoµby pre kompresiu\n"
+msgstr "neplatné užívateľské predvoľby pre kompresiu\n"
 
 #, c-format
 msgid "%s does not yet work with %s\n"
-msgstr "%s e¹te nepracuje s %s\n"
+msgstr "%s ešte nepracuje s %s\n"
 
 #, fuzzy, c-format
 msgid "you may not use cipher algorithm '%s' while in %s mode\n"
-msgstr "nemô¾ete pou¾i» ¹ifrovací algoritmus \"%s\" v móde %s\n"
+msgstr "nemôžete použiť šifrovací algoritmus \"%s\" v móde %s\n"
 
 #, fuzzy, c-format
 msgid "you may not use digest algorithm '%s' while in %s mode\n"
-msgstr "nemô¾ete pou¾i» hashovací algoritmus \"%s\" v móde %s\n"
+msgstr "nemôžete použiť hashovací algoritmus \"%s\" v móde %s\n"
 
 #, fuzzy, c-format
 msgid "you may not use compression algorithm '%s' while in %s mode\n"
-msgstr "nemô¾ete pou¾i» kompresný algoritmus \"%s\" v móde %s\n"
+msgstr "nemôžete použiť kompresný algoritmus \"%s\" v móde %s\n"
 
 #, c-format
 msgid "failed to initialize the TrustDB: %s\n"
-msgstr "nemô¾em inicializova» databázu dôvery: %s\n"
+msgstr "nemôžem inicializovať databázu dôvery: %s\n"
 
 msgid "WARNING: recipients (-r) given without using public key encryption\n"
 msgstr ""
-"VAROVANIE: daný adresát (-r) bez pou¾itia ¹ifrovania s verejným kµúèom\n"
+"VAROVANIE: daný adresát (-r) bez použitia šifrovania s verejným kľúčom\n"
 
 msgid "--store [filename]"
-msgstr "--store [meno súboru]"
+msgstr "--store [meno súboru]"
 
 msgid "--symmetric [filename]"
-msgstr "--symmetric [meno súboru]"
+msgstr "--symmetric [meno súboru]"
 
 #, fuzzy, c-format
 msgid "symmetric encryption of '%s' failed: %s\n"
-msgstr "de¹ifrovanie zlyhalo: %s\n"
+msgstr "dešifrovanie zlyhalo: %s\n"
 
 msgid "--encrypt [filename]"
-msgstr "--encrypt [meno súboru]"
+msgstr "--encrypt [meno súboru]"
 
 #, fuzzy
 msgid "--symmetric --encrypt [filename]"
-msgstr "--sign --encrypt [meno súboru]"
+msgstr "--sign --encrypt [meno súboru]"
 
 msgid "you cannot use --symmetric --encrypt with --s2k-mode 0\n"
 msgstr ""
@@ -2450,18 +2459,18 @@ msgstr ""
 #, fuzzy, c-format
 msgid "you cannot use --symmetric --encrypt while in %s mode\n"
 msgstr ""
-"pou¾itie %s nie je v móde %s dovolené\n"
+"použitie %s nie je v móde %s dovolené\n"
 "\n"
 
 msgid "--sign [filename]"
-msgstr "--sign [meno súboru]"
+msgstr "--sign [meno súboru]"
 
 msgid "--sign --encrypt [filename]"
-msgstr "--sign --encrypt [meno súboru]"
+msgstr "--sign --encrypt [meno súboru]"
 
 #, fuzzy
 msgid "--symmetric --sign --encrypt [filename]"
-msgstr "--sign --encrypt [meno súboru]"
+msgstr "--sign --encrypt [meno súboru]"
 
 msgid "you cannot use --symmetric --sign --encrypt with --s2k-mode 0\n"
 msgstr ""
@@ -2469,124 +2478,124 @@ msgstr ""
 #, fuzzy, c-format
 msgid "you cannot use --symmetric --sign --encrypt while in %s mode\n"
 msgstr ""
-"pou¾itie %s nie je v móde %s dovolené\n"
+"použitie %s nie je v móde %s dovolené\n"
 "\n"
 
 msgid "--sign --symmetric [filename]"
-msgstr "--sign --symmetric [meno súboru]"
+msgstr "--sign --symmetric [meno súboru]"
 
 msgid "--clearsign [filename]"
-msgstr "--clearsign [meno súboru]"
+msgstr "--clearsign [meno súboru]"
 
 msgid "--decrypt [filename]"
-msgstr "--decrypt [meno súboru]"
+msgstr "--decrypt [meno súboru]"
 
 msgid "--sign-key user-id"
-msgstr "--sign-key id u¾ívateµa"
+msgstr "--sign-key id užívateľa"
 
 msgid "--lsign-key user-id"
-msgstr "--lsign-key id u¾ívateµa"
+msgstr "--lsign-key id užívateľa"
 
 msgid "--edit-key user-id [commands]"
-msgstr "--edit-key id u¾ívateµa [príkazy]"
+msgstr "--edit-key id užívateľa [príkazy]"
 
 #, fuzzy
 msgid "--passwd <user-id>"
-msgstr "--sign-key id u¾ívateµa"
+msgstr "--sign-key id užívateľa"
 
 #, c-format
 msgid "keyserver send failed: %s\n"
-msgstr "nepodarilo posla» kµúè na server: %s\n"
+msgstr "nepodarilo poslať kľúč na server: %s\n"
 
 #, c-format
 msgid "keyserver receive failed: %s\n"
-msgstr "nepodarilo sa prija» kµúè zo servera: %s\n"
+msgstr "nepodarilo sa prijať kľúč zo servera: %s\n"
 
 #, c-format
 msgid "key export failed: %s\n"
-msgstr "nepodaril sa export kµúèa: %s\n"
+msgstr "nepodaril sa export kľúča: %s\n"
 
 #, fuzzy, c-format
 #| msgid "key export failed: %s\n"
 msgid "export as ssh key failed: %s\n"
-msgstr "nepodaril sa export kµúèa: %s\n"
+msgstr "nepodaril sa export kľúča: %s\n"
 
 #, c-format
 msgid "keyserver search failed: %s\n"
-msgstr "nepodarilo sa nájs» server: %s\n"
+msgstr "nepodarilo sa nájsť server: %s\n"
 
 #, c-format
 msgid "keyserver refresh failed: %s\n"
-msgstr "aktualizácia servera zlyhala: %s\n"
+msgstr "aktualizácia servera zlyhala: %s\n"
 
 #, c-format
 msgid "dearmoring failed: %s\n"
-msgstr "dekódovanie z ASCII formátu zlyhalo: %s\n"
+msgstr "dekódovanie z ASCII formátu zlyhalo: %s\n"
 
 #, c-format
 msgid "enarmoring failed: %s\n"
-msgstr "kódovanie do ASCII formátu zlyhalo: %s\n"
+msgstr "kódovanie do ASCII formátu zlyhalo: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid hash algorithm `%s'\n"
 msgid "invalid hash algorithm '%s'\n"
-msgstr "neplatný hashovací algoritmus `%s'\n"
+msgstr "neplatný hashovací algoritmus `%s'\n"
 
 #, fuzzy, c-format
 msgid "error parsing key specification '%s': %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, c-format
 msgid "'%s' does not appear to be a valid key ID, fingerprint or keygrip\n"
 msgstr ""
 
 msgid "[filename]"
-msgstr "[meno súboru]"
+msgstr "[meno súboru]"
 
 msgid "Go ahead and type your message ...\n"
-msgstr "Zaènite písa» svoju správu ...\n"
+msgstr "Začnite písať svoju správu ...\n"
 
 msgid "the given certification policy URL is invalid\n"
-msgstr "zadané URL pre certifikaènú politiku je neplatné\n"
+msgstr "zadané URL pre certifikačnú politiku je neplatné\n"
 
 msgid "the given signature policy URL is invalid\n"
-msgstr "zadané URL pre podpisovú politiku je neplatné\n"
+msgstr "zadané URL pre podpisovú politiku je neplatné\n"
 
 #, fuzzy
 msgid "the given preferred keyserver URL is invalid\n"
-msgstr "zadané URL pre podpisovú politiku je neplatné\n"
+msgstr "zadané URL pre podpisovú politiku je neplatné\n"
 
 #, fuzzy
 msgid "|FILE|take the keys from the keyring FILE"
-msgstr "Zmaza» tento kµúè zo súboru kµúèov? "
+msgstr "Zmazať tento kľúč zo súboru kľúčov? "
 
 msgid "make timestamp conflicts only a warning"
-msgstr "konflikt èasového razítka"
+msgstr "konflikt časového razítka"
 
 msgid "|FD|write status info to this FD"
-msgstr "|FD|zapísa» informácie o stave do tohto FD"
+msgstr "|FD|zapísať informácie o stave do tohto FD"
 
 msgid "|ALGO|reject signatures made with ALGO"
 msgstr ""
 
 msgid "Usage: gpgv [options] [files] (-h for help)"
-msgstr "Pou¾itie: gpgv [mo¾nosti] [súbory] (-h pre pomoc)"
+msgstr "Použitie: gpgv [možnosti] [súbory] (-h pre pomoc)"
 
 #, fuzzy
 msgid ""
 "Syntax: gpgv [options] [files]\n"
 "Check signatures against known trusted keys\n"
 msgstr ""
-"Syntax: gpg [nastavenia] [súbory]\n"
-"Skontroluje podpisy oproti známym dôveryhodným kµúèom\n"
+"Syntax: gpg [nastavenia] [súbory]\n"
+"Skontroluje podpisy oproti známym dôveryhodným kľúčom\n"
 
 msgid "No help available"
-msgstr "Pomoc nie je k dispozícii"
+msgstr "Pomoc nie je k dispozícii"
 
 #, fuzzy, c-format
 #| msgid "No help available for `%s'"
 msgid "No help available for '%s'"
-msgstr "Pomoc nie je dostupná pre '%s'"
+msgstr "Pomoc nie je dostupná pre '%s'"
 
 msgid "import signatures that are marked as local-only"
 msgstr ""
@@ -2596,22 +2605,22 @@ msgstr ""
 
 #, fuzzy
 msgid "do not clear the ownertrust values during import"
-msgstr "aktualizova» databázu dôvery"
+msgstr "aktualizovať databázu dôvery"
 
 #, fuzzy
 msgid "do not update the trustdb after import"
-msgstr "aktualizova» databázu dôvery"
+msgstr "aktualizovať databázu dôvery"
 
 #, fuzzy
 msgid "show key during import"
-msgstr "vypísa» fingerprint"
+msgstr "vypísať fingerprint"
 
 msgid "only accept updates to existing keys"
 msgstr ""
 
 #, fuzzy
 msgid "remove unusable parts from key after import"
-msgstr "nepou¾iteµný tajný kµúè"
+msgstr "nepoužiteľný tajný kľúč"
 
 msgid "remove as much as possible from key after import"
 msgstr ""
@@ -2621,32 +2630,32 @@ msgstr ""
 
 #, c-format
 msgid "skipping block of type %d\n"
-msgstr "blok typu %d bol preskoèený\n"
+msgstr "blok typu %d bol preskočený\n"
 
 #, fuzzy, c-format
 msgid "%lu keys processed so far\n"
-msgstr "%lu kµúèe boli doteraz spracované\n"
+msgstr "%lu kľúče boli doteraz spracované\n"
 
 #, c-format
 msgid "Total number processed: %lu\n"
-msgstr "Celkovo spracovaných kµúèov: %lu\n"
+msgstr "Celkovo spracovaných kľúčov: %lu\n"
 
 #, fuzzy, c-format
 #| msgid "      skipped new keys: %lu\n"
 msgid "    skipped PGP-2 keys: %lu\n"
-msgstr "      preskoèené nové kµúèe: %lu\n"
+msgstr "      preskočené nové kľúče: %lu\n"
 
 #, c-format
 msgid "      skipped new keys: %lu\n"
-msgstr "      preskoèené nové kµúèe: %lu\n"
+msgstr "      preskočené nové kľúče: %lu\n"
 
 #, c-format
 msgid "          w/o user IDs: %lu\n"
-msgstr "        bez identifikátorov: %lu\n"
+msgstr "        bez identifikátorov: %lu\n"
 
 #, c-format
 msgid "              imported: %lu"
-msgstr "                importované: %lu"
+msgstr "                importované: %lu"
 
 #, c-format
 msgid "             unchanged: %lu\n"
@@ -2654,43 +2663,43 @@ msgstr "                  bez zmien: %lu\n"
 
 #, c-format
 msgid "          new user IDs: %lu\n"
-msgstr "         nové id u¾ívateµov: %lu\n"
+msgstr "         nové id užívateľov: %lu\n"
 
 #, c-format
 msgid "           new subkeys: %lu\n"
-msgstr "              nové podkµúèe: %lu\n"
+msgstr "              nové podkľúče: %lu\n"
 
 #, c-format
 msgid "        new signatures: %lu\n"
-msgstr "               nové podpisy: %lu\n"
+msgstr "               nové podpisy: %lu\n"
 
 #, c-format
 msgid "   new key revocations: %lu\n"
-msgstr "      nové revokácie kµúèov: %lu\n"
+msgstr "      nové revokácie kľúčov: %lu\n"
 
 #, c-format
 msgid "      secret keys read: %lu\n"
-msgstr "      preèítané tajné kµúèe: %lu\n"
+msgstr "      prečítané tajné kľúče: %lu\n"
 
 #, c-format
 msgid "  secret keys imported: %lu\n"
-msgstr "    importované tajné kµúèe: %lu\n"
+msgstr "    importované tajné kľúče: %lu\n"
 
 #, c-format
 msgid " secret keys unchanged: %lu\n"
-msgstr "      tajné kµúèe nezmenené: %lu\n"
+msgstr "      tajné kľúče nezmenené: %lu\n"
 
 #, c-format
 msgid "          not imported: %lu\n"
-msgstr "           neimportované: %lu\n"
+msgstr "           neimportované: %lu\n"
 
 #, fuzzy, c-format
 msgid "    signatures cleaned: %lu\n"
-msgstr "               nové podpisy: %lu\n"
+msgstr "               nové podpisy: %lu\n"
 
 #, fuzzy, c-format
 msgid "      user IDs cleaned: %lu\n"
-msgstr "      preèítané tajné kµúèe: %lu\n"
+msgstr "      prečítané tajné kľúče: %lu\n"
 
 #, c-format
 msgid ""
@@ -2704,7 +2713,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "         \"%s\": preference for digest algorithm %s\n"
-msgstr "%s podpis, hashovací algoritmus %s\n"
+msgstr "%s podpis, hashovací algoritmus %s\n"
 
 #, c-format
 msgid "         \"%s\": preference for compression algorithm %s\n"
@@ -2722,133 +2731,133 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "key %s: no user ID\n"
-msgstr "kµúè %08lX: chyba identifikátor u¾ívateµa\n"
+msgstr "kľúč %08lX: chyba identifikátor užívateľa\n"
 
 #, fuzzy, c-format
 msgid "key %s: %s\n"
-msgstr "preskoèený `%s': %s\n"
+msgstr "preskočený `%s': %s\n"
 
 msgid "rejected by import screener"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "key %s: PKS subkey corruption repaired\n"
-msgstr "kµúè %08lX: HKP po¹kodenie podkµúèa opravené\n"
+msgstr "kľúč %08lX: HKP poškodenie podkľúča opravené\n"
 
 # c-format
 #, fuzzy, c-format
 msgid "key %s: accepted non self-signed user ID \"%s\"\n"
 msgstr ""
-"kµúè %08lX: prijaté id u¾ívateµa '%s', ktorý nie je podpísaný ním samým\n"
+"kľúč %08lX: prijaté id užívateľa '%s', ktorý nie je podpísaný ním samým\n"
 
 #, fuzzy, c-format
 msgid "key %s: no valid user IDs\n"
-msgstr "kµúè %08lX: chýba platný identifikátor u¾ívateµa\n"
+msgstr "kľúč %08lX: chýba platný identifikátor užívateľa\n"
 
 msgid "this may be caused by a missing self-signature\n"
-msgstr "mô¾e to by» spôsobené chýbajúcim podpisom kµúèa ním samým\n"
+msgstr "môže to byť spôsobené chýbajúcim podpisom kľúča ním samým\n"
 
 #, fuzzy, c-format
 msgid "key %s: public key not found: %s\n"
-msgstr "kµúè %08lX: verejný kµúè nenájdený: %s\n"
+msgstr "kľúč %08lX: verejný kľúč nenájdený: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: new key - skipped\n"
-msgstr "kµúè %08lX: nový kµúè - preskoèený\n"
+msgstr "kľúč %08lX: nový kľúč - preskočený\n"
 
 #, c-format
 msgid "no writable keyring found: %s\n"
-msgstr "nenájdený zapisovateµný súbor kµúèov (keyring): %s\n"
+msgstr "nenájdený zapisovateľný súbor kľúčov (keyring): %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing keyring `%s': %s\n"
 msgid "error writing keyring '%s': %s\n"
-msgstr "chyba pri zápise súboru kµúèov (keyring)  `%s': %s\n"
+msgstr "chyba pri zápise súboru kľúčov (keyring)  `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: public key \"%s\" imported\n"
-msgstr "kµúè %08lX: verejný kµúè \"%s\" importovaný\n"
+msgstr "kľúč %08lX: verejný kľúč \"%s\" importovaný\n"
 
 #, fuzzy, c-format
 msgid "key %s: doesn't match our copy\n"
-msgstr "kµúè %08lX: nezodpovedá na¹ej kópii\n"
+msgstr "kľúč %08lX: nezodpovedá našej kópii\n"
 
 #, fuzzy, c-format
 msgid "key %s: can't locate original keyblock: %s\n"
-msgstr "kµúè %08lX: nemô¾em nájs» originálny blok kµúèa: %s\n"
+msgstr "kľúč %08lX: nemôžem nájsť originálny blok kľúča: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: can't read original keyblock: %s\n"
-msgstr "kµúè %08lX: nemô¾em èíta» originálny blok kµúèa: %s\n"
+msgstr "kľúč %08lX: nemôžem čítať originálny blok kľúča: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" 1 new user ID\n"
-msgstr "kµúè %08lX: \"%s\" 1 nový identifikátor u¾ívateµa\n"
+msgstr "kľúč %08lX: \"%s\" 1 nový identifikátor užívateľa\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d new user IDs\n"
-msgstr "kµúè %08lX: \"%s\" %d nových identifikátorov u¾ívateµa\n"
+msgstr "kľúč %08lX: \"%s\" %d nových identifikátorov užívateľa\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" 1 new signature\n"
-msgstr "kµúè %08lX: \"%s\" 1 nový podpis\n"
+msgstr "kľúč %08lX: \"%s\" 1 nový podpis\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d new signatures\n"
-msgstr "kµúè %08lX: \"%s\" %d nových podpisov\n"
+msgstr "kľúč %08lX: \"%s\" %d nových podpisov\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" 1 new subkey\n"
-msgstr "kµúè %08lX: \"%s\" 1 nový podkµúè\n"
+msgstr "kľúč %08lX: \"%s\" 1 nový podkľúč\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d new subkeys\n"
-msgstr "kµúè %08lX: \"%s\" %d nových podkµúèov\n"
+msgstr "kľúč %08lX: \"%s\" %d nových podkľúčov\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d signature cleaned\n"
-msgstr "kµúè %08lX: \"%s\" %d nových podpisov\n"
+msgstr "kľúč %08lX: \"%s\" %d nových podpisov\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d signatures cleaned\n"
-msgstr "kµúè %08lX: \"%s\" %d nových podpisov\n"
+msgstr "kľúč %08lX: \"%s\" %d nových podpisov\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d user ID cleaned\n"
-msgstr "kµúè %08lX: \"%s\" %d nových identifikátorov u¾ívateµa\n"
+msgstr "kľúč %08lX: \"%s\" %d nových identifikátorov užívateľa\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" %d user IDs cleaned\n"
-msgstr "kµúè %08lX: \"%s\" %d nových identifikátorov u¾ívateµa\n"
+msgstr "kľúč %08lX: \"%s\" %d nových identifikátorov užívateľa\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" not changed\n"
-msgstr "kµúè %08lX: \"%s\" bez zmeny\n"
+msgstr "kľúč %08lX: \"%s\" bez zmeny\n"
 
 #, fuzzy, c-format
 msgid "key %s: secret key imported\n"
-msgstr "kµúè %08lX: tajný kµúè importovaný\n"
+msgstr "kľúč %08lX: tajný kľúč importovaný\n"
 
 #, fuzzy, c-format
 #| msgid "skipped: secret key already present\n"
 msgid "key %s: secret key already exists\n"
-msgstr "preskoèené: tajný kµúè je u¾ v databáze\n"
+msgstr "preskočené: tajný kľúč je už v databáze\n"
 
 #, fuzzy, c-format
 msgid "key %s: error sending to agent: %s\n"
-msgstr "chyba pri posielaní na `%s': %s\n"
+msgstr "chyba pri posielaní na `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "secret key %s: %s\n"
-msgstr "tajný kµúè `%s' nebol nájdený: %s\n"
+msgstr "tajný kľúč `%s' nebol nájdený: %s\n"
 
 #, fuzzy
 msgid "importing secret keys not allowed\n"
-msgstr "zapisujem tajný kµúè do `%s'\n"
+msgstr "zapisujem tajný kľúč do `%s'\n"
 
 #, fuzzy, c-format
 msgid "key %s: secret key with invalid cipher %d - skipped\n"
-msgstr "kµúè %08lX: tajný kµúè bez verejného kµúèa %d - preskoèené\n"
+msgstr "kľúč %08lX: tajný kľúč bez verejného kľúča %d - preskočené\n"
 
 #. TRANSLATORS: For smartcard, each private key on
 #. host has a reference (stub) to a smartcard and
@@ -2867,192 +2876,196 @@ msgstr ""
 #, fuzzy, c-format
 msgid "key %s: no public key - can't apply revocation certificate\n"
 msgstr ""
-"kµúè %08lX: chýba verejný kµúè - nemô¾em aplikova» revokaèný certifikát\n"
+"kľúč %08lX: chýba verejný kľúč - nemôžem aplikovať revokačný certifikát\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid revocation certificate: %s - rejected\n"
-msgstr "kµúè %08lX: neplatný revokaèný certifikát: %s - zamietnuté\n"
+msgstr "kľúč %08lX: neplatný revokačný certifikát: %s - zamietnuté\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" revocation certificate imported\n"
-msgstr "kµúè %08lX: \"%s\" revokaèný certifikát importovaný\n"
+msgstr "kľúč %08lX: \"%s\" revokačný certifikát importovaný\n"
 
 #, fuzzy, c-format
 msgid "key %s: no user ID for signature\n"
-msgstr "kµúè %08lX: neexistuje id u¾ívateµa pre podpis\n"
+msgstr "kľúč %08lX: neexistuje id užívateľa pre podpis\n"
 
 #, fuzzy, c-format
 msgid "key %s: unsupported public key algorithm on user ID \"%s\"\n"
 msgstr ""
-"kµúè %08lX: nepodporovaný algoritmus verejného kµúèa u u¾ívateµského id \"%s"
+"kľúč %08lX: nepodporovaný algoritmus verejného kľúča u užívateľského id \"%s"
 "\"\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid self-signature on user ID \"%s\"\n"
 msgstr ""
-"kµúè %08lX: neplatný podpis kµúèa ním samým u u¾ívateµského id \"%s\"\n"
+"kľúč %08lX: neplatný podpis kľúča ním samým u užívateľského id \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "key %s: unsupported public key algorithm\n"
-msgstr "kµúè %08lX: nepodporovaný algoritmus verejného kµúèa\n"
+msgstr "kľúč %08lX: nepodporovaný algoritmus verejného kľúča\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid direct key signature\n"
-msgstr "kµúè %08lX: podpis kµúèa ním samým (direct key signature)\n"
+msgstr "kľúč %08lX: podpis kľúča ním samým (direct key signature)\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for key binding\n"
-msgstr "kµúè %08lX: neexistuje podkµúè pre viazanie kµúèov\n"
+msgstr "kľúč %08lX: neexistuje podkľúč pre viazanie kľúčov\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid subkey binding\n"
-msgstr "kµúè %08lX: neplatná väzba podkµúèa\n"
+msgstr "kľúč %08lX: neplatná väzba podkľúča\n"
 
 #, fuzzy, c-format
 msgid "key %s: removed multiple subkey binding\n"
-msgstr "kµúè %08lX: zmazaná viacnásobná väzba podkµúèa\n"
+msgstr "kľúč %08lX: zmazaná viacnásobná väzba podkľúča\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for key revocation\n"
-msgstr "kµúè %08lX: neexistuje podkµúè na revokáciu kµúèa\n"
+msgstr "kľúč %08lX: neexistuje podkľúč na revokáciu kľúča\n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid subkey revocation\n"
-msgstr "kµúè %08lX: neplatný revokaèný podkµúè\n"
+msgstr "kľúč %08lX: neplatný revokačný podkľúč\n"
 
 #, fuzzy, c-format
 msgid "key %s: removed multiple subkey revocation\n"
-msgstr "kµúè %08lX: zmazaná viacnásobná revokácia podkµúèa\n"
+msgstr "kľúč %08lX: zmazaná viacnásobná revokácia podkľúča\n"
 
 #, fuzzy, c-format
 msgid "key %s: skipped user ID \"%s\"\n"
-msgstr "kµúè %08lX: identifikátor u¾ívateµa preskoèený '"
+msgstr "kľúč %08lX: identifikátor užívateľa preskočený '"
 
 #, fuzzy, c-format
 msgid "key %s: skipped subkey\n"
-msgstr "kµúè %08lX: podkµúè preskoèený\n"
+msgstr "kľúč %08lX: podkľúč preskočený\n"
 
 #, fuzzy, c-format
 msgid "key %s: non exportable signature (class 0x%02X) - skipped\n"
-msgstr "kµúè %08lX: podpis nie je exportovateµný (trieda %02x) - preskoèené\n"
+msgstr "kľúč %08lX: podpis nie je exportovateľný (trieda %02x) - preskočené\n"
 
 #, fuzzy, c-format
 msgid "key %s: revocation certificate at wrong place - skipped\n"
-msgstr "kµúè %08lX: revokaèný certifikát na zlom mieste - preskoèené \n"
+msgstr "kľúč %08lX: revokačný certifikát na zlom mieste - preskočené \n"
 
 #, fuzzy, c-format
 msgid "key %s: invalid revocation certificate: %s - skipped\n"
-msgstr "kµúè %08lX: neplatný revokaèný certifikát: %s - preskoèené\n"
+msgstr "kľúč %08lX: neplatný revokačný certifikát: %s - preskočené\n"
 
 #, fuzzy, c-format
 msgid "key %s: subkey signature in wrong place - skipped\n"
-msgstr "kµúè %08lX: podpis subkµúèa na zlom mieste - preskoèené \n"
+msgstr "kľúč %08lX: podpis subkľúča na zlom mieste - preskočené \n"
 
 #, fuzzy, c-format
 msgid "key %s: unexpected signature class (0x%02X) - skipped\n"
-msgstr "kµúè %08lX: neoèakávaná podpisová trieda (0x%02X) - preskoèené\n"
+msgstr "kľúč %08lX: neočakávaná podpisová trieda (0x%02X) - preskočené\n"
 
 #, fuzzy, c-format
 msgid "key %s: duplicated user ID detected - merged\n"
-msgstr "kµúè %08lX: zistený duplikovaný identifikátor u¾ívateµa - zlúèený\n"
+msgstr "kľúč %08lX: zistený duplikovaný identifikátor užívateľa - zlúčený\n"
 
 #, fuzzy, c-format
 msgid "WARNING: key %s may be revoked: fetching revocation key %s\n"
 msgstr ""
-"VAROVANIE: kµúè %08lX mô¾e by» revokovaný: skú¹am získa» revokaèný kµúè "
+"VAROVANIE: kľúč %08lX môže byť revokovaný: skúšam získať revokačný kľúč "
 "%08lX\n"
 
 #, fuzzy, c-format
 msgid "WARNING: key %s may be revoked: revocation key %s not present.\n"
 msgstr ""
-"VAROVANIE: kµúè %08lX mô¾e by» revokovaný: revokaèný kµúè %08lX nenájdený.\n"
+"VAROVANIE: kľúč %08lX môže byť revokovaný: revokačný kľúč %08lX nenájdený.\n"
 
 #, fuzzy, c-format
 msgid "key %s: \"%s\" revocation certificate added\n"
-msgstr "kµúè %08lX: pridaný revokaèný certifikát \"%s\"\n"
+msgstr "kľúč %08lX: pridaný revokačný certifikát \"%s\"\n"
 
 #, fuzzy, c-format
 msgid "key %s: direct key signature added\n"
-msgstr "kµúè %08lX: podpis kµúèa ním samým (direct key signature)\n"
+msgstr "kľúč %08lX: podpis kľúča ním samým (direct key signature)\n"
 
 #, fuzzy, c-format
 msgid "error creating keybox '%s': %s\n"
-msgstr "chyba pri vytváraní súboru kµúèov (keyring)`%s': %s\n"
+msgstr "chyba pri vytváraní súboru kľúčov (keyring)`%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
 msgid "error creating keyring '%s': %s\n"
-msgstr "chyba pri vytváraní súboru kµúèov (keyring)`%s': %s\n"
+msgstr "chyba pri vytváraní súboru kľúčov (keyring)`%s': %s\n"
 
 #, fuzzy, c-format
 msgid "keybox '%s' created\n"
-msgstr "súbor kµúèov (keyring) `%s' vytvorený\n"
+msgstr "súbor kľúčov (keyring) `%s' vytvorený\n"
 
 #, fuzzy, c-format
 #| msgid "keyring `%s' created\n"
 msgid "keyring '%s' created\n"
-msgstr "súbor kµúèov (keyring) `%s' vytvorený\n"
+msgstr "súbor kľúčov (keyring) `%s' vytvorený\n"
 
 #, fuzzy, c-format
 msgid "keyblock resource '%s': %s\n"
-msgstr "chyba pri vytváraní `%s': %s\n"
+msgstr "chyba pri vytváraní `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error opening key DB: %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, c-format
 msgid "failed to rebuild keyring cache: %s\n"
-msgstr "zlyhalo obnovenie vyrovnávacej pamäti kµúèov: %s\n"
+msgstr "zlyhalo obnovenie vyrovnávacej pamäti kľúčov: %s\n"
 
 msgid "[revocation]"
-msgstr "[revokácia]"
+msgstr "[revokácia]"
 
 msgid "[self-signature]"
-msgstr "[podpis kµúèa ním samým]"
+msgstr "[podpis kľúča ním samým]"
+
+#, fuzzy, c-format
+msgid "error allocating memory: %s\n"
+msgstr "chyba pri vytváraní súboru kľúčov (keyring)`%s': %s\n"
 
 #, fuzzy, c-format
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
-msgstr "kµúè %08lX: nepodporovaný algoritmus verejného kµúèa\n"
+msgstr "kľúč %08lX: nepodporovaný algoritmus verejného kľúča\n"
 
 #, fuzzy, c-format
 msgid ""
 "can't check signature with unsupported message-digest algorithm %d: %s.\n"
-msgstr "%s podpis, hashovací algoritmus %s\n"
+msgstr "%s podpis, hashovací algoritmus %s\n"
 
 #, fuzzy
 msgid " (reordered signatures follow)"
-msgstr "Dobrý podpis od \""
+msgstr "Dobrý podpis od \""
 
 #, fuzzy, c-format
 msgid "key %s:\n"
-msgstr "preskoèený `%s': %s\n"
+msgstr "preskočený `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "%d duplicate signature removed\n"
 msgid_plural "%d duplicate signatures removed\n"
-msgstr[0] "U¾ívateµské ID \"%s\" je revokované."
-msgstr[1] "U¾ívateµské ID \"%s\" je revokované."
+msgstr[0] "Užívateľské ID \"%s\" je revokované."
+msgstr[1] "Užívateľské ID \"%s\" je revokované."
 
 #, fuzzy, c-format
 #| msgid "1 signature not checked due to a missing key\n"
 msgid "%d signature not checked due to a missing key\n"
 msgid_plural "%d signatures not checked due to missing keys\n"
-msgstr[0] "1 podpis neoverený, preto¾e chýba kµúè\n"
-msgstr[1] "1 podpis neoverený, preto¾e chýba kµúè\n"
+msgstr[0] "1 podpis neoverený, pretože chýba kľúč\n"
+msgstr[1] "1 podpis neoverený, pretože chýba kľúč\n"
 
 #, fuzzy, c-format
 #| msgid "%d bad signatures\n"
 msgid "%d bad signature\n"
 msgid_plural "%d bad signatures\n"
-msgstr[0] "%d zlých podpisov\n"
-msgstr[1] "%d zlých podpisov\n"
+msgstr[0] "%d zlých podpisov\n"
+msgstr[1] "%d zlých podpisov\n"
 
 #, fuzzy, c-format
 msgid "%d signature reordered\n"
 msgid_plural "%d signatures reordered\n"
-msgstr[0] "Dobrý podpis od \""
-msgstr[1] "Dobrý podpis od \""
+msgstr[0] "Dobrý podpis od \""
+msgstr[1] "Dobrý podpis od \""
 
 #, c-format
 msgid ""
@@ -3067,18 +3080,18 @@ msgid ""
 "(by looking at passports, checking fingerprints from different sources, "
 "etc.)\n"
 msgstr ""
-"Prosím rozhodnite, nakoµko dôverujete tomuto u¾ívateµovi, ¾e správne\n"
-"verifikuje kµúèe iných u¾ívateµov (prezretím cestovných pasov,\n"
-"kontrolou fingerprintov z rôznych zdrojov...)?\n"
+"Prosím rozhodnite, nakoľko dôverujete tomuto užívateľovi, že správne\n"
+"verifikuje kľúče iných užívateľov (prezretím cestovných pasov,\n"
+"kontrolou fingerprintov z rôznych zdrojov...)?\n"
 "\n"
 
 #, fuzzy, c-format
 msgid "  %d = I trust marginally\n"
-msgstr " %d = Dôverujem èiastoène\n"
+msgstr " %d = Dôverujem čiastočne\n"
 
 #, fuzzy, c-format
 msgid "  %d = I trust fully\n"
-msgstr " %d = Dôverujem úplne\n"
+msgstr " %d = Dôverujem úplne\n"
 
 msgid ""
 "Please enter the depth of this trust signature.\n"
@@ -3095,98 +3108,98 @@ msgstr ""
 
 #, c-format
 msgid "User ID \"%s\" is revoked."
-msgstr "U¾ívateµské ID \"%s\" je revokované."
+msgstr "Užívateľské ID \"%s\" je revokované."
 
 msgid "Are you sure you still want to sign it? (y/N) "
-msgstr "Ste si istý, ¾e stále chcete podpísa» tento kµúè? (a/N) "
+msgstr "Ste si istý, že stále chcete podpísať tento kľúč? (a/N) "
 
 msgid "  Unable to sign.\n"
-msgstr "  Nemo¾no podpísa».\n"
+msgstr "  Nemožno podpísať.\n"
 
 #, c-format
 msgid "User ID \"%s\" is expired."
-msgstr "U¾ívateµské ID \"%s\" je revokované."
+msgstr "Užívateľské ID \"%s\" je revokované."
 
 #, c-format
 msgid "User ID \"%s\" is not self-signed."
-msgstr "ID u¾ívateµa \"%s\" nie je podpísané ním samým."
+msgstr "ID užívateľa \"%s\" nie je podpísané ním samým."
 
 #, fuzzy, c-format
 msgid "User ID \"%s\" is signable.  "
-msgstr "ID u¾ívateµa \"%s\" nie je podpísané ním samým."
+msgstr "ID užívateľa \"%s\" nie je podpísané ním samým."
 
 #, fuzzy
 msgid "Sign it? (y/N) "
-msgstr "Skutoène podpísa»? "
+msgstr "Skutočne podpísať? "
 
 #, c-format
 msgid ""
 "The self-signature on \"%s\"\n"
 "is a PGP 2.x-style signature.\n"
 msgstr ""
-"Podpis kµúèa \"%s\" ním samým je\n"
-"podpis vo formáte PGP 2.x.\n"
+"Podpis kľúča \"%s\" ním samým je\n"
+"podpis vo formáte PGP 2.x.\n"
 
 msgid "Do you want to promote it to an OpenPGP self-signature? (y/N) "
-msgstr "Prajete si ho zmeni» na formát OpenPGP? (a/N) "
+msgstr "Prajete si ho zmeniť na formát OpenPGP? (a/N) "
 
 #, c-format
 msgid ""
 "Your current signature on \"%s\"\n"
 "has expired.\n"
 msgstr ""
-"Vá¹ súèasný podpis na \"%s\"\n"
-"je len lokálny.\n"
+"Váš súčasný podpis na \"%s\"\n"
+"je len lokálny.\n"
 "\n"
 
 msgid "Do you want to issue a new signature to replace the expired one? (y/N) "
-msgstr "Chcete, aby platnos» Vá¹ho podpisu vypr¹ala v rovnakom èase? (A/n) "
+msgstr "Chcete, aby platnosť Vášho podpisu vypršala v rovnakom čase? (A/n) "
 
 #, c-format
 msgid ""
 "Your current signature on \"%s\"\n"
 "is a local signature.\n"
 msgstr ""
-"Vá¹ súèasný podpis na \"%s\"\n"
-"je len lokálny.\n"
+"Váš súčasný podpis na \"%s\"\n"
+"je len lokálny.\n"
 "\n"
 
 msgid "Do you want to promote it to a full exportable signature? (y/N) "
-msgstr "Prajete si ho zmeni» na plne exportovateµný podpis? (a/N) "
+msgstr "Prajete si ho zmeniť na plne exportovateľný podpis? (a/N) "
 
 #, fuzzy, c-format
 msgid "\"%s\" was already locally signed by key %s\n"
-msgstr "\"%s\" je u¾ lokálne podpísaný kµúèom %08lX\n"
+msgstr "\"%s\" je už lokálne podpísaný kľúčom %08lX\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" was already signed by key %s\n"
-msgstr "\"%s\" je u¾ podpísaný kµúèom %08lX\n"
+msgstr "\"%s\" je už podpísaný kľúčom %08lX\n"
 
 msgid "Do you want to sign it again anyway? (y/N) "
-msgstr "Ste si istý, ¾e stále chcete podpísa» tento kµúè? (a/N) "
+msgstr "Ste si istý, že stále chcete podpísať tento kľúč? (a/N) "
 
 #, fuzzy, c-format
 msgid "Nothing to sign with key %s\n"
-msgstr "Niè na podpísanie kµúèom %08lX\n"
+msgstr "Nič na podpísanie kľúčom %08lX\n"
 
 msgid "This key has expired!"
-msgstr "Platnos» kµúèa vypr¹ala!"
+msgstr "Platnosť kľúča vypršala!"
 
 #, c-format
 msgid "This key is due to expire on %s.\n"
-msgstr "Platnos» kµúèa vypr¹í %s.\n"
+msgstr "Platnosť kľúča vyprší %s.\n"
 
 msgid "Do you want your signature to expire at the same time? (Y/n) "
-msgstr "Chcete, aby platnos» Vá¹ho podpisu vypr¹ala v rovnakom èase? (A/n) "
+msgstr "Chcete, aby platnosť Vášho podpisu vypršala v rovnakom čase? (A/n) "
 
 msgid ""
 "How carefully have you verified the key you are about to sign actually "
 "belongs\n"
 "to the person named above?  If you don't know what to answer, enter \"0\".\n"
 msgstr ""
-"S akou istotou ste preverili, ¾e kµúè, ktorý chcete podpísa»\n"
-"patrí vy¹¹ie uvedenej osobe?\n"
-"Pokiaµ nepoznáte odpoveï, zadajte \"0\".\n"
+"S akou istotou ste preverili, že kľúč, ktorý chcete podpísať\n"
+"patrí vyššie uvedenej osobe?\n"
+"Pokiaľ nepoznáte odpoveď, zadajte \"0\".\n"
 
 #, c-format
 msgid "   (0) I will not answer.%s\n"
@@ -3194,80 +3207,80 @@ msgstr "   (0) Neodpoviem.%s\n"
 
 #, c-format
 msgid "   (1) I have not checked at all.%s\n"
-msgstr "   (1) Vôbec som to nekontroloval(a).%s\n"
+msgstr "   (1) Vôbec som to nekontroloval(a).%s\n"
 
 #, c-format
 msgid "   (2) I have done casual checking.%s\n"
-msgstr "   (2) Èiastoène som to overil(a).%s\n"
+msgstr "   (2) Čiastočne som to overil(a).%s\n"
 
 #, c-format
 msgid "   (3) I have done very careful checking.%s\n"
-msgstr "   (3) Veµmi dôkladne som to overil(a).%s\n"
+msgstr "   (3) Veľmi dôkladne som to overil(a).%s\n"
 
 #, fuzzy
 msgid "Your selection? (enter '?' for more information): "
-msgstr "Vá¹ výber? ('?' - viac informácií): "
+msgstr "Váš výber? ('?' - viac informácií): "
 
 #, fuzzy, c-format
 msgid ""
 "Are you sure that you want to sign this key with your\n"
 "key \"%s\" (%s)\n"
 msgstr ""
-"Ste si istý, ¾e chcete podpísa» tento kµúè\n"
-"svojím kµúèom: \""
+"Ste si istý, že chcete podpísať tento kľúč\n"
+"svojím kľúčom: \""
 
 #, fuzzy
 msgid "This will be a self-signature.\n"
 msgstr ""
 "\n"
-"Ide o podpis kµúèa ním samým\n"
+"Ide o podpis kľúča ním samým\n"
 
 #, fuzzy
 msgid "WARNING: the signature will not be marked as non-exportable.\n"
 msgstr ""
 "\n"
-"VAROVANIE: podpis nebude oznaèený ako neexportovateµný.\n"
+"VAROVANIE: podpis nebude označený ako neexportovateľný.\n"
 
 #, fuzzy
 msgid "WARNING: the signature will not be marked as non-revocable.\n"
 msgstr ""
 "\n"
-"VAROVANIE: podpis nebude oznaèený ako neodvolateµný (non-revocable).\n"
+"VAROVANIE: podpis nebude označený ako neodvolateľný (non-revocable).\n"
 
 #, fuzzy
 msgid "The signature will be marked as non-exportable.\n"
 msgstr ""
 "\n"
-"Podpis bude oznaèený ako neexportovateµný.\n"
+"Podpis bude označený ako neexportovateľný.\n"
 "\n"
 
 #, fuzzy
 msgid "The signature will be marked as non-revocable.\n"
 msgstr ""
 "\n"
-"Podpis bude oznaèený ako neodvolateµný (non-revocable).\n"
+"Podpis bude označený ako neodvolateľný (non-revocable).\n"
 
 #, fuzzy
 msgid "I have not checked this key at all.\n"
 msgstr ""
 "\n"
-"Vôbec som tento kµúè neoveril.\n"
+"Vôbec som tento kľúč neoveril.\n"
 
 #, fuzzy
 msgid "I have checked this key casually.\n"
 msgstr ""
 "\n"
-"Èiastoène som overil tento kµúè.\n"
+"Čiastočne som overil tento kľúč.\n"
 
 #, fuzzy
 msgid "I have checked this key very carefully.\n"
 msgstr ""
 "\n"
-"Velmi dôkladne som overil tento kµúè.\n"
+"Velmi dôkladne som overil tento kľúč.\n"
 
 #, fuzzy
 msgid "Really sign? (y/N) "
-msgstr "Skutoène podpísa»? "
+msgstr "Skutočne podpísať? "
 
 #, c-format
 msgid "signing failed: %s\n"
@@ -3279,56 +3292,56 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error creating passphrase: %s\n"
 msgid "key %s: error changing passphrase: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 msgid "save and quit"
-msgstr "ulo¾i» a ukonèi»"
+msgstr "uložiť a ukončiť"
 
 #, fuzzy
 msgid "show key fingerprint"
-msgstr "vypísa» fingerprint"
+msgstr "vypísať fingerprint"
 
 #, fuzzy
 msgid "show the keygrip"
-msgstr "Podpisová notácia: "
+msgstr "Podpisová notácia: "
 
 msgid "list key and user IDs"
-msgstr "vypísa» zoznam kµúèov a id u¾ívateµov"
+msgstr "vypísať zoznam kľúčov a id užívateľov"
 
 msgid "select user ID N"
-msgstr "vyberte identifikátor u¾ívateµa N"
+msgstr "vyberte identifikátor užívateľa N"
 
 #, fuzzy
 msgid "select subkey N"
-msgstr "vyberte identifikátor u¾ívateµa N"
+msgstr "vyberte identifikátor užívateľa N"
 
 #, fuzzy
 msgid "check signatures"
-msgstr "revokova» podpisy"
+msgstr "revokovať podpisy"
 
 msgid "sign selected user IDs [* see below for related commands]"
 msgstr ""
 
 #, fuzzy
 msgid "sign selected user IDs locally"
-msgstr "podpísa» kµúè lokálne"
+msgstr "podpísať kľúč lokálne"
 
 #, fuzzy
 msgid "sign selected user IDs with a trust signature"
-msgstr "Nápoveda: Vyberte id u¾ívateµa na podpísanie\n"
+msgstr "Nápoveda: Vyberte id užívateľa na podpísanie\n"
 
 msgid "sign selected user IDs with a non-revocable signature"
 msgstr ""
 
 msgid "add a user ID"
-msgstr "prida» identifikátor u¾ívateµa"
+msgstr "pridať identifikátor užívateľa"
 
 msgid "add a photo ID"
-msgstr "prida» fotografické ID"
+msgstr "pridať fotografické ID"
 
 #, fuzzy
 msgid "delete selected user IDs"
-msgstr "zmaza» identifikátor u¾ívateµa"
+msgstr "zmazať identifikátor užívateľa"
 
 #, fuzzy
 msgid "add a subkey"
@@ -3345,70 +3358,70 @@ msgstr ""
 
 #, fuzzy
 msgid "delete selected subkeys"
-msgstr "zmaza» sekundárny kµúè"
+msgstr "zmazať sekundárny kľúč"
 
 msgid "add a revocation key"
-msgstr "prida» revokaèný kµúè"
+msgstr "pridať revokačný kľúč"
 
 #, fuzzy
 msgid "delete signatures from the selected user IDs"
-msgstr "Skutoène aktualizova» predvoµby pre vybrané id u¾ívateµa? "
+msgstr "Skutočne aktualizovať predvoľby pre vybrané id užívateľa? "
 
 #, fuzzy
 msgid "change the expiration date for the key or selected subkeys"
-msgstr "Nemô¾ete zmeni» dobu platnosti kµúèa verzie 3\n"
+msgstr "Nemôžete zmeniť dobu platnosti kľúča verzie 3\n"
 
 #, fuzzy
 msgid "flag the selected user ID as primary"
-msgstr "oznaèi» u¾ívateµské ID ako primárne"
+msgstr "označiť užívateľské ID ako primárne"
 
 msgid "list preferences (expert)"
-msgstr "vypísa» zoznam predvolieb (pre expertov)"
+msgstr "vypísať zoznam predvolieb (pre expertov)"
 
 msgid "list preferences (verbose)"
-msgstr "vypísa» zoznam predvolieb (podrobne)"
+msgstr "vypísať zoznam predvolieb (podrobne)"
 
 #, fuzzy
 msgid "set preference list for the selected user IDs"
-msgstr "Skutoène aktualizova» predvoµby pre vybrané id u¾ívateµa? "
+msgstr "Skutočne aktualizovať predvoľby pre vybrané id užívateľa? "
 
 #, fuzzy
 msgid "set the preferred keyserver URL for the selected user IDs"
-msgstr "nemo¾no pou¾i» URI servera kµúèov - chyba analýzy URI\n"
+msgstr "nemožno použiť URI servera kľúčov - chyba analýzy URI\n"
 
 #, fuzzy
 msgid "set a notation for the selected user IDs"
-msgstr "Skutoène aktualizova» predvoµby pre vybrané id u¾ívateµa? "
+msgstr "Skutočne aktualizovať predvoľby pre vybrané id užívateľa? "
 
 msgid "change the passphrase"
-msgstr "zmeni» heslo"
+msgstr "zmeniť heslo"
 
 msgid "change the ownertrust"
-msgstr "zmeni» dôveryhodnos» vlastníka kµúèa"
+msgstr "zmeniť dôveryhodnosť vlastníka kľúča"
 
 #, fuzzy
 msgid "revoke signatures on the selected user IDs"
-msgstr "Skutoène revokova» v¹etky vybrané id u¾ívateµa? "
+msgstr "Skutočne revokovať všetky vybrané id užívateľa? "
 
 #, fuzzy
 msgid "revoke selected user IDs"
-msgstr "revokova» identifikátor u¾ívateµa"
+msgstr "revokovať identifikátor užívateľa"
 
 #, fuzzy
 msgid "revoke key or selected subkeys"
-msgstr "revokova» sekundárny kµúè"
+msgstr "revokovať sekundárny kľúč"
 
 #, fuzzy
 msgid "enable key"
-msgstr "nastavi» kµúè ako platný (enable)"
+msgstr "nastaviť kľúč ako platný (enable)"
 
 #, fuzzy
 msgid "disable key"
-msgstr "nastavi» kµúè ako neplatný (disable)"
+msgstr "nastaviť kľúč ako neplatný (disable)"
 
 #, fuzzy
 msgid "show selected photo IDs"
-msgstr "ukáza» fotografické ID"
+msgstr "ukázať fotografické ID"
 
 msgid "compact unusable user IDs and remove unusable signatures from key"
 msgstr ""
@@ -3417,10 +3430,10 @@ msgid "compact unusable user IDs and remove all signatures from key"
 msgstr ""
 
 msgid "Secret key is available.\n"
-msgstr "Tajný kµúè je dostupný.\n"
+msgstr "Tajný kľúč je dostupný.\n"
 
 msgid "Need the secret key to do this.\n"
-msgstr "Na vykonanie tejto operácie je potrebný tajný kµúè.\n"
+msgstr "Na vykonanie tejto operácie je potrebný tajný kľúč.\n"
 
 msgid ""
 "* The 'sign' command may be prefixed with an 'l' for local signatures "
@@ -3430,153 +3443,153 @@ msgid ""
 msgstr ""
 
 msgid "Key is revoked."
-msgstr "Kµúè revokovaný."
+msgstr "Kľúč revokovaný."
 
 #, fuzzy
 msgid "Really sign all user IDs? (y/N) "
-msgstr "Skutoène podpísa» v¹etky id u¾ívateµa? "
+msgstr "Skutočne podpísať všetky id užívateľa? "
 
 #, fuzzy
 msgid "Really sign all text user IDs? (y/N) "
-msgstr "Skutoène podpísa» v¹etky id u¾ívateµa? "
+msgstr "Skutočne podpísať všetky id užívateľa? "
 
 msgid "Hint: Select the user IDs to sign\n"
-msgstr "Nápoveda: Vyberte id u¾ívateµa na podpísanie\n"
+msgstr "Nápoveda: Vyberte id užívateľa na podpísanie\n"
 
 #, fuzzy, c-format
 msgid "Unknown signature type '%s'\n"
-msgstr "neznáma trieda podpisu"
+msgstr "neznáma trieda podpisu"
 
 #, c-format
 msgid "This command is not allowed while in %s mode.\n"
-msgstr "Tento príkaz nie je v módoch %s dovolený.\n"
+msgstr "Tento príkaz nie je v módoch %s dovolený.\n"
 
 msgid "You must select at least one user ID.\n"
-msgstr "Musíte vybra» aspoò jedno id u¾ívateµa.\n"
+msgstr "Musíte vybrať aspoň jedno id užívateľa.\n"
 
 #, c-format
 msgid "(Use the '%s' command.)\n"
 msgstr ""
 
 msgid "You can't delete the last user ID!\n"
-msgstr "Nemô¾ete zmaza» posledné id u¾ívateµa!\n"
+msgstr "Nemôžete zmazať posledné id užívateľa!\n"
 
 #, fuzzy
 msgid "Really remove all selected user IDs? (y/N) "
-msgstr "Skutoène odstráni» v¹etky vybrané id u¾ívateµa? "
+msgstr "Skutočne odstrániť všetky vybrané id užívateľa? "
 
 #, fuzzy
 msgid "Really remove this user ID? (y/N) "
-msgstr "Skutoène odstráni» toto id u¾ívateµa? "
+msgstr "Skutočne odstrániť toto id užívateľa? "
 
 #. TRANSLATORS: Please take care: This is about
 #. moving the key and not about removing it.
 #, fuzzy
 msgid "Really move the primary key? (y/N) "
-msgstr "Skutoène odstráni» toto id u¾ívateµa? "
+msgstr "Skutočne odstrániť toto id užívateľa? "
 
 #, fuzzy
 msgid "You must select exactly one key.\n"
-msgstr "Musíte vybra» aspoò jeden kµúè.\n"
+msgstr "Musíte vybrať aspoň jeden kľúč.\n"
 
 msgid "Command expects a filename argument\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "Can't open '%s': %s\n"
-msgstr "nemô¾em otvori» `%s': %s\n"
+msgstr "nemôžem otvoriť `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "Error reading backup key from '%s': %s\n"
-msgstr "chyba pri vytváraní súboru kµúèov (keyring)`%s': %s\n"
+msgstr "chyba pri vytváraní súboru kľúčov (keyring)`%s': %s\n"
 
 msgid "You must select at least one key.\n"
-msgstr "Musíte vybra» aspoò jeden kµúè.\n"
+msgstr "Musíte vybrať aspoň jeden kľúč.\n"
 
 #, fuzzy
 msgid "Do you really want to delete the selected keys? (y/N) "
-msgstr "Skutoène chcete zmaza» vybrané kµúèe? "
+msgstr "Skutočne chcete zmazať vybrané kľúče? "
 
 #, fuzzy
 msgid "Do you really want to delete this key? (y/N) "
-msgstr "Skutoène chcete zmaza» tento kµúè? "
+msgstr "Skutočne chcete zmazať tento kľúč? "
 
 #, fuzzy
 msgid "Really revoke all selected user IDs? (y/N) "
-msgstr "Skutoène revokova» v¹etky vybrané id u¾ívateµa? "
+msgstr "Skutočne revokovať všetky vybrané id užívateľa? "
 
 #, fuzzy
 msgid "Really revoke this user ID? (y/N) "
-msgstr "Skutoène revokova» toto id u¾ívateµa? "
+msgstr "Skutočne revokovať toto id užívateľa? "
 
 #, fuzzy
 msgid "Do you really want to revoke the entire key? (y/N) "
-msgstr "Skutoène chcete revokova» tento kµúè? "
+msgstr "Skutočne chcete revokovať tento kľúč? "
 
 #, fuzzy
 msgid "Do you really want to revoke the selected subkeys? (y/N) "
-msgstr "Skutoène chcete revokova» vybrané kµúèe? "
+msgstr "Skutočne chcete revokovať vybrané kľúče? "
 
 #, fuzzy
 msgid "Do you really want to revoke this subkey? (y/N) "
-msgstr "Skutoène chcete revokova» tento kµúè? "
+msgstr "Skutočne chcete revokovať tento kľúč? "
 
 msgid "Owner trust may not be set while using a user provided trust database\n"
 msgstr ""
 
 #, fuzzy
 msgid "Set preference list to:\n"
-msgstr "nastavi» zoznam predvolieb"
+msgstr "nastaviť zoznam predvolieb"
 
 #, fuzzy
 msgid "Really update the preferences for the selected user IDs? (y/N) "
-msgstr "Skutoène aktualizova» predvoµby pre vybrané id u¾ívateµa? "
+msgstr "Skutočne aktualizovať predvoľby pre vybrané id užívateľa? "
 
 #, fuzzy
 msgid "Really update the preferences? (y/N) "
-msgstr "Skutoène aktualizova» predvoµby? "
+msgstr "Skutočne aktualizovať predvoľby? "
 
 #, fuzzy
 msgid "Save changes? (y/N) "
-msgstr "Ulo¾i» zmeny? "
+msgstr "Uložiť zmeny? "
 
 #, fuzzy
 msgid "Quit without saving? (y/N) "
-msgstr "Ukonèi» bez ulo¾enia? "
+msgstr "UkonÄ\8diÅ¥ bez uloženia? "
 
 #, c-format
 msgid "update failed: %s\n"
-msgstr "aktualizácia zlyhala: %s\n"
+msgstr "aktualizácia zlyhala: %s\n"
 
 msgid "Key not changed so no update needed.\n"
-msgstr "kµúè nebol zmenený, tak¾e nie je potrebné ho aktualizova».\n"
+msgstr "kľúč nebol zmenený, takže nie je potrebné ho aktualizovať.\n"
 
 #, fuzzy, c-format
 #| msgid "Key generation failed: %s\n"
 msgid "User ID revocation failed: %s\n"
-msgstr "Vytvorenie kµúèa sa nepodarilo: %s\n"
+msgstr "Vytvorenie kľúča sa nepodarilo: %s\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" is not a fingerprint\n"
-msgstr "chyba: neplatný odtlaèok\n"
+msgstr "chyba: neplatný odtlačok\n"
 
 #, fuzzy, c-format
 msgid "\"%s\" is not the primary fingerprint\n"
-msgstr "nemô¾em inicializova» databázu dôvery: %s\n"
+msgstr "nemôžem inicializovať databázu dôvery: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid value\n"
 msgid "Invalid user ID '%s': %s\n"
-msgstr "neplatná hodnota\n"
+msgstr "neplatná hodnota\n"
 
 #, fuzzy
 #| msgid "No such user ID.\n"
 msgid "No matching user IDs."
-msgstr "Takýto identifikátor u¾ívateµa neexistuje.\n"
+msgstr "Takýto identifikátor užívateľa neexistuje.\n"
 
 #, fuzzy
 msgid "Nothing to sign.\n"
-msgstr "Niè na podpísanie kµúèom %08lX\n"
+msgstr "Nič na podpísanie kľúčom %08lX\n"
 
 msgid "Digest: "
 msgstr "Digest: "
@@ -3592,67 +3605,67 @@ msgstr ""
 
 #, fuzzy
 msgid "Notations: "
-msgstr "Notácie: "
+msgstr "Notácie: "
 
 msgid "There are no preferences on a PGP 2.x-style user ID.\n"
-msgstr "U¾ívateµské ID vo formáte PGP 2.x nemá ¾iadne predvoµby\n"
+msgstr "Užívateľské ID vo formáte PGP 2.x nemá žiadne predvoľby\n"
 
 #, fuzzy, c-format
 msgid "The following key was revoked on %s by %s key %s\n"
-msgstr "Tento kµúè mô¾e by» revokovaný kµúèom %s "
+msgstr "Tento kľúč môže byť revokovaný kľúčom %s "
 
 #, fuzzy, c-format
 msgid "This key may be revoked by %s key %s"
-msgstr "Tento kµúè mô¾e by» revokovaný kµúèom %s "
+msgstr "Tento kľúč môže byť revokovaný kľúčom %s "
 
 #, fuzzy
 msgid "(sensitive)"
-msgstr "(citlivá informácia)"
+msgstr "(citlivá informácia)"
 
 #, fuzzy, c-format
 msgid "created: %s"
-msgstr "%s: nemô¾em vytvori»: %s\n"
+msgstr "%s: nemôžem vytvoriť: %s\n"
 
 #, fuzzy, c-format
 msgid "revoked: %s"
-msgstr "[revokované]"
+msgstr "[revokované]"
 
 #, fuzzy, c-format
 msgid "expired: %s"
-msgstr " [platnos» skonèí: %s]"
+msgstr " [platnosť skončí: %s]"
 
 #, fuzzy, c-format
 msgid "expires: %s"
-msgstr " [platnos» skonèí: %s]"
+msgstr " [platnosť skončí: %s]"
 
 #, fuzzy, c-format
 msgid "usage: %s"
-msgstr " dôvera: %c/%c"
+msgstr " dôvera: %c/%c"
 
 msgid "card-no: "
 msgstr ""
 
 #, fuzzy, c-format
 msgid "trust: %s"
-msgstr " dôvera: %c/%c"
+msgstr " dôvera: %c/%c"
 
 #, c-format
 msgid "validity: %s"
 msgstr ""
 
 msgid "This key has been disabled"
-msgstr "Tento kµúè bol oznaèený za neplatný (disabled)"
+msgstr "Tento kľúč bol označený za neplatný (disabled)"
 
 msgid ""
 "Please note that the shown key validity is not necessarily correct\n"
 "unless you restart the program.\n"
 msgstr ""
-"Prosím nezabúdajte, ¾e zobrazované údaje o platnosti kµúèov nemusia\n"
-"by» správne, pokiaµ znovu nespustíte program.\n"
+"Prosím nezabúdajte, že zobrazované údaje o platnosti kľúčov nemusia\n"
+"byť správne, pokiaľ znovu nespustíte program.\n"
 
 #, fuzzy
 msgid "revoked"
-msgstr "[revokované]"
+msgstr "[revokované]"
 
 #, fuzzy
 msgid "expired"
@@ -3662,8 +3675,8 @@ msgid ""
 "WARNING: no user ID has been marked as primary.  This command may\n"
 "              cause a different user ID to become the assumed primary.\n"
 msgstr ""
-"VAROVANIE: ¾iadne ID u¾ívateµa nebolo oznaèené ako primárne. Tento príkaz\n"
-"spôsobí, ¾e iné ID u¾ívateµa sa bude pova¾ova» primárne.\n"
+"VAROVANIE: žiadne ID užívateľa nebolo označené ako primárne. Tento príkaz\n"
+"spôsobí, že iné ID užívateľa sa bude považovať primárne.\n"
 
 msgid "WARNING: Your encryption subkey expires soon.\n"
 msgstr ""
@@ -3671,212 +3684,212 @@ msgstr ""
 #, fuzzy
 #| msgid "You can't change the expiration date of a v3 key\n"
 msgid "You may want to change its expiration date too.\n"
-msgstr "Nemô¾ete zmeni» dobu platnosti kµúèa verzie 3\n"
+msgstr "Nemôžete zmeniť dobu platnosti kľúča verzie 3\n"
 
 msgid ""
 "WARNING: This is a PGP2-style key.  Adding a photo ID may cause some "
 "versions\n"
 "         of PGP to reject this key.\n"
 msgstr ""
-"VAROVANIE: Toto je PGP2 kµúè. Pridanie fotografického ID mô¾e v niektorých\n"
-"           verziách PGP vies» k odmietnutiu tohto kµúèa.\n"
+"VAROVANIE: Toto je PGP2 kľúč. Pridanie fotografického ID môže v niektorých\n"
+"           verziách PGP viesť k odmietnutiu tohto kľúča.\n"
 
 msgid "Are you sure you still want to add it? (y/N) "
-msgstr "Ste si istý, ¾e ho chcete stále prida»? (a/N) "
+msgstr "Ste si istý, že ho chcete stále pridať? (a/N) "
 
 msgid "You may not add a photo ID to a PGP2-style key.\n"
-msgstr "Nemali by ste pridáva» fotografické ID k PGP2 kµúèu.\n"
+msgstr "Nemali by ste pridávať fotografické ID k PGP2 kľúču.\n"
 
 msgid "Such a user ID already exists on this key!\n"
 msgstr ""
 
 msgid "Delete this good signature? (y/N/q)"
-msgstr "Zmaza» tento dobrý podpis? (a/N/u)"
+msgstr "Zmazať tento dobrý podpis? (a/N/u)"
 
 msgid "Delete this invalid signature? (y/N/q)"
-msgstr "Zmaza» tento neplatný podpis? (a/N/u)"
+msgstr "Zmazať tento neplatný podpis? (a/N/u)"
 
 msgid "Delete this unknown signature? (y/N/q)"
-msgstr "Zmaza» tento neznámy podpis? (a/N/u)"
+msgstr "Zmazať tento neznámy podpis? (a/N/u)"
 
 msgid "Really delete this self-signature? (y/N)"
-msgstr "Skutoène zmaza» tento podpis podpísaný sebou samým? (a/N)"
+msgstr "Skutočne zmazať tento podpis podpísaný sebou samým? (a/N)"
 
 #, fuzzy, c-format
 #| msgid "Deleted %d signature.\n"
 msgid "Deleted %d signature.\n"
 msgid_plural "Deleted %d signatures.\n"
-msgstr[0] "Zmazaný %d podpis.\n"
-msgstr[1] "Zmazaný %d podpis.\n"
+msgstr[0] "Zmazaný %d podpis.\n"
+msgstr[1] "Zmazaný %d podpis.\n"
 
 msgid "Nothing deleted.\n"
-msgstr "Niè nebolo zmaznané.\n"
+msgstr "Nič nebolo zmaznané.\n"
 
 #, fuzzy
 msgid "invalid"
-msgstr "neplatný spôsob reprezentácie v ASCII"
+msgstr "neplatný spôsob reprezentácie v ASCII"
 
 #, fuzzy, c-format
 msgid "User ID \"%s\" compacted: %s\n"
-msgstr "U¾ívateµské ID \"%s\" je revokované."
+msgstr "Užívateľské ID \"%s\" je revokované."
 
 #, fuzzy, c-format
 msgid "User ID \"%s\": %d signature removed\n"
 msgid_plural "User ID \"%s\": %d signatures removed\n"
-msgstr[0] "U¾ívateµské ID \"%s\" je revokované."
-msgstr[1] "U¾ívateµské ID \"%s\" je revokované."
+msgstr[0] "Užívateľské ID \"%s\" je revokované."
+msgstr[1] "Užívateľské ID \"%s\" je revokované."
 
 #, fuzzy, c-format
 msgid "User ID \"%s\": already minimized\n"
-msgstr "u¾ívateµské ID \"%s\" je u¾ revokované\n"
+msgstr "užívateľské ID \"%s\" je už revokované\n"
 
 #, fuzzy, c-format
 msgid "User ID \"%s\": already clean\n"
-msgstr "u¾ívateµské ID \"%s\" je u¾ revokované\n"
+msgstr "užívateľské ID \"%s\" je už revokované\n"
 
 msgid ""
 "WARNING: This is a PGP 2.x-style key.  Adding a designated revoker may "
 "cause\n"
 "         some versions of PGP to reject this key.\n"
 msgstr ""
-"VAROVANIE: Toto je PGP2 kµúè. Pridanie fotografického ID mô¾e v niektorých\n"
-"           verziách PGP vies» k odmietnutiu tohoto kµúèa.\n"
+"VAROVANIE: Toto je PGP2 kľúč. Pridanie fotografického ID môže v niektorých\n"
+"           verziách PGP viesť k odmietnutiu tohoto kľúča.\n"
 
 msgid "You may not add a designated revoker to a PGP 2.x-style key.\n"
-msgstr "Nemali by ste pridáva» fotografické ID k PGP2 kµúèu.\n"
+msgstr "Nemali by ste pridávať fotografické ID k PGP2 kľúču.\n"
 
 msgid "Enter the user ID of the designated revoker: "
-msgstr "Vlo¾te identifikátor u¾ívateµa povereného revokáciou: "
+msgstr "Vložte identifikátor užívateľa povereného revokáciou: "
 
 msgid "cannot appoint a PGP 2.x style key as a designated revoker\n"
-msgstr "kµúè vo formáte PGP 2.x nemo¾no poveri» revokáciou\n"
+msgstr "kľúč vo formáte PGP 2.x nemožno poveriť revokáciou\n"
 
 msgid "you cannot appoint a key as its own designated revoker\n"
-msgstr "kµúè nemo¾no poveri» revokáciou ním samým\n"
+msgstr "kľúč nemožno poveriť revokáciou ním samým\n"
 
 #, fuzzy
 msgid "this key has already been designated as a revoker\n"
-msgstr "VAROVANIE: Tento kµúè bol revokovaný jeho urèeným revokátorom/!\n"
+msgstr "VAROVANIE: Tento kľúč bol revokovaný jeho určeným revokátorom/!\n"
 
 msgid "WARNING: appointing a key as a designated revoker cannot be undone!\n"
-msgstr "VAROVANIE: oznaèenie kµúèa ako revokovací u¾ nemô¾e by» zru¹ené!\n"
+msgstr "VAROVANIE: označenie kľúča ako revokovací už nemôže byť zrušené!\n"
 
 #, fuzzy
 msgid ""
 "Are you sure you want to appoint this key as a designated revoker? (y/N) "
-msgstr "Ste si istý, ¾e chcete oznaèi» tento kµúè ako revokovací? (a/N): "
+msgstr "Ste si istý, že chcete označiť tento kľúč ako revokovací? (a/N): "
 
 #, fuzzy
 msgid ""
 "Are you sure you want to change the expiration time for multiple subkeys? (y/"
 "N) "
-msgstr "Ste si istý, ¾e chcete oznaèi» tento kµúè ako revokovací? (a/N): "
+msgstr "Ste si istý, že chcete označiť tento kľúč ako revokovací? (a/N): "
 
 #, fuzzy
 msgid "Changing expiration time for a subkey.\n"
-msgstr "Mením dobu platnosti sekundárneho kµúèa.\n"
+msgstr "Mením dobu platnosti sekundárneho kľúča.\n"
 
 msgid "Changing expiration time for the primary key.\n"
-msgstr "Mením dobu platnosti primárneho kµúèa.\n"
+msgstr "Mením dobu platnosti primárneho kľúča.\n"
 
 msgid "You can't change the expiration date of a v3 key\n"
-msgstr "Nemô¾ete zmeni» dobu platnosti kµúèa verzie 3\n"
+msgstr "Nemôžete zmeniť dobu platnosti kľúča verzie 3\n"
 
 #, fuzzy, c-format
 msgid "signing subkey %s is already cross-certified\n"
-msgstr "VAROVANIE: podpisovací podkµúè %08lX nie je krí¾ovo certifikovaný\n"
+msgstr "VAROVANIE: podpisovací podkľúč %08lX nie je krížovo certifikovaný\n"
 
 #, c-format
 msgid "subkey %s does not sign and so does not need to be cross-certified\n"
 msgstr ""
 
 msgid "Please select exactly one user ID.\n"
-msgstr "Prosím, vyberte práve jedno id u¾ívateµa.\n"
+msgstr "Prosím, vyberte práve jedno id užívateľa.\n"
 
 #, fuzzy, c-format
 msgid "skipping v3 self-signature on user ID \"%s\"\n"
-msgstr "preskoèený v3 podpis kµúèa ním samým u u¾ívateµského id \"%s\"\n"
+msgstr "preskočený v3 podpis kľúča ním samým u užívateľského id \"%s\"\n"
 
 msgid "Enter your preferred keyserver URL: "
 msgstr ""
 
 #, fuzzy
 msgid "Are you sure you want to replace it? (y/N) "
-msgstr "Ste si istý, ¾e ho chcete pou¾i»? (a/N) "
+msgstr "Ste si istý, že ho chcete použiť? (a/N) "
 
 #, fuzzy
 msgid "Are you sure you want to delete it? (y/N) "
-msgstr "Ste si istý, ¾e ho chcete pou¾i»? (a/N) "
+msgstr "Ste si istý, že ho chcete použiť? (a/N) "
 
 #, fuzzy
 msgid "Enter the notation: "
-msgstr "Podpisová notácia: "
+msgstr "Podpisová notácia: "
 
 #, fuzzy
 msgid "Proceed? (y/N) "
-msgstr "Prepísa» (a/N)? "
+msgstr "Prepísať (a/N)? "
 
 #, c-format
 msgid "No user ID with index %d\n"
-msgstr "Neexistuje identifikátor u¾ívateµa s indexom %d\n"
+msgstr "Neexistuje identifikátor užívateľa s indexom %d\n"
 
 #, fuzzy, c-format
 msgid "No user ID with hash %s\n"
-msgstr "Neexistuje identifikátor u¾ívateµa s indexom %d\n"
+msgstr "Neexistuje identifikátor užívateľa s indexom %d\n"
 
 #, fuzzy, c-format
 msgid "No subkey with key ID '%s'.\n"
-msgstr "Neexistuje identifikátor u¾ívateµa s indexom %d\n"
+msgstr "Neexistuje identifikátor užívateľa s indexom %d\n"
 
 #, fuzzy, c-format
 msgid "No subkey with index %d\n"
-msgstr "Neexistuje identifikátor u¾ívateµa s indexom %d\n"
+msgstr "Neexistuje identifikátor užívateľa s indexom %d\n"
 
 #, fuzzy, c-format
 msgid "user ID: \"%s\"\n"
-msgstr "id u¾ívateµa: \""
+msgstr "id užívateľa: \""
 
 #, fuzzy, c-format
 msgid "signed by your key %s on %s%s%s\n"
-msgstr "   podpísané %08lX v %s%s%s\n"
+msgstr "   podpísané %08lX v %s%s%s\n"
 
 msgid " (non-exportable)"
-msgstr " (nexeportovateµné)"
+msgstr " (nexeportovateľné)"
 
 #, c-format
 msgid "This signature expired on %s.\n"
-msgstr "Platnos» podpisu vypr¹í %s.\n"
+msgstr "Platnosť podpisu vyprší %s.\n"
 
 msgid "Are you sure you still want to revoke it? (y/N) "
-msgstr "Ste si istý, ¾e ho chcete stále revokova»? (a/N) "
+msgstr "Ste si istý, že ho chcete stále revokovať? (a/N) "
 
 msgid "Create a revocation certificate for this signature? (y/N) "
-msgstr "Vytvori» pre tento podpis revokaèný certifikát? (a/N)"
+msgstr "Vytvoriť pre tento podpis revokačný certifikát? (a/N)"
 
 #, fuzzy
 msgid "Not signed by you.\n"
-msgstr "   podpísané %08lX v %s%s\n"
+msgstr "   podpísané %08lX v %s%s\n"
 
 #, fuzzy, c-format
 msgid "You have signed these user IDs on key %s:\n"
-msgstr "Podpísali ste nasledujúce identifikátory u¾ívateµa:\n"
+msgstr "Podpísali ste nasledujúce identifikátory užívateľa:\n"
 
 #, fuzzy
 msgid " (non-revocable)"
-msgstr " (nexeportovateµné)"
+msgstr " (nexeportovateľné)"
 
 #, fuzzy, c-format
 msgid "revoked by your key %s on %s\n"
-msgstr "   revokované %08lX v %s\n"
+msgstr "   revokované %08lX v %s\n"
 
 msgid "You are about to revoke these signatures:\n"
-msgstr "Chystáte sa revokova» tieto podpisy:\n"
+msgstr "Chystáte sa revokovať tieto podpisy:\n"
 
 msgid "Really create the revocation certificates? (y/N) "
-msgstr "Skutoène vytvori» revokaèné certifikáty? (a/N) "
+msgstr "Skutočne vytvoriť revokačné certifikáty? (a/N) "
 
 msgid "no secret key\n"
-msgstr "neexistuje tajný kµúè\n"
+msgstr "neexistuje tajný kľúč\n"
 
 #, c-format
 msgid "tried to revoke a non-user ID: %s\n"
@@ -3884,61 +3897,61 @@ msgstr ""
 
 #, c-format
 msgid "user ID \"%s\" is already revoked\n"
-msgstr "u¾ívateµské ID \"%s\" je u¾ revokované\n"
+msgstr "užívateľské ID \"%s\" je už revokované\n"
 
 #, c-format
 msgid "WARNING: a user ID signature is dated %d seconds in the future\n"
-msgstr "VAROVANIE: podpis pou¾ivateµkého ID vznikol %d sekund v budúcnosti\n"
+msgstr "VAROVANIE: podpis použivateľkého ID vznikol %d sekund v budúcnosti\n"
 
 #, fuzzy, c-format
 msgid "Key %s is already revoked.\n"
-msgstr "u¾ívateµské ID \"%s\" je u¾ revokované\n"
+msgstr "užívateľské ID \"%s\" je už revokované\n"
 
 #, fuzzy, c-format
 msgid "Subkey %s is already revoked.\n"
-msgstr "u¾ívateµské ID \"%s\" je u¾ revokované\n"
+msgstr "užívateľské ID \"%s\" je už revokované\n"
 
 #, fuzzy, c-format
 msgid "Displaying %s photo ID of size %ld for key %s (uid %d)\n"
 msgstr ""
-"Zobrazujem %s fotografické ID s veµkos»ou %ld pre kµúè 0x%08lX (uid %d)\n"
+"Zobrazujem %s fotografické ID s veľkosťou %ld pre kľúč 0x%08lX (uid %d)\n"
 
 #, fuzzy, c-format
 msgid "preference '%s' duplicated\n"
-msgstr "duplicita predvoµby %c%lu\n"
+msgstr "duplicita predvoľby %c%lu\n"
 
 #, fuzzy
 msgid "too many cipher preferences\n"
-msgstr "príli¹ veµa `%c' predvolieb\n"
+msgstr "príliš veľa `%c' predvolieb\n"
 
 #, fuzzy
 msgid "too many digest preferences\n"
-msgstr "príli¹ veµa `%c' predvolieb\n"
+msgstr "príliš veľa `%c' predvolieb\n"
 
 #, fuzzy
 msgid "too many compression preferences\n"
-msgstr "príli¹ veµa `%c' predvolieb\n"
+msgstr "príliš veľa `%c' predvolieb\n"
 
 #, fuzzy, c-format
 msgid "invalid item '%s' in preference string\n"
-msgstr "neplatný znak v re»azci s predvoµbami\n"
+msgstr "neplatný znak v reťazci s predvoľbami\n"
 
 msgid "writing direct signature\n"
-msgstr "zapisujem podpis kµúèa ním samým (direct signature)\n"
+msgstr "zapisujem podpis kľúča ním samým (direct signature)\n"
 
 msgid "writing self signature\n"
-msgstr "zapisujem podpis kµúèa sebou samým\n"
+msgstr "zapisujem podpis kľúča sebou samým\n"
 
 msgid "writing key binding signature\n"
 msgstr "zapisujem \"key-binding\" podpis\n"
 
 #, c-format
 msgid "keysize invalid; using %u bits\n"
-msgstr "neplatná då¾ka kµúèa; pou¾ijem %u bitov\n"
+msgstr "neplatná dĺžka kľúÄ\8da; použijem %u bitov\n"
 
 #, c-format
 msgid "keysize rounded up to %u bits\n"
-msgstr "då¾ka kµúèa zaokrúhlená na %u bitov\n"
+msgstr "dĺžka kľúča zaokrúhlená na %u bitov\n"
 
 msgid ""
 "WARNING: some OpenPGP programs can't handle a DSA key with this digest size\n"
@@ -3953,7 +3966,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Encrypt"
-msgstr "¹ifrova» dáta"
+msgstr "šifrovať dáta"
 
 msgid "Authenticate"
 msgstr ""
@@ -3984,7 +3997,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "   (%c) Toggle the encrypt capability\n"
-msgstr "   (%d) ElGamal (len na ¹ifrovanie)\n"
+msgstr "   (%d) ElGamal (len na šifrovanie)\n"
 
 #, c-format
 msgid "   (%c) Toggle the authenticate capability\n"
@@ -3995,15 +4008,15 @@ msgid "   (%c) Finished\n"
 msgstr ""
 
 msgid "Please select what kind of key you want:\n"
-msgstr "Prosím, vyberte druh kµúèa, ktorý chcete:\n"
+msgstr "Prosím, vyberte druh kľúča, ktorý chcete:\n"
 
 #, fuzzy, c-format
 msgid "   (%d) RSA and RSA (default)\n"
-msgstr "   (%d) DSA a ElGamal (implicitný)\n"
+msgstr "   (%d) DSA a ElGamal (implicitný)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) DSA and Elgamal\n"
-msgstr "   (%d) DSA a ElGamal (implicitný)\n"
+msgstr "   (%d) DSA a ElGamal (implicitný)\n"
 
 #, c-format
 msgid "   (%d) DSA (sign only)\n"
@@ -4015,23 +4028,23 @@ msgstr "   (%d) RSA (len na podpis)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) Elgamal (encrypt only)\n"
-msgstr "   (%d) ElGamal (len na ¹ifrovanie)\n"
+msgstr "   (%d) ElGamal (len na šifrovanie)\n"
 
 #, c-format
 msgid "   (%d) RSA (encrypt only)\n"
-msgstr "   (%d) RSA (len na ¹ifrovanie)\n"
+msgstr "   (%d) RSA (len na šifrovanie)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) DSA (set your own capabilities)\n"
-msgstr "   (%d) RSA (len na ¹ifrovanie)\n"
+msgstr "   (%d) RSA (len na šifrovanie)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) RSA (set your own capabilities)\n"
-msgstr "   (%d) RSA (len na ¹ifrovanie)\n"
+msgstr "   (%d) RSA (len na šifrovanie)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) ECC and ECC\n"
-msgstr "   (%d) DSA a ElGamal (implicitný)\n"
+msgstr "   (%d) DSA a ElGamal (implicitný)\n"
 
 #, fuzzy, c-format
 #| msgid "   (%d) DSA (sign only)\n"
@@ -4040,32 +4053,32 @@ msgstr "   (%d) DSA (len na podpis)\n"
 
 #, fuzzy, c-format
 msgid "  (%d) ECC (set your own capabilities)\n"
-msgstr "   (%d) RSA (len na ¹ifrovanie)\n"
+msgstr "   (%d) RSA (len na šifrovanie)\n"
 
 #, fuzzy, c-format
 #| msgid "   (%d) RSA (encrypt only)\n"
 msgid "  (%d) ECC (encrypt only)\n"
-msgstr "   (%d) RSA (len na ¹ifrovanie)\n"
+msgstr "   (%d) RSA (len na šifrovanie)\n"
 
 #, fuzzy, c-format
 msgid "  (%d) Existing key\n"
-msgstr "   (%d) RSA (len na ¹ifrovanie)\n"
+msgstr "   (%d) RSA (len na šifrovanie)\n"
 
 #, fuzzy
 msgid "Enter the keygrip: "
-msgstr "Podpisová notácia: "
+msgstr "Podpisová notácia: "
 
 msgid "Not a valid keygrip (expecting 40 hex digits)\n"
 msgstr ""
 
 #, fuzzy
 msgid "No key with this keygrip\n"
-msgstr "Neexistuje identifikátor u¾ívateµa s indexom %d\n"
+msgstr "Neexistuje identifikátor užívateľa s indexom %d\n"
 
 #, fuzzy, c-format
 #| msgid "rounded up to %u bits\n"
 msgid "rounded to %u bits\n"
-msgstr "zaokrúhlené na %u bitov\n"
+msgstr "zaokrúhlené na %u bitov\n"
 
 #, c-format
 msgid "%s keys may be between %u and %u bits long.\n"
@@ -4073,20 +4086,20 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "What keysize do you want for the subkey? (%u) "
-msgstr "Akú veµkos» kµúèa si prajete? (1024) "
+msgstr "Akú veľkosť kľúča si prajete? (1024) "
 
 #, fuzzy, c-format
 msgid "What keysize do you want? (%u) "
-msgstr "Akú veµkos» kµúèa si prajete? (1024) "
+msgstr "Akú veľkosť kľúča si prajete? (1024) "
 
 #, c-format
 msgid "Requested keysize is %u bits\n"
-msgstr "Po¾adovaná då¾ka kµúèa je %u bitov.\n"
+msgstr "Požadovaná dĺžka kľúča je %u bitov.\n"
 
 #, fuzzy
 #| msgid "Please select what kind of key you want:\n"
 msgid "Please select which elliptic curve you want:\n"
-msgstr "Prosím, vyberte druh kµúèa, ktorý chcete:\n"
+msgstr "Prosím, vyberte druh kľúča, ktorý chcete:\n"
 
 msgid ""
 "Please specify how long the key should be valid.\n"
@@ -4096,12 +4109,12 @@ msgid ""
 "      <n>m = key expires in n months\n"
 "      <n>y = key expires in n years\n"
 msgstr ""
-"Prosím urète, ako dlho by mal kµúè platit.\n"
-"         0 = doba platnosti kµúèa nie je obmedzená\n"
-"      <n>  = doba platnosti kµúèa skonèí za n dní\n"
-"      <n>w = doba platnosti kµúèa skonèí za n tý¾dòov\n"
-"      <n>m = doba platnosti kµúèa skonèí za n mesiacov\n"
-"      <n>y = doba platnosti kµúèa skonèí za n rokov\n"
+"Prosím určte, ako dlho by mal kľúč platit.\n"
+"         0 = doba platnosti kľúča nie je obmedzená\n"
+"      <n>  = doba platnosti kľúča skončí za n dní\n"
+"      <n>w = doba platnosti kľúča skončí za n týždňov\n"
+"      <n>m = doba platnosti kľúča skončí za n mesiacov\n"
+"      <n>y = doba platnosti kľúča skončí za n rokov\n"
 
 msgid ""
 "Please specify how long the signature should be valid.\n"
@@ -4111,49 +4124,49 @@ msgid ""
 "      <n>m = signature expires in n months\n"
 "      <n>y = signature expires in n years\n"
 msgstr ""
-"Prosím urète, ako dlho by mal podpis platit.\n"
-"         0 = doba platnosti podpisu nie je onmedzená\n"
-"      <n>  = doba platnosti podpisu skonèí za n dní\n"
-"      <n>w = doba platnosti podpisu skonèí za n tý¾dòov\n"
-"      <n>m = doba platnosti podpisu skonèí za n mesiacov\n"
-"      <n>y = doba platnosti podpisu skonèí za n rokov\n"
+"Prosím určte, ako dlho by mal podpis platit.\n"
+"         0 = doba platnosti podpisu nie je onmedzená\n"
+"      <n>  = doba platnosti podpisu skončí za n dní\n"
+"      <n>w = doba platnosti podpisu skončí za n týždňov\n"
+"      <n>m = doba platnosti podpisu skončí za n mesiacov\n"
+"      <n>y = doba platnosti podpisu skončí za n rokov\n"
 
 msgid "Key is valid for? (0) "
-msgstr "Kµúè je platný na? (0) "
+msgstr "Kľúč je platný na? (0) "
 
 #, fuzzy, c-format
 msgid "Signature is valid for? (%s) "
-msgstr "Podpis je platný na? (0) "
+msgstr "Podpis je platný na? (0) "
 
 msgid "invalid value\n"
-msgstr "neplatná hodnota\n"
+msgstr "neplatná hodnota\n"
 
 #, fuzzy
 msgid "Key does not expire at all\n"
-msgstr "platnos» %s neskonèí\n"
+msgstr "platnosť %s neskončí\n"
 
 #, fuzzy
 msgid "Signature does not expire at all\n"
-msgstr "platnos» %s neskonèí\n"
+msgstr "platnosť %s neskončí\n"
 
 #, fuzzy, c-format
 msgid "Key expires at %s\n"
-msgstr "platnos» %s skonèí %s\n"
+msgstr "platnosť %s skončí %s\n"
 
 #, fuzzy, c-format
 msgid "Signature expires at %s\n"
-msgstr "Platnos» podpisu vypr¹í %s\n"
+msgstr "Platnosť podpisu vyprší %s\n"
 
 msgid ""
 "Your system can't display dates beyond 2038.\n"
 "However, it will be correctly handled up to 2106.\n"
 msgstr ""
-"Vá¹ systém nevie zobrazi» dátumy po roku 2038.\n"
-"V ka¾dom prípade budú dátumy korektne spracovávané do roku 2106.\n"
+"Váš systém nevie zobraziť dátumy po roku 2038.\n"
+"V každom prípade budú dátumy korektne spracovávané do roku 2106.\n"
 
 #, fuzzy
 msgid "Is this correct? (y/N) "
-msgstr "Je to správne (a/n)? "
+msgstr "Je to správne (a/n)? "
 
 msgid ""
 "\n"
@@ -4175,8 +4188,8 @@ msgid ""
 "\n"
 msgstr ""
 "\n"
-"Aby bolo mo¾né rozpozna» Vá¹ kµúè, musíte pozna» identifikátor u¾ívateµa;\n"
-"program ho zlo¾í z Vá¹ho mena a priezviska, komentára a e-mailu v tomto "
+"Aby bolo možné rozpoznať Váš kľúč, musíte poznať identifikátor užívateľa;\n"
+"program ho zloží z Vášho mena a priezviska, komentára a e-mailu v tomto "
 "tvare:\n"
 "    \"Jozko Mrkvicka (student) <jozko@mrkvicka.sk>\"\n"
 "\n"
@@ -4185,34 +4198,34 @@ msgid "Real name: "
 msgstr "Meno a priezvisko: "
 
 msgid "Invalid character in name\n"
-msgstr "Neplatný znak ve mene\n"
+msgstr "Neplatný znak ve mene\n"
 
 #, c-format
 msgid "The characters '%s' and '%s' may not appear in name\n"
 msgstr ""
 
 msgid "Name may not start with a digit\n"
-msgstr "Meno nemô¾e zaèína» èíslicou\n"
+msgstr "Meno nemôže začínať číslicou\n"
 
 msgid "Name must be at least 5 characters long\n"
-msgstr "Meno musí by» dlhé aspoò 5 znakov\n"
+msgstr "Meno musí byť dlhé aspoň 5 znakov\n"
 
 msgid "Email address: "
-msgstr "E-mailová adresa: "
+msgstr "E-mailová adresa: "
 
 msgid "Not a valid email address\n"
-msgstr "Neplatná e-mailová adresa\n"
+msgstr "Neplatná e-mailová adresa\n"
 
 msgid "Comment: "
-msgstr "Komentár: "
+msgstr "Komentár: "
 
 msgid "Invalid character in comment\n"
-msgstr "Neplatný znak v komentári\n"
+msgstr "Neplatný znak v komentári\n"
 
 #, fuzzy, c-format
 #| msgid "You are using the `%s' character set.\n"
 msgid "You are using the '%s' character set.\n"
-msgstr "Pou¾ívate znakovú sadu `%s'.\n"
+msgstr "Používate znakovú sadu `%s'.\n"
 
 #, c-format
 msgid ""
@@ -4220,12 +4233,12 @@ msgid ""
 "    \"%s\"\n"
 "\n"
 msgstr ""
-"Zvolili ste tento identifikátor u¾ívateµa:\n"
+"Zvolili ste tento identifikátor užívateľa:\n"
 "    \"%s\"\n"
 "\n"
 
 msgid "Please don't put the email address into the real name or the comment\n"
-msgstr "Do poµa meno alebo komentár nepí¹te, prosím, e-mailovú adresu.\n"
+msgstr "Do poľa meno alebo komentár nepíšte, prosím, e-mailovú adresu.\n"
 
 #. TRANSLATORS: These are the allowed answers in
 #. lower and uppercase.  Below you will find the matching
@@ -4242,23 +4255,23 @@ msgid "NnCcEeOoQq"
 msgstr "mMkKeEPpUu"
 
 msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
-msgstr "Zmeni» (M)eno, (K)omentár, (E)-mail alebo (U)konèi»? "
+msgstr "Zmeniť (M)eno, (K)omentár, (E)-mail alebo (U)končiť? "
 
 msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
-msgstr "Zmeni» (M)eno, (K)omentár, (E)-mail alebo (P)okraèova»/(U)konèi»? "
+msgstr "Zmeniť (M)eno, (K)omentár, (E)-mail alebo (P)okračovať/(U)končiť? "
 
 #, fuzzy
 #| msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
 msgid "Change (N)ame, (E)mail, or (Q)uit? "
-msgstr "Zmeni» (M)eno, (K)omentár, (E)-mail alebo (U)konèi»? "
+msgstr "Zmeniť (M)eno, (K)omentár, (E)-mail alebo (U)končiť? "
 
 #, fuzzy
 #| msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
 msgid "Change (N)ame, (E)mail, or (O)kay/(Q)uit? "
-msgstr "Zmeni» (M)eno, (K)omentár, (E)-mail alebo (P)okraèova»/(U)konèi»? "
+msgstr "Zmeniť (M)eno, (K)omentár, (E)-mail alebo (P)okračovať/(U)končiť? "
 
 msgid "Please correct the error first\n"
-msgstr "Najskôr, prosím, opravte chybu\n"
+msgstr "Najskôr, prosím, opravte chybu\n"
 
 msgid ""
 "We need to generate a lot of random bytes. It is a good idea to perform\n"
@@ -4266,14 +4279,14 @@ msgid ""
 "disks) during the prime generation; this gives the random number\n"
 "generator a better chance to gain enough entropy.\n"
 msgstr ""
-"Je potrebné vytvori» veµa náhodných bajtov. Poèas vytvárania mô¾ete\n"
-"vykonáva» inú prácu na poèítaèi (písa» na klávesnici, pohybova» my¹ou,\n"
-"pou¾íva» disky); vïaka tomu má generátor lep¹iu ¹ancu získa» dostatok "
+"Je potrebné vytvoriÅ¥ veľa náhodných bajtov. PoÄ\8das vytvárania môžete\n"
+"vykonávať inú prácu na počítači (písať na klávesnici, pohybovať myšou,\n"
+"používať disky); vďaka tomu má generátor lepšiu šancu získať dostatok "
 "entropie.\n"
 
 #, c-format
 msgid "Key generation failed: %s\n"
-msgstr "Vytvorenie kµúèa sa nepodarilo: %s\n"
+msgstr "Vytvorenie kľúča sa nepodarilo: %s\n"
 
 #, c-format
 msgid ""
@@ -4287,117 +4300,117 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "A key for \"%s\" already exists\n"
-msgstr "`%s' je u¾ skomprimovaný\n"
+msgstr "`%s' je už skomprimovaný\n"
 
 #, fuzzy
 msgid "Create anyway? (y/N) "
-msgstr "Pou¾i» napriek tomu tento kµúè? "
+msgstr "Použiť napriek tomu tento kľúč? "
 
 #, fuzzy
 msgid "creating anyway\n"
-msgstr "vytvori» nový pár kµúèov"
+msgstr "vytvoriť nový pár kľúčov"
 
 #, c-format
 msgid "Note: Use \"%s %s\" for a full featured key generation dialog.\n"
 msgstr ""
 
 msgid "Key generation canceled.\n"
-msgstr "Vytváranie kµúèa bolo zru¹ené.\n"
+msgstr "Vytváranie kľúča bolo zrušené.\n"
 
 #, fuzzy, c-format
 msgid "can't create backup file '%s': %s\n"
-msgstr "nemô¾em vytvori» `%s': %s\n"
+msgstr "nemôžem vytvoriť `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "Note: backup of card key saved to '%s'\n"
-msgstr "POZNÁMKA: platnos» tajného kµúèa %08lX skonèila %s\n"
+msgstr "POZNÁMKA: platnosť tajného kľúča %08lX skončila %s\n"
 
 #, fuzzy, c-format
 #| msgid "writing public key to `%s'\n"
 msgid "writing public key to '%s'\n"
-msgstr "zapisujem verejný kµúè do `%s'\n"
+msgstr "zapisujem verejný kľúč do `%s'\n"
 
 #, c-format
 msgid "no writable public keyring found: %s\n"
-msgstr "nenájdený zapisovateµný súbor verejných kµúèov (pubring): %s\n"
+msgstr "nenájdený zapisovateľný súbor verejných kľúčov (pubring): %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing public keyring `%s': %s\n"
 msgid "error writing public keyring '%s': %s\n"
-msgstr "chyba pri zápise do súboru verejných kµúèov `%s': %s\n"
+msgstr "chyba pri zápise do súboru verejných kľúčov `%s': %s\n"
 
 msgid "public and secret key created and signed.\n"
-msgstr "verejný a tajný kµúè boli vytvorené a podpísané.\n"
+msgstr "verejný a tajný kľúč boli vytvorené a podpísané.\n"
 
 #, fuzzy
 msgid ""
 "Note that this key cannot be used for encryption.  You may want to use\n"
 "the command \"--edit-key\" to generate a subkey for this purpose.\n"
 msgstr ""
-"Tento kµúè nemô¾e by» pou¾itý na ¹ifrovanie. Pre vytvorenie\n"
-"sekundárneho kµúèa na tento úèel mô¾ete pou¾i» príkaz \"--edit-key\".\n"
+"Tento kľúč nemôže byť použitý na šifrovanie. Pre vytvorenie\n"
+"sekundárneho kľúča na tento účel môžete použiť príkaz \"--edit-key\".\n"
 
 #, c-format
 msgid ""
 "key has been created %lu second in future (time warp or clock problem)\n"
 msgstr ""
-"kµúè bol vytvorený %lu sekund v budúcnosti (do¹lo k zmene èasu alebo\n"
-"je problém so systémovým èasom)\n"
+"kľúč bol vytvorený %lu sekund v budúcnosti (došlo k zmene času alebo\n"
+"je problém so systémovým časom)\n"
 
 #, c-format
 msgid ""
 "key has been created %lu seconds in future (time warp or clock problem)\n"
 msgstr ""
-"kµúè bol vytvorený %lu sekund v budúcnosti (do¹lo k zmene èasu alebo\n"
-"je problém so systémovým èasom)\n"
+"kľúč bol vytvorený %lu sekund v budúcnosti (došlo k zmene času alebo\n"
+"je problém so systémovým časom)\n"
 
 #, fuzzy
 #| msgid "NOTE: creating subkeys for v3 keys is not OpenPGP compliant\n"
 msgid "Note: creating subkeys for v3 keys is not OpenPGP compliant\n"
-msgstr "POZNÁMKA: vytvorenie podkµúèa pre kµúèe v3 nie je v súlade s OpenPGP\n"
+msgstr "POZNÁMKA: vytvorenie podkľúča pre kľúče v3 nie je v súlade s OpenPGP\n"
 
 msgid "Secret parts of primary key are not available.\n"
-msgstr "Tajné èasti primárneho kµúèa nie sú dostupné.\n"
+msgstr "Tajné časti primárneho kľúča nie sú dostupné.\n"
 
 #, fuzzy
 msgid "Secret parts of primary key are stored on-card.\n"
-msgstr "Tajné èasti primárneho kµúèa nie sú dostupné.\n"
+msgstr "Tajné časti primárneho kľúča nie sú dostupné.\n"
 
 #, fuzzy
 msgid "Really create? (y/N) "
-msgstr "Skutoène vytvori»? "
+msgstr "Skutočne vytvoriť? "
 
 msgid "never     "
 msgstr "nikdy     "
 
 msgid "Critical signature policy: "
-msgstr "Kritická podpisová politika: "
+msgstr "Kritická podpisová politika: "
 
 msgid "Signature policy: "
-msgstr "Podpisová politika: "
+msgstr "Podpisová politika: "
 
 msgid "Critical preferred keyserver: "
 msgstr ""
 
 msgid "Critical signature notation: "
-msgstr "Kritická podpisová notácia: "
+msgstr "Kritická podpisová notácia: "
 
 msgid "Signature notation: "
-msgstr "Podpisová notácia: "
+msgstr "Podpisová notácia: "
 
 #, fuzzy, c-format
 #| msgid "%d bad signatures\n"
 msgid "%d good signature\n"
 msgid_plural "%d good signatures\n"
-msgstr[0] "%d zlých podpisov\n"
-msgstr[1] "%d zlých podpisov\n"
+msgstr[0] "%d zlých podpisov\n"
+msgstr[1] "%d zlých podpisov\n"
 
 #, fuzzy, c-format
 #| msgid "1 signature not checked due to an error\n"
 msgid "%d signature not checked due to an error\n"
 msgid_plural "%d signatures not checked due to errors\n"
-msgstr[0] "1 podpis neoverený, preto¾e vznikla chyba\n"
-msgstr[1] "1 podpis neoverený, preto¾e vznikla chyba\n"
+msgstr[0] "1 podpis neoverený, pretože vznikla chyba\n"
+msgstr[1] "1 podpis neoverený, pretože vznikla chyba\n"
 
 #, c-format
 msgid "Warning: %lu key skipped due to its large size\n"
@@ -4406,38 +4419,38 @@ msgstr[0] ""
 msgstr[1] ""
 
 msgid "Keyring"
-msgstr "súbor kµúèov (keyring)"
+msgstr "súbor kľúčov (keyring)"
 
 msgid "Primary key fingerprint:"
-msgstr "Primárny fingerprint kµúèa:"
+msgstr "Primárny fingerprint kľúča:"
 
 msgid "     Subkey fingerprint:"
-msgstr "     Fingerprint podkµúèa:"
+msgstr "     Fingerprint podkľúča:"
 
 #. TRANSLATORS: this should fit into 24 bytes so that the
 #. * fingerprint data is properly aligned with the user ID
 msgid " Primary key fingerprint:"
-msgstr " Primárny fingerprint kµúèa:"
+msgstr " Primárny fingerprint kľúča:"
 
 msgid "      Subkey fingerprint:"
-msgstr "      Fingerprint podkµúèa:"
+msgstr "      Fingerprint podkľúča:"
 
 #, fuzzy
 msgid "      Key fingerprint ="
-msgstr "   Fingerprint kµúèa ="
+msgstr "   Fingerprint kľúča ="
 
 msgid "      Card serial no. ="
 msgstr ""
 
 #, fuzzy, c-format
 msgid "caching keyring '%s'\n"
-msgstr "kontrolujem súbor kµúèov (keyring) `%s'\n"
+msgstr "kontrolujem súbor kľúčov (keyring) `%s'\n"
 
 #, fuzzy, c-format
 msgid "%lu keys cached so far (%lu signature)\n"
 msgid_plural "%lu keys cached so far (%lu signatures)\n"
-msgstr[0] "%lu kµúèov skontrolovaných (%lu podpisov)\n"
-msgstr[1] "%lu kµúèov skontrolovaných (%lu podpisov)\n"
+msgstr[0] "%lu kľúčov skontrolovaných (%lu podpisov)\n"
+msgstr[1] "%lu kľúčov skontrolovaných (%lu podpisov)\n"
 
 #, c-format
 msgid "%lu key cached"
@@ -4449,12 +4462,12 @@ msgstr[1] ""
 #| msgid "1 bad signature\n"
 msgid " (%lu signature)\n"
 msgid_plural " (%lu signatures)\n"
-msgstr[0] "1 zlý podpis\n"
-msgstr[1] "1 zlý podpis\n"
+msgstr[0] "1 zlý podpis\n"
+msgstr[1] "1 zlý podpis\n"
 
 #, c-format
 msgid "%s: keyring created\n"
-msgstr "%s: súbor kµúèov (keyring) vytvorený\n"
+msgstr "%s: súbor kľúčov (keyring) vytvorený\n"
 
 msgid "override proxy options set for dirmngr"
 msgstr ""
@@ -4473,7 +4486,7 @@ msgstr ""
 
 #, fuzzy
 msgid "honor the preferred keyserver URL set on the key"
-msgstr "zadané URL pre podpisovú politiku je neplatné\n"
+msgstr "zadané URL pre podpisovú politiku je neplatné\n"
 
 msgid "honor the PKA record set on a key when retrieving keys"
 msgstr ""
@@ -4487,7 +4500,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid keyserver protocol (us %d!=handler %d)\n"
-msgstr "neplatný parameter pre export\n"
+msgstr "neplatný parameter pre export\n"
 
 #, c-format
 msgid "\"%s\" not a key ID: skipping\n"
@@ -4496,183 +4509,183 @@ msgstr ""
 #, fuzzy, c-format
 msgid "refreshing %d key from %s\n"
 msgid_plural "refreshing %d keys from %s\n"
-msgstr[0] "po¾adujem kµúè %08lX z %s\n"
-msgstr[1] "po¾adujem kµúè %08lX z %s\n"
+msgstr[0] "požadujem kľúč %08lX z %s\n"
+msgstr[1] "požadujem kľúč %08lX z %s\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unable to refresh key %s via %s: %s\n"
-msgstr "VAROVANIE: nemô¾em vymaza» doèasný súbor (%s) `%s': %s\n"
+msgstr "VAROVANIE: nemôžem vymazať dočasný súbor (%s) `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "key \"%s\" not found on keyserver\n"
-msgstr "kµúè `%s' nebol nájdený: %s\n"
+msgstr "kľúč `%s' nebol nájdený: %s\n"
 
 #, fuzzy
 msgid "key not found on keyserver\n"
-msgstr "kµúè `%s' nebol nájdený: %s\n"
+msgstr "kľúč `%s' nebol nájdený: %s\n"
 
 msgid "no keyserver known (use option --keyserver)\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "requesting key %s from %s server %s\n"
-msgstr "po¾adujem kµúè %08lX z %s\n"
+msgstr "požadujem kľúč %08lX z %s\n"
 
 #, fuzzy, c-format
 msgid "requesting key %s from %s\n"
-msgstr "po¾adujem kµúè %08lX z %s\n"
+msgstr "požadujem kľúč %08lX z %s\n"
 
 #, fuzzy
 msgid "no keyserver known\n"
-msgstr "neplatný parameter pre export\n"
+msgstr "neplatný parameter pre export\n"
 
 #, fuzzy, c-format
 msgid "skipped \"%s\": %s\n"
-msgstr "preskoèený `%s': %s\n"
+msgstr "preskočený `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "sending key %s to %s\n"
 msgstr ""
 "\"\n"
-"podpísané Va¹ím kµúèom %08lX v %s\n"
+"podpísané Vaším kľúčom %08lX v %s\n"
 
 #, fuzzy, c-format
 msgid "requesting key from '%s'\n"
-msgstr "po¾adujem kµúè %08lX z %s\n"
+msgstr "požadujem kľúč %08lX z %s\n"
 
 #, fuzzy, c-format
 msgid "WARNING: unable to fetch URI %s: %s\n"
-msgstr "VAROVANIE: nemô¾em vymaza» doèasný súbor (%s) `%s': %s\n"
+msgstr "VAROVANIE: nemôžem vymazať dočasný súbor (%s) `%s': %s\n"
 
 #, c-format
 msgid "weird size for an encrypted session key (%d)\n"
-msgstr "zvlá¹tna veµkos» ¹ifrovacieho kµúèa pre sedenie (%d)\n"
+msgstr "zvláštna veľkosť šifrovacieho kľúča pre sedenie (%d)\n"
 
 #, c-format
 msgid "%s encrypted session key\n"
-msgstr "%s kµúè ¹ifrovaného sedenia\n"
+msgstr "%s kľúč šifrovaného sedenia\n"
 
 #, fuzzy, c-format
 msgid "passphrase generated with unknown digest algorithm %d\n"
-msgstr "za¹ifrované neznámym algoritmom %d\n"
+msgstr "zašifrované neznámym algoritmom %d\n"
 
 #, fuzzy, c-format
 msgid "public key is %s\n"
-msgstr "verejný kµúè je %08lX\n"
+msgstr "verejný kľúč je %08lX\n"
 
 msgid "public key encrypted data: good DEK\n"
-msgstr "dáta za¹ifrované verejným kµúèom: správny DEK\n"
+msgstr "dáta zašifrované verejným kľúčom: správny DEK\n"
 
 #, fuzzy, c-format
 msgid "encrypted with %u-bit %s key, ID %s, created %s\n"
-msgstr "za¹ifrované %u-bitovým %s kµúèom, ID %08lX, vytvoreným %s\n"
+msgstr "zašifrované %u-bitovým %s kľúčom, ID %08lX, vytvoreným %s\n"
 
 #, fuzzy, c-format
 msgid "      \"%s\"\n"
 msgstr "                alias \""
 
-# Scripte scannen lt. dl1bke auf "ID (0-9A-F)+" deswegen muß "ID" rein :-(
+# Scripte scannen lt. dl1bke auf "ID (0-9A-F)+" deswegen muß "ID" rein :-(
 # [kw]
 #, fuzzy, c-format
 msgid "encrypted with %s key, ID %s\n"
-msgstr "za¹ifrovaná %s kµúèom, ID %08lX\n"
+msgstr "zašifrovaná %s kľúčom, ID %08lX\n"
 
 #, c-format
 msgid "public key decryption failed: %s\n"
-msgstr "de¹ifrovanie verejným kµúèom zlyhalo: %s\n"
+msgstr "dešifrovanie verejným kľúčom zlyhalo: %s\n"
 
 #, c-format
 msgid "encrypted with %lu passphrases\n"
-msgstr "za¹ifrované s %lu heslami\n"
+msgstr "zašifrované s %lu heslami\n"
 
 msgid "encrypted with 1 passphrase\n"
-msgstr "za¹ifrované jedným heslom\n"
+msgstr "zašifrované jedným heslom\n"
 
 #, c-format
 msgid "assuming %s encrypted data\n"
-msgstr "predpokladám %s ¹ifrovaných dát\n"
+msgstr "predpokladám %s šifrovaných dát\n"
 
 #, c-format
 msgid "IDEA cipher unavailable, optimistically attempting to use %s instead\n"
 msgstr ""
-"algoritmus IDEA nie je dostupný; optimisticky sa ho pokúsime nahradi» "
+"algoritmus IDEA nie je dostupný; optimisticky sa ho pokúsime nahradiť "
 "algoritmom %s\n"
 
 msgid "WARNING: message was not integrity protected\n"
-msgstr "VAROVANIE: správa nemá ochranu integrity\n"
+msgstr "VAROVANIE: správa nemá ochranu integrity\n"
 
 msgid "decryption okay\n"
-msgstr "de¹ifrovanie o.k.\n"
+msgstr "dešifrovanie o.k.\n"
 
 msgid "WARNING: encrypted message has been manipulated!\n"
-msgstr "VAROVANIE: so za¹ifrovanou správou bolo manipulované!\n"
+msgstr "VAROVANIE: so zašifrovanou správou bolo manipulované!\n"
 
 #, c-format
 msgid "decryption failed: %s\n"
-msgstr "de¹ifrovanie zlyhalo: %s\n"
+msgstr "dešifrovanie zlyhalo: %s\n"
 
 #, fuzzy
 #| msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
 msgid "Note: sender requested \"for-your-eyes-only\"\n"
-msgstr "POZNÁMKA: odosielateµ po¾adoval (\"for-your-eyes-only\")\n"
+msgstr "POZNÃ\81MKA: odosielateľ požadoval (\"for-your-eyes-only\")\n"
 
 #, c-format
 msgid "original file name='%.*s'\n"
-msgstr "pôvodné meno súboru='%.*s'\n"
+msgstr "pôvodné meno súboru='%.*s'\n"
 
 msgid "WARNING: multiple plaintexts seen\n"
 msgstr ""
 
 msgid "standalone revocation - use \"gpg --import\" to apply\n"
 msgstr ""
-"samostatný revokaèný certifikát -  pou¾ite \"gpg --import\", ak ho chcete "
-"vyu¾i»\n"
+"samostatný revokaÄ\8dný certifikát -  použite \"gpg --import\", ak ho chcete "
+"využiť\n"
 
 #, fuzzy
 msgid "no signature found\n"
-msgstr "Dobrý podpis od \""
+msgstr "Dobrý podpis od \""
 
 #, fuzzy, c-format
 msgid "BAD signature from \"%s\""
-msgstr "ZLÝ podpis od \""
+msgstr "ZLÝ podpis od \""
 
 #, fuzzy, c-format
 msgid "Expired signature from \"%s\""
-msgstr "Podpis s vypr¹anou platnos»ou od \""
+msgstr "Podpis s vypršanou platnosťou od \""
 
 #, fuzzy, c-format
 msgid "Good signature from \"%s\""
-msgstr "Dobrý podpis od \""
+msgstr "Dobrý podpis od \""
 
 msgid "signature verification suppressed\n"
-msgstr "verifikácia podpisu potlaèená\n"
+msgstr "verifikácia podpisu potlačená\n"
 
 #, fuzzy
 msgid "can't handle this ambiguous signature data\n"
-msgstr "neviem pracova» s týmito násobnými podpismi\n"
+msgstr "neviem pracovať s týmito násobnými podpismi\n"
 
 #, fuzzy, c-format
 msgid "Signature made %s\n"
-msgstr "Platnos» podpisu vypr¹ala %s\n"
+msgstr "Platnosť podpisu vypršala %s\n"
 
 #, fuzzy, c-format
 msgid "               using %s key %s\n"
 msgstr "                alias \""
 
-# Scripte scannen lt. dl1bke auf "ID (0-9A-F)+" deswegen muß "ID" rein :-(
+# Scripte scannen lt. dl1bke auf "ID (0-9A-F)+" deswegen muß "ID" rein :-(
 #, fuzzy, c-format
 msgid "Signature made %s using %s key ID %s\n"
-msgstr "Podpis vytvorený %.*s pomocou %s kµúèa ID %08lX\n"
+msgstr "Podpis vytvorený %.*s pomocou %s kľúča ID %08lX\n"
 
 #, fuzzy, c-format
 msgid "               issuer \"%s\"\n"
 msgstr "                alias \""
 
 msgid "Key available at: "
-msgstr "Kµúè k dispozícii na: "
+msgstr "Kľúč k dispozícii na: "
 
 msgid "[uncertain]"
-msgstr "[neistý]  "
+msgstr "[neistý]  "
 
 #, fuzzy, c-format
 msgid "                aka \"%s\""
@@ -4680,30 +4693,30 @@ msgstr "                alias \""
 
 #, c-format
 msgid "Signature expired %s\n"
-msgstr "Platnos» podpisu vypr¹ala %s\n"
+msgstr "Platnosť podpisu vypršala %s\n"
 
 #, c-format
 msgid "Signature expires %s\n"
-msgstr "Platnos» podpisu vypr¹í %s\n"
+msgstr "Platnosť podpisu vyprší %s\n"
 
 #, fuzzy, c-format
 #| msgid "%s signature, digest algorithm %s\n"
 msgid "%s signature, digest algorithm %s%s%s\n"
-msgstr "%s podpis, hashovací algoritmus %s\n"
+msgstr "%s podpis, hashovací algoritmus %s\n"
 
 msgid "binary"
-msgstr "binárne"
+msgstr "binárne"
 
 msgid "textmode"
-msgstr "textový mód"
+msgstr "textový mód"
 
 msgid "unknown"
-msgstr "neznáme"
+msgstr "neznáme"
 
 #, fuzzy
 #| msgid "unknown pubkey algorithm"
 msgid ", key algorithm "
-msgstr "neznámy algoritmus verejného kµúèa"
+msgstr "neznámy algoritmus verejného kľúča"
 
 #, c-format
 msgid "WARNING: not a detached signature; file '%s' was NOT verified!\n"
@@ -4711,203 +4724,203 @@ msgstr ""
 
 #, c-format
 msgid "Can't check signature: %s\n"
-msgstr "Nemô¾em overi» podpis: %s\n"
+msgstr "Nemôžem overiť podpis: %s\n"
 
 msgid "not a detached signature\n"
-msgstr "toto nie je podpis oddelený od dokumentu\n"
+msgstr "toto nie je podpis oddelený od dokumentu\n"
 
 msgid ""
 "WARNING: multiple signatures detected.  Only the first will be checked.\n"
-msgstr "VAROVANIE: Nájdené viacnásobne podpisy. Skontrolovaný bude len prvý.\n"
+msgstr "VAROVANIE: Nájdené viacnásobne podpisy. Skontrolovaný bude len prvý.\n"
 
 #, c-format
 msgid "standalone signature of class 0x%02x\n"
-msgstr "samostatný podpis triedy 0x%02x\n"
+msgstr "samostatný podpis triedy 0x%02x\n"
 
 msgid "old style (PGP 2.x) signature\n"
-msgstr "podpis starého typu (PGP 2.x)\n"
+msgstr "podpis starého typu (PGP 2.x)\n"
 
 #, fuzzy, c-format
 msgid "fstat of '%s' failed in %s: %s\n"
-msgstr "nemo¾no otvori» súbor: %s\n"
+msgstr "nemožno otvoriť súbor: %s\n"
 
 #, fuzzy, c-format
 msgid "fstat(%d) failed in %s: %s\n"
-msgstr "databáza dôvery: procedúra read() (n=%d) zlyhala: %s\n"
+msgstr "databáza dôvery: procedúra read() (n=%d) zlyhala: %s\n"
 
 #, fuzzy, c-format
 msgid "WARNING: using experimental public key algorithm %s\n"
-msgstr "nemô¾em pracova» s algoritmom verejného kµúèa %d\n"
+msgstr "nemôžem pracovať s algoritmom verejného kľúča %d\n"
 
 #, fuzzy
 msgid "WARNING: Elgamal sign+encrypt keys are deprecated\n"
 msgstr ""
-"vy¾iadaný hashovací algoritmus %s (%d) nevyhovuje predvoµbám príjemcu\n"
+"vyžiadaný hashovací algoritmus %s (%d) nevyhovuje predvoľbám príjemcu\n"
 
 #, fuzzy, c-format
 msgid "WARNING: using experimental cipher algorithm %s\n"
-msgstr "¹ifrovací algoritmus nie je implementovaný"
+msgstr "šifrovací algoritmus nie je implementovaný"
 
 #, fuzzy, c-format
 msgid "WARNING: using experimental digest algorithm %s\n"
-msgstr "%s podpis, hashovací algoritmus %s\n"
+msgstr "%s podpis, hashovací algoritmus %s\n"
 
 #, fuzzy, c-format
 msgid "WARNING: digest algorithm %s is deprecated\n"
 msgstr ""
-"vy¾iadaný hashovací algoritmus %s (%d) nevyhovuje predvoµbám príjemcu\n"
+"vyžiadaný hashovací algoritmus %s (%d) nevyhovuje predvoľbám príjemcu\n"
 
 #, fuzzy, c-format
 #| msgid "%s signature, digest algorithm %s\n"
 msgid "Note: signatures using the %s algorithm are rejected\n"
-msgstr "%s podpis, hashovací algoritmus %s\n"
+msgstr "%s podpis, hashovací algoritmus %s\n"
 
 #, fuzzy, c-format
 msgid "(reported error: %s)\n"
-msgstr "chyba pri èítaní: %s\n"
+msgstr "chyba pri čítaní: %s\n"
 
 #, fuzzy, c-format
 msgid "(reported error: %s <%s>)\n"
-msgstr "chyba pri èítaní: %s\n"
+msgstr "chyba pri čítaní: %s\n"
 
 msgid "(further info: "
 msgstr ""
 
 #, c-format
 msgid "%s:%d: deprecated option \"%s\"\n"
-msgstr "%s:%d: pou¾itie parametra \"%s\" sa neodporúèa\n"
+msgstr "%s:%d: použitie parametra \"%s\" sa neodporúča\n"
 
 #, c-format
 msgid "WARNING: \"%s\" is a deprecated option\n"
-msgstr "VAROVÁNÍ: pou¾itie parametra \"%s\" sa neodporúèa\n"
+msgstr "VAROVÁNÍ: použitie parametra \"%s\" sa neodporúča\n"
 
 #, c-format
 msgid "please use \"%s%s\" instead\n"
-msgstr "pou¾ite namiesto neho \"%s%s\" \n"
+msgstr "použite namiesto neho \"%s%s\" \n"
 
 #, fuzzy, c-format
 msgid "WARNING: \"%s\" is a deprecated command - do not use it\n"
-msgstr "VAROVÁNÍ: pou¾itie parametra \"%s\" sa neodporúèa\n"
+msgstr "VAROVÁNÍ: použitie parametra \"%s\" sa neodporúča\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: \"%s\" is obsolete in this file - it only has effect in %s\n"
-msgstr "VAROVÁNÍ: pou¾itie parametra \"%s\" sa neodporúèa\n"
+msgstr "VAROVÁNÍ: použitie parametra \"%s\" sa neodporúča\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: \"%s%s\" is an obsolete option - it has no effect except on %s\n"
-msgstr "VAROVÁNÍ: pou¾itie parametra \"%s\" sa neodporúèa\n"
+msgstr "VAROVÁNÍ: použitie parametra \"%s\" sa neodporúča\n"
 
 msgid "Uncompressed"
-msgstr "Nekomprimované"
+msgstr "Nekomprimované"
 
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 #, fuzzy
 msgid "uncompressed|none"
-msgstr "Nekomprimované"
+msgstr "Nekomprimované"
 
 #, c-format
 msgid "this message may not be usable by %s\n"
-msgstr "táto správa nemusí pou¾iteµná s %s\n"
+msgstr "táto správa nemusí použiteľná s %s\n"
 
 #, fuzzy, c-format
 msgid "ambiguous option '%s'\n"
-msgstr "èítam mo¾nosti z `%s'\n"
+msgstr "Ä\8dítam možnosti z `%s'\n"
 
 #, fuzzy, c-format
 msgid "unknown option '%s'\n"
-msgstr "neznámy implicitný adresát `%s'\n"
+msgstr "neznámy implicitný adresát `%s'\n"
 
 msgid "ECDSA public key is expected to be in SEC encoding multiple of 8 bits\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "unknown weak digest '%s'\n"
-msgstr "neznáma trieda podpisu"
+msgstr "neznáma trieda podpisu"
 
 #, fuzzy, c-format
 #| msgid "File `%s' exists. "
 msgid "File '%s' exists. "
-msgstr "Súbor `%s' existuje. "
+msgstr "Súbor `%s' existuje. "
 
 #, fuzzy
 msgid "Overwrite? (y/N) "
-msgstr "Prepísa» (a/N)? "
+msgstr "Prepísať (a/N)? "
 
 #, c-format
 msgid "%s: unknown suffix\n"
-msgstr "%s: neznáma prípona\n"
+msgstr "%s: neznáma prípona\n"
 
 msgid "Enter new filename"
-msgstr "Vlo¾te nový názov súboru"
+msgstr "Vložte nový názov súboru"
 
 msgid "writing to stdout\n"
-msgstr "zapisujem na ¹tandardný výstup (stdout)\n"
+msgstr "zapisujem na štandardný výstup (stdout)\n"
 
 #, fuzzy, c-format
 #| msgid "assuming signed data in `%s'\n"
 msgid "assuming signed data in '%s'\n"
-msgstr "predpokladám podpísané dáta v `%s'\n"
+msgstr "predpokladám podpísané dáta v `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "new configuration file `%s' created\n"
 msgid "new configuration file '%s' created\n"
-msgstr "vytvorený nový konfiguraèný súbor `%s'\n"
+msgstr "vytvorený nový konfiguračný súbor `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: options in `%s' are not yet active during this run\n"
 msgid "WARNING: options in '%s' are not yet active during this run\n"
-msgstr "VAROVANIE: nastavenie v `%s' e¹te nie je aktívne\n"
+msgstr "VAROVANIE: nastavenie v `%s' ešte nie je aktívne\n"
 
 #, c-format
 msgid "can't handle public key algorithm %d\n"
-msgstr "nemô¾em pracova» s algoritmom verejného kµúèa %d\n"
+msgstr "nemôžem pracovať s algoritmom verejného kľúča %d\n"
 
 msgid "WARNING: potentially insecure symmetrically encrypted session key\n"
 msgstr ""
-"VAROVANIE: pravdepodobne nebezpeèný symetricky ¹ifrovaný kµúè sedenia\n"
+"VAROVANIE: pravdepodobne nebezpečný symetricky šifrovaný kľúč sedenia\n"
 
 #, c-format
 msgid "subpacket of type %d has critical bit set\n"
-msgstr "podpaket typu %d má nastavený kritický bit\n"
+msgstr "podpaket typu %d má nastavený kritický bit\n"
 
 #, fuzzy, c-format
 msgid "problem with the agent: %s\n"
-msgstr "problém s agentom: agent vracia 0x%lx\n"
+msgstr "problém s agentom: agent vracia 0x%lx\n"
 
 msgid "Enter passphrase\n"
-msgstr "Vlo¾i» heslo\n"
+msgstr "Vložiť heslo\n"
 
 msgid "cancelled by user\n"
-msgstr "zru¹ené u¾ívateµom\n"
+msgstr "zrušené užívateľom\n"
 
 #, fuzzy, c-format
 msgid " (main key ID %s)"
-msgstr " (hlavné ID kµúèa %08lX)"
+msgstr " (hlavné ID kľúča %08lX)"
 
 #, fuzzy
 msgid "Please enter the passphrase to unlock the OpenPGP secret key:"
-msgstr "Prosím, vlo¾te heslo; toto je tajná veta \n"
+msgstr "Prosím, vložte heslo; toto je tajná veta \n"
 
 #, fuzzy
 msgid "Please enter the passphrase to import the OpenPGP secret key:"
-msgstr "Prosím, vlo¾te heslo; toto je tajná veta \n"
+msgstr "Prosím, vložte heslo; toto je tajná veta \n"
 
 #, fuzzy
 msgid "Please enter the passphrase to export the OpenPGP secret subkey:"
-msgstr "Prosím, vlo¾te heslo; toto je tajná veta \n"
+msgstr "Prosím, vložte heslo; toto je tajná veta \n"
 
 #, fuzzy
 msgid "Please enter the passphrase to export the OpenPGP secret key:"
-msgstr "Prosím, vlo¾te heslo; toto je tajná veta \n"
+msgstr "Prosím, vložte heslo; toto je tajná veta \n"
 
 #, fuzzy
 msgid "Do you really want to permanently delete the OpenPGP secret subkey key:"
-msgstr "Skutoène chcete zmaza» vybrané kµúèe? "
+msgstr "Skutočne chcete zmazať vybrané kľúče? "
 
 #, fuzzy
 msgid "Do you really want to permanently delete the OpenPGP secret key:"
-msgstr "Skutoène chcete zmaza» vybrané kµúèe? "
+msgstr "Skutočne chcete zmazať vybrané kľúče? "
 
 #, fuzzy, c-format
 msgid ""
@@ -4916,7 +4929,7 @@ msgid ""
 "%u-bit %s key, ID %s,\n"
 "created %s%s.\n"
 "%s"
-msgstr "då¾ka %u bitov, typ %s, ID %08lX, vytvorený %s"
+msgstr "dĺžka %u bitov, typ %s, ID %08lX, vytvorený %s"
 
 msgid ""
 "\n"
@@ -4926,18 +4939,18 @@ msgid ""
 "Keeping the image close to 240x288 is a good size to use.\n"
 msgstr ""
 "\n"
-"Vyberte si obrázok, ktorý bude pou¾itý ako fotografické ID. Tento obrázok\n"
-"musí by» vo formáte JPEG. Pamätajte, ¾e bude ulo¾ený vo Va¹om verejnom "
-"kµúèi.\n"
-"Ak pou¾ijete veµmi veµký obrázok, kµúè bude tie¾ veµký! Odporúèaná veµkos»\n"
-"obrázka je okolo 240x288.\n"
+"Vyberte si obrázok, ktorý bude použitý ako fotografické ID. Tento obrázok\n"
+"musí byť vo formáte JPEG. Pamätajte, že bude uložený vo Vašom verejnom "
+"kľúči.\n"
+"Ak použijete veľmi veľký obrázok, kľúč bude tiež veľký! Odporúčaná veľkosť\n"
+"obrázka je okolo 240x288.\n"
 
 msgid "Enter JPEG filename for photo ID: "
-msgstr "Meno súbor s fotografiou vo formáte JPEG: "
+msgstr "Meno súbor s fotografiou vo formáte JPEG: "
 
 #, fuzzy, c-format
 msgid "unable to open JPEG file '%s': %s\n"
-msgstr "nemo¾no otvori» súbor: %s\n"
+msgstr "nemožno otvoriť súbor: %s\n"
 
 #, c-format
 msgid "This JPEG is really large (%d bytes) !\n"
@@ -4945,38 +4958,38 @@ msgstr ""
 
 #, fuzzy
 msgid "Are you sure you want to use it? (y/N) "
-msgstr "Ste si istý, ¾e ho chcete pou¾i»? (a/N) "
+msgstr "Ste si istý, že ho chcete použiť? (a/N) "
 
 #, fuzzy, c-format
 msgid "'%s' is not a JPEG file\n"
-msgstr "\"%s\" nie je súbor JPEG\n"
+msgstr "\"%s\" nie je súbor JPEG\n"
 
 msgid "Is this photo correct (y/N/q)? "
-msgstr "Je táto fotografia správna (a/N/u)? "
+msgstr "Je táto fotografia správna (a/N/u)? "
 
 msgid "unable to display photo ID!\n"
-msgstr "nemo¾no nastavi» exec-path na %s\n"
+msgstr "nemožno nastaviť exec-path na %s\n"
 
 msgid "No reason specified"
-msgstr "Dôvod nebol ¹pecifikovaný"
+msgstr "Dôvod nebol špecifikovaný"
 
 msgid "Key is superseded"
-msgstr "Kµúè je nahradený"
+msgstr "Kľúč je nahradený"
 
 msgid "Key has been compromised"
-msgstr "Kµúè bol skompromitovaný"
+msgstr "Kľúč bol skompromitovaný"
 
 msgid "Key is no longer used"
-msgstr "Kµúè sa u¾ nepou¾íva"
+msgstr "Kľúč sa už nepoužíva"
 
 msgid "User ID is no longer valid"
-msgstr "Identifikátor u¾ívateµa u¾ neplatí"
+msgstr "Identifikátor užívateľa už neplatí"
 
 msgid "reason for revocation: "
-msgstr "dôvod na revokáciu: "
+msgstr "dôvod na revokáciu: "
 
 msgid "revocation comment: "
-msgstr "revokaèná poznámka: "
+msgstr "revokačná poznámka: "
 
 #. TRANSLATORS: These are the allowed answers in lower and
 #. uppercase.  Below you will find the matching strings which
@@ -4994,7 +5007,7 @@ msgstr "iImMuUsS"
 #, fuzzy
 msgid "No trust value assigned to:\n"
 msgstr ""
-"Nie je priradená ¾iadna hodnota dôvery k:\n"
+"Nie je priradená žiadna hodnota dôvery k:\n"
 "%4u%c/%08lX %s \""
 
 #, fuzzy, c-format
@@ -5004,7 +5017,7 @@ msgstr "                alias \""
 #, fuzzy
 msgid ""
 "How much do you trust that this key actually belongs to the named user?\n"
-msgstr "Tento kµúè pravdepodobne patrí jeho majiteµovi\n"
+msgstr "Tento kľúč pravdepodobne patrí jeho majiteľovi\n"
 
 #, fuzzy, c-format
 msgid "  %d = I don't know or won't say\n"
@@ -5012,23 +5025,23 @@ msgstr " %d = Neviem\n"
 
 #, fuzzy, c-format
 msgid "  %d = I do NOT trust\n"
-msgstr " %d = Nedôverujem\n"
+msgstr " %d = Nedôverujem\n"
 
 #, fuzzy, c-format
 msgid "  %d = I trust ultimately\n"
-msgstr " %d = Dôverujem absolútne\n"
+msgstr " %d = Dôverujem absolútne\n"
 
 #, fuzzy
 msgid "  m = back to the main menu\n"
-msgstr " m = spä» do hlavného menu\n"
+msgstr " m = späť do hlavného menu\n"
 
 #, fuzzy
 msgid "  s = skip this key\n"
-msgstr " s = preskoèi» tento kµúè\n"
+msgstr " s = preskočiť tento kľúč\n"
 
 #, fuzzy
 msgid "  q = quit\n"
-msgstr " u = ukonèi»\n"
+msgstr " u = ukončiť\n"
 
 #, c-format
 msgid ""
@@ -5037,31 +5050,46 @@ msgid ""
 msgstr ""
 
 msgid "Your decision? "
-msgstr "Va¹e rozhodnutie? "
+msgstr "Vaše rozhodnutie? "
 
 #, fuzzy
 msgid "Do you really want to set this key to ultimate trust? (y/N) "
-msgstr "Skutoène chcete nastavi» pre tento kµúè absolútnu dôveru? "
+msgstr "Skutočne chcete nastaviť pre tento kľúč absolútnu dôveru? "
 
 msgid "Certificates leading to an ultimately trusted key:\n"
-msgstr "Certifikáty vedúce k finálnemu dôveryhodnému kµúèu:\n"
+msgstr "Certifikáty vedúce k finálnemu dôveryhodnému kľúču:\n"
 
 #, fuzzy, c-format
 msgid "%s: There is no assurance this key belongs to the named user\n"
 msgstr ""
-"%08lX: Niè nenaznaèuje tomu, ¾e tento podpis patrí vlastníkovi kµúèa.\n"
+"%08lX: Nič nenaznačuje tomu, že tento podpis patrí vlastníkovi kľúča.\n"
 
 #, fuzzy, c-format
 msgid "%s: There is limited assurance this key belongs to the named user\n"
 msgstr ""
-"%08lX: Niè nenaznaèuje tomu, ¾e tento podpis patrí vlastníkovi kµúèa.\n"
+"%08lX: Nič nenaznačuje tomu, že tento podpis patrí vlastníkovi kľúča.\n"
 
 #, fuzzy
 msgid "This key probably belongs to the named user\n"
-msgstr "Tento kµúè pravdepodobne patrí jeho majiteµovi\n"
+msgstr "Tento kľúč pravdepodobne patrí jeho majiteľovi\n"
 
 msgid "This key belongs to us\n"
-msgstr "Tento kµúè patrí nám (máme zodpovedajúci tajný kµúè)\n"
+msgstr "Tento kľúč patrí nám (máme zodpovedajúci tajný kľúč)\n"
+
+#, c-format
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr ""
+
+#, fuzzy
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"NIE JE isté, že tento kľúč patrí osobe, ktorá sa vydáva za jeho\n"
+"vlastníka. Pokiaľ *skutočne* viete, čo robíte, môžete na otázku\n"
+"odpovedať áno\n"
+"\n"
 
 #, fuzzy
 msgid ""
@@ -5069,36 +5097,36 @@ msgid ""
 "in the user ID.  If you *really* know what you are doing,\n"
 "you may answer the next question with yes.\n"
 msgstr ""
-"NIE JE isté, ¾e tento kµúè patrí osobe, ktorá sa vydáva za jeho\n"
-"vlastníka. Pokiaµ *skutoène* viete, èo robíte, mô¾ete na otázku\n"
-"odpoveda» áno\n"
+"NIE JE isté, že tento kľúč patrí osobe, ktorá sa vydáva za jeho\n"
+"vlastníka. Pokiaľ *skutočne* viete, čo robíte, môžete na otázku\n"
+"odpovedať áno\n"
 "\n"
 
 #, fuzzy
 msgid "Use this key anyway? (y/N) "
-msgstr "Pou¾i» napriek tomu tento kµúè? "
+msgstr "Použiť napriek tomu tento kľúč? "
 
 msgid "WARNING: Using untrusted key!\n"
-msgstr "VAROVANIE: Je pou¾itý nedôveryhodný kµúè!\n"
+msgstr "VAROVANIE: Je použitý nedôveryhodný kľúč!\n"
 
 msgid "WARNING: this key might be revoked (revocation key not present)\n"
-msgstr "VAROVANIE: kµúè mô¾e by» revokovaný (revokaèný kµúè neexistuje)\n"
+msgstr "VAROVANIE: kľúč môže byť revokovaný (revokačný kľúč neexistuje)\n"
 
 msgid "WARNING: This key has been revoked by its designated revoker!\n"
-msgstr "VAROVANIE: Tento kµúè bol revokovaný jeho urèeným revokátorom/!\n"
+msgstr "VAROVANIE: Tento kľúč bol revokovaný jeho určeným revokátorom/!\n"
 
 msgid "WARNING: This key has been revoked by its owner!\n"
-msgstr "VAROVANIE: Tento kµúè bol revokovaný jeho vlastníkom!\n"
+msgstr "VAROVANIE: Tento kľúč bol revokovaný jeho vlastníkom!\n"
 
 #, fuzzy
 msgid "         This could mean that the signature is forged.\n"
-msgstr "         To mô¾e znamena», ¾e podpis je falo¹ný.\n"
+msgstr "         To môže znamenať, že podpis je falošný.\n"
 
 msgid "WARNING: This subkey has been revoked by its owner!\n"
-msgstr "VAROVANIE: Tento podkµúè bol revokovaný jeho vlastníkom!\n"
+msgstr "VAROVANIE: Tento podkľúč bol revokovaný jeho vlastníkom!\n"
 
 msgid "Note: This key has been disabled.\n"
-msgstr "Poznámka: Tento kµúè bol oznaèený ako neplatný (disabled).\n"
+msgstr "Poznámka: Tento kľúč bol označený ako neplatný (disabled).\n"
 
 #, c-format
 msgid "Note: Verified signer's address is '%s'\n"
@@ -5115,59 +5143,59 @@ msgid "trustlevel adjusted to NEVER due to bad PKA info\n"
 msgstr ""
 
 msgid "Note: This key has expired!\n"
-msgstr "Poznámka: Skonèila platnos» tohto kµúèa!\n"
+msgstr "Poznámka: Skončila platnosť tohto kľúča!\n"
 
 msgid "WARNING: This key is not certified with a trusted signature!\n"
-msgstr "VAROVANIE: Tento kµúè nie certifikovaný dôveryhodným podpisom!\n"
+msgstr "VAROVANIE: Tento kľúč nie certifikovaný dôveryhodným podpisom!\n"
 
 msgid ""
 "         There is no indication that the signature belongs to the owner.\n"
 msgstr ""
-"         Niè nenaznaèuje tomu, ¾e tento podpis patrí vlastníkovi kµúèa.\n"
+"         Nič nenaznačuje tomu, že tento podpis patrí vlastníkovi kľúča.\n"
 
 msgid "WARNING: We do NOT trust this key!\n"
-msgstr "VAROVANIE: NEdôverujeme tomuto kµúèu!\n"
+msgstr "VAROVANIE: NEdôverujeme tomuto kľúču!\n"
 
 msgid "         The signature is probably a FORGERY.\n"
-msgstr "         Tento podpis je pravdepodobne FALO©NÝ.\n"
+msgstr "         Tento podpis je pravdepodobne FALOŠNÝ.\n"
 
 msgid ""
 "WARNING: This key is not certified with sufficiently trusted signatures!\n"
 msgstr ""
-"VAROVANIE: Tento kµúè nie je certifikovaný dostatoène dôveryhodnými "
+"VAROVANIE: Tento kľúč nie je certifikovaný dostatočne dôveryhodnými "
 "podpismi!\n"
 
 msgid "         It is not certain that the signature belongs to the owner.\n"
-msgstr "         Nie je isté, ¾e tento podpis patrí vlastníkovi.\n"
+msgstr "         Nie je isté, že tento podpis patrí vlastníkovi.\n"
 
 #, c-format
 msgid "%s: skipped: %s\n"
-msgstr "%s: preskoèené: %s\n"
+msgstr "%s: preskočené: %s\n"
 
 #, c-format
 msgid "%s: skipped: public key is disabled\n"
-msgstr "%s: preskoèené: verejný kµúè je neplatný (disabled)\n"
+msgstr "%s: preskočené: verejný kľúč je neplatný (disabled)\n"
 
 #, c-format
 msgid "%s: skipped: public key already present\n"
-msgstr "%s: preskoèené: verejný kµúè je u¾ obsiahnutý v databáze\n"
+msgstr "%s: preskočené: verejný kľúč je už obsiahnutý v databáze\n"
 
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't encrypt to '%s'\n"
-msgstr "nemô¾em sa pripoji» k `%s': %s\n"
+msgstr "nemôžem sa pripojiť k `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "option '%s' given, but no valid default keys given\n"
-msgstr "neplatný hashovací algoritmus `%s'\n"
+msgstr "neplatný hashovací algoritmus `%s'\n"
 
 #, fuzzy, c-format
 msgid "option '%s' given, but option '%s' not given\n"
-msgstr "neplatný hashovací algoritmus `%s'\n"
+msgstr "neplatný hashovací algoritmus `%s'\n"
 
 msgid "You did not specify a user ID. (you may use \"-r\")\n"
 msgstr ""
-"Ne¹pecifikovali ste identifikátor u¾ívateµa (user ID). Mô¾ete pou¾i» \"-r\"\n"
+"Nešpecifikovali ste identifikátor užívateľa (user ID). Môžete použiť \"-r\"\n"
 
 msgid "Current recipients:\n"
 msgstr ""
@@ -5177,85 +5205,85 @@ msgid ""
 "Enter the user ID.  End with an empty line: "
 msgstr ""
 "\n"
-"Napí¹te identifikátor u¾ívateµa (user ID). Ukonèite prázdnym riadkom: "
+"Napíšte identifikátor užívateľa (user ID). Ukončite prázdnym riadkom: "
 
 msgid "No such user ID.\n"
-msgstr "Takýto identifikátor u¾ívateµa neexistuje.\n"
+msgstr "Takýto identifikátor užívateľa neexistuje.\n"
 
 msgid "skipped: public key already set as default recipient\n"
-msgstr "preskoèené: verejný kµúè je u¾ nastavený podµa implicitného adresáta\n"
+msgstr "preskočené: verejný kľúč je už nastavený podľa implicitného adresáta\n"
 
 msgid "Public key is disabled.\n"
-msgstr "Verejný kµúè je neplatný (disabled).\n"
+msgstr "Verejný kľúč je neplatný (disabled).\n"
 
 msgid "skipped: public key already set\n"
-msgstr "preskoèené: verejný kµúè je u¾ nastavený\n"
+msgstr "preskočené: verejný kľúč je už nastavený\n"
 
 #, fuzzy, c-format
 msgid "unknown default recipient \"%s\"\n"
-msgstr "neznámy implicitný adresát `%s'\n"
+msgstr "neznámy implicitný adresát `%s'\n"
 
 msgid "no valid addressees\n"
-msgstr "¾iadne platné adresy\n"
+msgstr "žiadne platné adresy\n"
 
 #, fuzzy, c-format
 msgid "Note: key %s has no %s feature\n"
-msgstr "kµúè %08lX: chyba identifikátor u¾ívateµa\n"
+msgstr "kľúč %08lX: chyba identifikátor užívateľa\n"
 
 #, fuzzy, c-format
 msgid "Note: key %s has no preference for %s\n"
-msgstr "kµúè %08lX: chyba identifikátor u¾ívateµa\n"
+msgstr "kľúč %08lX: chyba identifikátor užívateľa\n"
 
 msgid "data not saved; use option \"--output\" to save it\n"
-msgstr "dáta neboli ulo¾ené; na ich ulo¾enie pou¾ite prepínaè \"--output\"\n"
+msgstr "dáta neboli uložené; na ich uloženie použite prepínač \"--output\"\n"
 
 msgid "Detached signature.\n"
-msgstr "Podpis oddelený od dokumentu.\n"
+msgstr "Podpis oddelený od dokumentu.\n"
 
 msgid "Please enter name of data file: "
-msgstr "Prosím, vlo¾te názov dátového súboru: "
+msgstr "Prosím, vložte názov dátového súboru: "
 
 msgid "reading stdin ...\n"
-msgstr "èítam ¹tandardný vstup (stdin) ...\n"
+msgstr "čítam štandardný vstup (stdin) ...\n"
 
 msgid "no signed data\n"
-msgstr "chýbajú podpísané dáta\n"
+msgstr "chýbajú podpísané dáta\n"
 
 #, fuzzy, c-format
 #| msgid "can't open signed data `%s'\n"
 msgid "can't open signed data '%s'\n"
-msgstr "nemô¾em otvori» podpísané dáta '%s'\n"
+msgstr "nemôžem otvoriť podpísané dáta '%s'\n"
 
 #, fuzzy, c-format
 msgid "can't open signed data fd=%d: %s\n"
-msgstr "nemô¾em otvori» podpísané dáta '%s'\n"
+msgstr "nemôžem otvoriť podpísané dáta '%s'\n"
 
 #, fuzzy, c-format
 msgid "anonymous recipient; trying secret key %s ...\n"
-msgstr "anonymný adresát; skú¹am tajný kµúè %08lX ...\n"
+msgstr "anonymný adresát; skúšam tajný kľúč %08lX ...\n"
 
 msgid "okay, we are the anonymous recipient.\n"
-msgstr "o.k., my sme anonymný adresát.\n"
+msgstr "o.k., my sme anonymný adresát.\n"
 
 msgid "old encoding of the DEK is not supported\n"
-msgstr "staré kódovanie DEK nie je podporováné\n"
+msgstr "staré kódovanie DEK nie je podporováné\n"
 
 #, c-format
 msgid "cipher algorithm %d%s is unknown or disabled\n"
-msgstr "¹ifrovací algoritmus %d%s je neznamý alebo je zakázaný\n"
+msgstr "šifrovací algoritmus %d%s je neznamý alebo je zakázaný\n"
 
 #, fuzzy, c-format
 msgid "WARNING: cipher algorithm %s not found in recipient preferences\n"
-msgstr "POZNÁMKA: v predvoµbách nenájdený ¹ifrovací algoritmus %d\n"
+msgstr "POZNÁMKA: v predvoľbách nenájdený šifrovací algoritmus %d\n"
 
 #, fuzzy, c-format
 msgid "Note: secret key %s expired at %s\n"
-msgstr "POZNÁMKA: platnos» tajného kµúèa %08lX skonèila %s\n"
+msgstr "POZNÁMKA: platnosť tajného kľúča %08lX skončila %s\n"
 
 #, fuzzy
 #| msgid "NOTE: key has been revoked"
 msgid "Note: key has been revoked"
-msgstr "POZNÁMKA: kµúè bol revokovaný"
+msgstr "POZNÁMKA: kľúč bol revokovaný"
 
 #, c-format
 msgid "build_packet failed: %s\n"
@@ -5263,40 +5291,40 @@ msgstr "build_packet zlyhala: %s\n"
 
 #, fuzzy, c-format
 msgid "key %s has no user IDs\n"
-msgstr "kµúè %08lX: chyba identifikátor u¾ívateµa\n"
+msgstr "kľúč %08lX: chyba identifikátor užívateľa\n"
 
 msgid "To be revoked by:\n"
-msgstr "Bude revokovaný:\n"
+msgstr "Bude revokovaný:\n"
 
 msgid "(This is a sensitive revocation key)\n"
-msgstr "(Toto je citlivý revokaèný kµúè)\n"
+msgstr "(Toto je citlivý revokačný kľúč)\n"
 
 #, fuzzy
 #| msgid "Secret key is available.\n"
 msgid "Secret key is not available.\n"
-msgstr "Tajný kµúè je dostupný.\n"
+msgstr "Tajný kľúč je dostupný.\n"
 
 #, fuzzy
 msgid "Create a designated revocation certificate for this key? (y/N) "
-msgstr "Vytvori» pre tento podpis revokaèný certifikát? "
+msgstr "Vytvoriť pre tento podpis revokačný certifikát? "
 
 msgid "ASCII armored output forced.\n"
-msgstr "Vynútený ASCII textový výstup.\n"
+msgstr "Vynútený ASCII textový výstup.\n"
 
 #, c-format
 msgid "make_keysig_packet failed: %s\n"
 msgstr "make_keysig_packet zlyhala: %s\n"
 
 msgid "Revocation certificate created.\n"
-msgstr "Revokaèný certifikát bol vytvorený.\n"
+msgstr "Revokačný certifikát bol vytvorený.\n"
 
 #, fuzzy, c-format
 msgid "no revocation keys found for \"%s\"\n"
-msgstr "¾iadne revokaèné kµúèe pre `%s' nenájdené\n"
+msgstr "žiadne revokačné kľúče pre `%s' nenájdené\n"
 
 #, fuzzy
 msgid "This is a revocation certificate for the OpenPGP key:"
-msgstr "Vytvori» pre tento podpis revokaèný certifikát? "
+msgstr "Vytvoriť pre tento podpis revokačný certifikát? "
 
 msgid ""
 "A revocation certificate is a kind of \"kill switch\" to publicly\n"
@@ -5321,11 +5349,11 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "Revocation certificate created.\n"
 msgid "revocation certificate stored as '%s.rev'\n"
-msgstr "Revokaèný certifikát bol vytvorený.\n"
+msgstr "Revokačný certifikát bol vytvorený.\n"
 
 #, fuzzy, c-format
 msgid "secret key \"%s\" not found\n"
-msgstr "tajný kµúè `%s' nebol nájdený: %s\n"
+msgstr "tajný kľúč `%s' nebol nájdený: %s\n"
 
 #. TRANSLATORS: The %s prints a key specification which
 #. for example has been given at the command line.  Several lines
@@ -5337,11 +5365,11 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "error creating keyring `%s': %s\n"
 msgid "error searching the keyring: %s\n"
-msgstr "chyba pri vytváraní súboru kµúèov (keyring)`%s': %s\n"
+msgstr "chyba pri vytváraní súboru kľúčov (keyring)`%s': %s\n"
 
 #, fuzzy
 msgid "Create a revocation certificate for this key? (y/N) "
-msgstr "Vytvori» pre tento podpis revokaèný certifikát? "
+msgstr "Vytvoriť pre tento podpis revokačný certifikát? "
 
 msgid ""
 "Revocation certificate created.\n"
@@ -5352,46 +5380,46 @@ msgid ""
 "your media become unreadable.  But have some caution:  The print system of\n"
 "your machine might store the data and make it available to others!\n"
 msgstr ""
-"Bol vytvorený revokaèný certifikát.\n"
+"Bol vytvorený revokačný certifikát.\n"
 "\n"
-"Presuòte ho na médium, ktoré mô¾ete schova»; ak Mallory získa k\n"
-"tomuto certifikátu prístup, mô¾e znefunkèni» Vá¹ kµúè. Jednoduché je\n"
-"vytlaèi» certifikát a schova» ho, pre prípad ¾e by médium bolo neèitateµné.\n"
-"Ale hrozí nebezpeèenstvo: Tlaèový systém Vá¹ho poèítaèa mô¾e uklada» dáta a\n"
-"sprístupni» ich iným!\n"
+"Presuňte ho na médium, ktoré môžete schovať; ak Mallory získa k\n"
+"tomuto certifikátu prístup, môže znefunkčniť Váš kľúč. Jednoduché je\n"
+"vytlačiť certifikát a schovať ho, pre prípad že by médium bolo nečitateľné.\n"
+"Ale hrozí nebezpečenstvo: Tlačový systém Vášho počítača môže ukladať dáta a\n"
+"sprístupniť ich iným!\n"
 
 msgid "Please select the reason for the revocation:\n"
-msgstr "Prosím výberte dôvod na revokáciu:\n"
+msgstr "Prosím výberte dôvod na revokáciu:\n"
 
 msgid "Cancel"
-msgstr "Zru¹i»"
+msgstr "Zrušiť"
 
 #, c-format
 msgid "(Probably you want to select %d here)\n"
-msgstr "(Pravdepodobne ste chceli vybra» %d)\n"
+msgstr "(Pravdepodobne ste chceli vybrať %d)\n"
 
 msgid "Enter an optional description; end it with an empty line:\n"
-msgstr "Ak chcete, napí¹te popis; ukonèite prázdnym riadkom:\n"
+msgstr "Ak chcete, napíšte popis; ukončite prázdnym riadkom:\n"
 
 #, c-format
 msgid "Reason for revocation: %s\n"
-msgstr "Dôvod na revokáciu: %s\n"
+msgstr "Dôvod na revokáciu: %s\n"
 
 msgid "(No description given)\n"
-msgstr "(®iadny popis)\n"
+msgstr "(Žiadny popis)\n"
 
 #, fuzzy
 msgid "Is this okay? (y/N) "
 msgstr "Je to v poriadku? "
 
 msgid "weak key created - retrying\n"
-msgstr "vytvorený slabý kµúè - skú¹am znovu\n"
+msgstr "vytvorený slabý kľúč - skúšam znovu\n"
 
 #, c-format
 msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
 msgstr ""
-"nemô¾em sa vyvarova» slabého kµúèa pre symetrickú ¹ifru; operáciu som skúsil "
-"%d krát!\n"
+"nemôžem sa vyvarovať slabého kľúča pre symetrickú šifru; operáciu som skúsil "
+"%d krát!\n"
 
 #, c-format
 msgid "%s key %s uses an unsafe (%zu bit) hash\n"
@@ -5402,32 +5430,32 @@ msgid "%s key %s requires a %zu bit or larger hash (hash is %s)\n"
 msgstr ""
 
 msgid "WARNING: signature digest conflict in message\n"
-msgstr "VAROVANIE: konflikt hashu podpisu v správe\n"
+msgstr "VAROVANIE: konflikt hashu podpisu v správe\n"
 
 #, fuzzy, c-format
 msgid "WARNING: signing subkey %s is not cross-certified\n"
-msgstr "VAROVANIE: podpisovací podkµúè %08lX nie je krí¾ovo certifikovaný\n"
+msgstr "VAROVANIE: podpisovací podkľúč %08lX nie je krížovo certifikovaný\n"
 
 #, fuzzy, c-format
 msgid "please see %s for more information\n"
-msgstr " i = prosím o viac informácíi\n"
+msgstr " i = prosím o viac informácíi\n"
 
 #, fuzzy, c-format
 msgid "WARNING: signing subkey %s has an invalid cross-certification\n"
 msgstr ""
-"VAROVANIE: podpisovací podkµúè %08lX má neplatnú krí¾ovú certifikáciu\n"
+"VAROVANIE: podpisovací podkľúč %08lX má neplatnú krížovú certifikáciu\n"
 
 #, fuzzy, c-format
 msgid "public key %s is %lu second newer than the signature\n"
 msgid_plural "public key %s is %lu seconds newer than the signature\n"
-msgstr[0] "verejný kµúè %08lX je o %lu sekund nov¹í ne¾ podpis\n"
-msgstr[1] "verejný kµúè %08lX je o %lu sekund nov¹í ne¾ podpis\n"
+msgstr[0] "verejný kľúÄ\8d %08lX je o %lu sekund novší než podpis\n"
+msgstr[1] "verejný kľúÄ\8d %08lX je o %lu sekund novší než podpis\n"
 
 #, fuzzy, c-format
 msgid "public key %s is %lu day newer than the signature\n"
 msgid_plural "public key %s is %lu days newer than the signature\n"
-msgstr[0] "verejný kµúè %08lX je o %lu sekund nov¹í ne¾ podpis\n"
-msgstr[1] "verejný kµúè %08lX je o %lu sekund nov¹í ne¾ podpis\n"
+msgstr[0] "verejný kľúÄ\8d %08lX je o %lu sekund novší než podpis\n"
+msgstr[1] "verejný kľúÄ\8d %08lX je o %lu sekund novší než podpis\n"
 
 #, fuzzy, c-format
 msgid ""
@@ -5435,65 +5463,65 @@ msgid ""
 msgid_plural ""
 "key %s was created %lu seconds in the future (time warp or clock problem)\n"
 msgstr[0] ""
-"kµúè bol vytvorený %lu sekund v budúcnosti (do¹lo k zmene èasu alebo\n"
-"je problém so systémovým èasom)\n"
+"kľúč bol vytvorený %lu sekund v budúcnosti (došlo k zmene času alebo\n"
+"je problém so systémovým časom)\n"
 msgstr[1] ""
-"kµúè bol vytvorený %lu sekund v budúcnosti (do¹lo k zmene èasu alebo\n"
-"je problém so systémovým èasom)\n"
+"kľúč bol vytvorený %lu sekund v budúcnosti (došlo k zmene času alebo\n"
+"je problém so systémovým časom)\n"
 
 #, fuzzy, c-format
 msgid "key %s was created %lu day in the future (time warp or clock problem)\n"
 msgid_plural ""
 "key %s was created %lu days in the future (time warp or clock problem)\n"
 msgstr[0] ""
-"kµúè bol vytvorený %lu sekund v budúcnosti (do¹lo k zmene èasu alebo\n"
-"je problém so systémovým èasom)\n"
+"kľúč bol vytvorený %lu sekund v budúcnosti (došlo k zmene času alebo\n"
+"je problém so systémovým časom)\n"
 msgstr[1] ""
-"kµúè bol vytvorený %lu sekund v budúcnosti (do¹lo k zmene èasu alebo\n"
-"je problém so systémovým èasom)\n"
+"kľúč bol vytvorený %lu sekund v budúcnosti (došlo k zmene času alebo\n"
+"je problém so systémovým časom)\n"
 
 #, fuzzy, c-format
 msgid "Note: signature key %s expired %s\n"
-msgstr "POZNÁMKA: podpisovému kµúèu %08lX skonèila platnos» %s\n"
+msgstr "POZNÁMKA: podpisovému kľúču %08lX skončila platnosť %s\n"
 
 #, fuzzy, c-format
 msgid "Note: signature key %s has been revoked\n"
-msgstr "POZNÁMKA: kµúè bol revokovaný"
+msgstr "POZNÁMKA: kľúč bol revokovaný"
 
 #, fuzzy, c-format
 msgid "assuming bad signature from key %s due to an unknown critical bit\n"
 msgstr ""
-"predpokladám neplatný podpis kµúèom %08lX, preto¾e je nastavený neznámy "
-"kritický bit\n"
+"predpokladám neplatný podpis kľúčom %08lX, pretože je nastavený neznámy "
+"kritický bit\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for subkey revocation signature\n"
-msgstr "kµúè %08lX: neexistuje podkµúè pre revokáciu kµúèa\n"
+msgstr "kľúč %08lX: neexistuje podkľúč pre revokáciu kľúča\n"
 
 #, fuzzy, c-format
 msgid "key %s: no subkey for subkey binding signature\n"
-msgstr "kµúè %08lX: neexistuje podkµúè pre viazanie podkµúèov\n"
+msgstr "kľúč %08lX: neexistuje podkľúč pre viazanie podkľúčov\n"
 
 #, c-format
 msgid "WARNING: unable to %%-expand notation (too large).  Using unexpanded.\n"
 msgstr ""
-"VAROVANIE: nemo¾no %%-expandova» notácie (príli¹ dlhé). Pou¾ité "
-"neexpandované.\n"
+"VAROVANIE: nemožno %%-expandovať notácie (príliš dlhé). Použité "
+"neexpandované.\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: unable to %%-expand policy URL (too large).  Using unexpanded.\n"
 msgstr ""
-"VAROVANIE: nemô¾em %%-expandova» URL politiky (príli¹ dlhé). Pou¾ité "
-"neexpandované.\n"
+"VAROVANIE: nemôžem %%-expandovať URL politiky (príliš dlhé). Použité "
+"neexpandované.\n"
 
 #, fuzzy, c-format
 msgid ""
 "WARNING: unable to %%-expand preferred keyserver URL (too large).  Using "
 "unexpanded.\n"
 msgstr ""
-"VAROVANIE: nemô¾em %%-expandova» URL politiky (príli¹ dlhé). Pou¾ité "
-"neexpandované.\n"
+"VAROVANIE: nemôžem %%-expandovať URL politiky (príliš dlhé). Použité "
+"neexpandované.\n"
 
 #, fuzzy, c-format
 msgid "%s/%s signature from: \"%s\"\n"
@@ -5503,193 +5531,193 @@ msgstr "%s podpis od: \"%s\"\n"
 msgid ""
 "WARNING: forcing digest algorithm %s (%d) violates recipient preferences\n"
 msgstr ""
-"vy¾iadaný hashovací algoritmus %s (%d) nevyhovuje predvoµbám príjemcu\n"
+"vyžiadaný hashovací algoritmus %s (%d) nevyhovuje predvoľbám príjemcu\n"
 
 msgid "signing:"
 msgstr "podpisujem:"
 
 #, c-format
 msgid "%s encryption will be used\n"
-msgstr "bude pou¾ité ¹ifrovanie %s\n"
+msgstr "bude použité šifrovanie %s\n"
 
 msgid "key is not flagged as insecure - can't use it with the faked RNG!\n"
 msgstr ""
-"kµúè nie je oznaèený ako nedostatoène bezpeèný - nemô¾em ho pou¾i» s "
-"falo¹ným RNG!\n"
+"kľúč nie je označený ako nedostatočne bezpečný - nemôžem ho použiť s "
+"falošným RNG!\n"
 
 #, fuzzy, c-format
 msgid "skipped \"%s\": duplicated\n"
-msgstr "preskoèený `%s': duplikovaný\n"
+msgstr "preskočený `%s': duplikovaný\n"
 
 msgid "skipped: secret key already present\n"
-msgstr "preskoèené: tajný kµúè je u¾ v databáze\n"
+msgstr "preskočené: tajný kľúč je už v databáze\n"
 
 #, fuzzy
 msgid "this is a PGP generated Elgamal key which is not secure for signatures!"
 msgstr ""
-"preskoèený `%s': toto je vygenerovaný PGP kµúè podµa algoritmu ElGamal,\n"
-"podpisy vytvorené týmto kµúèom nie sú bezpeèné!\n"
+"preskočený `%s': toto je vygenerovaný PGP kľúč podľa algoritmu ElGamal,\n"
+"podpisy vytvorené týmto kľúčom nie sú bezpečné!\n"
 
 #, c-format
 msgid "trust record %lu, type %d: write failed: %s\n"
-msgstr "záznam dôvery %lu, typ %d: zápis zlyhal: %s\n"
+msgstr "záznam dôvery %lu, typ %d: zápis zlyhal: %s\n"
 
 #, c-format
 msgid ""
 "# List of assigned trustvalues, created %s\n"
 "# (Use \"gpg --import-ownertrust\" to restore them)\n"
 msgstr ""
-"# Zoznam pridelených hodnôt dôveryhodnosti, vytvorený %s\n"
-"# (Pou¾ite \"gpg --import-ownertrust\" na obnovenie)\n"
+"# Zoznam pridelených hodnôt dôveryhodnosti, vytvorený %s\n"
+"# (Použite \"gpg --import-ownertrust\" na obnovenie)\n"
 
 #, fuzzy, c-format
 msgid "error in '%s': %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy
 msgid "line too long"
-msgstr "riadok je príli¹ dlhý\n"
+msgstr "riadok je príliš dlhý\n"
 
 msgid "colon missing"
 msgstr ""
 
 #, fuzzy
 msgid "invalid fingerprint"
-msgstr "chyba: neplatný odtlaèok\n"
+msgstr "chyba: neplatný odtlačok\n"
 
 #, fuzzy
 msgid "ownertrust value missing"
 msgstr ""
-"importova» hodnoty dôveryhodnosti\n"
-" vlastníka kµúèa"
+"importovať hodnoty dôveryhodnosti\n"
+" vlastníka kľúča"
 
 #, fuzzy, c-format
 msgid "error finding trust record in '%s': %s\n"
-msgstr "chyba pri hµadaní záznamu dôvery: %s\n"
+msgstr "chyba pri hľadaní záznamu dôvery: %s\n"
 
 #, fuzzy, c-format
 msgid "read error in '%s': %s\n"
-msgstr "chyba pri èítaní: %s\n"
+msgstr "chyba pri čítaní: %s\n"
 
 #, c-format
 msgid "trustdb: sync failed: %s\n"
-msgstr "databáza dôvery: synchronizácia zlyhala %s\n"
+msgstr "databáza dôvery: synchronizácia zlyhala %s\n"
 
 #, fuzzy, c-format
 msgid "can't create lock for '%s'\n"
-msgstr "nemô¾em vytvori» `%s': %s\n"
+msgstr "nemôžem vytvoriť `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "can't lock '%s'\n"
-msgstr "nemo¾no otvori» `%s'\n"
+msgstr "nemožno otvoriť `%s'\n"
 
 #, c-format
 msgid "trustdb rec %lu: lseek failed: %s\n"
-msgstr "záznam v databáze dôvery %lu: lseek() sa nepodaril: %s\n"
+msgstr "záznam v databáze dôvery %lu: lseek() sa nepodaril: %s\n"
 
 #, c-format
 msgid "trustdb rec %lu: write failed (n=%d): %s\n"
-msgstr "záznam v databáze dôvery %lu: zápis sa nepodaril (n=%d): %s\n"
+msgstr "záznam v databáze dôvery %lu: zápis sa nepodaril (n=%d): %s\n"
 
 msgid "trustdb transaction too large\n"
-msgstr "transakcia s databázou dôvery je príli¹ dlhá\n"
+msgstr "transakcia s databázou dôvery je príliš dlhá\n"
 
 #, c-format
 msgid "%s: directory does not exist!\n"
-msgstr "%s: adresár neexistuje!\n"
+msgstr "%s: adresár neexistuje!\n"
 
 #, fuzzy, c-format
 msgid "can't access '%s': %s\n"
-msgstr "nemô¾em zavrie» `%s': %s\n"
+msgstr "nemôžem zavrieť `%s': %s\n"
 
 #, c-format
 msgid "%s: failed to create version record: %s"
-msgstr "%s: nepodarilo sa vytvori» záznam verzie: %s"
+msgstr "%s: nepodarilo sa vytvoriť záznam verzie: %s"
 
 #, c-format
 msgid "%s: invalid trustdb created\n"
-msgstr "%s: vytvorená neplatná databáza dôvery\n"
+msgstr "%s: vytvorená neplatná databáza dôvery\n"
 
 #, c-format
 msgid "%s: trustdb created\n"
-msgstr "%s: databáza dôvery vytvorená\n"
+msgstr "%s: databáza dôvery vytvorená\n"
 
 #, fuzzy
 #| msgid "NOTE: trustdb not writable\n"
 msgid "Note: trustdb not writable\n"
-msgstr "POZNÁMKA: do trustdb nemo¾no zapisova»\n"
+msgstr "POZNÁMKA: do trustdb nemožno zapisovať\n"
 
 #, c-format
 msgid "%s: invalid trustdb\n"
-msgstr "%s: neplatná databáze dôvery\n"
+msgstr "%s: neplatná databáze dôvery\n"
 
 #, c-format
 msgid "%s: failed to create hashtable: %s\n"
-msgstr "%s: nepodarilo sa vytvori» hashovaciu tabuµku: %s\n"
+msgstr "%s: nepodarilo sa vytvoriť hashovaciu tabuľku: %s\n"
 
 #, c-format
 msgid "%s: error updating version record: %s\n"
-msgstr "%s: chyba pri aktualizácii záznamu verzie: %s\n"
+msgstr "%s: chyba pri aktualizácii záznamu verzie: %s\n"
 
 #, c-format
 msgid "%s: error reading version record: %s\n"
-msgstr "%s: chyba pri èítaní záznamu verzie: %s\n"
+msgstr "%s: chyba pri čítaní záznamu verzie: %s\n"
 
 #, c-format
 msgid "%s: error writing version record: %s\n"
-msgstr "%s: chyba pri zápise záznamu verzie: %s\n"
+msgstr "%s: chyba pri zápise záznamu verzie: %s\n"
 
 #, c-format
 msgid "trustdb: lseek failed: %s\n"
-msgstr "databáze dôvery: procedúra lseek() zlyhala: %s\n"
+msgstr "databáze dôvery: procedúra lseek() zlyhala: %s\n"
 
 #, c-format
 msgid "trustdb: read failed (n=%d): %s\n"
-msgstr "databáza dôvery: procedúra read() (n=%d) zlyhala: %s\n"
+msgstr "databáza dôvery: procedúra read() (n=%d) zlyhala: %s\n"
 
 #, c-format
 msgid "%s: not a trustdb file\n"
-msgstr "%s: nie je súbor databázy dôvery\n"
+msgstr "%s: nie je súbor databázy dôvery\n"
 
 #, c-format
 msgid "%s: version record with recnum %lu\n"
-msgstr "%s: záznam verzie s èíslom %lu\n"
+msgstr "%s: záznam verzie s číslom %lu\n"
 
 #, c-format
 msgid "%s: invalid file version %d\n"
-msgstr "%s: neplatná verzia súboru %d\n"
+msgstr "%s: neplatná verzia súboru %d\n"
 
 #, c-format
 msgid "%s: error reading free record: %s\n"
-msgstr "%s: chyba pri èítaní voµného záznamu: %s\n"
+msgstr "%s: chyba pri čítaní voľného záznamu: %s\n"
 
 #, c-format
 msgid "%s: error writing dir record: %s\n"
-msgstr "%s: chyba pri zápise adresárového záznamu: %s\n"
+msgstr "%s: chyba pri zápise adresárového záznamu: %s\n"
 
 #, c-format
 msgid "%s: failed to zero a record: %s\n"
-msgstr "%s: vynulovanie záznamu zlyhalo: %s\n"
+msgstr "%s: vynulovanie záznamu zlyhalo: %s\n"
 
 #, c-format
 msgid "%s: failed to append a record: %s\n"
-msgstr "%s: pridanie záznamu zlyhalo: %s\n"
+msgstr "%s: pridanie záznamu zlyhalo: %s\n"
 
 #, fuzzy
 msgid "Error: The trustdb is corrupted.\n"
-msgstr "%s: databáza dôvery vytvorená\n"
+msgstr "%s: databáza dôvery vytvorená\n"
 
 #, c-format
 msgid "can't handle text lines longer than %d characters\n"
-msgstr "nemô¾em pracova» s riadkami dlh¹ími ako %d znakov\n"
+msgstr "nemôžem pracovať s riadkami dlhšími ako %d znakov\n"
 
 #, c-format
 msgid "input line longer than %d characters\n"
-msgstr "vstupný riadok je dlh¹í ako %d znakov\n"
+msgstr "vstupný riadok je dlhší ako %d znakov\n"
 
 #, fuzzy, c-format
 msgid "error beginning transaction on TOFU database: %s\n"
-msgstr "chyba pri posielaní na `%s': %s\n"
+msgstr "chyba pri posielaní na `%s': %s\n"
 
 #, c-format
 msgid "error committing transaction on TOFU database: %s\n"
@@ -5703,52 +5731,56 @@ msgstr ""
 msgid "unsupported TOFU database version: %s\n"
 msgstr ""
 "\n"
-"Podporované algoritmy:\n"
+"Podporované algoritmy:\n"
 
 #, fuzzy, c-format
 msgid "error reading TOFU database: %s\n"
-msgstr "chyba pri posielaní na `%s': %s\n"
+msgstr "chyba pri posielaní na `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing secret keyring `%s': %s\n"
 msgid "error determining TOFU database's version: %s\n"
-msgstr "chyba pri zápise do súboru tajných kµúèov `%s': %s\n"
+msgstr "chyba pri zápise do súboru tajných kľúčov `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "%s: error writing dir record: %s\n"
 msgid "error initializing TOFU database: %s\n"
-msgstr "%s: chyba pri zápise adresárového záznamu: %s\n"
+msgstr "%s: chyba pri zápise adresárového záznamu: %s\n"
 
 #, fuzzy, c-format
 msgid "error opening TOFU database '%s': %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error updating TOFU database: %s\n"
-msgstr "chyba pri posielaní na `%s': %s\n"
+msgstr "chyba pri posielaní na `%s': %s\n"
 
 #, c-format
-msgid "The binding %s is NOT known."
+msgid ""
+"This is the first time the email address \"%s\" is being used with key %s."
 msgstr ""
 
 #, c-format
-msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr ""
+
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error gathering other user IDs: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr ""
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "vypísať zoznam kľúčov a id užívateľov"
 
 #, fuzzy, c-format
 #| msgid "Policy: "
@@ -5757,7 +5789,7 @@ msgstr "Politika: "
 
 #, fuzzy, c-format
 msgid "error gathering signature stats: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, c-format
 msgid "The email address \"%s\" is associated with %d key:\n"
@@ -5769,41 +5801,47 @@ msgstr[1] ""
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr ""
 
+msgid ", "
+msgstr ""
+
 #, fuzzy
 #| msgid "list keys"
 msgid "this key"
-msgstr "vypísa» zoznam kµúèov"
+msgstr "vypísať zoznam kľúčov"
+
+#, fuzzy, c-format
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
+msgstr[0] "|algo [súbory]|vypíš hash"
+msgstr[1] "|algo [súbory]|vypíš hash"
 
 #, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
 msgstr[0] ""
 msgstr[1] ""
 
-#, fuzzy, c-format
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
-msgstr[0] "|algo [súbory]|vypí¹ hash"
-msgstr[1] "|algo [súbory]|vypí¹ hash"
-
 #, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+msgid " over the past year."
+msgid_plural " over the past %d years."
 msgstr[0] ""
 msgstr[1] ""
 
+msgid " in the past."
+msgstr ""
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5819,13 +5857,23 @@ msgstr ""
 msgid "(G)ood, (A)ccept once, (U)nknown, (R)eject once, (B)ad? "
 msgstr ""
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "resetting keydb: %s\n"
+msgstr "chyba pri zápise súboru kľúčov (keyring)  `%s': %s\n"
+
 #, fuzzy, c-format
 msgid "error setting TOFU binding's trust level to %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error changing TOFU policy: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #. TRANSLATORS: The tilde ('~') is used here to indicate a
 #. * non-breakable space
@@ -5866,50 +5914,56 @@ msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
+msgid "%s: "
 msgstr ""
 
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
-msgstr ""
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "Zmazaných %d podpisov.\n"
 
 #, fuzzy, c-format
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "|algo [súbory]|vypí¹ hash"
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
+msgstr[0] "|algo [súbory]|vypíš hash"
+msgstr[1] "|algo [súbory]|vypíš hash"
+
+#, fuzzy, c-format
+#| msgid "encrypted with %lu passphrases\n"
+msgid ", and encrypted %ld messages"
+msgstr "zašifrované s %lu heslami\n"
+
+#, fuzzy, c-format
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] "|algo [súbory]|vypíš hash"
+msgstr[1] "|algo [súbory]|vypíš hash"
 
-#, c-format
 msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
-msgstr[0] ""
-msgstr[1] ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
+msgstr ""
 
-#, c-format
-msgid "The most recent message was verified %s ago."
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
 msgstr ""
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
 msgstr ""
 
 #, c-format
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -5917,37 +5971,46 @@ msgstr[1] ""
 
 #, fuzzy, c-format
 msgid "error opening TOFU database: %s\n"
-msgstr "chyba pri posielaní na `%s': %s\n"
+msgstr "chyba pri posielaní na `%s': %s\n"
+
+#, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring `%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "chyba pri zápise do súboru verejných kľúčov `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "`%s' is not a valid long keyID\n"
 msgid "'%s' is not a valid long keyID\n"
-msgstr "`%s' nie je platné dlhé keyID\n"
+msgstr "`%s' nie je platné dlhé keyID\n"
 
 #, fuzzy, c-format
 msgid "key %s: accepted as trusted key\n"
-msgstr "kµúè %08lX: akceptovaný ako dôveryhodný kµúè\n"
+msgstr "kľúč %08lX: akceptovaný ako dôveryhodný kľúč\n"
 
 #, fuzzy, c-format
 msgid "key %s occurs more than once in the trustdb\n"
-msgstr "kµúè %08lX sa v databáze dôvery vyskytuje viac ako raz\n"
+msgstr "kľúč %08lX sa v databáze dôvery vyskytuje viac ako raz\n"
 
 #, fuzzy, c-format
 msgid "key %s: no public key for trusted key - skipped\n"
 msgstr ""
-"kµúè %08lX: nenájdený verejný kµúè k dôveryhodnému kµúèu - preskoèené\n"
+"kľúč %08lX: nenájdený verejný kľúč k dôveryhodnému kľúču - preskočené\n"
 
 #, fuzzy, c-format
 msgid "key %s marked as ultimately trusted\n"
-msgstr "kµúè oznaèený ako absolútne dôveryhodný.\n"
+msgstr "kľúč označený ako absolútne dôveryhodný.\n"
 
 #, c-format
 msgid "trust record %lu, req type %d: read failed: %s\n"
-msgstr "záznam dôvery %lu, typ po¾. %d: èítanie zlyhalo: %s\n"
+msgstr "záznam dôvery %lu, typ pož. %d: čítanie zlyhalo: %s\n"
 
 #, c-format
 msgid "trust record %lu is not of requested type %d\n"
-msgstr "záznam dôvery %lu nie je po¾adovaného typu %d\n"
+msgstr "záznam dôvery %lu nie je požadovaného typu %d\n"
 
 msgid "You may try to re-create the trustdb using the commands:\n"
 msgstr ""
@@ -5964,49 +6027,49 @@ msgid "using %s trust model\n"
 msgstr ""
 
 msgid "no need for a trustdb check\n"
-msgstr "nie je nutné kontrolova» databázu dôvery\n"
+msgstr "nie je nutné kontrolovať databázu dôvery\n"
 
 #, c-format
 msgid "next trustdb check due at %s\n"
-msgstr "dal¹ia kontrola databázy dôvery %s\n"
+msgstr "dalšia kontrola databázy dôvery %s\n"
 
 #, fuzzy, c-format
 msgid "no need for a trustdb check with '%s' trust model\n"
-msgstr "nie je nutné kontrolova» databázu dôvery\n"
+msgstr "nie je nutné kontrolovať databázu dôvery\n"
 
 #, fuzzy, c-format
 msgid "no need for a trustdb update with '%s' trust model\n"
-msgstr "nie je nutné kontrolova» databázu dôvery\n"
+msgstr "nie je nutné kontrolovať databázu dôvery\n"
 
 #, fuzzy, c-format
 msgid "public key %s not found: %s\n"
-msgstr "verejný kµúè %08lX nebol nájdený: %s\n"
+msgstr "verejný kľúč %08lX nebol nájdený: %s\n"
 
 msgid "please do a --check-trustdb\n"
-msgstr "prosím vykonajte --check-trustdb\n"
+msgstr "prosím vykonajte --check-trustdb\n"
 
 msgid "checking the trustdb\n"
-msgstr "kontrolujem databázu dôvery\n"
+msgstr "kontrolujem databázu dôvery\n"
 
 #, fuzzy, c-format
 msgid "%d key processed"
 msgid_plural "%d keys processed"
-msgstr[0] "%lu kµúèe boli doteraz spracované\n"
-msgstr[1] "%lu kµúèe boli doteraz spracované\n"
+msgstr[0] "%lu kľúče boli doteraz spracované\n"
+msgstr[1] "%lu kľúče boli doteraz spracované\n"
 
 #, fuzzy, c-format
 #| msgid "%d keys processed (%d validity counts cleared)\n"
 msgid " (%d validity count cleared)\n"
 msgid_plural " (%d validity counts cleared)\n"
-msgstr[0] "%d kµúèov spracovaných (%d poètov platnosti vymazaných)\n"
-msgstr[1] "%d kµúèov spracovaných (%d poètov platnosti vymazaných)\n"
+msgstr[0] "%d kľúčov spracovaných (%d počtov platnosti vymazaných)\n"
+msgstr[1] "%d kľúčov spracovaných (%d počtov platnosti vymazaných)\n"
 
 msgid "no ultimately trusted keys found\n"
-msgstr "neboli nájdené ¾iadne absolútne dôveryhodné kµúèe\n"
+msgstr "neboli nájdené žiadne absolútne dôveryhodné kľúče\n"
 
 #, fuzzy, c-format
 msgid "public key of ultimately trusted key %s not found\n"
-msgstr "verejný kµúè k absolútne dôveryhodnému kµúèu  %08lX nebol nájdený\n"
+msgstr "verejný kľúč k absolútne dôveryhodnému kľúču  %08lX nebol nájdený\n"
 
 #, c-format
 msgid ""
@@ -6015,7 +6078,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "unable to update trustdb version record: write failed: %s\n"
-msgstr "záznam dôvery %lu, typ %d: zápis zlyhal: %s\n"
+msgstr "záznam dôvery %lu, typ %d: zápis zlyhal: %s\n"
 
 msgid "undefined"
 msgstr ""
@@ -6046,15 +6109,15 @@ msgstr ""
 
 #, fuzzy
 msgid "[ revoked]"
-msgstr "[revokované]"
+msgstr "[revokované]"
 
 #, fuzzy
 msgid "[ expired]"
-msgstr "[expirované]"
+msgstr "[expirované]"
 
 #, fuzzy
 msgid "[ unknown]"
-msgstr "neznáme"
+msgstr "neznáme"
 
 msgid "[  undef ]"
 msgstr ""
@@ -6077,17 +6140,17 @@ msgid ""
 "Please remember that the signature file (.sig or .asc)\n"
 "should be the first file given on the command line.\n"
 msgstr ""
-"podpis nebolo mo¾né overi».\n"
-"Prosím, nezabúdajte, ¾e súbor s podpisom (.sig alebo .asc)\n"
-"by mal by» prvým súborom zadaným na príkazovom riadku.\n"
+"podpis nebolo možné overiť.\n"
+"Prosím, nezabúdajte, že súbor s podpisom (.sig alebo .asc)\n"
+"by mal byť prvým súborom zadaným na príkazovom riadku.\n"
 
 #, c-format
 msgid "input line %u too long or missing LF\n"
-msgstr "vstupný riadok %u je príli¹ dlhý alebo na konci chýba znak LF\n"
+msgstr "vstupný riadok %u je príliš dlhý alebo na konci chýba znak LF\n"
 
 #, fuzzy, c-format
 msgid "can't open fd %d: %s\n"
-msgstr "nemô¾em otvori» `%s': %s\n"
+msgstr "nemôžem otvoriť `%s': %s\n"
 
 msgid "set debugging flags"
 msgstr ""
@@ -6097,13 +6160,13 @@ msgstr ""
 
 #, fuzzy
 msgid "Usage: kbxutil [options] [files] (-h for help)"
-msgstr "Pou¾itie: gpg [mo¾nosti] [súbory] (-h pre pomoc)"
+msgstr "Použitie: gpg [možnosti] [súbory] (-h pre pomoc)"
 
 #, fuzzy
 msgid ""
 "Syntax: kbxutil [options] [files]\n"
 "List, export, import Keybox data\n"
-msgstr "Pou¾itie: gpg [mo¾nosti] [súbory] (-h pre pomoc)"
+msgstr "Použitie: gpg [možnosti] [súbory] (-h pre pomoc)"
 
 #, c-format
 msgid "RSA modulus missing or not of size %d bits\n"
@@ -6122,19 +6185,19 @@ msgstr ""
 
 #, fuzzy
 msgid "|N|Please enter a new PIN for the standard keys."
-msgstr "zmeni» heslo"
+msgstr "zmeniť heslo"
 
 #, fuzzy
 msgid "||Please enter the PIN for the standard keys."
-msgstr "zmeni» heslo"
+msgstr "zmeniť heslo"
 
 #, fuzzy
 msgid "|NP|Please enter a new PIN Unblocking Code (PUK) for the standard keys."
-msgstr "Prosím výberte dôvod na revokáciu:\n"
+msgstr "Prosím výberte dôvod na revokáciu:\n"
 
 #, fuzzy
 msgid "|P|Please enter the PIN Unblocking Code (PUK) for the standard keys."
-msgstr "Prosím výberte dôvod na revokáciu:\n"
+msgstr "Prosím výberte dôvod na revokáciu:\n"
 
 msgid "|N|Please enter a new PIN for the key to create qualified signatures."
 msgstr ""
@@ -6154,22 +6217,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting new PIN: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to store the fingerprint: %s\n"
-msgstr "nemô¾em inicializova» databázu dôvery: %s\n"
+msgstr "nemôžem inicializovať databázu dôvery: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to store the creation date: %s\n"
-msgstr "zlyhalo obnovenie vyrovnávacej pamäti kµúèov: %s\n"
-
-#, fuzzy, c-format
-msgid "reading public key failed: %s\n"
-msgstr "zmazanie bloku kµúèa sa nepodarilo:  %s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr ""
+msgstr "zlyhalo obnovenie vyrovnávacej pamäti kľúčov: %s\n"
 
 msgid "response does not contain the RSA modulus\n"
 msgstr ""
@@ -6177,9 +6233,18 @@ msgstr ""
 msgid "response does not contain the RSA public exponent\n"
 msgstr ""
 
-msgid "response does not contain the EC public point\n"
+#, fuzzy
+#| msgid "remove keys from the public keyring"
+msgid "response does not contain the EC public key\n"
+msgstr "odstrániť kľúč zo súboru verejných kľúčov"
+
+msgid "response does not contain the public key data\n"
 msgstr ""
 
+#, fuzzy, c-format
+msgid "reading public key failed: %s\n"
+msgstr "zmazanie bloku kľúča sa nepodarilo:  %s\n"
+
 #, c-format
 msgid "using default PIN as %s\n"
 msgstr ""
@@ -6194,7 +6259,7 @@ msgstr ""
 
 #, fuzzy
 msgid "||Please enter the PIN"
-msgstr "zmeni» heslo"
+msgstr "zmeniť heslo"
 
 #, c-format
 msgid "PIN for CHV%d is too short; minimum length is %d\n"
@@ -6202,7 +6267,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "verify CHV%d failed: %s\n"
-msgstr "nepodarilo posla» kµúè na server: %s\n"
+msgstr "nepodarilo poslať kľúč na server: %s\n"
 
 msgid "error retrieving CHV status from card\n"
 msgstr ""
@@ -6221,18 +6286,18 @@ msgstr[1] ""
 #. the start of the string.  Use %%0A to force a linefeed.
 #, fuzzy, c-format
 msgid "|A|Please enter the Admin PIN%%0A[remaining attempts: %d]"
-msgstr "zmeni» heslo"
+msgstr "zmeniť heslo"
 
 #, fuzzy
 msgid "|A|Please enter the Admin PIN"
-msgstr "zmeni» heslo"
+msgstr "zmeniť heslo"
 
 msgid "access to admin commands is not configured\n"
 msgstr ""
 
 #, fuzzy
 msgid "||Please enter the Reset Code for the card"
-msgstr "Prosím výberte dôvod na revokáciu:\n"
+msgstr "Prosím výberte dôvod na revokáciu:\n"
 
 #, c-format
 msgid "Reset Code is too short; minimum length is %d\n"
@@ -6252,34 +6317,34 @@ msgstr ""
 
 #, fuzzy
 msgid "||Please enter the Admin PIN and New Admin PIN"
-msgstr "zmeni» heslo"
+msgstr "zmeniť heslo"
 
 #, fuzzy
 msgid "||Please enter the PIN and New PIN"
-msgstr "zmeni» heslo"
+msgstr "zmeniť heslo"
 
 #, fuzzy
 msgid "error reading application data\n"
-msgstr "chyba pri èítaní bloku kµúèa: %s\n"
+msgstr "chyba pri čítaní bloku kľúča: %s\n"
 
 #, fuzzy
 msgid "error reading fingerprint DO\n"
-msgstr "%s: chyba pri èítaní voµného záznamu: %s\n"
+msgstr "%s: chyba pri čítaní voľného záznamu: %s\n"
 
 #, fuzzy
 msgid "key already exists\n"
-msgstr "`%s' je u¾ skomprimovaný\n"
+msgstr "`%s' je už skomprimovaný\n"
 
 msgid "existing key will be replaced\n"
 msgstr ""
 
 #, fuzzy
 msgid "generating new key\n"
-msgstr "vytvori» nový pár kµúèov"
+msgstr "vytvoriť nový pár kľúčov"
 
 #, fuzzy
 msgid "writing new key\n"
-msgstr "vytvori» nový pár kµúèov"
+msgstr "vytvoriť nový pár kľúčov"
 
 msgid "creation timestamp missing\n"
 msgstr ""
@@ -6290,25 +6355,25 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "failed to store the key: %s\n"
-msgstr "nemô¾em inicializova» databázu dôvery: %s\n"
+msgstr "nemôžem inicializovať databázu dôvery: %s\n"
 
 #, fuzzy
 #| msgid "unsupported URI"
 msgid "unsupported curve\n"
-msgstr "toto URI nie je podporované"
+msgstr "toto URI nie je podporované"
 
 msgid "please wait while key is being generated ...\n"
 msgstr ""
 
 #, fuzzy
 msgid "generating key failed\n"
-msgstr "zmazanie bloku kµúèa sa nepodarilo:  %s\n"
+msgstr "zmazanie bloku kľúča sa nepodarilo:  %s\n"
 
 #, fuzzy, c-format
 msgid "key generation completed (%d second)\n"
 msgid_plural "key generation completed (%d seconds)\n"
-msgstr[0] "Vytvorenie kµúèa sa nepodarilo: %s\n"
-msgstr[1] "Vytvorenie kµúèa sa nepodarilo: %s\n"
+msgstr[0] "Vytvorenie kľúča sa nepodarilo: %s\n"
+msgstr[1] "Vytvorenie kľúča sa nepodarilo: %s\n"
 
 msgid "invalid structure of OpenPGP card (DO 0x93)\n"
 msgstr ""
@@ -6318,7 +6383,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "card does not support digest algorithm %s\n"
-msgstr "%s podpis, hashovací algoritmus %s\n"
+msgstr "%s podpis, hashovací algoritmus %s\n"
 
 #, c-format
 msgid "signatures created so far: %lu\n"
@@ -6330,11 +6395,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "can't access %s - invalid OpenPGP card?\n"
-msgstr "nenájdené ¾iadne platné dáta vo formáte OpenPGP.\n"
+msgstr "nenájdené žiadne platné dáta vo formáte OpenPGP.\n"
 
 #, fuzzy
 msgid "||Please enter your PIN at the reader's pinpad"
-msgstr "zmeni» heslo"
+msgstr "zmeniť heslo"
 
 #. TRANSLATORS: Do not translate the "|*|" prefixes but
 #. keep it at the start of the string.  We need this elsewhere
@@ -6350,22 +6415,22 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|write a log to FILE"
-msgstr "|SÚBOR|nahra» roz¹irujúci modul SÚBOR"
+msgstr "|SÚBOR|nahrať rozširujúci modul SÚBOR"
 
 msgid "|N|connect to reader at port N"
 msgstr ""
 
 #, fuzzy
 msgid "|NAME|use NAME as ct-API driver"
-msgstr "|MENO|pou¾i» MENO ako implicitného adresáta"
+msgstr "|MENO|použiť MENO ako implicitného adresáta"
 
 #, fuzzy
 msgid "|NAME|use NAME as PC/SC driver"
-msgstr "|MENO|pou¾i» MENO ako implicitného adresáta"
+msgstr "|MENO|použiť MENO ako implicitného adresáta"
 
 #, fuzzy
 msgid "do not use the internal CCID driver"
-msgstr "vôbec nepou¾íva» terminál"
+msgstr "vôbec nepoužívať terminál"
 
 msgid "|N|disconnect the card after N seconds of inactivity"
 msgstr ""
@@ -6375,14 +6440,14 @@ msgstr ""
 
 #, fuzzy
 msgid "deny the use of admin card commands"
-msgstr "konfliktné príkazy\n"
+msgstr "konfliktné príkazy\n"
 
 msgid "use variable length input for pinpad"
 msgstr ""
 
 #, fuzzy
 msgid "Usage: @SCDAEMON@ [options] (-h for help)"
-msgstr "Pou¾itie: gpg [mo¾nosti] [súbory] (-h pre pomoc)"
+msgstr "Použitie: gpg [možnosti] [súbory] (-h pre pomoc)"
 
 msgid ""
 "Syntax: scdaemon [options] [command [args]]\n"
@@ -6402,11 +6467,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid radix64 character %02x skipped\n"
-msgstr "neplatný znak vo formáte radix64 %02x bol preskoèený\n"
+msgstr "neplatný znak vo formáte radix64 %02x bol preskočený\n"
 
 #, fuzzy
 msgid "no dirmngr running in this session\n"
-msgstr "gpg-agent nie je v tomto sedení dostupný\n"
+msgstr "gpg-agent nie je v tomto sedení dostupný\n"
 
 #, c-format
 msgid "validation model requested by certificate: %s"
@@ -6421,7 +6486,7 @@ msgstr "help"
 
 #, fuzzy, c-format
 msgid "critical certificate extension %s is not supported"
-msgstr "gpg-agent protokol verzie %d nie je podporovaný\n"
+msgstr "gpg-agent protokol verzie %d nie je podporovaný\n"
 
 msgid "issuer certificate is not marked as a CA"
 msgstr ""
@@ -6431,15 +6496,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "failed to open '%s': %s\n"
-msgstr "nemô¾em otvori» `%s': %s\n"
+msgstr "nemôžem otvoriť `%s': %s\n"
 
 #, fuzzy
 msgid "Note: non-critical certificate policy not allowed"
-msgstr "zapisujem tajný kµúè do `%s'\n"
+msgstr "zapisujem tajný kľúč do `%s'\n"
 
 #, fuzzy
 msgid "certificate policy not allowed"
-msgstr "zapisujem tajný kµúè do `%s'\n"
+msgstr "zapisujem tajný kľúč do `%s'\n"
 
 msgid "looking up issuer at external location\n"
 msgstr ""
@@ -6453,19 +6518,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "number of matching certificates: %d\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, fuzzy, c-format
 msgid "dirmngr cache-only key lookup failed: %s\n"
-msgstr "zmazanie bloku kµúèa sa nepodarilo:  %s\n"
+msgstr "zmazanie bloku kľúča sa nepodarilo:  %s\n"
 
 #, fuzzy
 msgid "failed to allocate keyDB handle\n"
-msgstr "nemô¾em inicializova» databázu dôvery: %s\n"
+msgstr "nemôžem inicializovať databázu dôvery: %s\n"
 
 #, fuzzy
 msgid "certificate has been revoked"
-msgstr "POZNÁMKA: kµúè bol revokovaný"
+msgstr "POZNÁMKA: kľúč bol revokovaný"
 
 msgid "the status of the certificate is unknown"
 msgstr ""
@@ -6475,7 +6540,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "checking the CRL failed: %s"
-msgstr "kontrola vytvoreného podpisu sa nepodarila: %s\n"
+msgstr "kontrola vytvoreného podpisu sa nepodarila: %s\n"
 
 #, c-format
 msgid "certificate with invalid validity: %s"
@@ -6486,22 +6551,22 @@ msgstr ""
 
 #, fuzzy
 msgid "root certificate not yet valid"
-msgstr "zapisujem tajný kµúè do `%s'\n"
+msgstr "zapisujem tajný kľúč do `%s'\n"
 
 msgid "intermediate certificate not yet valid"
 msgstr ""
 
 #, fuzzy
 msgid "certificate has expired"
-msgstr "Platnos» kµúèa vypr¹ala!"
+msgstr "Platnosť kľúča vypršala!"
 
 #, fuzzy
 msgid "root certificate has expired"
-msgstr "Platnos» kµúèa vypr¹ala!"
+msgstr "Platnosť kľúča vypršala!"
 
 #, fuzzy
 msgid "intermediate certificate has expired"
-msgstr "Platnos» kµúèa vypr¹ala!"
+msgstr "Platnosť kľúča vypršala!"
 
 #, c-format
 msgid "required certificate attributes missing: %s%s%s"
@@ -6509,7 +6574,7 @@ msgstr ""
 
 #, fuzzy
 msgid "certificate with invalid validity"
-msgstr "Platnos» kµúèa vypr¹ala!"
+msgstr "Platnosť kľúča vypršala!"
 
 msgid "signature not created during lifetime of certificate"
 msgstr ""
@@ -6522,22 +6587,22 @@ msgstr ""
 
 #, fuzzy
 msgid "  (  signature created at "
-msgstr "               nové podpisy: %lu\n"
+msgstr "               nové podpisy: %lu\n"
 
 #, fuzzy
 msgid "  (certificate created at "
-msgstr "Revokaèný certifikát bol vytvorený.\n"
+msgstr "Revokačný certifikát bol vytvorený.\n"
 
 #, fuzzy
 msgid "  (certificate valid from "
-msgstr "nesprávny certifikát"
+msgstr "nesprávny certifikát"
 
 msgid "  (     issuer valid from "
 msgstr ""
 
 #, fuzzy, c-format
 msgid "fingerprint=%s\n"
-msgstr "vypísa» fingerprint"
+msgstr "vypísať fingerprint"
 
 msgid "root certificate has now been marked as trusted\n"
 msgstr ""
@@ -6553,7 +6618,7 @@ msgstr ""
 
 #, fuzzy
 msgid "no issuer found in certificate"
-msgstr "vytvori» revokaèný certifikát"
+msgstr "vytvoriť revokačný certifikát"
 
 msgid "self-signed certificate has a BAD signature"
 msgstr ""
@@ -6563,7 +6628,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "checking the trust list failed: %s\n"
-msgstr "kontrola vytvoreného podpisu sa nepodarila: %s\n"
+msgstr "kontrola vytvoreného podpisu sa nepodarila: %s\n"
 
 msgid "certificate chain too long\n"
 msgstr ""
@@ -6573,7 +6638,7 @@ msgstr ""
 
 #, fuzzy
 msgid "certificate has a BAD signature"
-msgstr "verifikova» podpis"
+msgstr "verifikovať podpis"
 
 msgid "found another possible matching CA certificate - trying again"
 msgstr ""
@@ -6584,15 +6649,15 @@ msgstr ""
 
 #, fuzzy
 msgid "certificate is good\n"
-msgstr "duplicita predvoµby %c%lu\n"
+msgstr "duplicita predvoľby %c%lu\n"
 
 #, fuzzy
 msgid "intermediate certificate is good\n"
-msgstr "Revokaèný certifikát bol vytvorený.\n"
+msgstr "Revokačný certifikát bol vytvorený.\n"
 
 #, fuzzy
 msgid "root certificate is good\n"
-msgstr "nesprávny certifikát"
+msgstr "nesprávny certifikát"
 
 msgid "switching to chain model"
 msgstr ""
@@ -6614,7 +6679,7 @@ msgstr "nie"
 
 #, fuzzy
 msgid "[Error - invalid encoding]"
-msgstr "chyba: neplatný odtlaèok\n"
+msgstr "chyba: neplatný odtlačok\n"
 
 msgid "[Error - out of core]"
 msgstr ""
@@ -6624,7 +6689,7 @@ msgstr ""
 
 #, fuzzy
 msgid "[Error - invalid DN]"
-msgstr "chyba: neplatný odtlaèok\n"
+msgstr "chyba: neplatný odtlačok\n"
 
 #, fuzzy, c-format
 msgid ""
@@ -6634,16 +6699,16 @@ msgid ""
 "S/N %s, ID 0x%08lX,\n"
 "created %s, expires %s.\n"
 msgstr ""
-"Potrebujete heslo, aby ste odomkli tajný kµúè pre u¾ívateµa:\n"
+"Potrebujete heslo, aby ste odomkli tajný kľúč pre užívateľa:\n"
 "\"%.*s\"\n"
-"kµúè s då¾kou %u bitov, typ %s, ID %08lX, vytvorený %s%s\n"
+"kľúč s dĺžkou %u bitov, typ %s, ID %08lX, vytvorený %s%s\n"
 
 msgid "no key usage specified - assuming all usages\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting key usage information: %s\n"
-msgstr "chyba pri zápise do súboru tajných kµúèov `%s': %s\n"
+msgstr "chyba pri zápise do súboru tajných kľúčov `%s': %s\n"
 
 msgid "certificate should not have been used for certification\n"
 msgstr ""
@@ -6665,7 +6730,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "line %d: invalid algorithm\n"
-msgstr "neplatný hashovací algoritmus `%s'\n"
+msgstr "neplatný hashovací algoritmus `%s'\n"
 
 #, c-format
 msgid "line %d: invalid key length %u (valid are %d to %d)\n"
@@ -6677,19 +6742,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "line %d: invalid subject name label '%.*s'\n"
-msgstr "neplatný hashovací algoritmus `%s'\n"
+msgstr "neplatný hashovací algoritmus `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid subject name '%s' at pos %d\n"
-msgstr "neplatný hashovací algoritmus `%s'\n"
+msgstr "neplatný hashovací algoritmus `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: not a valid email address\n"
-msgstr "Neplatná e-mailová adresa\n"
+msgstr "Neplatná e-mailová adresa\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid serial number\n"
-msgstr "neplatný hashovací algoritmus `%s'\n"
+msgstr "neplatný hashovací algoritmus `%s'\n"
 
 #, c-format
 msgid "line %d: invalid issuer name label '%.*s'\n"
@@ -6701,39 +6766,39 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "line %d: invalid date given\n"
-msgstr "neplatný hashovací algoritmus `%s'\n"
+msgstr "neplatný hashovací algoritmus `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: error getting signing key by keygrip '%s': %s\n"
-msgstr "chyba pri vytváraní súboru kµúèov (keyring)`%s': %s\n"
+msgstr "chyba pri vytváraní súboru kľúčov (keyring)`%s': %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid hash algorithm given\n"
-msgstr "neplatný hashovací algoritmus `%s'\n"
+msgstr "neplatný hashovací algoritmus `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid authority-key-id\n"
-msgstr "neplatný hashovací algoritmus `%s'\n"
+msgstr "neplatný hashovací algoritmus `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid subject-key-id\n"
-msgstr "kµúè %08lX: neplatná väzba podkµúèa\n"
+msgstr "kľúč %08lX: neplatná väzba podkľúča\n"
 
 #, fuzzy, c-format
 msgid "line %d: invalid extension syntax\n"
-msgstr "neplatný hashovací algoritmus `%s'\n"
+msgstr "neplatný hashovací algoritmus `%s'\n"
 
 #, fuzzy, c-format
 msgid "line %d: error reading key '%s' from card: %s\n"
-msgstr "chyba pri vytváraní súboru kµúèov (keyring)`%s': %s\n"
+msgstr "chyba pri vytváraní súboru kľúčov (keyring)`%s': %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: error getting key by keygrip '%s': %s\n"
-msgstr "chyba pri vytváraní súboru kµúèov (keyring)`%s': %s\n"
+msgstr "chyba pri vytváraní súboru kľúčov (keyring)`%s': %s\n"
 
 #, fuzzy, c-format
 msgid "line %d: key generation failed: %s <%s>\n"
-msgstr "Vytvorenie kµúèa sa nepodarilo: %s\n"
+msgstr "Vytvorenie kľúča sa nepodarilo: %s\n"
 
 msgid ""
 "To complete this certificate request please enter the passphrase for the key "
@@ -6746,7 +6811,7 @@ msgstr "   (%d) RSA (len na podpis)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) Existing key\n"
-msgstr "   (%d) RSA (len na ¹ifrovanie)\n"
+msgstr "   (%d) RSA (len na šifrovanie)\n"
 
 #, c-format
 msgid "   (%d) Existing key from card\n"
@@ -6754,15 +6819,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error reading the card: %s\n"
-msgstr "%s: chyba pri èítaní voµného záznamu: %s\n"
+msgstr "%s: chyba pri čítaní voľného záznamu: %s\n"
 
 #, fuzzy, c-format
 msgid "Serial number of the card: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, fuzzy
 msgid "Available keys:\n"
-msgstr "nastavi» kµúè ako neplatný (disable)"
+msgstr "nastaviť kľúč ako neplatný (disable)"
 
 #, c-format
 msgid "Possible actions for a %s key:\n"
@@ -6770,7 +6835,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "   (%d) sign, encrypt\n"
-msgstr "   (%d) RSA (pro ¹ifrování a podpis)\n"
+msgstr "   (%d) RSA (pro šifrování a podpis)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) sign\n"
@@ -6778,18 +6843,18 @@ msgstr "   (%d) DSA (len na podpis)\n"
 
 #, fuzzy, c-format
 msgid "   (%d) encrypt\n"
-msgstr "   (%d) RSA (len na ¹ifrovanie)\n"
+msgstr "   (%d) RSA (len na šifrovanie)\n"
 
 msgid "Enter the X.509 subject name: "
 msgstr ""
 
 #, fuzzy
 msgid "No subject name given\n"
-msgstr "(®iadny popis)\n"
+msgstr "(Žiadny popis)\n"
 
 #, fuzzy, c-format
 msgid "Invalid subject name label '%.*s'\n"
-msgstr "neplatný hashovací algoritmus `%s'\n"
+msgstr "neplatný hashovací algoritmus `%s'\n"
 
 #. TRANSLATORS: The 22 in the second string is the
 #. length of the first string up to the "%s".  Please
@@ -6798,35 +6863,35 @@ msgstr "neplatn
 #. drop everything after the number.
 #, fuzzy, c-format
 msgid "Invalid subject name '%s'\n"
-msgstr "neplatný hashovací algoritmus `%s'\n"
+msgstr "neplatný hashovací algoritmus `%s'\n"
 
 msgid "22 translator: see certreg-ui.c:gpgsm_gencertreq_tty"
 msgstr ""
 
 #, fuzzy
 msgid "Enter email addresses"
-msgstr "E-mailová adresa: "
+msgstr "E-mailová adresa: "
 
 #, fuzzy
 msgid " (end with an empty line):\n"
 msgstr ""
 "\n"
-"Napí¹te identifikátor u¾ívateµa (user ID). Ukonèite prázdnym riadkom: "
+"Napíšte identifikátor užívateľa (user ID). Ukončite prázdnym riadkom: "
 
 #, fuzzy
 msgid "Enter DNS names"
-msgstr "Vlo¾te nový názov súboru"
+msgstr "Vložte nový názov súboru"
 
 #, fuzzy
 msgid " (optional; end with an empty line):\n"
-msgstr "Ak chcete, napí¹te popis; ukonèite prázdnym riadkom:\n"
+msgstr "Ak chcete, napíšte popis; ukončite prázdnym riadkom:\n"
 
 msgid "Enter URIs"
 msgstr ""
 
 #, fuzzy
 msgid "Create self-signed certificate? (y/N) "
-msgstr "Vytvori» pre tento podpis revokaèný certifikát? "
+msgstr "Vytvoriť pre tento podpis revokačný certifikát? "
 
 msgid "These parameters are used:\n"
 msgstr ""
@@ -6837,7 +6902,7 @@ msgstr ""
 #, fuzzy
 #| msgid "Revocation certificate created.\n"
 msgid "Now creating certificate request.  "
-msgstr "Revokaèný certifikát bol vytvorený.\n"
+msgstr "Revokačný certifikát bol vytvorený.\n"
 
 msgid "This may take a while ...\n"
 msgstr ""
@@ -6859,43 +6924,43 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "certificate '%s' not found: %s\n"
-msgstr "kµúè `%s' nebol nájdený: %s\n"
+msgstr "kľúč `%s' nebol nájdený: %s\n"
 
 #, fuzzy, c-format
 msgid "error locking keybox: %s\n"
-msgstr "chyba pri èítaní bloku kµúèa: %s\n"
+msgstr "chyba pri čítaní bloku kľúča: %s\n"
 
 #, fuzzy, c-format
 msgid "duplicated certificate '%s' deleted\n"
-msgstr "Revokaèný certifikát bol vytvorený.\n"
+msgstr "Revokačný certifikát bol vytvorený.\n"
 
 #, fuzzy, c-format
 msgid "certificate '%s' deleted\n"
-msgstr "duplicita predvoµby %c%lu\n"
+msgstr "duplicita predvoľby %c%lu\n"
 
 #, fuzzy, c-format
 msgid "deleting certificate \"%s\" failed: %s\n"
-msgstr "zmazanie bloku kµúèa sa nepodarilo:  %s\n"
+msgstr "zmazanie bloku kľúča sa nepodarilo:  %s\n"
 
 #, fuzzy
 msgid "no valid recipients given\n"
-msgstr "(®iadny popis)\n"
+msgstr "(Žiadny popis)\n"
 
 #, fuzzy
 msgid "list external keys"
-msgstr "vypísa» zoznam tajných kµúèov"
+msgstr "vypísať zoznam tajných kľúčov"
 
 #, fuzzy
 msgid "list certificate chain"
-msgstr "nesprávny certifikát"
+msgstr "nesprávny certifikát"
 
 #, fuzzy
 msgid "import certificates"
-msgstr "nesprávny certifikát"
+msgstr "nesprávny certifikát"
 
 #, fuzzy
 msgid "export certificates"
-msgstr "nesprávny certifikát"
+msgstr "nesprávny certifikát"
 
 msgid "register a smartcard"
 msgstr ""
@@ -6908,7 +6973,7 @@ msgstr ""
 
 #, fuzzy
 msgid "create base-64 encoded output"
-msgstr "vytvor výstup zakódovaný pomocou ASCII"
+msgstr "vytvor výstup zakódovaný pomocou ASCII"
 
 msgid "assume input is in PEM format"
 msgstr ""
@@ -6938,50 +7003,50 @@ msgid "fetch missing issuer certificates"
 msgstr ""
 
 msgid "don't use the terminal at all"
-msgstr "vôbec nepou¾íva» terminál"
+msgstr "vôbec nepoužívať terminál"
 
 msgid "|FILE|write a server mode log to FILE"
 msgstr ""
 
 #, fuzzy
 msgid "|FILE|write an audit log to FILE"
-msgstr "|SÚBOR|nahra» roz¹irujúci modul SÚBOR"
+msgstr "|SÚBOR|nahrať rozširujúci modul SÚBOR"
 
 msgid "batch mode: never ask"
-msgstr "dávkový re¾im: nikdy sa na niè nepýta»"
+msgstr "dávkový režim: nikdy sa na nič nepýtať"
 
 msgid "assume yes on most questions"
-msgstr "automaticky odpoveda» áno na väè¹inu otázok"
+msgstr "automaticky odpovedať áno na väčšinu otázok"
 
 msgid "assume no on most questions"
-msgstr "automaticky odpoveda» NIE na väè¹inu otázok"
+msgstr "automaticky odpovedať NIE na väčšinu otázok"
 
 #, fuzzy
 msgid "|FILE|add keyring to the list of keyrings"
 msgstr ""
-"prida» tento súbor kµúèov do zoznamu\n"
-" pou¾ívaných súborov kµúèov"
+"pridať tento súbor kľúčov do zoznamu\n"
+" používaných súborov kľúčov"
 
 #, fuzzy
 msgid "|USER-ID|use USER-ID as default secret key"
-msgstr "|MENO|pou¾i MENO ako implicitný tajný kµúè"
+msgstr "|MENO|použi MENO ako implicitný tajný kľúč"
 
 #, fuzzy
 msgid "|SPEC|use this keyserver to lookup keys"
 msgstr ""
-"|POÈÍTAÈ|pou¾i tento server kµúèov na vyhµadávanie\n"
-" kµúèov"
+"|POČÍTAČ|použi tento server kľúčov na vyhľadávanie\n"
+" kľúčov"
 
 msgid "|NAME|use cipher algorithm NAME"
-msgstr "|ALG|pou¾i» ¹ifrovací algoritmus ALG"
+msgstr "|ALG|použiť šifrovací algoritmus ALG"
 
 msgid "|NAME|use message digest algorithm NAME"
-msgstr "|ALG|pou¾i» hashovací algoritmus ALG"
+msgstr "|ALG|použiť hashovací algoritmus ALG"
 
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: @GPGSM@ [options] [files] (-h for help)"
-msgstr "Pou¾itie: gpg [mo¾nosti] [súbory] (-h pre pomoc)"
+msgstr "Použitie: gpg [možnosti] [súbory] (-h pre pomoc)"
 
 #, fuzzy
 msgid ""
@@ -6989,21 +7054,21 @@ msgid ""
 "Sign, check, encrypt or decrypt using the S/MIME protocol\n"
 "Default operation depends on the input data\n"
 msgstr ""
-"Syntax: gpg [mo¾nosti] [súbory]\n"
-"podpísa», overi», ¹ifrova» alebo de¹ifrova»\n"
-"implicitné operácie závisia od vstupných dát\n"
+"Syntax: gpg [možnosti] [súbory]\n"
+"podpísať, overiť, šifrovať alebo dešifrovať\n"
+"implicitné operácie závisia od vstupných dát\n"
 
 #, fuzzy, c-format
 msgid "Note: won't be able to encrypt to '%s': %s\n"
-msgstr "nemô¾em sa pripoji» k `%s': %s\n"
+msgstr "nemôžem sa pripojiť k `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "unknown validation model '%s'\n"
-msgstr "neznámy implicitný adresát `%s'\n"
+msgstr "neznámy implicitný adresát `%s'\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: no hostname given\n"
-msgstr "(®iadny popis)\n"
+msgstr "(Žiadny popis)\n"
 
 #, c-format
 msgid "%s:%u: password given without user\n"
@@ -7011,11 +7076,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "%s:%u: skipping this line\n"
-msgstr " s = preskoèi» tento kµúè\n"
+msgstr " s = preskočiť tento kľúč\n"
 
 #, fuzzy
 msgid "could not parse keyserver\n"
-msgstr "nemo¾no pou¾i» URI servera kµúèov - chyba analýzy URI\n"
+msgstr "nemožno použiť URI servera kľúčov - chyba analýzy URI\n"
 
 #, fuzzy, c-format
 msgid "importing common certificates '%s'\n"
@@ -7023,37 +7088,37 @@ msgstr "zapisujem do '%s'\n"
 
 #, fuzzy, c-format
 msgid "can't sign using '%s': %s\n"
-msgstr "nemô¾em zavrie» `%s': %s\n"
+msgstr "nemôžem zavrieť `%s': %s\n"
 
 msgid "invalid command (there is no implicit command)\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "total number processed: %lu\n"
-msgstr "Celkovo spracovaných kµúèov: %lu\n"
+msgstr "Celkovo spracovaných kľúčov: %lu\n"
 
 #, fuzzy
 msgid "error storing certificate\n"
-msgstr "vytvori» revokaèný certifikát"
+msgstr "vytvoriť revokačný certifikát"
 
 msgid "basic certificate checks failed - not imported\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting stored flags: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, fuzzy, c-format
 msgid "error importing certificate: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, fuzzy, c-format
 msgid "error reading input: %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy
 msgid "failed to get the fingerprint\n"
-msgstr "nemô¾em inicializova» databázu dôvery: %s\n"
+msgstr "nemôžem inicializovať databázu dôvery: %s\n"
 
 #, c-format
 msgid "problem looking for existing certificate: %s\n"
@@ -7061,19 +7126,19 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error finding writable keyDB: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, fuzzy, c-format
 msgid "error storing certificate: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, fuzzy, c-format
 msgid "problem re-searching certificate: %s\n"
-msgstr "rev? problém overenia revokácie: %s\n"
+msgstr "rev? problém overenia revokácie: %s\n"
 
 #, fuzzy, c-format
 msgid "error storing flags: %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 msgid "Error - "
 msgstr ""
@@ -7083,11 +7148,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid formatted fingerprint in '%s', line %d\n"
-msgstr "chyba: neplatný odtlaèok\n"
+msgstr "chyba: neplatný odtlačok\n"
 
 #, fuzzy, c-format
 msgid "invalid country code in '%s', line %d\n"
-msgstr "chyba: neplatný odtlaèok\n"
+msgstr "chyba: neplatný odtlačok\n"
 
 #, c-format
 msgid ""
@@ -7113,7 +7178,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "hash algorithm %d (%s) for signer %d not supported; using %s\n"
-msgstr "ochranný algoritmus %d%s nie je podporováný\n"
+msgstr "ochranný algoritmus %d%s nie je podporováný\n"
 
 #, c-format
 msgid "hash algorithm used for signer %d: %s (%s)\n"
@@ -7121,18 +7186,18 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "checking for qualified certificate failed: %s\n"
-msgstr "kontrola vytvoreného podpisu sa nepodarila: %s\n"
+msgstr "kontrola vytvoreného podpisu sa nepodarila: %s\n"
 
 #, fuzzy
 msgid "Signature made "
-msgstr "Platnos» podpisu vypr¹ala %s\n"
+msgstr "Platnosť podpisu vypršala %s\n"
 
 msgid "[date not given]"
 msgstr ""
 
 #, fuzzy, c-format
 msgid " using certificate ID 0x%08lX\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 msgid ""
 "invalid signature: message digest attribute does not match computed one\n"
@@ -7140,7 +7205,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Good signature from"
-msgstr "Dobrý podpis od \""
+msgstr "Dobrý podpis od \""
 
 #, fuzzy
 msgid "                aka"
@@ -7150,11 +7215,11 @@ msgstr "                alias \""
 msgid "This is a qualified signature\n"
 msgstr ""
 "\n"
-"Ide o podpis kµúèa ním samým\n"
+"Ide o podpis kľúča ním samým\n"
 
 #, fuzzy, c-format
 msgid "can't initialize certificate cache lock: %s\n"
-msgstr "kontrola vytvoreného podpisu sa nepodarila: %s\n"
+msgstr "kontrola vytvoreného podpisu sa nepodarila: %s\n"
 
 #, c-format
 msgid "can't acquire read lock on the certificate cache: %s\n"
@@ -7175,23 +7240,23 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "can't create `%s': %s\n"
 msgid "can't parse certificate '%s': %s\n"
-msgstr "nemô¾em vytvori» `%s': %s\n"
+msgstr "nemôžem vytvoriť `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "certificate '%s' already cached\n"
-msgstr "duplicita predvoµby %c%lu\n"
+msgstr "duplicita predvoľby %c%lu\n"
 
 #, fuzzy, c-format
 msgid "trusted certificate '%s' loaded\n"
-msgstr "Revokaèný certifikát bol vytvorený.\n"
+msgstr "Revokačný certifikát bol vytvorený.\n"
 
 #, fuzzy, c-format
 msgid "certificate '%s' loaded\n"
-msgstr "duplicita predvoµby %c%lu\n"
+msgstr "duplicita predvoľby %c%lu\n"
 
 #, fuzzy, c-format
 msgid "  SHA1 fingerprint = %s\n"
-msgstr "vypísa» fingerprint"
+msgstr "vypísať fingerprint"
 
 msgid "   issuer ="
 msgstr ""
@@ -7201,103 +7266,103 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error loading certificate '%s': %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, fuzzy, c-format
 msgid "permanently loaded certificates: %u\n"
-msgstr "nesprávny certifikát"
+msgstr "nesprávny certifikát"
 
 #, fuzzy, c-format
 msgid "    runtime cached certificates: %u\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, fuzzy
 msgid "certificate already cached\n"
-msgstr "Revokaèný certifikát bol vytvorený.\n"
+msgstr "Revokačný certifikát bol vytvorený.\n"
 
 #, fuzzy
 msgid "certificate cached\n"
-msgstr "duplicita predvoµby %c%lu\n"
+msgstr "duplicita predvoľby %c%lu\n"
 
 #, fuzzy, c-format
 msgid "error caching certificate: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, fuzzy, c-format
 msgid "invalid SHA1 fingerprint string '%s'\n"
-msgstr "chyba: neplatný odtlaèok\n"
+msgstr "chyba: neplatný odtlačok\n"
 
 #, fuzzy, c-format
 msgid "error fetching certificate by S/N: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, fuzzy, c-format
 msgid "error fetching certificate by subject: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, fuzzy
 msgid "no issuer found in certificate\n"
-msgstr "vytvori» revokaèný certifikát"
+msgstr "vytvoriť revokačný certifikát"
 
 #, fuzzy, c-format
 msgid "error getting authorityKeyIdentifier: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't create directory `%s': %s\n"
 msgid "creating directory '%s'\n"
-msgstr "nemô¾em vytvori» adresár `%s': %s\n"
+msgstr "nemôžem vytvoriť adresár `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error creating directory '%s': %s\n"
-msgstr "chyba pri vytváraní súboru kµúèov (keyring)`%s': %s\n"
+msgstr "chyba pri vytváraní súboru kľúčov (keyring)`%s': %s\n"
 
 #, fuzzy, c-format
 msgid "ignoring database dir '%s'\n"
-msgstr "chyba v pätièke\n"
+msgstr "chyba v pätičke\n"
 
 #, fuzzy, c-format
 msgid "error reading directory '%s': %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "removing cache file '%s'\n"
-msgstr "zmazanie bloku kµúèa sa nepodarilo:  %s\n"
+msgstr "zmazanie bloku kľúča sa nepodarilo:  %s\n"
 
 #, fuzzy, c-format
 #| msgid "enarmoring failed: %s\n"
 msgid "not removing file '%s'\n"
-msgstr "kódovanie do ASCII formátu zlyhalo: %s\n"
+msgstr "kódovanie do ASCII formátu zlyhalo: %s\n"
 
 #, fuzzy, c-format
 msgid "error closing cache file: %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "failed to open cache dir file '%s': %s\n"
-msgstr "nemô¾em otvori» `%s': %s\n"
+msgstr "nemôžem otvoriť `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error creating new cache dir file '%s': %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing secret keyring `%s': %s\n"
 msgid "error writing new cache dir file '%s': %s\n"
-msgstr "chyba pri zápise do súboru tajných kµúèov `%s': %s\n"
+msgstr "chyba pri zápise do súboru tajných kľúčov `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error closing new cache dir file '%s': %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "new configuration file `%s' created\n"
 msgid "new cache dir file '%s' created\n"
-msgstr "vytvorený nový konfiguraèný súbor `%s'\n"
+msgstr "vytvorený nový konfiguračný súbor `%s'\n"
 
 #, fuzzy, c-format
 msgid "failed to re-open cache dir file '%s': %s\n"
-msgstr "nemô¾em vytvori» adresár `%s': %s\n"
+msgstr "nemôžem vytvoriť adresár `%s': %s\n"
 
 #, c-format
 msgid "first record of '%s' is not the version\n"
@@ -7315,11 +7380,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid line detected in '%s' line %u\n"
-msgstr "chyba: neplatný odtlaèok\n"
+msgstr "chyba: neplatný odtlačok\n"
 
 #, fuzzy, c-format
 msgid "duplicate entry detected in '%s' line %u\n"
-msgstr "Revokaèný certifikát bol vytvorený.\n"
+msgstr "Revokačný certifikát bol vytvorený.\n"
 
 #, c-format
 msgid "unsupported record type in '%s' line %u skipped\n"
@@ -7327,20 +7392,20 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "invalid issuer hash in '%s' line %u\n"
-msgstr "chyba: neplatný odtlaèok\n"
+msgstr "chyba: neplatný odtlačok\n"
 
 #, fuzzy, c-format
 msgid "no issuer DN in '%s' line %u\n"
-msgstr "chyba pri èítaní: %s\n"
+msgstr "chyba pri čítaní: %s\n"
 
 #, fuzzy, c-format
 msgid "invalid timestamp in '%s' line %u\n"
-msgstr "chyba: neplatný odtlaèok\n"
+msgstr "chyba: neplatný odtlačok\n"
 
 #, fuzzy, c-format
 #| msgid "WARNING: invalid size of random_seed file - not used\n"
 msgid "WARNING: invalid cache file hash in '%s' line %u\n"
-msgstr "varovanie: neplatná veµkos» random_seed - súbor nepou¾itý\n"
+msgstr "varovanie: neplatná veľkosť random_seed - súbor nepoužitý\n"
 
 msgid "detected errors in cache dir file\n"
 msgstr ""
@@ -7350,32 +7415,32 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "failed to create temporary cache dir file '%s': %s\n"
-msgstr "nemô¾em vytvori» adresár `%s': %s\n"
+msgstr "nemôžem vytvoriť adresár `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error closing '%s': %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error reading `%s': %s\n"
 msgid "error renaming '%s' to '%s': %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "can't hash '%s': %s\n"
-msgstr "nemô¾em zavrie» `%s': %s\n"
+msgstr "nemôžem zavrieť `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error setting up MD5 hash context: %s\n"
-msgstr "chyba pri posielaní na `%s': %s\n"
+msgstr "chyba pri posielaní na `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error hashing '%s': %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "invalid formatted checksum for '%s'\n"
-msgstr "chyba: neplatný odtlaèok\n"
+msgstr "chyba: neplatný odtlačok\n"
 
 msgid "too many open cache files; can't open anymore\n"
 msgstr ""
@@ -7386,7 +7451,7 @@ msgstr "podpisovanie zlyhalo: %s\n"
 
 #, fuzzy, c-format
 msgid "error opening cache file '%s': %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, c-format
 msgid "error initializing cache file '%s' for reading: %s\n"
@@ -7400,12 +7465,12 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "failed to create a new cache object: %s\n"
-msgstr "%s: nepodarilo sa vytvori» hashovaciu tabuµku: %s\n"
+msgstr "%s: nepodarilo sa vytvoriť hashovaciu tabuľku: %s\n"
 
 #, fuzzy, c-format
 #| msgid "No help available for `%s'"
 msgid "no CRL available for issuer id %s\n"
-msgstr "Pomoc nie je dostupná pre '%s'"
+msgstr "Pomoc nie je dostupná pre '%s'"
 
 #, c-format
 msgid "cached CRL for issuer id %s too old; update required\n"
@@ -7434,7 +7499,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "problem reading cache record for S/N %s: %s\n"
-msgstr "chyba pri vytváraní súboru kµúèov (keyring)`%s': %s\n"
+msgstr "chyba pri vytváraní súboru kľúčov (keyring)`%s': %s\n"
 
 #, c-format
 msgid "S/N %s is not valid; reason=%02X  date=%.15s\n"
@@ -7446,12 +7511,12 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting data from cache file: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, fuzzy, c-format
 #| msgid "invalid hash algorithm `%s'\n"
 msgid "unknown hash algorithm '%s'\n"
-msgstr "neplatný hashovací algoritmus `%s'\n"
+msgstr "neplatný hashovací algoritmus `%s'\n"
 
 #, c-format
 msgid "gcry_md_open for algorithm %d failed: %s\n"
@@ -7460,15 +7525,15 @@ msgstr ""
 #, fuzzy
 #| msgid "invalid response from agent\n"
 msgid "got an invalid S-expression from libksba\n"
-msgstr "neplatná reakcia od agenta\n"
+msgstr "neplatná reakcia od agenta\n"
 
 #, fuzzy, c-format
 msgid "converting S-expression failed: %s\n"
-msgstr "nemo¾no otvori» súbor: %s\n"
+msgstr "nemožno otvoriť súbor: %s\n"
 
 #, fuzzy, c-format
 msgid "creating S-expression failed: %s\n"
-msgstr "zmazanie bloku kµúèa sa nepodarilo:  %s\n"
+msgstr "zmazanie bloku kľúča sa nepodarilo:  %s\n"
 
 #, fuzzy, c-format
 #| msgid "build_packet failed: %s\n"
@@ -7477,7 +7542,7 @@ msgstr "build_packet zlyhala: %s\n"
 
 #, fuzzy, c-format
 msgid "error getting update times of CRL: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, c-format
 msgid "update times of this CRL: this=%s next=%s\n"
@@ -7488,7 +7553,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting CRL item: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, fuzzy, c-format
 msgid "error inserting item into temporary cache file: %s\n"
@@ -7496,7 +7561,7 @@ msgstr "zapisujem do '%s'\n"
 
 #, fuzzy, c-format
 msgid "no CRL issuer found in CRL: %s\n"
-msgstr "vytvori» revokaèný certifikát"
+msgstr "vytvoriť revokačný certifikát"
 
 msgid "locating CRL issuer certificate by authorityKeyIdentifier\n"
 msgstr ""
@@ -7504,36 +7569,36 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "signature verification suppressed\n"
 msgid "CRL signature verification failed: %s\n"
-msgstr "verifikácia podpisu potlaèená\n"
+msgstr "verifikácia podpisu potlačená\n"
 
 #, fuzzy, c-format
 msgid "error checking validity of CRL issuer certificate: %s\n"
-msgstr "kontrola vytvoreného podpisu sa nepodarila: %s\n"
+msgstr "kontrola vytvoreného podpisu sa nepodarila: %s\n"
 
 #, fuzzy, c-format
 msgid "ksba_crl_new failed: %s\n"
-msgstr "zmazanie bloku kµúèa sa nepodarilo:  %s\n"
+msgstr "zmazanie bloku kľúča sa nepodarilo:  %s\n"
 
 #, fuzzy, c-format
 msgid "ksba_crl_set_reader failed: %s\n"
-msgstr "aktualizácia zlyhala: %s\n"
+msgstr "aktualizácia zlyhala: %s\n"
 
 #, fuzzy, c-format
 msgid "removed stale temporary cache file '%s'\n"
-msgstr "nemô¾em vytvori» adresár `%s': %s\n"
+msgstr "nemôžem vytvoriť adresár `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "problem removing stale temporary cache file '%s': %s\n"
-msgstr "nemô¾em vytvori» adresár `%s': %s\n"
+msgstr "nemôžem vytvoriť adresár `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error creating temporary cache file '%s': %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, fuzzy, c-format
 #| msgid "update secret failed: %s\n"
 msgid "crl_parse_insert failed: %s\n"
-msgstr "aktualizácia tajného kµúèa zlyhala: %s\n"
+msgstr "aktualizácia tajného kľúča zlyhala: %s\n"
 
 #, fuzzy, c-format
 msgid "error finishing temporary cache file '%s': %s\n"
@@ -7541,7 +7606,7 @@ msgstr "zapisujem do '%s'\n"
 
 #, fuzzy, c-format
 msgid "error closing temporary cache file '%s': %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, c-format
 msgid "WARNING: new CRL still too old; it expired on %s - loading anyway\n"
@@ -7557,15 +7622,15 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error reading CRL extensions: %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "creating cache file '%s'\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, fuzzy, c-format
 msgid "problem renaming '%s' to '%s': %s\n"
-msgstr "kódovanie do ASCII formátu zlyhalo: %s\n"
+msgstr "kódovanie do ASCII formátu zlyhalo: %s\n"
 
 msgid ""
 "updating the DIR file failed - cache entry will get lost with the next "
@@ -7594,34 +7659,34 @@ msgstr ""
 #, fuzzy
 #| msgid "WARNING: invalid size of random_seed file - not used\n"
 msgid " WARNING: invalid cache record length\n"
-msgstr "varovanie: neplatná veµkos» random_seed - súbor nepou¾itý\n"
+msgstr "varovanie: neplatná veľkosť random_seed - súbor nepoužitý\n"
 
 #, fuzzy, c-format
 msgid "problem reading cache record: %s\n"
-msgstr "%s: chyba pri èítaní voµného záznamu: %s\n"
+msgstr "%s: chyba pri čítaní voľného záznamu: %s\n"
 
 #, fuzzy, c-format
 msgid "problem reading cache key: %s\n"
-msgstr "rev? problém overenia revokácie: %s\n"
+msgstr "rev? problém overenia revokácie: %s\n"
 
 #, fuzzy, c-format
 msgid "error reading cache entry from db: %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 msgid "End CRL dump\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "crl_fetch via DP failed: %s\n"
-msgstr "aktualizácia zlyhala: %s\n"
+msgstr "aktualizácia zlyhala: %s\n"
 
 #, fuzzy, c-format
 msgid "crl_cache_insert via DP failed: %s\n"
-msgstr "kontrola vytvoreného podpisu sa nepodarila: %s\n"
+msgstr "kontrola vytvoreného podpisu sa nepodarila: %s\n"
 
 #, fuzzy, c-format
 msgid "crl_cache_insert via issuer failed: %s\n"
-msgstr "zmazanie bloku kµúèa sa nepodarilo:  %s\n"
+msgstr "zmazanie bloku kľúča sa nepodarilo:  %s\n"
 
 msgid "reader to file mapping table full - waiting\n"
 msgstr ""
@@ -7636,7 +7701,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "%s: error writing dir record: %s\n"
 msgid "error initializing reader object: %s\n"
-msgstr "%s: chyba pri zápise adresárového záznamu: %s\n"
+msgstr "%s: chyba pri zápise adresárového záznamu: %s\n"
 
 #, c-format
 msgid "URL '%s' redirected to '%s' (%u)\n"
@@ -7644,23 +7709,23 @@ msgstr ""
 
 #, fuzzy
 msgid "too many redirections\n"
-msgstr "príli¹ veµa `%c' predvolieb\n"
+msgstr "príliš veľa `%c' predvolieb\n"
 
 #, fuzzy, c-format
 msgid "error retrieving '%s': %s\n"
-msgstr "chyba pri vytváraní `%s': %s\n"
+msgstr "chyba pri vytváraní `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error retrieving '%s': http status %u\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy
 msgid "CRL access not possible due to Tor mode\n"
-msgstr "kµúè `%s' nebol nájdený: %s\n"
+msgstr "kľúč `%s' nebol nájdený: %s\n"
 
 #, fuzzy, c-format
 msgid "certificate search not possible due to disabled %s\n"
-msgstr "kµúè `%s' nebol nájdený: %s\n"
+msgstr "kľúč `%s' nebol nájdený: %s\n"
 
 msgid "use OCSP instead of CRLs"
 msgstr ""
@@ -7670,19 +7735,19 @@ msgstr ""
 
 #, fuzzy
 msgid "add a certificate to the cache"
-msgstr "Revokaèný certifikát bol vytvorený.\n"
+msgstr "Revokačný certifikát bol vytvorený.\n"
 
 #, fuzzy
 msgid "validate a certificate"
-msgstr "nesprávny certifikát"
+msgstr "nesprávny certifikát"
 
 #, fuzzy
 msgid "lookup a certificate"
-msgstr "nesprávny certifikát"
+msgstr "nesprávny certifikát"
 
 #, fuzzy
 msgid "lookup only locally stored certificates"
-msgstr "nesprávny certifikát"
+msgstr "nesprávny certifikát"
 
 msgid "expect an URL for --lookup"
 msgstr ""
@@ -7695,17 +7760,17 @@ msgstr ""
 
 #, fuzzy
 msgid "expect certificates in PEM format"
-msgstr "nesprávny certifikát"
+msgstr "nesprávny certifikát"
 
 #, fuzzy
 #| msgid "Enter the user ID of the designated revoker: "
 msgid "force the use of the default OCSP responder"
-msgstr "Vlo¾te identifikátor u¾ívateµa povereného revokáciou: "
+msgstr "Vložte identifikátor užívateľa povereného revokáciou: "
 
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: dirmngr-client [options] [certfile|pattern] (-h for help)\n"
-msgstr "Pou¾itie: gpg [mo¾nosti] [súbory] (-h pre pomoc)"
+msgstr "Použitie: gpg [možnosti] [súbory] (-h pre pomoc)"
 
 msgid ""
 "Syntax: dirmngr-client [options] [certfile|pattern]\n"
@@ -7716,11 +7781,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error reading certificate from stdin: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, fuzzy, c-format
 msgid "error reading certificate from '%s': %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 msgid "certificate too large to make any sense\n"
 msgstr ""
@@ -7728,51 +7793,51 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to the dirmngr: %s\n"
-msgstr "nemô¾em sa pripoji» k `%s': %s\n"
+msgstr "nemôžem sa pripojiť k `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "update failed: %s\n"
 msgid "lookup failed: %s\n"
-msgstr "aktualizácia zlyhala: %s\n"
+msgstr "aktualizácia zlyhala: %s\n"
 
 #, fuzzy, c-format
 msgid "loading CRL '%s' failed: %s\n"
-msgstr "kódovanie do ASCII formátu zlyhalo: %s\n"
+msgstr "kódovanie do ASCII formátu zlyhalo: %s\n"
 
 msgid "a dirmngr daemon is up and running\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "validation of certificate failed: %s\n"
-msgstr "zmazanie bloku kµúèa sa nepodarilo:  %s\n"
+msgstr "zmazanie bloku kľúča sa nepodarilo:  %s\n"
 
 #, fuzzy
 msgid "certificate is valid\n"
-msgstr "duplicita predvoµby %c%lu\n"
+msgstr "duplicita predvoľby %c%lu\n"
 
 #, fuzzy
 msgid "certificate has been revoked\n"
-msgstr "POZNÁMKA: kµúè bol revokovaný"
+msgstr "POZNÁMKA: kľúč bol revokovaný"
 
 #, fuzzy, c-format
 msgid "certificate check failed: %s\n"
-msgstr "zmazanie bloku kµúèa sa nepodarilo:  %s\n"
+msgstr "zmazanie bloku kľúča sa nepodarilo:  %s\n"
 
 #, fuzzy, c-format
 #| msgid "can't stat `%s': %s\n"
 msgid "got status: '%s'\n"
-msgstr "nemô¾em pou¾i» príkaz stat na `%s': %s\n"
+msgstr "nemôžem použiť príkaz stat na `%s': %s\n"
 
 #, fuzzy, c-format
 #| msgid "error writing secret keyring `%s': %s\n"
 msgid "error writing base64 encoding: %s\n"
-msgstr "chyba pri zápise do súboru tajných kµúèov `%s': %s\n"
+msgstr "chyba pri zápise do súboru tajných kľúčov `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "unsupported inquiry '%s'\n"
 msgstr ""
 "\n"
-"Podporované algoritmy:\n"
+"Podporované algoritmy:\n"
 
 msgid "absolute file name expected\n"
 msgstr ""
@@ -7786,7 +7851,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|load CRL from FILE into cache"
-msgstr "|SÚBOR|nahra» roz¹irujúci modul SÚBOR"
+msgstr "|SÚBOR|nahrať rozširujúci modul SÚBOR"
 
 msgid "|URL|fetch a CRL from URL"
 msgstr ""
@@ -7802,7 +7867,7 @@ msgstr ""
 
 #, fuzzy
 msgid "run without asking a user"
-msgstr "Ukonèi» bez ulo¾enia? "
+msgstr "UkonÄ\8diÅ¥ bez uloženia? "
 
 msgid "force loading of outdated CRLs"
 msgstr ""
@@ -7810,6 +7875,9 @@ msgstr ""
 msgid "allow sending OCSP requests"
 msgstr ""
 
+msgid "allow online software version check"
+msgstr ""
+
 msgid "inhibit the use of HTTP"
 msgstr ""
 
@@ -7836,7 +7904,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|read LDAP server list from FILE"
-msgstr "|SÚBOR|nahra» roz¹irujúci modul SÚBOR"
+msgstr "|SÚBOR|nahrať rozširujúci modul SÚBOR"
 
 msgid "add new servers discovered in CRL distribution points to serverlist"
 msgstr ""
@@ -7846,7 +7914,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|URL|use OCSP responder at URL"
-msgstr "nemo¾no pou¾i» URI servera kµúèov - chyba analýzy URI\n"
+msgstr "nemožno použiť URI servera kľúčov - chyba analýzy URI\n"
 
 msgid "|FPR|OCSP response signed by FPR"
 msgstr ""
@@ -7870,12 +7938,12 @@ msgid ""
 "options)\n"
 msgstr ""
 "@\n"
-"(Pou¾ite manuálové stránky pre kompletný zoznam v¹etkých príkazov a "
-"mo¾ností)\n"
+"(Použite manuálové stránky pre kompletný zoznam všetkých príkazov a "
+"možností)\n"
 
 #, fuzzy
 msgid "Usage: @DIRMNGR@ [options] (-h for help)"
-msgstr "Pou¾itie: gpg [mo¾nosti] [súbory] (-h pre pomoc)"
+msgstr "Použitie: gpg [možnosti] [súbory] (-h pre pomoc)"
 
 msgid ""
 "Syntax: @DIRMNGR@ [options] [command [args]]\n"
@@ -7888,32 +7956,32 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "usage: %s [options] "
-msgstr "pou¾itie: gpg [mo¾nosti] "
+msgstr "použitie: gpg [možnosti] "
 
 #, fuzzy
 #| msgid "%s not allowed with %s!\n"
 msgid "colons are not allowed in the socket name\n"
-msgstr "Nie je dovolené pou¾íva» %s s %s!\n"
+msgstr "Nie je dovolené používať %s s %s!\n"
 
 #, fuzzy, c-format
 msgid "fetching CRL from '%s' failed: %s\n"
-msgstr "kódovanie do ASCII formátu zlyhalo: %s\n"
+msgstr "kódovanie do ASCII formátu zlyhalo: %s\n"
 
 #, fuzzy, c-format
 msgid "processing CRL from '%s' failed: %s\n"
-msgstr "kódovanie do ASCII formátu zlyhalo: %s\n"
+msgstr "kódovanie do ASCII formátu zlyhalo: %s\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: line too long - skipped\n"
-msgstr "riadok je príli¹ dlhý\n"
+msgstr "riadok je príliš dlhý\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: invalid fingerprint detected\n"
-msgstr "chyba: neplatný odtlaèok\n"
+msgstr "chyba: neplatný odtlačok\n"
 
 #, fuzzy, c-format
 msgid "%s:%u: read error: %s\n"
-msgstr "chyba pri èítaní: %s\n"
+msgstr "chyba pri čítaní: %s\n"
 
 #, c-format
 msgid "%s:%u: garbage at end of line ignored\n"
@@ -7934,7 +8002,7 @@ msgstr ""
 
 #, fuzzy
 msgid "shutdown forced\n"
-msgstr "nespracované"
+msgstr "nespracované"
 
 msgid "SIGINT received - immediate shutdown\n"
 msgstr ""
@@ -7952,7 +8020,7 @@ msgstr ""
 #, fuzzy
 #| msgid "|NAME|set terminal charset to NAME"
 msgid "|NAME|connect to host NAME"
-msgstr "|MENO|nastav znakovú sadu terminálu na MENO"
+msgstr "|MENO|nastav znakovú sadu terminálu na MENO"
 
 msgid "|N|connect to port N"
 msgstr ""
@@ -7960,7 +8028,7 @@ msgstr ""
 #, fuzzy
 #| msgid "|NAME|use NAME as default recipient"
 msgid "|NAME|use user NAME for authentication"
-msgstr "|MENO|pou¾i» MENO ako implicitného adresáta"
+msgstr "|MENO|použiť MENO ako implicitného adresáta"
 
 msgid "|PASS|use password PASS for authentication"
 msgstr ""
@@ -7980,7 +8048,7 @@ msgstr ""
 #, fuzzy
 #| msgid "Usage: gpg [options] [files] (-h for help)"
 msgid "Usage: dirmngr_ldap [options] [URL] (-h for help)\n"
-msgstr "Pou¾itie: gpg [mo¾nosti] [súbory] (-h pre pomoc)"
+msgstr "Použitie: gpg [možnosti] [súbory] (-h pre pomoc)"
 
 msgid ""
 "Syntax: dirmngr_ldap [options] [URL]\n"
@@ -7991,7 +8059,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "invalid import options\n"
 msgid "invalid port number %d\n"
-msgstr "neplatný parameter pre import\n"
+msgstr "neplatný parameter pre import\n"
 
 #, c-format
 msgid "scanning result for attribute '%s'\n"
@@ -7999,7 +8067,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error writing to stdout: %s\n"
-msgstr "chyba pri zápise súboru kµúèov (keyring)  `%s': %s\n"
+msgstr "chyba pri zápise súboru kľúčov (keyring)  `%s': %s\n"
 
 #, c-format
 msgid "          available attribute '%s'\n"
@@ -8007,7 +8075,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "attribute '%s' not found\n"
-msgstr "kµúè `%s' nebol nájdený: %s\n"
+msgstr "kľúč `%s' nebol nájdený: %s\n"
 
 #, c-format
 msgid "found attribute '%s'\n"
@@ -8016,12 +8084,12 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "reading from `%s'\n"
 msgid "processing url '%s'\n"
-msgstr "èítam z `%s'\n"
+msgstr "čítam z `%s'\n"
 
 #, fuzzy, c-format
 #| msgid "          w/o user IDs: %lu\n"
 msgid "          user '%s'\n"
-msgstr "        bez identifikátorov: %lu\n"
+msgstr "        bez identifikátorov: %lu\n"
 
 #, fuzzy, c-format
 msgid "          pass '%s'\n"
@@ -8034,7 +8102,7 @@ msgstr "                alias \""
 #, fuzzy, c-format
 #| msgid "          not imported: %lu\n"
 msgid "          port %d\n"
-msgstr "           neimportované: %lu\n"
+msgstr "           neimportované: %lu\n"
 
 #, fuzzy, c-format
 msgid "            DN '%s'\n"
@@ -8050,7 +8118,7 @@ msgstr "                alias \""
 
 #, fuzzy, c-format
 msgid "no host name in '%s'\n"
-msgstr "(®iadny popis)\n"
+msgstr "(Žiadny popis)\n"
 
 #, c-format
 msgid "no attribute given for query '%s'\n"
@@ -8059,44 +8127,40 @@ msgstr ""
 #, fuzzy
 #| msgid "WARNING: using insecure memory!\n"
 msgid "WARNING: using first attribute only\n"
-msgstr "VAROVANIE: Pou¾ívaná pamä» nie je bezpeèná!\n"
+msgstr "VAROVANIE: Používaná pamäť nie je bezpečná!\n"
 
 #, fuzzy, c-format
 msgid "LDAP init to '%s:%d' failed: %s\n"
-msgstr "kódovanie do ASCII formátu zlyhalo: %s\n"
+msgstr "kódovanie do ASCII formátu zlyhalo: %s\n"
 
 #, fuzzy, c-format
 msgid "binding to '%s:%d' failed: %s\n"
-msgstr "kódovanie do ASCII formátu zlyhalo: %s\n"
+msgstr "kódovanie do ASCII formátu zlyhalo: %s\n"
 
 #, fuzzy, c-format
 #| msgid "dearmoring failed: %s\n"
 msgid "searching '%s' failed: %s\n"
-msgstr "dekódovanie z ASCII formátu zlyhalo: %s\n"
+msgstr "dekódovanie z ASCII formátu zlyhalo: %s\n"
 
 #, fuzzy, c-format
 msgid "'%s' is not an LDAP URL\n"
-msgstr "\"%s\" nie je súbor JPEG\n"
+msgstr "\"%s\" nie je súbor JPEG\n"
 
 #, c-format
 msgid "'%s' is an invalid LDAP URL\n"
 msgstr ""
 
 #, fuzzy, c-format
-msgid "error allocating memory: %s\n"
-msgstr "chyba pri vytváraní súboru kµúèov (keyring)`%s': %s\n"
-
-#, fuzzy, c-format
 msgid "error printing log line: %s\n"
-msgstr "chyba pri zápise súboru kµúèov (keyring)  `%s': %s\n"
+msgstr "chyba pri zápise súboru kľúčov (keyring)  `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error reading log from ldap wrapper %d: %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "npth_select failed: %s - waiting 1s\n"
-msgstr "aktualizácia tajného kµúèa zlyhala: %s\n"
+msgstr "aktualizácia tajného kľúča zlyhala: %s\n"
 
 #, c-format
 msgid "ldap wrapper %d ready"
@@ -8112,7 +8176,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "waiting for ldap wrapper %d failed: %s\n"
-msgstr "aktualizácia zlyhala: %s\n"
+msgstr "aktualizácia zlyhala: %s\n"
 
 #, c-format
 msgid "ldap wrapper %d stalled - killing\n"
@@ -8124,7 +8188,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "reading from ldap wrapper %d failed: %s\n"
-msgstr "zmazanie bloku kµúèa sa nepodarilo:  %s\n"
+msgstr "zmazanie bloku kľúča sa nepodarilo:  %s\n"
 
 #, c-format
 msgid "invalid char 0x%02x in host name - not added\n"
@@ -8132,11 +8196,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "adding '%s:%d' to the ldap server list\n"
-msgstr "vyhµadávam \"%s\" na HKP serveri %s\n"
+msgstr "vyhľadávam \"%s\" na HKP serveri %s\n"
 
 #, fuzzy, c-format
 msgid "malloc failed: %s\n"
-msgstr "zmazanie bloku kµúèa sa nepodarilo:  %s\n"
+msgstr "zmazanie bloku kľúča sa nepodarilo:  %s\n"
 
 #, c-format
 msgid "start_cert_fetch: invalid pattern '%s'\n"
@@ -8148,23 +8212,23 @@ msgstr ""
 #, fuzzy
 #| msgid "%s: invalid file version %d\n"
 msgid "invalid canonical S-expression found\n"
-msgstr "%s: neplatná verzia súboru %d\n"
+msgstr "%s: neplatná verzia súboru %d\n"
 
 #, fuzzy, c-format
 msgid "gcry_md_open failed: %s\n"
-msgstr "nemo¾no otvori» súbor: %s\n"
+msgstr "nemožno otvoriť súbor: %s\n"
 
 #, fuzzy, c-format
 #| msgid "update secret failed: %s\n"
 msgid "oops: ksba_cert_hash failed: %s\n"
-msgstr "aktualizácia tajného kµúèa zlyhala: %s\n"
+msgstr "aktualizácia tajného kľúča zlyhala: %s\n"
 
 msgid "bad URL encoding detected\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error reading from responder: %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, c-format
 msgid "response from server too large; limit is %d bytes\n"
@@ -8172,34 +8236,34 @@ msgstr ""
 
 #, fuzzy
 msgid "OCSP request not possible due to Tor mode\n"
-msgstr "kµúè `%s' nebol nájdený: %s\n"
+msgstr "kľúč `%s' nebol nájdený: %s\n"
 
 msgid "OCSP request not possible due to disabled HTTP\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "error setting OCSP target: %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error building OCSP request: %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error connecting to '%s': %s\n"
-msgstr "chyba pri zápise súboru kµúèov (keyring)  `%s': %s\n"
+msgstr "chyba pri zápise súboru kľúčov (keyring)  `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error reading HTTP response for '%s': %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error accessing '%s': http status %u\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error parsing OCSP response for '%s': %s\n"
-msgstr "chyba pri posielaní na `%s': %s\n"
+msgstr "chyba pri posielaní na `%s': %s\n"
 
 #, c-format
 msgid "OCSP responder at '%s' status: %s\n"
@@ -8207,7 +8271,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "hashing the OCSP response for '%s' failed: %s\n"
-msgstr "kontrola vytvoreného podpisu sa nepodarila: %s\n"
+msgstr "kontrola vytvoreného podpisu sa nepodarila: %s\n"
 
 msgid "not signed by a default OCSP signer's certificate"
 msgstr ""
@@ -8217,34 +8281,34 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "allocating list item failed: %s\n"
-msgstr "zmazanie bloku kµúèa sa nepodarilo:  %s\n"
+msgstr "zmazanie bloku kľúča sa nepodarilo:  %s\n"
 
 #, fuzzy, c-format
 msgid "error getting responder ID: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 msgid "no suitable certificate found to verify the OCSP response\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "issuer certificate not found: %s\n"
-msgstr "kµúè `%s' nebol nájdený: %s\n"
+msgstr "kľúč `%s' nebol nájdený: %s\n"
 
 msgid "caller did not return the target certificate\n"
 msgstr ""
 
 #, fuzzy
 msgid "caller did not return the issuing certificate\n"
-msgstr "vytvori» revokaèný certifikát"
+msgstr "vytvoriť revokačný certifikát"
 
 #, fuzzy, c-format
 msgid "failed to allocate OCSP context: %s\n"
-msgstr "nemô¾em inicializova» databázu dôvery: %s\n"
+msgstr "nemôžem inicializovať databázu dôvery: %s\n"
 
 #, fuzzy, c-format
 #| msgid "%s: can't access: %s\n"
 msgid "can't get authorityInfoAccess: %s\n"
-msgstr "%s: nemô¾em pristupova» k: %s\n"
+msgstr "%s: nemôžem pristupovať k: %s\n"
 
 msgid "no default OCSP responder defined\n"
 msgstr ""
@@ -8252,7 +8316,7 @@ msgstr ""
 #, fuzzy
 #| msgid "no default secret keyring: %s\n"
 msgid "no default OCSP signer defined\n"
-msgstr "nie je nastavený implicitný súbor tajných kµúèov %s\n"
+msgstr "nie je nastavený implicitný súbor tajných kľúčov %s\n"
 
 #, c-format
 msgid "using default OCSP responder '%s'\n"
@@ -8261,7 +8325,7 @@ msgstr ""
 #, fuzzy, c-format
 #| msgid "using cipher %s\n"
 msgid "using OCSP responder '%s'\n"
-msgstr "pou¾itá ¹ifra %s\n"
+msgstr "použitá šifra %s\n"
 
 #, c-format
 msgid "failed to establish a hashing context for OCSP: %s\n"
@@ -8269,7 +8333,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "error getting OCSP status for target certificate: %s\n"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 #, c-format
 msgid "certificate status is: %s  (this=%s  next=%s)\n"
@@ -8280,7 +8344,7 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "certificate has been revoked at: %s due to: %s\n"
-msgstr "POZNÁMKA: kµúè bol revokovaný"
+msgstr "POZNÁMKA: kľúč bol revokovaný"
 
 msgid "OCSP responder returned a status in the future\n"
 msgstr ""
@@ -8307,19 +8371,19 @@ msgstr "podpisovanie zlyhalo: %s\n"
 
 #, fuzzy, c-format
 msgid "fetch_cert_by_url failed: %s\n"
-msgstr "zmazanie bloku kµúèa sa nepodarilo:  %s\n"
+msgstr "zmazanie bloku kľúča sa nepodarilo:  %s\n"
 
 #, fuzzy, c-format
 msgid "error sending data: %s\n"
-msgstr "chyba pri posielaní na `%s': %s\n"
+msgstr "chyba pri posielaní na `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "start_cert_fetch failed: %s\n"
-msgstr "zmazanie bloku kµúèa sa nepodarilo:  %s\n"
+msgstr "zmazanie bloku kľúča sa nepodarilo:  %s\n"
 
 #, fuzzy, c-format
 msgid "fetch_next_cert failed: %s\n"
-msgstr "zmazanie bloku kµúèa sa nepodarilo:  %s\n"
+msgstr "zmazanie bloku kľúča sa nepodarilo:  %s\n"
 
 #, c-format
 msgid "max_replies %d exceeded\n"
@@ -8327,20 +8391,20 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "can't allocate control structure: %s\n"
-msgstr "nemô¾em vytvori» `%s': %s\n"
+msgstr "nemôžem vytvoriť `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "failed to allocate assuan context: %s\n"
-msgstr "%s: nepodarilo sa vytvori» hashovaciu tabuµku: %s\n"
+msgstr "%s: nepodarilo sa vytvoriť hashovaciu tabuľku: %s\n"
 
 #, fuzzy, c-format
 #| msgid "failed to initialize the TrustDB: %s\n"
 msgid "failed to initialize the server: %s\n"
-msgstr "nemô¾em inicializova» databázu dôvery: %s\n"
+msgstr "nemôžem inicializovať databázu dôvery: %s\n"
 
 #, fuzzy, c-format
 msgid "failed to the register commands with Assuan: %s\n"
-msgstr "zlyhalo obnovenie vyrovnávacej pamäti kµúèov: %s\n"
+msgstr "zlyhalo obnovenie vyrovnávacej pamäti kľúčov: %s\n"
 
 #, c-format
 msgid "Assuan accept problem: %s\n"
@@ -8357,36 +8421,36 @@ msgstr ""
 #, fuzzy
 #| msgid "checking the trustdb\n"
 msgid "CRL checking too deeply nested\n"
-msgstr "kontrolujem databázu dôvery\n"
+msgstr "kontrolujem databázu dôvery\n"
 
 msgid "not checking CRL for"
 msgstr ""
 
 #, fuzzy
 msgid "checking CRL for"
-msgstr "kontrola vytvoreného podpisu sa nepodarila: %s\n"
+msgstr "kontrola vytvoreného podpisu sa nepodarila: %s\n"
 
 #, fuzzy
 msgid "selfsigned certificate has a BAD signature"
-msgstr "verifikova» podpis"
+msgstr "verifikovať podpis"
 
 #, fuzzy, c-format
 msgid "checking trustworthiness of root certificate failed: %s\n"
-msgstr "kontrola vytvoreného podpisu sa nepodarila: %s\n"
+msgstr "kontrola vytvoreného podpisu sa nepodarila: %s\n"
 
 #, fuzzy
 msgid "certificate chain is good\n"
-msgstr "duplicita predvoµby %c%lu\n"
+msgstr "duplicita predvoľby %c%lu\n"
 
 msgid "DSA requires the use of a 160 bit hash algorithm\n"
-msgstr "DSA po¾aduje pou¾itie 160 bitového hashovacieho algoritmu\n"
+msgstr "DSA požaduje použitie 160 bitového hashovacieho algoritmu\n"
 
 msgid "certificate should not have been used for CRL signing\n"
 msgstr ""
 
 #, fuzzy
 msgid "quiet"
-msgstr "ukonèi»"
+msgstr "ukončiť"
 
 msgid "print data out hex encoded"
 msgstr ""
@@ -8411,14 +8475,14 @@ msgstr ""
 
 #, fuzzy
 msgid "|FILE|run commands from FILE on startup"
-msgstr "|SÚBOR|nahra» roz¹irujúci modul SÚBOR"
+msgstr "|SÚBOR|nahrať rozširujúci modul SÚBOR"
 
 msgid "run /subst on startup"
 msgstr ""
 
 #, fuzzy
 msgid "Usage: @GPG@-connect-agent [options] (-h for help)"
-msgstr "Pou¾itie: gpg [mo¾nosti] [súbory] (-h pre pomoc)"
+msgstr "Použitie: gpg [možnosti] [súbory] (-h pre pomoc)"
 
 msgid ""
 "Syntax: @GPG@-connect-agent [options]\n"
@@ -8435,18 +8499,18 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "receiving line failed: %s\n"
-msgstr "zmazanie bloku kµúèa sa nepodarilo:  %s\n"
+msgstr "zmazanie bloku kľúča sa nepodarilo:  %s\n"
 
 #, fuzzy
 msgid "line too long - skipped\n"
-msgstr "riadok je príli¹ dlhý\n"
+msgstr "riadok je príliš dlhý\n"
 
 msgid "line shortened due to embedded Nul character\n"
 msgstr ""
 
 #, fuzzy, c-format
 msgid "unknown command '%s'\n"
-msgstr "neznámy implicitný adresát `%s'\n"
+msgstr "neznámy implicitný adresát `%s'\n"
 
 #, fuzzy, c-format
 msgid "sending line failed: %s\n"
@@ -8454,7 +8518,7 @@ msgstr "podpisovanie zlyhalo: %s\n"
 
 #, fuzzy, c-format
 msgid "error sending standard options: %s\n"
-msgstr "chyba pri posielaní na `%s': %s\n"
+msgstr "chyba pri posielaní na `%s': %s\n"
 
 msgid "Options controlling the diagnostic output"
 msgstr ""
@@ -8494,21 +8558,21 @@ msgstr ""
 
 #, fuzzy
 msgid "|N|expire the passphrase after N days"
-msgstr "|N|pou¾i» mód hesla N"
+msgstr "|N|použiť mód hesla N"
 
 #, fuzzy
 msgid "do not allow the reuse of old passphrases"
-msgstr "chyba pri vytváraní hesla: %s\n"
+msgstr "chyba pri vytváraní hesla: %s\n"
 
 msgid "|N|set the Pinentry timeout to N seconds"
 msgstr ""
 
 msgid "|NAME|use NAME as default secret key"
-msgstr "|MENO|pou¾i MENO ako implicitný tajný kµúè"
+msgstr "|MENO|použi MENO ako implicitný tajný kľúč"
 
 #, fuzzy
 msgid "|NAME|encrypt to user ID NAME as well"
-msgstr "|MENO|¹ifrova» pre MENO"
+msgstr "|MENO|šifrovať pre MENO"
 
 msgid "|SPEC|set up email aliases"
 msgstr ""
@@ -8518,7 +8582,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|URL|use keyserver at URL"
-msgstr "nemo¾no pou¾i» URI servera kµúèov - chyba analýzy URI\n"
+msgstr "nemožno použiť URI servera kľúčov - chyba analýzy URI\n"
 
 msgid "allow PKA lookups (DNS requests)"
 msgstr ""
@@ -8531,7 +8595,7 @@ msgstr ""
 
 #, fuzzy
 msgid "|NAME|use encoding NAME for PKCS#12 passphrases"
-msgstr "|ALG|pou¾i» ¹ifrovací algoritmus ALG pre heslá"
+msgstr "|ALG|použiť šifrovací algoritmus ALG pre heslá"
 
 msgid "do not check CRLs for root certificates"
 msgstr ""
@@ -8560,28 +8624,30 @@ msgstr ""
 msgid "Configuration for OCSP"
 msgstr ""
 
-msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr ""
 
-msgid "GPG Agent"
+msgid "Private Keys"
 msgstr ""
 
-msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr ""
 
-msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr ""
 
-msgid "Key Acquirer"
-msgstr ""
+#, fuzzy
+#| msgid "network error"
+msgid "Network"
+msgstr "chyba siete"
 
 #, fuzzy
-msgid "PIN and Passphrase Entry"
-msgstr "nesprávne heslo"
+msgid "Passphrase Entry"
+msgstr "nesprávne heslo"
 
 #, fuzzy
 msgid "Component not suitable for launching"
-msgstr "verejný kµúè nenájdený"
+msgstr "verejný kľúč nenájdený"
 
 #, c-format
 msgid "External verification of component %s failed"
@@ -8613,11 +8679,16 @@ msgstr ""
 
 #, fuzzy
 msgid "list global configuration file"
-msgstr "neznáma polo¾ka konfigurácie \"%s\"\n"
+msgstr "neznáma položka konfigurácie \"%s\"\n"
 
 #, fuzzy
 msgid "check global configuration file"
-msgstr "neznáma polo¾ka konfigurácie \"%s\"\n"
+msgstr "neznáma položka konfigurácie \"%s\"\n"
+
+#, fuzzy
+#| msgid "update the trust database"
+msgid "query the software version database"
+msgstr "aktualizovať databázu dôvery"
 
 msgid "reload all or a given component"
 msgstr ""
@@ -8629,14 +8700,14 @@ msgid "kill a given component"
 msgstr ""
 
 msgid "use as output file"
-msgstr "pou¾i» ako výstupný súbor"
+msgstr "použiť ako výstupný súbor"
 
 msgid "activate changes at runtime, if possible"
 msgstr ""
 
 #, fuzzy
 msgid "Usage: @GPGCONF@ [options] (-h for help)"
-msgstr "Pou¾itie: gpg [mo¾nosti] [súbory] (-h pre pomoc)"
+msgstr "Použitie: gpg [možnosti] [súbory] (-h pre pomoc)"
 
 msgid ""
 "Syntax: @GPGCONF@ [options]\n"
@@ -8648,11 +8719,11 @@ msgstr ""
 
 #, fuzzy
 msgid "Component not found"
-msgstr "verejný kµúè nenájdený"
+msgstr "verejný kľúč nenájdený"
 
 #, fuzzy
 msgid "No argument allowed"
-msgstr "zapisujem tajný kµúè do `%s'\n"
+msgstr "zapisujem tajný kľúč do `%s'\n"
 
 #, fuzzy
 msgid ""
@@ -8660,23 +8731,23 @@ msgid ""
 "Commands:\n"
 " "
 msgstr ""
-"@Príkazy:\n"
+"@Príkazy:\n"
 " "
 
 #, fuzzy
 msgid "decryption modus"
-msgstr "de¹ifrovanie o.k.\n"
+msgstr "dešifrovanie o.k.\n"
 
 #, fuzzy
 msgid "encryption modus"
-msgstr "de¹ifrovanie o.k.\n"
+msgstr "dešifrovanie o.k.\n"
 
 msgid "tool class (confucius)"
 msgstr ""
 
 #, fuzzy
 msgid "program filename"
-msgstr "--store [meno súboru]"
+msgstr "--store [meno súboru]"
 
 msgid "secret key file (required)"
 msgstr ""
@@ -8686,7 +8757,7 @@ msgstr ""
 
 #, fuzzy
 msgid "Usage: symcryptrun [options] (-h for help)"
-msgstr "Pou¾itie: gpg [mo¾nosti] [súbory] (-h pre pomoc)"
+msgstr "Použitie: gpg [možnosti] [súbory] (-h pre pomoc)"
 
 msgid ""
 "Syntax: symcryptrun --class CLASS --program PROGRAM --keyfile KEYFILE "
@@ -8696,35 +8767,35 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "%s on %s aborted with status %i\n"
-msgstr "Nie je dovolené pou¾íva» %s s %s!\n"
+msgstr "Nie je dovolené používať %s s %s!\n"
 
 #, fuzzy, c-format
 msgid "%s on %s failed with status %i\n"
-msgstr "nemo¾no otvori» súbor: %s\n"
+msgstr "nemožno otvoriť súbor: %s\n"
 
 #, fuzzy, c-format
 msgid "can't create temporary directory '%s': %s\n"
-msgstr "nemô¾em vytvori» adresár `%s': %s\n"
+msgstr "nemôžem vytvoriť adresár `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "could not open %s for writing: %s\n"
-msgstr "nemo¾no otvori» %s: %s\n"
+msgstr "nemožno otvoriť %s: %s\n"
 
 #, fuzzy, c-format
 msgid "error writing to %s: %s\n"
-msgstr "chyba pri zápise súboru kµúèov (keyring)  `%s': %s\n"
+msgstr "chyba pri zápise súboru kľúčov (keyring)  `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error reading from %s: %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "error closing %s: %s\n"
-msgstr "chyba pri èítaní `%s': %s\n"
+msgstr "chyba pri čítaní `%s': %s\n"
 
 #, fuzzy
 msgid "no --program option provided\n"
-msgstr "¾iadne vzialené vykonávanie programu nie je podporované\n"
+msgstr "žiadne vzialené vykonávanie programu nie je podporované\n"
 
 msgid "only --decrypt and --encrypt are supported\n"
 msgstr ""
@@ -8737,11 +8808,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "could not create pipe: %s\n"
-msgstr "%s: nemô¾em vytvori»: %s\n"
+msgstr "%s: nemôžem vytvoriť: %s\n"
 
 #, fuzzy, c-format
 msgid "could not create pty: %s\n"
-msgstr "%s: nemô¾em vytvori»: %s\n"
+msgstr "%s: nemôžem vytvoriť: %s\n"
 
 #, c-format
 msgid "could not fork: %s\n"
@@ -8749,23 +8820,23 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "execv failed: %s\n"
-msgstr "aktualizácia zlyhala: %s\n"
+msgstr "aktualizácia zlyhala: %s\n"
 
 #, fuzzy, c-format
 msgid "select failed: %s\n"
-msgstr "zmazanie bloku kµúèa sa nepodarilo:  %s\n"
+msgstr "zmazanie bloku kľúča sa nepodarilo:  %s\n"
 
 #, fuzzy, c-format
 msgid "read failed: %s\n"
-msgstr "aktualizácia zlyhala: %s\n"
+msgstr "aktualizácia zlyhala: %s\n"
 
 #, fuzzy, c-format
 msgid "pty read failed: %s\n"
-msgstr "aktualizácia zlyhala: %s\n"
+msgstr "aktualizácia zlyhala: %s\n"
 
 #, fuzzy, c-format
 msgid "waitpid failed: %s\n"
-msgstr "aktualizácia zlyhala: %s\n"
+msgstr "aktualizácia zlyhala: %s\n"
 
 #, c-format
 msgid "child aborted with status %i\n"
@@ -8773,11 +8844,11 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "cannot allocate infile string: %s\n"
-msgstr "nemô¾em vytvori» `%s': %s\n"
+msgstr "nemôžem vytvoriť `%s': %s\n"
 
 #, fuzzy, c-format
 msgid "cannot allocate outfile string: %s\n"
-msgstr "nemô¾em vytvori» `%s': %s\n"
+msgstr "nemôžem vytvoriť `%s': %s\n"
 
 #, c-format
 msgid "either %s or %s must be given\n"
@@ -8788,35 +8859,49 @@ msgstr ""
 
 #, fuzzy, c-format
 msgid "class %s is not supported\n"
-msgstr "ochranný algoritmus %d%s nie je podporováný\n"
+msgstr "ochranný algoritmus %d%s nie je podporováný\n"
 
 #, fuzzy
 msgid "Usage: gpg-check-pattern [options] patternfile (-h for help)\n"
-msgstr "Pou¾itie: gpg [mo¾nosti] [súbory] (-h pre pomoc)"
+msgstr "Použitie: gpg [možnosti] [súbory] (-h pre pomoc)"
 
 msgid ""
 "Syntax: gpg-check-pattern [options] patternfile\n"
 "Check a passphrase given on stdin against the patternfile\n"
 msgstr ""
 
+#, fuzzy
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "zmazanie bloku kľúča sa nepodarilo:  %s\n"
+
+#, fuzzy
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "nastaviť kľúč ako neplatný (disable)"
+
+#, fuzzy
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "|algo [súbory]|vypíš hash"
+#~ msgstr[1] "|algo [súbory]|vypíš hash"
+
 #~ msgid "communication problem with gpg-agent\n"
-#~ msgstr "problém v komunikácii s gpg-agentom\n"
+#~ msgstr "problém v komunikácii s gpg-agentom\n"
 
 #, fuzzy
 #~ msgid "canceled by user\n"
-#~ msgstr "zru¹ené u¾ívateµom\n"
+#~ msgstr "zrušené užívateľom\n"
 
 #, fuzzy
 #~ msgid "problem with the agent\n"
-#~ msgstr "problém s agentom: agent vracia 0x%lx\n"
+#~ msgstr "problém s agentom: agent vracia 0x%lx\n"
 
 #, fuzzy
 #~ msgid "problem with the agent (unexpected response \"%s\")\n"
-#~ msgstr "problém s agentom: agent vracia 0x%lx\n"
+#~ msgstr "problém s agentom: agent vracia 0x%lx\n"
 
 #, fuzzy
 #~ msgid "unknown TOFU DB format '%s'\n"
-#~ msgstr "neznámy implicitný adresát `%s'\n"
+#~ msgstr "neznámy implicitný adresát `%s'\n"
 
 #, fuzzy
 #~ msgid ""
@@ -8826,9 +8911,9 @@ msgstr ""
 #~ "%u-bit %s key, ID %s,\n"
 #~ "created %s%s.\n"
 #~ msgstr ""
-#~ "Potrebujete heslo, aby ste odomkli tajný kµúè pre u¾ívateµa:\n"
+#~ "Potrebujete heslo, aby ste odomkli tajný kľúč pre užívateľa:\n"
 #~ "\"%.*s\"\n"
-#~ "kµúè s då¾kou %u bitov, typ %s, ID %08lX, vytvorený %s%s\n"
+#~ "kľúč s dĺžkou %u bitov, typ %s, ID %08lX, vytvorený %s%s\n"
 
 #, fuzzy
 #~ msgid ""
@@ -8836,64 +8921,61 @@ msgstr ""
 #~ "user: \"%s\"\n"
 #~ msgstr ""
 #~ "\n"
-#~ "Musíte pozna» heslo, aby ste odomkli tajný kµúè pre\n"
-#~ "u¾ívateµa: \""
+#~ "Musíte poznať heslo, aby ste odomkli tajný kľúč pre\n"
+#~ "užívateľa: \""
 
 #, fuzzy
 #~ msgid "%u-bit %s key, ID %s, created %s"
-#~ msgstr "då¾ka %u bitov, typ %s, ID %08lX, vytvorený %s"
+#~ msgstr "dĺžka %u bitov, typ %s, ID %08lX, vytvorený %s"
 
 #, fuzzy
 #~| msgid "can't create directory `%s': %s\n"
 #~ msgid "can't access directory '%s': %s\n"
-#~ msgstr "nemô¾em vytvori» adresár `%s': %s\n"
+#~ msgstr "nemôžem vytvoriť adresár `%s': %s\n"
 
 #~ msgid "you found a bug ... (%s:%d)\n"
-#~ msgstr "nájdená chyba v programe ... (%s:%d)\n"
+#~ msgstr "nájdená chyba v programe ... (%s:%d)\n"
 
 #, fuzzy
 #~| msgid "%d user IDs without valid self-signatures detected\n"
 #~ msgid "%d user ID without valid self-signature detected\n"
 #~ msgid_plural "%d user IDs without valid self-signatures detected\n"
 #~ msgstr[0] ""
-#~ "zistených %d identifikátorov u¾ívateµa bez platného podpisu ním samým\n"
+#~ "zistených %d identifikátorov užívateľa bez platného podpisu ním samým\n"
 #~ msgstr[1] ""
-#~ "zistených %d identifikátorov u¾ívateµa bez platného podpisu ním samým\n"
+#~ "zistených %d identifikátorov užívateľa bez platného podpisu ním samým\n"
 
 #~ msgid "moving a key signature to the correct place\n"
-#~ msgstr "presúvam podpis kµúèa na správne miesto\n"
+#~ msgstr "presúvam podpis kľúča na správne miesto\n"
 
 #~ msgid "%d signatures not checked due to missing keys\n"
-#~ msgstr "%d podpisov neoverených, preto¾e chýba kµúè\n"
+#~ msgstr "%d podpisov neoverených, pretože chýba kľúč\n"
 
 #~ msgid "%d signatures not checked due to errors\n"
-#~ msgstr "%d podpisov neoverených, preto¾e vznikli chyby\n"
+#~ msgstr "%d podpisov neoverených, pretože vznikli chyby\n"
 
 #~ msgid "1 user ID without valid self-signature detected\n"
-#~ msgstr "zistený 1 identifikátor u¾ívateµa bez platného podpisu ním samým\n"
-
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "Zmazaných %d podpisov.\n"
+#~ msgstr "zistený 1 identifikátor užívateľa bez platného podpisu ním samým\n"
 
 #, fuzzy
 #~ msgid "User ID \"%s\": %d signatures removed\n"
-#~ msgstr "U¾ívateµské ID \"%s\" je revokované."
+#~ msgstr "Užívateľské ID \"%s\" je revokované."
 
 #~ msgid ""
 #~ "You need a Passphrase to protect your secret key.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Na ochranu Vá¹ho tajného kµúèa musíte zada» heslo.\n"
+#~ "Na ochranu Vášho tajného kľúča musíte zadať heslo.\n"
 #~ "\n"
 
 #, fuzzy
 #~ msgid ""
 #~ "Please enter a passphrase to protect the off-card backup of the new "
 #~ "encryption key."
-#~ msgstr "Prosím, vlo¾te heslo; toto je tajná veta \n"
+#~ msgstr "Prosím, vložte heslo; toto je tajná veta \n"
 
 #~ msgid "passphrase not correctly repeated; try again"
-#~ msgstr "heslo nie je zopakované správne; skúste to znovu"
+#~ msgstr "heslo nie je zopakované správne; skúste to znovu"
 
 #~ msgid "%s.\n"
 #~ msgstr "%s.\n"
@@ -8904,113 +8986,109 @@ msgstr ""
 #~ "using this program with the option \"--edit-key\".\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Nechcete heslo - to *nie je* dobrý nápad!\n"
-#~ "Dobre, budem pokraèova» bez hesla. Kedykoµvek mô¾ete heslo zmeni» "
-#~ "pou¾itím\n"
+#~ "Nechcete heslo - to *nie je* dobrý nápad!\n"
+#~ "Dobre, budem pokračovať bez hesla. Kedykoľvek môžete heslo zmeniť "
+#~ "použitím\n"
 #~ "tohto programu s parametrom \"--edit-key\".\n"
 #~ "\n"
 
 #, fuzzy
 #~ msgid "storing key onto card failed: %s\n"
-#~ msgstr "zmazanie bloku kµúèa sa nepodarilo:  %s\n"
+#~ msgstr "zmazanie bloku kľúča sa nepodarilo:  %s\n"
 
 #, fuzzy
 #~| msgid "1 bad signature\n"
 #~ msgid "1 good signature\n"
-#~ msgstr "1 zlý podpis\n"
-
-#, fuzzy
-#~ msgid "renaming '%s' to '%s' failed: %s\n"
-#~ msgstr "kódovanie do ASCII formátu zlyhalo: %s\n"
+#~ msgstr "1 zlý podpis\n"
 
 #, fuzzy
 #~ msgid "%lu keys cached (%lu signatures)\n"
-#~ msgstr "%lu kµúèov skontrolovaných (%lu podpisov)\n"
+#~ msgstr "%lu kľúčov skontrolovaných (%lu podpisov)\n"
 
 #, fuzzy
 #~ msgid "refreshing 1 key from %s\n"
-#~ msgstr "po¾adujem kµúè %08lX z %s\n"
+#~ msgstr "požadujem kľúč %08lX z %s\n"
 
 #, fuzzy
 #~ msgid "sending key %s to %s server %s\n"
-#~ msgstr "vyhµadávam \"%s\" na HKP serveri %s\n"
+#~ msgstr "vyhľadávam \"%s\" na HKP serveri %s\n"
 
 #, fuzzy
 #~ msgid "public key %s is %lu seconds newer than the signature\n"
-#~ msgstr "verejný kµúè %08lX je o %lu sekund nov¹í ne¾ podpis\n"
+#~ msgstr "verejný kľúÄ\8d %08lX je o %lu sekund novší než podpis\n"
 
 #, fuzzy
 #~ msgid ""
 #~ "key %s was created %lu seconds in the future (time warp or clock "
 #~ "problem)\n"
 #~ msgstr ""
-#~ "kµúè bol vytvorený %lu sekund v budúcnosti (do¹lo k zmene èasu alebo\n"
-#~ "je problém so systémovým èasom)\n"
+#~ "kľúč bol vytvorený %lu sekund v budúcnosti (došlo k zmene času alebo\n"
+#~ "je problém so systémovým časom)\n"
 
 #, fuzzy
 #~| msgid "can't open the keyring"
 #~ msgid "Failed to open the keyring DB.\n"
-#~ msgstr "nemô¾em otvori» súbor kµúèov"
+#~ msgstr "nemôžem otvoriť súbor kľúčov"
 
 #, fuzzy
 #~ msgid "Failed to parse '%s'.\n"
-#~ msgstr "nemô¾em otvori» `%s': %s\n"
+#~ msgstr "nemôžem otvoriť `%s': %s\n"
 
 #, fuzzy
 #~ msgid "error looking up secret key \"%s\": %s\n"
-#~ msgstr "chyba pri èítaní bloku tajného kµúèa `%s': %s\n"
+#~ msgstr "chyba pri čítaní bloku tajného kľúča `%s': %s\n"
 
 #, fuzzy
 #~ msgid "Please select at most one subkey.\n"
-#~ msgstr "Prosím, vyberte najviac jeden sekundárny kµúè.\n"
+#~ msgstr "Prosím, vyberte najviac jeden sekundárny kľúč.\n"
 
 #, fuzzy
 #~ msgid "malformed %s environment variable\n"
-#~ msgstr "zlý formát premennej prostredia GPG_AGENT_INFO\n"
+#~ msgstr "zlý formát premennej prostredia GPG_AGENT_INFO\n"
 
 #, fuzzy
 #~ msgid "dirmngr protocol version %d is not supported\n"
-#~ msgstr "gpg-agent protokol verzie %d nie je podporovaný\n"
+#~ msgstr "gpg-agent protokol verzie %d nie je podporovaný\n"
 
 #, fuzzy
 #~ msgid "toggle between the secret and public key listings"
-#~ msgstr "prepnú» medzi vypísaním zoznamu tajných a verejných kµúèov"
+#~ msgstr "prepnúť medzi vypísaním zoznamu tajných a verejných kľúčov"
 
 #~ msgid "Please use the command \"toggle\" first.\n"
-#~ msgstr "Prosím, najskôr pou¾ite príkaz \"toggle\" (prepnú»).\n"
+#~ msgstr "Prosím, najskôr použite príkaz \"toggle\" (prepnúť).\n"
 
 #, fuzzy
 #~ msgid "Passphrase"
-#~ msgstr "nesprávne heslo"
+#~ msgstr "nesprávne heslo"
 
 #, fuzzy
 #~ msgid "WARNING: keyserver option '%s' is not used on this platform\n"
-#~ msgstr "VAROVANIE: nastavenie v `%s' e¹te nie je aktívne\n"
+#~ msgstr "VAROVANIE: nastavenie v `%s' ešte nie je aktívne\n"
 
 #~ msgid "gpg-agent is not available in this session\n"
-#~ msgstr "gpg-agent nie je v tomto sedení dostupný\n"
+#~ msgstr "gpg-agent nie je v tomto sedení dostupný\n"
 
 #, fuzzy
 #~ msgid "use a standard location for the socket"
-#~ msgstr "Skutoène aktualizova» predvoµby pre vybrané id u¾ívateµa? "
+#~ msgstr "Skutočne aktualizovať predvoľby pre vybrané id užívateľa? "
 
 #, fuzzy
 #~ msgid "Usage: gpg-agent [options] (-h for help)"
-#~ msgstr "Pou¾itie: gpg [mo¾nosti] [súbory] (-h pre pomoc)"
+#~ msgstr "Použitie: gpg [možnosti] [súbory] (-h pre pomoc)"
 
 #~ msgid "malformed GPG_AGENT_INFO environment variable\n"
-#~ msgstr "zlý formát premennej prostredia GPG_AGENT_INFO\n"
+#~ msgstr "zlý formát premennej prostredia GPG_AGENT_INFO\n"
 
 #~ msgid "gpg-agent protocol version %d is not supported\n"
-#~ msgstr "gpg-agent protokol verzie %d nie je podporovaný\n"
+#~ msgstr "gpg-agent protokol verzie %d nie je podporovaný\n"
 
 #, fuzzy
 #~ msgid "can't fdopen pipe for reading: %s\n"
-#~ msgstr "nemo¾no otvori» súbor: %s\n"
+#~ msgstr "nemožno otvoriť súbor: %s\n"
 
 #, fuzzy
 #~ msgid "error creating socket: %s\n"
-#~ msgstr "chyba pri vytváraní `%s': %s\n"
+#~ msgstr "chyba pri vytváraní `%s': %s\n"
 
 #, fuzzy
 #~ msgid "host not found"
@@ -9018,324 +9096,324 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "unknown key protection algorithm\n"
-#~ msgstr "neznámy ochranný algoritmus\n"
+#~ msgstr "neznámy ochranný algoritmus\n"
 
 #, fuzzy
 #~ msgid "secret parts of key are not available\n"
-#~ msgstr "Tajné èasti primárneho kµúèa nie sú dostupné.\n"
+#~ msgstr "Tajné časti primárneho kľúča nie sú dostupné.\n"
 
 #, fuzzy
 #~ msgid "secret key already stored on a card\n"
-#~ msgstr "preskoèené: tajný kµúè je u¾ v databáze\n"
+#~ msgstr "preskočené: tajný kľúč je už v databáze\n"
 
 #, fuzzy
 #~ msgid "error writing key to card: %s\n"
-#~ msgstr "chyba pri zápise súboru kµúèov (keyring)  `%s': %s\n"
+#~ msgstr "chyba pri zápise súboru kľúčov (keyring)  `%s': %s\n"
 
 #~ msgid ""
 #~ "you can only encrypt to RSA keys of 2048 bits or less in --pgp2 mode\n"
 #~ msgstr ""
-#~ "v móde --pgp2 mô¾ete ¹ifrova» len RSA kµúèom s då¾kou 2048 bitov a menej\n"
+#~ "v móde --pgp2 môžete Å¡ifrovaÅ¥ len RSA kľúÄ\8dom s dĺžkou 2048 bitov a menej\n"
 
 #~ msgid ""
 #~ "unable to use the IDEA cipher for all of the keys you are encrypting to.\n"
 #~ msgstr ""
-#~ "algoritmus IDEA nemo¾no pou¾i» na v¹etky kµúèe, pre ktoré ¹ifrujete.\n"
+#~ "algoritmus IDEA nemožno použiť na všetky kľúče, pre ktoré šifrujete.\n"
 
 #, fuzzy
 #~ msgid "remove the passphrase from exported subkeys"
-#~ msgstr "revokova» sekundárny kµúè"
+#~ msgstr "revokovať sekundárny kľúč"
 
 #, fuzzy
 #~ msgid "key %s: not protected - skipped\n"
-#~ msgstr "kµúè %08lX: nie je chránený - preskoèené\n"
+#~ msgstr "kľúč %08lX: nie je chránený - preskočené\n"
 
 #, fuzzy
 #~ msgid "failed to unprotect the subkey: %s\n"
-#~ msgstr "nemô¾em inicializova» databázu dôvery: %s\n"
+#~ msgstr "nemôžem inicializovať databázu dôvery: %s\n"
 
 #, fuzzy
 #~ msgid "WARNING: secret key %s does not have a simple SK checksum\n"
-#~ msgstr "VAROVANIE: tajný kµúè %08lX nemá jednoduchý SK kontrolný súèet\n"
+#~ msgstr "VAROVANIE: tajný kľúč %08lX nemá jednoduchý SK kontrolný súčet\n"
 
 #~ msgid "too many entries in pk cache - disabled\n"
-#~ msgstr "príli¹ veµa polo¾iek v bufferi verejných kµúèov - vypnuté\n"
+#~ msgstr "príliš veľa položiek v bufferi verejných kľúčov - vypnuté\n"
 
 #, fuzzy
 #~ msgid "no secret subkey for public subkey %s - ignoring\n"
-#~ msgstr "existuje tajný kµúè pre tento verejný kµúè %08lX!\n"
+#~ msgstr "existuje tajný kľúč pre tento verejný kľúč %08lX!\n"
 
 #, fuzzy
 #~ msgid "key %s: secret key without public key - skipped\n"
-#~ msgstr "kµúè %08lX: tajný kµúè bez verejného kµúèa - preskoèené\n"
+#~ msgstr "kľúč %08lX: tajný kľúč bez verejného kľúča - preskočené\n"
 
 #~ msgid "usage: gpg [options] "
-#~ msgstr "pou¾itie: gpg [mo¾nosti] "
+#~ msgstr "použitie: gpg [možnosti] "
 
 #~ msgid ""
 #~ "you can only make detached or clear signatures while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "v móde --pgp2 mô¾ete vytvára» len oddelené podpisy alebo podpisy "
-#~ "èitateµné ako text\n"
+#~ "v móde --pgp2 môžete vytvárať len oddelené podpisy alebo podpisy "
+#~ "čitateľné ako text\n"
 
 #~ msgid "you can't sign and encrypt at the same time while in --pgp2 mode\n"
-#~ msgstr "v móde --pgp2 nemo¾no súèasne ¹ifrova» a podpisova»\n"
+#~ msgstr "v móde --pgp2 nemožno súčasne šifrovať a podpisovať\n"
 
 #~ msgid ""
 #~ "you must use files (and not a pipe) when working with --pgp2 enabled.\n"
-#~ msgstr "v móde --pgp2 musíte pou¾i» súbor (nie rúru).\n"
+#~ msgstr "v móde --pgp2 musíte použiť súbor (nie rúru).\n"
 
 #~ msgid "encrypting a message in --pgp2 mode requires the IDEA cipher\n"
-#~ msgstr "¹ifrovanie správ v móde --pgp2 vy¾aduje algoritmus IDEA\n"
+#~ msgstr "Å¡ifrovanie správ v móde --pgp2 vyžaduje algoritmus IDEA\n"
 
 #, fuzzy
 #~ msgid "create a public key when importing a secret key"
-#~ msgstr "verejný kµúè nesúhlasí s tajným!\n"
+#~ msgstr "verejný kľúč nesúhlasí s tajným!\n"
 
 #, fuzzy
 #~ msgid "key %s: already in secret keyring\n"
-#~ msgstr "kµúè %08lX: je u¾ v súbore tajných kµúèov\n"
+#~ msgstr "kľúč %08lX: je už v súbore tajných kľúčov\n"
 
 #, fuzzy
 #~ msgid "key %s: secret key not found: %s\n"
-#~ msgstr "kµúè %08lX: nebol nájdený tajný kµúè: %s\n"
+#~ msgstr "kľúč %08lX: nebol nájdený tajný kľúč: %s\n"
 
 #, fuzzy
 #~ msgid "NOTE: a key's S/N does not match the card's one\n"
-#~ msgstr "verejný kµúè nesúhlasí s tajným!\n"
+#~ msgstr "verejný kľúč nesúhlasí s tajným!\n"
 
 #, fuzzy
 #~ msgid "NOTE: primary key is online and stored on card\n"
-#~ msgstr "preskoèené: tajný kµúè je u¾ v databáze\n"
+#~ msgstr "preskočené: tajný kľúč je už v databáze\n"
 
 #, fuzzy
 #~ msgid "NOTE: secondary key is online and stored on card\n"
-#~ msgstr "preskoèené: tajný kµúè je u¾ v databáze\n"
+#~ msgstr "preskočené: tajný kľúč je už v databáze\n"
 
 #~ msgid ""
 #~ "You may not make an OpenPGP signature on a PGP 2.x key while in --pgp2 "
 #~ "mode.\n"
 #~ msgstr ""
-#~ "Nemô¾ete vytvori» OpenPGP podpis kµúèa typu PGP 2.x, keï ste v --pgp2 "
-#~ "móde.\n"
+#~ "Nemôžete vytvoriť OpenPGP podpis kľúča typu PGP 2.x, keď ste v --pgp2 "
+#~ "móde.\n"
 
 #~ msgid "This would make the key unusable in PGP 2.x.\n"
-#~ msgstr "To by spôsobilo nepou¾itelnos» kµúèa v PGP 2.x.\n"
+#~ msgstr "To by spôsobilo nepoužitelnosť kľúča v PGP 2.x.\n"
 
 #~ msgid "This key is not protected.\n"
-#~ msgstr "Tento kµúè nie je chránený.\n"
+#~ msgstr "Tento kľúč nie je chránený.\n"
 
 #~ msgid "Key is protected.\n"
-#~ msgstr "kµúè je chránený.\n"
+#~ msgstr "kľúč je chránený.\n"
 
 #~ msgid "Can't edit this key: %s\n"
-#~ msgstr "Nie je mo¾né editova» tento kµúè: %s\n"
+#~ msgstr "Nie je možné editovať tento kľúč: %s\n"
 
 #~ msgid ""
 #~ "Enter the new passphrase for this secret key.\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Vlo¾te nové heslo (passphrase) pre tento tajný kµúè.\n"
+#~ "Vložte nové heslo (passphrase) pre tento tajný kľúč.\n"
 #~ "\n"
 
 #~ msgid ""
 #~ "You don't want a passphrase - this is probably a *bad* idea!\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Nechcete heslo - to je *zlý* nápad!\n"
+#~ "Nechcete heslo - to je *zlý* nápad!\n"
 #~ "\n"
 
 #, fuzzy
 #~ msgid "Do you really want to do this? (y/N) "
-#~ msgstr "Skutoène to chcete urobi»? "
+#~ msgstr "Skutočne to chcete urobiť? "
 
 #~ msgid "Please remove selections from the secret keys.\n"
-#~ msgstr "Prosím, odstráòte výber z tajných kµúèov.\n"
+#~ msgstr "Prosím, odstráňte výber z tajných kľúčov.\n"
 
 #~ msgid "No corresponding signature in secret ring\n"
-#~ msgstr "V súbore tajných kµúèov chýba zodpovedajúci podpis\n"
+#~ msgstr "V súbore tajných kľúčov chýba zodpovedajúci podpis\n"
 
 #, fuzzy
 #~ msgid "writing secret key stub to `%s'\n"
-#~ msgstr "zapisujem tajný kµúè do `%s'\n"
+#~ msgstr "zapisujem tajný kľúč do `%s'\n"
 
 #~ msgid "writing secret key to `%s'\n"
-#~ msgstr "zapisujem tajný kµúè do `%s'\n"
+#~ msgstr "zapisujem tajný kľúč do `%s'\n"
 
 #~ msgid "no writable secret keyring found: %s\n"
-#~ msgstr "nenájdený zapisovateµný súbor tajných kµúèov (secring): %s\n"
+#~ msgstr "nenájdený zapisovateľný súbor tajných kľúčov (secring): %s\n"
 
 #~ msgid "WARNING: 2 files with confidential information exists.\n"
-#~ msgstr "VAROVANIE: Existujú dva súbory s tajnými informáciami.\n"
+#~ msgstr "VAROVANIE: Existujú dva súbory s tajnými informáciami.\n"
 
 #~ msgid "%s is the unchanged one\n"
 #~ msgstr "%s je bez zmeny\n"
 
 #~ msgid "%s is the new one\n"
-#~ msgstr "%s je nový\n"
+#~ msgstr "%s je nový\n"
 
 #~ msgid "Please fix this possible security flaw\n"
-#~ msgstr "Prosím, opravte tento mo¾ný bezpeènostný problém\n"
+#~ msgstr "Prosím, opravte tento možný bezpečnostný problém\n"
 
 #, fuzzy
 #~ msgid "searching for names from %s server %s\n"
-#~ msgstr "vyhµadávam \"%s\" na HKP serveri %s\n"
+#~ msgstr "vyhľadávam \"%s\" na HKP serveri %s\n"
 
 #, fuzzy
 #~ msgid "searching for names from %s\n"
-#~ msgstr "vyhµadávam \"%s\" na HKP serveri %s\n"
+#~ msgstr "vyhľadávam \"%s\" na HKP serveri %s\n"
 
 #, fuzzy
 #~ msgid "searching for \"%s\" from %s server %s\n"
-#~ msgstr "vyhµadávam \"%s\" na HKP serveri %s\n"
+#~ msgstr "vyhľadávam \"%s\" na HKP serveri %s\n"
 
 #, fuzzy
 #~ msgid "searching for \"%s\" from %s\n"
-#~ msgstr "vyhµadávam \"%s\" na HKP serveri %s\n"
+#~ msgstr "vyhľadávam \"%s\" na HKP serveri %s\n"
 
 #, fuzzy
 #~ msgid "keyserver timed out\n"
-#~ msgstr "chyba servera kµúèov"
+#~ msgstr "chyba servera kľúčov"
 
 #, fuzzy
 #~ msgid "keyserver internal error\n"
-#~ msgstr "chyba servera kµúèov"
+#~ msgstr "chyba servera kľúčov"
 
 #, fuzzy
 #~ msgid "keyserver communications error: %s\n"
-#~ msgstr "nepodarilo sa prija» kµúè zo servera: %s\n"
+#~ msgstr "nepodarilo sa prijať kľúč zo servera: %s\n"
 
 #, fuzzy
 #~ msgid "WARNING: unable to parse URI %s\n"
-#~ msgstr "VAROVANIE: nemô¾em vymaza» doèasný súbor (%s) `%s': %s\n"
+#~ msgstr "VAROVANIE: nemôžem vymazať dočasný súbor (%s) `%s': %s\n"
 
 #~ msgid "invalid root packet detected in proc_tree()\n"
-#~ msgstr "nájdený neplatný koreòový paket v proc_tree()\n"
+#~ msgstr "nájdený neplatný koreňový paket v proc_tree()\n"
 
 #~ msgid "the IDEA cipher plugin is not present\n"
-#~ msgstr "IDEA modul pre GnuPG nenájdený\n"
+#~ msgstr "IDEA modul pre GnuPG nenájdený\n"
 
 #~ msgid "no corresponding public key: %s\n"
-#~ msgstr "¾iadny zodpovedajúci verejný kµúè: %s\n"
+#~ msgstr "žiadny zodpovedajúci verejný kľúč: %s\n"
 
 #~ msgid "public key does not match secret key!\n"
-#~ msgstr "verejný kµúè nesúhlasí s tajným!\n"
+#~ msgstr "verejný kľúč nesúhlasí s tajným!\n"
 
 #~ msgid "unknown protection algorithm\n"
-#~ msgstr "neznámy ochranný algoritmus\n"
+#~ msgstr "neznámy ochranný algoritmus\n"
 
 #~ msgid "NOTE: This key is not protected!\n"
-#~ msgstr "POZNÁMKA: Tento kµúè nie je chránený!\n"
+#~ msgstr "POZNÁMKA: Tento kľúč nie je chránený!\n"
 
 #, fuzzy
 #~ msgid "protection digest %d is not supported\n"
-#~ msgstr "ochranný algoritmus %d%s nie je podporováný\n"
+#~ msgstr "ochranný algoritmus %d%s nie je podporováný\n"
 
 #~ msgid "Invalid passphrase; please try again"
-#~ msgstr "Neplatné heslo; prosím, skúste to znovu"
+#~ msgstr "Neplatné heslo; prosím, skúste to znovu"
 
 #~ msgid "%s ...\n"
 #~ msgstr "%s ...\n"
 
 #~ msgid "WARNING: Weak key detected - please change passphrase again.\n"
-#~ msgstr "VAROVANIE: Zistený slabý kµúè - zmeòte, prosím, znovu heslo.\n"
+#~ msgstr "VAROVANIE: Zistený slabý kľúč - zmeňte, prosím, znovu heslo.\n"
 
 #~ msgid ""
 #~ "generating the deprecated 16-bit checksum for secret key protection\n"
 #~ msgstr ""
-#~ "generujem zastaralý 16 bitový kontrolný súèet na ochranu tajného kµúèa\n"
+#~ "generujem zastaralý 16 bitový kontrolný súčet na ochranu tajného kľúča\n"
 
 #~ msgid ""
 #~ "you can only detach-sign with PGP 2.x style keys while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "v móde --pgp2 mô¾ete vytvori» len oddelený podpis kµúèa vo formáte PGP-2."
+#~ "v móde --pgp2 môžete vytvoriť len oddelený podpis kľúča vo formáte PGP-2."
 #~ "x\n"
 
 #~ msgid ""
 #~ "you can only clearsign with PGP 2.x style keys while in --pgp2 mode\n"
 #~ msgstr ""
-#~ "v móde --pgp2 mô¾ete vytvára» èitateµné podpisy len s kµúèmi formátu "
+#~ "v móde --pgp2 môžete vytvárať čitateľné podpisy len s kľúčmi formátu "
 #~ "PGP-2.x\n"
 
 #, fuzzy
 #~ msgid "Usage: scdaemon [options] (-h for help)"
-#~ msgstr "Pou¾itie: gpg [mo¾nosti] [súbory] (-h pre pomoc)"
+#~ msgstr "Použitie: gpg [možnosti] [súbory] (-h pre pomoc)"
 
 #, fuzzy
 #~ msgid "Usage: gpgsm [options] [files] (-h for help)"
-#~ msgstr "Pou¾itie: gpg [mo¾nosti] [súbory] (-h pre pomoc)"
+#~ msgstr "Použitie: gpg [možnosti] [súbory] (-h pre pomoc)"
 
 #, fuzzy
 #~ msgid "usage: gpgconf [options] "
-#~ msgstr "pou¾itie: gpg [mo¾nosti] "
+#~ msgstr "použitie: gpg [možnosti] "
 
 #, fuzzy
 #~ msgid "failed to allocated keyDB handle\n"
-#~ msgstr "nemô¾em inicializova» databázu dôvery: %s\n"
+#~ msgstr "nemôžem inicializovať databázu dôvery: %s\n"
 
 #~ msgid "Command> "
-#~ msgstr "Príkaz> "
+#~ msgstr "Príkaz> "
 
 #~ msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
 #~ msgstr ""
-#~ "databáza dôvery je po¹kodená; prosím spustite \"gpg --fix-trustdb\".\n"
+#~ "databáza dôvery je poškodená; prosím spustite \"gpg --fix-trustdb\".\n"
 
 #~ msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
 #~ msgstr ""
-#~ "Chyby oznámte, prosím, na adresu <gnupg-bugs@gnu.org>.\n"
+#~ "Chyby oznámte, prosím, na adresu <gnupg-bugs@gnu.org>.\n"
 #~ "Pripomienky k prekladu <sk-i18n@lists.linux.sk>.\n"
 
 #, fuzzy
 #~ msgid "Please report bugs to "
 #~ msgstr ""
-#~ "Chyby oznámte, prosím, na adresu <gnupg-bugs@gnu.org>.\n"
+#~ "Chyby oznámte, prosím, na adresu <gnupg-bugs@gnu.org>.\n"
 #~ "Pripomienky k prekladu <sk-i18n@lists.linux.sk>.\n"
 
 #, fuzzy
 #~ msgid "DSA keypair will have %u bits.\n"
-#~ msgstr "Pár kµúèov DSA bude ma» då¾ku 1024 bitov.\n"
+#~ msgstr "Pár kľúÄ\8dov DSA bude maÅ¥ dĺžku 1024 bitov.\n"
 
 #~ msgid "Repeat passphrase\n"
-#~ msgstr "Opakova» heslo\n"
+#~ msgstr "Opakovať heslo\n"
 
 #, fuzzy
 #~ msgid "read options from file"
-#~ msgstr "èítam mo¾nosti z `%s'\n"
+#~ msgstr "Ä\8dítam možnosti z `%s'\n"
 
 #~ msgid "|[file]|make a signature"
-#~ msgstr "|[súbor]|vytvori» podpis"
+#~ msgstr "|[súbor]|vytvoriť podpis"
 
 #, fuzzy
 #~ msgid "|[FILE]|make a signature"
-#~ msgstr "|[súbor]|vytvori» podpis"
+#~ msgstr "|[súbor]|vytvoriť podpis"
 
 #, fuzzy
 #~ msgid "|[FILE]|make a clear text signature"
-#~ msgstr "|[súbor]|vytvori» podpis v èitateµnom dokumente"
+#~ msgstr "|[súbor]|vytvoriť podpis v čitateľnom dokumente"
 
 #~ msgid "use the default key as default recipient"
 #~ msgstr ""
-#~ "pou¾i» implicitný kµúè ako implicitného\n"
-#~ " adresáta"
+#~ "použiť implicitný kľúč ako implicitného\n"
+#~ " adresáta"
 
 #~ msgid "force v3 signatures"
-#~ msgstr "vynúti» podpisy verzie 3"
+#~ msgstr "vynútiť podpisy verzie 3"
 
 #~ msgid "always use a MDC for encryption"
-#~ msgstr "na ¹ifrovanie v¾dy pou¾i» MDC"
+#~ msgstr "na šifrovanie vždy použiť MDC"
 
 #~ msgid "add this secret keyring to the list"
-#~ msgstr "prida» tento súbor tajných kµúèov do zoznamu"
+#~ msgstr "pridať tento súbor tajných kľúčov do zoznamu"
 
 #~ msgid "|FILE|load extension module FILE"
-#~ msgstr "|SÚBOR|nahra» roz¹irujúci modul SÚBOR"
+#~ msgstr "|SÚBOR|nahrať rozširujúci modul SÚBOR"
 
 #~ msgid "|N|use compress algorithm N"
-#~ msgstr "|N|pou¾i» kompresný algoritmus N"
+#~ msgstr "|N|použiť kompresný algoritmus N"
 
 #, fuzzy
 #~ msgid "remove key from the public keyring"
-#~ msgstr "odstráni» kµúè zo súboru verejných kµúèov"
+#~ msgstr "odstrániť kľúč zo súboru verejných kľúčov"
 
 #~ msgid ""
 #~ "It's up to you to assign a value here; this value will never be exported\n"
@@ -9343,10 +9421,10 @@ msgstr ""
 #~ "nothing\n"
 #~ "to do with the (implicitly created) web-of-certificates."
 #~ msgstr ""
-#~ "Je na Vás, aby ste sem priradili hodnotu; táto hodnota nebude nikdy\n"
-#~ "exportovaná tretej strane. Potrebujeme ju k implementácii \"pavuèiny\n"
-#~ "dôvery\"; nemá to niè spoloèné s (implicitne vytvorenou) \"pavuèinou\n"
-#~ "certifikátov\"."
+#~ "Je na Vás, aby ste sem priradili hodnotu; táto hodnota nebude nikdy\n"
+#~ "exportovaná tretej strane. Potrebujeme ju k implementácii \"pavučiny\n"
+#~ "dôvery\"; nemá to nič spoločné s (implicitne vytvorenou) \"pavučinou\n"
+#~ "certifikátov\"."
 
 #~ msgid ""
 #~ "To build the Web-of-Trust, GnuPG needs to know which keys are\n"
@@ -9354,32 +9432,32 @@ msgstr ""
 #~ "access to the secret key.  Answer \"yes\" to set this key to\n"
 #~ "ultimately trusted\n"
 #~ msgstr ""
-#~ "Aby bolo mo¾né vybudova» pavuèinu dôvery, musí GnuPG vedie», ktorým "
-#~ "kµúèom\n"
-#~ "dôverujete absolútne - obyèajne sú to tie kµúèe, pre ktoré máte prístup\n"
-#~ "k tajným kµúèom. Odpovedzte \"ano\", aby ste nastavili tieto kµúèe\n"
-#~ "ako absolútne dôveryhodné\n"
+#~ "Aby bolo možné vybudovať pavučinu dôvery, musí GnuPG vedieť, ktorým "
+#~ "kľúčom\n"
+#~ "dôverujete absolútne - obyčajne sú to tie kľúče, pre ktoré máte prístup\n"
+#~ "k tajným kľúčom. Odpovedzte \"ano\", aby ste nastavili tieto kľúče\n"
+#~ "ako absolútne dôveryhodné\n"
 
 #~ msgid "If you want to use this untrusted key anyway, answer \"yes\"."
 #~ msgstr ""
-#~ "Pokiaµ aj tak chcete pou¾i» tento nedôveryhodný kµúè, odpovedzte \"ano\"."
+#~ "Pokiaľ aj tak chcete použiť tento nedôveryhodný kľúč, odpovedzte \"ano\"."
 
 #~ msgid ""
 #~ "Enter the user ID of the addressee to whom you want to send the message."
-#~ msgstr "Vlo¾te identifikátor adresáta, ktorému chcete posla» správu."
+#~ msgstr "Vložte identifikátor adresáta, ktorému chcete poslať správu."
 
 #~ msgid ""
 #~ "In general it is not a good idea to use the same key for signing and\n"
 #~ "encryption.  This algorithm should only be used in certain domains.\n"
 #~ "Please consult your security expert first."
 #~ msgstr ""
-#~ "V¹ebecne nemo¾no odporúèa» pou¾íva» rovnaký kµúè na ¹ifrovanie a "
+#~ "Všebecne nemožno odporúčať používať rovnaký kľúč na šifrovanie a "
 #~ "podeisovanie\n"
-#~ "Tento algoritmus je vhodné pou¾i» len za urèitých podmienok.\n"
-#~ "Kontaktujte prosím najprv bezpeènostného ¹pecialistu."
+#~ "Tento algoritmus je vhodné použiť len za určitých podmienok.\n"
+#~ "Kontaktujte prosím najprv bezpečnostného špecialistu."
 
 #~ msgid "Enter the size of the key"
-#~ msgstr "Vlo¾te då¾ku kµúèa"
+#~ msgstr "Vložte dĺžku kľúča"
 
 #~ msgid "Answer \"yes\" or \"no\""
 #~ msgstr "Odpovedzte \"ano\" alebo \"nie\""
@@ -9390,19 +9468,19 @@ msgstr ""
 #~ "get a good error response - instead the system tries to interpret\n"
 #~ "the given value as an interval."
 #~ msgstr ""
-#~ "Vlo¾te po¾adovanú hodnotu tak, ako je uvedené v príkazovom riadku.\n"
-#~ "Je mo¾né vlo¾i» dátum vo formáte ISO (RRRR-MM-DD), ale nedostanete\n"
-#~ "správnu chybovú hlá¹ku - miesto toho systém skúsi interpretova»\n"
-#~ "zadanú hodnotu ako interval."
+#~ "Vložte požadovanú hodnotu tak, ako je uvedené v príkazovom riadku.\n"
+#~ "Je možné vložiť dátum vo formáte ISO (RRRR-MM-DD), ale nedostanete\n"
+#~ "správnu chybovú hlášku - miesto toho systém skúsi interpretovať\n"
+#~ "zadanú hodnotu ako interval."
 
 #~ msgid "Enter the name of the key holder"
-#~ msgstr "Vlo¾te meno dr¾iteµa kµúèa"
+#~ msgstr "Vložte meno držiteľa kľúča"
 
 #~ msgid "please enter an optional but highly suggested email address"
-#~ msgstr "prosím, vlo¾te e-mailovú adresu (nepovinné, ale veµmi odporúèané)"
+#~ msgstr "prosím, vložte e-mailovú adresu (nepovinné, ale veľmi odporúčané)"
 
 #~ msgid "Please enter an optional comment"
-#~ msgstr "Prosím, vlo¾te nepovinný komentár"
+#~ msgstr "Prosím, vložte nepovinný komentár"
 
 #~ msgid ""
 #~ "N  to change the name.\n"
@@ -9411,15 +9489,15 @@ msgstr ""
 #~ "O  to continue with key generation.\n"
 #~ "Q  to to quit the key generation."
 #~ msgstr ""
-#~ "N  pre zmenu názvu.\n"
-#~ "C  pre zmenu komentára.\n"
+#~ "N  pre zmenu názvu.\n"
+#~ "C  pre zmenu komentára.\n"
 #~ "E  pre zmenu e-mailovej adresy.\n"
-#~ "O  pre pokraèovanie generovania kµúèa.\n"
-#~ "Q  pre ukonèenie generovania kµúèa."
+#~ "O  pre pokračovanie generovania kľúča.\n"
+#~ "Q  pre ukončenie generovania kľúča."
 
 #~ msgid ""
 #~ "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
-#~ msgstr "Ak chcete generova» podkµúè, odpovedzte \"ano\" (alebo len \"a\")."
+#~ msgstr "Ak chcete generovať podkľúč, odpovedzte \"ano\" (alebo len \"a\")."
 
 #~ msgid ""
 #~ "When you sign a user ID on a key, you should first verify that the key\n"
@@ -9464,66 +9542,66 @@ msgstr ""
 #~ "\n"
 #~ "If you don't know what the right answer is, answer \"0\"."
 #~ msgstr ""
-#~ "Skôr ako podpí¹ete id u¾ívateµa, mali by ste najprv overi», èi kµúè\n"
-#~ "patrí osobe, ktorej meno je uvedené v identifikátore u¾ívateµa.\n"
-#~ "Je veµmi u¾itoèné, keï ostatní vedia, ako dôsledne ste previedli\n"
-#~ "takéto overenie.\n"
+#~ "Skôr ako podpíšete id užívateľa, mali by ste najprv overiť, či kľúč\n"
+#~ "patrí osobe, ktorej meno je uvedené v identifikátore užívateľa.\n"
+#~ "Je veľmi užitočné, keď ostatní vedia, ako dôsledne ste previedli\n"
+#~ "takéto overenie.\n"
 #~ "\n"
-#~ "\"0\" znamená, ¾e neuvádzate, ako dôsledne ste pravos» kµúèa overili\n"
+#~ "\"0\" znamená, že neuvádzate, ako dôsledne ste pravosť kľúča overili\n"
 #~ "\n"
-#~ "\"1\" znamená, ¾e veríte tomu, ¾e kµúè patrí osobe, ktorá je uvedená,\n"
-#~ "    v u¾ívateµskom ID, ale nemohli ste alebo jste nepreverili túto "
-#~ "skutoènos».\n"
-#~ "    To je u¾itoèné pre \"osobnú\" verifikáciu, keï podpisujete kµúèe, "
-#~ "ktoré\n"
-#~ "    pou¾ívajú pseudonym u¾ívateµa.\n"
+#~ "\"1\" znamená, že veríte tomu, že kľúč patrí osobe, ktorá je uvedená,\n"
+#~ "    v užívateľskom ID, ale nemohli ste alebo jste nepreverili túto "
+#~ "skutočnosť.\n"
+#~ "    To je užitočné pre \"osobnú\" verifikáciu, keď podpisujete kľúče, "
+#~ "ktoré\n"
+#~ "    používajú pseudonym užívateľa.\n"
 #~ "\n"
-#~ "\"2\" znamená, ¾e ste èiastoène overili pravos» kµúèa. Napr. ste overili\n"
-#~ "    fingerprint kµúèa a skontrolovali identifikátor u¾ívateµa\n"
-#~ "    uvedený na kµúèi s fotografickým id.\n"
+#~ "\"2\" znamená, že ste čiastočne overili pravosť kľúča. Napr. ste overili\n"
+#~ "    fingerprint kľúča a skontrolovali identifikátor užívateľa\n"
+#~ "    uvedený na kľúči s fotografickým id.\n"
 #~ "\n"
-#~ "\"3\" Znamená, ¾e ste vykonali veµmi dôkladné overenie pravosti kµúèa.\n"
-#~ "    To mô¾e napríklad znamena», ¾e ste overili fingerprint kµúèa \n"
-#~ "    jeho vlastníka osobne a ïalej ste pomocou ta¾ko fal¹ovateµného \n"
-#~ "    dokumentu s fotografiou (napríklad pasu) overili, ¾e meno majiteµa\n"
-#~ "    kµúèa sa zhoduje s menom uvedeným v u¾ívateµskom ID a ïalej ste \n"
-#~ "    overili (výmenou elektronických dopisov), ¾e elektronická adresa "
-#~ "uvedená \n"
-#~ "    v ID u¾ívateµa patrí majiteµovi kµúèa.\n"
+#~ "\"3\" Znamená, že ste vykonali veľmi dôkladné overenie pravosti kľúča.\n"
+#~ "    To môže napríklad znamenať, že ste overili fingerprint kľúča \n"
+#~ "    jeho vlastníka osobne a ďalej ste pomocou tažko falšovateľného \n"
+#~ "    dokumentu s fotografiou (napríklad pasu) overili, že meno majiteľa\n"
+#~ "    kľúča sa zhoduje s menom uvedeným v užívateľskom ID a ďalej ste \n"
+#~ "    overili (výmenou elektronických dopisov), že elektronická adresa "
+#~ "uvedená \n"
+#~ "    v ID užívateľa patrí majiteľovi kľúča.\n"
 #~ "\n"
-#~ "Prosím nezabúdajte, ¾e príklady uvedené pre úroveò 2 a 3 sú *len*\n"
-#~ "príklady.\n"
-#~ "Je len na Va¹om rozhodnutí, èo \"èiastoèné\" a \"dôkladné\" overenie "
-#~ "znamená\n"
-#~ "keï budete podpisova» kµúèe iným u¾ívateµom.\n"
+#~ "Prosím nezabúdajte, že príklady uvedené pre úroveň 2 a 3 sú *len*\n"
+#~ "príklady.\n"
+#~ "Je len na Vašom rozhodnutí, čo \"čiastočné\" a \"dôkladné\" overenie "
+#~ "znamená\n"
+#~ "keď budete podpisovať kľúče iným užívateľom.\n"
 #~ "\n"
-#~ "Pokiaµ neviete, aká je správna odpoveï, odpovedzte \"0\"."
+#~ "Pokiaľ neviete, aká je správna odpoveď, odpovedzte \"0\"."
 
 #, fuzzy
 #~ msgid "Answer \"yes\" if you want to sign ALL the user IDs"
 #~ msgstr ""
-#~ "Pokiaµ chcete podpísa» V©ETKY identifikátory u¾ívateµov, odpovedzte \"ano"
+#~ "Pokiaľ chcete podpísať VŠETKY identifikátory užívateľov, odpovedzte \"ano"
 #~ "\""
 
 #~ msgid ""
 #~ "Answer \"yes\" if you really want to delete this user ID.\n"
 #~ "All certificates are then also lost!"
 #~ msgstr ""
-#~ "Pokiaµ skutoène chcete zmaza» tento identifikátor u¾ívateµa, odpovedzte "
+#~ "Pokiaľ skutočne chcete zmazať tento identifikátor užívateľa, odpovedzte "
 #~ "\"ano\".\n"
-#~ "V¹etky certifikáty budú tie¾ stratené!"
+#~ "Všetky certifikáty budú tiež stratené!"
 
 #~ msgid "Answer \"yes\" if it is okay to delete the subkey"
-#~ msgstr "Odpovedzte \"ano\", pokiaµ chcete zmaza» podkµúè"
+#~ msgstr "Odpovedzte \"ano\", pokiaľ chcete zmazať podkľúč"
 
 #~ msgid ""
 #~ "This is a valid signature on the key; you normally don't want\n"
 #~ "to delete this signature because it may be important to establish a\n"
 #~ "trust connection to the key or another key certified by this key."
 #~ msgstr ""
-#~ "Toto je platný podpis kµúèa; normálne nechcete tento podpis zmaza»,\n"
-#~ "preto¾e mô¾e by» dôle¾itý pri vytváraní dôvery kµúèa alebo iného kµúèa\n"
-#~ "ceritifikovaného týmto kµúèom."
+#~ "Toto je platný podpis kľúča; normálne nechcete tento podpis zmazať,\n"
+#~ "pretože môže byť dôležitý pri vytváraní dôvery kľúča alebo iného kľúča\n"
+#~ "ceritifikovaného týmto kľúčom."
 
 #~ msgid ""
 #~ "This signature can't be checked because you don't have the\n"
@@ -9531,16 +9609,16 @@ msgstr ""
 #~ "know which key was used because this signing key might establish\n"
 #~ "a trust connection through another already certified key."
 #~ msgstr ""
-#~ "Tento podpis nemô¾e by» overený, preto¾e nemáte zodpovedajúci verejný "
-#~ "kµúè.\n"
-#~ "Jeho zmazanie by ste mali odlo¾i» do èasu, keï budete vedie», ktorý kµúè\n"
-#~ "bol pou¾itý, preto¾e tento podpisovací kµúè mô¾e vytvori» dôveru\n"
-#~ "prostredníctvom iného u¾ certifikovaného kµúèa."
+#~ "Tento podpis nemôže byť overený, pretože nemáte zodpovedajúci verejný "
+#~ "kľúč.\n"
+#~ "Jeho zmazanie by ste mali odložiť do času, keď budete vedieť, ktorý kľúč\n"
+#~ "bol použitý, pretože tento podpisovací kľúč môže vytvoriť dôveru\n"
+#~ "prostredníctvom iného už certifikovaného kľúča."
 
 #~ msgid ""
 #~ "The signature is not valid.  It does make sense to remove it from\n"
 #~ "your keyring."
-#~ msgstr "Podpis je neplatný. Je rozumné ho odstráni» z Vá¹ho súboru kµúèov."
+#~ msgstr "Podpis je neplatný. Je rozumné ho odstrániť z Vášho súboru kľúčov."
 
 #~ msgid ""
 #~ "This is a signature which binds the user ID to the key. It is\n"
@@ -9549,41 +9627,41 @@ msgstr ""
 #~ "only if this self-signature is for some reason not valid and\n"
 #~ "a second one is available."
 #~ msgstr ""
-#~ "Toto je podpis, ktorý via¾e identifikátor u¾ívateµa ku kµúèu. Zvyèajne\n"
-#~ "nie je dobré takýto podpis odstráni». GnuPG nemô¾e tento kµúè naïalej\n"
-#~ "pou¾íva». Urobte to len v prípade, keï je tento podpis kµúèa\n"
-#~ "ním samým z nejakého dôvodu neplatný a keï je k dispozícii iný kµúè."
+#~ "Toto je podpis, ktorý viaže identifikátor užívateľa ku kľúču. Zvyčajne\n"
+#~ "nie je dobré takýto podpis odstrániť. GnuPG nemôže tento kľúč naďalej\n"
+#~ "používať. Urobte to len v prípade, keď je tento podpis kľúča\n"
+#~ "ním samým z nejakého dôvodu neplatný a keď je k dispozícii iný kľúč."
 
 #~ msgid ""
 #~ "Change the preferences of all user IDs (or just of the selected ones)\n"
 #~ "to the current list of preferences.  The timestamp of all affected\n"
 #~ "self-signatures will be advanced by one second.\n"
 #~ msgstr ""
-#~ "Zmeni» predvoµby pre v¹etky u¾ívateµské ID (alebo len pre oznaèené)\n"
-#~ "na aktuálny zoznam predvolieb. Èasové razítka v¹etkých dotknutých "
+#~ "Zmeniť predvoľby pre všetky užívateľské ID (alebo len pre označené)\n"
+#~ "na aktuálny zoznam predvolieb. Časové razítka všetkých dotknutých "
 #~ "podpisov\n"
-#~ "kµúèov nimi samotnými budú posunuté o jednu sekundu dopredu.\n"
+#~ "kľúčov nimi samotnými budú posunuté o jednu sekundu dopredu.\n"
 
-#~ msgid "Please enter the passhrase; this is a secret sentence \n"
-#~ msgstr "Prosím, vlo¾te heslo; toto je tajná veta \n"
+#~ msgid "Please enter the passphrase; this is a secret sentence \n"
+#~ msgstr "Prosím, vložte heslo; toto je tajná veta \n"
 
 #~ msgid ""
 #~ "Please repeat the last passphrase, so you are sure what you typed in."
 #~ msgstr ""
-#~ "Prosím, zopakujte posledné heslo, aby ste si boli istý, èo ste napísali."
+#~ "Prosím, zopakujte posledné heslo, aby ste si boli istý, čo ste napísali."
 
 #~ msgid "Give the name of the file to which the signature applies"
-#~ msgstr "Zadajte názov súboru, ku ktorému sa podpis vz»ahuje"
+#~ msgstr "Zadajte názov súboru, ku ktorému sa podpis vzťahuje"
 
 #~ msgid "Answer \"yes\" if it is okay to overwrite the file"
-#~ msgstr "Ak si prajete prepísanie súboru, odpovedzte \"ano\""
+#~ msgstr "Ak si prajete prepísanie súboru, odpovedzte \"ano\""
 
 #~ msgid ""
 #~ "Please enter a new filename. If you just hit RETURN the default\n"
 #~ "file (which is shown in brackets) will be used."
 #~ msgstr ""
-#~ "Prosím, vlo¾te nový názov súboru. Ak len stlaèíte RETURN, bude\n"
-#~ "pou¾itý implicitný súbor (ktorý je zobrazený v zátvorkách)."
+#~ "Prosím, vložte nový názov súboru. Ak len stlačíte RETURN, bude\n"
+#~ "použitý implicitný súbor (ktorý je zobrazený v zátvorkách)."
 
 #~ msgid ""
 #~ "You should specify a reason for the certification.  Depending on the\n"
@@ -9599,41 +9677,41 @@ msgstr ""
 #~ "      Use this to state that the user ID should not longer be used;\n"
 #~ "      this is normally used to mark an email address invalid.\n"
 #~ msgstr ""
-#~ "Mali by ste ¹pecifikova» dôvod certifikácie. V závislosti na kontexte\n"
-#~ "máte mo¾nos» si vybra» zo zoznamu:\n"
-#~ "  \"kµúè bol kompromitovaný\"\n"
-#~ "      Toto pou¾ite, pokiaµ si myslíte, ¾e k Vá¹mu tajnému kµúèu získali\n"
-#~ "       prístup neoprávnené osoby.\n"
-#~ "  \"kµúè je nahradený\"\n"
-#~ "      Toto pou¾ite, pokiaµ ste tento kµúè nahradili nov¹ím kµúèom.\n"
-#~ "  \"kµúè sa u¾ nepou¾íva\"\n"
-#~ "      Toto pou¾ite, pokiaµ tento kµúè u¾ nepou¾ívate.\n"
-#~ "  \"Identifikátor u¾ívateµa u¾ nie je platný\"\n"
-#~ "      Toto pou¾ite, pokiaµ by sa identifikátor u¾ívateµa u¾ nemal "
-#~ "pou¾íva»;\n"
-#~ "      normálne sa pou¾íva na oznaèenie neplatnej e-mailové adresy.\n"
+#~ "Mali by ste špecifikovať dôvod certifikácie. V závislosti na kontexte\n"
+#~ "máte možnosť si vybrať zo zoznamu:\n"
+#~ "  \"kľúč bol kompromitovaný\"\n"
+#~ "      Toto použite, pokiaľ si myslíte, že k Vášmu tajnému kľúču získali\n"
+#~ "       prístup neoprávnené osoby.\n"
+#~ "  \"kľúč je nahradený\"\n"
+#~ "      Toto použite, pokiaľ ste tento kľúč nahradili novším kľúčom.\n"
+#~ "  \"kľúč sa už nepoužíva\"\n"
+#~ "      Toto použite, pokiaľ tento kľúč už nepoužívate.\n"
+#~ "  \"Identifikátor užívateľa už nie je platný\"\n"
+#~ "      Toto použite, pokiaľ by sa identifikátor užívateľa už nemal "
+#~ "používať;\n"
+#~ "      normálne sa používa na označenie neplatnej e-mailové adresy.\n"
 
 #~ msgid ""
 #~ "If you like, you can enter a text describing why you issue this\n"
 #~ "revocation certificate.  Please keep this text concise.\n"
 #~ "An empty line ends the text.\n"
 #~ msgstr ""
-#~ "Ak chcete, mô¾ete vlo¾i» text popisujúcí pôvod vzniku tohto revokaèného\n"
-#~ "ceritifikátu. Prosím, struène. \n"
-#~ "Text konèí prázdnym riadkom.\n"
+#~ "Ak chcete, môžete vložiť text popisujúcí pôvod vzniku tohto revokačného\n"
+#~ "ceritifikátu. Prosím, stručne. \n"
+#~ "Text končí prázdnym riadkom.\n"
 
 #~ msgid "can't put notation data into v3 (PGP 2.x style) signatures\n"
-#~ msgstr "nemô¾em prida» dodatoèné údaje do v3 (PGP 2.x ¹týl) podpisov\n"
+#~ msgstr "nemôžem pridať dodatočné údaje do v3 (PGP 2.x štýl) podpisov\n"
 
 #~ msgid "can't put notation data into v3 (PGP 2.x style) key signatures\n"
 #~ msgstr ""
-#~ "nemô¾em prida» dodatoèné údaje do v3 (PGP 2.x ¹týl) podpisov kµúèov\n"
+#~ "nemôžem pridať dodatočné údaje do v3 (PGP 2.x štýl) podpisov kľúčov\n"
 
 #~ msgid "can't put a policy URL into v3 (PGP 2.x style) signatures\n"
-#~ msgstr "nemô¾em prida» politiku URL do v3 (PGP 2.x ¹týl) podpisov\n"
+#~ msgstr "nemôžem pridať politiku URL do v3 (PGP 2.x štýl) podpisov\n"
 
 #~ msgid "can't put a policy URL into v3 key (PGP 2.x style) signatures\n"
-#~ msgstr "nemô¾em prida» politiku URL do v3 (PGP 2.x ¹týl) podpisov kµúèov\n"
+#~ msgstr "nemôžem pridať politiku URL do v3 (PGP 2.x štýl) podpisov kľúčov\n"
 
 #, fuzzy
 #~ msgid "shelll"
@@ -9642,73 +9720,73 @@ msgstr ""
 #, fuzzy
 #~ msgid ""
 #~ "please see http://www.gnupg.org/download/iconv.html for more information\n"
-#~ msgstr "Viac informácií nájdete na adrese http://www.gnupg.org/faq.html\n"
+#~ msgstr "Viac informácií nájdete na adrese http://www.gnupg.org/faq.html\n"
 
 #, fuzzy
 #~ msgid "key generation is not available from the commandline\n"
-#~ msgstr "gpg-agent nie je v tomto sedení dostupný\n"
+#~ msgstr "gpg-agent nie je v tomto sedení dostupný\n"
 
 #, fuzzy
 #~ msgid "please use the script \"%s\" to generate a new key\n"
-#~ msgstr "Prosím, vyberte druh kµúèa, ktorý chcete:\n"
+#~ msgstr "Prosím, vyberte druh kľúča, ktorý chcete:\n"
 
 #, fuzzy
 #~ msgid "cipher extension `%s' not loaded due to unsafe permissions\n"
 #~ msgstr ""
-#~ "¹ifra \"%s\" nebola nahraná, preto¾e prístupové práva nie sú nastavené "
-#~ "bezpeène\n"
+#~ "šifra \"%s\" nebola nahraná, pretože prístupové práva nie sú nastavené "
+#~ "bezpečne\n"
 
 #, fuzzy
 #~ msgid ".\n"
 #~ msgstr "%s.\n"
 
 #~ msgid "problem with the agent - disabling agent use\n"
-#~ msgstr "problém s agentom - pou¾ívanie agenta vypnuté\n"
+#~ msgstr "problém s agentom - používanie agenta vypnuté\n"
 
 #, fuzzy
 #~ msgid "can't query passphrase in batch mode\n"
-#~ msgstr "v dávkovom re¾ime sa nemô¾em pýta» na heslo\n"
+#~ msgstr "v dávkovom režime sa nemôžem pýtať na heslo\n"
 
 #~ msgid "Repeat passphrase: "
 #~ msgstr "Opakujte heslo: "
 
 #~ msgid "-k[v][v][v][c] [user-id] [keyring]"
-#~ msgstr "-k[v][v][v][c] [id u¾ívateµa] [súbor s kµúèmi (keyring)]"
+#~ msgstr "-k[v][v][v][c] [id užívateľa] [súbor s kľúčmi (keyring)]"
 
 #, fuzzy
 #~ msgid "can't gen prime with pbits=%u qbits=%u\n"
-#~ msgstr "nemô¾em vytvori» prvoèíslo s då¾kou menej ako %d bitov\n"
+#~ msgstr "nemôžem vytvoriÅ¥ prvoÄ\8díslo s dĺžkou menej ako %d bitov\n"
 
 #~ msgid "can't generate a prime with less than %d bits\n"
-#~ msgstr "nemô¾em vytvori» prvoèíslo s då¾kou menej ako %d bitov\n"
+#~ msgstr "nemôžem vytvoriÅ¥ prvoÄ\8díslo s dĺžkou menej ako %d bitov\n"
 
 #~ msgid "no entropy gathering module detected\n"
-#~ msgstr "nebol detekovaný ¾iadny modul na získanie entropie\n"
+#~ msgstr "nebol detekovaný žiadny modul na získanie entropie\n"
 
 #, fuzzy
 #~ msgid "can't lock `%s': %s\n"
-#~ msgstr "nemo¾no otvori» `%s'\n"
+#~ msgstr "nemožno otvoriť `%s'\n"
 
 #~ msgid "`%s' is not a regular file - ignored\n"
-#~ msgstr "`%s' nie je normálny súbor - ignorované\n"
+#~ msgstr "`%s' nie je normálny súbor - ignorované\n"
 
 #~ msgid "note: random_seed file is empty\n"
-#~ msgstr "poznámka: súbor random_seed je prázdny\n"
+#~ msgstr "poznámka: súbor random_seed je prázdny\n"
 
 #~ msgid "can't read `%s': %s\n"
-#~ msgstr "nemô¾em èíta» `%s': %s\n"
+#~ msgstr "nemôžem čítať `%s': %s\n"
 
 #~ msgid "note: random_seed file not updated\n"
-#~ msgstr "poznámka: súbor random_seed nie je aktualizovaný\n"
+#~ msgstr "poznámka: súbor random_seed nie je aktualizovaný\n"
 
 #~ msgid "can't write `%s': %s\n"
-#~ msgstr "nemô¾em zapisova» do `%s': %s\n"
+#~ msgstr "nemôžem zapisovať do `%s': %s\n"
 
 #~ msgid "can't close `%s': %s\n"
-#~ msgstr "nemô¾em zavrie» `%s': %s\n"
+#~ msgstr "nemôžem zavrieť `%s': %s\n"
 
 #~ msgid "WARNING: using insecure random number generator!!\n"
-#~ msgstr "VAROVANIE: pou¾itý generátor náhodných èísel nie je bezpeèný!!\n"
+#~ msgstr "VAROVANIE: použitý generátor náhodných čísel nie je bezpečný!!\n"
 
 #~ msgid ""
 #~ "The random number generator is only a kludge to let\n"
@@ -9717,10 +9795,10 @@ msgstr ""
 #~ "DON'T USE ANY DATA GENERATED BY THIS PROGRAM!!\n"
 #~ "\n"
 #~ msgstr ""
-#~ "Generátor náhodných èísel je len atrapa, aby program mohol be¾a»,\n"
-#~ "v ¾iadnom prípade nie je kryptograficky bezpeèný!\n"
+#~ "Generátor náhodných čísel je len atrapa, aby program mohol bežať,\n"
+#~ "v žiadnom prípade nie je kryptograficky bezpečný!\n"
 #~ "\n"
-#~ "NEPOU®ÍVAJTE ®IADNE DÁTA VYTVORENÉ TÝMTO PROGRAMOM!!\n"
+#~ "NEPOUŽÍVAJTE ŽIADNE DÁTA VYTVORENÉ TÝMTO PROGRAMOM!!\n"
 #~ "\n"
 
 #~ msgid ""
@@ -9728,8 +9806,8 @@ msgstr ""
 #~ "keep you from getting bored, because it will improve the quality\n"
 #~ "of the entropy.\n"
 #~ msgstr ""
-#~ "Prosím èakajte, získava sa entropia. Robte zatiaµ nejakú inú prácu\n"
-#~ "aby ste sa nenudili a zvý¹ite tým kvalitu entropie.\n"
+#~ "Prosím čakajte, získava sa entropia. Robte zatiaľ nejakú inú prácu\n"
+#~ "aby ste sa nenudili a zvýšite tým kvalitu entropie.\n"
 
 #~ msgid ""
 #~ "\n"
@@ -9737,233 +9815,230 @@ msgstr ""
 #~ "the OS a chance to collect more entropy! (Need %d more bytes)\n"
 #~ msgstr ""
 #~ "\n"
-#~ "Nedostatok náhodných bajtov. Prosím, pracujte s operaèným systémom, aby\n"
-#~ "ste mu umo¾nili získa» viac entropie (je potrebných %d bajtov).\n"
+#~ "Nedostatok náhodných bajtov. Prosím, pracujte s operačným systémom, aby\n"
+#~ "ste mu umožnili získať viac entropie (je potrebných %d bajtov).\n"
 
 #, fuzzy
 #~ msgid "card reader not available\n"
-#~ msgstr "tajný kµúè nie je dostupný"
+#~ msgstr "tajný kľúč nie je dostupný"
 
 #, fuzzy
 #~ msgid "NOTE: %s is not available in this version\n"
-#~ msgstr "gpg-agent nie je v tomto sedení dostupný\n"
+#~ msgstr "gpg-agent nie je v tomto sedení dostupný\n"
 
 #, fuzzy
 #~ msgid "         algorithms on these user IDs:\n"
-#~ msgstr "Podpísali ste nasledujúce identifikátory u¾ívateµa:\n"
+#~ msgstr "Podpísali ste nasledujúce identifikátory užívateľa:\n"
 
 #~ msgid "general error"
-#~ msgstr "v¹eobecná chyba"
+#~ msgstr "všeobecná chyba"
 
 #~ msgid "unknown packet type"
-#~ msgstr "neznámy typ paketu"
+#~ msgstr "neznámy typ paketu"
 
 #~ msgid "unknown digest algorithm"
-#~ msgstr "neznámy hashovací algoritmus"
+#~ msgstr "neznámy hashovací algoritmus"
 
 #~ msgid "bad public key"
-#~ msgstr "neplatný verejný kµúè"
+#~ msgstr "neplatný verejný kľúč"
 
 #~ msgid "bad secret key"
-#~ msgstr "neplatný tajný kµúè"
+#~ msgstr "neplatný tajný kľúč"
 
 #~ msgid "bad signature"
-#~ msgstr "neplatný podpis"
+#~ msgstr "neplatný podpis"
 
 #~ msgid "checksum error"
-#~ msgstr "chyba kontrolného súètu"
+#~ msgstr "chyba kontrolného súčtu"
 
 #~ msgid "unknown cipher algorithm"
-#~ msgstr "neznámy ¹ifrovací algoritmus"
+#~ msgstr "neznámy šifrovací algoritmus"
 
 #~ msgid "invalid packet"
-#~ msgstr "neplatný paket"
+#~ msgstr "neplatný paket"
 
 #~ msgid "no such user id"
-#~ msgstr "u¾ívateµ s týmto id neexistuje"
+#~ msgstr "užívateľ s týmto id neexistuje"
 
 #~ msgid "secret key not available"
-#~ msgstr "tajný kµúè nie je dostupný"
+#~ msgstr "tajný kľúč nie je dostupný"
 
 #~ msgid "wrong secret key used"
-#~ msgstr "bol pou¾itý nesprávny tajný kµúè"
+#~ msgstr "bol použitý nesprávny tajný kľúč"
 
 #~ msgid "bad key"
-#~ msgstr "nesprávny kµúè"
+#~ msgstr "nesprávny kľúč"
 
 #~ msgid "file write error"
-#~ msgstr "chyba pri zápise súboru"
+#~ msgstr "chyba pri zápise súboru"
 
 #~ msgid "unknown compress algorithm"
-#~ msgstr "neznámy kompresný algoritmus"
+#~ msgstr "neznámy kompresný algoritmus"
 
 #~ msgid "file open error"
-#~ msgstr "chyba pri otváraní súboru"
+#~ msgstr "chyba pri otváraní súboru"
 
 #~ msgid "file create error"
-#~ msgstr "chyba pri vytváraní súboru"
+#~ msgstr "chyba pri vytváraní súboru"
 
 #~ msgid "unimplemented pubkey algorithm"
-#~ msgstr "algoritmus verejného kµúèa nie je implementovaný"
+#~ msgstr "algoritmus verejného kľúča nie je implementovaný"
 
 #~ msgid "unimplemented cipher algorithm"
-#~ msgstr "¹ifrovací algoritmus nie je implementovaný"
+#~ msgstr "šifrovací algoritmus nie je implementovaný"
 
 #~ msgid "unknown signature class"
-#~ msgstr "neznáma trieda podpisu"
+#~ msgstr "neznáma trieda podpisu"
 
 #~ msgid "trust database error"
-#~ msgstr "chyba v databáze dôvery"
+#~ msgstr "chyba v databáze dôvery"
 
 #~ msgid "resource limit"
 #~ msgstr "obmedzenie zdrojov"
 
 #~ msgid "invalid keyring"
-#~ msgstr "neplatný súbor kµúèov"
+#~ msgstr "neplatný súbor kľúčov"
 
 #~ msgid "malformed user id"
-#~ msgstr "nesprávny formát id u¾ívateµa"
+#~ msgstr "nesprávny formát id užívateľa"
 
 #~ msgid "file close error"
-#~ msgstr "chyba pri zatváraní súboru"
+#~ msgstr "chyba pri zatváraní súboru"
 
 #~ msgid "file rename error"
-#~ msgstr "chyba pri premenovávaní súboru"
+#~ msgstr "chyba pri premenovávaní súboru"
 
 #~ msgid "file delete error"
-#~ msgstr "chyba pri mazaní súboru"
+#~ msgstr "chyba pri mazaní súboru"
 
 #~ msgid "unexpected data"
-#~ msgstr "neoèakávané dáta"
+#~ msgstr "neočakávané dáta"
 
 #~ msgid "timestamp conflict"
-#~ msgstr "konflikt èasového razítka"
+#~ msgstr "konflikt časového razítka"
 
 #~ msgid "unusable pubkey algorithm"
-#~ msgstr "nepou¾iteµný algoritmus s verejným kµúèom"
+#~ msgstr "nepoužiteľný algoritmus s verejným kľúčom"
 
 #~ msgid "file exists"
-#~ msgstr "súbor existuje"
+#~ msgstr "súbor existuje"
 
 #~ msgid "weak key"
-#~ msgstr "slabý kµúè"
+#~ msgstr "slabý kľúč"
 
 #~ msgid "bad URI"
-#~ msgstr "nesprávne URI"
-
-#~ msgid "network error"
-#~ msgstr "chyba siete"
+#~ msgstr "nesprávne URI"
 
 #~ msgid "not processed"
-#~ msgstr "nespracované"
+#~ msgstr "nespracované"
 
 #~ msgid "unusable public key"
-#~ msgstr "nepou¾iteµný verejný kµúè"
+#~ msgstr "nepoužiteľný verejný kľúč"
 
 #~ msgid "unusable secret key"
-#~ msgstr "nepou¾iteµný tajný kµúè"
+#~ msgstr "nepoužiteľný tajný kľúč"
 
 #~ msgid "keyserver error"
-#~ msgstr "chyba servera kµúèov"
+#~ msgstr "chyba servera kľúčov"
 
 #, fuzzy
 #~ msgid "no card"
-#~ msgstr "neza¹ifrované"
+#~ msgstr "nezašifrované"
 
 #, fuzzy
 #~ msgid "no data"
-#~ msgstr "chýbajú podpísané dáta\n"
+#~ msgstr "chýbajú podpísané dáta\n"
 
 #~ msgid "... this is a bug (%s:%d:%s)\n"
 #~ msgstr "... toto je chyba v programe (%s:%d:%s)\n"
 
 #~ msgid "operation is not possible without initialized secure memory\n"
 #~ msgstr ""
-#~ "vykonanie operácie nie je mo¾né bez inicializovanej bezpeènej pamäte\n"
+#~ "vykonanie operácie nie je možné bez inicializovanej bezpečnej pamäte\n"
 
 #~ msgid "(you may have used the wrong program for this task)\n"
-#~ msgstr "(pravdepodobne ste na túto úlohu pou¾ili nesprávny program)\n"
+#~ msgstr "(pravdepodobne ste na túto úlohu použili nesprávny program)\n"
 
 #~ msgid ""
 #~ "please see http://www.gnupg.org/why-not-idea.html for more information\n"
 #~ msgstr ""
-#~ "viac informácií nájdete v dokumente http://www.gnupg.cz/why-not-idea."
+#~ "viac informácií nájdete v dokumente http://www.gnupg.cz/why-not-idea."
 #~ "html\n"
 
 #, fuzzy
 #~ msgid "all export-clean-* options from above"
-#~ msgstr "èíta» nastavenia zo súboru"
+#~ msgstr "čítať nastavenia zo súboru"
 
 #, fuzzy
 #~ msgid "all import-clean-* options from above"
-#~ msgstr "èíta» nastavenia zo súboru"
+#~ msgstr "čítať nastavenia zo súboru"
 
 #, fuzzy
 #~ msgid "expired: %s)"
-#~ msgstr " [platnos» skonèí: %s]"
+#~ msgstr " [platnosť skončí: %s]"
 
 #, fuzzy
 #~ msgid "key %s: expired signature from key %s - skipped\n"
-#~ msgstr "kµúè %08lX: neoèakávaná podpisová trieda (0x%02X) - preskoèené\n"
+#~ msgstr "kľúč %08lX: neočakávaná podpisová trieda (0x%02X) - preskočené\n"
 
 #, fuzzy
 #~ msgid "Unable to clean `%s'\n"
-#~ msgstr "nemo¾no spusti» %s \"%s\": %s\n"
+#~ msgstr "nemožno spustiť %s \"%s\": %s\n"
 
 #, fuzzy
 #~ msgid "No user IDs are removable.\n"
-#~ msgstr "u¾ívateµské ID \"%s\" je u¾ revokované\n"
+#~ msgstr "užívateľské ID \"%s\" je už revokované\n"
 
 #~ msgid "bad passphrase or unknown cipher algorithm (%d)\n"
-#~ msgstr "nesprávne heslo alebo neznámy ¹ifrovací algoritmus (%d)\n"
+#~ msgstr "nesprávne heslo alebo neznámy šifrovací algoritmus (%d)\n"
 
 #~ msgid "can't set client pid for the agent\n"
-#~ msgstr "nemô¾em nastavi» PID klienta pre gpg-agenta\n"
+#~ msgstr "nemôžem nastaviť PID klienta pre gpg-agenta\n"
 
 #~ msgid "can't get server read FD for the agent\n"
-#~ msgstr "nemo¾no získa» server read file descriptor pre agenta\n"
+#~ msgstr "nemožno získať server read file descriptor pre agenta\n"
 
 #~ msgid "can't get server write FD for the agent\n"
-#~ msgstr "nemo¾no získa» server write file descriptor pre agenta\n"
+#~ msgstr "nemožno získať server write file descriptor pre agenta\n"
 
 #~ msgid "select secondary key N"
-#~ msgstr "vyberte sekundárny kµúè N"
+#~ msgstr "vyberte sekundárny kľúč N"
 
 #~ msgid "list signatures"
-#~ msgstr "vypísa» zoznam podpisov"
+#~ msgstr "vypísať zoznam podpisov"
 
 #~ msgid "sign the key"
-#~ msgstr "podpísa» kµúè"
+#~ msgstr "podpísať kľúč"
 
 #~ msgid "add a secondary key"
-#~ msgstr "prida» sekundárny kµúè"
+#~ msgstr "pridať sekundárny kľúč"
 
 #~ msgid "delete signatures"
-#~ msgstr "zmaza» podpisy"
+#~ msgstr "zmazať podpisy"
 
 #~ msgid "change the expire date"
-#~ msgstr "zmeni» dobu platnosti"
+#~ msgstr "zmeniť dobu platnosti"
 
 #~ msgid "set preference list"
-#~ msgstr "nastavi» zoznam predvolieb"
+#~ msgstr "nastaviť zoznam predvolieb"
 
 #~ msgid "updated preferences"
-#~ msgstr "aktualizova» predvoµby"
+#~ msgstr "aktualizovať predvoľby"
 
 #~ msgid "No secondary key with index %d\n"
-#~ msgstr "Neexistuje sekundárny kµúè s indexom %d\n"
+#~ msgstr "Neexistuje sekundárny kľúč s indexom %d\n"
 
 #~ msgid "--nrsign-key user-id"
-#~ msgstr "--nrsign-key id u¾ívateµa"
+#~ msgstr "--nrsign-key id užívateľa"
 
 #~ msgid "--nrlsign-key user-id"
-#~ msgstr "--nrlsign-key id u¾ívateµa"
+#~ msgstr "--nrlsign-key id užívateľa"
 
 #~ msgid "sign the key non-revocably"
-#~ msgstr "podpísa» kµúè bez mo¾nosti odvola» podpis (non-revocably)"
+#~ msgstr "podpísať kľúč bez možnosti odvolať podpis (non-revocably)"
 
 #~ msgid "sign the key locally and non-revocably"
-#~ msgstr "podpísa» kµúè lokálne a bez mo¾nosti odvola» podpis (non-revocably)"
+#~ msgstr "podpísať kľúč lokálne a bez možnosti odvolať podpis (non-revocably)"
 
 #~ msgid "q"
 #~ msgstr "u"
@@ -9995,13 +10070,13 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "generate"
-#~ msgstr "v¹eobecná chyba"
+#~ msgstr "všeobecná chyba"
 
 #~ msgid "passwd"
 #~ msgstr "passwd"
 
 #~ msgid "save"
-#~ msgstr "ulo¾i»"
+#~ msgstr "uložiť"
 
 #~ msgid "fpr"
 #~ msgstr "fpr"
@@ -10085,7 +10160,7 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "keyserver"
-#~ msgstr "chyba servera kµúèov"
+#~ msgstr "chyba servera kľúčov"
 
 #~ msgid "trust"
 #~ msgstr "trust"
@@ -10109,7 +10184,7 @@ msgstr ""
 #~ msgstr "showphoto"
 
 #~ msgid "digest algorithm `%s' is read-only in this release\n"
-#~ msgstr "hashovací algoritmus `%s' je len na èítanie v tejto verzii\n"
+#~ msgstr "hashovací algoritmus `%s' je len na čítanie v tejto verzii\n"
 
 #~ msgid ""
 #~ "About to generate a new %s keypair.\n"
@@ -10117,71 +10192,71 @@ msgstr ""
 #~ "              default keysize is 1024 bits\n"
 #~ "    highest suggested keysize is 2048 bits\n"
 #~ msgstr ""
-#~ "Chystám sa vytvori» nový pár kµúèov %s.\n"
-#~ "                       minimálna veµkos» kµúèa je  768 bitov\n"
-#~ "                      implicitná veµkos» kµúèa je 1024 bitov\n"
-#~ "            najvy¹¹ia navrhovaná veµkos» kµúèa je 2048 bitov\n"
+#~ "Chystám sa vytvoriť nový pár kľúčov %s.\n"
+#~ "                       minimálna veľkosť kľúča je  768 bitov\n"
+#~ "                      implicitná veľkosť kľúča je 1024 bitov\n"
+#~ "            najvyššia navrhovaná veľkosť kľúča je 2048 bitov\n"
 
 #~ msgid "DSA only allows keysizes from 512 to 1024\n"
-#~ msgstr "kµúè DSA musí ma» veµkos» od 512 do 1024 bitov.\n"
+#~ msgstr "kľúč DSA musí mať veľkosť od 512 do 1024 bitov.\n"
 
 #~ msgid "keysize too small; 1024 is smallest value allowed for RSA.\n"
 #~ msgstr ""
-#~ "veµkos» kµúèa je príli¹ malá; minimálna povolená veµkos» pre RSA je 1024 "
+#~ "veľkosť kľúča je príliš malá; minimálna povolená veľkosť pre RSA je 1024 "
 #~ "bitov.\n"
 
 #~ msgid "keysize too small; 768 is smallest value allowed.\n"
 #~ msgstr ""
-#~ "veµkos» kµúèa je príli¹ malá; minimálna povolená veµkos» je 768 bitov.\n"
+#~ "veľkosť kľúča je príliš malá; minimálna povolená veľkosť je 768 bitov.\n"
 
 #~ msgid "keysize too large; %d is largest value allowed.\n"
-#~ msgstr "veµkos» kµúèa je príli¹ veµká; maximálna povolená hodnota je %d.\n"
+#~ msgstr "veľkosť kľúča je príliš veľká; maximálna povolená hodnota je %d.\n"
 
 #~ msgid ""
 #~ "Keysizes larger than 2048 are not suggested because\n"
 #~ "computations take REALLY long!\n"
 #~ msgstr ""
-#~ "Veµkosti kµúèov väè¹ie ako 2048 bitov se neodporúèajú, preto¾e\n"
-#~ "výpoèty potom trvajú VE¥MI dlho!\n"
+#~ "Veľkosti kľúÄ\8dov väÄ\8dÅ¡ie ako 2048 bitov se neodporúÄ\8dajú, pretože\n"
+#~ "výpočty potom trvajú VEĽMI dlho!\n"
 
 #, fuzzy
 #~ msgid "Are you sure that you want this keysize? (y/N) "
-#~ msgstr "Skutoène chcete vytvori» kµúè tejto då¾ky? "
+#~ msgstr "SkutoÄ\8dne chcete vytvoriÅ¥ kľúÄ\8d tejto dĺžky? "
 
 #~ msgid ""
 #~ "Okay, but keep in mind that your monitor and keyboard radiation is also "
 #~ "very vulnerable to attacks!\n"
 #~ msgstr ""
-#~ "Dobre, ale nezabúdajte, ¾e informácie mô¾u by» vyzradené z poèítaèa aj "
-#~ "elektromagnetickým vy¾arovaním monitora alebo klávesnice!\n"
+#~ "Dobre, ale nezabúdajte, že informácie môžu byť vyzradené z počítača aj "
+#~ "elektromagnetickým vyžarovaním monitora alebo klávesnice!\n"
 
 #~ msgid "Experimental algorithms should not be used!\n"
-#~ msgstr "Experimentálne algoritmy by sa nemali pou¾íva»!\n"
+#~ msgstr "Experimentálne algoritmy by sa nemali používať!\n"
 
 #~ msgid ""
 #~ "this cipher algorithm is deprecated; please use a more standard one!\n"
 #~ msgstr ""
-#~ "tento ¹ifrovací algoritmus je zastaralý; prosím, pou¾ite nejaký "
-#~ "¹tandardnej¹í!\n"
+#~ "tento šifrovací algoritmus je zastaralý; prosím, použite nejaký "
+#~ "štandardnejší!\n"
 
 #~ msgid "sorry, can't do this in batch mode\n"
-#~ msgstr "nemo¾no previes» v dávkovom móde\n"
+#~ msgstr "nemožno previesť v dávkovom móde\n"
 
 #, fuzzy
 #~ msgid "can't open file `%s': %s\n"
-#~ msgstr "nemo¾no otvori» súbor: %s\n"
+#~ msgstr "nemožno otvoriť súbor: %s\n"
 
 #~ msgid "key %08lX: key has been revoked!\n"
-#~ msgstr "kµúè %08lX: kµúè bol revokovaný\n"
+#~ msgstr "kľúč %08lX: kľúč bol revokovaný\n"
 
 #~ msgid "key %08lX: subkey has been revoked!\n"
-#~ msgstr "kµúè %08lX: podkµúè bol revokovaný!\n"
+#~ msgstr "kľúč %08lX: podkľúč bol revokovaný!\n"
 
 #~ msgid "%08lX: key has expired\n"
-#~ msgstr "%08lX: skonèila platnos» kµúèa\n"
+#~ msgstr "%08lX: skončila platnosť kľúča\n"
 
 #~ msgid "%08lX: We do NOT trust this key\n"
-#~ msgstr "%08lX: NEdôverujeme tomuto kµúèu!\n"
+#~ msgstr "%08lX: NEdôverujeme tomuto kľúču!\n"
 
 #, fuzzy
 #~ msgid "   (%d) RSA (auth only)\n"
@@ -10189,29 +10264,29 @@ msgstr ""
 
 #, fuzzy
 #~ msgid "   (%d) RSA (sign and auth)\n"
-#~ msgstr "   (%d) RSA (pro ¹ifrování a podpis)\n"
+#~ msgstr "   (%d) RSA (pro šifrování a podpis)\n"
 
 #, fuzzy
 #~ msgid "   (%d) RSA (encrypt and auth)\n"
-#~ msgstr "   (%d) RSA (len na ¹ifrovanie)\n"
+#~ msgstr "   (%d) RSA (len na šifrovanie)\n"
 
 #, fuzzy
 #~ msgid "  (%d) RSA (sign, encrypt and auth)\n"
-#~ msgstr "   (%d) RSA (pro ¹ifrování a podpis)\n"
+#~ msgstr "   (%d) RSA (pro šifrování a podpis)\n"
 
 #~ msgid "%s: can't open: %s\n"
-#~ msgstr "%s: nemô¾em otvori»: %s\n"
+#~ msgstr "%s: nemôžem otvoriť: %s\n"
 
 #~ msgid "%s: WARNING: empty file\n"
-#~ msgstr "%s: VAROVANIE: súbor je prázdny\n"
+#~ msgstr "%s: VAROVANIE: súbor je prázdny\n"
 
 #, fuzzy
 #~ msgid "   (%d) I trust marginally\n"
-#~ msgstr " %d = Dôverujem èiastoène\n"
+#~ msgstr " %d = Dôverujem čiastočne\n"
 
 #, fuzzy
 #~ msgid "   (%d) I trust fully\n"
-#~ msgstr " %d = Dôverujem úplne\n"
+#~ msgstr " %d = Dôverujem úplne\n"
 
 #, fuzzy
 #~ msgid "expires"
@@ -10223,226 +10298,226 @@ msgstr ""
 #~ "locally signed with your key %s at %s\n"
 #~ msgstr ""
 #~ "\"\n"
-#~ "lokálne podpísané Va¹ím kµúèom %08lX v %s\n"
+#~ "lokálne podpísané Vaším kľúčom %08lX v %s\n"
 
 #~ msgid "%s: can't create lock\n"
-#~ msgstr "%s: nemô¾em vytvori» zámok\n"
+#~ msgstr "%s: nemôžem vytvoriť zámok\n"
 
 #~ msgid "%s: can't make lock\n"
-#~ msgstr "%s: nemô¾em zamknú»\n"
+#~ msgstr "%s: nemôžem zamknúť\n"
 
 #~ msgid "%s: can't create: %s\n"
-#~ msgstr "%s: nemô¾em vytvori»: %s\n"
+#~ msgstr "%s: nemôžem vytvoriť: %s\n"
 
 #~ msgid "If you want to use this revoked key anyway, answer \"yes\"."
 #~ msgstr ""
-#~ "Pokiaµ aj tak chcete pou¾i» tento revokovaný kµúè, odpovedzte \"ano\"."
+#~ "Pokiaľ aj tak chcete použiť tento revokovaný kľúč, odpovedzte \"ano\"."
 
 #~ msgid "Unable to open photo \"%s\": %s\n"
-#~ msgstr "Nemo¾no otvori» fotografiu \"%s\": %s\n"
+#~ msgstr "Nemožno otvoriť fotografiu \"%s\": %s\n"
 
 #~ msgid "error: missing colon\n"
-#~ msgstr "chyba: chýba èiarka\n"
+#~ msgstr "chyba: chýba čiarka\n"
 
 #~ msgid "error: no ownertrust value\n"
-#~ msgstr "chyba: ¾iadna úroveò dôveryhodnosti\n"
+#~ msgstr "chyba: žiadna úroveň dôveryhodnosti\n"
 
 #~ msgid " (main key ID %08lX)"
-#~ msgstr " (hlavné ID kµúèa %08lX)"
+#~ msgstr " (hlavné ID kľúča %08lX)"
 
 #~ msgid "rev! subkey has been revoked: %s\n"
-#~ msgstr "rev! podkµúè bol revokovaný: %s\n"
+#~ msgstr "rev! podkľúč bol revokovaný: %s\n"
 
 #~ msgid "rev- faked revocation found\n"
-#~ msgstr "rev- nájdená falo¹ná revokácia\n"
+#~ msgstr "rev- nájdená falošná revokácia\n"
 
 #, fuzzy
 #~ msgid " [expired: %s]"
-#~ msgstr " [platnos» skonèí: %s]"
+#~ msgstr " [platnosť skončí: %s]"
 
 #~ msgid " [expires: %s]"
-#~ msgstr " [platnos» skonèí: %s]"
+#~ msgstr " [platnosť skončí: %s]"
 
 #, fuzzy
 #~ msgid " [revoked: %s]"
-#~ msgstr "[revokované]"
+#~ msgstr "[revokované]"
 
 #~ msgid ""
 #~ "WARNING: digest `%s' is not part of OpenPGP.  Use at your own risk!\n"
 #~ msgstr ""
-#~ "VAROVANIE: hash `%s' nie je súèas»ou OpenPGP. Pou¾itie na vlastné "
-#~ "nebezpeèie!\n"
+#~ "VAROVANIE: hash `%s' nie je súčasťou OpenPGP. Použitie na vlastné "
+#~ "nebezpečie!\n"
 
 #~ msgid "|[files]|encrypt files"
-#~ msgstr "|[súbor]|¹ifrova» súbor"
+#~ msgstr "|[súbor]|šifrovať súbor"
 
 #~ msgid "store only"
-#~ msgstr "len ulo¾enie"
+#~ msgstr "len uloženie"
 
 #~ msgid "|[files]|decrypt files"
-#~ msgstr "|[súbor]|de¹ifrova» súbor"
+#~ msgstr "|[súbor]|dešifrovať súbor"
 
 #~ msgid "sign a key non-revocably"
-#~ msgstr "podpísa» kµúè bez mo¾nosti revokácie podpisu"
+#~ msgstr "podpísať kľúč bez možnosti revokácie podpisu"
 
 #~ msgid "sign a key locally and non-revocably"
 #~ msgstr ""
-#~ "podpísa» kµúè lokálne a bez mo¾nosti\n"
-#~ " revokácie podpisu"
+#~ "podpísaÅ¥ kľúÄ\8d lokálne a bez možnosti\n"
+#~ " revokácie podpisu"
 
 #~ msgid "list only the sequence of packets"
-#~ msgstr "vypísa» len poradie paketov"
+#~ msgstr "vypísať len poradie paketov"
 
 #~ msgid "export the ownertrust values"
 #~ msgstr ""
-#~ "exportova» hodnoty dôveryhodnosti\n"
-#~ " vlastníka kµúèa"
+#~ "exportovať hodnoty dôveryhodnosti\n"
+#~ " vlastníka kľúča"
 
 #~ msgid "unattended trust database update"
-#~ msgstr "neinteraktívna aktualizácia databázy dôvery"
+#~ msgstr "neinteraktívna aktualizácia databázy dôvery"
 
 #~ msgid "fix a corrupted trust database"
-#~ msgstr "opravi» naru¹enú databázu dôvery"
+#~ msgstr "opraviť narušenú databázu dôvery"
 
 #~ msgid "De-Armor a file or stdin"
-#~ msgstr "Dekódova» ASCII súbor alebo std. vstup"
+#~ msgstr "Dekódovať ASCII súbor alebo std. vstup"
 
 #~ msgid "En-Armor a file or stdin"
-#~ msgstr "Zakódova» súbor alebo std. vstup do ASCII"
+#~ msgstr "Zakódovať súbor alebo std. vstup do ASCII"
 
 #~ msgid "do not force v3 signatures"
-#~ msgstr "nevynucova» podpisy verzie 3"
+#~ msgstr "nevynucovať podpisy verzie 3"
 
 #~ msgid "force v4 key signatures"
-#~ msgstr "vynúti» podpisy verzie 4"
+#~ msgstr "vynútiť podpisy verzie 4"
 
 #~ msgid "do not force v4 key signatures"
-#~ msgstr "nevynucova» podpisy verzie 4"
+#~ msgstr "nevynucovať podpisy verzie 4"
 
 #~ msgid "never use a MDC for encryption"
-#~ msgstr "na ¹ifrovanie nikdy nepou¾i» MDC"
+#~ msgstr "na šifrovanie nikdy nepoužiť MDC"
 
 #~ msgid "use the gpg-agent"
-#~ msgstr "pou¾ite gpg-agenta"
+#~ msgstr "použite gpg-agenta"
 
 #~ msgid "|[file]|write status info to file"
-#~ msgstr "|[súbor]|zapí¹ informáciu o stave do súboru"
+#~ msgstr "|[súbor]|zapíš informáciu o stave do súboru"
 
 #~ msgid "|KEYID|ultimately trust this key"
-#~ msgstr "|kµúè|úplne dôverova» tomuto kµúèu"
+#~ msgstr "|kľúč|úplne dôverovať tomuto kľúču"
 
 #~ msgid "emulate the mode described in RFC1991"
-#~ msgstr "emulova» mód popísaný v RFC1991"
+#~ msgstr "emulovať mód popísaný v RFC1991"
 
 #~ msgid "set all packet, cipher and digest options to OpenPGP behavior"
 #~ msgstr ""
-#~ "nastav v¹etky vlastnosti paketov, ¹ifier\n"
+#~ "nastav všetky vlastnosti paketov, šifier\n"
 #~ " a hashov ako v OpenPGP"
 
 #~ msgid "set all packet, cipher and digest options to PGP 2.x behavior"
 #~ msgstr ""
-#~ "nastav v¹etky vlastnosti paketov, ¹ifier\n"
+#~ "nastav všetky vlastnosti paketov, šifier\n"
 #~ " a hashov ako v PGP 2.x"
 
 #~ msgid "|NAME|use message digest algorithm NAME for passphrases"
-#~ msgstr "|ALG|pou¾i» hashovací algoritmus ALG pre heslá"
+#~ msgstr "|ALG|použiť hashovací algoritmus ALG pre heslá"
 
 #~ msgid "throw keyid field of encrypted packets"
 #~ msgstr ""
-#~ "zahodi» identifikátor kµúèa zo ¹ifrovaných\n"
+#~ "zahodiť identifikátor kľúča zo šifrovaných\n"
 #~ " paketov"
 
 #~ msgid "Show Photo IDs"
-#~ msgstr "Zobrazi» fotografické ID"
+#~ msgstr "Zobraziť fotografické ID"
 
 #~ msgid "Don't show Photo IDs"
-#~ msgstr "Nezobrazova» fotografické ID"
+#~ msgstr "Nezobrazovať fotografické ID"
 
 #~ msgid "Set command line to view Photo IDs"
 #~ msgstr ""
-#~ "Nastavi» príkazový riadok na prehliadanie\n"
-#~ " fotografického ID"
+#~ "Nastaviť príkazový riadok na prehliadanie\n"
+#~ " fotografického ID"
 
 #~ msgid "compress algorithm `%s' is read-only in this release\n"
-#~ msgstr "hashovací algoritmus `%s' je len na èítanie v tejto verzii\n"
+#~ msgstr "hashovací algoritmus `%s' je len na čítanie v tejto verzii\n"
 
 #~ msgid "compress algorithm must be in range %d..%d\n"
-#~ msgstr "kompresný algoritmus musí by» v rozmedzí %d..%d\n"
+#~ msgstr "kompresný algoritmus musí byť v rozmedzí %d..%d\n"
 
 #~ msgid ""
 #~ "%08lX: It is not sure that this key really belongs to the owner\n"
 #~ "but it is accepted anyway\n"
 #~ msgstr ""
-#~ "%08lX: Nie je isté, èi tento podpis patrí vlastníkovi, napriek\n"
-#~ "tomu je akceptovaný\n"
+#~ "%08lX: Nie je isté, či tento podpis patrí vlastníkovi, napriek\n"
+#~ "tomu je akceptovaný\n"
 
 #~ msgid "preference %c%lu is not valid\n"
-#~ msgstr "predvoµba %c%lu nie je platná\n"
+#~ msgstr "predvoľba %c%lu nie je platná\n"
 
 #~ msgid "key %08lX: not a rfc2440 key - skipped\n"
-#~ msgstr "kµúè %08lX: nie je vo formáte RFC 2440 - preskoèené\n"
+#~ msgstr "kľúč %08lX: nie je vo formáte RFC 2440 - preskočené\n"
 
 #~ msgid ""
 #~ "NOTE: Elgamal primary key detected - this may take some time to import\n"
 #~ msgstr ""
-#~ "POZNÁMKA: Nájdený primárny kµúè Elgamal - import mô¾e chvíµu trva»\n"
+#~ "POZNÁMKA: Nájdený primárny kľúč Elgamal - import môže chvíľu trvať\n"
 
 #~ msgid " (default)"
-#~ msgstr "de¹ifrova» dáta (implicitne)"
+#~ msgstr "dešifrovať dáta (implicitne)"
 
 #~ msgid "%s%c %4u%c/%08lX  created: %s expires: %s"
-#~ msgstr "%s%c %4u%c/%08lX  vytvorený: %s platnos» do: %s"
+#~ msgstr "%s%c %4u%c/%08lX  vytvorený: %s platnosť do: %s"
 
 #~ msgid "can't get key from keyserver: %s\n"
-#~ msgstr "nemô¾em dosta» kµúè zo servera kµúèov: %s\n"
+#~ msgstr "nemôžem dostať kľúč zo servera kľúčov: %s\n"
 
 #~ msgid "success sending to `%s' (status=%u)\n"
-#~ msgstr "úspe¹né odoslanie na `%s' (status=%u)\n"
+#~ msgstr "úspešné odoslanie na `%s' (status=%u)\n"
 
 #~ msgid "failed sending to `%s': status=%u\n"
 #~ msgstr "zlyhalo posielanie na `%s': (status=%u)\n"
 
 #~ msgid "this keyserver does not support --search-keys\n"
-#~ msgstr "tento server kµúèov nepodporuje --search-keys\n"
+#~ msgstr "tento server kľúčov nepodporuje --search-keys\n"
 
 #~ msgid "can't search keyserver: %s\n"
-#~ msgstr "nemô¾em prehµadáva» server kµúèov: %s\n"
+#~ msgstr "nemôžem prehľadávať server kľúčov: %s\n"
 
 #~ msgid ""
 #~ "key %08lX: this is a PGP generated ElGamal key which is NOT secure for "
 #~ "signatures!\n"
 #~ msgstr ""
-#~ "kµúè %08lX: toto je kµúè algoritmu ElGamal vygenerovaný v PGP - podpisy "
-#~ "ním vytvorené NIE SÚ bezpeèné!\n"
+#~ "kľúč %08lX: toto je kľúč algoritmu ElGamal vygenerovaný v PGP - podpisy "
+#~ "ním vytvorené NIE SÚ bezpečné!\n"
 
 #~ msgid ""
 #~ "key %08lX has been created %lu second in future (time warp or clock "
 #~ "problem)\n"
 #~ msgstr ""
-#~ "kµúè %08lX bol vytvorený %lu sekund v budúcnosti (do¹lo ku zmene èasu "
+#~ "kľúč %08lX bol vytvorený %lu sekund v budúcnosti (došlo ku zmene času "
 #~ "alebo\n"
-#~ "je problém so systémovým èasom)\n"
+#~ "je problém so systémovým časom)\n"
 
 #~ msgid ""
 #~ "key %08lX has been created %lu seconds in future (time warp or clock "
 #~ "problem)\n"
 #~ msgstr ""
-#~ "kµúè %08lX bol vytvorený %lu sekund v budúcnosti (do¹lo ke zmene èasu "
+#~ "kľúč %08lX bol vytvorený %lu sekund v budúcnosti (došlo ke zmene času "
 #~ "alebo\n"
-#~ "je problém so systémovým èasom)\n"
+#~ "je problém so systémovým časom)\n"
 
 #~ msgid "key %08lX marked as ultimately trusted\n"
-#~ msgstr "kµúè %08lX oznaèený ako absolútne dôveryhodný.\n"
+#~ msgstr "kľúč %08lX označený ako absolútne dôveryhodný.\n"
 
 #~ msgid "signature from Elgamal signing key %08lX to %08lX skipped\n"
-#~ msgstr "podpis od podpisového kµúèa Elgamal %08lX po %08lX preskoèený\n"
+#~ msgstr "podpis od podpisového kľúča Elgamal %08lX po %08lX preskočený\n"
 
 #~ msgid "signature from %08lX to Elgamal signing key %08lX skipped\n"
-#~ msgstr "podpis od %08lX po podpisový kµúè Elgamal %08lX preskoèený\n"
+#~ msgstr "podpis od %08lX po podpisový kľúč Elgamal %08lX preskočený\n"
 
 #~ msgid "checking at depth %d signed=%d ot(-/q/n/m/f/u)=%d/%d/%d/%d/%d/%d\n"
 #~ msgstr ""
-#~ "kontrola v håbke %d podpísané=%d ot(-/q/n/m/f/u)=%d/%d/%d/%d/%d/%d\n"
+#~ "kontrola v hĺbke %d podpísané=%d ot(-/q/n/m/f/u)=%d/%d/%d/%d/%d/%d\n"
 
 #~ msgid ""
 #~ "Select the algorithm to use.\n"
@@ -10469,39 +10544,39 @@ msgstr ""
 #~ msgstr ""
 #~ "Vyberte algoritmus.\n"
 #~ "\n"
-#~ "DSA (nazývaný tie¾ DSS) je algoritmus digitálneho podpisu, ktorý mô¾e "
-#~ "by»\n"
-#~ "pou¾itý len pre podpisy. Je to odporúèaný algoritmus, preto¾e overenie\n"
-#~ "DSA podpisov je oveµa rýchlej¹í ako v algoritme ElGamal.\n"
+#~ "DSA (nazývaný tiež DSS) je algoritmus digitálneho podpisu, ktorý môže "
+#~ "byť\n"
+#~ "použitý len pre podpisy. Je to odporúÄ\8daný algoritmus, pretože overenie\n"
+#~ "DSA podpisov je oveľa rýchlejší ako v algoritme ElGamal.\n"
 #~ "\n"
-#~ "Algoritmus ElGamal mô¾e by» pou¾ívaný ako na podpisy tak na ¹ifrovanie.\n"
-#~ "©tandard OpenPGP rozli¹uje medzi dvoma re¾imami tohto algoritmu:\n"
-#~ "len ¹ifrovanie a ¹ifrovanie+podpis; v podstate je to rovnaké, ale "
-#~ "niekoµko\n"
-#~ "parametrov musí by» vybraných ¹peciálnym spôsobom pre vytvorenie "
-#~ "bezpeèného kµúèa\n"
-#~ "pre podpisy: tento program to vie, ale nie je vy¾adované, aby aj iné\n"
-#~ "implementácie OpenPGP pracovali v re¾ime podpis+¹ifrovanie.\n"
+#~ "Algoritmus ElGamal môže byť používaný ako na podpisy tak na šifrovanie.\n"
+#~ "Å tandard OpenPGP rozliÅ¡uje medzi dvoma režimami tohto algoritmu:\n"
+#~ "len šifrovanie a šifrovanie+podpis; v podstate je to rovnaké, ale "
+#~ "niekoľko\n"
+#~ "parametrov musí byť vybraných špeciálnym spôsobom pre vytvorenie "
+#~ "bezpečného kľúča\n"
+#~ "pre podpisy: tento program to vie, ale nie je vyžadované, aby aj iné\n"
+#~ "implementácie OpenPGP pracovali v režime podpis+šifrovanie.\n"
 #~ "\n"
-#~ "Prvý (primárny) kµúè musí by» v¾dy kµúè, ktorý je schopný podpisova»;\n"
-#~ "to je dôvod, preèo v tomto menu nie je k dispozícii kµúè algoritmu "
+#~ "Prvý (primárny) kľúč musí byť vždy kľúč, ktorý je schopný podpisovať;\n"
+#~ "to je dôvod, prečo v tomto menu nie je k dispozícii kľúč algoritmu "
 #~ "ElGamal\n"
-#~ "urèený len na ¹ifrovanie."
+#~ "určený len na šifrovanie."
 
 #~ msgid ""
 #~ "Although these keys are defined in RFC2440 they are not suggested\n"
 #~ "because they are not supported by all programs and signatures created\n"
 #~ "with them are quite large and very slow to verify."
 #~ msgstr ""
-#~ "Hoci sú tieto kµúèe definované v RFC2440, nie sú odporúèané,\n"
-#~ "preto¾e nie sú podporováné v¹etkými programami a podpisy nimi vytvorené\n"
-#~ "sú dos» veµké a na overenie veµmi pomalé."
+#~ "Hoci sú tieto kľúče definované v RFC2440, nie sú odporúčané,\n"
+#~ "pretože nie sú podporováné všetkými programami a podpisy nimi vytvorené\n"
+#~ "sú dosť veľké a na overenie veľmi pomalé."
 
 #~ msgid "%lu keys so far checked (%lu signatures)\n"
-#~ msgstr "%lu kµúèov u¾ skontrolovaných (%lu podpisov)\n"
+#~ msgstr "%lu kľúčov už skontrolovaných (%lu podpisov)\n"
 
 #~ msgid "key incomplete\n"
-#~ msgstr "kµúè nekompletný\n"
+#~ msgstr "kľúč nekompletný\n"
 
 #~ msgid "key %08lX incomplete\n"
-#~ msgstr "kµúè %08lX: nekompletný\n"
+#~ msgstr "kľúč %08lX: nekompletný\n"
index 27a591d..de350a1 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -184,14 +184,6 @@ msgid "no suitable card key found: %s\n"
 msgstr "ingen lämplig kortnyckel hittades: %s\n"
 
 #, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "skuggning av nyckeln misslyckades: %s\n"
-
-#, c-format
-msgid "error writing key: %s\n"
-msgstr "fel vid skrivning av nyckel: %s\n"
-
-#, c-format
 msgid ""
 "An ssh process requested the use of key%%0A  %s%%0A  (%s)%%0ADo you want to "
 "allow this?"
@@ -364,6 +356,11 @@ msgstr "kör i demonläge (bakgrund)"
 msgid "run in server mode (foreground)"
 msgstr "kör i serverläge (förgrund)"
 
+#, fuzzy
+#| msgid "run in server mode"
+msgid "run in supervised mode"
+msgstr "kör i serverläge"
+
 msgid "verbose"
 msgstr "utförlig"
 
@@ -813,9 +810,8 @@ msgstr "fel när ett rör skapades: %s\n"
 msgid "error forking process: %s\n"
 msgstr "fel vid grening av process: %s\n"
 
-#, fuzzy, c-format
-#| msgid "waiting for process %d to terminate failed: %s\n"
-msgid "waiting for processes to terminate failed: %s\n"
+#, c-format
+msgid "waiting for process %d to terminate failed: %s\n"
 msgstr "misslyckades med att vänta på att processen %d skulle avslutas: %s\n"
 
 #, fuzzy, c-format
@@ -833,14 +829,15 @@ msgstr "fel vid körning av \"%s\": avslutsstatus %d\n"
 msgid "error running '%s': terminated\n"
 msgstr "fel vid körning av \"%s\": avslutades\n"
 
+#, fuzzy, c-format
+#| msgid "waiting for process %d to terminate failed: %s\n"
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "misslyckades med att vänta på att processen %d skulle avslutas: %s\n"
+
 #, c-format
 msgid "error getting exit code of process %d: %s\n"
 msgstr "fel vid hämtning av avslutskod för processen %d: %s\n"
 
-#, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr "misslyckades med att vänta på att processen %d skulle avslutas: %s\n"
-
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to '%s': %s\n"
@@ -862,6 +859,16 @@ msgstr "Varning: osäkert ägarskap på %s \"%s\"\n"
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
 msgstr "Varning: osäkra rättigheter på %s \"%s\"\n"
 
+#, fuzzy, c-format
+#| msgid "waiting %d seconds for the agent to come up\n"
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "väntar %d sekunder för att agenten ska komma igång\n"
+
+#, fuzzy, c-format
+#| msgid "renaming `%s' to `%s' failed: %s\n"
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "namnbyte från \"%s\" till \"%s\" misslyckades: %s\n"
+
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "yes"
 msgstr "ja"
@@ -2276,10 +2283,10 @@ msgstr "visa nyckelringens namn i nyckellistningar"
 msgid "show expiration dates during signature listings"
 msgstr "visa utgångsdatum under signaturlistningar"
 
-#, fuzzy
-#| msgid "Available keys:\n"
-msgid "available TOFU policies:\n"
-msgstr "Tillgängliga nycklar:\n"
+#, fuzzy, c-format
+#| msgid "missing argument for option \"%.50s\"\n"
+msgid "valid values for option '%s':\n"
+msgstr "argument för flaggan \"%.50s\" saknas\n"
 
 #, fuzzy, c-format
 #| msgid "unknown option `%s'\n"
@@ -2290,6 +2297,11 @@ msgid "(use \"help\" to list choices)\n"
 msgstr ""
 
 #, fuzzy, c-format
+#| msgid "missing argument for option \"%.50s\"\n"
+msgid "invalid value for option '%s'\n"
+msgstr "argument för flaggan \"%.50s\" saknas\n"
+
+#, fuzzy, c-format
 #| msgid "NOTE: old default options file `%s' ignored\n"
 msgid "Note: old default options file '%s' ignored\n"
 msgstr "OBS: den gamla inställningsfilen \"%s\" används inte\n"
@@ -3105,6 +3117,11 @@ msgid "[self-signature]"
 msgstr "[självsignatur]"
 
 #, fuzzy, c-format
+#| msgid "error allocating enough memory: %s\n"
+msgid "error allocating memory: %s\n"
+msgstr "fel vid allokering av tillräckligt mycket minne: %s\n"
+
+#, fuzzy, c-format
 #| msgid "key %s: unsupported public key algorithm\n"
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
 msgstr "nyckel %s: algoritmen för publika nycklar stöds inte\n"
@@ -5166,6 +5183,25 @@ msgstr "Den här nyckel tillhör antagligen den namngivna användaren\n"
 msgid "This key belongs to us\n"
 msgstr "Denna nyckel tillhör oss\n"
 
+#, fuzzy, c-format
+#| msgid "root certificate has now been marked as trusted\n"
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr "rotcertifikatet har nu markerats som betrott\n"
+
+#, fuzzy
+#| msgid ""
+#| "It is NOT certain that the key belongs to the person named\n"
+#| "in the user ID.  If you *really* know what you are doing,\n"
+#| "you may answer the next question with yes.\n"
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"Det är INTE säkert att nyckeln tillhör den namngivna personen i\n"
+"användaridentiteten. Om du *verkligen* vet vad du gör, kan du svara\n"
+"ja på nästkommande fråga.\n"
+
 msgid ""
 "It is NOT certain that the key belongs to the person named\n"
 "in the user ID.  If you *really* know what you are doing,\n"
@@ -5863,19 +5899,21 @@ msgid "error updating TOFU database: %s\n"
 msgstr "fel vid sändning av %s-kommando: %s\n"
 
 #, c-format
-msgid "The binding %s is NOT known."
+msgid ""
+"This is the first time the email address \"%s\" is being used with key %s."
 msgstr ""
 
 #, c-format
-msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr ""
+
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
 
 #, fuzzy, c-format
@@ -5883,8 +5921,10 @@ msgstr ""
 msgid "error gathering other user IDs: %s\n"
 msgstr "fel vid hämtning av ny PIN-kod: %s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr ""
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "lista nycklar och användaridentiteter"
 
 #, fuzzy, c-format
 #| msgid "validity: %s"
@@ -5906,42 +5946,48 @@ msgstr[1] ""
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr ""
 
+msgid ", "
+msgstr ""
+
 #, fuzzy
 #| msgid "list keys"
 msgid "this key"
 msgstr "lista nycklar"
 
-#, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
-msgstr[0] ""
-msgstr[1] ""
-
 #, fuzzy, c-format
 #| msgid "print message digests"
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
 msgstr[0] "skriv ut kontrollsummor"
 msgstr[1] "skriv ut kontrollsummor"
 
 #, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+msgid " over the past year."
+msgid_plural " over the past %d years."
 msgstr[0] ""
 msgstr[1] ""
 
+msgid " in the past."
+msgstr ""
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5957,6 +6003,17 @@ msgstr ""
 msgid "(G)ood, (A)ccept once, (U)nknown, (R)eject once, (B)ad? "
 msgstr ""
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing key: %s\n"
+msgid "resetting keydb: %s\n"
+msgstr "fel vid skrivning av nyckel: %s\n"
+
 #, fuzzy, c-format
 #| msgid "error storing flags: %s\n"
 msgid "error setting TOFU binding's trust level to %s\n"
@@ -6006,51 +6063,58 @@ msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
+msgid "%s: "
 msgstr ""
 
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
-msgstr ""
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "Raderade %d signaturer.\n"
 
 #, fuzzy, c-format
 #| msgid "print message digests"
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "skriv ut kontrollsummor"
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
+msgstr[0] "skriv ut kontrollsummor"
+msgstr[1] "skriv ut kontrollsummor"
+
+#, fuzzy, c-format
+#| msgid "encrypted with %lu passphrases\n"
+msgid ", and encrypted %ld messages"
+msgstr "krypterad med %lu lösenfraser\n"
+
+#, fuzzy, c-format
+#| msgid "print message digests"
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] "skriv ut kontrollsummor"
+msgstr[1] "skriv ut kontrollsummor"
 
-#, c-format
 msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
-msgstr[0] ""
-msgstr[1] ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
+msgstr ""
 
-#, c-format
-msgid "The most recent message was verified %s ago."
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
 msgstr ""
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
 msgstr ""
 
 #, c-format
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -6061,6 +6125,15 @@ msgstr[1] ""
 msgid "error opening TOFU database: %s\n"
 msgstr "fel vid sändning av %s-kommando: %s\n"
 
+#, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring `%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "fel vid skrivning av publika nyckelringen \"%s\": %s\n"
+
 #, fuzzy, c-format
 #| msgid "`%s' is not a valid long keyID\n"
 msgid "'%s' is not a valid long keyID\n"
@@ -6333,13 +6406,6 @@ msgstr "misslyckades med att lagra fingeravtrycket: %s\n"
 msgid "failed to store the creation date: %s\n"
 msgstr "misslyckades med att lagra datum för skapandet: %s\n"
 
-#, c-format
-msgid "reading public key failed: %s\n"
-msgstr "läsning av publik nyckel misslyckades: %s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr "svaret innehåller inte publikt nyckeldata\n"
-
 msgid "response does not contain the RSA modulus\n"
 msgstr "svaret innehåller inte en RSA-modulus\n"
 
@@ -6348,9 +6414,16 @@ msgstr "svaret innehåller inte den publika RSA-exponenten\n"
 
 #, fuzzy
 #| msgid "response does not contain the RSA public exponent\n"
-msgid "response does not contain the EC public point\n"
+msgid "response does not contain the EC public key\n"
 msgstr "svaret innehåller inte den publika RSA-exponenten\n"
 
+msgid "response does not contain the public key data\n"
+msgstr "svaret innehåller inte publikt nyckeldata\n"
+
+#, c-format
+msgid "reading public key failed: %s\n"
+msgstr "läsning av publik nyckel misslyckades: %s\n"
+
 #, c-format
 msgid "using default PIN as %s\n"
 msgstr "använder standard-PIN som %s\n"
@@ -8095,6 +8168,9 @@ msgstr ""
 msgid "allow sending OCSP requests"
 msgstr "tillåt PKA-uppslag (DNS-förfrågningar)"
 
+msgid "allow online software version check"
+msgstr ""
+
 msgid "inhibit the use of HTTP"
 msgstr ""
 
@@ -8400,11 +8476,6 @@ msgid "'%s' is an invalid LDAP URL\n"
 msgstr ""
 
 #, fuzzy, c-format
-#| msgid "error allocating enough memory: %s\n"
-msgid "error allocating memory: %s\n"
-msgstr "fel vid allokering av tillräckligt mycket minne: %s\n"
-
-#, fuzzy, c-format
 #| msgid "error writing to %s: %s\n"
 msgid "error printing log line: %s\n"
 msgstr "fel vid skrivning till %s: %s\n"
@@ -8934,24 +9005,24 @@ msgstr "LDAP-serverlista"
 msgid "Configuration for OCSP"
 msgstr "Konfiguration för OCSP"
 
-msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr ""
 
-msgid "GPG Agent"
+msgid "Private Keys"
 msgstr ""
 
-msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr ""
 
-msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr ""
 
-msgid "Key Acquirer"
+msgid "Network"
 msgstr ""
 
 #, fuzzy
 #| msgid "Bad Passphrase"
-msgid "PIN and Passphrase Entry"
+msgid "Passphrase Entry"
 msgstr "Felaktig lösenfras"
 
 #, fuzzy
@@ -8996,6 +9067,11 @@ msgid "check global configuration file"
 msgstr "kontrollera global konfigurationsfil"
 
 #, fuzzy
+#| msgid "update the trust database"
+msgid "query the software version database"
+msgstr "uppdatera tillitsdatabasen"
+
+#, fuzzy
 #| msgid "list all components"
 msgid "reload all or a given component"
 msgstr "lista alla komponenter"
@@ -9188,6 +9264,21 @@ msgstr ""
 "Syntax: gpg-check-pattern [flaggor] mönsterfil\n"
 "Kontrollera en lösenfras angiven på standard in mot mönsterfilen\n"
 
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "skuggning av nyckeln misslyckades: %s\n"
+
+#, fuzzy
+#~| msgid "Available keys:\n"
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "Tillgängliga nycklar:\n"
+
+#, fuzzy
+#~| msgid "print message digests"
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "skriv ut kontrollsummor"
+#~ msgstr[1] "skriv ut kontrollsummor"
+
 #~ msgid "communication problem with gpg-agent\n"
 #~ msgstr "kommunikationsproblem med gpg-agent\n"
 
@@ -9273,9 +9364,6 @@ msgstr ""
 #~ msgid "1 user ID without valid self-signature detected\n"
 #~ msgstr "1 användaridentitet utan giltig självsignatur hittades\n"
 
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "Raderade %d signaturer.\n"
-
 #~ msgid "User ID \"%s\": %d signatures removed\n"
 #~ msgstr "Användaridentitet \"%s\": %d signaturer borttagna\n"
 
@@ -9319,11 +9407,6 @@ msgstr ""
 #~ msgid "1 good signature\n"
 #~ msgstr "1 felaktig signatur\n"
 
-#, fuzzy
-#~| msgid "renaming `%s' to `%s' failed: %s\n"
-#~ msgid "renaming '%s' to '%s' failed: %s\n"
-#~ msgstr "namnbyte från \"%s\" till \"%s\" misslyckades: %s\n"
-
 #~ msgid "%lu keys cached (%lu signatures)\n"
 #~ msgstr "%lu nycklar mellanlagrade (%lu signaturer)\n"
 
index 14a4492..093de7a 100644 (file)
--- a/po/tr.po
+++ b/po/tr.po
@@ -155,14 +155,6 @@ msgid "no suitable card key found: %s\n"
 msgstr "uygun bir kart anahtarı yok: %s\n"
 
 #, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "anahtar gölgelenemedi: %s\n"
-
-#, c-format
-msgid "error writing key: %s\n"
-msgstr "anahtarı yazarken hata: %s\n"
-
-#, c-format
 msgid ""
 "An ssh process requested the use of key%%0A  %s%%0A  (%s)%%0ADo you want to "
 "allow this?"
@@ -334,6 +326,11 @@ msgstr "artalan süreci olarak çalışır"
 msgid "run in server mode (foreground)"
 msgstr "sunucu olarak (önalanda) çalışır"
 
+#, fuzzy
+#| msgid "run in server mode"
+msgid "run in supervised mode"
+msgstr "sunucu kipinde çalışır"
+
 msgid "verbose"
 msgstr "ayrıntılı"
 
@@ -778,9 +775,8 @@ msgstr "boru oluşturulurken hata: %s\n"
 msgid "error forking process: %s\n"
 msgstr "süreç çatallanırken hata: %s\n"
 
-#, fuzzy, c-format
-#| msgid "waiting for process %d to terminate failed: %s\n"
-msgid "waiting for processes to terminate failed: %s\n"
+#, c-format
+msgid "waiting for process %d to terminate failed: %s\n"
 msgstr "süreç %d sonlanacak diye beklerken başarısızlık: %s\n"
 
 #, fuzzy, c-format
@@ -798,14 +794,15 @@ msgstr "`%s' çalışırken hata: çıkış durumu: %d\n"
 msgid "error running '%s': terminated\n"
 msgstr "`%s' çalışırken hata: sonlandırıldı\n"
 
+#, fuzzy, c-format
+#| msgid "waiting for process %d to terminate failed: %s\n"
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "süreç %d sonlanacak diye beklerken başarısızlık: %s\n"
+
 #, c-format
 msgid "error getting exit code of process %d: %s\n"
 msgstr "süreç %d çıkış kodu alınırken hata: %s\n"
 
-#, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr "süreç %d sonlanacak diye beklerken başarısızlık: %s\n"
-
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to '%s': %s\n"
@@ -826,6 +823,16 @@ msgstr "UYARI: %s üzerinde sahiplik güvensiz: \"%s\"\n"
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
 msgstr "UYARI: %s üzerinde izinler güvensiz: \"%s\"\n"
 
+#, fuzzy, c-format
+#| msgid "waiting for process %d to terminate failed: %s\n"
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "süreç %d sonlanacak diye beklerken başarısızlık: %s\n"
+
+#, fuzzy, c-format
+#| msgid "renaming `%s' to `%s' failed: %s\n"
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "`%s' > `%s' isim değişikliği başarısız: %s\n"
+
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "yes"
 msgstr "evet"
@@ -2215,9 +2222,10 @@ msgstr "anahtar zinciri ismini anahtar listelerinde gösterir"
 msgid "show expiration dates during signature listings"
 msgstr "imza listelemesi sırasında zamanaşımı tarihleri gösterilir"
 
-#, fuzzy
-msgid "available TOFU policies:\n"
-msgstr "anahtarı iptal eder"
+#, fuzzy, c-format
+#| msgid "missing argument for option \"%.50s\"\n"
+msgid "valid values for option '%s':\n"
+msgstr "\"%.50s\" seçeneği için değiştirge eksik\n"
 
 #, fuzzy, c-format
 #| msgid "unknown option `%s'\n"
@@ -2228,6 +2236,11 @@ msgid "(use \"help\" to list choices)\n"
 msgstr ""
 
 #, fuzzy, c-format
+#| msgid "missing argument for option \"%.50s\"\n"
+msgid "invalid value for option '%s'\n"
+msgstr "\"%.50s\" seçeneği için değiştirge eksik\n"
+
+#, fuzzy, c-format
 #| msgid "NOTE: old default options file `%s' ignored\n"
 msgid "Note: old default options file '%s' ignored\n"
 msgstr "BİLGİ: eski öntanımlı seçenekler dosyası `%s' yoksayıldı\n"
@@ -3037,6 +3050,11 @@ msgid "[self-signature]"
 msgstr "[öz-imza]"
 
 #, fuzzy, c-format
+#| msgid "error allocating enough memory: %s\n"
+msgid "error allocating memory: %s\n"
+msgstr "yeterli bellek ayrılırken hata: %s\n"
+
+#, fuzzy, c-format
 #| msgid "key %s: unsupported public key algorithm\n"
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
 msgstr "anahtar %s: genel anahtar algoritması desteklenmiyor\n"
@@ -5109,6 +5127,25 @@ msgstr "Bu anahtarın ismi belirtilen şahsa ait olduğu umuluyor\n"
 msgid "This key belongs to us\n"
 msgstr "Bu anahtar bizim\n"
 
+#, fuzzy, c-format
+#| msgid "root certificate has now been marked as trusted\n"
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr "kök sertifika artık güvenilir olarak imlenmiş oldu\n"
+
+#, fuzzy
+#| msgid ""
+#| "It is NOT certain that the key belongs to the person named\n"
+#| "in the user ID.  If you *really* know what you are doing,\n"
+#| "you may answer the next question with yes.\n"
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"Bu anahtarın kullanıcı kimliğinde ismi belirtilen şahsa ait\n"
+"olduğu kesin DEĞİL. *Gerçekten* ne yaptığınızı biliyorsanız,\n"
+"sonraki soruya da evet cevabı verebilirsiniz.\n"
+
 msgid ""
 "It is NOT certain that the key belongs to the person named\n"
 "in the user ID.  If you *really* know what you are doing,\n"
@@ -5790,19 +5827,21 @@ msgid "error updating TOFU database: %s\n"
 msgstr "%s komutu gönderilirken hata: %s\n"
 
 #, c-format
-msgid "The binding %s is NOT known."
+msgid ""
+"This is the first time the email address \"%s\" is being used with key %s."
 msgstr ""
 
 #, c-format
-msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr ""
+
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
 
 #, fuzzy, c-format
@@ -5810,8 +5849,10 @@ msgstr ""
 msgid "error gathering other user IDs: %s\n"
 msgstr "yeni PIN alınırken hata: %s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr ""
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "anahtarı ve kullanıcı kimliğini gösterir"
 
 #, fuzzy, c-format
 #| msgid "validity: %s"
@@ -5833,42 +5874,48 @@ msgstr[1] ""
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr ""
 
+msgid ", "
+msgstr ""
+
 #, fuzzy
 #| msgid "list keys"
 msgid "this key"
 msgstr "anahtarları listeler"
 
-#, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
-msgstr[0] ""
-msgstr[1] ""
-
 #, fuzzy, c-format
 #| msgid "print message digests"
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
 msgstr[0] "ileti özetlerini gösterir"
 msgstr[1] "ileti özetlerini gösterir"
 
 #, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+msgid " over the past year."
+msgid_plural " over the past %d years."
 msgstr[0] ""
 msgstr[1] ""
 
+msgid " in the past."
+msgstr ""
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5884,6 +5931,17 @@ msgstr ""
 msgid "(G)ood, (A)ccept once, (U)nknown, (R)eject once, (B)ad? "
 msgstr ""
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing key: %s\n"
+msgid "resetting keydb: %s\n"
+msgstr "anahtarı yazarken hata: %s\n"
+
 #, fuzzy, c-format
 #| msgid "error storing flags: %s\n"
 msgid "error setting TOFU binding's trust level to %s\n"
@@ -5933,51 +5991,58 @@ msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
+msgid "%s: "
 msgstr ""
 
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
-msgstr ""
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "%d imza silindi.\n"
 
 #, fuzzy, c-format
 #| msgid "print message digests"
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "ileti özetlerini gösterir"
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
+msgstr[0] "ileti özetlerini gösterir"
+msgstr[1] "ileti özetlerini gösterir"
+
+#, fuzzy, c-format
+#| msgid "encrypted with %lu passphrases\n"
+msgid ", and encrypted %ld messages"
+msgstr "%lu anahtar parolası ile şifrelenmiş\n"
+
+#, fuzzy, c-format
+#| msgid "print message digests"
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] "ileti özetlerini gösterir"
+msgstr[1] "ileti özetlerini gösterir"
 
-#, c-format
 msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
-msgstr[0] ""
-msgstr[1] ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
+msgstr ""
 
-#, c-format
-msgid "The most recent message was verified %s ago."
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
 msgstr ""
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
 msgstr ""
 
 #, c-format
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -5988,6 +6053,15 @@ msgstr[1] ""
 msgid "error opening TOFU database: %s\n"
 msgstr "%s komutu gönderilirken hata: %s\n"
 
+#, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring `%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "`%s' genel anahtarlığa yazılırken hata oluştu: %s\n"
+
 #, fuzzy, c-format
 #| msgid "`%s' is not a valid long keyID\n"
 msgid "'%s' is not a valid long keyID\n"
@@ -6243,13 +6317,6 @@ msgstr "parmakizinin saklanması başarısız oldu: %s\n"
 msgid "failed to store the creation date: %s\n"
 msgstr "oluşturma tarihinin saklanması başarısız oldu: %s\n"
 
-#, c-format
-msgid "reading public key failed: %s\n"
-msgstr "genel anahtar okuması başarısız: %s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr "yanıt genel anahtar verisi içermiyor\n"
-
 msgid "response does not contain the RSA modulus\n"
 msgstr "yanıt RSA modülü içermiyor\n"
 
@@ -6258,9 +6325,16 @@ msgstr "yanıt RSA genel bileşenini içermiyor\n"
 
 #, fuzzy
 #| msgid "response does not contain the RSA public exponent\n"
-msgid "response does not contain the EC public point\n"
+msgid "response does not contain the EC public key\n"
 msgstr "yanıt RSA genel bileşenini içermiyor\n"
 
+msgid "response does not contain the public key data\n"
+msgstr "yanıt genel anahtar verisi içermiyor\n"
+
+#, c-format
+msgid "reading public key failed: %s\n"
+msgstr "genel anahtar okuması başarısız: %s\n"
+
 #, c-format
 msgid "using default PIN as %s\n"
 msgstr "%s olarak öntanımlı PIN kullanılıyor\n"
@@ -8003,6 +8077,9 @@ msgstr ""
 msgid "allow sending OCSP requests"
 msgstr "PKA aramalarına izin verilir (DNS istekleri)"
 
+msgid "allow online software version check"
+msgstr ""
+
 msgid "inhibit the use of HTTP"
 msgstr ""
 
@@ -8304,11 +8381,6 @@ msgid "'%s' is an invalid LDAP URL\n"
 msgstr ""
 
 #, fuzzy, c-format
-#| msgid "error allocating enough memory: %s\n"
-msgid "error allocating memory: %s\n"
-msgstr "yeterli bellek ayrılırken hata: %s\n"
-
-#, fuzzy, c-format
 #| msgid "error writing to %s: %s\n"
 msgid "error printing log line: %s\n"
 msgstr "%s yazılırken hata: %s\n"
@@ -8840,24 +8912,24 @@ msgstr "LDAP sunucu listesi"
 msgid "Configuration for OCSP"
 msgstr "OCSP için yapılandırma"
 
-msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr ""
 
-msgid "GPG Agent"
+msgid "Private Keys"
 msgstr ""
 
-msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr ""
 
-msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr ""
 
-msgid "Key Acquirer"
+msgid "Network"
 msgstr ""
 
 #, fuzzy
 #| msgid "Bad Passphrase"
-msgid "PIN and Passphrase Entry"
+msgid "Passphrase Entry"
 msgstr "Anahtar Parolası hatalı"
 
 #, fuzzy
@@ -8902,6 +8974,11 @@ msgid "check global configuration file"
 msgstr "küresel yapılandırma dosayasını sınar"
 
 #, fuzzy
+#| msgid "update the trust database"
+msgid "query the software version database"
+msgstr "güvence veritabanını günceller"
+
+#, fuzzy
 #| msgid "list all components"
 msgid "reload all or a given component"
 msgstr "tüm bileşenleri listeler"
@@ -9094,6 +9171,20 @@ msgstr ""
 "Standart girdiden verilen anahtar parolasını örüntü dosyasıyla "
 "karşılaştırır\n"
 
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "anahtar gölgelenemedi: %s\n"
+
+#, fuzzy
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "anahtarı iptal eder"
+
+#, fuzzy
+#~| msgid "print message digests"
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "ileti özetlerini gösterir"
+#~ msgstr[1] "ileti özetlerini gösterir"
+
 #~ msgid "communication problem with gpg-agent\n"
 #~ msgstr "gpg-agent ile haberleşme problemi\n"
 
@@ -9180,9 +9271,6 @@ msgstr ""
 #~ msgid "1 user ID without valid self-signature detected\n"
 #~ msgstr "1 öz-imzası geçersiz kullanıcı kimliği saptandı\n"
 
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "%d imza silindi.\n"
-
 #~ msgid "User ID \"%s\": %d signatures removed\n"
 #~ msgstr "Kullanıcı kimliği \"%s\": %d imza temizlendi\n"
 
@@ -9228,11 +9316,6 @@ msgstr ""
 #~ msgid "1 good signature\n"
 #~ msgstr "1 kötü imza\n"
 
-#, fuzzy
-#~| msgid "renaming `%s' to `%s' failed: %s\n"
-#~ msgid "renaming '%s' to '%s' failed: %s\n"
-#~ msgstr "`%s' > `%s' isim değişikliği başarısız: %s\n"
-
 #~ msgid "%lu keys cached (%lu signatures)\n"
 #~ msgstr "%lu anahtar arabelleklendi (%lu imza)\n"
 
index 864fa1c..65529e2 100644 (file)
--- a/po/uk.po
+++ b/po/uk.po
@@ -152,14 +152,6 @@ msgid "no suitable card key found: %s\n"
 msgstr "не виявлено відповідних ключів картки: %s\n"
 
 #, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "помилка під час спроби хешування ключа: %s\n"
-
-#, c-format
-msgid "error writing key: %s\n"
-msgstr "помилка під час спроби запису ключа: %s\n"
-
-#, c-format
 msgid ""
 "An ssh process requested the use of key%%0A  %s%%0A  (%s)%%0ADo you want to "
 "allow this?"
@@ -309,6 +301,11 @@ msgstr "запустити у режимі фонової служби (фоно
 msgid "run in server mode (foreground)"
 msgstr "запустити у режимі сервера (основному)"
 
+#, fuzzy
+#| msgid "run in server mode"
+msgid "run in supervised mode"
+msgstr "запустити у режимі сервера"
+
 msgid "verbose"
 msgstr "докладний режим"
 
@@ -715,8 +712,8 @@ msgid "error forking process: %s\n"
 msgstr "помилка під час спроби розгалужування процесу: %s\n"
 
 #, c-format
-msgid "waiting for processes to terminate failed: %s\n"
-msgstr "не Ð²Ð´Ð°Ð»Ð¾Ñ\81Ñ\8f Ð´Ð¾Ñ\87екаÑ\82иÑ\81Ñ\8f Ð¿ÐµÑ\80еÑ\80иваннÑ\8f Ð¿Ñ\80оÑ\86еÑ\81Ñ\83: %s\n"
+msgid "waiting for process %d to terminate failed: %s\n"
+msgstr "не Ð²Ð´Ð°Ð»Ð¾Ñ\81Ñ\8f Ð´Ð¾Ñ\87екаÑ\82иÑ\81Ñ\8f Ð·Ð°Ð²ÐµÑ\80Ñ\88еннÑ\8f Ð¿Ñ\80оÑ\86еÑ\81Ñ\83 %d: %s\n"
 
 #, c-format
 msgid "error running '%s': probably not installed\n"
@@ -732,12 +729,12 @@ msgid "error running '%s': terminated\n"
 msgstr "помилка під час спроби виконання «%s»: виконання перервано\n"
 
 #, c-format
-msgid "error getting exit code of process %d: %s\n"
-msgstr "помилка Ð¿Ñ\96д Ñ\87аÑ\81 Ñ\81пÑ\80оби Ð¾Ñ\82Ñ\80иманнÑ\8f ÐºÐ¾Ð´Ñ\83 Ð²Ð¸Ñ\85одÑ\83 Ð¿Ñ\80оÑ\86еÑ\81Ñ\83 %d: %s\n"
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "не Ð²Ð´Ð°Ð»Ð¾Ñ\81Ñ\8f Ð´Ð¾Ñ\87екаÑ\82иÑ\81Ñ\8f Ð¿ÐµÑ\80еÑ\80иваннÑ\8f Ð¿Ñ\80оÑ\86еÑ\81Ñ\83: %s\n"
 
 #, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr "не Ð²Ð´Ð°Ð»Ð¾Ñ\81Ñ\8f Ð´Ð¾Ñ\87екаÑ\82иÑ\81Ñ\8f Ð·Ð°Ð²ÐµÑ\80Ñ\88еннÑ\8f процесу %d: %s\n"
+msgid "error getting exit code of process %d: %s\n"
+msgstr "помилка Ð¿Ñ\96д Ñ\87аÑ\81 Ñ\81пÑ\80оби Ð¾Ñ\82Ñ\80иманнÑ\8f ÐºÐ¾Ð´Ñ\83 Ð²Ð¸Ñ\85одÑ\83 процесу %d: %s\n"
 
 #, c-format
 msgid "can't connect to '%s': %s\n"
@@ -758,6 +755,15 @@ msgstr "Увага: визначення власника не є безпечн
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
 msgstr "Увага: визначення прав доступу не є безпечним для %s — «%s»\n"
 
+#, fuzzy, c-format
+#| msgid "waiting for the agent to come up ... (%ds)\n"
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "очікування на працездатність агента… (%d с)\n"
+
+#, c-format
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "спроба перейменування «%s» на «%s» зазнала невдачі: %s\n"
+
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "yes"
 msgstr "yes|так"
@@ -2071,8 +2077,10 @@ msgstr "показувати назву сховища ключів у спис
 msgid "show expiration dates during signature listings"
 msgstr "показувати дати завершення строків дії у списку підписів"
 
-msgid "available TOFU policies:\n"
-msgstr "можливі варіанти правил TOFU:\n"
+#, fuzzy, c-format
+#| msgid "invalid argument for option \"%.50s\"\n"
+msgid "valid values for option '%s':\n"
+msgstr "некоректний аргумент параметра «%.50s»\n"
 
 #, c-format
 msgid "unknown TOFU policy '%s'\n"
@@ -2081,6 +2089,11 @@ msgstr "невідомі правила TOFU «%s»\n"
 msgid "(use \"help\" to list choices)\n"
 msgstr "(команда «help» виводить список можливих варіантів)\n"
 
+#, fuzzy, c-format
+#| msgid "invalid argument for option \"%.50s\"\n"
+msgid "invalid value for option '%s'\n"
+msgstr "некоректний аргумент параметра «%.50s»\n"
+
 #, c-format
 msgid "Note: old default options file '%s' ignored\n"
 msgstr "ЗАУВАЖЕННЯ: застарілий файл типових параметрів «%s» проігноровано\n"
@@ -2865,6 +2878,10 @@ msgid "[self-signature]"
 msgstr "[самопідпис]"
 
 #, c-format
+msgid "error allocating memory: %s\n"
+msgstr "помилка під час спроби отримання області пам’яті: %s\n"
+
+#, c-format
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
 msgstr ""
 "неможливо перевірити підпис із непідтримуваним алгоритмом створення "
@@ -4841,6 +4858,26 @@ msgstr "Ймовірно, цей ключ належить користувач
 msgid "This key belongs to us\n"
 msgstr "Цей ключ належить нам\n"
 
+#, fuzzy, c-format
+#| msgid "root certificate has now been marked as trusted\n"
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr "кореневий сертифікат було позначено як надійний\n"
+
+#, fuzzy
+#| msgid ""
+#| "It is NOT certain that the key belongs to the person named\n"
+#| "in the user ID.  If you *really* know what you are doing,\n"
+#| "you may answer the next question with yes.\n"
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"Не можна з певністю вважати, що ключ належить особі,\n"
+"вказаній у ідентифікаторі користувача. Якщо вам *точно*\n"
+"відомі наслідки ваших дій, можете ствердно відповісти\n"
+"на наступне питання.\n"
+
 msgid ""
 "It is NOT certain that the key belongs to the person named\n"
 "in the user ID.  If you *really* know what you are doing,\n"
@@ -5505,32 +5542,42 @@ msgstr "помилка під час спроби відкрити бази да
 msgid "error updating TOFU database: %s\n"
 msgstr "помилка під час спроби оновлення бази даних TOFU: %s\n"
 
-#, c-format
-msgid "The binding %s is NOT known."
-msgstr "Прив’язка %s є невідомою."
-
-#, c-format
+#, fuzzy, c-format
+#| msgid "The email address \"%s\" is associated with %d key:\n"
+#| msgid_plural "The email address \"%s\" is associated with %d keys:\n"
 msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+"This is the first time the email address \"%s\" is being used with key %s."
+msgstr "Адресу електронної пошти «%s» пов’язано із %d ключем:\n"
+
+#, fuzzy, c-format
+#| msgid "The email address \"%s\" is associated with %d key:\n"
+#| msgid_plural "The email address \"%s\" is associated with %d keys:\n"
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr "Адресу електронної пошти «%s» пов’язано із %d ключем:\n"
+
+#, fuzzy
+#| msgid ""
+#| "The key with fingerprint %s raised a conflict with the binding %s.  Since "
+#| "this binding's policy was 'auto', it was changed to 'ask'."
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 "Ключ із відбитком %s конфліктує із прив’язкою %s. Оскільки правилами цієї "
 "прив’язки визначалося «автоматично», їх змінено на «запитувати»."
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
-"Будь ласка, вкажіть, чи вважаєте прив’язку %s%sчинною (ключ належить "
-"декларованому власнику) чи підробною (помилковою)."
 
 #, c-format
 msgid "error gathering other user IDs: %s\n"
 msgstr "помилка під час збирання інших ідентифікаторів користувачів: %s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr "Відомі ідентифікатори користувачів, пов’язані із цим ключем:\n"
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "показати список ключів та ідентифікаторів користувача"
 
 #, c-format
 msgid "policy: %s"
@@ -5552,44 +5599,60 @@ msgstr[2] "Адресу електронної пошти «%s» пов’яза
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr "Статистичні дані для ключів із адресою електронної пошти «%s»:\n"
 
+msgid ", "
+msgstr ""
+
 msgid "this key"
 msgstr "цей ключ"
 
-#, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
-msgstr[0] "%ld повідомлення підписано у майбутньому."
-msgstr[1] "%ld повідомлення підписано у майбутньому."
-msgstr[2] "%ld повідомлень підписано у майбутньому."
+#, fuzzy, c-format
+#| msgid "Verified %ld messages signed by \"%s\"."
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
+msgstr[0] "Перевірено %ld повідомлень, підписаних «%s»."
+msgstr[1] "Перевірено %ld повідомлень, підписаних «%s»."
+msgstr[2] "Перевірено %ld повідомлень, підписаних «%s»."
 
 #, c-format
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
-msgstr[0] "підписано %ld повідомлення"
-msgstr[1] "підписано %ld повідомлення"
-msgstr[2] "підписано %ld повідомлень"
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
 
-#, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+#, fuzzy, c-format
+#| msgid " over the past %ld day."
+#| msgid_plural " over the past %ld days."
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] " протягом %ld попереднього дня."
 msgstr[1] " протягом %ld попередніх днів."
 msgstr[2] " протягом %ld попередніх днів."
 
-#, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
-msgstr[0] " протягом %ld попереднього тижня."
-msgstr[1] " протягом %ld попередніх тижнів."
-msgstr[2] " протягом %ld попередніх тижнів."
-
-#, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+#, fuzzy, c-format
+#| msgid " over the past %ld month."
+#| msgid_plural " over the past %ld months."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] " протягом %ld попереднього місяця."
 msgstr[1] " протягом %ld попередніх місяців."
 msgstr[2] " протягом %ld попередніх місяців."
 
+#, fuzzy, c-format
+#| msgid " over the past %ld day."
+#| msgid_plural " over the past %ld days."
+msgid " over the past year."
+msgid_plural " over the past %d years."
+msgstr[0] " протягом %ld попереднього дня."
+msgstr[1] " протягом %ld попередніх днів."
+msgstr[2] " протягом %ld попередніх днів."
+
+#, fuzzy
+#| msgid " over the past %ld day."
+#| msgid_plural " over the past %ld days."
+msgid " in the past."
+msgstr " протягом %ld попереднього дня."
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5613,6 +5676,17 @@ msgstr ""
 "(G)Добрий, (A)Прийняти одноразово, (U)Невідомий, (R)Відкинути одноразово, "
 "(B)Поганий? "
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing key: %s\n"
+msgid "resetting keydb: %s\n"
+msgstr "помилка під час спроби запису ключа: %s\n"
+
 #, c-format
 msgid "error setting TOFU binding's trust level to %s\n"
 msgstr ""
@@ -5667,28 +5741,23 @@ msgstr[1] "%d~секунди"
 msgstr[2] "%d~секунд"
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
-msgstr "Ніколи не перевірялося повідомлення, підписане ключем %s!\n"
-
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
+msgid "%s: "
 msgstr ""
-"Не вдалося зібрати статистичні дані щодо підписування для «%s»\n"
-"(ключ %s)\n"
 
-#, c-format
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "Перевірено %ld повідомлень, підписаних «%s»."
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "Вилучено %d підписів.\n"
 
-#, c-format
-msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
+#, fuzzy, c-format
+#| msgid ""
+#| "Verified %ld message signed by \"%s\"\n"
+#| "in the past %s."
+#| msgid_plural ""
+#| "Verified %ld messages signed by \"%s\"\n"
+#| "in the past %s."
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
 msgstr[0] ""
 "Перевірено %ld повідомлення, підписане «%s»,\n"
 "протягом такого строку: %s."
@@ -5699,27 +5768,75 @@ msgstr[2] ""
 "Перевірено %ld повідомлень, підписаних «%s»,\n"
 "протягом такого строку: %s."
 
-#, c-format
-msgid "The most recent message was verified %s ago."
-msgstr "Останнє повідомлення було перевірено %s тому."
+#, fuzzy, c-format
+#| msgid "encrypted with %lu passphrases\n"
+msgid ", and encrypted %ld messages"
+msgstr "зашифровано за допомогою %lu паролів\n"
+
+#, fuzzy, c-format
+#| msgid ""
+#| "Verified %ld message signed by \"%s\"\n"
+#| "in the past %s."
+#| msgid_plural ""
+#| "Verified %ld messages signed by \"%s\"\n"
+#| "in the past %s."
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] ""
+"Перевірено %ld повідомлення, підписане «%s»,\n"
+"протягом такого строку: %s."
+msgstr[1] ""
+"Перевірено %ld повідомлення, підписаних «%s»,\n"
+"протягом такого строку: %s."
+msgstr[2] ""
+"Перевірено %ld повідомлень, підписаних «%s»,\n"
+"протягом такого строку: %s."
+
+#, fuzzy
+#| msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
+msgstr "Попередження: повідомлень, які було б підписано цим ключем, не було!\n"
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+#, fuzzy
+#| msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
+msgstr "Попередження: цим ключем було підписано лише одне повідомлення!\n"
+
+#, fuzzy
+#| msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
 msgstr "Попередження: повідомлень, які було б підписано цим ключем, не було!\n"
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+#, fuzzy
+#| msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
 msgstr "Попередження: цим ключем було підписано лише одне повідомлення!\n"
 
-#, c-format
+#, fuzzy, c-format
+#| msgid ""
+#| "Warning: if you think you've seen more than %ld message signed by this "
+#| "key, then this key might be a forgery!  Carefully examine the email "
+#| "address for small variations.  If the key is suspect, then use\n"
+#| "  %s\n"
+#| "to mark it as being bad.\n"
+#| msgid_plural ""
+#| "Warning: if you think you've seen more than %ld messages signed by this "
+#| "key, then this key might be a forgery!  Carefully examine the email "
+#| "address for small variations.  If the key is suspect, then use\n"
+#| "  %s\n"
+#| "to mark it as being bad.\n"
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -5749,6 +5866,15 @@ msgid "error opening TOFU database: %s\n"
 msgstr "помилка під час спроби відкрити бази даних TOFU: %s\n"
 
 #, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring '%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "помилка під час спроби запису до сховища відкритих ключів «%s»: %s\n"
+
+#, c-format
 msgid "'%s' is not a valid long keyID\n"
 msgstr "«%s» не є коректним довгим ідентифікатором ключа\n"
 
@@ -6004,22 +6130,24 @@ msgstr "не вдалося зберегти відбиток: %s\n"
 msgid "failed to store the creation date: %s\n"
 msgstr "не вдалося зберегти дату створення: %s\n"
 
-#, c-format
-msgid "reading public key failed: %s\n"
-msgstr "помилка читання відкритого ключа: %s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr "відповідь не містить даних відкритого ключа\n"
-
 msgid "response does not contain the RSA modulus\n"
 msgstr "відповідь не містить основи числення RSA\n"
 
 msgid "response does not contain the RSA public exponent\n"
 msgstr "відповідь не містить відкритого показника RSA\n"
 
-msgid "response does not contain the EC public point\n"
+#, fuzzy
+#| msgid "response does not contain the EC public point\n"
+msgid "response does not contain the EC public key\n"
 msgstr "відповідь не містить відкритої точки еліптичної кривої\n"
 
+msgid "response does not contain the public key data\n"
+msgstr "відповідь не містить даних відкритого ключа\n"
+
+#, c-format
+msgid "reading public key failed: %s\n"
+msgstr "помилка читання відкритого ключа: %s\n"
+
 #, c-format
 msgid "using default PIN as %s\n"
 msgstr "використовуємо типовий пінкод як %s\n"
@@ -7602,6 +7730,9 @@ msgstr "примусове завантаження застарілих САС"
 msgid "allow sending OCSP requests"
 msgstr "дозволити надсилання запитів OCSP"
 
+msgid "allow online software version check"
+msgstr ""
+
 msgid "inhibit the use of HTTP"
 msgstr "заборонити використання HTTP"
 
@@ -7859,10 +7990,6 @@ msgid "'%s' is an invalid LDAP URL\n"
 msgstr "«%s» є некоректною адресою LDAP\n"
 
 #, c-format
-msgid "error allocating memory: %s\n"
-msgstr "помилка під час спроби отримання області пам’яті: %s\n"
-
-#, c-format
 msgid "error printing log line: %s\n"
 msgstr "помилка під час спроби виводу рядка журналу: %s\n"
 
@@ -8318,22 +8445,30 @@ msgstr "список серверів LDAP"
 msgid "Configuration for OCSP"
 msgstr "Налаштування OCSP"
 
-msgid "GPG for OpenPGP"
+#, fuzzy
+#| msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr "GPG для OpenPGP"
 
-msgid "GPG Agent"
-msgstr "Агент GPG"
+msgid "Private Keys"
+msgstr ""
 
-msgid "Smartcard Daemon"
+#, fuzzy
+#| msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr "Фонова служба карток пам’яті"
 
-msgid "GPG for S/MIME"
+#, fuzzy
+#| msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr "GPG для S/MIME"
 
-msgid "Key Acquirer"
-msgstr "Засіб запиту ключів"
+msgid "Network"
+msgstr ""
 
-msgid "PIN and Passphrase Entry"
+#, fuzzy
+#| msgid "PIN and Passphrase Entry"
+msgid "Passphrase Entry"
 msgstr "Введення пінкодів і паролів"
 
 msgid "Component not suitable for launching"
@@ -8373,6 +8508,11 @@ msgstr "показати загальний файл налаштувань"
 msgid "check global configuration file"
 msgstr "перевірити загальний файл налаштувань"
 
+#, fuzzy
+#| msgid "update the trust database"
+msgid "query the software version database"
+msgstr "оновити базу даних довіри"
+
 msgid "reload all or a given component"
 msgstr "перезавантажити всі або вказаний компонент"
 
@@ -8552,6 +8692,62 @@ msgstr ""
 "Синтаксис: gpg-check-pattern [параметри] файл_шаблонів\n"
 "Перевірити пароль, вказаний у stdin, за допомогою файла_шаблонів\n"
 
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "помилка під час спроби хешування ключа: %s\n"
+
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "можливі варіанти правил TOFU:\n"
+
+#~ msgid "The binding %s is NOT known."
+#~ msgstr "Прив’язка %s є невідомою."
+
+#~ msgid ""
+#~ "Please indicate whether you believe the binding %s%sis legitimate (the "
+#~ "key belongs to the stated owner) or a forgery (bad)."
+#~ msgstr ""
+#~ "Будь ласка, вкажіть, чи вважаєте прив’язку %s%sчинною (ключ належить "
+#~ "декларованому власнику) чи підробною (помилковою)."
+
+#~ msgid "Known user IDs associated with this key:\n"
+#~ msgstr "Відомі ідентифікатори користувачів, пов’язані із цим ключем:\n"
+
+#~ msgid "%ld message signed in the future."
+#~ msgid_plural "%ld messages signed in the future."
+#~ msgstr[0] "%ld повідомлення підписано у майбутньому."
+#~ msgstr[1] "%ld повідомлення підписано у майбутньому."
+#~ msgstr[2] "%ld повідомлень підписано у майбутньому."
+
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "підписано %ld повідомлення"
+#~ msgstr[1] "підписано %ld повідомлення"
+#~ msgstr[2] "підписано %ld повідомлень"
+
+#~ msgid " over the past %ld week."
+#~ msgid_plural " over the past %ld weeks."
+#~ msgstr[0] " протягом %ld попереднього тижня."
+#~ msgstr[1] " протягом %ld попередніх тижнів."
+#~ msgstr[2] " протягом %ld попередніх тижнів."
+
+#~ msgid "Have never verified a message signed by key %s!\n"
+#~ msgstr "Ніколи не перевірялося повідомлення, підписане ключем %s!\n"
+
+#~ msgid ""
+#~ "Failed to collect signature statistics for \"%s\"\n"
+#~ "(key %s)\n"
+#~ msgstr ""
+#~ "Не вдалося зібрати статистичні дані щодо підписування для «%s»\n"
+#~ "(ключ %s)\n"
+
+#~ msgid "The most recent message was verified %s ago."
+#~ msgstr "Останнє повідомлення було перевірено %s тому."
+
+#~ msgid "GPG Agent"
+#~ msgstr "Агент GPG"
+
+#~ msgid "Key Acquirer"
+#~ msgstr "Засіб запиту ключів"
+
 #~ msgid "communication problem with gpg-agent\n"
 #~ msgstr "проблема під час спроби обміну даними з gpg-agent\n"
 
@@ -8644,9 +8840,6 @@ msgstr ""
 #~ msgid "1 user ID without valid self-signature detected\n"
 #~ msgstr "виявлено 1 ідентифікатор користувача без коректного самопідпису\n"
 
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "Вилучено %d підписів.\n"
-
 #~ msgid "User ID \"%s\": %d signatures removed\n"
 #~ msgstr "Ідентифікатор користувача «%s»: вилучено %d підписів\n"
 
@@ -8687,9 +8880,6 @@ msgstr ""
 #~ msgid "1 good signature\n"
 #~ msgstr "1 добрий підпис\n"
 
-#~ msgid "renaming '%s' to '%s' failed: %s\n"
-#~ msgstr "спроба перейменування «%s» на «%s» зазнала невдачі: %s\n"
-
 #~ msgid "%lu keys cached (%lu signatures)\n"
 #~ msgstr "кешовано %lu ключів (%lu підписів)\n"
 
index 5e16c8a..00025a9 100644 (file)
@@ -159,14 +159,6 @@ msgstr "取得当前密钥信息时出错:%s\n"
 msgid "no suitable card key found: %s\n"
 msgstr "找不到可写的私钥钥匙环:%s\n"
 
-#, fuzzy, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "无法读出公钥:%s\n"
-
-#, fuzzy, c-format
-msgid "error writing key: %s\n"
-msgstr "写入钥匙环‘%s’时出错: %s\n"
-
 #, c-format
 msgid ""
 "An ssh process requested the use of key%%0A  %s%%0A  (%s)%%0ADo you want to "
@@ -328,6 +320,11 @@ msgstr ""
 msgid "run in server mode (foreground)"
 msgstr ""
 
+#, fuzzy
+#| msgid "Key is superseded"
+msgid "run in supervised mode"
+msgstr "密钥被替换"
+
 msgid "verbose"
 msgstr "详细模式"
 
@@ -745,9 +742,9 @@ msgstr "生成密码的时候发生错误:%s\n"
 msgid "error forking process: %s\n"
 msgstr "读取‘%s’时出错:%s\n"
 
-#, fuzzy, c-format
-msgid "waiting for processes to terminate failed: %s\n"
-msgstr "更新失败:%s\n"
+#, c-format
+msgid "waiting for process %d to terminate failed: %s\n"
+msgstr ""
 
 #, fuzzy, c-format
 msgid "error running '%s': probably not installed\n"
@@ -762,13 +759,13 @@ msgid "error running '%s': terminated\n"
 msgstr "读取‘%s’时出错:%s\n"
 
 #, fuzzy, c-format
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "更新失败:%s\n"
+
+#, fuzzy, c-format
 msgid "error getting exit code of process %d: %s\n"
 msgstr "取得当前密钥信息时出错:%s\n"
 
-#, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr ""
-
 #, fuzzy, c-format
 #| msgid "can't connect to `%s': %s\n"
 msgid "can't connect to '%s': %s\n"
@@ -789,6 +786,15 @@ msgstr "警告:扩展模块‘%s’所有权不安全\n"
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
 msgstr "警告:扩展模块‘%s’权限不安全\n"
 
+#, fuzzy, c-format
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "更新失败:%s\n"
+
+#, fuzzy, c-format
+#| msgid "renaming `%s' to `%s' failed: %s\n"
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "将‘%s’重命名为‘%s’时失败:%s\n"
+
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "yes"
 msgstr "yes"
@@ -2171,9 +2177,9 @@ msgstr "列出密钥时显示钥匙环的名称"
 msgid "show expiration dates during signature listings"
 msgstr "列出签名时显示过期日期"
 
-#, fuzzy
-msgid "available TOFU policies:\n"
-msgstr "禁用密钥"
+#, fuzzy, c-format
+msgid "valid values for option '%s':\n"
+msgstr "无效的列表选项\n"
 
 #, fuzzy, c-format
 #| msgid "unknown option `%s'\n"
@@ -2184,6 +2190,10 @@ msgid "(use \"help\" to list choices)\n"
 msgstr ""
 
 #, fuzzy, c-format
+msgid "invalid value for option '%s'\n"
+msgstr "无效的列表选项\n"
+
+#, fuzzy, c-format
 #| msgid "NOTE: old default options file `%s' ignored\n"
 msgid "Note: old default options file '%s' ignored\n"
 msgstr "注意:旧式的默认配置文件‘%s’已被忽略\n"
@@ -2970,6 +2980,10 @@ msgid "[self-signature]"
 msgstr "[自身签名]"
 
 #, fuzzy, c-format
+msgid "error allocating memory: %s\n"
+msgstr "建立钥匙环‘%s’时发生错误:%s\n"
+
+#, fuzzy, c-format
 #| msgid "key %s: unsupported public key algorithm\n"
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
 msgstr "密钥 %s:不支持的公钥算法\n"
@@ -4941,6 +4955,23 @@ msgstr "这把密钥有可能属于它所声称的持有者\n"
 msgid "This key belongs to us\n"
 msgstr "这把密钥是属于我们的\n"
 
+#, c-format
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr ""
+
+#, fuzzy
+#| msgid ""
+#| "It is NOT certain that the key belongs to the person named\n"
+#| "in the user ID.  If you *really* know what you are doing,\n"
+#| "you may answer the next question with yes.\n"
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"这把密钥并不一定属于用户标识声称的那个人。如果您真的知道自\n"
+"己在做什么,您可以在下一个问题回答 yes。\n"
+
 msgid ""
 "It is NOT certain that the key belongs to the person named\n"
 "in the user ID.  If you *really* know what you are doing,\n"
@@ -5583,19 +5614,21 @@ msgid "error updating TOFU database: %s\n"
 msgstr "读取‘%s’时出错:%s\n"
 
 #, c-format
-msgid "The binding %s is NOT known."
+msgid ""
+"This is the first time the email address \"%s\" is being used with key %s."
 msgstr ""
 
 #, c-format
-msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr ""
+
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
 
 #, fuzzy, c-format
@@ -5603,8 +5636,10 @@ msgstr ""
 msgid "error gathering other user IDs: %s\n"
 msgstr "获取新 PIN 时出错:%s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr ""
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "列出密钥和用户标识"
 
 #, fuzzy, c-format
 #| msgid "validity: %s"
@@ -5625,41 +5660,47 @@ msgstr[1] ""
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr ""
 
+msgid ", "
+msgstr ""
+
 #, fuzzy
 #| msgid "list keys"
 msgid "this key"
 msgstr "列出密钥"
 
-#, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
-msgstr[0] ""
-msgstr[1] ""
-
 #, fuzzy, c-format
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
 msgstr[0] "|算法 [文件]|使用指定的散列算法打印报文散列值"
 msgstr[1] "|算法 [文件]|使用指定的散列算法打印报文散列值"
 
 #, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
+msgstr[0] ""
+msgstr[1] ""
+
+#, c-format
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+msgid " over the past year."
+msgid_plural " over the past %d years."
 msgstr[0] ""
 msgstr[1] ""
 
+msgid " in the past."
+msgstr ""
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5675,6 +5716,16 @@ msgstr ""
 msgid "(G)ood, (A)ccept once, (U)nknown, (R)eject once, (B)ad? "
 msgstr ""
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "resetting keydb: %s\n"
+msgstr "写入钥匙环‘%s’时出错: %s\n"
+
 #, fuzzy, c-format
 msgid "error setting TOFU binding's trust level to %s\n"
 msgstr "读取‘%s’时出错:%s\n"
@@ -5722,50 +5773,56 @@ msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
+msgid "%s: "
 msgstr ""
 
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
-msgstr ""
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "已经删除了 %d 个签名。\n"
 
 #, fuzzy, c-format
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "|算法 [文件]|使用指定的散列算法打印报文散列值"
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
+msgstr[0] "|算法 [文件]|使用指定的散列算法打印报文散列值"
+msgstr[1] "|算法 [文件]|使用指定的散列算法打印报文散列值"
+
+#, fuzzy, c-format
+#| msgid "encrypted with %lu passphrases\n"
+msgid ", and encrypted %ld messages"
+msgstr "以 %lu 个密码加密\n"
+
+#, fuzzy, c-format
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] "|算法 [文件]|使用指定的散列算法打印报文散列值"
+msgstr[1] "|算法 [文件]|使用指定的散列算法打印报文散列值"
 
-#, c-format
 msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
-msgstr[0] ""
-msgstr[1] ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
+msgstr ""
 
-#, c-format
-msgid "The most recent message was verified %s ago."
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
 msgstr ""
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
 msgstr ""
 
 #, c-format
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -5775,6 +5832,15 @@ msgstr[1] ""
 msgid "error opening TOFU database: %s\n"
 msgstr "读取‘%s’时出错:%s\n"
 
+#, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring `%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "写入公钥钥匙环‘%s’时发生错误: %s\n"
+
 #, fuzzy, c-format
 #| msgid "`%s' is not a valid long keyID\n"
 msgid "'%s' is not a valid long keyID\n"
@@ -6022,13 +6088,6 @@ msgstr "无法存储指纹:%s\n"
 msgid "failed to store the creation date: %s\n"
 msgstr "无法存储创建日期:%s\n"
 
-#, c-format
-msgid "reading public key failed: %s\n"
-msgstr "无法读出公钥:%s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr "响应未包含公钥数据\n"
-
 msgid "response does not contain the RSA modulus\n"
 msgstr "响应未包含 RSA 余数\n"
 
@@ -6037,9 +6096,16 @@ msgstr "响应未包含 RSA 公钥指数\n"
 
 #, fuzzy
 #| msgid "response does not contain the RSA public exponent\n"
-msgid "response does not contain the EC public point\n"
+msgid "response does not contain the EC public key\n"
 msgstr "响应未包含 RSA 公钥指数\n"
 
+msgid "response does not contain the public key data\n"
+msgstr "响应未包含公钥数据\n"
+
+#, c-format
+msgid "reading public key failed: %s\n"
+msgstr "无法读出公钥:%s\n"
+
 #, c-format
 msgid "using default PIN as %s\n"
 msgstr ""
@@ -7671,6 +7737,9 @@ msgstr ""
 msgid "allow sending OCSP requests"
 msgstr ""
 
+msgid "allow online software version check"
+msgstr ""
+
 msgid "inhibit the use of HTTP"
 msgstr ""
 
@@ -7951,10 +8020,6 @@ msgid "'%s' is an invalid LDAP URL\n"
 msgstr ""
 
 #, fuzzy, c-format
-msgid "error allocating memory: %s\n"
-msgstr "建立钥匙环‘%s’时发生错误:%s\n"
-
-#, fuzzy, c-format
 msgid "error printing log line: %s\n"
 msgstr "写入钥匙环‘%s’时出错: %s\n"
 
@@ -8432,23 +8497,25 @@ msgstr ""
 msgid "Configuration for OCSP"
 msgstr ""
 
-msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr ""
 
-msgid "GPG Agent"
+msgid "Private Keys"
 msgstr ""
 
-msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr ""
 
-msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr ""
 
-msgid "Key Acquirer"
-msgstr ""
+#, fuzzy
+#| msgid "network error"
+msgid "Network"
+msgstr "网络错误"
 
 #, fuzzy
-msgid "PIN and Passphrase Entry"
+msgid "Passphrase Entry"
 msgstr "错误的密码"
 
 #, fuzzy
@@ -8491,6 +8558,11 @@ msgstr "未知的配置项‘%s’\n"
 msgid "check global configuration file"
 msgstr "未知的配置项‘%s’\n"
 
+#, fuzzy
+#| msgid "update the trust database"
+msgid "query the software version database"
+msgstr "更新信任度数据库"
+
 msgid "reload all or a given component"
 msgstr ""
 
@@ -8672,6 +8744,20 @@ msgid ""
 msgstr ""
 
 #, fuzzy
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "无法读出公钥:%s\n"
+
+#, fuzzy
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "禁用密钥"
+
+#, fuzzy
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "|算法 [文件]|使用指定的散列算法打印报文散列值"
+#~ msgstr[1] "|算法 [文件]|使用指定的散列算法打印报文散列值"
+
+#, fuzzy
 #~ msgid "canceled by user\n"
 #~ msgstr "用户取消\n"
 
@@ -8737,9 +8823,6 @@ msgstr ""
 #~ msgid "1 user ID without valid self-signature detected\n"
 #~ msgstr "检测到 1 个没有有效自身签名的用户标识\n"
 
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "已经删除了 %d 个签名。\n"
-
 #, fuzzy
 #~ msgid "User ID \"%s\": %d signatures removed\n"
 #~ msgstr "密钥 %s:“%s”%d 个签名被清除\n"
@@ -8782,11 +8865,6 @@ msgstr ""
 #~ msgid "1 good signature\n"
 #~ msgstr "1 个损坏的签名\n"
 
-#, fuzzy
-#~| msgid "renaming `%s' to `%s' failed: %s\n"
-#~ msgid "renaming '%s' to '%s' failed: %s\n"
-#~ msgstr "将‘%s’重命名为‘%s’时失败:%s\n"
-
 #~ msgid "%lu keys cached (%lu signatures)\n"
 #~ msgstr "缓存了 %lu 把密钥(%lu 份签名)\n"
 
@@ -9408,7 +9486,7 @@ msgstr ""
 #~ "用现有的首选项更新所有(或选定的)用户标识的首选项。所有受影响的自身签\n"
 #~ "字的时间戳都会增加一秒钟。\n"
 
-#~ msgid "Please enter the passhrase; this is a secret sentence \n"
+#~ msgid "Please enter the passphrase; this is a secret sentence \n"
 #~ msgstr "请输入密码:这是一个秘密的句子 \n"
 
 #~ msgid ""
@@ -9689,9 +9767,6 @@ msgstr ""
 #~ msgid "bad URI"
 #~ msgstr "URI 已损坏"
 
-#~ msgid "network error"
-#~ msgstr "网络错误"
-
 #~ msgid "not processed"
 #~ msgstr "未被处理"
 
index 15677d7..e4a9afb 100644 (file)
@@ -159,14 +159,6 @@ msgid "no suitable card key found: %s\n"
 msgstr "找不到合適的卡片金鑰: %s\n"
 
 #, c-format
-msgid "shadowing the key failed: %s\n"
-msgstr "遮蔽金鑰時失敗: %s\n"
-
-#, c-format
-msgid "error writing key: %s\n"
-msgstr "寫入金鑰時出錯: %s\n"
-
-#, c-format
 msgid ""
 "An ssh process requested the use of key%%0A  %s%%0A  (%s)%%0ADo you want to "
 "allow this?"
@@ -309,6 +301,11 @@ msgstr "以服務模式執行 (背景)"
 msgid "run in server mode (foreground)"
 msgstr "以伺服器模式執行 (前景)"
 
+#, fuzzy
+#| msgid "run in server mode"
+msgid "run in supervised mode"
+msgstr "以伺服器模式執行"
+
 msgid "verbose"
 msgstr "囉唆模式"
 
@@ -706,9 +703,8 @@ msgstr "建立管道串流時出錯: %s\n"
 msgid "error forking process: %s\n"
 msgstr "衍生執行程序時出錯: %s\n"
 
-#, fuzzy, c-format
-#| msgid "waiting for process %d to terminate failed: %s\n"
-msgid "waiting for processes to terminate failed: %s\n"
+#, c-format
+msgid "waiting for process %d to terminate failed: %s\n"
 msgstr "等候 %d 處理程序終止時失敗: %s\n"
 
 #, c-format
@@ -723,15 +719,16 @@ msgstr "執行 '%s' 時出錯: 結束狀態 %d\n"
 msgid "error running '%s': terminated\n"
 msgstr "執行 '%s' 時出錯: 已終止\n"
 
+#, fuzzy, c-format
+#| msgid "waiting for process %d to terminate failed: %s\n"
+msgid "waiting for processes to terminate failed: %s\n"
+msgstr "等候 %d 處理程序終止時失敗: %s\n"
+
 #, c-format
 msgid "error getting exit code of process %d: %s\n"
 msgstr "取得 %d 執行程序結束碼時出錯: %s\n"
 
 #, c-format
-msgid "waiting for process %d to terminate failed: %s\n"
-msgstr "等候 %d 處理程序終止時失敗: %s\n"
-
-#, c-format
 msgid "can't connect to '%s': %s\n"
 msgstr "無法連接至 '%s': %s\n"
 
@@ -750,6 +747,15 @@ msgstr "警告: %s 的所有權 \"%s\" 並不安全\n"
 msgid "Warning: unsafe permissions on %s \"%s\"\n"
 msgstr "警告: %s 的權限 \"%s\" 並不安全\n"
 
+#, fuzzy, c-format
+#| msgid "waiting for the agent to come up ... (%ds)\n"
+msgid "waiting for file '%s' to become accessible ...\n"
+msgstr "正在等候代理程式出現 ... (%d 秒)\n"
+
+#, c-format
+msgid "renaming '%s' to '%s' failed: %s\n"
+msgstr "把 '%s' 重新新命成 '%s' 時失敗: %s\n"
+
 #. TRANSLATORS: See doc/TRANSLATE about this string.
 msgid "yes"
 msgstr "yes"
@@ -2039,10 +2045,10 @@ msgstr "在金鑰清單中顯示鑰匙圈名稱"
 msgid "show expiration dates during signature listings"
 msgstr "列出簽章時顯示有效期限"
 
-#, fuzzy
-#| msgid "Available keys:\n"
-msgid "available TOFU policies:\n"
-msgstr "可用金鑰:\n"
+#, fuzzy, c-format
+#| msgid "invalid argument for option \"%.50s\"\n"
+msgid "valid values for option '%s':\n"
+msgstr "選項 \"%.50s\" 的引數無效\n"
 
 #, fuzzy, c-format
 #| msgid "unknown option '%s'\n"
@@ -2052,6 +2058,11 @@ msgstr "未知的選項 '%s'\n"
 msgid "(use \"help\" to list choices)\n"
 msgstr ""
 
+#, fuzzy, c-format
+#| msgid "invalid argument for option \"%.50s\"\n"
+msgid "invalid value for option '%s'\n"
+msgstr "選項 \"%.50s\" 的引數無效\n"
+
 #, c-format
 msgid "Note: old default options file '%s' ignored\n"
 msgstr "請注意: 已忽略舊有的預設選項檔 '%s'\n"
@@ -2818,6 +2829,10 @@ msgstr "[撤銷]"
 msgid "[self-signature]"
 msgstr "[自我簽章]"
 
+#, c-format
+msgid "error allocating memory: %s\n"
+msgstr "配置記憶體時出錯: %s\n"
+
 #, fuzzy, c-format
 #| msgid "key %s: unsupported public key algorithm\n"
 msgid "can't check signature with unsupported public-key algorithm (%d): %s.\n"
@@ -4726,6 +4741,25 @@ msgstr "這把金鑰很可能屬於叫這個名字的使用者\n"
 msgid "This key belongs to us\n"
 msgstr "這把金鑰是屬於我們自己的\n"
 
+#, fuzzy, c-format
+#| msgid "root certificate has now been marked as trusted\n"
+msgid "%s: This key is bad!  It has been marked as untrusted!\n"
+msgstr "根憑證現在已標記為已信任\n"
+
+#, fuzzy
+#| msgid ""
+#| "It is NOT certain that the key belongs to the person named\n"
+#| "in the user ID.  If you *really* know what you are doing,\n"
+#| "you may answer the next question with yes.\n"
+msgid ""
+"This key has is bad!  It has been marked as untrusted!  If you\n"
+"*really* know what you are doing, you may answer the next\n"
+"question with yes.\n"
+msgstr ""
+"這把金鑰並 *不* 確定屬於使用者 ID 裡的那個人.\n"
+"除非你 **真的** 知道自己在做甚麼,\n"
+"否則你最好在下一個問題回答 no\n"
+
 msgid ""
 "It is NOT certain that the key belongs to the person named\n"
 "in the user ID.  If you *really* know what you are doing,\n"
@@ -5372,19 +5406,21 @@ msgid "error updating TOFU database: %s\n"
 msgstr "送出資料時出錯: %s\n"
 
 #, c-format
-msgid "The binding %s is NOT known."
+msgid ""
+"This is the first time the email address \"%s\" is being used with key %s."
 msgstr ""
 
 #, c-format
-msgid ""
-"The key with fingerprint %s raised a conflict with the binding %s.  Since "
-"this binding's policy was 'auto', it was changed to 'ask'."
+msgid "The email address \"%s\" is associated with %d keys!"
+msgstr ""
+
+msgid "  Since this binding's policy was 'auto', it has been changed to 'ask'."
 msgstr ""
 
 #, c-format
 msgid ""
-"Please indicate whether you believe the binding %s%sis legitimate (the key "
-"belongs to the stated owner) or a forgery (bad)."
+"Please indicate whether this email address should be associated with key %s "
+"or whether you think someone is impersonating \"%s\"."
 msgstr ""
 
 #, fuzzy, c-format
@@ -5392,8 +5428,10 @@ msgstr ""
 msgid "error gathering other user IDs: %s\n"
 msgstr "取得回應程式 ID 時出錯: %s\n"
 
-msgid "Known user IDs associated with this key:\n"
-msgstr ""
+#, fuzzy
+#| msgid "list key and user IDs"
+msgid "This key's user IDs:\n"
+msgstr "列出金鑰和使用者 ID"
 
 #, fuzzy, c-format
 #| msgid "validity: %s"
@@ -5414,37 +5452,43 @@ msgstr[0] ""
 msgid "Statistics for keys with the email address \"%s\":\n"
 msgstr ""
 
+msgid ", "
+msgstr ""
+
 #, fuzzy
 #| msgid "list keys"
 msgid "this key"
 msgstr "列出金鑰"
 
-#, c-format
-msgid "%ld message signed in the future."
-msgid_plural "%ld messages signed in the future."
-msgstr[0] ""
-
 #, fuzzy, c-format
 #| msgid "print message digests"
-msgid "%ld message signed"
-msgid_plural "%ld messages signed"
+msgid "Verified %d message"
+msgid_plural "Verified %d messages"
 msgstr[0] "印出訊息摘要"
 
 #, c-format
-msgid " over the past %ld day."
-msgid_plural " over the past %ld days."
+msgid "Encrypted %d message"
+msgid_plural "Encrypted %d messages"
 msgstr[0] ""
 
 #, c-format
-msgid " over the past %ld week."
-msgid_plural " over the past %ld weeks."
+msgid " over the past day."
+msgid_plural " over the past %d days."
 msgstr[0] ""
 
 #, c-format
-msgid " over the past %ld month."
-msgid_plural " over the past %ld months."
+msgid " over the past month."
+msgid_plural " over the past %d months."
 msgstr[0] ""
 
+#, c-format
+msgid " over the past year."
+msgid_plural " over the past %d years."
+msgstr[0] ""
+
+msgid " in the past."
+msgstr ""
+
 #. TRANSLATORS: Please translate the text found in the source
 #. * file below.  We don't directly internationalize that text so
 #. * that we can tweak it without breaking translations.
@@ -5460,6 +5504,17 @@ msgstr ""
 msgid "(G)ood, (A)ccept once, (U)nknown, (R)eject once, (B)ad? "
 msgstr ""
 
+msgid "Defaulting to unknown."
+msgstr ""
+
+msgid "TOFU db corruption detected.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing key: %s\n"
+msgid "resetting keydb: %s\n"
+msgstr "寫入金鑰時出錯: %s\n"
+
 #, fuzzy, c-format
 #| msgid "error setting OCSP target: %s\n"
 msgid "error setting TOFU binding's trust level to %s\n"
@@ -5503,50 +5558,56 @@ msgid_plural "%d~seconds"
 msgstr[0] ""
 
 #, c-format
-msgid "Have never verified a message signed by key %s!\n"
+msgid "%s: "
 msgstr ""
 
-#, c-format
-msgid ""
-"Failed to collect signature statistics for \"%s\"\n"
-"(key %s)\n"
-msgstr ""
+#, fuzzy, c-format
+#| msgid "Deleted %d signatures.\n"
+msgid "Verified %ld signatures"
+msgstr "已經刪除了 %d 份簽章.\n"
 
 #, fuzzy, c-format
 #| msgid "print message digests"
-msgid "Verified %ld messages signed by \"%s\"."
-msgstr "印出訊息摘要"
+msgid "Verified %ld signature in the past %s"
+msgid_plural "Verified %ld signatures in the past %s"
+msgstr[0] "印出訊息摘要"
+
+#, fuzzy, c-format
+#| msgid "encrypted with %lu passphrases\n"
+msgid ", and encrypted %ld messages"
+msgstr "已用 %lu 個密語加密了\n"
+
+#, fuzzy, c-format
+#| msgid "print message digests"
+msgid ", and encrypted %ld message in the past %s"
+msgid_plural ", and encrypted %ld messages in the past %s"
+msgstr[0] "印出訊息摘要"
 
-#, c-format
 msgid ""
-"Verified %ld message signed by \"%s\"\n"
-"in the past %s."
-msgid_plural ""
-"Verified %ld messages signed by \"%s\"\n"
-"in the past %s."
-msgstr[0] ""
+"Warning: we have yet to see a message signed using this key and user id!\n"
+msgstr ""
 
-#, c-format
-msgid "The most recent message was verified %s ago."
+msgid ""
+"Warning: we've only seen one message signed using this key and user id!\n"
 msgstr ""
 
-msgid "Warning: we've have yet to see a message signed by this key!\n"
+msgid "Warning: you have yet to encrypt a message to this key!\n"
 msgstr ""
 
-msgid "Warning: we've only seen a single message signed by this key!\n"
+msgid "Warning: you have only encrypted one message to this key!\n"
 msgstr ""
 
 #, c-format
 msgid ""
-"Warning: if you think you've seen more than %ld message signed by this key, "
+"Warning: if you think you've seen more signatures by this key and user id, "
 "then this key might be a forgery!  Carefully examine the email address for "
 "small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgid_plural ""
-"Warning: if you think you've seen more than %ld messages signed by this key, "
-"then this key might be a forgery!  Carefully examine the email address for "
-"small variations.  If the key is suspect, then use\n"
+"Warning: if you think you've seen more signatures by this key and these user "
+"ids, then this key might be a forgery!  Carefully examine the email "
+"addresses for small variations.  If the key is suspect, then use\n"
 "  %s\n"
 "to mark it as being bad.\n"
 msgstr[0] ""
@@ -5557,6 +5618,15 @@ msgid "error opening TOFU database: %s\n"
 msgstr "送出資料時出錯: %s\n"
 
 #, c-format
+msgid "WARNING: Encrypting to %s, which has nonon-revoked user ids.\n"
+msgstr ""
+
+#, fuzzy, c-format
+#| msgid "error writing public keyring '%s': %s\n"
+msgid "error setting policy for key %s, user id \"%s\": %s"
+msgstr "寫入公鑰鑰匙圈 '%s' 時出錯: %s\n"
+
+#, c-format
 msgid "'%s' is not a valid long keyID\n"
 msgstr "'%s' 不是有效的長式金鑰 ID\n"
 
@@ -5799,22 +5869,24 @@ msgstr "存放指紋失敗: %s\n"
 msgid "failed to store the creation date: %s\n"
 msgstr "存放創生日期失敗: %s\n"
 
-#, c-format
-msgid "reading public key failed: %s\n"
-msgstr "讀取公鑰時失敗: %s\n"
-
-msgid "response does not contain the public key data\n"
-msgstr "回應中未包含公鑰資料\n"
-
 msgid "response does not contain the RSA modulus\n"
 msgstr "回應中未包含 RSA 系數\n"
 
 msgid "response does not contain the RSA public exponent\n"
 msgstr "回應中未包含 RSA 公用指數\n"
 
-msgid "response does not contain the EC public point\n"
+#, fuzzy
+#| msgid "response does not contain the EC public point\n"
+msgid "response does not contain the EC public key\n"
 msgstr "回應中未包含 EC 公用指數\n"
 
+msgid "response does not contain the public key data\n"
+msgstr "回應中未包含公鑰資料\n"
+
+#, c-format
+msgid "reading public key failed: %s\n"
+msgstr "讀取公鑰時失敗: %s\n"
+
 #, c-format
 msgid "using default PIN as %s\n"
 msgstr "以 %s 做為預設 PIN\n"
@@ -7346,6 +7418,9 @@ msgstr "強迫載入過時的 CRL"
 msgid "allow sending OCSP requests"
 msgstr "允許送出 OCSP 請求"
 
+msgid "allow online software version check"
+msgstr ""
+
 msgid "inhibit the use of HTTP"
 msgstr "避免使用 HTTP"
 
@@ -7600,10 +7675,6 @@ msgid "'%s' is an invalid LDAP URL\n"
 msgstr "'%s' 是無效的 LDAP 網址\n"
 
 #, c-format
-msgid "error allocating memory: %s\n"
-msgstr "配置記憶體時出錯: %s\n"
-
-#, c-format
 msgid "error printing log line: %s\n"
 msgstr "印出日誌記錄列時出錯: %s\n"
 
@@ -8060,22 +8131,30 @@ msgstr "LDAP 伺服器清單"
 msgid "Configuration for OCSP"
 msgstr "OCSP 組態"
 
-msgid "GPG for OpenPGP"
+#, fuzzy
+#| msgid "GPG for OpenPGP"
+msgid "OpenPGP"
 msgstr "OpenPGP 版 GPG"
 
-msgid "GPG Agent"
-msgstr "GPG Agent"
+msgid "Private Keys"
+msgstr ""
 
-msgid "Smartcard Daemon"
+#, fuzzy
+#| msgid "Smartcard Daemon"
+msgid "Smartcards"
 msgstr "智慧卡服務"
 
-msgid "GPG for S/MIME"
+#, fuzzy
+#| msgid "GPG for S/MIME"
+msgid "S/MIME"
 msgstr "S/MIME 版 GPG"
 
-msgid "Key Acquirer"
+msgid "Network"
 msgstr ""
 
-msgid "PIN and Passphrase Entry"
+#, fuzzy
+#| msgid "PIN and Passphrase Entry"
+msgid "Passphrase Entry"
 msgstr "個人識別碼及密語項目"
 
 msgid "Component not suitable for launching"
@@ -8115,6 +8194,11 @@ msgstr "列出全域組態檔"
 msgid "check global configuration file"
 msgstr "檢查全域組態檔案"
 
+#, fuzzy
+#| msgid "update the trust database"
+msgid "query the software version database"
+msgstr "更新信任資料庫"
+
 msgid "reload all or a given component"
 msgstr "重新載入所有或給定的元件"
 
@@ -8293,6 +8377,23 @@ msgstr ""
 "語法: gpg-check-pattern [選項] 樣式檔案\n"
 "用樣式檔案來檢查由標準輸入給定的密語\n"
 
+#~ msgid "shadowing the key failed: %s\n"
+#~ msgstr "遮蔽金鑰時失敗: %s\n"
+
+#, fuzzy
+#~| msgid "Available keys:\n"
+#~ msgid "available TOFU policies:\n"
+#~ msgstr "可用金鑰:\n"
+
+#, fuzzy
+#~| msgid "print message digests"
+#~ msgid "%ld message signed"
+#~ msgid_plural "%ld messages signed"
+#~ msgstr[0] "印出訊息摘要"
+
+#~ msgid "GPG Agent"
+#~ msgstr "GPG Agent"
+
 #~ msgid "communication problem with gpg-agent\n"
 #~ msgstr "與 gpg-agent 的溝通問題\n"
 
@@ -8375,9 +8476,6 @@ msgstr ""
 #~ msgid "1 user ID without valid self-signature detected\n"
 #~ msgstr "偵測到 1 個沒有有效自我簽章的使用者 ID\n"
 
-#~ msgid "Deleted %d signatures.\n"
-#~ msgstr "已經刪除了 %d 份簽章.\n"
-
 #~ msgid "User ID \"%s\": %d signatures removed\n"
 #~ msgstr "使用者 ID \"%s\": 已移除 %d 份簽章\n"
 
@@ -8418,9 +8516,6 @@ msgstr ""
 #~ msgid "1 good signature\n"
 #~ msgstr "1 份損壞的簽章\n"
 
-#~ msgid "renaming '%s' to '%s' failed: %s\n"
-#~ msgstr "把 '%s' 重新新命成 '%s' 時失敗: %s\n"
-
 #~ msgid "%lu keys cached (%lu signatures)\n"
 #~ msgstr "已檢查 %lu 把金鑰 (共 %lu 份簽章)\n"
 
index f160244..db096f6 100644 (file)
@@ -13,7 +13,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 ## Process this file with automake to produce Makefile.in
 
index 268a2c6..54f3b30 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /* NOTE: This module is also used by other software, thus the use of
@@ -101,7 +101,6 @@ struct reader_table_s {
   int (*connect_card)(int);
   int (*disconnect_card)(int);
   int (*close_reader)(int);
-  int (*shutdown_reader)(int);
   int (*reset_reader)(int);
   int (*get_status_reader)(int, unsigned int *);
   int (*send_apdu_reader)(int,unsigned char *,size_t,
@@ -462,7 +461,6 @@ new_reader_slot (void)
   reader_table[reader].connect_card = NULL;
   reader_table[reader].disconnect_card = NULL;
   reader_table[reader].close_reader = NULL;
-  reader_table[reader].shutdown_reader = NULL;
   reader_table[reader].reset_reader = NULL;
   reader_table[reader].get_status_reader = NULL;
   reader_table[reader].send_apdu_reader = NULL;
@@ -694,7 +692,7 @@ ct_get_status (int slot, unsigned int *status)
 }
 
 /* Actually send the APDU of length APDULEN to SLOT and return a
-   maximum of *BUFLEN data in BUFFER, the actual retruned size will be
+   maximum of *BUFLEN data in BUFFER, the actual returned size will be
    set to BUFLEN.  Returns: CT API error code. */
 static int
 ct_send_apdu (int slot, unsigned char *apdu, size_t apdulen,
@@ -1898,8 +1896,12 @@ pcsc_vendor_specific_init (int slot)
       reader_table[slot].is_spr532 = 1;
       reader_table[slot].pinpad_varlen_supported = 1;
     }
-  else if (vendor == 0x046a && product == 0x003e) /* Cherry ST-2xxx */
+  else if (vendor == 0x046a)
     {
+      /* Cherry ST-2xxx (product == 0x003e) supports TPDU level
+       * exchange.  Other products which only support short APDU level
+       * exchange only work with shorter keys like RSA 1024.
+       */
       reader_table[slot].pcsc.pinmax = 15;
       reader_table[slot].pinpad_varlen_supported = 1;
     }
@@ -2476,14 +2478,6 @@ close_ccid_reader (int slot)
 
 
 static int
-shutdown_ccid_reader (int slot)
-{
-  ccid_shutdown_reader (reader_table[slot].ccid.handle);
-  return 0;
-}
-
-
-static int
 reset_ccid_reader (int slot)
 {
   int err;
@@ -2649,7 +2643,6 @@ open_ccid_reader (const char *portstr)
     }
 
   reader_table[slot].close_reader = close_ccid_reader;
-  reader_table[slot].shutdown_reader = shutdown_ccid_reader;
   reader_table[slot].reset_reader = reset_ccid_reader;
   reader_table[slot].get_status_reader = get_status_ccid;
   reader_table[slot].send_apdu_reader = send_apdu_ccid;
@@ -3264,43 +3257,6 @@ apdu_prepare_exit (void)
 }
 
 
-/* Shutdown a reader; that is basically the same as a close but keeps
-   the handle ready for later use. A apdu_reset_reader or apdu_connect
-   should be used to get it active again. */
-int
-apdu_shutdown_reader (int slot)
-{
-  int sw;
-
-  if (DBG_READER)
-    log_debug ("enter: apdu_shutdown_reader: slot=%d\n", slot);
-
-  if (slot < 0 || slot >= MAX_READER || !reader_table[slot].used )
-    {
-      if (DBG_READER)
-        log_debug ("leave: apdu_shutdown_reader => SW_HOST_NO_DRIVER\n");
-      return SW_HOST_NO_DRIVER;
-    }
-  sw = apdu_disconnect (slot);
-  if (sw)
-    {
-      if (DBG_READER)
-        log_debug ("leave: apdu_shutdown_reader => 0x%x (apdu_disconnect)\n",
-                   sw);
-      return sw;
-    }
-  if (reader_table[slot].shutdown_reader)
-    {
-      sw = reader_table[slot].shutdown_reader (slot);
-      if (DBG_READER)
-        log_debug ("leave: apdu_shutdown_reader => 0x%x (close_reader)\n", sw);
-      return sw;
-    }
-  if (DBG_READER)
-    log_debug ("leave: apdu_shutdown_reader => SW_HOST_NOT_SUPPORTED\n");
-  return SW_HOST_NOT_SUPPORTED;
-}
-
 /* Enumerate all readers and return information on whether this reader
    is in use.  The caller should start with SLOT set to 0 and
    increment it with each call until an error is returned. */
index 1694eac..e29c971 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  *
  * $Id$
  */
@@ -96,7 +96,6 @@ int apdu_open_remote_reader (const char *portstr,
                              void *writefnc_value,
                              void (*closefnc) (void *opaque),
                              void *closefnc_value);
-int apdu_shutdown_reader (int slot);
 int apdu_close_reader (int slot);
 void apdu_prepare_exit (void);
 int apdu_enum_reader (int slot, int *used);
index b4bb55b..e12b4fb 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  *
  * $Id$
  */
@@ -72,7 +72,7 @@ struct app_ctx_s {
     gpg_error_t (*learn_status) (app_t app, ctrl_t ctrl, unsigned int flags);
     gpg_error_t (*readcert) (app_t app, const char *certid,
                      unsigned char **cert, size_t *certlen);
-    gpg_error_t (*readkey) (app_t app, const char *certid,
+    gpg_error_t (*readkey) (app_t app, int advanced, const char *certid,
                     unsigned char **pk, size_t *pklen);
     gpg_error_t (*getattr) (app_t app, ctrl_t ctrl, const char *name);
     gpg_error_t (*setattr) (app_t app, const char *name,
@@ -154,7 +154,7 @@ gpg_error_t app_write_learn_status (app_t app, ctrl_t ctrl,
                                     unsigned int flags);
 gpg_error_t app_readcert (app_t app, const char *certid,
                   unsigned char **cert, size_t *certlen);
-gpg_error_t app_readkey (app_t app, const char *keyid,
+gpg_error_t app_readkey (app_t app, int advanced, const char *keyid,
                  unsigned char **pk, size_t *pklen);
 gpg_error_t app_getattr (app_t app, ctrl_t ctrl, const char *name);
 gpg_error_t app_setattr (app_t app, const char *name,
index 7dad6b1..3f99e2e 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 
index f8ee9f6..e3c7dcc 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 
index 2576d5c..1cc86b1 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index d0b96a9..a6487c4 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /* Notes:
@@ -618,13 +618,17 @@ do_readcert (app_t app, const char *certid,
    certificate parsing code in commands.c:cmd_readkey.  For internal
    use PK and PKLEN may be NULL to just check for an existing key.  */
 static gpg_error_t
-do_readkey (app_t app, const char *keyid, unsigned char **pk, size_t *pklen)
+do_readkey (app_t app, int advanced, const char *keyid,
+            unsigned char **pk, size_t *pklen)
 {
   gpg_error_t err;
   unsigned char *buffer[2];
   size_t buflen[2];
   unsigned short path[1] = { 0x4500 };
 
+  if (advanced)
+    return GPG_ERR_NOT_SUPPORTED;
+
   /* We use a generic name to retrieve PK.AUT.IFD-SPK.  */
   if (!strcmp (keyid, "$IFDAUTHKEY") && app->app_local->nks_version >= 3)
     ;
@@ -698,7 +702,7 @@ do_writekey (app_t app, ctrl_t ctrl,
   else
     return gpg_error (GPG_ERR_INV_ID);
 
-  if (!force && !do_readkey (app, keyid, NULL, NULL))
+  if (!force && !do_readkey (app, 0, keyid, NULL, NULL))
     return gpg_error (GPG_ERR_EEXIST);
 
   /* Parse the S-expression.  */
@@ -1068,7 +1072,7 @@ do_decipher (app_t app, const char *keyidstr,
 
 
 /* Parse a password ID string.  Returns NULL on error or a string
-   suitable as passpahrse prompt on success.  On success stores the
+   suitable as passphrase prompt on success.  On success stores the
    reference value for the password at R_PWID and a flag indicating
    that the SigG application is to be used at R_SIGG.  If NEW_MODE is
    true, the returned description is suitable for a new Password.
index 7dd1566..d1c9efe 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /* Some notes:
@@ -228,7 +228,7 @@ struct app_local_s {
         rsa_key_format_t format;
       } rsa;
       struct {
-        const char *oid;
+        const char *curve;
         int flags;
       } ecc;
     };
@@ -236,6 +236,7 @@ struct app_local_s {
 };
 
 #define ECC_FLAG_DJB_TWEAK (1 << 0)
+#define ECC_FLAG_PUBKEY    (1 << 1)
 
 
 /***** Local prototypes  *****/
@@ -910,9 +911,9 @@ send_key_attr (ctrl_t ctrl, app_t app, const char *keyword, int keyno)
       snprintf (buffer, sizeof buffer, "%d %d %s",
                 keyno+1,
                 keyno==1? PUBKEY_ALGO_ECDH :
-                app->app_local->keyattr[keyno].ecc.flags?
+                (app->app_local->keyattr[keyno].ecc.flags & ECC_FLAG_DJB_TWEAK)?
                 PUBKEY_ALGO_EDDSA : PUBKEY_ALGO_ECDSA,
-                openpgp_oid_to_curve (app->app_local->keyattr[keyno].ecc.oid, 0));
+                app->app_local->keyattr[keyno].ecc.curve);
     }
   else
     snprintf (buffer, sizeof buffer, "%d 0 0 UNKNOWN", keyno+1);
@@ -1114,8 +1115,8 @@ retrieve_fpr_from_card (app_t app, int keyno, char *fpr)
 #if GNUPG_MAJOR_VERSION > 1
 static gpg_error_t
 retrieve_key_material (FILE *fp, const char *hexkeyid,
-                      const unsigned char **m, size_t *mlen,
-                      const unsigned char **e, size_t *elen)
+                       const unsigned char **m, size_t *mlen,
+                       const unsigned char **e, size_t *elen)
 {
   gcry_error_t err = 0;
   char *line = NULL;    /* read_line() buffer. */
@@ -1145,10 +1146,10 @@ retrieve_key_material (FILE *fp, const char *hexkeyid,
       if (!i)
         break; /* EOF. */
       if (i < 0)
-       {
-         err = gpg_error_from_syserror ();
-         goto leave; /* Error. */
-       }
+        {
+          err = gpg_error_from_syserror ();
+          goto leave; /* Error. */
+        }
       if (!max_length)
         {
           err = gpg_error (GPG_ERR_TRUNCATED);
@@ -1172,7 +1173,7 @@ retrieve_key_material (FILE *fp, const char *hexkeyid,
                && nfields > 4 && !strcmp (fields[4], hexkeyid))
             found_key = 1;
           continue;
-       }
+        }
 
       if ( !strcmp (fields[0], "sub") || !strcmp (fields[0], "pub") )
         break; /* Next key - stop.  */
@@ -1220,6 +1221,274 @@ retrieve_key_material (FILE *fp, const char *hexkeyid,
 #endif /*GNUPG_MAJOR_VERSION > 1*/
 
 
+static gpg_error_t
+rsa_read_pubkey (app_t app, ctrl_t ctrl, u32 created_at,  int keyno,
+                 const unsigned char *data, size_t datalen, gcry_sexp_t *r_sexp)
+{
+  gpg_error_t err;
+  const unsigned char *m, *e;
+  size_t mlen, elen;
+  unsigned char *mbuf = NULL, *ebuf = NULL;
+
+  m = find_tlv (data, datalen, 0x0081, &mlen);
+  if (!m)
+    {
+      log_error (_("response does not contain the RSA modulus\n"));
+      return gpg_error (GPG_ERR_CARD);
+    }
+
+  e = find_tlv (data, datalen, 0x0082, &elen);
+  if (!e)
+    {
+      log_error (_("response does not contain the RSA public exponent\n"));
+      return gpg_error (GPG_ERR_CARD);
+    }
+
+  if (ctrl)
+    {
+      send_key_data (ctrl, "n", m, mlen);
+      send_key_data (ctrl, "e", e, elen);
+    }
+
+  for (; mlen && !*m; mlen--, m++) /* strip leading zeroes */
+    ;
+  for (; elen && !*e; elen--, e++) /* strip leading zeroes */
+    ;
+
+  if (ctrl)
+    {
+      unsigned char fprbuf[20];
+
+      err = store_fpr (app, keyno, created_at, fprbuf, PUBKEY_ALGO_RSA,
+                       m, mlen, e, elen);
+      if (err)
+        return err;
+
+      send_fpr_if_not_null (ctrl, "KEY-FPR", -1, fprbuf);
+    }
+
+  mbuf = xtrymalloc (mlen + 1);
+  if (!mbuf)
+    {
+      err = gpg_error_from_syserror ();
+      goto leave;
+    }
+  /* Prepend numbers with a 0 if needed.  */
+  if (mlen && (*m & 0x80))
+    {
+      *mbuf = 0;
+      memcpy (mbuf+1, m, mlen);
+      mlen++;
+    }
+  else
+    memcpy (mbuf, m, mlen);
+
+  ebuf = xtrymalloc (elen + 1);
+  if (!ebuf)
+    {
+      err = gpg_error_from_syserror ();
+      goto leave;
+    }
+  /* Prepend numbers with a 0 if needed.  */
+  if (elen && (*e & 0x80))
+    {
+      *ebuf = 0;
+      memcpy (ebuf+1, e, elen);
+      elen++;
+    }
+  else
+    memcpy (ebuf, e, elen);
+
+  err = gcry_sexp_build (r_sexp, NULL, "(public-key(rsa(n%b)(e%b)))",
+                         (int)mlen, mbuf, (int)elen, ebuf);
+ leave:
+  xfree (mbuf);
+  xfree (ebuf);
+  return err;
+}
+
+
+/* Determine KDF hash algorithm and KEK encryption algorithm by CURVE.  */
+static const unsigned char*
+ecdh_params (const char *curve)
+{
+  unsigned int nbits;
+
+  openpgp_curve_to_oid (curve, &nbits);
+
+  /* See RFC-6637 for those constants.
+         0x03: Number of bytes
+         0x01: Version for this parameter format
+         KDF algo
+        KEK algo
+  */
+  if (nbits <= 256)
+    return (const unsigned char*)"\x03\x01\x08\x07";
+  else if (nbits <= 384)
+    return (const unsigned char*)"\x03\x01\x09\x08";
+  else
+    return (const unsigned char*)"\x03\x01\x0a\x09";
+}
+
+static gpg_error_t
+ecc_read_pubkey (app_t app, ctrl_t ctrl, u32 created_at, int keyno,
+                 const unsigned char *data, size_t datalen, gcry_sexp_t *r_sexp)
+{
+  gpg_error_t err;
+  unsigned char *qbuf = NULL;
+  const unsigned char *ecc_q;
+  size_t ecc_q_len;
+  gcry_mpi_t oid = NULL;
+  int n;
+  const char *curve;
+  const char *oidstr;
+  const unsigned char *oidbuf;
+  size_t oid_len;
+  int algo;
+  const char *format;
+
+  ecc_q = find_tlv (data, datalen, 0x0086, &ecc_q_len);
+  if (!ecc_q)
+    {
+      log_error (_("response does not contain the EC public key\n"));
+      return gpg_error (GPG_ERR_CARD);
+    }
+
+  curve = app->app_local->keyattr[keyno].ecc.curve;
+  oidstr = openpgp_curve_to_oid (curve, NULL);
+  err = openpgp_oid_from_str (oidstr, &oid);
+  if (err)
+    return err;
+  oidbuf = gcry_mpi_get_opaque (oid, &n);
+  if (!oidbuf)
+    {
+      err = gpg_error_from_syserror ();
+      goto leave;
+    }
+  oid_len = (n+7)/8;
+
+  qbuf = xtrymalloc (ecc_q_len + 1);
+  if (!qbuf)
+    {
+      err = gpg_error_from_syserror ();
+      goto leave;
+    }
+
+  if ((app->app_local->keyattr[keyno].ecc.flags & ECC_FLAG_DJB_TWEAK))
+    {               /* Prepend 0x40 prefix.  */
+      *qbuf = 0x40;
+      memcpy (qbuf+1, ecc_q, ecc_q_len);
+      ecc_q_len++;
+    }
+  else
+    memcpy (qbuf, ecc_q, ecc_q_len);
+
+  if (ctrl)
+    {
+      send_key_data (ctrl, "q", qbuf, ecc_q_len);
+      send_key_data (ctrl, "curve", oidbuf, oid_len);
+    }
+
+  if (keyno == 1)
+    {
+      if (ctrl)
+        send_key_data (ctrl, "kdf/kek", ecdh_params (curve), (size_t)4);
+      algo = PUBKEY_ALGO_ECDH;
+    }
+  else
+    {
+      if ((app->app_local->keyattr[keyno].ecc.flags & ECC_FLAG_DJB_TWEAK))
+        algo = PUBKEY_ALGO_EDDSA;
+      else
+        algo = PUBKEY_ALGO_ECDSA;
+    }
+
+  if (ctrl)
+    {
+      unsigned char fprbuf[20];
+
+      err = store_fpr (app, keyno, created_at, fprbuf, algo, oidbuf, oid_len,
+                       qbuf, ecc_q_len, ecdh_params (curve), (size_t)4);
+      if (err)
+        goto leave;
+
+      send_fpr_if_not_null (ctrl, "KEY-FPR", -1, fprbuf);
+    }
+
+  if (!(app->app_local->keyattr[keyno].ecc.flags & ECC_FLAG_DJB_TWEAK))
+    format = "(public-key(ecc(curve%s)(q%b)))";
+  else if (keyno == 1)
+    format = "(public-key(ecc(curve%s)(flags djb-tweak)(q%b)))";
+  else
+    format = "(public-key(ecc(curve%s)(flags eddsa)(q%b)))";
+
+  err = gcry_sexp_build (r_sexp, NULL, format,
+                         app->app_local->keyattr[keyno].ecc.curve,
+                         (int)ecc_q_len, qbuf);
+ leave:
+  gcry_mpi_release (oid);
+  xfree (qbuf);
+  return err;
+}
+
+
+/* Parse tag-length-value data for public key in BUFFER of BUFLEN
+   length.  Key of KEYNO in APP is updated with an S-expression of
+   public key.  When CTRL is not NULL, fingerprint is computed with
+   CREATED_AT, and fingerprint is written to the card, and key data
+   and fingerprint are send back to the client side.
+ */
+static gpg_error_t
+read_public_key (app_t app, ctrl_t ctrl, u32 created_at, int keyno,
+                 const unsigned char *buffer, size_t buflen)
+{
+  gpg_error_t err;
+  const unsigned char *data;
+  size_t datalen;
+  gcry_sexp_t s_pkey = NULL;
+
+  data = find_tlv (buffer, buflen, 0x7F49, &datalen);
+  if (!data)
+    {
+      log_error (_("response does not contain the public key data\n"));
+      return gpg_error (GPG_ERR_CARD);
+    }
+
+  if (app->app_local->keyattr[keyno].key_type == KEY_TYPE_RSA)
+    err = rsa_read_pubkey (app, ctrl, created_at, keyno,
+                           data, datalen, &s_pkey);
+  else if (app->app_local->keyattr[keyno].key_type == KEY_TYPE_ECC)
+    err = ecc_read_pubkey (app, ctrl, created_at, keyno,
+                           data, datalen, &s_pkey);
+  else
+    err = gpg_error (GPG_ERR_NOT_IMPLEMENTED);
+
+  if (!err)
+    {
+      unsigned char *keybuf;
+      size_t len;
+
+      len = gcry_sexp_sprint (s_pkey, GCRYSEXP_FMT_CANON, NULL, 0);
+      keybuf = xtrymalloc (len);
+      if (!data)
+        {
+          err = gpg_error_from_syserror ();
+          gcry_sexp_release (s_pkey);
+          return err;
+        }
+
+      gcry_sexp_sprint (s_pkey, GCRYSEXP_FMT_CANON, keybuf, len);
+      gcry_sexp_release (s_pkey);
+
+      app->app_local->pk[keyno].key = keybuf;
+      /* Decrement for trailing '\0' */
+      app->app_local->pk[keyno].keylen = len - 1;
+    }
+
+  return err;
+}
+
+
 /* Get the public key for KEYNO and store it as an S-expresion with
    the APP handle.  On error that field gets cleared.  If we already
    know about the public key we will just return.  Note that this does
@@ -1236,12 +1505,10 @@ get_public_key (app_t app, int keyno)
 {
   gpg_error_t err = 0;
   unsigned char *buffer;
-  const unsigned char *keydata, *m, *e;
-  size_t buflen, keydatalen;
+  const unsigned char *m, *e;
+  size_t buflen;
   size_t mlen = 0;
   size_t elen = 0;
-  unsigned char *mbuf = NULL;
-  unsigned char *ebuf = NULL;
   char *keybuf = NULL;
   gcry_sexp_t s_pkey;
   size_t len;
@@ -1275,54 +1542,17 @@ get_public_key (app_t app, int keyno)
           le_value = 256; /* Use legacy value. */
         }
 
-      err = iso7816_read_public_key
-        (app->slot, exmode,
-         (const unsigned char*)(keyno == 0? "\xB6" :
-                                keyno == 1? "\xB8" : "\xA4"), 2,
-         le_value,
-         &buffer, &buflen);
+      err = iso7816_read_public_key (app->slot, exmode,
+                                     (keyno == 0? "\xB6" :
+                                      keyno == 1? "\xB8" : "\xA4"),
+                                     2, le_value, &buffer, &buflen);
       if (err)
         {
           log_error (_("reading public key failed: %s\n"), gpg_strerror (err));
           goto leave;
         }
 
-      keydata = find_tlv (buffer, buflen, 0x7F49, &keydatalen);
-      if (!keydata)
-        {
-          err = gpg_error (GPG_ERR_CARD);
-          log_error (_("response does not contain the public key data\n"));
-          goto leave;
-        }
-
-      if (app->app_local->keyattr[keyno].key_type == KEY_TYPE_RSA)
-        {
-          m = find_tlv (keydata, keydatalen, 0x0081, &mlen);
-          if (!m)
-            {
-              err = gpg_error (GPG_ERR_CARD);
-              log_error (_("response does not contain the RSA modulus\n"));
-              goto leave;
-            }
-
-          e = find_tlv (keydata, keydatalen, 0x0082, &elen);
-          if (!e)
-            {
-              err = gpg_error (GPG_ERR_CARD);
-              log_error (_("response does not contain the RSA public exponent\n"));
-              goto leave;
-            }
-        }
-      else
-        {
-          m = find_tlv (keydata, keydatalen, 0x0086, &mlen);
-          if (!m)
-            {
-              err = gpg_error (GPG_ERR_CARD);
-              log_error (_("response does not contain the EC public point\n"));
-              goto leave;
-            }
-        }
+      err = read_public_key (app, NULL, 0U, keyno, buffer, buflen);
     }
   else
     {
@@ -1331,8 +1561,8 @@ get_public_key (app_t app, int keyno)
          Clearly that is not an option and thus we try to locate the
          key using an external helper.
 
-        The helper we use here is gpg itself, which should know about
-        the key in any case.  */
+         The helper we use here is gpg itself, which should know about
+         the key in any case.  */
 
       char fpr[41];
       char *hexkeyid;
@@ -1344,130 +1574,67 @@ get_public_key (app_t app, int keyno)
 
       err = retrieve_fpr_from_card (app, keyno, fpr);
       if (err)
-       {
-         log_error ("error while retrieving fpr from card: %s\n",
-                    gpg_strerror (err));
-         goto leave;
-       }
+        {
+          log_error ("error while retrieving fpr from card: %s\n",
+                     gpg_strerror (err));
+          goto leave;
+        }
       hexkeyid = fpr + 24;
 
       ret = gpgrt_asprintf
         (&command, "gpg --list-keys --with-colons --with-key-data '%s'", fpr);
       if (ret < 0)
-       {
-         err = gpg_error_from_syserror ();
-         goto leave;
-       }
+        {
+          err = gpg_error_from_syserror ();
+          goto leave;
+        }
 
       fp = popen (command, "r");
       xfree (command);
       if (!fp)
-       {
-         err = gpg_error_from_syserror ();
-         log_error ("running gpg failed: %s\n", gpg_strerror (err));
-         goto leave;
-       }
+        {
+          err = gpg_error_from_syserror ();
+          log_error ("running gpg failed: %s\n", gpg_strerror (err));
+          goto leave;
+        }
 
       err = retrieve_key_material (fp, hexkeyid, &m, &mlen, &e, &elen);
       pclose (fp);
       if (err)
-       {
-         log_error ("error while retrieving key material through pipe: %s\n",
+        {
+          log_error ("error while retrieving key material through pipe: %s\n",
                      gpg_strerror (err));
-         goto leave;
-       }
-    }
+          goto leave;
+        }
 
-  mbuf = xtrymalloc (mlen + 1);
-  if (!mbuf)
-    {
-      err = gpg_error_from_syserror ();
-      goto leave;
-    }
+      err = gcry_sexp_build (&s_pkey, NULL, "(public-key(rsa(n%b)(e%b)))",
+                             (int)mlen, m, (int)elen, e);
+      if (err)
+        goto leave;
 
-  if ((app->app_local->keyattr[keyno].key_type == KEY_TYPE_RSA
-       || (app->app_local->keyattr[keyno].key_type == KEY_TYPE_ECC
-           && !app->app_local->keyattr[keyno].ecc.flags))
-      && mlen && (*m & 0x80))
-    {               /* Prepend numbers with a 0 if needed for MPI.  */
-      *mbuf = 0;
-      memcpy (mbuf+1, m, mlen);
-      mlen++;
-    }
-  else if (app->app_local->keyattr[keyno].key_type == KEY_TYPE_ECC
-           && app->app_local->keyattr[keyno].ecc.flags)
-    {               /* Prepend 0x40 prefix.  */
-      *mbuf = 0x40;
-      memcpy (mbuf+1, m, mlen);
-      mlen++;
-    }
-  else
-    memcpy (mbuf, m, mlen);
+      len = gcry_sexp_sprint (s_pkey, GCRYSEXP_FMT_CANON, NULL, 0);
 
-  if (app->app_local->keyattr[keyno].key_type == KEY_TYPE_RSA)
-    {
-      ebuf = xtrymalloc (elen + 1);
-      if (!ebuf)
+      keybuf = xtrymalloc (len);
+      if (!keybuf)
         {
           err = gpg_error_from_syserror ();
+          gcry_sexp_release (s_pkey);
           goto leave;
         }
-      /* Prepend numbers with a 0 if needed.  */
-      if (elen && (*e & 0x80))
-        {
-          *ebuf = 0;
-          memcpy (ebuf+1, e, elen);
-          elen++;
-        }
-      else
-        memcpy (ebuf, e, elen);
-
-      err = gcry_sexp_build (&s_pkey, NULL, "(public-key(rsa(n%b)(e%b)))",
-                             (int)mlen, mbuf, (int)elen, ebuf);
-    }
-  else if (app->app_local->keyattr[keyno].key_type == KEY_TYPE_ECC)
-    {
-      char *format;
 
-      if (!app->app_local->keyattr[keyno].ecc.flags)
-        format = "(public-key(ecc(curve%s)(q%b)))";
-      else if (keyno == 1)
-        format = "(public-key(ecc(curve%s)(flags djb-tweak)(q%b)))";
-      else
-        format = "(public-key(ecc(curve%s)(flags eddsa)(q%b)))";
-
-      err = gcry_sexp_build (&s_pkey, NULL, format,
-                openpgp_oid_to_curve (app->app_local->keyattr[keyno].ecc.oid, 1),
-                             (int)mlen, mbuf);
-    }
-  else
-    err = gpg_error (GPG_ERR_NOT_IMPLEMENTED);
-
-  if (err)
-    goto leave;
-
-  len = gcry_sexp_sprint (s_pkey, GCRYSEXP_FMT_CANON, NULL, 0);
-
-  keybuf = xtrymalloc (len);
-  if (!keybuf)
-    {
+      gcry_sexp_sprint (s_pkey, GCRYSEXP_FMT_CANON, keybuf, len);
       gcry_sexp_release (s_pkey);
-      err = gpg_error_from_syserror ();
-      goto leave;
-    }
-  gcry_sexp_sprint (s_pkey, GCRYSEXP_FMT_CANON, keybuf, len);
-  gcry_sexp_release (s_pkey);
 
-  app->app_local->pk[keyno].key = (unsigned char*)keybuf;
-  app->app_local->pk[keyno].keylen = len - 1; /* Decrement for trailing '\0' */
+      app->app_local->pk[keyno].key = (unsigned char*)keybuf;
+      /* Decrement for trailing '\0' */
+      app->app_local->pk[keyno].keylen = len - 1;
+    }
 
  leave:
   /* Set a flag to indicate that we tried to read the key.  */
   app->app_local->pk[keyno].read_done = 1;
 
   xfree (buffer);
-  xfree (mbuf);
-  xfree (ebuf);
   return err;
 }
 #endif /* GNUPG_MAJOR_VERSION > 1 */
@@ -1559,7 +1726,8 @@ do_learn_status (app_t app, ctrl_t ctrl, unsigned int flags)
    buffer. On error PK and PKLEN are not changed and an error code is
    returned.  */
 static gpg_error_t
-do_readkey (app_t app, const char *keyid, unsigned char **pk, size_t *pklen)
+do_readkey (app_t app, int advanced, const char *keyid,
+            unsigned char **pk, size_t *pklen)
 {
 #if GNUPG_MAJOR_VERSION > 1
   gpg_error_t err;
@@ -1582,15 +1750,42 @@ do_readkey (app_t app, const char *keyid, unsigned char **pk, size_t *pklen)
   buf = app->app_local->pk[keyno].key;
   if (!buf)
     return gpg_error (GPG_ERR_NO_PUBKEY);
-  *pklen = app->app_local->pk[keyno].keylen;;
-  *pk = xtrymalloc (*pklen);
-  if (!*pk)
+
+  if (advanced)
     {
-      err = gpg_error_from_syserror ();
-      *pklen = 0;
-      return err;
+      gcry_sexp_t s_key;
+
+      err = gcry_sexp_new (&s_key, buf, app->app_local->pk[keyno].keylen, 0);
+      if (err)
+        return err;
+
+      *pklen = gcry_sexp_sprint (s_key, GCRYSEXP_FMT_ADVANCED, NULL, 0);
+      *pk = xtrymalloc (*pklen);
+      if (!*pk)
+        {
+          err = gpg_error_from_syserror ();
+          *pklen = 0;
+          return err;
+        }
+
+      gcry_sexp_sprint (s_key, GCRYSEXP_FMT_ADVANCED, *pk, *pklen);
+      gcry_sexp_release (s_key);
+      /* Decrement for trailing '\0' */
+      *pklen = *pklen - 1;
     }
-  memcpy (*pk, buf, *pklen);
+  else
+    {
+      *pklen = app->app_local->pk[keyno].keylen;
+      *pk = xtrymalloc (*pklen);
+      if (!*pk)
+        {
+          err = gpg_error_from_syserror ();
+          *pklen = 0;
+          return err;
+        }
+      memcpy (*pk, buf, *pklen);
+    }
+
   return 0;
 #else
   return gpg_error (GPG_ERR_NOT_IMPLEMENTED);
@@ -1733,7 +1928,7 @@ verify_a_chv (app_t app,
       prompt_buffer = xtrymalloc (promptsize);
       if (!prompt_buffer)
         return gpg_error_from_syserror ();
-      snprintf (prompt_buffer, promptsize-1, PROMPTSTRING, sigcount);
+      snprintf (prompt_buffer, promptsize, PROMPTSTRING, sigcount);
       prompt = prompt_buffer;
 #undef PROMPTSTRING
     }
@@ -2199,7 +2394,7 @@ do_change_pin (app_t app, ctrl_t ctrl,  const char *chvnostr,
         }
       else if (chvno == 1 || chvno == 3)
         {
-         if (!use_pinpad)
+          if (!use_pinpad)
             {
               char *promptbuf = NULL;
               const char *prompt;
@@ -2633,9 +2828,10 @@ build_privkey_template (app_t app, int keyno,
 static gpg_error_t
 build_ecc_privkey_template (app_t app, int keyno,
                             const unsigned char *ecc_d, size_t ecc_d_len,
+                            const unsigned char *ecc_q, size_t ecc_q_len,
                             unsigned char **result, size_t *resultlen)
 {
-  unsigned char privkey[2];
+  unsigned char privkey[2+2];
   size_t privkey_len;
   unsigned char exthdr[2+2+1];
   size_t exthdr_len;
@@ -2645,8 +2841,10 @@ build_ecc_privkey_template (app_t app, int keyno,
   size_t datalen;
   unsigned char *template;
   size_t template_size;
+  int pubkey_required;
 
-  (void)app;
+  pubkey_required = !!(app->app_local->keyattr[keyno].ecc.flags
+                       & ECC_FLAG_PUBKEY);
 
   *result = NULL;
   *resultlen = 0;
@@ -2658,8 +2856,15 @@ build_ecc_privkey_template (app_t app, int keyno,
   tp += add_tlv (tp, 0x92, ecc_d_len);
   datalen += ecc_d_len;
 
+  if (pubkey_required)
+    {
+      tp += add_tlv (tp, 0x99, ecc_q_len);
+      datalen += ecc_q_len;
+    }
+
   privkey_len = tp - privkey;
 
+
   /* Build the extended header list without the private key template.  */
   tp = exthdr;
   *tp++ = keyno ==0 ? 0xb6 : keyno == 1? 0xb8 : 0xa4;
@@ -2678,6 +2883,8 @@ build_ecc_privkey_template (app_t app, int keyno,
                    + privkey_len
                    + suffix_len
                    + datalen);
+  if (exthdr_len + privkey_len + suffix_len + datalen >= 128)
+    template_size++;
   tp = template = xtrymalloc_secure (template_size);
   if (!template)
     return gpg_error_from_syserror ();
@@ -2693,6 +2900,12 @@ build_ecc_privkey_template (app_t app, int keyno,
   memcpy (tp, ecc_d, ecc_d_len);
   tp += ecc_d_len;
 
+  if (pubkey_required)
+    {
+      memcpy (tp, ecc_q, ecc_q_len);
+      tp += ecc_q_len;
+    }
+
   assert (tp - template == template_size);
 
   *result = template;
@@ -3183,12 +3396,13 @@ ecc_writekey (app_t app, gpg_error_t (*pincb)(void*, const char *, char **),
   const unsigned char *ecc_q = NULL;
   const unsigned char *ecc_d = NULL;
   size_t ecc_q_len, ecc_d_len;
+  const char *curve = NULL;
   u32 created_at = 0;
-  const char *oidstr = NULL;
+  const char *oidstr;
   int flag_djb_tweak = 0;
   int algo;
-  gcry_mpi_t oid;
-  const unsigned char *oidbuf = NULL;
+  gcry_mpi_t oid = NULL;
+  const unsigned char *oidbuf;
   unsigned int n;
   size_t oid_len;
   unsigned char fprbuf[20];
@@ -3213,22 +3427,22 @@ ecc_writekey (app_t app, gpg_error_t (*pincb)(void*, const char *, char **),
 
       if (tok && toklen == 5 && !memcmp (tok, "curve", 5))
         {
-          unsigned char *curve;
+          char *curve_name;
 
           if ((err = parse_sexp (&buf, &buflen, &depth, &tok, &toklen)))
             goto leave;
 
-          curve = xtrymalloc (toklen+1);
-          if (!curve)
+          curve_name = xtrymalloc (toklen+1);
+          if (!curve_name)
             {
               err = gpg_error_from_syserror ();
               goto leave;
             }
 
-          memcpy (curve, tok, toklen);
-          curve[toklen] = 0;
-          oidstr = openpgp_curve_to_oid (curve, NULL);
-          xfree (curve);
+          memcpy (curve_name, tok, toklen);
+          curve_name[toklen] = 0;
+          curve = openpgp_is_curve_supported (curve_name, NULL);
+          xfree (curve_name);
         }
       else if (tok && toklen == 5 && !memcmp (tok, "flags", 5))
         {
@@ -3315,7 +3529,7 @@ ecc_writekey (app_t app, gpg_error_t (*pincb)(void*, const char *, char **),
 
   /* Check that we have all parameters and that they match the card
      description. */
-  if (!oidstr)
+  if (!curve)
     {
       log_error (_("unsupported curve\n"));
       err = gpg_error (GPG_ERR_INV_VALUE);
@@ -3334,21 +3548,22 @@ ecc_writekey (app_t app, gpg_error_t (*pincb)(void*, const char *, char **),
   else
     algo = PUBKEY_ALGO_ECDSA;
 
+  oidstr = openpgp_curve_to_oid (curve, NULL);
   err = openpgp_oid_from_str (oidstr, &oid);
   if (err)
     goto leave;
   oidbuf = gcry_mpi_get_opaque (oid, &n);
-  oid_len = (n+7)/8;
   if (!oidbuf)
     {
       err = gpg_error_from_syserror ();
-      gcry_mpi_release (oid);
       goto leave;
     }
+  oid_len = (n+7)/8;
 
   if (app->app_local->keyattr[keyno].key_type != KEY_TYPE_ECC
-      || app->app_local->keyattr[keyno].ecc.oid != oidstr
-      || app->app_local->keyattr[keyno].ecc.flags != flag_djb_tweak)
+      || app->app_local->keyattr[keyno].ecc.curve != curve
+      || (flag_djb_tweak !=
+          (app->app_local->keyattr[keyno].ecc.flags & ECC_FLAG_DJB_TWEAK)))
     {
       if (app->app_local->extcap.algo_attr_change)
         {
@@ -3387,6 +3602,7 @@ ecc_writekey (app_t app, gpg_error_t (*pincb)(void*, const char *, char **),
 
       err = build_ecc_privkey_template (app, keyno,
                                         ecc_d, ecc_d_len,
+                                        ecc_q, ecc_q_len,
                                         &template, &template_len);
       if (err)
         goto leave;
@@ -3420,11 +3636,10 @@ ecc_writekey (app_t app, gpg_error_t (*pincb)(void*, const char *, char **),
     }
 
   err = store_fpr (app, keyno, created_at, fprbuf, algo, oidbuf, oid_len,
-                   ecc_q, ecc_q_len, "\x03\x01\x08\x07", (size_t)4);
+                   ecc_q, ecc_q_len, ecdh_params (curve), (size_t)4);
 
  leave:
-  if (oidbuf)
-    gcry_mpi_release (oid);
+  gcry_mpi_release (oid);
   return err;
 }
 
@@ -3513,19 +3728,17 @@ do_genkey (app_t app, ctrl_t ctrl,  const char *keynostr, unsigned int flags,
            gpg_error_t (*pincb)(void*, const char *, char **),
            void *pincb_arg)
 {
-  int rc;
+  gpg_error_t err;
   char numbuf[30];
-  unsigned char fprbuf[20];
-  const unsigned char *keydata, *m, *e;
   unsigned char *buffer = NULL;
-  size_t buflen, keydatalen, mlen, elen;
-  time_t created_at;
+  const unsigned char *keydata;
+  size_t buflen, keydatalen;
+  u32 created_at;
   int keyno = atoi (keynostr) - 1;
   int force = (flags & 1);
   time_t start_at;
-  int exmode;
-  int le_value;
-  unsigned int keybits;
+  int exmode = 0;
+  int le_value = 256; /* Use legacy value. */
 
   if (keyno < 0 || keyno > 2)
     return gpg_error (GPG_ERR_INV_ID);
@@ -3541,54 +3754,49 @@ do_genkey (app_t app, ctrl_t ctrl,  const char *keynostr, unsigned int flags,
   app->app_local->pk[keyno].read_done = 0;
 
   /* Check whether a key already exists.  */
-  rc = does_key_exist (app, keyno, 1, force);
-  if (rc)
-    return rc;
+  err = does_key_exist (app, keyno, 1, force);
+  if (err)
+    return err;
 
-  /* Because we send the key parameter back via status lines we need
-     to put a limit on the max. allowed keysize.  2048 bit will
-     already lead to a 527 byte long status line and thus a 4096 bit
-     key would exceed the Assuan line length limit.  */
-  keybits = app->app_local->keyattr[keyno].rsa.n_bits;
-  if (keybits > 4096)
-    return gpg_error (GPG_ERR_TOO_LARGE);
+  if (app->app_local->keyattr[keyno].key_type == KEY_TYPE_RSA)
+    {
+      unsigned int keybits = app->app_local->keyattr[keyno].rsa.n_bits;
 
-  /* Prepare for key generation by verifying the Admin PIN.  */
-  rc = verify_chv3 (app, pincb, pincb_arg);
-  if (rc)
-    goto leave;
+      /* Because we send the key parameter back via status lines we need
+         to put a limit on the max. allowed keysize.  2048 bit will
+         already lead to a 527 byte long status line and thus a 4096 bit
+         key would exceed the Assuan line length limit.  */
+      if (keybits > 4096)
+        return gpg_error (GPG_ERR_TOO_LARGE);
 
-  /* Test whether we will need extended length mode.  (1900 is an
-     arbitrary length which for sure fits into a short apdu.)  */
-  if (app->app_local->cardcap.ext_lc_le && keybits > 1900)
-    {
-      exmode = 1;    /* Use extended length w/o a limit.  */
-      le_value = app->app_local->extcap.max_rsp_data;
-      /* No need to check le_value because it comes from a 16 bit
-         value and thus can't create an overflow on a 32 bit
-         system.  */
-    }
-  else
-    {
-      exmode = 0;
-      le_value = 256; /* Use legacy value. */
+      /* Test whether we will need extended length mode.  (1900 is an
+         arbitrary length which for sure fits into a short apdu.)  */
+      if (app->app_local->cardcap.ext_lc_le && keybits > 1900)
+        {
+          exmode = 1;    /* Use extended length w/o a limit.  */
+          le_value = app->app_local->extcap.max_rsp_data;
+          /* No need to check le_value because it comes from a 16 bit
+             value and thus can't create an overflow on a 32 bit
+             system.  */
+        }
     }
 
+  /* Prepare for key generation by verifying the Admin PIN.  */
+  err = verify_chv3 (app, pincb, pincb_arg);
+  if (err)
+    return err;
+
+
   log_info (_("please wait while key is being generated ...\n"));
   start_at = time (NULL);
-  rc = iso7816_generate_keypair
-/* # warning key generation temporary replaced by reading an existing key. */
-/*   rc = iso7816_read_public_key */
-    (app->slot, exmode,
-     (const unsigned char*)(keyno == 0? "\xB6" :
-                            keyno == 1? "\xB8" : "\xA4"), 2,
-     le_value,
-     &buffer, &buflen);
-  if (rc)
+  err = iso7816_generate_keypair (app->slot, exmode,
+                                  (keyno == 0? "\xB6" :
+                                   keyno == 1? "\xB8" : "\xA4"),
+                                  2, le_value, &buffer, &buflen);
+  if (err)
     {
-      rc = gpg_error (GPG_ERR_CARD);
       log_error (_("generating key failed\n"));
-      goto leave;
+      return gpg_error (GPG_ERR_CARD);
     }
 
   {
@@ -3601,51 +3809,20 @@ do_genkey (app_t app, ctrl_t ctrl,  const char *keynostr, unsigned int flags,
   keydata = find_tlv (buffer, buflen, 0x7F49, &keydatalen);
   if (!keydata)
     {
-      rc = gpg_error (GPG_ERR_CARD);
+      err = gpg_error (GPG_ERR_CARD);
       log_error (_("response does not contain the public key data\n"));
       goto leave;
     }
 
-  m = find_tlv (keydata, keydatalen, 0x0081, &mlen);
-  if (!m)
-    {
-      rc = gpg_error (GPG_ERR_CARD);
-      log_error (_("response does not contain the RSA modulus\n"));
-      goto leave;
-    }
-  /* log_printhex ("RSA n:", m, mlen); */
-  send_key_data (ctrl, "n", m, mlen);
-
-  e = find_tlv (keydata, keydatalen, 0x0082, &elen);
-  if (!e)
-    {
-      rc = gpg_error (GPG_ERR_CARD);
-      log_error (_("response does not contain the RSA public exponent\n"));
-      goto leave;
-    }
-  /* log_printhex ("RSA e:", e, elen); */
-  send_key_data (ctrl, "e", e, elen);
-
-  created_at = createtime? createtime : gnupg_get_time ();
-  sprintf (numbuf, "%lu", (unsigned long)created_at);
+  created_at = (u32)(createtime? createtime : gnupg_get_time ());
+  sprintf (numbuf, "%u", created_at);
   send_status_info (ctrl, "KEY-CREATED-AT",
                     numbuf, (size_t)strlen(numbuf), NULL, 0);
 
-  for (; mlen && !*m; mlen--, m++) /* strip leading zeroes */
-    ;
-  for (; elen && !*e; elen--, e++) /* strip leading zeroes */
-    ;
-
-  rc = store_fpr (app, keyno, (u32)created_at, fprbuf, PUBKEY_ALGO_RSA,
-                  m, mlen, e, elen);
-  if (rc)
-    goto leave;
-  send_fpr_if_not_null (ctrl, "KEY-FPR", -1, fprbuf);
-
-
+  err = read_public_key (app, ctrl, created_at, keyno, buffer, buflen);
  leave:
   xfree (buffer);
-  return rc;
+  return err;
 }
 
 
@@ -3841,23 +4018,23 @@ do_sign (app_t app, const char *keyidstr, int hashalgo,
   else
     {
       for (s=keyidstr, n=0; hexdigitp (s); s++, n++)
-       ;
+        ;
       if (n != 32)
-       return gpg_error (GPG_ERR_INV_ID);
+        return gpg_error (GPG_ERR_INV_ID);
       else if (!*s)
-       ; /* no fingerprint given: we allow this for now. */
+        ; /* no fingerprint given: we allow this for now. */
       else if (*s == '/')
-       fpr = s + 1;
+        fpr = s + 1;
       else
-       return gpg_error (GPG_ERR_INV_ID);
+        return gpg_error (GPG_ERR_INV_ID);
 
       for (s=keyidstr, n=0; n < 16; s += 2, n++)
-       tmp_sn[n] = xtoi_2 (s);
+        tmp_sn[n] = xtoi_2 (s);
 
       if (app->serialnolen != 16)
-       return gpg_error (GPG_ERR_INV_CARD);
+        return gpg_error (GPG_ERR_INV_CARD);
       if (memcmp (app->serialno, tmp_sn, 16))
-       return gpg_error (GPG_ERR_WRONG_CARD);
+        return gpg_error (GPG_ERR_WRONG_CARD);
     }
 
   /* If a fingerprint has been specified check it against the one on
@@ -3991,7 +4168,7 @@ do_auth (app_t app, const char *keyidstr,
 
   if (app->app_local->keyattr[2].key_type == KEY_TYPE_ECC)
     {
-      if (!app->app_local->keyattr[2].ecc.flags
+      if (!(app->app_local->keyattr[2].ecc.flags & ECC_FLAG_DJB_TWEAK)
           && (indatalen == 51 || indatalen == 67 || indatalen == 83))
         {
           const char *p = (const char *)indata + 19;
@@ -4095,23 +4272,23 @@ do_decipher (app_t app, const char *keyidstr,
   else
     {
       for (s=keyidstr, n=0; hexdigitp (s); s++, n++)
-       ;
+        ;
       if (n != 32)
-       return gpg_error (GPG_ERR_INV_ID);
+        return gpg_error (GPG_ERR_INV_ID);
       else if (!*s)
-       ; /* no fingerprint given: we allow this for now. */
+        ; /* no fingerprint given: we allow this for now. */
       else if (*s == '/')
-       fpr = s + 1;
+        fpr = s + 1;
       else
-       return gpg_error (GPG_ERR_INV_ID);
+        return gpg_error (GPG_ERR_INV_ID);
 
       for (s=keyidstr, n=0; n < 16; s += 2, n++)
-       tmp_sn[n] = xtoi_2 (s);
+        tmp_sn[n] = xtoi_2 (s);
 
       if (app->serialnolen != 16)
-       return gpg_error (GPG_ERR_INV_CARD);
+        return gpg_error (GPG_ERR_INV_CARD);
       if (memcmp (app->serialno, tmp_sn, 16))
-       return gpg_error (GPG_ERR_WRONG_CARD);
+        return gpg_error (GPG_ERR_WRONG_CARD);
     }
 
   /* If a fingerprint has been specified check it against the one on
@@ -4190,7 +4367,7 @@ do_decipher (app_t app, const char *keyidstr,
     {
       int old_format_len = 0;
 
-      if (app->app_local->keyattr[1].ecc.flags)
+      if ((app->app_local->keyattr[1].ecc.flags & ECC_FLAG_DJB_TWEAK))
         {
           if (indatalen > 32 && (indatalen % 2))
             { /*
@@ -4257,20 +4434,29 @@ do_decipher (app_t app, const char *keyidstr,
                          indata, indatalen, le_value, padind,
                          outdata, outdatalen);
   xfree (fixbuf);
-  if (app->app_local->keyattr[1].key_type == KEY_TYPE_ECC
-      && app->app_local->keyattr[1].ecc.flags)
-    { /* Add the prefix 0x40 */
-      fixbuf = xtrymalloc (*outdatalen + 1);
-      if (!fixbuf)
-        {
+  if (app->app_local->keyattr[1].key_type == KEY_TYPE_ECC)
+    {
+      unsigned char prefix = 0;
+
+      if (app->app_local->keyattr[1].ecc.flags & ECC_FLAG_DJB_TWEAK)
+        prefix = 0x40;
+      else if ((*outdatalen % 2) == 0) /* No 0x04 -> x-coordinate only */
+        prefix = 0x41;
+
+      if (prefix)
+        { /* Add the prefix */
+          fixbuf = xtrymalloc (*outdatalen + 1);
+          if (!fixbuf)
+            {
+              xfree (*outdata);
+              return gpg_error_from_syserror ();
+            }
+          fixbuf[0] = prefix;
+          memcpy (fixbuf+1, *outdata, *outdatalen);
           xfree (*outdata);
-          return gpg_error_from_syserror ();
+          *outdata = fixbuf;
+          *outdatalen = *outdatalen + 1;
         }
-      fixbuf[0] = 0x40;
-      memcpy (fixbuf+1, *outdata, *outdatalen);
-      xfree (*outdata);
-      *outdata = fixbuf;
-      *outdatalen = *outdatalen + 1;
     }
 
   if (gpg_err_code (rc) == GPG_ERR_CARD /* actual SW is 0x640a */
@@ -4457,12 +4643,11 @@ parse_historical (struct app_local_s *apploc,
 
 /*
  * Check if the OID in an DER encoding is available by GnuPG/libgcrypt,
- * and return the constant string in dotted decimal form.
- * Return NULL if not available.
+ * and return the curve name.  Return NULL if not available.
  * The constant string is not allocated dynamically, never free it.
  */
 static const char *
-ecc_oid (unsigned char *buf, size_t buflen)
+ecc_curve (unsigned char *buf, size_t buflen)
 {
   gcry_mpi_t oid;
   char *oidstr;
@@ -4487,7 +4672,7 @@ ecc_oid (unsigned char *buf, size_t buflen)
   if (!oidstr)
     return NULL;
 
-  result = openpgp_curve_to_oid (oidstr, NULL);
+  result = openpgp_oid_to_curve (oidstr, 1);
   xfree (oidstr);
   return result;
 }
@@ -4550,26 +4735,36 @@ parse_algorithm_attribute (app_t app, int keyno)
   else if (*buffer == PUBKEY_ALGO_ECDH || *buffer == PUBKEY_ALGO_ECDSA
            || *buffer == PUBKEY_ALGO_EDDSA)
     {
-      const char *oid = ecc_oid (buffer + 1, buflen - 1);
+      const char *curve;
+      int oidlen = buflen - 1;
 
-      if (!oid)
+      app->app_local->keyattr[keyno].ecc.flags = 0;
+
+      if (buffer[buflen-1] == 0x00 || buffer[buflen-1] == 0xff)
+        { /* Found "pubkey required"-byte for private key template.  */
+          oidlen--;
+          if (buffer[buflen-1] == 0xff)
+            app->app_local->keyattr[keyno].ecc.flags |= ECC_FLAG_PUBKEY;
+        }
+
+      curve = ecc_curve (buffer + 1, oidlen);
+
+      if (!curve)
         log_printhex ("Curve with OID not supported: ", buffer+1, buflen-1);
       else
         {
           app->app_local->keyattr[keyno].key_type = KEY_TYPE_ECC;
-          app->app_local->keyattr[keyno].ecc.oid = oid;
+          app->app_local->keyattr[keyno].ecc.curve = curve;
           if (*buffer == PUBKEY_ALGO_EDDSA
               || (*buffer == PUBKEY_ALGO_ECDH
-                  && !strcmp (app->app_local->keyattr[keyno].ecc.oid,
-                              "1.3.6.1.4.1.3029.1.5.1")))
-            app->app_local->keyattr[keyno].ecc.flags = ECC_FLAG_DJB_TWEAK;
-          else
-            app->app_local->keyattr[keyno].ecc.flags = 0;
+                  && !strcmp (app->app_local->keyattr[keyno].ecc.curve,
+                              "Curve25519")))
+            app->app_local->keyattr[keyno].ecc.flags |= ECC_FLAG_DJB_TWEAK;
           if (opt.verbose)
             log_printf
-              ("ECC, curve=%s%s\n", app->app_local->keyattr[keyno].ecc.oid,
-               !app->app_local->keyattr[keyno].ecc.flags ? "":
-               keyno==1? " (djb-tweak)": " (eddsa)");
+              ("ECC, curve=%s%s\n", app->app_local->keyattr[keyno].ecc.curve,
+               !(app->app_local->keyattr[keyno].ecc.flags & ECC_FLAG_DJB_TWEAK)?
+               "": keyno==1? " (djb-tweak)": " (eddsa)");
         }
     }
   else if (opt.verbose)
index 12254ab..505073e 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /* Information pertaining to the BELPIC developer card samples:
index 79899ce..c582734 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /*
index 55b8edd..40bdd22 100644 (file)
--- a/scd/app.c
+++ b/scd/app.c
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -612,7 +612,8 @@ app_readcert (app_t app, const char *certid,
 
    This function might not be supported by all applications.  */
 gpg_error_t
-app_readkey (app_t app, const char *keyid, unsigned char **pk, size_t *pklen)
+app_readkey (app_t app, int advanced, const char *keyid,
+             unsigned char **pk, size_t *pklen)
 {
   gpg_error_t err;
 
@@ -630,7 +631,7 @@ app_readkey (app_t app, const char *keyid, unsigned char **pk, size_t *pklen)
   err = lock_reader (app->slot, NULL /*FIXME*/);
   if (err)
     return err;
-  err= app->fnc.readkey (app, keyid, pk, pklen);
+  err= app->fnc.readkey (app, advanced, keyid, pk, pklen);
   unlock_reader (app->slot);
   return err;
 }
index 5b94758..9dc79de 100644 (file)
--- a/scd/atr.c
+++ b/scd/atr.c
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index b06a83a..d39e243 100644 (file)
--- a/scd/atr.h
+++ b/scd/atr.h
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef ATR_H
index b1523cb..0917105 100644 (file)
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  *
  * ALTERNATIVELY, this file may be distributed under the terms of the
  * following license, in which case the provisions of this license are
@@ -1717,78 +1717,6 @@ do_close_reader (ccid_driver_t handle)
 }
 
 
-/* Reset a reader on HANDLE.  This is useful in case a reader has been
-   plugged of and inserted at a different port.  By resetting the
-   handle, the same reader will be get used.  Note, that on error the
-   handle won't get released.
-
-   This does not return an ATR, so ccid_get_atr should be called right
-   after this one.
-*/
-int
-ccid_shutdown_reader (ccid_driver_t handle)
-{
-  int rc = 0;
-  libusb_device_handle *idev = NULL;
-  unsigned char *ifcdesc_extra = NULL;
-  size_t ifcdesc_extra_len;
-  int ifc_no, ep_bulk_out, ep_bulk_in, ep_intr;
-
-  if (!handle || !handle->rid)
-    return CCID_DRIVER_ERR_INV_VALUE;
-
-  do_close_reader (handle);
-
-  if (scan_or_find_devices (-1, handle->rid, NULL, NULL,
-                            &ifcdesc_extra, &ifcdesc_extra_len,
-                            &ifc_no, &ep_bulk_out, &ep_bulk_in, &ep_intr,
-                            &idev, NULL) || !idev)
-    {
-      DEBUGOUT_1 ("no CCID reader with ID %s\n", handle->rid);
-      return CCID_DRIVER_ERR_NO_READER;
-    }
-
-  if (idev)
-    {
-      handle->idev = idev;
-      handle->ifc_no = ifc_no;
-      handle->ep_bulk_out = ep_bulk_out;
-      handle->ep_bulk_in = ep_bulk_in;
-      handle->ep_intr = ep_intr;
-
-      if (parse_ccid_descriptor (handle, ifcdesc_extra, ifcdesc_extra_len))
-        {
-          DEBUGOUT ("device not supported\n");
-          rc = CCID_DRIVER_ERR_NO_READER;
-          goto leave;
-        }
-
-      rc = libusb_claim_interface (idev, ifc_no);
-      if (rc)
-        {
-          DEBUGOUT_1 ("usb_claim_interface failed: %d\n", rc);
-          rc = CCID_DRIVER_ERR_CARD_IO_ERROR;
-          goto leave;
-        }
-    }
-
- leave:
-  free (ifcdesc_extra);
-  if (rc)
-    {
-      if (handle->idev)
-        libusb_close (handle->idev);
-      handle->idev = NULL;
-      if (handle->dev_fd != -1)
-        close (handle->dev_fd);
-      handle->dev_fd = -1;
-    }
-
-  return rc;
-
-}
-
-
 int
 ccid_set_progress_cb (ccid_driver_t handle,
                       void (*cb)(void *, const char *, int, int, int),
index be8a5ce..e3aed9f 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  *
  * ALTERNATIVELY, this file may be distributed under the terms of the
  * following license, in which case the provisions of this license are
index 239480b..e771a74 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -223,8 +223,11 @@ update_card_removed (int vrdr, int value)
   /* Let the card application layer know about the removal.  */
   if (value)
     {
+      int slot = vreader_slot (vrdr);
+
       log_debug ("Removal of a card: %d\n", vrdr);
-      application_notify_card_reset (vreader_slot (vrdr));
+      apdu_close_reader (slot);
+      application_notify_card_reset (slot);
       vreader_table[vrdr].slot = -1;
     }
 }
@@ -726,17 +729,19 @@ cmd_readcert (assuan_context_t ctx, char *line)
 
 
 static const char hlp_readkey[] =
-  "READKEY <keyid>\n"
+  "READKEY [--advanced] <keyid>\n"
   "\n"
   "Return the public key for the given cert or key ID as a standard\n"
   "S-expression.\n"
+  "In --advanced mode it returns the S-expression in advanced format.\n"
   "\n"
-  "Note, that this function may even be used on a locked card.";
+  "Note that this function may even be used on a locked card.";
 static gpg_error_t
 cmd_readkey (assuan_context_t ctx, char *line)
 {
   ctrl_t ctrl = assuan_get_pointer (ctx);
   int rc;
+  int advanced = 0;
   unsigned char *cert = NULL;
   size_t ncert, n;
   ksba_cert_t kc = NULL;
@@ -747,11 +752,16 @@ cmd_readkey (assuan_context_t ctx, char *line)
   if ((rc = open_card (ctrl, NULL)))
     return rc;
 
+  if (has_option (line, "--advanced"))
+    advanced = 1;
+
+  line = skip_options (line);
+
   line = xstrdup (line); /* Need a copy of the line. */
   /* If the application supports the READKEY function we use that.
      Otherwise we use the old way by extracting it from the
      certificate.  */
-  rc = app_readkey (ctrl->app_ctx, line, &pk, &pklen);
+  rc = app_readkey (ctrl->app_ctx, advanced, line, &pk, &pklen);
   if (!rc)
     { /* Yeah, got that key - send it back.  */
       rc = assuan_send_data (ctx, pk, pklen);
@@ -2127,7 +2137,8 @@ send_status_info (ctrl_t ctrl, const char *keyword, ...)
         }
       for ( ; valuelen && n < DIM (buf)-2; n++, valuelen--, value++)
         {
-          if (*value < ' ' || *value == '+')
+          if (*value == '+' || *value == '\"' || *value == '%'
+              || *value < ' ')
             {
               sprintf (p, "%%%02X", *value);
               p += 3;
index 515e21f..6cfa6b6 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -604,8 +604,7 @@ iso7816_internal_authenticate (int slot, int extended_mode,
    (e.g. 4096 bytes), a value larger 256 used that value.  */
 static gpg_error_t
 do_generate_keypair (int slot, int extended_mode, int read_only,
-                     const unsigned char *data, size_t datalen,
-                     int le,
+                     const char *data, size_t datalen, int le,
                      unsigned char **result, size_t *resultlen)
 {
   int sw;
@@ -617,7 +616,7 @@ do_generate_keypair (int slot, int extended_mode, int read_only,
 
   sw = apdu_send_le (slot, extended_mode,
                      0x00, CMD_GENERATE_KEYPAIR, read_only? 0x81:0x80, 0,
-                     datalen, (const char*)data,
+                     datalen, data,
                      le >= 0 && le < 256? 256:le,
                      result, resultlen);
   if (sw != SW_SUCCESS)
@@ -635,7 +634,7 @@ do_generate_keypair (int slot, int extended_mode, int read_only,
 
 gpg_error_t
 iso7816_generate_keypair (int slot, int extended_mode,
-                          const unsigned char *data, size_t datalen,
+                          const char *data, size_t datalen,
                           int le,
                           unsigned char **result, size_t *resultlen)
 {
@@ -646,7 +645,7 @@ iso7816_generate_keypair (int slot, int extended_mode,
 
 gpg_error_t
 iso7816_read_public_key (int slot, int extended_mode,
-                         const unsigned char *data, size_t datalen,
+                         const char *data, size_t datalen,
                          int le,
                          unsigned char **result, size_t *resultlen)
 {
index 6dd1052..bcef473 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef ISO7816_H
@@ -100,11 +100,11 @@ gpg_error_t iso7816_internal_authenticate (int slot, int extended_mode,
                                    int le,
                                    unsigned char **result, size_t *resultlen);
 gpg_error_t iso7816_generate_keypair (int slot, int extended_mode,
-                                    const unsigned char *data, size_t datalen,
+                                    const char *data, size_t datalen,
                                     int le,
                                     unsigned char **result, size_t *resultlen);
 gpg_error_t iso7816_read_public_key (int slot, int extended_mode,
-                                    const unsigned char *data, size_t datalen,
+                                    const char *data, size_t datalen,
                                     int le,
                                     unsigned char **result, size_t *resultlen);
 gpg_error_t iso7816_get_challenge (int slot,
index 514e3c2..064cae9 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -422,8 +422,6 @@ main (int argc, char **argv )
   i18n_init ();
   init_common_subsystems (&argc, &argv);
 
-  npth_init ();
-
   ksba_set_malloc_hooks (gcry_malloc, gcry_realloc, gcry_free);
 
   malloc_hooks.malloc = gcry_malloc;
@@ -433,7 +431,7 @@ main (int argc, char **argv )
   assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
   assuan_set_system_hooks (ASSUAN_SYSTEM_NPTH);
   assuan_sock_init ();
-  setup_libassuan_logging (&opt.debug);
+  setup_libassuan_logging (&opt.debug, NULL);
 
   setup_libgcrypt_logging ();
   gcry_control (GCRYCTL_USE_SECURE_RNDPOOL);
@@ -724,6 +722,9 @@ main (int argc, char **argv )
       }
 #endif
 
+      npth_init ();
+      gpgrt_set_syscall_clamp (npth_unprotect, npth_protect);
+
       /* If --debug-allow-core-dump has been given we also need to
          switch the working directory to a place where we can actually
          write. */
@@ -861,15 +862,28 @@ main (int argc, char **argv )
 
       /* This is the child. */
 
+      npth_init ();
+      gpgrt_set_syscall_clamp (npth_unprotect, npth_protect);
+
       /* Detach from tty and put process into a new session. */
       if (!nodetach )
         {
           /* Close stdin, stdout and stderr unless it is the log stream. */
           for (i=0; i <= 2; i++)
             {
-              if ( log_test_fd (i) && i != fd)
-                close (i);
+              if (!log_test_fd (i) && i != fd )
+                {
+                  if ( !close (i)
+                       && open ("/dev/null", i? O_WRONLY : O_RDONLY) == -1)
+                    {
+                      log_error ("failed to open '%s': %s\n",
+                                 "/dev/null", strerror (errno));
+                      cleanup ();
+                      exit (1);
+                    }
+                }
             }
+
           if (setsid() == -1)
             {
               log_error ("setsid() failed: %s\n", strerror(errno) );
@@ -1288,8 +1302,7 @@ handle_connections (int listen_fd)
               char threadname[50];
              npth_t thread;
 
-              snprintf (threadname, sizeof threadname-1, "conn fd=%d", fd);
-              threadname[sizeof threadname -1] = 0;
+              snprintf (threadname, sizeof threadname, "conn fd=%d", fd);
               ctrl->thread_startup.fd = INT2FD (fd);
               ret = npth_create (&thread, &tattr, start_connection_thread, ctrl);
              if (ret)
index 448cb84..31e9c79 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef SCDAEMON_H
index 11f86e9..a9c67a8 100644 (file)
@@ -13,7 +13,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 ## Process this file with automake to produce Makefile.in
 
index 43781ab..f3c7def 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index c7facbb..11e6ae7 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -97,7 +97,7 @@ warn_version_mismatch (ctrl_t ctrl, assuan_context_t ctx,
   if (err)
     log_error (_("error getting version from '%s': %s\n"),
                servername, gpg_strerror (err));
-  else if (!compare_version_strings (serverversion, myversion))
+  else if (compare_version_strings (serverversion, myversion) < 0)
     {
       char *warn;
 
@@ -228,12 +228,13 @@ gpgsm_agent_pksign (ctrl_t ctrl, const char *keygrip, const char *desc,
   char *p, line[ASSUAN_LINELENGTH];
   membuf_t data;
   size_t len;
-  struct default_inq_parm_s inq_parm = { ctrl, agent_ctx };
+  struct default_inq_parm_s inq_parm;
 
   *r_buf = NULL;
   rc = start_agent (ctrl);
   if (rc)
     return rc;
+  inq_parm.ctx = agent_ctx;
 
   if (digestlen*2 + 50 > DIM(line))
     return gpg_error (GPG_ERR_GENERAL);
@@ -242,16 +243,14 @@ gpgsm_agent_pksign (ctrl_t ctrl, const char *keygrip, const char *desc,
   if (rc)
     return rc;
 
-  snprintf (line, DIM(line)-1, "SIGKEY %s", keygrip);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "SIGKEY %s", keygrip);
   rc = assuan_transact (agent_ctx, line, NULL, NULL, NULL, NULL, NULL, NULL);
   if (rc)
     return rc;
 
   if (desc)
     {
-      snprintf (line, DIM(line)-1, "SETKEYDESC %s", desc);
-      line[DIM(line)-1] = 0;
+      snprintf (line, DIM(line), "SETKEYDESC %s", desc);
       rc = assuan_transact (agent_ctx, line,
                             NULL, NULL, NULL, NULL, NULL, NULL);
       if (rc)
@@ -301,7 +300,7 @@ gpgsm_scd_pksign (ctrl_t ctrl, const char *keyid, const char *desc,
   const char *hashopt;
   unsigned char *sigbuf;
   size_t sigbuflen;
-  struct default_inq_parm_s inq_parm = { ctrl, agent_ctx };
+  struct default_inq_parm_s inq_parm;
 
   (void)desc;
 
@@ -320,6 +319,7 @@ gpgsm_scd_pksign (ctrl_t ctrl, const char *keyid, const char *desc,
   rc = start_agent (ctrl);
   if (rc)
     return rc;
+  inq_parm.ctx = agent_ctx;
 
   if (digestlen*2 + 50 > DIM(line))
     return gpg_error (GPG_ERR_GENERAL);
@@ -333,8 +333,7 @@ gpgsm_scd_pksign (ctrl_t ctrl, const char *keyid, const char *desc,
 
   init_membuf (&data, 1024);
 
-  snprintf (line, DIM(line)-1, "SCD PKSIGN %s %s", hashopt, keyid);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "SCD PKSIGN %s %s", hashopt, keyid);
   rc = assuan_transact (agent_ctx, line,
                         put_membuf_cb, &data, default_inq_cb, &inq_parm,
                         NULL, NULL);
@@ -427,16 +426,14 @@ gpgsm_agent_pkdecrypt (ctrl_t ctrl, const char *keygrip, const char *desc,
     return rc;
 
   assert ( DIM(line) >= 50 );
-  snprintf (line, DIM(line)-1, "SETKEY %s", keygrip);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "SETKEY %s", keygrip);
   rc = assuan_transact (agent_ctx, line, NULL, NULL, NULL, NULL, NULL, NULL);
   if (rc)
     return rc;
 
   if (desc)
     {
-      snprintf (line, DIM(line)-1, "SETKEYDESC %s", desc);
-      line[DIM(line)-1] = 0;
+      snprintf (line, DIM(line), "SETKEYDESC %s", desc);
       rc = assuan_transact (agent_ctx, line,
                             NULL, NULL, NULL, NULL, NULL, NULL);
       if (rc)
@@ -580,20 +577,20 @@ gpgsm_agent_readkey (ctrl_t ctrl, int fromcard, const char *hexkeygrip,
   size_t len;
   unsigned char *buf;
   char line[ASSUAN_LINELENGTH];
-  struct default_inq_parm_s inq_parm = { ctrl, agent_ctx };
+  struct default_inq_parm_s inq_parm;
 
   *r_pubkey = NULL;
   rc = start_agent (ctrl);
   if (rc)
     return rc;
+  inq_parm.ctx = agent_ctx;
 
   rc = assuan_transact (agent_ctx, "RESET",NULL, NULL, NULL, NULL, NULL, NULL);
   if (rc)
     return rc;
 
-  snprintf (line, DIM(line)-1, "%sREADKEY %s",
+  snprintf (line, DIM(line), "%sREADKEY %s",
             fromcard? "SCD ":"", hexkeygrip);
-  line[DIM(line)-1] = 0;
 
   init_membuf (&data, 1024);
   rc = assuan_transact (agent_ctx, line,
@@ -668,12 +665,14 @@ gpgsm_agent_scd_serialno (ctrl_t ctrl, char **r_serialno)
 {
   int rc;
   char *serialno = NULL;
-  struct default_inq_parm_s inq_parm = { ctrl, agent_ctx };
+  struct default_inq_parm_s inq_parm;
 
   *r_serialno = NULL;
   rc = start_agent (ctrl);
   if (rc)
     return rc;
+  inq_parm.ctrl = ctrl;
+  inq_parm.ctx = agent_ctx;
 
   rc = assuan_transact (agent_ctx, "SCD SERIALNO",
                         NULL, NULL,
@@ -738,12 +737,14 @@ gpgsm_agent_scd_keypairinfo (ctrl_t ctrl, strlist_t *r_list)
 {
   int rc;
   strlist_t list = NULL;
-  struct default_inq_parm_s inq_parm = { ctrl, agent_ctx };
+  struct default_inq_parm_s inq_parm;
 
   *r_list = NULL;
   rc = start_agent (ctrl);
   if (rc)
     return rc;
+  inq_parm.ctrl = ctrl;
+  inq_parm.ctx = agent_ctx;
 
   rc = assuan_transact (agent_ctx, "SCD LEARN --force",
                         NULL, NULL,
@@ -803,8 +804,7 @@ gpgsm_agent_istrusted (ctrl_t ctrl, ksba_cert_t cert, const char *hexfpr,
 
   if (hexfpr)
     {
-      snprintf (line, DIM(line)-1, "ISTRUSTED %s", hexfpr);
-      line[DIM(line)-1] = 0;
+      snprintf (line, DIM(line), "ISTRUSTED %s", hexfpr);
     }
   else
     {
@@ -817,8 +817,7 @@ gpgsm_agent_istrusted (ctrl_t ctrl, ksba_cert_t cert, const char *hexfpr,
           return gpg_error (GPG_ERR_GENERAL);
         }
 
-      snprintf (line, DIM(line)-1, "ISTRUSTED %s", fpr);
-      line[DIM(line)-1] = 0;
+      snprintf (line, DIM(line), "ISTRUSTED %s", fpr);
       xfree (fpr);
     }
 
@@ -836,11 +835,13 @@ gpgsm_agent_marktrusted (ctrl_t ctrl, ksba_cert_t cert)
   int rc;
   char *fpr, *dn, *dnfmt;
   char line[ASSUAN_LINELENGTH];
-  struct default_inq_parm_s inq_parm = { ctrl, agent_ctx };
+  struct default_inq_parm_s inq_parm;
 
   rc = start_agent (ctrl);
   if (rc)
     return rc;
+  inq_parm.ctrl = ctrl;
+  inq_parm.ctx = agent_ctx;
 
   fpr = gpgsm_get_fingerprint_hexstring (cert, GCRY_MD_SHA1);
   if (!fpr)
@@ -859,8 +860,7 @@ gpgsm_agent_marktrusted (ctrl_t ctrl, ksba_cert_t cert)
   xfree (dn);
   if (!dnfmt)
     return gpg_error_from_syserror ();
-  snprintf (line, DIM(line)-1, "MARKTRUSTED %s S %s", fpr, dnfmt);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "MARKTRUSTED %s S %s", fpr, dnfmt);
   ksba_free (dnfmt);
   xfree (fpr);
 
@@ -886,8 +886,7 @@ gpgsm_agent_havekey (ctrl_t ctrl, const char *hexkeygrip)
   if (!hexkeygrip || strlen (hexkeygrip) != 40)
     return gpg_error (GPG_ERR_INV_VALUE);
 
-  snprintf (line, DIM(line)-1, "HAVEKEY %s", hexkeygrip);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "HAVEKEY %s", hexkeygrip);
 
   rc = assuan_transact (agent_ctx, line, NULL, NULL, NULL, NULL, NULL, NULL);
   return rc;
@@ -968,7 +967,7 @@ learn_cb (void *opaque, const void *buffer, size_t length)
     {
       int existed;
 
-      if (!keydb_store_cert (cert, 0, &existed))
+      if (!keydb_store_cert (parm->ctrl, cert, 0, &existed))
         {
           if (opt.verbose > 1 && existed)
             log_info ("certificate already in DB\n");
@@ -1023,27 +1022,27 @@ gpgsm_agent_passwd (ctrl_t ctrl, const char *hexkeygrip, const char *desc)
 {
   int rc;
   char line[ASSUAN_LINELENGTH];
-  struct default_inq_parm_s inq_parm = { ctrl, agent_ctx };
+  struct default_inq_parm_s inq_parm;
 
   rc = start_agent (ctrl);
   if (rc)
     return rc;
+  inq_parm.ctrl = ctrl;
+  inq_parm.ctx = agent_ctx;
 
   if (!hexkeygrip || strlen (hexkeygrip) != 40)
     return gpg_error (GPG_ERR_INV_VALUE);
 
   if (desc)
     {
-      snprintf (line, DIM(line)-1, "SETKEYDESC %s", desc);
-      line[DIM(line)-1] = 0;
+      snprintf (line, DIM(line), "SETKEYDESC %s", desc);
       rc = assuan_transact (agent_ctx, line,
                             NULL, NULL, NULL, NULL, NULL, NULL);
       if (rc)
         return rc;
     }
 
-  snprintf (line, DIM(line)-1, "PASSWD %s", hexkeygrip);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "PASSWD %s", hexkeygrip);
 
   rc = assuan_transact (agent_ctx, line, NULL, NULL,
                         default_inq_cb, &inq_parm, NULL, NULL);
@@ -1059,14 +1058,15 @@ gpgsm_agent_get_confirmation (ctrl_t ctrl, const char *desc)
 {
   int rc;
   char line[ASSUAN_LINELENGTH];
-  struct default_inq_parm_s inq_parm = { ctrl, agent_ctx };
+  struct default_inq_parm_s inq_parm;
 
   rc = start_agent (ctrl);
   if (rc)
     return rc;
+  inq_parm.ctrl = ctrl;
+  inq_parm.ctx = agent_ctx;
 
-  snprintf (line, DIM(line)-1, "GET_CONFIRMATION %s", desc);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "GET_CONFIRMATION %s", desc);
 
   rc = assuan_transact (agent_ctx, line, NULL, NULL,
                         default_inq_cb, &inq_parm, NULL, NULL);
@@ -1137,8 +1137,7 @@ gpgsm_agent_keyinfo (ctrl_t ctrl, const char *hexkeygrip, char **r_serialno)
   if (!hexkeygrip || strlen (hexkeygrip) != 40)
     return gpg_error (GPG_ERR_INV_VALUE);
 
-  snprintf (line, DIM(line)-1, "KEYINFO %s", hexkeygrip);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "KEYINFO %s", hexkeygrip);
 
   err = assuan_transact (agent_ctx, line, NULL, NULL, NULL, NULL,
                          keyinfo_status_cb, &serialno);
@@ -1170,18 +1169,20 @@ gpgsm_agent_ask_passphrase (ctrl_t ctrl, const char *desc_msg, int repeat,
   char line[ASSUAN_LINELENGTH];
   char *arg4 = NULL;
   membuf_t data;
-  struct default_inq_parm_s inq_parm = { ctrl, agent_ctx };
+  struct default_inq_parm_s inq_parm;
 
   *r_passphrase = NULL;
 
   err = start_agent (ctrl);
   if (err)
     return err;
+  inq_parm.ctrl = ctrl;
+  inq_parm.ctx = agent_ctx;
 
   if (desc_msg && *desc_msg && !(arg4 = percent_plus_escape (desc_msg)))
     return gpg_error_from_syserror ();
 
-  snprintf (line, DIM(line)-1, "GET_PASSPHRASE --data%s -- X X X %s",
+  snprintf (line, DIM(line), "GET_PASSPHRASE --data%s -- X X X %s",
             repeat? " --repeat=1 --check --qualitybar":"",
             arg4);
   xfree (arg4);
@@ -1217,14 +1218,16 @@ gpgsm_agent_keywrap_key (ctrl_t ctrl, int forexport,
   size_t len;
   unsigned char *buf;
   char line[ASSUAN_LINELENGTH];
-  struct default_inq_parm_s inq_parm = { ctrl, agent_ctx };
+  struct default_inq_parm_s inq_parm;
 
   *r_kek = NULL;
   err = start_agent (ctrl);
   if (err)
     return err;
+  inq_parm.ctrl = ctrl;
+  inq_parm.ctx = agent_ctx;
 
-  snprintf (line, DIM(line)-1, "KEYWRAP_KEY %s",
+  snprintf (line, DIM(line), "KEYWRAP_KEY %s",
             forexport? "--export":"--import");
 
   init_membuf_secure (&data, 64);
@@ -1306,24 +1309,26 @@ gpgsm_agent_export_key (ctrl_t ctrl, const char *keygrip, const char *desc,
   size_t len;
   unsigned char *buf;
   char line[ASSUAN_LINELENGTH];
-  struct default_inq_parm_s inq_parm = { ctrl, agent_ctx };
+  struct default_inq_parm_s inq_parm;
 
   *r_result = NULL;
 
   err = start_agent (ctrl);
   if (err)
     return err;
+  inq_parm.ctrl = ctrl;
+  inq_parm.ctx = agent_ctx;
 
   if (desc)
     {
-      snprintf (line, DIM(line)-1, "SETKEYDESC %s", desc);
+      snprintf (line, DIM(line), "SETKEYDESC %s", desc);
       err = assuan_transact (agent_ctx, line,
                              NULL, NULL, NULL, NULL, NULL, NULL);
       if (err)
         return err;
     }
 
-  snprintf (line, DIM(line)-1, "EXPORT_KEY %s", keygrip);
+  snprintf (line, DIM(line), "EXPORT_KEY %s", keygrip);
 
   init_membuf_secure (&data, 1024);
   err = assuan_transact (agent_ctx, line,
index 7e26c3a..d025063 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -78,6 +78,7 @@ struct lookup_parm_s {
 };
 
 struct run_command_parm_s {
+  ctrl_t ctrl;
   assuan_context_t ctx;
 };
 
@@ -163,7 +164,7 @@ warn_version_mismatch (ctrl_t ctrl, assuan_context_t ctx,
   if (err)
     log_error (_("error getting version from '%s': %s\n"),
                servername, gpg_strerror (err));
-  else if (!compare_version_strings (serverversion, myversion))
+  else if (compare_version_strings (serverversion, myversion) < 0)
     {
       char *warn;
 
@@ -215,12 +216,11 @@ prepare_dirmngr (ctrl_t ctrl, assuan_context_t ctx, gpg_error_t err)
       char *pass = server->pass ? server->pass : "";
       char *base = server->base ? server->base : "";
 
-      snprintf (line, DIM (line) - 1, "LDAPSERVER %s:%i:%s:%s:%s",
+      snprintf (line, DIM (line), "LDAPSERVER %s:%i:%s:%s:%s",
                server->host, server->port, user, pass, base);
-      line[DIM (line) - 1] = 0;
 
       assuan_transact (ctx, line, NULL, NULL, NULL, NULL, NULL, NULL);
-      /* The code below is not required becuase we don't return an error.  */
+      /* The code below is not required because we don't return an error.  */
       /* err = [above call]  */
       /* if (gpg_err_code (err) == GPG_ERR_ASS_UNKNOWN_CMD) */
       /*   err = 0;  /\* Allow the use of old dirmngr versions.  *\/ */
@@ -408,7 +408,7 @@ inq_certificate (void *opaque, const char *line)
       ksba_cert_t cert;
 
 
-      err = gpgsm_find_cert (line, ski, &cert);
+      err = gpgsm_find_cert (parm->ctrl, line, ski, &cert);
       if (err)
         {
           log_error ("certificate not found: %s\n", gpg_strerror (err));
@@ -548,10 +548,9 @@ gpgsm_dirmngr_isvalid (ctrl_t ctrl,
                          NULL, NULL, NULL, NULL, NULL, NULL);
       did_options = 1;
     }
-  snprintf (line, DIM(line)-1, "ISVALID%s %s",
+  snprintf (line, DIM(line), "ISVALID%s %s",
             use_ocsp == 2? " --only-ocsp --force-default-responder":"",
             certid);
-  line[DIM(line)-1] = 0;
   xfree (certid);
 
   rc = assuan_transact (dirmngr_ctx, line, NULL, NULL,
@@ -559,7 +558,6 @@ gpgsm_dirmngr_isvalid (ctrl_t ctrl,
                         isvalid_status_cb, &stparm);
   if (opt.verbose > 1)
     log_info ("response of dirmngr: %s\n", rc? gpg_strerror (rc): "okay");
-  rc = rc;
 
   if (!rc && stparm.seen)
     {
@@ -579,11 +577,11 @@ gpgsm_dirmngr_isvalid (ctrl_t ctrl,
                  from the dirmngr.  Try our own cert store now.  */
               KEYDB_HANDLE kh;
 
-              kh = keydb_new (0);
+              kh = keydb_new ();
               if (!kh)
                 rc = gpg_error (GPG_ERR_ENOMEM);
               if (!rc)
-                rc = keydb_search_fpr (kh, stparm.fpr);
+                rc = keydb_search_fpr (ctrl, kh, stparm.fpr);
               if (!rc)
                 rc = keydb_get_cert (kh, &rspcert);
               if (rc)
@@ -804,9 +802,8 @@ gpgsm_dirmngr_lookup (ctrl_t ctrl, strlist_t names, int cache_only,
 
       return out_of_core ();
     }
-  snprintf (line, DIM(line)-1, "LOOKUP%s %s",
+  snprintf (line, DIM(line), "LOOKUP%s %s",
             cache_only? " --cache-only":"", pattern);
-  line[DIM(line)-1] = 0;
   xfree (pattern);
 
   parm.ctrl = ctrl;
@@ -862,7 +859,7 @@ get_cached_cert (assuan_context_t ctx,
   *r_cert = NULL;
 
   bin2hex (fpr, 20, hexfpr);
-  snprintf (line, DIM(line)-1, "LOOKUP --single --cache-only 0x%s", hexfpr);
+  snprintf (line, DIM(line), "LOOKUP --single --cache-only 0x%s", hexfpr);
 
   init_membuf (&mb, 4096);
   err = assuan_transact (ctx, line, get_cached_cert_data_cb, &mb,
@@ -932,7 +929,7 @@ run_command_inq_cb (void *opaque, const char *line)
       if (!*line)
         return gpg_error (GPG_ERR_ASS_PARAMETER);
 
-      err = gpgsm_find_cert (line, NULL, &cert);
+      err = gpgsm_find_cert (parm->ctrl, line, NULL, &cert);
       if (err)
         {
           log_error ("certificate not found: %s\n", gpg_strerror (err));
@@ -1006,6 +1003,7 @@ gpgsm_dirmngr_run_command (ctrl_t ctrl, const char *command,
   if (rc)
     return rc;
 
+  parm.ctrl = ctrl;
   parm.ctx = dirmngr_ctx;
 
   len = strlen (command) + 1;
index b884d3d..083c3ad 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -438,7 +438,7 @@ check_cert_policy (ksba_cert_t cert, int listmode, estream_t fplist)
    for an issuer ISSUER with a subjectKeyIdentifier of KEYID.  Returns
    0 on success or -1 when not found. */
 static int
-find_up_search_by_keyid (KEYDB_HANDLE kh,
+find_up_search_by_keyid (ctrl_t ctrl, KEYDB_HANDLE kh,
                          const char *issuer, ksba_sexp_t keyid)
 {
   int rc;
@@ -448,7 +448,7 @@ find_up_search_by_keyid (KEYDB_HANDLE kh,
   ksba_isotime_t not_before, last_not_before;
 
   keydb_search_reset (kh);
-  while (!(rc = keydb_search_subject (kh, issuer)))
+  while (!(rc = keydb_search_subject (ctrl, kh, issuer)))
     {
       ksba_cert_release (cert); cert = NULL;
       rc = keydb_get_cert (kh, &cert);
@@ -499,12 +499,20 @@ find_up_search_by_keyid (KEYDB_HANDLE kh,
 }
 
 
+struct find_up_store_certs_s
+{
+  ctrl_t ctrl;
+  int count;
+};
+
 static void
 find_up_store_certs_cb (void *cb_value, ksba_cert_t cert)
 {
-  if (keydb_store_cert (cert, 1, NULL))
+  struct find_up_store_certs_s *parm = cb_value;
+
+  if (keydb_store_cert (parm->ctrl, cert, 1, NULL))
     log_error ("error storing issuer certificate as ephemeral\n");
-  ++*(int*)cb_value;
+  parm->count++;
 }
 
 
@@ -519,10 +527,13 @@ find_up_external (ctrl_t ctrl, KEYDB_HANDLE kh,
 {
   int rc;
   strlist_t names = NULL;
-  int count = 0;
+  struct find_up_store_certs_s find_up_store_certs_parm;
   char *pattern;
   const char *s;
 
+  find_up_store_certs_parm.ctrl = ctrl;
+  find_up_store_certs_parm.count = 0;
+
   if (opt.verbose)
     log_info (_("looking up issuer at external location\n"));
   /* The Dirmngr process is confused about unknown attributes.  As a
@@ -539,17 +550,19 @@ find_up_external (ctrl_t ctrl, KEYDB_HANDLE kh,
   add_to_strlist (&names, pattern);
   xfree (pattern);
 
-  rc = gpgsm_dirmngr_lookup (ctrl, names, 0, find_up_store_certs_cb, &count);
+  rc = gpgsm_dirmngr_lookup (ctrl, names, 0, find_up_store_certs_cb,
+                             &find_up_store_certs_parm);
   free_strlist (names);
 
   if (opt.verbose)
-    log_info (_("number of issuers matching: %d\n"), count);
+    log_info (_("number of issuers matching: %d\n"),
+              find_up_store_certs_parm.count);
   if (rc)
     {
       log_error ("external key lookup failed: %s\n", gpg_strerror (rc));
       rc = -1;
     }
-  else if (!count)
+  else if (!find_up_store_certs_parm.count)
     rc = -1;
   else
     {
@@ -558,11 +571,11 @@ find_up_external (ctrl_t ctrl, KEYDB_HANDLE kh,
          we temporary switch to ephemeral mode. */
       old = keydb_set_ephemeral (kh, 1);
       if (keyid)
-        rc = find_up_search_by_keyid (kh, issuer, keyid);
+        rc = find_up_search_by_keyid (ctrl, kh, issuer, keyid);
       else
         {
           keydb_search_reset (kh);
-          rc = keydb_search_subject (kh, issuer);
+          rc = keydb_search_subject (ctrl, kh, issuer);
         }
       keydb_set_ephemeral (kh, old);
     }
@@ -581,11 +594,14 @@ find_up_dirmngr (ctrl_t ctrl, KEYDB_HANDLE kh,
 {
   int rc;
   strlist_t names = NULL;
-  int count = 0;
+  struct find_up_store_certs_s find_up_store_certs_parm;
   char *pattern;
 
   (void)kh;
 
+  find_up_store_certs_parm.ctrl = ctrl;
+  find_up_store_certs_parm.count = 0;
+
   if (opt.verbose)
     log_info (_("looking up issuer from the Dirmngr cache\n"));
   if (subject_mode)
@@ -607,15 +623,17 @@ find_up_dirmngr (ctrl_t ctrl, KEYDB_HANDLE kh,
   add_to_strlist (&names, pattern);
   xfree (pattern);
 
-  rc = gpgsm_dirmngr_lookup (ctrl, names, 1, find_up_store_certs_cb, &count);
+  rc = gpgsm_dirmngr_lookup (ctrl, names, 1, find_up_store_certs_cb,
+                             &find_up_store_certs_parm);
   free_strlist (names);
 
   if (opt.verbose)
-    log_info (_("number of matching certificates: %d\n"), count);
+    log_info (_("number of matching certificates: %d\n"),
+              find_up_store_certs_parm.count);
   if (rc && !opt.quiet)
     log_info (_("dirmngr cache-only key lookup failed: %s\n"),
               gpg_strerror (rc));
-  return (!rc && count)? 0 : -1;
+  return (!rc && find_up_store_certs_parm.count)? 0 : -1;
 }
 
 
@@ -642,7 +660,7 @@ find_up (ctrl_t ctrl, KEYDB_HANDLE kh,
       const char *s = ksba_name_enum (authid, 0);
       if (s && *authidno)
         {
-          rc = keydb_search_issuer_sn (kh, s, authidno);
+          rc = keydb_search_issuer_sn (ctrl, kh, s, authidno);
           if (rc)
             keydb_search_reset (kh);
 
@@ -665,7 +683,7 @@ find_up (ctrl_t ctrl, KEYDB_HANDLE kh,
               int old = keydb_set_ephemeral (kh, 1);
               if (!old)
                 {
-                  rc = keydb_search_issuer_sn (kh, s, authidno);
+                  rc = keydb_search_issuer_sn (ctrl, kh, s, authidno);
                   if (rc)
                     keydb_search_reset (kh);
 
@@ -685,14 +703,14 @@ find_up (ctrl_t ctrl, KEYDB_HANDLE kh,
              subject and stop for the one with a matching
              subjectKeyIdentifier. */
           /* Fixme: Should we also search in the dirmngr?  */
-          rc = find_up_search_by_keyid (kh, issuer, keyid);
+          rc = find_up_search_by_keyid (ctrl, kh, issuer, keyid);
           if (!rc && DBG_X509)
             log_debug ("  found via authid and keyid\n");
           if (rc)
             {
               int old = keydb_set_ephemeral (kh, 1);
               if (!old)
-                rc = find_up_search_by_keyid (kh, issuer, keyid);
+                rc = find_up_search_by_keyid (ctrl, kh, issuer, keyid);
               if (!rc && DBG_X509)
                 log_debug ("  found via authid and keyid (ephem)\n");
               keydb_set_ephemeral (kh, old);
@@ -709,11 +727,11 @@ find_up (ctrl_t ctrl, KEYDB_HANDLE kh,
             {
               int old = keydb_set_ephemeral (kh, 1);
               if (keyid)
-                rc = find_up_search_by_keyid (kh, issuer, keyid);
+                rc = find_up_search_by_keyid (ctrl, kh, issuer, keyid);
               else
                 {
                   keydb_search_reset (kh);
-                  rc = keydb_search_subject (kh, issuer);
+                  rc = keydb_search_subject (ctrl, kh, issuer);
                 }
               keydb_set_ephemeral (kh, old);
             }
@@ -765,7 +783,7 @@ find_up (ctrl_t ctrl, KEYDB_HANDLE kh,
     }
 
   if (rc) /* Not found via authorithyKeyIdentifier, try regular issuer name. */
-    rc = keydb_search_subject (kh, issuer);
+    rc = keydb_search_subject (ctrl, kh, issuer);
   if (rc == -1 && !find_next)
     {
       int old;
@@ -779,7 +797,7 @@ find_up (ctrl_t ctrl, KEYDB_HANDLE kh,
       if (!old)
         {
           keydb_search_reset (kh);
-          rc = keydb_search_subject (kh, issuer);
+          rc = keydb_search_subject (ctrl, kh, issuer);
         }
       keydb_set_ephemeral (kh, old);
 
@@ -807,7 +825,7 @@ gpgsm_walk_cert_chain (ctrl_t ctrl, ksba_cert_t start, ksba_cert_t *r_next)
   int rc = 0;
   char *issuer = NULL;
   char *subject = NULL;
-  KEYDB_HANDLE kh = keydb_new (0);
+  KEYDB_HANDLE kh = keydb_new ();
 
   *r_next = NULL;
   if (!kh)
@@ -983,7 +1001,7 @@ is_cert_still_valid (ctrl_t ctrl, int force_ocsp, int lm, estream_t fp,
           /* Store that in the keybox so that key listings are able to
              return the revoked flag.  We don't care about error,
              though. */
-          keydb_set_cert_flags (subject_cert, 1, KEYBOX_FLAG_VALIDITY, 0,
+          keydb_set_cert_flags (ctrl, subject_cert, 1, KEYBOX_FLAG_VALIDITY, 0,
                                 ~0, VALIDITY_REVOKED);
           break;
 
@@ -1303,7 +1321,7 @@ do_validate_chain (ctrl_t ctrl, ksba_cert_t cert, ksba_isotime_t checktime_arg,
       return 0;
     }
 
-  kh = keydb_new (0);
+  kh = keydb_new ();
   if (!kh)
     {
       log_error (_("failed to allocate keyDB handle\n"));
@@ -1786,7 +1804,7 @@ do_validate_chain (ctrl_t ctrl, ksba_cert_t cert, ksba_isotime_t checktime_arg,
              been stored in the keybox and thus the flag can't be set.
              We ignore this error because it will later be stored
              anyway.  */
-          err = keydb_set_cert_flags (ci->cert, 1, KEYBOX_FLAG_BLOB, 0,
+          err = keydb_set_cert_flags (ctrl, ci->cert, 1, KEYBOX_FLAG_BLOB, 0,
                                       KEYBOX_FLAG_BLOB_EPHEMERAL, 0);
           if (!ci->next && gpg_err_code (err) == GPG_ERR_NOT_FOUND)
             ;
@@ -1941,7 +1959,7 @@ gpgsm_basic_cert_check (ctrl_t ctrl, ksba_cert_t cert)
       return 0;
     }
 
-  kh = keydb_new (0);
+  kh = keydb_new ();
   if (!kh)
     {
       log_error (_("failed to allocate keyDB handle\n"));
index 904556f..04b3917 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 0cc492a..e47251e 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 9adcabf..7baec65 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -319,7 +319,7 @@ gpgsm_add_to_certlist (ctrl_t ctrl, const char *name, int secret,
   rc = classify_user_id (name, &desc, 0);
   if (!rc)
     {
-      kh = keydb_new (0);
+      kh = keydb_new ();
       if (!kh)
         rc = gpg_error (GPG_ERR_ENOMEM);
       else
@@ -329,7 +329,7 @@ gpgsm_add_to_certlist (ctrl_t ctrl, const char *name, int secret,
           char *first_issuer = NULL;
 
         get_next:
-          rc = keydb_search (kh, &desc, 1);
+          rc = keydb_search (ctrl, kh, &desc, 1);
           if (!rc)
             rc = keydb_get_cert (kh, &cert);
           if (!rc)
@@ -376,7 +376,7 @@ gpgsm_add_to_certlist (ctrl_t ctrl, const char *name, int secret,
               certlist_t dup_certs = NULL;
 
             next_ambigious:
-              rc = keydb_search (kh, &desc, 1);
+              rc = keydb_search (ctrl, kh, &desc, 1);
               if (rc == -1)
                 rc = 0;
               else if (!rc)
@@ -488,7 +488,8 @@ gpgsm_release_certlist (certlist_t list)
    additional filter value which must match the
    subjectKeyIdentifier. */
 int
-gpgsm_find_cert (const char *name, ksba_sexp_t keyid, ksba_cert_t *r_cert)
+gpgsm_find_cert (ctrl_t ctrl,
+                 const char *name, ksba_sexp_t keyid, ksba_cert_t *r_cert)
 {
   int rc;
   KEYDB_SEARCH_DESC desc;
@@ -498,13 +499,13 @@ gpgsm_find_cert (const char *name, ksba_sexp_t keyid, ksba_cert_t *r_cert)
   rc = classify_user_id (name, &desc, 0);
   if (!rc)
     {
-      kh = keydb_new (0);
+      kh = keydb_new ();
       if (!kh)
         rc = gpg_error (GPG_ERR_ENOMEM);
       else
         {
         nextone:
-          rc = keydb_search (kh, &desc, 1);
+          rc = keydb_search (ctrl, kh, &desc, 1);
           if (!rc)
             {
               rc = keydb_get_cert (kh, r_cert);
@@ -537,7 +538,7 @@ gpgsm_find_cert (const char *name, ksba_sexp_t keyid, ksba_cert_t *r_cert)
           if (!rc && !keyid)
             {
             next_ambiguous:
-              rc = keydb_search (kh, &desc, 1);
+              rc = keydb_search (ctrl, kh, &desc, 1);
               if (rc == -1)
                 rc = 0;
               else
index 3ccd048..ece8668 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 2c6550c..9b4ffc9 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /*
@@ -719,7 +719,7 @@ proc_parameters (ctrl_t ctrl, struct para_data_s *para,
   else if (!outctrl->dryrun) /* Generate new key.  */
     {
       sprintf (numbuf, "%u", nbits);
-      snprintf ((char*)keyparms, DIM (keyparms)-1,
+      snprintf ((char*)keyparms, DIM (keyparms),
                 "(6:genkey(3:rsa(5:nbits%d:%s)))",
                 (int)strlen (numbuf), numbuf);
       rc = gpgsm_agent_genkey (ctrl, keyparms, &public);
index a560272..11c1cf8 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -256,7 +256,7 @@ gpgsm_decrypt (ctrl_t ctrl, int in_fd, estream_t out_fp)
 
   audit_set_type (ctrl->audit, AUDIT_TYPE_DECRYPT);
 
-  kh = keydb_new (0);
+  kh = keydb_new ();
   if (!kh)
     {
       log_error (_("failed to allocate keyDB handle\n"));
@@ -400,7 +400,7 @@ gpgsm_decrypt (ctrl_t ctrl, int in_fd, estream_t out_fp)
                     }
 
                   keydb_search_reset (kh);
-                  rc = keydb_search_issuer_sn (kh, issuer, serial);
+                  rc = keydb_search_issuer_sn (ctrl, kh, issuer, serial);
                   if (rc)
                     {
                       log_error ("failed to find the certificate: %s\n",
index bafe601..3536968 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -54,7 +54,7 @@ delete_one (ctrl_t ctrl, const char *username)
       goto leave;
     }
 
-  kh = keydb_new (0);
+  kh = keydb_new ();
   if (!kh)
     {
       log_error ("keydb_new failed\n");
@@ -72,7 +72,7 @@ delete_one (ctrl_t ctrl, const char *username)
       keydb_set_ephemeral (kh, 1);
     }
 
-  rc = keydb_search (kh, &desc, 1);
+  rc = keydb_search (ctrl, kh, &desc, 1);
   if (!rc)
     rc = keydb_get_cert (kh, &cert);
   if (!rc && !is_ephem)
@@ -82,7 +82,7 @@ delete_one (ctrl_t ctrl, const char *username)
       gpgsm_get_fingerprint (cert, 0, fpr, NULL);
 
     next_ambigious:
-      rc = keydb_search (kh, &desc, 1);
+      rc = keydb_search (ctrl, kh, &desc, 1);
       if (rc == -1)
         rc = 0;
       else if (!rc)
@@ -126,7 +126,7 @@ delete_one (ctrl_t ctrl, const char *username)
   do
     {
       keydb_search_reset (kh);
-      rc = keydb_search (kh, &desc, 1);
+      rc = keydb_search (ctrl, kh, &desc, 1);
       if (rc)
         {
           log_error ("problem re-searching certificate: %s\n",
index c677a42..2c664f8 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -336,7 +336,7 @@ gpgsm_encrypt (ctrl_t ctrl, certlist_t recplist, int data_fd, estream_t out_fp)
     count++;
   audit_log_i (ctrl->audit, AUDIT_GOT_RECIPIENTS, count);
 
-  kh = keydb_new (0);
+  kh = keydb_new ();
   if (!kh)
     {
       log_error (_("failed to allocate keyDB handle\n"));
index d3dc9b9..a32414e 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -150,7 +150,7 @@ gpgsm_export (ctrl_t ctrl, strlist_t names, estream_t stream)
       goto leave;
     }
 
-  hd = keydb_new (0);
+  hd = keydb_new ();
   if (!hd)
     {
       log_error ("keydb_new failed\n");
@@ -206,7 +206,7 @@ gpgsm_export (ctrl_t ctrl, strlist_t names, estream_t stream)
         keydb_set_ephemeral (hd, 1);
     }
 
-  while (!(rc = keydb_search (hd, desc, ndesc)))
+  while (!(rc = keydb_search (ctrl, hd, desc, ndesc)))
     {
       unsigned char fpr[20];
       int exists;
@@ -338,8 +338,7 @@ gpgsm_p12_export (ctrl_t ctrl, const char *name, estream_t stream, int rawmode)
   void *data;
   size_t datalen;
 
-
-  hd = keydb_new (0);
+  hd = keydb_new ();
   if (!hd)
     {
       log_error ("keydb_new failed\n");
@@ -363,7 +362,7 @@ gpgsm_p12_export (ctrl_t ctrl, const char *name, estream_t stream, int rawmode)
     }
 
   /* Lookup the certificate and make sure that it is unique. */
-  err = keydb_search (hd, desc, 1);
+  err = keydb_search (ctrl, hd, desc, 1);
   if (!err)
     {
       err = keydb_get_cert (hd, &cert);
@@ -374,7 +373,7 @@ gpgsm_p12_export (ctrl_t ctrl, const char *name, estream_t stream, int rawmode)
         }
 
     next_ambiguous:
-      err = keydb_search (hd, desc, 1);
+      err = keydb_search (ctrl, hd, desc, 1);
       if (!err)
         {
           ksba_cert_t cert2 = NULL;
index 8d2b800..d8e8405 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index e3b1e88..c4fd1c2 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -133,6 +133,8 @@ enum cmd_and_opt_values {
   oNoArmor,
   oP12Charset,
 
+  oCompliance,
+
   oDisableCRLChecks,
   oEnableCRLChecks,
   oDisableTrustedCertCRLCheck,
@@ -361,6 +363,7 @@ static ARGPARSE_OPTS opts[] = {
     " --fingerprint [names]      show fingerprints\n"  )),
 
   /* Hidden options. */
+  ARGPARSE_s_s (oCompliance, "compliance",   "@"),
   ARGPARSE_s_n (oNoVerbose, "no-verbose", "@"),
   ARGPARSE_s_n (oEnableSpecialFilenames, "enable-special-filenames", "@"),
   ARGPARSE_s_n (oNoSecmemWarn, "no-secmem-warning", "@"),
@@ -1006,7 +1009,7 @@ main ( int argc, char **argv)
   malloc_hooks.free = gcry_free;
   assuan_set_malloc_hooks (&malloc_hooks);
   assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
-  setup_libassuan_logging (&opt.debug);
+  setup_libassuan_logging (&opt.debug, NULL);
 
   keybox_set_malloc_hooks (gcry_malloc, gcry_realloc, gcry_free);
 
@@ -1279,9 +1282,9 @@ main ( int argc, char **argv)
         case oStatusFD: ctrl.status_fd = pargs.r.ret_int; break;
         case oLoggerFD: log_set_fd (pargs.r.ret_int ); break;
         case oWithMD5Fingerprint:
-          opt.with_md5_fingerprint=1; /*fall thru*/
+          opt.with_md5_fingerprint=1; /*fall through*/
         case oWithFingerprint:
-          with_fpr=1; /*fall thru*/
+          with_fpr=1; /*fall through*/
         case aFingerprint:
           opt.fingerprint++;
           break;
@@ -1360,7 +1363,7 @@ main ( int argc, char **argv)
           opt.def_recipient_self = 0;
           break;
 
-        case oWithKeyData: opt.with_key_data=1; /* fall thru */
+        case oWithKeyData: opt.with_key_data=1; /* fall through */
         case oWithColons: ctrl.with_colons = 1; break;
         case oWithSecret: ctrl.with_secret = 1; break;
         case oWithValidation: ctrl.with_validation=1; break;
@@ -1445,6 +1448,10 @@ main ( int argc, char **argv)
 
         case oNoAutostart: opt.autostart = 0; break;
 
+        case oCompliance:
+          /* Dummy option for now.  */
+          break;
+
         default:
           pargs.err = configfp? ARGPARSE_PRINT_WARNING:ARGPARSE_PRINT_ERROR;
           break;
@@ -1616,7 +1623,7 @@ main ( int argc, char **argv)
     {
       int created;
 
-      keydb_add_resource ("pubring.kbx", 0, 0, &created);
+      keydb_add_resource (&ctrl, "pubring.kbx", 0, &created);
       if (created && !no_common_certs_import)
         {
           /* Import the standard certificates for a new default keybox. */
@@ -1634,7 +1641,7 @@ main ( int argc, char **argv)
         }
     }
   for (sl = nrings; sl; sl = sl->next)
-    keydb_add_resource (sl->d, 0, 0, NULL);
+    keydb_add_resource (&ctrl, sl->d, 0, NULL);
   FREE_STRLIST(nrings);
 
 
@@ -1996,7 +2003,7 @@ main ( int argc, char **argv)
           ksba_cert_t cert = NULL;
           char *grip = NULL;
 
-          rc = gpgsm_find_cert (*argv, NULL, &cert);
+          rc = gpgsm_find_cert (&ctrl, *argv, NULL, &cert);
           if (rc)
             ;
           else if (!(grip = gpgsm_get_keygrip_hexstring (cert)))
index 9751df4..76ff327 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GPGSM_H
@@ -244,6 +244,8 @@ gpg_error_t gpgsm_status (ctrl_t ctrl, int no, const char *text);
 gpg_error_t gpgsm_status2 (ctrl_t ctrl, int no, ...) GPGRT_ATTR_SENTINEL(0);
 gpg_error_t gpgsm_status_with_err_code (ctrl_t ctrl, int no, const char *text,
                                         gpg_err_code_t ec);
+gpg_error_t gpgsm_status_with_error (ctrl_t ctrl, int no, const char *text,
+                                     gpg_error_t err);
 gpg_error_t gpgsm_proxy_pinentry_notify (ctrl_t ctrl,
                                          const unsigned char *line);
 
@@ -339,7 +341,8 @@ int gpgsm_add_cert_to_certlist (ctrl_t ctrl, ksba_cert_t cert,
 int gpgsm_add_to_certlist (ctrl_t ctrl, const char *name, int secret,
                            certlist_t *listaddr, int is_encrypt_to);
 void gpgsm_release_certlist (certlist_t list);
-int gpgsm_find_cert (const char *name, ksba_sexp_t keyid, ksba_cert_t *r_cert);
+int gpgsm_find_cert (ctrl_t ctrl, const char *name, ksba_sexp_t keyid,
+                     ksba_cert_t *r_cert);
 
 /*-- keylist.c --*/
 gpg_error_t gpgsm_list_keys (ctrl_t ctrl, strlist_t names,
index b2ad839..4a8ecf7 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -199,7 +199,7 @@ check_and_store (ctrl_t ctrl, struct stats_s *stats,
     {
       int existed;
 
-      if (!keydb_store_cert (cert, 0, &existed))
+      if (!keydb_store_cert (ctrl, cert, 0, &existed))
         {
           ksba_cert_t next = NULL;
 
@@ -403,7 +403,7 @@ reimport_one (ctrl_t ctrl, struct stats_s *stats, int in_fd)
   ksba_cert_t cert = NULL;
   unsigned int flags;
 
-  kh = keydb_new (0);
+  kh = keydb_new ();
   if (!kh)
     {
       err = gpg_error (GPG_ERR_ENOMEM);;
@@ -442,7 +442,7 @@ reimport_one (ctrl_t ctrl, struct stats_s *stats, int in_fd)
         }
 
       keydb_search_reset (kh);
-      err = keydb_search (kh, &desc, 1);
+      err = keydb_search (ctrl, kh, &desc, 1);
       if (err)
         {
           print_import_problem (ctrl, NULL, 0);
@@ -476,7 +476,7 @@ reimport_one (ctrl_t ctrl, struct stats_s *stats, int in_fd)
           continue;
         }
 
-      err = keydb_set_cert_flags (cert, 1, KEYBOX_FLAG_BLOB, 0,
+      err = keydb_set_cert_flags (ctrl, cert, 1, KEYBOX_FLAG_BLOB, 0,
                                   KEYBOX_FLAG_BLOB_EPHEMERAL, 0);
       if (err)
         {
index 8a1efd4..44dd9ca 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -47,13 +47,16 @@ struct resource_item {
     KEYBOX_HANDLE kr;
   } u;
   void *token;
-  int secret;
   dotlock_t lockhandle;
 };
 
 static struct resource_item all_resources[MAX_KEYDB_RESOURCES];
 static int used_resources;
 
+/* Whether we have successfully registered any resource.  */
+static int any_registered;
+
+
 struct keydb_handle {
   int locked;
   int found;
@@ -122,7 +125,7 @@ maybe_create_keybox (char *filename, int force, int *r_created)
 
   /* A quick test whether the filename already exists. */
   if (!access (filename, F_OK))
-    return 0;
+    return !access (filename, R_OK)? 0 : gpg_error (GPG_ERR_EACCES);
 
   /* If we don't want to create a new file at all, there is no need to
      go any further - bail out right here.  */
@@ -250,9 +253,8 @@ maybe_create_keybox (char *filename, int force, int *r_created)
  * if the function has created a new keybox.
  */
 gpg_error_t
-keydb_add_resource (const char *url, int force, int secret, int *auto_created)
+keydb_add_resource (ctrl_t ctrl, const char *url, int force, int *auto_created)
 {
-  static int any_secret, any_public;
   const char *resname = url;
   char *filename = NULL;
   gpg_error_t err = 0;
@@ -293,7 +295,7 @@ keydb_add_resource (const char *url, int force, int secret, int *auto_created)
     filename = xstrdup (resname);
 
   if (!force)
-    force = secret? !any_secret : !any_public;
+    force = !any_registered;
 
   /* see whether we can determine the filetype */
   if (rt == KEYDB_RESOURCE_TYPE_NONE)
@@ -335,7 +337,7 @@ keydb_add_resource (const char *url, int force, int secret, int *auto_created)
       {
         void *token;
 
-        err = keybox_register_file (filename, secret, &token);
+        err = keybox_register_file (filename, 0, &token);
         if (gpg_err_code (err) == GPG_ERR_EEXIST)
           ; /* Already registered - ignore.  */
         else if (err)
@@ -347,7 +349,6 @@ keydb_add_resource (const char *url, int force, int secret, int *auto_created)
             all_resources[used_resources].type = rt;
             all_resources[used_resources].u.kr = NULL; /* Not used here */
             all_resources[used_resources].token = token;
-            all_resources[used_resources].secret = secret;
 
             all_resources[used_resources].lockhandle
               = dotlock_create (filename, 0);
@@ -357,7 +358,7 @@ keydb_add_resource (const char *url, int force, int secret, int *auto_created)
             /* Do a compress run if needed and the file is not locked. */
             if (!dotlock_take (all_resources[used_resources].lockhandle, 0))
               {
-                KEYBOX_HANDLE kbxhd = keybox_new_x509 (token, secret);
+                KEYBOX_HANDLE kbxhd = keybox_new_x509 (token, 0);
 
                 if (kbxhd)
                   {
@@ -382,18 +383,20 @@ keydb_add_resource (const char *url, int force, int secret, int *auto_created)
 
  leave:
   if (err)
-    log_error ("keyblock resource '%s': %s\n", filename, gpg_strerror (err));
-  else if (secret)
-    any_secret = 1;
+    {
+      log_error ("keyblock resource '%s': %s\n", filename, gpg_strerror (err));
+      gpgsm_status_with_error (ctrl, STATUS_ERROR,
+                               "add_keyblock_resource", err);
+    }
   else
-    any_public = 1;
+    any_registered = 1;
   xfree (filename);
   return err;
 }
 
 
 KEYDB_HANDLE
-keydb_new (int secret)
+keydb_new (void)
 {
   KEYDB_HANDLE hd;
   int i, j;
@@ -405,8 +408,6 @@ keydb_new (int secret)
   assert (used_resources <= MAX_KEYDB_RESOURCES);
   for (i=j=0; i < used_resources; i++)
     {
-      if (!all_resources[i].secret != !secret)
-        continue;
       switch (all_resources[i].type)
         {
         case KEYDB_RESOURCE_TYPE_NONE: /* ignore */
@@ -414,9 +415,8 @@ keydb_new (int secret)
         case KEYDB_RESOURCE_TYPE_KEYBOX:
           hd->active[j].type   = all_resources[i].type;
           hd->active[j].token  = all_resources[i].token;
-          hd->active[j].secret = all_resources[i].secret;
           hd->active[j].lockhandle = all_resources[i].lockhandle;
-          hd->active[j].u.kr = keybox_new_x509 (all_resources[i].token, secret);
+          hd->active[j].u.kr = keybox_new_x509 (all_resources[i].token, 0);
           if (!hd->active[j].u.kr)
             {
               xfree (hd);
@@ -919,8 +919,6 @@ keydb_rebuild_caches (void)
 
   for (i=0; i < used_resources; i++)
     {
-      if (all_resources[i].secret)
-        continue;
       switch (all_resources[i].type)
         {
         case KEYDB_RESOURCE_TYPE_NONE: /* ignore */
@@ -971,7 +969,8 @@ keydb_search_reset (KEYDB_HANDLE hd)
  * for a keyblock which contains one of the keys described in the DESC array.
  */
 int
-keydb_search (KEYDB_HANDLE hd, KEYDB_SEARCH_DESC *desc, size_t ndesc)
+keydb_search (ctrl_t ctrl, KEYDB_HANDLE hd,
+              KEYDB_SEARCH_DESC *desc, size_t ndesc)
 {
   int rc = -1;
   unsigned long skipped;
@@ -979,6 +978,13 @@ keydb_search (KEYDB_HANDLE hd, KEYDB_SEARCH_DESC *desc, size_t ndesc)
   if (!hd)
     return gpg_error (GPG_ERR_INV_VALUE);
 
+  if (!any_registered)
+    {
+      gpgsm_status_with_error (ctrl, STATUS_ERROR, "keydb_search",
+                               gpg_error (GPG_ERR_KEYRING_OPEN));
+      return gpg_error (GPG_ERR_NOT_FOUND);
+    }
+
   while (rc == -1 && hd->current >= 0 && hd->current < hd->used)
     {
       switch (hd->active[hd->current].type)
@@ -1005,27 +1011,27 @@ keydb_search (KEYDB_HANDLE hd, KEYDB_SEARCH_DESC *desc, size_t ndesc)
 
 
 int
-keydb_search_first (KEYDB_HANDLE hd)
+keydb_search_first (ctrl_t ctrl, KEYDB_HANDLE hd)
 {
   KEYDB_SEARCH_DESC desc;
 
   memset (&desc, 0, sizeof desc);
   desc.mode = KEYDB_SEARCH_MODE_FIRST;
-  return keydb_search (hd, &desc, 1);
+  return keydb_search (ctrl, hd, &desc, 1);
 }
 
 int
-keydb_search_next (KEYDB_HANDLE hd)
+keydb_search_next (ctrl_t ctrl, KEYDB_HANDLE hd)
 {
   KEYDB_SEARCH_DESC desc;
 
   memset (&desc, 0, sizeof desc);
   desc.mode = KEYDB_SEARCH_MODE_NEXT;
-  return keydb_search (hd, &desc, 1);
+  return keydb_search (ctrl, hd, &desc, 1);
 }
 
 int
-keydb_search_kid (KEYDB_HANDLE hd, u32 *kid)
+keydb_search_kid (ctrl_t ctrl, KEYDB_HANDLE hd, u32 *kid)
 {
   KEYDB_SEARCH_DESC desc;
 
@@ -1035,22 +1041,22 @@ keydb_search_kid (KEYDB_HANDLE hd, u32 *kid)
   desc.mode = KEYDB_SEARCH_MODE_LONG_KID;
   desc.u.kid[0] = kid[0];
   desc.u.kid[1] = kid[1];
-  return keydb_search (hd, &desc, 1);
+  return keydb_search (ctrl, hd, &desc, 1);
 }
 
 int
-keydb_search_fpr (KEYDB_HANDLE hd, const byte *fpr)
+keydb_search_fpr (ctrl_t ctrl, KEYDB_HANDLE hd, const byte *fpr)
 {
   KEYDB_SEARCH_DESC desc;
 
   memset (&desc, 0, sizeof desc);
   desc.mode = KEYDB_SEARCH_MODE_FPR;
   memcpy (desc.u.fpr, fpr, 20);
-  return keydb_search (hd, &desc, 1);
+  return keydb_search (ctrl, hd, &desc, 1);
 }
 
 int
-keydb_search_issuer (KEYDB_HANDLE hd, const char *issuer)
+keydb_search_issuer (ctrl_t ctrl, KEYDB_HANDLE hd, const char *issuer)
 {
   KEYDB_SEARCH_DESC desc;
   int rc;
@@ -1058,12 +1064,12 @@ keydb_search_issuer (KEYDB_HANDLE hd, const char *issuer)
   memset (&desc, 0, sizeof desc);
   desc.mode = KEYDB_SEARCH_MODE_ISSUER;
   desc.u.name = issuer;
-  rc = keydb_search (hd, &desc, 1);
+  rc = keydb_search (ctrl, hd, &desc, 1);
   return rc;
 }
 
 int
-keydb_search_issuer_sn (KEYDB_HANDLE hd,
+keydb_search_issuer_sn (ctrl_t ctrl, KEYDB_HANDLE hd,
                         const char *issuer, ksba_const_sexp_t serial)
 {
   KEYDB_SEARCH_DESC desc;
@@ -1082,12 +1088,12 @@ keydb_search_issuer_sn (KEYDB_HANDLE hd,
     return gpg_error (GPG_ERR_INV_VALUE);
   desc.sn = s+1;
   desc.u.name = issuer;
-  rc = keydb_search (hd, &desc, 1);
+  rc = keydb_search (ctrl, hd, &desc, 1);
   return rc;
 }
 
 int
-keydb_search_subject (KEYDB_HANDLE hd, const char *name)
+keydb_search_subject (ctrl_t ctrl, KEYDB_HANDLE hd, const char *name)
 {
   KEYDB_SEARCH_DESC desc;
   int rc;
@@ -1095,7 +1101,7 @@ keydb_search_subject (KEYDB_HANDLE hd, const char *name)
   memset (&desc, 0, sizeof desc);
   desc.mode = KEYDB_SEARCH_MODE_SUBJECT;
   desc.u.name = name;
-  rc = keydb_search (hd, &desc, 1);
+  rc = keydb_search (ctrl, hd, &desc, 1);
   return rc;
 }
 
@@ -1106,7 +1112,7 @@ keydb_search_subject (KEYDB_HANDLE hd, const char *name)
    If EXISTED is not NULL it will be set to true if the certificate
    was already in the DB. */
 int
-keydb_store_cert (ksba_cert_t cert, int ephemeral, int *existed)
+keydb_store_cert (ctrl_t ctrl, ksba_cert_t cert, int ephemeral, int *existed)
 {
   KEYDB_HANDLE kh;
   int rc;
@@ -1121,7 +1127,7 @@ keydb_store_cert (ksba_cert_t cert, int ephemeral, int *existed)
       return gpg_error (GPG_ERR_GENERAL);
     }
 
-  kh = keydb_new (0);
+  kh = keydb_new ();
   if (!kh)
     {
       log_error (_("failed to allocate keyDB handle\n"));
@@ -1136,7 +1142,7 @@ keydb_store_cert (ksba_cert_t cert, int ephemeral, int *existed)
   if (rc)
     return rc;
 
-  rc = keydb_search_fpr (kh, fpr);
+  rc = keydb_search_fpr (ctrl, kh, fpr);
   if (rc != -1)
     {
       keydb_release (kh);
@@ -1148,7 +1154,7 @@ keydb_store_cert (ksba_cert_t cert, int ephemeral, int *existed)
             {
               /* Remove ephemeral flags from existing certificate to "store"
                  it permanently. */
-              rc = keydb_set_cert_flags (cert, 1, KEYBOX_FLAG_BLOB, 0,
+              rc = keydb_set_cert_flags (ctrl, cert, 1, KEYBOX_FLAG_BLOB, 0,
                                          KEYBOX_FLAG_BLOB_EPHEMERAL, 0);
               if (rc)
                 {
@@ -1192,7 +1198,7 @@ keydb_store_cert (ksba_cert_t cert, int ephemeral, int *existed)
    transaction by locating the certificate in the DB and updating the
    flags. */
 gpg_error_t
-keydb_set_cert_flags (ksba_cert_t cert, int ephemeral,
+keydb_set_cert_flags (ctrl_t ctrl, ksba_cert_t cert, int ephemeral,
                       int which, int idx,
                       unsigned int mask, unsigned int value)
 {
@@ -1207,7 +1213,7 @@ keydb_set_cert_flags (ksba_cert_t cert, int ephemeral,
       return gpg_error (GPG_ERR_GENERAL);
     }
 
-  kh = keydb_new (0);
+  kh = keydb_new ();
   if (!kh)
     {
       log_error (_("failed to allocate keyDB handle\n"));
@@ -1225,7 +1231,7 @@ keydb_set_cert_flags (ksba_cert_t cert, int ephemeral,
       return err;
     }
 
-  err = keydb_search_fpr (kh, fpr);
+  err = keydb_search_fpr (ctrl, kh, fpr);
   if (err)
     {
       if (err == -1)
@@ -1278,7 +1284,7 @@ keydb_clear_some_cert_flags (ctrl_t ctrl, strlist_t names)
 
   (void)ctrl;
 
-  hd = keydb_new (0);
+  hd = keydb_new ();
   if (!hd)
     {
       log_error ("keydb_new failed\n");
@@ -1322,7 +1328,7 @@ keydb_clear_some_cert_flags (ctrl_t ctrl, strlist_t names)
       goto leave;
     }
 
-  while (!(rc = keydb_search (hd, desc, ndesc)))
+  while (!(rc = keydb_search (ctrl, hd, desc, ndesc)))
     {
       if (!names)
         desc[0].mode = KEYDB_SEARCH_MODE_NEXT;
index 3c0f2d6..6234625 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_KEYDB_H
@@ -31,9 +31,9 @@ typedef struct keydb_handle *KEYDB_HANDLE;
 
 
 /*-- keydb.c --*/
-gpg_error_t keydb_add_resource (const char *url, int force, int secret,
-                                int *auto_created);
-KEYDB_HANDLE keydb_new (int secret);
+gpg_error_t keydb_add_resource (ctrl_t ctrl, const char *url,
+                                int force, int *auto_created);
+KEYDB_HANDLE keydb_new (void);
 void keydb_release (KEYDB_HANDLE hd);
 int keydb_set_ephemeral (KEYDB_HANDLE hd, int yes);
 const char *keydb_get_resource_name (KEYDB_HANDLE hd);
@@ -55,18 +55,20 @@ int keydb_locate_writable (KEYDB_HANDLE hd, const char *reserved);
 void keydb_rebuild_caches (void);
 
 gpg_error_t keydb_search_reset (KEYDB_HANDLE hd);
-int keydb_search (KEYDB_HANDLE hd, KEYDB_SEARCH_DESC *desc, size_t ndesc);
-int keydb_search_first (KEYDB_HANDLE hd);
-int keydb_search_next (KEYDB_HANDLE hd);
-int keydb_search_kid (KEYDB_HANDLE hd, u32 *kid);
-int keydb_search_fpr (KEYDB_HANDLE hd, const byte *fpr);
-int keydb_search_issuer (KEYDB_HANDLE hd, const char *issuer);
-int keydb_search_issuer_sn (KEYDB_HANDLE hd,
+int keydb_search (ctrl_t ctrl, KEYDB_HANDLE hd,
+                  KEYDB_SEARCH_DESC *desc, size_t ndesc);
+int keydb_search_first (ctrl_t ctrl, KEYDB_HANDLE hd);
+int keydb_search_next (ctrl_t ctrl, KEYDB_HANDLE hd);
+int keydb_search_kid (ctrl_t ctrl, KEYDB_HANDLE hd, u32 *kid);
+int keydb_search_fpr (ctrl_t ctrl, KEYDB_HANDLE hd, const byte *fpr);
+int keydb_search_issuer (ctrl_t ctrl, KEYDB_HANDLE hd, const char *issuer);
+int keydb_search_issuer_sn (ctrl_t ctrl, KEYDB_HANDLE hd,
                             const char *issuer, const unsigned char *serial);
-int keydb_search_subject (KEYDB_HANDLE hd, const char *issuer);
+int keydb_search_subject (ctrl_t ctrl, KEYDB_HANDLE hd, const char *issuer);
 
-int keydb_store_cert (ksba_cert_t cert, int ephemeral, int *existed);
-gpg_error_t keydb_set_cert_flags (ksba_cert_t cert, int ephemeral,
+int keydb_store_cert (ctrl_t ctrl, ksba_cert_t cert, int ephemeral,
+                      int *existed);
+gpg_error_t keydb_set_cert_flags (ctrl_t ctrl, ksba_cert_t cert, int ephemeral,
                                   int which, int idx,
                                   unsigned int mask, unsigned int value);
 
index 0d975c3..88a9c4f 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -1329,7 +1329,7 @@ list_internal_keys (ctrl_t ctrl, strlist_t names, estream_t fp,
   int have_secret;
   int want_ephemeral = ctrl->with_ephemeral_keys;
 
-  hd = keydb_new (0);
+  hd = keydb_new ();
   if (!hd)
     {
       log_error ("keydb_new failed\n");
@@ -1401,7 +1401,7 @@ list_internal_keys (ctrl_t ctrl, strlist_t names, estream_t fp,
 
   /* Suppress duplicates at least when they follow each other.  */
   lastresname = NULL;
-  while (!(rc = keydb_search (hd, desc, ndesc)))
+  while (!(rc = keydb_search (ctrl, hd, desc, ndesc)))
     {
       unsigned int validity;
 
@@ -1462,8 +1462,7 @@ list_internal_keys (ctrl_t ctrl, strlist_t names, estream_t fp,
             }
         }
 
-      if (!mode
-          || ((mode & 1) && !have_secret)
+      if (!mode          || ((mode & 1) && !have_secret)
           || ((mode & 2) && have_secret)  )
         {
           if (ctrl->with_colons)
@@ -1507,7 +1506,7 @@ list_external_cb (void *cb_value, ksba_cert_t cert)
 {
   struct list_external_parm_s *parm = cb_value;
 
-  if (keydb_store_cert (cert, 1, NULL))
+  if (keydb_store_cert (parm->ctrl, cert, 1, NULL))
     log_error ("error storing certificate as ephemeral\n");
 
   if (parm->print_header)
index 0e94753..f066892 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifdef HAVE_CONFIG_H
index 7a1950f..39a8193 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef MINIP12_H
index 39897f4..40e989f 100644 (file)
--- a/sm/misc.c
+++ b/sm/misc.c
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 6ad2b0a..09eac07 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 3401a0b..c69f4d9 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef        GPGSM_PASSPHRASE_H
index bae03a4..61b071c 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index ce8085d..0fadcad 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -1099,7 +1099,7 @@ static const char hlp_getinfo[] =
   "  agent-check - Return success if the agent is running.\n"
   "  cmd_has_option CMD OPT\n"
   "              - Returns OK if the command CMD implements the option OPT.\n"
-  "  offline     - Returns OK if the conenction is in offline mode.";
+  "  offline     - Returns OK if the connection is in offline mode.";
 static gpg_error_t
 cmd_getinfo (assuan_context_t ctx, char *line)
 {
@@ -1179,7 +1179,7 @@ cmd_passwd (assuan_context_t ctx, char *line)
 
   line = skip_options (line);
 
-  err = gpgsm_find_cert (line, NULL, &cert);
+  err = gpgsm_find_cert (ctrl, line, NULL, &cert);
   if (err)
     ;
   else if (!(grip = gpgsm_get_keygrip_hexstring (cert)))
@@ -1469,6 +1469,19 @@ gpgsm_status_with_err_code (ctrl_t ctrl, int no, const char *text,
     return gpgsm_status2 (ctrl, no, buf, NULL);
 }
 
+gpg_error_t
+gpgsm_status_with_error (ctrl_t ctrl, int no, const char *text,
+                         gpg_error_t err)
+{
+  char buf[30];
+
+  snprintf (buf, sizeof buf, "%u", err);
+  if (text)
+    return gpgsm_status2 (ctrl, no, text, buf, NULL);
+  else
+    return gpgsm_status2 (ctrl, no, buf, NULL);
+}
+
 
 /* Helper to notify the client about Pinentry events.  Because that
    might disturb some older clients, this is only done when enabled
index 6cb1f86..9153d58 100644 (file)
--- a/sm/sign.c
+++ b/sm/sign.c
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -141,10 +141,10 @@ gpgsm_get_default_cert (ctrl_t ctrl, ksba_cert_t *r_cert)
   int rc;
   char *p;
 
-  hd = keydb_new (0);
+  hd = keydb_new ();
   if (!hd)
     return gpg_error (GPG_ERR_GENERAL);
-  rc = keydb_search_first (hd);
+  rc = keydb_search_first (ctrl, hd);
   if (rc)
     {
       keydb_release (hd);
@@ -180,7 +180,7 @@ gpgsm_get_default_cert (ctrl_t ctrl, ksba_cert_t *r_cert)
       ksba_cert_release (cert);
       cert = NULL;
     }
-  while (!(rc = keydb_search_next (hd)));
+  while (!(rc = keydb_search_next (ctrl, hd)));
   if (rc && rc != -1)
     log_error ("keydb_search_next failed: %s\n", gpg_strerror (rc));
 
@@ -218,11 +218,11 @@ get_default_signer (ctrl_t ctrl)
       return NULL;
     }
 
-  kh = keydb_new (0);
+  kh = keydb_new ();
   if (!kh)
     return NULL;
 
-  rc = keydb_search (kh, &desc, 1);
+  rc = keydb_search (ctrl, kh, &desc, 1);
   if (rc)
     {
       log_debug ("failed to find default certificate: rc=%d\n", rc);
@@ -331,7 +331,7 @@ gpgsm_sign (ctrl_t ctrl, certlist_t signerlist,
 
   audit_set_type (ctrl->audit, AUDIT_TYPE_SIGN);
 
-  kh = keydb_new (0);
+  kh = keydb_new ();
   if (!kh)
     {
       log_error (_("failed to allocate keyDB handle\n"));
index 73e0ab4..a046883 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -108,7 +108,7 @@ gpgsm_verify (ctrl_t ctrl, int in_fd, int data_fd, estream_t out_fp)
 
   audit_set_type (ctrl->audit, AUDIT_TYPE_VERIFY);
 
-  kh = keydb_new (0);
+  kh = keydb_new ();
   if (!kh)
     {
       log_error (_("failed to allocate keyDB handle\n"));
@@ -270,7 +270,7 @@ gpgsm_verify (ctrl_t ctrl, int in_fd, int data_fd, estream_t out_fp)
          we would avoid cluttering the DB with invalid
          certificates. */
       audit_log_cert (ctrl->audit, AUDIT_SAVE_CERT, cert,
-                      keydb_store_cert (cert, 0, NULL));
+                      keydb_store_cert (ctrl, cert, 0, NULL));
       ksba_cert_release (cert);
     }
 
@@ -417,7 +417,7 @@ gpgsm_verify (ctrl_t ctrl, int in_fd, int data_fd, estream_t out_fp)
 
       /* Find the certificate of the signer */
       keydb_search_reset (kh);
-      rc = keydb_search_issuer_sn (kh, issuer, serial);
+      rc = keydb_search_issuer_sn (ctrl, kh, issuer, serial);
       if (rc)
         {
           if (rc == -1)
index f349763..2fbdc7f 100644 (file)
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 ## Process this file with automake to produce Makefile.in
 
-
-if RUN_GPG_TESTS
-openpgp = openpgp
-else
-openpgp =
-endif
-
-SUBDIRS = gpgscm ${openpgp} . migrations pkits
+SUBDIRS = gpgscm openpgp migrations pkits .
 
 GPGSM = ../sm/gpgsm
 
@@ -41,6 +34,11 @@ EXTRA_DIST = runtest inittests $(testscripts) ChangeLog-2011 \
             text-1.txt text-2.txt text-3.txt \
             text-1.osig.pem text-1.dsig.pem text-1.osig-bad.pem \
             text-2.osig.pem text-2.osig-bad.pem \
+             fake-pinentries/README.txt        \
+             fake-pinentries/fake-pinentry.php \
+             fake-pinentries/fake-pinentry.pl  \
+             fake-pinentries/fake-pinentry.py  \
+             fake-pinentries/fake-pinentry.sh  \
             samplekeys/steed-self-signing-nonthority.pem \
             samplekeys/68A638998DFABAC510EA645CE34F9686B2EDF7EA.key \
              samplekeys/32100C27173EF6E9C4E9A25D3D69F86D37A4F939.key \
@@ -49,7 +47,7 @@ EXTRA_DIST = runtest inittests $(testscripts) ChangeLog-2011 \
              samplekeys/cert_g10code_theo1.pem
 
 # We used to run $(testscripts) here but these asschk scripts are not
-# completely reliable in all enviroments and thus we better disable
+# completely reliable in all environments and thus we better disable
 # them.  The tests are anyway way too minimal.  We will eventually
 # write new tests based on gpg-connect-agent which has a full fledged
 # script language and thus makes it far easier to write tests than to
@@ -61,7 +59,9 @@ CLEANFILES = inittests.stamp x y y z out err \
 
 DISTCLEANFILES = pubring.kbx~ random_seed
 
+if !HAVE_W32_SYSTEM
 noinst_PROGRAMS = asschk
+endif
 
 asschk_SOURCES = asschk.c
 
index a869841..2595c0a 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /* This is a simple stand-alone Assuan server test program.  We don't
diff --git a/tests/fake-pinentries/README.txt b/tests/fake-pinentries/README.txt
new file mode 100644 (file)
index 0000000..9272ae5
--- /dev/null
@@ -0,0 +1,38 @@
+Fake Pinentries for Test Suites
+===============================
+
+If you're writing a test suite, it should use one of these pinentries
+by setting the following line in $GNUPGHOME/gpg-agent.conf:
+
+    pinentry-program /path/to/fake-pinentry.ext
+
+Note that different fake-pinentry programs have been supplied here in
+different languages, with the intent of making them available to
+developers who have different languages available.
+
+They are all licensed Creative Commons Zero (CC0-1.0-Universal, see
+the COPYING.CC0 file in GnuPG's top directory), so they should be
+reusable by any project.  Feel free to copy them into your own
+project's test suite.
+
+Rationale
+---------
+
+If you're implementing software that uses GnuPG, you probably want a
+test suite that exercises your code, and you may have some that
+involve secret key material locked with a passphrase.  However, you
+don't want to require your developers to manually enter a passphrase
+while tests are run, and you probably also don't want to deal with
+alternate codepaths/workflows like using gpg's loopback pinentry.
+
+The solution for this is to use a fake pinentry in your test suite,
+one that simply returns a pre-selected passphrase.  In this case, all
+the other code follows the same path as normal, but the user
+interaction is bypassed because the fake-pinentry is used instead.
+
+Troubleshooting
+---------------
+
+If you have any trouble with this technique, please drop a line to the
+GnuPG development mailing list <gnupg-devel@gnupg.org> or open a
+report on the GnuPG bug tracker at https://bugs.gnupg.org/gnupg
diff --git a/tests/fake-pinentries/fake-pinentry.php b/tests/fake-pinentries/fake-pinentry.php
new file mode 100755 (executable)
index 0000000..bc4088f
--- /dev/null
@@ -0,0 +1,27 @@
+#!/usr/bin/php
+<?php
+# Use this for your test suites when a PHP interpreter is available.
+#
+# The encrypted keys in your test suite that you expect to work must
+# be locked with a passphrase of "passphrase"
+#
+# Author: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
+#
+# License: Creative Commons Zero ("Public Domain Dedication") --
+# Anyone may reuse it, modify it, redistribute it for any purpose.
+
+print("OK This is only for test suites, and should never be used in production\n");
+while (true) {
+    $line = fgets(STDIN);
+    if (False === $line)
+        break;
+    $line = strtolower(trim($line));
+    if (($line === "") || ($line[0] == '#'))
+        continue;
+    if ((0 === strncmp("getpin", $line, 6)))
+        print("D passphrase\n");
+    print("OK\n");
+    if ((0 === strncmp("bye", $line, 3)))
+        break;
+}
+?>
diff --git a/tests/fake-pinentries/fake-pinentry.pl b/tests/fake-pinentries/fake-pinentry.pl
new file mode 100755 (executable)
index 0000000..8cb337d
--- /dev/null
@@ -0,0 +1,27 @@
+#!/usr/bin/perl -w
+# Use this for your test suites when a perl interpreter is available.
+#
+# The encrypted keys in your test suite that you expect to work must
+# be locked with a passphrase of "passphrase"
+#
+# Author: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
+#
+# License: Creative Commons Zero ("Public Domain Dedication") --
+# Anyone may reuse it, modify it, redistribute it for any purpose.
+
+use strict;
+use warnings;
+
+# turn off buffering
+$| = 1;
+
+print "OK This is only for test suites, and should never be used in production\n";
+while (<STDIN>) {
+  chomp;
+  next if (/^$/);
+  next if (/^#/);
+  print ("D passphrase\n") if (/^getpin/i);
+  print "OK\n";
+  exit if (/^bye/i);
+}
+1;
diff --git a/tests/fake-pinentries/fake-pinentry.py b/tests/fake-pinentries/fake-pinentry.py
new file mode 100755 (executable)
index 0000000..78735c9
--- /dev/null
@@ -0,0 +1,30 @@
+#!/usr/bin/env python
+# Use this for your test suites when a python interpreter is available.
+#
+# The encrypted keys in your test suite that you expect to work must
+# be locked with a passphrase of "passphrase"
+#
+# Author: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
+#
+# License: Creative Commons Zero ("Public Domain Dedication") --
+# Anyone may reuse it, modify it, redistribute it for any purpose.
+
+import sys, os
+
+# turn off buffering:
+sys.stdin = os.fdopen(sys.stdin.fileno(), 'r', 0)
+sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
+
+print("OK This is only for test suites, and should never be used in production")
+while True:
+    ln = sys.stdin.readline()
+    if (ln == ''):
+        break
+    ln = ln.lower()
+    if (ln.strip() == '') or (ln.startswith('#')):
+        continue
+    if (ln.startswith('getpin')):
+        sys.stdout.write('D passphrase\n')
+    sys.stdout.write('OK\n')
+    if (ln.startswith('bye')):
+        break
diff --git a/tests/fake-pinentries/fake-pinentry.sh b/tests/fake-pinentries/fake-pinentry.sh
new file mode 100755 (executable)
index 0000000..44aca21
--- /dev/null
@@ -0,0 +1,33 @@
+#!/bin/sh
+# Use this for your test suites when a POSIX shell is available.
+#
+# The encrypted keys in your test suite that you expect to work must
+# be locked with a passphrase of "passphrase"
+#
+# Author: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
+#
+# License: Creative Commons Zero ("Public Domain Dedication") --
+# Anyone may reuse it, modify it, redistribute it for any purpose.
+
+echo "OK This is only for test suites, and should never be used in production"
+while read cmd rest; do
+    cmd=$(printf "%s" "$cmd" | tr 'A-Z' 'a-z')
+    if [ -z "$cmd" ]; then
+        continue;
+    fi
+    case "$cmd" in
+        \#*)
+        ;;
+        getpin)
+            echo "D passphrase"
+            echo "OK"
+            ;;
+        bye)
+            echo "OK"
+            exit 0
+            ;;
+        *)
+            echo "OK"
+            ;;
+    esac
+done
index dad30ed..9a5edc2 100644 (file)
@@ -15,7 +15,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 EXTRA_DIST = \
        LICENSE.TinySCHEME \
index 9fd294f..b146926 100644 (file)
@@ -86,7 +86,7 @@ Please read accompanying file COPYING.
 
           Directives
      (gc)
-     Performs garbage collection immediatelly.
+     Performs garbage collection immediately.
 
      (gc-verbose) (gc-verbose <bool>)
      The argument (defaulting to #t) controls whether GC produces
index 0d58c41..037da56 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GPGSCM_FFI_PRIVATE_H
index 57de286..c91d4aa 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -25,7 +25,6 @@
 #include <dirent.h>
 #include <errno.h>
 #include <fcntl.h>
-#include <glob.h>
 #include <gpg-error.h>
 #include <stdarg.h>
 #include <stdlib.h>
@@ -36,6 +35,7 @@
 #include <unistd.h>
 
 #if HAVE_LIBREADLINE
+#define GNUPG_LIBREADLINE_H_INCLUDED
 #include <readline/readline.h>
 #include <readline/history.h>
 #endif
 #include "ffi.h"
 #include "ffi-private.h"
 
+/* For use in nice error messages.  */
+static const char *
+ordinal_suffix (int n)
+{
+  switch (n)
+    {
+    case 1: return "st";
+    case 2: return "nd";
+    case 3: return "rd";
+    default: return "th";
+    }
+  assert (! "reached");
+}
+
 \f
 
 int
@@ -237,7 +251,9 @@ do_setenv (scheme *sc, pointer args)
   FFI_ARG_OR_RETURN (sc, char *, value, string, args);
   FFI_ARG_OR_RETURN (sc, int, overwrite, bool, args);
   FFI_ARGS_DONE_OR_RETURN (sc, args);
-  FFI_RETURN_ERR (sc, gnupg_setenv (name, value, overwrite));
+  if (gnupg_setenv (name, value, overwrite))
+    FFI_RETURN_ERR (sc, gpg_error_from_syserror ());
+  FFI_RETURN (sc);
 }
 
 static pointer
@@ -310,6 +326,21 @@ do_close (scheme *sc, pointer args)
 }
 
 static pointer
+do_seek (scheme *sc, pointer args)
+{
+  FFI_PROLOG ();
+  int fd;
+  off_t offset;
+  int whence;
+  FFI_ARG_OR_RETURN (sc, int, fd, number, args);
+  FFI_ARG_OR_RETURN (sc, off_t, offset, number, args);
+  FFI_ARG_OR_RETURN (sc, int, whence, number, args);
+  FFI_ARGS_DONE_OR_RETURN (sc, args);
+  FFI_RETURN_ERR (sc, lseek (fd, offset, whence) == (off_t) -1
+                  ? gpg_error_from_syserror () : 0);
+}
+
+static pointer
 do_mkdtemp (scheme *sc, pointer args)
 {
   FFI_PROLOG ();
@@ -460,6 +491,83 @@ do_rmdir (scheme *sc, pointer args)
   FFI_RETURN (sc);
 }
 
+static pointer
+do_get_isotime (scheme *sc, pointer args)
+{
+  FFI_PROLOG ();
+  gnupg_isotime_t timebuf;
+  FFI_ARGS_DONE_OR_RETURN (sc, args);
+  gnupg_get_isotime (timebuf);
+  FFI_RETURN_STRING (sc, timebuf);
+}
+
+static pointer
+do_getpid (scheme *sc, pointer args)
+{
+  FFI_PROLOG ();
+  FFI_ARGS_DONE_OR_RETURN (sc, args);
+  FFI_RETURN_INT (sc, getpid ());
+}
+
+static pointer
+do_srandom (scheme *sc, pointer args)
+{
+  FFI_PROLOG ();
+  int seed;
+  FFI_ARG_OR_RETURN (sc, int, seed, number, args);
+  FFI_ARGS_DONE_OR_RETURN (sc, args);
+  srand (seed);
+  FFI_RETURN (sc);
+}
+
+static int
+random_scaled (int scale)
+{
+  int v;
+#ifdef HAVE_RAND
+  v = rand ();
+#else
+  v = random ();
+#endif
+
+#ifndef RAND_MAX   /* for SunOS */
+#define RAND_MAX 32767
+#endif
+
+  return ((int) (1 + (int) ((float) scale * v / (RAND_MAX + 1.0))) - 1);
+}
+
+static pointer
+do_random (scheme *sc, pointer args)
+{
+  FFI_PROLOG ();
+  int scale;
+  FFI_ARG_OR_RETURN (sc, int, scale, number, args);
+  FFI_ARGS_DONE_OR_RETURN (sc, args);
+  FFI_RETURN_INT (sc, random_scaled (scale));
+}
+
+static pointer
+do_make_random_string (scheme *sc, pointer args)
+{
+  FFI_PROLOG ();
+  int size;
+  pointer chunk;
+  char *p;
+  FFI_ARG_OR_RETURN (sc, int, size, number, args);
+  FFI_ARGS_DONE_OR_RETURN (sc, args);
+  if (size < 0)
+    return ffi_sprintf (sc, "size must be positive");
+
+  chunk = sc->vptr->mk_counted_string (sc, NULL, size);
+  if (sc->no_memory)
+    FFI_RETURN_ERR (sc, ENOMEM);
+
+  for (p = sc->vptr->string_value (chunk); size; p++, size--)
+    *p = (char) random_scaled (256);
+  FFI_RETURN_POINTER (sc, chunk);
+}
+
 \f
 
 /* estream functions.  */
@@ -644,7 +752,7 @@ do_spawn_process (scheme *sc, pointer args)
     }
 
   err = gnupg_spawn_process (argv[0], (const char **) &argv[1],
-                             GPG_ERR_SOURCE_DEFAULT,
+                             NULL,
                              NULL,
                              flags,
                              &infp, &outfp, &errfp, &pid);
@@ -748,17 +856,19 @@ do_wait_processes (scheme *sc, pointer args)
 
   err = ffi_list2argv (sc, list_names, &names, &count);
   if (err == gpg_error (GPG_ERR_INV_VALUE))
-    return ffi_sprintf (sc, "%luth element of first argument is "
+    return ffi_sprintf (sc, "%lu%s element of first argument is "
                         "neither string nor symbol",
-                        (unsigned long) count);
+                        (unsigned long) count,
+                        ordinal_suffix ((int) count));
   if (err)
     FFI_RETURN_ERR (sc, err);
 
   err = ffi_list2intv (sc, list_pids, (int **) &pids, &count);
   if (err == gpg_error (GPG_ERR_INV_VALUE))
-    return ffi_sprintf (sc, "%luth element of second argument is "
-                        "neither string nor symbol",
-                        (unsigned long) count);
+    return ffi_sprintf (sc, "%lu%s element of second argument is "
+                        "not a number",
+                        (unsigned long) count,
+                        ordinal_suffix ((int) count));
   if (err)
     FFI_RETURN_ERR (sc, err);
 
@@ -921,30 +1031,42 @@ do_splice (scheme *sc, pointer args)
 {
   FFI_PROLOG ();
   int source;
-  int sink;
-  ssize_t len = -1;
   char buffer[1024];
   ssize_t bytes_read;
+  pointer sinks, sink;
   FFI_ARG_OR_RETURN (sc, int, source, number, args);
-  FFI_ARG_OR_RETURN (sc, int, sink, number, args);
-  if (args != sc->NIL)
-    FFI_ARG_OR_RETURN (sc, ssize_t, len, number, args);
-  FFI_ARGS_DONE_OR_RETURN (sc, args);
-  while (len == -1 || len > 0)
+  sinks = args;
+  if (sinks == sc->NIL)
+    return ffi_sprintf (sc, "need at least one sink");
+  for (sink = sinks; sink != sc->NIL; sink = pair_cdr (sink), ffi_arg_index++)
+    if (! sc->vptr->is_number (pair_car (sink)))
+      return ffi_sprintf (sc, "%d%s argument is not a number",
+                          ffi_arg_index, ordinal_suffix (ffi_arg_index));
+
+  while (1)
     {
-      size_t want = sizeof buffer;
-      if (len > 0 && (ssize_t) want > len)
-        want = (size_t) len;
-
-      bytes_read = read (source, buffer, want);
+      bytes_read = read (source, buffer, sizeof buffer);
       if (bytes_read == 0)
         break;
       if (bytes_read < 0)
         FFI_RETURN_ERR (sc, gpg_error_from_syserror ());
-      if (write (sink, buffer, bytes_read) != bytes_read)
-        FFI_RETURN_ERR (sc, gpg_error_from_syserror ());
-      if (len != -1)
-        len -= bytes_read;
+
+      for (sink = sinks; sink != sc->NIL; sink = pair_cdr (sink))
+        {
+          int fd = sc->vptr->ivalue (pair_car (sink));
+          char *p = buffer;
+          ssize_t left = bytes_read;
+
+          while (left)
+            {
+              ssize_t written = write (fd, p, left);
+              if (written < 0)
+                FFI_RETURN_ERR (sc, gpg_error_from_syserror ());
+              assert (written <= left);
+              left -= written;
+              p += written;
+            }
+        }
     }
   FFI_RETURN (sc);
 }
@@ -1015,42 +1137,6 @@ do_string_contains (scheme *sc, pointer args)
   FFI_RETURN_POINTER (sc, strstr (haystack, needle) ? sc->T : sc->F);
 }
 
-static pointer
-do_glob (scheme *sc, pointer args)
-{
-  FFI_PROLOG ();
-  pointer result = sc->NIL;
-  size_t i;
-  char *pattern;
-  glob_t pglob;
-  FFI_ARG_OR_RETURN (sc, char *, pattern, string, args);
-  FFI_ARGS_DONE_OR_RETURN (sc, args);
-
-  switch (glob (pattern, 0, NULL, &pglob))
-    {
-    case 0:
-      for (i = 0; i < pglob.gl_pathc; i++)
-        result =
-          (sc->vptr->cons) (sc,
-                            sc->vptr->mk_string (sc, pglob.gl_pathv[i]),
-                            result);
-      globfree (&pglob);
-      break;
-
-    case GLOB_NOMATCH:
-      /* Return the empty list.  */
-      break;
-
-    case GLOB_NOSPACE:
-      return ffi_sprintf (sc, "out of memory");
-    case GLOB_ABORTED:
-      return ffi_sprintf (sc, "read error");
-    default:
-      assert (! "not reached");
-    }
-  FFI_RETURN_POINTER (sc, result);
-}
-
 \f
 
 static pointer
@@ -1209,7 +1295,8 @@ ffi_scheme_eval (scheme *sc, const char *format, ...)
 }
 
 gpg_error_t
-ffi_init (scheme *sc, const char *argv0, int argc, const char **argv)
+ffi_init (scheme *sc, const char *argv0, const char *scriptname,
+          int argc, const char **argv)
 {
   int i;
   pointer args = sc->NIL;
@@ -1237,6 +1324,9 @@ ffi_init (scheme *sc, const char *argv0, int argc, const char **argv)
   ffi_define_constant (sc, STDIN_FILENO);
   ffi_define_constant (sc, STDOUT_FILENO);
   ffi_define_constant (sc, STDERR_FILENO);
+  ffi_define_constant (sc, SEEK_SET);
+  ffi_define_constant (sc, SEEK_CUR);
+  ffi_define_constant (sc, SEEK_END);
 
   ffi_define_function (sc, sleep);
   ffi_define_function (sc, usleep);
@@ -1244,10 +1334,11 @@ ffi_init (scheme *sc, const char *argv0, int argc, const char **argv)
   ffi_define_function (sc, strerror);
   ffi_define_function (sc, getenv);
   ffi_define_function (sc, setenv);
-  ffi_define_function (sc, exit);
+  ffi_define_function_name (sc, "_exit", exit);
   ffi_define_function (sc, open);
   ffi_define_function (sc, fdopen);
   ffi_define_function (sc, close);
+  ffi_define_function (sc, seek);
   ffi_define_function_name (sc, "_mkdtemp", mkdtemp);
   ffi_define_function (sc, unlink);
   ffi_define_function (sc, unlink_recursively);
@@ -1255,6 +1346,13 @@ ffi_init (scheme *sc, const char *argv0, int argc, const char **argv)
   ffi_define_function (sc, getcwd);
   ffi_define_function (sc, mkdir);
   ffi_define_function (sc, rmdir);
+  ffi_define_function (sc, get_isotime);
+  ffi_define_function (sc, getpid);
+
+  /* Random numbers.  */
+  ffi_define_function (sc, srandom);
+  ffi_define_function (sc, random);
+  ffi_define_function (sc, make_random_string);
 
   /* Process management.  */
   ffi_define_function (sc, spawn_process);
@@ -1277,7 +1375,6 @@ ffi_init (scheme *sc, const char *argv0, int argc, const char **argv)
   ffi_define_function (sc, string_index);
   ffi_define_function (sc, string_rindex);
   ffi_define_function_name (sc, "string-contains?", string_contains);
-  ffi_define_function (sc, glob);
 
   /* User interface.  */
   ffi_define_function (sc, flush_stdio);
@@ -1288,6 +1385,7 @@ ffi_init (scheme *sc, const char *argv0, int argc, const char **argv)
   ffi_define_function_name (sc, "*set-verbose!*", set_verbose);
 
   ffi_define (sc, "*argv0*", sc->vptr->mk_string (sc, argv0));
+  ffi_define (sc, "*scriptname*", sc->vptr->mk_string (sc, scriptname));
   for (i = argc - 1; i >= 0; i--)
     {
       pointer value = sc->vptr->mk_string (sc, argv[i]);
@@ -1301,6 +1399,15 @@ ffi_init (scheme *sc, const char *argv0, int argc, const char **argv)
   ffi_define (sc, "*pathsep*", sc->vptr->mk_character (sc, ':'));
 #endif
 
+  ffi_define (sc, "*win32*",
+#if _WIN32
+              sc->T
+#else
+              sc->F
+#endif
+              );
+
+
   ffi_define (sc, "*stdin*",
               sc->vptr->mk_port_from_file (sc, stdin, port_input));
   ffi_define (sc, "*stdout*",
index 02dd99d..eba6282 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GPGSCM_FFI_H
@@ -24,7 +24,7 @@
 #include <gpg-error.h>
 #include "scheme.h"
 
-gpg_error_t ffi_init (scheme *sc, const char *argv0,
+gpg_error_t ffi_init (scheme *sc, const char *argv0, const char *scriptname,
                      int argc, const char **argv);
 
 #endif /* GPGSCM_FFI_H */
index 7c2f93a..fb18538 100644 (file)
 ;; Pseudo-definitions for foreign functions.  Evaluates to no code,
 ;; but serves as documentation.
 (macro (ffi-define form))
+
+;; Runtime support.
+
+;; Low-level mechanism to terminate the process.
+(ffi-define (_exit status))
+
+;; High-level mechanism to terminate the process is to throw an error
+;; of the form (*interpreter-exit* status).  This gives automatic
+;; resource management a chance to clean up.
+(define *interpreter-exit* (gensym))
+(define (throw . x)
+  (cond
+   ((more-handlers?)
+    (apply (pop-handler) x))
+   ((and (= 2 (length x)) (equal? *interpreter-exit* (car x)))
+    (*run-atexit-handlers*)
+    (_exit (cadr x)))
+   (else
+    (apply error x))))
+
+;; Terminate the process returning STATUS to the parent.
+(define (exit status)
+  (throw *interpreter-exit* status))
+
+;; A list of functions run at interpreter shutdown.
+(define *atexit-handlers* (list))
+
+;; Execute all these functions.
+(define (*run-atexit-handlers*)
+  (unless (null? *atexit-handlers*)
+         (let ((proc (car *atexit-handlers*)))
+           ;; Drop proc from the list so that it will not get
+           ;; executed again even if it raises an exception.
+           (set! *atexit-handlers* (cdr *atexit-handlers*))
+           (proc)
+           (*run-atexit-handlers*))))
+
+;; Register a function to be run at interpreter shutdown.
+(define (atexit proc)
+  (set! *atexit-handlers* (cons proc *atexit-handlers*)))
index b32172b..f8fd71a 100644 (file)
 ;
 ;    "Catch" establishes a scope spanning multiple call-frames until
 ;    another "catch" is encountered.  Within the recovery expression
-;    the thrown exception is bound to *error*.
+;    the thrown exception is bound to *error*.  Errors can be rethrown
+;    using (apply throw *error*).
 ;
 ;    Exceptions are thrown with:
 ;
 ;         (throw "message")
 ;
-;    If used outside a (catch ...), reverts to (error "message)
+;    If used outside a (catch ...), reverts to (error "message")
 
 (define *handlers* (list))
 
 (macro (catch form)
      (let ((label (gensym)))
           `(call/cc (lambda (**exit**)
-               (push-handler (lambda (*error*) (**exit** ,(cadr form))))
+               (push-handler (lambda *error* (**exit** ,(cadr form))))
                (let ((,label (begin ,@(cddr form))))
                     (pop-handler)
                     ,label)))))
 
-(define (*error-hook* . args)
-  (throw args))
+(define *error-hook* throw)
 
 
 ;;;;; Definition of MAKE-ENVIRONMENT, to be used with two-argument EVAL
index fe28262..4e19eae 100644 (file)
         ((not (p (car l))) #f)
         (else (all p (cdr l)))))
 
+;; Return the first element of a list.
+(define first car)
+
+;; Return the last element of a list.
+(define (last lst)
+  (if (null? (cdr lst))
+      (car lst)
+      (last (cdr lst))))
+
+;; Compute the powerset of a list.
+(define (powerset set)
+  (if (null? set)
+      '(())
+      (let ((rst (powerset (cdr set))))
+        (append (map (lambda (x) (cons (car set) x))
+                     rst)
+                rst))))
+
 ;; Is PREFIX a prefix of S?
 (define (string-prefix? s prefix)
   (and (>= (string-length s) (string-length prefix))
 (assert (string=? "bar" (cadr (string-split "foo:bar:baz" #\:))))
 (assert (string=? "baz" (caddr (string-split "foo:bar:baz" #\:))))
 
+;; Split haystack at newlines.
+(define (string-split-newlines haystack)
+  (if *win32*
+      (map (lambda (line) (if (string-suffix? line "\r")
+                             (substring line 0 (- (string-length line) 1))
+                             line))
+          (string-split haystack #\newline))
+      (string-split haystack #\newline)))
+
 ;; Trim the prefix of S containing only characters that make PREDICATE
 ;; true.
 (define (string-ltrim predicate s)
        (else
        (write-char (apply read-char p) acc)
        (loop acc))))))
+
+;;
+;; Windows support.
+;;
+
+;; Like call-with-input-file but opens the file in 'binary' mode.
+(define (call-with-binary-input-file filename proc)
+  (letfd ((fd (open filename (logior O_RDONLY O_BINARY))))
+        (proc (fdopen fd "rb"))))
+
+;; Like call-with-output-file but opens the file in 'binary' mode.
+(define (call-with-binary-output-file filename proc)
+  (letfd ((fd (open filename (logior O_WRONLY O_CREAT O_BINARY) #o600)))
+        (proc (fdopen fd "wb"))))
+
+;;
+;; Libc functions.
+;;
+
+;; Change the read/write offset.
+(ffi-define (seek fd offset whence))
+
+;; Constants for WHENCE.
+(ffi-define SEEK_SET)
+(ffi-define SEEK_CUR)
+(ffi-define SEEK_END)
+
+;; Get our process id.
+(ffi-define (getpid))
+
+;; Copy data from file descriptor SOURCE to every file descriptor in
+;; SINKS.
+(ffi-define (splice source . sinks))
+
+;;
+;; Random numbers.
+;;
+
+;; Seed the random number generator.
+(ffi-define (srandom seed))
+
+;; Get a pseudo-random number between 0 (inclusive) and SCALE
+;; (exclusive).
+(ffi-define (random scale))
+
+;; Create a string of the given SIZE containing pseudo-random data.
+(ffi-define (make-random-string size))
index 34ebb9f..2f77ac5 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -32,6 +32,7 @@
 
 #include "private.h"
 #include "scheme.h"
+#include "scheme-private.h"
 #include "ffi.h"
 #include "i18n.h"
 #include "../../common/argparse.h"
@@ -176,6 +177,13 @@ load (scheme *sc, char *file_name,
   scheme_load_named_file (sc, h, qualified_name);
   fclose (h);
 
+  if (sc->retcode)
+    {
+      if (sc->nesting)
+        fprintf (stderr, "%s: Unbalanced parenthesis\n", qualified_name);
+      return gpg_error (GPG_ERR_GENERAL);
+    }
+
   if (file_name != qualified_name)
     free (qualified_name);
   return 0;
@@ -222,7 +230,7 @@ main (int argc, char **argv)
   i18n_init ();
   init_common_subsystems (&argc, &argv);
 
-  if (!gcry_check_version (GCRYPT_VERSION))
+  if (!gcry_check_version (NEED_LIBGCRYPT_VERSION))
     {
       fputs ("libgcrypt version mismatch\n", stderr);
       exit (2);
@@ -255,7 +263,8 @@ main (int argc, char **argv)
   if (! err)
     err = load (sc, "ffi.scm", 0, 1);
   if (! err)
-    err = ffi_init (sc, argv0, argc, (const char **) argv);
+    err = ffi_init (sc, argv0, script ? script : "interactive",
+                    argc, (const char **) argv);
   if (! err)
     err = load (sc, "lib.scm", 0, 1);
   if (! err)
@@ -282,6 +291,7 @@ main (int argc, char **argv)
         log_fatal ("%s: %s", script, gpg_strerror (err));
     }
 
+  scheme_load_string (sc, "(*run-atexit-handlers*)");
   scheme_deinit (sc);
   xfree (sc);
   return EXIT_SUCCESS;
index efa0cb0..6e330e0 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef __GPGSCM_PRIVATE_H__
index 896554f..78b8151 100644 (file)
 ;; Interactive repl using 'prompt' function.  P must be a function
 ;; that given the current entered prefix returns the prompt to
 ;; display.
-(define (repl p)
-  (let ((repl-environment (make-environment)))
-    (call/cc
-     (lambda (exit)
-       (let loop ((prefix ""))
-        (let ((line (prompt (p prefix))))
-          (if (and (not (eof-object? line)) (= 0 (string-length line)))
-              (exit (loop prefix)))
-          (if (not (eof-object? line))
-              (let* ((next (string-append prefix line))
-                     (c (catch (begin (echo "Parse error:" *error*)
-                                      (loop prefix))
-                               (read (open-input-string next)))))
-                (if (not (eof-object? c))
-                    (begin
-                      (catch (echo "Error:" *error*)
-                             (echo "    ===>" (eval c repl-environment)))
-                      (exit (loop ""))))
-                (exit (loop next))))))))))
+(define (repl p environment)
+  (call/cc
+   (lambda (exit)
+     (let loop ((prefix ""))
+       (let ((line (prompt (p prefix))))
+        (if (and (not (eof-object? line)) (= 0 (string-length line)))
+            (exit (loop prefix)))
+        (if (not (eof-object? line))
+            (let* ((next (string-append prefix line))
+                   (c (catch (begin (echo "Parse error:" *error*)
+                                    (loop prefix))
+                             (read (open-input-string next)))))
+              (if (not (eof-object? c))
+                  (begin
+                    (catch (echo "Error:" *error*)
+                           (echo "    ===>" (eval c environment)))
+                    (exit (loop ""))))
+              (exit (loop next)))))))))
 
 (define (prompt-append-prefix prompt prefix)
   (string-append prompt (if (> (string-length prefix) 0)
@@ -46,5 +45,6 @@
                            "> ")))
 
 ;; Default repl run by main.c.
-(define (interactive-repl)
-  (repl (lambda (p) (prompt-append-prefix "gpgscm " p))))
+(define (interactive-repl . environment)
+  (repl (lambda (p) (prompt-append-prefix "gpgscm " p))
+       (if (null? environment) (interaction-environment) (car environment))))
index fe3d746..2003498 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #define STANDALONE             0
index 9eafe76..aa78894 100644 (file)
@@ -78,7 +78,7 @@ int tracing;
 #ifndef CELL_NSEGMENT
 #define CELL_NSEGMENT   10    /* # of segments for cells */
 #endif
-char *alloc_seg[CELL_NSEGMENT];
+void *alloc_seg[CELL_NSEGMENT];
 pointer cell_seg[CELL_NSEGMENT];
 int     last_cell_seg;
 
@@ -115,10 +115,17 @@ pointer FEED_TO;         /* => */
 pointer COLON_HOOK;      /* *colon-hook* */
 pointer ERROR_HOOK;      /* *error-hook* */
 pointer SHARP_HOOK;  /* *sharp-hook* */
+#if USE_COMPILE_HOOK
 pointer COMPILE_HOOK;  /* *compile-hook* */
+#endif
 
 pointer free_cell;       /* pointer to top of free cells */
 long    fcells;          /* # of free cells */
+size_t  inhibit_gc;      /* nesting of gc_disable */
+size_t  reserved_cells;  /* # of reserved cells */
+#ifndef NDEBUG
+int     reserved_lineno;   /* location of last reservation */
+#endif
 
 pointer inport;
 pointer outport;
@@ -155,8 +162,6 @@ void *ext_data;     /* For the benefit of foreign functions */
 long gensym_cnt;
 
 struct scheme_interface *vptr;
-void *dump_base;    /* pointer to base of allocated dump stack */
-int dump_size;      /* number of frames allocated for dump stack */
 };
 
 /* operator code */
index 987f5af..ee8992e 100644 (file)
@@ -144,7 +144,7 @@ type_to_string (enum scheme_types typ)
      case T_PROC: return "proc";
      case T_PAIR: return "pair";
      case T_CLOSURE: return "closure";
-     case T_CONTINUATION: return "configuration";
+     case T_CONTINUATION: return "continuation";
      case T_FOREIGN: return "foreign";
      case T_CHARACTER: return "character";
      case T_PORT: return "port";
@@ -165,6 +165,7 @@ type_to_string (enum scheme_types typ)
 #define ADJ 32
 #define TYPE_BITS 5
 #define T_MASKTYPE      31    /* 0000000000011111 */
+#define T_FINALIZE    2048    /* 0000100000000000 */
 #define T_SYNTAX      4096    /* 0001000000000000 */
 #define T_IMMUTABLE   8192    /* 0010000000000000 */
 #define T_ATOM       16384    /* 0100000000000000 */   /* only for gc */
@@ -602,7 +603,7 @@ static int alloc_cellseg(scheme *sc, int n) {
      pointer newp;
      pointer last;
      pointer p;
-     char *cp;
+     void *cp;
      long i;
      int k;
      int adj=ADJ;
@@ -614,14 +615,14 @@ static int alloc_cellseg(scheme *sc, int n) {
      for (k = 0; k < n; k++) {
          if (sc->last_cell_seg >= CELL_NSEGMENT - 1)
               return k;
-         cp = (char*) sc->malloc(CELL_SEGSIZE * sizeof(struct cell)+adj);
+         cp = sc->malloc(CELL_SEGSIZE * sizeof(struct cell)+adj);
          if (cp == 0)
               return k;
          i = ++sc->last_cell_seg ;
          sc->alloc_seg[i] = cp;
          /* adjust in TYPE_BITS-bit boundary */
          if(((unsigned long)cp)%adj!=0) {
-           cp=(char*)(adj*((unsigned long)cp/adj+1));
+           cp=(void *)(adj*((unsigned long)cp/adj+1));
          }
          /* insert new segment in address order */
          newp=(pointer)cp;
@@ -653,13 +654,120 @@ static int alloc_cellseg(scheme *sc, int n) {
      return n;
 }
 
+\f
+
+/* Controlling the garbage collector.
+ *
+ * Every time a cell is allocated, the interpreter may run out of free
+ * cells and do a garbage collection.  This is problematic because it
+ * might garbage collect objects that have been allocated, but are not
+ * yet made available to the interpreter.
+ *
+ * Previously, we would plug such newly allocated cells into the list
+ * of newly allocated objects rooted at car(sc->sink), but that
+ * requires allocating yet another cell increasing pressure on the
+ * memory management system.
+ *
+ * A faster alternative is to preallocate the cells needed for an
+ * operation and make sure the garbage collection is not run until all
+ * allocated objects are plugged in.  This can be done with gc_disable
+ * and gc_enable.
+ */
+
+/* The garbage collector is enabled if the inhibit counter is
+ * zero.  */
+#define GC_ENABLED     0
+
+/* For now we provide a way to disable this optimization for
+ * benchmarking and because it produces slightly smaller code.  */
+#ifndef USE_GC_LOCKING
+# define USE_GC_LOCKING 1
+#endif
+
+/* To facilitate nested calls to gc_disable, functions that allocate
+ * more than one cell may define a macro, e.g. foo_allocates.  This
+ * macro can be used to compute the amount of preallocation at the
+ * call site with the help of this macro.  */
+#define gc_reservations(fn) fn ## _allocates
+
+#if USE_GC_LOCKING
+
+/* Report a shortage in reserved cells, and terminate the program.  */
+static void
+gc_reservation_failure(struct scheme *sc)
+{
+#ifdef NDEBUG
+  fprintf(stderr,
+         "insufficient reservation\n")
+#else
+  fprintf(stderr,
+         "insufficient reservation in line %d\n",
+         sc->reserved_lineno);
+#endif
+  abort();
+}
+
+/* Disable the garbage collection and reserve the given number of
+ * cells.  gc_disable may be nested, but the enclosing reservation
+ * must include the reservations of all nested calls.  Note: You must
+ * re-enable the gc before calling Error_X.  */
+static void
+_gc_disable(struct scheme *sc, size_t reserve, int lineno)
+{
+  if (sc->inhibit_gc == 0) {
+    reserve_cells(sc, (reserve));
+    sc->reserved_cells = (reserve);
+#ifndef NDEBUG
+    (void) lineno;
+#else
+    sc->reserved_lineno = lineno;
+#endif
+  } else if (sc->reserved_cells < (reserve))
+    gc_reservation_failure (sc);
+  sc->inhibit_gc += 1;
+}
+#define gc_disable(sc, reserve)                        \
+     _gc_disable (sc, reserve, __LINE__)
+
+/* Enable the garbage collector.  */
+#define gc_enable(sc)                          \
+     do {                                      \
+         assert(sc->inhibit_gc);               \
+         sc->inhibit_gc -= 1;                  \
+     } while (0)
+
+/* Test whether the garbage collector is enabled.  */
+#define gc_enabled(sc)                         \
+     (sc->inhibit_gc == GC_ENABLED)
+
+/* Consume a reserved cell.  */
+#define gc_consume(sc)                                                 \
+     do {                                                              \
+         assert(! gc_enabled (sc));                                    \
+         if (sc->reserved_cells == 0)                                  \
+              gc_reservation_failure (sc);                             \
+         sc->reserved_cells -= 1;                                      \
+     } while (0)
+
+#else /* USE_GC_LOCKING */
+
+#define gc_disable(sc, reserve)        (void) 0
+#define gc_enable(sc)  (void) 0
+#define gc_enabled(sc) 1
+#define gc_consume(sc) (void) 0
+
+#endif /* USE_GC_LOCKING */
+
 static INLINE pointer get_cell_x(scheme *sc, pointer a, pointer b) {
-  if (sc->free_cell != sc->NIL) {
+  if (! gc_enabled (sc) || sc->free_cell != sc->NIL) {
     pointer x = sc->free_cell;
+    if (! gc_enabled (sc))
+        gc_consume (sc);
     sc->free_cell = cdr(x);
     --sc->fcells;
     return (x);
   }
+  assert (gc_enabled (sc));
   return _get_cell (sc, a, b);
 }
 
@@ -672,6 +780,7 @@ static pointer _get_cell(scheme *sc, pointer a, pointer b) {
     return sc->sink;
   }
 
+  assert (gc_enabled (sc));
   if (sc->free_cell == sc->NIL) {
     const int min_to_be_recovered = sc->last_cell_seg*8;
     gc(sc,a, b);
@@ -773,6 +882,26 @@ static pointer find_consecutive_cells(scheme *sc, int n) {
   return sc->NIL;
 }
 
+/* Free a cell.  This is dangerous.  Only free cells that are not
+ * referenced.  */
+static INLINE void
+free_cell(scheme *sc, pointer a)
+{
+  cdr(a) = sc->free_cell;
+  sc->free_cell = a;
+  sc->fcells += 1;
+}
+
+/* Free a cell and retrieve its content.  This is dangerous.  Only
+ * free cells that are not referenced.  */
+static INLINE void
+free_cons(scheme *sc, pointer a, pointer *r_car, pointer *r_cdr)
+{
+  *r_car = car(a);
+  *r_cdr = cdr(a);
+  free_cell(sc, a);
+}
+
 /* To retain recent allocs before interpreter knows about them -
    Tehom */
 
@@ -785,6 +914,17 @@ static void push_recent_alloc(scheme *sc, pointer recent, pointer extra)
   car(sc->sink) = holder;
 }
 
+static INLINE void ok_to_freely_gc(scheme *sc)
+{
+  pointer a = car(sc->sink), next;
+  car(sc->sink) = sc->NIL;
+  while (a != sc->NIL)
+    {
+      next = cdr(a);
+      free_cell(sc, a);
+      a = next;
+    }
+}
 
 static pointer get_cell(scheme *sc, pointer a, pointer b)
 {
@@ -795,7 +935,8 @@ static pointer get_cell(scheme *sc, pointer a, pointer b)
   typeflag(cell) = T_PAIR;
   car(cell) = a;
   cdr(cell) = b;
-  push_recent_alloc(sc, cell, sc->NIL);
+  if (gc_enabled (sc))
+    push_recent_alloc(sc, cell, sc->NIL);
   return cell;
 }
 
@@ -808,16 +949,11 @@ static pointer get_vector_object(scheme *sc, int len, pointer init)
   ivalue_unchecked(cells)=len;
   set_num_integer(cells);
   fill_vector(cells,init);
-  push_recent_alloc(sc, cells, sc->NIL);
+  if (gc_enabled (sc))
+    push_recent_alloc(sc, cells, sc->NIL);
   return cells;
 }
 
-static INLINE void ok_to_freely_gc(scheme *sc)
-{
-  car(sc->sink) = sc->NIL;
-}
-
-
 #if defined TSGRIND
 static void check_cell_alloced(pointer p, int expect_alloced)
 {
@@ -871,9 +1007,11 @@ static pointer oblist_initial_value(scheme *sc)
 /* returns the new symbol */
 static pointer oblist_add_by_name(scheme *sc, const char *name)
 {
+#define oblist_add_by_name_allocates   3
   pointer x;
   int location;
 
+  gc_disable(sc, gc_reservations (oblist_add_by_name));
   x = immutable_cons(sc, mk_string(sc, name), sc->NIL);
   typeflag(x) = T_SYMBOL;
   setimmutable(car(x));
@@ -881,6 +1019,7 @@ static pointer oblist_add_by_name(scheme *sc, const char *name)
   location = hash_fn(name, ivalue_unchecked(sc->oblist));
   set_vector_elem(sc->oblist, location,
                   immutable_cons(sc, x, vector_elem(sc->oblist, location)));
+  gc_enable(sc);
   return x;
 }
 
@@ -958,7 +1097,7 @@ static pointer oblist_all_symbols(scheme *sc)
 static pointer mk_port(scheme *sc, port *p) {
   pointer x = get_cell(sc, sc->NIL, sc->NIL);
 
-  typeflag(x) = T_PORT|T_ATOM;
+  typeflag(x) = T_PORT|T_ATOM|T_FINALIZE;
   x->_object._port=p;
   return (x);
 }
@@ -974,7 +1113,7 @@ pointer mk_foreign_func(scheme *sc, foreign_func f) {
 pointer mk_foreign_object(scheme *sc, const foreign_object_vtable *vtable, void *data) {
   pointer x = get_cell(sc, sc->NIL, sc->NIL);
 
-  typeflag(x) = (T_FOREIGN_OBJECT | T_ATOM);
+  typeflag(x) = (T_FOREIGN_OBJECT | T_ATOM | T_FINALIZE);
   x->_object._foreign_object._vtable=vtable;
   x->_object._foreign_object._data = data;
   return (x);
@@ -1042,7 +1181,7 @@ INTERFACE pointer mk_string(scheme *sc, const char *str) {
 
 INTERFACE pointer mk_counted_string(scheme *sc, const char *str, int len) {
      pointer x = get_cell(sc, sc->NIL, sc->NIL);
-     typeflag(x) = (T_STRING | T_ATOM);
+     typeflag(x) = (T_STRING | T_ATOM | T_FINALIZE);
      strvalue(x) = store_string(sc,len,str,0);
      strlength(x) = len;
      return (x);
@@ -1050,7 +1189,7 @@ INTERFACE pointer mk_counted_string(scheme *sc, const char *str, int len) {
 
 INTERFACE pointer mk_empty_string(scheme *sc, int len, char fill) {
      pointer x = get_cell(sc, sc->NIL, sc->NIL);
-     typeflag(x) = (T_STRING | T_ATOM);
+     typeflag(x) = (T_STRING | T_ATOM | T_FINALIZE);
      strvalue(x) = store_string(sc,len,0,fill);
      strlength(x) = len;
      return (x);
@@ -1090,6 +1229,7 @@ INTERFACE static pointer set_vector_elem(pointer vec, int ielem, pointer a) {
 
 /* get new symbol */
 INTERFACE pointer mk_symbol(scheme *sc, const char *name) {
+#define mk_symbol_allocates    oblist_add_by_name_allocates
      pointer x;
 
      /* first check oblist */
@@ -1320,6 +1460,8 @@ static void gc(scheme *sc, pointer a, pointer b) {
   pointer p;
   int i;
 
+  assert (gc_enabled (sc));
+
   if(sc->gc_verbose) {
     putstr(sc, "gc...");
   }
@@ -1364,7 +1506,7 @@ static void gc(scheme *sc, pointer a, pointer b) {
     clrmark(p);
       } else {
     /* reclaim cell */
-        if (typeflag(p) != 0) {
+        if (typeflag(p) & T_FINALIZE) {
           finalize_cell(sc, p);
           typeflag(p) = 0;
           car(p) = sc->NIL;
@@ -2041,7 +2183,9 @@ static void atom2str(scheme *sc, pointer l, int f, char **pp, int *plen) {
           }
      } else if (is_string(l)) {
           if (!f) {
-               p = strvalue(l);
+               *pp = strvalue(l);
+              *plen = strlength(l);
+              return;
           } else { /* Hack, uses the fact that printing is needed */
                *pp=sc->strbuff;
                *plen=0;
@@ -2269,14 +2413,19 @@ static void new_frame_in_env(scheme *sc, pointer old_env)
     new_frame = sc->NIL;
   }
 
+  gc_disable(sc, 1);
   sc->envir = immutable_cons(sc, new_frame, old_env);
+  gc_enable(sc);
   setenvironment(sc->envir);
 }
 
 static INLINE void new_slot_spec_in_env(scheme *sc, pointer env,
                                         pointer variable, pointer value)
 {
-  pointer slot = immutable_cons(sc, variable, value);
+#define new_slot_spec_in_env_allocates 2
+  pointer slot;
+  gc_disable(sc, gc_reservations (new_slot_spec_in_env));
+  slot = immutable_cons(sc, variable, value);
 
   if (is_vector(car(env))) {
     int location = hash_fn(symname(variable), ivalue_unchecked(car(env)));
@@ -2286,6 +2435,7 @@ static INLINE void new_slot_spec_in_env(scheme *sc, pointer env,
   } else {
     car(env) = immutable_cons(sc, slot, car(env));
   }
+  gc_enable(sc);
 }
 
 static pointer find_slot_in_env(scheme *sc, pointer env, pointer hdl, int all)
@@ -2358,6 +2508,7 @@ static pointer find_slot_in_env(scheme *sc, pointer env, pointer hdl, int all)
 
 static INLINE void new_slot_in_env(scheme *sc, pointer variable, pointer value)
 {
+#define new_slot_in_env_allocates      new_slot_spec_in_env_allocates
   new_slot_spec_in_env(sc, sc->envir, variable, value);
 }
 
@@ -2434,98 +2585,40 @@ static pointer _Error_1(scheme *sc, const char *s, pointer a) {
 /* Too small to turn into function */
 # define  BEGIN     do {
 # define  END  } while (0)
+
+/* Bounce back to Eval_Cycle and execute A.  */
 #define s_goto(sc,a) BEGIN                                  \
     sc->op = (int)(a);                                      \
     return sc->T; END
 
-#define s_return(sc,a) return _s_return(sc,a)
+#if USE_THREADED_CODE
 
-#ifndef USE_SCHEME_STACK
+/* Do not bounce back to Eval_Cycle but execute A by jumping directly
+ * to it.  Only applicable if A is part of the same dispatch
+ * function.  */
+#define s_thread_to(sc, a)     \
+     BEGIN                     \
+     op = (int) (a);           \
+     goto a;                   \
+     END
 
-/* this structure holds all the interpreter's registers */
-struct dump_stack_frame {
-  enum scheme_opcodes op;
-  pointer args;
-  pointer envir;
-  pointer code;
-};
-
-#define STACK_GROWTH 3
+/* Define a label OP and emit a case statement for OP.  For use in the
+ * dispatch functions.  The slightly peculiar goto that is never
+ * executed avoids warnings about unused labels.  */
+#define CASE(OP)       if (0) goto OP; OP: case OP
 
-static void s_save(scheme *sc, enum scheme_opcodes op, pointer args, pointer code)
-{
-  int nframes = (int)sc->dump;
-  struct dump_stack_frame *next_frame;
-
-  /* enough room for the next frame? */
-  if (nframes >= sc->dump_size) {
-    sc->dump_size += STACK_GROWTH;
-    /* alas there is no sc->realloc */
-    sc->dump_base = realloc(sc->dump_base,
-                            sizeof(struct dump_stack_frame) * sc->dump_size);
-  }
-  next_frame = (struct dump_stack_frame *)sc->dump_base + nframes;
-  next_frame->op = op;
-  next_frame->args = args;
-  next_frame->envir = sc->envir;
-  next_frame->code = code;
-  sc->dump = (pointer)(nframes+1);
-}
+#else  /* USE_THREADED_CODE */
+#define s_thread_to(sc, a)     s_goto(sc, a)
+#define CASE(OP)               case OP
+#endif /* USE_THREADED_CODE */
 
-static pointer _s_return(scheme *sc, pointer a)
-{
-  int nframes = (int)sc->dump;
-  struct dump_stack_frame *frame;
+/* Return to the previous frame on the dump stack, setting the current
+ * value to A.  */
+#define s_return(sc, a) return _s_return(sc, a, 0)
 
-  sc->value = (a);
-  if (nframes <= 0) {
-    return sc->NIL;
-  }
-  nframes--;
-  frame = (struct dump_stack_frame *)sc->dump_base + nframes;
-  sc->op = frame->op;
-  sc->args = frame->args;
-  sc->envir = frame->envir;
-  sc->code = frame->code;
-  sc->dump = (pointer)nframes;
-  return sc->T;
-}
-
-static INLINE void dump_stack_reset(scheme *sc)
-{
-  /* in this implementation, sc->dump is the number of frames on the stack */
-  sc->dump = (pointer)0;
-}
-
-static INLINE void dump_stack_initialize(scheme *sc)
-{
-  sc->dump_size = 0;
-  sc->dump_base = NULL;
-  dump_stack_reset(sc);
-}
-
-static void dump_stack_free(scheme *sc)
-{
-  free(sc->dump_base);
-  sc->dump_base = NULL;
-  sc->dump = (pointer)0;
-  sc->dump_size = 0;
-}
-
-static INLINE void dump_stack_mark(scheme *sc)
-{
-  int nframes = (int)sc->dump;
-  int i;
-  for(i=0; i<nframes; i++) {
-    struct dump_stack_frame *frame;
-    frame = (struct dump_stack_frame *)sc->dump_base + i;
-    mark(frame->args);
-    mark(frame->envir);
-    mark(frame->code);
-  }
-}
-
-#else
+/* Return to the previous frame on the dump stack, setting the current
+ * value to A, and re-enable the garbage collector.  */
+#define s_return_enable_gc(sc, a) return _s_return(sc, a, 1)
 
 static INLINE void dump_stack_reset(scheme *sc)
 {
@@ -2542,28 +2635,37 @@ static void dump_stack_free(scheme *sc)
   sc->dump = sc->NIL;
 }
 
-static pointer _s_return(scheme *sc, pointer a) {
-    sc->value = (a);
-    if(sc->dump==sc->NIL) return sc->NIL;
-    sc->op = ivalue(car(sc->dump));
-    sc->args = cadr(sc->dump);
-    sc->envir = caddr(sc->dump);
-    sc->code = cadddr(sc->dump);
-    sc->dump = cddddr(sc->dump);
-    return sc->T;
+static pointer _s_return(scheme *sc, pointer a, int enable_gc) {
+  pointer dump = sc->dump;
+  pointer op;
+  sc->value = (a);
+  if (enable_gc)
+       gc_enable(sc);
+  if (dump == sc->NIL)
+    return sc->NIL;
+  free_cons(sc, dump, &op, &dump);
+  sc->op = ivalue(op);
+  free_cell(sc, op);
+  free_cons(sc, dump, &sc->args, &dump);
+  free_cons(sc, dump, &sc->envir, &dump);
+  free_cons(sc, dump, &sc->code, &sc->dump);
+  return sc->T;
 }
 
 static void s_save(scheme *sc, enum scheme_opcodes op, pointer args, pointer code) {
-    sc->dump = cons(sc, sc->envir, cons(sc, (code), sc->dump));
-    sc->dump = cons(sc, (args), sc->dump);
-    sc->dump = cons(sc, mk_integer(sc, (long)(op)), sc->dump);
+#define s_save_allocates       5
+    pointer dump;
+    gc_disable(sc, gc_reservations (s_save));
+    dump = cons(sc, sc->envir, cons(sc, (code), sc->dump));
+    dump = cons(sc, (args), dump);
+    sc->dump = cons(sc, mk_integer(sc, (long)(op)), dump);
+    gc_enable(sc);
 }
 
 static INLINE void dump_stack_mark(scheme *sc)
 {
   mark(sc->dump);
 }
-#endif
 
 #define s_retbool(tf)    s_return(sc,(tf) ? sc->T : sc->F)
 
@@ -2571,7 +2673,7 @@ static pointer opexe_0(scheme *sc, enum scheme_opcodes op) {
      pointer x, y;
 
      switch (op) {
-     case OP_LOAD:       /* load */
+     CASE(OP_LOAD):       /* load */
           if(file_interactive(sc)) {
                fprintf(sc->outport->_object._port->rep.stdio.file,
                "Loading %s\n", strvalue(car(sc->args)));
@@ -2582,16 +2684,17 @@ static pointer opexe_0(scheme *sc, enum scheme_opcodes op) {
       else
         {
           sc->args = mk_integer(sc,sc->file_i);
-          s_goto(sc,OP_T0LVL);
+          s_thread_to(sc,OP_T0LVL);
         }
 
-     case OP_T0LVL: /* top level */
+     CASE(OP_T0LVL): /* top level */
        /* If we reached the end of file, this loop is done. */
        if(sc->loadport->_object._port->kind & port_saw_EOF)
      {
        if(sc->file_i == 0)
          {
            sc->args=sc->NIL;
+           sc->nesting = sc->nesting_stack[0];
            s_goto(sc,OP_QUIT);
          }
        else
@@ -2618,23 +2721,23 @@ static pointer opexe_0(scheme *sc, enum scheme_opcodes op) {
        s_save(sc,OP_T0LVL, sc->NIL, sc->NIL);
        s_save(sc,OP_VALUEPRINT, sc->NIL, sc->NIL);
        s_save(sc,OP_T1LVL, sc->NIL, sc->NIL);
-       s_goto(sc,OP_READ_INTERNAL);
+       s_thread_to(sc,OP_READ_INTERNAL);
 
-     case OP_T1LVL: /* top level */
+     CASE(OP_T1LVL): /* top level */
           sc->code = sc->value;
           sc->inport=sc->save_inport;
-          s_goto(sc,OP_EVAL);
+          s_thread_to(sc,OP_EVAL);
 
-     case OP_READ_INTERNAL:       /* internal read */
+     CASE(OP_READ_INTERNAL):       /* internal read */
           sc->tok = token(sc);
           if(sc->tok==TOK_EOF)
         { s_return(sc,sc->EOF_OBJ); }
           s_goto(sc,OP_RDSEXPR);
 
-     case OP_GENSYM:
+     CASE(OP_GENSYM):
           s_return(sc, gensym(sc));
 
-     case OP_VALUEPRINT: /* print evaluation result */
+     CASE(OP_VALUEPRINT): /* print evaluation result */
           /* OP_VALUEPRINT is always pushed, because when changing from
              non-interactive to interactive mode, it needs to be
              already on the stack */
@@ -2649,7 +2752,7 @@ static pointer opexe_0(scheme *sc, enum scheme_opcodes op) {
          s_return(sc,sc->value);
        }
 
-     case OP_EVAL:       /* main part of evaluation */
+     CASE(OP_EVAL):       /* main part of evaluation */
 #if USE_TRACING
        if(sc->tracing) {
          /*s_save(sc,OP_VALUEPRINT,sc->NIL,sc->NIL);*/
@@ -2659,7 +2762,7 @@ static pointer opexe_0(scheme *sc, enum scheme_opcodes op) {
          s_goto(sc,OP_P0LIST);
        }
        /* fall through */
-     case OP_REAL_EVAL:
+     CASE(OP_REAL_EVAL):
 #endif
           if (is_symbol(sc->code)) {    /* symbol */
                x=find_slot_in_env(sc,sc->envir,sc->code,1);
@@ -2676,46 +2779,51 @@ static pointer opexe_0(scheme *sc, enum scheme_opcodes op) {
                     s_save(sc,OP_E0ARGS, sc->NIL, sc->code);
                     /* If no macros => s_save(sc,OP_E1ARGS, sc->NIL, cdr(sc->code));*/
                     sc->code = car(sc->code);
-                    s_goto(sc,OP_EVAL);
+                    s_thread_to(sc,OP_EVAL);
                }
           } else {
                s_return(sc,sc->code);
           }
 
-     case OP_E0ARGS:     /* eval arguments */
+     CASE(OP_E0ARGS):     /* eval arguments */
           if (is_macro(sc->value)) {    /* macro expansion */
+              gc_disable(sc, 1 + gc_reservations (s_save));
                s_save(sc,OP_DOMACRO, sc->NIL, sc->NIL);
                sc->args = cons(sc,sc->code, sc->NIL);
+              gc_enable(sc);
                sc->code = sc->value;
-               s_goto(sc,OP_APPLY);
+               s_thread_to(sc,OP_APPLY);
           } else {
                sc->code = cdr(sc->code);
-               s_goto(sc,OP_E1ARGS);
+               s_thread_to(sc,OP_E1ARGS);
           }
 
-     case OP_E1ARGS:     /* eval arguments */
-          sc->args = cons(sc, sc->value, sc->args);
+     CASE(OP_E1ARGS):     /* eval arguments */
+         gc_disable(sc, 1);
+         sc->args = cons(sc, sc->value, sc->args);
+         gc_enable(sc);
           if (is_pair(sc->code)) { /* continue */
                s_save(sc,OP_E1ARGS, sc->args, cdr(sc->code));
                sc->code = car(sc->code);
                sc->args = sc->NIL;
-               s_goto(sc,OP_EVAL);
+               s_thread_to(sc,OP_EVAL);
           } else {  /* end */
                sc->args = reverse_in_place(sc, sc->NIL, sc->args);
                sc->code = car(sc->args);
                sc->args = cdr(sc->args);
-               s_goto(sc,OP_APPLY);
+               s_thread_to(sc,OP_APPLY);
           }
 
 #if USE_TRACING
-     case OP_TRACING: {
+     CASE(OP_TRACING): {
        int tr=sc->tracing;
        sc->tracing=ivalue(car(sc->args));
-       s_return(sc,mk_integer(sc,tr));
+       gc_disable(sc, 1);
+       s_return_enable_gc(sc, mk_integer(sc, tr));
      }
 #endif
 
-     case OP_APPLY:      /* apply 'code' to 'args' */
+     CASE(OP_APPLY):      /* apply 'code' to 'args' */
 #if USE_TRACING
        if(sc->tracing) {
          s_save(sc,OP_REAL_APPLY,sc->args,sc->code);
@@ -2725,7 +2833,7 @@ static pointer opexe_0(scheme *sc, enum scheme_opcodes op) {
          s_goto(sc,OP_P0LIST);
        }
        /* fall through */
-     case OP_REAL_APPLY:
+     CASE(OP_REAL_APPLY):
 #endif
           if (is_proc(sc->code)) {
                s_goto(sc,procnum(sc->code));   /* PROCEDURE */
@@ -2761,7 +2869,7 @@ static pointer opexe_0(scheme *sc, enum scheme_opcodes op) {
                }
                sc->code = cdr(closure_code(sc->code));
                sc->args = sc->NIL;
-               s_goto(sc,OP_BEGIN);
+               s_thread_to(sc,OP_BEGIN);
           } else if (is_continuation(sc->code)) { /* CONTINUATION */
                sc->dump = cont_dump(sc->code);
                s_return(sc,sc->args != sc->NIL ? car(sc->args) : sc->NIL);
@@ -2769,37 +2877,41 @@ static pointer opexe_0(scheme *sc, enum scheme_opcodes op) {
                Error_1(sc,"illegal function",sc->code);
           }
 
-     case OP_DOMACRO:    /* do macro */
+     CASE(OP_DOMACRO):    /* do macro */
           sc->code = sc->value;
-          s_goto(sc,OP_EVAL);
+          s_thread_to(sc,OP_EVAL);
 
-#if 1
-     case OP_LAMBDA:     /* lambda */
+#if USE_COMPILE_HOOK
+     CASE(OP_LAMBDA):     /* lambda */
           /* If the hook is defined, apply it to sc->code, otherwise
-             set sc->value fall thru */
+             set sc->value fall through */
           {
                pointer f=find_slot_in_env(sc,sc->envir,sc->COMPILE_HOOK,1);
                if(f==sc->NIL) {
                     sc->value = sc->code;
                     /* Fallthru */
                } else {
+                   gc_disable(sc, 1 + gc_reservations (s_save));
                     s_save(sc,OP_LAMBDA1,sc->args,sc->code);
                     sc->args=cons(sc,sc->code,sc->NIL);
+                   gc_enable(sc);
                     sc->code=slot_value_in_env(f);
-                    s_goto(sc,OP_APPLY);
+                    s_thread_to(sc,OP_APPLY);
                }
           }
 
-     case OP_LAMBDA1:
-          s_return(sc,mk_closure(sc, sc->value, sc->envir));
+     CASE(OP_LAMBDA1):
+         gc_disable(sc, 1);
+          s_return_enable_gc(sc, mk_closure(sc, sc->value, sc->envir));
 
 #else
-     case OP_LAMBDA:     /* lambda */
-          s_return(sc,mk_closure(sc, sc->code, sc->envir));
+     CASE(OP_LAMBDA):     /* lambda */
+         gc_disable(sc, 1);
+          s_return_enable_gc(sc, mk_closure(sc, sc->code, sc->envir));
 
 #endif
 
-     case OP_MKCLOSURE: /* make-closure */
+     CASE(OP_MKCLOSURE): /* make-closure */
        x=car(sc->args);
        if(car(x)==sc->LAMBDA) {
          x=cdr(x);
@@ -2809,18 +2921,21 @@ static pointer opexe_0(scheme *sc, enum scheme_opcodes op) {
        } else {
          y=cadr(sc->args);
        }
-       s_return(sc,mk_closure(sc, x, y));
+       gc_disable(sc, 1);
+       s_return_enable_gc(sc, mk_closure(sc, x, y));
 
-     case OP_QUOTE:      /* quote */
+     CASE(OP_QUOTE):      /* quote */
           s_return(sc,car(sc->code));
 
-     case OP_DEF0:  /* define */
+     CASE(OP_DEF0):  /* define */
           if(is_immutable(car(sc->code)))
             Error_1(sc,"define: unable to alter immutable", car(sc->code));
 
           if (is_pair(car(sc->code))) {
                x = caar(sc->code);
+              gc_disable(sc, 2);
                sc->code = cons(sc, sc->LAMBDA, cons(sc, cdar(sc->code), cdr(sc->code)));
+              gc_enable(sc);
           } else {
                x = car(sc->code);
                sc->code = cadr(sc->code);
@@ -2829,9 +2944,9 @@ static pointer opexe_0(scheme *sc, enum scheme_opcodes op) {
                Error_0(sc,"variable is not a symbol");
           }
           s_save(sc,OP_DEF1, sc->NIL, x);
-          s_goto(sc,OP_EVAL);
+          s_thread_to(sc,OP_EVAL);
 
-     case OP_DEF1:  /* define */
+     CASE(OP_DEF1):  /* define */
           x=find_slot_in_env(sc,sc->envir,sc->code,0);
           if (x != sc->NIL) {
                set_slot_in_env(sc, x, sc->value);
@@ -2841,21 +2956,21 @@ static pointer opexe_0(scheme *sc, enum scheme_opcodes op) {
           s_return(sc,sc->code);
 
 
-     case OP_DEFP:  /* defined? */
+     CASE(OP_DEFP):  /* defined? */
           x=sc->envir;
           if(cdr(sc->args)!=sc->NIL) {
                x=cadr(sc->args);
           }
           s_retbool(find_slot_in_env(sc,x,car(sc->args),1)!=sc->NIL);
 
-     case OP_SET0:       /* set! */
+     CASE(OP_SET0):       /* set! */
           if(is_immutable(car(sc->code)))
                 Error_1(sc,"set!: unable to alter immutable variable",car(sc->code));
           s_save(sc,OP_SET1, sc->NIL, car(sc->code));
           sc->code = cadr(sc->code);
-          s_goto(sc,OP_EVAL);
+          s_thread_to(sc,OP_EVAL);
 
-     case OP_SET1:       /* set! */
+     CASE(OP_SET1):       /* set! */
           y=find_slot_in_env(sc,sc->envir,sc->code,1);
           if (y != sc->NIL) {
                set_slot_in_env(sc, y, sc->value);
@@ -2865,7 +2980,7 @@ static pointer opexe_0(scheme *sc, enum scheme_opcodes op) {
           }
 
 
-     case OP_BEGIN:      /* begin */
+     CASE(OP_BEGIN):      /* begin */
           if (!is_pair(sc->code)) {
                s_return(sc,sc->code);
           }
@@ -2873,46 +2988,50 @@ static pointer opexe_0(scheme *sc, enum scheme_opcodes op) {
                s_save(sc,OP_BEGIN, sc->NIL, cdr(sc->code));
           }
           sc->code = car(sc->code);
-          s_goto(sc,OP_EVAL);
+          s_thread_to(sc,OP_EVAL);
 
-     case OP_IF0:        /* if */
+     CASE(OP_IF0):        /* if */
           s_save(sc,OP_IF1, sc->NIL, cdr(sc->code));
           sc->code = car(sc->code);
-          s_goto(sc,OP_EVAL);
+          s_thread_to(sc,OP_EVAL);
 
-     case OP_IF1:        /* if */
+     CASE(OP_IF1):        /* if */
           if (is_true(sc->value))
                sc->code = car(sc->code);
           else
                sc->code = cadr(sc->code);  /* (if #f 1) ==> () because
                                             * car(sc->NIL) = sc->NIL */
-          s_goto(sc,OP_EVAL);
+          s_thread_to(sc,OP_EVAL);
 
-     case OP_LET0:       /* let */
+     CASE(OP_LET0):       /* let */
           sc->args = sc->NIL;
           sc->value = sc->code;
           sc->code = is_symbol(car(sc->code)) ? cadr(sc->code) : car(sc->code);
-          s_goto(sc,OP_LET1);
+          s_thread_to(sc,OP_LET1);
 
-     case OP_LET1:       /* let (calculate parameters) */
+     CASE(OP_LET1):       /* let (calculate parameters) */
+         gc_disable(sc, 1 + (is_pair(sc->code) ? gc_reservations (s_save) : 0));
           sc->args = cons(sc, sc->value, sc->args);
           if (is_pair(sc->code)) { /* continue */
                if (!is_pair(car(sc->code)) || !is_pair(cdar(sc->code))) {
+                   gc_enable(sc);
                     Error_1(sc, "Bad syntax of binding spec in let :",
                             car(sc->code));
                }
                s_save(sc,OP_LET1, sc->args, cdr(sc->code));
+              gc_enable(sc);
                sc->code = cadar(sc->code);
                sc->args = sc->NIL;
-               s_goto(sc,OP_EVAL);
+               s_thread_to(sc,OP_EVAL);
           } else {  /* end */
+              gc_enable(sc);
                sc->args = reverse_in_place(sc, sc->NIL, sc->args);
                sc->code = car(sc->args);
                sc->args = cdr(sc->args);
-               s_goto(sc,OP_LET2);
+               s_thread_to(sc,OP_LET2);
           }
 
-     case OP_LET2:       /* let */
+     CASE(OP_LET2):       /* let */
           new_frame_in_env(sc, sc->envir);
           for (x = is_symbol(car(sc->code)) ? cadr(sc->code) : car(sc->code), y = sc->args;
                y != sc->NIL; x = cdr(x), y = cdr(y)) {
@@ -2924,47 +3043,51 @@ static pointer opexe_0(scheme *sc, enum scheme_opcodes op) {
                         Error_1(sc, "Bad syntax of binding in let :", x);
                     if (!is_list(sc, car(x)))
                         Error_1(sc, "Bad syntax of binding in let :", car(x));
+                   gc_disable(sc, 1);
                     sc->args = cons(sc, caar(x), sc->args);
+                   gc_enable(sc);
                }
+              gc_disable(sc, 2 + gc_reservations (new_slot_in_env));
                x = mk_closure(sc, cons(sc, reverse_in_place(sc, sc->NIL, sc->args), cddr(sc->code)), sc->envir);
                new_slot_in_env(sc, car(sc->code), x);
+              gc_enable(sc);
                sc->code = cddr(sc->code);
                sc->args = sc->NIL;
           } else {
                sc->code = cdr(sc->code);
                sc->args = sc->NIL;
           }
-          s_goto(sc,OP_BEGIN);
+          s_thread_to(sc,OP_BEGIN);
 
-     case OP_LET0AST:    /* let* */
+     CASE(OP_LET0AST):    /* let* */
           if (car(sc->code) == sc->NIL) {
                new_frame_in_env(sc, sc->envir);
                sc->code = cdr(sc->code);
-               s_goto(sc,OP_BEGIN);
+               s_thread_to(sc,OP_BEGIN);
           }
           if(!is_pair(car(sc->code)) || !is_pair(caar(sc->code)) || !is_pair(cdaar(sc->code))) {
                Error_1(sc,"Bad syntax of binding spec in let* :",car(sc->code));
           }
           s_save(sc,OP_LET1AST, cdr(sc->code), car(sc->code));
           sc->code = cadaar(sc->code);
-          s_goto(sc,OP_EVAL);
+          s_thread_to(sc,OP_EVAL);
 
-     case OP_LET1AST:    /* let* (make new frame) */
+     CASE(OP_LET1AST):    /* let* (make new frame) */
           new_frame_in_env(sc, sc->envir);
-          s_goto(sc,OP_LET2AST);
+          s_thread_to(sc,OP_LET2AST);
 
-     case OP_LET2AST:    /* let* (calculate parameters) */
+     CASE(OP_LET2AST):    /* let* (calculate parameters) */
           new_slot_in_env(sc, caar(sc->code), sc->value);
           sc->code = cdr(sc->code);
           if (is_pair(sc->code)) { /* continue */
                s_save(sc,OP_LET2AST, sc->args, sc->code);
                sc->code = cadar(sc->code);
                sc->args = sc->NIL;
-               s_goto(sc,OP_EVAL);
+               s_thread_to(sc,OP_EVAL);
           } else {  /* end */
                sc->code = sc->args;
                sc->args = sc->NIL;
-               s_goto(sc,OP_BEGIN);
+               s_thread_to(sc,OP_BEGIN);
           }
      default:
           snprintf(sc->strbuff,STRBUFFSIZE,"%d: illegal operator", sc->op);
@@ -2977,15 +3100,17 @@ static pointer opexe_1(scheme *sc, enum scheme_opcodes op) {
      pointer x, y;
 
      switch (op) {
-     case OP_LET0REC:    /* letrec */
+     CASE(OP_LET0REC):    /* letrec */
           new_frame_in_env(sc, sc->envir);
           sc->args = sc->NIL;
           sc->value = sc->code;
           sc->code = car(sc->code);
-          s_goto(sc,OP_LET1REC);
+          s_thread_to(sc,OP_LET1REC);
 
-     case OP_LET1REC:    /* letrec (calculate parameters) */
+     CASE(OP_LET1REC):    /* letrec (calculate parameters) */
+         gc_disable(sc, 1);
           sc->args = cons(sc, sc->value, sc->args);
+         gc_enable(sc);
           if (is_pair(sc->code)) { /* continue */
                if (!is_pair(car(sc->code)) || !is_pair(cdar(sc->code))) {
                     Error_1(sc, "Bad syntax of binding spec in letrec :",
@@ -2999,10 +3124,10 @@ static pointer opexe_1(scheme *sc, enum scheme_opcodes op) {
                sc->args = reverse_in_place(sc, sc->NIL, sc->args);
                sc->code = car(sc->args);
                sc->args = cdr(sc->args);
-               s_goto(sc,OP_LET2REC);
+               s_thread_to(sc,OP_LET2REC);
           }
 
-     case OP_LET2REC:    /* letrec */
+     CASE(OP_LET2REC):    /* letrec */
           for (x = car(sc->code), y = sc->args; y != sc->NIL; x = cdr(x), y = cdr(y)) {
                new_slot_in_env(sc, caar(x), car(y));
           }
@@ -3010,7 +3135,7 @@ static pointer opexe_1(scheme *sc, enum scheme_opcodes op) {
           sc->args = sc->NIL;
           s_goto(sc,OP_BEGIN);
 
-     case OP_COND0:      /* cond */
+     CASE(OP_COND0):      /* cond */
           if (!is_pair(sc->code)) {
                Error_0(sc,"syntax error in cond");
           }
@@ -3018,7 +3143,7 @@ static pointer opexe_1(scheme *sc, enum scheme_opcodes op) {
           sc->code = caar(sc->code);
           s_goto(sc,OP_EVAL);
 
-     case OP_COND1:      /* cond */
+     CASE(OP_COND1):      /* cond */
           if (is_true(sc->value)) {
                if ((sc->code = cdar(sc->code)) == sc->NIL) {
                     s_return(sc,sc->value);
@@ -3027,8 +3152,10 @@ static pointer opexe_1(scheme *sc, enum scheme_opcodes op) {
                     if(!is_pair(cdr(sc->code))) {
                          Error_0(sc,"syntax error in cond");
                     }
+                   gc_disable(sc, 4);
                     x=cons(sc, sc->QUOTE, cons(sc, sc->value, sc->NIL));
                     sc->code=cons(sc,cadr(sc->code),cons(sc,x,sc->NIL));
+                   gc_enable(sc);
                     s_goto(sc,OP_EVAL);
                }
                s_goto(sc,OP_BEGIN);
@@ -3042,12 +3169,13 @@ static pointer opexe_1(scheme *sc, enum scheme_opcodes op) {
                }
           }
 
-     case OP_DELAY:      /* delay */
+     CASE(OP_DELAY):      /* delay */
+         gc_disable(sc, 2);
           x = mk_closure(sc, cons(sc, sc->NIL, sc->code), sc->envir);
           typeflag(x)=T_PROMISE;
-          s_return(sc,x);
+          s_return_enable_gc(sc,x);
 
-     case OP_AND0:       /* and */
+     CASE(OP_AND0):       /* and */
           if (sc->code == sc->NIL) {
                s_return(sc,sc->T);
           }
@@ -3055,7 +3183,7 @@ static pointer opexe_1(scheme *sc, enum scheme_opcodes op) {
           sc->code = car(sc->code);
           s_goto(sc,OP_EVAL);
 
-     case OP_AND1:       /* and */
+     CASE(OP_AND1):       /* and */
           if (is_false(sc->value)) {
                s_return(sc,sc->value);
           } else if (sc->code == sc->NIL) {
@@ -3066,7 +3194,7 @@ static pointer opexe_1(scheme *sc, enum scheme_opcodes op) {
                s_goto(sc,OP_EVAL);
           }
 
-     case OP_OR0:        /* or */
+     CASE(OP_OR0):        /* or */
           if (sc->code == sc->NIL) {
                s_return(sc,sc->F);
           }
@@ -3074,7 +3202,7 @@ static pointer opexe_1(scheme *sc, enum scheme_opcodes op) {
           sc->code = car(sc->code);
           s_goto(sc,OP_EVAL);
 
-     case OP_OR1:        /* or */
+     CASE(OP_OR1):        /* or */
           if (is_true(sc->value)) {
                s_return(sc,sc->value);
           } else if (sc->code == sc->NIL) {
@@ -3085,21 +3213,24 @@ static pointer opexe_1(scheme *sc, enum scheme_opcodes op) {
                s_goto(sc,OP_EVAL);
           }
 
-     case OP_C0STREAM:   /* cons-stream */
+     CASE(OP_C0STREAM):   /* cons-stream */
           s_save(sc,OP_C1STREAM, sc->NIL, cdr(sc->code));
           sc->code = car(sc->code);
           s_goto(sc,OP_EVAL);
 
-     case OP_C1STREAM:   /* cons-stream */
+     CASE(OP_C1STREAM):   /* cons-stream */
           sc->args = sc->value;  /* save sc->value to register sc->args for gc */
+         gc_disable(sc, 3);
           x = mk_closure(sc, cons(sc, sc->NIL, sc->code), sc->envir);
           typeflag(x)=T_PROMISE;
-          s_return(sc,cons(sc, sc->args, x));
+          s_return_enable_gc(sc, cons(sc, sc->args, x));
 
-     case OP_MACRO0:     /* macro */
+     CASE(OP_MACRO0):     /* macro */
           if (is_pair(car(sc->code))) {
                x = caar(sc->code);
+              gc_disable(sc, 2);
                sc->code = cons(sc, sc->LAMBDA, cons(sc, cdar(sc->code), cdr(sc->code)));
+              gc_enable(sc);
           } else {
                x = car(sc->code);
                sc->code = cadr(sc->code);
@@ -3110,7 +3241,7 @@ static pointer opexe_1(scheme *sc, enum scheme_opcodes op) {
           s_save(sc,OP_MACRO1, sc->NIL, x);
           s_goto(sc,OP_EVAL);
 
-     case OP_MACRO1:     /* macro */
+     CASE(OP_MACRO1):     /* macro */
           typeflag(sc->value) = T_MACRO;
           x = find_slot_in_env(sc, sc->envir, sc->code, 0);
           if (x != sc->NIL) {
@@ -3120,12 +3251,12 @@ static pointer opexe_1(scheme *sc, enum scheme_opcodes op) {
           }
           s_return(sc,sc->code);
 
-     case OP_CASE0:      /* case */
+     CASE(OP_CASE0):      /* case */
           s_save(sc,OP_CASE1, sc->NIL, cdr(sc->code));
           sc->code = car(sc->code);
           s_goto(sc,OP_EVAL);
 
-     case OP_CASE1:      /* case */
+     CASE(OP_CASE1):      /* case */
           for (x = sc->code; x != sc->NIL; x = cdr(x)) {
                if (!is_pair(y = caar(x))) {
                     break;
@@ -3152,29 +3283,31 @@ static pointer opexe_1(scheme *sc, enum scheme_opcodes op) {
                s_return(sc,sc->NIL);
           }
 
-     case OP_CASE2:      /* case */
+     CASE(OP_CASE2):      /* case */
           if (is_true(sc->value)) {
                s_goto(sc,OP_BEGIN);
           } else {
                s_return(sc,sc->NIL);
           }
 
-     case OP_PAPPLY:     /* apply */
+     CASE(OP_PAPPLY):     /* apply */
           sc->code = car(sc->args);
           sc->args = list_star(sc,cdr(sc->args));
           /*sc->args = cadr(sc->args);*/
           s_goto(sc,OP_APPLY);
 
-     case OP_PEVAL: /* eval */
+     CASE(OP_PEVAL): /* eval */
           if(cdr(sc->args)!=sc->NIL) {
                sc->envir=cadr(sc->args);
           }
           sc->code = car(sc->args);
           s_goto(sc,OP_EVAL);
 
-     case OP_CONTINUATION:    /* call-with-current-continuation */
+     CASE(OP_CONTINUATION):    /* call-with-current-continuation */
           sc->code = car(sc->args);
+         gc_disable(sc, 2);
           sc->args = cons(sc, mk_continuation(sc, sc->dump), sc->NIL);
+         gc_enable(sc);
           s_goto(sc,OP_APPLY);
 
      default:
@@ -3193,7 +3326,7 @@ static pointer opexe_2(scheme *sc, enum scheme_opcodes op) {
 
      switch (op) {
 #if USE_MATH
-     case OP_INEX2EX:    /* inexact->exact */
+     CASE(OP_INEX2EX):    /* inexact->exact */
           x=car(sc->args);
           if(num_is_integer(x)) {
                s_return(sc,x);
@@ -3203,35 +3336,35 @@ static pointer opexe_2(scheme *sc, enum scheme_opcodes op) {
                Error_1(sc,"inexact->exact: not integral:",x);
           }
 
-     case OP_EXP:
+     CASE(OP_EXP):
           x=car(sc->args);
           s_return(sc, mk_real(sc, exp(rvalue(x))));
 
-     case OP_LOG:
+     CASE(OP_LOG):
           x=car(sc->args);
           s_return(sc, mk_real(sc, log(rvalue(x))));
 
-     case OP_SIN:
+     CASE(OP_SIN):
           x=car(sc->args);
           s_return(sc, mk_real(sc, sin(rvalue(x))));
 
-     case OP_COS:
+     CASE(OP_COS):
           x=car(sc->args);
           s_return(sc, mk_real(sc, cos(rvalue(x))));
 
-     case OP_TAN:
+     CASE(OP_TAN):
           x=car(sc->args);
           s_return(sc, mk_real(sc, tan(rvalue(x))));
 
-     case OP_ASIN:
+     CASE(OP_ASIN):
           x=car(sc->args);
           s_return(sc, mk_real(sc, asin(rvalue(x))));
 
-     case OP_ACOS:
+     CASE(OP_ACOS):
           x=car(sc->args);
           s_return(sc, mk_real(sc, acos(rvalue(x))));
 
-     case OP_ATAN:
+     CASE(OP_ATAN):
           x=car(sc->args);
           if(cdr(sc->args)==sc->NIL) {
                s_return(sc, mk_real(sc, atan(rvalue(x))));
@@ -3240,11 +3373,11 @@ static pointer opexe_2(scheme *sc, enum scheme_opcodes op) {
                s_return(sc, mk_real(sc, atan2(rvalue(x),rvalue(y))));
           }
 
-     case OP_SQRT:
+     CASE(OP_SQRT):
           x=car(sc->args);
           s_return(sc, mk_real(sc, sqrt(rvalue(x))));
 
-     case OP_EXPT: {
+     CASE(OP_EXPT): {
           double result;
           int real_result=1;
           pointer y=cadr(sc->args);
@@ -3273,15 +3406,15 @@ static pointer opexe_2(scheme *sc, enum scheme_opcodes op) {
           }
      }
 
-     case OP_FLOOR:
+     CASE(OP_FLOOR):
           x=car(sc->args);
           s_return(sc, mk_real(sc, floor(rvalue(x))));
 
-     case OP_CEILING:
+     CASE(OP_CEILING):
           x=car(sc->args);
           s_return(sc, mk_real(sc, ceil(rvalue(x))));
 
-     case OP_TRUNCATE : {
+     CASE(OP_TRUNCATE ): {
           double rvalue_of_x ;
           x=car(sc->args);
           rvalue_of_x = rvalue(x) ;
@@ -3292,28 +3425,30 @@ static pointer opexe_2(scheme *sc, enum scheme_opcodes op) {
           }
      }
 
-     case OP_ROUND:
+     CASE(OP_ROUND):
         x=car(sc->args);
         if (num_is_integer(x))
             s_return(sc, x);
         s_return(sc, mk_real(sc, round_per_R5RS(rvalue(x))));
 #endif
 
-     case OP_ADD:        /* + */
+     CASE(OP_ADD):        /* + */
        v=num_zero;
        for (x = sc->args; x != sc->NIL; x = cdr(x)) {
          v=num_add(v,nvalue(car(x)));
        }
-       s_return(sc,mk_number(sc, v));
+       gc_disable(sc, 1);
+       s_return_enable_gc(sc, mk_number(sc, v));
 
-     case OP_MUL:        /* * */
+     CASE(OP_MUL):        /* * */
        v=num_one;
        for (x = sc->args; x != sc->NIL; x = cdr(x)) {
          v=num_mul(v,nvalue(car(x)));
        }
-       s_return(sc,mk_number(sc, v));
+       gc_disable(sc, 1);
+       s_return_enable_gc(sc, mk_number(sc, v));
 
-     case OP_SUB:        /* - */
+     CASE(OP_SUB):        /* - */
        if(cdr(sc->args)==sc->NIL) {
          x=sc->args;
          v=num_zero;
@@ -3324,9 +3459,10 @@ static pointer opexe_2(scheme *sc, enum scheme_opcodes op) {
        for (; x != sc->NIL; x = cdr(x)) {
          v=num_sub(v,nvalue(car(x)));
        }
-       s_return(sc,mk_number(sc, v));
+       gc_disable(sc, 1);
+       s_return_enable_gc(sc, mk_number(sc, v));
 
-     case OP_DIV:        /* / */
+     CASE(OP_DIV):        /* / */
        if(cdr(sc->args)==sc->NIL) {
          x=sc->args;
          v=num_one;
@@ -3341,9 +3477,10 @@ static pointer opexe_2(scheme *sc, enum scheme_opcodes op) {
            Error_0(sc,"/: division by zero");
          }
        }
-       s_return(sc,mk_number(sc, v));
+       gc_disable(sc, 1);
+       s_return_enable_gc(sc, mk_number(sc, v));
 
-     case OP_INTDIV:        /* quotient */
+     CASE(OP_INTDIV):        /* quotient */
           if(cdr(sc->args)==sc->NIL) {
                x=sc->args;
                v=num_one;
@@ -3358,37 +3495,40 @@ static pointer opexe_2(scheme *sc, enum scheme_opcodes op) {
                     Error_0(sc,"quotient: division by zero");
                }
           }
-          s_return(sc,mk_number(sc, v));
+         gc_disable(sc, 1);
+          s_return_enable_gc(sc, mk_number(sc, v));
 
-     case OP_REM:        /* remainder */
+     CASE(OP_REM):        /* remainder */
           v = nvalue(car(sc->args));
           if (ivalue(cadr(sc->args)) != 0)
                v=num_rem(v,nvalue(cadr(sc->args)));
           else {
                Error_0(sc,"remainder: division by zero");
           }
-          s_return(sc,mk_number(sc, v));
+         gc_disable(sc, 1);
+          s_return_enable_gc(sc, mk_number(sc, v));
 
-     case OP_MOD:        /* modulo */
+     CASE(OP_MOD):        /* modulo */
           v = nvalue(car(sc->args));
           if (ivalue(cadr(sc->args)) != 0)
                v=num_mod(v,nvalue(cadr(sc->args)));
           else {
                Error_0(sc,"modulo: division by zero");
           }
-          s_return(sc,mk_number(sc, v));
+         gc_disable(sc, 1);
+          s_return_enable_gc(sc, mk_number(sc, v));
 
-     case OP_CAR:        /* car */
+     CASE(OP_CAR):        /* car */
           s_return(sc,caar(sc->args));
 
-     case OP_CDR:        /* cdr */
+     CASE(OP_CDR):        /* cdr */
           s_return(sc,cdar(sc->args));
 
-     case OP_CONS:       /* cons */
+     CASE(OP_CONS):       /* cons */
           cdr(sc->args) = cadr(sc->args);
           s_return(sc,sc->args);
 
-     case OP_SETCAR:     /* set-car! */
+     CASE(OP_SETCAR):     /* set-car! */
        if(!is_immutable(car(sc->args))) {
          caar(sc->args) = cadr(sc->args);
          s_return(sc,car(sc->args));
@@ -3396,7 +3536,7 @@ static pointer opexe_2(scheme *sc, enum scheme_opcodes op) {
          Error_0(sc,"set-car!: unable to alter immutable pair");
        }
 
-     case OP_SETCDR:     /* set-cdr! */
+     CASE(OP_SETCDR):     /* set-cdr! */
        if(!is_immutable(car(sc->args))) {
          cdar(sc->args) = cadr(sc->args);
          s_return(sc,car(sc->args));
@@ -3404,36 +3544,41 @@ static pointer opexe_2(scheme *sc, enum scheme_opcodes op) {
          Error_0(sc,"set-cdr!: unable to alter immutable pair");
        }
 
-     case OP_CHAR2INT: { /* char->integer */
+     CASE(OP_CHAR2INT): { /* char->integer */
           char c;
           c=(char)ivalue(car(sc->args));
-          s_return(sc,mk_integer(sc,(unsigned char)c));
+         gc_disable(sc, 1);
+          s_return_enable_gc(sc, mk_integer(sc, (unsigned char) c));
      }
 
-     case OP_INT2CHAR: { /* integer->char */
+     CASE(OP_INT2CHAR): { /* integer->char */
           unsigned char c;
           c=(unsigned char)ivalue(car(sc->args));
-          s_return(sc,mk_character(sc,(char)c));
+         gc_disable(sc, 1);
+          s_return_enable_gc(sc, mk_character(sc, (char) c));
      }
 
-     case OP_CHARUPCASE: {
+     CASE(OP_CHARUPCASE): {
           unsigned char c;
           c=(unsigned char)ivalue(car(sc->args));
           c=toupper(c);
-          s_return(sc,mk_character(sc,(char)c));
+         gc_disable(sc, 1);
+          s_return_enable_gc(sc, mk_character(sc, (char) c));
      }
 
-     case OP_CHARDNCASE: {
+     CASE(OP_CHARDNCASE): {
           unsigned char c;
           c=(unsigned char)ivalue(car(sc->args));
           c=tolower(c);
-          s_return(sc,mk_character(sc,(char)c));
+         gc_disable(sc, 1);
+          s_return_enable_gc(sc, mk_character(sc, (char) c));
      }
 
-     case OP_STR2SYM:  /* string->symbol */
-          s_return(sc,mk_symbol(sc,strvalue(car(sc->args))));
+     CASE(OP_STR2SYM):  /* string->symbol */
+          gc_disable(sc, gc_reservations (mk_symbol));
+          s_return_enable_gc(sc, mk_symbol(sc, strvalue(car(sc->args))));
 
-     case OP_STR2ATOM: /* string->atom */ {
+     CASE(OP_STR2ATOM): /* string->atom */ {
           char *s=strvalue(car(sc->args));
           long pf = 0;
           if(cdr(sc->args)!=sc->NIL) {
@@ -3468,12 +3613,13 @@ static pointer opexe_2(scheme *sc, enum scheme_opcodes op) {
           }
         }
 
-     case OP_SYM2STR: /* symbol->string */
+     CASE(OP_SYM2STR): /* symbol->string */
+         gc_disable(sc, 1);
           x=mk_string(sc,symname(car(sc->args)));
           setimmutable(x);
-          s_return(sc,x);
+          s_return_enable_gc(sc, x);
 
-     case OP_ATOM2STR: /* atom->string */ {
+     CASE(OP_ATOM2STR): /* atom->string */ {
           long pf = 0;
           x=car(sc->args);
           if(cdr(sc->args)!=sc->NIL) {
@@ -3493,13 +3639,14 @@ static pointer opexe_2(scheme *sc, enum scheme_opcodes op) {
             char *p;
             int len;
             atom2str(sc,x,(int )pf,&p,&len);
-            s_return(sc,mk_counted_string(sc,p,len));
+           gc_disable(sc, 1);
+            s_return_enable_gc(sc, mk_counted_string(sc, p, len));
           } else {
             Error_1(sc, "atom->string: not an atom:", x);
           }
         }
 
-     case OP_MKSTRING: { /* make-string */
+     CASE(OP_MKSTRING): { /* make-string */
           int fill=' ';
           int len;
 
@@ -3508,13 +3655,15 @@ static pointer opexe_2(scheme *sc, enum scheme_opcodes op) {
           if(cdr(sc->args)!=sc->NIL) {
                fill=charvalue(cadr(sc->args));
           }
-          s_return(sc,mk_empty_string(sc,len,(char)fill));
+         gc_disable(sc, 1);
+          s_return_enable_gc(sc, mk_empty_string(sc, len, (char) fill));
      }
 
-     case OP_STRLEN:  /* string-length */
-          s_return(sc,mk_integer(sc,strlength(car(sc->args))));
+     CASE(OP_STRLEN):  /* string-length */
+         gc_disable(sc, 1);
+          s_return_enable_gc(sc, mk_integer(sc, strlength(car(sc->args))));
 
-     case OP_STRREF: { /* string-ref */
+     CASE(OP_STRREF): { /* string-ref */
           char *str;
           int index;
 
@@ -3526,10 +3675,12 @@ static pointer opexe_2(scheme *sc, enum scheme_opcodes op) {
                Error_1(sc,"string-ref: out of bounds:",cadr(sc->args));
           }
 
-          s_return(sc,mk_character(sc,((unsigned char*)str)[index]));
+         gc_disable(sc, 1);
+          s_return_enable_gc(sc,
+                            mk_character(sc, ((unsigned char*) str)[index]));
      }
 
-     case OP_STRSET: { /* string-set! */
+     CASE(OP_STRSET): { /* string-set! */
           char *str;
           int index;
           int c;
@@ -3550,7 +3701,7 @@ static pointer opexe_2(scheme *sc, enum scheme_opcodes op) {
           s_return(sc,car(sc->args));
      }
 
-     case OP_STRAPPEND: { /* string-append */
+     CASE(OP_STRAPPEND): { /* string-append */
        /* in 1.29 string-append was in Scheme in init.scm but was too slow */
        int len = 0;
        pointer newstr;
@@ -3560,16 +3711,17 @@ static pointer opexe_2(scheme *sc, enum scheme_opcodes op) {
        for (x = sc->args; x != sc->NIL; x = cdr(x)) {
           len += strlength(car(x));
        }
+       gc_disable(sc, 1);
        newstr = mk_empty_string(sc, len, ' ');
        /* store the contents of the argument strings into the new string */
        for (pos = strvalue(newstr), x = sc->args; x != sc->NIL;
            pos += strlength(car(x)), x = cdr(x)) {
            memcpy(pos, strvalue(car(x)), strlength(car(x)));
        }
-       s_return(sc, newstr);
+       s_return_enable_gc(sc, newstr);
      }
 
-     case OP_SUBSTR: { /* substring */
+     CASE(OP_SUBSTR): { /* substring */
           char *str;
           int index0;
           int index1;
@@ -3593,14 +3745,15 @@ static pointer opexe_2(scheme *sc, enum scheme_opcodes op) {
           }
 
           len=index1-index0;
+         gc_disable(sc, 1);
           x=mk_empty_string(sc,len,' ');
           memcpy(strvalue(x),str+index0,len);
           strvalue(x)[len]=0;
 
-          s_return(sc,x);
+          s_return_enable_gc(sc, x);
      }
 
-     case OP_VECTOR: {   /* vector */
+     CASE(OP_VECTOR): {   /* vector */
           int i;
           pointer vec;
           int len=list_length(sc,sc->args);
@@ -3615,7 +3768,7 @@ static pointer opexe_2(scheme *sc, enum scheme_opcodes op) {
           s_return(sc,vec);
      }
 
-     case OP_MKVECTOR: { /* make-vector */
+     CASE(OP_MKVECTOR): { /* make-vector */
           pointer fill=sc->NIL;
           int len;
           pointer vec;
@@ -3633,10 +3786,11 @@ static pointer opexe_2(scheme *sc, enum scheme_opcodes op) {
           s_return(sc,vec);
      }
 
-     case OP_VECLEN:  /* vector-length */
-          s_return(sc,mk_integer(sc,ivalue(car(sc->args))));
+     CASE(OP_VECLEN):  /* vector-length */
+         gc_disable(sc, 1);
+          s_return_enable_gc(sc, mk_integer(sc, ivalue(car(sc->args))));
 
-     case OP_VECREF: { /* vector-ref */
+     CASE(OP_VECREF): { /* vector-ref */
           int index;
 
           index=ivalue(cadr(sc->args));
@@ -3648,7 +3802,7 @@ static pointer opexe_2(scheme *sc, enum scheme_opcodes op) {
           s_return(sc,vector_elem(car(sc->args),index));
      }
 
-     case OP_VECSET: {   /* vector-set! */
+     CASE(OP_VECSET): {   /* vector-set! */
           int index;
 
           if(is_immutable(car(sc->args))) {
@@ -3719,19 +3873,19 @@ static pointer opexe_3(scheme *sc, enum scheme_opcodes op) {
      int (*comp_func)(num,num)=0;
 
      switch (op) {
-     case OP_NOT:        /* not */
+     CASE(OP_NOT):        /* not */
           s_retbool(is_false(car(sc->args)));
-     case OP_BOOLP:       /* boolean? */
+     CASE(OP_BOOLP):       /* boolean? */
           s_retbool(car(sc->args) == sc->F || car(sc->args) == sc->T);
-     case OP_EOFOBJP:       /* boolean? */
+     CASE(OP_EOFOBJP):       /* boolean? */
           s_retbool(car(sc->args) == sc->EOF_OBJ);
-     case OP_NULLP:       /* null? */
+     CASE(OP_NULLP):       /* null? */
           s_retbool(car(sc->args) == sc->NIL);
-     case OP_NUMEQ:      /* = */
-     case OP_LESS:       /* < */
-     case OP_GRE:        /* > */
-     case OP_LEQ:        /* <= */
-     case OP_GEQ:        /* >= */
+     CASE(OP_NUMEQ):      /* = */
+     CASE(OP_LESS):       /* < */
+     CASE(OP_GRE):        /* > */
+     CASE(OP_LEQ):        /* <= */
+     CASE(OP_GEQ):        /* >= */
           switch(op) {
                case OP_NUMEQ: comp_func=num_eq; break;
                case OP_LESS:  comp_func=num_lt; break;
@@ -3751,37 +3905,37 @@ static pointer opexe_3(scheme *sc, enum scheme_opcodes op) {
            v=nvalue(car(x));
           }
           s_retbool(1);
-     case OP_SYMBOLP:     /* symbol? */
+     CASE(OP_SYMBOLP):     /* symbol? */
           s_retbool(is_symbol(car(sc->args)));
-     case OP_NUMBERP:     /* number? */
+     CASE(OP_NUMBERP):     /* number? */
           s_retbool(is_number(car(sc->args)));
-     case OP_STRINGP:     /* string? */
+     CASE(OP_STRINGP):     /* string? */
           s_retbool(is_string(car(sc->args)));
-     case OP_INTEGERP:     /* integer? */
+     CASE(OP_INTEGERP):     /* integer? */
           s_retbool(is_integer(car(sc->args)));
-     case OP_REALP:     /* real? */
+     CASE(OP_REALP):     /* real? */
           s_retbool(is_number(car(sc->args))); /* All numbers are real */
-     case OP_CHARP:     /* char? */
+     CASE(OP_CHARP):     /* char? */
           s_retbool(is_character(car(sc->args)));
 #if USE_CHAR_CLASSIFIERS
-     case OP_CHARAP:     /* char-alphabetic? */
+     CASE(OP_CHARAP):     /* char-alphabetic? */
           s_retbool(Cisalpha(ivalue(car(sc->args))));
-     case OP_CHARNP:     /* char-numeric? */
+     CASE(OP_CHARNP):     /* char-numeric? */
           s_retbool(Cisdigit(ivalue(car(sc->args))));
-     case OP_CHARWP:     /* char-whitespace? */
+     CASE(OP_CHARWP):     /* char-whitespace? */
           s_retbool(Cisspace(ivalue(car(sc->args))));
-     case OP_CHARUP:     /* char-upper-case? */
+     CASE(OP_CHARUP):     /* char-upper-case? */
           s_retbool(Cisupper(ivalue(car(sc->args))));
-     case OP_CHARLP:     /* char-lower-case? */
+     CASE(OP_CHARLP):     /* char-lower-case? */
           s_retbool(Cislower(ivalue(car(sc->args))));
 #endif
-     case OP_PORTP:     /* port? */
+     CASE(OP_PORTP):     /* port? */
           s_retbool(is_port(car(sc->args)));
-     case OP_INPORTP:     /* input-port? */
+     CASE(OP_INPORTP):     /* input-port? */
           s_retbool(is_inport(car(sc->args)));
-     case OP_OUTPORTP:     /* output-port? */
+     CASE(OP_OUTPORTP):     /* output-port? */
           s_retbool(is_outport(car(sc->args)));
-     case OP_PROCP:       /* procedure? */
+     CASE(OP_PROCP):       /* procedure? */
           /*--
               * continuation should be procedure by the example
               * (call-with-current-continuation procedure?) ==> #t
@@ -3789,18 +3943,18 @@ static pointer opexe_3(scheme *sc, enum scheme_opcodes op) {
               */
           s_retbool(is_proc(car(sc->args)) || is_closure(car(sc->args))
                  || is_continuation(car(sc->args)) || is_foreign(car(sc->args)));
-     case OP_PAIRP:       /* pair? */
+     CASE(OP_PAIRP):       /* pair? */
           s_retbool(is_pair(car(sc->args)));
-     case OP_LISTP:       /* list? */
+     CASE(OP_LISTP):       /* list? */
        s_retbool(list_length(sc,car(sc->args)) >= 0);
 
-     case OP_ENVP:        /* environment? */
+     CASE(OP_ENVP):        /* environment? */
           s_retbool(is_environment(car(sc->args)));
-     case OP_VECTORP:     /* vector? */
+     CASE(OP_VECTORP):     /* vector? */
           s_retbool(is_vector(car(sc->args)));
-     case OP_EQ:         /* eq? */
+     CASE(OP_EQ):         /* eq? */
           s_retbool(car(sc->args) == cadr(sc->args));
-     case OP_EQV:        /* eqv? */
+     CASE(OP_EQV):        /* eqv? */
           s_retbool(eqv(car(sc->args), cadr(sc->args)));
      default:
           snprintf(sc->strbuff,STRBUFFSIZE,"%d: illegal operator", sc->op);
@@ -3813,7 +3967,7 @@ static pointer opexe_4(scheme *sc, enum scheme_opcodes op) {
      pointer x, y;
 
      switch (op) {
-     case OP_FORCE:      /* force */
+     CASE(OP_FORCE):      /* force */
           sc->code = car(sc->args);
           if (is_promise(sc->code)) {
                /* Should change type to closure here */
@@ -3824,13 +3978,13 @@ static pointer opexe_4(scheme *sc, enum scheme_opcodes op) {
                s_return(sc,sc->code);
           }
 
-     case OP_SAVE_FORCED:     /* Save forced value replacing promise */
+     CASE(OP_SAVE_FORCED):     /* Save forced value replacing promise */
           memcpy(sc->code,sc->value,sizeof(struct cell));
           s_return(sc,sc->value);
 
-     case OP_WRITE:      /* write */
-     case OP_DISPLAY:    /* display */
-     case OP_WRITE_CHAR: /* write-char */
+     CASE(OP_WRITE):      /* write */
+     CASE(OP_DISPLAY):    /* display */
+     CASE(OP_WRITE_CHAR): /* write-char */
           if(is_pair(cdr(sc->args))) {
                if(cadr(sc->args)!=sc->outport) {
                     x=cons(sc,sc->outport,sc->NIL);
@@ -3846,7 +4000,7 @@ static pointer opexe_4(scheme *sc, enum scheme_opcodes op) {
           }
           s_goto(sc,OP_P0LIST);
 
-     case OP_NEWLINE:    /* newline */
+     CASE(OP_NEWLINE):    /* newline */
           if(is_pair(sc->args)) {
                if(car(sc->args)!=sc->outport) {
                     x=cons(sc,sc->outport,sc->NIL);
@@ -3857,7 +4011,7 @@ static pointer opexe_4(scheme *sc, enum scheme_opcodes op) {
           putstr(sc, "\n");
           s_return(sc,sc->T);
 
-     case OP_ERR0:  /* error */
+     CASE(OP_ERR0):  /* error */
           sc->retcode=-1;
           if (!is_string(car(sc->args))) {
                sc->args=cons(sc,mk_string(sc," -- "),sc->args);
@@ -3866,9 +4020,9 @@ static pointer opexe_4(scheme *sc, enum scheme_opcodes op) {
           putstr(sc, "Error: ");
           putstr(sc, strvalue(car(sc->args)));
           sc->args = cdr(sc->args);
-          s_goto(sc,OP_ERR1);
+          s_thread_to(sc,OP_ERR1);
 
-     case OP_ERR1:  /* error */
+     CASE(OP_ERR1):  /* error */
           putstr(sc, " ");
           if (sc->args != sc->NIL) {
                s_save(sc,OP_ERR1, cdr(sc->args), sc->NIL);
@@ -3884,13 +4038,13 @@ static pointer opexe_4(scheme *sc, enum scheme_opcodes op) {
                }
           }
 
-     case OP_REVERSE:   /* reverse */
+     CASE(OP_REVERSE):   /* reverse */
           s_return(sc,reverse(sc, car(sc->args)));
 
-     case OP_LIST_STAR: /* list* */
+     CASE(OP_LIST_STAR): /* list* */
           s_return(sc,list_star(sc,sc->args));
 
-     case OP_APPEND:    /* append */
+     CASE(OP_APPEND):    /* append */
           x = sc->NIL;
           y = sc->args;
           if (y == x) {
@@ -3910,7 +4064,7 @@ static pointer opexe_4(scheme *sc, enum scheme_opcodes op) {
           s_return(sc, reverse_in_place(sc, car(y), x));
 
 #if USE_PLIST
-     case OP_PUT:        /* put */
+     CASE(OP_PUT):        /* put */
           if (!hasprop(car(sc->args)) || !hasprop(cadr(sc->args))) {
                Error_0(sc,"illegal use of put");
           }
@@ -3926,7 +4080,7 @@ static pointer opexe_4(scheme *sc, enum scheme_opcodes op) {
                                 symprop(car(sc->args)));
           s_return(sc,sc->T);
 
-     case OP_GET:        /* get */
+     CASE(OP_GET):        /* get */
           if (!hasprop(car(sc->args)) || !hasprop(cadr(sc->args))) {
                Error_0(sc,"illegal use of get");
           }
@@ -3941,42 +4095,42 @@ static pointer opexe_4(scheme *sc, enum scheme_opcodes op) {
                s_return(sc,sc->NIL);
           }
 #endif /* USE_PLIST */
-     case OP_QUIT:       /* quit */
+     CASE(OP_QUIT):       /* quit */
           if(is_pair(sc->args)) {
                sc->retcode=ivalue(car(sc->args));
           }
           return (sc->NIL);
 
-     case OP_GC:         /* gc */
+     CASE(OP_GC):         /* gc */
           gc(sc, sc->NIL, sc->NIL);
           s_return(sc,sc->T);
 
-     case OP_GCVERB:          /* gc-verbose */
+     CASE(OP_GCVERB):          /* gc-verbose */
      {    int  was = sc->gc_verbose;
 
           sc->gc_verbose = (car(sc->args) != sc->F);
           s_retbool(was);
      }
 
-     case OP_NEWSEGMENT: /* new-segment */
+     CASE(OP_NEWSEGMENT): /* new-segment */
           if (!is_pair(sc->args) || !is_number(car(sc->args))) {
                Error_0(sc,"new-segment: argument must be a number");
           }
           alloc_cellseg(sc, (int) ivalue(car(sc->args)));
           s_return(sc,sc->T);
 
-     case OP_OBLIST: /* oblist */
+     CASE(OP_OBLIST): /* oblist */
           s_return(sc, oblist_all_symbols(sc));
 
-     case OP_CURR_INPORT: /* current-input-port */
+     CASE(OP_CURR_INPORT): /* current-input-port */
           s_return(sc,sc->inport);
 
-     case OP_CURR_OUTPORT: /* current-output-port */
+     CASE(OP_CURR_OUTPORT): /* current-output-port */
           s_return(sc,sc->outport);
 
-     case OP_OPEN_INFILE: /* open-input-file */
-     case OP_OPEN_OUTFILE: /* open-output-file */
-     case OP_OPEN_INOUTFILE: /* open-input-output-file */ {
+     CASE(OP_OPEN_INFILE): /* open-input-file */
+     CASE(OP_OPEN_OUTFILE): /* open-output-file */
+     CASE(OP_OPEN_INOUTFILE): /* open-input-output-file */ {
           int prop=0;
           pointer p;
           switch(op) {
@@ -3995,8 +4149,8 @@ static pointer opexe_4(scheme *sc, enum scheme_opcodes op) {
      }
 
 #if USE_STRING_PORTS
-     case OP_OPEN_INSTRING: /* open-input-string */
-     case OP_OPEN_INOUTSTRING: /* open-input-output-string */ {
+     CASE(OP_OPEN_INSTRING): /* open-input-string */
+     CASE(OP_OPEN_INOUTSTRING): /* open-input-output-string */ {
           int prop=0;
           pointer p;
           switch(op) {
@@ -4011,7 +4165,7 @@ static pointer opexe_4(scheme *sc, enum scheme_opcodes op) {
           }
           s_return(sc,p);
      }
-     case OP_OPEN_OUTSTRING: /* open-output-string */ {
+     CASE(OP_OPEN_OUTSTRING): /* open-output-string */ {
           pointer p;
           if(car(sc->args)==sc->NIL) {
                p=port_from_scratch(sc);
@@ -4028,7 +4182,7 @@ static pointer opexe_4(scheme *sc, enum scheme_opcodes op) {
           }
           s_return(sc,p);
      }
-     case OP_GET_OUTSTRING: /* get-output-string */ {
+     CASE(OP_GET_OUTSTRING): /* get-output-string */ {
           port *p;
 
           if ((p=car(sc->args)->_object._port)->kind&port_string) {
@@ -4051,18 +4205,18 @@ static pointer opexe_4(scheme *sc, enum scheme_opcodes op) {
      }
 #endif
 
-     case OP_CLOSE_INPORT: /* close-input-port */
+     CASE(OP_CLOSE_INPORT): /* close-input-port */
           port_close(sc,car(sc->args),port_input);
           s_return(sc,sc->T);
 
-     case OP_CLOSE_OUTPORT: /* close-output-port */
+     CASE(OP_CLOSE_OUTPORT): /* close-output-port */
           port_close(sc,car(sc->args),port_output);
           s_return(sc,sc->T);
 
-     case OP_INT_ENV: /* interaction-environment */
+     CASE(OP_INT_ENV): /* interaction-environment */
           s_return(sc,sc->global_env);
 
-     case OP_CURR_ENV: /* current-environment */
+     CASE(OP_CURR_ENV): /* current-environment */
           s_return(sc,sc->envir);
 
      }
@@ -4081,7 +4235,7 @@ static pointer opexe_5(scheme *sc, enum scheme_opcodes op) {
 
      switch (op) {
      /* ========== reading part ========== */
-     case OP_READ:
+     CASE(OP_READ):
           if(!is_pair(sc->args)) {
                s_goto(sc,OP_READ_INTERNAL);
           }
@@ -4097,8 +4251,8 @@ static pointer opexe_5(scheme *sc, enum scheme_opcodes op) {
           s_save(sc,OP_SET_INPORT, x, sc->NIL);
           s_goto(sc,OP_READ_INTERNAL);
 
-     case OP_READ_CHAR: /* read-char */
-     case OP_PEEK_CHAR: /* peek-char */ {
+     CASE(OP_READ_CHAR): /* read-char */
+     CASE(OP_PEEK_CHAR): /* peek-char */ {
           int c;
           if(is_pair(sc->args)) {
                if(car(sc->args)!=sc->inport) {
@@ -4118,7 +4272,7 @@ static pointer opexe_5(scheme *sc, enum scheme_opcodes op) {
           s_return(sc,mk_character(sc,c));
      }
 
-     case OP_CHAR_READY: /* char-ready? */ {
+     CASE(OP_CHAR_READY): /* char-ready? */ {
           pointer p=sc->inport;
           int res;
           if(is_pair(sc->args)) {
@@ -4128,30 +4282,19 @@ static pointer opexe_5(scheme *sc, enum scheme_opcodes op) {
           s_retbool(res);
      }
 
-     case OP_SET_INPORT: /* set-input-port */
+     CASE(OP_SET_INPORT): /* set-input-port */
           sc->inport=car(sc->args);
           s_return(sc,sc->value);
 
-     case OP_SET_OUTPORT: /* set-output-port */
+     CASE(OP_SET_OUTPORT): /* set-output-port */
           sc->outport=car(sc->args);
           s_return(sc,sc->value);
 
-     case OP_RDSEXPR:
+     CASE(OP_RDSEXPR):
           switch (sc->tok) {
           case TOK_EOF:
                s_return(sc,sc->EOF_OBJ);
           /* NOTREACHED */
-/*
- * Commented out because we now skip comments in the scanner
- *
-          case TOK_COMMENT: {
-               int c;
-               while ((c=inchar(sc)) != '\n' && c!=EOF)
-                    ;
-               sc->tok = token(sc);
-               s_goto(sc,OP_RDSEXPR);
-          }
-*/
           case TOK_VEC:
                s_save(sc,OP_RDVEC,sc->NIL,sc->NIL);
                /* fall through */
@@ -4164,30 +4307,30 @@ static pointer opexe_5(scheme *sc, enum scheme_opcodes op) {
                } else {
                     sc->nesting_stack[sc->file_i]++;
                     s_save(sc,OP_RDLIST, sc->NIL, sc->NIL);
-                    s_goto(sc,OP_RDSEXPR);
+                    s_thread_to(sc,OP_RDSEXPR);
                }
           case TOK_QUOTE:
                s_save(sc,OP_RDQUOTE, sc->NIL, sc->NIL);
                sc->tok = token(sc);
-               s_goto(sc,OP_RDSEXPR);
+               s_thread_to(sc,OP_RDSEXPR);
           case TOK_BQUOTE:
                sc->tok = token(sc);
                if(sc->tok==TOK_VEC) {
                  s_save(sc,OP_RDQQUOTEVEC, sc->NIL, sc->NIL);
                  sc->tok=TOK_LPAREN;
-                 s_goto(sc,OP_RDSEXPR);
+                 s_thread_to(sc,OP_RDSEXPR);
                } else {
                  s_save(sc,OP_RDQQUOTE, sc->NIL, sc->NIL);
                }
-               s_goto(sc,OP_RDSEXPR);
+               s_thread_to(sc,OP_RDSEXPR);
           case TOK_COMMA:
                s_save(sc,OP_RDUNQUOTE, sc->NIL, sc->NIL);
                sc->tok = token(sc);
-               s_goto(sc,OP_RDSEXPR);
+               s_thread_to(sc,OP_RDSEXPR);
           case TOK_ATMARK:
                s_save(sc,OP_RDUQTSP, sc->NIL, sc->NIL);
                sc->tok = token(sc);
-               s_goto(sc,OP_RDSEXPR);
+               s_thread_to(sc,OP_RDSEXPR);
           case TOK_ATOM:
                s_return(sc,mk_atom(sc, readstr_upto(sc, DELIMITERS)));
           case TOK_DQUOTE:
@@ -4217,17 +4360,11 @@ static pointer opexe_5(scheme *sc, enum scheme_opcodes op) {
           }
           break;
 
-     case OP_RDLIST: {
+     CASE(OP_RDLIST): {
+         gc_disable(sc, 1);
           sc->args = cons(sc, sc->value, sc->args);
+         gc_enable(sc);
           sc->tok = token(sc);
-/* We now skip comments in the scanner
-          while (sc->tok == TOK_COMMENT) {
-               int c;
-               while ((c=inchar(sc)) != '\n' && c!=EOF)
-                    ;
-               sc->tok = token(sc);
-          }
-*/
           if (sc->tok == TOK_EOF)
                { s_return(sc,sc->EOF_OBJ); }
           else if (sc->tok == TOK_RPAREN) {
@@ -4243,14 +4380,14 @@ static pointer opexe_5(scheme *sc, enum scheme_opcodes op) {
           } else if (sc->tok == TOK_DOT) {
                s_save(sc,OP_RDDOT, sc->args, sc->NIL);
                sc->tok = token(sc);
-               s_goto(sc,OP_RDSEXPR);
+               s_thread_to(sc,OP_RDSEXPR);
           } else {
                s_save(sc,OP_RDLIST, sc->args, sc->NIL);;
-               s_goto(sc,OP_RDSEXPR);
+               s_thread_to(sc,OP_RDSEXPR);
           }
      }
 
-     case OP_RDDOT:
+     CASE(OP_RDDOT):
           if (token(sc) != TOK_RPAREN) {
                Error_0(sc,"syntax error: illegal dot expression");
           } else {
@@ -4258,26 +4395,35 @@ static pointer opexe_5(scheme *sc, enum scheme_opcodes op) {
                s_return(sc,reverse_in_place(sc, sc->value, sc->args));
           }
 
-     case OP_RDQUOTE:
-          s_return(sc,cons(sc, sc->QUOTE, cons(sc, sc->value, sc->NIL)));
+     CASE(OP_RDQUOTE):
+         gc_disable(sc, 2);
+          s_return_enable_gc(sc, cons(sc, sc->QUOTE,
+                                     cons(sc, sc->value, sc->NIL)));
 
-     case OP_RDQQUOTE:
-          s_return(sc,cons(sc, sc->QQUOTE, cons(sc, sc->value, sc->NIL)));
+     CASE(OP_RDQQUOTE):
+         gc_disable(sc, 2);
+          s_return_enable_gc(sc, cons(sc, sc->QQUOTE,
+                                     cons(sc, sc->value, sc->NIL)));
 
-     case OP_RDQQUOTEVEC:
-           s_return(sc,cons(sc, mk_symbol(sc,"apply"),
+     CASE(OP_RDQQUOTEVEC):
+         gc_disable(sc, 5 + 2 * gc_reservations (mk_symbol));
+         s_return_enable_gc(sc,cons(sc, mk_symbol(sc,"apply"),
            cons(sc, mk_symbol(sc,"vector"),
                  cons(sc,cons(sc, sc->QQUOTE,
                   cons(sc,sc->value,sc->NIL)),
                   sc->NIL))));
 
-     case OP_RDUNQUOTE:
-          s_return(sc,cons(sc, sc->UNQUOTE, cons(sc, sc->value, sc->NIL)));
+     CASE(OP_RDUNQUOTE):
+         gc_disable(sc, 2);
+          s_return_enable_gc(sc, cons(sc, sc->UNQUOTE,
+                                     cons(sc, sc->value, sc->NIL)));
 
-     case OP_RDUQTSP:
-          s_return(sc,cons(sc, sc->UNQUOTESP, cons(sc, sc->value, sc->NIL)));
+     CASE(OP_RDUQTSP):
+         gc_disable(sc, 2);
+          s_return_enable_gc(sc, cons(sc, sc->UNQUOTESP,
+                                     cons(sc, sc->value, sc->NIL)));
 
-     case OP_RDVEC:
+     CASE(OP_RDVEC):
           /*sc->code=cons(sc,mk_proc(sc,OP_VECTOR),sc->value);
           s_goto(sc,OP_EVAL); Cannot be quoted*/
           /*x=cons(sc,mk_proc(sc,OP_VECTOR),sc->value);
@@ -4289,11 +4435,11 @@ static pointer opexe_5(scheme *sc, enum scheme_opcodes op) {
           s_goto(sc,OP_VECTOR);
 
      /* ========== printing part ========== */
-     case OP_P0LIST:
+     CASE(OP_P0LIST):
           if(is_vector(sc->args)) {
                putstr(sc,"#(");
                sc->args=cons(sc,sc->args,mk_integer(sc,0));
-               s_goto(sc,OP_PVECFROM);
+               s_thread_to(sc,OP_PVECFROM);
           } else if(is_environment(sc->args)) {
                putstr(sc,"#<ENVIRONMENT>");
                s_return(sc,sc->T);
@@ -4303,36 +4449,36 @@ static pointer opexe_5(scheme *sc, enum scheme_opcodes op) {
           } else if (car(sc->args) == sc->QUOTE && ok_abbrev(cdr(sc->args))) {
                putstr(sc, "'");
                sc->args = cadr(sc->args);
-               s_goto(sc,OP_P0LIST);
+               s_thread_to(sc,OP_P0LIST);
           } else if (car(sc->args) == sc->QQUOTE && ok_abbrev(cdr(sc->args))) {
                putstr(sc, "`");
                sc->args = cadr(sc->args);
-               s_goto(sc,OP_P0LIST);
+               s_thread_to(sc,OP_P0LIST);
           } else if (car(sc->args) == sc->UNQUOTE && ok_abbrev(cdr(sc->args))) {
                putstr(sc, ",");
                sc->args = cadr(sc->args);
-               s_goto(sc,OP_P0LIST);
+               s_thread_to(sc,OP_P0LIST);
           } else if (car(sc->args) == sc->UNQUOTESP && ok_abbrev(cdr(sc->args))) {
                putstr(sc, ",@");
                sc->args = cadr(sc->args);
-               s_goto(sc,OP_P0LIST);
+               s_thread_to(sc,OP_P0LIST);
           } else {
                putstr(sc, "(");
                s_save(sc,OP_P1LIST, cdr(sc->args), sc->NIL);
                sc->args = car(sc->args);
-               s_goto(sc,OP_P0LIST);
+               s_thread_to(sc,OP_P0LIST);
           }
 
-     case OP_P1LIST:
+     CASE(OP_P1LIST):
           if (is_pair(sc->args)) {
             s_save(sc,OP_P1LIST, cdr(sc->args), sc->NIL);
             putstr(sc, " ");
             sc->args = car(sc->args);
-            s_goto(sc,OP_P0LIST);
+            s_thread_to(sc,OP_P0LIST);
           } else if(is_vector(sc->args)) {
             s_save(sc,OP_P1LIST,sc->NIL,sc->NIL);
             putstr(sc, " . ");
-            s_goto(sc,OP_P0LIST);
+            s_thread_to(sc,OP_P0LIST);
           } else {
             if (sc->args != sc->NIL) {
               putstr(sc, " . ");
@@ -4341,7 +4487,7 @@ static pointer opexe_5(scheme *sc, enum scheme_opcodes op) {
             putstr(sc, ")");
             s_return(sc,sc->T);
           }
-     case OP_PVECFROM: {
+     CASE(OP_PVECFROM): {
           int i=ivalue_unchecked(cdr(sc->args));
           pointer vec=car(sc->args);
           int len=ivalue_unchecked(vec);
@@ -4355,7 +4501,7 @@ static pointer opexe_5(scheme *sc, enum scheme_opcodes op) {
                sc->args=elem;
                if (i > 0)
                    putstr(sc," ");
-               s_goto(sc,OP_P0LIST);
+               s_thread_to(sc,OP_P0LIST);
           }
      }
 
@@ -4372,14 +4518,15 @@ static pointer opexe_6(scheme *sc, enum scheme_opcodes op) {
      long v;
 
      switch (op) {
-     case OP_LIST_LENGTH:     /* length */   /* a.k */
+     CASE(OP_LIST_LENGTH):     /* length */   /* a.k */
           v=list_length(sc,car(sc->args));
           if(v<0) {
                Error_1(sc,"length: not a list:",car(sc->args));
           }
-          s_return(sc,mk_integer(sc, v));
+         gc_disable(sc, 1);
+          s_return_enable_gc(sc, mk_integer(sc, v));
 
-     case OP_ASSQ:       /* assq */     /* a.k */
+     CASE(OP_ASSQ):       /* assq */     /* a.k */
           x = car(sc->args);
           for (y = cadr(sc->args); is_pair(y); y = cdr(y)) {
                if (!is_pair(car(y))) {
@@ -4395,24 +4542,28 @@ static pointer opexe_6(scheme *sc, enum scheme_opcodes op) {
           }
 
 
-     case OP_GET_CLOSURE:     /* get-closure-code */   /* a.k */
+     CASE(OP_GET_CLOSURE):     /* get-closure-code */   /* a.k */
           sc->args = car(sc->args);
           if (sc->args == sc->NIL) {
                s_return(sc,sc->F);
           } else if (is_closure(sc->args)) {
-               s_return(sc,cons(sc, sc->LAMBDA, closure_code(sc->value)));
+              gc_disable(sc, 1);
+               s_return_enable_gc(sc, cons(sc, sc->LAMBDA,
+                                          closure_code(sc->value)));
           } else if (is_macro(sc->args)) {
-               s_return(sc,cons(sc, sc->LAMBDA, closure_code(sc->value)));
+              gc_disable(sc, 1);
+               s_return_enable_gc(sc, cons(sc, sc->LAMBDA,
+                                          closure_code(sc->value)));
           } else {
                s_return(sc,sc->F);
           }
-     case OP_CLOSUREP:        /* closure? */
+     CASE(OP_CLOSUREP):        /* closure? */
           /*
            * Note, macro object is also a closure.
            * Therefore, (closure? <#MACRO>) ==> #t
            */
           s_retbool(is_closure(car(sc->args)));
-     case OP_MACROP:          /* macro? */
+     CASE(OP_MACROP):          /* macro? */
           s_retbool(is_macro(car(sc->args)));
      default:
           snprintf(sc->strbuff,STRBUFFSIZE,"%d: illegal operator", sc->op);
@@ -4758,12 +4909,16 @@ int scheme_init_custom_alloc(scheme *sc, func_alloc malloc, func_dealloc free) {
   sc->EOF_OBJ=&sc->_EOF_OBJ;
   sc->free_cell = &sc->_NIL;
   sc->fcells = 0;
+  sc->inhibit_gc = GC_ENABLED;
+  sc->reserved_cells = 0;
+  sc->reserved_lineno = 0;
   sc->no_memory=0;
   sc->inport=sc->NIL;
   sc->outport=sc->NIL;
   sc->save_inport=sc->NIL;
   sc->loadport=sc->NIL;
   sc->nesting=0;
+  memset (sc->nesting_stack, 0, sizeof sc->nesting_stack);
   sc->interactive_repl=0;
   sc->strbuff = sc->malloc(STRBUFFSIZE);
   if (sc->strbuff == 0) {
@@ -4840,7 +4995,9 @@ int scheme_init_custom_alloc(scheme *sc, func_alloc malloc, func_dealloc free) {
   sc->COLON_HOOK = mk_symbol(sc,"*colon-hook*");
   sc->ERROR_HOOK = mk_symbol(sc, "*error-hook*");
   sc->SHARP_HOOK = mk_symbol(sc, "*sharp-hook*");
+#if USE_COMPILE_HOOK
   sc->COMPILE_HOOK = mk_symbol(sc, "*compile-hook*");
+#endif
 
   return !sc->no_memory;
 }
index f4231c4..8e93177 100644 (file)
@@ -40,15 +40,11 @@ extern "C" {
 # define USE_ERROR_HOOK 0
 # define USE_TRACING 0
 # define USE_COLON_HOOK 0
+# define USE_COMPILE_HOOK 0
 # define USE_DL 0
 # define USE_PLIST 0
 #endif
 
-/*
- * Leave it defined if you want continuations, and also for the Sharp Zaurus.
- * Undefine it if you only care about faster speed and not strict Scheme compatibility.
- */
-#define USE_SCHEME_STACK
 
 #if USE_DL
 # define USE_INTERFACE 1
@@ -88,6 +84,17 @@ extern "C" {
 # define USE_COLON_HOOK 1
 #endif
 
+/* Compile functions using *compile-hook*.  The default hook expands
+ * macros.  */
+#ifndef USE_COMPILE_HOOK
+# define USE_COMPILE_HOOK 1
+#endif
+
+/* Enable faster opcode dispatch.  */
+#ifndef USE_THREADED_CODE
+# define USE_THREADED_CODE 1
+#endif
+
 #ifndef USE_STRCASECMP   /* stricmp for Unix */
 # define USE_STRCASECMP 0
 #endif
index fe2e7b4..547eb17 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <errno.h>
@@ -30,6 +30,8 @@
 int
 main (int argc, char **argv)
 {
+  char buffer[4096];
+  memset (buffer, 'A', sizeof buffer);
 #if _WIN32
   if (! setmode (stdin, O_BINARY))
     return 23;
@@ -49,10 +51,16 @@ main (int argc, char **argv)
     fprintf (stdout, "hello");
   else if (strcmp (argv[1], "hello_stderr") == 0)
     fprintf (stderr, "hello");
+  else if (strcmp (argv[1], "stdout4096") == 0)
+    fwrite (buffer, 1, sizeof buffer, stdout);
+  else if (strcmp (argv[1], "stdout8192") == 0)
+    {
+      fwrite (buffer, 1, sizeof buffer, stdout);
+      fwrite (buffer, 1, sizeof buffer, stdout);
+    }
   else if (strcmp (argv[1], "cat") == 0)
     while (! feof (stdin))
       {
-        char buffer[4096];
         size_t bytes_read;
         bytes_read = fread (buffer, 1, sizeof buffer, stdin);
         fwrite (buffer, 1, bytes_read, stdout);
index 27928f6..93208f4 100644 (file)
@@ -22,6 +22,8 @@
 (define (qualify executable)
   (string-append executable (getenv "EXEEXT")))
 
+(define child (qualify "t-child"))
+
 (assert (= 0 (call `(,(qualify "t-child") "return0"))))
 (assert (= 1 (call `(,(qualify "t-child") "return1"))))
 (assert (= 77 (call `(,(qualify "t-child") "return77"))))
   (assert (string=? "" (:stdout r)))
   (assert (string=? "hello" (:stderr r))))
 
+(let ((r (call-with-io `(,(qualify "t-child") "stdout4096") "")))
+  (assert (= 0 (:retcode r)))
+  (assert (= 4096 (string-length (:stdout r))))
+  (assert (string=? "" (:stderr r))))
+
+(let ((r (call-with-io `(,(qualify "t-child") "stdout8192") "")))
+  (assert (= 0 (:retcode r)))
+  (assert (= 8192 (string-length (:stdout r))))
+  (assert (string=? "" (:stderr r))))
+
 (let ((r (call-with-io `(,(qualify "t-child") "cat") "hellohello")))
   (assert (= 0 (:retcode r)))
   (assert (string=? "hellohello" (:stdout r)))
           (wait-processes '("child0" "child1") (list pid0 pid1) #t))))
 (echo " world.")
 
+(tr:do
+ (tr:pipe-do
+  (pipe:spawn `(,child stdout4096))
+  (pipe:spawn `(,child cat)))
+ (tr:call-with-content (lambda (c)
+                        (assert (= 4096 (length c))))))
+(tr:do
+ (tr:pipe-do
+  (pipe:spawn `(,child stdout8192))
+  (pipe:spawn `(,child cat)))
+ (tr:call-with-content (lambda (c)
+                        (assert (= 8192 (length c))))))
+
 (echo "All good.")
index 8283eba..72afa99 100644 (file)
   (apply echo msg)
   (flush-stdio))
 
+(define (log . msg)
+  (if (> (*verbose*) 0)
+      (apply info msg)))
+
 (define (error . msg)
   (apply info msg)
   (exit 1))
 (assert (string=? (path-join "" "bar" "baz") "bar/baz"))
 
 (define (canonical-path path)
-  (if (char=? #\/ (string-ref path 0))
+  (if (or (char=? #\/ (string-ref path 0))
+         (and *win32* (char=? #\\ (string-ref path 0)))
+         (and *win32*
+              (char-alphabetic? (string-ref path 0))
+              (char=? #\: (string-ref path 1))
+              (or (char=? #\/ (string-ref path 2))
+                  (char=? #\\ (string-ref path 2)))))
       path
-      (string-append (getcwd) "/" path)))
+      (path-join (getcwd) path)))
 
 (define (in-srcdir . names)
   (canonical-path (apply path-join (cons (getenv "srcdir") names))))
   (let loop ((path paths))
     (if (null? path)
        (throw "Could not find" name "in" paths)
-       (let* ((qualified-name (string-append (car path) "/" name))
+       (let* ((qualified-name (path-join (car path) name))
               (file-exists (call-with-input-file qualified-name
                              (lambda (x) #t))))
          (if file-exists
     `((lambda (,(caaadr form))
        (let ((,result-sym
               ,(if (= 1 (length (cadr form)))
-                   `(begin ,@(cddr form))
+                   `(catch (begin (close ,(caaadr form))
+                                  (apply throw *error*))
+                           ,@(cddr form))
                    `(letfd ,(cdadr form) ,@(cddr form)))))
          (close ,(caaadr form))
          ,result-sym)) ,@(cdaadr form))))
   (let ((result-sym (gensym)) (cwd-sym (gensym)))
     `(let* ((,cwd-sym (getcwd))
            (_ (if ,(cadr form) (chdir ,(cadr form))))
-           (,result-sym (begin ,@(cddr form))))
+           (,result-sym (catch (begin (chdir ,cwd-sym)
+                                      (apply throw *error*))
+                               ,@(cddr form))))
        (chdir ,cwd-sym)
        ,result-sym)))
 
 ;; generic name is used.
 (define (mkdtemp . components)
   (_mkdtemp (if (null? components)
-               (path-join (getenv "TMP") "gpgscm-XXXXXX")
+               (path-join (getenv "TMP")
+                          (string-append "gpgscm-" (get-isotime) "-"
+                                         (basename-suffix *scriptname* ".scm")
+                                         "-XXXXXX"))
                (apply path-join components))))
 
 (macro (with-temporary-working-directory form)
     `(let* ((,cwd-sym (getcwd))
            (,tmp-sym (mkdtemp))
            (_ (chdir ,tmp-sym))
-           (,result-sym (begin ,@(cdr form))))
+           (,result-sym (catch (begin (chdir ,cwd-sym)
+                                      (unlink-recursively ,tmp-sym)
+                                      (apply throw *error*))
+                               ,@(cdr form))))
        (chdir ,cwd-sym)
        (unlink-recursively ,tmp-sym)
        ,result-sym)))
     `((lambda (,(caadr form))
        (let ((,result-sym
               ,(if (= 1 (length (cadr form)))
-                   `(begin ,@(cddr form))
+                   `(catch (begin (remove-temporary-file ,(caadr form))
+                                  (apply throw *error*))
+                           ,@(cddr form))
                    `(lettmp ,(cdadr form) ,@(cddr form)))))
          (remove-temporary-file ,(caadr form))
          ,result-sym)) (make-temporary-file ,(symbol->string (caadr form))))))
          (if error
              (begin
                (for-each remove-temporary-file tmpfiles')
-               (throw error)))
+               (apply throw error)))
          (loop tmpfiles' sink (cdr cmds))))))
 
 (define (tr:open pathname)
     (catch (list tmpfiles source *error*)
           (apply function `(,(call-with-input-file source read-all) ,@args)))
     (list tmpfiles source #f)))
+
+;;
+;; Developing and debugging tests.
+;;
+
+;; Spawn an os shell.
+(define (interactive-shell)
+  (call-with-fds `(,(getenv "SHELL")) 0 1 2))
index 5f76f45..2773969 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 # Process this file with automake to create Makefile.in
 
 
index 8b2fcd6..9c387af 100755 (executable)
@@ -21,6 +21,7 @@
 ;; 2^32-1 as invalid and exit with status code 2.
 
 (load (with-path "defs.scm"))
+(setup-environment)
 
 (if (= 0 (call `(,@GPG --list-packets ,(in-srcdir "4gb-packet.asc"))))
   (info "Can parse 4GB packets.")
diff --git a/tests/openpgp/4gb-packet.test b/tests/openpgp/4gb-packet.test
deleted file mode 100755 (executable)
index 548ebfe..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-
-. $srcdir/defs.inc || exit 3
-
-# GnuPG through 2.1.7 would incorrect mark packets whose size is
-# 2^32-1 as invalid and exit with status code 2.
-i=$srcdir/4gb-packet.asc
-
-if ! $GPG --list-packets $i >/dev/null
-then
-  error Failed to parse 4GB packet.
-else
-  info Can parse 4GB packets.
-fi
index 5d8acbf..8f565b3 100644 (file)
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 # Process this file with automake to create Makefile.in
 
 
 # Programs required before we can run these tests.
 required_pgms = ../../g10/gpg$(EXEEXT) ../../agent/gpg-agent$(EXEEXT) \
                 ../../tools/gpg-connect-agent$(EXEEXT) \
-               ../../tools/mk-tdata$(EXEEXT) \
                ../gpgscm/gpgscm$(EXEEXT)
 
 AM_CPPFLAGS = -I$(top_srcdir)/common
@@ -82,6 +81,8 @@ XTESTS = \
        default-key.scm \
        export.scm \
        ssh.scm \
+       quick-key-manipulation.scm \
+       key-selection.scm \
        issue2015.scm \
        issue2346.scm \
        issue2417.scm \
@@ -98,7 +99,7 @@ check: xcheck
 .PHONY: xcheck
 xcheck:
        $(TESTS_ENVIRONMENT) $(abs_top_builddir)/tests/gpgscm/gpgscm \
-         run-tests.scm $(XTESTS)
+         run-tests.scm $(TESTFLAGS) $(XTESTS)
 
 TEST_FILES = pubring.asc secring.asc plain-1o.asc plain-2o.asc plain-3o.asc \
             plain-1.asc plain-2.asc plain-3.asc plain-1-pgp.asc \
@@ -108,7 +109,27 @@ TEST_FILES = pubring.asc secring.asc plain-1o.asc plain-2o.asc plain-3o.asc \
             bug537-test.data.asc bug894-test.asc \
             bug1223-good.asc bug1223-bogus.asc 4gb-packet.asc \
             tofu-keys.asc tofu-keys-secret.asc \
-            tofu-2183839A-1.txt tofu-BC15C85A-1.txt tofu-EE37CF96-1.txt
+            tofu-2183839A-1.txt tofu-BC15C85A-1.txt tofu-EE37CF96-1.txt \
+            tofu/cross-sigs/EC38277E-secret.gpg \
+            tofu/cross-sigs/EC38277E-1.gpg \
+            tofu/cross-sigs/EC38277E-1.txt \
+            tofu/cross-sigs/EC38277E-2.gpg \
+            tofu/cross-sigs/EC38277E-2.txt \
+            tofu/cross-sigs/EC38277E-3.txt \
+            tofu/cross-sigs/871C2247-secret.gpg \
+            tofu/cross-sigs/871C2247-1.gpg \
+            tofu/cross-sigs/871C2247-1.txt \
+            tofu/cross-sigs/871C2247-2.gpg \
+            tofu/cross-sigs/871C2247-2.txt \
+            tofu/cross-sigs/871C2247-3.gpg \
+            tofu/cross-sigs/871C2247-3.txt \
+            tofu/cross-sigs/871C2247-4.gpg \
+            tofu/cross-sigs/README \
+            key-selection/0.asc \
+            key-selection/1.asc \
+            key-selection/2.asc \
+            key-selection/3.asc \
+            key-selection/4.asc
 
 data_files = data-500 data-9000 data-32000 data-80000 plain-large
 
@@ -169,14 +190,14 @@ sample_keys = samplekeys/README \
 
 sample_msgs = samplemsgs/issue2419.asc
 
-EXTRA_DIST = defs.inc defs.scm pinentry.sh $(XTESTS) $(TEST_FILES) \
+EXTRA_DIST = defs.scm $(XTESTS) $(TEST_FILES) \
             mkdemodirs signdemokey $(priv_keys) $(sample_keys)   \
             $(sample_msgs) ChangeLog-2011 run-tests.scm \
-            setup.scm finish.scm
+            setup.scm shell.scm
 
 CLEANFILES = prepared.stamp x y yy z out err  $(data_files) \
             plain-1 plain-2 plain-3 trustdb.gpg *.lock .\#lk* \
-            *.test.log gpg_dearmor gpg.conf gpg-agent.conf S.gpg-agent \
+            *.log gpg_dearmor gpg.conf gpg-agent.conf S.gpg-agent \
             pubring.gpg pubring.gpg~ pubring.kbx pubring.kbx~ \
             secring.gpg pubring.pkr secring.skr \
             gnupg-test.stop random_seed gpg-agent.log tofu.db \
index 9b384be..eba77b1 100644 (file)
@@ -1,39 +1,48 @@
 #                                   Emacs, this is an -*- org -*- file.
 
 * How to run the test suite
-** using the legacy driver
-On POSIX you can just use
+From your build directory, run
 
-  $ make -C tests/openpgp check
+  obj $ make -C tests/openpgp check
 
-or
+to run all tests or
 
-  $ make -C tests/openpgp check XTESTS="setup.scm your-test.scm finish.scm"
+  obj $ make -C tests/openpgp check XTESTS=your-test.scm
 
-as before.
-** using the Scheme driver
+to run a specific test (or any number of tests separated by spaces).
+
+If you want to debug a test, add verbose=1 to see messages printed by
+spawned programs to their standard error stream, verbose=2 to see what
+programs are executed, or verbose=3 to see even more program output
+and exit codes.
+
+** Passing options to the test driver
+
+You can set TESTFLAGS to pass flags to 'run-tests.scm'.  For example,
+to speed up the test suite when bisecting, do
+
+  obj $ make -C tests/openpgp check TESTFLAGS=--parallel
+
+See below for the arguments supported by the driver.
+
+** Calling the test driver directly
 This is a bit tricky because one needs to manually set some
 environment variables.  We should make that easier.  See discussion
 below.  From your build directory, do:
 
-  obj $ srcdir=<path to>/tests/openpgp \
+  obj $ TMP=/tmp srcdir=<path to>/tests/openpgp \
         GPGSCM_PATH=<path to>/tests/gpgscm:<path to>/tests/openpgp \
         $(pwd)/tests/gpgscm/gpgscm [gpgscm args] \
         run-tests.scm [test suite runner args]
 
 *** Arguments supported by the test suite runner
-The test suite runner supports four modes of operation,
-{sequential,parallel}x{isolated,shared}.  You can select the mode of
-operation using a combination of the flags --parallel, --sequential,
---shared, and --isolated.
-
-By default the tests are run in sequential order, each one in a clean
-environment.
+The test suite runner supports two modes of operation, '--sequential'
+and '--parallel'.  By default the tests are run in sequential order,
+each one in a clean environment.
 
 You can specify the tests to run as positional arguments relative to
-srcdir (e.g. just 'version.scm').  By default all tests listed in
-run-tests.scm are executed.  Note that you do not have to specify
-setup.scm and finish.scm, they are executed implicitly.
+srcdir (e.g. just 'version.scm').  Note that you do not have to
+specify setup.scm and finish.scm, they are executed implicitly.
 
 The test suite runner can be executed in any location that the current
 user can write to.  It will create temporary files and directories,
@@ -75,6 +84,53 @@ element of list while displaying the progress appropriately.
 for-each-p' is similar, but accepts another callback before the 'list'
 argument to format each item.  for-each-p can be safely nested, and
 the inner progress indicator will be abbreviated using '.'.
+** Debugging tests
+
+Say you are working on a new test called 'your-test.scm', you can run
+it on its own using
+
+  obj $ make -C tests/openpgp check XTESTS=your-test.scm
+
+but something isn't working as expected.  There are several little
+gadgets that might help.  The first one is 'trace', a function that
+prints the value given to it and evaluates to it.  E.g.
+
+  (trace (+ 2 3))
+
+prints '5' and evaluates to 5.  Also, there is an 'assert' macro that
+aborts the execution if its argument does not evaluate to a trueish
+value.  Feel free to express invariants with it.
+
+You can also get an interactive repl by dropping
+
+  (interactive-repl (current-environment))
+
+anywhere you like.  Or, if you want to examine the environment from an
+operating system shell, use
+
+  (interactive-shell)
+
+** Interfacing with gpg
+
+defs.scm defines several convenience functions.  Say you want to parse
+the colon output from gpg, there is gpg-with-colons that splits the
+result at newlines and colons, so you can use the result like this:
+
+ (define (fpr some-key)
+   (list-ref (assoc "fpr" (gpg-with-colons
+                          `(--with-fingerprint
+                            --list-secret-keys ,some-key)))
+            9))
+
+Or if you want to count all non-revoked uids for a given key, do
+
+ (define (count-uids-of-secret-key some-key)
+   (length (filter (lambda (x) (and (string=? "uid" (car x))
+                                   (string=? "u" (cadr x))))
+                  (gpg-with-colons
+                   `(--with-fingerprint
+                     --list-secret-keys ,some-key)))))
+
 ** Temporary files
 (lettmp <bindings> <body>) will create and delete temporary files that
 you can use in <body>.  (with-temporary-working-directory <body>) will
index 69e09d8..f458441 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (for-each-p
  "Checking armored detached signatures"
diff --git a/tests/openpgp/armdetach.test b/tests/openpgp/armdetach.test
deleted file mode 100755 (executable)
index e4bbb1f..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-
-#info Checking armored detached signatures
-for i in $plain_files $data_files ; do
-    echo "$usrpass1" | $GPG --passphrase-fd 0 -sab -o x --yes $i
-    $GPG -o /dev/null --yes x  <$i || error "$i: bad signature"
-done
-
index 618f7aa..8d30fd3 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (define files (append plain-files data-files))
 
diff --git a/tests/openpgp/armdetachm.test b/tests/openpgp/armdetachm.test
deleted file mode 100755 (executable)
index 67d9628..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-#info Checking armored detached signatures of multiple files
-i="$plain_files $data_files"
-echo "$usrpass1" | $GPG --passphrase-fd 0 -sab -o x --yes $i
-cat $i | $GPG -o /dev/null --yes x || error "$i: bad signature"
-
index b0cf099..b9dfc1e 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (for-each-p
  "Checking armored encryption"
diff --git a/tests/openpgp/armencrypt.test b/tests/openpgp/armencrypt.test
deleted file mode 100755 (executable)
index ce1067e..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-#info Checking armored encryption
-for i in $plain_files $data_files ; do
-    $GPG ${opt_always} -ea -o x --yes -r "$usrname2" $i
-    $GPG -o y --yes x
-    cmp $i y || error "$i: mismatch"
-done
-
index 7555ce9..d280902 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (for-each-p
  "Checking armored encryption and decryption using pipes"
diff --git a/tests/openpgp/armencryptp.test b/tests/openpgp/armencryptp.test
deleted file mode 100755 (executable)
index dfebb48..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-#info Checking armored encryption with a pipe
-for i in $plain_files $data_files ; do
-    $GPG ${opt_always} -ea --yes -r "$usrname2" < $i | tee x | $GPG -o y --yes
-    cmp $i y || error "$i: mismatch"
-    $GPG --yes < x > y
-    cmp $i y || error "$i: mismatch"
-done
-
index 578e248..7498ba7 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (define armored_key_8192 "-----BEGIN PGP PUBLIC KEY BLOCK-----
 Version: SKS 1.0.9
diff --git a/tests/openpgp/armor.test b/tests/openpgp/armor.test
deleted file mode 100755 (executable)
index 72831e3..0000000
+++ /dev/null
@@ -1,763 +0,0 @@
-#!/bin/sh
-# Regression tests pertaining to the armoring.
-# Copyright 2006, 2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-armored_key_8192='-----BEGIN PGP PUBLIC KEY BLOCK-----
-Version: SKS 1.0.9
-
-mQGiBDnKLQkRBACVlYh6HivoRjHzGedNpnYPISxImK3eFgt+qs/DD9rqhBOSUTYvmKfa1u7M
-W4XDc23YEoq3MyhtC35IL2RH6rmeIPz7ZVK5rUKWMqzf94n58gIkgdDZgCcaDWImtZFSjji4
-TGhepaIz75iIbymvtnjr9d++fH/lFkz0HDjbOkXCfwCg9GeOjiWw1yBK8cO11acAjk+QpW8D
-/i8ftC1hV0iuh9mswYeG05pBbeeaOW4I2Ps4IcecpXhSyPaP1YiXKRqg9GX2brNgXwc3MEiq
-Wn4UU407RzjrUNF4/d20Q7N2g2MDUDzBtmMytfT2LLKlj53Cq+p510yXESA7UHjiOpRrHPN9
-R69wHmHPsLPkdkB/jRTSM1gzQNtXA/96bRpfGMtCssfB449gBA/kYF14iXUM5KTF6YPSFhCC
-xPGNMoP1uxTk0NHvcYZe4zW2O6b/f9x5Lh15RI1ozWXakX6u3xEV3OqsvVTtXupe4MljHQlX
-YwMDI3MUzFtnHR+He1Bw5lkBVWtkV7rX2kX749J1EgADwlNEP1KFRdjqi7QhU3VzdW11IE9T
-QVdBIDxzdXN1bXVvQGRlYmlhbi5vcmc+iEYEEBECAAYFAjvNYPUACgkQU+WZW1FVMwrlTACf
-RigokAWd1OqYtcOt3v829fhNqYEAnR9uUslZr6B6RaW0z8/BZZuhGuLViEYEEBECAAYFAjzG
-evgACgkQfGUzr9MtPXGWyACg066aP5SSkBHWqqYGGLZv9sVRMNIAoIEHBI1gq4rPJatYDdau
-Ni6DUTkGiEYEEBECAAYFAjzGfBAACgkQ9D5yZjzIjAlTqACeJmtp9kpfljkARhfa3QTc2Q56
-WKkAoJmUchp+fAceVeFncpFeo6leM1YhiEYEEBECAAYFAjzGftIACgkQ2QCnNZ2xmQQCegCg
-rdTsTWzaZk6gF+mtvIDwKsUx8gwAnRUbdDfOP0qL+83Bbz2r/IzPxjCEiEYEEBECAAYFAj2T
-Rd0ACgkQFwU5DuZsm7BfXQCeNVG09VZ2VnuuWTRbgoANXGIyRb0AoI/giUU4DcIpAPbcoNV7
-PzCIreyviEYEExECAAYFAj2508wACgkQ0pu//EQuY8KiUwCdHijK7Wkim2FUPU6i6KxwRH/k
-kFwAn1sOAWVOrLfRBfrNNQBANpbr5ufniEYEExECAAYFAj27vpsACgkQKb5dImj9VJ9m2wCc
-DeL9IkWpytXLPFhKCH9U9XhzPA4AnRjiY3y6AdNhbUgG/eS8Dumch0dniEYEExECAAYFAj5q
-MCcACgkQO/YJxouvzb2O5QCghtxYfrIcbfTcBwvz9vG1sBHkQSkAnj3PMjN9dk1x1e4rUD9d
-S00JOoI0iFYEExECABYFAjnKLQkECwoEAwMVAwIDFgIBAheAAAoJEN7sjAneQVsOUfcAoNgN
-xaeqMn5EWO2MkwVvVrLjWI2FAKDLnp19rJsU69OK7qHqfMeGWFXsQYheBBMRAgAWBQI5yi0J
-BAsKBAMDFQMCAxYCAQIXgAASCRDe7IwJ3kFbDgdlR1BHAAEBUfcAoNgNxaeqMn5EWO2MkwVv
-VrLjWI2FAKDLnp19rJsU69OK7qHqfMeGWFXsQYiVAwUQOcrkWi2pLp/VI9wNAQE5mAP/WW9g
-shqGqWN/rWevpVKlzwqGSqMUq6E2K34dHrFdqd/WnY8ng5zAd66Ey3OLS5x9/+KI6W9MU5OI
-WmxOfrp7PxwqLrQH/BruPTHe9mZbkSyjWIS/V+W8/lYtzIUYTd0584+1x7cK6jah3mAdFu5t
-8fr1k3NyVXFH66dLrLF0bBu0JFN1c3VtdSBPU0FXQSA8c3VzdW11LW9AZGViaWFuLm9yLmpw
-PohGBBARAgAGBQI7zWD4AAoJEFPlmVtRVTMKpEEAn0Oxl1tcdFf6LxiG2URD7kmHNm+iAJ9l
-uLXjsYvo0OXlG1HlaFkFduhgp4hGBBARAgAGBQI8xnr7AAoJEHxlM6/TLT1xZlEAnjSeGhDQ
-mbidMrjv4nOaWWDePjN7AKDXoHEhZbpUIJLJBgS4jZfuGtT3VYhGBBARAgAGBQI8xnwTAAoJ
-EPQ+cmY8yIwJTjEAnAllI6IPXWJlHjtwqlHHwprrZG4eAJwMTl5Rbqu1lf+Lmz3N8QBrcTjn
-zYhGBBARAgAGBQI8xn7VAAoJENkApzWdsZkE6M4AoIpVj26AQLU6dtiJuLNMio8jKx/AAJ9n
-8VzpA4GFEL3Rg2eqNvuQC0bJp4hGBBARAgAGBQI9k0XgAAoJEBcFOQ7mbJuwsaUAnRIT1q2W
-kEgui423U/TVWLvSp2/aAKDG6xkJ+tdAmBnO5CcQcNswRmK4NIhGBBMRAgAGBQI9u76dAAoJ
-ECm+XSJo/VSfDJQAn0pZLQJhXUWzasjG2s2L8egRvvkmAJ4yTxKBoZbvtruTf//8HwNLRs9W
-v4hGBBMRAgAGBQI+ajAuAAoJEDv2CcaLr829bTYAoJzZa95z3Ty/rVS8Q5viOnicJwtOAKCG
-RKoaw3UZfpm6RLHZ4aHlYxCA0YhXBBMRAgAXBQI6aHxFBQsHCgMEAxUDAgMWAgECF4AACgkQ
-3uyMCd5BWw4I+ACfQhdkd2tu9qqWuWW7O1GsLpb359oAoLleotCCH4La5L5ZE/cPIde9+p8o
-iF8EExECABcFAjpofEUFCwcKAwQDFQMCAxYCAQIXgAASCRDe7IwJ3kFbDgdlR1BHAAEBCPgA
-n0IXZHdrbvaqlrlluztRrC6W9+faAKC5XqLQgh+C2uS+WRP3DyHXvfqfKLQlU3VzdW11IE9T
-QVdBIDxzdXN1bXUtb0Bnb2ZvcndhcmQub3JnPohGBBARAgAGBQI7zWD4AAoJEFPlmVtRVTMK
-aY0An0oI4Fwko9YsVWS+0M3/Tpc8FB2eAJ4oALojFgFkOWYT97dh8rTQW8BhyohGBBARAgAG
-BQI8xnr7AAoJEHxlM6/TLT1xsXcAoJV/9zoudxvWy+LwktkGyCB7aTx4AJ0Z8GWmx2/C4W2M
-tSyaUscY3X19uYhGBBARAgAGBQI8xnwTAAoJEPQ+cmY8yIwJpxQAn3efnPpctMJFDQomRDbo
-7Q8rg6r4AKCq7LZmOaXvyrBF/JcYjOCLtYMPIIhGBBARAgAGBQI8xn7VAAoJENkApzWdsZkE
-iB0AnRQs0XjhpGOpR1lyEOuZkm2xxHPzAJ9Is3sG9UMOr+YS5V1GXXiFM29S3YhGBBARAgAG
-BQI9k0XgAAoJEBcFOQ7mbJuwjiAAn2wcQP9HreVLCSQruB1wnX/s79ZcAKCRcecLF+wiRo59
-JJvwtnxp2W24EYhGBBMRAgAGBQI9u76dAAoJECm+XSJo/VSftKUAoJQ/cYKqkyOLSOelU8eM
-plFiFJlPAJwK7B0HrN+tDmR7r8Hc0GrRrbAuvYhGBBMRAgAGBQI+ajAuAAoJEDv2CcaLr829
-PX0An2kfEs+3iR5qV35EQlCdL5ITZCSNAKCf8HErpT620TUhU6hI7vW5R3LNgohXBBMRAgAX
-BQI6aHxeBQsHCgMEAxUDAgMWAgECF4AACgkQ3uyMCd5BWw5HzwCdF8w3WjnwTvktko3ZB7IM
-mFLKvSQAn3GbioDBdV+j6xuhSI90osLMu1jgiF8EExECABcFAjpofF4FCwcKAwQDFQMCAxYC
-AQIXgAASCRDe7IwJ3kFbDgdlR1BHAAEBR88AnRfMN1o58E75LZKN2QeyDJhSyr0kAJ9xm4qA
-wXVfo+sboUiPdKLCzLtY4IkBIgQQAQIADAUCQpGGggUDABJ1AAAKCRCXELibyletfJEKCACw
-Yf5qY4J3RtHnC56HmGiW4GXaahJpBQ1JcWmfx7CkTqJPQveg+KQ4pfLuJvZ8v4YqPZCxPOeK
-/ZhIO48UB4obcD8BZdSkRA4QBamRp8iqcgrCot/LA5xQu9tivIhUJP/1dT6PmDy4DAV3Flgt
-HgED5niVESDPfz3Gjff5iWWIs6dM3bycxoTcFWLz++578aOasoq9T8Tfua9H8UrouVz3+6TK
-xG0rGeb2jOQOQcbLCn3soU/Z60H3SvJYHzgxlS5bqIybrjo3sAnuus/kisrmNjeFfQBdl9v+
-GnK65D1tmBa1+6a95uHb+OG4eHzIXmvnDI4A1RhRKiZ/kpVsT7RViQEiBBABAgAMBQJCo1H8
-BQMAEnUAAAoJEJcQuJvKV618bJgIAMb9Xiv8ps3quJ9ByHhbIQtBOymH0fFiodsutPrcR2Af
-1lc/eh3Ik20Z9Ba3g5V6eUW+3sjpDsjKtI1CXuRq0Zgmze3hrUTMRmyrLoaHPocrqfj2G9mW
-y2OomLHMDurcJFQkSUJioI4Kxo+1NBZmylPKUEeIEoP8UBJbKxf78dVh00ZUecwZcn9lLiZA
-TycRQ0WTT1Yv1fI+tBmvSrpMSe+0k+JS+QigvINN5vUxaV1cN6mkREPYVm7oHzPCQ2C9NX1q
-cI/Wkc38ieZw1Sv9vyPCCL6MYd/2t1209a/ZKADaw5l+mhyWUqIT6SXPLxMDy0NvPhTKdDr1
-7S5LOcKhwPqJASIEEAECAAwFAkK2pukFAwASdQAACgkQlxC4m8pXrXxvUQgAlfw6doD0JHtY
-iN9uCp2M1orLKS/zm66e9eiYPJwbim96KiwP98Ti5J+QO5hZdT3dhW2Avw5JPFiQukSc/rjT
-1YHRyuhZfXKhQhsjom5JmyFSdeIzjnz0PIM2qZaK4OfFihleQfQ8Y94wkPwYtkEXxpBQSClg
-Xk6QJEql34sQexIDM7VsREwv/eIQ73RMquat4RZP1L3h4nj1UJu/X7ey3HVVo61gH0RIAR+A
-adv59AAp//TkKUNIRCHOsIpFCXHjJsJxRvJKhiz3T6FhqFEQNF2tDJKHFV1FcLAIEZheuGOV
-fKNXgmvVATPHrJsg5HsZACg/aRFq9NL9FYskFyGcB4kBIgQQAQIADAUCQrdR0QUDABJ1AAAK
-CRCXELibyletfMNMB/49u9oQzbmTtmHaoKuvou7OA6zmrfeu5X9vV1efZgItF78J7G19fVt8
-K3e6kn0KGYVL+FTbPdEbvrYTb+jfMkzrHooxQYSr0j8Baqfh2bMuZzuw2pVtgBUTYHoihNjQ
-lv6GPtF7Y3CVWLUYXZ25yqY3Hzh9YneoH8bUVFZWxRFitqGB+noFpvm0YXrCJZ19BDNTQlx7
-5quAl4KTNOAxapsKaBrz/4PrnNbuwZBkzP5EEuEyjTM+6UBhxibXfdWKnZw6ky7k6tuUsc68
-qfQJBK6KBmVLflZ5nrd2N90Ueb0m3xfzdncBAZb43THGhi6XyZ4jvbMjvjm3MCGuUosYYbT6
-iQEiBBABAgAMBQJCyQLdBQMAEnUAAAoJEJcQuJvKV618Jz0IAKstm2VX39p4Lt4k55ZdOqXG
-CqHCFT5YYOVcnptx8dKTpHWQXpI2lUJBAcWz0IAXXFhyUbGpvS1E9T/pYF97RSSsQyTncQll
-mLbzy3fESVkGT9xpEvF7ZaK+61BKuWFpbKRdpy5wWakk0GRyF0156vxm7vQh4XI91TwXj7DA
-v6KYWdjnHcEB8O9jLw6RlD4Y6dKjb/v7vTY6dGmYYyOQVK+Bmr/8vVcNDf+tevExsytTu4FZ
-tL9yp+yHODfHP5LZk3mC7UGR/mUKFDYhuEzzIU5ozc6qUfC5ViGt2Hjg45i2T79WeSV0UHSE
-8c3JOgE3e7A71bQEUJygPC9S+RTuc8aJASIEEAECAAwFAkLMT3oFAwASdQAACgkQlxC4m8pX
-rXwoBgf+MEjA/hx7UMl6LHwheZ9qzH/4P1d4CU46SzoC/XEPqWGs9sJw0dKxEAnRZgrG1WMP
-Ml127bOHby5WWDa/xGi0siYM64F386SG0W42FD67vPK9mMPnCDIQ4xn5gGoqUUl8ZzFG0eNv
-XRg0bmMVmoZFvaUyf0uah/0dYCYplgAjJtmC3cmNuJ98PoYEVHMKKGtPW4fVf+TcN90HVjXU
-kr0GnAvRegb3ZXnte3GrOe3jOfXjfjZMyEM6a16FFuKHmykgfyX/I4tS9GqoxPZ6s0KARKn0
-YLZUuxxFL7i1VaGJR/9duyUc8T0BLc9O4TxNuvd1vd5UKVVmTL04fe0q1Bfu4okBIgQQAQIA
-DAUCQtGX8QUDABJ1AAAKCRCXELibyletfNEoCACtKtfWhAfkxLqPihQMbvwXTuSszG61XNYb
-a41gTOpjADF2jQAQ2y8oilVyr5RgSvug8knik3EitSpBOOg0o5Y9NHF3e+85r27m8T5cP3g5
-GHAeugRFDqMXXioiAw9WoyvG9ruMY4caD3gAuogM4hB/3EMEHSlMylMrXLUtbGkQKqkLVJQn
-7V/3SVG8zfUyGb0lSFaGtHFa6LaIIuvJwkQYGMT/SiK7ISqPKOPD7kKRWhxjgcfzVthqGORn
-uQGi+316fdA+JzEYOI/gGdcZsbN/KrMSNQ0DOdSRIeiATy9M0fd+8QtUPOCtaDKLYISSrm72
-xgnKbussJRxAPjxo66dPiQEiBBABAgAMBQJC42DIBQMAEnUAAAoJEJcQuJvKV6181SUIAL/P
-gZhrwepyFUhr+nlYvxeflrxgR9Yl1aNtTngcOYlFU273cs3XnkczIpkg4fVikY5s56Y42G8F
-NvqRu0M0eL5kJvYi50NNMQnf39GkZZp2LrL9bZ9n7ysWU5tiOJsxCBnaOiAg/p6vCUVN3NV+
-t8vRP1fHwPsd5tYEBqA/g4g1U0xJAG+JqJftSDRDLxfTZ16hBdHzlQ3opqMMmW5Mv005p4o+
-buh4HzQLmBHDE98BeZ7CpjYeXY23bu8oi0tvkcTjCEeBWrXWfA3pKSX5HH63nmG3ryKuP0tr
-1A2gTgs9JtLXnGFJUdVYULiQbU781wR6+9o/0h6NuCJDPmJMNmmJASIEEAECAAwFAkLmBFIF
-AwASdQAACgkQlxC4m8pXrXxYZwf/ah4IaTK3CbtqF1+4uz7VVRKemSaNg3jMKLey2simqAQs
-1JwqkLuwEgrwF7XiejfLAvX0/yFqJZkdtDFqeK0VrwOq3WIpfj7+g5B9YSW0CkasD0HUci/l
-oXQiT9CN7PAe1vM5X4X3cqlXfC9tmU7fH7kc0kULxYHAfn96nZQklZS9aVecJ0H+pqMlPoDt
-xtxweNa7UJWAanO9kbPZ/xEdSlkuqzk1CK6ThURedc2lCE+qobPpUZri1FEvMBjyXoQ9MyD6
-AFWfax9eNn1ZSRq9t2WpPyFSQmCvyGETHyvM2BBiFR6UAQUKdr+d4ZE09cR0wXpEtoqaNeJ8
-AidTEGkuLYkBIgQQAQIADAUCQuydlwUDABJ1AAAKCRCXELibyletfLsbB/0X/Jafv+v43U26
-W3HD5XdmHaNdxm7uthGzGGzATGcTAUd3/t8fyVFk2XgmUYxtz0wHUdM8GiyK0tpKBu6wqcbO
-nGkBlvC1m6Blxy+PvpJxQ2sK4ycN8ToEEn/7HCCJesS2fvDudXkvdvskXkxZprPWe7JTHNxj
-fvESUAbLLmSpNGflZnMAOfuQP0hFBQr4D5FEA+zMf7FtrwkBanXt6W65xxEIJ/239ctCsRe8
-jIQ4LesYQN7hyX6x9bP9h3tEw6+OtvjYbMH+2B/3muNVac/9bYqi9rnuGew9eAjmdmm0u8T5
-7Iboy5mUDH2wjpRo6MGU1cHe4oZscW0f9TPE+6XbiQEiBBABAgAMBQJC7UXaBQMAEnUAAAoJ
-EJcQuJvKV618zbcH/RlUtrZSBcUafmhY29s9BYycwWx/UoeJRIJmi852TguSGsoPuAYEGeaW
-WxCdSru2ibn7GPBXowM5u+4MqYqaRB695sg/Ajxho2Djys3lV0TPeSIbyZ7cXbjoSDnSVw/N
-eWGKJLwbFVZPjjC7mcGIMhE1NGGxyRO5H1Z6GA8dEP3zR0rIivklN8KEngfyLRVvB5WYPBs+
-buaNF5HflsBXl2bOP5ueThcal1PSE4HNoQXz79t0Cw7kpsWy3FyFUVVRHPyvwVpJSdYjz8Ur
-L4cD3Dj9SOPwa4AvM7WX+JXbPEIFxi+NA4R0TVxIZXJ/HX8AZj87RFxGYlTfP3GFFw+52QaJ
-ASIEEAECAAwFAkMHCEAFAwASdQAACgkQlxC4m8pXrXxGXQgAwFY5RYFHKcYkL9nDfblQDjXW
-Ictj1rlP2yPsy8dKX579ejhdd8o0TGJf8AzYRaDEpffPf/ZvyfRltqKd979GzdAE3smkrGeD
-kPuUY2rEF6Eon549Tn7omGYNueDuO27QQ4zIs0k9h4m+pE6PxPTgC5BsEVF8Hrz647/XSTf2
-G0Wo11y/KBWGJ9BYvZ1YSxwmk5zicGF4sYNktO1Yl6CGS1ugP9zitCuwSiUm+gJrMCZ3am/D
-+Of+80Ui7e/V9yOOeyC7/gqQq4okPZbdVzJ3hiG2Y3eip19ewHYlYSiLoBW3rr3M3mKBTcbx
-+nLfVOTUHp8HdqxIyI782SaZlpg0mYkBIgQQAQIADAUCQwhbTQUDABJ1AAAKCRCXELibylet
-fD7WB/9ydWuVT1DeeL3UBqqeRRN+mt5DChdFeCjJhWcAjds8R6Z8Q9c+kpKEk+MeSevKaOAf
-iiM2JBtruIxt1sfh/vVEFgjHP/M0sF1il6TwZEKqVn5c3ikMYCMXy75xheslCJoX7fi4jZut
-TO8+JqjVN+z+SYzeRrvQFcjJoIOLRnshh2XgUiXVf/xo/My+fM9rKnMHxF/75PaFVVz8cXz1
-X3jsuUOVLxnUZHsOaP9r1h3bq8uHJxkxPElVPbCuKLdCWrNOHHX6/+TAH9xohUvrBm6HXqbv
-O/aVGqf+Bip6oWSB6rSIe9+0GmXLRe4Ph3ekBvyGUJM/nFhN4hQHX69xZS7yiQEiBBABAgAM
-BQJDEOyRBQMAEnUAAAoJEJcQuJvKV618IlwIAIPbWp20TBCnU0D3kE6JFqRaVKqNAFaJbmRn
-48qxX10NmHnBAluU1iJiUsVL2kOpvf2eyFUsX+sQfVJPzmWkUU2gED/+WZNkcmxPZ72FtJCs
-hW30BcJnLjcRo8wv/6nhdEZ2JYNiBIFHxNQ6iiB7BzVpYsMp1l5tI6mIhbxYxMNETTMrb+hK
-NNAhxjrqiWxPNlrzw6TaKnBOE0Au/Asjz9n37hsPV5Q9xY3zXbff3yDirVkBC4l0Vc+U6drX
-XiFBjQj77yt6AjTYUzBZY7UuGQ0W6o/6QF3KfiC3WAoFJL7SLujIaALkALs+lFzsu3CA9KoB
-X8Ca4hA7kzOP1H76VZKJASIEEAECAAwFAkMSPXoFAwASdQAACgkQlxC4m8pXrXx3cQf9GBPO
-XIrdbvUWIKTofiwftiy6j3MhKOszHkzR9quCu6aLu/aVvIA/avTZHjfj0EvYaQaSNMWplMiX
-i2UhkPHe4cgJYkbjmXEz16GtXYPZXGP1FubQ/RwQ7yQKaVtXSCgz+ZdR5tKhU5kruxAsVjly
-KcQvST95wlqxLuvXzSCjPdWj4qBvkuEt6QADx8EYCafraIiHPRkKtAAiK0sXJSkLevXn3zAN
-6X6ngvZZiNQFvfWLFV8Rodz1vI4S6Af2MTSlVV9Vw0voJGprcsNDlB8k5B/Kl9LigeKdkFa8
-JVfwOQppAtU+Nq3pHjquEafZrPVF9HWY0G0Szh5tOFEpVMF6g4kBIgQQAQIADAUCQxQ7iwUD
-ABJ1AAAKCRCXELibyletfBVfB/9ydVsiBrNWLt0RwbAdMvHRceHz1twh+YeSnpr9Equ7aDMG
-qou4ppl/nTbnZIizdWn3dnRKt+vKY/puuPIT9kEVF7DlfBOcWBdLBvJz34eBt29BCFgvsfOS
-fwESMNKgquZmrraGpEvj4cSTOmW3DJPevB+6ajsN87BC5Qp2MjDGVkwT/Nj6R60pz/vmeSwl
-0BmzgthrBd+NfHSA116HEAF1V21/2UhA1hbkPKe40jWp6HK+GcXDC3+PucTJeS8nX4LLQnWZ
-JCr1QUbkaW6jHCw7i/pgCLfqBBdIh7xJE7d+6mut1AKtq2qUSpEM4qTvrR89DLz3OtNiMnr9
-hq7s5SyduQINBDnKLe0QCACUXlS4TkpEZZP06rJ2IVWZ2v7ZSPkLXjDRcC8h6ESQeZdBOSbd
-dciiWYiHtGq2kyx+eoltwooP7EgJ9m35wn0FGV+5hpKbhSwz2Up9oYsSbexjx/hlopUYGCL4
-kgezCUWQsKypsitJChjV8MHgePDQcF3ho+qK+0ZJeevbYKSZ9bLyzt/i3/b3Jnt0f8tsFP3P
-djel4N76DyQiTyuoOxzZJUJDKx1zr745PUMGcur79oAxuahUfPcRpuwcHFOB0yO7SwEY8fe2
-68U5/AZrGwX+UAZhN7y2MMkU/xK/4BIDY5/W4NY3EX2APAYMRanI+mFW3idui8EEzpzKZ1K1
-8RODAAMFCACOAfgCjg7cgjZe58k0lAV0SANrJbMqgAT1M7v4f5mOf5e3B4si9z8Mk1hx5cRX
-I3dDz/W4LPh8eONmMPjov42NOz8z84PksQBbnjlfZ5UCotPS2fZ2actJPhYCho+a4iXwRm8B
-aXQ3DFa1CsWdXvkGsNIouuSkGoGh6+sEgAdP6JXanM9YGTQINy9Xsg9YOj1UWInSwRqUmJnj
-aNQhxJfj8j5W0uXixzkbKB+Is92mfo8Km3TAi9u0Ge/Acb5Cz0c5sqs+oWqcouaTS3o8/1n6
-CZVmvcHyGI0APiALwU84z7YT9srpXHrjiHo2oS3M4sLxl0nuSFqD6uiIFrg7yF+HiEYEGBEC
-AAYFAjnKLe0ACgkQ3uyMCd5BWw6XgQCg7Gu7XOzqnEcnCYR7v6rub5d0zwwAoOsQ9TNDYmVl
-nW1ff9rt1YcTH9LiiE4EGBECAAYFAjnKLe0AEgkQ3uyMCd5BWw4HZUdQRwABAZeBAKDsa7tc
-7OqcRycJhHu/qu5vl3TPDACg6xD1M0NiZWWdbV9/2u3VhxMf0uI=
-=oXxa
------END PGP PUBLIC KEY BLOCK-----
-'
-
-# Bug solved 2005-04-07:
-# Try importing the attached key file.  As the key is exactly 8192
-# bytes long, radix64_read is called twice - the first time to read
-# the 8192 bytes, and then once again, to handle the pad '=' on the
-# last four character radix64 block '0uI='.  gpg bails out with
-#  gpg: [don't know]: invalid packet (ctb=2d)
-# On a read for only the = sign, radix64_read returns -1 for EOF.
-# This causes the iobuf code to pop the armor filter and thus the next
-# byte read is the '-' from the END header line, causing an error.
-i=armored_key_8192
-info "checking: $i"
-eval "(IFS=; echo \"\$$i\")" >x
-$GPG --import x || error "the $i bug is back in town"
-
-
-
-nopad_armored_msg='-----BEGIN PGP MESSAGE-----
-Version: GnuPG v1.4.11-svn5139 (GNU/Linux)
-
-hQEOA2rm1+5GqHH4EAQAi8xXorNRK4QSZR1os2xtbVeZg5pI0hrdyejn0jSnlWmw
-wqnhQnoOXsX/ZE8Sq0deOJDKhIJztVcu4QB17R0zRxXhN+huXq/DRGUa3X2xF+Po
-4bP1XsZT6jYc6RDiN8KzQkuUgEjGsQhEYzBMFgk+tFDDA6PYKRk2mn0UaTyR6NUD
-/jimx1teliNBMhrPQjbBMCdgczfUhH0srGFKovkduf+Fmn0v4rV3JAhtHPYaPrgY
-hQtCMdjgCdh3uMK6rbprGdQ2lh4PAFKd25djBJlf8KBqkJXimAYhe5Y1q/x58xbA
-R5/tAKZFKT+ooU9qjVzXA0APHBwV50/K76Rsxo0QQOTihQEMA7WIRff0Cc1UAQf+
-MZ5HWEX6+2teJWGVKMmJBFkYF4rAEIoqEmtzRWcsAPx6PFXQt5Ok3PbSGDgOsQTQ
-XwR5bEmZ6Gd/O2xIM4BnwKQ/g6PxksPuni0ajZS5YWdoGY7ZTS1LpZMFj++fhtQ9
-1hd8j+i4P+GA2+4TUxVVFwIbHDT58+mw+tYD0KDfizdSwVc22F+5nT1tLaKJVvmu
-VX5L9u8OY6kR/xP09uCq+YzzHt1bi49Avrq9PpV2wbo2P0t7H+3bI92oGvpMPM2L
-ONAXyh11dlQkIrOiVztWtTYIfoCsV7Ud+25V+jYEfd9hyE0gf4awgqhpLwPrzzAs
-aHKQwrjlMaByKKht2teMJNLtARZ+7LbxgF0TR/019x4+XHCBhmwmPzL+OnPTC1r7
-fdB0kte5OefTUfglJyz9tD9QnrvCvuOmKxcsOu0C6NLUqZRJN9knhLBZyXbwx/Cm
-yA60Er2dGssL7e4pa+qW2O/xJRL1IaWpgZa6Ne89ut25hbEDWexCAikBnPUrwrLE
-sqWOepzPNGxUILOcjDV2jKq0t7XKfwj6UPoCQxY6FQpx/0goWllh+PuVLz7tazsM
-c01KGfU61j5EyyuytOkJO2XgyXZj6Zat194NgsMrNGBBWl5QSGUb5W0jW1bHm0Cr
-U+xNTvjnlVZzqy8w3GDr2bCWi6qJs20TrbsbDa4+sK9+WDJ2fcb6LzfTGOekbvyc
-OKyYcEL/UXMH0uYrReRiH/gheESZqyQ1kCz+/q01D0N0KBqj6LHCJyK6cOukrY5M
-Cd+Kdk2gPL5VP0FSVJLoFXfbfwQtjIkbhsP06sFOBszPhd8bh+/r+RKWaqQvHJDX
-u5XqE/lJfBpNd+NBPK1p1fMVW/ljj3EwsJCdYOxh2moXD7gcehbaHCN/pFxD2Xiu
-wFHAqTghAtge4DuIECN+8QrE6xgCnwx1TYlhd9T4f+OqTcn/RdSrGcR/TtQK7TJY
-R2zVvj7vougCx5avrNwmJNX2DiJJl/nDHmjzEFByFv+UvL1PUn4m0dsbyx8alixE
-dw4wl352n/ZpjIc7GdLeusuUPJ7xFY3r1xS16QuInhuj+ZIlPVVeo1vI29BxGP7n
-HH9JmewN57O8xztGeBSMb5dZCSsGaiZtT7TdF2C+r6NgwcULzpgANVMVjNt0U305
-ZhTf0FxH1LFTDd6IH1ry3EABCRQX+NDi78m9082QJPw0u46P6fchF2xW8MlJHa0W
-u+G0+DNrHXUFZBxt0yG7YqWYzqezXX/9ngin/W0o3Myf7RdHxmlwSm7fUuz2nYTn
-0gpJqmu1MdDN5wKxuIO3qMOoG8LGJwnR31sDo9BG+8Hpp+yxYMEMMpmW33otfYcq
-Qqt7L5kWYDrQb0jGr52hS8fBujYi58AY++a/RqddFkU4c3kgA11A2GNqsbtxw7rU
-jN1uqPs2bQA2HqEdlL2ZD71E8jZXztKxMIHyXbJuIEt3GOywJWeHNi2vZa2F4tIw
-bEy12FJXLW/6Dac7COzqVILjNH45S37JRQCc/0kAJV1VWMyhuPBU2LoPwMhdXiDm
-k2vznYlm2cEuvFL/6DRm32Dd/YaA0fw3S/L7nFyuA2FVJjs17XiIRdUemxXt1kC0
-1KPjNVekwJph2YE8GMyyV4nsuf5yGw0wJkXqRYR72Cf8mgxc6rPIS0panSWlAl1x
-5TMf9pEh0TUkNENAbxFazsfpG1RTEVzjpeLXrDSK84O3WW0jUHoG3IyP5iVli3g+
-/HPmOdd6+hBVZq11BcA97xnozZE0d0zFCVkpp2bcK/69X9NC/Cl9FTI0DzdoWMVL
-XTwmOV9BYsXAjJLXAfQR2eDrunaNkZO+rr3KT0/TtqhpcCo2AdP2IPglVRcYGLlr
-SUoF/sAtUgFLGnVnURrkAnKamSs7KBx6J4Y4uiBUqMxX6L4T456FBxHHMQNy7cQB
-quyVixd21NB+P8GYdwb+KLpVjiQRdveqDjBJEn/nTK1yKAhq7SY8B6StVgbzPcmQ
-Pt52HkVTh8a45gxvF8qGWcbhw1E9rwVT6yPFJXQiR/4ciEFFEfqQkYzNz7wVstqe
-R0Uf/rqwBdUCDpPzMPgl9OPKFMHNJ2tfYYU4kzfzdxBb6aKJbOX8xkxrhmktyUaE
-Ap4b2gngCenXf/1zrVoyH8+KOQPZZXlnUK1HfIERZwh2JlmowLvobMlup5zL/+s3
-kRsnxRLbJqn0tYYYFwKsGbEqHZUpzbWR6TKNsJvoRlcgOKbAqel8ggFXiSc4co/f
-VZqk2IPzaQCkTyAU+B5Fl29bTfB4LK9gvZlY63y/VFD2bEBVk36pI9M7CokAr+00
-KvAKEzpmSXN4RHKwJ0W1gZz4IGPKvi3eO6a35wd47K2tIS5K3IfTjsIsUM+agh37
-7xJiJByfKgA7ardssI1xeG46U2iIBvdUNeQe4Q2ODF4AjxczK3hJwBPg55FGkhll
-dIDa07ZsOTB23LpoCejKi4zzn5DsDNqQLaYaSP0Cud6DOuSsmUFHSHSo+NtzqEQG
-rm2o1LkZwQ85iDf1A3b/pzHBf2xhxEEdtMZ2yfWxPJvz+8hsasysqPD8BTJIy0jn
-NzmXJKTj8ll9IhQjr3UBCZZXWUPNbrl3zKGUTQMXbdUIV6cB6hjLERILhgm2VhKR
-eEOFMaqATMKnGETa03l6wDhWDyj7HbgzgKkveHJ5PDFKz+RJ3sIwgKD4LoSOYtZr
-MGuHzMtiFSx+42ZitFm28G6rzj7NUVA+FHvlkogLWCfrXkNyEp0F3D/qbg3S8WS3
-WrdUbLwbjFRSHgkdIUA4yIjCSmRzupfpvXS3UZPFD/tLZicU0ogfVL/2KK5WLYW2
-03q6egJXqYX1iQSOTXwx+Msw9zVzwcAI8j7KKDLVv0fLWXSMOg2ondmznb3s0Y91
-iaYjf7iFhuGH0hk0rTc6+CkxUhet2GeBc51G5XuLt7+Pgml8k7bZHU8kOB6etEP2
-i++7b6uCAhBW3o6shyoRgJNYJmzYbThfIx3yu+3vl1gkSxSQFo4RpEmk8VtjUsio
-tYJNRsAq79wGsyLuPwLKPkPihjGEf488A2NKuVnHB7051oU9hWbRGCVhzdOnD04Q
-HKzZVjt2HyI0v1sY/Nq3BqVH1Ha1CkmySYeeKXRgVQfD6RIzfd3Dgr34+rZqF3qD
-MXna3FeH2W22dbZH/yA+KuQEjU+uOOk8QQsqXorunuyuslrOmGzaDPILW8zJeV+v
-tBeecStyR4FdtWl1KH7YTdFDkeGKOQeBAKYpyYUKr3s1grPh6caqgF1FMNL3Qw+s
-x4d0zp9efHkGqhp1az97oNFBzGmsBD759iPu44QaElulO3OAPyn2GYZA3NhnFX7Q
-uGtFLSexLpVTlVyBHf/QeGJk2lkDuOegiAkW81lorVF0+gFFae/HIOnEZgVK0/Nu
-h8XNFvGd7iKlNhfLtRbKPqHYOtxxGC7gpuSa/M4kgvTmN78QonKjZPDxhlDhYE19
-WOHq14t60lZopVLY1bQREvem1K/RmPk8lak+uf/Fa+UqZ5C33m6kmbM8rwYmuSs5
-Y3M3mR2n4tsTrXEO1AN1vShuIJoMEJ0ledDJiWKkLHRZ/SJOBLYMM+F3/hliWB47
-eNkfQgo9JaTiNs9SBVVcxWYEGUieAZjOekD74oN9nOLVaXS82kQostloXhPHvBG3
-gKQufi48gOj1i7REcTyhQMhIXa/NQ80aKZEedH+qQvYTTNGe1XIJnRILyQfirtgX
-2m7PTaup+psJEOP/+Yf07G5KzN3wtBIXi3Avlr39ihdbuORERUNvu6kR2psvlXdQ
-otIijpBJW3Ur5yTpnTUo7chSlWFzbmVYv2cyXPrQc06RSxzrIQFjyTKI1/Pf6Aax
-wA7Uep62ga5r3IuR26XfaxunphrmFwb47EiFYP6JaNCYW7x5y4OGl8w1OYmabhwP
-azJsUAAem/lXZpPjx3s9meC48fHpuM5N9myIuRlLN1Rtl7EIG8cuZuubi+VUEhWD
-byap1IYIFZjWnS22/yuw6pzyNk5Mr5ccyo5xxvg1ZyC5rondGCcm1egSDcrHXQsE
-pR+jKBcR5AUKBhrgSy+N4HHZvsah+eNnTIZIm2Hh92vTLZZF7u3lW3mlePp4/zAt
-VMbn09ET1qWaIl9xMuHDIfIsSXMLsj4+o8qKaxipQ2sjFjnsFGIK1cAjjptpoUYU
-CffDWoBnLGkFSVTTooOQHuQhUmqaIv2pXWid/f1smPUjkshLoWiPoVl9lLzvo/XH
-NhoJ159/qczMsiosx3Y6e/haFlIfrklSklJCO+j4N/PYW+vyqYg/O6FlWF3BPRhp
-qnKwe+KfUeAyXQKG5CkONWBmUAhuLWOLU1P5280iAKHnOe3YRxkGIpsFJlIA9dIX
-Lf8KW9zFYMS5J1xysSyYtCwUfa/ewpRY+KuLAH/3wSbxViuhwJ1aoS2N6m8hkTqy
-SODnP5Nz/n/EZi3wWesBnz8oqBdrwkOWRnfFORpRkAedcsd9XYCbF1dHozHBdY8Y
-uu8N91ob/5c4RmP08Q5ama/BjaxskdMH3tw7kW/7r9tpzS7a2SLLzbDnyycZjknV
-tPr/xi2bmXHkUNnFwsTL0qvIkcZpae3k2oTwgNrjczqIdYGynflOc/gqxVeBO8gk
-t7mqZ5sCOlhqPkf+/1EY9kVwS0lh84yV2SskkuhEOF5BZP7IgNTgeZlgTwYRsGZq
-R40pWhW2iuAWfHop7NkrIWRvtyVtVtzwqtTLOs4oNrZU6f8xh+1asPdLqp48h53N
-wwS3AduoX31189s/ZnYUR74dfYcf3JehKyBTsfPfq+8rHf/LOHc831bavHQ4ncnW
-f//8T5Xipbjo+WX6LQxr9NnCIkZaJ4cjET+SBvEf2YGRjtG+3jGmWdgAkZLhWJFp
-xqhhOorpOFItwHiYIqsy6WEcEf2hEAww7NnC1qNmglDXw2ou2WOk/WDL+Oya9ANY
-1HAaYrNmyjZ45GXvt9/ISzeiFaClgetu/zmJTe0IG7qxuOsd0MG8DugeFwUDZQrq
-rrVL4U6Z9MZLQl/DAYppnxSmne8vQfwHQqRXoazaIxAh3/uWh/w220YuSIHJt8Cm
-a6J0w6YlQtBmaeY22/rbiOJLqAMtBDC4cCAp8nSuxZKdVTpJA7axQee6lWTzan5q
-WVyvyIkqq/4iuU+WLDtHV441cgnYENyZ/T6jrHwrX1AYIv8d2Bi179JVa0OKO7di
-axMS+65agfbswB1wKRU1QYin1sDQUMPjGbEtP0reyAFwpBlmA38rIg3j4xr1nm8p
-MkdCKOdqZw2ppWDTLFqqM6iUpTiOUZLzC80si8C0VYkTCZkCRze9QTAD3cdfITZZ
-huiHO3K4pS/6ao4QJtr78B4yyUMST8isRibuvqxQYaEIgO7DkFjD0Vh815jkydXB
-Mag8MjSydC3MuAYFtruOm0H2OtoBsY8YBbeQXeC04U49P0ktYYI7MNsShhfFxRtR
-kXV/PldGwhF3egUjSjk5UBiZEUDw39PMiWy6k/uM1KiT6AewNryw6j5SqqzeWynh
-MWAqxK2oIV+zhoR8EaX1sIZ3LtPeDi61GIaeKhnv88FhDQDX+pjm6I2qKgXhnYxr
-TI8YqfbGXGpCZWk13AL6CyYqSzcLeJYKInETPbmZ0D/eA00dKvDUcHnt4UEpuVHq
-XUHETJR1OEF/xNF2DyXBja1+B8fGfChRMjmk2J3YjmIcg1m6svC5r3Cti7WpbKIs
-qldz+u5QKRbAbj+izAd9PEHbJ7azMlFHyL1W69VkO9C2u3qYF3Kx4diDAQFVGisv
-6wVaT7kZod6Yn3dkv19EicvCnfyq1vE511OExvi75E01iznFRjdXIjCOpcsbVsnS
-vbdCo+TnLi01Fg7c4Bp50VMxZOKwvY083cxbR+csrf8z0TyfuaxPsy4YiLhv7SMU
-5D5f85TSgP1j1Gqy2vCqqh5iegpi9+JhO2efZGFTZTyuCsGiIzC9CyQ7BUPHTz12
-nvFa0pYNUjFHJD0FN8qVMVVOgl2SWldRaRD77FbcLsyiS19dFgnvbxXtEdW5OPD/
-AdxCM5PtrJymOijry6jKs7oU/9jZJMw1sooVjcX9Xo9e5HWRqawTAe24nhwzlSRT
-3GLcU/jTOmsjq3NLbzzC0VQb6/nqkN5t4f3JJj6jzRo/1lxKhHB4c+/CgVtQ3GPi
-aCjiyDt3qey29K5lMNmo+dIMtIh6Sf4klKSOlh3oT0XgM1WNNeJdFt6v344vxOrq
-/jw3tSMx9vRMDv52bdtCzzcfkVlSYLPlhS9ErBjaICVWqfaFJMzD2euHmau0RuPV
-S96FiHJfc4t0Lgb75bwIXA6a0SSS/JrDRUynBr3kmSUDJs67i3ULJ1rMV553K/3g
-xOBRT3t+gAYbl+5Dfu1+btu1MkmpVA1duQYcVxO/Mw2asc/kvXA+rGrs3FsScGmD
-Kr/1yLfXvM+p0bYlkCfVoOVEqfU83t1+5Hxp3PlqYwzxlBPx4rgofnDRyeLGtu7j
-+1rZ8m1W/lndkJVf445LqcXWJy8c9V476LXpoRL5oNAQkEERDK5NHS45TP7cYFId
-0xuLwCQQ5hh3cBw+oBSqRZmjiEuxSArhBaw93S5SM96dXhoAmXEiipNbIXO53pqa
-jFeb2kVctAeNhupsUMql4nocwUYWyi0bMBzJH4eUakgBShxJjtAD+k2SEFk+nCVL
-76fVSxUwmpdqOTSMNo/L0CpG3zHU+CflPBnmSXFyTgZD9F2FJCUBWWdKst4bHq0T
-qoL4Y5Wqj6YK8QtZecrqigrayOk+CEM02C6nhyM7Hdt8sWSPtpWGkF85Ksz9RCxF
-QnfIQImjM9Qt6Hd7c8EOxpgdZufvD10vlELH8O5U+TimCoCaViiTcH7p9BziOI4b
-18d9bgXkj6GZmS5uOSBsMIF+uZjKQxyMgwzAaEYHA+vlKPS15rDDtlDNGWDHfNik
-hj7b/FesKCBCdqYpxKWmcHgX4aN7MNMTy+HroF/XVAPGzxGAnMS6oFahb4C/o4be
-T8k1mGhTlTQRWMi3VI9LrXoP1MsH8LwbaPSnSo80X5sbgZmSlctu5QiSaFm0kYc4
-HxMR9fJzxZyuXM/IbXSdlYCc04xwNO7hrF2n2HI4x5BR7fWZSl/E2yfpxwdBtcBf
-l2amxpmIjusGprhGCI860vpQxfyWyTfWNdMX+OFL+Jsgog6Qm8A6bSaNTs35Dkf9
-TjvTPS3wUPwDbTuk9++zPiKt5h85IOFaFzyjC/u+C38IvNmvUUcYLha8GEVz4OnA
-KT7FrOizC7pdyrqbCIJhoZsOzk8romND67wXfgIWZXYMU1b2K81jIFSvkVwrXT9w
-56vollH0x8YJD9xC3U8QcMDnK3FwuOrlGxHY8BfNszCV/OXpT0qlBVC/gywaq993
-YJoQOWugT4CWpmSqnRLjTV3gJTHH+qqQZ23TsoVE9WoByXj/yb14FtdRq9oGL8H4
-Ke03JNOkAlwzohG0XEsoHLC9+o5x6KT37OtLuds2bYV+PzSRVLJjsqNL3C5XSp/a
-nfXTim+6VIANM25jzxfCcot+VBz13fhwnaY3Am78ZEjQVmJn+Z4DbWIIIc6XGtBG
-eNydm9WNcZ2jF64aMN62DBp3RGqgnhE/qXTv/Sw0l9qiOCeWJ5GwqU+Bj08D4/6y
-6xBaaWHcPqCNuyk7pPG/tN59GVUP/jHEX77Z2kn6RiLbnKahcekaifolgBuhgiw1
-/c0fbWmJZVCUVhVPI7fHTAaUIO/VrK878WkSUWL5dRvjXp1yCvAxeYffsdwamPyQ
-R67h7sHAPPtYs9XpIjZxTzGF0YDFc+mpfYykLvc5ixrcuHGo3Km/hzdjVRhcCydM
-CexKFEHqI97u0Bz5aNW3tOE4iTeNth80tl2rV2PsJoK6FRkdGgFGdIsHZkhy3lsG
-GwGcp4bmAawGB/MmjnIQRPeVaSobJSln0BgP/j77h+pe+eTswwxBeCh90umeE9sd
-dFfKQNzuZvd5heYwzbLTwlWbNn8wnB/nh/Jh4O6w3db6WDi8Yl54mt1OSFNVjT9b
-1rM0CfUDFDk+Jzd3fwY5QQDy+Dy8oPm0lm0xCj7mrzmlVGP5JmLCvPiJUTPuybdr
-WlBJe9T3Hyi5xkYgl9P6Itxho+qHEMUYa3ScBBC8Tvl7y91Gp26CIfR5pQxkLKmh
-KI2wYSHF9fytr5F6imJ6kTocxq8T6UvVgXi61pWScjifnQdQBYtNcsmu6F2djNAF
-RIunpWxbcq9b1nuQaMx6aQhYTMnau/ApeW6Y4bbVwUHyHCWMwy4TiE1ifFrvOYzQ
-Ph3WPsfDJ7dfvHfN7/Vr/qF3mcORScAfkWa2yhVitoBnBMJ9fM+q6Qrxulp8xOqH
-0UwdTA/FSaIApZbIHVO5xquLVXDD8Hoene6GWz+wep/oUqXc2k1wl/8XbhKlS29z
-N6vJZ5zVJqLSWWyHceh9L1fd6ycHaNeYkPSAGBA5IluJfm0NsQHGW6LyGkkpnFVp
-mmB+crDof/RHYDU/ep3I+BP27yTFw+j4vgELB6XN689kE2dWetrINmemwilaFoNd
-eDmVpKbQR3J3WD9WNTseI2OJtZn/E+W8mzRkp3G54nGVq94nMYqxCMFHSGQm78iW
-CLqjp0uNPM1NUdAH9Y5jaWF7NzBQGh5H3KLqvn95ynwMbWeFEZ9tzjLoIO3u3qzJ
-eBlhnrM7JnwG/8XYatKQ4JaLteyTdYrlENwmQa0d41kuWiZYGGar4Jwqqf/Ma26V
-UR+IXP39j9agKLjzDDJJgt5Z0rknEWy8wQMhIY6WiKYpYGH4c9zrYtdzwRU7+w1I
-h85xbqgPMTSVlmRlgn81vpljz61Tw2hkb1sUB2uqgas7nwUod2+eiZWBOKDl3awq
-u6kwgp94M0opu9t5xx5oJeb+WdQd1nWo/5E3Pdp1hNPwFpqW0TjMgAtQHmXy3r0r
-sI4pjs5PS6JZ05D5+WR3GA5KDA1cCMq3kBDNhsxqUeKkM2BNuq/J/qQL1pyXjlwr
-4dqR7r49Op0PDIkkl5BEUOXLjLgwAN+TRMhu52vdM9V1jTBFG1hGFd4M7+4jOviy
-jaPsJyzrhvL0tkvxpq5eQUJRqMqqqrJd16UmJZef/xhYFuu+p6sr4oNtE+JxuOmE
-JgaC8I2HM6mIBq3VV4heR0CZUzP1WYk/iv+Z8WmYMTa2AVBbgwHlUK2fhLci8uPp
-tEsLiwyWubB4elo2VLxvgXPaBROuzqANnGSeFM9B2XZoGejAVsDRk9/cfzHunHcv
-is98xkuq9JRtWPdNIXgKVIvP0GuuDP1CNhdWR7XULqMZbZmq6UWsUwRWfPBZ9NM6
-rag4I+gpwnHPHAK3yBe40bgw9J9pSJVClNkH2RLoA4t7V2atSQOatLTP2JictUD1
-2R9kaeRdQ0XHbRe5QnvrByFy1noidLgyv2PXbZMHW+1OyGKMfY3eKa4/k/Wmgw+Z
-QUaomeAVqguCRQB/8QBv7f1fLJu+ZqhjhQXZoTk0MdDro40fTI5wxxg/yV25sw42
-McPy8dR14mKAXocHpYhP792wVhemaBPZC17LXt95xLvfAOLDz/ORalrUHdhwUtZu
-VKzQcxFhVp4aOCYR8gFgMKYNwX5E7I0ixfoTKf099fqwsAvKlOCqnoOuzFnRPrui
-XNg3CkWkJqZG4UgLE9mL0l4CAZ2J9kbleN+4YMLQUXFvlk74Qial8hE0QBIdCCyu
-6huelLEGsUZd+c+VsEQRUfq9sVUONGcIt9LQGFb/IYQoko87E1RThq2b5D+R1R4v
-AWMIJGit1k0F3SxYdeUEYTCqpUddXtjhjSUGbzikMU/PbmyZXFu5PHMK6L8MVoWL
-ZQ2TwphlVTo/gVz7dvW7KeZinnHB1BE2EOoSfhRukO2ckRH+bzuwC76xczosPLGn
-LnYQFLqpYBDN1uCrvoyaV4S0xhgHsfl7kyPVdoqDcoVJSik8uKu6KSCUUyUbrrjg
-lANey8pArBpI7x9BREUnGWNwZS6s5O9giMI58xljBm9wvu91fqGdga3qrv1QMgQg
-Hytb/q+OAgQaQ1wIJpZbKliWz8uqPk41fsDy6ZKOO6UXYwjOg822Wwj7xSpbSRf/
-lhegSXgfihyeEeeWeMTLDWI+N2zuj16zZSCyQHqaDS+vCkMkAXUtJx5Ia3maBHAK
-m1UMTJD6pP99zIqum5/QK4QKEk4rIvYtO0nTOW3L9fos2a6Cc2FouFon0Sbz2+IT
-fVM7zO7RBwI+xSyDmV1nc8C5VyKxUlAAcuqVKEe9YnG5pwv3ogPKQZ0TqSp8zUCO
-YOxHkG4F1kxAXHdrVarP+BYQuYIru1ZFovUQ5vYnl/8F3/7cuD7opnO5hKBr0tvD
-6lM2PvPpIzlOVDiNZSZDHOfmYWWVlq4uzzuP8tG3tLyYBGG/AZuDTA7WNrOGTSSB
-ZP9FVxvNT3kaxGHmjO7lGA1FtjRmkMJr05EWMHHvatvRcDFBVR1thxLkyfneSWs2
-orwnAqkYe8Fz9U8p38L4UC+J+2EZszHAeSO+eW3jrqZuFYbckROdzhktdUsRZcdL
-WFpDIN5zINOo13q2Ei/nG2kIlYKp6Mq0b+wN4x/ILkBWnOuzKXOY6dSrRr4y/zq1
-dpr4ZfQezvsLNh8zjMolwXYdLj32Rg8cgmq6bPWIm0k9Qbln9HCBTO5VihgUfvIe
-edpOxvSi+HpgIGnGl1M/w62z9HnZBCIcgZS4Z3EPvi7CWQg4S1aOABj/mri/RBh4
-k2vx1D0EQX5gBRcbgIGdyFyiRT4cAdPiXyje4zLIl0XT+v3/+LJnX7NPWXLPSOM4
-Skq+fDvzrFQYdZ7yefdxIujVKdI3iuo9dWTwITApf/KYop/M4vb5CJfa12Sig+VA
-k8wdIDwXkklbOvpe468KAtTdUyoluuoROH0hXNaypKHBLMHk0JJRVB9OxBlIdQSs
-jEoUZqQF4Kll7vHSC2sDeYfwiuBp5qZRPet+ew0SdwZfVmXcvjVKr8iPJEtr07Wj
-CtyMi2+yw4G4X99em2JJu728dI4OWPUeyuR4x3dRf1fM5OshgLYxEJl0CMDqKVr6
-GqJ/HAhj7lLQ9k4NOLn/RgKt65jXrjEJB+IHFFitqGu9qLKM8QkMAAKwBfsRyJiZ
-2e7aMj3w51DrifRL7uq8WZdP+RzvNb81WItRtVBQecHnPHrZI9Hwq7guxlzZTOT1
-lmUYNC48LVuq+aZsaD5i6MmT0hXCTC8GC4W+KAAqM1ZkHi8sV9zztWD0YCxmvjpi
-ldx0MTVU8dqySwvBFK0faO31pG1rf8qGVN99Ys/pY4OWGcnbDwGblWhhYlJYZ8uZ
-7IHt+0Zh3hpVWtOAttwifKXM6bGRX83O1FVExJhXkjg3zrklxNv+3baMHKrZFryi
-uDtE3LLbc5ypK1Afp5oenYpUiQwUeJ0fGYH2NT1fEc8UCRqmvcJGSc/MmBiWRMQN
-Iz83mOJ1sP3e0dbbXr4ZcCDf+RLKZRS8AH1zRp1FoBUIhyu4HVOs1C9YBmpaUGyX
-t/c2O+1Slh7bpAKQnguBqIno6O7XB9rZrs/PXezDv/03CU5lQkYqai8SZck1LrhE
-Ta3ak+EV76QfHTQm0DiVFIMD7IaXAjyYdm6nCDxZkLN+Ir/neEC10UzcWHqNIdKe
-o2ao5YePZFY/WW0HicTH62MJDZFvgppWZSxx00IktHmTsILKgHkGgBgMvLTkRX+H
-DdAzqFYNeewOnF2m4U3Z8R2pt3/m63p3sMSYsHnpK3OKjI0trrRJHuFjgTDAwhVm
-xMimLL/8SnVJW+KtjZ+XazD0hMvBC2GzcrYr4h66iVOZI1tsFE44BAlh9LW7h0D6
-FRRkZkbipDpv5uiKoOr6qrhjf4/2NxCdkYI36cAfU2czuPPZ7OoHkLniBbUuKavc
-n45Mn8tkq0qaCfUns46OUCc4qyBb3igBKVLlDlhP6gjNNdYKNaRKsQ09bs7TUk+d
-fJupU57YoatfskkG/RPhJebLSuuvh5+Z966ZTfGSVVIOFPDdACv/S6lJN8DiD7H1
-8b+bAVMdVcXn/egeKvsNuWovYZU4DPVdOLM0E5wGGCmqyt1ygFSaUcoFVFiYfnAB
-FkIxxBOtp67dLSazZDRRcsJRLroZ0AQRl7x9zN8Z5E/OxvQtiv2C/evhntVm2Tjr
-wdJlwPysZfKqjnccXkM5pkoMN3/vrNVjCGMYrCRz2AOPNVHrTr0Hm7TAFJ6QQOPk
-xITHOlIHEBGg1T1ZI3gwSyl9WLlGRp5vyQ+rdef4zg1ycDIj7sxFA2nzBsUBm5Xd
-SgYzbnp32Nir9MSr7pHy5XFPCKVzs0R3GqfAjGQlyt9Xuxau52u194n386tockI7
-iOe2u7DPjqVXcS9Z6lNFO0o6H27F2x+dicSeHXBoWU6DBxvvjWtHG5E/9blp7zCF
-weP5dMmB3UzuL3DcIFprNGJt9kEqmN80eWQRn6H3X/IzNWjLT52AT6pKS1sowOsj
-RztQ2qAJ5md7Uz7fTniUtjp831SmxvUx49Sh7XYfNEpqjyY9VizByKPOUdUKmoXr
-fgXIfsi6yLYkoR/g34dh2JsKrC1bVtC2AiRVAgtcBDN1zFm5hiQGztq7D/aXzr09
-q9szvRnXUat9iAJjCPsfjVJ6k4YjpmQ3iX2Kz+JHHNBYD7EAW89GhTSqJJB0viM8
-3lhxgxZgxnBz8ymwhKsyu1GKzJCv3cmvTqhlHo5xpn1YMFU7ea5xm5XkYKysWhq5
-w1dSMKhuvA0dNau3XTef7M0AI8iWIXdM70447qn2Gwp0bO7f2KZVtXoYMzr51CaP
-QoAEL6FfwULtruriOK26YhmH1F1ey31xgjE0eTbxW6AFLEvYQ0OX0PmjX1/OBW1x
-sVil7+beskMwIJpRPlsx1LUc8uojLnaD2j0ymqkxCuF9G/WkX1nlyi1s/SJpqAbF
-EzXkwj+4B1wM/c6fHfxyt0wxzaTNoZi/omqG6PdXmJDnNF3DlWs5LpHQOsKKKXSh
-2Uv4055evCC9R60LgC/xONXYB4zHTlmeBNnZO9lwcT1AdQ3Ho0h7TnqFm4IBnVva
-f5DZ5ntxLyygAdRLLHR2rQ3SN1Ms4rX3CtfMGvISX14CYu9U7WaHtL1XLbfw7Q2e
-z+wf0xE2zq/cO2161rUUQ7eq4XmF/qYreQ0nBT29ell6wE0540ncv8FAOO3dWK66
-4PrGQJFY8qgZ8B9wmTuHUBvTZ6du3KI1LYGOS5yIktfFX+0UWK+kPRQnLt/ibzID
-n1FoGt4lBlDuOBq3KcVZ5KiwEbS5uNsOuApygXanE9bEIXmGDKqGIMsIz3ZrEURp
-vVMxcr5fZDhNFsaJ6W/MuN1F9+V3Xu4qgS6603JiD/TRiZwKmt+YjZkmD90p5xU1
-joRyPUNv2SVkOqAmxVV0DCEctj3UT6S6XN3eDNN5v+JA4qAJqoSdVjV8M+8R8bHs
-6bDuwPrmOrQ5IFQKC0u0AqmrxfQjNXNftN0OwymryZcg2YTpOu6XAmwa058b7Dp5
-VR11McEUfl5qGtnc8Nhp3TUdvJ0ugx55LTM70SPZqADChRwdz/LGzA6Cj7DTKtAd
-/aD3ccRN4sEXEPGhYacalHKNSAyQPSLWc8+7T2GI8KHZgDQMreHDjzWQwUydEliq
-1wgEkXu72pRArUJ5jmE8ac8r3xGukO+HbAsijgQqKPctveQbGJ+Ypv08wKJHXauq
-E11NwaijBOZoZ6BrCFG/yOrjStDSbrhqd9qVqm3QCewoA2AifcNnzhcQw5Yk5a2I
-ehhGFN7eJxFM+bkXyHMcd3j/4K+7P0WChAS0vujJdm5I8HJYNtz6AlLT+ZT91zGX
-pJOUOnguWtWKhOQ3Hkzy3LrRhjFUmpdh56zOuKOoWP3tIhX5NMZyEBe9JQCYgXMX
-MXLA7uM/muO+Ju0p6TW9eZbc0vdmAjSDXGfJHsdXwt3XuxnbFIpSHhvLTsBqX78s
-cS2kv1IIVvolSeBIFhWmpB8Z0whWNwKWk/Ze9rR+ESmmCM7ykQO+IuEjD/AdzOfC
-H85sQ5uJLcL9xtzdkQ5jkryp0wZSgbApXnKMvt5pVxbUqLkEkguuiGwvPmKvAQau
-jxnypJh+ygKiDrK1WQmaV6sDHofvLjE7VC0SbH2l6ueQ6lQBhE/26UOFKrsOmxmU
-u6fwhiVyv8tiPR5/FLlp3ZuS4FjS6ZzBPAW/8VEhdeU7T6vOvpkDUxQZGsz+L3Nt
-u0mHVaMR1NaMIc6LwCoc2UcWJSlVf8C/tjvWDY8cyNDUCeMpnadQCrxgvVhC6r6Q
-SIJXxnkRgt9QkOQYzHx+l5I6klB6npXYE02+IVjririiAdIT1SCRBOxW02o8Jefk
-lMpqXygQEb21j5LQZgFmwiQSEx5xpvmvjAn7CkWZ+RIwjnLdymz8yUAWHPv433iE
-RvkJ3XeKw6TSrHfiJtVPOVoMbILBjxLHP5SxZ6S671WN+aujWpCKeUkIwiemiHBQ
-NlpR54J9O0u/yDYhDtTWicSnDvMUJPEPOGMhDXgxzl6JdbnvpjEQhPL4/UMpQCuW
-U4kySde3ANyjUgaldWOT4omzh5KLnrBxUrfsV9uFbPnNMROliOU8fpYvkrLaAb32
-mVGbYBncYJPgeVrFQTl2sBM6UMsDFeplGahZ1pzJLkC8aqySgIDpAyvZRBXYDe35
-C5sqCCdjeAUJ+/DOQOoOb8owQR0413HTnHQOU8ZkTsuqSnfNoH6KmjU3XH+xMlhi
-8YqLK+83J9ACgk9e1BkYQA6TdJuI2Nt4MRoBdFnXP8SfpcCO5dm1Prs7hOlhEJQb
-W7vNkZdwAK4WnotcVHRYScTuqn4eA4FIPBu8Mc56QLe9G7FWD8Z7g3bgbIDmgaw/
-Zc/V/6H8jUKMlEtPfJeHFmRxh1F5nDpjJswmLAGP+xJm9WUvuFDKHo/svpUb8KG3
-JP9gu7Hy39pZCU242AH4PK3cxPifhQU88GDWac5FfbGZ3fzoIW/NdxZnhSY7WY4A
-nk9SEv3HGjkmpPGnu3AYDMYnE7XiYk7rtDBMh7ZkZLw26NH9hZeOE4sLqa7aS8KU
-/WbhWzobgS4AlIZVNTUAPPkzKnPCIUPofCF13e23d0QI9nZDTe6JktEzP86lpzw2
-kQg1Zr2pm67jC9FQcu3nUgy0/XBPaBzn3LjCIYB9DX8ZjXBvRnG60qatu/yEYDQJ
-0KE/4V47I2Qs91jjmmTY3yRkCOWR3Hpbi9JIXLuLivvMz36AYQvCrwBxXImBxjNj
-u2d6McMg+LdDrtFjIIViqFJzYSjI/dtCT0aFHN3yF2Cfiy3tvlV8ja2B7Y6w+sOe
-BByjguuUl83bDGZWZD3BXRDiKEjeNJMJT/hlVsIjH++370rZD/XMYimE/oe5m5wQ
-lL4MMw/WjKHT1X+CJs5tDInM9nyzlbwHXkF25iYwA59Fu1Zbdlagz+SmDp3J1dxm
-SbRHKDo3dPp4n3XhHcdH+H4eOdCTOQ9U3jOn5how8DnkHMGHj9NG3Ga6jZqSp5US
-GithsWl6RhTeWYI2vZBafYF75whkB/iPTbwz/SKQprh6D5XbfQ23yp6k9CY1jnSK
-qrxMsEfuJ07xN5Ri4VRn1EOEs5QXf2aD5znMFXlUrVbNRKuYJ64U92wdHjqwZsUA
-CnVlkC+NUWBqLOEWOv7J57Id84Fast/x4DyKri3hqcfw8+t9lXfDFojmHWaPvqSt
-t7Hxxr0dYIQddMF0vePV0OGNMXLAcg9wQ0Hhretge4sbWkp2cW0ESTsvNpk12YJ2
-l14yFBgLOZd5T+xsV/NG+3jB5lyXfhRYa+eTC0VbEyXAWog/3Kl4XcPEAL2rXCju
-T3Z35x7XdbMCz5GSBvsmU92blmscpBLDOUJNpQBKIHyBmixM77YKMyE5ISpQ1Rk3
-hUAoOKIicF278ToBpdWJ/CyLkROzrTuuR7GAG4hhkor76alvyxW1F1rONuWkZkk9
-kV79E8Et772+7ndPsGQ1ZLkWvCHl9hTUJPdsRMjK/NZhuytD/oMWndUewg9AUY4Y
-YUu8iqRsSyE7rcsK/LvBXbjf/LZd5orDCXyWDT7sGZfKtJHiiEHoMhsH/YNcSPKq
-KhPyOz/p4hFFAaGfhxAdSnrh91qviqHpdyT5K6J/kzrrMZm3Mbsoxi5n5hIpeO3w
-4g5i7nGJ8C+TxZqaOr5jL8qYpHN9e+Lakr3oN5pDlpvKlXNzf2de3OgyOXMkbNie
-n0tdlCSkOxh9vCSiekjcclhPzVdcuqNuTriVcZiwcWaGQZq52MGkVbmTY9+qp11T
-OPj51ZB5KbEJaSfzLvX4ju1XZWdbz5FAkt9RyDqm0cLNWU1Ue5iEQuK1fLoDqH8N
-YyJWoHavKb33jQnqHvZrBnwxUlrpbfvqmqCvdsKdsjNu6lcreQU+reRSIbkgiVjT
-jYMWeTLzoMFyo4sVGik2ogUXnVSiWGAxnvc35iB863IlIjr9iYHsiSkZ1Zd2ytQ/
-t2jf7n1chJTyn1wkI3w6Gj1oW1CO+4083O0GfU7aUJUwUACsUAXMso+EdH9uDu5b
-UIS4U2WFff2dJgvNKXZh3vdsAruoEzsk3avocj72GvCBg+qbHL8rDfaZeT5qaBy8
-xNhiOqXULKfg/CwU/ilvt+V/QTvo9WIv11f7mYS0j18GJsgaVm4Mrw7uh4T9A5f5
-4PnmZsNM5b0HpW62DCnARfkjGEObdTC0znKbSoGn4wD3H09T5HP88oSd2q+rdx11
-GFCdo3MOYEhI7y0cUBO+onZozOVJELyW9sbGoXy5jcRtah63sXcZN/+hayQiH+3s
-eLh7rOtQSV/Et1P3oDK8hrMUnNcK6+BMediPxf/PHWCGBqjZP0t4diaON/UBavvZ
-SWA/m2Utgyqvy7h5IEOUbIomiKz90OypeHd57tVNC0BNMIQHnAYvgaDrZbUHpT2T
-7LqLPpG9rffH12550v/ZCCUrIFy0SiaXNZYQiDeG5/WiBOzS0MZZ3PVIMqx0czOG
-Tx8WUcSEasnjAH+pGK16YGDc66YLnrMhyySgiIrWsKqf8NolxDd67Z6AXcvKh+zy
-sCwUHzvTgXJ81ejNWekHIaAUZnpYXe2DCKXUuEOFJpYCdn4EfgOryDwte2WlGvUS
-ZPfj3Ym43bG0RoyFSo5qnJNE1Z7jjNJKxOEIFy8NHvb46ipcY7UeT2r6R8OJLi/H
-yM/8L2op7rXw6UEPat05dCp90VrXtzrT8UgF72yGVP7Wc0Hosb42JuqxmXtLlX6I
-oOu0l7Ht4zaKMm7DGbznsqHs2daXNhJTAQ49e4owHN8zpIZrt+SbN4b1/svO4hZJ
-fK5izj6botAkJIAnY8FT+lyrJ3oRtB3dq51lg/tWXsTR7RYyl2UVxXDRw0mpW5pe
-J8XS2J7tLaTIsVbuO19Q4de5u47KlzOn+exdvmPu6QwZVBIIs2CIFhYKjXKVxKAs
-tTuVv8ygT033gzrXOU9XkbjEPaTY9Dy0WlUf7wwg5Ug5dmEhrRRlhu4+rOc9mGH5
-NzEwSl4ZJmEPP1auB87iM3l1g0KcL81QX0kcTVCS0AnJUNTg1eSr+zc84tn2VLyp
-xdWidOZ5V5T5p7O0TDDZ/PJAddWAuGhRmK5vSW0XaNYcKUdSOTwul4+881/i/1mh
-ft2mHm5+PymHbBRVLMmVvB/AG9jqACnRXg4pbHwxp8RRMm5AXwQiRrKA7arUPttd
-1Faxq6C4e2GIYDdbWmLRg2P3PYZXbZE2HNo5DGpZ60xs9GwirIPeZZbmPjRTTvqC
-h7TBHyNZm/mQ3jB+f+2vdH0k9kXFxGCcitg+1faAjCOIkcQKdpc8RMz+e+XSIV39
-ZcIlLrV2Ku5jpJ9MbWNg4BpcCDi14nteey2R4JQGOSyeR27VMjGtVWB+b8fNjT29
-J9fDdgcso4OINe2jDC2oqtmlCHXMYDsaWx9uAB0LKsGbMYsF4kR8EqS10Yo709ij
-ARppJ4cRcYmxN+GsVLemIBTYVObK6Ro/k88rOZk00+cLGNWsZwkp2Bgdu5cuNfEX
-/0xkeR8dtuIZhAYdc61Hc61TVEQFPUyhbLgS/PEc7jhkLkbD3p4acVNrqt2I6WAH
-iAcLHJe6aCB29C1XRJf8DI9a5+7nXqSKFdv1pKQgVBLon+gk5CctlDsl/H2J4ehW
-J7/MrWpmKmlG5AUuTESqB9tShUZPCoxkB2wEWgNtPwoCi7+P57NR5A8BD56zP7hJ
-3vrkxSLHnzKBVkrN82cDk/RiVJz7PM6108APRRWncXx5kIfeK48A5FxgcZ7RElV6
-UWQGFfoGlC3rRJyMYAKai5Ial/mQVLwtcdTweaQdNiDXVKeAFyXgznA3fkMfE+9d
-0v0u6FtMml7KSXUwIT6JKmg17W4Lr8qdGFzz6W2YqAI0RelErgTbuai35i/4YTnW
-r5hOuCNTsDYZA0XuNVq2xbIcLoCJPOkOGRNtCKZdIt4CwBFGFg4ak4KVhpFjNTvC
-wBhDj7exxsiOdtpniKeHOiGk0hH6IEMITL5e+C9ycXmur9geA4v3Vr8E3MAsFixZ
-mYbgqx/xlI8Ahprd36ab+YTwmhRoav1ZsHJiiejNfUmv8Z625nQ7Pj6LPysLNZ0O
-+UKZ6wm6mEBYm4hP6GfqJK3k/4V9nOt8sXxfo3FXKVAus26m9dDYOL1qb4NWsRLx
-r7hGMJfsf+hwcCpcN2urK/C6Mzpa923kMBBp/E35ObTyv9A9Fnjdpsp2t3Oo+G6z
-Q9IYGV2taJt3pPWK+qLGxkTEb8HzfH98vdWfdplr0B5C9pXel+gK0Dmk6+LnxYXk
-TA6ao7f8mxzLSMUiPjLW1Rl1udPnNjGFIdgcPQ9ZNJSx+6O3o2LcU6YVcwTcb4ES
-vqT+dWkh88O0WoKWkQL36V5mBUudSl6WipcLY2twp+WWweJquHA4xh13uqqbhF4Y
-4kwkupt8Im0oQKrLSofMaEalUPMZkIaXai6qhz5niRfo7x5fe8+8jS20HMUljbDG
-sn/Uyc1/MBv+8w1TXBOWoAgaoutuzOocARU2RbGrICc0Mm/rbuUt9nVKxpW1WvML
-awKfDhbY2XYoYn0CzfYrvA6oGZJ3bNwRa8MtEkmQdR7Qb99H5hn9StOKNE3BVKEu
-AZFgiWTGI2Eq/XlCOHW1vL/D4bPun/0PP8IfL3PyPjiELm/CSVYP59v1ZGtZyPqz
-2By3MT+7r1gqjU02HMElDq/+2MeJMu5YMzhcibQABS4JmqPHr5fpvqTzyz0T+zs7
-KRdMh7LVQ0WmW1F1pkwHEjVV8oFWkHCh0s4e0pmYPhW3/YRDVyAGSFNY9zKsv8a9
-BpLQEEY0JqW4aXLibKciLcj1dkY7XOrpFTir+LwYaCt7NayHm8ddWjWBg694U4Hc
-zxs8FWCp0VKm9/HlS4Nt1VkoYmxWdZCLCpllS7ZmQ4K9m4UfIRcyfh6NGeUOJ+SL
-av+L7m8I0TyRZ/0hra1D1c31Rltmt/2BoOnE6oo5plmxOkpV7PX4tLZO5oNlbbel
-C1IkzdjI9GLQgqr9XhNszFyeVfb8W3UjRNHzv+NfLY/bqU8vhDjtHmchlsnOiFSL
-TbW8I6VtbzhVAh6cwCE+1uLhd4B/pBczdg4DTxv7DkTZamvzOAVfyK5r38A2vCwe
-LOFpV0BN9v/4RqfXejFiw8gfXcA+UJNcOvVuRp6Hz8tmnZzyfTWTMRP38FTR6qVL
-7TGxeUwCmmAzYR3tUAwBYQzb7rLg5U7jeMtii08URsKUqOMFWvEomrm3Gb+/mRXA
-LZSjp18pflAxDtqvHNCxie5Fo1yMbqnO2kYT0BK/mppsLzKYH4QiuYjjTv9ffKjc
-A6RtTVJ/U1aUnJZ62nQJcbAw3Lv6YgtNFFqUq+KlwEhudvJpKtMf/zwp+caxyYNn
-F04gCsJlIVvqYUAZ2LV53tnLkBMs85bs0nzRBUkPCw1PK7YRv39mirDMYvbV3F5t
-bOUjeQvUx+tYzRrnT/ndmpPFR/iS2xatvoErkuIPxMrgX7W3amN6CHKGsqQn9VHd
-ujqoTTHMkIdyq7NcC0DIvUGjIXMMOwHL3bq04rYXadpsNgiKxqhvjallJC/1aNKg
-ra2KuxKxHT4g1lt501i1Xz91bjwXJPnKB5vwseEm4eElS6k/EUBWoR0AWGWu+nCz
-RWt60260ENuSuLT7BB7pbUUfgYxcHd5oJO7jQYK9xY7LImJzR+BYKO0l9M/TMWtL
-LxecJE2SdMkUJcNAM8p5BVL6W9gBzDK/UIh4qM4Ja31CwOdyrUUVr29HuUxnTNVh
-7RCX+WkSSGdiq1G/PEb8YwPPs7roZSP/nBcj4GNh6aZFiv+RBntOpzJA2oxoJ/z7
-4hK2g+UC62A+krW41h3QvMCZ/ZcNmQWcLg1EsnVGThFajtz5+1MU/p/R0JZ1HE/E
-UUoi+Aj6MC1MBsOaTqKNKq+0JL11hxya0uypiBJTQsCex63bdXGmOoN8OK+TQ9gt
-GO24H17S3ZXXy3koLUY50YGVXXY6UXgVYL0TlGWQFNjEzDxgZI4/tJckEyv+0gv8
-82eMDz5sMDVFXdYme8Rz3RyrG2+4kS1dYQNQ3vKuSABtAMU8v8RcoBX/EZGgOXy8
-4K0F+nD/Ldoi9d355n/pumiT5uz8omBNFs8Xv5zIArGCGg8fBQAqRslA6su041rp
-Uet3zhg3/EICocyFAsEL8a/qmG7SgmiLOx58ehTBs3/WMWr0am59UJUKN0iDHjB7
-lOezHJg78R98dfWIeWq2nSbOcriPvZcaWKbTDmh5ss5bNhwLHn1EwVpIdWzJo51R
-3J321Fnm1m1IpPRBkc1DV1Jt7daR27QuC+ikQC33SKOUnKeE9Kb6sRSA/9jBuzIH
-Z51iPuEZDLgFlomc5easAMfMYg1JEi9ocRsnzyEL8P5HS5znAdqO3kBFsG6X2b4r
-z0wgBl0TO9jKgut/WbW7rp4AhZQlrRo+ARF1J1G7dPov3SZ74eIhbbIOYf5owapY
-Fud9ctRnE90T1B8N07RRorhMvhPw0fxiJBPMq0jGVTTxp93gEA79CEBh/c6RhhdZ
-++zOma31Jc/nwvxY/FzGEUdzT+m89leib3I2DIHGBaQ5ZKUNXFRz/VF++sH3YrGB
-UQXRJEu/rbjJMXCfhs3TLor10cDx2P1bnO6oNTwt+BQuWH6Vz/cV6+KYDheGK5IQ
-N8iryCFvr41BDkMj1YaL55EqWpEk64adh5WN8YtruTowlJjsZ+d6MM/vsVz0USLU
-TeoXzOiNIfXFO8xjN2PS4PcsEOq2ti/oTPlJJW3hQ6dB4R8nk++iS+NZ6SRUnI8U
-mQ0utN+N/1HQKLh9nzUACdWe9BJ4KMJMpF8Vdk7mghIcX3aG9H+duT3FY8P0nsed
-cJM5H5tG1RkLw98POYNnPjn7j8iETIAlNG4QFh1qSO27rCHu9X2+9r0XxDPZiNhT
-+HmdKXeIrAd2HotvWdwBnBChfxAb32I8QQHqwxkS9eBcexC7IxIkI3HLO1/EqKZU
-XqpLF8eyZ5YlNwavBoHPs5yiVJyXX9HHDwF12hGiPpj5cmjgAX5jxV3OTVp7A6rc
-cx2Appm5AeN8nz5XE4WrQeQQek19Dd6bM0p0kowmusMRSjOJvLCTtmTyLeVMXsFi
-/mLYee6rSEyjrB8lIjVMWq33rz//tnU1NuoqTM0X5Tj9iUd7R2f8DAA8q2NageAR
-kFK7B2IAIKpfy+366Axc8cE2+of8SocRdbavX35xTahsnQhaFpoDoxlhoOkCTtzj
-Y25jc8xNSO7ULGjE30DIPSNp35KG14rNVNTHJB62ks3z0XirNU4/pUrYOzIfBdZL
-49ETu3y7oVb/ouhZs3QCptZlkiFf9quG/eTumY4cm63n5nTLjWwPpUFQzPE2gpgS
-FJXFFlm252hRNKtJnNZv55EBUxcd5T6GjykyfpKxEnxBNbOLzsg3c/uXDKbJjpwt
-qpCqA4Y2BXHYNti+l4Fxjfy/WQ7a+pwMj8ImA5vqxn14N8cQAKSYI7m8k3ZH5EHy
-LMCrU94T6QFvpxzrRB392MIVR0IRe6mAvdPXpbHdKXkIYNYCtVZBt8TC/kPjuoXK
-84PlabtFzJAMZlf4Eg1+2WLTPCJageKSUsOKbJqn65tw5OX1i7W+hdQQnNl/c+CC
-jR1ZJp+AK5dOi7mR8lV7NPPoI7wkeY8avx4pwFpMtcexxAldfx5sG4Fd3MXSYJAz
-4n+qqrXjkTOfYlbuPcG6CPUcFR6siHktns5HyKBrNm8/8pk61/qgtJy/1pMpUia3
-kV8aFL+8Mey3soYij+DBeiOIE/5tyASokdngNiwZvw4K40PsW+jzQCiXYeGfhi9C
-YiTydDpT+pWBLxdKdk2B+wTIl+F6XniREcz5o2+ZyJzf8u3Nf1DI/bqwNk1+tg9t
-yHcjEHoQsA8YsLkK9JzhE48pLJaLHeGGfJlXlN6lPKhMrvWiEAdjvTLqykyjgv21
-wTgZg8BSf2rKApVGVmJRr1H4hf4eLpT5llt3byZ/lnmTfgJ9gLo32wDfPF4xi1U9
-nW6fk1mLN1tp3YDaIAnr1qbD0kFXkcjGRmWg68vukVNzaRcdF6Su/Y8jLlm3GQM6
-q7hJWH2ZnqiOx+9XPHyb6IDF4AXxbYWu35EiSgqu+5L0W11GlyKbB7plExhPXEn3
-HItmzZ/wuAhf3DOb/szBdeOAevcTjNagohAeax3yvnavgQ2925YGhezxgaEoxo+7
-U9B7T03XEGTaIx5qn8EMqu1wKy546kSWBhAxq8wHXqQfeA3w88f12l3VVDT9nYoU
-lEIJyS6kzOASMh0n3AGFv+q1YG4ZGlO88810wFoGXAOJhCQ5jgAWFDrK68F67Lps
-Cq9lWODdG9dypIn/bGcv0fOQtoj1YmA5ZzvYgzEawftbGruaMW1FjHJcH4Lnosa3
-0hDBLBclrgG5ZoMeOtTQpmRkmioTawwGVoX3fmi6eKtLWKJWL9znh6KRLWIPOQb9
-/KhHmuxPyVYkpBVc7EDyEXdaZfN57JTCvjBaGZBF3eE826q9mSTOiaTOEUDU/TD4
-vCmsDCL9/hVlWf1IjutZ6Iy/BGupHY04lOM18Wvr3Npm2B1TVB49mtZdhbN5bUw+
-xevTb5dgAfYnaDds4zIX+h2FNeLp5rDty2x3th+5Hre/TUY/zJ2WaM0yigQ1s9Rn
-5uZ6sg/bPe+M6nOzPguHz77pqSVa9PrGsHo65Hgb1w71S1NXOMFaCKQEH6lVl6kv
-UPKs73P0vUhAJM0njD+8LaXIsaTsILNY2IbOPyMsT6TgpvHkzlO5nR+h7R/o2pao
-kDmW0vBuHdw15V58JlYD7DR6eqsP0ESdnJRjEiuvnJEWElXXDA6OX89OqiM6cnFX
-LuN8BrmhdfH8nPXDTPkIGLcCOgBg9anEwAWG0T8ZXKY60nElz+bScXijDpyxnGpL
-/Wmwr2L0WtYoDyT/X5a8qtWY0B0I72NFeoEkg/A5rHGZ+SfSc79sE+4dm/zVNU37
-AurHotydNRXi5tL8/SgWggSD//KPv39pg8lmUi8AIfe/+Vrmqy3fnCUgyMb2iULM
-mMahyuZb7m4Glsd/VbCprT++3ZLV1K+SzP9GCZymos3byCw4CZV6oTrkyw9lqCf/
-O4xXy6Kz+Cl91do8OlIG3PhOmRSvVU1uDQmdX26mbbckLhmk6ZPYltg4/A33rfmB
-Atc+5XtVRhRteZ3Bk0csryFi1ljX5jdslsYsiOzPzs4FfzY4pcP/75ec92VEb3C0
-8lF786UbHHVBu6ZGDSBASbhqlVE5vC1z5b2YJRiNolpr+2KUOsDF8ReXDaogAgyj
-vcczjik83AV4+Wyc70sc6Y+9kpTxchdhmug8Fdrx7gUwwkqm25m9ia5Z1qIX5RQv
-RG/pMtdOLbps0XoE1GEZjOC74bIfRffcspiPmUEDKlfqcHdB78Z6sgNAO3TfRzTV
-elsEB27DNDNC4OAYLqfXnt3WPhfKyE2LHGf3jqX+izVgy2LdqxDd5TB6LEnWpLbC
-K388OEnmc2HBxhcoPQqcd5zyDGsXXhK1EuNnJMvP2G3Ug26wKd0xo1H8Y5cVMEw1
-W6YHmLvsxKAOEScsjqfEMkwMQri1d21fzCwcfqF1v7sA2GwLf1QNC8Vfrle1vU2E
-dvrMtsnv4XZHSPMlsYZpsNpR5L7T79hTjsHIVHvfOwG+VhzL43G8EIdUVLDrwZzk
-FtJE4jF0CG/mTcgXPiT9gY5RBDYFjdwEVyz9nCBBopoYmY15tM19g9uZErZ2pm2V
-2pJXdsVMTLM/m9kZcShA7I89XtCZyBlvfV2IO/xLeqhKCBhY945k1EDvQGHWyJ+k
-lC6zPO1F0ihTLE3mhDIV/9WX9V9iKMMcO7b1XRhH9ym6O/bE6XECIvA6V5Zi2Hvy
-p5knHk4cuGSOuQaAxlUHgDTZVuFQrBeygh2xJRHDD0aDKff8lJrUGmSG6STKd2IR
-C7YWBdt/nfpSXEqKejOteMxil0XuOxQUTqmIyysvEXsQAluYyEqNd97LleWuKvox
-0oUIj3W7AuztDo6NesANMSvMquGE1DCRm+SlVab/LpT05CYpLNhsiPjzRy0vTDhz
-RS+2i3d7OFWzmmy0A1dVFojqvVe+rVLgF8L9aVEOg/t8l0/SIS1X7c1deYYIlqyg
-aQ1kjUOrUNaxIXyBgo8drkBt/esoO2aG30Ty5BmNerORyWi97Kf9Kz0FFwXFhjWF
-wfhV3iVlvfB4yt4xyVOiS23PvRqhQh5FDGUacg7l18VFgQkEPCCXoel9oWQaqB//
-efrcNeNlOjRs/zf+gkgQ+YGK1Tg4WkcFCrWyJ4CWp1FDy777m4tgCABc+Uf9elwc
-OnEFDjVMJlIojzQ8ojtsMqDyqka71A02UbR22JV5GGLMrZn7v4a7m3IwYKsYDOMq
-rdnhETVHpR/MZNpmIl9sJDqp0l9f4nfZ0NXaEGtJWrAi1y8dF7DXw06ejb63m/vP
-u3CpEPd031clExD9laaCBX8+eIpZ1qA6auswkck/itIasaeXO0B1pyKKfT8/sdBF
-Yec7SXwaZ7YMdwMeQ/q9epaQCjfC6WhiyZFOspC8iKCv+YG9DnL+IPLoz19Uy+0s
-3MIo2eEb4UEoVusA+qPmyo2J54jxjoLg3lopEzZy6INaWmLwfLwuUPmW4ZQVGxTX
-K48eY7AQVwofe7+bVabVaJt15o0lC4bwwyvUFmVYYiWb6cQPghLlarFhCgQG6PuG
-cb2pbwNpS37CR3ClVoKoGpRim8UdgQCc/87wfpKGdIkNHL03U14uE/S+pnWKgxE/
-hVlfAJmEN2XXaxs8EUnyTyChxvXtR6oVPinbtDKUh+K6jhFrc6j4c2W9LaX6x3VW
-8YceU4m1088zXoAQ+JQ9ZjEE3EZSBhNTtD2CUBWxVvMtI1aD4pXoGcftSC48nJcm
-2yva7a45CfUthHrGM8K5DqHuxgYPkbvMxpQhoSAABg1XttOEBhr0wLCe6GwjB1MV
-NJ02CTwcU9NdGCXNwVY8bMQYUNmKWgno59C4nnYKGx89J6ot0oSDeozipqGR6qHH
-k6TOjTmJck0x5v4UB2bFTqv2d757j1wHX9aWI+TfE5LId9VNlx8eEceJPwLQCN+x
-sklKuZgzJ2kbopE/t6+AmOOf8Exowa74kJFjSRE/T0muNYRFFGUj5s+Q3IVqPc07
-N//rNHGR64YK7rUuIWM225WP9PF4cTIUwReOO9+G/RF/wwlYdPFx7gGE+RZpvRet
-idaiJdgWpWq2LCfDUr1lY5tpO5t0HIEEfGfCngGiMmxtBHjlQsnTxxiUbU76omrG
-GflKQZprwhbm0QjLr8DdqAWbl9NHyx7sNvNIBvIKfx4ha1HdIWqv7TIc4F7weR03
-zm4S2xk3TvQvF5B5S/wkP2ah1Q4D6s2zb/ltAfEdjZh1OplgUwtdl5qmD+6Gb4Rf
-MZhmhwPjFlH6tZbzVlbEKCBAVb1f7fBHdITP9J6vuZdfJX2KLgmowSCvF/CV2eFg
-MkYByXc70gFxGVQYWf+iyokBlopcPrUtaE6lz9HdvdYs8h9E6utNfigBO8HwesOv
-3mzx8QdZIxjlFobEryoM8coveomoQHMysGW2T7ZZcSH/qdGsim4wbz0Gh/2a3tZt
-JLwcuOTnkCy48iRcbmp1yM2v32466e5swRG08jx7WvfksGsyw3s1Bf2aKvXmLTfn
-shsnvKATqsbt9oYfNRSkr1VfbSHrtX/4QFSWoKA/y++3BCf1fymNwgZRqyWGiJ1L
-J+eXOgl8hPXQqwR6NAONtq81uJP5hPZ96B4W8A69Onlz+0O4yuHL0DzJXR6Y4WAa
-+n5TWI7+D5nt5qMpURepwZVFAUblGqnzrt+ObSbZ4439acvFBqn2FqR1l903cMQc
-LVM+5iO7QFHh3cAp0wh5q500lgTI6E7isKaphnf7lrYfhu/XGLEMmhiIr6vCHIHZ
-qqF4LZ57amrwoa6vdbU0Mb84aN72gTee/hstZUUD9hS2NN6bRwwdV7Q8kCd7KXh4
-ksi+C9ezIkLL5rk/4RJEIVXzAYsk8+EPTLmsOpEld9Fhsz8qVixgMUKGuP7DTME0
-Ho+OlDdCc+LjeZ5PutEd+NErTSnKa0/wvr0p3SoNfNIBbLZ3B5vZmc/PJ/lC78dt
-lEJSoPLROxAjjmVL1PBS/xK2C2HFGl5GUtAJr3MBB4AoZqsm0ZE4FzSgkivPbDgT
-BC5uErDc8j5XERShES53q+pqsH6iFCWjtxfbQR2ZuaENehgBS9TZ5FC8TqhG+veg
-f3nyC6l3N1+2Q2vG37MM+u4de+UueB4J5aYaTOnozJefc+B0yqdShxKFjJczuQ+y
-U3DWcLMFVWcxWLJEc/ofdTjaKArlOsPSXcfK+MkGg7uamfmpwBGAVLAg7XQAczQR
-xItqTHxdRgyKmVmSQ+W32dPQezdGlwGx6/6xd4tgvkbmvcdiD2Dxd+hERwLxV8ch
-/6QZsS+2QLwsfCd5PuowAd4smW+t0hh/T2P9nJj9RFqAGJZjxlk2uiWgXnJqYka8
-9Wh3i+l5VjU9Vp88jbXsgNDnXv2moTm8PhU7xs7yup2OEOyINZQKmP/IruBdnIxL
-//mkxVweMNZx/zX8EIU/ZCWJLhTZdD1zQ64qg7OLsbDyoxUgjRqAm3ThGm+/RM2m
-4oYmgnEo0992SEooQQdaEaknVqxr3cFBPipBjhtSrvHtTmPdeXZd9LJMzDma1QPN
-CVE3N3cFlUjmZc6TbNobJs82eepRP5rReUDh774+Dmzjt9zG/f5lwd9AsMak8tSJ
-QqtordsjIBbD9mullL9VCAoEaICDQuKJyuRZKC6Zl8KmUlbJeRWAZoGYzFh9gQNZ
-vyowcho94c5OJVoWrkN9orZ3/AilScbdAbbVx1WUge/M1MTIimoyityrctwS1kCj
-5mEpsmR0KFkxQa0g/N40ieVaidIKulHKJ7/xXUO8Xev8W/73Foh9iJ4Zzk6WeBr6
-TzopDhv9S9C7DjYyPkIa/h/TcoW0ERGleqaXNUdv4FMw/h5elQz8UNTX44LA8e2C
-9rMkErSGRCMJFNMfw1tE9i4bDvfaupbAQ2wpASuLnrE1o8NCHAAVhL4NVhVhuTQZ
-0+p9l1MOKB4Mm1lJ7IQctspsgdI6tX8mSHtFkzxGVTV2mReDgM+xCiM/oK5Nqi3u
-bLeC/zCdhj08i1S33/NLgDTqXHiRQ4ixwmySXpJOhC/rbvcpS8n8LFY7vstUAg0P
-xc+wdjQV2oe7k2nuR/57pExIffynJ7VDbbKwSZ3Dolj78q9WuB7ej+AqXWyJWG8a
-aB7ayuu2J9r5kVjvR4XhHsJsPA5HOe79TJwfLdUdGvoH95mHx5G3BnuqShPWFvB0
-ejs4MN7tUoAMa06Te9AR20s867XbFWlA287mptLRKaWeQF7348vEpGjSQIJOzODS
-GCqFqaWn4ketWLu/EWfrSFMQMLeOlgIjWroeU2j1pIlPAS275ukJq06Tzs3vKq/u
-dDZsFg5skLngk8Uf1IBAuqnvFo+oCmK4Hcjdm22Ab4s7s1cLoRZOOVM+il3kM71X
-pcvOL/MnpEZ7z/Dv+0/EkvOaB6h+f6TXk5pSlW8IwlZ1IyXjXshY8uPo4zr9DuGa
-yHjCfvQxdHzSjBQ8EFcTarxQngcNynIcOt8EhYcg8sM4l73YoE50GIbJEtQStxO4
-sTdfyE+648y3mVXqMmLslw+W5i5CLN2EHvMLiOPcRccRpyfgSzrKOkAh94FjgRyn
-lENX1UgKrCEAQwSdtKW9KdvO0IoLkRqcsISbji0M5H1hxwY3WImYxnPSkLrIDXnx
-1W5qCXTjPqRAyuhLO3L49NcwCbCzRUXbfeATqQNWHrqjgI3rDfXhM2CMEzyndQ2v
-qRKS6NKd7gCRAUJWwqqZeJhkMjIyEodY8Ni001VxiCAjRIekn7W+p0dxfedQWpVI
-mDDElCMlXPQ5wcEftCjNDwrExEV/AAqEPgNzARnzQO3zrdTgs3LNTQ+KD/XRSeE+
-PlRMnR/buNn+EqXFNmF9iQt/y93Btb6GmMe4gAaAUfLpirozlnLYq4crn+LF4HHU
-tIi+AFTXrckbd+UH29l1JZLssgC5hNFVyJ5yl1e5XL+G3Ak63UyGeoqTbuNDMCRY
-L4FCEG38vzg6KZMzKyRbge3jPvI/ant0OwF2R/xNXaTedwHLBw29ObXNrnjzYMcG
-nAhc/i4QSXZpjoucfurBkyeUeRofRc1m62MZJvURsniWqpg1YQeJPBibww3vHd+O
-59UrrcXjga11aRhTV91rGMlgigMeOxn3R4yR16QTRIlnwXUpV4fNddJ4YMNBs4yQ
-bwvO3LZxAoYInLFBI2RMYaXr+ujFMTpw0INHPqo3TXFsHnNa6HVYdNKbouXv5/2j
-bANMr6X1ITuTvtQN4tWGbop5qfp90b9pPyw8P0bxSdro4ZHMeSgbiS9q6qZxjVz7
-jnOKMUrdbDkbYM+ojXZ18/4WPKtaxf6lTLrh3m5CJ1V8slRJp0Jes74aDQf/OXqo
-QgqVrI2wnl1klGwn06bhVaymdk0hMkxAfeHBGZIQ4BMMZ3aLuVWjAcBH/HP1tVQ4
-IG7MHRnm81yVNgA6yAuZZIPQwxDWVko7rRm/DnsJcpKfL0nZHoF+bJ6q4Rd6Dey1
-S96L4PDmXseFkVZOH/7dNWyKuvSA/MmthkN14lWJiYJebaXb7oZG3XDC70o7bG6Y
-mtGOrOwVthFereg1Ii98ZA4nKgqeu2paMju/t03hQXHY5iqyV9ax0A3B0rdivz4U
-VbqCcO7pGNb/Ki3gGc3hfVw9YXnR7E+tra19eE7UM7o+YlunKF1Q5dJaLKY1z3L9
-3UAJmXG/sZcLqrDn9zHfb/YxqbyIkM7VIU2kKztWCCNiNKgLQsIoVzK4sbS2LVDI
-grmvZg+Q7EkwxZ1FXeBGJmsiyjKYPU3PI8ZBU1MXjwTjtnQRuBSxh+Ok9glPeE+1
-rUDdlVoogUGgPAvLV3BM43E/Q5VE+X04KvPNKINvvS1nZpGKyyy1MayOfstc7Hsw
-W/RgllTEd7VW5jgZKg7YyA8r8cUjMqE7zewrq6MtkoFk6ZVslWxfoADBW3ivwdwe
-I4XwNboOgBx77qxf95aHRRdqWZa0JF8zvK5BH6EpBI29hlJU4leax696ACA7QIIM
-Rpc+ulkvHsNxsUlrUut9AXoob0MqDJRmZvU4gSVivHjvKLEIlymJw4pLbMWhcrNa
-v94TExP21Fy/zYcWiZT2nCX6qZVXTcUcQGIrBTWDbR8bxKll4FNo/2zmelyFmeXt
-iH+Zp2EwFAUELsrxx9plNd5WceyU9VnZoeucNFd2QFl7lV9KL8AlQaaMdsYOt27m
-8j7iNBID4HtCYM0xLwE/5uqVQPxX6qzPPZc66MSRIi8ZHZPFvVilFVzFyZSrq5Lo
-ojQQmAycQGOzx7dwx7vi9SeTrBRY2PK3WVurcLiRxM+2u9vjlxigwimpnK3VU1dh
-GDoPghB3O34bfiV5GndcnPDLJxsSGWz2z2WiyCFgCkVp3shHUN5c2PLWDIOf/Ejz
-LzNJXFKjO6/6ZGpMmGf6bZCa9MBnvXMNic9/k0lmtbgj8SS+2//gko1EDa/Gpaqo
-J2xgEuHLvp9KQABWt9VRI+tNUJQCS/Jq10ZiT1TzhczyJEqbtVDOo0l5A5sMV0PO
-HszFNxw2BmuM8RYGgAe5pkrdzVdtB8TLmhys7P+xRXNXnsUb+878kt2EyiXjMl1g
-oFeAlj2afj/GgelJG0G0FXm5WPDhbthHOO1hW9RP5WCTybjUTAS+GbikVwxa7bZE
-LHrROUOInY0ntR9lRNjpVCMdajCsMiqT/G0C/ApzeW6ErLMFIDdVdGSdnz/WDi5C
-xQTIS1FOAdefQ0CohE0yOOvjKTAGzht+g4gYiSa/mOnvXcCVM8t39thglZhq4+6G
-oWpOrXwByd8OA5f1aQMqSgoySJOGg8a3X7NR9bEDbF7/6QNJE5FvxwXvA8zcabUo
-OGxXen85Gkq1M/VnlJ3RGM8vA5UizsdPESYUCVH1eKg8ROlrQOr3ISj5kaNL42fv
-OSROmeHvZrHtvGn6hLTNPtWcm1hGSJS/Q5CEZe0/4ActkorF9kuoHCSG3UegX/lg
-5mD9aMTHUhD5VooS6OdyakqD+6LptNqQPL0IQALsS9Ls+8KUBxIi9cOe0xIusAQl
-OmyJcUJNr+Oq+Ypr6sWvelbWiymgGDN4gHm6BvzyXv5ihnvnmkIQ16WkAsIChzZx
-cZUl/bz9bDsSyJ4FyzSRoWuURTz9la3Bo2x5ufLChv2i9+X9WO6Y3nFc4KOBY4hD
-WeFt0ZUiY30SyTiWqrPHP8Lnto9JTBOZcIIHOqPgy4L+685Ou6xwO0cUzicIza5M
-TbMBOPfnVSgPSCFImGSjAaahWEvl360B8qjx8i1vgkUOxjqfFMnjZUF5b9lBDS72
-JK0esvGRUQqyC4uQHbTi8EOJYaOnCn+0lXPzLNpN171DHfEg/X6iiD0zTjMX/7Sk
-PPm2z3zH7yJmeDnh5e/gvgWaPuTVaN+LdUYv/ijqfS3bx6yF1VpNr+esTI23S+o2
-1HqlCfhZUnVmn6r0J1L8tuVeZaMni1qOFs4KacGA9UwAZeGVdOmK0rFIqUXKDehq
-7BAmDZV3hnQD2TQzgfDfXpegRECX/wZZVrcg896NltY1r6AVm9jcKLVCNalyoCwe
-Rp6anjx8qsUxnXXYN2rhl/l2Y9D23QZ2OM0cpvb9QPJGGgGeSaQu6p8N4hRUroje
-UlL8vBLle6tcvVoiRCvPCja857vnthqUppv9bzM9SAyMz4RXcYgQvFErExOI0eyT
-II67WbrY2j9ul7h4fZjNKCND7o2aENbylK8CU1wlwEBYC8BPgkTqi+dErP+VrWte
-QAhjomMkOVKKzG8JaoPJoVYBmMkMTCPsFFuTjtgvg2+a+DOiYbI8yTDT4+Mi/Woi
-gZUcE0HUosPkkJ2ZU3zDXdwPIr4DI7TlrnZPF99Es68+NXD6lQgc6U2fjnBfKMFw
-MfaTfrg3ykA8mBwqZ6hQdIoqha14uje9Ses2axrEF1FY+pU7JEKDozmo3HzgTfYA
-UFoHCu4Zbeu1IiHHJuVSRrwVy0BsY0nrq0Tjq2uYSbXyR9KylHCxztpzku5Gncy2
-Cl0sBUqv1uNWIt1v6yHdupzRM/fIZ3F95nPIomgM+uHmdpHaXyizM4D3doRGzNPH
-fOm6jWgKCllI8JHYJ1DUBUokYv8TYJLf0gOSaZLZmpEh88iXfBP52ZBlUIokeUN0
-aZlxSqawVMteeqcjCs7TNySBDzfTCZREHr77tnBz4+jINXi06mh+/Hz+LRA3YNRD
-Do5hyzvvFBg49rY0JzZPTC9J4bi+w1MPmmdz0OgQGG1Wiu+4LrSuBUOgiA0V+FyY
-/Md51ShFwRg/5zgcWS4hK1Eg4kKTKLF6Wjdu88PCKx2+gu9dYjXgdRuzZ6LUqqS2
-It/j3VptrXm8NwQFGM27HnqGwK5u+Ym3qLJ0FE4vWNbbxGlZtX3NS8SqZSqVfbqq
-TwIz4lXU3ipZJ5b42IanZ2nfWqKpdYn99C7yK6AbwA+qZf5zmy436dH+Rvo6PC6W
-+9MQcrrNgvq0tiAJvA39dzb77bhRjAKzL5cDiA40hPlcZs5+Q5g9XpYtKsSfzu7s
-FCFRnhXmhiBXoUqf5jsYNrm5dvtl27wPTaKvVQQ6SsVtXDZSWEbdAj8Xfeq7kev+
-jtvaOUmFRMaFevzu5t2uuLYzH7zufMB6p13chVUH9yRnWBzdha/Sqf78k57UQnZg
-EJwvXcDJ+uFbnd2sibgoASzDNljSfERK5RfD7Re3n5dK6W0PXzic+7ljGoSLedtd
-6DD11IzD6WjBlE/9Aiof6IUDdzuo2VZ0XtufBxmYHXUx9LF3/dgGOr8hvxz/wpMx
-nPnr9QDgF9svoCvYq1toUbtWgKd1LjXeVoprAhHXwbn4Z8hj7+/LpPYwR1X3u1ik
-wL916n0bOkLgWgqGjqsrgskk5Lk6ZzyrESZ0xd6/+dSrf2YxLivF8O4eCLfNxB3d
-=3akT
------END PGP MESSAGE-----
-
-'
-
-alpha_seckey='-----BEGIN PGP PRIVATE KEY BLOCK-----
-Version: GnuPG v1.4.8 (GNU/Linux)
-
-lQHhBDbjjp4RBAC2ZbFDX0wmJI8yLDYQdIiZeAuHLmfyHsqXaLGUMZtWiAvn/hNp
-ctwahmzKm5oXinHUvUkLOQ0s8rOlu15nhw4azc30rTP1LsIkn5zORNnFdgYC6RKy
-hOeim/63+/yGtdnTm49lVfaCqwsEmBCEkXaeWDGq+ie1b89J89T6n/JquwCgoQkj
-VeVGG+B/SzJ6+yifdHWQVkcD/RXDyLXX4+WHGP2aet51XlKojWGwsZmc9LPPYhwU
-/RcUO7ce1QQb0XFlUVFBhY0JQpM/ty/kNi+aGWFzigbQ+HAWZkUvA8+VIAVneN+p
-+SHhGIyLTXKpAYTq46AwvllZ5Cpvf02Cp/+W1aVyA0qnBWMyeIxXmR9HOi6lxxn5
-cjajA/9VZufOXWqCXkBvz4Oy3Q5FbjQQ0/+ty8rDn8OTaiPi41FyUnEi6LO+qyBS
-09FjnZj++PkcRcXW99SNxmEJRY7MuNHt5wIvEH2jNEOJ9lszzZFBDbuwsjXHK35+
-lPbGEy69xCP26iEafysKKbRXJhE1C+tk8SnK+Gm62sivmK/5av4CAwKcF1Qep+Pf
-ssOqtJhr+klruUBf55onBJi4vkk0gK3m32p/05YB2bbMURGz8R4JxUZfUxjdDk73
-LaNYRbQpQWxwaGEgVGVzdCAoZGVtbyBrZXkpIDxhbHBoYUBleGFtcGxlLm5ldD6I
-VQQTEQIAFQUCNuOOngMLCgMDFQMCAxYCAQIXgAAKCRAtcnzHaGl3NDl4AJ4rouHB
-+LpCkNi5C59jHEa1kbANzACgmddtrNSj1yPyTCwUwRghPUomECS0EEFsaWNlIChk
-ZW1vIGtleSmIVQQTEQIAFQUCNuO2qwMLCgMDFQMCAxYCAQIXgAAKCRAtcnzHaGl3
-NCeMAJ9MeUVrago5Jc6PdwdeN5OMwby37QCghW65cZTQlD1bBlIq/QM8bz9AN4G0
-J0FsZmEgVGVzdCAoZGVtbyBrZXkpIDxhbGZhQGV4YW1wbGUubmV0PohVBBMRAgAV
-BQI247hYAwsKAwMVAwIDFgIBAheAAAoJEC1yfMdoaXc0t8IAoJPwa6j+Vm5Vi3Nv
-uo8JZri4PJ/DAJ9dqbmaJdB8FdJnHfGh1rXK3y/Jcp0BuAQ2448PEAQAnI3XH1f0
-uyN9fZnw72zsHMw706g7EW29nD4UDQG4OzRZViSrUa5n39eI7QrfTO+1meVvs0y8
-F/PvFst5jH68rPLnGSrXz4sTl1T4cop1FBkquvCAKwPLy0lE7jjtCyItOSwIOo8x
-oTfY4JEEXmcqsbm+KHv9yYSF/YK4Cf7bIzcAAwcD/Rnl5jKxoucDA96pD2829TKs
-LFQSau+Xiy8bvOSSDdlyABsOkNBSaeKO3eAQEKgDM7dzjVNTnAlpQ0EQ8Y9Z8pxO
-WYEQYlaMrnRBC4DZ2IadzEhLlIOz5BVp/jfhrr8oVVBwKZXsrz9PZLz+e4Yn+siU
-Uvlei9boD9L2ZgSOHakP/gIDApwXVB6n49+yw6e5k2VJBGTFDkQbxpgi4oslePpT
-7Tc2qjAke4zO8JHkgKSokEgnMpMz412q9otFX/3qC5MpPG5P8f4r00Kfy9Am/thk
-ri01WTIUqF8L/VZXJxLKVoRAabSXudG0eavfah14fN5/+Bw5i8vSHhc/xmQEKTya
-2X8Nt1F5zMrE1LAGVVCL9i/DUygnJYOZzAd1Ct0RJ4kFj7lOBICF2IWWiEYEGBEC
-AAYFAjbjjw8ACgkQLXJ8x2hpdzQgqQCgn81AaW8W/lyVwMh/UBeMuVMUb24An2uz
-wg7Md81a5RI3F2FG8747t9gX
-=VM1e
------END PGP PRIVATE KEY BLOCK-----
-'
-
-# Bug 1179 solved 2010-05-12:
-# It occurred for messages of a multiple of the iobuf block size where
-# the last line had no pad character.  Due to premature poppng of thea
-# rmor filter gpg swalled the CRC line and passed the '-----END...'
-# line on to the decryption layer.
-
-i=alpha_seckey
-info "importing: $i"
-eval "(IFS=; echo \"\$$i\")" >x
-$GPG --import x || true
-
-i=nopad_armored_msg
-info "checking: $i"
-eval "(IFS=; echo \"\$$i\")" >x
-if $GPG -o - x > /dev/null ; then
-   :
-else
-   error "bug#1179 is back in town"
-fi
-
index b84bfe4..18178f1 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (for-each-p
  "Checking armored signing and encryption"
diff --git a/tests/openpgp/armsignencrypt.test b/tests/openpgp/armsignencrypt.test
deleted file mode 100755 (executable)
index c50a12d..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-
-#info Checking armored signing and encryption
-for i in $plain_files $data_files ; do
-    echo "$usrpass1"  | $GPG --passphrase-fd 0 ${opt_always} \
-                        -sae -o x --yes -r "$usrname2" $i
-    $GPG -o y --yes x
-    cmp $i y || error "$i: mismatch"
-done
-
index d897581..6e5d056 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (for-each-p
  "Checking armored signatures"
diff --git a/tests/openpgp/armsigs.test b/tests/openpgp/armsigs.test
deleted file mode 100755 (executable)
index 8fc8672..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-#info Checking armored signatures
-for i in $plain_files $data_files ; do
-    echo "$usrpass1" | $GPG --passphrase-fd 0 -sa -o x --yes $i
-    $GPG -o y --yes x
-    cmp $i y || error "$i: mismatch"
-done
-
index 96b1b4c..7b95561 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (define (check-signing args input)
   (lambda (source sink)
diff --git a/tests/openpgp/clearsig.test b/tests/openpgp/clearsig.test
deleted file mode 100755 (executable)
index bf67916..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/bin/sh
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-# Fixme: we should not only do a --verify but also the output.
-
-. $srcdir/defs.inc || exit 3
-
-# ======================================
-# I can't compare the out because plain-3 has no LF as last charcater
-# but the output has always one.  I do not thinkl this is a bug, because
-# it is clear text and not binary text.
-# ======================================
-for i in $plain_files plain-large ; do
-    echo "$usrpass1" | $GPG --passphrase-fd 0 --clearsign -o x --yes $i
-    $GPG --verify x
-done
-
-
-# ======================================
-# and one with long lines
-# ======================================
-cat >y <<EOF
-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyx
-
-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-EOF
-echo "$usrpass1" | $GPG --passphrase-fd 0 --clearsign -o x --yes y
-$GPG --verify x
-
-
-# ======================================
-# and one with only one long lines
-# ======================================
-cat >y <<EOF
-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyx
-EOF
-echo "$usrpass1" | $GPG --passphrase-fd 0 --clearsign -o x --yes y
-$GPG --verify x
-
-
-# ======================================
-# and one with an empty body
-# ======================================
-cat >y <<EOF
-EOF
-echo "$usrpass1" | $GPG --passphrase-fd 0 --clearsign -o x --yes y
-$GPG --verify x
-
-
-# ======================================
-# and one with one empty line at the end
-# ======================================
-cat >y <<EOF
-line 1
-line 2
-line 3
-there is a blank line after this
-
-EOF
-echo "$usrpass1" | $GPG --passphrase-fd 0 --clearsign -o x --yes y
-$GPG --verify x
-
-
-# ======================================
-# I think this file will be constructed wrong (gpg 0.9.3)
-# but it should verify okay anyway.
-# ======================================
-echo "this is a sig test" >y
-echo_n " " >>y
-echo "$usrpass1" | $GPG --passphrase-fd 0 --clearsign -o x --yes y
-$GPG --verify x
-
-
-# ======================================
-# check our special diff mode
-# ======================================
-cat >y <<EOF
---- mainproc.c Tue Jun 27 09:28:11 2000
-+++ mainproc.c~ Thu Jun  8 22:50:25 2000
-@@ -1190,16 +1190,13 @@
-               md_enable( c->mfx.md, n1->pkt->pkt.signature->digest_algo);
-           }
-           /* ask for file and hash it */
--          if( c->sigs_only ) {
-+          if( c->sigs_only )
-               rc = hash_datafiles( c->mfx.md, NULL,
-                                    c->signed_data, c->sigfilename,
-                       n1? (n1->pkt->pkt.onepass_sig->sig_class == 0x01):0 );
-EOF
-echo "$usrpass1" | $GPG --passphrase-fd 0 \
-                                  --not-dash-escaped --clearsign -o x --yes y
-$GPG --verify x
index c524921..fb92217 100755 (executable)
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (define s2k '--s2k-count=65536)
 (define passphrase "Hier spricht HAL")
 
-(define (file-copy-n from to n)
-  (catch '() (unlink to))
-  (letfd ((source (open from (logior O_RDONLY O_BINARY)))
-         (sink (open to (logior O_WRONLY O_CREAT O_BINARY) #o600)))
-    (splice source sink n)))
-
-(define test-files
-  (map (lambda (size)
-        (let ((tmp (make-temporary-file
-                    (string-append "data-80000-" (number->string size)))))
-          (file-copy-n "data-80000" tmp size)
-          tmp))
-       '(0 1 2 3 9 10 11 19 20 21 22 23 39 40 41 8192 32000)))
-
 (for-each-p
  "Checking conventional encryption with MDC"
  (lambda (algo)
                                  --cipher-algo ,algo))
        (tr:gpg passphrase `(--yes --passphrase-fd "0" ,s2k))
        (tr:assert-identity source)))
-    test-files))
+    '("plain-1" "data-80000")))
  all-cipher-algos)
 
-(for-each remove-temporary-file test-files)
-
 (for-each-p
  "Checking sign+symencrypt"
  (lambda (source)
diff --git a/tests/openpgp/conventional-mdc.test b/tests/openpgp/conventional-mdc.test
deleted file mode 100755 (executable)
index 031fc0e..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/sh
-# Copyright 2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-# We use use a lower than default value for the S2K count to run the
-# tests faster.  We used a fixed value of 65536 already the past.
-s2k="--s2k-count=65536"
-
-#info Checking conventional encryption
-for ciph in `all_cipher_algos`; do
-  progress "$ciph"
-  for i in 0 1 2 3 9 10 11 19 20 21 22 23 39 40 41 8192 32000 ; do
-    # *BSD's dd can't cope with a count of 0
-    if test "$i" = "0"; then
-        : >z
-    else
-        dd if=data-80000 of=z bs=1 count=$i 2>/dev/null
-    fi
-    echo "Hier spricht HAL" | $GPG --passphrase-fd 0 $s2k \
-       --force-mdc --cipher $ciph -c -o x --yes z
-    echo "Hier spricht HAL" | $GPG --passphrase-fd 0 $s2k \
-       -o y --yes x
-    cmp z y || error "$ciph/$i: mismatch"
-  done
-done
-progress_end
-
-#info Checking sign+symencrypt
-for i in $plain_files $data_files; do
-    echo "Hier spricht HAL" | $GPG --passphrase-fd 0 $s2k -cs -o x --yes $i
-    echo "Hier spricht HAL" | $GPG --passphrase-fd 0 $s2k     -o y --yes x
-    cmp $i y || error "$i: mismatch in sign+symenc"
-done
-
-
-# eof
index 67e28e2..af889dc 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (define s2k '--s2k-count=65536)
 (define passphrase "Hier spricht HAL")
diff --git a/tests/openpgp/conventional.test b/tests/openpgp/conventional.test
deleted file mode 100755 (executable)
index 30c9ba0..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/sh
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-# We use use a lower than default value for the S2K count to run the
-# tests faster.  We used a fixed value of 65536 already the past.
-s2k="--s2k-count=65536"
-
-#info Checking conventional encryption
-for i in plain-2 data-32000 ; do
-    echo "Hier spricht HAL" | $GPG --passphrase-fd 0 $s2k -c -o x --yes $i
-    echo "Hier spricht HAL" | $GPG --passphrase-fd 0 $s2k    -o y --yes x
-    cmp $i y || error "$i: mismatch"
-done
-
-for a in `all_cipher_algos`; do
-    progress "$a"
-    for i in plain-1 data-80000 ; do
-      echo "Hier spricht HAL" | $GPG --passphrase-fd 0 $s2k \
-                                         --cipher-algo $a -c -o x --yes $i
-      echo "Hier spricht HAL" | $GPG --passphrase-fd 0 $s2k -o y --yes x
-      cmp $i y || error "$i: ($a) mismatch"
-    done
-done
-
-progress_end
index b01a0f7..49f9534 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (for-each-p
  "Checking decryption of supplied DSA encrypted file"
diff --git a/tests/openpgp/decrypt-dsa.test b/tests/openpgp/decrypt-dsa.test
deleted file mode 100755 (executable)
index ba83fea..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-#info Checking decryption of supplied DSA encrypted file
-for i in "plain-1" ; do
-    $GPG -o y --yes $srcdir/$i-pgp.asc
-    cmp $i y || error "$i: mismatch"
-done
-
index ec0f8e7..ba8bcee 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (for-each-p
  "Checking decryption of supplied files"
diff --git a/tests/openpgp/decrypt.test b/tests/openpgp/decrypt.test
deleted file mode 100755 (executable)
index 370dc96..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-#info Checking decryption of supplied files
-for i in $plain_files ; do
-    $GPG -o y --yes $srcdir/$i.asc
-    cmp $i y || error "$i: mismatch"
-done
-
index 4433658..a90cca8 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 ;; Import the sample key
 ;;
@@ -71,6 +72,6 @@
        (unless (any (lambda (line)
                       (and (string-prefix? line ":pubkey enc packet:")
                            (string-suffix? line "45117079")))
-                    (string-split c #\newline))
+                    (string-split-newlines c))
            (exit 1))))))
  '("8BC90111" "3E880CFF" "F5F77B83" "45117079" "1EA97479"))
diff --git a/tests/openpgp/default-key.test b/tests/openpgp/default-key.test
deleted file mode 100755 (executable)
index 83e4f79..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/bin/sh
-
-. $srcdir/defs.inc || exit 3
-
-#set -x
-
-# Make sure $srcdir is set.
-if test "x$srcdir" = x
-then
-    echo srcdir environment variable not set!
-    exit 1
-fi
-
-# Import the sample key
-#
-# pub   1024R/8BC90111 2015-12-02
-#       Key fingerprint = E657 FB60 7BB4 F21C 90BB  6651 BC06 7AF2 8BC9 0111
-# uid       [ultimate] Barrett Brown <barrett@example.org>
-# sub   1024R/3E880CFF 2015-12-02 (encryption)
-# sub   1024R/F5F77B83 2015-12-02 (signing)
-# sub   1024R/45117079 2015-12-02 (encryption)
-# sub   1024R/1EA97479 2015-12-02 (signing)
-info "Importing public key."
-if $GPG --import $srcdir/samplekeys/E657FB607BB4F21C90BB6651BC067AF28BC90111.asc
-then
-    :
-else
-    error "$k: import failed"
-fi
-
-# By default, the most recent, valid signing subkey (1EA97479).
-for x in 8BC90111 3E880CFF F5F77B83 45117079 1EA97479
-do
-    info
-    info "Trying --default-key $x"
-
-    if ! echo | $GPG --default-key "$x" -s | $GPG --verify --status-fd=1 \
-            | grep 'VALIDSIG 5FBA84ACE02DCB17DA3DFF6BBCA43C441EA97479' >/dev/null
-    then
-        echo | $GPG --default-key "$x" -s | $GPG --verify --status-fd=2
-        error "Unexpected key used for signing (not the signing subkey, specified \"$x\")."
-        exit 1
-    fi
-done
-
-# By default, the most recent, valid encryption subkey (45117079).
-for x in 8BC90111 3E880CFF F5F77B83 45117079 1EA97479
-do
-    info
-    info "Trying --default-key $x --encrypt-to-default-key"
-
-    # We need another recipient, because --encrypt-to-default-key is
-    # not considered a recipient and gpg doesn't encrypt without any
-    # recipients.
-    #
-    # Note: it doesn't matter whether we specify the primary key or
-    # a subkey: the newest encryption subkey will be used.
-    if ! echo | $GPG ${opt_always} \
-                     --default-key "$x" --encrypt-to-default-key \
-                     -r 439F02CA -e \
-            | $GPG --list-packets \
-            | grep "keyid[ ][A-F0-9]*45117079" >/dev/null
-    then
-        echo | $GPG ${opt_always} \
-                    --default-key "$x" --encrypt-to-default-key \
-                    -r 439F02CA -e \
-            | $GPG --list-packets 1>&2
-        error "Unexpected key used for signing (specified \"$x\")."
-        exit 1
-    fi
-done
-
-exit 0
diff --git a/tests/openpgp/defs.inc b/tests/openpgp/defs.inc
deleted file mode 100755 (executable)
index ea86c69..0000000
+++ /dev/null
@@ -1,265 +0,0 @@
-# Definitions for the OpenPGP test scripts                     -*- sh -*-
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007, 2010 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-#--------------------------------
-#------ constants ---------------
-#--------------------------------
-
-usrname1="one@example.com"
-usrpass1="def"
-usrname2="two@example.com"
-usrpass2=""
-usrname3="three@example.com"
-usrpass3=""
-
-
-dsa_usrname1="pgp5"
-# we use the sub key because we do not yet have the logic to to derive
-# the first encryption key from a keyblock (I guess) (Well of course
-# we have this by now and the notation below will lookup the primary
-# first and then search for the encryption subkey.)
-dsa_usrname2="0xCB879DE9"
-
-
-plain_files="plain-1 plain-2 plain-3"
-data_files="data-500 data-9000 data-32000 data-80000"
-exp_files=""
-
-# The testscripts expect the original language
-LANG=
-LANGUAGE=
-LC_ALL=
-LC_MESSAGES=
-
-# Internal use.
-defs_stop_on_error=no
-defs_error_seen=no
-defs_progress_active=no
-
-#--------------------------------
-#------ utility functions -------
-#--------------------------------
-
-progress_cancel () {
-    if [ x$defs_progress_active = xyes ]; then
-        echo
-        defs_progress_active=no
-    fi
-}
-
-fatal () {
-    progress_cancel
-    echo "$pgmname: fatal:" $* >&2
-    echo "$pgmname: fatal:" $* >&5
-    echo stop >gnupg-test.stop
-    exit 1;
-}
-
-error () {
-    progress_cancel
-    echo "$pgmname:" $* >&2
-    defs_error_seen=yes
-    echo "$pgmname:" $* >&5
-    if [ x$defs_stop_on_error != xyes ]; then
-      exit 1
-    fi
-}
-
-# Call this at the start of a test and resume_error at the end to keep
-# on running all subtests without immediately exiting on error.
-suspend_error () {
-   defs_stop_on_error=yes
-}
-
-resume_error () {
-    if [ x$defs_error_seen = xyes ]; then
-        exit 1
-    fi
-    defs_stop_on_error=no
-    defs_error_seen=no
-}
-
-info () {
-    progress_cancel
-    echo "$pgmname:" $* >&2
-    if [ -n "${verbose+set}" ]; then
-      echo "$pgmname:" $* >&5
-    fi
-}
-
-linefeed () {
-    echo >&2
-}
-
-echo_n_init=no
-echo_n () {
-  if test "$echo_n_init" = "no"; then
-    if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
-      if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
-       echo_n_n=
-       echo_n_c='
-'
-      else
-       echo_n_n='-n'
-       echo_n_c=
-      fi
-    else
-      echo_n_n=
-      echo_n_c='\c'
-    fi
-    echo_n_init=yes
-  fi
-  echo $echo_n_n "${1}$echo_n_c"
-}
-
-
-progress_end () {
-    if [ x$defs_progress_active = xyes ]; then
-        echo "<"
-        defs_progress_active=no
-    fi
-}
-
-progress () {
-    if [ x$defs_progress_active != xyes ]; then
-        echo_n "    > "
-        defs_progress_active=yes
-    fi
-    echo_n "$* "
-}
-
-
-
-#cleanup () {
-#    rm $cleanup_files 2>/dev/null || true
-#    echo "#empty" >./gpg.conf
-#}
-
-
-#add_cleanup () {
-#    cleanup_files="$cleanup_files $*"
-#}
-
-have_pubkey_algo () {
-  if  $GPG --version | grep "Pubkey:.*$1" >/dev/null
-  then
-       true
-  else
-       false
-  fi
-}
-
-have_cipher_algo () {
-  if $GPG --version | grep "Cipher:.*$1" >/dev/null
-  then
-       true
-  else
-       false
-  fi
-}
-
-have_hash_algo () {
-  if $GPG --version | grep "Hash:.*$1" >/dev/null
-  then
-       true
-  else
-       false
-  fi
-}
-
-all_cipher_algos () {
-  $GPG --with-colons --list-config ciphername \
-       | sed 's/^cfg:ciphername://; s/;/ /g'
-}
-
-all_hash_algos () {
-  $GPG --with-colons --list-config digestname \
-       | sed 's/^cfg:digestname://; s/;/ /g'
-}
-
-set -e
-pgmname=`basename $0`
-#trap cleanup SIGHUP SIGINT SIGQUIT
-
-[ -z "$srcdir" ] && fatal "not called from make"
-
-#
-if [ -f gnupg-test.stop ]; then
-    if [ $pgmname = "version.test" ]; then
-        rm gnupg-test.stop
-    else
-        # Skip the rest of the tests.
-        exit 77
-    fi
-fi
-
-# Always work in the current directory.  We set GNUPGHOME only if it
-# has not been set already.  Usually it is set through the Makefile's
-# TESTS_ENVIRONMENT macro.
-if [ -z "$GNUPGHOME" ]; then
-  GNUPGHOME=`/bin/pwd`
-  export GNUPGHOME
-elif [ "$GNUPGHOME" != `/bin/pwd` ]; then
-  echo "$pgmname: GNUPGHOME not set to the cwd" $* >&2
-  exit 1
-fi
-
-# We don't use GPG_AGENT_INFO anymore - better reset it.
-unset GPG_AGENT_INFO
-
-# (--no-permission-warning makes only sense on the commandline)
-GPG="../../g10/gpg --no-permission-warning "
-# (We may not use a relative name for gpg-agent.)
-GPG_AGENT="$(cd ../../agent && /bin/pwd)/gpg-agent"
-GPG_CONNECT_AGENT="../../tools/gpg-connect-agent"
-GPGCONF="../../tools/gpgconf"
-GPG_PRESET_PASSPHRASE="../../agent/gpg-preset-passphrase"
-MKTDATA="../../tools/mk-tdata"
-PINENTRY="$(/bin/pwd)/fake-pinentry${EXEEXT}"
-# Default to empty passphrase for pinentry.sh
-PINENTRY_USER_DATA=
-
-# If --check-trustdb is not an option, GPG has been build without
-# trust model support.  Thus we can't use --always-trust and some
-# other options.
-if $GPG --dump-options | grep '^--check-trustdb$' >/dev/null ; then
-  opt_always="--always-trust"
-else
-  opt_always=
-fi
-
-# Make sure we have a valid option files even with VPATH builds.
-for f in gpg.conf gpg-agent.conf ; do
-  if [ -f ./$f ]; then
-    :
-  elif [ -f $srcdir/$f.tmpl ]; then
-    cat $srcdir/$f.tmpl >$f
-    case "$f" in
-      gpg.conf)
-        [ -n "${opt_always}" ] && echo "no-auto-check-trustdb" >>"$f"
-        echo "agent-program ${GPG_AGENT}|--debug-quick-random" >>"$f"
-        echo "allow-weak-digest-algos" >>"$f"
-        ;;
-      gpg-agent.conf)
-        echo "pinentry-program $PINENTRY" >>"$f"
-        ;;
-    esac
-  fi
-done
-
-if [ "${verbose:-0}" -gt "1" ]; then
-  exec 5>/dev/null
-else
-  echo "Test: $pgmname"                  >  ${pgmname}.log
-  echo "GNUPGHOME=$GNUPGHOME"            >> ${pgmname}.log
-  exec 5>&2 2>>${pgmname}.log
-fi
-:
-# end
index 4a968da..e91902c 100644 (file)
@@ -59,7 +59,6 @@
     (gpgconf "GPGCONF" "tools/gpgconf")
     (gpg-preset-passphrase "GPG_PRESET_PASSPHRASE"
                           "agent/gpg-preset-passphrase")
-    (mktdata "MKTDATA" "tools/mk-tdata")
     (gpgtar "GPGTAR" "tools/gpgtar")
     (gpg-zip "GPGZIP" "tools/gpg-zip")
     (pinentry "PINENTRY" "tests/openpgp/fake-pinentry")))
@@ -91,7 +90,7 @@
 (define (gpg-with-colons args)
   (let ((s (call-popen `(,@GPG --with-colons ,@args) "")))
     (map (lambda (line) (string-split line #\:))
-        (string-split s #\newline))))
+        (string-split-newlines s))))
 
 (define (get-config what)
   (string-split (caddar (gpg-with-colons `(--list-config ,what))) #\;))
    (lambda (line)
      (let ((p (string-split line #\:)))
        (list (string->number (cadr p)) (caddr p))))
-   (string-split
-    (call-popen `(,@GPG --with-colons ,@args) input) #\newline)))
+   (string-split-newlines
+    (call-popen `(,@GPG --with-colons ,@args) input))))
 
 ;; Dearmor a file.
 (define (dearmor source-name sink-name)
 (let ((verbose (string->number (getenv "verbose"))))
   (if (number? verbose)
       (*set-verbose!* verbose)))
+
+;;
+;; Support for test environment creation and teardown.
+;;
+
+(define (make-test-data filename size)
+  (call-with-binary-output-file
+   filename
+   (lambda (port)
+     (display (make-random-string size) port))))
+
+(define (create-gpghome)
+  (log "Creating test environment...")
+
+  (srandom (getpid))
+  (make-test-data "random_seed" 600)
+
+  (log "Creating configuration files")
+  (for-each
+   (lambda (name)
+     (file-copy (in-srcdir (string-append name ".tmpl")) name)
+     (let ((p (open-input-output-file name)))
+       (cond
+       ((string=? "gpg.conf" name)
+        (if have-opt-always-trust
+            (display "no-auto-check-trustdb\n" p))
+        (display (string-append "agent-program "
+                                (tool 'gpg-agent)
+                                "|--debug-quick-random\n") p)
+        (display "allow-weak-digest-algos\n" p))
+       ((string=? "gpg-agent.conf" name)
+        (display (string-append "pinentry-program " PINENTRY "\n") p)))))
+   '("gpg.conf" "gpg-agent.conf")))
+
+;; Initialize the test environment, install appropriate configuration
+;; and start the agent, without any keys.
+(define (setup-environment)
+  (create-gpghome)
+  (start-agent))
+
+(define (create-legacy-gpghome)
+  (log "Creating sample data files")
+  (for-each
+   (lambda (size)
+     (make-test-data (string-append "data-" (number->string size))
+                    size))
+   '(500 9000 32000 80000))
+
+  (log "Unpacking samples")
+  (for-each
+   (lambda (name)
+     (dearmor (in-srcdir (string-append name "o.asc")) name))
+   '("plain-1" "plain-2" "plain-3" "plain-large"))
+
+  (mkdir "private-keys-v1.d" "-rwx")
+
+  (log "Storing private keys")
+  (for-each
+   (lambda (name)
+     (dearmor (in-srcdir (string-append "/privkeys/" name ".asc"))
+             (string-append "private-keys-v1.d/" name ".key")))
+   '("50B2D4FA4122C212611048BC5FC31BD44393626E"
+     "7E201E28B6FEB2927B321F443205F4724EBE637E"
+     "13FDB8809B17C5547779F9D205C45F47CE0217CE"
+     "343D8AF79796EE107D645A2787A9D9252F924E6F"
+     "8B5ABF3EF9EB8D96B91A0B8C2C4401C91C834C34"
+     "0D6F6AD4C4C803B25470F9104E9F4E6A4CA64255"
+     "FD692BD59D6640A84C8422573D469F84F3B98E53"
+     "76F7E2B35832976B50A27A282D9B87E44577EB66"
+     "A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD"
+     "00FE67F28A52A8AA08FFAED20AF832DA916D1985"
+     "1DF48228FEFF3EC2481B106E0ACA8C465C662CC5"
+     "A2832820DC9F40751BDCD375BB0945BA33EC6B4C"
+     "ADE710D74409777B7729A7653373D820F67892E0"
+     "CEFC51AF91F68A2904FBFF62C4F075A4785B803F"
+     "1E28F20E41B54C2D1234D896096495FF57E08D18"
+     "EB33B687EB8581AB64D04852A54453E85F3DF62D"
+     "C6A6390E9388CDBAD71EAEA698233FE5E04F001E"
+     "D69102E0F5AC6B6DB8E4D16DA8E18CF46D88CAE3"))
+
+  (log "Importing public demo and test keys")
+  (for-each
+   (lambda (file)
+     (call-check `(,@GPG --yes --import ,(in-srcdir file))))
+   (list "pubdemo.asc" "pubring.asc" key-file1))
+
+  (pipe:do
+   (pipe:open (in-srcdir "pubring.pkr.asc") (logior O_RDONLY O_BINARY))
+   (pipe:spawn `(,@GPG --dearmor))
+   (pipe:spawn `(,@GPG --yes --import))))
+
+(define (preset-passphrases)
+  (log "Presetting passphrases")
+  ;; one@example.com
+  (call-check `(,(tool 'gpg-preset-passphrase)
+               --preset --passphrase def
+               "50B2D4FA4122C212611048BC5FC31BD44393626E"))
+  (call-check `(,(tool 'gpg-preset-passphrase)
+               --preset --passphrase def
+               "7E201E28B6FEB2927B321F443205F4724EBE637E"))
+  ;; alpha@example.net
+  (call-check `(,(tool 'gpg-preset-passphrase)
+               --preset --passphrase abc
+               "76F7E2B35832976B50A27A282D9B87E44577EB66"))
+  (call-check `(,(tool 'gpg-preset-passphrase)
+               --preset --passphrase abc
+               "A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD")))
+
+;; Initialize the test environment, install appropriate configuration
+;; and start the agent, with the keys from the legacy test suite.
+(define (setup-legacy-environment)
+  (create-gpghome)
+  (if (member "--unpack-tarball" *args*)
+      (begin
+       (call-check `(,(tool 'gpgtar) --extract --directory=. ,(cadr *args*)))
+       (start-agent))
+      (begin
+       (start-agent)
+       (create-legacy-gpghome)))
+  (preset-passphrases))
+
+;; Create the socket dir and start the agent.
+(define (start-agent)
+  (log "Starting gpg-agent...")
+  (atexit stop-agent)
+  (catch (log "Warning: Creating socket directory failed:" (car *error*))
+        (call-popen `(,(tool 'gpgconf) --create-socketdir) ""))
+  (call-check `(,(tool 'gpg-connect-agent) --verbose
+               ,(string-append "--agent-program=" (tool 'gpg-agent)
+                               "|--debug-quick-random")
+               /bye)))
+
+;; Stop the agent and remove the socket dir.
+(define (stop-agent)
+  (log "Stopping gpg-agent...")
+  (catch (log "Warning: Removing socket directory failed.")
+        (call-popen `(,(tool 'gpgconf) --remove-socketdir) ""))
+  (call-check `(,(tool 'gpg-connect-agent) --verbose --no-autostart
+               killagent /bye)))
index 375e922..2180f78 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (for-each-p
  "Checking detached signatures"
diff --git a/tests/openpgp/detach.test b/tests/openpgp/detach.test
deleted file mode 100755 (executable)
index 9b68e00..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-#info Checking detached signatures
-for i in $plain_files $data_files ; do
-    echo "$usrpass1" | $GPG --passphrase-fd 0 -sb -o x --yes $i
-    $GPG -o /dev/null --yes x  <$i || error "$i: bad signature"
-done
-
index a4ebce0..1de8da9 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (define files (append plain-files data-files))
 
diff --git a/tests/openpgp/detachm.test b/tests/openpgp/detachm.test
deleted file mode 100755 (executable)
index d65bcf2..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-#info Checking detached signatures of multiple files
-i="$plain_files $data_files"
-echo "$usrpass1" | $GPG --passphrase-fd 0 -sb -o x --yes $i
-cat $i | $GPG -o /dev/null --yes x || error "$i: bad signature"
-
index f2f3b7c..2190b9b 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (define keygrips '("8E06A180EFFE4C65B812150CAF19BF30C0689A4C"
                   "E4403F3FD7A443FAC29FEF288FA0D20AC212851E"
@@ -187,7 +188,7 @@ Rg==
 ;;
 ;; Now check that we can encrypt and decrypt our own messages.
 ;;
-;; Note that we don't need to provide a passppharse because we already
+;; Note that we don't need to provide a passphrase because we already
 ;; preset the passphrase into the gpg-agent.
 ;;
 (for-each-p
diff --git a/tests/openpgp/ecc.test b/tests/openpgp/ecc.test
deleted file mode 100755 (executable)
index 58fd251..0000000
+++ /dev/null
@@ -1,253 +0,0 @@
-#!/bin/sh
-# Copyright 2011 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-keygrips='8E06A180EFFE4C65B812150CAF19BF30C0689A4C
-          E4403F3FD7A443FAC29FEF288FA0D20AC212851E
-          0B7554421FFB14A06CB9F63FB49A85A58E97ABAC
-          303ACC892C2D786C8A789677C0BE54DA8538F903
-          9FE5C36985351524B6AFA19FDCBC1A3A750B6F5F
-          145A52CC7ED3FD41C5B0A26BE220FEED36AF24DE'
-mainkeyids='BAA59D9C
-            0F54719F
-            45AF2FFE'
-
-
-if have_pubkey_algo "ECDH"; then
-  :
-else
-  info "No ECC support due to an old Libgcrypt"
-  exit 77
-fi
-
-
-#
-# Setup for ECC testing
-#
-info "Preparing for ECC test."
-for i in $keygrips ; do
-  rm private-keys-v1.d/$i.key 2>/dev/null || true
-  $GPG_PRESET_PASSPHRASE --preset -P ecc $i
-done
-
-
-#
-# Import the sample keys
-#
-info "Importing ECC public keys."
-for k in $mainkeyids ; do
-  $GPG --delete-key --batch --yes $k 2>/dev/null || true
-done
-for i in 1 2 3; do
-  k="ecc-sample-$i-pub.asc"
-  if $GPG --import $srcdir/samplekeys/$k; then
-    :
-  else
-    error "$k: import failed"
-  fi
-done
-
-
-#
-# Check a few sample signature
-#
-info "Checking ECC signatures."
-tests=""
-
-# The following is an opaque ECDSA signature on a message "This is one
-# line\n" (17 byte long) by the primary 256 bit key:
-tests="$tests msg_opaque_signed_256"
-msg_opaque_signed_256='-----BEGIN PGP MESSAGE-----
-Version: GnuPG v2.1.0-ecc (GNU/Linux)
-
-owGbwMvMwCHMvVT3w66lc+cwrlFK4k5N1k3KT6nUK6ko8Zl8MSEkI7NYAYjy81IV
-cjLzUrk64lgYhDkY2FiZQNIMXJwCMO31rxgZ+tW/zesUPxWzdKWrtLGW/LkP5rXL
-V/Yvnr/EKjBbQuvZSYa/klsum6XFmTze+maVgclT6Rc6hzqqxNy6o6qdTTmLJuvp
-AQA=
-=GDv4
------END PGP MESSAGE----'
-
-# The following is an opaque ECDSA signature on a message "This is one
-# line\n" (17 byte long) by the primary 384 bit key:
-tests="$tests msg_opaque_signed_384"
-msg_opaque_signed_384='-----BEGIN PGP MESSAGE-----
-Version: PGP Command Line v10.0.0 (Linux)
-
-qANQR1DIqwE7wsvMwCnM2WDcwR9SOJ/xtFISd25qcXFieqpeSUUJAxCEZGQWKwBR
-fl6qQk5mXirXoXJmVgbfYC5xmC5hzsDPjHXqbDLzpXpTBXSZV3L6bAgP3Kq7Ykmo
-7Ds1v4UfBS+3CSSon7Pzq79WLjzXXEH54MkjPxnrw+8cfMVnY7Bi18J702Nnsa7a
-9lMv/PM0/ao9CZ3KX7Q+Tv1rllTZ5Hj4V1frw431QnHfAA==
-=elKT
------END PGP MESSAGE-----'
-
-# The following is an opaque ECDSA signature on a message "This is one
-# line\n" (17 byte long) by the primary 521 bit key:
-tests="$tests msg_opaque_signed_521"
-msg_opaque_signed_521='-----BEGIN PGP MESSAGE-----
-Version: PGP Command Line v10.0.0 (Linux)
-
-qANQR1DIwA8BO8LLzMAlnO3Y8tB1vf4/xtNKSdy5qcXFiempeiUVJQxAEJKRWawA
-RPl5qQo5mXmpXIdmMLMy+AaLnoLpEubatpeJY2Lystd7Qt32q2UcvRS5kNPWtDB7
-ryufvcrWtFM7Jx8qXKDxZuqr7b9PGv1Ssk+I8TzB2O9dZC+n/jv+PAdbuu7mLe33
-Gf9pLd3weV3Qno6FOqxGa5ZszQx+uer2xH3/El9x/2pVeO4l15ScsL7qWMTmffmG
-Ic1RdzgeCfosMF+l/zVRchcLKzenEQA=
-=ATtX
------END PGP MESSAGE-----'
-
-echo 'This is one line' >z
-for msg in $tests; do
-   info "checking: $msg"
-   eval "(IFS=; echo \"\$$msg\")" >x
-   $GPG --verify x || error "verify(1) of $msg failed"
-   $GPG -o y --yes x || error "verify(2) of $msg failed"
-   cmp y z || error "$msg: mismatch"
-done
-
-
-#
-# Import the secret keys so that we now can sign and decrypt.
-#
-# Note that the PGP generated secret keys are not self-signed, thus we
-# need to pass an appropriate option.
-#
-info "Importing ECC secret keys."
-for i in 1 2 3; do
-  k="ecc-sample-$i-sec.asc"
-  if [ "$i" -gt "1" ]; then
-    extraopts="--allow-non-selfsigned-uid"
-  else
-    extraopts=""
-  fi
-  if PINENTRY_USER_DATA=ecc $GPG $extraopts --import $srcdir/samplekeys/$k; then
-    :
-  else
-    error "$k: import failed"
-  fi
-done
-
-
-#
-# Check a few sample encrtpted messages.
-#
-info "Checking ECC encryption."
-tests=""
-
-# The following block encrypts the text "This is one line\n", 17 bytes,
-# with the subkey 4089AB73.
-tests="$tests msg_encrypted_256"
-msg_encrypted_256='-----BEGIN PGP MESSAGE-----
-Version: GnuPG v2.1.0-ecc (GNU/Linux)
-
-hH4Dd863o0CJq3MSAgMEHdIYZQx+rV1cjy7qitIOEICFFzp4cjsRX4r+rDdMcQUs
-h7VZmbP1c9C0s9sgCKwubWfkcYUl2ZOju4gy+s4MYTBb4/j8JjnJ9Bqn6LWutTXJ
-zwsdP13VIJLnhiNqISdR3/6xWQ0ICRYzwb95nUZ1c1DSVgFpjPgUvi4pgYbTpcDB
-jzILKWBfBDT/jck169XE8vgtbcqVQYZ7lZpaY9CzEbC+4dXZmV1gm5MafpTyFWgH
-VnyrZB4gad9Lp9e0RKHHcOOE7s/NeLuu
-=odUZ
------END PGP MESSAGE-----'
-
-# The following block encrypts the text "This is one line\n", 17 bytes,
-# with the subkey 9A201946:
-tests="$tests msg_encrypted_384"
-msg_encrypted_384='-----BEGIN PGP MESSAGE-----
-Version: PGP Command Line v10.0.0 (Linux)
-
-qANQR1DBngOqi5OPmiAZRhIDAwQqIr/00cJyf+QP+VA4QKVkk77KMHdz9OVaR2XK
-0VYu0F/HPm89vL2orfm2hrAZxY9G2R0PG4Wk5Lg04UjKca/O72uWtjdPYulFidmo
-uB0QpzXFz22ZZinxeVPLPEr19Pow0EwCc95cg4HAgrD0nV9vRcTJ/+juVfvsJhAO
-isMKqrFNMvwnK5A1ECeyVXe7oLZl0lUBRhLr59QTtvf85QJjg/m5kaGy8XCJvLv3
-61pZa6KUmw89PjtPak7ebcjnINL01vwmyeg1PAyW/xjeGGvcO+R4P1b4ewyFnJyR
-svzIJcP7d4DqYOw7
-=oiTJ
------END PGP MESSAGE-----'
-
-# The following block encrypts the text "This is one line\n", 17 bytes,
-# with the subkey A81C4838:
-tests="$tests msg_encrypted_521"
-msg_encrypted_521='-----BEGIN PGP MESSAGE-----
-Version: PGP Command Line v10.0.0 (Linux)
-
-qANQR1DBwAIDB+qqSKgcSDgSBCMEAKpzTUxB4c56C7g09ekD9I+ttC5ER/xzDmXU
-OJmFqU5w3FllhFj4TgGxxdH+8fv4W2Ag0IKoJvIY9V1V7oUCClfqAR01QbN7jGH/
-I9GFFnH19AYEgMKgFmh14ZwN1BS6/VHh+H4apaYqapbx8/09EL+DV9zWLX4GRLXQ
-VqCR1N2rXE29MJFzGmDOCueQNkUjcbuenoCSKcNT+6xhO27U9IYVCg4BhRUDGfD6
-dhfRzBLxL+bKR9JVAe46+K8NLjRVu/bd4Iounx4UF5dBk8ERy+/8k9XantDoQgo6
-RPqCad4Dg/QqkpbK3y574ds3VFNJmc4dVpsXm7lGV5w0FBxhVNPoWNhhECMlTroX
-Rg==
-=5GqW
------END PGP MESSAGE-----'
-
-echo 'This is one line' >z
-for msg in $tests; do
-   info "checking: $msg"
-   eval "(IFS=; echo \"\$$msg\")" >x
-   PINENTRY_USER_DATA=ecc $GPG -o y --yes x || error "decryption of $msg failed"
-   cmp y z || error "$msg: mismatch"
-done
-
-
-#
-# Now check that we can encrypt and decrypt our own messages.
-#
-# Note that we don't need to provide a passppharse because we already
-# preset the passphrase into the gpg-agent.
-#
-info "Checking ECC encryption and decryption."
-for i in $plain_files $data_files ; do
-  for k in $mainkeyids ; do
-    info "file: $i key: $k"
-    $GPG ${opt_always} -e -o x --yes -r $k $i
-    PINENTRY_USER_DATA=ecc $GPG -o y --yes x
-    cmp $i y || error "$i,$k: mismatch"
-  done
-done
-
-
-#
-# Now check that we can sign and verify our own messages.
-#
-info "Checking ECC signing and verifiction."
-for i in $plain_files $data_files ; do
-  for k in $mainkeyids ; do
-    info "file: $i key: $k"
-    PINENTRY_USER_DATA=ecc $GPG -s -o x --yes -u $k $i
-    $GPG -o y --yes x || error "verify of $i,$k failed"
-    cmp $i y || error "$i,$k: mismatch"
-  done
-done
-
-
-#
-# Let us also try to import the keys only from a secret keyblock.
-#
-# Because PGP does not sign the UID, it is not very useful to work
-# with this key unless we go into the trouble of adding the
-# self-signature.
-#
-info "Importing ECC secret keys directly."
-for i in $keygrips ; do
-  rm private-keys-v1.d/$i.key 2>/dev/null || true
-done
-for k in $mainkeyids ; do
-  $GPG --delete-key --batch --yes $k 2>/dev/null || true
-done
-for i in 1 2 3; do
-  k="ecc-sample-$i-sec.asc"
-  if [ "$i" -gt "1" ]; then
-    extraopts="--allow-non-selfsigned-uid"
-  else
-    extraopts=""
-  fi
-  if PINENTRY_USER_DATA=ecc $GPG $extraopts --import $srcdir/samplekeys/$k; then
-    :
-  else
-    error "$k: import failed"
-  fi
-done
index 5228e43..fccb8c9 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (for-each-p
  "Checking encryption using DSA"
diff --git a/tests/openpgp/encrypt-dsa.test b/tests/openpgp/encrypt-dsa.test
deleted file mode 100755 (executable)
index 7ce670e..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/sh
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-#info Checking encryption
-for i in $plain_files $data_files ; do
-    $GPG ${opt_always} -e -o x --yes -r "$dsa_usrname2" $i
-    $GPG -o y --yes x
-    cmp $i y || error "$i: mismatch"
-done
-
-for ca in `all_cipher_algos` ; do
-    progress "$ca"
-    for i in $plain_files $data_files ; do
-       $GPG ${opt_always} --cipher-algo $ca -e \
-           -o x --yes -r "$dsa_usrname2" $i
-       $GPG -o y --yes x
-       cmp $i y || error "$i: mismatch"
-    done
-done
-
-progress_end
index 7452fc5..ea97b4d 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (for-each-p
  "Checking encryption"
diff --git a/tests/openpgp/encrypt.test b/tests/openpgp/encrypt.test
deleted file mode 100755 (executable)
index 295a6c3..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-#info Checking encryption
-for i in $plain_files $data_files ; do
-    $GPG ${opt_always} -e -o x --yes -r "$usrname2" $i
-    $GPG -o y --yes x
-    cmp $i y || error "$i: mismatch"
-done
-
-echo_n "    > "
-for ca in `all_cipher_algos` ; do
-    echo_n "$ca "
-    for i in $plain_files $data_files ; do
-       $GPG ${opt_always} -e -o x --yes -r "$usrname2" --cipher-algo $ca $i
-       $GPG -o y --yes x
-       cmp $i y || error "$i: mismatch"
-    done
-done
-echo "<"
index 2b010ac..d939190 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (for-each-p
  "Checking encryption and decryption using pipes"
diff --git a/tests/openpgp/encryptp.test b/tests/openpgp/encryptp.test
deleted file mode 100755 (executable)
index 3ad7119..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-#info Checking encryption with a pipe
-for i in $plain_files $data_files ; do
-    $GPG ${opt_always} -e --yes -r "$usrname2" <$i | $GPG --yes > y
-    cmp $i y || error "$i: mismatch"
-done
-
index 8291705..a79411c 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (define (check-for predicate lines message)
   (unless (any predicate lines)
                    "Signature packet not found"))
 
 (define (check-exported-public-key packet-dump keyid)
-  (let ((dump (string-split packet-dump #\newline)))
+  (let ((dump (string-split-newlines packet-dump)))
     (check-for (lambda (l) (string-prefix? l ":public key packet:")) dump
               "Public key packet not found")
     (check-exported-key dump keyid)))
 
 (define (check-exported-private-key packet-dump keyid)
-  (let ((dump (string-split packet-dump #\newline)))
+  (let ((dump (string-split-newlines packet-dump)))
     (check-for (lambda (l) (string-prefix? l ":secret key packet:")) dump
               "Secret key packet not found")
     (check-exported-key dump keyid)))
diff --git a/tests/openpgp/export.test b/tests/openpgp/export.test
deleted file mode 100755 (executable)
index 9776760..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/bin/sh
-
-. $srcdir/defs.inc || exit 3
-
-check_exported_public_key()
-{
-    $GPG --list-packets $1 >$1.packets
-    grep '^:public key packet:' $1.packets >/dev/null
-    grep "^    keyid: .*$KEY$" $1.packets >/dev/null
-    grep '^:user ID packet:' $1.packets >/dev/null
-    grep "^:signature packet:.*keyid.*$KEY" $1.packets >/dev/null
-    rm $1.packets
-}
-
-check_armored_public_key()
-{
-    grep '^-----BEGIN PGP PUBLIC KEY BLOCK-----$' $1 >/dev/null
-    grep '^-----END PGP PUBLIC KEY BLOCK-----$' $1 >/dev/null
-    check_exported_public_key $1
-}
-
-check_exported_private_key()
-{
-    $GPG --list-packets $1 >$1.packets
-    grep '^:secret key packet:' $1.packets >/dev/null
-    grep "^    keyid: .*$KEY$" $1.packets >/dev/null
-    grep '^:user ID packet:' $1.packets >/dev/null
-    grep "^:signature packet:.*keyid.*$KEY" $1.packets >/dev/null
-    rm $1.packets
-}
-
-check_armored_private_key()
-{
-    grep '^-----BEGIN PGP PRIVATE KEY BLOCK-----$' $1 >/dev/null
-    grep '^-----END PGP PRIVATE KEY BLOCK-----$' $1 >/dev/null
-    check_exported_private_key $1
-}
-
-logfile="`pwd`/pinentry.log"
-ppfile="`pwd`/passphrases"
-rm -f -- $logfile $ppfile
-touch $ppfile
-
-prepare_passphrase()
-{
-    echo $* >>$ppfile
-}
-
-prepare_passphrase_confirm()
-{
-    echo "fake-entry being started to CONFIRM the weak phrase" >>$ppfile
-}
-
-assert_passphrases_consumed()
-{
-    if test -s $ppfile; then
-        echo "Expected $ppfile to be empty, but these are enqueued:" >&2
-        cat "$ppfile" >&2
-        exit 1
-    fi
-    rm -f -- $logfile
-}
-
-export PINENTRY_USER_DATA="--logfile=$logfile --passphrasefile=$ppfile"
-
-info "Checking key export."
-for KEY in D74C5F22 C40FDECF ECABF51D
-do
-    progress $KEY
-
-    $GPG --export $KEY >$KEY.public
-    check_exported_public_key $KEY.public
-    rm $KEY.public
-
-    $GPG --armor --export $KEY >$KEY.public
-    check_armored_public_key $KEY.public
-    rm $KEY.public
-
-    # test without --armor:
-
-    if [ $KEY = D74C5F22 ]; then
-        # Key D74C5F22 is protected by a passphrase.  Prepare this
-        # one.  Currently, GnuPG does not ask for an export passphrase
-        # in this case.
-        prepare_passphrase "$usrpass1"
-    fi
-
-    $GPG --export-secret-keys $KEY >$KEY.private
-    check_exported_private_key $KEY.private
-    rm $KEY.private
-
-    assert_passphrases_consumed
-
-    # test with --armor:
-
-    if [ $KEY = D74C5F22 ]; then
-        # Key D74C5F22 is protected by a passphrase.  Prepare this
-        # one.  Currently, GnuPG does not ask for an export passphrase
-        # in this case.
-        prepare_passphrase "$usrpass1"
-    fi
-
-    $GPG --armor --export-secret-keys $KEY >$KEY.private
-    check_armored_private_key $KEY.private
-    rm $KEY.private
-
-    assert_passphrases_consumed
-done
-
-progress_end
index 6ef6126..6585b01 100644 (file)
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
+#include <errno.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
 #include <stdarg.h>
+#include <unistd.h>
 
-FILE *log_stream;
+static FILE *log_stream;
 
-int
+
+static int
 reply (const char *fmt, ...)
 {
   int result;
@@ -42,11 +45,13 @@ reply (const char *fmt, ...)
   result = vprintf (fmt, ap);
   va_end (ap);
 
+  fflush (stdout);
   return result;
 }
 
+
 /* Return the first line from FNAME, removing it from the file.  */
-char *
+static char *
 get_passphrase (const char *fname)
 {
   char *passphrase = NULL;
@@ -108,12 +113,41 @@ get_passphrase (const char *fname)
 
   fclose (source);
   fclose (sink);
-  rename (fname_new, fname);
+  if (remove (fname))
+    {
+      fprintf (stderr, "Failed to remove %s: %s",
+               fname, strerror (errno));
+      exit (1);
+    }
+
+  if (rename (fname_new, fname))
+    {
+      fprintf (stderr, "Failed to rename %s to %s: %s",
+               fname, fname_new, strerror (errno));
+      exit (1);
+    }
   return passphrase;
 }
 
 \f
-#define spacep(p)   (*(p) == ' ' || *(p) == '\t')
+#define whitespacep(p)   (*(p) == ' ' || *(p) == '\t' \
+                          || *(p) == '\r' || *(p) == '\n')
+
+/* rstrip line.  */
+static void
+rstrip (char *buffer)
+{
+  char *p;
+  if (!*buffer)
+    return; /* This is to avoid p = buffer - 1 */
+  for (p = buffer + strlen (buffer) - 1; p >= buffer; p--)
+    {
+      if (! whitespacep (p))
+        break;
+      *p = 0;
+    }
+}
+
 
 /* Skip over options in LINE.
 
@@ -125,13 +159,13 @@ get_passphrase (const char *fname)
 char *
 skip_options (const char *line)
 {
-  while (spacep (line))
+  while (whitespacep (line))
     line++;
   while (*line == '-' && line[1] == '-')
     {
-      while (*line && !spacep (line))
+      while (*line && !whitespacep (line))
         line++;
-      while (spacep (line))
+      while (whitespacep (line))
         line++;
     }
   return (char*) line;
@@ -149,12 +183,12 @@ option_value (const char *line, const char *name)
   s = strstr (line, name);
   if (s && s >= skip_options (line))
     return NULL;
-  if (s && (s == line || spacep (s-1))
-      && s[n] && (spacep (s+n) || s[n] == '='))
+  if (s && (s == line || whitespacep (s-1))
+      && s[n] && (whitespacep (s+n) || s[n] == '='))
     {
       s += n + 1;
       s += strspn (s, " ");
-      if (*s && !spacep(s))
+      if (*s && !whitespacep(s))
         return s;
     }
   return NULL;
@@ -164,6 +198,8 @@ int
 main (int argc, char **argv)
 {
   char *args;
+  char *option_user_data = NULL;
+  int got_environment_user_data;
   char *logfile;
   char *passphrasefile;
   char *passphrase;
@@ -175,14 +211,16 @@ main (int argc, char **argv)
   setvbuf (stdout, NULL, _IOLBF, BUFSIZ);
 
   args = getenv ("PINENTRY_USER_DATA");
+  got_environment_user_data = !!args;
   if (! args)
     args = "";
 
+ restart:
   logfile = option_value (args, "--logfile");
   if (logfile)
     {
       char *p = logfile, more;
-      while (*p && ! spacep (p))
+      while (*p && ! whitespacep (p))
         p++;
       more = !! *p;
       *p = 0;
@@ -200,7 +238,7 @@ main (int argc, char **argv)
   if (passphrasefile)
     {
       char *p = passphrasefile, more;
-      while (*p && ! spacep (p))
+      while (*p && ! whitespacep (p))
         p++;
       more = !! *p;
       *p = 0;
@@ -214,9 +252,7 @@ main (int argc, char **argv)
           return 1;
         }
 
-      p = passphrase + strlen (passphrase) - 1;
-      if (*p == '\n')
-        *p = 0;
+      rstrip (passphrase);
     }
   else
     {
@@ -225,7 +261,8 @@ main (int argc, char **argv)
         passphrase = "no PINENTRY_USER_DATA -- using default passphrase";
     }
 
-  reply ("# fake-pinentry started.  Passphrase='%s'.\n", passphrase);
+  reply ("# fake-pinentry(%u) started.  Passphrase='%s'.\n",
+         (unsigned int)getpid (), passphrase);
   reply ("OK - what's up?\n");
 
   while (! feof (stdin))
@@ -238,6 +275,10 @@ main (int argc, char **argv)
       if (log_stream)
         fprintf (log_stream, "< %s", buffer);
 
+      rstrip (buffer);
+
+#define OPT_USER_DATA  "OPTION pinentry-user-data="
+
       if (strncmp (buffer, "GETPIN", 6) == 0)
         reply ("D %s\n", passphrase);
       else if (strncmp (buffer, "BYE", 3) == 0)
@@ -245,13 +286,31 @@ main (int argc, char **argv)
          reply ("OK\n");
          break;
        }
+      else if (strncmp (buffer, OPT_USER_DATA, strlen (OPT_USER_DATA)) == 0)
+        {
+          if (got_environment_user_data)
+            {
+              reply ("OK - I already got the data from the environment.\n");
+              continue;
+            }
+
+          if (log_stream)
+            fclose (log_stream);
+          log_stream = NULL;
+          free (option_user_data);
+          option_user_data = args = strdup (buffer + strlen (OPT_USER_DATA));
+          goto restart;
+        }
 
       reply ("OK\n");
     }
 
+#undef OPT_USER_DATA
+
   reply ("# Connection terminated.\n");
   if (log_stream)
     fclose (log_stream);
 
+  free (option_user_data);
   return 0;
 }
diff --git a/tests/openpgp/finish.test b/tests/openpgp/finish.test
deleted file mode 100755 (executable)
index fced570..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-# Copyright 2010 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-if $GPG_AGENT --quiet; then
-  $GPG_CONNECT_AGENT killagent /bye >/dev/null
-fi
-
-exit 0
-
index 9870f46..e5008c3 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-environment)
 
 (define (genkey config)
   (pipe:do
diff --git a/tests/openpgp/genkey1024.test b/tests/openpgp/genkey1024.test
deleted file mode 100755 (executable)
index 99a0d5d..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/sh
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-$GPG --quiet --batch --gen-key <<EOF
-Key-Type: DSA
-Key-Length: 1024
-Subkey-Type: ELG
-Subkey-Length: 1024
-Name-Real: Harry H.
-Name-Comment: test key 
-Name-Email: hh@@ddorf.de
-Expire-Date: 1
-%no-protection
-%transient-key
-%commit
-EOF
-
-if have_pubkey_algo "RSA"; then
-$GPG --quiet --batch --gen-key <<EOF
-Key-Type: RSA
-Key-Length: 1024
-Key-Usage: sign,encrypt
-Name-Real: Harry A.
-Name-Comment: RSA test key 
-Name-Email: hh@@ddorf.de
-Expire-Date: 2
-%no-protection
-%transient-key
-%commit
-EOF
-fi
-
index 15f528f..69206b4 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (catch (skip "gpgtar not built")
        (call-check `(,(tool 'gpgtar) --help)))
diff --git a/tests/openpgp/gpgtar.test b/tests/openpgp/gpgtar.test
deleted file mode 100755 (executable)
index 2f33f75..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-#!/bin/sh
-
-#set -x
-
-# Make sure $srcdir is set.
-if test "x$srcdir" = x
-then
-    echo srcdir environment variable not set!
-    exit 1
-fi
-
-. $srcdir/defs.inc || exit 3
-
-set -e
-
-# Make sure $GNUPGHOME is set.
-if test "x$GNUPGHOME" = x
-then
-    echo "GNUPGHOME not set."
-    exit 1
-fi
-
-TESTFILES="$plain_files $data_files"
-
-TESTDIR=gpgtar.d
-FILELIST="${TESTDIR}/filelist"
-PPFILE="${TESTDIR}/passphrase"
-PPFLAGS="--gpg-args --passphrase-file=$PPFILE"
-
-GPG=../../g10/gpg
-GPGARGS="$opt_always --no-permission-warning"
-
-GPGTAR="../../tools/gpgtar"
-GPGZIP="sh ../../tools/gpg-zip"
-
-# Skip test if gpgtar has not been built.
-if ! test -x "$GPGTAR"
-then
-    exit 77
-fi
-
-# Create, inspect, and extract an archive with the given options.
-#
-# $1 the tool to test
-# $2 options used to create the archive
-# $3 options used to inspect the archive
-# $4 options used to extract the archive
-do_test()
-{
-  (
-    TOOL="$1"
-    CREATE_FLAGS="$2"
-    INSPECT_FLAGS="$3"
-    EXTRACT_FLAGS="$4"
-
-    rm -rf -- "${TESTDIR}"
-    mkdir "${TESTDIR}"
-    echo frob >"$PPFILE"
-
-    $TOOL --gpg "$GPG" --gpg-args "$GPGARGS" $CREATE_FLAGS \
-         --output "${TESTDIR}/test.tar.pgp" $TESTFILES
-
-    $TOOL --gpg "$GPG" --gpg-args "$GPGARGS" $INSPECT_FLAGS \
-          "${TESTDIR}/test.tar.pgp" \
-          >"$FILELIST"
-    for F in $TESTFILES
-    do
-        awk '{print $NF}' "$FILELIST" | grep "^${F}$" >/dev/null
-    done
-
-    $TOOL --gpg "$GPG"  --gpg-args "$GPGARGS" $EXTRACT_FLAGS --quiet \
-          --tar-args --directory="${TESTDIR}" \
-          "${TESTDIR}/test.tar.pgp"
-    for F in $TESTFILES
-    do
-       cmp "$F" "${TESTDIR}/$F"
-    done
-  )
-}
-
-for TOOL in "$GPGTAR" "$GPGZIP"
-#for TOOL in "$GPGZIP"
-do
-    # Asymmetric encryption.
-    do_test "$TOOL" \
-           "--encrypt --recipient $usrname2" \
-           "--list-archive" \
-           "--decrypt"
-
-    # Asymmetric encryption and signing.
-    do_test "$TOOL" \
-           "--encrypt --recipient $usrname2 --sign --local-user $usrname3" \
-           "--list-archive" \
-           "--decrypt"
-
-    # Signing only.
-    do_test "$TOOL" \
-           "--sign --local-user $usrname3" \
-           "--list-archive" \
-           "--decrypt"
-
-    # Symmetric encryption.
-    do_test "$TOOL" \
-           "${PPFLAGS} --symmetric" \
-           "${PPFLAGS} --list-archive" \
-           "${PPFLAGS} --decrypt"
-
-    # Symmetric encryption, explicitly choose cipher.
-    for a in `all_cipher_algos`; do
-       do_test "$TOOL" \
-               "${PPFLAGS} --gpg-args --cipher=$a --symmetric" \
-               "${PPFLAGS} --list-archive" \
-               "${PPFLAGS} --decrypt"
-       break
-    done
-
-    # Asymmetric and symmetric encryption, and signing.
-    do_test "$TOOL" \
-           "${PPFLAGS} --encrypt --symmetric --recipient $usrname2 --sign --local-user $usrname3" \
-           "${PPFLAGS} --list-archive" \
-           "${PPFLAGS} --decrypt"
-done
-
-# Success!
-
-exit 0
index 7094c96..65d21c5 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (define msg_signed_asc "
 -----BEGIN PGP SIGNED MESSAGE-----
@@ -63,5 +64,5 @@ N1Glbw1OJfP1q+QFPMPKoCsTYmZpuugq2b5gV/eH0Abvk2pG4Fo/YTDPHhec7Jk=
          (pipe:do
           (pipe:echo (eval armored-file (current-environment)))
           (pipe:spawn `(,@GPGV --keyring ,(in-srcdir "forged-keyring.gpg"))))
-         (error "verification succeded but should not")))
+         (error "verification succeeded but should not")))
  '(msg_signed_asc))
index 580acea..c354753 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-environment)
 
 (info "Checking bug 894: segv importing certain keys.")
 (call-check `(,(tool 'gpg) --import ,(in-srcdir "bug894-test.asc")))
@@ -36,7 +37,7 @@
     (unless (any (lambda (line)
                   (and (string-prefix? line "rvk:")
                        (string-contains? line ":0EE5BE979282D80B9F7540F1CCD2ED94D21739E9:")))
-                (string-split c #\newline))
+                (string-split-newlines c))
            (exit 1)))))
 
 (define fpr1 "9E669861368BCA0BE42DAF7DDDA252EBB8EBE1AF")
@@ -55,6 +56,6 @@
                 (lambda (line)
                   (and (string-prefix? line "pub:")
                        (string-contains? line ":4096:1:DDA252EBB8EBE1AF:")))
-                (string-split c #\newline))))
+                (string-split-newlines c))))
       (unless (= 2 (length keys))
              (error "Importing keys with long id collision failed"))))))
diff --git a/tests/openpgp/import.test b/tests/openpgp/import.test
deleted file mode 100755 (executable)
index 783d059..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/bin/sh
-# Copyright 2008 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-i=$srcdir/bug894-test.asc
-info "Checking bug 894: segv importing certain keys."
-if $GPG --import $i; then
-  :
-else
-  error "$i: import failed (bug 894)"
-fi
-
-
-boguskey=$srcdir/bug1223-bogus.asc
-goodkey=$srcdir/bug1223-good.asc
-keyid=0xC108E83A
-info "Checking bug 1223: designated revoker sigs are not properly merged."
-$GPG --delete-key --batch --yes $keyid 2>/dev/null || true
-$GPG --import $boguskey || true
-$GPG --import $goodkey || true
-if $GPG --list-keys --with-colons $keyid \
-    | grep '^rvk:.*:0EE5BE979282D80B9F7540F1CCD2ED94D21739E9:' >/dev/null; then
-  :
-else
-  error "$goodkey: import failed (bug 1223)"
-fi
-
-
-key1=$srcdir/samplekeys/dda252ebb8ebe1af-1.asc
-key2=$srcdir/samplekeys/dda252ebb8ebe1af-2.asc
-fpr1=9E669861368BCA0BE42DAF7DDDA252EBB8EBE1AF
-fpr2=A55120427374F3F7AA5F1166DDA252EBB8EBE1AF
-info "Checking import of two keys with colliding long key ids."
-$GPG --delete-key --batch --yes $fpr1 $fpr2 2>/dev/null || true
-$GPG --import $key1 || true
-$GPG --import $key2 || true
-n=$($GPG --list-keys --with-colons $fpr1 $fpr2 2>/dev/null \
-    | grep '^pub:.:4096:1:DDA252EBB8EBE1AF:' | wc -l)
-if [ $n -ne 2 ] ; then
-  error "Importing keys with long id collision failed"
-fi
index 536cb8f..4f151aa 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-environment)
 
 (info "Checking passphrase cache (issue2015)...")
 (call-check `(,(tool 'gpg-preset-passphrase)
@@ -25,5 +26,6 @@
 
 (let ((response (call-popen `(,(tool 'gpg-connect-agent))
                            "GET_PASSPHRASE --no-ask some_id X X X")))
-  (unless (string=? response "OK 736F6D655F70617373706872617365\n")
+  (unless (string=? (string-rtrim char-whitespace? response)
+                   "OK 736F6D655F70617373706872617365")
          (error "Could not retrieve passphrase from cache:" response)))
index b336566..cbe03f9 100755 (executable)
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-environment)
 
 (define key (in-srcdir "samplekeys/issue2346.gpg"))
-(define old-home (getenv "GNUPGHOME"))
 
-(with-temporary-working-directory
- (file-copy (path-join old-home "gpg.conf") "gpg.conf")
- (file-copy (path-join old-home "gpg-agent.conf") "gpg-agent.conf")
- (setenv "GNUPGHOME" "." #t)
-
- (info "Checking import statistics (issue2346)...")
- (let ((status (call-popen `(,@GPG --status-fd=1 --import ,key) "")))
-   (unless (string-contains? status "IMPORT_RES 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0")
-          (error "Unexpected number of keys imported" status))))
+(info "Checking import statistics (issue2346)...")
+(let ((status (call-popen `(,@GPG --status-fd=1 --import ,key) "")))
+  (unless (string-contains? status "IMPORT_RES 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0")
+         (error "Unexpected number of keys imported" status)))
index 9079323..f584000 100755 (executable)
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-environment)
 
-(define old-home (getenv "GNUPGHOME"))
+(define keyfile (in-srcdir "samplekeys" "rsa-rsa-sample-1.asc"))
 
 (define (touch file-name)
   (close (open file-name (logior O_WRONLY O_BINARY O_CREAT) #o600)))
 
 (info "Checking robustness wrt empty databases in gnupghome (issue2417)...")
-
-(lettmp
- ;; Prepare some random key to import later.
- (keyfile)
- (pipe:do
-  (pipe:gpg '(--export alpha))
-  (pipe:write-to keyfile (logior O_WRONLY O_BINARY O_CREAT) #o600))
-
- (with-temporary-working-directory
-  (file-copy (path-join old-home "gpg.conf") "gpg.conf")
-  (file-copy (path-join old-home "gpg-agent.conf") "gpg-agent.conf")
-  (setenv "GNUPGHOME" "." #t)
-  (touch "trustdb.gpg")
-  (touch "pubring.gpg")
-  (touch "pubring.kbx")
-  (call-check `(,(tool 'GPG) --import ,keyfile))))
+(touch "trustdb.gpg")
+(touch "pubring.gpg")
+(touch "pubring.kbx")
+(call-check `(,(tool 'GPG) --import ,keyfile))
index efc42a6..9b67851 100755 (executable)
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-environment)
 
 (info "Checking iobuf_peek corner case (issue2419)...")
 (lettmp
  (onebyte)
  (dearmor (in-srcdir "samplemsgs/issue2419.asc") onebyte)
- (catch (assert (string-contains? *error* "invalid packet"))
+ (catch (assert (string-contains? (car *error*) "invalid packet"))
        (call-popen `(,@GPG --list-packets ,onebyte) "")
        (error "Expected an error but got none")))
diff --git a/tests/openpgp/key-selection.scm b/tests/openpgp/key-selection.scm
new file mode 100644 (file)
index 0000000..93bd001
--- /dev/null
@@ -0,0 +1,83 @@
+#!/usr/bin/env gpgscm
+
+;; Copyright (C) 2016 g10 Code GmbH
+;;
+;; This file is part of GnuPG.
+;;
+;; 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 3 of the License, or
+;; (at your option) any later version.
+;;
+;; 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.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, see <http://www.gnu.org/licenses/>.
+
+(load (with-path "defs.scm"))
+(setup-legacy-environment)
+
+;; This test assumes a fixed time of 2004-01-01.
+
+ ;; Redefine gpg with a fixed time.
+(define gpg `(,@gpg --faked-system-time=1072911600))
+
+;; We have a number of keys for Mr. Acejlnu Acdipr <acdipr@example.org>.
+(define mailbox "acdipr@example.org")
+
+;; The keys are sorted, from the least relevant to the most relevant
+;; key.
+(define keys
+  '(("ED087E9D3394340738E20A244892A3CF8F65EBAC"
+     "no encryption-capable subkey, created: 2003-11-30, expires: 2006-11-29"
+     4)
+    ("D7388651A1B7466D03B538428178E04B0BAA385B"
+     "encryption-capable subkey, created: 2000-12-31, expired: 2001-12-31"
+     0)
+    ("DDEF1BEC66C8BAC8D69CED2AEABED840EC98B024"
+     "encryption-capable subkey, created: 2001-12-31, expires: 2006-12-30"
+     1)
+    ("03FCFEDE014027DD897AD2F23D32670A96A9C2BF"
+     "encryption-capable subkey, created: 2002-12-31, expires: 2005-12-30"
+     2)
+    ("B95BD6175CB6339244355BA160B8117E6119CED6"
+     "encryption-capable subkeys, last created: 2003-05-31, expires: 2005-05-30"
+     3)))
+
+;; Accessors for the elements of KEYS.
+(define :fpr car)
+(define :comment cadr)
+(define :number caddr)
+(define (:filename key)
+  (in-srcdir "key-selection"
+            (string-append (number->string (:number key)) ".asc")))
+
+(define (delete-keys which)
+  (call-check `(,@gpg --delete-keys ,@(map :fpr which))))
+
+(define (import-keys which)
+  (call-check `(,@gpg --import ,@(map :filename which))))
+
+(for-each-p'
+ "Checking key selection"
+ (lambda (set)
+   (import-keys set)
+   (let ((fpr (list-ref (assoc "fpr"
+                              (gpg-with-colons `(--locate-key ,mailbox)))
+                       9))
+        (expected (:fpr (last set))))
+     (unless (equal? fpr expected)
+            (display "Given keys ")
+            (apply echo (map :fpr set))
+            (echo "This is what --locate-key says:")
+            (display (call-popen `(,@gpg --locate-key ,mailbox) ""))
+            (echo "This is the key we expected:")
+            (display (call-popen `(,@gpg --list-keys ,expected) ""))
+            (error "Expected" expected "but got" fpr)))
+   (delete-keys set))
+ (lambda (set)
+   (length set))
+ (filter (lambda (x) (not (null? x))) (powerset keys)))
diff --git a/tests/openpgp/key-selection/0.asc b/tests/openpgp/key-selection/0.asc
new file mode 100644 (file)
index 0000000..d40a98b
--- /dev/null
@@ -0,0 +1,30 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQENBDpPvC8BCACqDbU+2znCURAocNMmcwCSYVl5l4Zbx6jcy9ON7y12Ai7CRSbX
+8Nb8kggit02pNFtb1l2NKad7DqR1f/WPqkQjZ6rvFHKEOsupqrUhpQ6dU3H94wuO
+g4M2PGsaxKAcw24qIoKkTotecLgUFMhduIq7u8kTnalTOW1o/18moVuoVNkDdO4Y
+I7n/dloVNv5Xkm5bS4VBdvUzJ9gvbqkynud/L6pSFeng0vVJQMN3tVbApcNzhLBs
+G5Fvf9Rve4V8xTeBYQ+VRO7H9nvaS8YFf07kTwUDS69Vs8qIaLKOQJL3F75CileN
+K7fb9OC3J4PNF0CDz+e2KkRRF6Q/xS8KXF9rABEBAAG0I0FjZWpsbnUgQWNkaXBy
+IDxhY2RpcHJAZXhhbXBsZS5vcmc+iQFUBBMBCAA+FiEE1ziGUaG3Rm0DtThCgXjg
+SwuqOFsFAjpPvC8CGwMFCQHhM4AFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AACgkQ
+gXjgSwuqOFt7Lgf8DFDVQ4JykT8njX0+JkemSL2UUDH2iVRWkU6tKZPGneEnQGMm
+iRfSX0im0pFHWxJ0vZsmUNq33Vr2sbvppT8Ti1rBx4TrdZ7PSEIEi1KTVSx6GKjr
+2ObCax2u1p+u+tC35GfhV1Y1pUcSZXc45C1o259ivekRJY/fw9DrvR7154S3ygjp
+lkEM4PC33216XMTqUG1sAWw40aDtKaiyp5J8zqLKXXjCnZsTWdj4uxB7E5WPjaEF
+ylON/h+Hfw2RMzlYRGTbUu2G/Ma0TiycGJvT78myCpnc5akcKVZu1Wu4VDBqBC1N
+dVcTzhJ5T4gwFCWHif3/MYqTVBnZSAVURtI3V7kBDQQ6T7wvAQgAuF5JaVAE9/Vv
+K1U+VSAAhWMGSp6fwezgWdj0rn1GBx3DtqQkYXoLRjTrlBf1qOO6NPbBUi1gz8R+
+IQTHsesIXiUSlMige3/HxdSOsbzKipm1SGJedqUz3H03+yfr82NT+QvQmlEGX9k6
+goPY9t3r+O3F6ab4mc5NxFKhj2XvbRyf8I9J+3w6zXBWwsgLHacTCa13zGz6B0NH
+dCk/2B6HTJeIJWpHdALQXp0/JcKWksw0Hsihpdu0QploUSPihZostRUKszOkugeu
+W0t3fmt6on4fIFWveh9NSVDYIHKVMRU8cl5vRXNNRTsYQOarIvjmoUHv5u+UpZcc
+iE/7wILNhQARAQABiQE8BBgBCAAmFiEE1ziGUaG3Rm0DtThCgXjgSwuqOFsFAjpP
+vC8CGwwFCQHhM4AACgkQgXjgSwuqOFv9GAgAkACyK3Km4jFBqw7ah2xMxWCkdpgu
+DdTi64ra6GyMQk/Lem8DzBO/ER/cavV9lg61qCOy7ecCNs7MhPiWZIod2bcV3JDZ
+AglnGgTQ+lSpPXFCk3eoRktRsXesgQ1dE30uR9pypEqZ0BYNZZ2G2hRqAnRgUOOI
+7THmf/X5w5KPKLlm3zOlGQomFy6lfOR9Zd5/QoKRNmuD9gNfSE+3vBvr+ISQPIev
+Ch2qeC/N0BP5EoVE4SXp8l2oaaVJLi/Yx2J6vfximeeaBPxsKjuA+GJu6IIhegnY
+X4kCxWStla+KuN0p0iNUh002pKybISuqyI9vgImH9Nh22Nf7mcRQWflR6A==
+=nyjX
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/tests/openpgp/key-selection/1.asc b/tests/openpgp/key-selection/1.asc
new file mode 100644 (file)
index 0000000..fea379c
--- /dev/null
@@ -0,0 +1,30 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQENBDww7w4BCADCvhkDDCAAtDpLCUa2ryPqWxlSSVKdyY9ecqjgEswijsZ+2T6O
+Xr/50POpLbW9IWvHdvcifXUk1YZg8wLcnVIMwiZsdNSDM3MycoPoNc7pL5MaPGL6
+e9u+8HWX6aowOo5st6Y57HUeaKReH1Peb0avoEUIE9l4xqVx41AYrKViS7Zp5p9A
+67thNKMisZ8aYutlhmVQB/uDO7XiKal07vjftf6aZazNBC5ZBOj4G+/TLcKMox8h
+AaUJTkqsJcSCZTc7cMVjikmWItgKm6wIceGTpUGSvvZ3TnWUtgq3ivaMQrpyN3RT
+tVM5uO2Mh8Uzkq9YWh2V7IT+jGKztrpdPKu3ABEBAAG0I0FjZWpsbnUgQWNkaXBy
+IDxhY2RpcHJAZXhhbXBsZS5vcmc+iQFUBBMBCAA+FiEE3e8b7GbIusjWnO0q6r7Y
+QOyYsCQFAjww7w4CGwMFCQlmAYAFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AACgkQ
+6r7YQOyYsCT0awf+NENO1grzmRfsyl8ODREmUlnnUAaRiZGQ0h+JkooXiwcm/p5O
+DupjRc5OLluDtnjTLMBwNk5ysX6yqSNTni9qCCpm62PaIopG+r8RyFPp4aRjR1Q3
+mbwHkKifLRBxDxeCDKdrqFs7hkVCYOxjyiaEZ2BYogqFDwHFoiE6UwQvwZfpNWex
+4Zx8nhoGpcegMMEiGREWCTi0H+zJrYOiVzV2jPQF5lkFkwYMQKNaNQv3L5v2/5AC
+Nu6Kej+oYcw/EA+o3OXYLxwa+tijfKqUxtndFsQS/lYSUNszxrcm7dOAx52DCMpC
+8MNHmwe3qmofO6G9svqG02bIZTdyJBob5nNBD7kBDQQ8MO8OAQgAttn9ru3Ou6+A
+lAqbV7fAbpdeIF5bHy/QZtLxa2dpG8BTOXDcoMp9MUyKjafHbNr+z5unqqTfduXy
+oRdJ1D/iXbSpcRkMKRJz4fa+uPNN5SiGzrjxHTcALPG8ctTUvdNrV+Z5VkssU+FW
+LQD+s5SQWn848kYTacrDL22JshIpekmz3ztDoNGOZxVj2DwF/QXDeaRhXT9ngB3c
+PY8x7e8yIvmAcg8olt9rKTpkGXZHWAyBpyGzBJkxM+wfiNreGMNUkv41G/R4d1Lv
+xMlGF05xrBJX9YrV1pRM+EdS4WOs2gvFT3qnBzFAQBZ9nqaLAFVxw0Sl7C+wSQPk
+7ZPIKYANFwARAQABiQE8BBgBCAAmFiEE3e8b7GbIusjWnO0q6r7YQOyYsCQFAjww
+7w4CGwwFCQlmAYAACgkQ6r7YQOyYsCSDdwf/an06WTTAIwHj8PfXIkywnq3SWfSZ
+yuRaFaDan9en8xAfyw2smNnrHnTk86CZWL6yPTij6JZYynv4OxtSafIoT9LxT7uX
+VpEtSBpTnnojlHFivfRYMGJ9k/EXGgb941W2DTbvQqzafc2u4K3u8KnFOgzfEj5B
+qjYzbt/L2uR2PLOAfYIUYzqTKjdzvSIX2DRvkepHhTwRbCjJrkF/zx0IXFoJeU/k
+6tYK6cNNCFTWT0uLJCflAZMtGpf4KDvjlccNts3mZQbEov+Dymj/nZ9JRgjc2heH
+Pxi5muPMQ8jAc2i4V8vTybozlZ5O/+JkOOOH0ciLpD3buhgYBY309DIVmA==
+=zVE+
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/tests/openpgp/key-selection/2.asc b/tests/openpgp/key-selection/2.asc
new file mode 100644 (file)
index 0000000..4b697f7
--- /dev/null
@@ -0,0 +1,30 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQENBD4SIdsBCACqRRWUd9mwgRzVzaDbVLRdNOdyswPYuBKWlHI6Yx0lpfiQK6/X
+rnRoR18lYJ0wBqImd/BJbjNE4bYaMUd+p7HzYIKzv8/DuvZQgovt9VIBn+a3YyCa
+hdAaWEz994fjl8U5IGbrrGuV4XXlFATA6S7KX7CgxgiK/jVnRl1NVcTjOSnasU2J
+LIbh0lawUe0b3HlwT8uFGg/MK3vHGGIalOJRlgeTBAF7zcaTfqoDiAXbbsfaxT4a
+zB1OTRut1VOGBLWCsr09VCAMyz8awQqF81uG6cuv9swo76SuTiMcMMBfdNw3etVa
+kLgL4JnsnMGM7c1fx/mfMUIUHYndDVT5LzQjABEBAAG0I0FjZWpsbnUgQWNkaXBy
+IDxhY2RpcHJAZXhhbXBsZS5vcmc+iQFUBBMBCAA+FiEEA/z+3gFAJ92JetLyPTJn
+Cpapwr8FAj4SIdsCGwMFCQWjmoAFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AACgkQ
+PTJnCpapwr/bGAgAjGWQ3F9RUpeI3ogLLhGMsXmsOxZX1ptNtjL9HiDsrUY5XCS1
+7vZUpRz0/2nscbu7or6Xy8yZtG0vLXwfzeOvHQz/F8tnzruIWBFSAU8WBidxKxmC
+AUlQWg6bAp0aTxyyVi/r719J6k/G/ZOhjgXM243Ck9HNnY2a0h0ArKzPo56N8Cks
+caXshdWxIh3M9uJKSxBCxfDTtqPcU7LjNApaUOFphpAPT9ypE/Zw9BZNTVN6vILr
+I7upnG5PNXybMCDh2XhpXS2E5/rY9Y3/aFKthBws16JMAzBRKMQqWTTC9a8X+4pa
+KcNtQih3X9eRzj4JBAh6cl5qXIbz+32EzXA8drkBDQQ+EiHbAQgAz017pYsm9Sf0
+z5HqOQLx1dwCclzVE5RhvI+qplPT5e9sLG+trbOVpGM6fjWAK/yuxaUJibm/44UX
+cxsTuR7gpAwc+gvwrF3cG6kmT+g4kZ7/I4EyBMZjM9lhlIk77MCTLXcT9ONr7Pm4
+flQO+vM6ZYRFm7DtSHzP2z2Uu9USqgLJumn+V61xQXYj3E2ORczOV3blPVUoI7gl
+aRnVdveEqrucw+miRWq3clykTdbuP39H2nRgY0KXGbOefWh5dRe2okxL5nlhINGL
+lOyj9n4jM6fNp9K8jWeg8YJ7tKRsffrrNnIovslNlkXucYAzM2OveP+JxDdtosSK
+fzWtUSzrmQARAQABiQE8BBgBCAAmFiEEA/z+3gFAJ92JetLyPTJnCpapwr8FAj4S
+IdsCGwwFCQWjmoAACgkQPTJnCpapwr+p6wf/cO8apRVlpRrI2q92j5DJ0IQsBdUv
+Srvp3w8UHZad0VkhgT+edbYHN8VS245ckyWoUBB78XEvxayMF1/Mx0N+u1MOM1dY
+MrAiwbaQnE99yjifwVzZz6wJuJ94MMzWw38j22ZTbIBHPh/4nzSl84sN+KuEcP4f
+C2h7mat4NDO/VRTf7xWuLInS5yGdDOACwROd85ua4YNxo54s5mcd6BVr4upHd1Hj
+0TULgmWvqz49N40VY4GF+38OAC7+DSsdamHVNdTb0fT+KaxTQ0K5BCl+7Oe66CqH
+RWxaXRUD4YMRh1jdgc+j4D3Sj4xhevu0Kd6+7BWxmxWZKdOCiu9TEDBjrg==
+=YqE5
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/tests/openpgp/key-selection/3.asc b/tests/openpgp/key-selection/3.asc
new file mode 100644 (file)
index 0000000..ab2ff73
--- /dev/null
@@ -0,0 +1,43 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQENBD4SIZsBCADMR5w2TF16C1WaP+EIq+pg3InbyKr3VlGgxl2t/+PcRUmxhOh4
+zAs+k/FaKqH+h8JLGT6VlUMqKDqBrHhwVNz5nEYO/HeqaSsHjyNoIr4tS3oJMQWI
+0QsRV8cPhlPHXQBS8K2KC7MfTyHIbfagjqakegY9ysZ2N6Qt3I3QSqO0khRHoNtZ
+x8l/NHA9u8lRJD1OhfOg8gcY9800LPJbdzmyeOK5ezwyvjp6dXKNgXnwkrHQw7pD
+hGITTRtNsRb0xF9e+1X6KRifk/ppJZjk3Lu8AJEyj6AfHZru6lYfv4LP77IW9Lw2
+x7pRwrMNtvffAOGGa4KYiVstgIaPmEm9v2UjABEBAAG0I0FjZWpsbnUgQWNkaXBy
+IDxhY2RpcHJAZXhhbXBsZS5vcmc+iQFUBBMBCAA+FiEEuVvWF1y2M5JENVuhYLgR
+fmEZztYFAj4SIZsCGwMFCQWjmoAFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AACgkQ
+YLgRfmEZztapKAf/US2OkiyDX4D7cRrifnbkMj5YdHjiirqgd5Q9nhWIC/Pk494u
+WDMt0XBeHk8aPp6NjQCMpWu8d9TxLCn43dI2eFRLKSk/9nUb3nPzIrtT8/dPEsvG
+HEAJKxGMpZLu2UIDIpn2XY+9pS8CB03xVfuAfYrGOmVJS5rr6a592WfCB6XosHO1
+S2iKnMWgmo5C2WJaOq0AL5fzI6w1TAYN10KHFdNdimWJZ85WKk3iRXDUF4PJusWt
+PLPHOgbvAMBHtJHu+09DlcoBRyWRvEzXHoBsgm76kvkLpkP23FhuWexfK6qJ+pZG
+Ygaw2fGACGi9W7aASaiR5+PcD5WSPaOT2PuyRLkBDQQ+EiGbAQgA0Zt9F5Xhv1wf
+zdvuXZeEaX/0uq3T/5IXcP0cjMzylWS3caRd8AB6S6+0NZDrAuO8jbzKuBdVb3so
+zhq2g4uPkzCq9QkLwSJDURAstA/w6yV/h83DhEvmhE5MceY57Ev1g+cF3ec9Sshv
+MQBPicXw6Umv8fyjmW6LIEXpNeXjz52hyjVk39EzEYFf8+ozC1Ifn5H1NWOnCiBc
+5Q4Ud4W26xItyW1bBXWaMR520fotj6wSAX1Al2ynzvZ31RQUgBmm9aiwRKKXC4CW
+6E6uDCBKL/Gpebc2Ty8fpJmCFtTByh0M7eeBfCDPTODPS39WjxwxbgIIHMDyXogW
+D+Por5jYiQARAQABiQE8BBgBCAAmFiEEuVvWF1y2M5JENVuhYLgRfmEZztYFAj4S
+IZsCGwwFCQWjmoAACgkQYLgRfmEZztbhGAf9GHVPYO7qsZkM5RnPRYAZLQGY9ygP
+Wac2hX10UVOVFMgd8XVdoRMqj8LHyaf6UrdI6/3lNza2cnleskjxzaNbk9ENhyYs
+/KSAyL6JbuZhEZ9Cx77RKRfbG+Z5EIrymgG0+HZuS8XZbJTze0kvQc90Avn78rNa
+ta4VB7U6ID0BwbBq4ikeJFJ2si87ZUiVUbFihVCk39HyJMXdDeUJPELi6Z2Rkmov
+0fwB1/QaSCvr41zQ1gCLpWC9x6tbas/4DsI0O2XG5W7XGIBt1NnaHMwgHr1Rw2JU
+Df6q+bEEiXP4ZsnoeUYi7Q7LU55fn5zsLj8DF2eACSiN+f5emZkZT4wV2bkBDQQ+
+2SXpAQgArTgU5baUzto+s/aEp/z87F7jxeFXTUTgIglHUHvc5oAj59TgZf+6C4t2
+uY6DGST3u2XCRs7FK3iZjvzfEVyDYQd8V/Iew8oeHy2aGmWFbDuZa+8RWWGJ8wfv
+V3pCm+86HIzfbqgJ3B3WnIhMqrBvGSlT0oYDVYIDZDbYYnIYNhF5xo/hH1WB9Ul6
+7Mx/KPUTqa2O1Pio7mFy0xFb12+5y5g3PruEG+mM3RLqZug3Z5M3E7gEG2HCnNjQ
+CzjICJe9wwOzkoKJLogCEZ2iYhl2DcThxWtOu/EaU3b+iothX0HdO3azMc3v3tcX
+t4q/fLUqmJ+P/HVlJtuPKSwnCHHVzwARAQABiQE8BBgBCAAmFiEEuVvWF1y2M5JE
+NVuhYLgRfmEZztYFAj7ZJekCGwwFCQPCZwAACgkQYLgRfmEZztZv9wf/Q8HacUDx
+AUJXfx/BfK/4zgogDfotz9yaFMmJYob2Mx/ny1Gteh551U5byuyoJW3gENg8Ql6v
+s7uSfLAbk2qXYAdApbo1pcYmb5Rd2oDU3+1JONNHs096ZjJLD2WHxTnzWVLMDsPV
+cUka+trg8Z1hqw6uGJmu6InggNjZ++1B6aa63Zdu7BudJB/3oWpjXyV7FqU4RtYa
+sYN/lmGcir0704yfqRbVcP9fU5kYB17qiNJRtblDjImiiFHJ0PSxpmYU3lDIf1Rf
+AC/HXoUetx9PKV1J8EKMQhV/GFa5FbmBCwXcIEj/Z9YEjSK2t9Pw0k0EuKhl7eHp
+vlWlPNIJSTq1Bg==
+=rf5l
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/tests/openpgp/key-selection/4.asc b/tests/openpgp/key-selection/4.asc
new file mode 100644 (file)
index 0000000..6a0ab9b
--- /dev/null
@@ -0,0 +1,18 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQENBD/KdpABCAD2wlP1kYHldknjyGTnMOUq9r+3/fJR8n4qVt5TRRlDdyfK3ZxM
+KWStsmkZuK9dMxo4VSOjVeiXdZlHeQU7RlzVPsCNiJ1Qc2HDgHFdmT7eUgOILA12
+36bueRUwVPGmrBEecs0TpNRQ5CVFbO7mC6cTLhT9nRMd+W+BSuuZ8Zm98ebaVh3I
+ml3nPEVhs1UFmIop48RGCt45MZ2mYp77kuAmk8NBJjHy9J4H5UK19r0hla2WY4a3
+Z59hh7kFnNFCM/MhPxd6GwkeXzUF7WSnhzRVIkdv81u2AnIHbo1zD0BUp8Rf64Ns
+3iFAeB1VuR6ZJpEypHiHUJtYPmr9okEmg8EDABEBAAG0I0FjZWpsbnUgQWNkaXBy
+IDxhY2RpcHJAZXhhbXBsZS5vcmc+iQFUBBMBCAA+FiEE7Qh+nTOUNAc44gokSJKj
+z49l66wFAj/KdpACGwMFCQWjmoAFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AACgkQ
+SJKjz49l66xZ7QgA7dBJsQP09LhkYDIu8cJzRU6tqa2Y8dx0iFaCU8nqD/0q6xJf
+fs2euwMEPsHWmA1WwGwxZpE/NGEksMSQ8TZSQUwCsURxBIiGww5MBtIGeO3ZzreR
+Dn0Qhivbiup8ZPtPfFFomoK7ZtWjtGjZ8I5zyYbjT0eEB7P348dkpOtReWDiqGVd
+taMnVau4OTDqTRo6fvAiVb37zoaWETsPWtq/TymgkqO/LEhzClzG8xJgpSl98cQW
+BoHz5GDVYeVxPEKAN4DdS7gt0KTUC9ZQUcZP+1wTzFohDd/CeUAl4kTeP0QSJVJ3
+QC/WnHk4Y56q8/nngIY6w/wID/R/Cp+plw6F5w==
+=BA1F
+-----END PGP PUBLIC KEY BLOCK-----
index 8ca6c7b..bf598eb 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-environment)
 
 (define empty-string-hashes
   `((1 "D41D8CD98F00B204E9800998ECF8427E" "MD5")
diff --git a/tests/openpgp/mds.test b/tests/openpgp/mds.test
deleted file mode 100755 (executable)
index bb73312..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-#!/bin/sh
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-
-. $srcdir/defs.inc || exit 3
-
-
-test_one () {
-   if [ "`grep $1 y | sed -e 's/:[^:]*:\(.*\):/\1/'`" != "$2" ]; then
-       failed="$failed $1"
-   fi
-}
-
-failed=""
-
-#info Checking message digests
-cat /dev/null | $GPG --with-colons --print-mds >y
-# MD5
-if have_hash_algo "MD5"; then
-  test_one ":1:"    "D41D8CD98F00B204E9800998ECF8427E"
-else
-  echo "    > Hash algorithm MD5 is not installed (not an error)"
-fi
-# SHA-1
-test_one ":2:"    "DA39A3EE5E6B4B0D3255BFEF95601890AFD80709"
-# RMD160
-if have_hash_algo "RIPEMD160"; then
-  test_one ":3:"    "9C1185A5C5E9FC54612808977EE8F548B2258D31"
-else
-  echo "Hash algorithm RIPEMD160 is not installed (not an error)"
-fi
-# SHA-224
-if have_hash_algo "SHA224"; then
-  test_one ":11:"    "D14A028C2A3A2BC9476102BB288234C415A2B01F828EA62AC5B3E42F"
-else
-  echo "Hash algorithm SHA-224 is not installed (not an error)"
-fi
-# SHA-256
-if have_hash_algo "SHA256"; then
-  test_one ":8:"    "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855"
-else
-  echo "Hash algorithm SHA-256 is not installed (not an error)"
-fi
-# SHA-384
-if have_hash_algo "SHA384"; then
-  test_one ":9:"  "38B060A751AC96384CD9327EB1B1E36A21FDB71114BE07434C0CC7BF63F6E1DA274EDEBFE76F65FBD51AD2F14898B95B"
-else
-  echo "Hash algorithm SHA-384 is not installed (not an error)"
-fi
-# SHA-512
-if have_hash_algo "SHA512"; then
-  test_one ":10:"  "CF83E1357EEFB8BDF1542850D66D8007D620E4050B5715DC83F4A921D36CE9CE47D0D13C5D85F2B0FF8318D2877EEC2F63B931BD47417A81A538327AF927DA3E"
-else
-  echo "Hash algorithm SHA-512 is not installed (not an error)"
-fi
-
-[ "$failed" != "" ] && error "$failed failed for empty string"
-
-echo_n "abcdefghijklmnopqrstuvwxyz" | $GPG --with-colons --print-mds >y
-if have_hash_algo "MD5"; then
-  test_one ":1:"    "C3FCD3D76192E4007DFB496CCA67E13B"
-fi
-test_one ":2:"    "32D10C7B8CF96570CA04CE37F2A19D84240D3A89"
-if have_hash_algo "RIPEMD160"; then
-  test_one ":3:"    "F71C27109C692C1B56BBDCEB5B9D2865B3708DBC"
-fi
-if have_hash_algo "SHA224"; then
-  test_one ":11:"    "45A5F72C39C5CFF2522EB3429799E49E5F44B356EF926BCF390DCCC2"
-fi
-if have_hash_algo "SHA256"; then
-  test_one ":8:"    "71C480DF93D6AE2F1EFAD1447C66C9525E316218CF51FC8D9ED832F2DAF18B73"
-fi
-if have_hash_algo "SHA384"; then
-  test_one ":9:"  "FEB67349DF3DB6F5924815D6C3DC133F091809213731FE5C7B5F4999E463479FF2877F5F2936FA63BB43784B12F3EBB4"
-fi
-if have_hash_algo "SHA512"; then
-  test_one ":10:" "4DBFF86CC2CA1BAE1E16468A05CB9881C97F1753BCE3619034898FAA1AABE429955A1BF8EC483D7421FE3C1646613A59ED5441FB0F321389F77F48A879C7B1F1"
-fi
-
-[ "$failed" != "" ] && error "$failed failed for a..z"
-
-exit 0
index 53c905f..7f1c4c5 100755 (executable)
@@ -24,6 +24,7 @@
 ;; not really needed because verify could do the same.  We keep it anyway.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (define sig-1ls1ls-valid "
 -----BEGIN PGP ARMORED FILE-----
@@ -163,6 +164,6 @@ cnksIEkgY2FuJ3QgZG8gdGhhdAo=
       (pipe:write-to file (logior O_WRONLY O_CREAT O_BINARY) #o600))
 
      (if (= 0 (call `(,@GPG --verify ,file)))
-        (error "Bad signature verified ok")))
+        (error "Bad signature verified ok"))))
  '(sig-1ls1ls-valid sig-ls-valid sig-1lsls-invalid
                    sig-lsls-invalid sig-lss-invalid sig-slsl-invalid))
diff --git a/tests/openpgp/multisig.test b/tests/openpgp/multisig.test
deleted file mode 100755 (executable)
index 9ad8676..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-#!/bin/sh
-# Copyright 2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-# Check that gpg verifies only signatures where there is no ambiguity
-# in the order of packets.  Needs the Demo Keys Lima and Mike.
-
-# Note: We do son't support multiple signaturess anymore thus thsi test is 
-# not really needed becuase verify could do the same.  We keep it anyway.
-
-. $srcdir/defs.inc || exit 3
-
-suspend_error
-
-
-
-sig_1ls1ls_valid='
------BEGIN PGP ARMORED FILE-----
-
-kA0DAAIRN8q1H7eRA/gBrCdiBXRleHQxOogq9EkgYW0gc29ycnksIEkgY2FuJ3Qg
-ZG8gdGhhdAqIPwMFADqIKvQ3yrUft5ED+BEC2joAoJaSaXOZEtSZqQ780HIXG77e
-8PB7AJ4wCprmaFTO0fBaTcXDuEOBdAWnOZANAwACETfKtR+3kQP4AawnYgV0ZXh0
-MTqIKvRJIGFtIHNvcnJ5LCBJIGNhbid0IGRvIHRoYXQKiD8DBQA6iCr0N8q1H7eR
-A/gRAto6AKCWkmlzmRLUmakO/NByFxu+3vDwewCeMAqa5mhUztHwWk3Fw7hDgXQF
-pzk=
-=8jSC
------END PGP ARMORED FILE-----
-'
-sig_ls_valid='
------BEGIN PGP ARMORED FILE-----
-
-rCdiBXRleHQxOogrS0kgYW0gc29ycnksIEkgY2FuJ3QgZG8gdGhhdAqIPwMFADqI
-K0s3yrUft5ED+BECLQMAn2jZUNOpB4OuurSQkc2TRfg6ek02AJ9+oJS0frQ+yUsT
-QDUFTH2PvZRxjw==
-=J+lb
------END PGP ARMORED FILE-----
-'
-sig_sl_valid='
------BEGIN PGP ARMORED FILE-----
-
-iD8DBQA6iCtLN8q1H7eRA/gRAi0DAJ9o2VDTqQeDrrq0kJHNk0X4OnpNNgCffqCU
-tH60PslLE0A1BUx9j72UcY+sJ2IFdGV4dDE6iCtLSSBhbSBzb3JyeSwgSSBjYW4n
-dCBkbyB0aGF0Cg==
-=N9MP
------END PGP ARMORED FILE-----
-'
-sig_11lss_valid_but_is_not='
------BEGIN PGP ARMORED FILE-----
-
-kA0DAAIRN8q1H7eRA/gAkA0DAAIRN8q1H7eRA/gBrCdiBXRleHQxOogyXUkgYW0g
-c29ycnksIEkgY2FuJ3QgZG8gdGhhdAqIPwMFADqIMl03yrUft5ED+BECwQAAnRXT
-mXjVd385oD38W80XuheWKTGcAJ9pZ6/flaKDfw+SLido7xaUHuhp5Yg/AwUAOogy
-XTfKtR+3kQP4EQLBAACgnN0IP+NztE0aAc/DZ17yHWR9diwAniN0P01WmbgZJoZB
-Q341WRXKS/at
-=Ekrs
------END PGP ARMORED FILE-----
-'
-sig_11lss11lss_valid_but_is_not='
------BEGIN PGP ARMORED FILE-----
-
-kA0DAAIRN8q1H7eRA/gAkA0DAAIRN8q1H7eRA/gBrCdiBXRleHQxOogyXUkgYW0g
-c29ycnksIEkgY2FuJ3QgZG8gdGhhdAqIPwMFADqIMl03yrUft5ED+BECwQAAnRXT
-mXjVd385oD38W80XuheWKTGcAJ9pZ6/flaKDfw+SLido7xaUHuhp5Yg/AwUAOogy
-XTfKtR+3kQP4EQLBAACgnN0IP+NztE0aAc/DZ17yHWR9diwAniN0P01WmbgZJoZB
-Q341WRXKS/atkA0DAAIRN8q1H7eRA/gAkA0DAAIRN8q1H7eRA/gBrCdiBXRleHQx
-OogyXUkgYW0gc29ycnksIEkgY2FuJ3QgZG8gdGhhdAqIPwMFADqIMl03yrUft5ED
-+BECwQAAnRXTmXjVd385oD38W80XuheWKTGcAJ9pZ6/flaKDfw+SLido7xaUHuhp
-5Yg/AwUAOogyXTfKtR+3kQP4EQLBAACgnN0IP+NztE0aAc/DZ17yHWR9diwAniN0
-P01WmbgZJoZBQ341WRXKS/at
-=P1Mu
------END PGP ARMORED FILE-----
-'
-sig_ssl_valid_but_is_not='
------BEGIN PGP ARMORED FILE-----
-
-iD8DBQA6iCtLN8q1H7eRA/gRAi0DAJ9o2VDTqQeDrrq0kJHNk0X4OnpNNgCffqCU
-tH60PslLE0A1BUx9j72UcY+IPwMFADqIK0s3yrUft5ED+BECLQMAn2jZUNOpB4Ou
-urSQkc2TRfg6ek02AJ9+oJS0frQ+yUsTQDUFTH2PvZRxj6wnYgV0ZXh0MTqIK0tJ
-IGFtIHNvcnJ5LCBJIGNhbid0IGRvIHRoYXQK
-=Zven
------END PGP ARMORED FILE-----
-'
-sig_1lsls_invalid='
------BEGIN PGP ARMORED FILE-----
-
-kA0DAAIRN8q1H7eRA/gBrCdiBXRleHQxOogq9EkgYW0gc29ycnksIEkgY2FuJ3Qg
-ZG8gdGhhdAqIPwMFADqIKvQ3yrUft5ED+BEC2joAoJaSaXOZEtSZqQ780HIXG77e
-8PB7AJ4wCprmaFTO0fBaTcXDuEOBdAWnOawnYgV0ZXh0MTqIK0tJIGFtIHNvcnJ5
-LCBJIGNhbid0IGRvIHRoYXQKiD8DBQA6iCtLN8q1H7eRA/gRAi0DAJ9o2VDTqQeD
-rrq0kJHNk0X4OnpNNgCffqCUtH60PslLE0A1BUx9j72UcY8=
-=nkeu
------END PGP ARMORED FILE-----
-'
-sig_lsls_invalid='
------BEGIN PGP ARMORED FILE-----
-
-rCdiBXRleHQxOogrS0kgYW0gc29ycnksIEkgY2FuJ3QgZG8gdGhhdAqIPwMFADqI
-K0s3yrUft5ED+BECLQMAn2jZUNOpB4OuurSQkc2TRfg6ek02AJ9+oJS0frQ+yUsT
-QDUFTH2PvZRxj6wnYgV0ZXh0MTqIK0tJIGFtIHNvcnJ5LCBJIGNhbid0IGRvIHRo
-YXQKiD8DBQA6iCtLN8q1H7eRA/gRAi0DAJ9o2VDTqQeDrrq0kJHNk0X4OnpNNgCf
-fqCUtH60PslLE0A1BUx9j72UcY8=
-=BlZH
------END PGP ARMORED FILE-----
-'
-sig_lss_invalid='
------BEGIN PGP ARMORED FILE-----
-
-rCdiBXRleHQxOogrS0kgYW0gc29ycnksIEkgY2FuJ3QgZG8gdGhhdAqIPwMFADqI
-K0s3yrUft5ED+BECLQMAn2jZUNOpB4OuurSQkc2TRfg6ek02AJ9+oJS0frQ+yUsT
-QDUFTH2PvZRxj4g/AwUAOogrSzfKtR+3kQP4EQItAwCfaNlQ06kHg666tJCRzZNF
-+Dp6TTYAn36glLR+tD7JSxNANQVMfY+9lHGP
-=jmt6
------END PGP ARMORED FILE-----
-'
-sig_slsl_invalid='
------BEGIN PGP ARMORED FILE-----
-
-iD8DBQA6iCtLN8q1H7eRA/gRAi0DAJ9o2VDTqQeDrrq0kJHNk0X4OnpNNgCffqCU
-tH60PslLE0A1BUx9j72UcY+sJ2IFdGV4dDE6iCtLSSBhbSBzb3JyeSwgSSBjYW4n
-dCBkbyB0aGF0Cog/AwUAOogrSzfKtR+3kQP4EQItAwCfaNlQ06kHg666tJCRzZNF
-+Dp6TTYAn36glLR+tD7JSxNANQVMfY+9lHGPrCdiBXRleHQxOogrS0kgYW0gc29y
-cnksIEkgY2FuJ3QgZG8gdGhhdAo=
-=phBF
------END PGP ARMORED FILE-----
-'
-
-
-for i in  sig_sl_valid ; do
-    eval "(IFS=; echo \"\$$i\")" | $GPG --dearmor >x
-    $GPG --verify x 2>/dev/null || error "valid is invalid ($i)"
-    linefeed
-done
-#for i in "$sig_11lss_valid_but_is_not" "$sig_11lss11lss_valid_but_is_not" \
-#         "$sig_ssl_valid_but_is_not"; do
-#    echo "$i" | $GPG --dearmor >x
-#    $GPG --verify <x 2>/dev/null || error "valid is invalid"
-#done
-
-for i in sig_1ls1ls_valid sig_ls_valid \
-         sig_1lsls_invalid sig_lsls_invalid \
-         sig_lss_invalid sig_slsl_invalid ; do
-    eval "(IFS=; echo \"\$$i\")" | $GPG --dearmor >x
-    $GPG --verify <x 2>/dev/null && error "invalid is valid ($i)"
-    linefeed
-done
-
-
-resume_error
diff --git a/tests/openpgp/pinentry.sh b/tests/openpgp/pinentry.sh
deleted file mode 100755 (executable)
index b4b12fc..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-# Copyright 2011 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-echo "OK - what's up?"
-while read cmd rest; do
-  echo "cmd=$cmd rest=$rest" >&2
-  case "$cmd" in
-    \#*)
-      ;;
-    GETPIN)
-      echo "D ${PINENTRY_USER_DATA}"
-      echo "OK"
-      ;;
-    BYE)
-      echo "OK"
-      exit 0
-      ;;
-    *)
-      echo "OK"
-      ;;
-  esac
-done
diff --git a/tests/openpgp/quick-key-manipulation.scm b/tests/openpgp/quick-key-manipulation.scm
new file mode 100755 (executable)
index 0000000..4579081
--- /dev/null
@@ -0,0 +1,83 @@
+#!/usr/bin/env gpgscm
+
+;; Copyright (C) 2016 g10 Code GmbH
+;;
+;; This file is part of GnuPG.
+;;
+;; 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 3 of the License, or
+;; (at your option) any later version.
+;;
+;; 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.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, see <http://www.gnu.org/licenses/>.
+
+(load (with-path "defs.scm"))
+(setup-environment)
+
+ ;; XXX because of --always-trust, the trustdb is not created.
+ ;; Therefore, we redefine GPG without --always-trust.
+(define GPG `(,(tool 'gpg) --no-permission-warning))
+
+(define (exact id)
+  (string-append "=" id))
+
+(define (count-uids-of-secret-key id)
+  (length (filter (lambda (x) (and (string=? "uid" (car x))
+                                  (string=? "u" (cadr x))))
+                 (gpg-with-colons
+                  `(--with-fingerprint
+                    --list-secret-keys ,(exact id))))))
+
+(define alpha "Alpha <alpha@invalid.example.net>")
+(define bravo "Bravo <bravo@invalid.example.net>")
+
+(define (key-data key)
+  (filter (lambda (x) (or (string=? (car x) "pub")
+                          (string=? (car x) "sub")))
+          (gpg-with-colons `(-k ,key))))
+
+(setenv "PINENTRY_USER_DATA" "test" #t)
+
+(info "Checking quick key generation...")
+(call-check `(,@GPG --quick-gen-key ,alpha))
+
+(call-check `(,@GPG --check-trustdb)) ; XXX why?
+
+(assert (= 1 (count-uids-of-secret-key alpha)))
+
+(info "Checking that we can add a user ID...")
+
+;; Make sure the key capabilities don't change when we add a user id.
+;; (See bug #2697.)
+(let ((pre (key-data (exact alpha)))
+      (result (call-check `(,@GPG --quick-adduid ,(exact alpha) ,bravo)))
+      (post (key-data (exact alpha))))
+  (if (not (equal? pre post))
+      (begin
+       (display "Key capabilities changed when adding a user id:")
+       (newline)
+       (display "  Pre: ")
+       (display pre)
+       (newline)
+       (display " Post: ")
+       (display post)
+       (newline)
+       (exit 1))))
+
+(call-check `(,@GPG --check-trustdb)) ; XXX why?
+
+(assert (= 2 (count-uids-of-secret-key alpha)))
+(assert (= 2 (count-uids-of-secret-key bravo)))
+
+(info "Checking that we can revoke a user ID...")
+(call-check `(,@GPG --quick-revuid ,(exact bravo) ,alpha))
+
+(call-check `(,@GPG --check-trustdb)) ; XXX why?
+
+(assert (= 1 (count-uids-of-secret-key bravo)))
diff --git a/tests/openpgp/quick-key-manipulation.test b/tests/openpgp/quick-key-manipulation.test
deleted file mode 100755 (executable)
index 4185601..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/bin/sh
-# Copyright 2016 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-export PINENTRY_USER_DATA=test
-
-alpha="Alpha <alpha@example.net>"
-bravo="Bravo <bravo@example.net>"
-
-$GPG --with-colons --with-fingerprint --list-secret-keys ="$alpha" &&
-    error "User ID '$alpha'exists when it should not!"
-$GPG --with-colons --with-fingerprint --list-secret-keys ="$bravo" &&
-    error "User ID '$bravo' exists when it should not!"
-
-#info verify that key creation works
-$GPG --quick-gen-key "$alpha"  || \
-        error "failed to generate key"
-
-fpr=$($GPG --with-colons --with-fingerprint --list-secret-keys ="$alpha" | \
-             grep '^fpr:' | cut -f10 -d: | head -n1)
-
-$GPG --check-trustdb
-
-cleanup() {
-    $GPG --batch --yes --delete-secret-key "0x$fpr"
-    $GPG --batch --yes --delete-key "0x$fpr"
-}
-
-count_uids_of_secret() {
-    if ! [ $($GPG --with-colons --list-secret-keys ="$1" | \
-                    grep -c '^uid:u:') = "$2" ] ; then
-        cleanup
-        error "wrong number of user IDs for '$1' after $3"
-    fi
-}
-
-count_uids_of_secret "$alpha" 1 "key generation"
-
-#info verify that we can add a user ID
-if ! $GPG --quick-adduid ="$alpha" "$bravo" ; then
-    cleanup
-    error "failed to add user id"
-fi
-
-$GPG --check-trustdb
-
-count_uids_of_secret "$alpha" 2 "adding User ID"
-count_uids_of_secret "$bravo" 2 "adding User ID"
-
-#info verify that we can revoke a user ID
-if ! $GPG --quick-revuid ="$bravo" "$alpha"; then
-    cleanup
-    error "failed to revoke user id"
-fi
-
-$GPG --check-trustdb
-
-count_uids_of_secret "$bravo" 1 "revoking user ID"
-
-cleanup
-
-! $GPG --with-colons --list-secret-keys ="$bravo" ||
-    error "key still exists when it should not!"
index e3b6b6a..90879a6 100644 (file)
   (package
    (define (scm name . args)
      (new name #f `(,*argv0* ,@(verbosity (*verbose*)) ,@args
-                            ,(in-srcdir name)) #f #f))
-   (define (new name directory command pid retcode)
+                            ,(in-srcdir name)) #f #f CLOSED_FD))
+   (define (new name directory command pid retcode logfd)
      (package
       (define (set-directory x)
-       (new name x command pid retcode))
+       (new name x command pid retcode logfd))
       (define (set-retcode x)
-       (new name directory command pid x))
+       (new name directory command pid x logfd))
       (define (set-pid x)
-       (new name directory command x retcode))
-      (define (run-sync)
-       (with-working-directory directory
-         (let* ((p (inbound-pipe))
-                (pid (spawn-process-fd command CLOSED_FD
-                                       (:write-end p) (:write-end p))))
-           (close (:write-end p))
-           (splice (:read-end p) STDERR_FILENO)
-           (close (:read-end p))
-           (let ((t' (set-retcode (wait-process name pid #t))))
-             (t'::report)
-             t'))))
-      (define (run-sync-quiet)
+       (new name directory command x retcode logfd))
+      (define (set-logfd x)
+       (new name directory command pid retcode x))
+      (define (open-log-file)
+       (let ((filename (string-append name ".log")))
+         (catch '() (unlink filename))
+         (open filename (logior O_RDWR O_BINARY O_CREAT) #o600)))
+      (define (run-sync . args)
+       (letfd ((log (open-log-file)))
+         (with-working-directory directory
+           (let* ((p (inbound-pipe))
+                  (pid (spawn-process-fd (append command args) 0
+                                         (:write-end p) (:write-end p))))
+             (close (:write-end p))
+             (splice (:read-end p) STDERR_FILENO log)
+             (close (:read-end p))
+             (let ((t' (set-retcode (wait-process name pid #t))))
+               (t'::report)
+               t')))))
+      (define (run-sync-quiet . args)
        (with-working-directory directory
          (set-retcode
           (wait-process
-           name (spawn-process-fd command CLOSED_FD CLOSED_FD CLOSED_FD) #t))))
-      (define (run-async)
-       (with-working-directory directory
-         (set-pid (spawn-process-fd command CLOSED_FD CLOSED_FD CLOSED_FD))))
+           name (spawn-process-fd (append command args)
+                                  CLOSED_FD CLOSED_FD CLOSED_FD) #t))))
+      (define (run-async . args)
+       (let ((log (open-log-file)))
+         (with-working-directory directory
+           (new name directory command
+                (spawn-process-fd (append command args) CLOSED_FD log log)
+                retcode log))))
       (define (status)
        (let ((t (assoc retcode '((0 "PASS") (77 "SKIP") (99 "ERROR")))))
          (if (not t) "FAIL" (cadr t))))
       (define (report)
+       (unless (= logfd CLOSED_FD)
+               (seek logfd 0 SEEK_SET)
+               (splice logfd STDERR_FILENO)
+               (close logfd))
        (echo (string-append (status retcode) ":") name))))))
 
-(define (run-tests-parallel-shared setup teardown . tests)
-  (setup::run-sync)
-  (let loop ((pool (test-pool::new '())) (tests' tests))
-    (if (null? tests')
-       (let ((results (pool::wait)))
-         (for-each (lambda (t) (t::report)) results::procs)
-         (teardown::run-sync)
-         (exit (results::report)))
-       (let ((test (car tests')))
-         (loop (pool::add (test::run-async)) (cdr tests'))))))
-
-(define (run-tests-parallel-isolated setup teardown . tests)
-  (let loop ((pool (test-pool::new '())) (tests' tests))
-    (if (null? tests')
-       (let ((results (pool::wait)))
-         (for-each (lambda (t)
-                     (let ((teardown' (teardown::set-directory t::directory)))
-                       (teardown'::run-sync-quiet))
-                     (unlink-recursively t::directory)
-                     (t::report)) results::procs)
-         (exit (results::report)))
-       (let* ((wd (mkdtemp))
-              (test (car tests'))
-              (test' (test::set-directory wd))
-              (setup' (setup::set-directory wd)))
-         (setup'::run-sync-quiet)
-         (loop (pool::add (test'::run-async)) (cdr tests'))))))
-
-(define (run-tests-sequential-shared setup teardown . tests)
-  (let loop ((pool (test-pool::new '()))
-            (tests' `(,setup ,@tests ,teardown)))
-    (if (null? tests')
-       (let ((results (pool::wait)))
-         (exit (results::report)))
-       (let ((test (car tests')))
-         (loop (pool::add (test::run-sync)) (cdr tests'))))))
-
-(define (run-tests-sequential-isolated setup teardown . tests)
-  (let loop ((pool (test-pool::new '())) (tests' tests))
-    (if (null? tests')
-       (let ((results (pool::wait)))
-         (for-each (lambda (t)
-                     (let ((teardown' (teardown::set-directory t::directory)))
-                       (teardown'::run-sync-quiet))
-                     (unlink-recursively t::directory))
-                   results::procs)
-         (exit (results::report)))
-       (let* ((wd (mkdtemp))
-              (test (car tests'))
-              (test' (test::set-directory wd))
-              (setup' (setup::set-directory wd)))
-         (setup'::run-sync-quiet)
-         (loop (pool::add (test'::run-sync)) (cdr tests'))))))
+(define (run-tests-parallel setup tests)
+  (lettmp (gpghome-tar)
+    (setup::run-sync '--create-tarball gpghome-tar)
+    (let loop ((pool (test-pool::new '())) (tests' tests))
+      (if (null? tests')
+         (let ((results (pool::wait)))
+           (for-each (lambda (t)
+                       (catch (echo "Removing" t::directory "failed:" *error*)
+                              (unlink-recursively t::directory))
+                       (t::report)) (reverse results::procs))
+           (exit (results::report)))
+         (let* ((wd (mkdtemp))
+                (test (car tests'))
+                (test' (test::set-directory wd)))
+           (loop (pool::add (test'::run-async '--unpack-tarball gpghome-tar))
+                 (cdr tests')))))))
 
-(define all-tests
-  '("version.scm"
-    "mds.scm"
-    "decrypt.scm"
-    "decrypt-dsa.scm"
-    "sigs.scm"
-    "sigs-dsa.scm"
-    "encrypt.scm"
-    "encrypt-dsa.scm"
-    "seat.scm"
-    "clearsig.scm"
-    "encryptp.scm"
-    "detach.scm"
-    "detachm.scm"
-    "armsigs.scm"
-    "armencrypt.scm"
-    "armencryptp.scm"
-    "signencrypt.scm"
-    "signencrypt-dsa.scm"
-    "armsignencrypt.scm"
-    "armdetach.scm"
-    "armdetachm.scm"
-    "genkey1024.scm"
-    "conventional.scm"
-    "conventional-mdc.scm"
-    "multisig.scm"
-    "verify.scm"
-    "armor.scm"
-    "import.scm"
-    "ecc.scm"
-    "4gb-packet.scm"
-    "tofu.scm"
-    "gpgtar.scm"
-    "use-exact-key.scm"
-    "default-key.scm"
-    "export.scm"
-    "ssh.scm"
-    "issue2015.scm"
-    "issue2346.scm"
-    "issue2419.scm"))
+(define (run-tests-sequential setup tests)
+  (lettmp (gpghome-tar)
+    (setup::run-sync '--create-tarball gpghome-tar)
+    (let loop ((pool (test-pool::new '())) (tests' tests))
+      (if (null? tests')
+         (let ((results (pool::wait)))
+           (for-each (lambda (t)
+                       (catch (echo "Removing" t::directory "failed:" *error*)
+                              (unlink-recursively t::directory)))
+                     results::procs)
+           (exit (results::report)))
+         (let* ((wd (mkdtemp))
+                (test (car tests'))
+                (test' (test::set-directory wd)))
+           (loop (pool::add (test'::run-sync '--unpack-tarball gpghome-tar))
+                 (cdr tests')))))))
 
 (let* ((runner (if (member "--parallel" *args*)
-                 (if (member "--shared" *args*)
-                     run-tests-parallel-shared
-                     run-tests-parallel-isolated)
-                 (if (member "--shared" *args*)
-                     run-tests-sequential-shared
-                     run-tests-sequential-isolated)))
-       (tests' (filter (lambda (arg) (not (string-prefix? arg "--"))) *args*))
-       (tests (if (null? tests') all-tests tests')))
-  (apply runner (append (list (test::scm "setup.scm") (test::scm "finish.scm"))
-                       (map test::scm tests))))
+                  run-tests-parallel
+                  run-tests-sequential))
+       (tests (filter (lambda (arg) (not (string-prefix? arg "--"))) *args*)))
+  (runner (test::scm "setup.scm") (map test::scm tests)))
index aceecca..22a5a67 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (for-each-p
  "Checking encryption, signing, and producing armored output"
diff --git a/tests/openpgp/seat.test b/tests/openpgp/seat.test
deleted file mode 100755 (executable)
index b400e72..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-for i in $plain_files ; do
-    echo "$usrpass1" | $GPG --passphrase-fd 0 ${opt_always} -seat \
-                        -r two@example.com -o x --yes $i
-    $GPG -o y --yes x
-    cmp $i y || error "$i: mismatch"
-done
-
index 8fc1543..d2e125e 100755 (executable)
 
 (load (with-path "defs.scm"))
 
-(echo "Creating test environment...")
-
-(letfd ((fd (open "random_seed" (logior O_WRONLY O_CREAT O_BINARY) #o600)))
-  (call-with-fds (list (tool 'mktdata) "600") CLOSED_FD fd STDERR_FILENO))
-
-(for-each-p
- "Creating configuration files"
- (lambda (name)
-   (file-copy (in-srcdir (string-append name ".tmpl")) name)
-   (let ((p (open-input-output-file name)))
-     (cond
-      ((string=? "gpg.conf" name)
-       (if have-opt-always-trust
-          (display "no-auto-check-trustdb\n" p))
-       (display (string-append "agent-program "
-                              (tool 'gpg-agent)
-                              "|--debug-quick-random\n") p)
-       (display "allow-weak-digest-algos\n" p))
-      ((string=? "gpg-agent.conf" name)
-       (display (string-append "pinentry-program " PINENTRY "\n") p)))))
- '("gpg.conf" "gpg-agent.conf"))
-
-(echo "Starting gpg-agent...")
-(call-check `(,(tool 'gpg-connect-agent) --verbose
-             ,(string-append "--agent-program=" (tool 'gpg-agent)
-                             "|--debug-quick-random")
-             /bye))
-
-(for-each-p "Creating sample data files"
-  (lambda (size)
-    (letfd ((fd (open (string-append "data-" (number->string size))
-                     (logior O_WRONLY O_CREAT O_BINARY) #o600)))
-      (call-with-fds (list (tool 'mktdata) (number->string size))
-                    CLOSED_FD fd STDERR_FILENO)))
-  '(500 9000 32000 80000))
-
-(for-each-p "Unpacking samples"
-  (lambda (name)
-    (dearmor (in-srcdir (string-append name "o.asc")) name))
-  '("plain-1" "plain-2" "plain-3" "plain-large"))
-
-;; XXX implement cleanup
-(catch '()
-       (mkdir "private-keys-v1.d" "-rwx"))
-
-(define counter (make-counter))
-(for-each-p' "Storing private keys"
-  (lambda (name)
-    (dearmor (in-srcdir (string-append "/privkeys/" name ".asc"))
-            (string-append "private-keys-v1.d/" name ".key")))
-  (lambda (name) (counter))
-  '("50B2D4FA4122C212611048BC5FC31BD44393626E"
-    "7E201E28B6FEB2927B321F443205F4724EBE637E"
-    "13FDB8809B17C5547779F9D205C45F47CE0217CE"
-    "343D8AF79796EE107D645A2787A9D9252F924E6F"
-    "8B5ABF3EF9EB8D96B91A0B8C2C4401C91C834C34"
-    "0D6F6AD4C4C803B25470F9104E9F4E6A4CA64255"
-    "FD692BD59D6640A84C8422573D469F84F3B98E53"
-    "76F7E2B35832976B50A27A282D9B87E44577EB66"
-    "A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD"
-    "00FE67F28A52A8AA08FFAED20AF832DA916D1985"
-    "1DF48228FEFF3EC2481B106E0ACA8C465C662CC5"
-    "A2832820DC9F40751BDCD375BB0945BA33EC6B4C"
-    "ADE710D74409777B7729A7653373D820F67892E0"
-    "CEFC51AF91F68A2904FBFF62C4F075A4785B803F"
-    "1E28F20E41B54C2D1234D896096495FF57E08D18"
-    "EB33B687EB8581AB64D04852A54453E85F3DF62D"
-    "C6A6390E9388CDBAD71EAEA698233FE5E04F001E"
-    "D69102E0F5AC6B6DB8E4D16DA8E18CF46D88CAE3"))
-
-(info "Importing public demo and test keys")
-(call-check `(,@GPG --yes --import
-                   ,(in-srcdir "pubdemo.asc")
-                   ,(in-srcdir "pubring.asc")
-                    ,(in-srcdir key-file1)))
-;; (letfd ((source (open (in-srcdir "pubring.pkr.asc") O_RDONLY)))
-;;        ((gpg-pipe '(--dearmor) '(--yes --import) STDERR_FILENO)
-;;     source CLOSED_FD))
-(pipe:do
- (pipe:open (in-srcdir "pubring.pkr.asc") (logior O_RDONLY O_BINARY))
- (pipe:spawn `(,@GPG --dearmor))
- (pipe:spawn `(,@GPG --yes --import)))
-
-(info "Preset passphrases")
-;; one@example.com
-(call-check `(,(tool 'gpg-preset-passphrase)
-             --preset --passphrase def
-             "50B2D4FA4122C212611048BC5FC31BD44393626E"))
-(call-check `(,(tool 'gpg-preset-passphrase)
-             --preset --passphrase def
-             "7E201E28B6FEB2927B321F443205F4724EBE637E"))
-;; alpha@example.net
-(call-check `(,(tool 'gpg-preset-passphrase)
-             --preset --passphrase abc
-             "76F7E2B35832976B50A27A282D9B87E44577EB66"))
-(call-check `(,(tool 'gpg-preset-passphrase)
-             --preset --passphrase abc
-             "A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD"))
-
-(echo "All set up.")
+(unless (member "--create-tarball" *args*)
+       (error "Usage: setup.scm --create-tarball <file>"))
+
+(with-temporary-working-directory
+ (setenv "GNUPGHOME" (getcwd) #t)
+ (create-gpghome)
+ (create-legacy-gpghome)
+ (stop-agent)
+ (call-check `(,(tool 'gpgtar) --create --output ,(cadr *args*) ".")))
old mode 100755 (executable)
new mode 100644 (file)
similarity index 70%
rename from tests/openpgp/finish.scm
rename to tests/openpgp/shell.scm
index 48801c8..ea4b540
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-environment)
 
-(echo "Killing gpg-agent...")
-(call-check `(,(tool 'gpg-connect-agent) --verbose killagent /bye))
+;; This is not a test, but can be used to inspect the test
+;; environment.  Simply execute
+;;
+;;   make -Ctests/openpgp check XTESTS=shell.scm
+;;
+;; to run it.
+
+(echo "Note that gpg.conf includes 'batch'.  If you want to use gpg")
+(echo "interactively you should drop that.")
+(echo)
+(interactive-shell)
index baf1def..c969d2f 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (for-each-p
  "Checking signing and encryption using DSA"
diff --git a/tests/openpgp/signencrypt-dsa.test b/tests/openpgp/signencrypt-dsa.test
deleted file mode 100755 (executable)
index 2fb2bb1..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/sh
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-#info Checking signing and encryption for DSA
-for i in $plain_files $data_files ; do
-    $GPG ${opt_always} -se -o x --yes \
-               -u "$dsa_usrname1" -r "$dsa_usrname2" $i
-    $GPG -o y --yes x
-    cmp $i y || error "$i: mismatch"
-done
-
-algos="sha1"
-if have_hash_algo "RIPEMD160"; then
-  algos="ripemd160 $algos"
-else
-  echo "Hash algorithm RIPEMD160 is not installed (not an error)"
-fi
-
-for da in $algos; do
-    for i in $plain_files; do
-       $GPG ${opt_always} -se -o x --yes --digest-algo $da \
-                   -u "$dsa_usrname1" -r "$dsa_usrname2" $i
-       $GPG -o y --yes x
-       cmp $i y || error "$i: mismatch"
-       # process only the first one
-       break
-    done
-done
index b138dce..b4c3bd6 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (for-each-p
  "Checking signing and encryption"
diff --git a/tests/openpgp/signencrypt.test b/tests/openpgp/signencrypt.test
deleted file mode 100755 (executable)
index 5644bef..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/sh
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-
-info "Checking signing and encryption"
-for i in $plain_files $data_files ; do
-    echo "$usrpass1" | $GPG --passphrase-fd 0 ${opt_always} \
-                            -se -o x --yes -r "$usrname2" $i
-    $GPG -o y --yes x
-    cmp $i y || error "$i: mismatch"
-done
-
-i=$srcdir/bug537-test.data.asc
-info "Checking bug 537: MDC problem with old style compressed packets."
-echo "$usrpass1" | $GPG --passphrase-fd 0 -o y --yes $i
-tmp=`$GPG --with-colons --print-md sha1 <y`
-if [ "$tmp" != ":2:4336AE2A528FAE091E73E59E325B588FEE795F9B:" ]; then
-  error "$i: mismatch (bug 537)"
-fi
-
-
-
-
-
-
index bf5e415..f909078 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (for-each-p
  "Checking signing using DSA with the default hash algorithm"
diff --git a/tests/openpgp/sigs-dsa.test b/tests/openpgp/sigs-dsa.test
deleted file mode 100755 (executable)
index 4ba43ac..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-#info Checking DSA signatures (default digest algo)
-for i in $plain_files $data_files; do
-    $GPG -s -o x --yes -u $dsa_usrname1 $i
-    $GPG -o y --yes x
-    cmp $i y || error "$i: mismatch"
-done
-
-algos="sha1"
-if have_hash_algo "RIPEMD160"; then
-  algos="ripemd160 $algos"
-else
-  echo "Hash algorithm RIPEMD160 is not installed (not an error)"
-fi
-
-for da in $algos; do
-    for i in $plain_files; do
-       $GPG --digest-algo $da -s -o x --yes -u $dsa_usrname1 $i
-       $GPG -o y --yes x
-       cmp $i y || error "$i: mismatch"
-       # process only the first one
-       break
-    done
-done
-
index c478231..abdcd8f 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 (for-each-p
  "Checking signing with the default hash algorithm"
diff --git a/tests/openpgp/sigs.test b/tests/openpgp/sigs.test
deleted file mode 100755 (executable)
index d6d8898..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/sh
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-for i in $plain_files $data_files; do
-    $GPG -s -o x --yes $i
-    $GPG -o y --yes x
-    cmp $i y || error "$i: mismatch"
-done
-
-for da in `all_hash_algos` ; do
-    progress "$da"
-
-    # RSA key, so any hash is okay
-    if have_pubkey_algo "RSA"; then
-       for i in $plain_files; do
-           $GPG -u $usrname3 --digest-algo $da -s -o x --yes $i
-           $GPG -o y --yes x
-           cmp $i y || error "$i: mismatch"
-           # process only the first one
-           break
-       done
-    fi
-
-    # Using the DSA sig key - only 160 bit or larger hashes
-    if test $da != "MD5"; then
-        for i in $plain_files; do
-           echo "$usrpass1" | $GPG --passphrase-fd 0 --digest-algo $da \
-                               -s -o x --yes $i
-           $GPG -o y --yes x
-           cmp $i y || error "$i: mismatch"
-           # process only the first one
-           break
-        done
-    fi
-done
-
-progress_end
index 1fe2e5d..a825409 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-environment)
 
 (define GNUPGHOME (getenv "GNUPGHOME"))
 (if (string=? "" GNUPGHOME)
index 2b302ba..91c9e78 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-environment)
 
  ;; Redefine GPG without --always-trust and a fixed time.
 (define GPG `(,(tool 'gpg) --no-permission-warning
 ;; passed to GPG.
 ;;
 ;; This function only supports keys with a single user id.
-(define (getpolicy keyid format . args)
+(define (getpolicy keyid . args)
   (let ((policy
-        (list-ref (assoc "uid" (gpg-with-colons
-                                `(--tofu-db-format ,format
-                                  --trust-model=tofu
+        (list-ref (assoc "tfs" (gpg-with-colons
+                                `(--trust-model=tofu --with-tofu-info
                                   ,@args
-                                  --list-keys ,keyid))) 17)))
+                                  --list-keys ,keyid))) 5)))
     (unless (member policy '("auto" "good" "unknown" "bad" "ask"))
            (error "Bad policy:" policy))
     policy))
@@ -59,8 +59,8 @@
 ;; remaining arguments are simply passed to GPG.
 ;;
 ;; This function only supports keys with a single user id.
-(define (checkpolicy keyid format expected-policy . args)
-  (let ((policy (apply getpolicy `(,keyid ,format ,@args))))
+(define (checkpolicy keyid expected-policy . args)
+  (let ((policy (apply getpolicy `(,keyid ,@args))))
     (unless (string=? policy expected-policy)
            (error keyid ": Expected policy to be" expected-policy
                   "but got" policy))))
 ;; passed to GPG.
 ;;
 ;; This function only supports keys with a single user id.
-(define (gettrust keyid format . args)
+(define (gettrust keyid . args)
   (let ((trust
         (list-ref (assoc "pub" (gpg-with-colons
-                                `(--tofu-db-format ,format
-                                  --trust-model=tofu
+                                `(--trust-model=tofu
                                   ,@args
                                   --list-keys ,keyid))) 1)))
     (unless (and (= 1 (string-length trust))
 ;; remaining arguments are simply passed to GPG.
 ;;
 ;; This function only supports keys with a single user id.
-(define (checktrust keyid format expected-trust . args)
-  (let ((trust (apply gettrust `(,keyid ,format ,@args))))
+(define (checktrust keyid expected-trust . args)
+  (let ((trust (apply gettrust `(,keyid ,@args))))
     (unless (string=? trust expected-trust)
            (error keyid ": Expected trust to be" expected-trust
                   "but got" trust))))
 
 ;; Set key KEYID's policy to POLICY.  Any remaining arguments are
 ;; passed as options to gpg.
-(define (setpolicy keyid format policy . args)
-  (call-check `(,@GPG --tofu-db-format ,format
-                     --trust-model=tofu ,@args
+(define (setpolicy keyid policy . args)
+  (call-check `(,@GPG --trust-model=tofu ,@args
                      --tofu-policy ,policy ,keyid)))
 
+(info "Checking tofu policies and trust...")
+
+;; Carefully remove the TOFU db.
+(catch '() (unlink (string-append GNUPGHOME "/tofu.db")))
+
+;; Verify a message.  There should be no conflict and the trust
+;; policy should be set to auto.
+(call-check `(,@GPG --trust-model=tofu
+                   --verify ,(in-srcdir "tofu-2183839A-1.txt")))
+
+(checkpolicy "2183839A" "auto")
+;; Check default trust.
+(checktrust "2183839A" "m")
+
+;; Trust should be derived lazily.  Thus, if the policy is set to
+;; auto and we change --tofu-default-policy, then the trust should
+;; change as well.  Try it.
+(checktrust "2183839A" "f" '--tofu-default-policy=good)
+(checktrust "2183839A" "-" '--tofu-default-policy=unknown)
+(checktrust "2183839A" "n" '--tofu-default-policy=bad)
+
+;; Change the policy to something other than auto and make sure the
+;; policy and the trust are correct.
 (for-each-p
- "Testing tofu db formats"
- (lambda (format)
-   ;; Carefully remove the TOFU db.
-   (catch '() (unlink (string-append GNUPGHOME "/tofu.db")))
-   (catch '() (unlink-recursively (string-append GNUPGHOME "/tofu.d")))
-
-   ;; Verify a message.  There should be no conflict and the trust
-   ;; policy should be set to auto.
-   (call-check `(,@GPG --tofu-db-format ,format --trust-model=tofu
-                      --verify ,(in-srcdir "tofu-2183839A-1.txt")))
-
-   (checkpolicy "2183839A" format "auto")
-   ;; Check default trust.
-   (checktrust "2183839A" format "m")
-
-   ;; Trust should be derived lazily.  Thus, if the policy is set to
-   ;; auto and we change --tofu-default-policy, then the trust should
-   ;; change as well.  Try it.
-   (checktrust "2183839A" format "f" '--tofu-default-policy=good)
-   (checktrust "2183839A" format "-" '--tofu-default-policy=unknown)
-   (checktrust "2183839A" format "n" '--tofu-default-policy=bad)
-
-   ;; Change the policy to something other than auto and make sure the
-   ;; policy and the trust are correct.
-   (for-each-p
-    ""
-    (lambda (policy)
-      (let ((expected-trust
-            (cond
-             ((string=? "good" policy) "f")
-             ((string=? "unknown" policy) "-")
-             (else "n"))))
-       (setpolicy "2183839A" format policy)
-
-       ;; Since we have a fixed policy, the trust level shouldn't
-       ;; change if we change the default policy.
-       (for-each-p
-        ""
-        (lambda (default-policy)
-          (checkpolicy "2183839A" format policy
-                       '--tofu-default-policy default-policy)
-          (checktrust "2183839A" format expected-trust
-                      '--tofu-default-policy default-policy))
-        '("auto" "good" "unknown" "bad" "ask"))))
-    '("good" "unknown" "bad"))
-
-   ;; BC15C85A conflicts with 2183839A.  On conflict, this will set
-   ;; BC15C85A to ask.  If 2183839A is auto (it's not, it's bad), then
-   ;; it will be set to ask.
-   (call-check `(,@GPG --tofu-db-format ,format --trust-model=tofu
-                      --verify ,(in-srcdir "tofu-BC15C85A-1.txt")))
-   (checkpolicy "BC15C85A" format "ask")
-   (checkpolicy "2183839A" format "bad")
-
-   ;; EE37CF96 conflicts with 2183839A and BC15C85A.  We change
-   ;; BC15C85A's policy to auto and leave 2183839A's policy at bad.
-   ;; This conflict should cause BC15C85A's policy to be changed to
-   ;; ask (since it is auto), but not affect 2183839A's policy.
-   (setpolicy "BC15C85A" format "auto")
-   (checkpolicy "BC15C85A" format "auto")
-   (call-check `(,@GPG --tofu-db-format ,format --trust-model=tofu
-                      --verify ,(in-srcdir "tofu-EE37CF96-1.txt")))
-   (checkpolicy "BC15C85A" format "ask")
-   (checkpolicy "2183839A" format "bad")
-   (checkpolicy "EE37CF96" format "ask"))
- '("flat"))
+ "Setting a fixed policy..."
+ (lambda (policy)
+   (let ((expected-trust
+         (cond
+          ((string=? "good" policy) "f")
+          ((string=? "unknown" policy) "-")
+          (else "n"))))
+     (setpolicy "2183839A" policy)
+
+     ;; Since we have a fixed policy, the trust level shouldn't
+     ;; change if we change the default policy.
+     (for-each-p
+      ""
+      (lambda (default-policy)
+       (checkpolicy "2183839A" policy
+                    '--tofu-default-policy default-policy)
+       (checktrust "2183839A" expected-trust
+                   '--tofu-default-policy default-policy))
+      '("auto" "good" "unknown" "bad" "ask"))))
+ '("good" "unknown" "bad"))
+
+;; BC15C85A conflicts with 2183839A.  On conflict, this will set
+;; BC15C85A to ask.  If 2183839A is auto (it's not, it's bad), then
+;; it will be set to ask.
+(call-check `(,@GPG --trust-model=tofu
+                   --verify ,(in-srcdir "tofu-BC15C85A-1.txt")))
+(checkpolicy "BC15C85A" "ask")
+(checkpolicy "2183839A" "bad")
+
+;; EE37CF96 conflicts with 2183839A and BC15C85A.  We change
+;; BC15C85A's policy to auto and leave 2183839A's policy at bad.
+;; This conflict should cause BC15C85A's policy to be changed to
+;; ask (since it is auto), but not affect 2183839A's policy.
+(setpolicy "BC15C85A" "auto")
+(checkpolicy "BC15C85A" "auto")
+(call-check `(,@GPG --trust-model=tofu
+                   --verify ,(in-srcdir "tofu-EE37CF96-1.txt")))
+(checkpolicy "BC15C85A" "ask")
+(checkpolicy "2183839A" "bad")
+(checkpolicy "EE37CF96" "ask")
+
+
+
+;; Check that we detect the following attack:
+;;
+;; Alice and Bob each have a key and cross sign them.  Bob then adds a
+;; new user id, "Alice".  TOFU should now detect a conflict, because
+;; Alice only signed Bob's "Bob" user id.
+
+(display "Checking cross sigs...\n")
+(define GPG `(,(tool 'gpg) --no-permission-warning
+             --faked-system-time=1476304861))
+
+;; Carefully remove the TOFU db.
+(catch '() (unlink (string-append GNUPGHOME "/tofu.db")))
+
+(define DIR "tofu/cross-sigs")
+;; The test keys.
+(define KEYA "1938C3A0E4674B6C217AC0B987DB2814EC38277E")
+(define KEYB "DC463A16E42F03240D76E8BA8B48C6BD871C2247")
+(define KEYIDA (substring KEYA (- (string-length KEYA) 8)))
+(define KEYIDB (substring KEYB (- (string-length KEYB) 8)))
+
+(define (verify-messages)
+  (for-each
+   (lambda (key)
+     (for-each
+      (lambda (i)
+        (let ((fn (in-srcdir DIR (string-append key "-" i ".txt"))))
+          (call-check `(,@GPG --trust-model=tofu --verify ,fn))))
+      (list "1" "2")))
+   (list KEYIDA KEYIDB)))
+
+;; Import the public keys.
+(display "    > Two keys. ")
+(call-check `(,@GPG --import ,(in-srcdir DIR (string-append KEYIDA "-1.gpg"))))
+(call-check `(,@GPG --import ,(in-srcdir DIR (string-append KEYIDB "-1.gpg"))))
+;; Make sure the tofu engine registers the keys.
+(verify-messages)
+(display "<\n")
+
+;; Since there is no conflict, the policy should be auto.
+(checkpolicy KEYA "auto")
+(checkpolicy KEYB "auto")
+
+;; Import the cross sigs.
+(display "    > Adding cross signatures. ")
+(call-check `(,@GPG --import ,(in-srcdir DIR (string-append KEYIDA "-2.gpg"))))
+(call-check `(,@GPG --import ,(in-srcdir DIR (string-append KEYIDB "-2.gpg"))))
+(verify-messages)
+(display "<\n")
+
+;; There is still no conflict, so the policy shouldn't have changed.
+(checkpolicy KEYA "auto")
+(checkpolicy KEYB "auto")
+
+;; Import the conflicting user id.
+(display "    > Adding conflicting user id. ")
+(call-check `(,@GPG --import ,(in-srcdir DIR (string-append KEYIDB "-3.gpg"))))
+(verify-messages)
+(display "<\n")
+
+(checkpolicy KEYA "ask")
+(checkpolicy KEYB "ask")
+
+;; Import Alice's signature on the conflicting user id.
+(display "    > Adding cross signature on user id. ")
+(call-check `(,@GPG --import ,(in-srcdir DIR (string-append KEYIDB "-4.gpg"))))
+(verify-messages)
+(display "<\n")
+
+(checkpolicy KEYA "auto")
+(checkpolicy KEYB "auto")
+
+;; Remove the keys.
+(call-check `(,@GPG --delete-key ,KEYA))
+(call-check `(,@GPG --delete-key ,KEYB))
+
+
+;; Check that we detect the following attack:
+;;
+;; Alice has an ultimately trusted key and she signs Bob's key.  Then
+;; Bob adds a new user id, "Alice".  TOFU should now detect a
+;; conflict, because Alice only signed Bob's "Bob" user id.
+
+(display "Checking UTK sigs...\n")
+(define GPG `(,(tool 'gpg) --no-permission-warning
+             --faked-system-time=1476304861))
+
+;; Carefully remove the TOFU db.
+(catch '() (unlink (string-append GNUPGHOME "/tofu.db")))
+
+(define DIR "tofu/cross-sigs")
+;; The test keys.
+(define KEYA "1938C3A0E4674B6C217AC0B987DB2814EC38277E")
+(define KEYB "DC463A16E42F03240D76E8BA8B48C6BD871C2247")
+(define KEYIDA (substring KEYA (- (string-length KEYA) 8)))
+(define KEYIDB (substring KEYB (- (string-length KEYB) 8)))
+
+(define (verify-messages)
+  (for-each
+   (lambda (key)
+     (for-each
+      (lambda (i)
+        (let ((fn (in-srcdir DIR (string-append key "-" i ".txt"))))
+          (call-check `(,@GPG --trust-model=tofu --verify ,fn))))
+      (list "1" "2")))
+   (list KEYIDA KEYIDB)))
+
+;; Import the public keys.
+(display "    > Two keys. ")
+(call-check `(,@GPG --import ,(in-srcdir DIR (string-append KEYIDA "-1.gpg"))))
+(call-check `(,@GPG --import ,(in-srcdir DIR (string-append KEYIDB "-1.gpg"))))
+(display "<\n")
+
+;; Import the cross sigs.
+(display "    > Adding cross signatures. ")
+(call-check `(,@GPG --import ,(in-srcdir DIR (string-append KEYIDA "-2.gpg"))))
+(call-check `(,@GPG --import ,(in-srcdir DIR (string-append KEYIDB "-2.gpg"))))
+(display "<\n")
+
+;; Make KEYA ultimately trusted.
+(display (string-append "    > Marking " KEYA " as ultimately trusted. "))
+(pipe:do
+ (pipe:echo (string-append KEYA ":6:\n"))
+ (pipe:gpg `(--import-ownertrust)))
+(display "<\n")
+
+;; An ultimately trusted key's policy is good.
+(checkpolicy KEYA "good")
+;; A key signed by a UTK for which there is no policy gets the default
+;; policy of good.
+(checkpolicy KEYB "good")
+
+;; Import the conflicting user id.
+(display "    > Adding conflicting user id. ")
+(call-check `(,@GPG --import ,(in-srcdir DIR (string-append KEYIDB "-3.gpg"))))
+(verify-messages)
+(display "<\n")
+
+(checkpolicy KEYA "good")
+(checkpolicy KEYB "ask")
+
+;; Import Alice's signature on the conflicting user id.
+(display "    > Adding cross signature on user id. ")
+(call-check `(,@GPG --import ,(in-srcdir DIR (string-append KEYIDB "-4.gpg"))))
+(verify-messages)
+(display "<\n")
+
+(checkpolicy KEYA "good")
+(checkpolicy KEYB "good")
+
+;; Remove the keys.
+(call-check `(,@GPG --delete-key ,KEYA))
+(call-check `(,@GPG --delete-key ,KEYB))
diff --git a/tests/openpgp/tofu.test b/tests/openpgp/tofu.test
deleted file mode 100755 (executable)
index 0d34af4..0000000
+++ /dev/null
@@ -1,248 +0,0 @@
-#!/bin/sh
-
-. $srcdir/defs.inc || exit 3
-
-# set -x
-
-# Redefine GPG with a fixed time.
-GPG="$GPG --faked-system-time=1466684990"
-
-KEYS="2183839A BC15C85A EE37CF96"
-
-# Make sure $srcdir is set.
-if test "x$srcdir" = x
-then
-    echo srcdir environment variable not set!
-    exit 1
-fi
-
-# Make sure $GNUPGHOME is set.
-if test "x$GNUPGHOME" = x
-then
-    echo "GNUPGHOME not set."
-    exit 1
-fi
-
-# Import the test keys.
-$GPG --import $srcdir/tofu-keys.asc
-
-# Make sure the keys are imported.
-for k in $KEYS
-do
-    if ! $GPG --list-keys $k >/dev/null 2>&1
-    then
-       echo Missing key $k
-       exit 1
-    fi
-done
-
-format=auto
-
-debug()
-{
-    echo "$@" >&2
-}
-
-debug_exec()
-{
-    debug "Running GNUPGHOME=$GNUPGHOME $@"
-    ${@:+"$@"}
-}
-
-# $1 is the keyid of the policy to lookup.  Any remaining arguments
-# are simply passed to GPG.
-#
-# This function only supports keys with a single user id.
-getpolicy()
-{
-    keyid=$1
-    if test x$keyid = x
-    then
-       echo No keyid supplied!
-       exit 1
-    fi
-    shift
-
-    policy=$(debug_exec $GPG --tofu-db-format=$format --trust-model=tofu \
-                 --with-colons $@ --list-keys "$keyid" \
-                   | awk -F: '/^uid:/ { print $18 }')
-    if test $(echo "$policy" | wc -l) -ne 1
-    then
-       echo "Got: $policy" >&2
-       echo "error"
-    else
-       case $policy in
-           auto|good|unknown|bad|ask) echo $policy ;;
-           *) echo "error" ;;
-       esac
-    fi
-}
-
-# $1 is the key id
-# $2 is the expected policy
-# The rest are additional options to pass to gpg.
-checkpolicy()
-{
-    debug
-    debug "checkpolicy($@)"
-
-    keyid=$1
-    shift
-    expected_policy=$1
-    shift
-    policy=$(getpolicy "$keyid" ${@:+"$@"})
-    if test "x$policy" != "x$expected_policy"
-    then
-       echo "$keyid: Expected policy to be \`$expected_policy', but got \`$policy'."
-       exit 1
-    fi
-}
-
-# $1 is the keyid of the trust level to lookup.  Any remaining
-# arguments are simply passed to GPG.
-#
-# This function only supports keys with a single user id.
-gettrust()
-{
-    keyid=$1
-    if test x$keyid = x
-    then
-       echo No keyid supplied!
-       exit 1
-    fi
-    shift
-
-    trust=$(debug_exec $GPG --tofu-db-format=$format --trust-model=tofu \
-                --with-colons $@ --list-keys "$keyid" \
-                   | awk -F: '/^pub:/ { print $2 }')
-    if test $(echo "$trust" | wc -l) -ne 1
-    then
-       echo "error"
-    else
-       case $trust in
-           [oidreqnmfuws-]) echo $trust ;;
-           *) echo "Bad trust value: $trust" >&2; echo "error" ;;
-       esac
-    fi
-}
-
-# $1 is the key id
-# $2 is the expected trust level
-# The rest are additional options to pass to gpg.
-checktrust()
-{
-    debug
-    debug "checktrust($@)"
-
-    keyid=$1
-    shift
-    expected_trust=$1
-    shift
-    trust=$(gettrust "$keyid" ${@:+"$@"})
-    if test "x$trust" != "x$expected_trust"
-    then
-       echo "$keyid: Expected trust to be \`$expected_trust', but got \`$trust'."
-       exit 1
-    fi
-}
-
-# Set key $1's policy to $2.  Any remaining arguments are passed as
-# options to gpg.
-setpolicy()
-{
-    debug
-    debug "setpolicy($@)"
-
-    keyid=$1
-    shift
-    policy=$1
-    shift
-
-    debug_exec $GPG --tofu-db-format=$format \
-        --trust-model=tofu ${@:+"$@"} --tofu-policy $policy $keyid
-}
-
-for format in split flat
-do
-    debug
-    debug "Testing with db format $format"
-
-    # Carefully remove the TOFU db.
-    test -e $GNUPGHOME/tofu.db && rm $GNUPGHOME/tofu.db
-    test -e $GNUPGHOME/tofu.d/email && rm -r $GNUPGHOME/tofu.d/email
-    test -e $GNUPGHOME/tofu.d/key && rm -r $GNUPGHOME/tofu.d/key
-    # This will fail if the directory is not empty.
-    test -e $GNUPGHOME/tofu.d && rmdir $GNUPGHOME/tofu.d
-
-    # Verify a message.  There should be no conflict and the trust policy
-    # should be set to auto.
-    debug_exec $GPG --tofu-db-format=$format --trust-model=tofu \
-        --verify $srcdir/tofu-2183839A-1.txt
-
-    checkpolicy 2183839A auto
-
-    trust=$(gettrust 2183839A)
-    debug "default trust = $trust"
-    if test "x$trust" != xm
-    then
-       echo "Wrong default trust.  Got: \`$trust', expected \`m'"
-       exit 1
-    fi
-
-    # Trust should be derived lazily.  Thus, if the policy is set to auto
-    # and we change --tofu-default-policy, then the trust should change as
-    # well.  Try it.
-    checktrust 2183839A f --tofu-default-policy=good
-    checktrust 2183839A - --tofu-default-policy=unknown
-    checktrust 2183839A n --tofu-default-policy=bad
-
-    # Change the policy to something other than auto and make sure the
-    # policy and the trust are correct.
-    for policy in good unknown bad
-    do
-       if test $policy = good
-       then
-           expected_trust='f'
-       elif test $policy = unknown
-       then
-           expected_trust='-'
-       else
-           expected_trust='n'
-       fi
-
-       debug
-       debug "Setting TOFU policy to $policy"
-       setpolicy 2183839A $policy
-
-       # Since we have a fixed policy, the trust level shouldn't
-       # change if we change the default policy.
-       for default_policy in auto good unknown bad ask
-       do
-           checkpolicy 2183839A $policy --tofu-default-policy=$default_policy
-           checktrust 2183839A $expected_trust \
-                      --tofu-default-policy=$default_policy
-       done
-    done
-
-    # BC15C85A conflicts with 2183839A.  On conflict, this will set
-    # BC15C85A to ask.  If 2183839A is auto (it's not, it's bad), then
-    # it will be set to ask.
-    debug_exec $GPG --tofu-db-format=$format --trust-model=tofu \
-        --verify $srcdir/tofu-BC15C85A-1.txt
-    checkpolicy BC15C85A ask
-    checkpolicy 2183839A bad
-
-    # EE37CF96 conflicts with 2183839A and BC15C85A.  We change
-    # BC15C85A's policy to auto and leave 2183839A's policy at bad.
-    # This conflict should cause BC15C85A's policy to be changed to
-    # ask (since it is auto), but not affect 2183839A's policy.
-    setpolicy BC15C85A auto
-    checkpolicy BC15C85A auto
-    debug_exec $GPG --tofu-db-format=$format --trust-model=tofu \
-        --verify $srcdir/tofu-EE37CF96-1.txt
-    checkpolicy BC15C85A ask
-    checkpolicy 2183839A bad
-    checkpolicy EE37CF96 ask
-done
-
-exit 0
diff --git a/tests/openpgp/tofu/cross-sigs/871C2247-1.gpg b/tests/openpgp/tofu/cross-sigs/871C2247-1.gpg
new file mode 100644 (file)
index 0000000..f706f70
Binary files /dev/null and b/tests/openpgp/tofu/cross-sigs/871C2247-1.gpg differ
diff --git a/tests/openpgp/tofu/cross-sigs/871C2247-1.txt b/tests/openpgp/tofu/cross-sigs/871C2247-1.txt
new file mode 100644 (file)
index 0000000..0bdc1fc
Binary files /dev/null and b/tests/openpgp/tofu/cross-sigs/871C2247-1.txt differ
diff --git a/tests/openpgp/tofu/cross-sigs/871C2247-2.gpg b/tests/openpgp/tofu/cross-sigs/871C2247-2.gpg
new file mode 100644 (file)
index 0000000..0b2485f
Binary files /dev/null and b/tests/openpgp/tofu/cross-sigs/871C2247-2.gpg differ
diff --git a/tests/openpgp/tofu/cross-sigs/871C2247-2.txt b/tests/openpgp/tofu/cross-sigs/871C2247-2.txt
new file mode 100644 (file)
index 0000000..4d3aaaa
Binary files /dev/null and b/tests/openpgp/tofu/cross-sigs/871C2247-2.txt differ
diff --git a/tests/openpgp/tofu/cross-sigs/871C2247-3.gpg b/tests/openpgp/tofu/cross-sigs/871C2247-3.gpg
new file mode 100644 (file)
index 0000000..eb2c435
Binary files /dev/null and b/tests/openpgp/tofu/cross-sigs/871C2247-3.gpg differ
diff --git a/tests/openpgp/tofu/cross-sigs/871C2247-3.txt b/tests/openpgp/tofu/cross-sigs/871C2247-3.txt
new file mode 100644 (file)
index 0000000..9b2d49d
Binary files /dev/null and b/tests/openpgp/tofu/cross-sigs/871C2247-3.txt differ
diff --git a/tests/openpgp/tofu/cross-sigs/871C2247-4.gpg b/tests/openpgp/tofu/cross-sigs/871C2247-4.gpg
new file mode 100644 (file)
index 0000000..9c98ec1
Binary files /dev/null and b/tests/openpgp/tofu/cross-sigs/871C2247-4.gpg differ
diff --git a/tests/openpgp/tofu/cross-sigs/871C2247-secret.gpg b/tests/openpgp/tofu/cross-sigs/871C2247-secret.gpg
new file mode 100644 (file)
index 0000000..a87c61b
Binary files /dev/null and b/tests/openpgp/tofu/cross-sigs/871C2247-secret.gpg differ
diff --git a/tests/openpgp/tofu/cross-sigs/EC38277E-1.gpg b/tests/openpgp/tofu/cross-sigs/EC38277E-1.gpg
new file mode 100644 (file)
index 0000000..e6becec
Binary files /dev/null and b/tests/openpgp/tofu/cross-sigs/EC38277E-1.gpg differ
diff --git a/tests/openpgp/tofu/cross-sigs/EC38277E-1.txt b/tests/openpgp/tofu/cross-sigs/EC38277E-1.txt
new file mode 100644 (file)
index 0000000..92236be
Binary files /dev/null and b/tests/openpgp/tofu/cross-sigs/EC38277E-1.txt differ
diff --git a/tests/openpgp/tofu/cross-sigs/EC38277E-2.gpg b/tests/openpgp/tofu/cross-sigs/EC38277E-2.gpg
new file mode 100644 (file)
index 0000000..d26bd54
Binary files /dev/null and b/tests/openpgp/tofu/cross-sigs/EC38277E-2.gpg differ
diff --git a/tests/openpgp/tofu/cross-sigs/EC38277E-2.txt b/tests/openpgp/tofu/cross-sigs/EC38277E-2.txt
new file mode 100644 (file)
index 0000000..b4013d3
Binary files /dev/null and b/tests/openpgp/tofu/cross-sigs/EC38277E-2.txt differ
diff --git a/tests/openpgp/tofu/cross-sigs/EC38277E-3.txt b/tests/openpgp/tofu/cross-sigs/EC38277E-3.txt
new file mode 100644 (file)
index 0000000..9b2d49d
Binary files /dev/null and b/tests/openpgp/tofu/cross-sigs/EC38277E-3.txt differ
diff --git a/tests/openpgp/tofu/cross-sigs/EC38277E-secret.gpg b/tests/openpgp/tofu/cross-sigs/EC38277E-secret.gpg
new file mode 100644 (file)
index 0000000..1839e3a
Binary files /dev/null and b/tests/openpgp/tofu/cross-sigs/EC38277E-secret.gpg differ
diff --git a/tests/openpgp/tofu/cross-sigs/README b/tests/openpgp/tofu/cross-sigs/README
new file mode 100644 (file)
index 0000000..439962b
--- /dev/null
@@ -0,0 +1,79 @@
+# How I generate the keys and messages to verify:
+
+# Generate and export two non-conflicting keys.
+gpg --quick-gen-key 'Spy Cow <spy@cow.com>'
+gpg --quick-gen-key 'Spy R. Cow <spy@cow.de>'
+
+KEYIDA=1938C3A0E4674B6C217AC0B987DB2814EC38277E
+KEYIDB=DC463A16E42F03240D76E8BA8B48C6BD871C2247
+
+for KEYID in $KEYIDA $KEYIDB
+do
+  gpg --export $KEYID  > tofu-$KEYID.gpg
+  gpg --export-secret-keys $KEYID  > tofu-$KEYID-secret.gpg
+done
+
+# Sign some data.
+echo foo | gpg --default-key $KEYIDA -s > tofu-$KEYIDA-1.txt
+echo foo | gpg --default-key $KEYIDB -s > tofu-$KEYIDB-1.txt
+
+# Again, but with an issuer.
+echo foo | gpg --default-key "<spy@cow.com>" -s > tofu-$KEYIDA-2.txt
+echo foo | gpg --default-key "<spy@cow.de>" -s > tofu-$KEYIDB-2.txt
+
+# Have A sign B and vice versa.
+gpg --default-key $KEYIDA --quick-sign $KEYIDB
+gpg --default-key $KEYIDB --quick-sign $KEYIDA
+
+gpg --export $KEYIDA  > tofu-$KEYIDA-2.gpg
+gpg --export $KEYIDB  > tofu-$KEYIDB-2.gpg
+
+# Cause A and B to conflict.
+gpg --quick-adduid $KEYIDB 'Spy R. Cow <spy@cow.com>'
+gpg --export $KEYIDB  > tofu-$KEYIDB-3.gpg
+
+echo foo | gpg --default-key "<spy@cow.com>" -s > tofu-$KEYIDA-3.txt
+echo foo | gpg --default-key "<spy@cow.com>" -s > tofu-$KEYIDB-3.txt
+
+# Have A sign B's conflicting user id.
+gpg --default-key $KEYIDA --quick-sign $KEYIDB
+gpg --export $KEYIDB  > tofu-$KEYIDB-4.gpg
+
+exit 0
+
+# In a new directory (so the keys are not ultimately trusted).
+
+D=~/neal/work/gpg/test
+echo 'trust-model tofu+pgp' > gpg.conf
+gpg --import $D/tofu-$KEYIDA.gpg
+gpg --import $D/tofu-$KEYIDB.gpg
+gpg -k
+
+gpg --verify $D/tofu-$KEYIDA-1.txt
+gpg --verify $D/tofu-$KEYIDB-1.txt
+# With an issuer.
+gpg --verify $D/tofu-$KEYIDA-2.txt
+gpg --verify $D/tofu-$KEYIDB-2.txt
+
+# Import the cross signatures.
+gpg --import $D/tofu-$KEYIDA-2.gpg
+gpg --import $D/tofu-$KEYIDB-2.gpg
+gpg -k
+
+gpg --verify $D/tofu-$KEYIDA-1.txt
+gpg --verify $D/tofu-$KEYIDB-1.txt
+# With an issuer.
+gpg --verify $D/tofu-$KEYIDA-2.txt
+gpg --verify $D/tofu-$KEYIDB-2.txt
+
+
+gpg --status-fd=1 --batch --verify $D/tofu-$KEYIDA-3.txt | grep TRUST_UNDEFINED
+gpg --status-fd=1 --batch --verify $D/tofu-$KEYIDB-3.txt | grep TRUST_UNDEFINED
+
+# Import the conflicting user id.
+gpg --import $D/tofu-$KEYIDB-3.gpg
+gpg -k
+
+# Import the cross signature, which should remove the conflict.
+gpg --import $D/tofu-$KEYIDB-4.gpg
+gpg -k
index bec537b..18851da 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 ;; Import the sample key
 ;;
diff --git a/tests/openpgp/use-exact-key.test b/tests/openpgp/use-exact-key.test
deleted file mode 100755 (executable)
index 3745a2d..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/bin/sh
-
-. $srcdir/defs.inc || exit 3
-
-# set -x
-
-# Make sure $srcdir is set.
-if test "x$srcdir" = x
-then
-    echo srcdir environment variable not set!
-    exit 1
-fi
-
-# Import the sample key
-#
-# pub   1024R/8BC90111 2015-12-02
-#       Key fingerprint = E657 FB60 7BB4 F21C 90BB  6651 BC06 7AF2 8BC9 0111
-# uid       [ultimate] Barrett Brown <barrett@example.org>
-# sub   1024R/3E880CFF 2015-12-02 (encryption)
-# sub   1024R/F5F77B83 2015-12-02 (signing)
-# sub   1024R/45117079 2015-12-02 (encryption)
-# sub   1024R/1EA97479 2015-12-02 (signing)
-info "Importing public key."
-if $GPG --import $srcdir/samplekeys/E657FB607BB4F21C90BB6651BC067AF28BC90111.asc
-then
-    :
-else
-    error "$k: import failed"
-fi
-
-# By default, the most recent, valid signing subkey (1EA97479).
-for x in 8BC90111 3E880CFF F5F77B83 45117079 1EA97479
-do
-    if ! echo | $GPG -s -u "$x" | $GPG --verify --status-fd=1 \
-            | grep 'VALIDSIG 5FBA84ACE02DCB17DA3DFF6BBCA43C441EA97479' >/dev/null
-    then
-        echo | $GPG -s -u "$x" | $GPG --verify --status-fd=2
-        error "Unexpected key used for signing (not the signing subkey, specified \"$x\")."
-        exit 1
-    fi
-done
-
-# But, if we request a particular signing key, we should get it.
-for x in 8BC90111 F5F77B83 1EA97479
-do
-    if ! echo | $GPG -s -u "$x!" | $GPG --verify --status-fd=1 \
-            | grep "VALIDSIG [0-9A-F]*$x " >/dev/null
-    then
-        echo | $GPG -s -u "$x!" | $GPG --verify --status-fd=2
-        error "Unexpected key used for signing (specified: \"$x!\")."
-        exit 1
-    fi
-done
-
-exit 0
index de03db5..2c2c14a 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-legacy-environment)
 
 ;;
 ;; Two simple tests to check that verify fails for bad input data
  "Checking bogus signature"
  (lambda (char)
    (lettmp (x)
-     (pipe:do
-      (pipe:spawn `(,(tool 'mktdata) --char ,char "64"))
-      (pipe:write-to x (logior O_WRONLY O_CREAT O_BINARY) #o600))
+     (call-with-binary-output-file
+      x
+      (lambda (port)
+       (display (make-string 64 (integer->char (string->number char)))
+                port)))
      (if (= 0 (call `(,@GPG --verify ,x data-500)))
         (error "no error code from verify"))))
- '("0x2d" "0xca"))
+ '("#x2d" "#xca"))
 
 ;; A plain signed message created using
 ;;  echo abc | gpg --homedir . --passphrase-fd 0 -u Alpha -z0 -sa msg
@@ -236,6 +239,67 @@ FWIAQUplk7JWbyRKAJ92ZJyJpWfzb0yc1s7MY65r2qEHrg==
 ;; Two clear text signatures in a row
 (define msg_clsclss_asc_multiple (string-append msg_cls_asc msg_clss_asc))
 
+
+;; An Ed25519 cleartext message with an R parameter of only 247 bits
+;; so that the code to re-insert the stripped zero byte kicks in.  The
+;; S parameter has 253 bits but that does not strip a full byte.
+(define msg_ed25519_rshort "
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
+Dear Emily:
+       I'm still confused as to what groups articles should be posted
+to.  How about an example?
+               -- Still Confused
+
+Dear Still:
+       Ok.  Let's say you want to report that Gretzky has been traded from
+the Oilers to the Kings.  Now right away you might think rec.sport.hockey
+would be enough.  WRONG.  Many more people might be interested.  This is a
+big trade!  Since it's a NEWS article, it belongs in the news.* hierarchy
+as well.  If you are a news admin, or there is one on your machine, try
+news.admin.  If not, use news.misc.
+       The Oilers are probably interested in geology, so try sci.physics.
+He is a big star, so post to sci.astro, and sci.space because they are also
+interested in stars.  Next, his name is Polish sounding.  So post to
+soc.culture.polish.  But that group doesn't exist, so cross-post to
+news.groups suggesting it should be created.  With this many groups of
+interest, your article will be quite bizarre, so post to talk.bizarre as
+well.  (And post to comp.std.mumps, since they hardly get any articles
+there, and a \"comp\" group will propagate your article further.)
+       You may also find it is more fun to post the article once in each
+group.  If you list all the newsgroups in the same article, some newsreaders
+will only show the the article to the reader once!  Don't tolerate this.
+               -- Emily Postnews Answers Your Questions on Netiquette
+-----BEGIN PGP SIGNATURE-----
+
+iJEEARYIADoWIQSyHeq0+HX7PaQvHR0TlWNoKgINCgUCV772DhwccGF0cmljZS5s
+dW11bWJhQGV4YW1wbGUubmV0AAoJEBOVY2gqAg0KMAIA90EtUwAja0iJGpO91wyz
+GLh9pS5v495V0r94yU6uUyUA/RT/StyPWe1wbnEZuacZnLbUV6Yy/aTXCVAlxf0r
+TusO
+=vQ3f
+-----END PGP SIGNATURE-----
+")
+
+;; An Ed25519 cleartext message with an S parameter of only 248 bits
+;; so that the code to re-insert the stripped zero byte kicks in.
+(define msg_ed25519_sshort "
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
+All articles that coruscate with resplendence are not truly auriferous.
+-----BEGIN PGP SIGNATURE-----
+
+iJEEARYIADoWIQSyHeq0+HX7PaQvHR0TlWNoKgINCgUCV771QhwccGF0cmljZS5s
+dW11bWJhQGV4YW1wbGUubmV0AAoJEBOVY2gqAg0KHVEBAI66OPDYXKWO3r6SaFT+
+uxmh8x4ZerW41vMA9gkJ4AEKAPjoe/Z7fDqo1lCptIFutFAGbfNxcm/53prfx2fT
+GisM
+=L7sk
+-----END PGP SIGNATURE-----
+")
+
+
+
 ;; Fixme:  We need more tests with manipulated cleartext signatures.
 
 ;;
@@ -260,7 +324,7 @@ FWIAQUplk7JWbyRKAJ92ZJyJpWfzb0yc1s7MY65r2qEHrg==
           (pipe:defer (lambda (sink)
                         (display armored-file (fdopen sink "w"))))
           (pipe:spawn `(,@GPG --verify)))
-         (error "verification succeded but should not")))
+         (error "verification succeeded but should not")))
  '(msg_olsols_asc_multiple msg_clsclss_asc_multiple))
 
 (for-each-p
@@ -270,5 +334,17 @@ FWIAQUplk7JWbyRKAJ92ZJyJpWfzb0yc1s7MY65r2qEHrg==
          (pipe:do
           (pipe:echo (eval armored-file (current-environment)))
           (pipe:spawn `(,@GPG --verify)))
-         (error "verification succeded but should not")))
+         (error "verification succeeded but should not")))
  '(bad_ls_asc bad_fols_asc bad_olsf_asc bad_ools_asc))
+
+
+;;; Need to import the ed25519 sample key used for
+;;; the next two tests.
+(call-check `(,@GPG --quiet --yes --import ,(in-srcdir key-file2)))
+(for-each-p
+ "Checking that a valid Ed25519 signature is verified as such"
+ (lambda (armored-file)
+   (pipe:do
+    (pipe:echo (eval armored-file (current-environment)))
+    (pipe:spawn `(,@GPG --verify))))
+ '(msg_ed25519_rshort msg_ed25519_sshort))
diff --git a/tests/openpgp/verify.test b/tests/openpgp/verify.test
deleted file mode 100755 (executable)
index eef61c7..0000000
+++ /dev/null
@@ -1,260 +0,0 @@
-#!/bin/sh
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-suspend_error
-
-#
-# Two simple tests to check that verify fails for bad input data
-#
-info "checking bogus signature 1"
-../../tools/mk-tdata --char 0x2d 64 >x
-$GPG --verify x data-500 && error "no error code from verify"
-info "checking bogus signature 2"
-../../tools/mk-tdata --char 0xca 64 >x
-$GPG --verify x data-500 && error "no error code from verify"
-
-linefeed
-
-# A variable to collect the test names
-tests=""
-
-# A plain signed message created using
-#  echo abc | gpg --homedir . --passphrase-fd 0 -u Alpha -z0 -sa msg
-tests="$tests msg_ols_asc"
-msg_ols_asc='-----BEGIN PGP MESSAGE-----
-
-kA0DAAIRLXJ8x2hpdzQBrQEHYgNtc2dEDFJaSSB0aGluayB0aGF0IGFsbCByaWdo
-dC10aGlua2luZyBwZW9wbGUgaW4gdGhpcyBjb3VudHJ5IGFyZSBzaWNrIGFuZAp0
-aXJlZCBvZiBiZWluZyB0b2xkIHRoYXQgb3JkaW5hcnkgZGVjZW50IHBlb3BsZSBh
-cmUgZmVkIHVwIGluIHRoaXMKY291bnRyeSB3aXRoIGJlaW5nIHNpY2sgYW5kIHRp
-cmVkLiAgSSdtIGNlcnRhaW5seSBub3QuICBCdXQgSSdtCnNpY2sgYW5kIHRpcmVk
-IG9mIGJlaW5nIHRvbGQgdGhhdCBJIGFtLgotIE1vbnR5IFB5dGhvbgqIPwMFAEQM
-UlotcnzHaGl3NBECR4IAoJlEGTY+bHjD2HYuCixLQCmk01pbAKCIjkzLOAmkZNm0
-D8luT78c/1x45Q==
-=a29i
------END PGP MESSAGE-----'
-
-# A plain signed message created using
-#  echo abc | gpg --homedir . --passphrase-fd 0 -u Alpha -sa msg
-tests="$tests msg_cols_asc"
-msg_cols_asc='-----BEGIN PGP MESSAGE-----
-
-owGbwMvMwCSoW1RzPCOz3IRxLSN7EnNucboLT6Cgp0JJRmZeNpBMLFFIzMlRKMpM
-zyjRBQtm5qUrFKTmF+SkKmTmgdQVKyTnl+aVFFUqJBalKhRnJmcrJOalcJVkFqWm
-KOSnKSSlgrSU5OekQMzLL0rJzEsEKk9JTU7NK4EZBtKcBtRRWgAzlwtmbnlmSQbU
-GJjxCmDj9RQUPNVzFZJTi0oSM/NyKhXy8kuAYk6lJSBxLlTF2NziqZCYq8elq+Cb
-n1dSqRBQWZKRn8fVYc/MygAKBljYCDIFiTDMT+9seu836Q+bevyHTJ0dzPNuvCjn
-ZpgrwX38z58rJsfYDhwOSS4SkN/d6vUAAA==
-=s6sY
------END PGP MESSAGE-----'
-
-# A PGP 2 style message.
-tests="$tests msg_sl_asc"
-msg_sl_asc='-----BEGIN PGP MESSAGE-----
-
-iD8DBQBEDFJaLXJ8x2hpdzQRAkeCAKCZRBk2Pmx4w9h2LgosS0AppNNaWwCgiI5M
-yzgJpGTZtA/Jbk+/HP9ceOWtAQdiA21zZ0QMUlpJIHRoaW5rIHRoYXQgYWxsIHJp
-Z2h0LXRoaW5raW5nIHBlb3BsZSBpbiB0aGlzIGNvdW50cnkgYXJlIHNpY2sgYW5k
-CnRpcmVkIG9mIGJlaW5nIHRvbGQgdGhhdCBvcmRpbmFyeSBkZWNlbnQgcGVvcGxl
-IGFyZSBmZWQgdXAgaW4gdGhpcwpjb3VudHJ5IHdpdGggYmVpbmcgc2ljayBhbmQg
-dGlyZWQuICBJJ20gY2VydGFpbmx5IG5vdC4gIEJ1dCBJJ20Kc2ljayBhbmQgdGly
-ZWQgb2YgYmVpbmcgdG9sZCB0aGF0IEkgYW0uCi0gTW9udHkgUHl0aG9uCg==
-=0ukK
------END PGP MESSAGE-----'
-
-# An OpenPGP message lacking the onepass packet.  We used to accept
-# such messages but now consider them invalid.
-tests="$tests bad_ls_asc"
-bad_ls_asc='-----BEGIN PGP MESSAGE-----
-
-rQEHYgNtc2dEDFJaSSB0aGluayB0aGF0IGFsbCByaWdodC10aGlua2luZyBwZW9w
-bGUgaW4gdGhpcyBjb3VudHJ5IGFyZSBzaWNrIGFuZAp0aXJlZCBvZiBiZWluZyB0
-b2xkIHRoYXQgb3JkaW5hcnkgZGVjZW50IHBlb3BsZSBhcmUgZmVkIHVwIGluIHRo
-aXMKY291bnRyeSB3aXRoIGJlaW5nIHNpY2sgYW5kIHRpcmVkLiAgSSdtIGNlcnRh
-aW5seSBub3QuICBCdXQgSSdtCnNpY2sgYW5kIHRpcmVkIG9mIGJlaW5nIHRvbGQg
-dGhhdCBJIGFtLgotIE1vbnR5IFB5dGhvbgqIPwMFAEQMUlotcnzHaGl3NBECR4IA
-oJlEGTY+bHjD2HYuCixLQCmk01pbAKCIjkzLOAmkZNm0D8luT78c/1x45Q==
-=Mpiu
------END PGP MESSAGE-----'
-
-
-# A signed message prefixed with an unsigned literal packet.
-# (fols = faked-literal-data, one-pass, literal-data, signature)
-# This should throw an error because running gpg to extract the
-# signed data will return both literal data packets
-tests="$tests bad_fols_asc"
-bad_fols_asc='-----BEGIN PGP MESSAGE-----
-
-rF1iDG1zZy51bnNpZ25lZEQMY0x0aW1lc2hhcmluZywgbjoKCUFuIGFjY2VzcyBt
-ZXRob2Qgd2hlcmVieSBvbmUgY29tcHV0ZXIgYWJ1c2VzIG1hbnkgcGVvcGxlLgqQ
-DQMAAhEtcnzHaGl3NAGtAQdiA21zZ0QMUlpJIHRoaW5rIHRoYXQgYWxsIHJpZ2h0
-LXRoaW5raW5nIHBlb3BsZSBpbiB0aGlzIGNvdW50cnkgYXJlIHNpY2sgYW5kCnRp
-cmVkIG9mIGJlaW5nIHRvbGQgdGhhdCBvcmRpbmFyeSBkZWNlbnQgcGVvcGxlIGFy
-ZSBmZWQgdXAgaW4gdGhpcwpjb3VudHJ5IHdpdGggYmVpbmcgc2ljayBhbmQgdGly
-ZWQuICBJJ20gY2VydGFpbmx5IG5vdC4gIEJ1dCBJJ20Kc2ljayBhbmQgdGlyZWQg
-b2YgYmVpbmcgdG9sZCB0aGF0IEkgYW0uCi0gTW9udHkgUHl0aG9uCog/AwUARAxS
-Wi1yfMdoaXc0EQJHggCgmUQZNj5seMPYdi4KLEtAKaTTWlsAoIiOTMs4CaRk2bQP
-yW5Pvxz/XHjl
-=UNM4
------END PGP MESSAGE-----'
-
-# A signed message suffixed with an unsigned literal packet.
-# (fols = faked-literal-data, one-pass, literal-data, signature)
-# This should throw an error because running gpg to extract the
-# signed data will return both literal data packets
-tests="$tests bad_olsf_asc"
-bad_olsf_asc='-----BEGIN PGP MESSAGE-----
-
-kA0DAAIRLXJ8x2hpdzQBrQEHYgNtc2dEDFJaSSB0aGluayB0aGF0IGFsbCByaWdo
-dC10aGlua2luZyBwZW9wbGUgaW4gdGhpcyBjb3VudHJ5IGFyZSBzaWNrIGFuZAp0
-aXJlZCBvZiBiZWluZyB0b2xkIHRoYXQgb3JkaW5hcnkgZGVjZW50IHBlb3BsZSBh
-cmUgZmVkIHVwIGluIHRoaXMKY291bnRyeSB3aXRoIGJlaW5nIHNpY2sgYW5kIHRp
-cmVkLiAgSSdtIGNlcnRhaW5seSBub3QuICBCdXQgSSdtCnNpY2sgYW5kIHRpcmVk
-IG9mIGJlaW5nIHRvbGQgdGhhdCBJIGFtLgotIE1vbnR5IFB5dGhvbgqIPwMFAEQM
-UlotcnzHaGl3NBECR4IAoJlEGTY+bHjD2HYuCixLQCmk01pbAKCIjkzLOAmkZNm0
-D8luT78c/1x45axdYgxtc2cudW5zaWduZWREDGNMdGltZXNoYXJpbmcsIG46CglB
-biBhY2Nlc3MgbWV0aG9kIHdoZXJlYnkgb25lIGNvbXB1dGVyIGFidXNlcyBtYW55
-IHBlb3BsZS4K
-=3gnG
------END PGP MESSAGE-----'
-
-
-# Two standard signed messages in a row
-tests="$tests msg_olsols_asc_multiple"
-msg_olsols_asc_multiple='-----BEGIN PGP MESSAGE-----
-
-kA0DAAIRLXJ8x2hpdzQBrQEHYgNtc2dEDFJaSSB0aGluayB0aGF0IGFsbCByaWdo
-dC10aGlua2luZyBwZW9wbGUgaW4gdGhpcyBjb3VudHJ5IGFyZSBzaWNrIGFuZAp0
-aXJlZCBvZiBiZWluZyB0b2xkIHRoYXQgb3JkaW5hcnkgZGVjZW50IHBlb3BsZSBh
-cmUgZmVkIHVwIGluIHRoaXMKY291bnRyeSB3aXRoIGJlaW5nIHNpY2sgYW5kIHRp
-cmVkLiAgSSdtIGNlcnRhaW5seSBub3QuICBCdXQgSSdtCnNpY2sgYW5kIHRpcmVk
-IG9mIGJlaW5nIHRvbGQgdGhhdCBJIGFtLgotIE1vbnR5IFB5dGhvbgqIPwMFAEQM
-UlotcnzHaGl3NBECR4IAoJlEGTY+bHjD2HYuCixLQCmk01pbAKCIjkzLOAmkZNm0
-D8luT78c/1x45ZANAwACES1yfMdoaXc0Aa0BB2IDbXNnRAxSWkkgdGhpbmsgdGhh
-dCBhbGwgcmlnaHQtdGhpbmtpbmcgcGVvcGxlIGluIHRoaXMgY291bnRyeSBhcmUg
-c2ljayBhbmQKdGlyZWQgb2YgYmVpbmcgdG9sZCB0aGF0IG9yZGluYXJ5IGRlY2Vu
-dCBwZW9wbGUgYXJlIGZlZCB1cCBpbiB0aGlzCmNvdW50cnkgd2l0aCBiZWluZyBz
-aWNrIGFuZCB0aXJlZC4gIEknbSBjZXJ0YWlubHkgbm90LiAgQnV0IEknbQpzaWNr
-IGFuZCB0aXJlZCBvZiBiZWluZyB0b2xkIHRoYXQgSSBhbS4KLSBNb250eSBQeXRo
-b24KiD8DBQBEDFJaLXJ8x2hpdzQRAkeCAKCZRBk2Pmx4w9h2LgosS0AppNNaWwCg
-iI5MyzgJpGTZtA/Jbk+/HP9ceOU=
-=8nLN
------END PGP MESSAGE-----'
-
-# A standard message with two signatures (actually the same signature
-# duplicated).
-tests="$tests msg_oolss_asc"
-msg_oolss_asc='-----BEGIN PGP MESSAGE-----
-
-kA0DAAIRLXJ8x2hpdzQBkA0DAAIRLXJ8x2hpdzQBrQEHYgNtc2dEDFJaSSB0aGlu
-ayB0aGF0IGFsbCByaWdodC10aGlua2luZyBwZW9wbGUgaW4gdGhpcyBjb3VudHJ5
-IGFyZSBzaWNrIGFuZAp0aXJlZCBvZiBiZWluZyB0b2xkIHRoYXQgb3JkaW5hcnkg
-ZGVjZW50IHBlb3BsZSBhcmUgZmVkIHVwIGluIHRoaXMKY291bnRyeSB3aXRoIGJl
-aW5nIHNpY2sgYW5kIHRpcmVkLiAgSSdtIGNlcnRhaW5seSBub3QuICBCdXQgSSdt
-CnNpY2sgYW5kIHRpcmVkIG9mIGJlaW5nIHRvbGQgdGhhdCBJIGFtLgotIE1vbnR5
-IFB5dGhvbgqIPwMFAEQMUlotcnzHaGl3NBECR4IAoJlEGTY+bHjD2HYuCixLQCmk
-01pbAKCIjkzLOAmkZNm0D8luT78c/1x45Yg/AwUARAxSWi1yfMdoaXc0EQJHggCg
-mUQZNj5seMPYdi4KLEtAKaTTWlsAoIiOTMs4CaRk2bQPyW5Pvxz/XHjl
-=KVw5
------END PGP MESSAGE-----'
-
-# A standard message with two one-pass packet but only one signature
-# packet
-tests="$tests bad_ools_asc"
-bad_ools_asc='-----BEGIN PGP MESSAGE-----
-
-kA0DAAIRLXJ8x2hpdzQBkA0DAAIRLXJ8x2hpdzQBrQEHYgNtc2dEDFJaSSB0aGlu
-ayB0aGF0IGFsbCByaWdodC10aGlua2luZyBwZW9wbGUgaW4gdGhpcyBjb3VudHJ5
-IGFyZSBzaWNrIGFuZAp0aXJlZCBvZiBiZWluZyB0b2xkIHRoYXQgb3JkaW5hcnkg
-ZGVjZW50IHBlb3BsZSBhcmUgZmVkIHVwIGluIHRoaXMKY291bnRyeSB3aXRoIGJl
-aW5nIHNpY2sgYW5kIHRpcmVkLiAgSSdtIGNlcnRhaW5seSBub3QuICBCdXQgSSdt
-CnNpY2sgYW5kIHRpcmVkIG9mIGJlaW5nIHRvbGQgdGhhdCBJIGFtLgotIE1vbnR5
-IFB5dGhvbgqIPwMFAEQMUlotcnzHaGl3NBECR4IAoJlEGTY+bHjD2HYuCixLQCmk
-01pbAKCIjkzLOAmkZNm0D8luT78c/1x45Q==
-=1/ix
------END PGP MESSAGE-----'
-
-# Standard cleartext signature
-tests="$tests msg_cls_asc"
-msg_cls_asc=`cat <<EOF
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
-I think that all right-thinking people in this country are sick and
-tired of being told that ordinary decent people are fed up in this
-country with being sick and tired.  I'm certainly not.  But I'm
-sick and tired of being told that I am.
-- - Monty Python
------BEGIN PGP SIGNATURE-----
-
-iD8DBQFEDVp1LXJ8x2hpdzQRAplUAKCMfpG3GPw/TLN52tosgXP5lNECkwCfQhAa
-emmev7IuQjWYrGF9Lxj+zj8=
-=qJsY
------END PGP SIGNATURE-----
-EOF
-`
-
-# Cleartext signature with two signatures
-tests="$tests msg_clss_asc"
-msg_clss_asc=`cat <<EOF
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
-What is the difference between a Turing machine and the modern computer?
-It's the same as that between Hillary's ascent of Everest and the
-establishment of a Hilton on its peak.
------BEGIN PGP SIGNATURE-----
-
-iD8DBQFEDVz6LXJ8x2hpdzQRAtkGAKCeMhNbHnh339fpjNj9owsYcC4zBwCfYO5l
-2u+KEfXX0FKyk8SMzLjZ536IPwMFAUQNXPr+GAsdqeOwshEC2QYAoPOWAiQm0EF/
-FWIAQUplk7JWbyRKAJ92ZJyJpWfzb0yc1s7MY65r2qEHrg==
-=1Xvv
------END PGP SIGNATURE-----
-EOF
-`
-
-# Two clear text signatures in a row
-tests="$tests msg_clsclss_asc_multiple"
-msg_clsclss_asc_multiple="${msg_cls_asc}
-${msg_clss_asc}"
-
-
-# Fixme:  We need more tests with manipulated cleartext signatures.
-
-
-#
-# Now run the tests.
-#
-for i in $tests ; do
-   info "checking: $i"
-   eval "(IFS=; echo \"\$$i\")" >x
-   case "$i" in
-    msg_*_asc)
-       $GPG --verify x || error "verify of $i failed"
-       ;;
-    msg_*_asc_multiple)
-       $GPG --verify --allow-multiple-messages x \
-           || error "verify of $i failed"
-       $GPG --verify x && error "verify of $i succeeded but should not"
-       ;;
-    bad_*_asc)
-       $GPG --verify x && error "verify of $i succeeded but should not"
-       ;;
-    *)
-       error "No handler for test case $i"
-       ;;
-   esac
-   linefeed
-done
-
-
-resume_error
index 57efb93..2b211d8 100755 (executable)
@@ -18,6 +18,7 @@
 ;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 (load (with-path "defs.scm"))
+(setup-environment)
 
 (info "Printing the GPG version")
 (assert (string-contains? (call-check `(,@GPG --version))
diff --git a/tests/openpgp/version.test b/tests/openpgp/version.test
deleted file mode 100755 (executable)
index 9d265ad..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/bin/sh
-# Copyright 1998,1999,2000,2001,2002,2003,2004,2005,2006,
-#           2007 Free Software Foundation, Inc.
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.  This file is
-# distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY, to the extent permitted by law; without even the implied
-# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-. $srcdir/defs.inc || exit 3
-
-# This is the first test run by "make check".  First kill a possible
-# gpg-agent process from a previous test run.
-if $GPG_AGENT --quiet; then
-    echo "$pgmname: killing leftover gpg-agent process" >&2
-    $GPG_CONNECT_AGENT killagent /bye >/dev/null
-    sleep 2
-fi
-
-
-info "Deleting old files"
-if [ -f Makefile -a -f $srcdir/decrypt-dsa.test ]; then
-  :
-else
-  fatal "not running in the test directory"
-  exit 1
-fi
-if [ -d private-keys-v1.d ]; then
-    rm private-keys-v1.d/* 2>/dev/null || true
-    rmdir private-keys-v1.d
-fi
-for i in pubring.gpg pubring.gpg~ trustdb.gpg trustdb.gpg~ ; do
-  [ -f "$i" ] && rm "$i"
-done
-
-# Now start the agent right away, so that there is only one place
-# where starting the agent may fail.  To speed up key generation we
-# create a faked random seed file.  Note that we need to set the
-# agent-program so that gpg-connect-agent is able to start the agent
-# we are currently testing and not an already installed one.
-# The "|--debug-quick-random" is a hack to start gpg-agent with
-# that option on the command line.
-info "Starting the agent"
-$MKTDATA 600 >random_seed
-if $GPG_CONNECT_AGENT -v \
-    --agent-program="${GPG_AGENT}|--debug-quick-random" /bye; then
-    :
-else
-    error "starting the gpg-agent failed"
-    exit 1
-fi
-
-
-info "Creating sample data files"
-for i in 500 9000 32000 80000; do
-    $MKTDATA  $i >data-$i
-done
-
-info "Unpacking samples"
-$GPG --dearmor < $srcdir/plain-1o.asc > ./plain-1
-$GPG --dearmor < $srcdir/plain-2o.asc > ./plain-2
-$GPG --dearmor < $srcdir/plain-3o.asc > ./plain-3
-$GPG --dearmor < $srcdir/plain-largeo.asc > ./plain-large
-
-info "Storing private keys"
-for i in 50B2D4FA4122C212611048BC5FC31BD44393626E \
-         7E201E28B6FEB2927B321F443205F4724EBE637E \
-         13FDB8809B17C5547779F9D205C45F47CE0217CE \
-         343D8AF79796EE107D645A2787A9D9252F924E6F \
-         8B5ABF3EF9EB8D96B91A0B8C2C4401C91C834C34 \
-         0D6F6AD4C4C803B25470F9104E9F4E6A4CA64255 \
-         FD692BD59D6640A84C8422573D469F84F3B98E53 \
-         76F7E2B35832976B50A27A282D9B87E44577EB66 \
-         A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD \
-         00FE67F28A52A8AA08FFAED20AF832DA916D1985 \
-         1DF48228FEFF3EC2481B106E0ACA8C465C662CC5 \
-         A2832820DC9F40751BDCD375BB0945BA33EC6B4C \
-         ADE710D74409777B7729A7653373D820F67892E0 \
-         CEFC51AF91F68A2904FBFF62C4F075A4785B803F; do
-   $GPG --dearmor < $srcdir/privkeys/$i.asc > private-keys-v1.d/$i.key
-done
-
-info "Importing public demo and test keys"
-$GPG --yes --import $srcdir/pubdemo.asc $srcdir/pubring.asc
-$GPG --dearmor < $srcdir/pubring.pkr.asc | $GPG --yes --import
-
-
-info "Preset passphrases"
-# one@example.com
-$GPG_PRESET_PASSPHRASE --preset -P def 50B2D4FA4122C212611048BC5FC31BD44393626E
-$GPG_PRESET_PASSPHRASE --preset -P def 7E201E28B6FEB2927B321F443205F4724EBE637E
-# alpha@example.net
-$GPG_PRESET_PASSPHRASE --preset -P abc 76F7E2B35832976B50A27A282D9B87E44577EB66
-$GPG_PRESET_PASSPHRASE --preset -P abc A0747D5F9425E6664F4FFBEED20FBCA79FDED2BD
-
-
-# Note: secring.asc and secring.skr.asc are the original secrings for
-# our test files.  We don't support this as storage format anymore but
-# keep the files here for reference.  The actual keys have been
-# extracted and put in gpg-agent's format unter privkeys/.  Because
-# the current gpg's import feature does not support storing of
-# unprotected keys in the new gpg-agent format, we had to resort to
-# some trickery to convert them.
-
-
-info "Printing the GPG version"
-$GPG --version | awk '{print "    > " $0}'
-
-#fixme: check that the output is as expected
index 8098ad2..9de1f8c 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 ## Process this file with automake to produce Makefile.in
 
index 3fe238c..17f03ea 100644 (file)
@@ -5,7 +5,7 @@ These are tests based on NIST's Public Key Interoperability Test Suite
 http://csrc.nist.gov/pki/testing/x509paths.html .
 
 README             - this file.
-PKITS_data.tar.bz2 - the orginal ZIP file, repackaged as a tarball.
+PKITS_data.tar.bz2 - the original ZIP file, repackaged as a tarball.
 Makefile.am        - Part of our build system.
 import-all-certs   - Run a simple import test on all certifcates
 validate-all-certs - Run an import and validate test on all certificates
index 12e5815..94b53f2 100644 (file)
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
 
 EXTRA_DIST = \
        Manifest watchgnupg.c no-libgcrypt.c \
@@ -47,23 +47,23 @@ endif
 
 if BUILD_WKS_TOOLS
   gpg_wks_server = gpg-wks-server
-  gpg_wks_client = gpg-wks-client
 else
   gpg_wks_server =
-  gpg_wks_client =
 endif
 
+libexec_PROGRAMS = gpg-wks-client
+
 bin_PROGRAMS = gpgconf gpg-connect-agent ${symcryptrun}
 if !HAVE_W32_SYSTEM
-bin_PROGRAMS += watchgnupg gpgparsemail ${gpg_wks_server} ${gpg_wks_client}
+bin_PROGRAMS += watchgnupg gpgparsemail ${gpg_wks_server}
 endif
 
 if !DISABLE_REGEX
-libexec_PROGRAMS = gpg-check-pattern
+libexec_PROGRAMS += gpg-check-pattern
 endif
 
 if !HAVE_W32CE_SYSTEM
-noinst_PROGRAMS = clean-sat mk-tdata make-dns-cert gpgsplit
+noinst_PROGRAMS = clean-sat make-dns-cert gpgsplit
 endif
 
 if !HAVE_W32CE_SYSTEM
@@ -119,19 +119,19 @@ watchgnupg_SOURCES = watchgnupg.c
 watchgnupg_LDADD = $(NETLIBS)
 
 gpg_connect_agent_SOURCES = gpg-connect-agent.c
-# FIXME: remove NPTH_LIBS (why do we need them at all?)
 gpg_connect_agent_LDADD = ../common/libgpgrl.a $(common_libs) \
                          $(LIBASSUAN_LIBS) $(LIBGCRYPT_LIBS) \
-                          $(NPTH_LIBS) $(GPG_ERROR_LIBS) \
+                          $(GPG_ERROR_LIBS) \
                           $(LIBREADLINE) $(LIBINTL) $(NETLIBS) $(LIBICONV) \
                           $(resource_objs)
 
 
 if !DISABLE_REGEX
 gpg_check_pattern_SOURCES = gpg-check-pattern.c
-gpg_check_pattern_CFLAGS = $(LIBGCRYPT_CFLAGS) $(GPG_ERROR_CFLAGS)
+gpg_check_pattern_CFLAGS = $(LIBGCRYPT_CFLAGS) $(GPG_ERROR_CFLAGS) $(INCICONV)
 gpg_check_pattern_LDADD = $(common_libs) $(LIBGCRYPT_LIBS) $(GPG_ERROR_LIBS) \
-                          $(LIBINTL) $(NETLIBS) $(LIBICONV) $(W32SOCKLIBS)
+                         $(LIBINTL) $(NETLIBS) $(LIBICONV) $(W32SOCKLIBS) \
+                         $(LIBICONV)
 endif
 
 gpgtar_SOURCES = \
@@ -153,8 +153,9 @@ gpg_wks_server_SOURCES = \
        mime-maker.c  mime-maker.h  \
        send-mail.c   send-mail.h
 
-gpg_wks_server_CFLAGS = $(GPG_ERROR_CFLAGS)
-gpg_wks_server_LDADD = $(libcommon) $(LIBGCRYPT_LIBS) $(GPG_ERROR_LIBS)
+gpg_wks_server_CFLAGS = $(GPG_ERROR_CFLAGS) $(INCICONV)
+gpg_wks_server_LDADD = $(libcommon) $(LIBGCRYPT_LIBS) $(GPG_ERROR_LIBS) \
+                      $(LIBICONV)
 
 gpg_wks_client_SOURCES = \
        gpg-wks-client.c \
@@ -167,9 +168,10 @@ gpg_wks_client_SOURCES = \
        send-mail.c   send-mail.h   \
        call-dirmngr.c call-dirmngr.h
 
-gpg_wks_client_CFLAGS = $(LIBASSUAN_CFLAGS) $(GPG_ERROR_CFLAGS)
+gpg_wks_client_CFLAGS = $(LIBASSUAN_CFLAGS) $(GPG_ERROR_CFLAGS) $(INCICONV)
 gpg_wks_client_LDADD = $(libcommon) \
-                      $(LIBASSUAN_LIBS) $(LIBGCRYPT_LIBS) $(GPG_ERROR_LIBS)
+                      $(LIBASSUAN_LIBS) $(LIBGCRYPT_LIBS) $(GPG_ERROR_LIBS) \
+                      $(LIBICONV)
 
 
 # Make sure that all libs are build before we use them.  This is
index 2f29854..54365ce 100755 (executable)
@@ -63,7 +63,7 @@ ${cat_passwd} \
   | while IFS=: read -r user dmy_a uid dmy_c dmy_d home shell dmy_rest; do
     # Process only entries with a valid login shell
     grep </etc/shells "^$shell" 2>/dev/null >/dev/null || continue
-    # and with an existant gnupg home directory
+    # and with an pre-existing gnupg home directory
     [ -d "$home/.gnupg" ] || continue
     # but not root
     [ "${uid:-0}" -eq 0 ] && continue
index 0e591dd..c5ee244 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -203,3 +203,58 @@ wkd_get_submission_address (const char *addrspec, char **r_addrspec)
   assuan_release (ctx);
   return err;
 }
+
+
+/* Ask the dirmngr for the policy flags and return them as an estream
+ * memory stream.  If no policy flags are set, NULL is stored at
+ * R_BUFFER.  */
+gpg_error_t
+wkd_get_policy_flags (const char *addrspec, estream_t *r_buffer)
+{
+  gpg_error_t err;
+  assuan_context_t ctx;
+  struct wkd_get_parm_s parm;
+  char *line = NULL;
+  char *buffer = NULL;
+
+  memset (&parm, 0, sizeof parm);
+  *r_buffer = NULL;
+
+  err = connect_dirmngr (&ctx);
+  if (err)
+    return err;
+
+  line = es_bsprintf ("WKD_GET --policy-flags -- %s", addrspec);
+  if (!line)
+    {
+      err = gpg_error_from_syserror ();
+      goto leave;
+    }
+  if (strlen (line) + 2 >= ASSUAN_LINELENGTH)
+    {
+      err = gpg_error (GPG_ERR_TOO_LARGE);
+      goto leave;
+    }
+
+  parm.memfp = es_fopenmem (0, "rwb");
+  if (!parm.memfp)
+    {
+      err = gpg_error_from_syserror ();
+      goto leave;
+    }
+  err = assuan_transact (ctx, line, wkd_get_data_cb, &parm,
+                         NULL, NULL, wkd_get_status_cb, &parm);
+  if (err)
+    goto leave;
+
+  es_rewind (parm.memfp);
+  *r_buffer = parm.memfp;
+  parm.memfp = 0;
+
+ leave:
+  es_free (buffer);
+  es_fclose (parm.memfp);
+  xfree (line);
+  assuan_release (ctx);
+  return err;
+}
index f1bc368..83ebd2c 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 #ifndef GNUPG_TOOLS_CALL_DIRMNGR_H
 #define GNUPG_TOOLS_CALL_DIRMNGR_H
@@ -23,6 +23,7 @@ void set_dirmngr_options (int verbose, int debug_ipc, int autostart);
 
 gpg_error_t wkd_get_submission_address (const char *addrspec,
                                         char **r_addrspec);
+gpg_error_t wkd_get_policy_flags (const char *addrspec, estream_t *r_buffer);
 
 
 #endif /*GNUPG_TOOLS_CALL_DIRMNGR_H*/
index 4e39b5c..d61bb3c 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 
@@ -45,6 +45,9 @@
 # define PACKAGE_BUGREPORT "devnull@example.org"
 #endif
 #define PGM "ccidmon"
+#ifndef GNUPG_NAME
+# define GNUPG_NAME "GnuPG"
+#endif
 
 /* Option flags. */
 static int verbose;
@@ -94,10 +97,10 @@ enum {
 };
 
 
-#define digitp(p)   ((p) >= '0' && (p) <= '9')
+#define digitp(p)   (*(p) >= '0' && *(p) <= '9')
 #define hexdigitp(a) (digitp (a)                     \
-                      || ((a) >= 'A' && (a) <= 'F')  \
-                      || ((a) >= 'a' && (a) <= 'f'))
+                      || (*(a) >= 'A' && *(a) <= 'F')  \
+                      || (*(a) >= 'a' && *(a) <= 'f'))
 #define ascii_isspace(a) ((a)==' ' || (a)=='\n' || (a)=='\r' || (a)=='\t')
 #define xtoi_1(p)   ((p) <= '9'? ((p)- '0'): \
                      (p) <= 'F'? ((p)-'A'+10):((p)-'a'+10))
@@ -172,7 +175,7 @@ print_pr_data (const unsigned char *data, size_t datalen, size_t off)
         {
           if (needlf)
             putchar ('\n');
-          printf ("  [%04d] ", off);
+          printf ("  [%04lu] ", (unsigned long)off);
         }
       printf (" %02X", data[off]);
       needlf = 1;
@@ -608,14 +611,14 @@ collect_data (char *hexdata, const char *address, unsigned int lineno)
     {
       if (ascii_isspace (*s))
         continue;
-      if (!hexdigitp (*s))
+      if (!hexdigitp (s))
         {
           err ("invalid hex digit in line %u - line skipped", lineno);
           break;
         }
       value = xtoi_1 (*s) * 16;
       s++;
-      if (!hexdigitp (*s))
+      if (!hexdigitp (s))
         {
           err ("invalid hex digit in line %u - line skipped", lineno);
           break;
@@ -712,8 +715,8 @@ parse_line_sniffusb (char *line, unsigned int lineno)
   if (!p)
     return;
 
-  if (hexdigitp (p[0]) && hexdigitp (p[1])
-      && hexdigitp (p[2]) && hexdigitp (p[3])
+  if (hexdigitp (p+0) && hexdigitp (p+1)
+      && hexdigitp (p+2) && hexdigitp (p+3)
       && p[4] == ':' && !p[5])
     {
       size_t length;
@@ -722,7 +725,7 @@ parse_line_sniffusb (char *line, unsigned int lineno)
       length = databuffer.count;
       while ((p=strtok (NULL, " \t")))
         {
-          if (!hexdigitp (p[0]) || !hexdigitp (p[1]))
+          if (!hexdigitp (p+0) || !hexdigitp (p+1))
             {
               err ("invalid hex digit in line %u (%s)", lineno,p);
               break;
@@ -810,7 +813,7 @@ main (int argc, char **argv)
         }
       else if (!strcmp (*argv, "--version"))
         {
-          fputs (PGM " ("GNUPG_NAME") " PACKAGE_VERSION "\n", stdout);
+          fputs (PGM " (" GNUPG_NAME ") " PACKAGE_VERSION "\n", stdout);
           exit (0);
         }
       else if (!strcmp (*argv, "--help"))
index fba2365..a3224ab 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 106a8eb..a5413cf 100644 (file)
@@ -15,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -413,7 +413,7 @@ get_var (const char *name)
 }
 
 
-/* Perform some simple arithmentic operations.  Caller must release
+/* Perform some simple arithmetic operations.  Caller must release
    the return value.  On error the return value is NULL.  */
 static char *
 arithmetic_op (int operator, const char *operands)
index 2c9cc4f..9bf5403 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -49,12 +49,14 @@ enum cmd_and_opt_values
 
     oDebug      = 500,
 
+    aSupported,
     aCreate,
     aReceive,
     aRead,
 
     oGpgProgram,
     oSend,
+    oFakeSubmissionAddr,
 
     oDummy
   };
@@ -64,6 +66,8 @@ enum cmd_and_opt_values
 static ARGPARSE_OPTS opts[] = {
   ARGPARSE_group (300, ("@Commands:\n ")),
 
+  ARGPARSE_c (aSupported, "supported",
+              ("check whether provider supports WKS")),
   ARGPARSE_c (aCreate,   "create",
               ("create a publication request")),
   ARGPARSE_c (aReceive,   "receive",
@@ -80,6 +84,7 @@ static ARGPARSE_OPTS opts[] = {
   ARGPARSE_s_n (oSend, "send", "send the mail using sendmail"),
   ARGPARSE_s_s (oOutput, "output", "|FILE|write the mail to FILE"),
 
+  ARGPARSE_s_s (oFakeSubmissionAddr, "fake-submission-addr", "@"),
 
   ARGPARSE_end ()
 };
@@ -88,6 +93,8 @@ static ARGPARSE_OPTS opts[] = {
 /* The list of supported debug flags.  */
 static struct debug_flags_s debug_flags [] =
   {
+    { DBG_MIME_VALUE   , "mime"    },
+    { DBG_PARSER_VALUE , "parser"  },
     { DBG_CRYPTO_VALUE , "crypto"  },
     { DBG_MEMORY_VALUE , "memory"  },
     { DBG_MEMSTAT_VALUE, "memstat" },
@@ -97,11 +104,21 @@ static struct debug_flags_s debug_flags [] =
   };
 
 
+
+/* Value of the option --fake-submission-addr.  */
+const char *fake_submission_addr;
+
+
 static void wrong_args (const char *text) GPGRT_ATTR_NORETURN;
+static gpg_error_t command_supported (char *userid);
 static gpg_error_t command_send (const char *fingerprint, char *userid);
-static gpg_error_t process_confirmation_request (estream_t msg);
+static gpg_error_t encrypt_response (estream_t *r_output, estream_t input,
+                                     const char *addrspec,
+                                     const char *fingerprint);
+static gpg_error_t read_confirmation_request (estream_t msg);
 static gpg_error_t command_receive_cb (void *opaque,
-                                       const char *mediatype, estream_t fp);
+                                       const char *mediatype, estream_t fp,
+                                       unsigned int flags);
 
 
 \f
@@ -173,7 +190,11 @@ parse_arguments (ARGPARSE_ARGS *pargs, ARGPARSE_OPTS *popts)
         case oOutput:
           opt.output = pargs->r.ret_str;
           break;
+        case oFakeSubmissionAddr:
+          fake_submission_addr = pargs->r.ret_str;
+          break;
 
+       case aSupported:
        case aCreate:
        case aReceive:
        case aRead:
@@ -206,7 +227,7 @@ main (int argc, char **argv)
   init_common_subsystems (&argc, &argv);
 
   assuan_set_gpg_err_source (GPG_ERR_SOURCE_DEFAULT);
-  setup_libassuan_logging (&opt.debug);
+  setup_libassuan_logging (&opt.debug, NULL);
 
   /* Parse the command line. */
   pargs.argc  = &argc;
@@ -237,6 +258,14 @@ main (int argc, char **argv)
   /* Run the selected command.  */
   switch (cmd)
     {
+    case aSupported:
+      if (argc != 1)
+        wrong_args ("--supported USER-ID");
+      err = command_supported (argv[0]);
+      if (err && gpg_err_code (err) != GPG_ERR_FALSE)
+        log_error ("checking support failed: %s\n", gpg_strerror (err));
+      break;
+
     case aCreate:
       if (argc != 2)
         wrong_args ("--create FINGERPRINT USER-ID");
@@ -256,7 +285,7 @@ main (int argc, char **argv)
     case aRead:
       if (argc)
         wrong_args ("--read < WKS-DATA");
-      err = process_confirmation_request (es_stdin);
+      err = read_confirmation_request (es_stdin);
       if (err)
         log_error ("processing mail failed: %s\n", gpg_strerror (err));
       break;
@@ -320,6 +349,9 @@ get_key (estream_t *r_key, const char *fingerprint, const char *addrspec)
       log_error ("error allocating memory buffer: %s\n", gpg_strerror (err));
       goto leave;
     }
+  /* Prefix the key with the MIME content type.  */
+  es_fputs ("Content-Type: application/pgp-keys\n"
+            "\n", key);
 
   filterexp = es_bsprintf ("keep-uid=mbox = %s", addrspec);
   if (!filterexp)
@@ -381,6 +413,125 @@ get_key (estream_t *r_key, const char *fingerprint, const char *addrspec)
 
 
 \f
+static void
+decrypt_stream_status_cb (void *opaque, const char *keyword, char *args)
+{
+  (void)opaque;
+
+  if (DBG_CRYPTO)
+    log_debug ("gpg status: %s %s\n", keyword, args);
+}
+
+
+/* Decrypt the INPUT stream to a new stream which is stored at success
+ * at R_OUTPUT.  */
+static gpg_error_t
+decrypt_stream (estream_t *r_output, estream_t input)
+{
+  gpg_error_t err;
+  ccparray_t ccp;
+  const char **argv;
+  estream_t output;
+
+  *r_output = NULL;
+
+  output = es_fopenmem (0, "w+b");
+  if (!output)
+    {
+      err = gpg_error_from_syserror ();
+      log_error ("error allocating memory buffer: %s\n", gpg_strerror (err));
+      return err;
+    }
+
+  ccparray_init (&ccp, 0);
+
+  ccparray_put (&ccp, "--no-options");
+  /* We limit the output to 64 KiB to avoid DoS using compression
+   * tricks.  A regular client will anyway only send a minimal key;
+   * that is one w/o key signatures and attribute packets.  */
+  ccparray_put (&ccp, "--max-output=0x10000");
+  if (!opt.verbose)
+    ccparray_put (&ccp, "--quiet");
+  else if (opt.verbose > 1)
+    ccparray_put (&ccp, "--verbose");
+  ccparray_put (&ccp, "--batch");
+  ccparray_put (&ccp, "--status-fd=2");
+  ccparray_put (&ccp, "--decrypt");
+  ccparray_put (&ccp, "--");
+
+  ccparray_put (&ccp, NULL);
+  argv = ccparray_get (&ccp, NULL);
+  if (!argv)
+    {
+      err = gpg_error_from_syserror ();
+      goto leave;
+    }
+  err = gnupg_exec_tool_stream (opt.gpg_program, argv, input,
+                                NULL, output,
+                                decrypt_stream_status_cb, NULL);
+  if (err)
+    {
+      log_error ("decryption failed: %s\n", gpg_strerror (err));
+      goto leave;
+    }
+  else if (opt.verbose)
+    log_info ("decryption succeeded\n");
+
+  es_rewind (output);
+  *r_output = output;
+  output = NULL;
+
+ leave:
+  es_fclose (output);
+  xfree (argv);
+  return err;
+}
+
+
+
+\f
+/* Check whether the  provider supports the WKS protocol.  */
+static gpg_error_t
+command_supported (char *userid)
+{
+  gpg_error_t err;
+  char *addrspec = NULL;
+  char *submission_to = NULL;
+
+  addrspec = mailbox_from_userid (userid);
+  if (!addrspec)
+    {
+      log_error (_("\"%s\" is not a proper mail address\n"), userid);
+      err = gpg_error (GPG_ERR_INV_USER_ID);
+      goto leave;
+    }
+
+  /* Get the submission address.  */
+  err = wkd_get_submission_address (addrspec, &submission_to);
+  if (err)
+    {
+      if (gpg_err_code (err) == GPG_ERR_NO_DATA
+          || gpg_err_code (err) == GPG_ERR_UNKNOWN_HOST)
+        {
+          if (opt.verbose)
+            log_info ("provider for '%s' does NOT support WKS (%s)\n",
+                      addrspec, gpg_strerror (err));
+          err = gpg_error (GPG_ERR_FALSE);
+          log_inc_errorcount ();
+        }
+      goto leave;
+    }
+  if (opt.verbose)
+    log_info ("provider for '%s' supports WKS\n", addrspec);
+
+ leave:
+  xfree (submission_to);
+  xfree (addrspec);
+  return err;
+}
+
+
+\f
 /* Locate the key by fingerprint and userid and send a publication
  * request.  */
 static gpg_error_t
@@ -390,8 +541,12 @@ command_send (const char *fingerprint, char *userid)
   KEYDB_SEARCH_DESC desc;
   char *addrspec = NULL;
   estream_t key = NULL;
+  estream_t keyenc = NULL;
   char *submission_to = NULL;
   mime_maker_t mime = NULL;
+  struct policy_flags_s policy;
+
+  memset (&policy, 0, sizeof policy);
 
   if (classify_user_id (fingerprint, &desc, 1)
       || !(desc.mode == KEYDB_SEARCH_MODE_FPR
@@ -413,11 +568,50 @@ command_send (const char *fingerprint, char *userid)
     goto leave;
 
   /* Get the submission address.  */
-  err = wkd_get_submission_address (addrspec, &submission_to);
+  if (fake_submission_addr)
+    {
+      submission_to = xstrdup (fake_submission_addr);
+      err = 0;
+    }
+  else
+    err = wkd_get_submission_address (addrspec, &submission_to);
   if (err)
     goto leave;
   log_info ("submitting request to '%s'\n", submission_to);
 
+  /* Get the policy flags.  */
+  if (!fake_submission_addr)
+    {
+      estream_t mbuf;
+
+      err = wkd_get_policy_flags (addrspec, &mbuf);
+      if (err)
+        {
+          log_error ("error reading policy flags for '%s': %s\n",
+                     submission_to, gpg_strerror (err));
+          goto leave;
+      }
+      if (mbuf)
+        {
+          err = wks_parse_policy (&policy, mbuf, 1);
+          es_fclose (mbuf);
+          if (err)
+            goto leave;
+        }
+    }
+
+  if (policy.auth_submit)
+    log_info ("no confirmation required for '%s'\n", addrspec);
+
+  /* Encrypt the key part.  */
+  es_rewind (key);
+  err = encrypt_response (&keyenc, key, submission_to, fingerprint);
+  if (err)
+    goto leave;
+  es_fclose (key);
+  key = NULL;
+
+
   /* Send the key.  */
   err = mime_maker_new (&mime, NULL);
   if (err)
@@ -432,11 +626,33 @@ command_send (const char *fingerprint, char *userid)
   if (err)
     goto leave;
 
-  err = mime_maker_add_header (mime, "Content-type", "application/pgp-keys");
+  /* Tell server that we support draft version 3.  */
+  err = mime_maker_add_header (mime, "Wks-Draft-Version", "3");
   if (err)
     goto leave;
 
-  err = mime_maker_add_stream (mime, &key);
+  err = mime_maker_add_header (mime, "Content-Type",
+                               "multipart/encrypted; "
+                               "protocol=\"application/pgp-encrypted\"");
+  if (err)
+    goto leave;
+  err = mime_maker_add_container (mime);
+  if (err)
+    goto leave;
+
+  err = mime_maker_add_header (mime, "Content-Type",
+                               "application/pgp-encrypted");
+  if (err)
+    goto leave;
+  err = mime_maker_add_body (mime, "Version: 1\n");
+  if (err)
+    goto leave;
+  err = mime_maker_add_header (mime, "Content-Type",
+                               "application/octet-stream");
+  if (err)
+    goto leave;
+
+  err = mime_maker_add_stream (mime, &keyenc);
   if (err)
     goto leave;
 
@@ -445,6 +661,7 @@ command_send (const char *fingerprint, char *userid)
  leave:
   mime_maker_release (mime);
   xfree (submission_to);
+  es_fclose (keyenc);
   es_fclose (key);
   xfree (addrspec);
   return err;
@@ -458,8 +675,8 @@ encrypt_response_status_cb (void *opaque, const char *keyword, char *args)
   gpg_error_t *failure = opaque;
   char *fields[2];
 
-  if (opt.debug)
-    log_debug ("%s: %s\n", keyword, args);
+  if (DBG_CRYPTO)
+    log_debug ("gpg status: %s %s\n", keyword, args);
 
   if (!strcmp (keyword, "FAILURE"))
     {
@@ -472,14 +689,16 @@ encrypt_response_status_cb (void *opaque, const char *keyword, char *args)
 
 
 /* Encrypt the INPUT stream to a new stream which is stored at success
- * at R_OUTPUT.  Encryption is done for ADDRSPEC.  We currently
- * retrieve that key from the WKD, DANE, or from "local".  "local" is
- * last to prefer the latest key version but use a local copy in case
- * we are working offline.  It might be useful for the server to send
- * the fingerprint of its encryption key - or even the entire key
- * back.  */
+ * at R_OUTPUT.  Encryption is done for ADDRSPEC and for FINGERPRINT
+ * (so that the sent message may later be inspected by the user).  We
+ * currently retrieve that key from the WKD, DANE, or from "local".
+ * "local" is last to prefer the latest key version but use a local
+ * copy in case we are working offline.  It might be useful for the
+ * server to send the fingerprint of its encryption key - or even the
+ * entire key back.  */
 static gpg_error_t
-encrypt_response (estream_t *r_output, estream_t input, const char *addrspec)
+encrypt_response (estream_t *r_output, estream_t input, const char *addrspec,
+                  const char *fingerprint)
 {
   gpg_error_t err;
   ccparray_t ccp;
@@ -508,9 +727,14 @@ encrypt_response (estream_t *r_output, estream_t input, const char *addrspec)
   ccparray_put (&ccp, "--status-fd=2");
   ccparray_put (&ccp, "--always-trust");
   ccparray_put (&ccp, "--armor");
-  ccparray_put (&ccp, "--auto-key-locate=clear,wkd,dane,local");
+  if (fake_submission_addr)
+    ccparray_put (&ccp, "--auto-key-locate=clear,local");
+  else
+    ccparray_put (&ccp, "--auto-key-locate=clear,wkd,dane,local");
   ccparray_put (&ccp, "--recipient");
   ccparray_put (&ccp, addrspec);
+  ccparray_put (&ccp, "--recipient");
+  ccparray_put (&ccp, fingerprint);
   ccparray_put (&ccp, "--encrypt");
   ccparray_put (&ccp, "--");
 
@@ -545,7 +769,8 @@ encrypt_response (estream_t *r_output, estream_t input, const char *addrspec)
 
 static gpg_error_t
 send_confirmation_response (const char *sender, const char *address,
-                            const char *nonce, int encrypt)
+                            const char *nonce, int encrypt,
+                            const char *fingerprint)
 {
   gpg_error_t err;
   estream_t body = NULL;
@@ -581,7 +806,7 @@ send_confirmation_response (const char *sender, const char *address,
   es_rewind (body);
   if (encrypt)
     {
-      err = encrypt_response (&bodyenc, body, sender);
+      err = encrypt_response (&bodyenc, body, sender, fingerprint);
       if (err)
         goto leave;
       es_fclose (body);
@@ -608,7 +833,7 @@ send_confirmation_response (const char *sender, const char *address,
                                    "protocol=\"application/pgp-encrypted\"");
       if (err)
         goto leave;
-      err = mime_maker_add_container (mime, "multipart/encrypted");
+      err = mime_maker_add_container (mime);
       if (err)
         goto leave;
 
@@ -657,7 +882,7 @@ process_confirmation_request (estream_t msg)
   gpg_error_t err;
   nvc_t nvc;
   nve_t item;
-  const char *value, *sender, *address, *nonce;
+  const char *value, *sender, *address, *fingerprint, *nonce;
 
   err = nvc_parse (&nvc, NULL, msg);
   if (err)
@@ -666,7 +891,7 @@ process_confirmation_request (estream_t msg)
       goto leave;
     }
 
-  if (opt.debug)
+  if (DBG_MIME)
     {
       log_debug ("request follows:\n");
       nvc_write (nvc, log_get_stream ());
@@ -684,6 +909,18 @@ process_confirmation_request (estream_t msg)
       goto leave;
     }
 
+  /* Get the fingerprint.  */
+  if (!((item = nvc_lookup (nvc, "fingerprint:"))
+        && (value = nve_value (item))
+        && strlen (value) >= 40))
+    {
+      log_error ("received invalid wks message: %s\n",
+                 "'fingerprint' missing or invalid");
+      err = gpg_error (GPG_ERR_INV_DATA);
+      goto leave;
+    }
+  fingerprint = value;
+
   /* FIXME: Check that the fingerprint matches the key used to decrypt the
    * message.  */
 
@@ -728,11 +965,11 @@ process_confirmation_request (estream_t msg)
 
   /* Send the confirmation.  If no key was found, try again without
    * encryption.  */
-  err = send_confirmation_response (sender, address, nonce, 1);
+  err = send_confirmation_response (sender, address, nonce, 1, fingerprint);
   if (gpg_err_code (err) == GPG_ERR_NO_PUBKEY)
     {
       log_info ("no encryption key found - sending response in the clear\n");
-      err = send_confirmation_response (sender, address, nonce, 0);
+      err = send_confirmation_response (sender, address, nonce, 0, NULL);
     }
 
  leave:
@@ -741,16 +978,62 @@ process_confirmation_request (estream_t msg)
 }
 
 
+/* Read a confirmation request and decrypt it if needed.  This
+ * function may not be used with a mail or MIME message but only with
+ * the actual encrypted or plaintext WKS data.  */
+static gpg_error_t
+read_confirmation_request (estream_t msg)
+{
+  gpg_error_t err;
+  int c;
+  estream_t plaintext = NULL;
+
+  /* We take a really simple approach to check whether MSG is
+   * encrypted: We know that an encrypted message is always armored
+   * and thus starts with a few dashes.  It is even sufficient to
+   * check for a single dash, because that can never be a proper first
+   * WKS data octet.  We need to skip leading spaces, though. */
+  while ((c = es_fgetc (msg)) == ' ' || c == '\t' || c == '\r' || c == '\n')
+    ;
+  if (c == EOF)
+    {
+      log_error ("can't process an empty message\n");
+      return gpg_error (GPG_ERR_INV_DATA);
+    }
+  if (es_ungetc (c, msg) != c)
+    {
+      log_error ("error ungetting octet from message\n");
+      return gpg_error (GPG_ERR_INTERNAL);
+    }
+
+  if (c != '-')
+    err = process_confirmation_request (msg);
+  else
+    {
+      err = decrypt_stream (&plaintext, msg);
+      if (err)
+        log_error ("decryption failed: %s\n", gpg_strerror (err));
+      else
+        err = process_confirmation_request (plaintext);
+    }
+
+  es_fclose (plaintext);
+  return err;
+}
+
+
 /* Called from the MIME receiver to process the plain text data in MSG.  */
 static gpg_error_t
-command_receive_cb (void *opaque, const char *mediatype, estream_t msg)
+command_receive_cb (void *opaque, const char *mediatype,
+                    estream_t msg, unsigned int flags)
 {
   gpg_error_t err;
 
   (void)opaque;
+  (void)flags;
 
   if (!strcmp (mediatype, "application/vnd.gnupg.wks"))
-    err = process_confirmation_request (msg);
+    err = read_confirmation_request (msg);
   else
     {
       log_info ("ignoring unexpected message of type '%s'\n", mediatype);
index e872824..fd65b40 100644 (file)
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
-/* The Web Key Service I-D defines an update protocol to stpre a
+/* The Web Key Service I-D defines an update protocol to store a
  * public key in the Web Key Directory.  The current specification is
  * draft-koch-openpgp-webkey-service-01.txt.
  */
@@ -102,6 +102,8 @@ static ARGPARSE_OPTS opts[] = {
 /* The list of supported debug flags.  */
 static struct debug_flags_s debug_flags [] =
   {
+    { DBG_MIME_VALUE   , "mime"    },
+    { DBG_PARSER_VALUE , "parser"  },
     { DBG_CRYPTO_VALUE , "crypto"  },
     { DBG_MEMORY_VALUE , "memory"  },
     { DBG_MEMSTAT_VALUE, "memstat" },
@@ -116,6 +118,7 @@ struct server_ctx_s
 {
   char *fpr;
   strlist_t mboxes;  /* List of addr-specs taken from the UIDs.  */
+  unsigned int draft_version_2:1; /* Client supports the draft 2.  */
 };
 typedef struct server_ctx_s *server_ctx_t;
 
@@ -123,7 +126,8 @@ typedef struct server_ctx_s *server_ctx_t;
 static gpg_error_t get_domain_list (strlist_t *r_list);
 
 static gpg_error_t command_receive_cb (void *opaque,
-                                       const char *mediatype, estream_t fp);
+                                       const char *mediatype, estream_t fp,
+                                       unsigned int flags);
 static gpg_error_t command_list_domains (void);
 static gpg_error_t command_cron (void);
 
@@ -302,7 +306,7 @@ main (int argc, char **argv)
         log_error ("directory '%s' not owned by user\n", opt.directory);
         exit (2);
       }
-    if ((sb.st_mode & S_IRWXO))
+    if ((sb.st_mode & (S_IROTH|S_IWOTH)))
       {
         log_error ("directory '%s' has too relaxed permissions\n",
                    opt.directory);
@@ -350,8 +354,8 @@ list_key_status_cb (void *opaque, const char *keyword, char *args)
 {
   server_ctx_t ctx = opaque;
   (void)ctx;
-  if (opt.debug)
-    log_debug ("%s: %s\n", keyword, args);
+  if (DBG_CRYPTO)
+    log_debug ("gpg status: %s %s\n", keyword, args);
 }
 
 
@@ -515,7 +519,7 @@ copy_key_as_binary (const char *keyfile, const char *outfile,
 {
   gpg_error_t err;
   ccparray_t ccp;
-  const char **argv;
+  const char **argv = NULL;
   char *filterexp = NULL;
 
   if (addrspec)
@@ -629,8 +633,8 @@ encrypt_stream_status_cb (void *opaque, const char *keyword, char *args)
 {
   (void)opaque;
 
-  if (opt.debug)
-    log_debug ("%s: %s\n", keyword, args);
+  if (DBG_CRYPTO)
+    log_debug ("gpg status: %s %s\n", keyword, args);
 }
 
 
@@ -698,6 +702,78 @@ encrypt_stream (estream_t *r_output, estream_t input, const char *keyfile)
 }
 
 
+static void
+sign_stream_status_cb (void *opaque, const char *keyword, char *args)
+{
+  (void)opaque;
+
+  if (DBG_CRYPTO)
+    log_debug ("gpg status: %s %s\n", keyword, args);
+}
+
+/* Sign the INPUT stream to a new stream which is stored at success at
+ * R_OUTPUT.  A detached signature is created using the key specified
+ * by USERID.  */
+static gpg_error_t
+sign_stream (estream_t *r_output, estream_t input, const char *userid)
+{
+  gpg_error_t err;
+  ccparray_t ccp;
+  const char **argv;
+  estream_t output;
+
+  *r_output = NULL;
+
+  output = es_fopenmem (0, "w+b");
+  if (!output)
+    {
+      err = gpg_error_from_syserror ();
+      log_error ("error allocating memory buffer: %s\n", gpg_strerror (err));
+      return err;
+    }
+
+  ccparray_init (&ccp, 0);
+
+  ccparray_put (&ccp, "--no-options");
+  if (!opt.verbose)
+    ccparray_put (&ccp, "--quiet");
+  else if (opt.verbose > 1)
+    ccparray_put (&ccp, "--verbose");
+  ccparray_put (&ccp, "--batch");
+  ccparray_put (&ccp, "--status-fd=2");
+  ccparray_put (&ccp, "--armor");
+  ccparray_put (&ccp, "--local-user");
+  ccparray_put (&ccp, userid);
+  ccparray_put (&ccp, "--detach-sign");
+  ccparray_put (&ccp, "--");
+
+  ccparray_put (&ccp, NULL);
+  argv = ccparray_get (&ccp, NULL);
+  if (!argv)
+    {
+      err = gpg_error_from_syserror ();
+      goto leave;
+    }
+  err = gnupg_exec_tool_stream (opt.gpg_program, argv, input,
+                                NULL, output,
+                                sign_stream_status_cb, NULL);
+  if (err)
+    {
+      log_error ("signing failed: %s\n", gpg_strerror (err));
+      goto leave;
+    }
+
+  es_rewind (output);
+  *r_output = output;
+  output = NULL;
+
+ leave:
+  es_fclose (output);
+  xfree (argv);
+  return err;
+}
+
+
 /* Get the submission address for address MBOX.  Caller must free the
  * value.  If no address can be found NULL is returned.  */
 static char *
@@ -766,6 +842,50 @@ get_submission_address (const char *mbox)
 }
 
 
+/* Get the policy flags for address MBOX and store them in POLICY.  */
+static gpg_error_t
+get_policy_flags (policy_flags_t policy, const char *mbox)
+{
+  gpg_error_t err;
+  const char *domain;
+  char *fname;
+  estream_t fp;
+
+  memset (policy, 0, sizeof *policy);
+
+  domain = strchr (mbox, '@');
+  if (!domain)
+    return gpg_error (GPG_ERR_INV_USER_ID);
+  domain++;
+
+  fname = make_filename_try (opt.directory, domain, "policy", NULL);
+  if (!fname)
+    {
+      err = gpg_error_from_syserror ();
+      log_error ("make_filename failed in %s: %s\n",
+                 __func__, gpg_strerror (err));
+      return err;
+    }
+
+  fp = es_fopen (fname, "r");
+  if (!fp)
+    {
+      err = gpg_error_from_syserror ();
+      if (gpg_err_code (err) == GPG_ERR_ENOENT)
+        err = 0;
+      else
+        log_error ("error reading '%s': %s\n", fname, gpg_strerror (err));
+      xfree (fname);
+      return err;
+    }
+
+  err = wks_parse_policy (policy, fp, 0);
+  es_fclose (fp);
+  xfree (fname);
+  return err;
+}
+
+
 /* We store the key under the name of the nonce we will then send to
  * the user.  On success the nonce is stored at R_NONCE and the file
  * name at R_FNAME.  */
@@ -878,7 +998,7 @@ store_key_as_pending (const char *dir, estream_t key,
 }
 
 
-/* Send a confirmation rewqyest.  DIR is the directory used for the
+/* Send a confirmation request.  DIR is the directory used for the
  * address MBOX.  NONCE is the nonce we want to see in the response to
  * this mail.  FNAME the name of the file with the key.  */
 static gpg_error_t
@@ -889,6 +1009,8 @@ send_confirmation_request (server_ctx_t ctx,
   gpg_error_t err;
   estream_t body = NULL;
   estream_t bodyenc = NULL;
+  estream_t signeddata = NULL;
+  estream_t signature = NULL;
   mime_maker_t mime = NULL;
   char *from_buffer = NULL;
   const char *from;
@@ -914,12 +1036,16 @@ send_confirmation_request (server_ctx_t ctx,
       log_error ("error allocating memory buffer: %s\n", gpg_strerror (err));
       goto leave;
     }
-  /* It is fine to use 8 bit encoding because that is encrypted and
-   * only our client will see it.  */
-  es_fputs ("Content-Type: application/vnd.gnupg.wks\n"
-            "Content-Transfer-Encoding: 8bit\n"
-            "\n",
-            body);
+
+  if (!ctx->draft_version_2)
+    {
+      /* It is fine to use 8 bit encoding because that is encrypted and
+       * only our client will see it.  */
+      es_fputs ("Content-Type: application/vnd.gnupg.wks\n"
+                "Content-Transfer-Encoding: 8bit\n"
+                "\n",
+                body);
+    }
 
   es_fprintf (body, ("type: confirmation-request\n"
                      "sender: %s\n"
@@ -958,35 +1084,117 @@ send_confirmation_request (server_ctx_t ctx,
         goto leave;
     }
 
-  err = mime_maker_add_header (mime, "Content-Type",
-                               "multipart/encrypted; "
-                               "protocol=\"application/pgp-encrypted\"");
-  if (err)
-    goto leave;
-  err = mime_maker_add_container (mime, "multipart/encrypted");
-  if (err)
-    goto leave;
+  if (!ctx->draft_version_2)
+    {
+      err = mime_maker_add_header (mime, "Content-Type",
+                                   "multipart/encrypted; "
+                                   "protocol=\"application/pgp-encrypted\"");
+      if (err)
+        goto leave;
+      err = mime_maker_add_container (mime);
+      if (err)
+        goto leave;
 
-  err = mime_maker_add_header (mime, "Content-Type",
-                               "application/pgp-encrypted");
-  if (err)
-    goto leave;
-  err = mime_maker_add_body (mime, "Version: 1\n");
-  if (err)
-    goto leave;
-  err = mime_maker_add_header (mime, "Content-Type",
-                               "application/octet-stream");
-  if (err)
-    goto leave;
+      err = mime_maker_add_header (mime, "Content-Type",
+                                   "application/pgp-encrypted");
+      if (err)
+        goto leave;
+      err = mime_maker_add_body (mime, "Version: 1\n");
+      if (err)
+        goto leave;
+      err = mime_maker_add_header (mime, "Content-Type",
+                                   "application/octet-stream");
+      if (err)
+        goto leave;
 
-  err = mime_maker_add_stream (mime, &bodyenc);
-  if (err)
-    goto leave;
+      err = mime_maker_add_stream (mime, &bodyenc);
+      if (err)
+        goto leave;
+
+    }
+  else
+    {
+      unsigned int partid;
+
+      /* FIXME: Add micalg.  */
+      err = mime_maker_add_header (mime, "Content-Type",
+                                   "multipart/signed; "
+                                   "protocol=\"application/pgp-signature\"");
+      if (err)
+        goto leave;
+      err = mime_maker_add_container (mime);
+      if (err)
+        goto leave;
+
+      err = mime_maker_add_header (mime, "Content-Type", "multipart/mixed");
+      if (err)
+        goto leave;
+
+      err = mime_maker_add_container (mime);
+      if (err)
+        goto leave;
+      partid = mime_maker_get_partid (mime);
+
+      err = mime_maker_add_header (mime, "Content-Type", "text/plain");
+      if (err)
+        goto leave;
+
+      err = mime_maker_add_body
+        (mime,
+         "This message has been send to confirm your request\n"
+         "to publish your key.  If you did not request a key\n"
+         "publication, simply ignore this message.\n"
+         "\n"
+         "Most mail software can handle this kind of message\n"
+         "automatically and thus you would not have seen this\n"
+         "message.  It seems that your client does not fully\n"
+         "support this service.  The web page\n"
+         "\n"
+         "       https://gnupg.org/faq/wkd.html\n"
+         "\n"
+         "explains how you can process this message anyway in\n"
+         "a few manual steps.\n");
+      if (err)
+        goto leave;
+
+      err = mime_maker_add_header (mime, "Content-Type",
+                                   "application/vnd.gnupg.wks");
+      if (err)
+        goto leave;
+
+      err = mime_maker_add_stream (mime, &bodyenc);
+      if (err)
+        goto leave;
+
+      err = mime_maker_end_container (mime);
+      if (err)
+        goto leave;
+
+      mime_maker_dump_tree (mime);
+      err = mime_maker_get_part (mime, partid, &signeddata);
+      if (err)
+        goto leave;
+
+      err = sign_stream (&signature, signeddata, from);
+      if (err)
+        goto leave;
+
+      err = mime_maker_add_header (mime, "Content-Type",
+                                   "application/pgp-signature");
+      if (err)
+        goto leave;
+
+      err = mime_maker_add_stream (mime, &signature);
+      if (err)
+        goto leave;
+    }
 
   err = wks_send_mime (mime);
 
  leave:
   mime_maker_release (mime);
+  es_fclose (signature);
+  es_fclose (signeddata);
   es_fclose (bodyenc);
   es_fclose (body);
   xfree (from_buffer);
@@ -1005,6 +1213,7 @@ process_new_key (server_ctx_t ctx, estream_t key)
   char *dname = NULL;
   char *nonce = NULL;
   char *fname = NULL;
+  struct policy_flags_s policybuf;
 
   /* First figure out the user id from the key.  */
   err = list_key (ctx, key);
@@ -1035,23 +1244,40 @@ process_new_key (server_ctx_t ctx, estream_t key)
           err = gpg_error_from_syserror ();
           goto leave;
         }
-      /* Fixme: check for proper directory permissions.  */
+
       if (access (dname, W_OK))
         {
           log_info ("skipping address '%s': Domain not configured\n", sl->d);
           continue;
         }
-      log_info ("storing address '%s'\n", sl->d);
+      if (get_policy_flags (&policybuf, sl->d))
+        {
+          log_info ("skipping address '%s': Bad policy flags\n", sl->d);
+          continue;
+        }
 
-      xfree (nonce);
-      xfree (fname);
-      err = store_key_as_pending (dname, key, &nonce, &fname);
-      if (err)
-        goto leave;
+      if (policybuf.auth_submit)
+        {
+          /* Bypass the confirmation stuff and publish the the key as is.  */
+          log_info ("publishing address '%s'\n", sl->d);
+          /* FIXME: We need to make sure that we do this only for the
+           * address in the mail.  */
+          log_debug ("auth-submit not yet working!\n");
+        }
+      else
+        {
+          log_info ("storing address '%s'\n", sl->d);
 
-      err = send_confirmation_request (ctx, sl->d, nonce, fname);
-      if (err)
-        goto leave;
+          xfree (nonce);
+          xfree (fname);
+          err = store_key_as_pending (dname, key, &nonce, &fname);
+          if (err)
+            goto leave;
+
+          err = send_confirmation_request (ctx, sl->d, nonce, fname);
+          if (err)
+            goto leave;
+        }
     }
 
  leave:
@@ -1065,6 +1291,124 @@ process_new_key (server_ctx_t ctx, estream_t key)
 
 
 \f
+/* Send a message to tell the user at MBOX that their key has been
+ * published.  FNAME the name of the file with the key.  */
+static gpg_error_t
+send_congratulation_message (const char *mbox, const char *keyfile)
+{
+  gpg_error_t err;
+  estream_t body = NULL;
+  estream_t bodyenc = NULL;
+  mime_maker_t mime = NULL;
+  char *from_buffer = NULL;
+  const char *from;
+  strlist_t sl;
+
+  from = from_buffer = get_submission_address (mbox);
+  if (!from)
+    {
+      from = opt.default_from;
+      if (!from)
+        {
+          log_error ("no sender address found for '%s'\n", mbox);
+          err = gpg_error (GPG_ERR_CONFIGURATION);
+          goto leave;
+        }
+      log_info ("Note: using default sender address '%s'\n", from);
+    }
+
+  body = es_fopenmem (0, "w+b");
+  if (!body)
+    {
+      err = gpg_error_from_syserror ();
+      log_error ("error allocating memory buffer: %s\n", gpg_strerror (err));
+      goto leave;
+    }
+  /* It is fine to use 8 bit encoding because that is encrypted and
+   * only our client will see it.  */
+  es_fputs ("Content-Type: text/plain; charset=utf-8\n"
+            "Content-Transfer-Encoding: 8bit\n"
+            "\n",
+            body);
+
+  es_fprintf (body,
+              "Hello!\n\n"
+              "The key for your address '%s' has been published\n"
+              "and can now be retrieved from the Web Key Directory.\n"
+              "\n"
+              "For more information on this system see:\n"
+              "\n"
+              "  https://gnupg.org/faq/wkd.html\n"
+              "\n"
+              "Best regards\n"
+              "\n"
+              "  Gnu Key Publisher\n\n\n"
+              "-- \n"
+              "The GnuPG Project welcomes donations: %s\n",
+              mbox, "https://gnupg.org/donate");
+
+  es_rewind (body);
+  err = encrypt_stream (&bodyenc, body, keyfile);
+  if (err)
+    goto leave;
+  es_fclose (body);
+  body = NULL;
+
+  err = mime_maker_new (&mime, NULL);
+  if (err)
+    goto leave;
+  err = mime_maker_add_header (mime, "From", from);
+  if (err)
+    goto leave;
+  err = mime_maker_add_header (mime, "To", mbox);
+  if (err)
+    goto leave;
+  err = mime_maker_add_header (mime, "Subject", "Your key has been published");
+  if (err)
+    goto leave;
+  for (sl = opt.extra_headers; sl; sl = sl->next)
+    {
+      err = mime_maker_add_header (mime, sl->d, NULL);
+      if (err)
+        goto leave;
+    }
+
+  err = mime_maker_add_header (mime, "Content-Type",
+                               "multipart/encrypted; "
+                               "protocol=\"application/pgp-encrypted\"");
+  if (err)
+    goto leave;
+  err = mime_maker_add_container (mime);
+  if (err)
+    goto leave;
+
+  err = mime_maker_add_header (mime, "Content-Type",
+                               "application/pgp-encrypted");
+  if (err)
+    goto leave;
+  err = mime_maker_add_body (mime, "Version: 1\n");
+  if (err)
+    goto leave;
+  err = mime_maker_add_header (mime, "Content-Type",
+                               "application/octet-stream");
+  if (err)
+    goto leave;
+
+  err = mime_maker_add_stream (mime, &bodyenc);
+  if (err)
+    goto leave;
+
+  err = wks_send_mime (mime);
+
+ leave:
+  mime_maker_release (mime);
+  es_fclose (bodyenc);
+  es_fclose (body);
+  xfree (from_buffer);
+  return err;
+}
+
+
 /* Check that we have send a request with NONCE and publish the key.  */
 static gpg_error_t
 check_and_publish (server_ctx_t ctx, const char *address, const char *nonce)
@@ -1170,7 +1514,7 @@ check_and_publish (server_ctx_t ctx, const char *address, const char *nonce)
     }
 
   log_info ("key %s published for '%s'\n", ctx->fpr, address);
-
+  send_congratulation_message (address, fnewname);
 
   /* Try to publish as DANE record if the DANE directory exists.  */
   xfree (fname);
@@ -1207,7 +1551,6 @@ check_and_publish (server_ctx_t ctx, const char *address, const char *nonce)
       log_info ("key %s published for '%s' (DANE record)\n", ctx->fpr, address);
     }
 
-
  leave:
   es_fclose (key);
   xfree (hash);
@@ -1299,15 +1642,18 @@ process_confirmation_response (server_ctx_t ctx, estream_t msg)
 \f
 /* Called from the MIME receiver to process the plain text data in MSG .  */
 static gpg_error_t
-command_receive_cb (void *opaque, const char *mediatype, estream_t msg)
+command_receive_cb (void *opaque, const char *mediatype,
+                    estream_t msg, unsigned int flags)
 {
   gpg_error_t err;
   struct server_ctx_s ctx;
 
-  memset (&ctx, 0, sizeof ctx);
-
   (void)opaque;
 
+  memset (&ctx, 0, sizeof ctx);
+  if ((flags & WKS_RECEIVE_DRAFT2))
+    ctx.draft_version_2 = 1;
+
   if (!strcmp (mediatype, "application/pgp-keys"))
     err = process_new_key (&ctx, msg);
   else if (!strcmp (mediatype, "application/vnd.gnupg.wks"))
@@ -1522,6 +1868,7 @@ command_list_domains (void)
   const char *domain;
   char *fname = NULL;
   int i;
+  estream_t fp;
 
   err = get_domain_list (&domaindirs);
   if (err)
@@ -1569,7 +1916,7 @@ command_list_domains (void)
             }
         }
 
-      /* Print a warning if the sumbission address is not configured.  */
+      /* Print a warning if the submission address is not configured.  */
       xfree (fname);
       fname = make_filename_try (sl->d, "submission-address", NULL);
       if (!fname)
@@ -1587,6 +1934,38 @@ command_list_domains (void)
             log_error ("domain %s: problem with '%s': %s\n",
                        domain, fname, gpg_strerror (err));
         }
+
+      /* Check the syntax of the optional policy file.  */
+      xfree (fname);
+      fname = make_filename_try (sl->d, "policy", NULL);
+      if (!fname)
+        {
+          err = gpg_error_from_syserror ();
+          goto leave;
+        }
+      fp = es_fopen (fname, "r");
+      if (!fp)
+        {
+          err = gpg_error_from_syserror ();
+          if (gpg_err_code (err) != GPG_ERR_ENOENT)
+            log_error ("domain %s: error in policy file: %s\n",
+                       domain, gpg_strerror (err));
+        }
+      else
+        {
+          struct policy_flags_s policy;
+          err = wks_parse_policy (&policy, fp, 0);
+          es_fclose (fp);
+          if (!err)
+            {
+              struct policy_flags_s empty_policy;
+              memset (&empty_policy, 0, sizeof empty_policy);
+              if (!memcmp (&empty_policy, &policy, sizeof policy))
+                log_error ("domain %s: empty policy file\n", domain);
+            }
+        }
+
+
     }
   err = 0;
 
index be85eec..f7cccb3 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_GPG_WKS_H
@@ -39,21 +39,46 @@ struct
 } opt;
 
 /* Debug values and macros.  */
+#define DBG_MIME_VALUE        1 /* Debug the MIME structure.  */
+#define DBG_PARSER_VALUE      2 /* Debug the Mail parser.  */
 #define DBG_CRYPTO_VALUE      4        /* Debug low level crypto.  */
 #define DBG_MEMORY_VALUE     32        /* Debug memory allocation stuff.  */
 #define DBG_MEMSTAT_VALUE   128        /* Show memory statistics.  */
 #define DBG_IPC_VALUE      1024 /* Debug assuan communication.  */
 #define DBG_EXTPROG_VALUE 16384 /* debug external program calls */
 
+#define DBG_MIME     (opt.debug & DBG_MIME_VALUE)
+#define DBG_PARSER   (opt.debug & DBG_PARSER_VALUE)
+#define DBG_CRYPTO   (opt.debug & DBG_CRYPTO_VALUE)
+
+
+/* The parsed policy flags. */
+struct policy_flags_s
+{
+  unsigned int mailbox_only : 1;
+  unsigned int dane_only : 1;
+  unsigned int auth_submit : 1;
+  unsigned int max_pending;      /* Seconds to wait for a confirmation.  */
+};
+typedef struct policy_flags_s *policy_flags_t;
+
+
 
 /*-- wks-util.c --*/
 gpg_error_t wks_send_mime (mime_maker_t mime);
+gpg_error_t wks_parse_policy (policy_flags_t flags, estream_t stream,
+                              int ignore_unknown);
 
 /*-- wks-receive.c --*/
+
+/* Flag values for the receive callback.  */
+#define WKS_RECEIVE_DRAFT2 1
+
 gpg_error_t wks_receive (estream_t fp,
                          gpg_error_t (*result_cb)(void *opaque,
                                                   const char *mediatype,
-                                                  estream_t data),
+                                                  estream_t data,
+                                                  unsigned int flags),
                          void *cb_data);
 
 
index 82b5325..cd99c81 100644 (file)
@@ -15,7 +15,7 @@
  * General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with GnuPG; if not, see <http://www.gnu.org/licenses/>.
+ * along with GnuPG; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #if HAVE_CONFIG_H
@@ -909,11 +909,14 @@ static gc_option_t gc_options_dirmngr[] =
    { "force", GC_OPT_FLAG_NONE, GC_LEVEL_BASIC,
      "dirmngr", "force loading of outdated CRLs",
      GC_ARG_TYPE_NONE, GC_BACKEND_DIRMNGR },
+   { "allow-version-check", GC_OPT_FLAG_NONE, GC_LEVEL_BASIC,
+     "dirmngr", "allow online software version check",
+     GC_ARG_TYPE_NONE, GC_BACKEND_DIRMNGR },
 
    { "Tor",
      GC_OPT_FLAG_GROUP, GC_LEVEL_BASIC,
      "gnupg", N_("Options controlling the use of Tor") },
-   { "use-tor", GC_OPT_FLAG_NONE, GC_LEVEL_INVISIBLE,
+   { "use-tor", GC_OPT_FLAG_NONE, GC_LEVEL_BASIC,
      "dirmngr", "route all network traffic via TOR",
       GC_ARG_TYPE_NONE, GC_BACKEND_DIRMNGR },
 
@@ -1060,12 +1063,12 @@ static struct
   gc_option_t *options;
 } gc_component[] =
   {
-    { "gpg",      "gnupg", N_("GPG for OpenPGP"), gc_options_gpg },
-    { "gpg-agent","gnupg", N_("GPG Agent"), gc_options_gpg_agent },
-    { "scdaemon", "gnupg", N_("Smartcard Daemon"), gc_options_scdaemon },
-    { "gpgsm",    "gnupg", N_("GPG for S/MIME"), gc_options_gpgsm },
-    { "dirmngr",  "gnupg", N_("Key Acquirer"), gc_options_dirmngr },
-    { "pinentry", "gnupg", N_("PIN and Passphrase Entry"), gc_options_pinentry }
+    { "gpg",      "gnupg", N_("OpenPGP"), gc_options_gpg },
+    { "gpg-agent","gnupg", N_("Private Keys"), gc_options_gpg_agent },
+    { "scdaemon", "gnupg", N_("Smartcards"), gc_options_scdaemon },
+    { "gpgsm",    "gnupg", N_("S/MIME"), gc_options_gpgsm },
+    { "dirmngr",  "gnupg", N_("Network"), gc_options_dirmngr },
+    { "pinentry", "gnupg", N_("Passphrase Entry"), gc_options_pinentry }
   };
 
 
@@ -1088,33 +1091,48 @@ struct error_line_s
 static void
 gpg_agent_runtime_change (int killflag)
 {
-  gpg_error_t err;
+  gpg_error_t err = 0;
   const char *pgmname;
-  const char *argv[3];
+  const char *argv[5];
   pid_t pid;
+  char *abs_homedir = NULL;
+  int i = 0;
 
   pgmname = gnupg_module_name (GNUPG_MODULE_NAME_CONNECT_AGENT);
-  argv[0] = "--no-autostart";
-  argv[1] = killflag? "KILLAGENT" : "RELOADAGENT";
-  argv[2] = NULL;
+  if (!gnupg_default_homedir_p ())
+    {
+      abs_homedir = make_absfilename_try (gnupg_homedir (), NULL);
+      if (!abs_homedir)
+        err = gpg_error_from_syserror ();
 
-  err = gnupg_spawn_process_fd (pgmname, argv, -1, -1, -1, &pid);
+      argv[i++] = "--homedir";
+      argv[i++] = abs_homedir;
+    }
+  argv[i++] = "--no-autostart";
+  argv[i++] = killflag? "KILLAGENT" : "RELOADAGENT";
+  argv[i++] = NULL;
+
+  if (!err)
+    err = gnupg_spawn_process_fd (pgmname, argv, -1, -1, -1, &pid);
   if (!err)
     err = gnupg_wait_process (pgmname, pid, 1, NULL);
   if (err)
     gc_error (0, 0, "error running '%s %s': %s",
               pgmname, argv[1], gpg_strerror (err));
   gnupg_release_process (pid);
+  xfree (abs_homedir);
 }
 
 
 static void
 scdaemon_runtime_change (int killflag)
 {
-  gpg_error_t err;
+  gpg_error_t err = 0;
   const char *pgmname;
-  const char *argv[7];
+  const char *argv[9];
   pid_t pid;
+  char *abs_homedir = NULL;
+  int i = 0;
 
   (void)killflag;  /* For scdaemon kill and reload are synonyms.  */
 
@@ -1124,45 +1142,70 @@ scdaemon_runtime_change (int killflag)
      obviously a race condition but that should not harm too much.  */
 
   pgmname = gnupg_module_name (GNUPG_MODULE_NAME_CONNECT_AGENT);
-  argv[0] = "-s";
-  argv[1] = "--no-autostart";
-  argv[2] = "GETINFO scd_running";
-  argv[3] = "/if ${! $?}";
-  argv[4] = "scd killscd";
-  argv[5] = "/end";
-  argv[6] = NULL;
+  if (!gnupg_default_homedir_p ())
+    {
+      abs_homedir = make_absfilename_try (gnupg_homedir (), NULL);
+      if (!abs_homedir)
+        err = gpg_error_from_syserror ();
+
+      argv[i++] = "--homedir";
+      argv[i++] = abs_homedir;
+    }
+  argv[i++] = "-s";
+  argv[i++] = "--no-autostart";
+  argv[i++] = "GETINFO scd_running";
+  argv[i++] = "/if ${! $?}";
+  argv[i++] = "scd killscd";
+  argv[i++] = "/end";
+  argv[i++] = NULL;
 
-  err = gnupg_spawn_process_fd (pgmname, argv, -1, -1, -1, &pid);
+  if (!err)
+    err = gnupg_spawn_process_fd (pgmname, argv, -1, -1, -1, &pid);
   if (!err)
     err = gnupg_wait_process (pgmname, pid, 1, NULL);
   if (err)
     gc_error (0, 0, "error running '%s %s': %s",
               pgmname, argv[4], gpg_strerror (err));
   gnupg_release_process (pid);
+  xfree (abs_homedir);
 }
 
 
 static void
 dirmngr_runtime_change (int killflag)
 {
-  gpg_error_t err;
+  gpg_error_t err = 0;
   const char *pgmname;
-  const char *argv[4];
+  const char *argv[6];
   pid_t pid;
+  char *abs_homedir = NULL;
 
   pgmname = gnupg_module_name (GNUPG_MODULE_NAME_CONNECT_AGENT);
   argv[0] = "--no-autostart";
   argv[1] = "--dirmngr";
   argv[2] = killflag? "KILLDIRMNGR" : "RELOADDIRMNGR";
-  argv[3] = NULL;
+  if (gnupg_default_homedir_p ())
+    argv[3] = NULL;
+  else
+    {
+      abs_homedir = make_absfilename_try (gnupg_homedir (), NULL);
+      if (!abs_homedir)
+        err = gpg_error_from_syserror ();
 
-  err = gnupg_spawn_process_fd (pgmname, argv, -1, -1, -1, &pid);
+      argv[3] = "--homedir";
+      argv[4] = abs_homedir;
+      argv[5] = NULL;
+    }
+
+  if (!err)
+    err = gnupg_spawn_process_fd (pgmname, argv, -1, -1, -1, &pid);
   if (!err)
     err = gnupg_wait_process (pgmname, pid, 1, NULL);
   if (err)
     gc_error (0, 0, "error running '%s %s': %s",
               pgmname, argv[2], gpg_strerror (err));
   gnupg_release_process (pid);
+  xfree (abs_homedir);
 }
 
 
index 221e3e2..67a0dce 100644 (file)
@@ -1,5 +1,6 @@
 /* gpgconf.c - Configuration utility for GnuPG
  * Copyright (C) 2003, 2007, 2009, 2011 Free Software Foundation, Inc.
+ * Copyright (C) 2016 g10 Code GmbH.
  *
  * This file is part of GnuPG.
  *
@@ -14,7 +15,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -52,6 +53,7 @@ enum cmd_and_opt_values
     aApplyDefaults,
     aListConfig,
     aCheckConfig,
+    aQuerySWDB,
     aListDirs,
     aLaunch,
     aKill,
@@ -79,6 +81,8 @@ static ARGPARSE_OPTS opts[] =
       N_("list global configuration file") },
     { aCheckConfig,   "check-config", 256,
       N_("check global configuration file") },
+    { aQuerySWDB,     "query-swdb", 256,
+      N_("query the software version database") },
     { aReload,        "reload", 256, N_("reload all or a given component")},
     { aLaunch,        "launch", 256, N_("launch a given component")},
     { aKill,          "kill", 256,   N_("kill a given component")},
@@ -163,8 +167,11 @@ list_dirs (estream_t fp, char **names)
     { "libdir",             gnupg_libdir,     NULL },
     { "datadir",            gnupg_datadir,    NULL },
     { "localedir",          gnupg_localedir,  NULL },
+    { "socketdir",          gnupg_socketdir,  NULL },
     { "dirmngr-socket",     dirmngr_socket_name, NULL,},
     { "agent-ssh-socket",   gnupg_socketdir,  GPG_AGENT_SSH_SOCK_NAME },
+    { "agent-extra-socket", gnupg_socketdir,  GPG_AGENT_EXTRA_SOCK_NAME },
+    { "agent-browser-socket",gnupg_socketdir, GPG_AGENT_BROWSER_SOCK_NAME },
     { "agent-socket",       gnupg_socketdir,  GPG_AGENT_SOCK_NAME },
     { "homedir",            gnupg_homedir,    NULL }
   };
@@ -200,6 +207,246 @@ list_dirs (estream_t fp, char **names)
 }
 
 
+
+/* Check whether NAME is valid argument for query_swdb().  Valid names
+ * start with a letter and contain only alphanumeric characters or an
+ * underscore.  */
+static int
+valid_swdb_name_p (const char *name)
+{
+  if (!name || !*name || !alphap (name))
+    return 0;
+
+  for (name++; *name; name++)
+    if (!alnump (name) && *name != '_')
+      return 0;
+
+  return 1;
+}
+
+
+/* Query the SWDB file.  If necessary and possible this functions asks
+ * the dirmngr to load an updated version of that file.  The caller
+ * needs to provide the NAME to query (e.g. "gnupg", "libgcrypt") and
+ * optional the currently installed version in CURRENT_VERSION.  The
+ * output written to OUT is a colon delimited line with these fields:
+ *
+ * name   :: The name of the package
+ * curvers:: The installed version if given.
+ * status :: This value tells the status of the software package
+ *           '-' :: No information available
+ *                  (error or CURRENT_VERSION not given)
+ *           '?' :: Unknown NAME
+ *           'u' :: Update available
+ *           'c' :: The version is Current
+ *           'n' :: The current version is already Newer than the
+ *                  available one.
+ * urgency :: If the value is greater than zero an urgent update is required.
+ * error   :: 0 on success or an gpg_err_code_t
+ *            Common codes seen:
+ *            GPG_ERR_TOO_OLD :: The SWDB file is to old to be used.
+ *            GPG_ERR_ENOENT  :: The SWDB file is not available.
+ *            GPG_ERR_BAD_SIGNATURE :: Currupted SWDB file.
+ * filedate:: Date of the swdb file (yyyymmddThhmmss)
+ * verified:: Date we checked the validity of the file (yyyyymmddThhmmss)
+ * version :: The version string from the swdb.
+ * reldate :: Release date of that version (yyyymmddThhmmss)
+ * size    :: Size of the package in bytes.
+ * hash    :: SHA-2 hash of the package.
+ *
+ */
+static void
+query_swdb (estream_t out, const char *name, const char *current_version)
+{
+  gpg_error_t err;
+  const char *search_name;
+  char *fname = NULL;
+  estream_t fp = NULL;
+  char *line = NULL;
+  char *self_version = NULL;
+  size_t length_of_line = 0;
+  size_t  maxlen;
+  ssize_t len;
+  char *fields[2];
+  char *p;
+  gnupg_isotime_t filedate = {0};
+  gnupg_isotime_t verified = {0};
+  char *value_ver = NULL;
+  gnupg_isotime_t value_date = {0};
+  char *value_size = NULL;
+  char *value_sha2 = NULL;
+  unsigned long value_size_ul;
+  int status, i;
+
+
+  if (!valid_swdb_name_p (name))
+    {
+      log_error ("error in package name '%s': %s\n",
+                 name, gpg_strerror (GPG_ERR_INV_NAME));
+      goto leave;
+    }
+  if (!strcmp (name, "gnupg"))
+    search_name = "gnupg21";
+  else if (!strcmp (name, "gnupg1"))
+    search_name = "gnupg1";
+  else
+    search_name = name;
+
+  if (!current_version && !strcmp (name, "gnupg"))
+    {
+      /* Use our own version but string a possible beta string.  */
+      self_version = xstrdup (PACKAGE_VERSION);
+      p = strchr (self_version, '-');
+      if (p)
+        *p = 0;
+      current_version = self_version;
+    }
+
+  if (current_version && (strchr (current_version, ':')
+                          || compare_version_strings (current_version, NULL)))
+    {
+      log_error ("error in version string '%s': %s\n",
+                 current_version, gpg_strerror (GPG_ERR_INV_ARG));
+      goto leave;
+    }
+
+  fname = make_filename (gnupg_homedir (), "swdb.lst", NULL);
+  fp = es_fopen (fname, "r");
+  if (!fp)
+    {
+      err = gpg_error_from_syserror ();
+      es_fprintf (out, "%s:%s:-::%u:::::::\n",
+                  name,
+                  current_version? current_version : "",
+                  gpg_err_code (err));
+      if (gpg_err_code (err) != GPG_ERR_ENOENT)
+        log_error (_("error opening '%s': %s\n"), fname, gpg_strerror (err));
+      goto leave;
+    }
+
+  /* Note that the parser uses the first occurance of a matching
+   * values and ignores possible duplicated values.  */
+
+  maxlen = 2048; /* Set limit.  */
+  while ((len = es_read_line (fp, &line, &length_of_line, &maxlen)) > 0)
+    {
+      if (!maxlen)
+        {
+          err = gpg_error (GPG_ERR_LINE_TOO_LONG);
+          log_error (_("error reading '%s': %s\n"), fname, gpg_strerror (err));
+          goto leave;
+        }
+      /* Strip newline and carriage return, if present.  */
+      while (len > 0 && (line[len - 1] == '\n' || line[len - 1] == '\r'))
+       line[--len] = '\0';
+
+      if (split_fields (line, fields, DIM (fields)) < DIM(fields))
+        continue; /* Skip empty lines and names w/o a value.  */
+      if (*fields[0] == '#')
+        continue; /* Skip comments.  */
+
+      /* Record the meta data.  */
+      if (!*filedate && !strcmp (fields[0], ".filedate"))
+        {
+          string2isotime (filedate, fields[1]);
+          continue;
+        }
+      if (!*verified && !strcmp (fields[0], ".verified"))
+        {
+          string2isotime (verified, fields[1]);
+          continue;
+        }
+
+      /* Tokenize the name.  */
+      p = strrchr (fields[0], '_');
+      if (!p)
+        continue; /* Name w/o an underscore.  */
+      *p++ = 0;
+
+      /* Wait for the requested name.  */
+      if (!strcmp (fields[0], search_name))
+        {
+          if (!strcmp (p, "ver") && !value_ver)
+            value_ver = xstrdup (fields[1]);
+          else if (!strcmp (p, "date") && !*value_date)
+            string2isotime (value_date, fields[1]);
+          else if (!strcmp (p, "size") && !value_size)
+            value_size = xstrdup (fields[1]);
+          else if (!strcmp (p, "sha2") && !value_sha2)
+            value_sha2 = xstrdup (fields[1]);
+        }
+    }
+  if (len < 0 || es_ferror (fp))
+    {
+      err = gpg_error_from_syserror ();
+      log_error (_("error reading '%s': %s\n"), fname, gpg_strerror (err));
+      goto leave;
+    }
+
+  if (!*filedate || !*verified)
+    {
+      err = gpg_error (GPG_ERR_INV_TIME);
+      es_fprintf (out, "%s:%s:-::%u:::::::\n",
+                  name,
+                  current_version? current_version : "",
+                  gpg_err_code (err));
+      goto leave;
+    }
+
+  if (!value_ver)
+    {
+      es_fprintf (out, "%s:%s:?:::::::::\n",
+                  name,
+                  current_version? current_version : "");
+      goto leave;
+    }
+
+  if (value_size)
+    {
+      gpg_err_set_errno (0);
+      value_size_ul = strtoul (value_size, &p, 10);
+      if (errno)
+        value_size_ul = 0;
+      else if (*p == 'k')
+        value_size_ul *= 1024;
+    }
+
+  err = 0;
+  status = '-';
+  if (compare_version_strings (value_ver, NULL))
+    err = gpg_error (GPG_ERR_INV_VALUE);
+  else if (!current_version)
+    ;
+  else if (!(i = compare_version_strings (value_ver, current_version)))
+    status = 'c';
+  else if (i > 0)
+    status = 'u';
+  else
+    status = 'n';
+
+  es_fprintf (out, "%s:%s:%c::%d:%s:%s:%s:%s:%lu:%s:\n",
+              name,
+              current_version? current_version : "",
+              status,
+              err,
+              filedate,
+              verified,
+              value_ver,
+              value_date,
+              value_size_ul,
+              value_sha2? value_sha2 : "");
+
+ leave:
+  xfree (value_ver);
+  xfree (value_size);
+  xfree (value_sha2);
+  xfree (line);
+  es_fclose (fp);
+  xfree (fname);
+  xfree (self_version);
+}
+
+
 /* gpgconf main. */
 int
 main (int argc, char **argv)
@@ -247,6 +494,7 @@ main (int argc, char **argv)
         case aApplyDefaults:
         case aListConfig:
         case aCheckConfig:
+        case aQuerySWDB:
         case aReload:
         case aLaunch:
         case aKill:
@@ -414,6 +662,18 @@ main (int argc, char **argv)
       list_dirs (outfp, argc? argv : NULL);
       break;
 
+    case aQuerySWDB:
+      /* Query the software version database.  */
+      if (!fname || argc > 2)
+       {
+         es_fprintf (es_stderr, "usage: %s --query-swdb NAME [VERSION]\n",
+                      GPGCONF_NAME);
+         exit (2);
+       }
+      get_outfp (&outfp);
+      query_swdb (outfp, fname, argc > 1? argv[1] : NULL);
+      break;
+
     case aCreateSocketDir:
       {
         char *socketdir;
index a1e3828..e99042f 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GPGCONF_H
index 57a6203..8c9c4d4 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 
index 93dd8ed..3b4bb15 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 6adc1f5..ef906a5 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -853,8 +853,6 @@ gpgtar_create (char **inpattern, int encrypt, int sign)
       if (!outstream)
         {
           err = gpg_error_from_syserror ();
-          log_error (_("can't create '%s': %s\n"),
-                     opt.outfile, gpg_strerror (err));
           goto leave;
         }
     }
@@ -958,7 +956,7 @@ gpgtar_create (char **inpattern, int encrypt, int sign)
   if (err)
     {
       log_error ("creating tarball '%s' failed: %s\n",
-                 es_fname_get (outstream), gpg_strerror (err));
+                 opt.outfile ? opt.outfile : "-", gpg_strerror (err));
       if (outstream && outstream != es_stdout)
         es_fclose (outstream);
       if (cipher_stream && cipher_stream != es_stdout)
index cee609c..f9a50e7 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -122,11 +122,15 @@ extract_directory (const char *dirname, tar_header_t hdr)
   if (fname[strlen (fname)-1] == '/')
     fname[strlen (fname)-1] = 0;
 
- /* Note that we don't need to care about EEXIST because we always
-     extract into a new hierarchy.  */
   if (! opt.dry_run && gnupg_mkdir (fname, "-rwx------"))
     {
       err = gpg_error_from_syserror ();
+      if (gpg_err_code (err) == GPG_ERR_EEXIST)
+        {
+          /* Ignore existing directories while extracting.  */
+          err = 0;
+        }
+
       if (gpg_err_code (err) == GPG_ERR_ENOENT)
         {
           /* Try to create the directory with parents but keep the
index cb2e700..8286d08 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 9c17139..23176dc 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /* GnuPG comes with a shell script gpg-zip which creates archive files
index 7d03719..8cbe80b 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GPGTAR_H
index 4cd4bd3..9a7e20d 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifdef HAVE_CONFIG_H
index fa42043..ca05f1d 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -27,7 +27,7 @@
 #include "mime-maker.h"
 
 
-/* All valid charachters in a header name.  */
+/* All valid characters in a header name.  */
 #define HEADER_NAME_CHARS  ("abcdefghijklmnopqrstuvwxyz" \
                             "ABCDEFGHIJKLMNOPQRSTUVWXYZ" \
                             "-01234567890")
@@ -48,13 +48,13 @@ struct part_s
 {
   struct part_s *next;  /* Next part in the current container.  */
   struct part_s *child; /* Child container.  */
-  char *mediatype;      /* Mediatype of the container (malloced). */
   char *boundary;       /* Malloced boundary string.  */
   header_t headers;     /* List of headers.  */
   header_t *headers_tail;/* Address of last header in chain.  */
   size_t bodylen;       /* Length of BODY.   */
   char *body;           /* Malloced buffer with the body.  This is the
                          * non-encoded value.  */
+  unsigned int partid;   /* The part ID.  */
 };
 typedef struct part_s *part_t;
 
@@ -71,6 +71,8 @@ struct mime_maker_context_s
   part_t mail;                 /* The MIME tree.  */
   part_t current_part;
 
+  unsigned int partid_counter; /* Counter assign part ids.  */
+
   int boundary_counter;  /* Used to create easy to read boundaries.  */
   char *boundary_suffix; /* Random string used in the boundaries.  */
 
@@ -114,7 +116,6 @@ release_parts (part_t part)
           part->headers = hdrnext;
         }
       release_parts (part->child);
-      xfree (part->mediatype);
       xfree (part->boundary);
       xfree (part->body);
       xfree (part);
@@ -161,12 +162,13 @@ dump_parts (part_t part, int level)
 
   for (; part; part = part->next)
     {
-      log_debug ("%*s[part]\n", level*2, "");
+      log_debug ("%*s[part %u]\n", level*2, "", part->partid);
       for (hdr = part->headers; hdr; hdr = hdr->next)
         {
           log_debug ("%*s%s: %s\n", level*2, "", hdr->name, hdr->value);
         }
-      log_debug ("%*s[body %zu bytes]\n", level*2, "", part->bodylen);
+      if (part->body)
+        log_debug ("%*s[body %zu bytes]\n", level*2, "", part->bodylen);
       if (part->child)
         {
           log_debug ("%*s[container]\n", level*2, "");
@@ -200,10 +202,26 @@ find_parent (part_t root, part_t needle)
   return NULL;
 }
 
+/* Find the part node from the PARTID.  */
+static part_t
+find_part (part_t root, unsigned int partid)
+{
+  part_t node, n;
+
+  for (node = root->child; node; node = node->next)
+    {
+      if (node->partid == partid)
+        return root;
+      if ((n = find_part (node, partid)))
+        return n;
+    }
+  return NULL;
+}
+
 
 /* Create a boundary string.  Outr codes is aware of the general
  * structure of that string (gebins with "=-=") so that
- * it can protect against accidently used boundaries within the
+ * it can protect against accidentally-used boundaries within the
  * content.   */
 static char *
 generate_boundary (mime_maker_t ctx)
@@ -301,6 +319,7 @@ add_header (part_t part, const char *name, const char *value)
   header_t hdr;
   size_t namelen;
   const char *s;
+  char *p;
 
   if (!value)
     {
@@ -339,6 +358,18 @@ add_header (part_t part, const char *name, const char *value)
       return err;
     }
 
+  for (p = hdr->value + strlen (hdr->value) - 1;
+       (p >= hdr->value
+        && (*p == ' ' || *p == '\t' || *p == '\n' || *p == '\r'));
+       p--)
+    *p = 0;
+  if (!(p >= hdr->value))
+    {
+      xfree (hdr->value);
+      xfree (hdr);
+      return gpg_error (GPG_ERR_INV_VALUE);  /* Only spaces.  */
+    }
+
   if (part)
     {
       *part->headers_tail = hdr;
@@ -369,7 +400,7 @@ mime_maker_add_header (mime_maker_t ctx, const char *name, const char *value)
   gpg_error_t err;
   part_t part, parent;
 
-  /* Hack to use this fucntion for a synacx check of NAME and VALUE.  */
+  /* Hack to use this function for a syntax check of NAME and VALUE.  */
   if (!ctx)
     return add_header (NULL, name, value);
 
@@ -378,19 +409,20 @@ mime_maker_add_header (mime_maker_t ctx, const char *name, const char *value)
     return err;
   part = ctx->current_part;
 
-  if (part->body && !parent)
+  if ((part->body || part->child) && !parent)
     {
       /* We already have a body but no parent.  Adding another part is
        * thus not possible.  */
       return gpg_error (GPG_ERR_CONFLICT);
     }
-  if (part->body)
+  if (part->body || part->child)
     {
       /* We already have a body and there is a parent.  We now append
        * a new part to the current container.  */
       part = xtrycalloc (1, sizeof *part);
       if (!part)
         return gpg_error_from_syserror ();
+      part->partid = ++ctx->partid_counter;
       part->headers_tail = &part->headers;
       log_assert (!ctx->current_part->next);
       ctx->current_part->next = part;
@@ -474,96 +506,139 @@ mime_maker_add_stream (mime_maker_t ctx, estream_t *stream_addr)
 }
 
 
-/* Add a new MIME container.  The caller needs to provide the media
- * and media-subtype in MEDIATYPE.  If MEDIATYPE is NULL
- * "multipart/mixed" is assumed.  This function will then add a
- * Content-Type header with that media type and an approriate boundary
- * string to the parent part.  */
+/* Add a new MIME container.  A container can be used instead of a
+ * body.  */
 gpg_error_t
-mime_maker_add_container (mime_maker_t ctx, const char *mediatype)
+mime_maker_add_container (mime_maker_t ctx)
 {
   gpg_error_t err;
   part_t part;
 
-  if (!mediatype)
-    mediatype = "multipart/mixed";
-
   err = ensure_part (ctx, NULL);
   if (err)
     return err;
   part = ctx->current_part;
+
   if (part->body)
     return gpg_error (GPG_ERR_CONFLICT); /* There is already a body. */
-  if (part->child || part->mediatype || part->boundary)
+  if (part->child || part->boundary)
     return gpg_error (GPG_ERR_CONFLICT); /* There is already a container. */
 
-  /* If a content type has not yet been set, do it now.  The boundary
-   * will be added while writing the headers.  */
-  if (!have_header (ctx->mail, "Content-Type"))
-    {
-      err = add_header (ctx->mail, "Content-Type", mediatype);
-      if (err)
-        return err;
-    }
-
   /* Create a child node.  */
   part->child = xtrycalloc (1, sizeof *part->child);
   if (!part->child)
     return gpg_error_from_syserror ();
   part->child->headers_tail = &part->child->headers;
 
-  part->mediatype = xtrystrdup (mediatype);
-  if (!part->mediatype)
-    {
-      err = gpg_error_from_syserror ();
-      xfree (part->child);
-      part->child = NULL;
-      return err;
-    }
-
   part->boundary = generate_boundary (ctx);
   if (!part->boundary)
     {
       err = gpg_error_from_syserror ();
       xfree (part->child);
       part->child = NULL;
-      xfree (part->mediatype);
-      part->mediatype = NULL;
       return err;
     }
 
   part = part->child;
+  part->partid = ++ctx->partid_counter;
   ctx->current_part = part;
 
   return 0;
 }
 
 
-/* Write the Content-Type header with the boundary value.  */
+/* Finish the current container.  */
+gpg_error_t
+mime_maker_end_container (mime_maker_t ctx)
+{
+  gpg_error_t err;
+  part_t parent;
+
+  err = ensure_part (ctx, &parent);
+  if (err)
+    return err;
+  if (!parent)
+    return gpg_error (GPG_ERR_CONFLICT); /* No container.  */
+  while (parent->next)
+    parent = parent->next;
+  ctx->current_part = parent;
+  return 0;
+}
+
+
+/* Return the part-ID of the current part. */
+unsigned int
+mime_maker_get_partid (mime_maker_t ctx)
+{
+  if (ensure_part (ctx, NULL))
+    return 0; /* Ooops.  */
+  return ctx->current_part->partid;
+}
+
+
+/* Write a header and handle emdedded LFs.  If BOUNDARY is not NULL it
+ * is appended to the value.  */
+/* Fixme: Add automatic line wrapping.  */
 static gpg_error_t
-write_ct_with_boundary (mime_maker_t ctx,
-                        const char *value, const char *boundary)
+write_header (mime_maker_t ctx, const char *name, const char *value,
+              const char *boundary)
 {
   const char *s;
 
-  if (!*value)
-    return gpg_error (GPG_ERR_INV_VALUE);  /* Empty string.  */
-
-  for (s=value + strlen (value) - 1;
-       (s >= value
-        && (*s == ' ' || *s == '\t' || *s == '\n'));
-       s--)
-    ;
-  if (!(s >= value))
-    return gpg_error (GPG_ERR_INV_VALUE);  /* Only spaces.  */
-
-  /* Fixme: We should use a dedicated header write functions which
-   * properly wraps the header.  */
-  es_fprintf (ctx->outfp, "Content-Type: %s%s\n\tboundary=\"%s\"\n",
-              value,
-              (*s == ';')? "":";",
-              boundary);
-  return 0;
+  es_fprintf (ctx->outfp, "%s: ", name);
+
+  /* Note that add_header made sure that VALUE does not end with a LF.
+   * Thus we can assume that a LF is followed by non-whitespace.  */
+  for (s = value; *s; s++)
+    {
+      if (*s == '\n')
+        es_fputs ("\r\n\t", ctx->outfp);
+      else
+        es_fputc (*s, ctx->outfp);
+    }
+  if (boundary)
+    {
+      if (s > value && s[-1] != ';')
+        es_fputc (';', ctx->outfp);
+      es_fprintf (ctx->outfp, "\r\n\tboundary=\"%s\"", boundary);
+    }
+
+  es_fputs ("\r\n", ctx->outfp);
+
+  return es_ferror (ctx->outfp)? gpg_error_from_syserror () : 0;
+}
+
+
+static gpg_error_t
+write_gap (mime_maker_t ctx)
+{
+  es_fputs ("\r\n", ctx->outfp);
+  return es_ferror (ctx->outfp)? gpg_error_from_syserror () : 0;
+}
+
+
+static gpg_error_t
+write_boundary (mime_maker_t ctx, const char *boundary, int last)
+{
+  es_fprintf (ctx->outfp, "\r\n--%s%s\r\n", boundary, last?"--":"");
+  return es_ferror (ctx->outfp)? gpg_error_from_syserror () : 0;
+}
+
+
+/* Fixme: Apply required encoding.  */
+static gpg_error_t
+write_body (mime_maker_t ctx, const void *body, size_t bodylen)
+{
+  const char *s;
+
+  for (s = body; bodylen; s++, bodylen--)
+    {
+      if (*s == '\n' && !(s > (const char *)body && s[-1] == '\r'))
+        es_fputc ('\r', ctx->outfp);
+      es_fputc (*s, ctx->outfp);
+    }
+
+  return es_ferror (ctx->outfp)? gpg_error_from_syserror () : 0;
 }
 
 
@@ -579,33 +654,39 @@ write_tree (mime_maker_t ctx, part_t parent, part_t part)
       for (hdr = part->headers; hdr; hdr = hdr->next)
         {
           if (part->child && !strcmp (hdr->name, "Content-Type"))
-            write_ct_with_boundary (ctx, hdr->value, part->boundary);
+            err = write_header (ctx, hdr->name, hdr->value, part->boundary);
           else
-            es_fprintf (ctx->outfp, "%s: %s\n", hdr->name, hdr->value);
+            err = write_header (ctx, hdr->name, hdr->value, NULL);
+          if (err)
+            return err;
         }
-      es_fputc ('\n', ctx->outfp);
+      err = write_gap (ctx);
+      if (err)
+        return err;
       if (part->body)
         {
-          if (es_write (ctx->outfp, part->body, part->bodylen, NULL))
-            return gpg_error_from_syserror ();
+          err = write_body (ctx, part->body, part->bodylen);
+          if (err)
+            return err;
         }
       if (part->child)
         {
           log_assert (part->boundary);
-          if (es_fprintf (ctx->outfp, "\n--%s\n", part->boundary) < 0)
-            return gpg_error_from_syserror ();
-          err = write_tree (ctx, part, part->child);
+          err = write_boundary (ctx, part->boundary, 0);
+          if (!err)
+            err = write_tree (ctx, part, part->child);
+          if (!err)
+            err = write_boundary (ctx, part->boundary, 1);
           if (err)
             return err;
-          if (es_fprintf (ctx->outfp, "\n--%s--\n", part->boundary) < 0)
-            return gpg_error_from_syserror ();
         }
 
       if (part->next)
         {
           log_assert (parent && parent->boundary);
-          if (es_fprintf (ctx->outfp, "\n--%s\n", parent->boundary) < 0)
-            return gpg_error_from_syserror ();
+          err = write_boundary (ctx, parent->boundary, 0);
+          if (err)
+            return err;
         }
     }
   return 0;
@@ -647,7 +728,7 @@ add_missing_headers (mime_maker_t ctx)
 }
 
 
-/* Create message from the tree MIME and write it to FP.  Noet that
+/* Create message from the tree MIME and write it to FP.  Note that
  * the output uses only a LF and a later called sendmail(1) is
  * expected to convert them to network line endings.  */
 gpg_error_t
@@ -665,3 +746,54 @@ mime_maker_make (mime_maker_t ctx, estream_t fp)
   ctx->outfp = NULL;
   return err;
 }
+
+
+/* Create a stream object from the MIME part identified by PARTID and
+ * store it at R_STREAM.  If PARTID identifies a container the entire
+ * tree is returned. Using that function may read stream objects
+ * which have been added as MIME bodies.  The caller must close the
+ * stream object. */
+gpg_error_t
+mime_maker_get_part (mime_maker_t ctx, unsigned int partid, estream_t *r_stream)
+{
+  gpg_error_t err;
+  part_t part;
+  estream_t fp;
+
+  *r_stream = NULL;
+
+  /* When the entire tree is requested, we make sure that all missing
+   * headers are applied.  We don't do that if only a part is
+   * requested because the additional headers (like Date:) will only
+   * be added to part 0 headers anyway. */
+  if (!partid)
+    {
+       err = add_missing_headers (ctx);
+       if (err)
+         return err;
+       part = ctx->mail;
+    }
+  else
+    part = find_part (ctx->mail, partid);
+
+  /* For now we use a memory stream object; however it would also be
+   * possible to create an object created on the fly while the caller
+   * is reading the returned stream.  */
+  fp = es_fopenmem (0, "w+b");
+  if (!fp)
+    return gpg_error_from_syserror ();
+
+  ctx->outfp = fp;
+  err = write_tree (ctx, NULL, part);
+  ctx->outfp = NULL;
+
+  if (!err)
+    {
+      es_rewind (fp);
+      *r_stream = fp;
+    }
+  else
+    es_fclose (fp);
+
+  return err;
+}
index b21f7dd..7aebdbd 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_MIME_MAKER_H
@@ -34,9 +34,13 @@ gpg_error_t mime_maker_add_header (mime_maker_t ctx,
                                    const char *name, const char *value);
 gpg_error_t mime_maker_add_body (mime_maker_t ctx, const char *string);
 gpg_error_t mime_maker_add_stream (mime_maker_t ctx, estream_t *stream_addr);
-gpg_error_t mime_maker_add_container (mime_maker_t ctx, const char *mediatype);
+gpg_error_t mime_maker_add_container (mime_maker_t ctx);
+gpg_error_t mime_maker_end_container (mime_maker_t ctx);
+unsigned int mime_maker_get_partid (mime_maker_t ctx);
 
 gpg_error_t mime_maker_make (mime_maker_t ctx, estream_t fp);
+gpg_error_t mime_maker_get_part (mime_maker_t ctx, unsigned int partid,
+                                 estream_t *r_stream);
 
 
 
index 5f3659e..264353c 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -64,6 +64,9 @@ struct mime_parser_context_s
   /* The callback to collect a signature.  */
   gpg_error_t (*collect_signature) (void *cookie, const char *data);
 
+  /* The RFC822 parser context is stored here during callbacks.  */
+  rfc822parse_t msg;
+
   /* Helper to convey error codes from user callbacks.  */
   gpg_error_t err;
 
@@ -123,7 +126,7 @@ show_message_parser_event (rfc822parse_event_t event)
 /* Do in-place decoding of quoted-printable data of LENGTH in BUFFER.
    Returns the new length of the buffer and stores true at R_SLBRK if
    the line ended with a soft line break; false is stored if not.
-   This fucntion asssumes that a complete line is passed in
+   This function asssumes that a complete line is passed in
    buffer.  */
 static size_t
 qp_decode (char *buffer, size_t length, int *r_slbrk)
@@ -189,6 +192,9 @@ parse_message_cb (void *opaque, rfc822parse_event_t event, rfc822parse_t msg)
   const char *s;
   int rc = 0;
 
+  /* Make the RFC822 parser context availabale for callbacks.  */
+  ctx->msg = msg;
+
   if (ctx->debug)
     show_message_parser_event (event);
 
@@ -475,6 +481,8 @@ parse_message_cb (void *opaque, rfc822parse_event_t event, rfc822parse_t msg)
         }
     }
 
+  ctx->msg = NULL;
+
   return rc;
 }
 
@@ -599,6 +607,44 @@ mime_parser_set_collect_signature (mime_parser_t ctx,
 }
 
 
+/* Return the RFC888 parser context.  This is only available inside a
+ * callback.  */
+rfc822parse_t
+mime_parser_rfc822parser (mime_parser_t ctx)
+{
+  return ctx->msg;
+}
+
+
+/* Helper for mime_parser_parse.  */
+static gpg_error_t
+process_part_data (mime_parser_t ctx, char *line, size_t *length)
+{
+  gpg_error_t err;
+  size_t nbytes;
+
+  if (!ctx->want_part)
+    return 0;
+  if (!ctx->part_data)
+    return 0;
+
+  if (ctx->decode_part == 1)
+    {
+      *length = qp_decode (line, *length, NULL);
+    }
+  else if (ctx->decode_part == 2)
+    {
+      log_assert (ctx->b64state);
+      err = b64dec_proc (ctx->b64state, line, *length, &nbytes);
+      if (err)
+        return err;
+      *length = nbytes;
+    }
+
+  return ctx->part_data (ctx->cookie, line, *length);
+}
+
+
 /* Read and parse a message from FP and call the appropriate
  * callbacks.  */
 gpg_error_t
@@ -607,7 +653,7 @@ mime_parser_parse (mime_parser_t ctx, estream_t fp)
   gpg_error_t err;
   rfc822parse_t msg = NULL;
   unsigned int lineno = 0;
-  size_t length, nbytes;
+  size_t length;
   char *line;
 
   line = ctx->line;
@@ -724,6 +770,10 @@ mime_parser_parse (mime_parser_t ctx, estream_t fp)
               ctx->collect_signeddata (ctx->cookie, line);
             }
           ctx->delay_hashing = 1;
+
+          err = process_part_data (ctx, line, &length);
+          if (err)
+            goto leave;
         }
       else if (ctx->pgpmime == PGPMIME_IN_SIGNATURE)
         {
@@ -739,26 +789,11 @@ mime_parser_parse (mime_parser_t ctx, estream_t fp)
           if (ctx->collect_signeddata)
             ctx->collect_signature (ctx->cookie, NULL);
         }
-      else if (ctx->want_part)
+      else
         {
-          if (ctx->part_data)
-            {
-              if (ctx->decode_part == 1)
-                {
-                  length = qp_decode (line, length, NULL);
-                }
-              else if (ctx->decode_part == 2)
-                {
-                  log_assert (ctx->b64state);
-                  err = b64dec_proc (ctx->b64state, line, length, &nbytes);
-                  if (err)
-                    goto leave;
-                  length = nbytes;
-                }
-              err = ctx->part_data (ctx->cookie, line, length);
-              if (err)
-                goto leave;
-            }
+          err = process_part_data (ctx, line, &length);
+          if (err)
+            goto leave;
         }
     }
 
index ab0d792..37a74a1 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_MIME_PARSER_H
@@ -48,5 +48,12 @@ void mime_parser_set_collect_signature (mime_parser_t ctx,
 gpg_error_t mime_parser_parse (mime_parser_t ctx, estream_t fp);
 
 
+/* Duplicated declaration of the RFC822 parser context. */
+struct rfc822parse_context;
+typedef struct rfc822parse_context *rfc822parse_t;
+
+rfc822parse_t mime_parser_rfc822parser (mime_parser_t ctx);
+
+
 
 #endif /*GNUPG_MIME_PARSER_H*/
diff --git a/tools/mk-tdata.c b/tools/mk-tdata.c
deleted file mode 100644 (file)
index 0aca035..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/* mk-tdata.c -  Create some simple random testdata
- * Copyright (C) 1998, 1999, 2000, 2001, 2006 Free Software Foundation, Inc.
- *
- * This file is free software; as a special exception the author gives
- * unlimited permission to copy and/or distribute it, with or without
- * modifications, as long as this notice is preserved.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-
-
-#ifndef RAND_MAX   /* for SunOS */
-#define RAND_MAX 32767
-#endif
-
-int
-main(int argc, char **argv)
-{
-  int i, c = 0;
-  int limit =0;
-  int char_mode = 0;
-
-#if HAVE_W32_SYSTEM
-  if (setmode (fileno (stdout), O_BINARY) == -1)
-    perror ("setmode");
-#endif
-
-  if (argc)
-    {
-      argc--;
-      argv++;
-    }
-
-  /* Check for option --char N */
-  if (argc > 1 && !strcmp (argv[0], "--char"))
-    {
-      char_mode = 1;
-      c = strtol (argv[1], NULL, 0);
-      argc -= 2;
-      argv += 2;
-    }
-
-  limit = argc ? atoi(argv[0]) : 0;
-
-  srand(getpid());
-
-  for (i=0; !limit || i < limit; i++ )
-    {
-      if (char_mode)
-        {
-          putchar (c);
-        }
-      else
-        {
-#ifdef HAVE_RAND
-          c = ((unsigned)(1 + (int) (256.0*rand()/(RAND_MAX+1.0)))-1);
-#else
-          c = ((unsigned)(1 + (int) (256.0*random()/(RAND_MAX+1.0)))-1);
-#endif
-          putchar (c);
-        }
-    }
-  return 0;
-}
index 215ab52..ee81b5d 100644 (file)
@@ -13,7 +13,7 @@
  * GNU Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * License along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 
index c5579fe..966c91e 100644 (file)
@@ -13,7 +13,7 @@
  * GNU Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * License along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef RFC822PARSE_H
index 2266521..56f2500 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
index 5f57854..4d8ae98 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_SEND_MAIL_H
index 3593598..8648bb5 100644 (file)
@@ -12,7 +12,7 @@
  * General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 /* Hacked by Moritz Schulte <moritz@g10code.com>.
index b2d8f5c..dc680f5 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 
index b226357..44ff43c 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifdef HAVE_CONFIG_H
index 59141fc..12ec089 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -26,6 +26,7 @@
 #include "ccparray.h"
 #include "exectool.h"
 #include "gpg-wks.h"
+#include "rfc822parse.h"
 #include "mime-parser.h"
 
 
@@ -41,6 +42,7 @@
 /* Data for a received object.  */
 struct receive_ctx_s
 {
+  mime_parser_t parser;
   estream_t encrypted;
   estream_t plaintext;
   estream_t signeddata;
@@ -49,6 +51,8 @@ struct receive_ctx_s
   estream_t wkd_data;
   unsigned int collect_key_data:1;
   unsigned int collect_wkd_data:1;
+  unsigned int draft_version_2:1;  /* This is a draft version 2 request.  */
+  unsigned int multipart_mixed_seen:1;
 };
 typedef struct receive_ctx_s *receive_ctx_t;
 
@@ -59,7 +63,8 @@ decrypt_data_status_cb (void *opaque, const char *keyword, char *args)
 {
   receive_ctx_t ctx = opaque;
   (void)ctx;
-  log_debug ("%s: %s\n", keyword, args);
+  if (DBG_CRYPTO)
+    log_debug ("gpg status: %s %s\n", keyword, args);
 }
 
 
@@ -86,6 +91,7 @@ decrypt_data (receive_ctx_t ctx)
 
   ccparray_init (&ccp, 0);
 
+  ccparray_put (&ccp, "--no-options");
   /* We limit the output to 64 KiB to avoid DoS using compression
    * tricks.  A regular client will anyway only send a minimal key;
    * that is one w/o key signatures and attribute packets.  */
@@ -113,7 +119,7 @@ decrypt_data (receive_ctx_t ctx)
       goto leave;
     }
 
-  if (opt.debug)
+  if (DBG_CRYPTO)
     {
       es_rewind (ctx->plaintext);
       log_debug ("plaintext: '");
@@ -133,7 +139,8 @@ verify_signature_status_cb (void *opaque, const char *keyword, char *args)
 {
   receive_ctx_t ctx = opaque;
   (void)ctx;
-  log_debug ("%s: %s\n", keyword, args);
+  if (DBG_CRYPTO)
+    log_debug ("gpg status: %s %s\n", keyword, args);
 }
 
 /* Verify the signed data.  */
@@ -151,11 +158,13 @@ verify_signature (receive_ctx_t ctx)
 
   ccparray_init (&ccp, 0);
 
+  ccparray_put (&ccp, "--no-options");
   ccparray_put (&ccp, "--batch");
   if (opt.verbose)
     ccparray_put (&ccp, "--verbose");
   ccparray_put (&ccp, "--enable-special-filenames");
   ccparray_put (&ccp, "--status-fd=2");
+  ccparray_put (&ccp, "--always-trust"); /* To avoid trustdb checks.  */
   ccparray_put (&ccp, "--verify");
   ccparray_put (&ccp, "--");
   ccparray_put (&ccp, "-&@INEXTRA@");
@@ -177,6 +186,8 @@ verify_signature (receive_ctx_t ctx)
       goto leave;
     }
 
+  log_debug ("Fixme: Verification result is not used\n");
+
  leave:
   xfree (argv);
 }
@@ -264,6 +275,22 @@ new_part (void *cookie, const char *mediatype, const char *mediasubtype)
         }
       else
         {
+          rfc822parse_t msg = mime_parser_rfc822parser (ctx->parser);
+          if (msg)
+            {
+              char *value;
+              size_t valueoff;
+
+              value = rfc822parse_get_field (msg, "Wks-Draft-Version",
+                                             -1, &valueoff);
+              if (value)
+                {
+                  if (atoi(value+valueoff) >= 2 )
+                    ctx->draft_version_2 = 1;
+                  free (value);
+                }
+            }
+
           ctx->key_data = es_fopenmem (0, "w+b");
           if (!ctx->key_data)
             {
@@ -303,6 +330,19 @@ new_part (void *cookie, const char *mediatype, const char *mediasubtype)
             }
         }
     }
+  else if (!strcmp (mediatype, "multipart")
+           && !strcmp (mediasubtype, "mixed"))
+    {
+      ctx->multipart_mixed_seen = 1;
+    }
+  else if (!strcmp (mediatype, "text"))
+    {
+      /* Check that we receive a text part only after a
+       * application/mixed.  This is actually a too simple test and we
+       * should eventually employ a strict MIME structure check.  */
+      if (!ctx->multipart_mixed_seen)
+        err = gpg_error (GPG_ERR_UNEXPECTED_MSG);
+    }
   else
     {
       log_error ("unexpected '%s/%s' message part\n", mediatype, mediasubtype);
@@ -320,7 +360,7 @@ part_data (void *cookie, const void *data, size_t datalen)
 
   if (data)
     {
-      if (opt.debug)
+      if (DBG_MIME)
         log_debug ("part_data: '%.*s'\n", (int)datalen, (const char*)data);
       if (ctx->collect_key_data)
         {
@@ -337,7 +377,7 @@ part_data (void *cookie, const void *data, size_t datalen)
     }
   else
     {
-      if (opt.debug)
+      if (DBG_MIME)
         log_debug ("part_data: finished\n");
       ctx->collect_key_data = 0;
       ctx->collect_wkd_data = 0;
@@ -353,7 +393,8 @@ gpg_error_t
 wks_receive (estream_t fp,
              gpg_error_t (*result_cb)(void *opaque,
                                       const char *mediatype,
-                                      estream_t data),
+                                      estream_t data,
+                                      unsigned int flags),
              void *cb_data)
 {
   gpg_error_t err;
@@ -361,6 +402,7 @@ wks_receive (estream_t fp,
   mime_parser_t parser;
   estream_t plaintext = NULL;
   int c;
+  unsigned int flags = 0;
 
   ctx = xtrycalloc (1, sizeof *ctx);
   if (!ctx)
@@ -369,14 +411,16 @@ wks_receive (estream_t fp,
   err = mime_parser_new (&parser, ctx);
   if (err)
     goto leave;
-  if (opt.verbose > 1 || opt.debug)
-    mime_parser_set_verbose (parser, opt.debug? 10: 1);
+  if (DBG_PARSER)
+    mime_parser_set_verbose (parser, 1);
   mime_parser_set_new_part (parser, new_part);
   mime_parser_set_part_data (parser, part_data);
   mime_parser_set_collect_encrypted (parser, collect_encrypted);
   mime_parser_set_collect_signeddata (parser, collect_signeddata);
   mime_parser_set_collect_signature (parser, collect_signature);
 
+  ctx->parser = parser;
+
   err = mime_parser_parse (parser, fp);
   if (err)
     goto leave;
@@ -385,6 +429,11 @@ wks_receive (estream_t fp,
     log_info ("key data found\n");
   if (ctx->wkd_data)
     log_info ("wkd data found\n");
+  if (ctx->draft_version_2)
+    {
+      log_info ("draft version 2 requested\n");
+      flags |= WKS_RECEIVE_DRAFT2;
+    }
 
   if (ctx->plaintext)
     {
@@ -412,7 +461,7 @@ wks_receive (estream_t fp,
 
   if (ctx->key_data)
     {
-      if (opt.debug)
+      if (DBG_MIME)
         {
           es_rewind (ctx->key_data);
           log_debug ("Key: '");
@@ -424,14 +473,15 @@ wks_receive (estream_t fp,
       if (result_cb)
         {
           es_rewind (ctx->key_data);
-          err = result_cb (cb_data, "application/pgp-keys", ctx->key_data);
+          err = result_cb (cb_data, "application/pgp-keys",
+                           ctx->key_data, flags);
           if (err)
             goto leave;
         }
     }
   if (ctx->wkd_data)
     {
-      if (opt.debug)
+      if (DBG_MIME)
         {
           es_rewind (ctx->wkd_data);
           log_debug ("WKD: '");
@@ -443,7 +493,8 @@ wks_receive (estream_t fp,
       if (result_cb)
         {
           es_rewind (ctx->wkd_data);
-          err = result_cb (cb_data, "application/vnd.gnupg.wks", ctx->wkd_data);
+          err = result_cb (cb_data, "application/vnd.gnupg.wks",
+                           ctx->wkd_data, flags);
           if (err)
             goto leave;
         }
@@ -453,6 +504,7 @@ wks_receive (estream_t fp,
  leave:
   es_fclose (plaintext);
   mime_parser_release (parser);
+  ctx->parser = NULL;
   es_fclose (ctx->encrypted);
   es_fclose (ctx->plaintext);
   es_fclose (ctx->signeddata);
index 8d9f92b..183bdcd 100644 (file)
@@ -14,7 +14,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -63,3 +63,111 @@ wks_send_mime (mime_maker_t mime)
   es_fclose (mail);
   return err;
 }
+
+
+/* Parse the policy flags by reading them from STREAM and storing them
+ * into FLAGS.  If IGNORE_UNKNOWN is iset unknown keywords are
+ * ignored.  */
+gpg_error_t
+wks_parse_policy (policy_flags_t flags, estream_t stream, int ignore_unknown)
+{
+  enum tokens {
+    TOK_MAILBOX_ONLY,
+    TOK_DANE_ONLY,
+    TOK_AUTH_SUBMIT,
+    TOK_MAX_PENDING
+  };
+  static struct {
+    const char *name;
+    enum tokens token;
+  } keywords[] = {
+    { "mailbox-only", TOK_MAILBOX_ONLY },
+    { "dane-only",    TOK_DANE_ONLY    },
+    { "auth-submit",  TOK_AUTH_SUBMIT  },
+    { "max-pending",  TOK_MAX_PENDING  }
+  };
+  gpg_error_t err = 0;
+  int lnr = 0;
+  char line[1024];
+  char *p, *keyword, *value;
+  int i, n;
+
+  memset (flags, 0, sizeof *flags);
+
+  while (es_fgets (line, DIM(line)-1, stream) )
+    {
+      lnr++;
+      n = strlen (line);
+      if (!n || line[n-1] != '\n')
+        {
+          err = gpg_error (*line? GPG_ERR_LINE_TOO_LONG
+                           : GPG_ERR_INCOMPLETE_LINE);
+          break;
+        }
+      trim_trailing_spaces (line);
+      /* Skip empty and comment lines. */
+      for (p=line; spacep (p); p++)
+        ;
+      if (!*p || *p == '#')
+        continue;
+
+      if (*p == ':')
+        {
+          err = gpg_error (GPG_ERR_SYNTAX);
+          break;
+        }
+
+      keyword = p;
+      value = NULL;
+      if ((p = strchr (p, ':')))
+        {
+          /* Colon found: Keyword with value.  */
+          *p++ = 0;
+          for (; spacep (p); p++)
+            ;
+          if (!*p)
+            {
+              err = gpg_error (GPG_ERR_MISSING_VALUE);
+              break;
+            }
+          value = p;
+        }
+
+      for (i=0; i < DIM (keywords); i++)
+        if (!ascii_strcasecmp (keywords[i].name, keyword))
+          break;
+      if (!(i < DIM (keywords)))
+        {
+          if (ignore_unknown)
+            continue;
+          err = gpg_error (GPG_ERR_INV_NAME);
+          break;
+       }
+
+      switch (keywords[i].token)
+        {
+        case TOK_MAILBOX_ONLY: flags->mailbox_only = 1; break;
+        case TOK_DANE_ONLY:    flags->dane_only = 1;    break;
+        case TOK_AUTH_SUBMIT:  flags->auth_submit = 1;  break;
+        case TOK_MAX_PENDING:
+          if (!value)
+            {
+              err = gpg_error (GPG_ERR_SYNTAX);
+              goto leave;
+            }
+          /* FIXME: Define whether these are seconds, hours, or days
+           * and decide whether to allow other units.  */
+          flags->max_pending = atoi (value);
+          break;
+        }
+    }
+
+  if (!err && !es_feof (stream))
+    err = gpg_error_from_syserror ();
+    leave:
+  if (err)
+    log_error ("error reading '%s', line %d: %s\n",
+               es_fname_get (stream), lnr, gpg_strerror (err));
+
+  return err;
+}