aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRepo Admin <[email protected]>2000-05-30 15:31:45 +0000
committerRepo Admin <[email protected]>2000-05-30 15:31:45 +0000
commitea887464b16894a010e0a5c044fd1fae15dad16d (patch)
tree8c833d519618df98f749d93b0f43aed90fa3e9d1
parentSee ChangeLog: Wed Sep 15 16:22:17 CEST 1999 Werner Koch (diff)
downloadgnupg-ea887464b16894a010e0a5c044fd1fae15dad16d.tar.gz
gnupg-ea887464b16894a010e0a5c044fd1fae15dad16d.zip
This commit was manufactured by cvs2svn to create branch 'ePit-1-0'.
-rw-r--r--AUTHORS92
-rw-r--r--BUGS60
-rw-r--r--ChangeLog128
-rw-r--r--INSTALL18
-rw-r--r--Makefile.am32
-rw-r--r--NEWS79
-rw-r--r--NOTES19
-rw-r--r--README25
-rw-r--r--THANKS228
-rw-r--r--TODO23
-rw-r--r--VERSION2
-rw-r--r--acconfig.h1
-rw-r--r--acinclude.m464
-rw-r--r--checks/ChangeLog15
-rw-r--r--checks/Makefile.am16
-rwxr-xr-xchecks/defs.inc3
-rwxr-xr-xchecks/mkdemodirs12
-rw-r--r--cipher/ChangeLog134
-rw-r--r--cipher/Makefile.am26
-rw-r--r--cipher/blowfish.c12
-rw-r--r--cipher/cast5.c13
-rw-r--r--cipher/des.c218
-rw-r--r--cipher/dsa.c18
-rw-r--r--cipher/elgamal.c138
-rw-r--r--cipher/md.c2
-rw-r--r--cipher/md5.c8
-rw-r--r--cipher/primegen.c27
-rw-r--r--cipher/random.c199
-rw-r--r--cipher/random.h2
-rw-r--r--cipher/rmd160.c8
-rw-r--r--cipher/rndegd.c9
-rw-r--r--cipher/rndlinux.c6
-rw-r--r--cipher/rndunix.c15
-rw-r--r--cipher/rndw32.c958
-rw-r--r--cipher/sha1.c8
-rw-r--r--cipher/tiger.c8
-rw-r--r--cipher/twofish.c28
-rw-r--r--configure.in133
-rw-r--r--doc/ChangeLog69
-rw-r--r--doc/DETAILS145
-rw-r--r--doc/FAQ64
-rw-r--r--doc/HACKING70
-rw-r--r--doc/Makefile.am8
-rw-r--r--doc/OpenPGP9
-rw-r--r--doc/README.W3296
-rw-r--r--doc/gpg.sgml214
-rw-r--r--doc/gph/Makefile.am4
-rw-r--r--doc/gph/signatures.jpg.asc232
-rw-r--r--g10/ChangeLog468
-rw-r--r--g10/Makefile.am2
-rw-r--r--g10/OPTIONS2
-rw-r--r--g10/armor.c103
-rw-r--r--g10/build-packet.c55
-rw-r--r--g10/cipher.c7
-rw-r--r--g10/compress.c2
-rw-r--r--g10/dearmor.c2
-rw-r--r--g10/delkey.c9
-rw-r--r--g10/encode.c7
-rw-r--r--g10/encr-data.c4
-rw-r--r--g10/export.c33
-rw-r--r--g10/filter.h6
-rw-r--r--g10/free-packet.c4
-rw-r--r--g10/g10.c188
-rw-r--r--g10/getkey.c111
-rw-r--r--g10/helptext.c25
-rw-r--r--g10/hkp.c37
-rw-r--r--g10/hkp.h2
-rw-r--r--g10/import.c108
-rw-r--r--g10/kbnode.c4
-rw-r--r--g10/keydb.h4
-rw-r--r--g10/keyedit.c162
-rw-r--r--g10/keygen.c843
-rw-r--r--g10/keyid.c2
-rw-r--r--g10/keylist.c96
-rw-r--r--g10/ks-proto.h2
-rw-r--r--g10/main.h21
-rw-r--r--g10/mainproc.c84
-rw-r--r--g10/mdfilter.c2
-rw-r--r--g10/misc.c2
-rw-r--r--g10/openfile.c77
-rw-r--r--g10/options.h9
-rw-r--r--g10/options.skel5
-rw-r--r--g10/packet.h8
-rw-r--r--g10/parse-packet.c83
-rw-r--r--g10/passphrase.c12
-rw-r--r--g10/pkclist.c158
-rw-r--r--g10/plaintext.c18
-rw-r--r--g10/pubkey-enc.c23
-rw-r--r--g10/pubring.asc675
-rw-r--r--g10/revoke.c346
-rw-r--r--g10/ringedit.c63
-rw-r--r--g10/seckey-cert.c6
-rw-r--r--g10/seskey.c2
-rw-r--r--g10/sig-check.c81
-rw-r--r--g10/sign.c34
-rw-r--r--g10/signal.c15
-rw-r--r--g10/skclist.c2
-rw-r--r--g10/status.c85
-rw-r--r--g10/status.h16
-rw-r--r--g10/tdbdump.c7
-rw-r--r--g10/tdbio.c22
-rw-r--r--g10/tdbio.h5
-rw-r--r--g10/textfilter.c38
-rw-r--r--g10/trustdb.c287
-rw-r--r--g10/trustdb.h3
-rw-r--r--g10/verify.c89
-rw-r--r--include/ChangeLog17
-rw-r--r--include/cipher.h4
-rw-r--r--include/errors.h1
-rw-r--r--include/http.h5
-rw-r--r--include/iobuf.h1
-rw-r--r--include/ttyio.h1
-rw-r--r--include/types.h7
-rw-r--r--include/util.h11
-rw-r--r--mpi/ChangeLog61
-rw-r--r--mpi/Makefile.am34
-rw-r--r--mpi/config.links82
-rw-r--r--mpi/longlong.h14
-rw-r--r--mpi/mpi-internal.h17
-rw-r--r--mpi/mpi-mpow.c129
-rw-r--r--mpi/mpi-pow.c19
-rw-r--r--mpi/mpih-div.c2
-rw-r--r--mpi/mpih-mul.c116
-rw-r--r--mpi/power/distfiles7
-rw-r--r--mpi/power/mpih-add1.S86
-rw-r--r--mpi/power/mpih-lshift.S64
-rw-r--r--mpi/power/mpih-mul1.S115
-rw-r--r--mpi/power/mpih-mul2.S130
-rw-r--r--mpi/power/mpih-mul3.S135
-rw-r--r--mpi/power/mpih-rshift.S64
-rw-r--r--mpi/power/mpih-sub1.S87
-rw-r--r--po/ChangeLog77
-rw-r--r--po/POTFILES.in1
-rw-r--r--po/de.glo122
-rw-r--r--po/de.po2080
-rw-r--r--po/eo.po3658
-rw-r--r--po/es_ES.po1885
-rw-r--r--po/fr.po1627
-rw-r--r--po/id.po3647
-rw-r--r--po/it.po1521
-rw-r--r--po/ja.po3643
-rw-r--r--po/nl.po3707
-rw-r--r--po/pl.po1697
-rw-r--r--po/pt_BR.po1635
-rw-r--r--po/pt_PT.po1544
-rw-r--r--po/ru.po1515
-rw-r--r--po/sv.po3732
-rw-r--r--scripts/ChangeLog28
-rwxr-xr-xscripts/autogen.sh20
-rwxr-xr-xscripts/commit30
-rwxr-xr-xscripts/config.guess186
-rwxr-xr-xscripts/config.sub49
-rw-r--r--scripts/distfiles2
-rw-r--r--scripts/gnupg.spec.in84
-rw-r--r--scripts/gnupgbug185
-rwxr-xr-xscripts/mk-w32-dist28
-rw-r--r--tools/ChangeLog4
-rw-r--r--tools/Makefile.am4
-rwxr-xr-xtools/ring-a-party103
-rw-r--r--util/ChangeLog69
-rw-r--r--util/Makefile.am8
-rw-r--r--util/argparse.c2
-rw-r--r--util/dotlock.c41
-rw-r--r--util/errors.c1
-rw-r--r--util/http.c40
-rw-r--r--util/iobuf.c38
-rw-r--r--util/logger.c6
-rw-r--r--util/miscutil.c2
-rw-r--r--util/secmem.c20
-rw-r--r--util/simple-gettext.c29
-rw-r--r--util/strgutil.c12
-rw-r--r--util/ttyio.c40
-rw-r--r--util/w32reg.c88
173 files changed, 34587 insertions, 8096 deletions
diff --git a/AUTHORS b/AUTHORS
index 8c5bfeb61..007d41f90 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,84 +1,59 @@
-Authors of GNU Privacy Guard (GnuPG)
-====================================
+Program: GnuPG
+Maintainer: Werner Koch <[email protected]>
-GNUPG Werner Koch 1998-02-23
-Assigns GNU Privacy Guard and future changes.
-Designed and implemented GnuPG.
+Authors
+=======
+Daniel Resare <[email protected]> xxxx [sv]
-GNUPG Matthew Skala 1998-08-10
-Disclaims changes.
-Wrote cipher/twofish.c.
+Gael Queri <[email protected]> Translations [fr]
+ (fixed a lot of typos)
-GNUPG Natural Resources Canada 1998-08-11
-Disclaims changes by Matthew Skala.
+Gregory Steuck <[email protected]> Translations [ru]
+Edmund GRIMLEY EVANS <[email protected]> Translations [eo]
-GNUPG Michael Roth Germany 1998-09-17
-Assigns changes.
-Wrote cipher/des.c.
-Changes and bug fixes all over the place.
+Ivo Timmermans <[email protected]> Translations [nl]
+Janusz Aleksander Urbanowicz <[email protected]> Translations [po]
-GNUPG Niklas Hernaeus 1998-09-18
-Disclaims changes.
-Weak key patches.
+Michael Roth <[email protected]> Assignment
+ (wrote cipher/des.c., changes and bug fixes all over the place)
+Marco d'Itri <[email protected]> Translations [it]
-GNUPG R�mi Guyomarch 1999-05-25
-Assigns past and future changes. (g10/compress.c, g10/encr-data.c,
-g10/free-packet.c, g10/mdfilter.c, g10/plaintext.c, util/iobuf.c)
+Matthew Skala <[email protected]> Disclaimer
+ (wrote cipher/twofish.c)
+Niklas Hernaeus <[email protected]> Disclaimer
+ (weak key patches)
-TRANSLATIONS Marco d'Itri 1997-02-22
-Disclaimer. [it]
+Pedro Morais <[email protected]> Translations [pt_BR]
+R�mi Guyomarch <[email protected]> Assignment
+ (g10/compress.c, g10/encr-data.c,
+ g10/free-packet.c, g10/mdfilter.c, g10/plaintext.c, util/iobuf.c)
-TRANSLATIONS Gael Queri 1998-09-08
-Disclaimer. [fr]
-Fixed a lot of typos.
+Tedi Heriyanto <[email protected]> Translations [id]
+Thiago Jung Bauermann <[email protected]> Translations [pt_BR]
-TRANSLATIONS Walter Koch 1998-09-08
-Disclaimer. [de]
+Urko Lusa <[email protected]> Translations [es_ES]
+Walter Koch <[email protected]> Translations [de]
-TRANSLATIONS Gregory Steuck 1998-10-20
-Disclaimer. [ru]
+Werner Koch <[email protected]> Assignment
+ (started the whole thing)
+Yosiaki IIDA <[email protected]> Translations [ja]
-TRANSLATIONS Urko Lusa
-Disclaimer. [es_ES]
-TRANSLATIONS Thiago Jung Bauermann
-Disclaimer. [pt_BR]
+Other legal information
+=======================
+Natural Resources Canada disclaims changes by Matthew Skala.
-TRANSLATIONS Pedro Morais
-??????????. [pt_PT]
-
-
-TRANSLATIONS Janusz Aleksander Urbanowicz 1999-01-09
-Disclaimer. [po]
-
-
-
-More credits
-============
This program uses the zlib compression library written by
Jean-loup Gailly and Mark Adler.
@@ -87,7 +62,8 @@ Torbjorn Granlund <[email protected]>.
The keybox implementation is based on GDBM 1.7.3 by Philip A. Nelson.
-The file cipher/rndunix.c is based on rndunix.c from cryptlib.
+The files cipher/rndunix.c and cipher/rndw32.c are based on rndunix.c
+and rndwin32.c from cryptlib.
Copyright Peter Gutmann, Paul Kendall, and Chris Wedgwood 1996-1999.
The files in debian/ are by James Troup who is the Debian maintainer
diff --git a/BUGS b/BUGS
index 81fdcf1bd..df428bde4 100644
--- a/BUGS
+++ b/BUGS
@@ -1,58 +1,8 @@
- List of some known bugs
- -------------------------
+Please see
-This following list contains those bugs which we are aware of. Please
-make sure that bugs you report are not listed here. If you can fix one
-of these bugs/limitations we will certainly be glad to receive a patch.
-(Please note that we need a disclaimer if a patch is longer than about
-10 lines; but it may help anyway to show us where we have to fix it. Do
-an "info standards" to find out why a disclaimer is needed for GNU.)
+ http://www.gnupg.org/buglist.html
-Format: severity: [ *] to [***], no, first reported, by, version.
-Bugs which are marked with "FIX: yyyy-mm-dd" are fixed in the CVS
-and after about half a day in the rsync snapshots.
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+for a list know bugs in GnuPG. We don't distribute this list anymore
+with the package because a more current one with notes in which version
+the bug is fixed can be found online.
-[ *] #3
- --list-packets should continue even w/o a passphrase (or in batch
- mode). Maybe we have to move it to a separate program??
-
-[ *] #4 1999-01-13 <[email protected]> 0.9.1
- v3 key 'expiration date' problem:
- 1. generate a key, set expiration date
- 2. <do other things, deleting etc.>
- 3. edit a v3 secret key, try to set expiration date
- - output: "You can't change...
- 4. save
- 5. key has expiration date from 1. and gpg reports that pubkey
- and seckey differ.
- The for loop the exp.date is set before v3 detection?
- [is this bug still alive? - can someone please check it]
-
-[ **] #6 1999-02-22 <[email protected]> 0.9.3
- Bus error on IRIX 6.4: Crash while doing a keygen. I think while creating
- the prime. Other bus errors are reported when doing a "gpg README"
- on sparc-solaris2.6.
- --> Solaris fixed.
- --> IRIX bug still there but someone should test this again!
-
-[ *] #18 1999-05-27 <[email protected]> 0.9.7
- rndunix hangs on hp/ux. The problem is related to my_plcose which is
- not always called. (I suggest to use EGD instead of rndunix.)
-
-[ *] #22 1999-07-22
- Solaris make has problems with the generated POTFILES - seems to be a
- gettext bug. Use GNU gmake as a workaround.
-
-[ *] #23 1999-09-03 <[email protected]> 0.9.11
- Only the first signature of a cleartext sig seems to be verified.
- Can't fix it in 1.0 because the code is semi-frozen.
- HMMM: Can't reprodude the bug here - it just works. Check wehther
-
-[ *] #24 1999-09-05 <[email protected]> 0.9.11
- Does not link libc and libz expect when removing all "-lc -lz" except
- for the last one. This happens on some systems when not using the
- GNU ld. This need to be fixed in libtool.
-
-
-Next #25
diff --git a/ChangeLog b/ChangeLog
index 9cbb59962..70039b8bb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,128 @@
-Wed Sep 15 16:22:17 CEST 1999 Werner Koch <[email protected]>
+Tue May 30 16:37:55 CEST 2000 Werner Koch <[email protected]>
+
+ Version 1.0.1-ePit-1
+
+Sun May 28 13:55:17 CEST 2000 Werner Koch <[email protected]>
+
+ * acinclude.m4 (GNUPG_SYS_NM_PARSE): Added BSDI support.
+ (GNUPG_CHECK_RDYNAMIC): Ditto.
+
+Wed Apr 19 10:57:26 CEST 2000 Werner Koch <[email protected]>
+
+ * acconfig.h (HAVE_MLOCK): Added
+
+Wed Mar 22 13:50:24 CET 2000 Werner Koch <[email protected]>
+
+ * acinclude.m4 (GNUPG_CHECK_MLOCK): Changed the way to test for
+ librt. Test suggested by Jeff Long.
+
+Fri Mar 17 17:50:25 CET 2000 Werner Koch <[email protected]>
+
+ * acinclude.m4 (GNUPG_CHECK_MLOCK): Do librt check only when
+ we can't link a test program. This way GNU systems don't need
+ to link against linrt.
+ (GNUPG_CHECK_IPC): Fixed use of TRY_COMPILE macro. From Tim Mooney.
+
+2000-03-14 12:07:54 Werner Koch ([email protected])
+
+ * acinclude.m4 (GNUPG_SYS_SYMBOL_UNDERSCORE): Add support for
+ DJGPP.
+ (GNUPG_CHECK_MLOCK): Check whether mlock sits in librt.
+ * configure.in: Add a test for unisgned long long.
+
+Tue Mar 7 18:45:31 CET 2000 Werner Koch <[email protected]>
+
+ * acinclude.m4 (GNUPG_CHECK_RDYNAMIC): Add NetBSD. By Thomas Klausner.
+ * configure.in (DYNLINK_MOD_CFLAGS): Set different for NetBSD.
+
+Thu Mar 2 15:37:46 CET 2000 Werner Koch <[email protected]>
+
+ * configure.in: Add check for clock_gettime
+
+Wed Feb 23 10:07:57 CET 2000 Werner Koch <[email protected]>
+
+ * configure.in (ALL_LINGUAS): Add nl.
+
+Wed Feb 16 16:25:09 CET 2000 Werner Koch <[email protected]>
+
+ * configure.in (ALL_LINGUAS): Add Esperanto.
+
+Wed Feb 16 14:09:00 CET 2000 Werner Koch <[email protected]>
+
+ * configure.in (ALL_LINGUAS): Add sv and ja.
+
+ * AUTHORS: Converted to a more compact format.
+
+ * INSTALL: Wrote a note about a Solaris problem.
+
+Thu Feb 10 17:39:44 CET 2000 Werner Koch <[email protected]>
+
+ * configure.in: Use /usr/local for CFLAGS and LDFLAGS when
+ target is freebsd. By R�mi.
+
+Thu Jan 13 19:31:58 CET 2000 Werner Koch <[email protected]>
+
+ * configure.in: Do not set development version when the version has
+ a dash in it. Suggested by Dave Dykstra.
+Thu Dec 16 10:07:58 CET 1999 Werner Koch <[email protected]>
+
+ * VERSION: Set to 1.0.1.
+
+ * configure.in: Removed substitution for doc/gph/Makefile.
+ Do all the gcc warning only in maintainer mode.
+
+Thu Dec 9 10:31:05 CET 1999 Werner Koch <[email protected]>
+
+ * INSTALL: Add a hint for AIX. By Jos Backus.
+
+Sat Dec 4 12:30:28 CET 1999 Werner Koch <[email protected]>
+
+ * configure.in (dlopen): Use CHECK_FUNC for a test of dlopen in libc.
+ Suggested by Alexandre Oliva.
+ (-Wall): Moved the settting of gcc warning options near to the end
+ so that tests don't get confused. Suggested by Paul D. Smith.
+
+Mon Nov 22 11:14:53 CET 1999 Werner Koch <[email protected]>
+
+ * BUGS: Replaced content with a link to the online list.
+
+Fri Nov 12 20:33:19 CET 1999 Werner Koch <[email protected]>
+
+ * README: Fixed a type and add a note about the gnupg-i18n ML.
+
+Thu Oct 28 16:08:20 CEST 1999 Werner Koch <[email protected]>
+
+ * acinclude.m4, configure.in (GNUPG_CHECK_GNUMAKE): New.
+
+Sat Oct 9 20:34:41 CEST 1999 Werner Koch <[email protected]>
+
+ * configure.in: Tweaked handling of random modules and removed
+ dummy support for libgcrypt.
+ * Makefile.am: Removed libgcrypt support.
+ * cgrypt/ : Removed.
+
+ * Makefile.am: Removed libtool.
+
+Fri Oct 8 20:32:01 CEST 1999 Werner Koch <[email protected]>
+
+ * configure.in: Fixed quoting in test for development version.
+
+ * THANKS: Add entries for Michael, Brenno and J Horacio who did
+ very nice Howto documents - I apoligize for forgetting to mention them
+ earlier.
+
+Tue Sep 28 20:54:37 CEST 1999 Werner Koch <[email protected]>
+
+ * textfilter.c (copy_clearsig_text) [__MINGW32__): Use CR,LF.
+
+Fri Sep 17 12:56:42 CEST 1999 Werner Koch <[email protected]>
+
+ * configure.in: Add "-lcap" when capabilities are requested.
+ Add the conditional CROSS_COMPILING.
+ * Makefile.am: Don't use checks when CROSS_COMPILING.
+
+Wed Sep 15 16:22:17 CEST 1999 Werner Koch <[email protected]>
* configure.in (ALL_LINGUAS): Add pt_PT.
@@ -8,12 +131,10 @@ Wed Sep 15 16:22:17 CEST 1999 Werner Koch <[email protected]>
Tue Sep 7 17:08:10 CEST 1999 Werner Koch <[email protected]>
-
* VERSION: Set to 1.0.0.
Mon Sep 6 19:59:08 CEST 1999 Werner Koch <[email protected]>
-
* configure.in: Create makefile in doc/gph
* acinclude.m4 (GNUPG_FUNC_MKDIR_TAKES_ONE_ARG): New
@@ -21,7 +142,6 @@ Mon Sep 6 19:59:08 CEST 1999 Werner Koch <[email protected]>
Thu Sep 2 16:40:55 CEST 1999 Werner Koch <[email protected]>
-
* VERSION: Set to 0.9.11.
Tue Aug 31 17:20:44 CEST 1999 Werner Koch <[email protected]>
diff --git a/INSTALL b/INSTALL
index 55a4c855f..90c464967 100644
--- a/INSTALL
+++ b/INSTALL
@@ -70,6 +70,24 @@ This doesn't matter and we know about it (actually it is due to the some
warning options which we have enabled for gcc)
+Specific problems on some machines
+==================================
+
+ * IBM RS/6000 running AIX:
+
+ Due to a change in gcc (since version 2.8) the MPI stuff may
+ not build. In this case try to run configure using:
+ CFLAGS="-g -O2 -mcpu=powerpc" ./configure
+
+ * Solaris
+
+ There are reports that the function gethrtime() as used in
+ cipher/random.c raised a SIGILL. It seems that is due to
+ a header/lib miscmatch. Solution is to fix the Solaris
+ installation or comment the call to gethrtime().
+
+
+
The Random Device
=================
Random devices are available in Linux, FreeBSD and OpenBSD.
diff --git a/Makefile.am b/Makefile.am
index e3add598e..fb518ea58 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,19 +1,16 @@
## Process this file with automake to produce Makefile.in
-if COMPILE_LIBGCRYPT
-gcrypt = gcrypt
-my_clean_gcrypt =
+if CROSS_COMPILING
+checks =
else
-gcrypt =
-my_clean_gcrypt = gcrypt/Makefile
+checks = checks
endif
-SUBDIRS = intl zlib util mpi cipher tools g10 po doc checks ${gcrypt}
+SUBDIRS = intl zlib util mpi cipher tools g10 po doc ${checks}
EXTRA_DIST = VERSION PROJECTS BUGS
# gettext never gets it right, so we take here care of deleting the
-# symlink. my_clean_gcrypt is just a kludge until we can include
-# libgcrypt.
-DISTCLEANFILES = g10defs.h intl/libintl.h ${my_clean_gcrypt}
+# symlink.
+DISTCLEANFILES = g10defs.h intl/libintl.h
dist-hook:
@set -e; \
@@ -28,23 +25,6 @@ dist-hook:
sed -e 's/@pkg_version@/$(VERSION)/g' \
$(top_srcdir)/scripts/gnupg.spec.in \
> $(distdir)/scripts/gnupg.spec
- -rm $(distdir)/gcrypt/*.[ch]
-if MAINTAINER_MODE
-# This is only useful within my local environment (wk)
-cvs-get:
- rsync -Cavuzb --exclude scratch --exclude .deps \
- [email protected]:work/gnupg .
-
-cvs-put:
- rsync -Cavuzb --exclude .deps --exclude scratch \
- . [email protected]:work/gnupg
-
-cvs-sync: cvs-get cvs-put
-
-endif
-
-
-.PHONY: cvs-get cvs-put cvs-sync
diff --git a/NEWS b/NEWS
index d5d2c5f13..83f69d9c5 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,82 @@
+Noteworthy changes in version 1.0.1-ePit-1
+------------------------------------------
+
+ * Fixed expiration handling of encryption keys.
+
+ * Add an experimental feature to do unattended key generation.
+
+ * The user is now asked for the reason of revocation as required
+ by the new OpenPGP draft.
+
+ * There is a ~/.gnupg/random_seed file now which saves the
+ state of the internal RNG and increases system performance
+ somewhat. This way the full entropy source is only used in
+ cases were it is really required.
+ Use the option --no-random-seed-file to disable this feature.
+
+ * New options --ignore-time-conflict and --lock-never.
+
+ * Some fixes for the W32 version.
+
+ * The entropy.dll is not anymore used by the W32 version but replaced
+ by code derived from Cryptlib.
+
+ * Encryption is now much faster: About 2 times for 1k bit keys
+ and 8 times for 4k keys.
+
+ * New encryption keys are generated in a way which allows a much
+ faster decryption.
+
+ * New command --export-secret-subkeys which outputs the
+ the _primary_ key with is's secret parts deleted. This is
+ useful for automated decryption/signature creation as it
+ allows to keep the real secret primary key offline and
+ thereby protecting the key certificates and allowing to
+ create revocations for the subkeys. See the FAQ for a
+ procedure to install such secret keys.
+
+ * Keygeneration now writes to the first writeable keyring or
+ as default to the one in the homedirectory. Prior versions
+ ignored all --keyring options.
+
+ * New option --command-fd to take user input from a file descriptor;
+ to be used with --status-fd by software which uses GnuPG as a backend.
+
+ * There is a new status PROGRESS which is used to show progress during
+ key generation.
+
+Noteworthy changes in version 1.0.1 (1999-12-16)
+-----------------------------------
+
+ * New command --verify-files. New option --fast-list-mode.
+
+ * $http_proxy is now used when --honor-http-proxy is set.
+
+ * Fixed some minor bugs and the problem with conventional encrypted
+ packets which did use the gpg v3 partial length headers.
+
+ * Add Indonesian and Portugese translations.
+
+ * Fixed a bug with symmetric-only encryption using the non-default 3DES.
+ The option --emulate-3des-s2k-bug may be used to decrypt documents
+ which have been encrypted this way; this should be done immediately
+ as this workaround will be remove in 1.1
+
+ * Can now handle (but not display) PGP's photo IDs. I don't know the
+ format of that packet but after stripping a few bytes from the start
+ it looks like a JPEG (at least my test data). Handling of this
+ package is required because otherwise it would mix up the
+ self signatures and you can't import those keys.
+
+ * Passing non-ascii user IDs on the commandline should now work in all
+ cases.
+
+ * New keys are now generated with an additional preference to Blowfish.
+
+ * Removed the GNU Privacy Handbook from the distribution as it will go
+ into a separate one.
+
+
Noteworthy changes in version 1.0.0 (1999-09-07)
-----------------------------------
diff --git a/NOTES b/NOTES
index 47a69df47..97996597e 100644
--- a/NOTES
+++ b/NOTES
@@ -10,4 +10,23 @@ Some other reported cpu-vendor-os strings:
sparc-sun-solaris5.4
sparc-sun-sunos4.1.2
i386-pc-sysv4.2 (USL Unixware v1.1.2)
+ powerpc-ibm-aix4.3.2.0 John Payne <[email protected]>
+gpg 1.0.1 okay with MP-RAS 3.02.01 Edition 5 using gcc 2.95.2 and EGD
+
+gpg 1.0.1 okay with 4.0.1 BSDI BSD/OS 4.0 i386
+
+
+rndw32 tested on:
+
+ Windows 98 4.10.1998 mit einem AMD-K6-2-450
+ Michael Engels <[email protected]>)
+
+ Windows 95 4.00.950a
+
+ Windows NT 4.00.1381
+
+
+
+
diff --git a/README b/README
index 1d9c9acaf..d7185dcb6 100644
--- a/README
+++ b/README
@@ -121,7 +121,7 @@
c) If you don't have any of the above programs, you have to verify
the MD5 checksum:
- $ md5sum gnupg-x.y.z.tar.gz.sig
+ $ md5sum gnupg-x.y.z.tar.gz
This should yield an output similar_to this:
@@ -135,10 +135,11 @@
Documentation
-------------
- A draft version of the manual is included in the subdirectory doc/gph.
- The supplied version is rendered in HTML and you may access it with any
- browser (e.g.: lynx doc/gpg/index.html). The GnuPG webpages have a link
- to the latest development version and you may want to read those instead.
+ The manual will be distributed separate under the name "gnupgdoc".
+ An online version of the latest manual draft is available at the
+ GnuPG web pages:
+
+ http://www.gnupg.org/gph/
A couple of HOWTO documents are available online; for a listing see:
@@ -473,7 +474,7 @@
The primary WWW page is "http://www.gnupg.org"
The primary FTP site is "ftp://ftp.gnupg.org/pub/gcrypt/"
- See http://www.gnupg.org/mirrors.html for a list of FTP mirrors
+ See http://www.gnupg.org/mirrors.html for a list of mirrors
and use them if possible. You may also find GnuPG mirrored on
some of the regular GNU mirrors.
@@ -485,6 +486,8 @@
very low traffic.
[email protected] For general user discussion and
help.
+ [email protected] Discussion about internationalization
+ issues.
[email protected] GnuPG developers main forum.
You subscribe to one of the list by sending mail with a subject
@@ -508,11 +511,9 @@
the GNU service directory or search other resources.
-----BEGIN PGP SIGNATURE-----
-Version: GnuPG v0.9.11 (GNU/Linux)
-Comment: For info see http://www.gnupg.org
-iQB1AwUBN9QAwB0Z9MEMmFelAQG0XwMAqyH3UR0Jk+dm2ZkVoTqckGqmMMt5IdBN
-MlG4g3dau5De8XXHvbQ45cUpU4CC0MOlEuKDp+CKOc+xbzczdH35qYt/5XKmVWS8
-JwTvuKKCZ/95JRMk0ZMRueQduH7tSijZ
-=MefQ
+iQB1AwUBOEkX0B0Z9MEMmFelAQE2aQL/bo8po/atFACnG7eZBodfV0ikE+PFynOf
+uzQjirp00hSFwP8jMmv+ccnlyZkHRwrhl/Xc8GCmmeATwtb1fuAWvCO51T1YIv3i
++K8Y6ThnQxG6TS0A/DBcoxwKpT7jEEPG
+=WYfE
-----END PGP SIGNATURE-----
diff --git a/THANKS b/THANKS
index 079f621ed..2868209ef 100644
--- a/THANKS
+++ b/THANKS
@@ -3,109 +3,143 @@ reporting problems, suggesting various improvements or submitting actual
code. Here is a list of those people. Help me keep it complete and free of
errors.
-Allan Clark [email protected]
-Anand Kumria [email protected]
-Ariel T Glenn [email protected]
-Bodo Moeller [email protected]
-Bryan Fullerton [email protected]
-Brian Moore [email protected]
-Brian Warner [email protected]
-Caskey L. Dickson [email protected]
-Cees van de Griend [email protected]
-Charles Levert [email protected]
-Christian von Roques [email protected]
-Christopher Oliver [email protected]
-Christian Recktenwald [email protected]
-Daniel Eisenbud [email protected]
-Daniel Koening [email protected]
-David Ellement [email protected]
-Detlef Lannert [email protected]
-Dirk Lattermann [email protected]
-Enzo Michelangeli [email protected]
-Ernst Molitor [email protected]
-Fabio Coatti [email protected]
-Felix von Leitner [email protected]
-Frank Heckenbach [email protected]
-Frank Stajano [email protected]
-Ga�l Qu�ri [email protected]
-Greg Louis [email protected]
-Greg Troxel [email protected]
-Gregory Steuck [email protected]
-Geoff Keating [email protected]
-Harald Denker [email protected]
-Hendrik Buschkamp [email protected]
-Holger Schurig [email protected]
-Hugh Daniel [email protected]
-Ian McKellar [email protected]
-Janusz A. Urbanowicz [email protected]
-James Troup [email protected]
-Jean-loup Gailly [email protected]
-Jens Bachem [email protected]
-Joachim Backes [email protected]
-John A. Martin [email protected]
-Johnny Teve�en [email protected]
-J�rg Schilling [email protected]
-Jun Kuriyama [email protected]
-Karl Fogel [email protected]
-Karsten Thygesen [email protected]
-Katsuhiro Kondou [email protected]
-Kazu Yamamoto [email protected]
-Lars Kellogg-Stedman [email protected]
-Marco d'Itri [email protected]
-Mark Adler [email protected]
-Mark Elbrecht [email protected]
-Markus Friedl [email protected]
-Martin Kahlert [email protected]
+Adam Mitchell [email protected]
+Alec Habig [email protected]
+Allan Clark [email protected]
+Anand Kumria [email protected]
+Ariel T Glenn [email protected]
+Bodo Moeller [email protected]
+Brenno de Winter [email protected]
+Brian Moore [email protected]
+Brian Warner [email protected]
+Bryan Fullerton [email protected]
+Caskey L. Dickson [email protected]
+Cees van de Griend [email protected]
+Charles Levert [email protected]
+Chip Salzenberg [email protected]
+Christian Kurz [email protected]
+Christian von Roques [email protected]
+Christopher Oliver [email protected]
+Christian Recktenwald [email protected]
+Daniel Eisenbud [email protected]
+Daniel Koening [email protected]
+Daniel Resare [email protected]
+Detlef Lannert [email protected]
+Dave Dykstra [email protected]
+David Ellement [email protected]
+David Hallinan [email protected]
+Dirk Lattermann [email protected]
+Edmund GRIMLEY EVANS [email protected]
+Enzo Michelangeli [email protected]
+Ernst Molitor [email protected]
+Fabio Coatti [email protected]
+Felix von Leitner [email protected]
+Frank Donahoe [email protected]
+Frank Heckenbach [email protected]
+Frank Stajano [email protected]
+Frank Tobin [email protected]
+Ga�l Qu�ri [email protected]
+Greg Louis [email protected]
+Greg Troxel [email protected]
+Gregory Steuck [email protected]
+Geoff Keating [email protected]
+Harald Denker [email protected]
+Hendrik Buschkamp [email protected]
+Holger Schurig [email protected]
+Holger Smolinski [email protected]
+Holger Trapp [email protected]
+Hugh Daniel [email protected]
+Ian McKellar [email protected]
+Ivo Timmermans [email protected]
+Jan Krueger [email protected]
+Janusz A. Urbanowicz [email protected]
+James Troup [email protected]
+Jean-loup Gailly [email protected]
+Jens Bachem [email protected]
+J Horacio MG [email protected]
+Joachim Backes [email protected]
+John A. Martin [email protected]
+Johnny Teve�en [email protected]
+J�rg Schilling [email protected]
+Jos Backus [email protected]
+Jun Kuriyama [email protected]
+Karl Fogel [email protected]
+Karsten Thygesen [email protected]
+Katsuhiro Kondou [email protected]
+Kazu Yamamoto [email protected]
+Lars Kellogg-Stedman [email protected]
+L. Sassaman [email protected]
+Marco d'Itri [email protected]
+Mark Adler [email protected]
+Mark Elbrecht [email protected]
+Markus Friedl [email protected]
+Martin Kahlert [email protected]
Martin Hamilton
-Martin Schulte [email protected]
-Matthew Skala [email protected]
-Max Valianskiy [email protected]
-Michael Roth [email protected]
-Michael Sobolev [email protected]
-Nicolas Graner [email protected]
-NIIBE Yutaka [email protected]
+Martin Schulte [email protected]
+Matthew Skala [email protected]
+Max Valianskiy [email protected]
+Michael Fischer v. Mollard [email protected]
+Michael Roth [email protected]
+Michael Sobolev [email protected]
+Nicolas Graner [email protected]
+Mike McEwan [email protected]
+NIIBE Yutaka [email protected]
Niklas Hernaeus
-Nimrod Zimerman [email protected]
-Oliver Haakert [email protected]
-Oskari J��skel�inen [email protected]
-Paul D. Smith [email protected]
-Philippe Laliberte [email protected]
-Peter Gutmann [email protected]
-Ralph Gillen [email protected]
-Reinhard Wobst [email protected]
-R�mi Guyomarch [email protected]
-Reuben Sumner [email protected]
-Roddy Strachan [email protected]
-Roland Rosenfeld [email protected]
-Ross Golder [email protected]
-Serge Munhoven [email protected]
-Stefan Karrmann [email protected]
-Stefan Keller [email protected]
-Steffen Ullrich [email protected]
-Steffen Zahn [email protected]
-Steven Bakker [email protected]
-Susanne Schultz [email protected]
-Thiago Jung Bauermann [email protected]
-Thomas Roessler [email protected]
-Tom Spindler [email protected]
-Tom Zerucha [email protected]
-Tomas Fasth [email protected]
-Thomas Mikkelsen [email protected]
-Ulf M�ller [email protected]
-Walter Koch [email protected]
-Werner Koch [email protected]
-Wim Vandeputte [email protected]
+Nimrod Zimerman [email protected]
+Oliver Haakert [email protected]
+Oskari J��skel�inen [email protected]
+Paul D. Smith [email protected]
+Philippe Laliberte [email protected]
+Peter Gutmann [email protected]
+Ralph Gillen [email protected]
+Reinhard Wobst [email protected]
+R�mi Guyomarch [email protected]
+Reuben Sumner [email protected]
+Richard Outerbridge [email protected]
+Roddy Strachan [email protected]
+Roland Rosenfeld [email protected]
+Ross Golder [email protected]
+Sam Roberts [email protected]
+Sean MacLennan [email protected]
+Serge Munhoven [email protected]
+Stefan Karrmann [email protected]
+Stefan Keller [email protected]
+Steffen Ullrich [email protected]
+Steffen Zahn [email protected]
+Steven Bakker [email protected]
+Susanne Schultz [email protected]
+Thiago Jung Bauermann [email protected]
+Thomas Roessler [email protected]
+Tim Mooney [email protected]
+Tom Spindler [email protected]
+Tom Zerucha [email protected]
+Tomas Fasth [email protected]
+Thomas Klausner [email protected]
+Thomas Mikkelsen [email protected]
+Ulf M�ller [email protected]
+Walter Hofmann [email protected]
+Walter Koch [email protected]
+Wayne Chapeskie [email protected]
+Werner Koch [email protected]
+Wim Vandeputte [email protected]
+Yosiaki IIDA [email protected]
+Yoshihiro Kajiki [email protected]
Thanks to the German Unix User Group for providing FTP space,
Martin Hamilton for hosting the mailing list and HSP for
hosting gnupg.org.
+The development of this software has partly been funded by the German
+Ministry for Economics and Technology under grant VIB3-68553.168-001/1999.
+
Many thanks to my wife Gerlinde for having so much patience with
me while hacking late in the evening.
diff --git a/TODO b/TODO
index f37749cf6..8323bd954 100644
--- a/TODO
+++ b/TODO
@@ -1,6 +1,25 @@
+ * g10/trustdb.c (make_sig_records): fix the fixme.
+
+ * at least an option to prefer DSA keys over RSA when selecting the key to
+ use. Depending on creation time would be nice too. I think this is
+ already done for the subkeys - check it.
+
+ * Fix localtime() in W32.
+
+ * export sollte exit(1) machen bei einem Fehler - testen! Es wird ein
+ leerer File erzeugt. Nur unter Windows?
+
+ * No TCP support yet for W32? arggg - should go into a separate program
+ anyway.
+
+
Scheduled for 1.1
-----------------
+ * Rework the whole key selection stuff: Compile a list of valid
+ candidates for a keyblock first and the select one from it.
+ The current code is too ugly (getkey.c).
+
* With option -i prompt before adding a key to the keyring and show some
info what we are about to add.
@@ -22,6 +41,9 @@ Scheduled for 1.1
* Check the beginning of file to detect already compressed files (gzip,
bzip2, xdelta and some picture formats)
+ * Delay the read of the passphrase-fd after a NEED_PASSPHRASE. But this
+ may break some scripts.
+
Nice to have
------------
@@ -51,5 +73,4 @@ Nice to have
trustdb.
* Evaluate whether it make sense to replace the namehashs either by
using the user ID directly or by using pointers into the trustdb.
- * --gen-prime may trigger a log_bug; should be a log_fatal.
diff --git a/VERSION b/VERSION
index 8ce8b88c0..f37fc79b4 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.0a
+1.0.1-ePit-1
diff --git a/acconfig.h b/acconfig.h
index 40ef16a60..0fe31f61a 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -53,6 +53,7 @@
#undef HAVE_STPCPY
+#undef HAVE_MLOCK
#undef BIG_ENDIAN_HOST
#undef LITTLE_ENDIAN_HOST
diff --git a/acinclude.m4 b/acinclude.m4
index aa721ea88..01f890020 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -27,6 +27,24 @@ AC_DEFUN(GNUPG_CHECK_TYPEDEF,
])
+dnl GNUPG_CHECK_GNUMAKE
+dnl
+AC_DEFUN(GNUPG_CHECK_GNUMAKE,
+ [
+ if ${MAKE-make} --version 2>/dev/null | grep '^GNU ' >/dev/null 2>&1; then
+ :
+ else
+ AC_MSG_WARN([[
+***
+*** It seems that you are not using GNU make. Some make tools have serious
+*** flaws and you may not be able to build this software at all. Before you
+*** complain, please try GNU make: GNU make is easy to build and available
+*** at all GNU archives. It is always available from ftp.gnu.org:/gnu/make.
+***]])
+ fi
+ ])
+
+
dnl GNUPG_LINK_FILES( SRC, DEST )
dnl same as AC_LINK_FILES, but collect the files to link in
@@ -208,7 +226,7 @@ define(GNUPG_CHECK_RDYNAMIC,
CFLAGS_RDYNAMIC="-Wl,-E"
;;
- openbsd* | freebsd2* | osf4* | irix* )
+ openbsd* | freebsd2* | osf4* | irix* | netbsd* | bsdi* )
CFLAGS_RDYNAMIC=""
;;
@@ -275,7 +293,8 @@ define(GNUPG_CHECK_IPC,
AC_TRY_COMPILE([#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>],[
- int foo( int shm_id ) { shmctl(shm_id, SHM_LOCK, 0); }
+ int shm_id;
+ shmctl(shm_id, SHM_LOCK, 0);
],
gnupg_cv_ipc_have_shm_lock="yes",
gnupg_cv_ipc_have_shm_lock="no"
@@ -294,11 +313,46 @@ define(GNUPG_CHECK_IPC,
######################################################################
# Check whether mlock is broken (hpux 10.20 raises a SIGBUS if mlock
# is not called from uid 0 (not tested whether uid 0 works)
+# For DECs Tru64 we have also to check whether mlock is in librt
+# mlock is there a macro using memlk()
######################################################################
dnl GNUPG_CHECK_MLOCK
dnl
define(GNUPG_CHECK_MLOCK,
[ AC_CHECK_FUNCS(mlock)
+ if test "$ac_cv_func_mlock" = "no"; then
+ AC_CHECK_HEADERS(sys/mman.h)
+ if test "$ac_cv_header_sys_mman_h" = "yes"; then
+ # Add librt to LIBS:
+ AC_CHECK_LIB(rt, memlk)
+ AC_CACHE_CHECK([whether mlock is in sys/mman.h],
+ gnupg_cv_mlock_is_in_sys_mman,
+ [AC_TRY_LINK([
+ #include <assert.h>
+ #ifdef HAVE_SYS_MMAN_H
+ #include <sys/mman.h>
+ #endif
+ ], [
+ mkdir ("foo", 0);
+ int i;
+ /* glibc defines this for functions which it implements
+ * to always fail with ENOSYS. Some functions are actually
+ * named something starting with __ and the normal name
+ * is an alias. */
+ #if defined (__stub_mlock) || defined (__stub___mlock)
+ choke me
+ #else
+ mlock(&i, 4);
+ #endif
+ ; return 0;
+ ],
+ gnupg_cv_mlock_is_in_sys_mman=yes,
+ gnupg_cv_mlock_is_in_sys_mman=no)])
+ if test "$gnupg_cv_mlock_is_in_sys_mman" = "yes"; then
+ AC_DEFINE(HAVE_MLOCK)
+ fi
+ fi
+ fi
if test "$ac_cv_func_mlock" = "yes"; then
AC_MSG_CHECKING(whether mlock is broken)
AC_CACHE_VAL(gnupg_cv_have_broken_mlock,
@@ -409,7 +463,7 @@ case "$host_os" in
aix*)
ac_symcode='[BCDTU]'
;;
-freebsd* | netbsd* | openbsd* | sunos* | cygwin32* | mingw32*)
+freebsd* | netbsd* | openbsd* | bsdi* | sunos* | cygwin32* | mingw32*)
ac_sympat='_\([_A-Za-z][_A-Za-z0-9]*\)'
ac_symxfrm='_\1 \1'
;;
@@ -562,7 +616,7 @@ AC_CHECK_TOOL(AS, as, false)
AC_DEFUN(GNUPG_SYS_SYMBOL_UNDERSCORE,
[tmp_do_check="no"
case "${target}" in
- i386-emx-os2 | i[3456]86-pc-os2*emx )
+ i386-emx-os2 | i[3456]86-pc-os2*emx | i386-pc-msdosdjgpp)
ac_cv_sys_symbol_underscore=yes
;;
*)
@@ -633,7 +687,7 @@ AC_DEFUN(GNUPG_FUNC_MKDIR_TAKES_ONE_ARG,
#ifdef HAVE_DIRECT_H
# include <direct.h>
#endif], [mkdir ("foo", 0);],
- gnupg_cv_mkdir_takes_one_arg=no, gnupg_cv_mkdir_takes_one_arg=yes)])
+ gnupg_cv_mkdir_takes_one_arg=no, gnupg_cv_mkdir_takes_one_arg=yes)])
if test $gnupg_cv_mkdir_takes_one_arg = yes ; then
AC_DEFINE(MKDIR_TAKES_ONE_ARG)
fi
diff --git a/checks/ChangeLog b/checks/ChangeLog
index 8e043bf71..0af642df2 100644
--- a/checks/ChangeLog
+++ b/checks/ChangeLog
@@ -1,11 +1,22 @@
-Tue Aug 31 17:20:44 CEST 1999 Werner Koch <[email protected]>
+Thu Feb 10 17:39:44 CET 2000 Werner Koch <[email protected]>
+
+ * mkdemodirs: Fixed the --clean loop.
+
+Thu Jan 13 19:31:58 CET 2000 Werner Koch <[email protected]>
+
+ * defs.inc (chdir): Removed becuase it is unsused an plain old sh
+ does not like this name. Reported by Alec Habig.
+Tue Oct 26 20:02:23 1999 Werner Koch ([email protected])
+
+ * Makefile.am (GPG_DEARMOR): New and use --no-options.
+
+Tue Aug 31 17:20:44 CEST 1999 Werner Koch <[email protected]>
* defs.inc: set LC_ALL empty
Wed Aug 4 10:34:18 CEST 1999 Werner Koch <[email protected]>
-
* defs.inc (echo_n): New and used instead of /bin/echo "\c"
Sun Apr 18 10:11:28 CEST 1999 Werner Koch <[email protected]>
diff --git a/checks/Makefile.am b/checks/Makefile.am
index bda0a2d90..41ded3cd6 100644
--- a/checks/Makefile.am
+++ b/checks/Makefile.am
@@ -1,5 +1,7 @@
## Process this file with automake to create Makefile.in
+GPG_DEARMOR = ../g10/gpg --no-options --quiet --yes --dearmor
+
TESTS = version.test mds.test \
decrypt.test decrypt-dsa.test \
sigs.test sigs-dsa.test \
@@ -37,25 +39,25 @@ prepared.stamp: ./pubring.gpg ./secring.gpg ./plain-1 ./plain-2 ./plain-3 \
./pubring.gpg: $(srcdir)/pubring.asc
- ../g10/gpg --yes --dearmor -o ./pubring.gpg $(srcdir)/pubring.asc
+ $(GPG_DEARMOR) -o ./pubring.gpg $(srcdir)/pubring.asc
./secring.gpg: $(srcdir)/secring.asc
- ../g10/gpg --yes --dearmor -o ./secring.gpg $(srcdir)/secring.asc
+ $(GPG_DEARMOR) -o ./secring.gpg $(srcdir)/secring.asc
./pubring.pkr: $(srcdir)/pubring.pkr.asc
- ../g10/gpg --yes --dearmor -o ./pubring.pkr $(srcdir)/pubring.pkr.asc
+ $(GPG_DEARMOR) -o ./pubring.pkr $(srcdir)/pubring.pkr.asc
./secring.skr: $(srcdir)/secring.skr.asc
- ../g10/gpg --yes --dearmor -o ./secring.skr $(srcdir)/secring.skr.asc
+ $(GPG_DEARMOR) -o ./secring.skr $(srcdir)/secring.skr.asc
./plain-1: $(srcdir)/plain-1o.asc
- ../g10/gpg --yes --dearmor -o ./plain-1 $(srcdir)/plain-1o.asc
+ $(GPG_DEARMOR) -o ./plain-1 $(srcdir)/plain-1o.asc
./plain-2: $(srcdir)/plain-2o.asc
- ../g10/gpg --yes --dearmor -o ./plain-2 $(srcdir)/plain-2o.asc
+ $(GPG_DEARMOR) -o ./plain-2 $(srcdir)/plain-2o.asc
./plain-3: $(srcdir)/plain-3o.asc
- ../g10/gpg --yes --dearmor -o ./plain-3 $(srcdir)/plain-3o.asc
+ $(GPG_DEARMOR) -o ./plain-3 $(srcdir)/plain-3o.asc
diff --git a/checks/defs.inc b/checks/defs.inc
index d5fdc8af7..47c6e4d8f 100755
--- a/checks/defs.inc
+++ b/checks/defs.inc
@@ -48,9 +48,6 @@ info () {
echo "$pgmname:" $* >&2
}
-chdir () {
- cd $1 || fatal "cannot cd to $1"
-}
echo_n_init=no
echo_n () {
diff --git a/checks/mkdemodirs b/checks/mkdemodirs
index b0755ab48..f0c7e02ba 100755
--- a/checks/mkdemodirs
+++ b/checks/mkdemodirs
@@ -8,9 +8,9 @@ NAMES='Alpha Bravo Charlie Delta Echo Foxtrot Golf Hotel India
Sierra Tango Uniform Victor Whisky XRay Yankee Zulu'
if [ "$1" = "--clean" ]; then
- for i in $NAMES; do
+ (for i in $NAMES; do
[ -d $i ] && rm -r $i
- done
+ done) || true
exit 0
fi
@@ -24,10 +24,10 @@ for name in $NAMES; do
/bin/echo " $name\c"
[ -d $name ] && rm -r $name
mkdir $name
- $GPGDEMO --export-secret-key -o - $name | tee $name/Secret.gpg | \
- $GPG --homedir $name --import
- $GPGDEMO --export -o - $name | tee $name/Public.gpg | \
- $GPG --homedir $name --import
+ $GPGDEMO --export-secret-key -o - $name > $name/Secret.gpg
+ $GPG --homedir $name --import $name/Secret.gpg
+ $GPGDEMO --export -o - $name > $name/Public.gpg
+ $GPG --homedir $name --import $name/Public.gpg
[ -f $name/pubring.gpg~ ] && rm $name/pubring.gpg~
done
echo "."
diff --git a/cipher/ChangeLog b/cipher/ChangeLog
index a8c3d3f13..b26d3f3f1 100644
--- a/cipher/ChangeLog
+++ b/cipher/ChangeLog
@@ -1,5 +1,137 @@
-Wed Sep 15 16:22:17 CEST 1999 Werner Koch <[email protected]>
+Sun May 28 13:55:17 CEST 2000 Werner Koch <[email protected]>
+
+ * random.c (read_seed_file): Binary open for DOSish system
+ (update_random_seed_file): Ditto.
+
+ * rndw32.c: Add some debuging code enabled by an environment variable.
+
+Tue May 23 09:19:00 CEST 2000 Werner Koch <[email protected]>
+
+ * rndw32.c: Started with alternative code to replace entropy.dll
+
+Thu May 18 11:38:54 CEST 2000 Werner Koch <[email protected]>
+
+ * primegen.c (register_primegen_progress): New.
+ * dsa.c (register_pk_dsa_progress): New.
+ * elgamal.c (register_pk_elg_progress): New.
+
+Fri Apr 14 19:37:08 CEST 2000 Werner Koch <[email protected]>
+
+ * twofish.c (twofish_get_info): Fixed warning about cast.
+
+Tue Mar 28 14:26:58 CEST 2000 Werner Koch <[email protected]>
+
+ * random.c [MINGW32]: Include process.h for getpid.
+
+Thu Mar 2 15:37:46 CET 2000 Werner Koch <[email protected]>
+
+ * random.c (fast_random_poll): Add clock_gettime() as fallback for
+ system which support this POSIX.4 fucntion. By Sam Roberts.
+
+ * rndunix.c: Add some more headers for QNX. By Sam Roberts.
+
+ * random.c (read_seed_file): Removed the S_ISLNK test becuase it
+ is already covered by !S_ISREG and is not defined in Unixware.
+ Reported by Dave Dykstra.
+
+ * sha1.c (sha1_get_info): Removed those stupid double lines. Dave
+ is really a good lint.
+
+Wed Feb 23 10:07:57 CET 2000 Werner Koch <[email protected]>
+
+ * twofish.c (twofish_get_info): Add some const to the casts. By Martin
+ Kahlert.
+
+Mon Feb 14 14:30:20 CET 2000 Werner Koch <[email protected]>
+
+ (update_random_seed_file): Silently ignore update request when pool
+ is not filled.
+
+Fri Feb 11 17:44:40 CET 2000 Werner Koch <[email protected]>
+
+ * random.c (read_seed_file): New.
+ (set_random_seed_file): New.
+ (read_pool): Try to read the seeding file.
+ (update_random_seed_file): New.
+
+ (read_pool): Do an initial extra seeding when level 2 quality random
+ is requested the first time. This requestes at least POOLSIZE/2 bytes
+ of entropy. Compined with the seeding file this should make normal
+ random bytes cheaper and increase the quality of the random bytes
+ used for key generation.
+
+ * rndegd.c (gather_random): Shortcut level 0.
+ * rndunix.c (gather_random): Ditto.
+ * rndw32.c (gather_random): Ditto.
+Fri Jan 14 18:32:01 CET 2000 Werner Koch <[email protected]>
+
+ * rmd160.c (rmd160_get_info): Moved casting to the left side due to a
+ problem with UTS4.3. Suggested by Dave Dykstra.
+ * sha1.c (sha1_get_info): Ditto.
+ * tiger.c (tiger_get_info): Ditto.
+ * md5.c (md5_get_info): Ditto
+ * des.c (des_get_info): Ditto.
+ * blowfish.c (blowfish_get_info): Ditto.
+ * cast5.c (cast5_get_info): Ditto.
+ * twofish.c (twofish_get_info): Ditto.
+
+Thu Jan 13 19:31:58 CET 2000 Werner Koch <[email protected]>
+
+ * elgamal.c (wiener_map): New.
+ (gen_k): Use a much smaller k.
+ (generate): Calculate the qbits using the wiener map and
+ choose an x at a size comparable to the one choosen in gen_k
+
+ * random.c (read_pool): Print a more friendly error message in
+ cases when too much random is requested in one call.
+
+ * Makefile.am (tiger): Replaced -O1 by -O. Suggested by Alec Habig.
+
+Sat Dec 4 12:30:28 CET 1999 Werner Koch <[email protected]>
+
+ * primegen.c (generate_elg_prime): All primes are now generated with
+ the lowest random quality level. Becuase they are public anyway we
+ don't need stronger random and by this we do not drain the systems
+ entropy so much.
+
+Thu Oct 28 16:08:20 CEST 1999 Werner Koch <[email protected]>
+
+ * random.c (fast_random_poll): Check whether RUSAGE_SELF is defined;
+ this is not the case for some ESIX and Unixware, although they have
+ getrusage().
+
+ * elgamal.c (sign): Hugh found strange code here. Replaced by BUG().
+
+Mon Oct 11 09:24:12 CEST 1999 Werner Koch <[email protected]>
+
+ * rndw32.c (gather_random): Handle PCP_SEEDER_TOO_SMALL.
+
+Sat Oct 9 20:34:41 CEST 1999 Werner Koch <[email protected]>
+
+ * Makefile.am: Tweaked module build and removed libtool
+
+Fri Oct 8 20:32:01 CEST 1999 Werner Koch <[email protected]>
+
+ * rndw32.c (load_and_init_winseed): Use the Registry to locate the DLL
+
+Mon Oct 4 21:23:04 CEST 1999 Werner Koch <[email protected]>
+
+ * md.c (md_reset): Clear finalized; thanks to Ulf Moeller for
+ fixing this bug.
+
+Sat Sep 18 12:51:51 CEST 1999 Werner Koch <[email protected]>
+
+
+ * Makefile.am: Never compile mingw32 as module
+
+Wed Sep 15 14:39:59 CEST 1999 Michael Roth <[email protected]>
+
+ * des.c: Various speed improvements: One bit pre rotation
+ trick after initial permutation (Richard Outerbridge).
+ Finished test of SSLeay Tripple-DES patterns.
+
+Wed Sep 15 16:22:17 CEST 1999 Werner Koch <[email protected]>
* rndw32.c: New.
diff --git a/cipher/Makefile.am b/cipher/Makefile.am
index 3d9a5cb93..f3b087eb8 100644
--- a/cipher/Makefile.am
+++ b/cipher/Makefile.am
@@ -3,17 +3,10 @@
INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/intl
-noinst_LTLIBRARIES = libcipher.la
-
-# The configure script greps the module names from the following lines.
-# You must also add all these names to EXTRA_PROGRAMS some lines below
-# and EXTRA_foo_SOURCES entries.
-# Hmmm is there a more easy way to do this? (EXTRA_PROGRAMS
-# might also list programs which are not modules)
-# MODULES: rndunix rndlinux rndegd rndw32
-# MODULES: sha1 rmd160 md5 tiger
-EXTRA_PROGRAMS = rndunix rndlinux rndegd rndw32 \
- sha1 rmd160 md5 tiger
+noinst_LIBRARIES = libcipher.a
+
+# The configure script greps the module names from the EXTRA_PROGRAMS line
+EXTRA_PROGRAMS = rndlinux rndunix rndegd rndw32 sha1 rmd160 md5 tiger
EXTRA_rndlinux_SOURCES = rndlinux.c
EXTRA_rndunix_SOURCES = rndunix.c
@@ -34,8 +27,8 @@ endif
DYNLINK_MOD_CFLAGS = -DIS_MODULE @DYNLINK_MOD_CFLAGS@
-libcipher_la_LDFLAGS =
-libcipher_la_SOURCES = cipher.c \
+#libcipher_a_LDFLAGS =
+libcipher_a_SOURCES = cipher.c \
pubkey.c \
md.c \
dynload.c \
@@ -65,8 +58,8 @@ libcipher_la_SOURCES = cipher.c \
BUILT_SOURCES = construct.c
-libcipher_la_DEPENDENCIES = @STATIC_CIPHER_OBJS@
-libcipher_la_LIBADD = @STATIC_CIPHER_OBJS@
+libcipher_a_DEPENDENCIES = @STATIC_CIPHER_OBJS@
+libcipher_a_LIBADD = @STATIC_CIPHER_OBJS@
# If I remember it correct, automake 1.4 has a feature to set
@@ -74,7 +67,7 @@ libcipher_la_LIBADD = @STATIC_CIPHER_OBJS@
tiger: $(srcdir)/tiger.c
`echo $(COMPILE) $(DYNLINK_MOD_CFLAGS) -o tiger $(srcdir)/tiger.c | \
- sed -e 's/-O[2-9s]*/-O1/g' `
+ sed -e 's/-O[2-9s]*/-O/g' `
tiger.o: $(srcdir)/tiger.c
`echo $(COMPILE) -c $(srcdir)/tiger.c | sed -e 's/-O[2-9s]*/-O1/g' `
@@ -99,4 +92,3 @@ rndlinux: $(srcdir)/rndlinux.c
rndegd: $(srcdir)/rndegd.c
$(COMPILE) $(DYNLINK_MOD_CFLAGS) -o rndegd $(srcdir)/rndegd.c
-
diff --git a/cipher/blowfish.c b/cipher/blowfish.c
index 5a829d413..0cb5a861f 100644
--- a/cipher/blowfish.c
+++ b/cipher/blowfish.c
@@ -43,9 +43,6 @@
#define CIPHER_ALGO_BLOWFISH 4 /* blowfish 128 bit key */
-#define FNCCAST_SETKEY(f) (int(*)(void*, byte*, unsigned))(f)
-#define FNCCAST_CRYPT(f) (void(*)(void*, byte*, byte*))(f)
-
#define BLOWFISH_BLOCKSIZE 8
#define BLOWFISH_ROUNDS 16
@@ -584,9 +581,12 @@ blowfish_get_info( int algo, size_t *keylen,
*keylen = 128;
*blocksize = BLOWFISH_BLOCKSIZE;
*contextsize = sizeof(BLOWFISH_context);
- *r_setkey = FNCCAST_SETKEY(bf_setkey);
- *r_encrypt= FNCCAST_CRYPT(encrypt_block);
- *r_decrypt= FNCCAST_CRYPT(decrypt_block);
+ *(int (**)(BLOWFISH_context*, byte*, unsigned))r_setkey
+ = bf_setkey;
+ *(void (**)(BLOWFISH_context*, byte*, byte*))r_encrypt
+ = encrypt_block;
+ *(void (**)(BLOWFISH_context*, byte*, byte*))r_decrypt
+ = decrypt_block;
if( algo == CIPHER_ALGO_BLOWFISH )
return "BLOWFISH";
diff --git a/cipher/cast5.c b/cipher/cast5.c
index 0e602bd2e..329f00ff7 100644
--- a/cipher/cast5.c
+++ b/cipher/cast5.c
@@ -46,9 +46,6 @@
#define CIPHER_ALGO_CAST5 3
-#define FNCCAST_SETKEY(f) (int(*)(void*, byte*, unsigned))(f)
-#define FNCCAST_CRYPT(f) (void(*)(void*, byte*, byte*))(f)
-
#define CAST5_BLOCKSIZE 8
typedef struct {
@@ -610,9 +607,13 @@ cast5_get_info( int algo, size_t *keylen,
*keylen = 128;
*blocksize = CAST5_BLOCKSIZE;
*contextsize = sizeof(CAST5_context);
- *r_setkey = FNCCAST_SETKEY(cast_setkey);
- *r_encrypt= FNCCAST_CRYPT(encrypt_block);
- *r_decrypt= FNCCAST_CRYPT(decrypt_block);
+ *(int (**)(CAST5_context*, byte*, unsigned))r_setkey
+ = cast_setkey;
+ *(void (**)(CAST5_context*, byte*, byte*))r_encrypt
+ = encrypt_block;
+ *(void (**)(CAST5_context*, byte*, byte*))r_decrypt
+ = decrypt_block;
+
if( algo == CIPHER_ALGO_CAST5 )
return "CAST5";
diff --git a/cipher/des.c b/cipher/des.c
index 6e6674923..847a3473e 100644
--- a/cipher/des.c
+++ b/cipher/des.c
@@ -1,5 +1,5 @@
/* des.c - DES and Triple-DES encryption/decryption Algorithm
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999 Free Software Foundation, Inc.
*
* Please see below for more legal information!
*
@@ -147,9 +147,6 @@ working_memcmp( const char *a, const char *b, size_t n )
#endif
-/* Macros used by the info function. */
-#define FNCCAST_SETKEY(f) ((int(*)(void*, byte*, unsigned))(f))
-#define FNCCAST_CRYPT(f) ((void(*)(void*, byte*, byte*))(f))
/*
@@ -190,105 +187,105 @@ static const char *selftest (void);
/*
* The s-box values are permuted according to the 'primitive function P'
+ * and are rotated one bit to the left.
*/
static u32 sbox1[64] =
{
- 0x00808200, 0x00000000, 0x00008000, 0x00808202, 0x00808002, 0x00008202, 0x00000002, 0x00008000,
- 0x00000200, 0x00808200, 0x00808202, 0x00000200, 0x00800202, 0x00808002, 0x00800000, 0x00000002,
- 0x00000202, 0x00800200, 0x00800200, 0x00008200, 0x00008200, 0x00808000, 0x00808000, 0x00800202,
- 0x00008002, 0x00800002, 0x00800002, 0x00008002, 0x00000000, 0x00000202, 0x00008202, 0x00800000,
- 0x00008000, 0x00808202, 0x00000002, 0x00808000, 0x00808200, 0x00800000, 0x00800000, 0x00000200,
- 0x00808002, 0x00008000, 0x00008200, 0x00800002, 0x00000200, 0x00000002, 0x00800202, 0x00008202,
- 0x00808202, 0x00008002, 0x00808000, 0x00800202, 0x00800002, 0x00000202, 0x00008202, 0x00808200,
- 0x00000202, 0x00800200, 0x00800200, 0x00000000, 0x00008002, 0x00008200, 0x00000000, 0x00808002
+ 0x01010400, 0x00000000, 0x00010000, 0x01010404, 0x01010004, 0x00010404, 0x00000004, 0x00010000,
+ 0x00000400, 0x01010400, 0x01010404, 0x00000400, 0x01000404, 0x01010004, 0x01000000, 0x00000004,
+ 0x00000404, 0x01000400, 0x01000400, 0x00010400, 0x00010400, 0x01010000, 0x01010000, 0x01000404,
+ 0x00010004, 0x01000004, 0x01000004, 0x00010004, 0x00000000, 0x00000404, 0x00010404, 0x01000000,
+ 0x00010000, 0x01010404, 0x00000004, 0x01010000, 0x01010400, 0x01000000, 0x01000000, 0x00000400,
+ 0x01010004, 0x00010000, 0x00010400, 0x01000004, 0x00000400, 0x00000004, 0x01000404, 0x00010404,
+ 0x01010404, 0x00010004, 0x01010000, 0x01000404, 0x01000004, 0x00000404, 0x00010404, 0x01010400,
+ 0x00000404, 0x01000400, 0x01000400, 0x00000000, 0x00010004, 0x00010400, 0x00000000, 0x01010004
};
static u32 sbox2[64] =
{
- 0x40084010, 0x40004000, 0x00004000, 0x00084010, 0x00080000, 0x00000010, 0x40080010, 0x40004010,
- 0x40000010, 0x40084010, 0x40084000, 0x40000000, 0x40004000, 0x00080000, 0x00000010, 0x40080010,
- 0x00084000, 0x00080010, 0x40004010, 0x00000000, 0x40000000, 0x00004000, 0x00084010, 0x40080000,
- 0x00080010, 0x40000010, 0x00000000, 0x00084000, 0x00004010, 0x40084000, 0x40080000, 0x00004010,
- 0x00000000, 0x00084010, 0x40080010, 0x00080000, 0x40004010, 0x40080000, 0x40084000, 0x00004000,
- 0x40080000, 0x40004000, 0x00000010, 0x40084010, 0x00084010, 0x00000010, 0x00004000, 0x40000000,
- 0x00004010, 0x40084000, 0x00080000, 0x40000010, 0x00080010, 0x40004010, 0x40000010, 0x00080010,
- 0x00084000, 0x00000000, 0x40004000, 0x00004010, 0x40000000, 0x40080010, 0x40084010, 0x00084000
+ 0x80108020, 0x80008000, 0x00008000, 0x00108020, 0x00100000, 0x00000020, 0x80100020, 0x80008020,
+ 0x80000020, 0x80108020, 0x80108000, 0x80000000, 0x80008000, 0x00100000, 0x00000020, 0x80100020,
+ 0x00108000, 0x00100020, 0x80008020, 0x00000000, 0x80000000, 0x00008000, 0x00108020, 0x80100000,
+ 0x00100020, 0x80000020, 0x00000000, 0x00108000, 0x00008020, 0x80108000, 0x80100000, 0x00008020,
+ 0x00000000, 0x00108020, 0x80100020, 0x00100000, 0x80008020, 0x80100000, 0x80108000, 0x00008000,
+ 0x80100000, 0x80008000, 0x00000020, 0x80108020, 0x00108020, 0x00000020, 0x00008000, 0x80000000,
+ 0x00008020, 0x80108000, 0x00100000, 0x80000020, 0x00100020, 0x80008020, 0x80000020, 0x00100020,
+ 0x00108000, 0x00000000, 0x80008000, 0x00008020, 0x80000000, 0x80100020, 0x80108020, 0x00108000
};
static u32 sbox3[64] =
{
- 0x00000104, 0x04010100, 0x00000000, 0x04010004, 0x04000100, 0x00000000, 0x00010104, 0x04000100,
- 0x00010004, 0x04000004, 0x04000004, 0x00010000, 0x04010104, 0x00010004, 0x04010000, 0x00000104,
- 0x04000000, 0x00000004, 0x04010100, 0x00000100, 0x00010100, 0x04010000, 0x04010004, 0x00010104,
- 0x04000104, 0x00010100, 0x00010000, 0x04000104, 0x00000004, 0x04010104, 0x00000100, 0x04000000,
- 0x04010100, 0x04000000, 0x00010004, 0x00000104, 0x00010000, 0x04010100, 0x04000100, 0x00000000,
- 0x00000100, 0x00010004, 0x04010104, 0x04000100, 0x04000004, 0x00000100, 0x00000000, 0x04010004,
- 0x04000104, 0x00010000, 0x04000000, 0x04010104, 0x00000004, 0x00010104, 0x00010100, 0x04000004,
- 0x04010000, 0x04000104, 0x00000104, 0x04010000, 0x00010104, 0x00000004, 0x04010004, 0x00010100
+ 0x00000208, 0x08020200, 0x00000000, 0x08020008, 0x08000200, 0x00000000, 0x00020208, 0x08000200,
+ 0x00020008, 0x08000008, 0x08000008, 0x00020000, 0x08020208, 0x00020008, 0x08020000, 0x00000208,
+ 0x08000000, 0x00000008, 0x08020200, 0x00000200, 0x00020200, 0x08020000, 0x08020008, 0x00020208,
+ 0x08000208, 0x00020200, 0x00020000, 0x08000208, 0x00000008, 0x08020208, 0x00000200, 0x08000000,
+ 0x08020200, 0x08000000, 0x00020008, 0x00000208, 0x00020000, 0x08020200, 0x08000200, 0x00000000,
+ 0x00000200, 0x00020008, 0x08020208, 0x08000200, 0x08000008, 0x00000200, 0x00000000, 0x08020008,
+ 0x08000208, 0x00020000, 0x08000000, 0x08020208, 0x00000008, 0x00020208, 0x00020200, 0x08000008,
+ 0x08020000, 0x08000208, 0x00000208, 0x08020000, 0x00020208, 0x00000008, 0x08020008, 0x00020200
};
static u32 sbox4[64] =
{
- 0x80401000, 0x80001040, 0x80001040, 0x00000040, 0x00401040, 0x80400040, 0x80400000, 0x80001000,
- 0x00000000, 0x00401000, 0x00401000, 0x80401040, 0x80000040, 0x00000000, 0x00400040, 0x80400000,
- 0x80000000, 0x00001000, 0x00400000, 0x80401000, 0x00000040, 0x00400000, 0x80001000, 0x00001040,
- 0x80400040, 0x80000000, 0x00001040, 0x00400040, 0x00001000, 0x00401040, 0x80401040, 0x80000040,
- 0x00400040, 0x80400000, 0x00401000, 0x80401040, 0x80000040, 0x00000000, 0x00000000, 0x00401000,
- 0x00001040, 0x00400040, 0x80400040, 0x80000000, 0x80401000, 0x80001040, 0x80001040, 0x00000040,
- 0x80401040, 0x80000040, 0x80000000, 0x00001000, 0x80400000, 0x80001000, 0x00401040, 0x80400040,
- 0x80001000, 0x00001040, 0x00400000, 0x80401000, 0x00000040, 0x00400000, 0x00001000, 0x00401040
+ 0x00802001, 0x00002081, 0x00002081, 0x00000080, 0x00802080, 0x00800081, 0x00800001, 0x00002001,
+ 0x00000000, 0x00802000, 0x00802000, 0x00802081, 0x00000081, 0x00000000, 0x00800080, 0x00800001,
+ 0x00000001, 0x00002000, 0x00800000, 0x00802001, 0x00000080, 0x00800000, 0x00002001, 0x00002080,
+ 0x00800081, 0x00000001, 0x00002080, 0x00800080, 0x00002000, 0x00802080, 0x00802081, 0x00000081,
+ 0x00800080, 0x00800001, 0x00802000, 0x00802081, 0x00000081, 0x00000000, 0x00000000, 0x00802000,
+ 0x00002080, 0x00800080, 0x00800081, 0x00000001, 0x00802001, 0x00002081, 0x00002081, 0x00000080,
+ 0x00802081, 0x00000081, 0x00000001, 0x00002000, 0x00800001, 0x00002001, 0x00802080, 0x00800081,
+ 0x00002001, 0x00002080, 0x00800000, 0x00802001, 0x00000080, 0x00800000, 0x00002000, 0x00802080
};
static u32 sbox5[64] =
{
- 0x00000080, 0x01040080, 0x01040000, 0x21000080, 0x00040000, 0x00000080, 0x20000000, 0x01040000,
- 0x20040080, 0x00040000, 0x01000080, 0x20040080, 0x21000080, 0x21040000, 0x00040080, 0x20000000,
- 0x01000000, 0x20040000, 0x20040000, 0x00000000, 0x20000080, 0x21040080, 0x21040080, 0x01000080,
- 0x21040000, 0x20000080, 0x00000000, 0x21000000, 0x01040080, 0x01000000, 0x21000000, 0x00040080,
- 0x00040000, 0x21000080, 0x00000080, 0x01000000, 0x20000000, 0x01040000, 0x21000080, 0x20040080,
- 0x01000080, 0x20000000, 0x21040000, 0x01040080, 0x20040080, 0x00000080, 0x01000000, 0x21040000,
- 0x21040080, 0x00040080, 0x21000000, 0x21040080, 0x01040000, 0x00000000, 0x20040000, 0x21000000,
- 0x00040080, 0x01000080, 0x20000080, 0x00040000, 0x00000000, 0x20040000, 0x01040080, 0x20000080
+ 0x00000100, 0x02080100, 0x02080000, 0x42000100, 0x00080000, 0x00000100, 0x40000000, 0x02080000,
+ 0x40080100, 0x00080000, 0x02000100, 0x40080100, 0x42000100, 0x42080000, 0x00080100, 0x40000000,
+ 0x02000000, 0x40080000, 0x40080000, 0x00000000, 0x40000100, 0x42080100, 0x42080100, 0x02000100,
+ 0x42080000, 0x40000100, 0x00000000, 0x42000000, 0x02080100, 0x02000000, 0x42000000, 0x00080100,
+ 0x00080000, 0x42000100, 0x00000100, 0x02000000, 0x40000000, 0x02080000, 0x42000100, 0x40080100,
+ 0x02000100, 0x40000000, 0x42080000, 0x02080100, 0x40080100, 0x00000100, 0x02000000, 0x42080000,
+ 0x42080100, 0x00080100, 0x42000000, 0x42080100, 0x02080000, 0x00000000, 0x40080000, 0x42000000,
+ 0x00080100, 0x02000100, 0x40000100, 0x00080000, 0x00000000, 0x40080000, 0x02080100, 0x40000100
};
static u32 sbox6[64] =
{
- 0x10000008, 0x10200000, 0x00002000, 0x10202008, 0x10200000, 0x00000008, 0x10202008, 0x00200000,
- 0x10002000, 0x00202008, 0x00200000, 0x10000008, 0x00200008, 0x10002000, 0x10000000, 0x00002008,
- 0x00000000, 0x00200008, 0x10002008, 0x00002000, 0x00202000, 0x10002008, 0x00000008, 0x10200008,
- 0x10200008, 0x00000000, 0x00202008, 0x10202000, 0x00002008, 0x00202000, 0x10202000, 0x10000000,
- 0x10002000, 0x00000008, 0x10200008, 0x00202000, 0x10202008, 0x00200000, 0x00002008, 0x10000008,
- 0x00200000, 0x10002000, 0x10000000, 0x00002008, 0x10000008, 0x10202008, 0x00202000, 0x10200000,
- 0x00202008, 0x10202000, 0x00000000, 0x10200008, 0x00000008, 0x00002000, 0x10200000, 0x00202008,
- 0x00002000, 0x00200008, 0x10002008, 0x00000000, 0x10202000, 0x10000000, 0x00200008, 0x10002008
+ 0x20000010, 0x20400000, 0x00004000, 0x20404010, 0x20400000, 0x00000010, 0x20404010, 0x00400000,
+ 0x20004000, 0x00404010, 0x00400000, 0x20000010, 0x00400010, 0x20004000, 0x20000000, 0x00004010,
+ 0x00000000, 0x00400010, 0x20004010, 0x00004000, 0x00404000, 0x20004010, 0x00000010, 0x20400010,
+ 0x20400010, 0x00000000, 0x00404010, 0x20404000, 0x00004010, 0x00404000, 0x20404000, 0x20000000,
+ 0x20004000, 0x00000010, 0x20400010, 0x00404000, 0x20404010, 0x00400000, 0x00004010, 0x20000010,
+ 0x00400000, 0x20004000, 0x20000000, 0x00004010, 0x20000010, 0x20404010, 0x00404000, 0x20400000,
+ 0x00404010, 0x20404000, 0x00000000, 0x20400010, 0x00000010, 0x00004000, 0x20400000, 0x00404010,
+ 0x00004000, 0x00400010, 0x20004010, 0x00000000, 0x20404000, 0x20000000, 0x00400010, 0x20004010
};
static u32 sbox7[64] =
{
- 0x00100000, 0x02100001, 0x02000401, 0x00000000, 0x00000400, 0x02000401, 0x00100401, 0x02100400,
- 0x02100401, 0x00100000, 0x00000000, 0x02000001, 0x00000001, 0x02000000, 0x02100001, 0x00000401,
- 0x02000400, 0x00100401, 0x00100001, 0x02000400, 0x02000001, 0x02100000, 0x02100400, 0x00100001,
- 0x02100000, 0x00000400, 0x00000401, 0x02100401, 0x00100400, 0x00000001, 0x02000000, 0x00100400,
- 0x02000000, 0x00100400, 0x00100000, 0x02000401, 0x02000401, 0x02100001, 0x02100001, 0x00000001,
- 0x00100001, 0x02000000, 0x02000400, 0x00100000, 0x02100400, 0x00000401, 0x00100401, 0x02100400,
- 0x00000401, 0x02000001, 0x02100401, 0x02100000, 0x00100400, 0x00000000, 0x00000001, 0x02100401,
- 0x00000000, 0x00100401, 0x02100000, 0x00000400, 0x02000001, 0x02000400, 0x00000400, 0x00100001
+ 0x00200000, 0x04200002, 0x04000802, 0x00000000, 0x00000800, 0x04000802, 0x00200802, 0x04200800,
+ 0x04200802, 0x00200000, 0x00000000, 0x04000002, 0x00000002, 0x04000000, 0x04200002, 0x00000802,
+ 0x04000800, 0x00200802, 0x00200002, 0x04000800, 0x04000002, 0x04200000, 0x04200800, 0x00200002,
+ 0x04200000, 0x00000800, 0x00000802, 0x04200802, 0x00200800, 0x00000002, 0x04000000, 0x00200800,
+ 0x04000000, 0x00200800, 0x00200000, 0x04000802, 0x04000802, 0x04200002, 0x04200002, 0x00000002,
+ 0x00200002, 0x04000000, 0x04000800, 0x00200000, 0x04200800, 0x00000802, 0x00200802, 0x04200800,
+ 0x00000802, 0x04000002, 0x04200802, 0x04200000, 0x00200800, 0x00000000, 0x00000002, 0x04200802,
+ 0x00000000, 0x00200802, 0x04200000, 0x00000800, 0x04000002, 0x04000800, 0x00000800, 0x00200002
};
static u32 sbox8[64] =
{
- 0x08000820, 0x00000800, 0x00020000, 0x08020820, 0x08000000, 0x08000820, 0x00000020, 0x08000000,
- 0x00020020, 0x08020000, 0x08020820, 0x00020800, 0x08020800, 0x00020820, 0x00000800, 0x00000020,
- 0x08020000, 0x08000020, 0x08000800, 0x00000820, 0x00020800, 0x00020020, 0x08020020, 0x08020800,
- 0x00000820, 0x00000000, 0x00000000, 0x08020020, 0x08000020, 0x08000800, 0x00020820, 0x00020000,
- 0x00020820, 0x00020000, 0x08020800, 0x00000800, 0x00000020, 0x08020020, 0x00000800, 0x00020820,
- 0x08000800, 0x00000020, 0x08000020, 0x08020000, 0x08020020, 0x08000000, 0x00020000, 0x08000820,
- 0x00000000, 0x08020820, 0x00020020, 0x08000020, 0x08020000, 0x08000800, 0x08000820, 0x00000000,
- 0x08020820, 0x00020800, 0x00020800, 0x00000820, 0x00000820, 0x00020020, 0x08000000, 0x08020800
+ 0x10001040, 0x00001000, 0x00040000, 0x10041040, 0x10000000, 0x10001040, 0x00000040, 0x10000000,
+ 0x00040040, 0x10040000, 0x10041040, 0x00041000, 0x10041000, 0x00041040, 0x00001000, 0x00000040,
+ 0x10040000, 0x10000040, 0x10001000, 0x00001040, 0x00041000, 0x00040040, 0x10040040, 0x10041000,
+ 0x00001040, 0x00000000, 0x00000000, 0x10040040, 0x10000040, 0x10001000, 0x00041040, 0x00040000,
+ 0x00041040, 0x00040000, 0x10041000, 0x00001000, 0x00000040, 0x10040040, 0x00001000, 0x00041040,
+ 0x10001000, 0x00000040, 0x10000040, 0x10040000, 0x10040040, 0x10000000, 0x00040000, 0x10001040,
+ 0x00000000, 0x10041040, 0x00040040, 0x10000040, 0x10040000, 0x10001000, 0x10001040, 0x00000000,
+ 0x10041040, 0x00041000, 0x00041000, 0x00001040, 0x00001040, 0x00040040, 0x10000000, 0x10041000
};
-
/*
* These two tables are part of the 'permuted choice 1' function.
* In this implementation several speed improvements are done.
@@ -312,10 +309,10 @@ u32 rightkey_swap[16] =
/*
- * Numbers of left shifts per round for encryption subkey schedule
- * To calculate the decryption key scheduling we just reverse the
- * ordering of the subkeys so we can omit the table for decryption
- * subkey schedule.
+ * Numbers of left shifts per round for encryption subkeys.
+ * To calculate the decryption subkeys we just reverse the
+ * ordering of the calculated encryption subkeys. So their
+ * is no need for a decryption rotate tab.
*/
static byte encrypt_rotate_tab[16] =
{
@@ -373,7 +370,7 @@ static byte weak_keys[64][8] =
/*
- * Macro to swap bits across two words
+ * Macro to swap bits across two words.
*/
#define DO_PERMUTATION(a, temp, b, offset, mask) \
temp = ((a>>offset) ^ b) & mask; \
@@ -382,21 +379,30 @@ static byte weak_keys[64][8] =
/*
- * This performs the 'initial permutation' for the data to be encrypted or decrypted
+ * This performs the 'initial permutation' of the data to be encrypted
+ * or decrypted. Additionally the resulting two words are rotated one bit
+ * to the left.
*/
#define INITIAL_PERMUTATION(left, temp, right) \
DO_PERMUTATION(left, temp, right, 4, 0x0f0f0f0f) \
DO_PERMUTATION(left, temp, right, 16, 0x0000ffff) \
DO_PERMUTATION(right, temp, left, 2, 0x33333333) \
DO_PERMUTATION(right, temp, left, 8, 0x00ff00ff) \
- DO_PERMUTATION(left, temp, right, 1, 0x55555555)
-
+ right = (right << 1) | (right >> 31); \
+ temp = (left ^ right) & 0xaaaaaaaa; \
+ right ^= temp; \
+ left ^= temp; \
+ left = (left << 1) | (left >> 31);
/*
- * The 'inverse initial permutation'
+ * The 'inverse initial permutation'.
*/
#define FINAL_PERMUTATION(left, temp, right) \
- DO_PERMUTATION(left, temp, right, 1, 0x55555555) \
+ left = (left << 31) | (left >> 1); \
+ temp = (left ^ right) & 0xaaaaaaaa; \
+ left ^= temp; \
+ right ^= temp; \
+ right = (right << 31) | (right >> 1); \
DO_PERMUTATION(right, temp, left, 8, 0x00ff00ff) \
DO_PERMUTATION(right, temp, left, 2, 0x33333333) \
DO_PERMUTATION(left, temp, right, 16, 0x0000ffff) \
@@ -406,22 +412,23 @@ static byte weak_keys[64][8] =
/*
* A full DES round including 'expansion function', 'sbox substitution'
* and 'primitive function P' but without swapping the left and right word.
+ * Please note: The data in 'from' and 'to' is already rotated one bit to
+ * the left, done in the initial permutation.
*/
#define DES_ROUND(from, to, work, subkey) \
- work = ((from<<1) | (from>>31)) ^ *subkey++; \
+ work = from ^ *subkey++; \
to ^= sbox8[ work & 0x3f ]; \
to ^= sbox6[ (work>>8) & 0x3f ]; \
to ^= sbox4[ (work>>16) & 0x3f ]; \
to ^= sbox2[ (work>>24) & 0x3f ]; \
- work = ((from>>3) | (from<<29)) ^ *subkey++; \
+ work = ((from << 28) | (from >> 4)) ^ *subkey++; \
to ^= sbox7[ work & 0x3f ]; \
to ^= sbox5[ (work>>8) & 0x3f ]; \
to ^= sbox3[ (work>>16) & 0x3f ]; \
to ^= sbox1[ (work>>24) & 0x3f ];
-
/*
- * Macros to convert 8 bytes from/to 32bit words
+ * Macros to convert 8 bytes from/to 32bit words.
*/
#define READ_64BIT_DATA(data, left, right) \
left = (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3]; \
@@ -433,7 +440,6 @@ static byte weak_keys[64][8] =
data[4] = (right >> 24) &0xff; data[5] = (right >> 16) &0xff; \
data[6] = (right >> 8) &0xff; data[7] = right &0xff;
-
/*
* Handy macros for encryption and decryption of data
*/
@@ -797,9 +803,7 @@ selftest (void)
/*
- * Triple-DES test (Do somebody known on official test?)
- *
- * Note: This test doesn't use tripledes_set3keys() !
+ * Self made Triple-DES test (Does somebody known an official test?)
*/
{
int i;
@@ -823,10 +827,9 @@ selftest (void)
tripledes_ecb_encrypt (des3, input, input);
}
if (memcmp (input, result, 8))
- return "TRIPLE-DES test failed.";
+ return "Triple-DES test failed.";
}
- #if 0
/*
* More Triple-DES test. These are testvectors as used by SSLeay,
* thanks to Jeroen C. van Gelderen.
@@ -894,13 +897,32 @@ selftest (void)
{ 0xe1,0xef,0x62,0xc3,0x32,0xfe,0x82,0x5b }
}
};
- /* fixme: do the test */
+
+ byte result[8];
+ int i;
+ static char error[80];
+ tripledes_ctx des3;
+
+ for (i=0; i<sizeof(testdata)/sizeof(*testdata); ++i) {
+ tripledes_set3keys (des3, testdata[i].key, testdata[i].key + 8, testdata[i].key + 16);
+
+ tripledes_ecb_encrypt (des3, testdata[i].plain, result);
+ if (memcmp (testdata[i].cipher, result, 8)) {
+ sprintf (error, "Triple-DES SSLeay test pattern no. %d failend on encryption.", i+1);
+ return error;
+ }
+
+ tripledes_ecb_decrypt (des3, testdata[i].cipher, result);
+ if (memcmp (testdata[i].plain, result, 8)) {
+ sprintf (error, "Triple-DES SSLeay test pattern no. %d failend on decryption.", i+1);
+ return error;
+ }
+ }
}
- #endif
/*
- * Check the weak key detection. We simply assume the table with
- * weak keys is ok and check every key in the table if it is
+ * Check the weak key detection. We simply assume that the table
+ * with weak keys is ok and check every key in the table if it is
* detected... (This test is a little bit stupid)
*/
{
@@ -971,14 +993,16 @@ des_get_info( int algo, size_t *keylen,
}
}
-
if( algo == CIPHER_ALGO_3DES ) {
*keylen = 192;
*blocksize = 8;
*contextsize = sizeof(struct _tripledes_ctx);
- *r_setkey = FNCCAST_SETKEY(do_tripledes_setkey);
- *r_encrypt= FNCCAST_CRYPT(do_tripledes_encrypt);
- *r_decrypt= FNCCAST_CRYPT(do_tripledes_decrypt);
+ *(int (**)(struct _tripledes_ctx*, byte*, unsigned))r_setkey
+ = do_tripledes_setkey;
+ *(void (**)(struct _tripledes_ctx*, byte*, byte*))r_encrypt
+ = do_tripledes_encrypt;
+ *(void (**)(struct _tripledes_ctx*, byte*, byte*))r_decrypt
+ = do_tripledes_decrypt;
return "3DES";
}
return NULL;
diff --git a/cipher/dsa.c b/cipher/dsa.c
index 5828b9508..d7c4f6892 100644
--- a/cipher/dsa.c
+++ b/cipher/dsa.c
@@ -52,13 +52,29 @@ static void generate( DSA_secret_key *sk, unsigned nbits, MPI **ret_factors );
static void sign(MPI r, MPI s, MPI input, DSA_secret_key *skey);
static int verify(MPI r, MPI s, MPI input, DSA_public_key *pkey);
+
+static void (*progress_cb) ( void *, int );
+static void *progress_cb_data;
+
+void
+register_pk_dsa_progress ( void (*cb)( void *, int), void *cb_data )
+{
+ progress_cb = cb;
+ progress_cb_data = cb_data;
+}
+
+
static void
progress( int c )
{
- fputc( c, stderr );
+ if ( progress_cb )
+ progress_cb ( progress_cb_data, c );
+ else
+ fputc( c, stderr );
}
+
/****************
* Generate a random secret exponent k less than q
*/
diff --git a/cipher/elgamal.c b/cipher/elgamal.c
index bbf9c2782..74e159684 100644
--- a/cipher/elgamal.c
+++ b/cipher/elgamal.c
@@ -1,5 +1,5 @@
/* elgamal.c - ElGamal Public Key encryption
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 2000 Free Software Foundation, Inc.
*
* For a description of the algorithm, see:
* Bruce Schneier: Applied Cryptography. John Wiley & Sons, 1996.
@@ -56,13 +56,67 @@ static void sign(MPI a, MPI b, MPI input, ELG_secret_key *skey);
static int verify(MPI a, MPI b, MPI input, ELG_public_key *pkey);
+static void (*progress_cb) ( void *, int );
+static void *progress_cb_data;
+
+void
+register_pk_elg_progress ( void (*cb)( void *, int), void *cb_data )
+{
+ progress_cb = cb;
+ progress_cb_data = cb_data;
+}
+
+
static void
progress( int c )
{
- fputc( c, stderr );
+ if ( progress_cb )
+ progress_cb ( progress_cb_data, c );
+ else
+ fputc( c, stderr );
}
+/****************
+ * Michael Wiener's table about subgroup sizes to match field sizes
+ * (floating around somewhere - Fixme: need a reference)
+ */
+static unsigned int
+wiener_map( unsigned int n )
+{
+ static struct { unsigned int p_n, q_n; } t[] =
+ { /* p q attack cost */
+ { 512, 119 }, /* 9 x 10^17 */
+ { 768, 145 }, /* 6 x 10^21 */
+ { 1024, 165 }, /* 7 x 10^24 */
+ { 1280, 183 }, /* 3 x 10^27 */
+ { 1536, 198 }, /* 7 x 10^29 */
+ { 1792, 212 }, /* 9 x 10^31 */
+ { 2048, 225 }, /* 8 x 10^33 */
+ { 2304, 237 }, /* 5 x 10^35 */
+ { 2560, 249 }, /* 3 x 10^37 */
+ { 2816, 259 }, /* 1 x 10^39 */
+ { 3072, 269 }, /* 3 x 10^40 */
+ { 3328, 279 }, /* 8 x 10^41 */
+ { 3584, 288 }, /* 2 x 10^43 */
+ { 3840, 296 }, /* 4 x 10^44 */
+ { 4096, 305 }, /* 7 x 10^45 */
+ { 4352, 313 }, /* 1 x 10^47 */
+ { 4608, 320 }, /* 2 x 10^48 */
+ { 4864, 328 }, /* 2 x 10^49 */
+ { 5120, 335 }, /* 3 x 10^50 */
+ { 0, 0 }
+ };
+ int i;
+
+ for(i=0; t[i].p_n; i++ ) {
+ if( n <= t[i].p_n )
+ return t[i].q_n;
+ }
+ /* not in table - use some arbitrary high number ;-) */
+ return n / 8 + 200;
+}
+
static void
test_keys( ELG_secret_key *sk, unsigned nbits )
{
@@ -108,38 +162,45 @@ gen_k( MPI p )
MPI k = mpi_alloc_secure( 0 );
MPI temp = mpi_alloc( mpi_get_nlimbs(p) );
MPI p_1 = mpi_copy(p);
- unsigned int nbits = mpi_get_nbits(p);
- unsigned int nbytes = (nbits+7)/8;
+ unsigned int orig_nbits = mpi_get_nbits(p);
+ unsigned int nbits;
+ unsigned int nbytes;
char *rndbuf = NULL;
+ /* IMO using a k much lesser than p is sufficient and it greatly
+ * improves the encryption performance. We use Wiener's table
+ * and add a large safety margin.
+ */
+ nbits = wiener_map( orig_nbits ) * 3 / 2;
+ if( nbits >= orig_nbits )
+ BUG();
+
+ nbytes = (nbits+7)/8;
if( DBG_CIPHER )
- log_debug("choosing a random k ");
+ log_debug("choosing a random k of %u bits", nbits);
mpi_sub_ui( p_1, p, 1);
for(;;) {
- if( DBG_CIPHER )
- progress('.');
if( !rndbuf || nbits < 32 ) {
m_free(rndbuf);
rndbuf = get_random_bits( nbits, 1, 1 );
}
else { /* change only some of the higher bits */
- /* we could imporove this by directly requesting more memory
+ /* we could impprove this by directly requesting more memory
* at the first call to get_random_bits() and use this the here
- * maybe it is easier to do this directly in random.c */
+ * maybe it is easier to do this directly in random.c
+ * Anyway, it is highly inlikely that we will ever reach this code
+ */
char *pp = get_random_bits( 32, 1, 1 );
memcpy( rndbuf,pp, 4 );
m_free(pp);
+ log_debug("gen_k: tsss, never expected to reach this\n");
}
mpi_set_buffer( k, rndbuf, nbytes, 0 );
for(;;) {
- /* make sure that the number is of the exact lenght */
- if( mpi_test_bit( k, nbits-1 ) )
- mpi_set_highbit( k, nbits-1 );
- else {
- mpi_set_highbit( k, nbits-1 );
- mpi_clear_bit( k, nbits-1 );
- }
+ /* Hmm, actually we don't need this step here
+ * because we use k much smaller than p - we do it anyway
+ * just in case the keep on adding a one to k ;) */
if( !(mpi_cmp( k, p_1 ) < 0) ) { /* check: k < (p-1) */
if( DBG_CIPHER )
progress('+');
@@ -153,6 +214,8 @@ gen_k( MPI p )
if( mpi_gcd( temp, k, p_1 ) )
goto found; /* okay, k is relatively prime to (p-1) */
mpi_add_ui( k, k, 1 );
+ if( DBG_CIPHER )
+ progress('.');
}
}
found:
@@ -171,7 +234,7 @@ gen_k( MPI p )
* and an array with n-1 factors of (p-1)
*/
static void
-generate( ELG_secret_key *sk, unsigned nbits, MPI **ret_factors )
+generate( ELG_secret_key *sk, unsigned int nbits, MPI **ret_factors )
{
MPI p; /* the prime */
MPI p_min1;
@@ -179,19 +242,15 @@ generate( ELG_secret_key *sk, unsigned nbits, MPI **ret_factors )
MPI x; /* the secret exponent */
MPI y;
MPI temp;
- unsigned qbits;
+ unsigned int qbits;
+ unsigned int xbits;
byte *rndbuf;
p_min1 = mpi_alloc( (nbits+BITS_PER_MPI_LIMB-1)/BITS_PER_MPI_LIMB );
temp = mpi_alloc( (nbits+BITS_PER_MPI_LIMB-1)/BITS_PER_MPI_LIMB );
- if( nbits < 512 )
- qbits = 120;
- else if( nbits <= 1024 )
- qbits = 160;
- else if( nbits <= 2048 )
- qbits = 200;
- else
- qbits = 240;
+ qbits = wiener_map( nbits );
+ if( qbits & 1 ) /* better have a even one */
+ qbits++;
g = mpi_alloc(1);
p = generate_elg_prime( 0, nbits, qbits, g, ret_factors );
mpi_sub_ui(p_min1, p, 1);
@@ -202,18 +261,26 @@ generate( ELG_secret_key *sk, unsigned nbits, MPI **ret_factors )
* This must be a very good random number because this is the
* secret part. The prime is public and may be shared anyway,
* so a random generator level of 1 is used for the prime.
+ *
+ * I don't see a reason to have a x of about the same size
+ * as the p. It should be sufficient to have one about the size
+ * of q or the later used k plus a large safety margin. Decryption
+ * will be much faster with such an x.
*/
- x = mpi_alloc_secure( nbits/BITS_PER_MPI_LIMB );
+ xbits = qbits * 3 / 2;
+ if( xbits >= nbits )
+ BUG();
+ x = mpi_alloc_secure( xbits/BITS_PER_MPI_LIMB );
if( DBG_CIPHER )
- log_debug("choosing a random x ");
+ log_debug("choosing a random x of size %u", xbits );
rndbuf = NULL;
do {
if( DBG_CIPHER )
progress('.');
if( rndbuf ) { /* change only some of the higher bits */
- if( nbits < 16 ) {/* should never happen ... */
+ if( xbits < 16 ) {/* should never happen ... */
m_free(rndbuf);
- rndbuf = get_random_bits( nbits, 2, 1 );
+ rndbuf = get_random_bits( xbits, 2, 1 );
}
else {
char *r = get_random_bits( 16, 2, 1 );
@@ -222,9 +289,9 @@ generate( ELG_secret_key *sk, unsigned nbits, MPI **ret_factors )
}
}
else
- rndbuf = get_random_bits( nbits, 2, 1 );
- mpi_set_buffer( x, rndbuf, (nbits+7)/8, 0 );
- mpi_clear_highbit( x, nbits+1 );
+ rndbuf = get_random_bits( xbits, 2, 1 );
+ mpi_set_buffer( x, rndbuf, (xbits+7)/8, 0 );
+ mpi_clear_highbit( x, xbits+1 );
} while( !( mpi_cmp_ui( x, 0 )>0 && mpi_cmp( x, p_min1 )<0 ) );
m_free(rndbuf);
@@ -311,7 +378,6 @@ decrypt(MPI output, MPI a, MPI b, ELG_secret_key *skey )
MPI t1 = mpi_alloc_secure( mpi_get_nlimbs( skey->p ) );
/* output = b/(a^x) mod p */
-
mpi_powm( t1, a, skey->x, skey->p );
mpi_invm( t1, t1, skey->p );
mpi_mulm( output, b, t1, skey->p );
@@ -351,8 +417,10 @@ sign(MPI a, MPI b, MPI input, ELG_secret_key *skey )
mpi_powm( a, skey->g, k, skey->p );
mpi_mul(t, skey->x, a );
mpi_subm(t, input, t, p_1 );
- while( mpi_is_neg(t) )
+ while( mpi_is_neg(t) ) {
+ BUG(); /* That is nonsense code - left over from a very early test?*/
mpi_add(t, t, p_1);
+ }
mpi_invm(inv, k, p_1 );
mpi_mulm(b, t, inv, p_1 );
diff --git a/cipher/md.c b/cipher/md.c
index be921e4b0..9313fc068 100644
--- a/cipher/md.c
+++ b/cipher/md.c
@@ -291,7 +291,7 @@ md_reset( MD_HANDLE a )
{
struct md_digest_list_s *r;
- a->bufcount = 0;
+ a->bufcount = a->finalized = 0;
for( r=a->list; r; r = r->next ) {
memset( r->context.c, 0, r->contextsize );
(*r->init)( &r->context.c );
diff --git a/cipher/md5.c b/cipher/md5.c
index bb930d042..eb09d261c 100644
--- a/cipher/md5.c
+++ b/cipher/md5.c
@@ -344,10 +344,10 @@ md5_get_info( int algo, size_t *contextsize,
*r_asnoid = asn;
*r_asnlen = DIM(asn);
*r_mdlen = 16;
- *r_init = (void (*)(void *))md5_init;
- *r_write = (void (*)(void *, byte*, size_t))md5_write;
- *r_final = (void (*)(void *))md5_final;
- *r_read = (byte *(*)(void *))md5_read;
+ *(void (**)(MD5_CONTEXT *))r_init = md5_init;
+ *(void (**)(MD5_CONTEXT *, byte*, size_t))r_write = md5_write;
+ *(void (**)(MD5_CONTEXT *))r_final = md5_final;
+ *(byte *(**)(MD5_CONTEXT *))r_read = md5_read;
return "MD5";
}
diff --git a/cipher/primegen.c b/cipher/primegen.c
index 9bf108531..b6c569de7 100644
--- a/cipher/primegen.c
+++ b/cipher/primegen.c
@@ -38,11 +38,24 @@ static int check_prime( MPI prime, MPI val_2 );
static int is_prime( MPI n, int steps, int *count );
static void m_out_of_n( char *array, int m, int n );
+static void (*progress_cb) ( void *, int );
+static void *progress_cb_data;
+
+void
+register_primegen_progress ( void (*cb)( void *, int), void *cb_data )
+{
+ progress_cb = cb;
+ progress_cb_data = cb_data;
+}
+
static void
progress( int c )
{
- fputc( c, stderr );
+ if ( progress_cb )
+ progress_cb ( progress_cb_data, c );
+ else
+ fputc( c, stderr );
}
@@ -117,8 +130,8 @@ generate_elg_prime( int mode, unsigned pbits, unsigned qbits,
log_debug("gen prime: pbits=%u qbits=%u fbits=%u/%u n=%d\n",
pbits, req_qbits, qbits, fbits, n );
prime = mpi_alloc( (pbits + BITS_PER_MPI_LIMB - 1) / BITS_PER_MPI_LIMB );
- q = gen_prime( qbits, 0, 1 );
- q_factor = mode==1? gen_prime( req_qbits, 0, 1 ) : NULL;
+ q = gen_prime( qbits, 0, 0 );
+ q_factor = mode==1? gen_prime( req_qbits, 0, 0 ) : NULL;
/* allocate an array to hold the factors + 2 for later usage */
factors = m_alloc_clear( (n+2) * sizeof *factors );
@@ -145,7 +158,7 @@ generate_elg_prime( int mode, unsigned pbits, unsigned qbits,
perms = m_alloc_clear( m );
for(i=0; i < n; i++ ) {
perms[i] = 1;
- pool[i] = gen_prime( fbits, 0, 1 );
+ pool[i] = gen_prime( fbits, 0, 0 );
factors[i] = pool[i];
}
}
@@ -154,7 +167,7 @@ generate_elg_prime( int mode, unsigned pbits, unsigned qbits,
for(i=j=0; i < m && j < n ; i++ )
if( perms[i] ) {
if( !pool[i] )
- pool[i] = gen_prime( fbits, 0, 1 );
+ pool[i] = gen_prime( fbits, 0, 0 );
factors[j++] = pool[i];
}
if( i == n ) {
@@ -177,7 +190,7 @@ generate_elg_prime( int mode, unsigned pbits, unsigned qbits,
count1 = 0;
qbits++;
progress('>');
- q = gen_prime( qbits, 0, 1 );
+ q = gen_prime( qbits, 0, 0 );
goto next_try;
}
}
@@ -188,7 +201,7 @@ generate_elg_prime( int mode, unsigned pbits, unsigned qbits,
count2 = 0;
qbits--;
progress('<');
- q = gen_prime( qbits, 0, 1 );
+ q = gen_prime( qbits, 0, 0 );
goto next_try;
}
}
diff --git a/cipher/random.c b/cipher/random.c
index 8ade26c11..be23ddd3e 100644
--- a/cipher/random.c
+++ b/cipher/random.c
@@ -36,15 +36,22 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
+#include <fcntl.h>
#ifdef HAVE_GETHRTIME
#include <sys/times.h>
#endif
#ifdef HAVE_GETTIMEOFDAY
#include <sys/times.h>
#endif
+#ifdef HAVE_CLOCK_GETTIME
+ #include <time.h>
+#endif
#ifdef HAVE_GETRUSAGE
#include <sys/resource.h>
#endif
+#ifdef __MINGW32__
+ #include <process.h>
+#endif
#include "util.h"
#include "rmd.h"
#include "ttyio.h"
@@ -91,6 +98,9 @@ static size_t pool_writepos;
static int pool_filled;
static int pool_balance;
static int just_mixed;
+static int did_initial_extra_seeding;
+static char *seed_file_name;
+static int allow_seed_file_update;
static int secure_alloc;
static int quick_test;
@@ -264,14 +274,171 @@ mix_pool(byte *pool)
}
+void
+set_random_seed_file( const char *name )
+{
+ if( seed_file_name )
+ BUG();
+ seed_file_name = m_strdup( name );
+}
+
+/****************
+ * Read in a seed form the random_seed file
+ * and return true if this was successful
+ */
+static int
+read_seed_file()
+{
+ int fd;
+ struct stat sb;
+ unsigned char buffer[POOLSIZE];
+ int n;
+
+ if( !seed_file_name )
+ return 0;
+
+ #ifdef HAVE_DOSISH_SYSTEM
+ fd = open( seed_file_name, O_RDONLY | O_BINARY );
+ #else
+ fd = open( seed_file_name, O_RDONLY );
+ #endif
+ if( fd == -1 && errno == ENOENT) {
+ allow_seed_file_update = 1;
+ return 0;
+ }
+
+ if( fd == -1 ) {
+ log_info(_("can't open `%s': %s\n"), seed_file_name, strerror(errno) );
+ return 0;
+ }
+ if( fstat( fd, &sb ) ) {
+ log_info(_("can't stat `%s': %s\n"), seed_file_name, strerror(errno) );
+ close(fd);
+ return 0;
+ }
+ if( !S_ISREG(sb.st_mode) ) {
+ log_info(_("`%s' is not a regular file - ignored\n"), seed_file_name );
+ close(fd);
+ return 0;
+ }
+ if( !sb.st_size ) {
+ log_info(_("note: random_seed file is empty\n") );
+ close(fd);
+ allow_seed_file_update = 1;
+ return 0;
+ }
+ if( sb.st_size != POOLSIZE ) {
+ log_info(_("warning: invalid size of random_seed file - not used\n") );
+ close(fd);
+ return 0;
+ }
+ do {
+ n = read( fd, buffer, POOLSIZE );
+ } while( n == -1 && errno == EINTR );
+ if( n != POOLSIZE ) {
+ log_fatal(_("can't read `%s': %s\n"), seed_file_name,strerror(errno) );
+ close(fd);
+ return 0;
+ }
+
+ close(fd);
+
+ add_randomness( buffer, POOLSIZE, 0 );
+ /* add some minor entropy to the pool now (this will also force a mixing) */
+ { pid_t x = getpid();
+ add_randomness( &x, sizeof(x), 0 );
+ }
+ { time_t x = time(NULL);
+ add_randomness( &x, sizeof(x), 0 );
+ }
+ { clock_t x = clock();
+ add_randomness( &x, sizeof(x), 0 );
+ }
+ /* And read a few bytes from our entropy source. By using
+ * a level of 0 this will not block and might not return anything
+ * with some entropy drivers, however the rndlinux driver will use
+ * /dev/urandom and return some stuff - Do not read to much as we
+ * want to be friendly to the scare system entropy resource. */
+ read_random_source( 0, 16, 0 );
+
+ allow_seed_file_update = 1;
+ return 1;
+}
+
+void
+update_random_seed_file()
+{
+ ulong *sp, *dp;
+ int fd, i;
+
+ if( !seed_file_name || !is_initialized || !pool_filled )
+ return;
+ if( !allow_seed_file_update ) {
+ log_info(_("note: random_seed file not updated\n"));
+ return;
+ }
+
+
+ /* copy the entropy pool to a scratch pool and mix both of them */
+ for(i=0,dp=(ulong*)keypool, sp=(ulong*)rndpool;
+ i < POOLWORDS; i++, dp++, sp++ ) {
+ *dp = *sp + ADD_VALUE;
+ }
+ mix_pool(rndpool); rndstats.mixrnd++;
+ mix_pool(keypool); rndstats.mixkey++;
+
+ #ifdef HAVE_DOSISH_SYSTEM
+ fd = open( seed_file_name, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY,
+ S_IRUSR|S_IWUSR );
+ #else
+ fd = open( seed_file_name, O_WRONLY|O_CREAT|O_TRUNC, S_IRUSR|S_IWUSR );
+ #endif
+ if( fd == -1 ) {
+ log_info(_("can't create `%s': %s\n"), seed_file_name, strerror(errno) );
+ return;
+ }
+ do {
+ i = write( fd, keypool, POOLSIZE );
+ } while( i == -1 && errno == EINTR );
+ if( i != POOLSIZE ) {
+ log_info(_("can't write `%s': %s\n"), seed_file_name, strerror(errno) );
+ }
+ if( close(fd) )
+ log_info(_("can't close `%s': %s\n"), seed_file_name, strerror(errno) );
+}
+
+
static void
read_pool( byte *buffer, size_t length, int level )
{
int i;
ulong *sp, *dp;
- if( length >= POOLSIZE )
- BUG(); /* not allowed */
+ if( length >= POOLSIZE ) {
+ log_fatal(_("too many random bits requested; the limit is %d\n"),
+ POOLSIZE*8-1 );
+ }
+
+ if( !pool_filled ) {
+ if( read_seed_file() )
+ pool_filled = 1;
+ }
+
+ /* For level 2 quality (key generation) we alwas make
+ * sure that the pool has been seeded enough initially */
+ if( level == 2 && !did_initial_extra_seeding ) {
+ size_t needed;
+
+ pool_balance = 0;
+ needed = length - pool_balance;
+ if( needed < POOLSIZE/2 )
+ needed = POOLSIZE/2;
+ else if( needed > POOLSIZE )
+ BUG();
+ read_random_source( 3, needed, 2 );
+ pool_balance += needed;
+ did_initial_extra_seeding=1;
+ }
/* for level 2 make sure that there is enough random in the pool */
if( level == 2 && pool_balance < length ) {
@@ -336,6 +503,12 @@ read_pool( byte *buffer, size_t length, int level )
/****************
* Add LENGTH bytes of randomness from buffer to the pool.
* source may be used to specify the randomness source.
+ * Source is:
+ * 0 - used ony for initialization
+ * 1 - fast random poll function
+ * 2 - normal poll function
+ * 3 - used when level 2 random quality has been requested
+ * to do an extra pool seed.
*/
static void
add_randomness( const void *buffer, size_t length, int source )
@@ -399,6 +572,13 @@ fast_random_poll()
add_randomness( &tv.tv_sec, sizeof(tv.tv_sec), 1 );
add_randomness( &tv.tv_usec, sizeof(tv.tv_usec), 1 );
}
+ #elif HAVE_CLOCK_GETTIME
+ { struct timespec tv;
+ if( clock_gettime( CLOCK_REALTIME, &tv ) == -1 )
+ BUG();
+ add_randomness( &tv.tv_sec, sizeof(tv.tv_sec), 1 );
+ add_randomness( &tv.tv_nsec, sizeof(tv.tv_nsec), 1 );
+ }
#else /* use times */
#ifndef HAVE_DOSISH_SYSTEM
{ struct tms buf;
@@ -408,13 +588,28 @@ fast_random_poll()
#endif
#endif
#ifdef HAVE_GETRUSAGE
+ #ifndef RUSAGE_SELF
+ #ifdef __GCC__
+ #warning There is no RUSAGE_SELF on this system
+ #endif
+ #else
{ struct rusage buf;
if( getrusage( RUSAGE_SELF, &buf ) )
BUG();
add_randomness( &buf, sizeof buf, 1 );
memset( &buf, 0, sizeof buf );
}
+ #endif
#endif
+ /* time and clock are availabe on all systems - so
+ * we better do it just in case one of the above functions
+ * didn't work */
+ { time_t x = time(NULL);
+ add_randomness( &x, sizeof(x), 1 );
+ }
+ { clock_t x = clock();
+ add_randomness( &x, sizeof(x), 1 );
+ }
}
diff --git a/cipher/random.h b/cipher/random.h
index 649325c58..cf80bd98d 100644
--- a/cipher/random.h
+++ b/cipher/random.h
@@ -25,6 +25,8 @@
/*-- random.c --*/
void random_dump_stats(void);
void secure_random_alloc(void);
+void set_random_seed_file(const char *);
+void update_random_seed_file(void);
int quick_random_gen( int onoff );
int random_is_faked(void);
void randomize_buffer( byte *buffer, size_t length, int level );
diff --git a/cipher/rmd160.c b/cipher/rmd160.c
index ecd65b35d..fba910d7e 100644
--- a/cipher/rmd160.c
+++ b/cipher/rmd160.c
@@ -562,10 +562,10 @@ rmd160_get_info( int algo, size_t *contextsize,
*r_asnoid = asn;
*r_asnlen = DIM(asn);
*r_mdlen = 20;
- *r_init = (void (*)(void *))rmd160_init;
- *r_write = (void (*)(void *, byte*, size_t))rmd160_write;
- *r_final = (void (*)(void *))rmd160_final;
- *r_read = (byte *(*)(void *))rmd160_read;
+ *(void (**)(RMD160_CONTEXT *))r_init = rmd160_init;
+ *(void (**)(RMD160_CONTEXT *, byte*, size_t))r_write = rmd160_write;
+ *(void (**)(RMD160_CONTEXT *))r_final = rmd160_final;
+ *(byte *(**)(RMD160_CONTEXT *))r_read = rmd160_read;
return "RIPEMD160";
}
diff --git a/cipher/rndegd.c b/cipher/rndegd.c
index 7f2598f60..97395b959 100644
--- a/cipher/rndegd.c
+++ b/cipher/rndegd.c
@@ -83,9 +83,13 @@ do_read( int fd, void *buf, size_t nbytes )
-/* Note: we always use the highest level.
+/****************
+ * Note: we always use the highest level.
* TO boost the performance we may want to add some
* additional code for level 1
+ *
+ * Using a level of 0 should never block and better add nothing
+ * to the pool. So this is just a dummy for EGD.
*/
static int
gather_random( void (*add)(const void*, size_t, int), int requester,
@@ -99,7 +103,8 @@ gather_random( void (*add)(const void*, size_t, int), int requester,
if( !length )
return 0;
-
+ if( !level )
+ return 0;
restart:
if( do_restart ) {
diff --git a/cipher/rndlinux.c b/cipher/rndlinux.c
index 78fee1567..6f80a8def 100644
--- a/cipher/rndlinux.c
+++ b/cipher/rndlinux.c
@@ -89,6 +89,10 @@ open_device( const char *name, int minor )
}
+/****************
+ * Note: Using a level of 0 should never block and better add nothing
+ * to the pool. This is easy to accomplish with /dev/urandom.
+ */
static int
gather_random( void (*add)(const void*, size_t, int), int requester,
size_t length, int level )
@@ -106,6 +110,8 @@ gather_random( void (*add)(const void*, size_t, int), int requester,
fd = fd_random;
}
else {
+ /* this will also be used for elve 0 but by using /dev/urandom
+ * we can be sure that oit will never block. */
if( fd_urandom == -1 )
fd_urandom = open_device( NAME_OF_DEV_URANDOM, 9 );
fd = fd_urandom;
diff --git a/cipher/rndunix.c b/cipher/rndunix.c
index 46f80eab2..59a924e00 100644
--- a/cipher/rndunix.c
+++ b/cipher/rndunix.c
@@ -75,9 +75,9 @@
#ifndef __QNX__
#include <sys/resource.h>
#endif /* __QNX__ */
-#ifdef _AIX
+#if defined( _AIX ) || defined( __QNX__ )
#include <sys/select.h>
-#endif /* _AIX */
+#endif /* _AIX || __QNX__ */
#ifndef __QNX__
#include <sys/shm.h>
#include <sys/signal.h>
@@ -89,6 +89,10 @@
#endif /* __hpux 9.x, after that it's in unistd.h */
#include <sys/wait.h>
/* #include <kitchensink.h> */
+#ifdef __QNX__
+#include <signal.h>
+#include <process.h>
+#endif /* __QNX__ */
#include <errno.h>
#include "types.h" /* for byte and u32 typedefs */
@@ -716,6 +720,10 @@ read_a_msg( int fd, GATHER_MSG *msg )
}
+/****************
+ * Using a level of 0 should never block and better add nothing
+ * to the pool. So this is just a dummy for this gatherer.
+ */
static int
gather_random( void (*add)(const void*, size_t, int), int requester,
size_t length, int level )
@@ -725,6 +733,9 @@ gather_random( void (*add)(const void*, size_t, int), int requester,
GATHER_MSG msg;
size_t n;
+ if( !level )
+ return 0;
+
if( !gatherer_pid ) {
/* make sure we are not setuid */
if( getuid() != geteuid() )
diff --git a/cipher/rndw32.c b/cipher/rndw32.c
new file mode 100644
index 000000000..755d399fc
--- /dev/null
+++ b/cipher/rndw32.c
@@ -0,0 +1,958 @@
+/* rndw32.c - W32 entropy gatherer
+ * Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+ * Copyright Peter Gutmann, Matt Thomlinson and Blake Coverett 1996-1999
+ *
+ * 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 2 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ *
+ *************************************************************************
+ * The code here is based on code from Cryptlib 3.0 beta by Peter Gutmann.
+ * Source file misc/rndwin32.c "Win32 Randomness-Gathering Code" with this
+ * copyright notice:
+ *
+ * This module is part of the cryptlib continuously seeded pseudorandom
+ * number generator. For usage conditions, see lib_rand.c
+ *
+ * [Here is the notice from lib_rand.c, which is now called dev_sys.c]
+ *
+ * This module and the misc/rnd*.c modules represent the cryptlib
+ * continuously seeded pseudorandom number generator (CSPRNG) as described in
+ * my 1998 Usenix Security Symposium paper "The generation of random numbers
+ * for cryptographic purposes".
+ *
+ * The CSPRNG code is copyright Peter Gutmann (and various others) 1996,
+ * 1997, 1998, 1999, all rights reserved. Redistribution of the CSPRNG
+ * modules and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice
+ * and this permission notice in its entirety.
+ *
+ * 2. Redistributions in binary form must reproduce the copyright notice in
+ * the documentation and/or other materials provided with the distribution.
+ *
+ * 3. A copy of any bugfixes or enhancements made must be provided to the
+ * author, <[email protected]> to allow them to be added to the
+ * baseline version of the code.
+ *
+ * ALTERNATIVELY, the code may be distributed under the terms of the GNU
+ * General Public License, version 2 or any later version published by the
+ * Free Software Foundation, in which case the provisions of the GNU GPL are
+ * required INSTEAD OF the above restrictions.
+ *
+ * Although not required under the terms of the GPL, it would still be nice if
+ * you could make any changes available to the author to allow a consistent
+ * code base to be maintained
+ *************************************************************************
+ */
+
+#include <config.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <errno.h>
+#include <string.h>
+
+#include <windows.h>
+
+
+#include "types.h"
+#include "util.h"
+#include "dynload.h"
+
+/* We do not use the netropy DLL anymore because a standalone program is
+ * easier to maintain and */
+/*#define USE_ENTROPY_DLL*/
+
+
+
+#ifdef IS_MODULE
+ #define _(a) (a)
+#else
+ #include "i18n.h"
+#endif
+
+
+static int debug_me;
+
+#ifdef USE_ENTROPY_DLL
+
+#define WIN32_SLOW_SEEDER 0
+#define WIN32_FAST_SEEDER 1
+
+#define PCP_SUCCESS 0
+#define PCP_NULL_POINTER 1
+#define PCP_SEEDER_FAILED 2
+#define PCP_SEEDER_NO_MEM 3
+#define PCP_SEEDER_TOO_SMALL 4
+#define PCP_DLL_LOAD_FAILED 5
+#define PCP_UNKNOWN_PLATFORM 6
+#define PCP_ERROR_VERSION 7
+#define PCP_DLL_FUNC 8
+#define PCP_UNKNOWN_SEEDER_TYPE 9
+
+
+/****************
+ * We sometimes get a SEEDER_TOO_SMALL error, in which case we increment
+ * the internal buffer by SEEDER_INC_CHUNK until we reach MAX_SEEDER_SIZE
+ * MAX_SEEDER_SIZE is used as an arbitrary limit to protect against
+ * bugs in Winseed.
+ */
+#define MAX_SEEDER_SIZE 500000
+#define SEEDER_INC_CHUNK 50000
+
+
+typedef void *WIN32_SEEDER;
+
+static WIN32_SEEDER (WINAPI *create_instance)( byte type, unsigned int *reason);
+static void (WINAPI *delete_instance)( WIN32_SEEDER that );
+static unsigned int (WINAPI *get_internal_seed_size)( WIN32_SEEDER that );
+static void (WINAPI *set_internal_seed_size)( WIN32_SEEDER that,
+ unsigned int new_size);
+static unsigned int (WINAPI *get_expected_seed_size)( WIN32_SEEDER that);
+static unsigned int (WINAPI *get_seed)( WIN32_SEEDER that, byte *buffer,
+ unsigned int *desired_length);
+
+static WIN32_SEEDER slow_seeder, fast_seeder;
+static byte *entropy_buffer;
+static size_t entropy_buffer_size;
+
+/****************
+ * Load and initialize the winseed DLL
+ * NOTE: winseed is not part of the GnuPG distribution. It should be available
+ * at the GNU crypto FTP server site.
+ * We do not load the DLL on demand to have a better control over the
+ * location of the library.
+ */
+static void
+load_and_init_winseed( void )
+{
+ HANDLE hInstance;
+ void *addr;
+ unsigned int reason = 0;
+ unsigned int n1, n2;
+ const char *dllname;
+
+ dllname = read_w32_registry_string( "HKEY_LOCAL_MACHINE",
+ "Software\\GNU\\GnuPG",
+ "EntropyDLL" );
+ if( !dllname )
+ dllname = "c:/gnupg/entropy.dll";
+
+ hInstance = LoadLibrary( dllname );
+ if( !hInstance )
+ goto failure;
+ if( !(addr = GetProcAddress( hInstance, "WS_create_instance" )) )
+ goto failure;
+ create_instance = addr;
+ if( !(addr = GetProcAddress( hInstance, "WS_delete_instance" )) )
+ goto failure;
+ delete_instance = addr;
+ if( !(addr = GetProcAddress( hInstance, "WS_get_internal_seed_size" )) )
+ goto failure;
+ get_internal_seed_size = addr;
+ if( !(addr = GetProcAddress( hInstance, "WS_set_internal_seed_size" )) )
+ goto failure;
+ set_internal_seed_size = addr;
+ if( !(addr = GetProcAddress( hInstance, "WS_get_expected_seed_size" )) )
+ goto failure;
+ get_expected_seed_size = addr;
+ if( !(addr = GetProcAddress( hInstance, "WS_get_seed" )) )
+ goto failure;
+ get_seed = addr;
+
+ /* we have all the functions - init the system */
+ slow_seeder = create_instance( WIN32_SLOW_SEEDER, &reason);
+ if( !slow_seeder ) {
+ g10_log_fatal("error creating winseed slow seeder: rc=%u\n", reason );
+ goto failure;
+ }
+ fast_seeder = create_instance( WIN32_FAST_SEEDER, &reason);
+ if( !fast_seeder ) {
+ g10_log_fatal("error creating winseed fast seeder: rc=%u\n", reason );
+ goto failure;
+ }
+ n1 = get_internal_seed_size( slow_seeder );
+ /*g10_log_info("slow buffer size=%u\n", n1);*/
+ n2 = get_internal_seed_size( fast_seeder );
+ /*g10_log_info("fast buffer size=%u\n", n2);*/
+
+ entropy_buffer_size = n1 > n2? n1: n2;
+ entropy_buffer = m_alloc( entropy_buffer_size );
+ /*g10_log_info("using a buffer of size=%u\n", entropy_buffer_size );*/
+
+ return;
+
+ failure:
+ g10_log_fatal("error loading winseed DLL `%s'\n", dllname );
+}
+
+
+
+
+
+/* Note: we always use the highest level.
+ * TO boost the performance we may want to add some
+ * additional code for level 1
+ */
+static int
+gather_random( void (*add)(const void*, size_t, int), int requester,
+ size_t length, int level )
+{
+ unsigned int result;
+ unsigned int nbytes;
+
+ if( !level )
+ return 0;
+
+ if( !slow_seeder )
+ load_and_init_winseed();
+
+ /* Our estimation on how much entropy we should use is very vague.
+ * Winseed delivers some amount of entropy on each slow poll and
+ * we add it to our random pool. Depending on the required quality
+ * level we adjust the requested length so that for higher quality
+ * we make sure to add more entropy to our pool. However, as we don't
+ * like to waste any entropy collected by winseed, we always add
+ * at least everything we got from winseed.
+ */
+ if( level > 1 )
+ length *= 100;
+ else if( level > 0 )
+ length *= 10;
+
+ for(;;) {
+ nbytes = entropy_buffer_size;
+ result = get_seed( slow_seeder, entropy_buffer, &nbytes);
+ if( result == PCP_SEEDER_TOO_SMALL ) {
+ unsigned int n1 = get_internal_seed_size( slow_seeder );
+
+ if( n1 > MAX_SEEDER_SIZE ) {
+ g10_log_fatal("rndw32: internal seeder problem (size=%u)\n",
+ n1);
+ return -1; /* actually never reached */
+ }
+ n1 += SEEDER_INC_CHUNK;
+ set_internal_seed_size( slow_seeder, n1 );
+ if( n1 > entropy_buffer_size ) {
+ entropy_buffer_size = n1;
+ entropy_buffer = m_realloc( entropy_buffer,
+ entropy_buffer_size );
+ }
+ continue;
+ }
+
+
+ if( result ) {
+ g10_log_fatal("rndw32: get_seed(slow) failed: rc=%u\n", result);
+ return -1; /* actually never reached */
+ }
+ /*g10_log_info("rndw32: slow poll level %d, need %u, got %u\n",
+ level, (unsigned int)length, (unsigned int)nbytes );*/
+ (*add)( entropy_buffer, nbytes, requester );
+ if( length <= nbytes )
+ return 0; /* okay */
+ length -= nbytes;
+ }
+}
+
+static int
+gather_random_fast( void (*add)(const void*, size_t, int), int requester )
+{
+ unsigned int result;
+ unsigned int nbytes;
+
+ if( !fast_seeder )
+ load_and_init_winseed();
+
+ /* winseed delivers a constant ammount of entropy for a fast
+ * poll. We can simply use this and add it to the pool; no need
+ * a loop like it is used in the slow poll */
+ nbytes = entropy_buffer_size;
+ result = get_seed( fast_seeder, entropy_buffer, &nbytes);
+ if( result ) {
+ g10_log_fatal("rndw32: get_seed(fast) failed: rc=%u\n", result);
+ return -1; /* actually never reached */
+ }
+ /*g10_log_info("rndw32: fast poll got %u\n", (unsigned int)nbytes );*/
+ (*add)( entropy_buffer, nbytes, requester );
+ return 0;
+}
+
+#else /* !USE_ENTROPY_DLL */
+/* This is the new code which does not require the entropy.dll */
+
+/*
+ * Definitions which are missing from the current GNU Windows32Api
+ */
+
+#define TH32CS_SNAPHEAPLIST 1
+#define TH32CS_SNAPPROCESS 2
+#define TH32CS_SNAPTHREAD 4
+#define TH32CS_SNAPMODULE 8
+#define TH32CS_SNAPALL (1|2|4|8)
+#define TH32CS_INHERIT 0x80000000
+
+#define IOCTL_DISK_PERFORMANCE 0x00070020
+#define VER_PLATFORM_WIN32_WINDOWS 1
+
+
+typedef struct {
+ DWORD dwSize;
+ DWORD th32ProcessID;
+ DWORD th32HeapID;
+ DWORD dwFlags;
+} HEAPLIST32;
+
+typedef struct {
+ DWORD dwSize;
+ HANDLE hHandle;
+ DWORD dwAddress;
+ DWORD dwBlockSize;
+ DWORD dwFlags;
+ DWORD dwLockCount;
+ DWORD dwResvd;
+ DWORD th32ProcessID;
+ DWORD th32HeapID;
+} HEAPENTRY32;
+
+typedef struct {
+ DWORD dwSize;
+ DWORD cntUsage;
+ DWORD th32ProcessID;
+ DWORD th32DefaultHeapID;
+ DWORD th32ModuleID;
+ DWORD cntThreads;
+ DWORD th32ParentProcessID;
+ LONG pcPriClassBase;
+ DWORD dwFlags;
+ char szExeFile[260];
+} PROCESSENTRY32;
+
+typedef struct {
+ DWORD dwSize;
+ DWORD cntUsage;
+ DWORD th32ThreadID;
+ DWORD th32OwnerProcessID;
+ LONG tpBasePri;
+ LONG tpDeltaPri;
+ DWORD dwFlags;
+} THREADENTRY32;
+
+typedef struct {
+ DWORD dwSize;
+ DWORD th32ModuleID;
+ DWORD th32ProcessID;
+ DWORD GlblcntUsage;
+ DWORD ProccntUsage;
+ BYTE *modBaseAddr;
+ DWORD modBaseSize;
+ HMODULE hModule;
+ char szModule[256];
+ char szExePath[260];
+} MODULEENTRY32;
+
+
+
+/* Type definitions for function pointers to call Toolhelp32 functions
+ * used with the windows95 gatherer */
+typedef BOOL (WINAPI * MODULEWALK) (HANDLE hSnapshot, MODULEENTRY32 *lpme);
+typedef BOOL (WINAPI * THREADWALK) (HANDLE hSnapshot, THREADENTRY32 *lpte);
+typedef BOOL (WINAPI * PROCESSWALK) (HANDLE hSnapshot, PROCESSENTRY32 *lppe);
+typedef BOOL (WINAPI * HEAPLISTWALK) (HANDLE hSnapshot, HEAPLIST32 *lphl);
+typedef BOOL (WINAPI * HEAPFIRST) (HEAPENTRY32 *lphe, DWORD th32ProcessID,
+ DWORD th32HeapID);
+typedef BOOL (WINAPI * HEAPNEXT) (HEAPENTRY32 *lphe);
+typedef HANDLE (WINAPI * CREATESNAPSHOT) (DWORD dwFlags, DWORD th32ProcessID);
+
+/* Type definitions for function pointers to call NetAPI32 functions */
+typedef DWORD (WINAPI * NETSTATISTICSGET) (LPWSTR szServer, LPWSTR szService,
+ DWORD dwLevel, DWORD dwOptions,
+ LPBYTE * lpBuffer);
+typedef DWORD (WINAPI * NETAPIBUFFERSIZE) (LPVOID lpBuffer, LPDWORD cbBuffer);
+typedef DWORD (WINAPI * NETAPIBUFFERFREE) (LPVOID lpBuffer);
+
+
+/* When we query the performance counters, we allocate an initial buffer and
+ * then reallocate it as required until RegQueryValueEx() stops returning
+ * ERROR_MORE_DATA. The following values define the initial buffer size and
+ * step size by which the buffer is increased
+ */
+#define PERFORMANCE_BUFFER_SIZE 65536 /* Start at 64K */
+#define PERFORMANCE_BUFFER_STEP 16384 /* Step by 16K */
+
+
+static void
+slow_gatherer_windows95( void (*add)(const void*, size_t, int), int requester )
+{
+ static CREATESNAPSHOT pCreateToolhelp32Snapshot = NULL;
+ static MODULEWALK pModule32First = NULL;
+ static MODULEWALK pModule32Next = NULL;
+ static PROCESSWALK pProcess32First = NULL;
+ static PROCESSWALK pProcess32Next = NULL;
+ static THREADWALK pThread32First = NULL;
+ static THREADWALK pThread32Next = NULL;
+ static HEAPLISTWALK pHeap32ListFirst = NULL;
+ static HEAPLISTWALK pHeap32ListNext = NULL;
+ static HEAPFIRST pHeap32First = NULL;
+ static HEAPNEXT pHeap32Next = NULL;
+ HANDLE hSnapshot;
+
+
+ /* initialize the Toolhelp32 function pointers */
+ if ( !pCreateToolhelp32Snapshot ) {
+ HANDLE hKernel;
+
+ if ( debug_me )
+ log_debug ("rndw32#slow_gatherer_95: init toolkit\n" );
+
+ /* Obtain the module handle of the kernel to retrieve the addresses
+ * of the Toolhelp32 functions */
+ if ( ( !(hKernel = GetModuleHandle ("KERNEL32.DLL"))) ) {
+ g10_log_fatal ( "rndw32: can't get module handle\n" );
+ }
+
+ /* Now get pointers to the functions */
+ pCreateToolhelp32Snapshot = (CREATESNAPSHOT) GetProcAddress (hKernel,
+ "CreateToolhelp32Snapshot");
+ pModule32First = (MODULEWALK) GetProcAddress (hKernel, "Module32First");
+ pModule32Next = (MODULEWALK) GetProcAddress (hKernel, "Module32Next");
+ pProcess32First = (PROCESSWALK) GetProcAddress (hKernel,
+ "Process32First");
+ pProcess32Next = (PROCESSWALK) GetProcAddress (hKernel,
+ "Process32Next");
+ pThread32First = (THREADWALK) GetProcAddress (hKernel, "Thread32First");
+ pThread32Next = (THREADWALK) GetProcAddress (hKernel, "Thread32Next");
+ pHeap32ListFirst = (HEAPLISTWALK) GetProcAddress (hKernel,
+ "Heap32ListFirst");
+ pHeap32ListNext = (HEAPLISTWALK) GetProcAddress (hKernel,
+ "Heap32ListNext");
+ pHeap32First = (HEAPFIRST) GetProcAddress (hKernel, "Heap32First");
+ pHeap32Next = (HEAPNEXT) GetProcAddress (hKernel, "Heap32Next");
+
+ if ( !pCreateToolhelp32Snapshot
+ || !pModule32First || !pModule32Next
+ || !pProcess32First || !pProcess32Next
+ || !pThread32First || !pThread32Next
+ || !pHeap32ListFirst || !pHeap32ListNext
+ || !pHeap32First || !pHeap32Next ) {
+ g10_log_fatal ( "rndw32: failed to get a toolhep function\n" );
+ }
+ }
+
+ /* Take a snapshot of everything we can get to which is currently
+ * in the system */
+ if ( !(hSnapshot = pCreateToolhelp32Snapshot (TH32CS_SNAPALL, 0)) ) {
+ g10_log_fatal ( "rndw32: failed to take a toolhelp snapshot\n" );
+ }
+
+ /* Walk through the local heap */
+ { HEAPLIST32 hl32;
+ hl32.dwSize = sizeof (HEAPLIST32);
+ if (pHeap32ListFirst (hSnapshot, &hl32)) {
+ if ( debug_me )
+ log_debug ("rndw32#slow_gatherer_95: walk heap\n" );
+ do {
+ HEAPENTRY32 he32;
+
+ /* First add the information from the basic Heaplist32 struct */
+ (*add) ( &hl32, sizeof (hl32), requester );
+
+ /* Now walk through the heap blocks getting information
+ * on each of them */
+ he32.dwSize = sizeof (HEAPENTRY32);
+ if (pHeap32First (&he32, hl32.th32ProcessID, hl32.th32HeapID)){
+ do {
+ (*add) ( &he32, sizeof (he32), requester );
+ } while (pHeap32Next (&he32));
+ }
+ } while (pHeap32ListNext (hSnapshot, &hl32));
+ }
+ }
+
+
+ /* Walk through all processes */
+ { PROCESSENTRY32 pe32;
+ pe32.dwSize = sizeof (PROCESSENTRY32);
+ if (pProcess32First (hSnapshot, &pe32)) {
+ if ( debug_me )
+ log_debug ("rndw32#slow_gatherer_95: walk processes\n" );
+ do {
+ (*add) ( &pe32, sizeof (pe32), requester );
+ } while (pProcess32Next (hSnapshot, &pe32));
+ }
+ }
+
+ /* Walk through all threads */
+ { THREADENTRY32 te32;
+ te32.dwSize = sizeof (THREADENTRY32);
+ if (pThread32First (hSnapshot, &te32)) {
+ if ( debug_me )
+ log_debug ("rndw32#slow_gatherer_95: walk threads\n" );
+ do {
+ (*add) ( &te32, sizeof (te32), requester );
+ } while (pThread32Next (hSnapshot, &te32));
+ }
+ }
+
+ /* Walk through all modules associated with the process */
+ { MODULEENTRY32 me32;
+ me32.dwSize = sizeof (MODULEENTRY32);
+ if (pModule32First (hSnapshot, &me32)) {
+ if ( debug_me )
+ log_debug ("rndw32#slow_gatherer_95: walk modules\n" );
+ do {
+ (*add) ( &me32, sizeof (me32), requester );
+ } while (pModule32Next (hSnapshot, &me32));
+ }
+ }
+
+ CloseHandle (hSnapshot);
+}
+
+
+
+static void
+slow_gatherer_windowsNT( void (*add)(const void*, size_t, int), int requester )
+{
+ static int is_initialized = 0;
+ static NETSTATISTICSGET pNetStatisticsGet = NULL;
+ static NETAPIBUFFERSIZE pNetApiBufferSize = NULL;
+ static NETAPIBUFFERFREE pNetApiBufferFree = NULL;
+ static int is_workstation = 1;
+
+ static int cbPerfData = PERFORMANCE_BUFFER_SIZE;
+ PERF_DATA_BLOCK *pPerfData;
+ HANDLE hDevice, hNetAPI32 = NULL;
+ DWORD dwSize, status;
+ int nDrive;
+
+ if ( !is_initialized ) {
+ HKEY hKey;
+
+ if ( debug_me )
+ log_debug ("rndw32#slow_gatherer_nt: init toolkit\n" );
+ /* Find out whether this is an NT server or workstation if necessary */
+ if (RegOpenKeyEx (HKEY_LOCAL_MACHINE,
+ "SYSTEM\\CurrentControlSet\\Control\\ProductOptions",
+ 0, KEY_READ, &hKey) == ERROR_SUCCESS) {
+ BYTE szValue[32];
+ dwSize = sizeof (szValue);
+
+ if ( debug_me )
+ log_debug ("rndw32#slow_gatherer_nt: check product options\n" );
+ status = RegQueryValueEx (hKey, "ProductType", 0, NULL,
+ szValue, &dwSize);
+ if (status == ERROR_SUCCESS && stricmp (szValue, "WinNT")) {
+ /* Note: There are (at least) three cases for ProductType:
+ * WinNT = NT Workstation, ServerNT = NT Server, LanmanNT =
+ * NT Server acting as a Domain Controller */
+ is_workstation = 0;
+ if ( debug_me )
+ log_debug ("rndw32: this is a NT server\n");
+ }
+ RegCloseKey (hKey);
+ }
+
+ /* Initialize the NetAPI32 function pointers if necessary */
+ if ( (hNetAPI32 = LoadLibrary ("NETAPI32.DLL")) ) {
+ if ( debug_me )
+ log_debug ("rndw32#slow_gatherer_nt: netapi32 loaded\n" );
+ pNetStatisticsGet = (NETSTATISTICSGET) GetProcAddress (hNetAPI32,
+ "NetStatisticsGet");
+ pNetApiBufferSize = (NETAPIBUFFERSIZE) GetProcAddress (hNetAPI32,
+ "NetApiBufferSize");
+ pNetApiBufferFree = (NETAPIBUFFERFREE) GetProcAddress (hNetAPI32,
+ "NetApiBufferFree");
+
+ if ( !pNetStatisticsGet
+ || !pNetApiBufferSize || !pNetApiBufferFree ) {
+ FreeLibrary (hNetAPI32);
+ hNetAPI32 = NULL;
+ g10_log_debug ("rndw32: No NETAPI found\n" );
+ }
+ }
+
+ is_initialized = 1;
+ }
+
+ /* Get network statistics. Note: Both NT Workstation and NT Server by
+ * default will be running both the workstation and server services. The
+ * heuristic below is probably useful though on the assumption that the
+ * majority of the network traffic will be via the appropriate service.
+ * In any case the network statistics return almost no randomness */
+ { LPBYTE lpBuffer;
+ if (hNetAPI32 && !pNetStatisticsGet (NULL,
+ is_workstation ? L"LanmanWorkstation" :
+ L"LanmanServer", 0, 0, &lpBuffer) ) {
+ if ( debug_me )
+ log_debug ("rndw32#slow_gatherer_nt: get netstats\n" );
+ pNetApiBufferSize (lpBuffer, &dwSize);
+ (*add) ( lpBuffer, dwSize,requester );
+ pNetApiBufferFree (lpBuffer);
+ }
+ }
+
+ /* Get disk I/O statistics for all the hard drives */
+ for (nDrive = 0;; nDrive++) {
+ DISK_PERFORMANCE diskPerformance;
+ char szDevice[50];
+
+ /* Check whether we can access this device */
+ sprintf (szDevice, "\\\\.\\PhysicalDrive%d", nDrive);
+ hDevice = CreateFile (szDevice, 0, FILE_SHARE_READ | FILE_SHARE_WRITE,
+ NULL, OPEN_EXISTING, 0, NULL);
+ if (hDevice == INVALID_HANDLE_VALUE)
+ break;
+
+ /* Note: This only works if you have turned on the disk performance
+ * counters with 'diskperf -y'. These counters are off by default */
+ if (DeviceIoControl (hDevice, IOCTL_DISK_PERFORMANCE, NULL, 0,
+ &diskPerformance, sizeof (DISK_PERFORMANCE),
+ &dwSize, NULL))
+ {
+ if ( debug_me )
+ log_debug ("rndw32#slow_gatherer_nt: iostats drive %d\n",
+ nDrive );
+ (*add) ( &diskPerformance, dwSize, requester );
+ }
+ else {
+ log_info ("NOTE: you should run 'diskperf -y' "
+ "to enable the disk statistics\n");
+ }
+ CloseHandle (hDevice);
+ }
+
+ #if 0 /* we don't need this in GnuPG */
+ /* Wait for any async keyset driver binding to complete. You may be
+ * wondering what this call is doing here... the reason it's necessary is
+ * because RegQueryValueEx() will hang indefinitely if the async driver
+ * bind is in progress. The problem occurs in the dynamic loading and
+ * linking of driver DLL's, which work as follows:
+ *
+ * hDriver = LoadLibrary( DRIVERNAME );
+ * pFunction1 = ( TYPE_FUNC1 ) GetProcAddress( hDriver, NAME_FUNC1 );
+ * pFunction2 = ( TYPE_FUNC1 ) GetProcAddress( hDriver, NAME_FUNC2 );
+ *
+ * If RegQueryValueEx() is called while the GetProcAddress()'s are in
+ * progress, it will hang indefinitely. This is probably due to some
+ * synchronisation problem in the NT kernel where the GetProcAddress()
+ * calls affect something like a module reference count or function
+ * reference count while RegQueryValueEx() is trying to take a snapshot
+ * of the statistics, which include the reference counts. Because of
+ * this, we have to wait until any async driver bind has completed
+ * before we can call RegQueryValueEx() */
+ waitSemaphore (SEMAPHORE_DRIVERBIND);
+ #endif
+
+ /* Get information from the system performance counters. This can take
+ * a few seconds to do. In some environments the call to
+ * RegQueryValueEx() can produce an access violation at some random time
+ * in the future, adding a short delay after the following code block
+ * makes the problem go away. This problem is extremely difficult to
+ * reproduce, I haven't been able to get it to occur despite running it
+ * on a number of machines. The best explanation for the problem is that
+ * on the machine where it did occur, it was caused by an external driver
+ * or other program which adds its own values under the
+ * HKEY_PERFORMANCE_DATA key. The NT kernel calls the required external
+ * modules to map in the data, if there's a synchronisation problem the
+ * external module would write its data at an inappropriate moment,
+ * causing the access violation. A low-level memory checker indicated
+ * that ExpandEnvironmentStrings() in KERNEL32.DLL, called an
+ * interminable number of calls down inside RegQueryValueEx(), was
+ * overwriting memory (it wrote twice the allocated size of a buffer to a
+ * buffer allocated by the NT kernel). This may be what's causing the
+ * problem, but since it's in the kernel there isn't much which can be
+ * done.
+ *
+ * In addition to these problems the code in RegQueryValueEx() which
+ * estimates the amount of memory required to return the performance
+ * counter information isn't very accurate, since it always returns a
+ * worst-case estimate which is usually nowhere near the actual amount
+ * required. For example it may report that 128K of memory is required,
+ * but only return 64K of data */
+ { pPerfData = m_alloc (cbPerfData);
+ for (;;) {
+ dwSize = cbPerfData;
+ if ( debug_me )
+ log_debug ("rndw32#slow_gatherer_nt: get perf data\n" );
+ status = RegQueryValueEx (HKEY_PERFORMANCE_DATA, "Global", NULL,
+ NULL, (LPBYTE) pPerfData, &dwSize);
+ if (status == ERROR_SUCCESS) {
+ if (!memcmp (pPerfData->Signature, L"PERF", 8)) {
+ (*add) ( pPerfData, dwSize, requester );
+ }
+ else
+ g10_log_debug ( "rndw32: no PERF signature\n");
+ break;
+ }
+ else if (status == ERROR_MORE_DATA) {
+ cbPerfData += PERFORMANCE_BUFFER_STEP;
+ pPerfData = m_realloc (pPerfData, cbPerfData);
+ }
+ else {
+ g10_log_debug ( "rndw32: get performance data problem\n");
+ break;
+ }
+ }
+ m_free (pPerfData);
+ }
+ /* Although this isn't documented in the Win32 API docs, it's necessary
+ to explicitly close the HKEY_PERFORMANCE_DATA key after use (it's
+ implicitly opened on the first call to RegQueryValueEx()). If this
+ isn't done then any system components which provide performance data
+ can't be removed or changed while the handle remains active */
+ RegCloseKey (HKEY_PERFORMANCE_DATA);
+}
+
+
+static int
+gather_random( void (*add)(const void*, size_t, int), int requester,
+ size_t length, int level )
+{
+ static int is_initialized;
+ static int is_windows95;
+
+
+ if( !level )
+ return 0;
+ /* We don't differentiate between level 1 and 2 here because
+ * there is no nternal entropy pool as a scary resource. It may
+ * all work slower, but because our entropy source will never
+ * block but deliver some not easy to measure entropy, we assume level 2
+ */
+
+
+ if ( !is_initialized ) {
+ OSVERSIONINFO osvi = { sizeof( osvi ) };
+ DWORD platform;
+
+ GetVersionEx( &osvi );
+ platform = osvi.dwPlatformId;
+ is_windows95 = platform == VER_PLATFORM_WIN32_WINDOWS;
+
+ if ( platform == VER_PLATFORM_WIN32s ) {
+ g10_log_fatal("can't run on a W32s platform\n" );
+ }
+ is_initialized = 1;
+ if ( debug_me )
+ log_debug ("rndw32#gather_random: platform=%d\n", (int)platform );
+ }
+
+
+ if ( debug_me )
+ log_debug ("rndw32#gather_random: req=%d len=%u lvl=%d\n",
+ requester, (unsigned int)length, level );
+
+ if (is_windows95 ) {
+ slow_gatherer_windows95( add, requester );
+ }
+ else {
+ slow_gatherer_windowsNT( add, requester );
+ }
+
+ return 0;
+}
+
+
+
+static int
+gather_random_fast( void (*add)(const void*, size_t, int), int requester )
+{
+ static int addedFixedItems = 0;
+
+ if ( debug_me )
+ log_debug ("rndw32#gather_random_fast: req=%d\n", requester );
+
+ /* Get various basic pieces of system information: Handle of active
+ * window, handle of window with mouse capture, handle of clipboard owner
+ * handle of start of clpboard viewer list, pseudohandle of current
+ * process, current process ID, pseudohandle of current thread, current
+ * thread ID, handle of desktop window, handle of window with keyboard
+ * focus, whether system queue has any events, cursor position for last
+ * message, 1 ms time for last message, handle of window with clipboard
+ * open, handle of process heap, handle of procs window station, types of
+ * events in input queue, and milliseconds since Windows was started */
+ { byte buffer[20*sizeof(ulong)], *bufptr;
+ bufptr = buffer;
+ #define ADD(f) do { ulong along = (ulong)(f); \
+ memcpy (bufptr, &along, sizeof (along) ); \
+ bufptr += sizeof (along); } while (0)
+ ADD ( GetActiveWindow ());
+ ADD ( GetCapture ());
+ ADD ( GetClipboardOwner ());
+ ADD ( GetClipboardViewer ());
+ ADD ( GetCurrentProcess ());
+ ADD ( GetCurrentProcessId ());
+ ADD ( GetCurrentThread ());
+ ADD ( GetCurrentThreadId ());
+ ADD ( GetDesktopWindow ());
+ ADD ( GetFocus ());
+ ADD ( GetInputState ());
+ ADD ( GetMessagePos ());
+ ADD ( GetMessageTime ());
+ ADD ( GetOpenClipboardWindow ());
+ ADD ( GetProcessHeap ());
+ ADD ( GetProcessWindowStation ());
+ ADD ( GetQueueStatus (QS_ALLEVENTS));
+ ADD ( GetTickCount ());
+
+ assert ( bufptr-buffer < sizeof (buffer) );
+ (*add) ( buffer, bufptr-buffer, requester );
+ #undef ADD
+ }
+
+ /* Get multiword system information: Current caret position, current
+ * mouse cursor position */
+ { POINT point;
+ GetCaretPos (&point);
+ (*add) ( &point, sizeof (point), requester );
+ GetCursorPos (&point);
+ (*add) ( &point, sizeof (point), requester );
+ }
+
+ /* Get percent of memory in use, bytes of physical memory, bytes of free
+ * physical memory, bytes in paging file, free bytes in paging file, user
+ * bytes of address space, and free user bytes */
+ { MEMORYSTATUS memoryStatus;
+ memoryStatus.dwLength = sizeof (MEMORYSTATUS);
+ GlobalMemoryStatus (&memoryStatus);
+ (*add) ( &memoryStatus, sizeof (memoryStatus), requester );
+ }
+
+ /* Get thread and process creation time, exit time, time in kernel mode,
+ and time in user mode in 100ns intervals */
+ { HANDLE handle;
+ FILETIME creationTime, exitTime, kernelTime, userTime;
+ DWORD minimumWorkingSetSize, maximumWorkingSetSize;
+
+ handle = GetCurrentThread ();
+ GetThreadTimes (handle, &creationTime, &exitTime,
+ &kernelTime, &userTime);
+ (*add) ( &creationTime, sizeof (creationTime), requester );
+ (*add) ( &exitTime, sizeof (exitTime), requester );
+ (*add) ( &kernelTime, sizeof (kernelTime), requester );
+ (*add) ( &userTime, sizeof (userTime), requester );
+
+ handle = GetCurrentProcess ();
+ GetProcessTimes (handle, &creationTime, &exitTime,
+ &kernelTime, &userTime);
+ (*add) ( &creationTime, sizeof (creationTime), requester );
+ (*add) ( &exitTime, sizeof (exitTime), requester );
+ (*add) ( &kernelTime, sizeof (kernelTime), requester );
+ (*add) ( &userTime, sizeof (userTime), requester );
+
+ /* Get the minimum and maximum working set size for the current process */
+ GetProcessWorkingSetSize (handle, &minimumWorkingSetSize,
+ &maximumWorkingSetSize);
+ (*add) ( &minimumWorkingSetSize,
+ sizeof (&minimumWorkingSetSize), requester );
+ (*add) ( &maximumWorkingSetSize,
+ sizeof (&maximumWorkingSetSize), requester );
+ }
+
+
+ /* The following are fixed for the lifetime of the process so we only
+ * add them once */
+ if (!addedFixedItems) {
+ STARTUPINFO startupInfo;
+
+ /* Get name of desktop, console window title, new window position and
+ * size, window flags, and handles for stdin, stdout, and stderr */
+ startupInfo.cb = sizeof (STARTUPINFO);
+ GetStartupInfo (&startupInfo);
+ (*add) ( &startupInfo, sizeof (STARTUPINFO), requester );
+ addedFixedItems = 1;
+ }
+
+ /* The performance of QPC varies depending on the architecture it's
+ * running on and on the OS. Under NT it reads the CPU's 64-bit timestamp
+ * counter (at least on a Pentium and newer '486's, it hasn't been tested
+ * on anything without a TSC), under Win95 it reads the 1.193180 MHz PIC
+ * timer. There are vague mumblings in the docs that it may fail if the
+ * appropriate hardware isn't available (possibly '386's or MIPS machines
+ * running NT), but who's going to run NT on a '386? */
+ { LARGE_INTEGER performanceCount;
+ if (QueryPerformanceCounter (&performanceCount)) {
+ if ( debug_me )
+ log_debug ("rndw32#gather_random_fast: perf data\n");
+ (*add) (&performanceCount, sizeof (&performanceCount), requester);
+ }
+ else { /* Millisecond accuracy at best... */
+ DWORD aword = GetTickCount ();
+ (*add) (&aword, sizeof (aword), requester );
+ }
+ }
+
+ return 0;
+}
+
+
+
+
+
+#endif /* !USE_ENTROPY_DLL */
+
+
+#ifndef IS_MODULE
+static
+#endif
+const char * const gnupgext_version = "RNDW32 ($Revision$)";
+
+static struct {
+ int class;
+ int version;
+ void *func;
+} func_table[] = {
+ { 40, 1, gather_random },
+ { 41, 1, gather_random_fast },
+};
+
+
+#ifndef IS_MODULE
+static
+#endif
+void *
+gnupgext_enum_func( int what, int *sequence, int *class, int *vers )
+{
+ void *ret;
+ int i = *sequence;
+
+ debug_me = !!getenv("DEBUG_RNDW32");
+
+ do {
+ if ( i >= DIM(func_table) || i < 0 ) {
+ return NULL;
+ }
+ *class = func_table[i].class;
+ *vers = func_table[i].version;
+ ret = func_table[i].func;
+ i++;
+ } while ( what && what != *class );
+
+ *sequence = i;
+ return ret;
+}
+
+#ifndef IS_MODULE
+void
+rndw32_constructor(void)
+{
+ register_internal_cipher_extension( gnupgext_version,
+ gnupgext_enum_func );
+}
+#endif
+
diff --git a/cipher/sha1.c b/cipher/sha1.c
index 40ad62f1f..2c2a10a7b 100644
--- a/cipher/sha1.c
+++ b/cipher/sha1.c
@@ -337,10 +337,10 @@ sha1_get_info( int algo, size_t *contextsize,
*r_asnoid = asn;
*r_asnlen = DIM(asn);
*r_mdlen = 20;
- *r_init = (void (*)(void *))sha1_init;
- *r_write = (void (*)(void *, byte*, size_t))sha1_write;
- *r_final = (void (*)(void *))sha1_final;
- *r_read = (byte *(*)(void *))sha1_read;
+ *(void (**)(SHA1_CONTEXT *))r_init = sha1_init;
+ *(void (**)(SHA1_CONTEXT *, byte*, size_t))r_write = sha1_write;
+ *(void (**)(SHA1_CONTEXT *))r_final = sha1_final;
+ *(byte *(**)(SHA1_CONTEXT *))r_read = sha1_read;
return "SHA1";
}
diff --git a/cipher/tiger.c b/cipher/tiger.c
index 0765f0bbd..e4a7c4daa 100644
--- a/cipher/tiger.c
+++ b/cipher/tiger.c
@@ -899,10 +899,10 @@ tiger_get_info( int algo, size_t *contextsize,
*r_asnoid = asn;
*r_asnlen = DIM(asn);
*r_mdlen = 24;
- *r_init = (void (*)(void *))tiger_init;
- *r_write = (void (*)(void *, byte*, size_t))tiger_write;
- *r_final = (void (*)(void *))tiger_final;
- *r_read = (byte *(*)(void *))tiger_read;
+ *(void (**)(TIGER_CONTEXT *))r_init = tiger_init;
+ *(void (**)(TIGER_CONTEXT *, byte*, size_t))r_write = tiger_write;
+ *(void (**)(TIGER_CONTEXT *))r_final = tiger_final;
+ *(byte *(**)(TIGER_CONTEXT *))r_read = tiger_read;
return "TIGER";
}
diff --git a/cipher/twofish.c b/cipher/twofish.c
index 182f18c49..12982e123 100644
--- a/cipher/twofish.c
+++ b/cipher/twofish.c
@@ -35,10 +35,6 @@
/* Prototype for the self-test function. */
static const char *selftest(void);
-/* Macros used by the info function. */
-#define FNCCAST_SETKEY(f) ((int(*)(void*, byte*, unsigned))(f))
-#define FNCCAST_CRYPT(f) ((void(*)(void*, byte*, byte*))(f))
-
/* Structure for an expanded Twofish key. s contains the key-dependent
* S-boxes composed with the MDS matrix; w contains the eight "whitening"
* subkeys, K[0] through K[7]. k holds the remaining, "round" subkeys. Note
@@ -991,16 +987,20 @@ twofish_get_info (int algo, size_t *keylen,
*keylen = algo==10? 256 : 128;
*blocksize = 16;
*contextsize = sizeof (TWOFISH_context);
- *r_setkey = FNCCAST_SETKEY (twofish_setkey);
- *r_encrypt= FNCCAST_CRYPT (twofish_encrypt);
- *r_decrypt= FNCCAST_CRYPT (twofish_decrypt);
-
- if( algo == 10 )
- return "TWOFISH";
- if (algo == 102) /* This algorithm number is assigned for
- * experiments, so we can use it */
- return "TWOFISH128";
- return NULL;
+
+ *(int (**)(TWOFISH_context*, const byte*, const unsigned))r_setkey
+ = twofish_setkey;
+ *(void (**)(const TWOFISH_context*, byte*, const byte*))r_encrypt
+ = twofish_encrypt;
+ *(void (**)(const TWOFISH_context*, byte*, const byte*))r_decrypt
+ = twofish_decrypt;
+
+ if( algo == 10 )
+ return "TWOFISH";
+ if (algo == 102) /* This algorithm number is assigned for
+ * experiments, so we can use it */
+ return "TWOFISH128";
+ return NULL;
}
diff --git a/configure.in b/configure.in
index a56847ae8..290ebbc23 100644
--- a/configure.in
+++ b/configure.in
@@ -15,15 +15,16 @@ AM_CONFIG_HEADER(config.h)
VERSION=`cat $srcdir/VERSION`
PACKAGE=gnupg
-ALL_LINGUAS="de es_ES fr it pl pt_BR pt_PT ru"
+ALL_LINGUAS="de eo es_ES fr id it ja nl pl pt_BR pt_PT ru sv"
static_modules="sha1 md5 rmd160"
+static_random_module=""
AC_SUBST(VERSION)
AC_SUBST(PACKAGE)
AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
-MODULES_IN_CIPHER=`awk '/# MODULES: / { for(i=3;i<=NF;i++) print $i}' \
- $srcdir/cipher/Makefile.am`
+MODULES_IN_CIPHER=`awk '/^EXTRA_PROGRAMS/ { for(i=3;i<=NF;i++) print $i}' \
+ $srcdir/cipher/Makefile.am`
dnl
dnl Check for random module options
@@ -104,29 +105,6 @@ AC_ARG_WITH(included-zlib,
[g10_force_zlib=yes], [g10_force_zlib=no] )
AC_MSG_RESULT($g10_force_zlib)
-dnl
-dnl Check wether we want to compile libgcrypt
-dnl
-AC_MSG_CHECKING([whether compilation of libgcrypt is requested])
-AC_ARG_ENABLE(libgcrypt,
- [ --enable-libgcrypt compile the libgcrypt [default=no]],
-[compile_libgcrypt="$enableval"],[compile_libgcrypt=no])
-AC_MSG_RESULT($compile_libgcrypt)
-if test x$compile_libgcrypt = xyes ; then
- if test -f $srcdir/gcrypt/gcrypt.h; then
- :
- else
- compile_libgcrypt=no
- AC_MSG_WARN([[
-***
-*** LIBGCRYPT is not yet ready for public testing.
-*** Maybe you have more luck with the next release of GnuPG
-*** Watch the gnupg-announce mailing list or the webpage.
-***]])
- fi
-fi
-AM_CONDITIONAL(COMPILE_LIBGCRYPT, test x$compile_libgcrypt = xyes)
-
dnl
dnl Check whether we want to use Linux capabilities
@@ -154,12 +132,13 @@ case "${target}" in
# special stuff for Windoze NT
# Do we need to set cross_compiling here or is it sufficient
# to rely on AC_PROG_CC which is called later?
- cross_compiling=yes
CC="${target}-gcc"
CPP="${target}-gcc -E"
RANLIB="${target}-ranlib"
+ disallowed_modules="rndunix rndlinux rndegd"
;;
*)
+ disallowed_modules="rndw32"
;;
esac
@@ -181,19 +160,7 @@ AC_CHECK_PROG(DOCBOOK_TO_MAN, docbook-to-man, yes, no)
AM_CONDITIONAL(HAVE_DOCBOOK_TO_MAN, test "$ac_cv_prog_DOCBOOK_TO_MAN" = yes)
-dnl
-dnl Build shared libraries only when compilation of libgcrypt
-dnl has been requested
-dnl
-AM_DISABLE_SHARED
-enable_shared="$compile_libgcrypt"
-AM_PROG_LIBTOOL
-
-
MPI_OPT_FLAGS=""
-if test "$GCC" = yes; then
- CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
-fi
try_gettext=yes
@@ -227,6 +194,12 @@ case "${target}" in
try_gdbm="no"
;;
+ *-*-freebsd*)
+ # FreeBSD
+ CPPFLAGS="$CPPFLAGS -I/usr/local/include"
+ LDFLAGS="$LDFLAGS -L/usr/local/lib"
+ ;;
+
*-*-hpux*)
if test -z "$GCC" ; then
CFLAGS="$CFLAGS -Ae -D_HPUX_SOURCE"
@@ -279,13 +252,19 @@ esac
AC_DEFINE_UNQUOTED(PRINTABLE_OS_NAME, "$PRINTABLE_OS_NAME")
dnl Fixme: Are these the best flags for OpenBSD????
-dnl (I have removed the -lc from * ...CFLAGS for test purposes.)
case "${target}" in
*-openbsd*)
NAME_OF_DEV_RANDOM="/dev/srandom"
NAME_OF_DEV_URANDOM="/dev/urandom"
DYNLINK_MOD_CFLAGS="-shared -rdynamic -fpic -Wl,-Bshareable -Wl,-x"
;;
+
+ *-netbsd*)
+ NAME_OF_DEV_RANDOM="/dev/random"
+ NAME_OF_DEV_URANDOM="/dev/urandom"
+ DYNLINK_MOD_CFLAGS="-shared -rdynamic -fpic -Wl,-Bshareable -Wl,-x"
+ ;;
+
*)
NAME_OF_DEV_RANDOM="/dev/random"
NAME_OF_DEV_URANDOM="/dev/urandom"
@@ -344,8 +323,8 @@ if test "$try_dynload" = yes ; then
DYNLINK_LDFLAGS="$CFLAGS_RDYNAMIC"
use_gnupg_extensions=yes
else
- AC_CHECK_LIB(c,dlopen)
- if test "$ac_cv_lib_c_dlopen" = "yes"; then
+ AC_CHECK_FUNCS(dlopen)
+ if test "$ac_cv_func_dlopen" = "yes"; then
AC_DEFINE(USE_DYNAMIC_LINKING)
AC_DEFINE(HAVE_DL_DLOPEN)
DYNLINK_LDFLAGS="$CFLAGS_RDYNAMIC"
@@ -407,6 +386,7 @@ GNUPG_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF)
AC_CHECK_SIZEOF(unsigned short, 2)
AC_CHECK_SIZEOF(unsigned int, 4)
AC_CHECK_SIZEOF(unsigned long, 4)
+AC_CHECK_SIZEOF(unsigned long long, 0)
if test "$ac_cv_sizeof_unsigned_short" = "0" \
|| test "$ac_cv_sizeof_unsigned_int" = "0" \
@@ -419,7 +399,7 @@ fi
dnl Checks for library functions.
AC_FUNC_VPRINTF
AC_CHECK_FUNCS(strerror stpcpy strlwr stricmp tcgetattr rand strtoul mmap)
-AC_CHECK_FUNCS(memmove gettimeofday getrusage gethrtime setrlimit)
+AC_CHECK_FUNCS(memmove gettimeofday getrusage gethrtime setrlimit clock_gettime)
AC_CHECK_FUNCS(memicmp atexit raise getpagesize strftime nl_langinfo)
GNUPG_CHECK_MLOCK
@@ -435,6 +415,7 @@ if test "$ac_cv_header_sys_capability_h" = "yes" ; then
AC_CHECK_LIB(cap, cap_init, ac_need_libcap=1)
if test "$ac_cv_lib_cap_cap_init" = "yes"; then
AC_DEFINE(USE_CAPABILITIES)
+ LIBS="$LIBS -lcap"
use_capabilities=yes
fi
fi
@@ -494,31 +475,29 @@ fi
dnl
-dnl Figure out the default linkage mode for cipher modules
+dnl Figure out the default linkage mode for random modules
dnl
-dnl (We always need a static rmd160)
print_egd_notice=no
-static_modules="$static_modules rmd160"
if test "$use_static_rnd" = default; then
if test "$ac_cv_have_dev_random" = yes; then
- static_modules="$static_modules rndlinux"
+ static_random_module="rndlinux"
else
case "${target}" in
*-*-mingw32)
- static_modules="$static_modules rndw32"
+ static_random_module="rndw32"
AC_DEFINE(USE_STATIC_RNDW32)
;;
i?86-emx-os2|i?86-*-os2*emx)
- static_modules="$static_modules rndos2"
+ static_random_module="rndos2"
;;
m68k-atari-mint)
- static_modules="$static_modules rndatari"
+ static_random_module="rndatari"
;;
i?86-*-msdosdjgpp*)
- static_modules="$static_modules"
+ :
;;
*)
- static_modules="$static_modules rndunix"
+ static_random_module="rndunix"
print_egd_notice=yes
;;
esac
@@ -527,7 +506,7 @@ else
if test "$use_static_rnd" = none; then
:
else
- static_modules="$static_modules rnd$use_static_rnd"
+ static_random_module="rnd$use_static_rnd"
if test "$use_static_rnd" = "unix"; then
print_egd_notice=yes
fi
@@ -560,23 +539,31 @@ dnl
dnl Parse the modules list and build the list
dnl of static and dymically linked modules
dnl
+dnl (We always need a static rmd160)
+static_modules="$static_modules rmd160 $static_random_module"
STATIC_CIPHER_NAMES=""
STATIC_CIPHER_OBJS=""
DYNAMIC_CIPHER_MODS=""
GNUPG_MSG_PRINT([dynamically linked cipher modules:])
for name in $MODULES_IN_CIPHER; do
- x="no"
- for i in $static_modules; do
- if test "$name" = "$i" ; then
- x="yes"
- fi
+ x="yes"
+ for i in $disallowed_modules; do
+ if test "$name" = "$i" ; then x="no" ; fi
done;
if test $x = yes; then
- STATIC_CIPHER_NAMES="$STATIC_CIPHER_NAMES $name"
- STATIC_CIPHER_OBJS="$STATIC_CIPHER_OBJS $name.lo"
- else
- DYNAMIC_CIPHER_MODS="$DYNAMIC_CIPHER_MODS $name"
- GNUPG_MSG_PRINT([$name])
+ x="no"
+ for i in $static_modules; do
+ if test "$name" = "$i" ; then
+ x="yes"
+ fi
+ done;
+ if test $x = yes; then
+ STATIC_CIPHER_NAMES="$STATIC_CIPHER_NAMES $name"
+ STATIC_CIPHER_OBJS="$STATIC_CIPHER_OBJS $name.o"
+ else
+ DYNAMIC_CIPHER_MODS="$DYNAMIC_CIPHER_MODS $name"
+ GNUPG_MSG_PRINT([$name])
+ fi
fi
done
AC_MSG_RESULT()
@@ -643,7 +630,7 @@ if test "$ac_cv_mpi_extra_asm_modules" != ""; then
GNUPG_MSG_PRINT([mpi extra asm functions:])
for i in $ac_cv_mpi_extra_asm_modules; do
GNUPG_MSG_PRINT([$i])
- MPI_EXTRA_ASM_OBJS="$MPI_EXTRA_ASM_OBJS $i.lo"
+ MPI_EXTRA_ASM_OBJS="$MPI_EXTRA_ASM_OBJS $i.o"
done
AC_MSG_RESULT()
fi
@@ -676,15 +663,29 @@ fi
AC_SUBST(ZLIBS)
+# Allow users to append something to the version string without
+# flagging it as development version. The user version parts is
+# considered everything after a dash.
changequote(,)dnl
tmp_pat='[a-zA-Z]'
changequote([,])dnl
-if echo "$VERSION" | grep $tmp_pat >/dev/null ; then
+if echo "$VERSION" | sed 's/-.*//' | grep "$tmp_pat" >/dev/null ; then
AC_DEFINE(IS_DEVELOPMENT_VERSION)
fi
+AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes)
+
GNUPG_DO_LINK_FILES
+GNUPG_CHECK_GNUMAKE
+
+if test "$GCC" = yes; then
+ if test "$MAINTAINER_MODE" = "yes"; then
+ CFLAGS="$CFLAGS -Wall -Wcast-align -Wshadow -Wstrict-prototypes"
+ else
+ CFLAGS="$CFLAGS -Wall"
+ fi
+fi
AC_OUTPUT_COMMANDS([
cat >g10defs.tmp <<G10EOF
@@ -725,11 +726,9 @@ mpi/Makefile
cipher/Makefile
g10/Makefile
doc/Makefile
-doc/gph/Makefile
tools/Makefile
zlib/Makefile
checks/Makefile
-gcrypt/Makefile
])
dnl *-*wedit:notab*-* Please keep this as the last line.
diff --git a/doc/ChangeLog b/doc/ChangeLog
new file mode 100644
index 000000000..a877cf5aa
--- /dev/null
+++ b/doc/ChangeLog
@@ -0,0 +1,69 @@
+2000-05-12 10:57:21 Werner Koch ([email protected])
+
+ * gpg.sgml: Documented --no-tty.
+
+2000-03-09 15:01:51 Werner Koch ([email protected])
+
+ * DETAILS: Ad a short blurb about unattended key generation.
+
+Wed Feb 9 15:33:44 CET 2000 Werner Koch <[email protected]>
+
+ * gpg.sgml: Describe --ignore-time-conflict.
+
+ * gpg.sgml: Fixed a few typos. Thanks to Holger Trapp.
+
+Wed Jan 5 11:51:17 CET 2000 Werner Koch <[email protected]>
+
+ * FAQ: Enhanced answer for the 3des-s2k bug.
+
+Sat Dec 4 12:30:28 CET 1999 Werner Koch <[email protected]>
+
+ * gpg.sgml: Add section about the user ID
+
+Mon Nov 22 11:14:53 CET 1999 Werner Koch <[email protected]>
+
+ * gph: Removed the directory from the dist becuase it will
+ go into it's own package.
+
+Thu Sep 23 09:52:58 CEST 1999 Werner Koch <[email protected]>
+
+ * README.W32: New.
+
+Mon Sep 6 19:59:08 CEST 1999 Werner Koch <[email protected]>
+
+
+ * Makefile.am (SUBDIRS): New subdir gph for the manual.
+
+Thu Jul 22 20:03:03 CEST 1999 Werner Koch <[email protected]>
+
+
+ * gpg.sgml (--always-trust): Added.
+
+Wed Jul 14 19:42:08 CEST 1999 Werner Koch <[email protected]>
+
+
+ * Makefile.am: Create a dummy man page if docbook-to-man is missing.
+
+Wed Jun 16 20:16:21 CEST 1999 Werner Koch <[email protected]>
+
+
+ * gpg1.pod: Removed.
+ * gpg.sgml: New. Replaces the pod file
+ * Makefile.am: Add rule to make a man file from sgml
+
+Tue Jun 15 12:21:08 CEST 1999 Werner Koch <[email protected]>
+
+
+ * Makefile.in.in: Use DESTDIR.
+
+Mon May 31 19:41:10 CEST 1999 Werner Koch <[email protected]>
+
+ * gpg.1pod: Enhanced the Bugs section (Michael).
+
+Wed Feb 10 17:15:39 CET 1999 Werner Koch <[email protected]>
+
+
+ * gpg.1pod: Spelling and grammar corrections (John A. Martin)
+ * FAQ: Ditto.
+ * DETAILS: Ditto.
+
diff --git a/doc/DETAILS b/doc/DETAILS
index 7c1e11edf..ecb3d009a 100644
--- a/doc/DETAILS
+++ b/doc/DETAILS
@@ -134,6 +134,11 @@ more arguments in future versions.
SHM_GET_BOOL
SHM_GET_HIDDEN
+ GET_BOOL
+ GET_LINE
+ GET_HIDDEN
+ GOT_IT
+
NEED_PASSPHRASE <long keyid> <keytype> <keylength>
Issued whenever a passphrase is needed.
keytype is the numerical value of the public key algorithm
@@ -181,6 +186,36 @@ more arguments in future versions.
<n_uids> <n_subk> <n_sigs> <n_revoc> <sec_read> <sec_imported> <sec_dups>
Final statistics on import process (this is one long line)
+ FILE_START <what> <filename>
+ Start processing a file <filename>. <what> indicates the performed
+ operation:
+ 1 - verify
+
+ FILE_DONE
+ Marks the end of a file processing which has been started
+ by FILE_START.
+
+ BEGIN_DECRYPTION
+ END_DECRYPTION
+ Mark the start and end of the actual decryption process. These
+ are also emmited when in --list-only mode.
+
+ BEGIN_ENCRYPTION
+ END_ENCRYPTION
+ Mark the start and end of the actual encryption process.
+
+ DELETE_PROBLEM reason_code
+ Deleting a key failed. Reason codes are:
+ 1 - No such key
+ 2 - Must delete secret key first
+
+ PROGRESS what char cur total
+ Used by the primegen and Public key functions to indicate progress.
+ "char" is the character displayed with no --status-fd enabled, with
+ the linefeed replaced by an 'X'. "cur" is the current amount
+ done and "total" is amount to be done; a "total" of 0 indicates that
+ the toatal amount is not known. 100/100 may be used to detect the
+ end of operation.
Key generation
@@ -214,6 +249,107 @@ Key generation
Crypto '97 proceedings p. 260.
+Unattended key generation
+=========================
+There is an experimental feature which allows for unattended
+generation of keys controlled by a parameter file.
+This feature is not very well tested and does only make sense for some
+very special applications. Please don't complain if we decide to chnage
+the behaviour of this command.
+
+To use this feature, you use --gen-key together with --batch and feed the
+parameters either form stdin or from a file given on the commandline.
+The format of this file is as follows:
+ o Text only, line length is limited to about 1000 chars.
+ o You must use UTF-8 encoding to specifiy non-ascii characters.
+ o Empty lines are ignored
+ o Leading and trailing spaces are ignored
+ o A hash sign as the first non white space character indicates a comment line
+ o Control statements are indicated by a leading percent sign, the
+ arguments are separated by white space from the keyword.
+ o Parameters are specified by a keyword, followed by a colon. Arguments
+ are speparated by white space.
+ o The first parameter must be "Key-Type", control statements
+ may be placed anywhere.
+ o Key generation takes place when either the end of the parameter file
+ is reached, the next "Key-Type" parameter is encountered or at the
+ controlstatement "%commit"
+ o Control staements:
+ %echo <text>
+ Print <text>
+ %dry-run
+ Suppress actual key generation (useful for syntax checking)
+ %commit
+ Perform the key generation. An implicit commit is done
+ at the next "Key-Type" parameter.
+ %pubring <filename>
+ %secring <filename>
+ Do not write the key to the default or commandline given
+ keyring but to <filename>. This must be given before the first
+ commit to take place, duplicate specification of the same filename
+ is ignored, the last filename before a commit is used.
+ The filename is used until a new filename is used (at commit points)
+ and all keys are written to that file. If a new filename is given,
+ this file is created (and overwrites an existing one).
+ Both control statements must be given.
+ o The order of the parameters does not matter except for "Key-Type"
+ which must be the first parameter. The paramtyers are only for the
+ generated keyblock and paramters from previous key generations are not
+ used. Some syntactically checks may be performed.
+ The currently defined parameters are:
+ Key-Type: <algo-number>|<algo-string>
+ Starts a new parameter block by giving the type of the
+ primary key. The algorithm must be capable of signing.
+ This is a required parameter.
+ Key-Length: <length-in-bits>
+ Length of the key in bits. Default is 1024
+ Subkey-Type: <algo-number>|<algo-string>
+ This generates a secondary key. Currently only one subkey
+ can be handled.
+ Subkey-Length: <length-in-bits>
+ Length of the subkey in bits. Default is 1024.
+ Passphrase: <string>
+ If you want to specify a passphrase for the secret key,
+ enter it here. Default is not to use any passphrase.
+ Name-Real: <string>
+ Name-Comment: <string>
+ Name-Email: <string>
+ The 3 parts of a key. Remember to use UTF-8 here.
+ If you don't give any of them, no user ID is created.
+ Expire-Date: <iso-date>|(<number>[d|w|m|y])
+ Set the expiration date for the key (and the subkey). It
+ may either be entered in ISO date format (2000-08-15) or as
+ number of days, weeks, month or years. Without a letter days
+ are assumed.
+
+Here is an example:
+$ cat >foo <<EOF
+ %echo Generating a standard key
+ Key-Type: DSA
+ Key-Length: 1024
+ Subkey-Type: ELG-E
+ Subkey-Length: 1024
+ Name-Real: Joe Tester
+ Name-Comment: with stupid passphrase
+ Name-Email: [email protected]
+ Expire-Date: 0
+ Passphrase: abc
+ %pubring foo.pub
+ %secring foo.sec
+ # Do a commit here, so that we can later print "done" :-)
+ %commit
+ %echo done
+EOF
+$ gpg --batch --gen-key -a foo
+ [...]
+$ gpg --no-default-keyring --secret-keyring foo.sec \
+ --keyring foo.pub --list-secret-keys
+/home/wk/work/gnupg-stable/scratch/foo.sec
+------------------------------------------
+sec 1024D/915A878D 2000-03-09 Joe Tester (with stupid passphrase) <[email protected]>
+ssb 1024g/8F70E2C0 2000-03-09
+
+
Layout of the TrustDB
=====================
@@ -477,6 +613,15 @@ There is one enhancement used with the old style packet headers:
+ that this is the last packet.
+GNU extensions to the S2K algorithm
+===================================
+S2K mode 101 is used to identify these extensions.
+After the hash algorithm the 3 bytes "GNU" are used to make
+clear that these are extensions for GNU, the next bytes gives the
+GNU protection mode - 1000. Defined modes are:
+ 1001 - do not store the secret part at all
+
+
Usage of gdbm files for keyrings
================================
The key to store the keyblock is it's fingerprint, other records
diff --git a/doc/FAQ b/doc/FAQ
index 0bb9b0368..a7ca82cc7 100644
--- a/doc/FAQ
+++ b/doc/FAQ
@@ -342,3 +342,67 @@
where pgpkeyring is the original keyring and not the GnuPG one you
might have created in the first step.
+ Q: Are the headerlines of a cleartext signater part of the signed
+ material?
+ A: No. For example you can add or remove "Comment:" lines. They
+ have a purpose like the mail header lines. However a "Hash:"
+ line is needed for OpenPGG signatures to tell the parser which
+ hash algorithm to use.
+
+ Q: How can a get list of key IDs used to encrypt a message?
+ A: gpg --batch --decrypt --list-only --status-fd 1 2>/dev/null \
+ | awk '/^\[GNUPG:\] ENC_TO / { print $3 }'
+
+
+ Q: PGP 5.x, 6.x does not like my secret key.
+ A: PGP probably bails out on some private comment packets used by GnuPG.
+ These packets are fully in compliance with OpenPGP; however PGP is not
+ really OpenPGP aware. A workaround is to eport the secret keys with
+ this command:
+
+ gpg --export-secret-keys --no-comment -a your-key-id
+
+ Q: I can't decrypt my symmetrical only (-c) encrypted message with
+ a new version of GnuPG.
+ A: There used to be a bug in GnuPG < 1.0.1 which happens only if 3DES or
+ Twofish has been used for symmetric only encryption (this has never been
+ the default).
+ The bug has been fixed but to enable you to decrypt old messages, you
+ should run gpg with the option "--emulate-3des-s2k-bug", decrypt the
+ message and encrypt it again without this option. The option will
+ be removed in 1.1, so better re-encrypt your message now.
+
+ Q: How can I used GnuPG in an automated environment?
+ A: You should use the option --batch and don't use passphrases as
+ there is usually no way to store it more secure than the secret
+ keyring itself. The suggested way to create the keys for the
+ automated envirionment ist:
+ On a secure machine:
+ 1. If you want to do automatic signing, create a signing subkey
+ for your key (edit menu, choose "addkey" and the DSA).
+ 2. Make sure that you use a passphrase (Needed by the current
+ implementation)
+ 3. gpg --export-secret-subkeys --no-comment foo >secring.auto
+ 4. Copy secring.auto and the public keyring to a test directory.
+ 5. Cd to this diectory
+ 6. gpg --homedir . --edit foo
+ and use "passwd" to remove the passphrase from the subkeys.
+ You may also want to remove all unused subkeys.
+ 7. copy secring.auto to a floppy and carry it to the
+ target box
+ On the target machine:
+ 8. Install secring.auto as secret keyring.
+ 9. Now you can start your new service. It is a good idea to
+ install some intrusion detection system so that you hopefully
+ get a notice of an successful intrusion, so that you in turn can
+ revoke all the subkeys installed on that machine and install new
+ subkeys.
+
+ Q: In the edit meu the trust values is not displayed correctly after
+ signing uids - why?
+ A: This happens because the some informations are stored immediately
+ in the trustdb, but the actual trust calculation can be done after
+ the save command. This is a not easy to fix design bug which will be
+ addressed in GnuPG 1.1
+
+
diff --git a/doc/HACKING b/doc/HACKING
index 6f4c9ffd8..70bfe65dd 100644
--- a/doc/HACKING
+++ b/doc/HACKING
@@ -10,12 +10,12 @@ CVS Access
==========
Anonymous read-only CVS access is available:
- cvs -z6 -d :pserver:[email protected]:/home/koch/cvs login
+ cvs -z6 -d :pserver:[email protected]:/home/koch/cvs login
use the password "anonymous". To check out the the complete
archive use:
- cvs -z6 -d :pserver:[email protected]:/home/koch/cvs checkout gnupg
+ cvs -z6 -d :pserver:[email protected]:/home/koch/cvs checkout gnupg
This service is provided to help you in hunting bugs and not to deliver
stable snapshots; it may happen that it even does not compile, so please
@@ -112,6 +112,72 @@ Directory Layout
./gcrypt Stuff needed to build libgcrypt (under construction)
+Detailed Roadmap
+----------------
+g10/g10.c Main module with option parsing and all the stuff you have
+ to do on startup. Also has the exout handler and some
+ helper functions.
+g10/sign.c
+
+g10/parse-packet.c
+g10/build-packet.c
+g10/free-packet.c
+ Parsing and creating of OpenPGP message packets.
+
+g10/getkey.c
+g10/pkclist.c
+g10/skclist.c
+g10/ringedit.c
+g10/keydb.h
+
+g10/keyid.c Helper functions to get the keyid, fingerprint etc.
+
+
+g10/trustdb.c
+g10/trustdb.h
+g10/tdbdump.c
+
+g10/compress.c
+g10/filter.h
+g10/delkey.c
+g10/kbnode.c
+g10/main.h
+g10/mainproc.c
+g10/armor.c
+g10/mdfilter.c
+g10/textfilter.c
+g10/cipher.c
+g10/misc.c
+g10/options.h
+g10/openfile.c
+g10/tdbio.c
+g10/tdbio.h
+g10/hkp.h
+g10/hkp.c
+g10/packet.h
+g10/passphrase.c
+g10/pubkey-enc.c
+g10/seckey-cert.c
+g10/seskey.c
+g10/import.c
+g10/export.c
+g10/comment.c
+g10/status.c
+g10/status.h
+g10/sign.c
+g10/plaintext.c
+g10/encr-data.c
+g10/encode.c
+g10/revoke.c
+g10/keylist.c
+g10/sig-check.c
+g10/signal.c
+g10/helptext.c
+g10/verify.c
+g10/decrypt.c
+g10/keyedit.c
+g10/dearmor.c
+g10/keygen.c
diff --git a/doc/Makefile.am b/doc/Makefile.am
index ae5cdb506..44a92d2f9 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,8 +1,6 @@
## Process this file with automake to create Makefile.in
-SUBDIRS = gph
-
-EXTRA_DIST = DETAILS gpg.sgml gpg.1 FAQ HACKING OpenPGP
+EXTRA_DIST = DETAILS gpg.sgml gpg.1 FAQ HACKING OpenPGP README.W32
man_MANS = gpg.1
@@ -27,3 +25,7 @@ endif
-db2html $<
+dist-hook:
+ @if test `wc -c < gpg.1` -lt 200; then \
+ echo 'ERROR: dummy man page'; false; fi
+
diff --git a/doc/OpenPGP b/doc/OpenPGP
index c73eee4f8..ba44d87fb 100644
--- a/doc/OpenPGP
+++ b/doc/OpenPGP
@@ -33,6 +33,15 @@
which can be considered to be in compliance with RFC1991; this
format is only created if a special option is active.
+ GnuPG uses a S2K mode of 101 for GNU extensions to the secret key
+ protection algorithms. This number is not defined in OpenPGP, but
+ given the fact that this number is in a range which used at many
+ other places in OpenPGP for private/experimenat algorithm identifiers,
+ this should be not a so bad choice. The 3 bytes "GNU" are used
+ to identify this as a GNU extension - see the file DETAILS for a
+ definition of the used data formats.
+
+
Some Notes on OpenPGP / PGP Compatibility:
==========================================
diff --git a/doc/README.W32 b/doc/README.W32
new file mode 100644
index 000000000..e2a7b2227
--- /dev/null
+++ b/doc/README.W32
@@ -0,0 +1,96 @@
+This is a beta release of GnuPG for MS-Windows 95, 98 and WNT.
+The random number generator should now work but has not undergone
+a thorough testing, so we won't say anything about the quality of
+the generated key and suggest that you don't use this version with
+your production secret keys! It is however okay to verify signatures
+or encrypt files using this version.
+
+PLEASE READ THE FOLLOWING PARAGRAPH CAREFULLY:
+
+If you have a bug report, please post it to the mailing list
+<[email protected]>. Please don't send me private mail
+regarding this version of GnuPG; I am already spending too much
+time on answering the same and same questions over and over.
+I can improve GnuPG much faster if I don't have to answer
+questions in private mail. You can post to the mailing list
+without prior subscribing (but please request to CC you if you want
+to get an answer).
+
+
+
+Installation instructions:
+--------------------------
+ 1. Unpack the ZIP archive (alright, you already did this).
+ 2. Copy "gpg.exe" to some place where you usually store your
+ binaries.
+ 3. Create a directory "c:\gnupg" (or any other as you like)
+ 4. If you did not use the default directory "c:\gnupg", you
+ should enter a string with the directory into the Registry
+ under the key:
+ \\HKEY_CURRENT_USER\Software\GNU\GnuPG\HomeDir
+ Please use forward slashes and not the backslashes when
+ setting filenames for GnuPG into the Registry.
+ 5. Enter "gpg" and see what happens
+ 6. Read the file README and the online HOWTOs
+
+
+Internationalization support:
+-----------------------------
+ 1. Decide where to store the translation files for your language.
+ Here we assume the directory "c:/gnu/locale/fr"
+ 2. Set the directory with the translations into the Registry under the key:
+ \\HKEY_CURRENT_USER\Control Panel\Mingw32\NLS\MODir
+ (Example entry: "c:/gnu/locale/fr")
+ 3. Select which language to use and copy the currect translation file
+ under the name "gnupg.mo" into the directory set in step 2
+ (Example: "copy fr.mo c:\gnu\locale\fr\gnupg.mo")
+ 4. Done.
+
+Currently we only support the Codepages 437, 850 und Latin1. If you have
+problems, either delete the gnupg.mo file or don't set the environment
+variable
+
+
+
+How to build it from the source:
+--------------------------------
+This version has been build with the Mingw32/CPD kit using the latest
+stable version of GnuPG.
+
+First get the source: It is available at
+
+ ftp://ftp.gnupg.org/pub/gcrypt/gnupg/gnupg-1.0.n.tar.gz
+
+or for snapshots (with a letter appended to the version number)
+
+ ftp://ftp.gnupg.org/pub/gcrypt/devel/gnupg-1.0.nx.tar.gz
+
+this is the same source as for the Unix version.
+
+To build it, you need the MingW32/CPD kit, which is available at
+
+ ftp://ftp.openit.de/pub/cpd/mingw32-cpd-0.2.4.tar.gz
+ ftp://ftp.openit.de/pub/cpd/gcc-core-2.95.2.tar.gz
+ ftp://ftp.openit.de/pub/cpd/binutils-2.9.1.tar.gz
+ ftp://ftp.openit.de/pub/cpd/windows32api-0.1.2.tar.gz
+
+gcc, binutils and windows32api are stock GNU source which are available
+at every ftp.gnug.org mirror.
+
+After you have installed this environment you should be able to do this:
+
+ $ ./configure --target=i386--mingw32
+ $ make
+ $ i386--mingw32-strip g10/gpg
+ $ cp g10/gpg /some_windows_drive/gpg.exe
+
+And everything hopefully works.
+
+
+Don't forget that MS-Windows ist just a temporary workaround until
+you can switch to a GNU system ;-)
+
+Be the source always with you.
+
+ Werner
+
diff --git a/doc/gpg.sgml b/doc/gpg.sgml
index 1297737fd..3ff12a4c7 100644
--- a/doc/gpg.sgml
+++ b/doc/gpg.sgml
@@ -27,7 +27,7 @@
-->
-<!DOCTYPE RefEntry PUBLIC "-//Davenport//DTD DocBook V3.0//EN" [
+<!DOCTYPE refentry PUBLIC "-//Davenport//DTD DocBook V3.0//EN" [
<!entity ParmDir "<parameter>directory</parameter>">
<!entity ParmFile "<parameter>file</parameter>">
<!entity OptParmFile "<optional>&ParmFile;</optional>">
@@ -156,6 +156,15 @@ filename to force a read from stdin). With more than
and the remaining files are the signed stuff.
</para></listitem></varlistentry>
+<varlistentry>
+<term>--verify-files <optional><parameter/files/</optional></term>
+<listitem><para>
+This is a special version of the --verify command which does not work with
+detached signatures. The command expects the files to bee verified either
+on the commandline or reads the filenames from stdin; each anem muts be on
+separate line. The command is intended for quick checking of many files.
+</para></listitem></varlistentry>
+
<!--
B<-k> [I<username>] [I<keyring>]
Kludge to be somewhat compatible with PGP.
@@ -226,8 +235,13 @@ useful for debugging.
<varlistentry>
<term>--gen-key</term>
<listitem><para>
-Generate a new key pair. This command can only be
-used interactive.
+Generate a new key pair. This command is normally only used
+interactive.
+</para>
+<para>
+There is an experimental feature which allows to create keys
+in batch mode. See the file <filename>doc/DETAILS</filename>
+in the source distribution on how to use this.
</para></listitem></varlistentry>
@@ -260,7 +274,7 @@ only in the local environment.</para></listitem></varlistentry>
<term>revsig</term>
<listitem><para>
Revoke a signature. GnuPG asks for every
-every signature which has been done by one of
+signature which has been done by one of
the secret keys, whether a revocation
certificate should be generated.</para></listitem></varlistentry>
<varlistentry>
@@ -422,9 +436,14 @@ are not compatible to OpenPGP.
<varlistentry>
<term>--export-secret-keys &OptParmNames;</term>
+<term>--export-secret-subkeys &OptParmNames;</term>
<listitem><para>
Same as --export, but does export the secret keys.
This is normally not very useful and a security risk.
+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 OpenPGP and other implementations can
+not be expected to successful import such a key.
</para></listitem></varlistentry>
@@ -676,6 +695,14 @@ Use batch mode. Never ask, do not allow interactive
commands.
</para></listitem></varlistentry>
+<varlistentry>
+<term>--no-tty</term>
+<listitem><para>
+Make sure that the TTY (terminal) is never used for any output.
+This option is needed in some cases because GnuPG sometimes prints
+warnings to the TTY if if --batch is used.
+</para></listitem></varlistentry>
+
<varlistentry>
<term>--no-batch</term>
@@ -723,6 +750,12 @@ balancing using round-robin DNS you may notice
that you get different key servers.
</para></listitem></varlistentry>
+<varlistentry>
+<term>--honor-http-proxy</term>
+<listitem><para>
+Try to access the keyserver over the proxy set with the variable
+"http_proxy".
+</para></listitem></varlistentry>
<varlistentry>
<term>--keyring &ParmFile;</term>
@@ -734,7 +767,8 @@ does not contain a slash, it is assumed to be in the
home-directory ("~/.gnupg" if --homedir is not used).
The filename may be prefixed with a scheme:</para>
<para>"gnupg-ring:" is the default one.</para>
-<para>"gnupg-gdbm:" may be used for a GDBM ring.</para>
+<para>"gnupg-gdbm:" may be used for a GDBM ring. Note that GDBM
+is experimental and likely to be removed in future versions.</para>
<para>It might make sense to use it together with --no-default-keyring.
</para></listitem></varlistentry>
@@ -1074,6 +1108,16 @@ can only be used if only one passphrase is supplied.
Don't use this option if you can avoid it.
</para></listitem></varlistentry>
+<varlistentry>
+<term>--command-fd &ParmN;</term>
+<listitem><para>
+This is a replacement for the depreciated shared-memory IPC mode.
+If this option is enabled, user input on questions is not expected
+from the TTY but from the given file descriptor. It should be used
+together with --status-fd. See the file doc/DETAILS in the source
+distribution for details on how to use it.
+</para></listitem></varlistentry>
+
<varlistentry>
<term>--rfc1991</term>
@@ -1089,7 +1133,8 @@ Reset all packet, cipher and digest options to OpenPGP
behavior. Use this option to reset all previous
options like --rfc1991, --force-v3-sigs, --s2k-*,
--cipher-algo, --digest-algo and --compress-algo to
-OpenPGP compliant values.
+OpenPGP compliant values. All PGP workarounds are also
+disabled.
</para></listitem></varlistentry>
@@ -1125,6 +1170,16 @@ and encryption keys.
<varlistentry>
+<term>--ignore-time-conflict</term>
+<listitem><para>
+GnuPG normally checks that the timestamps associated with keys and
+signatures have plausible values. However, sometimes a signature seems to
+be older than the key due to clock problems. This option makes these
+checks just a warning.
+</para></listitem></varlistentry>
+
+
+<varlistentry>
<term>--lock-once</term>
<listitem><para>
Lock the databases the first time a lock is requested
@@ -1141,6 +1196,25 @@ needed. Use this to override a previous --lock-once
from a config file.
</para></listitem></varlistentry>
+<varlistentry>
+<term>--lock-never</term>
+<listitem><para>
+Disable locking entirely. This option should be used only in very
+special environments, where it can be assured that only one process
+is accessing those files. A bootable floppy with a standalone
+encryption system will probably use this. Improper usage of this
+option may lead to data and key corruption.
+</para></listitem></varlistentry>
+
+<varlistentry>
+<term>--no-random-seed-file</term>
+<listitem><para>
+GnuPG uses a file to store it's internal random pool over invocations.
+This makes random generation faster; however sometimes write operations
+are not desired. This option can be used to achive that with the cost of
+slower random generation.
+</para></listitem></varlistentry>
+
<varlistentry>
<term>--no-verbose</term>
@@ -1208,6 +1282,25 @@ and may be used together with another command.
</para></listitem></varlistentry>
<varlistentry>
+<term>--fast-list-mode</term>
+<listitem><para>
+Changes the output of the list commands to work faster; this is achieved
+by leaving some parts empty. Some applications don't need the user ID and
+the trust information given in the listings. By using this options they
+can get a faster listing. The excact behaviour of this option may change
+in future versions.
+</para></listitem></varlistentry>
+
+<varlistentry>
+<term>--list-only</term>
+<listitem><para>
+Changes the behaviour of some commands. This is like --dry-run but
+different in some cases. The semantic of this command may be extended in
+the future. Currently it does only skip the actual decryption pass and
+therefore enables a fast listing of the encryption keys.
+</para></listitem></varlistentry>
+
+<varlistentry>
<term>--no-literal</term>
<listitem><para>
This is not for normal use. Use the source to see for what it might be useful.
@@ -1219,17 +1312,105 @@ This is not for normal use. Use the source to see for what it might be useful.
This is not for normal use. Use the source to see for what it might be useful.
</para></listitem></varlistentry>
+
+</variablelist>
+</refsect1>
+
+
+<refsect1>
+ <title>How to specify a user ID</title>
+ <para>
+There are different ways on how to specify a user ID to GnuPG;
+here are some examples:
+ </para>
+
+ <variablelist>
+<varlistentry>
+<term></term>
+<listitem><para>Used to locate the default home directory.</para></listitem>
+</varlistentry>
+
<varlistentry>
-<term>--entropy-dll-name &ParmFile;</term>
+<term>234567C4</term>
+<term>0F34E556E</term>
+<term>01347A56A</term>
+<term>0xAB123456</term>
<listitem><para>
-This option is only used for the Win32 version of GnuPG and changes the
-default location (c:/gnupg/entropy.dll) of the Winseed DLL to &ParmFile;.
-</para></listitem></varlistentry>
+Here the key ID is given in the usual short form.
+</para></listitem>
+</varlistentry>
+<varlistentry>
+<term>234AABBCC34567C4</term>
+<term>0F323456784E56EAB</term>
+<term>01AB3FED1347A5612</term>
+<term>0x234AABBCC34567C4</term>
+<listitem><para>
+Here the key ID is given in the long form as used by OpenPGP.
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term>1234343434343434C434343434343434</term>
+<term>123434343434343C3434343434343734349A3434</term>
+<term>0E12343434343434343434EAB3484343434343434</term>
+<term>0xE12343434343434343434EAB3484343434343434</term>
+<listitem><para>
+The best way to specify a key ID is by using the fingerprint of
+the key. This avoids any ambiguities in case that there are duplicated
+key IDs (which are really rare for the long key IDs).
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term>=Heinrich Heine &lt;[email protected]&gt;</term>
+<listitem><para>
+Using an exact to match string. The equal sign indicates this.
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term>&lt;[email protected]&gt;</term>
+<listitem><para>
+Using the email address part which must match exactly. The left angle bracket
+indicates this email address mode.
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term>+Heinrich Heine duesseldorf</term>
+<listitem><para>
+All words must match exactly (not case sensitive) but can appear in
+any order in the user ID. Words are any sequences of letters,
+digits, the underscore and all characters with bit 7 set.
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term>#34</term>
+<listitem><para>
+Using the Local ID. This is a very low level method and should
+only be used by applications which really need it. The hash character
+indicates this method. An application should not assume that this is
+only a number.
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term>Heine</term>
+<term>*Heine</term>
+<listitem><para>
+By case insensitive substring matching. This is the default mode but
+applications may want to explicitely indicate this by putting the asterisk
+in front.
+</para></listitem>
+</varlistentry>
+
+ </variablelist>
-</variablelist>
</refsect1>
+
<refsect1>
<title>RETURN VALUE</title>
<para>
@@ -1295,6 +1476,10 @@ constructed by cutting off the extension (".asc" or ".sig") of
<term>GNUPGHOME</term>
<listitem><para>If set directory used instead of "~/.gnupg".</para></listitem>
</varlistentry>
+<varlistentry>
+<term>http_proxy</term>
+<listitem><para>Only honored when the option --honor-http-proxy is set.</para></listitem>
+</varlistentry>
</variablelist>
</refsect1>
@@ -1334,6 +1519,11 @@ constructed by cutting off the extension (".asc" or ".sig") of
</varlistentry>
<varlistentry>
+<term>~/.gnupg/random_seed</term>
+<listitem><para>used to preserve the internal random pool</para></listitem>
+</varlistentry>
+
+<varlistentry>
<term>~/.gnupg/options</term>
<listitem><para>May contain options</para></listitem>
</varlistentry>
@@ -1375,7 +1565,7 @@ is *very* easy to spy out your passphrase!
On many systems this program should be installed as setuid(root). This
is necessary to lock memory pages. Locking memory pages prevents the
operating system from writing memory pages to disk. If you get no
-warning message about insecure memory your operating system supports
+warning message about insecure memory 3our operating system supports
locking without being root. The program drops root privileges as soon
as locked memory is allocated.
</para>
diff --git a/doc/gph/Makefile.am b/doc/gph/Makefile.am
index 732c3e3e6..d36b0013a 100644
--- a/doc/gph/Makefile.am
+++ b/doc/gph/Makefile.am
@@ -11,7 +11,7 @@ all-local: ./signatures.jpg
./signatures.jpg: $(srcdir)/signatures.jpg.asc
../../g10/gpg --yes --dearmor \
-o ./signatures.jpg $(srcdir)/signatures.jpg.asc
- test -d manual && cp ./signatures.jpg ./manual/signatures.jpg
+ -test -d manual && cp ./signatures.jpg ./manual/signatures.jpg
index.html: $(PARTS)
@@ -27,7 +27,7 @@ index.html: $(PARTS)
echo '</body></html>' >>index.html
-rm -r manual.junk
-rm manual/signatures.jpg
- (cd manual; rm -r stylesheet-images; ls | grep -v distfiles >distfiles)
+## (cd manual; rm -r stylesheet-images; ls | grep -v distfiles >distfiles)
dist-hook: index.html
diff --git a/doc/gph/signatures.jpg.asc b/doc/gph/signatures.jpg.asc
new file mode 100644
index 000000000..99f04e394
--- /dev/null
+++ b/doc/gph/signatures.jpg.asc
@@ -0,0 +1,232 @@
+-----BEGIN PGP ARMORED FILE-----
+Version: GnuPG v0.9.11 (GNU/Linux)
+Comment: For info see http://www.gnupg.org
+Comment: Use "gpg --dearmor" for unpacking
+
+/9j/4AAQSkZJRgABAQEAUABQAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkS
+Ew8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJ
+CQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy
+MjIyMjIyMjIyMjIyMjL/wAARCACxAogDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEA
+AAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh
+MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6
+Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZ
+mqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx
+8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
+AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV
+YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp
+anN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPE
+xcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3
++iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiub8Z+MrbwRpaan
+f6bqV1Zl9kktlGjiEnG3fudSAScA8jPBwSM5+i/Emx1bxBa6LcaH4g0i7vEka1/t
+Sx8lZig3MqnceQvPpx1yQCAdpRXH6V4y1G7+Id74U1HQPsHk2kl7b3X2xZftEIlE
+atsC/Lu5OCcjGMV0Gp67o+ieV/a2q2Nh52fL+13CRb8YzjcRnGR09RQBoUVyfi7x
+NfWfgO78Q+EhpuqmBDN5jT7ovKQnzGUqcOQFPG4dDySNpuaF4x0fW7XTF/tCxh1O
++tIrn+zvtaNMm+ISbdvDHCnOcDjmgDoKKy9S8S6Do1wtvqmt6bYzsgdY7q6SJiuS
+MgMQcZBGfY1qUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
+FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
+FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
+FFABRRRQAVz/AIk8ceGvCPljXNXgtJJMFYcNJIQc4bYgLbflI3YxkYzmjxZ400Lw
+Vpy3mtXflebuEEKKXkmZRkhVH4DJwoJGSMivnTxl4Z8X/EB5/Htr4TktLS6SDZbw
+ytNPOu3YJQnUj5V6KvylSAw3PQB29/8AHy+1zVLPSfAnh2S5vLhwoOoDlj82VCI2
+AAMNvL4ADZAAzXsmh2+o2mh2UGr3v23UliX7TOAoDyHltoVVG0HIHAOAM85Ncn8M
+/hnY+ANLLuY7nWrhALq7A4A6+XHnkID36sRk9AF7ygDzf41zXlx4EuNDsNF1XUbr
+Utux7G1MyReXLG58wjlcjOODnBrj/B2j6jL8XNI1a1s/GUlnFaTR3lx4qtlLxLtb
+b5Up9WYDaoDD5uSrNj3iigDxf/hMLz/haf8AwlH/AAg/jL7D/Yn9n+X/AGSfM8zz
+/MzjdjbjvnOe1SfFZtc1PWdHNrpF3Popsmljnh8ORalOJmYZR45sGIbQh6Kc5BBx
+8vslFAHgfhNtS0n4UeNtKufDfiD7Xe3E4tUXRmiM32iLYpEacIF2EsB8qgqASSBR
+4A0G58I+ILCDxD4Ru9bfUreyuLbVhYPLJpr4VRDJv4iEeOqkEBVyDwE98ooA+ZNZ
+8JeKbbVNYg16DWdQnvLiVhfWvhi21EzxH5FcSl90JwvEYI2DGMZr2/4aWs1j8PNI
+tJ21IvCkiD+0rcwThRIwUNGWbaAuAoyflA6dB1lFAGXrniPSPDVvbXGs30dnBcXC
+20ckgO3zGBIBIGFGFJ3HAGOSK0IJ4bq3iuLeWOaCVA8ckbBldSMggjggjnNU9Z0P
+S/EOnPYavYQXtq2TsmTO0kEblPVWwThhgjPBryufwV43+G1vLd+BdZk1bSYULtou
+oqZGAA/5Z7cZO5nchPLJwB854oA9korh/B3xS0Lxdef2UVn0zXU3LLpt4hVwyAbw
+p6Ng7hg4b5WJUAV3FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF
+FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF
+FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUVz/izx
+poXgrTlvNau/K83cIIUUvJMyjJCqPwGThQSMkZFAHQV5P4i+LFxq2oyeGvhxZ/2z
+q7xSFr1SBDalTgsC4Cv3wxITJTBfO2stNN8afGZEm1dpPDfg6ZIporOMrJLd4bOS
+2AcHkgsNv+rIRvvV6xoHhzSPC2lrpui2MdpaBy+xSWLMepZmJLHoMkngAdAKAOL8
+J/Ce307WG8S+Kbz+3fEskq3H2iQERwOFxhFzhsHoSBgKm1UxXpFFFABRRRQAUUUU
+AFFFFABRRRQAUUUUAFFFFAHJ+M/hz4c8dIjavbSLdxJsivLd9kqLuBxnBDDrwwON
+zYwTmuHGpeP/AIWXDrrC3fi/wuqKft0Y/wBItuS0jMCWYgAN94lcbPnTla9kooAw
+/C/i7RfGOlpf6PexzAorSwFgJYCcjbImcqcq3scZBI5rcrzPxR8G9IvnfVfC0knh
+3Xo0YwTWMhhiLbQuGVfuAqCMpj7xJDdDn2fxQ1rwdqkGi/EzTo7QSI/kazaAvFOE
+wMlFBOSQScYI3plFBzQB65RXPt458LLqOmWA16xkuNT3fYxFKHWXBK/eXKjLAqMk
+ZYEDJGK6CgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
+KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
+KKKKACiiigAqnqt+2maXcXyWN3fGBN/2e0VWlcd9oYgE45xnJxgZOAblcf8AE7Vd
+Y0vwNe/2BYX15qd1/osP2KF5Hh3A7pPkIZcKGww6MVoAj8D/ABP0Hx9cXlvpcd3B
+PaortHdhFZ1JIyoV2JAIAJ7bl9aku/GWo2PxH07wxc6BssdS837JqX2xT5nlw+Y/
+7oLkYJ28kZ6ivLLHTPEfw88S+FdYtLfWdetH0z7Pc2dtoP2d7W1Y71Rtu5TLvZnI
+yGymGbDZro/FfiW8k+Jnh3UYfB3iua10CW+iuJItMLCbzEEatEQcMuRnJxwRQB6Z
+4h1y28PaNPf3E1ojqjCCO6ukt1nl2krGHc4BbHXtye1WNJvW1LRrG/eKOJ7m3jma
+OOZZlUsoOA68OBn7w4PUVwfxB1q31fwCsR8H65qU2p2k5tov7JLvYzhCqtKrcxsC
+5wwBzhiCRgk8J6pf618PG8MW+k65omr2uiLaxXOoWclvGZRF5e5JBnGGwezYOQDg
+4AOsn8aeFbW4lt7jxLo0M8TlJI5L+JWRgcEEFsgg8Yq5qeu6Ponlf2tqtjYedny/
+tdwkW/GM43EZxkdPUV4fYabo48IW3hnUPhLrjazFshluILJAk8ySA5N4eVjcj5mH
+CqxCnABpnjbw34ph8eavqF/FqWo2d26iwmt/DttqoWJRny9jtmEKX25wPMIZjzQB
+7/BPDdW8VxbyxzQSoHjkjYMrqRkEEcEEc5qSvO/gxpk2j+CprKX+2Qkd7IYk1axN
+o6KVQ4RN7/JuLHIIyS3Hc7nxC8LXHjPwXfaJa332Oaba6sygpIVIYI/BIUkDleRg
+HkZUgHH+IvixcatqMnhr4cWf9s6u8Uha9UgQ2pU4LAuAr98MSEyUwXztrQ8J/Ce3
+07WG8S+Kbz+3fEskq3H2iQERwOFxhFzhsHoSBgKm1UxWX8G/EVjptvJ4C1DS49E8
+Q2DsZID/AMvhxkyAknc+3BIyQVAK/LwvrlABRRRQAUUUUAFFFFABRRRQAUUUUAFF
+FFABRRRQAUUUUAFFFFABVe+sLPU7OSzv7SC7tZMb4Z4xIjYIIyp4OCAfwqxRQB8c
+eMPh54p0u8uNRfwdPpmmvvkSG1lN2lvGgGd8gZiOOSzYB5wABger/B74w/2r9n8M
++Jrn/iYcR2V9I3/Hz6RyH/np6N/F0Pzff9wrj/H9h4G/sd9R8aWlj9n+SAXMsZ87
+725URk/edcnC9t2eM0AdhRXl/gXx1qnjrxGBotlPZeEdNiCvc3i+ZPdS7MCIuXOM
+bg5I3N8g3MPMxXqFAHn9/wDFjTv9JXw9oeueJPJ3x/aNMsmktvOGf3Zl/wC+TuUM
+MMCM1n3/AMVrhYPCev2OnQJ4V1i7NpdXN9MI5oH3sgJAJVVGxnzlsgEHZwTn+Dtc
+134caDB4V1rwVrl59i3mC90eIXcdwrSyMScbdnUYBO4jkheMx+Pr6bVPD/hC2XwR
+rPkQ6nDfzabDpxmWKzjLosbhRsDshB8r+HkNjjIB6xpurabrNu1xpeoWl9ArlGkt
+ZllUNgHBKkjOCDj3Fc34N8Zaj4j1jW9J1bQP7GvtJ8jzIvti3G7zVZhyqgDgA8E9
+e2K5PwncL4a+IfjloPCWs2mmzpG1kttpTLFKbaNw6ptG3LnJToGz1BIBr+G/FlzZ
+fEPxPrF14N8XRWetPZLC50hyYRFGUdpACTjJz8u44HTPFAHqmp67o+ieV/a2q2Nh
+52fL+13CRb8YzjcRnGR09RVj7fZ/2d/aP2uD7D5Xn/afMHl+Xjdv3dNuOc9MV5P4
+j07+yfihqes+IPBl94p0y/tIo9Pe0tvtv2PYAHjMTfKu5stu+uM7nxzk/gnxoPhl
+ZpaW93aWJ1iTUG0JQt08FmQrorJKR5hRkY+TzvMgLAMCAAe56Zruj635v9k6rY3/
+AJOPM+yXCS7M5xnaTjOD19DWhXz/APDvRL23+Jmm6lJbeI7X91LDIH8Lx6bbOmxy
+BI0Um372CMqckKOwx9AUAFFZ+t6V/bejz6d9vvrDztv+k2E3lTJhg3ytg4zjB9ia
+4/8A4VZ/1Pvjn/wcf/YUAegUV5//AMKs/wCp98c/+Dj/AOwo/wCFWf8AU++Of/Bx
+/wDYUAegUV5//wAKs/6n3xz/AODj/wCwo/4VZ/1Pvjn/AMHH/wBhQBqJ8TfBbazd
+6S/iC0t7y0d0mW63QKrI21gHcBSc9gTnkjgV1EE8N1bxXFvLHNBKgeOSNgyupGQQ
+RwQRzmvli6+CfjTVvFWofZ7WQWD3twI9R1O5XdIquwDuBlyWxnOzncD0Oa7fwl8A
+dS0a4ivbvxhd2M7IyXEejFomK54AmJBxkISCnbHoaAPdK5vxn4ytvBGlpqd/pupX
+VmX2SS2UaOIScbd+51IBJwDyM8HBIzsaVYNpml29i99d3xgTZ9ou2VpXHbcVABOO
+M4ycZOTkng/jXNeXHgS40Ow0XVdRutS27HsbUzJF5csbnzCOVyM44OcGgC5ofxV0
+3XPEFhow0LxBYT3zzJBJf2ixRs0IYyDO8nKlSpABweDirmleMtRu/iHe+FNR0D7B
+5NpJe2919sWX7RCJRGrbAvy7uTgnIxjFcH8OJtS0fxPa6XaeH/ED2d9e3t1eapr2
+lNFPErxoVQShyCWaEb2IG47eAak/4TC8/wCFp/8ACUf8IP4y+w/2J/Z/l/2SfM8z
+z/MzjdjbjvnOe1AHrmpatpujW63GqahaWMDOEWS6mWJS2CcAsQM4BOPY1H/buj/2
+P/a/9q2P9mf8/v2hPJ+9t+/nb97jr14rxv4l6J4kv/GMOuompX2gy2SLaRRaFDft
+au2CyG2mYFSdm4yFQRkIelUPD+lzaX8PvHFpNpHie9Opoot7G48PG3UXDiTDxRI7
+qApCMSAoXYgGTtFAHt+m+JdB1m4a30vW9Nvp1Qu0drdJKwXIGSFJOMkDPuKjvvFn
+hvTLySzv/EGlWl1HjfDPexxuuQCMqTkZBB/GvH9Esv7P8R/DK6tPBGq2cltaSRap
+PHpXlkyOn2cNKw9GVnJbkI4bqSKyPHlh4n1PxH4k+1aDfGR5ZIrQ2XhSC7SaEIFi
+Y3RPmKxGMkZKdsEbQAfR9Fc38P3mb4faAlxZXdlPBZR28kF3EY5FaMeWSVPIBK5H
+qCDXSUAFFcfrfgD+29Yn1H/hLfFdh523/RrDUvKhTChflXacZxk+5NZ//CrP+p98
+c/8Ag4/+woA9Ark0+JvgttZu9JfxBaW95aO6TLdboFVkbawDuApOewJzyRwKy/8A
+hVn/AFPvjn/wcf8A2FeKXXwT8aat4q1D7PayCwe9uBHqOp3K7pFV2AdwMuS2M52c
+7gehzQB9TwTw3VvFcW8sc0EqB45I2DK6kZBBHBBHOakrwvwl8AdS0a4ivbvxhd2M
+7IyXEejFomK54AmJBxkISCnbHoa9o0qwbTNLt7F767vjAmz7RdsrSuO24qACccZx
+k4ycnJIBl+K/GOl+D7O3lv8Az57i6lENrZWieZPcOSBhEyM4yM89wOpAOHpHxPh1
+PxZZaDceGfEGlvfoxtZtRtRCJGRWeQYJ6BQuCM5LcgYBJ48sNXi8T+FfFOm6ZJqc
+Givdfa7WBwJzHLGFLRqeHICn5Qck7QOpI5PTtV+IfiTxp9msr7xHpekT/aZXfUfD
+9vbizXB8lVZt3m4YqCOGIBPqVAPVJvEug22qDS59b02LUC6oLR7pFlLNjaNhOcnI
+wMc5FWNS1bTdGt1uNU1C0sYGcIsl1MsSlsE4BYgZwCcexr5gn8H+IVsJdM17TPEB
+vHcvcy2nha3vmZmffkXgkDuTkZOeMlegr0PXNKvLfWPCGv614d1XxTo0OiJaSWrQ
+GW5guiu4zS2zEgswwrZJwRycqmQD1yHVtNudLOqQahaS6eEZzdpMrRBVzuO8HGBg
+5OeMGvN/DnxfvPFOs2drpvhu0NpdXBRHk123W4WIMQ0ht/v5CgttGeBwSOar+DdK
+Wx0vxjrGo+E7u28N6hcRzWXh17Vp5SUyGb7NghS7bCB0XaOQiq1U/hAlnplno2lX
+/gHVbTXY/P36xPo4jRcmRhmY/MMoQnTvjpQB0njP4pxeGfEqaDYafaaheLb/AGi4
+NxqsNkkIJAVd0nBcj5tvBwVIyCcdh4c1O71nw/Z6je2MdjPcIX8iO6S5ULk7SJE+
+Vgy4bI9a8j1yPS7b4v3upS/DrVdU0kae1tJ5Gg+Yk12Zt7TAMAG4JXf1PbIIJ9k0
+l4ZNGsXt7KSxga3jMdpJEImgXaMIUHClRxjtjFAFyiiigAooooAKKKKACiiigAoo
+ooAKKKKACiiigAooooA4f4ifDu38a2cV3aTfYPENjh7G/QlSpB3BGI5255BHKnkd
+w2f8O/iJcaveS+FPFcP2DxZY5SSNwFF2AM71xxuxyQOCPmX5chfSK4f4ifDu38a2
+cV3aTfYPENjh7G/QlSpB3BGI5255BHKnkdwwB3FFeb/Dv4iXGr3kvhTxXD9g8WWO
+UkjcBRdgDO9ccbsckDgj5l+XIX0igAooooAKKKKACiiigAooooAKKKKACiiigAoo
+ooAKKKKACiio554bW3luLiWOGCJC8kkjBVRQMkkngADnNAEd/N9n065n+0wWvlxO
+/n3AzHFgE7nGV+UdTyOB1HWviTUrvWvF3ipYrjUZNY1C5uBbQSs5CyFnO0JvC7EL
+NkDCgZ6Cvc76+1T4465JpWlST2HgWxlAu7wLte9cYIVQfwIU/d4dhnYg9csPDei6
+Xb6dBZ6XaRJpqMlmfKBaAMMNtY8gt/Ec5bvmgCn4L8J2fgrwva6LZv5vlZeacoEa
+aRjlmIH4AZyQoUZOM10FFFABRRRQAVy/j/xZceCfC765BpX9pRwyok6faBD5aMcB
+8kHPzFRgD+LPQGuoqnq2mw6zo19pdw0iwXtvJbyNGQGCupUkZBGcH0NAElhfW+p6
+dbX9nJ5lrdRJNC+0jcjAFTg8jII61Yryv4H6lNDomreD7tYzd+G72S3aSEHY6s7n
+IJOSd6ydhxt75r1SgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
+gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
+gAooooAKKKKACiiigAooooAKKKKAOH+Inw7t/GtnFd2k32DxDY4exv0JUqQdwRiO
+dueQRyp5HcNn/Dv4iXGr3kvhTxXD9g8WWOUkjcBRdgDO9ccbsckDgj5l+XIX0iuH
++Inw7t/GtnFd2k32DxDY4exv0JUqQdwRiOdueQRyp5HcMAdxRXm/w7+Ilxq95L4U
+8Vw/YPFljlJI3AUXYAzvXHG7HJA4I+ZflyF9IoAKKKKACiiigAooooAKKKKACiii
+gAooooAKKKjnnhtbeW4uJY4YIkLySSMFVFAySSeAAOc0AE88Nrby3FxLHDBEheSS
+RgqooGSSTwABzmvE76+1T4465JpWlST2HgWxlAu7wLte9cYIVQfwIU/d4dhnYgL6
++1T4465JpWlST2HgWxlAu7wLte9cYIVQfwIU/d4dhnYg9k0rSrHQ9Lt9M0y2jtrO
+3TZFEnRR/MknJJPJJJOSaADStKsdD0u30zTLaO2s7dNkUSdFH8ySckk8kkk5Jq5R
+RQAUUUUAFFFFABRRRQB4/wCLv+KI+NuieLW/caRrMX9n6jMOQJMYUuz/ACxrxCcg
+g4ic4659gri/ir4XXxZ8PtRtFjke7tkN5aCNGdjLGCQoUEbiylk7/ezgkCrHw28U
+N4v8B6bqs8kbXmww3e11J81DtJYAAKWAD7cDAcdsGgDrKKKKACiiigAooooAKKKK
+ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
+ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA4f4i
+fDu38a2cV3aTfYPENjh7G/QlSpB3BGI5255BHKnkdw2f8O/iJcaveS+FPFcP2DxZ
+Y5SSNwFF2AM71xxuxyQOCPmX5chfSK8H/aH0XVNR+wXtl4b8+1tIi0+qw/PIo+Ym
+NlU5EahSxZgQC3BXncAe4WN/Z6nZx3lhdwXdrJnZNBIJEbBIOGHBwQR+FWK+aPgD
+46TR9Yk8K3xxa6nL5lrIWVVjn24IOcE7wqqOT8yqAPmJH0vQAUUVX+32f9o/2d9r
+g+3eV5/2bzB5nl5279vXbnjPTNAFiiiigAooooAKKKKACiio554bW3luLiWOGCJC
+8kkjBVRQMkkngADnNABPPDa28txcSxwwRIXkkkYKqKBkkk8AAc5rxO+vtU+OOuSa
+VpUk9h4FsZQLu8C7XvXGCFUH8CFP3eHYZ2IC+vtU+OOuSaVpUk9h4FsZQLu8C7Xv
+XGCFUH8CFP3eHYZ2IPZNK0qx0PS7fTNMto7azt02RRJ0UfzJJySTySSTkmgA0rSr
+HQ9Lt9M0y2jtrO3TZFEnRR/MknJJPJJJOSauUUUAFFFFABRRRQAUUUUAFFFFABXj
+/gr/AIoX4w6/4Qn+Sx1r/iZaWqfLGv3iyLGuQvAZcnbkQDjlQPYK8n+NtjcaXZ6P
+460mPbqeh3aCSQMFDQOcbXxhmXeVXaD0lfjkkAHrFFV7C+t9T062v7OTzLW6iSaF
+9pG5GAKnB5GQR1qxQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR
+QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR
+QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB5X4z+CWkaw6al4YaPw/rEL+aj26lYn
+ZVGz5VI8shlU7kHGWJDEjHcaXbavf+DlsdekktdUe3e2ubizmG4sMp50bBQFLACQ
+cDbuAxxW5Ve/tft2nXNn9ont/PieLzrd9kke4EbkbswzkHsaAPC/D+ja1ffB/wD4
+TZPHHiePVre3uLxY5L4y25MEj/KY26grHjkkZPII4NzXEv7/AMY/DXxPoVnpUHib
+WdPmlne5EiwSEWyH5gpLcK7gHr90EkAY6SD4JaLDYRaY/iHxPPpKOGbTZNQAt3Af
+ftKKg4Lc8YOeQQea3L/4d2F/4o0rXf7V1W2bSdgsbK1ljitoEUAFFQJnawGG55HG
+cAAAGfonjq/ufA3iTUtaOlWGpaJd3VjJNuk+yNLGBtbH39pZlXAyx7ckKOb8FfFz
+VNd8b6doV3ceH9QgvkmHmaXFdRNAyIXBbz1AYEKRgfXIxg9JZfCPR7XR9a0mbWNc
+vbHWPnuoru5Rv324MJgQgIkyAckkNgbg2BgtvhPZwa5purzeKvFd7dadL5tv9r1A
+SAZxuXlM7WAwwBGRxQBl6r4t+I1t4/uPC2naV4fvHlt/tlpLvkQQW5n2B5ssNxCg
+5VBnLAjOCpk1nxJ8R9M1zw1oaR+FGv8AV4rjc5W4MSyRbnODnIUxmPHBO7d0GK0L
+/wCE9nfeIbnXP+Eq8V299PvXfb6gE8uNnL+Uh2ZEYJ4XOBWpqfgK21bxLomvXWta
+z9s0hFWERzoiSEHLs6hMZcfK+3aCABgCgDg/Cvxe1vUrG+l1xNDslbRJdUsrkeas
+cZSZoAsq5YtucDAQ5xgDJbAk8FfFzVNd8b6doV3ceH9QgvkmHmaXFdRNAyIXBbz1
+AYEKRgfXIxg6i/Arw35EdvLquuS28Vo9msRuI0Xy2dpADsjBbEjeYNxI3BcggYrQ
+tvhPZwa5purzeKvFd7dadL5tv9r1ASAZxuXlM7WAwwBGRxQB6BXz/wDEfxV/wlHx
+FHgXWtT/AOEc8O2sqfapHOXvGO1lyVyqqdwI3EKv3m5AQfQFZ+s6HpfiHTnsNXsI
+L21bJ2TJnaSCNynqrYJwwwRng0AGh2Ol6dodla6JHBHpiRKbYQNuQoeQwbndnOd2
+TnOcnNaFeT3Pwj1Tw9uufh74rvtKk815fsF5J5toxbC9MHGFzyyuTheQRmo4Pit4
+j8L3EUHxH8KyadBO4Eeo2A8yBNxwFYBmGQFkY4YtgDCd6APXKKx/D3irQvFdmbrQ
+9TgvY1++EJDx5JA3IcMudpxkDOMjitigAooooAKKKKACiiigAooooAKp6tpsOs6N
+faXcNIsF7byW8jRkBgrqVJGQRnB9DVyigDyv4H6lNDomreD7tYzd+G72S3aSEHY6
+s7nIJOSd6ydhxt75r1SvF/G99b/D3426N4rnk8jTNYtHtdQMamR2KADcVPRRm3Py
+c/u24Ofm9Y0TW9O8R6PBq2k3H2ixn3eXLsZN21ip4YAjkEcigDQooooAKKKKACii
+igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
+igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
+igAooooAKKKKACiiigAooooAKKKKACiiigAooooA871v4N+HL6//ALU0WS78Oaoi
+OI7jSpPKUMU2glBwAB1CFN25snnNYf8AaHxa8C/ubrToPGGkQdLmAlbtk+4ikD5i
+wwrMdkn3jlz1HsFFAHD+GPi34O8VSw21rqf2W+m4W0vV8pyd20KDyjMSRhVYk56c
+HHcVzfivwH4c8Z25TWdOjknCbY7uP5J4+GxhxyQCxO05XPJBrh5vBfj/AMDuJ/BP
+iCTWtPRFQaPrD7iqqoVQjEgADczYUx8Ko+bpQB65RXlem/Gi00+4bS/HmlXfhzVI
+kJZmieSCbBC7k2gtgsHxgMuF++a9Msb+z1OzjvLC7gu7WTOyaCQSI2CQcMODggj8
+KALFFFFABRRRQAUUUUAfP/7QPgD/AJnTTo/7sephpf8AdSJ1U/gpwf7px941ufs3
+zwt4F1O3WWMzpqbO8YYblVoowpI6gEqwB77T6V7BPBDdW8tvcRRzQSoUkjkUMrqR
+ggg8EEcYrzf4deCz4E8a+KbCJJDp9+kF1YusMmxIw0oMTOcjeu5RgsSwIb1AAPTK
+KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
+KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
+KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAr
+31hZ6nZyWd/aQXdrJjfDPGJEbBBGVPBwQD+FeZ3nwaXSXnvvAniDUvD94zpILfz2
+ktZCinarg/MQW5JYuACw2kHFeqUUAeP/APCxPHPgj/kffDH2nTE/d/2rpWG+78u9
+1ztG9imM+V1OAfuiSP8AaC8LnxZNp0qSLo4TMWrLvYM20HDRbA6jO5cjPIHGDkeu
+V88az+zjrEu+6s/FMF/fTSl5jfQPFuzksxcM5LZx1HOSc+oB9BwTw3VvFcW8sc0E
+qB45I2DK6kZBBHBBHOakrw/wj4S+KPw22/ZvsPiHTGzG2lR37J5edzB0aVVVPmPO
+M7t3I6MvsF9Zf25oclrM99p7XMQyYJ/KngY4PDoSAwPoSpxjkHkA0KK+YPAq+JPG
+9wNLi8WeK7O/fTxeLdT6jIIDtuvLkKJ1kXyyMfMv7xGBODx6n408W+OtA8Z2OlaP
+pWjalb6qkw0+Eu6T7o4gzGRmYIAGbOB1UYyCc0AemUVwer+I/EvhbwHe6l4kvvDF
+pqwuFS1dRcNaspK8MoBkZ8eYcKDwAegNY/w2+J2oeLfFV3ot7Jo12iWX2uO60tLi
+NVIcIUZZgCT8wORgDHfPAB6pRXibfEn4g2Wia1r15Z+GJdP0PUzp97DD9oSWVldE
+byySQAd4wT7/AC9j2ninxT4gj8W2XhTwpY2MupyWhv7i51JmEEUAYoOEO4sXAHHT
+I4OSVAO4org9Kv8A4lXNv4gtb2x8Pw6haPAmn3AWcWs5YBpc5O8hVIAIAG7I5wcS
+fCC4iu/hbo08NlBZRt5+IIC5RMTyDguzNz15J6+nFAHcUV4f4q+LnivRvEOo2EVr
+odj5V2YLK01OG5Sa5j37BMJPlhEbHccllAAPJxk+4UAFFFFABRRRQAUUUUAFFFFA
+BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA
+BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA
+BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVn63pX9t6PPp32++sPO2/6TYTe
+VMmGDfK2DjOMH2JrQooA5PwZ4CtvA6PBp+tazc2bJtWzvZ0kijO4tuQBAVOS2cHB
+zyCQCKfiH4ZWfiPxGNcm8R+I7S6j/wCPdLO+EaW2UCN5QKEpuA+bB5ya7iigDl9V
+8D2et+F7LRNR1TVZmsZY57fUftAW7SRCdr7woBYAkZKk9/vfNWXpfwuttK8QLrie
+KfE9xqCW72yy3d6k3yMDwd0fIVjvAORuAJBrvKKAPN/+FM6O2h6hpEniDxHJa6hd
+peXO+8QmSRd2SfkwdxYFsgklEOflrY1r4c6XrkWkyS3+q22p6ZEIYdWtbnZeOm0q
+Q8mDuzkk8dScY3MD2FFAHDp8M7ePTprdfFPisXU0sbyah/aZ+0siBwsW7bjywZHb
+GOp68CpPCXw4tvBlxE2neIfEEtpGjILC6uke3wxycJsG07ucrg5z2JB7SigDzf8A
+4UtoXkfYf7b8R/2N5vmf2R/aJ+ybd+/Zt2525993fOea9IoooAKKKKACiiigAooo
+oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
+oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
+oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
+oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
+oAKKKKACiiigAooooAKKKKACiiigAooooA//2Q==
+=ao7I
+-----END PGP ARMORED FILE-----
diff --git a/g10/ChangeLog b/g10/ChangeLog
index 82c6709e0..6d19d7e0e 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,15 +1,477 @@
-Wed Sep 15 16:22:17 CEST 1999 Werner Koch <[email protected]>
+Thu May 18 11:38:54 CEST 2000 Werner Koch <[email protected]>
+
+ * keyedit.c (keyedit_menu): Add a keyword arg to the prompt.
+
+ * status.c, status.h: Added 3 new status tokens.
+ * status.c (do_get_from_fd): New.
+ (cpr_enabled,cpr_get,cpr_get_hidden,cpr_kill_prompt,
+ cpr_get_answer_is_yes,cpr_get_answer_yes_no_quit): Modified to work
+ with the new function.
+ * g10.c: Add new option --command-fd.
+
+ * status.c (progress_cb): New.
+ (set_status_fd): Register progress functions
+
+Fri May 12 14:01:20 CEST 2000 Werner Koch <[email protected]>
+
+ * delkey.c (delete_key): Add 2 new status messages
+ * status.c, status.h (STATUS_DELETE_PROBLEM): New.
+
+ Fixed years of copyright in all source files.
+
+Mon May 1 17:08:14 CEST 2000 Werner Koch <[email protected]>
+
+ * trustdb.c (propagate_validity): Fixed the bug that only one uid
+ gets fully trusted even when all are signed by an ultimate key.
+
+Mon May 1 15:38:04 CEST 2000 Werner Koch <[email protected]>
+
+ * getkey.c (key_byname): Always returned a defined context. Fixed
+ a segv for invalid user id specifications. Reported by Walter Koch.
+
+ * getkey.c (get_user_id): I18ned "no user id" string. By Walter.
+
+ * pkclist.c (do_show_revocation_reason): Typo fixes.
+ * helptext.c: Ditto.
+
+ * armor.c (armor_filter): Fixed some CRLF issues. By Mike McEwan.
+
+Fri Apr 14 19:37:08 CEST 2000 Werner Koch <[email protected]>
+
+ * pkclist.c (do_show_revocation_reason): New.
+ (show_revocation_reason): New and called at various places.
+
+ * g10.c (main): Fixed small typo.
+
+ * pkclist.c (do_we_trust): Act on always_trust but not for revoked
+ keys. Suggested by Chip Salzenberg.
+
+ * g10.c: New option --lock-never.
+
+ * ringedit.c (get_writable_keyblock_file): New.
+ * keygen.c (do_generate_keypair): Use this instead of the hardwired one.
+
+ * keygen.c (ask_user_id): Check that the email address is in the
+ correct field. Suggested by Christian Kurz.
+
+Mon Apr 10 13:34:19 CEST 2000 Werner Koch <[email protected]>
+
+ * keyedit.c (show_key_with_all_names): s/sbb/ssb/
+
+Tue Mar 28 14:26:58 CEST 2000 Werner Koch <[email protected]>
+
+ * trustdb.c (verify_own_keys): Do not print warning about unprotected
+ key when in quiet mode.
+
+Wed Mar 22 13:50:24 CET 2000 Werner Koch <[email protected]>
+
+ * mainproc.c (print_userid): Do UTF8 conversion before printing.
+ * import.c (import_one): Ditto.
+ (import_secret_one): Ditto.
+ (delete_inv_parts): Ditto.
+
+Thu Mar 16 16:20:23 CET 2000 Werner Koch <[email protected]>
+
+ * keylist.c (print_key_data): Handle a NULL pk gracefully.
+
+ * getkey.c (merge_one_pk_and_selfsig): Fixed silly code for
+ getting the primary keys keyID but kept using the one from the
+ subkey.
+ * pubkey-enc.c (get_it): Print a note for expired subkeys.
+
+ * getkey.c (has_expired): New.
+ (subkeys_expiretime): New.
+ (finish_lookup): Check for expired subkeys needed for encryption.
+ (merge_keys_and_selfsig): Fixed expiration date merging for subkeys.
+
+ * keylist.c (list_keyblock): Print expiration time for "sub".
+ (list_one): Add missing merging for public keys.
+ * mainproc.c (list_node): Ditto.
+
+2000-03-14 13:49:38 Werner Koch ([email protected])
+
+ * keygen.c (keyedit_menu): Do not allow to use certain commands
+ while the secret key is selected.
+2000-03-09 12:53:09 Werner Koch ([email protected])
+
+ * keygen.c (ask_expire_interval): Movede parsig to ...
+ (parse_expire_string): ... this new function. And some new control
+ commands.
+ (proc_parameter_file): Add expire date parsing.
+ (do_generate_keypair): Allow the use of specified output files.
+
+2000-03-08 10:38:38 Werner Koch ([email protected])
+
+ * keygen.c (ask_algo): Removed is_v4 return value and the commented
+ code to create Elg keys in a v3 packet. Removed the rounding
+ of key sizes here.
+ (do_create): Likewise removed arg v4_packet.
+ (gen_elg): Likewise removed arg version. Now rounding keysizes here.
+ (gen_dsa): Rounding keysize now here.
+ (release_parameter_list): New
+ (get_parameter*): New.
+ (proc_parameter_file): New.
+ (read_parameter_file): New.
+ (generate_keypair): Splitted. Now uses read_parameter_file when in
+ batch mode. Additional argument to specify a parameter file.
+ (do_generate_keypair): Main bulk of above fucntion and uses the
+ parameter list.
+ (do_create): Don't print long notice in batch mode.
+ * g10.c (main): Allow batched key generation.
+
+Thu Mar 2 15:37:46 CET 2000 Werner Koch <[email protected]>
+
+ * pubkey-enc.c (get_it): Print a note about unknown cipher algos.
+
+ * g10.c (opts): Add a note to the help listing about the man page
+ and removed some options from the help listing.
+
+ * keyedit.c (print_and_check_one_sig): Use a new function to truncate
+ the output of the user ID. Suggested by Jan-Benedict Glaw.
+
+Wed Feb 23 10:07:57 CET 2000 Werner Koch <[email protected]>
+
+ * helptext.c: typo fix.
+
+Thu Feb 17 13:39:32 CET 2000 Werner Koch <[email protected]>
+
+ * revoke.c: Removed a bunch of commented code.
+
+ * packet.h (SIGSUBPKT_REVOC_REASON): New.
+ * build-packet.c (build_sig_subpkt): Support new sub packet.
+ * parse-packet.c (parse_one_sig_subpkt): Ditto.
+ (dump_sig_subpkt): Ditto.
+ * revoke.c (ask_revocation_reason): New.
+ (release_revocation_reason_info): New.
+ (revocation_reason_build_cb): New.
+ (gen_revoke): Ask for reason.
+ * main.h (struct revocation_reason_info): Add declaration.
+ * keyedit.c (menu_revsig): Add support for revocation reason.
+ (menu_revkey): Ditto.
+ (sign_uid_mk_attrib): Renamed to ...
+ (sign_mk_attrib): ... this, made static and add support for reasons.
+
+Tue Feb 15 08:48:13 CET 2000 Werner Koch <[email protected]>
+
+ * build-packet.c (build_packet): Fixed fixing of old comment packets.
+
+ * import.c (import_keys): Fixed importing from stdin when called with
+ nnames set to zero as it normally happens.
+
+Mon Feb 14 14:30:20 CET 2000 Werner Koch <[email protected]>
+
+ * sig-check.c (check_key_signature2): Add new arg r_expired.
+ (do_signature_check): New arg to pass it down to ...
+ (do_check): New arg r-expire which is set when the signature
+ has expired.
+ * trustdb.c (check_sig_record): Set SIGF_EXPIRED flag and set
+ the expiretime to zero so that thi signature will not be checked
+ anymore.
+
+Fri Feb 11 17:44:40 CET 2000 Werner Koch <[email protected]>
+
+ * g10.c (g10_exit): Update the random seed_file.
+ (main): Set the random seed file. New option --no-random-seed-file.
+
+Thu Feb 10 17:39:44 CET 2000 Werner Koch <[email protected]>
+
+ * keyedit.c (menu_expire): Fixed segv due to unitialized sub_pk.
+ By R�mi.
+
+Thu Feb 10 11:39:41 CET 2000 Werner Koch <[email protected]>
+
+ * keylist.c (list_keyblock): Don't print warnings in the middle of
+ regulat output lines. By R�mi.
+
+ * sig-check.c: Include options.h
+
+Wed Feb 9 15:33:44 CET 2000 Werner Koch <[email protected]>
+
+ * gpg.c: New option --ignore-time-conflict
+ * sig-check.c (do_check): Implemented this option.
+ * trustdb.c (check_trust): Ditto.
+ * sign.c (do_sign): Ditto.
+ * keygen.c (generate_subkeypair): Ditto.
+
+ * encode.c (encode_simple): use iobuf_cancel after open failure.
+ Reported by Huy Le.
+
+Fri Jan 14 18:32:01 CET 2000 Werner Koch <[email protected]>
+
+ * packet.h (STRING2KEY): Changed mode from byte to int.
+ * parse-packet.c (parse_key): Add the special GNU protection stuff
+ * build-packet.c (so_secret_key): Ditto.
+ * seckey-cert.c (do_check): Ditto.
+ * keyedit.c (change_passphrase): Ditto.
+ * export.c (export_secsubkeys): New.
+ (do_export_stream): Hack to export the primary key using mode 1001.
+ * g10.c: New command --export-secret-subkeys
+
+Thu Jan 13 19:31:58 CET 2000 Werner Koch <[email protected]>
+
+ * armor.c (is_armored): Check for 1-pass-sig packets. Reported by
+ David Hallinan <[email protected]>.
+ (armor_filter): Replaced one LF by the LF macro. Reported by
+ Wolfgang Redtenbacher.
+
+Wed Jan 5 11:51:17 CET 2000 Werner Koch <[email protected]>
+
+ * g10.c (main): Reset new global flag opt.pgp2_workarounds
+ when --openpgp is used.
+ * mainproc.c (proc_plaintext): Do the PGP2,5 workarounds only
+ when the global falg is set.
+ (proc_tree): Ditto.
+ * textfilter.c (copy_clearsig_text): Ditto.
+ * armor.c (armor_filter): Ditto.
+
+ * g10.c: New option --list-only
+ * mainproc.c (proc_tree): Don't do it if opt.list_only is active.
+ (proc_pubkey_enc): Implement option.
+
+ * status.h, status.c ({BEGIN,END}_{EN,DE}CRYPTION): New.
+ * cipher.c (cipher_filter): New status outputs.
+ * mainproc.c (proc_encrypted): New status outputs.
+
+Fri Dec 31 14:08:15 CET 1999 Werner Koch <[email protected]>
+
+ * armor.c (armor_filter): Made the "Comment:" header translatable.
+
+ * hkp.c (hkp_import): Make sure that the program does not return
+ success when there is a connection problem. Reported by Phillip Jones.
+
+Sun Dec 19 15:22:26 CET 1999 Werner Koch <[email protected]>
+
+ * armor.c (LF): Use this new macro at all places where a line LF
+ is needed. This way DOSish textfiles should be created when the
+ input data is also in dos mode.
+ * sign.c (LF): Ditto.
+ * textfilter.c (LF): Ditto.
+ (copy_clearsig_text): Disabled the forcing of CR,LF sequences
+ for DOS systems.
+
+ * plaintext.c (handle_plaintext): Fixes for line endings on DOS.
+ and react on a LF in cleartext.
+ * armor.c (fake_packet): Restore the original line ending after
+ removing trailing spaces.
+
+ * signal.c (got_fatal_signal): DOS fix.
+
+Thu Dec 16 10:07:58 CET 1999 Werner Koch <[email protected]>
+
+ * mainproc.c (print_failed_pkenc): Fix for unknown algorithm.
+ Found by [email protected].
+
+Thu Dec 9 10:31:05 CET 1999 Werner Koch <[email protected]>
+
+ * hkp.c: i18n the strings.
+
+Sat Dec 4 15:32:20 CET 1999 Werner Koch <[email protected]>
+
+ * trustdb.c (verify_key): Shortcut for ultimately trusted keys.
+
+Sat Dec 4 12:30:28 CET 1999 Werner Koch <[email protected]>
+
+ * pkclist.c (build_pk_list): Validate the trust using the namehash
+ if this one has been set by the key lookup.
+
+ * g10.c: Add --delete-secret-key to the help page.
+
+ * openfile.c (copy_options_file): Made static.
+ (try_make_homedir): New.
+ * ringedit.c (add_keyblock_resource): Use the try_make_hoemdir logic.
+ * tdbio.c (tdbio_set_dbname): Likewise.
+
+ * keygen.c (generate_user_id): Use m_alloc_clear() here. We should
+ better use an allocation function specific to the user_id packet.
+
+ * keygen.c (keygen_add_std_prefs): Changed symmetric preferences
+ to include Blowfish again. This is due to it's better speed compared
+ to CAST5.
+
+ * g10.c (strusage): Print the home directory.
+
+ * armor.c (armor_filter): Take action on the cancel control msg.
+ * filter.h (armor_filter_context_t): Add cancel flag.
+
+Mon Nov 29 21:52:11 CET 1999 Werner Koch <[email protected]>
+
+ * g10.c: New option --fast-list-mode ..
+ * keylist.c (list_keyblock): .. and implemented.
+ * mainproc.c (list_node): Ditto.
+
+ * import.c (mark_non_selfsigned_uids_valid): Fixed the case that there
+ is a uid without any packet following.
+
+Mon Nov 22 11:14:53 CET 1999 Werner Koch <[email protected]>
+
+ * mainproc.c (proc_plaintext): Never enable the hash processing
+ when skip_verify is active.
+
+ * armor.c (parse_header_line): Stop parsing on a WS line too.
+ Suggested by Aric Cyr.
+
+ * tdbdump.c (HEXTOBIN): Changed the name of the argument, so that
+ traditional cpp don't mess up the macros. Suggested by Jos Backus.
+
+ * mainproc.c (list_node): Print the PK algo in the --with-colon mode.
+ * keylist.c (list_keyblock): Ditto.
+
+ * signal.c (got_fatal_signal): Found the reason why exit(8) did not
+ work - it is better to set the disposition back to default before
+ raising the signal. Print the notice on stderr always.
+
+Fri Nov 12 20:33:19 CET 1999 Werner Koch <[email protected]>
+
+ * g10.c (make_username): Swapped the logic.
+ * keylist.c (public_key_list): Now takes a STRLIST as arg and moved
+ the creation ot this list to the caller, so that he can copy with
+ UTF-conversion of user IDs. Changed all callers.
+ (secret_key_list): Likewise.
+
+ * getkey.c (get_user_id_string_native): New and ...
+ * encode.c (write_pubkey_enc_from_list): ... use it here.
+
+ * pubring.asc: Updated.
+
+ * packet.h (PKT_PHOTO_ID): New.
+ * parse-packet.c (parse_photo_id): New.
+ * build-packet.c (do_user_id: Handle photo IDs.
+ (build_packet): Change CTB for photo IDs
+ * free-packet.c (free_user_id): Release memory used for photo IDs
+ * sig-check.c (hash_uid_node): Handle photo IDs too.
+ * trustdb.c (print_uid_from_keyblock): Hash photo ID.
+ (make_uid_records): Ditto.
+ * getkey.c (find_by_name): Ditto.
+ * keyedit.c (show_prefs): Ditto.
+ * keylist.c (list_keyblock): Ditto.
+
+Thu Oct 28 16:08:20 CEST 1999 Werner Koch <[email protected]>
+
+ * keygen.c (ask_expire_interval): Print a warning for systems
+ with a signed 32 time_t if the exiration time is beyoind 2038.
+
+Fri Oct 8 20:40:50 CEST 1999 Werner Koch <[email protected]>
+
+ * ringedit.c (enum_keyblocks): The last fix way really stupid;
+ reverted and set rt to Unknown.
+
+Fri Oct 8 20:32:01 CEST 1999 Werner Koch <[email protected]>
+
+ * ringedit.c (enum_keyblocks): Zero the entire kbpos out on open.
+
+ * g10.c (oEntropyDLL): Removed option.
+ (main): Made the warning on development versions more verbose.
+
+ * g10.c (oHonorHttpProxy): New option.
+ * hkp.c (hkp_ask_import,hkp_export): Implement this option.
+ * options.skel: Enable this option for new installations
+
+Mon Oct 4 21:23:04 CEST 1999 Werner Koch <[email protected]>
+
+ * import.c (import_keys): Changed calling interface, adjusted caller.
+ (import): Moved printing of stats out ...
+ (print_stats): New. ... to here.
+ (import_keys_stream): Call stats print here.
+ (import_keys): Print stats as totals for all files.
+
+ * tdbio.h (DIRF_NEWKEYS): New
+ * tdbio.c (tdbio_dump_record): Print the new flag.
+ * trustdb.c (check_trust_record): New arg sigs_only. Adapted all
+ callers.
+ (do_update_trust_record): Removed recheck arg and add a new sigs_only
+ do we can later improve on the performance. Changed all callers too.
+ (check_trustdb): Evalutate the new flag and add a status output.
+ Do a check when the dir record has not been checked.
+ (build_cert_tree): Evaluate the new flag.
+ (check_trust): Ditto. Do a trust_record check, when the dir record
+ is not marked as checked.
+ (mark_fresh_keys): New.
+ (clear_lid_table): New.
+ (sync_trustdb): New.
+ * import.c (import_keys): Call sync_trustdb() after processing.
+ (import_keys_stream): Ditto.
+ * tdbdump.c (import_ownertrust): Ditto.
+
+ * import.c (import_revoke_cert): Notify the trust DB.
+ (do_update_trust_record): Use |= to set the REVOKED bit and not &=;
+ shame on me for this bad copy+paste introduced bug.
+ (do_we_trust): Add trustmask to allow revoked key override to work.
+ Chnaged are to allow return of a mofified trustlevel. Adapted the
+ one caller.
+
+ * g10.c: New options --emulate-3des-s2k-bug
+ * passphrase.c (hash_passphrase): Implemented above.
+
+ * mainproc.c (proc_tree): Check for standalone signatures.
+ (do_check_sig): Print a notice for a standalone revocation
+ (check_sig_and_print): Do not print an error for unchecked standalone
+ revocations.
+
+Tue Sep 28 20:54:37 CEST 1999 Werner Koch <[email protected]>
+
+ * encode.c (encode_simple): Use new CTB when we don't have the
+ length of the file. This is somewhat strange as the comment above
+ indicates that this part is actually fixed for PGP 5 - maybe I simply
+ lost the source line, tsss.
+
+ * armor.c (armor_filter): Set a flag if no OpenPGP data has been found.
+ * verify.c (verify_signatures): Add an error helptext.
+
+Thu Sep 23 19:24:30 CEST 1999 Werner Koch <[email protected]>
+
+ * openfile.c (open_outfile): Fixed the 8dot3 handling.
+
+ * passphrase.c (passphrase_to_dek): Print uid using utf8 func.
+ * delkey.c (delete_key): Ditto.
+ * pkclist.c (show_paths,do_edit_ownertrust,do_we_trust): Ditto
+ (do_we_trust_pre): Ditto.
+ * trustdb.c (print_user_id,check_uidsigs): Ditto.
+ * revoke.c (gen_revoke,ask_revoke_sig): Ditto.
+
+Thu Sep 23 09:52:58 CEST 1999 Werner Koch <[email protected]>
+
+ * verify.c (print_file_status): New.
+ (verify_one_file): Moved status print to th new fnc. Add error status.
+ * status.c, status.h (STATUS_FILE_ERROR): New
+
+Wed Sep 22 10:14:17 CEST 1999 Werner Koch <[email protected]>
+
+ * openfile.c (make_outfile_name): Use case-insenstive compare for
+ DOS systems. Add ".pgp" to the list of know extensions.
+ (open_outfile): For DOS systems try to replace the suffiy instead of
+ appending it.
+
+ * status.c, status.h: Add STATUS_FILE_{START,DONE}.
+ * verify.c (verify_one_file): Emit these new stati.
+
+ * sign.c (clearsign_file): Avoid duplicated Entries in the "Hash:"
+ line. Those headers are now only _not_ printed when there are
+ only old-style keys _and_ all hashs are MD5.
+
+Mon Sep 20 12:24:41 CEST 1999 Werner Koch <[email protected]>
+
+
+ * verify.c (verify_files, ferify_one_file): New.
+ * g10.c: New command --verify-files
+
+Fri Sep 17 12:56:42 CEST 1999 Werner Koch <[email protected]>
+
+ * g10.c: Add UK spelling as alias for armor options ;-)
+
+ * import.c (append_uid): Fixed a SEGV when there is no selfsig and
+ no subkey.
+ (merge_sigs): Ditto. Removed the assertion.
+
+Wed Sep 15 16:22:17 CEST 1999 Werner Koch <[email protected]>
* g10.c: New option --entropy-dll-name
Mon Sep 13 10:51:29 CEST 1999 Werner Koch <[email protected]>
-
* signal.c (got_fatal_signal): Print message using write(2) and
only for development versions.
-
Mon Sep 6 19:59:08 CEST 1999 Werner Koch <[email protected]>
* tdbio.c (tdbio_set_dbname): Use mkdir macro
diff --git a/g10/Makefile.am b/g10/Makefile.am
index af727cda8..6170b1691 100644
--- a/g10/Makefile.am
+++ b/g10/Makefile.am
@@ -4,7 +4,7 @@ INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/intl
EXTRA_DIST = OPTIONS pubring.asc options.skel
OMIT_DEPENDENCIES = zlib.h zconf.h
LDFLAGS = @LDFLAGS@ @DYNLINK_LDFLAGS@
-needed_libs = ../cipher/libcipher.la ../mpi/libmpi.la ../util/libutil.la
+needed_libs = ../cipher/libcipher.a ../mpi/libmpi.a ../util/libutil.a
#noinst_PROGRAMS = gpgd
bin_PROGRAMS = gpg
diff --git a/g10/OPTIONS b/g10/OPTIONS
index 96290f6cf..b1a49e254 100644
--- a/g10/OPTIONS
+++ b/g10/OPTIONS
@@ -19,6 +19,6 @@ compress-sigs
run-as-shm-coprocess [request-locked-shm-size]
# very special :-)
# You will have to use "--status-fd" too
-# Note: This option dioes only work if given on the command line.
+# Note: This option does only work if given on the command line.
diff --git a/g10/armor.c b/g10/armor.c
index 38c48fbbe..4384131ff 100644
--- a/g10/armor.c
+++ b/g10/armor.c
@@ -1,5 +1,5 @@
/* armor.c - Armor flter
- * Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -37,6 +37,11 @@
#include "status.h"
#include "i18n.h"
+#ifdef HAVE_DOSISH_SYSTEM
+ #define LF "\r\n"
+#else
+ #define LF "\n"
+#endif
#define MAX_LINELEN 20000
@@ -162,6 +167,7 @@ is_armored( const byte *buf )
switch( pkttype ) {
case PKT_MARKER:
case PKT_SYMKEY_ENC:
+ case PKT_ONEPASS_SIG:
case PKT_PUBLIC_KEY:
case PKT_SECRET_KEY:
case PKT_PUBKEY_ENC:
@@ -311,9 +317,15 @@ parse_header_line( armor_filter_context_t *afx, byte *line, unsigned len )
byte *p;
int hashes=0;
+ /* fixme: why this double check? I think the original code w/o the
+ * second check for an empty line was done from an early draft of
+ * of OpenPGP - or simply very stupid code */
if( *line == '\n' || ( len && (*line == '\r' && line[1]=='\n') ) )
return 0; /* empty line */
len = trim_trailing_ws( line, len );
+ if( !len )
+ return 0; /* WS only same as empty line */
+
p = strchr( line, ':');
if( !p || !p[1] ) {
log_error(_("invalid armor header: "));
@@ -479,13 +491,26 @@ fake_packet( armor_filter_context_t *afx, IOBUF a,
if( !maxlen )
afx->truncated++;
if( !afx->not_dash_escaped ) {
+ int crlf;
+ p = afx->buffer;
+ n = afx->buffer_len;
+ crlf = n > 1 && p[n-2] == '\r' && p[n-1]=='\n';
+
/* PGP2 does not treat a tab as white space character */
- afx->buffer_len =
- trim_trailing_chars( afx->buffer, afx->buffer_len,
+ afx->buffer_len = trim_trailing_chars( p, n,
afx->pgp2mode ? " \r\n" : " \t\r\n");
/* the buffer is always allocated with enough space to append
- * a CR, LF, Nul */
- afx->buffer[afx->buffer_len++] = '\r';
+ * the removed [CR], LF and a Nul
+ * The reason for this complicated procedure is to keep at least
+ * the original tupe of lineending - handling of the removed
+ * trailing spaces seems to be impossible in our method
+ * of faking a packet; either we have to use a temporary file
+ * or calculate the hash here in this module and somehow find
+ * a way to send the hash down the processing line (well, a special
+ * faked packet could do the job).
+ */
+ if( crlf )
+ afx->buffer[afx->buffer_len++] = '\r';
afx->buffer[afx->buffer_len++] = '\n';
afx->buffer[afx->buffer_len] = 0;
}
@@ -813,7 +838,8 @@ armor_filter( void *opaque, int control,
hashes &= 1|2|4|8;
if( !hashes ) {
hashes |= 4; /* default to MD 5 */
- afx->pgp2mode = 1;
+ if( opt.pgp2_workarounds )
+ afx->pgp2mode = 1;
}
n=0;
do {
@@ -868,44 +894,45 @@ armor_filter( void *opaque, int control,
#endif
*ret_len = n;
}
- else if( control == IOBUFCTRL_FLUSH ) {
+ else if( control == IOBUFCTRL_FLUSH && !afx->cancel ) {
if( !afx->status ) { /* write the header line */
+ const char *s;
+
if( afx->what >= DIM(head_strings) )
log_bug("afx->what=%d", afx->what);
iobuf_writestr(a, "-----");
iobuf_writestr(a, head_strings[afx->what] );
- iobuf_writestr(a, "-----\n");
+ iobuf_writestr(a, "-----" LF );
if( !opt.no_version )
iobuf_writestr(a, "Version: GnuPG v" VERSION " ("
- PRINTABLE_OS_NAME ")\n");
-
- if( opt.comment_string ) {
- const char *s = opt.comment_string;
- if( *s ) {
- iobuf_writestr(a, "Comment: " );
- for( ; *s; s++ ) {
- if( *s == '\n' )
- iobuf_writestr(a, "\\n" );
- else if( *s == '\r' )
- iobuf_writestr(a, "\\r" );
- else if( *s == '\v' )
- iobuf_writestr(a, "\\v" );
- else
- iobuf_put(a, *s );
- }
- iobuf_put(a, '\n' );
+ PRINTABLE_OS_NAME ")" LF );
+
+ /* write the comment string or a default one */
+ s = opt.comment_string ? opt.comment_string
+ : _("For info see http://www.gnupg.org");
+ if( *s ) {
+ iobuf_writestr(a, "Comment: " );
+ for( ; *s; s++ ) {
+ if( *s == '\n' )
+ iobuf_writestr(a, "\\n" );
+ else if( *s == '\r' )
+ iobuf_writestr(a, "\\r" );
+ else if( *s == '\v' )
+ iobuf_writestr(a, "\\v" );
+ else
+ iobuf_put(a, *s );
}
+ iobuf_writestr(a, LF );
}
- else
- iobuf_writestr(a,
- "Comment: For info see http://www.gnupg.org\n");
+
if( afx->hdrlines )
iobuf_writestr(a, afx->hdrlines);
- iobuf_put(a, '\n');
+ iobuf_writestr(a, LF );
afx->status++;
afx->idx = 0;
afx->idx2 = 0;
afx->crc = CRCINIT;
+
}
crc = afx->crc;
idx = afx->idx;
@@ -930,7 +957,7 @@ armor_filter( void *opaque, int control,
c = bintoasc[radbuf[2]&077];
iobuf_put(a, c);
if( ++idx2 >= (64/4) ) { /* pgp doesn't like 72 here */
- iobuf_put(a, '\n');
+ iobuf_writestr(a, LF );
idx2=0;
}
}
@@ -945,8 +972,13 @@ armor_filter( void *opaque, int control,
if( !is_initialized )
initialize();
}
+ else if( control == IOBUFCTRL_CANCEL ) {
+ afx->cancel = 1;
+ }
else if( control == IOBUFCTRL_FREE ) {
- if( afx->status ) { /* pad, write cecksum, and bottom line */
+ if( afx->cancel )
+ ;
+ else if( afx->status ) { /* pad, write cecksum, and bottom line */
crc = afx->crc;
idx = afx->idx;
idx2 = afx->idx2;
@@ -969,13 +1001,13 @@ armor_filter( void *opaque, int control,
iobuf_put(a, '=');
}
if( ++idx2 >= (64/4) ) { /* pgp doesn't like 72 here */
- iobuf_put(a, '\n');
+ iobuf_writestr(a, LF );
idx2=0;
}
}
/* may need a linefeed */
if( idx2 )
- iobuf_put(a, '\n');
+ iobuf_writestr(a, LF );
/* write the CRC */
iobuf_put(a, '=');
radbuf[0] = crc >>16;
@@ -989,16 +1021,17 @@ armor_filter( void *opaque, int control,
iobuf_put(a, c);
c = bintoasc[radbuf[2]&077];
iobuf_put(a, c);
- iobuf_put(a, '\n');
+ iobuf_writestr(a, LF );
/* and the the trailer */
if( afx->what >= DIM(tail_strings) )
log_bug("afx->what=%d", afx->what);
iobuf_writestr(a, "-----");
iobuf_writestr(a, tail_strings[afx->what] );
- iobuf_writestr(a, "-----\n");
+ iobuf_writestr(a, "-----" LF );
}
else if( !afx->any_data && !afx->inp_bypass ) {
log_error(_("no valid OpenPGP data found.\n"));
+ afx->no_openpgp_data = 1;
write_status_text( STATUS_NODATA, "1" );
}
if( afx->truncated )
diff --git a/g10/build-packet.c b/g10/build-packet.c
index 4049f370f..238a2021b 100644
--- a/g10/build-packet.c
+++ b/g10/build-packet.c
@@ -1,5 +1,5 @@
/* build-packet.c - assemble packets and write them
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -67,25 +67,31 @@ int
build_packet( IOBUF out, PACKET *pkt )
{
int new_ctb=0, rc=0, ctb;
+ int pkttype;
if( DBG_PACKET )
log_debug("build_packet() type=%d\n", pkt->pkttype );
assert( pkt->pkt.generic );
- switch( pkt->pkttype ) {
- case PKT_OLD_COMMENT: pkt->pkttype = PKT_COMMENT; break;
+ switch( (pkttype = pkt->pkttype) ) {
+ case PKT_OLD_COMMENT: pkttype = pkt->pkttype = PKT_COMMENT; break;
case PKT_PLAINTEXT: new_ctb = pkt->pkt.plaintext->new_ctb; break;
case PKT_ENCRYPTED:
case PKT_ENCRYPTED_MDC: new_ctb = pkt->pkt.encrypted->new_ctb; break;
case PKT_COMPRESSED:new_ctb = pkt->pkt.compressed->new_ctb; break;
+ case PKT_USER_ID:
+ if( pkt->pkt.user_id->photo )
+ pkttype = PKT_PHOTO_ID;
+ break;
default: break;
}
- if( new_ctb || pkt->pkttype > 15 ) /* new format */
- ctb = 0xc0 | (pkt->pkttype & 0x3f);
+ if( new_ctb || pkttype > 15 ) /* new format */
+ ctb = 0xc0 | (pkttype & 0x3f);
else
- ctb = 0x80 | ((pkt->pkttype & 15)<<2);
- switch( pkt->pkttype ) {
+ ctb = 0x80 | ((pkttype & 15)<<2);
+ switch( pkttype ) {
+ case PKT_PHOTO_ID:
case PKT_USER_ID:
rc = do_user_id( out, ctb, pkt->pkt.user_id );
break;
@@ -149,6 +155,7 @@ calc_packet_length( PACKET *pkt )
n = calc_plaintext( pkt->pkt.plaintext );
new_ctb = pkt->pkt.plaintext->new_ctb;
break;
+ case PKT_PHOTO_ID:
case PKT_USER_ID:
case PKT_COMMENT:
case PKT_PUBLIC_KEY:
@@ -196,9 +203,16 @@ do_comment( IOBUF out, int ctb, PKT_comment *rem )
static int
do_user_id( IOBUF out, int ctb, PKT_user_id *uid )
{
- write_header(out, ctb, uid->len);
- if( iobuf_write( out, uid->name, uid->len ) )
- return G10ERR_WRITE_FILE;
+ if( uid->photo ) {
+ write_header(out, ctb, uid->photolen);
+ if( iobuf_write( out, uid->photo, uid->photolen ) )
+ return G10ERR_WRITE_FILE;
+ }
+ else {
+ write_header(out, ctb, uid->len);
+ if( iobuf_write( out, uid->name, uid->len ) )
+ return G10ERR_WRITE_FILE;
+ }
return 0;
}
@@ -357,19 +371,30 @@ do_secret_key( IOBUF out, int ctb, PKT_secret_key *sk )
else {
iobuf_put(a, 0xff );
iobuf_put(a, sk->protect.algo );
- iobuf_put(a, sk->protect.s2k.mode );
- iobuf_put(a, sk->protect.s2k.hash_algo );
+ if( sk->protect.s2k.mode >= 1000 ) {
+ iobuf_put(a, 101 );
+ iobuf_put(a, sk->protect.s2k.hash_algo );
+ iobuf_write(a, "GNU", 3 );
+ iobuf_put(a, sk->protect.s2k.mode - 1000 );
+ }
+ else {
+ iobuf_put(a, sk->protect.s2k.mode );
+ iobuf_put(a, sk->protect.s2k.hash_algo );
+ }
if( sk->protect.s2k.mode == 1
|| sk->protect.s2k.mode == 3 )
iobuf_write(a, sk->protect.s2k.salt, 8 );
if( sk->protect.s2k.mode == 3 )
iobuf_put(a, sk->protect.s2k.count );
- iobuf_write(a, sk->protect.iv, sk->protect.ivlen );
+ if( sk->protect.s2k.mode != 1001 )
+ iobuf_write(a, sk->protect.iv, sk->protect.ivlen );
}
}
else
iobuf_put(a, 0 );
- if( sk->is_protected && sk->version >= 4 ) {
+ if( sk->protect.s2k.mode == 1001 )
+ ;
+ else if( sk->is_protected && sk->version >= 4 ) {
byte *p;
assert( mpi_is_opaque( sk->skey[npkey] ) );
p = mpi_get_opaque( sk->skey[npkey], &i );
@@ -621,7 +646,6 @@ void
build_sig_subpkt( PKT_signature *sig, sigsubpkttype_t type,
const byte *buffer, size_t buflen )
{
-
byte *data;
size_t hlen, dlen, nlen;
int found=0;
@@ -657,6 +681,7 @@ build_sig_subpkt( PKT_signature *sig, sigsubpkttype_t type,
case SIGSUBPKT_KEY_EXPIRE:
case SIGSUBPKT_NOTATION:
case SIGSUBPKT_POLICY:
+ case SIGSUBPKT_REVOC_REASON:
hashed = 1; break;
default: hashed = 0; break;
}
diff --git a/g10/cipher.c b/g10/cipher.c
index 0de2a9d90..b270a4aee 100644
--- a/g10/cipher.c
+++ b/g10/cipher.c
@@ -1,5 +1,5 @@
/* cipher.c - En-/De-ciphering filter
- * Copyright (C) 1998,1999 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -33,6 +33,7 @@
#include "packet.h"
#include "options.h"
#include "main.h"
+#include "status.h"
#define MIN_PARTIAL_SIZE 512
@@ -54,7 +55,7 @@ write_header( cipher_filter_context_t *cfx, IOBUF a )
if( use_mdc ) {
ed.mdc_method = DIGEST_ALGO_SHA1;
cfx->mdc_hash = md_open( DIGEST_ALGO_SHA1, 0 );
- md_start_debug( cfx->mdc_hash, "mdccreat" );
+ /*md_start_debug( cfx->mdc_hash, "mdccreat" );*/
}
init_packet( &pkt );
pkt.pkttype = use_mdc? PKT_ENCRYPTED_MDC : PKT_ENCRYPTED;
@@ -101,6 +102,7 @@ cipher_filter( void *opaque, int control,
else if( control == IOBUFCTRL_FLUSH ) { /* encrypt */
assert(a);
if( !cfx->header ) {
+ write_status( STATUS_BEGIN_ENCRYPTION );
write_header( cfx, a );
}
if( cfx->mdc_hash )
@@ -121,6 +123,7 @@ cipher_filter( void *opaque, int control,
md_close( cfx->mdc_hash ); cfx->mdc_hash = NULL;
}
cipher_close(cfx->cipher_hd);
+ write_status( STATUS_END_ENCRYPTION );
}
else if( control == IOBUFCTRL_DESC ) {
*(char**)buf = "cipher_filter";
diff --git a/g10/compress.c b/g10/compress.c
index 4862346ad..0cbb98ee1 100644
--- a/g10/compress.c
+++ b/g10/compress.c
@@ -1,5 +1,5 @@
/* compress.c - compress filter
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
diff --git a/g10/dearmor.c b/g10/dearmor.c
index e87dffcd9..bf31ed72a 100644
--- a/g10/dearmor.c
+++ b/g10/dearmor.c
@@ -1,5 +1,5 @@
/* dearmor.c - Armor utility
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
diff --git a/g10/delkey.c b/g10/delkey.c
index 8d4f1a5b0..31d7caaa4 100644
--- a/g10/delkey.c
+++ b/g10/delkey.c
@@ -1,5 +1,5 @@
/* delkey.c - delete keys
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -62,6 +62,7 @@ delete_key( const char *username, int secret )
: find_keyblock_byname( &kbpos, username );
if( rc ) {
log_error(_("%s: user not found\n"), username );
+ write_status_text( STATUS_DELETE_PROBLEM, "1" );
goto leave;
}
@@ -93,10 +94,12 @@ delete_key( const char *username, int secret )
"there is a secret key for this public key!\n"));
log_info(_(
"use option \"--delete-secret-key\" to delete it first.\n"));
+ write_status_text( STATUS_DELETE_PROBLEM, "2" );
rc = -1;
}
- else if( rc != G10ERR_NO_SECKEY )
+ else if( rc != G10ERR_NO_SECKEY ) {
log_error("%s: get secret key: %s\n", username, g10_errstr(rc) );
+ }
else
rc = 0;
}
@@ -124,7 +127,7 @@ delete_key( const char *username, int secret )
pubkey_letter( pk->pubkey_algo ),
keyid[1], datestr_from_pk(pk) );
p = get_user_id( keyid, &n );
- tty_print_string( p, n );
+ tty_print_utf8_string( p, n );
m_free(p);
tty_printf("\n\n");
diff --git a/g10/encode.c b/g10/encode.c
index bc03401ac..d1c02bbed 100644
--- a/g10/encode.c
+++ b/g10/encode.c
@@ -1,5 +1,5 @@
/* encode.c - encode data
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -116,7 +116,7 @@ encode_simple( const char *filename, int mode )
}
if( (rc = open_outfile( filename, opt.armor? 1:0, &out )) ) {
- iobuf_close(inp);
+ iobuf_cancel(inp);
m_free(cfx.dek);
m_free(s2k);
return rc;
@@ -177,6 +177,7 @@ encode_simple( const char *filename, int mode )
pt->timestamp = make_timestamp();
pt->mode = opt.textmode? 't' : 'b';
pt->len = filesize;
+ pt->new_ctb = !pt->len && !opt.rfc1991;
pt->buf = inp;
pkt.pkttype = PKT_PLAINTEXT;
pkt.pkt.plaintext = pt;
@@ -478,7 +479,7 @@ write_pubkey_enc_from_list( PK_LIST pk_list, DEK *dek, IOBUF out )
log_error("pubkey_encrypt failed: %s\n", g10_errstr(rc) );
else {
if( opt.verbose ) {
- char *ustr = get_user_id_string( enc->keyid );
+ char *ustr = get_user_id_string_native( enc->keyid );
log_info(_("%s/%s encrypted for: %s\n"),
pubkey_algo_to_string(enc->pubkey_algo),
cipher_algo_to_string(dek->algo), ustr );
diff --git a/g10/encr-data.c b/g10/encr-data.c
index 0593efe97..d2aea0ff1 100644
--- a/g10/encr-data.c
+++ b/g10/encr-data.c
@@ -1,5 +1,5 @@
/* encr-data.c - process an encrypted data packet
- * Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -165,7 +165,7 @@ mdc_decode_filter( void *opaque, int control, IOBUF a,
}
if( n == 40 ) {
/* we have enough stuff - flush the deferred stuff */
- /* (we have asserted that the buffer is large enough */
+ /* (we have asserted that the buffer is large enough) */
if( !dfx->defer_filled ) /* the first time */
memcpy(buf, buf+20, 20 );
else
diff --git a/g10/export.c b/g10/export.c
index 911a71599..4c70c7ce5 100644
--- a/g10/export.c
+++ b/g10/export.c
@@ -1,5 +1,5 @@
/* export.c
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -71,6 +71,12 @@ export_seckeys( STRLIST users )
return do_export( users, 1, 0 );
}
+int
+export_secsubkeys( STRLIST users )
+{
+ return do_export( users, 2, 0 );
+}
+
static int
do_export( STRLIST users, int secret, int onlyrfc )
{
@@ -168,6 +174,16 @@ do_export_stream( IOBUF out, STRLIST users, int secret, int onlyrfc, int *any )
}
}
+ /* we can't apply GNU mode 1001 on an unprotected key */
+ if( secret == 2
+ && (node = find_kbnode( keyblock, PKT_SECRET_KEY ))
+ && !node->pkt->pkt.secret_key->is_protected )
+ {
+ log_info(_("key %08lX: not protected - skipped\n"),
+ (ulong)keyid_from_sk( node->pkt->pkt.secret_key, NULL) );
+ continue;
+ }
+
/* and write it */
for( kbctx=NULL; (node = walk_kbnode( keyblock, &kbctx, 0 )); ) {
/* don't export any comment packets but those in the
@@ -183,7 +199,20 @@ do_export_stream( IOBUF out, STRLIST users, int secret, int onlyrfc, int *any )
continue; /* not exportable */
}
- if( (rc = build_packet( out, node->pkt )) ) {
+ if( secret == 2 && node->pkt->pkttype == PKT_SECRET_KEY ) {
+ /* we don't want to export the secret parts of the
+ * primary key, this is done by using GNU protection mode 1001
+ */
+ int save_mode = node->pkt->pkt.secret_key->protect.s2k.mode;
+ node->pkt->pkt.secret_key->protect.s2k.mode = 1001;
+ rc = build_packet( out, node->pkt );
+ node->pkt->pkt.secret_key->protect.s2k.mode = save_mode;
+ }
+ else {
+ rc = build_packet( out, node->pkt );
+ }
+
+ if( rc ) {
log_error("build_packet(%d) failed: %s\n",
node->pkt->pkttype, g10_errstr(rc) );
rc = G10ERR_WRITE_FILE;
diff --git a/g10/filter.h b/g10/filter.h
index 86a8e45b8..1adf0edaa 100644
--- a/g10/filter.h
+++ b/g10/filter.h
@@ -1,5 +1,5 @@
/* filter.h
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -35,6 +35,9 @@ typedef struct {
int only_keyblocks; /* skip all headers but ".... key block" */
const char *hdrlines; /* write these headerlines */
+ /* these fileds must be initialized to zero */
+ int no_openpgp_data; /* output flag: "No valid OpenPGP data found" */
+
/* the following fields must be initialized to zero */
int inp_checked; /* set if the input has been checked */
int inp_bypass; /* set if the input is not armored */
@@ -56,6 +59,7 @@ typedef struct {
u32 crc;
int status; /* an internal state flag */
+ int cancel;
int any_data; /* any valid armored data seen */
int pending_lf; /* used together with faked */
} armor_filter_context_t;
diff --git a/g10/free-packet.c b/g10/free-packet.c
index 0a61e222c..3082be686 100644
--- a/g10/free-packet.c
+++ b/g10/free-packet.c
@@ -1,5 +1,5 @@
/* free-packet.c - cleanup stuff for packets
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -220,6 +220,8 @@ free_comment( PKT_comment *rem )
void
free_user_id( PKT_user_id *uid )
{
+ if( uid->photo )
+ m_free( uid->photo );
m_free(uid);
}
diff --git a/g10/g10.c b/g10/g10.c
index 1a72fa652..e545b9e8c 100644
--- a/g10/g10.c
+++ b/g10/g10.c
@@ -1,5 +1,5 @@
/* g10.c - The GnuPG utility (main for gpg)
- * Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -79,6 +79,7 @@ enum cmd_and_opt_values { aNull = 0,
aImport,
aFastImport,
aVerify,
+ aVerifyFiles,
aListKeys,
aListSigs,
aListSecretKeys,
@@ -87,6 +88,7 @@ enum cmd_and_opt_values { aNull = 0,
aExport,
aExportAll,
aExportSecret,
+ aExportSecretSub,
aCheckKeys,
aGenRevoke,
aPrimegen,
@@ -131,6 +133,7 @@ enum cmd_and_opt_values { aNull = 0,
oDigestAlgo,
oCompressAlgo,
oPasswdFD,
+ oCommandFD,
oQuickRandom,
oNoVerbose,
oTrustDBName,
@@ -166,6 +169,7 @@ enum cmd_and_opt_values { aNull = 0,
oEscapeFrom,
oLockOnce,
oLockMultiple,
+ oLockNever,
oKeyServer,
oEncryptTo,
oNoEncryptTo,
@@ -177,7 +181,12 @@ enum cmd_and_opt_values { aNull = 0,
oAllowNonSelfsignedUID,
oNoLiteral,
oSetFilesize,
- oEntropyDLLName,
+ oHonorHttpProxy,
+ oFastListMode,
+ oListOnly,
+ oIgnoreTimeConflict,
+ oNoRandomSeedFile,
+ oEmu3DESS2KBug, /* will be removed in 1.1 */
aTest };
@@ -193,6 +202,7 @@ static ARGPARSE_OPTS opts[] = {
{ aStore, "store", 256, N_("store only")},
{ aDecrypt, "decrypt", 256, N_("decrypt data (default)")},
{ aVerify, "verify" , 256, N_("verify a signature")},
+ { aVerifyFiles, "verify-files" , 256, "@" },
{ aListKeys, "list-keys", 256, N_("list keys")},
{ aListKeys, "list-public-keys", 256, "@" },
{ aListSigs, "list-sigs", 256, N_("list keys and signatures")},
@@ -201,6 +211,8 @@ static ARGPARSE_OPTS opts[] = {
{ aListSecretKeys, "list-secret-keys", 256, N_("list secret keys")},
{ aKeygen, "gen-key", 256, N_("generate a new key pair")},
{ aDeleteKey, "delete-key",256, N_("remove key from the public keyring")},
+ { aDeleteSecretKey, "delete-secret-key",256,
+ N_("remove key from the secret keyring")},
{ aSignKey, "sign-key" ,256, N_("sign a key")},
{ aLSignKey, "lsign-key" ,256, N_("sign a key locally")},
{ aEditKey, "edit-key" ,256, N_("sign or edit a key")},
@@ -210,6 +222,7 @@ static ARGPARSE_OPTS opts[] = {
{ aRecvKeys, "recv-keys" , 256, N_("import keys from a key server") },
{ aExportAll, "export-all" , 256, "@" },
{ aExportSecret, "export-secret-keys" , 256, "@" },
+ { aExportSecretSub, "export-secret-subkeys" , 256, "@" },
{ aImport, "import", 256 , N_("import/merge keys")},
{ aFastImport, "fast-import", 256 , "@"},
{ aListPackets, "list-packets",256,N_("list only the sequence of packets")},
@@ -223,7 +236,9 @@ static ARGPARSE_OPTS opts[] = {
"check-trustdb",0 , N_("|[NAMES]|check the trust database")},
{ aFixTrustDB, "fix-trustdb",0 , N_("fix a corrupted trust database")},
{ aDeArmor, "dearmor", 256, N_("De-Armor a file or stdin") },
+ { aDeArmor, "dearmour", 256, "@" },
{ aEnArmor, "enarmor", 256, N_("En-Armor a file or stdin") },
+ { aEnArmor, "enarmour", 256, "@" },
{ aPrintMD, "print-md" , 256, N_("|algo [files]|print message digests")},
{ aPrimegen, "gen-prime" , 256, "@" },
{ aGenRandom, "gen-random" , 256, "@" },
@@ -231,6 +246,7 @@ static ARGPARSE_OPTS opts[] = {
{ 301, NULL, 0, N_("@\nOptions:\n ") },
{ oArmor, "armor", 0, N_("create ascii armored output")},
+ { oArmor, "armour", 0, "@" },
{ oRecipient, "recipient", 2, N_("|NAME|encrypt for NAME")},
{ oRecipient, "remote-user", 2, "@"}, /* old option name */
{ oDefRecipient, "default-recipient" ,2,
@@ -262,12 +278,12 @@ static ARGPARSE_OPTS opts[] = {
{ oCharset, "charset" , 2, N_("|NAME|set terminal charset to NAME") },
{ oOptions, "options" , 2, N_("read options from file")},
- { oDebug, "debug" ,4|16, N_("set debugging flags")},
- { oDebugAll, "debug-all" ,0, N_("enable full debugging")},
+ { oDebug, "debug" ,4|16, "@"},
+ { oDebugAll, "debug-all" ,0, "@"},
{ oStatusFD, "status-fd" ,1, N_("|FD|write status info to this FD") },
- { oNoComment, "no-comment", 0, N_("do not write comment packets")},
- { oCompletesNeeded, "completes-needed", 1, N_("(default is 1)")},
- { oMarginalsNeeded, "marginals-needed", 1, N_("(default is 3)")},
+ { oNoComment, "no-comment", 0, "@"},
+ { oCompletesNeeded, "completes-needed", 1, "@"},
+ { oMarginalsNeeded, "marginals-needed", 1, "@"},
{ oMaxCertDepth, "max-cert-depth", 1, "@" },
{ oLoadExtension, "load-extension" ,2, N_("|FILE|load extension module FILE")},
{ oRFC1991, "rfc1991", 0, N_("emulate the mode described in RFC1991")},
@@ -283,7 +299,11 @@ static ARGPARSE_OPTS opts[] = {
{ oThrowKeyid, "throw-keyid", 0, N_("throw keyid field of encrypted packets")},
{ oNotation, "notation-data", 2, N_("|NAME=VALUE|use this notation data")},
- { 302, NULL, 0, N_("@\nExamples:\n\n"
+ { 302, NULL, 0, N_(
+ "@\n(See the man page for a complete listing of all commands and options)\n"
+ )},
+
+ { 303, NULL, 0, N_("@\nExamples:\n\n"
" -se -r Bob [file] sign and encrypt for user Bob\n"
" --clearsign [file] make a clear text signature\n"
" --detach-sign [file] make a detached signature\n"
@@ -297,12 +317,13 @@ static ARGPARSE_OPTS opts[] = {
{ aListTrustPath, "list-trust-path",0, "@"},
{ oKOption, NULL, 0, "@"},
{ oPasswdFD, "passphrase-fd",1, "@" },
- { aDeleteSecretKey, "delete-secret-key",0, "@" },
+ { oCommandFD, "command-fd",1, "@" },
{ oQuickRandom, "quick-random", 0, "@"},
{ oNoVerbose, "no-verbose", 0, "@"},
{ oTrustDBName, "trustdb-name", 2, "@" },
{ oNoSecmemWarn, "no-secmem-warning", 0, "@" }, /* used only by regression tests */
{ oNoArmor, "no-armor", 0, "@"},
+ { oNoArmor, "no-armour", 0, "@"},
{ oNoDefKeyring, "no-default-keyring", 0, "@" },
{ oNoGreeting, "no-greeting", 0, "@" },
{ oNoOptions, "no-options", 0, "@" }, /* shortcut for --options /dev/null */
@@ -329,6 +350,7 @@ static ARGPARSE_OPTS opts[] = {
{ oEscapeFrom, "escape-from-lines", 0, "@" },
{ oLockOnce, "lock-once", 0, "@" },
{ oLockMultiple, "lock-multiple", 0, "@" },
+ { oLockNever, "lock-never", 0, "@" },
{ oLoggerFD, "logger-fd",1, "@" },
{ oUseEmbeddedFilename, "use-embedded-filename", 0, "@" },
{ oUtf8Strings, "utf8-strings", 0, "@" },
@@ -339,7 +361,12 @@ static ARGPARSE_OPTS opts[] = {
{ oAllowNonSelfsignedUID, "allow-non-selfsigned-uid", 0, "@" },
{ oNoLiteral, "no-literal", 0, "@" },
{ oSetFilesize, "set-filesize", 20, "@" },
- { oEntropyDLLName, "entropy-dll-name", 2, "@" },
+ { oHonorHttpProxy,"honor-http-proxy", 0, "@" },
+ { oFastListMode,"fast-list-mode", 0, "@" },
+ { oListOnly, "list-only", 0, "@"},
+ { oIgnoreTimeConflict, "ignore-time-conflict", 0, "@" },
+ { oNoRandomSeedFile, "no-random-seed-file", 0, "@" },
+ { oEmu3DESS2KBug, "emulate-3des-s2k-bug", 0, "@"},
{0} };
@@ -381,26 +408,29 @@ strusage( int level )
"default operation depends on the input data\n");
break;
- case 31: p = _("\nSupported algorithms:\n"); break;
- case 32:
+ case 31: p = "\nHome: "; break;
+ case 32: p = opt.homedir; break;
+ case 33: p = _("\nSupported algorithms:\n"); break;
+ case 34:
if( !ciphers )
ciphers = build_list("Cipher: ", cipher_algo_to_string,
check_cipher_algo );
p = ciphers;
break;
- case 33:
+ case 35:
if( !pubkeys )
pubkeys = build_list("Pubkey: ", pubkey_algo_to_string,
check_pubkey_algo );
p = pubkeys;
break;
- case 34:
+ case 36:
if( !digests )
digests = build_list("Hash: ", digest_algo_to_string,
check_digest_algo );
p = digests;
break;
+
default: p = default_strusage(level);
}
return p;
@@ -471,9 +501,9 @@ make_username( const char *string )
{
char *p;
if( utf8_strings )
- p = native_to_utf8( string );
- else
p = m_strdup(string);
+ else
+ p = native_to_utf8( string );
return p;
}
@@ -543,6 +573,7 @@ main( int argc, char **argv )
int default_keyring = 1;
int greeting = 0;
int nogreeting = 0;
+ int use_random_seed = 1;
enum cmd_and_opt_values cmd = 0;
const char *trustdb_name = NULL;
char *def_cipher_string = NULL;
@@ -567,6 +598,7 @@ main( int argc, char **argv )
init_signals();
create_dotlock(NULL); /* register locking cleanup */
i18n_init();
+ opt.command_fd = -1; /* no command fd */
opt.compress = -1; /* defaults to standard compress level */
/* note: if you change these lines, look at oOpenPGP */
opt.def_cipher_algo = 0;
@@ -578,7 +610,12 @@ main( int argc, char **argv )
opt.completes_needed = 1;
opt.marginals_needed = 3;
opt.max_cert_depth = 5;
+ opt.pgp2_workarounds = 1;
+ #ifdef __MINGW32__
+ opt.homedir = read_w32_registry_string( NULL, "Software\\GNU\\GnuPG", "HomeDir" );
+ #else
opt.homedir = getenv("GNUPGHOME");
+ #endif
if( !opt.homedir || !*opt.homedir ) {
#ifdef HAVE_DRIVE_LETTERS
opt.homedir = "c:/gnupg";
@@ -676,13 +713,16 @@ main( int argc, char **argv )
case aListKeys: set_cmd( &cmd, aListKeys); break;
case aListSigs: set_cmd( &cmd, aListSigs); break;
case aExportSecret: set_cmd( &cmd, aExportSecret); break;
+ case aExportSecretSub: set_cmd( &cmd, aExportSecretSub); break;
case aDeleteSecretKey: set_cmd( &cmd, aDeleteSecretKey);
greeting=1; break;
case aDeleteKey: set_cmd( &cmd, aDeleteKey); greeting=1; break;
case aDetachedSign: detached_sig = 1; set_cmd( &cmd, aSign ); break;
case aSym: set_cmd( &cmd, aSym); break;
+
case aDecrypt: set_cmd( &cmd, aDecrypt); break;
+
case aEncr: set_cmd( &cmd, aEncr); break;
case aSign: set_cmd( &cmd, aSign ); break;
case aKeygen: set_cmd( &cmd, aKeygen); greeting=1; break;
@@ -693,6 +733,7 @@ main( int argc, char **argv )
case aClearsign: set_cmd( &cmd, aClearsign); break;
case aGenRevoke: set_cmd( &cmd, aGenRevoke); break;
case aVerify: set_cmd( &cmd, aVerify); break;
+ case aVerifyFiles: set_cmd( &cmd, aVerifyFiles); break;
case aPrimegen: set_cmd( &cmd, aPrimegen); break;
case aGenRandom: set_cmd( &cmd, aGenRandom); break;
case aPrintMD: set_cmd( &cmd, aPrintMD); break;
@@ -785,6 +826,7 @@ main( int argc, char **argv )
break;
case oOpenPGP:
opt.rfc1991 = 0;
+ opt.pgp2_workarounds = 0;
opt.escape_from = 0;
opt.force_v3_sigs = 0;
opt.compress_keys = 0; /* not mandated but we do it */
@@ -798,6 +840,7 @@ main( int argc, char **argv )
opt.s2k_cipher_algo = CIPHER_ALGO_BLOWFISH;
break;
case oEmuChecksumBug: opt.emulate_bugs |= EMUBUG_GPGCHKSUM; break;
+ case oEmu3DESS2KBug: opt.emulate_bugs |= EMUBUG_3DESS2K; break;
case oCompressSigs: opt.compress_sigs = 1; break;
case oRunAsShmCP:
#ifndef USE_SHM_COPROCESSING
@@ -833,6 +876,7 @@ main( int argc, char **argv )
break;
case oCompress: opt.compress = pargs.r.ret_int; break;
case oPasswdFD: pwfd = pargs.r.ret_int; break;
+ case oCommandFD: opt.command_fd = pargs.r.ret_int; break;
case oCipherAlgo: def_cipher_string = m_strdup(pargs.r.ret_str); break;
case oDigestAlgo: def_digest_string = m_strdup(pargs.r.ret_str); break;
case oNoSecmemWarn: secmem_set_flags( secmem_get_flags() | 1 ); break;
@@ -844,6 +888,7 @@ main( int argc, char **argv )
case oNotDashEscaped: opt.not_dash_escaped = 1; break;
case oEscapeFrom: opt.escape_from = 1; break;
case oLockOnce: opt.lock_once = 1; break;
+ case oLockNever: disable_dotlock(); break;
case oLockMultiple: opt.lock_once = 0; break;
case oKeyServer: opt.keyserver_name = pargs.r.ret_str; break;
case oNotation: add_notation_data( pargs.r.ret_str ); break;
@@ -855,22 +900,14 @@ main( int argc, char **argv )
case oDisablePubkeyAlgo:
disable_pubkey_algo( string_to_pubkey_algo(pargs.r.ret_str) );
break;
- case oAllowNonSelfsignedUID:
- opt.allow_non_selfsigned_uid = 1;
- break;
- case oNoLiteral:
- opt.no_literal = 1;
- break;
- case oSetFilesize:
- opt.set_filesize = pargs.r.ret_ulong;
- break;
-
- case oEntropyDLLName:
- #ifdef USE_STATIC_RNDW32
- log_info("set dllname to `%s'\n", pargs.r.ret_str );
- rndw32_set_dll_name( pargs.r.ret_str );
- #endif
- break;
+ case oAllowNonSelfsignedUID: opt.allow_non_selfsigned_uid = 1; break;
+ case oNoLiteral: opt.no_literal = 1; break;
+ case oSetFilesize: opt.set_filesize = pargs.r.ret_ulong; break;
+ case oHonorHttpProxy: opt.honor_http_proxy = 1; break;
+ case oFastListMode: opt.fast_list_mode = 1; break;
+ case oListOnly: opt.list_only=1; break;
+ case oIgnoreTimeConflict: opt.ignore_time_conflict = 1; break;
+ case oNoRandomSeedFile: use_random_seed = 0; break;
default : pargs.err = configfp? 1:2; break;
}
@@ -893,8 +930,11 @@ main( int argc, char **argv )
fprintf(stderr, "%s\n", strusage(15) );
}
#ifdef IS_DEVELOPMENT_VERSION
- if( !opt.batch )
- log_info("NOTE: this is a development version!\n");
+ if( !opt.batch ) {
+ log_info("NOTE: THIS IS A DEVELOPMENT VERSION!\n");
+ log_info("It is only intended for test purposes and should NOT be\n");
+ log_info("used in a production environment or with production keys!\n");
+ }
#endif
if( opt.force_mdc ) {
log_info("--force-mdc ignored because"
@@ -971,8 +1011,16 @@ main( int argc, char **argv )
if( log_get_errorcount(0) )
g10_exit(2);
- if( !cmd && opt.fingerprint && !with_fpr )
+ /* set the random seed file */
+ if( use_random_seed ) {
+ char *p = make_filename(opt.homedir, "random_seed", NULL );
+ set_random_seed_file(p);
+ m_free(p);
+ }
+
+ if( !cmd && opt.fingerprint && !with_fpr ) {
set_cmd( &cmd, aListKeys);
+ }
if( cmd == aKMode || cmd == aKModeC ) { /* kludge to be compatible to pgp */
if( cmd == aKModeC ) {
@@ -1112,6 +1160,11 @@ main( int argc, char **argv )
log_error("verify signatures failed: %s\n", g10_errstr(rc) );
break;
+ case aVerifyFiles:
+ if( (rc = verify_files( argc, argv ) ))
+ log_error("verify files failed: %s\n", g10_errstr(rc) );
+ break;
+
case aDecrypt:
if( argc > 1 )
wrong_args(_("--decrypt [filename]"));
@@ -1170,15 +1223,28 @@ main( int argc, char **argv )
case aListSigs:
opt.list_sigs = 1;
case aListKeys:
- public_key_list( argc, argv );
+ sl = NULL;
+ for( ; argc; argc--, argv++ )
+ add_to_strlist2( &sl, *argv, utf8_strings );
+ public_key_list( sl );
+ free_strlist(sl);
break;
case aListSecretKeys:
- secret_key_list( argc, argv );
+ sl = NULL;
+ for( ; argc; argc--, argv++ )
+ add_to_strlist2( &sl, *argv, utf8_strings );
+ secret_key_list( sl );
+ free_strlist(sl);
break;
case aKMode: /* list keyring -- NOTE: This will be removed soon */
- if( argc < 2 ) /* -kv [userid] */
- public_key_list( (argc && **argv)? 1:0, argv );
+ if( argc < 2 ) { /* -kv [userid] */
+ sl = NULL;
+ if (argc && **argv)
+ add_to_strlist2( &sl, *argv, utf8_strings );
+ public_key_list( sl );
+ free_strlist(sl);
+ }
else if( argc == 2 ) { /* -kv userid keyring */
if( access( argv[1], R_OK ) ) {
log_error(_("can't open %s: %s\n"),
@@ -1188,32 +1254,33 @@ main( int argc, char **argv )
/* add keyring (default keyrings are not registered in this
* special case */
add_keyblock_resource( argv[1], 0, 0 );
- public_key_list( **argv?1:0, argv );
+ sl = NULL;
+ if (**argv)
+ add_to_strlist2( &sl, *argv, utf8_strings );
+ public_key_list( sl );
+ free_strlist(sl);
}
}
else
wrong_args(_("-k[v][v][v][c] [user-id] [keyring]") );
break;
- case aKeygen: /* generate a key (interactive) */
- if( argc )
- wrong_args("--gen-key");
- generate_keypair();
+ case aKeygen: /* generate a key */
+ if( opt.batch ) {
+ if( argc > 1 )
+ wrong_args("--gen-key [parameterfile]");
+ generate_keypair( argc? *argv : NULL );
+ }
+ else {
+ if( argc )
+ wrong_args("--gen-key");
+ generate_keypair(NULL);
+ }
break;
case aFastImport:
case aImport:
- if( !argc ) {
- rc = import_keys( NULL, (cmd == aFastImport) );
- if( rc )
- log_error("import failed: %s\n", g10_errstr(rc) );
- }
- for( ; argc; argc--, argv++ ) {
- rc = import_keys( *argv, (cmd == aFastImport) );
- if( rc )
- log_error("import from `%s' failed: %s\n",
- *argv, g10_errstr(rc) );
- }
+ import_keys( argc? argv:NULL, argc, (cmd == aFastImport) );
break;
case aExport:
@@ -1240,6 +1307,14 @@ main( int argc, char **argv )
free_strlist(sl);
break;
+ case aExportSecretSub:
+ sl = NULL;
+ for( ; argc; argc--, argv++ )
+ add_to_strlist2( &sl, *argv, utf8_strings );
+ export_secsubkeys( sl );
+ free_strlist(sl);
+ break;
+
case aGenRevoke:
if( argc != 1 )
wrong_args("--gen-revoke user-id");
@@ -1379,7 +1454,7 @@ main( int argc, char **argv )
break;
case aFixTrustDB:
- log_error("this command ist not yet implemented.\"\n");
+ log_error("this command is not yet implemented.\n");
log_error("A workaround is to use \"--export-ownertrust\", remove\n");
log_error("the trustdb file and do an \"--import-ownertrust\".\n" );
break;
@@ -1449,6 +1524,7 @@ main( int argc, char **argv )
void
g10_exit( int rc )
{
+ update_random_seed_file();
if( opt.debug & DBG_MEMSTAT_VALUE ) {
m_print_stats("on exit");
random_dump_stats();
diff --git a/g10/getkey.c b/g10/getkey.c
index fb5f1bc3e..26fcda686 100644
--- a/g10/getkey.c
+++ b/g10/getkey.c
@@ -1,5 +1,5 @@
/* getkey.c - Get a key from the database
- * Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -45,7 +45,11 @@
* that they are all valid.
* Note: We must use numerical values here in case that this program
* will be converted to those little blue HAL9000s with their strange
- * EBCDIC character set (user ids are UTF-8). */
+ * EBCDIC character set (user ids are UTF-8).
+ * wk 2000-04-13: Hmmm, does this really make sense, given the fact that
+ * we can run gpg now on a S/390 running GNU/Linux, where the code
+ * translation is done by the device drivers?
+ */
static const byte word_match_chars[256] = {
/* 00 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 08 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -154,6 +158,7 @@ static int uid_cache_entries; /* number of entries in uid cache */
static char* prepare_word_match( const byte *name );
static int lookup_pk( GETKEY_CTX ctx, PKT_public_key *pk, KBNODE *ret_kb );
static int lookup_sk( GETKEY_CTX ctx, PKT_secret_key *sk, KBNODE *ret_kb );
+static u32 subkeys_expiretime( KBNODE node, u32 *mainkid );
#if 0
@@ -696,6 +701,8 @@ key_byname( GETKEY_CTX *retctx, STRLIST namelist,
STRLIST r;
GETKEY_CTX ctx;
+ if( retctx ) /* reset the returned context in case of error */
+ *retctx = NULL;
assert( !pk ^ !sk );
/* build the search context */
@@ -1150,7 +1157,7 @@ merge_one_pk_and_selfsig( KBNODE keyblock, KBNODE knode,
k = find_kbnode( keyblock, PKT_PUBLIC_KEY );
if( !k )
BUG(); /* keyblock without primary key!!! */
- keyid_from_pk( knode->pkt->pkt.public_key, kid );
+ keyid_from_pk( k->pkt->pkt.public_key, kid );
}
else
keyid_from_pk( pk, kid );
@@ -1208,6 +1215,10 @@ merge_keys_and_selfsig( KBNODE keyblock )
pk = NULL; /* not needed for old keys */
else if( k->pkt->pkttype == PKT_PUBLIC_KEY )
keyid_from_pk( pk, kid );
+ else if( !pk->expiredate ) { /* and subkey */
+ /* insert the expiration date here */
+ pk->expiredate = subkeys_expiretime( k, kid );
+ }
sigdate = 0;
}
else if( k->pkt->pkttype == PKT_SECRET_KEY
@@ -1222,8 +1233,11 @@ merge_keys_and_selfsig( KBNODE keyblock )
else if( (pk || sk ) && k->pkt->pkttype == PKT_SIGNATURE
&& (sig=k->pkt->pkt.signature)->sig_class >= 0x10
&& sig->sig_class <= 0x30 && sig->version > 3
+ && !(sig->sig_class == 0x18 || sig->sig_class == 0x28)
&& sig->keyid[0] == kid[0] && sig->keyid[1] == kid[1] ) {
/* okay this is a self-signature which can be used.
+ * This is not used for subkey binding signature, becuase this
+ * is done above.
* FIXME: We should only use this if the signature is valid
* but this is time consuming - we must provide another
* way to handle this
@@ -1279,9 +1293,14 @@ find_by_name( KBNODE keyblock, PKT_public_key *pk, const char *name,
u32 aki[2];
keyid_from_pk( kk->pkt->pkt.public_key, aki );
cache_user_id( k->pkt->pkt.user_id, aki );
- rmd160_hash_buffer( namehash,
- k->pkt->pkt.user_id->name,
- k->pkt->pkt.user_id->len );
+ if( k->pkt->pkt.user_id->photo )
+ rmd160_hash_buffer( namehash,
+ k->pkt->pkt.user_id->photo,
+ k->pkt->pkt.user_id->photolen );
+ else
+ rmd160_hash_buffer( namehash,
+ k->pkt->pkt.user_id->name,
+ k->pkt->pkt.user_id->len );
*use_namehash = 1;
return kk;
}
@@ -1516,6 +1535,56 @@ find_by_fpr_sk( KBNODE keyblock, PKT_secret_key *sk,
}
+/****************
+ * Return the expiretime of a subkey.
+ */
+static u32
+subkeys_expiretime( KBNODE node, u32 *mainkid )
+{
+ KBNODE k;
+ PKT_signature *sig;
+ u32 expires = 0, sigdate = 0;
+
+ assert( node->pkt->pkttype == PKT_PUBLIC_SUBKEY );
+ for(k=node->next; k; k = k->next ) {
+ if( k->pkt->pkttype == PKT_SIGNATURE
+ && (sig=k->pkt->pkt.signature)->sig_class == 0x18
+ && sig->keyid[0] == mainkid[0]
+ && sig->keyid[1] == mainkid[1]
+ && sig->version > 3
+ && sig->timestamp > sigdate ) {
+ /* okay this is a key-binding which can be used.
+ * We use the latest self-signature.
+ * FIXME: We should only use this if the binding signature is valid
+ * but this is time consuming - we must provide another
+ * way to handle this
+ */
+ const byte *p;
+ u32 ed;
+
+ p = parse_sig_subpkt( sig->hashed_data, SIGSUBPKT_KEY_EXPIRE, NULL );
+ ed = p? node->pkt->pkt.public_key->timestamp + buffer_to_u32(p):0;
+ sigdate = sig->timestamp;
+ expires = ed;
+ }
+ else if( k->pkt->pkttype == PKT_PUBLIC_SUBKEY )
+ break; /* stop at the next subkey */
+ }
+
+ return expires;
+}
+
+
+/****************
+ * Check whether the subkey has expired. Node must point to the subkey
+ */
+static int
+has_expired( KBNODE node, u32 *mainkid, u32 cur_time )
+{
+ u32 expires = subkeys_expiretime( node, mainkid );
+ return expires && expires <= cur_time;
+}
+
static void
finish_lookup( KBNODE keyblock, PKT_public_key *pk, KBNODE k, byte *namehash,
int use_namehash, int primary )
@@ -1534,6 +1603,10 @@ finish_lookup( KBNODE keyblock, PKT_public_key *pk, KBNODE k, byte *namehash,
pk->pubkey_usage ) == G10ERR_WR_PUBKEY_ALGO ) {
/* if the usage is not correct, try to use a subkey */
KBNODE save_k = k;
+ u32 mainkid[2];
+ u32 cur_time = make_timestamp();
+
+ keyid_from_pk( keyblock->pkt->pkt.public_key, mainkid );
k = NULL;
/* kludge for pgp 5: which doesn't accept type 20:
@@ -1545,7 +1618,8 @@ finish_lookup( KBNODE keyblock, PKT_public_key *pk, KBNODE k, byte *namehash,
== PUBKEY_ALGO_ELGAMAL_E
&& !check_pubkey_algo2(
k->pkt->pkt.public_key->pubkey_algo,
- pk->pubkey_usage ) )
+ pk->pubkey_usage )
+ && !has_expired(k, mainkid, cur_time) )
break;
}
}
@@ -1555,7 +1629,10 @@ finish_lookup( KBNODE keyblock, PKT_public_key *pk, KBNODE k, byte *namehash,
if( k->pkt->pkttype == PKT_PUBLIC_SUBKEY
&& !check_pubkey_algo2(
k->pkt->pkt.public_key->pubkey_algo,
- pk->pubkey_usage ) )
+ pk->pubkey_usage )
+ && ( pk->pubkey_usage != PUBKEY_USAGE_ENC
+ || !has_expired( k, mainkid, cur_time ) )
+ )
break;
}
}
@@ -1887,6 +1964,18 @@ get_user_id_string( u32 *keyid )
return p;
}
+
+char*
+get_user_id_string_native( u32 *keyid )
+{
+ char *p = get_user_id_string( keyid );
+ char *p2 = utf8_to_native( p, strlen(p) );
+
+ m_free(p);
+ return p2;
+}
+
+
char*
get_long_user_id_string( u32 *keyid )
{
@@ -1914,6 +2003,7 @@ get_user_id( u32 *keyid, size_t *rn )
user_id_db_t r;
char *p;
int pass=0;
+
/* try it two times; second pass reads from key resources */
do {
for(r=user_id_db; r; r = r->next )
@@ -1924,9 +2014,8 @@ get_user_id( u32 *keyid, size_t *rn )
return p;
}
} while( ++pass < 2 && !get_pubkey( NULL, keyid ) );
- p = m_alloc( 19 );
- memcpy(p, "[User id not found]", 19 );
- *rn = 19;
+ p = m_strdup( _("[User id not found]") );
+ *rn = strlen(p);
return p;
}
diff --git a/g10/helptext.c b/g10/helptext.c
index e42902512..4a7a14fde 100644
--- a/g10/helptext.c
+++ b/g10/helptext.c
@@ -1,5 +1,5 @@
/* helptext.c - English help texts
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -224,6 +224,29 @@ static struct helptexts { const char *key; const char *help; } helptexts[] = {
"file (which is shown in brackets) will be used."
)},
+/* revoke.c (ask_revocation_reason) */
+{ "ask_revocation_reason.code", N_(
+ "You should specify a reason for the certification. Depending on the\n"
+ "context you have the ability to choose from this list:\n"
+ " \"Key has been compromised\"\n"
+ " Use this if you have a reason to believe that unauthorized persons\n"
+ " got access to your secret key.\n"
+ " \"Key is superseeded\"\n"
+ " Use this if you have replaced this key with a newer one.\n"
+ " \"Key is no longer used\"\n"
+ " Use this if you have retired this key.\n"
+ " \"User ID is no longer valid\"\n"
+ " 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"
+)},
+
+/* revoke.c (ask_revocation_reason) */
+{ "ask_revocation_reason.text", N_(
+ "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"
+)},
+
/* end of list */
{ NULL, NULL } };
diff --git a/g10/hkp.c b/g10/hkp.c
index cd21d3ec6..3b1b2cea3 100644
--- a/g10/hkp.c
+++ b/g10/hkp.c
@@ -55,19 +55,24 @@ hkp_ask_import( u32 *keyid )
struct http_context hd;
char *request;
int rc;
+ unsigned int hflags = opt.honor_http_proxy? HTTP_FLAG_TRY_PROXY : 0;
if( !opt.keyserver_name )
return -1;
- log_info("requesting key %08lX from %s ...\n", (ulong)keyid[1],
+ log_info(_("requesting key %08lX from %s ...\n"), (ulong)keyid[1],
opt.keyserver_name );
request = m_alloc( strlen( opt.keyserver_name ) + 100 );
/* hkp does not accept the long keyid - we should really write a
- * nicer one */
+ * nicer one :-)
+ * FIXME: request binary mode - need to pass no_armor mode
+ * down to the import function. Marc told that there is such a
+ * binary mode ... how?
+ */
sprintf( request, "x-hkp://%s:11371/pks/lookup?op=get&search=0x%08lX",
opt.keyserver_name, (ulong)keyid[1] );
- rc = http_open_document( &hd, request, 0 );
+ rc = http_open_document( &hd, request, hflags );
if( rc ) {
- log_info("can't get key from keyserver: %s\n",
+ log_info(_("can't get key from keyserver: %s\n"),
rc == G10ERR_NETWORK? strerror(errno)
: g10_errstr(rc) );
}
@@ -90,7 +95,7 @@ hkp_import( STRLIST users )
return -1;
#else
if( !opt.keyserver_name ) {
- log_error("no keyserver known (use option --keyserver)\n");
+ log_error(_("no keyserver known (use option --keyserver)\n"));
return -1;
}
@@ -98,10 +103,15 @@ hkp_import( STRLIST users )
u32 kid[2];
int type = classify_user_id( users->d, kid, NULL, NULL, NULL );
if( type != 10 && type != 11 ) {
- log_info("%s: not a valid key ID\n", users->d );
+ log_info(_("%s: not a valid key ID\n"), users->d );
continue;
}
- hkp_ask_import( kid );
+ /* because the function may use log_info in some situations, the
+ * errorcounter ist not increaed and the program will return
+ * with success - which is not good when this function is used.
+ */
+ if( hkp_ask_import( kid ) )
+ log_inc_errorcount();
}
return 0;
#endif
@@ -120,9 +130,10 @@ hkp_export( STRLIST users )
struct http_context hd;
char *request;
unsigned int status;
+ unsigned int hflags = opt.honor_http_proxy? HTTP_FLAG_TRY_PROXY : 0;
if( !opt.keyserver_name ) {
- log_error("no keyserver known (use option --keyserver)\n");
+ log_error(_("no keyserver known (use option --keyserver)\n"));
return -1;
}
@@ -142,9 +153,9 @@ hkp_export( STRLIST users )
request = m_alloc( strlen( opt.keyserver_name ) + 100 );
sprintf( request, "x-hkp://%s:11371/pks/add", opt.keyserver_name );
- rc = http_open( &hd, HTTP_REQ_POST, request , 0 );
+ rc = http_open( &hd, HTTP_REQ_POST, request , hflags );
if( rc ) {
- log_error("can't connect to `%s': %s\n",
+ log_error(_("can't connect to `%s': %s\n"),
opt.keyserver_name,
rc == G10ERR_NETWORK? strerror(errno)
: g10_errstr(rc) );
@@ -168,7 +179,7 @@ hkp_export( STRLIST users )
rc = http_wait_response( &hd, &status );
if( rc ) {
- log_error("error sending to `%s': %s\n",
+ log_error(_("error sending to `%s': %s\n"),
opt.keyserver_name, g10_errstr(rc) );
}
else {
@@ -180,10 +191,10 @@ hkp_export( STRLIST users )
}
#endif
if( (status/100) == 2 )
- log_info("success sending to `%s' (status=%u)\n",
+ log_info(_("success sending to `%s' (status=%u)\n"),
opt.keyserver_name, status );
else
- log_error("failed sending to `%s': status=%u\n",
+ log_error(_("failed sending to `%s': status=%u\n"),
opt.keyserver_name, status );
}
http_close( &hd );
diff --git a/g10/hkp.h b/g10/hkp.h
index 6b124fc43..c8c002e1b 100644
--- a/g10/hkp.h
+++ b/g10/hkp.h
@@ -1,5 +1,5 @@
/* hkp.h - Horrowitz Keyserver Protocol
- * Copyright (C) 1999 Free Software Foundation, Inc.
+ * Copyright (C) 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
diff --git a/g10/import.c b/g10/import.c
index 85a45582e..35007deff 100644
--- a/g10/import.c
+++ b/g10/import.c
@@ -1,5 +1,5 @@
/* import.c
- * Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -38,6 +38,7 @@
static struct {
+ ulong count;
ulong no_user_id;
ulong imported;
ulong imported_rsa;
@@ -53,6 +54,7 @@ static struct {
static int import( IOBUF inp, int fast, const char* fname );
+static void print_stats(void);
static int read_block( IOBUF a, PACKET **pending_pkt, KBNODE *ret_root );
static int import_one( const char *fname, KBNODE keyblock, int fast );
static int import_secret_one( const char *fname, KBNODE keyblock );
@@ -105,30 +107,51 @@ static int merge_keysigs( KBNODE dst, KBNODE src, int *n_sigs,
* Key revocation certificates have special handling.
*
*/
-int
-import_keys( const char *fname, int fast )
+void
+import_keys( char **fnames, int nnames, int fast )
{
- IOBUF inp = NULL;
- int rc;
+ int i;
- inp = iobuf_open(fname);
- if( !fname )
- fname = "[stdin]";
- if( !inp ) {
- log_error(_("can't open `%s': %s\n"), fname, strerror(errno) );
- return G10ERR_OPEN_FILE;
- }
+ /* fixme: don't use static variables */
+ memset( &stats, 0, sizeof( stats ) );
- rc = import( inp, fast, fname );
+ if( !fnames && !nnames )
+ nnames = 1; /* Ohh what a ugly hack to jump into the loop */
- iobuf_close(inp);
- return rc;
+ for(i=0; i < nnames; i++ ) {
+ const char *fname = fnames? fnames[i] : NULL;
+ IOBUF inp = iobuf_open(fname);
+ if( !fname )
+ fname = "[stdin]";
+ if( !inp )
+ log_error(_("can't open `%s': %s\n"), fname, strerror(errno) );
+ else {
+ int rc = import( inp, fast, fname );
+ iobuf_close(inp);
+ if( rc )
+ log_error("import from `%s' failed: %s\n", fname,
+ g10_errstr(rc) );
+ }
+ if( !fname )
+ break;
+ }
+ print_stats();
+ if( !fast )
+ sync_trustdb();
}
int
import_keys_stream( IOBUF inp, int fast )
{
- return import( inp, fast, "[stream]" );
+ int rc = 0;
+
+ /* fixme: don't use static variables */
+ memset( &stats, 0, sizeof( stats ) );
+ rc = import( inp, fast, "[stream]" );
+ print_stats();
+ if( !fast )
+ sync_trustdb();
+ return rc;
}
static int
@@ -137,10 +160,6 @@ import( IOBUF inp, int fast, const char* fname )
PACKET *pending_pkt = NULL;
KBNODE keyblock;
int rc = 0;
- ulong count=0;
-
- /* fixme: don't use static variables */
- memset( &stats, 0, sizeof( stats ) );
getkey_disable_caches();
@@ -165,16 +184,23 @@ import( IOBUF inp, int fast, const char* fname )
release_kbnode(keyblock);
if( rc )
break;
- if( !(++count % 100) && !opt.quiet )
- log_info(_("%lu keys so far processed\n"), count );
+ if( !(++stats.count % 100) && !opt.quiet )
+ log_info(_("%lu keys so far processed\n"), stats.count );
}
if( rc == -1 )
rc = 0;
else if( rc && rc != G10ERR_INV_KEYRING )
log_error( _("error reading `%s': %s\n"), fname, g10_errstr(rc));
+ return rc;
+}
+
+
+static void
+print_stats()
+{
if( !opt.quiet ) {
- log_info(_("Total number processed: %lu\n"), count );
+ log_info(_("Total number processed: %lu\n"), stats.count );
if( stats.no_user_id )
log_info(_(" w/o user IDs: %lu\n"), stats.no_user_id );
if( stats.imported || stats.imported_rsa ) {
@@ -202,9 +228,9 @@ import( IOBUF inp, int fast, const char* fname )
}
if( is_status_enabled() ) {
- char buf[12*16];
+ char buf[12*20];
sprintf(buf, "%lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu",
- count,
+ stats.count,
stats.no_user_id,
stats.imported,
stats.imported_rsa,
@@ -218,8 +244,6 @@ import( IOBUF inp, int fast, const char* fname )
stats.secret_dups);
write_status_text( STATUS_IMPORT_RES, buf );
}
-
- return rc;
}
@@ -354,8 +378,8 @@ import_one( const char *fname, KBNODE keyblock, int fast )
pubkey_letter( pk->pubkey_algo ),
(ulong)keyid[1], datestr_from_pk(pk) );
if( uidnode )
- print_string( stderr, uidnode->pkt->pkt.user_id->name,
- uidnode->pkt->pkt.user_id->len, 0 );
+ print_utf8_string( stderr, uidnode->pkt->pkt.user_id->name,
+ uidnode->pkt->pkt.user_id->len );
putc('\n', stderr);
}
if( !uidnode ) {
@@ -545,8 +569,8 @@ import_secret_one( const char *fname, KBNODE keyblock )
pubkey_letter( sk->pubkey_algo ),
(ulong)keyid[1], datestr_from_sk(sk) );
if( uidnode )
- print_string( stderr, uidnode->pkt->pkt.user_id->name,
- uidnode->pkt->pkt.user_id->len, 0 );
+ print_utf8_string( stderr, uidnode->pkt->pkt.user_id->name,
+ uidnode->pkt->pkt.user_id->len );
putc('\n', stderr);
}
stats.secret_read++;
@@ -678,6 +702,15 @@ import_revoke_cert( const char *fname, KBNODE node )
log_info( _("key %08lX: revocation certificate imported\n"),
(ulong)keyid[1]);
stats.n_revoc++;
+ if( clear_trust_checked_flag( pk ) ) {
+ /* seems that we have to insert the record first */
+ rc = insert_trust_record( keyblock );
+ if( rc )
+ log_error("key %08lX: trustdb insert failed: %s\n",
+ (ulong)keyid[1], g10_errstr(rc) );
+ else
+ rc = clear_trust_checked_flag( pk );
+ }
leave:
release_kbnode( keyblock );
@@ -764,7 +797,8 @@ mark_non_selfsigned_uids_valid( KBNODE keyblock, u32 *kid )
KBNODE node;
for(node=keyblock->next; node; node = node->next ) {
if( node->pkt->pkttype == PKT_USER_ID && !(node->flag & 1) ) {
- if( node->next && node->next->pkt->pkttype == PKT_SIGNATURE ) {
+ if( (node->next && node->next->pkt->pkttype == PKT_SIGNATURE)
+ || !node->next ) {
node->flag |= 1;
log_info( _("key %08lX: accepted non self-signed user ID '"),
(ulong)kid[1]);
@@ -797,8 +831,8 @@ delete_inv_parts( const char *fname, KBNODE keyblock, u32 *keyid )
if( opt.verbose ) {
log_info( _("key %08lX: skipped user ID '"),
(ulong)keyid[1]);
- print_string( stderr, node->pkt->pkt.user_id->name,
- node->pkt->pkt.user_id->len, 0 );
+ print_utf8_string( stderr, node->pkt->pkt.user_id->name,
+ node->pkt->pkt.user_id->len );
fputs("'\n", stderr );
}
delete_kbnode( node ); /* the user-id */
@@ -1124,7 +1158,7 @@ append_uid( KBNODE keyblock, KBNODE node, int *n_sigs,
KBNODE n, n_where=NULL;
assert(node->pkt->pkttype == PKT_USER_ID );
- if( node->next->pkt->pkttype == PKT_USER_ID ) {
+ if( !node->next || node->next->pkt->pkttype == PKT_USER_ID ) {
log_error( _("key %08lX: our copy has no self-signature\n"),
(ulong)keyid[1]);
return G10ERR_GENERAL;
@@ -1177,9 +1211,7 @@ merge_sigs( KBNODE dst, KBNODE src, int *n_sigs,
assert(dst->pkt->pkttype == PKT_USER_ID );
assert(src->pkt->pkttype == PKT_USER_ID );
- /* at least a self signature comes next to the user IDs */
- assert(src->next->pkt->pkttype != PKT_USER_ID );
- if( dst->next->pkt->pkttype == PKT_USER_ID ) {
+ if( !dst->next || dst->next->pkt->pkttype == PKT_USER_ID ) {
log_error( _("key %08lX: our copy has no self-signature\n"),
(ulong)keyid[1]);
return 0;
diff --git a/g10/kbnode.c b/g10/kbnode.c
index 282d8b42e..f24dc3527 100644
--- a/g10/kbnode.c
+++ b/g10/kbnode.c
@@ -1,5 +1,5 @@
/* kbnode.c - keyblock node utility functions
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -165,7 +165,7 @@ find_prev_kbnode( KBNODE root, KBNODE node, int pkttype )
KBNODE n1;
for(n1=NULL ; root && root != node; root = root->next )
- if( !pkttype || root->pkt->pkttype == pkttype )
+ if( !pkttype || root->pkt->pkttype == pkttype )
n1 = root;
return n1;
}
diff --git a/g10/keydb.h b/g10/keydb.h
index 20a8a6325..5cb8b5a5d 100644
--- a/g10/keydb.h
+++ b/g10/keydb.h
@@ -1,5 +1,5 @@
/* keydb.h - Key database
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -158,6 +158,7 @@ void get_seckey_end( GETKEY_CTX ctx );
int enum_secret_keys( void **context, PKT_secret_key *sk, int with_subkeys );
void merge_keys_and_selfsig( KBNODE keyblock );
char*get_user_id_string( u32 *keyid );
+char*get_user_id_string_native( u32 *keyid );
char*get_long_user_id_string( u32 *keyid );
char*get_user_id( u32 *keyid, size_t *rn );
@@ -199,6 +200,7 @@ const char *enum_keyblock_resources( int *sequence, int secret );
int add_keyblock_resource( const char *resname, int force, int secret );
const char *keyblock_resource_name( KBPOS *kbpos );
int get_keyblock_handle( const char *filename, int secret, KBPOS *kbpos );
+char *get_writable_keyblock_file( int secret );
int locate_keyblock_by_fpr( KBPOS *kbpos, const byte *fpr,
int fprlen, int secret );
int locate_keyblock_by_keyid( KBPOS *kbpos, u32 *keyid,
diff --git a/g10/keyedit.c b/g10/keyedit.c
index 8daa7c4f5..cd297db60 100644
--- a/g10/keyedit.c
+++ b/g10/keyedit.c
@@ -1,5 +1,5 @@
/* keyedit.c - keyedit stuff
- * Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -74,8 +74,9 @@ static int enable_disable_key( KBNODE keyblock, int disable );
#define NODFLG_SELSIG (1<<10) /* indicate a selected signature */
-struct sign_uid_attrib {
+struct sign_attrib {
int non_exportable;
+ struct revocation_reason_info *reason;
};
@@ -157,7 +158,7 @@ print_and_check_one_sig( KBNODE keyblock, KBNODE node,
else {
size_t n;
char *p = get_user_id( sig->keyid, &n );
- tty_print_utf8_string( p, n > 40? 40 : n );
+ tty_print_utf8_string2( p, n, 40 );
m_free(p);
}
tty_printf("\n");
@@ -239,16 +240,18 @@ check_all_keysigs( KBNODE keyblock, int only_selected )
-int
-sign_uid_mk_attrib( PKT_signature *sig, void *opaque )
+static int
+sign_mk_attrib( PKT_signature *sig, void *opaque )
{
- struct sign_uid_attrib *attrib = opaque;
+ struct sign_attrib *attrib = opaque;
byte buf[8];
if( attrib->non_exportable ) {
buf[0] = 0; /* not exportable */
build_sig_subpkt( sig, SIGSUBPKT_EXPORTABLE, buf, 1 );
}
+ if( attrib->reason )
+ revocation_reason_build_cb( sig, attrib->reason );
return 0;
}
@@ -353,7 +356,7 @@ sign_uids( KBNODE keyblock, STRLIST locusr, int *ret_modified, int local )
&& (node->flag & NODFLG_MARK_A) ) {
PACKET *pkt;
PKT_signature *sig;
- struct sign_uid_attrib attrib;
+ struct sign_attrib attrib;
assert( primary_pk );
memset( &attrib, 0, sizeof attrib );
@@ -364,7 +367,7 @@ sign_uids( KBNODE keyblock, STRLIST locusr, int *ret_modified, int local )
NULL,
sk,
0x10, 0,
- sign_uid_mk_attrib,
+ sign_mk_attrib,
&attrib );
if( rc ) {
log_error(_("signing failed: %s\n"), g10_errstr(rc));
@@ -407,6 +410,7 @@ change_passphrase( KBNODE keyblock )
KBNODE node;
PKT_secret_key *sk;
char *passphrase = NULL;
+ int no_primary_secrets = 0;
node = find_kbnode( keyblock, PKT_SECRET_KEY );
if( !node ) {
@@ -423,10 +427,16 @@ change_passphrase( KBNODE keyblock )
tty_printf(_("This key is not protected.\n"));
break;
default:
- tty_printf(_("Key is protected.\n"));
- rc = check_secret_key( sk, 0 );
- if( !rc )
- passphrase = get_last_passphrase();
+ if( sk->protect.s2k.mode == 1001 ) {
+ tty_printf(_("Secret parts of primary key are not available.\n"));
+ no_primary_secrets = 1;
+ }
+ else {
+ tty_printf(_("Key is protected.\n"));
+ rc = check_secret_key( sk, 0 );
+ if( !rc )
+ passphrase = get_last_passphrase();
+ }
break;
}
@@ -436,6 +446,8 @@ change_passphrase( KBNODE keyblock )
PKT_secret_key *subsk = node->pkt->pkt.secret_key;
set_next_passphrase( passphrase );
rc = check_secret_key( subsk, 0 );
+ if( !rc && !passphrase )
+ passphrase = get_last_passphrase();
}
}
@@ -465,9 +477,12 @@ change_passphrase( KBNODE keyblock )
break;
}
else { /* okay */
- sk->protect.algo = dek->algo;
- sk->protect.s2k = *s2k;
- rc = protect_secret_key( sk, dek );
+ rc = 0;
+ if( !no_primary_secrets ) {
+ sk->protect.algo = dek->algo;
+ sk->protect.s2k = *s2k;
+ rc = protect_secret_key( sk, dek );
+ }
for(node=keyblock; !rc && node; node = node->next ) {
if( node->pkt->pkttype == PKT_SECRET_SUBKEY ) {
PKT_secret_key *subsk = node->pkt->pkt.secret_key;
@@ -558,41 +573,42 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands,
static struct { const char *name;
enum cmdids id;
int need_sk;
+ int not_with_sk;
int signmode;
const char *desc;
} cmds[] = {
- { N_("quit") , cmdQUIT , 0,1, N_("quit this menu") },
- { N_("q") , cmdQUIT , 0,1, NULL },
- { N_("save") , cmdSAVE , 0,1, N_("save and quit") },
- { N_("help") , cmdHELP , 0,1, N_("show this help") },
- { "?" , cmdHELP , 0,1, NULL },
- { N_("fpr") , cmdFPR , 0,1, N_("show fingerprint") },
- { N_("list") , cmdLIST , 0,1, N_("list key and user IDs") },
- { N_("l") , cmdLIST , 0,1, NULL },
- { N_("uid") , cmdSELUID , 0,1, N_("select user ID N") },
- { N_("key") , cmdSELKEY , 0,0, N_("select secondary key N") },
- { N_("check") , cmdCHECK , 0,1, N_("list signatures") },
- { N_("c") , cmdCHECK , 0,1, NULL },
- { N_("sign") , cmdSIGN , 0,1, N_("sign the key") },
- { N_("s") , cmdSIGN , 0,1, NULL },
- { N_("lsign") , cmdLSIGN , 0,1, N_("sign the key locally") },
- { N_("debug") , cmdDEBUG , 0,0, NULL },
- { N_("adduid") , cmdADDUID , 1,0, N_("add a user ID") },
- { N_("deluid") , cmdDELUID , 0,0, N_("delete user ID") },
- { N_("addkey") , cmdADDKEY , 1,0, N_("add a secondary key") },
- { N_("delkey") , cmdDELKEY , 0,0, N_("delete a secondary key") },
- { N_("delsig") , cmdDELSIG , 0,0, N_("delete signatures") },
- { N_("expire") , cmdEXPIRE , 1,0, N_("change the expire date") },
- { N_("toggle") , cmdTOGGLE , 1,0, N_("toggle between secret "
- "and public key listing") },
- { N_("t" ) , cmdTOGGLE , 1,0, NULL },
- { N_("pref") , cmdPREF , 0,0, N_("list preferences") },
- { N_("passwd") , cmdPASSWD , 1,0, N_("change the passphrase") },
- { N_("trust") , cmdTRUST , 0,0, N_("change the ownertrust") },
- { N_("revsig") , cmdREVSIG , 0,0, N_("revoke signatures") },
- { N_("revkey") , cmdREVKEY , 1,0, N_("revoke a secondary key") },
- { N_("disable") , cmdDISABLEKEY, 0,0, N_("disable a key") },
- { N_("enable") , cmdENABLEKEY , 0,0, N_("enable a key") },
+ { N_("quit") , cmdQUIT , 0,0,1, N_("quit this menu") },
+ { N_("q") , cmdQUIT , 0,0,1, NULL },
+ { N_("save") , cmdSAVE , 0,0,1, N_("save and quit") },
+ { N_("help") , cmdHELP , 0,0,1, N_("show this help") },
+ { "?" , cmdHELP , 0,0,1, NULL },
+ { N_("fpr") , cmdFPR , 0,0,1, N_("show fingerprint") },
+ { N_("list") , cmdLIST , 0,0,1, N_("list key and user IDs") },
+ { N_("l") , cmdLIST , 0,0,1, NULL },
+ { N_("uid") , cmdSELUID , 0,0,1, N_("select user ID N") },
+ { N_("key") , cmdSELKEY , 0,0,0, N_("select secondary key N") },
+ { N_("check") , cmdCHECK , 0,0,1, N_("list signatures") },
+ { N_("c") , cmdCHECK , 0,0,1, NULL },
+ { N_("sign") , cmdSIGN , 0,1,1, N_("sign the key") },
+ { N_("s") , cmdSIGN , 0,1,1, NULL },
+ { N_("lsign") , cmdLSIGN , 0,1,1, N_("sign the key locally") },
+ { N_("debug") , cmdDEBUG , 0,1,0, NULL },
+ { N_("adduid") , cmdADDUID , 1,1,0, N_("add a user ID") },
+ { N_("deluid") , cmdDELUID , 0,1,0, N_("delete user ID") },
+ { N_("addkey") , cmdADDKEY , 1,1,0, N_("add a secondary key") },
+ { N_("delkey") , cmdDELKEY , 0,1,0, N_("delete a secondary key") },
+ { N_("delsig") , cmdDELSIG , 0,1,0, N_("delete signatures") },
+ { N_("expire") , cmdEXPIRE , 1,1,0, N_("change the expire date") },
+ { N_("toggle") , cmdTOGGLE , 1,0,0, N_("toggle between secret "
+ "and public key listing") },
+ { N_("t" ) , cmdTOGGLE , 1,0,0, NULL },
+ { N_("pref") , cmdPREF , 0,1,0, N_("list preferences") },
+ { N_("passwd") , cmdPASSWD , 1,1,0, N_("change the passphrase") },
+ { N_("trust") , cmdTRUST , 0,1,0, N_("change the ownertrust") },
+ { N_("revsig") , cmdREVSIG , 0,1,0, N_("revoke signatures") },
+ { N_("revkey") , cmdREVKEY , 1,1,0, N_("revoke a secondary key") },
+ { N_("disable") , cmdDISABLEKEY, 0,1,0, N_("disable a key") },
+ { N_("enable") , cmdENABLEKEY , 0,1,0, N_("enable a key") },
{ NULL, cmdNONE } };
enum cmdids cmd = 0;
@@ -678,7 +694,7 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands,
have_commands = 0;
}
if( !have_commands ) {
- answer = cpr_get("", _("Command> "));
+ answer = cpr_get("keyedit.prompt", _("Command> "));
cpr_kill_prompt();
}
trim_spaces(answer);
@@ -711,6 +727,10 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands,
tty_printf(_("Need the secret key to do this.\n"));
cmd = cmdNOP;
}
+ else if( cmds[i].not_with_sk && sec_keyblock && toggle ) {
+ tty_printf(_("Please use the command \"toggle\" first.\n"));
+ cmd = cmdNOP;
+ }
else
cmd = cmds[i].id;
}
@@ -763,6 +783,11 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands,
if( !sign_uids( keyblock, locusr, &modified, cmd == cmdLSIGN )
&& sign_mode )
goto do_cmd_save;
+ /* Actually we should do a update_trust_record() here so that
+ * the trust gets displayed correctly. however this is not possible
+ * because we would have to save the keyblock first - something
+ * we don't want to do without an explicit save command.
+ */
break;
case cmdDEBUG:
@@ -1005,7 +1030,10 @@ show_prefs( KBNODE keyblock, PKT_user_id *uid )
return;
}
- rmd160_hash_buffer( namehash, uid->name, uid->len );
+ if( uid->photo )
+ rmd160_hash_buffer( namehash, uid->photo, uid->photolen );
+ else
+ rmd160_hash_buffer( namehash, uid->name, uid->len );
p = get_pref_data( pk->local_id, namehash, &n );
if( !p )
@@ -1076,7 +1104,7 @@ show_key_with_all_names( KBNODE keyblock, int only_marked,
|| (with_subkeys && node->pkt->pkttype == PKT_SECRET_SUBKEY) ) {
PKT_secret_key *sk = node->pkt->pkt.secret_key;
tty_printf("%s%c %4u%c/%08lX created: %s expires: %s\n",
- node->pkt->pkttype == PKT_SECRET_KEY? "sec":"sbb",
+ node->pkt->pkttype == PKT_SECRET_KEY? "sec":"ssb",
(node->flag & NODFLG_SELKEY)? '*':' ',
nbits_from_sk( sk ),
pubkey_letter( sk->pubkey_algo ),
@@ -1471,7 +1499,8 @@ menu_expire( KBNODE pub_keyblock, KBNODE sec_keyblock )
}
else if( node->pkt->pkttype == PKT_USER_ID )
uid = node->pkt->pkt.user_id;
- else if( main_pk && node->pkt->pkttype == PKT_SIGNATURE ) {
+ else if( main_pk && node->pkt->pkttype == PKT_SIGNATURE
+ && sub_pk != NULL ) {
PKT_signature *sig = node->pkt->pkt.signature;
if( keyid[0] == sig->keyid[0] && keyid[1] == sig->keyid[1]
&& ( (mainkey && uid && (sig->sig_class&~3) == 0x10)
@@ -1535,6 +1564,7 @@ menu_expire( KBNODE pub_keyblock, KBNODE sec_keyblock )
m_free( sn->pkt );
sn->pkt = newpkt;
}
+ sub_pk = NULL;
}
}
}
@@ -1735,6 +1765,7 @@ menu_revsig( KBNODE keyblock )
int changed = 0;
int upd_trust = 0;
int rc, any;
+ struct revocation_reason_info *reason = NULL;
/* FIXME: detect duplicates here */
tty_printf(_("You have signed these user IDs:\n"));
@@ -1797,6 +1828,10 @@ menu_revsig( KBNODE keyblock )
_("Really create the revocation certificates? (y/N)")) )
return 0; /* forget it */
+ reason = ask_revocation_reason( 0, 1, 0 );
+ if( !reason ) { /* user decided to cancel */
+ return 0;
+ }
/* now we can sign the user ids */
reloop: /* (must use this, because we are modifing the list) */
@@ -1804,7 +1839,7 @@ menu_revsig( KBNODE keyblock )
for( node=keyblock; node; node = node->next ) {
KBNODE unode;
PACKET *pkt;
- struct sign_uid_attrib attrib;
+ struct sign_attrib attrib;
PKT_secret_key *sk;
if( !(node->flag & NODFLG_MARK_A)
@@ -1814,6 +1849,8 @@ menu_revsig( KBNODE keyblock )
assert( unode ); /* we already checked this */
memset( &attrib, 0, sizeof attrib );
+ attrib.reason = reason;
+
node->flag &= ~NODFLG_MARK_A;
sk = m_alloc_secure_clear( sizeof *sk );
if( get_seckey( sk, node->pkt->pkt.signature->keyid ) ) {
@@ -1825,11 +1862,12 @@ menu_revsig( KBNODE keyblock )
NULL,
sk,
0x30, 0,
- sign_uid_mk_attrib,
+ sign_mk_attrib,
&attrib );
free_secret_key(sk);
if( rc ) {
log_error(_("signing failed: %s\n"), g10_errstr(rc));
+ release_revocation_reason_info( reason );
return changed;
}
changed = 1; /* we changed the keyblock */
@@ -1844,7 +1882,7 @@ menu_revsig( KBNODE keyblock )
if( upd_trust )
clear_trust_checked_flag( primary_pk );
-
+ release_revocation_reason_info( reason );
return changed;
}
@@ -1861,6 +1899,13 @@ menu_revkey( KBNODE pub_keyblock, KBNODE sec_keyblock )
int changed = 0;
int upd_trust = 0;
int rc;
+ struct revocation_reason_info *reason = NULL;
+
+ reason = ask_revocation_reason( 1, 0, 0 );
+ if( !reason ) { /* user decided to cancel */
+ return 0;
+ }
+
reloop: /* (better this way because we are modifing the keyring) */
mainpk = pub_keyblock->pkt->pkt.public_key;
@@ -1871,14 +1916,20 @@ menu_revkey( KBNODE pub_keyblock, KBNODE sec_keyblock )
PKT_signature *sig;
PKT_secret_key *sk;
PKT_public_key *subpk = node->pkt->pkt.public_key;
+ struct sign_attrib attrib;
+
+ memset( &attrib, 0, sizeof attrib );
+ attrib.reason = reason;
node->flag &= ~NODFLG_SELKEY;
sk = copy_secret_key( NULL, sec_keyblock->pkt->pkt.secret_key );
rc = make_keysig_packet( &sig, mainpk, NULL, subpk, sk, 0x28, 0,
- NULL, NULL );
+ sign_mk_attrib,
+ &attrib );
free_secret_key(sk);
if( rc ) {
log_error(_("signing failed: %s\n"), g10_errstr(rc));
+ release_revocation_reason_info( reason );
return changed;
}
changed = 1; /* we changed the keyblock */
@@ -1897,6 +1948,7 @@ menu_revkey( KBNODE pub_keyblock, KBNODE sec_keyblock )
if( upd_trust )
clear_trust_checked_flag( mainpk );
+ release_revocation_reason_info( reason );
return changed;
}
diff --git a/g10/keygen.c b/g10/keygen.c
index ceff09d10..d0083d13d 100644
--- a/g10/keygen.c
+++ b/g10/keygen.c
@@ -1,5 +1,5 @@
/* keygen.c - generate a key pair
- * Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -35,6 +35,58 @@
#include "status.h"
#include "i18n.h"
+enum para_name {
+ pKEYTYPE,
+ pKEYLENGTH,
+ pSUBKEYTYPE,
+ pSUBKEYLENGTH,
+ pNAMEREAL,
+ pNAMEEMAIL,
+ pNAMECOMMENT,
+ pUSERID,
+ pEXPIREDATE,
+ pKEYEXPIRE, /* in n seconds */
+ pSUBKEYEXPIRE, /* in n seconds */
+ pPASSPHRASE,
+ pPASSPHRASE_DEK,
+ pPASSPHRASE_S2K
+};
+
+struct para_data_s {
+ struct para_data_s *next;
+ int lnr;
+ enum para_name key;
+ union {
+ DEK *dek;
+ STRING2KEY *s2k;
+ u32 expire;
+ char value[1];
+ } u;
+};
+
+struct output_control_s {
+ int lnr;
+ int dryrun;
+ int use_files;
+ struct {
+ char *fname;
+ char *newfname;
+ IOBUF stream;
+ armor_filter_context_t afx;
+ } pub;
+ struct {
+ char *fname;
+ char *newfname;
+ IOBUF stream;
+ armor_filter_context_t afx;
+ } sec;
+};
+
+
+static void do_generate_keypair( struct para_data_s *para,
+ struct output_control_s *outctrl );
+static int write_keyblock( IOBUF out, KBNODE node );
+
static void
write_uid( KBNODE root, const char *s )
@@ -43,7 +95,7 @@ write_uid( KBNODE root, const char *s )
size_t n = strlen(s);
pkt->pkttype = PKT_USER_ID;
- pkt->pkt.user_id = m_alloc( sizeof *pkt->pkt.user_id + n - 1 );
+ pkt->pkt.user_id = m_alloc_clear( sizeof *pkt->pkt.user_id + n - 1 );
pkt->pkt.user_id->len = n;
strcpy(pkt->pkt.user_id->name, s);
add_kbnode( root, new_kbnode( pkt ) );
@@ -84,8 +136,9 @@ keygen_add_std_prefs( PKT_signature *sig, void *opaque )
keygen_add_key_expire( sig, opaque );
buf[0] = CIPHER_ALGO_TWOFISH;
- buf[1] = CIPHER_ALGO_CAST5;
- build_sig_subpkt( sig, SIGSUBPKT_PREF_SYM, buf, 2 );
+ buf[1] = CIPHER_ALGO_BLOWFISH;
+ buf[2] = CIPHER_ALGO_CAST5;
+ build_sig_subpkt( sig, SIGSUBPKT_PREF_SYM, buf, 3 );
buf[0] = DIGEST_ALGO_RMD160;
buf[1] = DIGEST_ALGO_SHA1;
@@ -191,8 +244,7 @@ write_keybinding( KBNODE root, KBNODE pub_root, PKT_secret_key *sk )
static int
gen_elg(int algo, unsigned nbits, KBNODE pub_root, KBNODE sec_root, DEK *dek,
- STRING2KEY *s2k, PKT_secret_key **ret_sk, u32 expireval,
- int version )
+ STRING2KEY *s2k, PKT_secret_key **ret_sk, u32 expireval )
{
int rc;
int i;
@@ -203,6 +255,17 @@ gen_elg(int algo, unsigned nbits, KBNODE pub_root, KBNODE sec_root, DEK *dek,
MPI *factors;
assert( is_ELGAMAL(algo) );
+
+ if( nbits < 512 ) {
+ nbits = 1024;
+ log_info(_("keysize invalid; using %u bits\n"), nbits );
+ }
+
+ if( (nbits % 32) ) {
+ nbits = ((nbits + 31) / 32) * 32;
+ log_info(_("keysize rounded up to %u bits\n"), nbits );
+ }
+
rc = pubkey_generate( algo, nbits, skey, &factors );
if( rc ) {
log_error("pubkey_generate failed: %s\n", g10_errstr(rc) );
@@ -212,7 +275,7 @@ gen_elg(int algo, unsigned nbits, KBNODE pub_root, KBNODE sec_root, DEK *dek,
sk = m_alloc_clear( sizeof *sk );
pk = m_alloc_clear( sizeof *pk );
sk->timestamp = pk->timestamp = make_timestamp();
- sk->version = pk->version = version;
+ sk->version = pk->version = 4;
if( expireval ) {
sk->expiredate = pk->expiredate = sk->timestamp + expireval;
}
@@ -266,7 +329,7 @@ gen_elg(int algo, unsigned nbits, KBNODE pub_root, KBNODE sec_root, DEK *dek,
* Generate a DSA key
*/
static int
-gen_dsa(unsigned nbits, KBNODE pub_root, KBNODE sec_root, DEK *dek,
+gen_dsa(unsigned int nbits, KBNODE pub_root, KBNODE sec_root, DEK *dek,
STRING2KEY *s2k, PKT_secret_key **ret_sk, u32 expireval )
{
int rc;
@@ -277,8 +340,15 @@ gen_dsa(unsigned nbits, KBNODE pub_root, KBNODE sec_root, DEK *dek,
MPI skey[5];
MPI *factors;
- if( nbits > 1024 )
+ if( nbits > 1024 || nbits < 512 ) {
nbits = 1024;
+ log_info(_("keysize invalid; using %u bits\n"), nbits );
+ }
+
+ if( (nbits % 64) ) {
+ nbits = ((nbits + 63) / 64) * 64;
+ log_info(_("keysize rounded up to %u bits\n"), nbits );
+ }
rc = pubkey_generate( PUBKEY_ALGO_DSA, nbits, skey, &factors );
if( rc ) {
@@ -378,7 +448,7 @@ check_valid_days( const char *s )
* Returns: 0 to create both a DSA and a ElGamal key.
*/
static int
-ask_algo( int *ret_v4, int addmode )
+ask_algo( int addmode )
{
char *answer;
int algo;
@@ -390,11 +460,7 @@ ask_algo( int *ret_v4, int addmode )
if( addmode )
tty_printf( _(" (%d) ElGamal (encrypt only)\n"), 3 );
tty_printf( _(" (%d) ElGamal (sign and encrypt)\n"), 4 );
- #if 0
- tty_printf( _(" (%d) ElGamal in a v3 packet\n"), 5 );
- #endif
- *ret_v4 = 1;
for(;;) {
answer = cpr_get("keygen.algo",_("Your selection? "));
cpr_kill_prompt();
@@ -419,13 +485,6 @@ ask_algo( int *ret_v4, int addmode )
algo = PUBKEY_ALGO_DSA;
break;
}
- #if 0
- else if( algo == 5 ) {
- algo = PUBKEY_ALGO_ELGAMAL_E;
- *ret_v4 = 0;
- break;
- }
- #endif
else
tty_printf(_("Invalid selection.\n"));
}
@@ -499,6 +558,41 @@ ask_keysize( int algo )
}
+/****************
+ * Parse an expire string and return it's value in days.
+ * Returns -1 on error.
+ */
+static int
+parse_expire_string( const char *string )
+{
+ int mult;
+ u32 abs_date=0;
+ u32 curtime = make_timestamp();
+ int valid_days;
+
+ if( !*string )
+ valid_days = 0;
+ else if( (abs_date = scan_isodatestr(string)) && abs_date > curtime ) {
+ /* This calculation is not perfectly okay because we
+ * are later going to simply multiply by 86400 and don't
+ * correct for leapseconds. A solution would be to change
+ * the whole implemenation to work with dates and not intervals
+ * which are required for v3 keys.
+ */
+ valid_days = abs_date/86400-curtime/86400+1;
+ }
+ else if( (mult=check_valid_days(string)) ) {
+ valid_days = atoi(string) * mult;
+ if( valid_days < 0 || valid_days > 39447 )
+ valid_days = 0;
+ }
+ else {
+ valid_days = -1;
+ }
+ return valid_days;
+}
+
+
static u32
ask_expire_interval(void)
{
@@ -518,32 +612,14 @@ ask_expire_interval(void)
answer = NULL;
for(;;) {
- int mult;
- u32 abs_date=0;
- u32 curtime=0;;
+ u32 curtime=make_timestamp();
m_free(answer);
answer = cpr_get("keygen.valid",_("Key is valid for? (0) "));
cpr_kill_prompt();
trim_spaces(answer);
- curtime = make_timestamp();
- if( !*answer )
- valid_days = 0;
- else if( (abs_date = scan_isodatestr(answer)) && abs_date > curtime ) {
- /* This calculation is not perfectly okay because we
- * are later going to simply multiply by 86400 and don't
- * correct for leapseconds. A solution would be to change
- * the whole implemenation to work with dates and not intervals
- * which are required for v3 keys.
- */
- valid_days = abs_date/86400-curtime/86400+1;
- }
- else if( (mult=check_valid_days(answer)) ) {
- valid_days = atoi(answer) * mult;
- if( valid_days < 0 || valid_days > 32767 )
- valid_days = 0;
- }
- else {
+ valid_days = parse_expire_string( answer );
+ if( valid_days < 0 ) {
tty_printf(_("invalid value\n"));
continue;
}
@@ -556,7 +632,10 @@ ask_expire_interval(void)
interval = valid_days * 86400L;
/* print the date when the key expires */
tty_printf(_("Key expires at %s\n"),
- asctimestamp(curtime + interval ) );
+ asctimestamp((ulong)(curtime + interval) ) );
+ if( (time_t)((ulong)(curtime+interval)) < 0 )
+ tty_printf(_("Your system can't display dates beyond 2038.\n"
+ "However, it will be correctly handled up to 2106.\n"));
}
if( cpr_enabled() || cpr_get_answer_is_yes("keygen.valid.okay",
@@ -610,6 +689,7 @@ ask_user_id( int mode )
uid = aname = acomment = amail = NULL;
for(;;) {
char *p;
+ int fail=0;
if( !aname ) {
for(;;) {
@@ -661,6 +741,7 @@ ask_user_id( int mode )
}
}
+
m_free(uid);
uid = p = m_alloc(strlen(aname)+strlen(amail)+strlen(acomment)+12+10);
p = stpcpy(p, aname );
@@ -685,6 +766,12 @@ ask_user_id( int mode )
tty_printf(_("You selected this USER-ID:\n \"%s\"\n\n"), uid);
/* fixme: add a warning if this user-id already exists */
+ if( !*amail && (strchr( aname, '@' ) || strchr( acomment, '@'))) {
+ fail = 1;
+ tty_printf(_("Please don't put the email address "
+ "into the real name or the comment\n") );
+ }
+
for(;;) {
char *ansstr = _("NnCcEeOoQq");
@@ -695,8 +782,9 @@ ask_user_id( int mode )
answer[1] = 0;
}
else {
- answer = cpr_get("keygen.userid.cmd",_(
- "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "));
+ answer = cpr_get("keygen.userid.cmd", fail?
+ _("Change (N)ame, (C)omment, (E)mail or (Q)uit? ") :
+ _("Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "));
cpr_kill_prompt();
}
if( strlen(answer) > 1 )
@@ -714,10 +802,15 @@ ask_user_id( int mode )
break;
}
else if( *answer == ansstr[6] || *answer == ansstr[7] ) {
- m_free(aname); aname = NULL;
- m_free(acomment); acomment = NULL;
- m_free(amail); amail = NULL;
- break;
+ if( fail ) {
+ tty_printf(_("Please correct the error first\n"));
+ }
+ else {
+ m_free(aname); aname = NULL;
+ m_free(acomment); acomment = NULL;
+ m_free(amail); amail = NULL;
+ break;
+ }
}
else if( *answer == ansstr[8] || *answer == ansstr[9] ) {
m_free(aname); aname = NULL;
@@ -777,12 +870,12 @@ ask_passphrase( STRING2KEY **ret_s2k )
static int
do_create( int algo, unsigned nbits, KBNODE pub_root, KBNODE sec_root,
- DEK *dek, STRING2KEY *s2k, PKT_secret_key **sk, u32 expiredate,
- int v4_packet )
+ DEK *dek, STRING2KEY *s2k, PKT_secret_key **sk, u32 expiredate )
{
int rc=0;
- tty_printf(_(
+ if( !opt.batch )
+ tty_printf(_(
"We need to generate a lot of random bytes. It is a good idea to perform\n"
"some other action (type on the keyboard, move the mouse, utilize the\n"
"disks) during the prime generation; this gives the random number\n"
@@ -790,7 +883,7 @@ do_create( int algo, unsigned nbits, KBNODE pub_root, KBNODE sec_root,
if( algo == PUBKEY_ALGO_ELGAMAL || algo == PUBKEY_ALGO_ELGAMAL_E )
rc = gen_elg(algo, nbits, pub_root, sec_root, dek, s2k,
- sk, expiredate, v4_packet? 4:3 );
+ sk, expiredate );
else if( algo == PUBKEY_ALGO_DSA )
rc = gen_dsa(nbits, pub_root, sec_root, dek, s2k, sk, expiredate);
else
@@ -824,61 +917,553 @@ generate_user_id()
if( !p )
return NULL;
n = strlen(p);
- uid = m_alloc( sizeof *uid + n - 1 );
+ uid = m_alloc_clear( sizeof *uid + n - 1 );
uid->len = n;
strcpy(uid->name, p);
return uid;
}
+static void
+release_parameter_list( struct para_data_s *r )
+{
+ struct para_data_s *r2;
+
+ for( ; r ; r = r2 ) {
+ r2 = r->next;
+ if( r->key == pPASSPHRASE_DEK )
+ m_free( r->u.dek );
+ else if( r->key == pPASSPHRASE_S2K )
+ m_free( r->u.s2k );
+
+ m_free(r);
+ }
+}
+
+static struct para_data_s *
+get_parameter( struct para_data_s *para, enum para_name key )
+{
+ struct para_data_s *r;
+
+ for( r = para; r && r->key != key; r = r->next )
+ ;
+ return r;
+}
+
+static const char *
+get_parameter_value( struct para_data_s *para, enum para_name key )
+{
+ struct para_data_s *r = get_parameter( para, key );
+ return (r && *r->u.value)? r->u.value : NULL;
+}
+
+static int
+get_parameter_algo( struct para_data_s *para, enum para_name key )
+{
+ struct para_data_s *r = get_parameter( para, key );
+ if( !r )
+ return -1;
+ if( isdigit( *r->u.value ) )
+ return atoi( r->u.value );
+ return string_to_pubkey_algo( r->u.value );
+}
+
+
+static u32
+get_parameter_u32( struct para_data_s *para, enum para_name key )
+{
+ struct para_data_s *r = get_parameter( para, key );
+
+ if( !r )
+ return 0;
+ if( r->key == pKEYEXPIRE || r->key == pSUBKEYEXPIRE )
+ return r->u.expire;
+
+ return (unsigned int)strtoul( r->u.value, NULL, 10 );
+}
+
+static unsigned int
+get_parameter_uint( struct para_data_s *para, enum para_name key )
+{
+ return get_parameter_u32( para, key );
+}
+
+static DEK *
+get_parameter_dek( struct para_data_s *para, enum para_name key )
+{
+ struct para_data_s *r = get_parameter( para, key );
+ return r? r->u.dek : NULL;
+}
+
+static STRING2KEY *
+get_parameter_s2k( struct para_data_s *para, enum para_name key )
+{
+ struct para_data_s *r = get_parameter( para, key );
+ return r? r->u.s2k : NULL;
+}
+
+
+static int
+proc_parameter_file( struct para_data_s *para, const char *fname,
+ struct output_control_s *outctrl )
+{
+ struct para_data_s *r;
+ const char *s1, *s2, *s3;
+ size_t n;
+ char *p;
+ int i;
+
+ /* check that we have all required parameters */
+ assert( get_parameter( para, pKEYTYPE ) );
+ i = get_parameter_algo( para, pKEYTYPE );
+ if( i < 1 || check_pubkey_algo2( i, PUBKEY_USAGE_SIG ) ) {
+ r = get_parameter( para, pKEYTYPE );
+ log_error("%s:%d: invalid algorithm\n", fname, r->lnr );
+ return -1;
+ }
+
+ i = get_parameter_algo( para, pSUBKEYTYPE );
+ if( i > 1 && check_pubkey_algo( i ) ) {
+ r = get_parameter( para, pSUBKEYTYPE );
+ log_error("%s:%d: invalid algorithm\n", fname, r->lnr );
+ return -1;
+ }
+
+ if( !get_parameter_value( para, pUSERID ) ) {
+ /* create the formatted user ID */
+ s1 = get_parameter_value( para, pNAMEREAL );
+ s2 = get_parameter_value( para, pNAMECOMMENT );
+ s3 = get_parameter_value( para, pNAMEEMAIL );
+ if( s1 || s2 || s3 ) {
+ n = (s1?strlen(s1):0) + (s2?strlen(s2):0) + (s3?strlen(s3):0);
+ r = m_alloc_clear( sizeof *r + n + 20 );
+ r->key = pUSERID;
+ p = r->u.value;
+ if( s1 )
+ p = stpcpy(p, s1 );
+ if( s2 )
+ p = stpcpy(stpcpy(stpcpy(p," ("), s2 ),")");
+ if( s3 )
+ p = stpcpy(stpcpy(stpcpy(p," <"), s3 ),">");
+ r->next = para;
+ para = r;
+ }
+ }
+
+ /* make DEK and S2K from the Passphrase */
+ r = get_parameter( para, pPASSPHRASE );
+ if( r && *r->u.value ) {
+ /* we have a plain text passphrase - create a DEK from it.
+ * It is a little bit ridiculous to keep it ih secure memory
+ * but becuase we do this alwasy, why not here */
+ STRING2KEY *s2k;
+ DEK *dek;
+
+ s2k = m_alloc_secure( sizeof *s2k );
+ s2k->mode = opt.s2k_mode;
+ s2k->hash_algo = opt.s2k_digest_algo;
+ set_next_passphrase( r->u.value );
+ dek = passphrase_to_dek( NULL, 0, opt.s2k_cipher_algo, s2k, 2 );
+ set_next_passphrase( NULL );
+ assert( dek );
+ memset( r->u.value, 0, strlen(r->u.value) );
+
+ r = m_alloc_clear( sizeof *r );
+ r->key = pPASSPHRASE_S2K;
+ r->u.s2k = s2k;
+ r->next = para;
+ para = r;
+ r = m_alloc_clear( sizeof *r );
+ r->key = pPASSPHRASE_DEK;
+ r->u.dek = dek;
+ r->next = para;
+ para = r;
+ }
+
+ /* make KEYEXPIRE from Expire-Date */
+ r = get_parameter( para, pEXPIREDATE );
+ if( r && *r->u.value ) {
+ i = parse_expire_string( r->u.value );
+ if( i < 0 ) {
+ log_error("%s:%d: invalid expire date\n", fname, r->lnr );
+ return -1;
+ }
+ r->u.expire = i * 86400L;
+ r->key = pKEYEXPIRE; /* change hat entry */
+ /* also set it for the subkey */
+ r = m_alloc_clear( sizeof *r + 20 );
+ r->key = pSUBKEYEXPIRE;
+ r->u.expire = i * 86400L;
+ r->next = para;
+ para = r;
+ }
+
+ if( !!outctrl->pub.newfname ^ !!outctrl->sec.newfname ) {
+ log_error("%s:%d: only one ring name is set\n", fname, outctrl->lnr );
+ return -1;
+ }
+
+ do_generate_keypair( para, outctrl );
+ return 0;
+}
+
+
+/****************
+ * Kludge to allow non interactive key generation controlled
+ * by a parameter file (which currently is only stdin)
+ * Note, that string parameters are expected to be in UTF-8
+ */
+static void
+read_parameter_file( const char *fname )
+{
+ static struct { const char *name;
+ enum para_name key;
+ } keywords[] = {
+ { "Key-Type", pKEYTYPE},
+ { "Key-Length", pKEYLENGTH },
+ { "Subkey-Type", pSUBKEYTYPE },
+ { "Subkey-Length", pSUBKEYLENGTH },
+ { "Name-Real", pNAMEREAL },
+ { "Name-Email", pNAMEEMAIL },
+ { "Name-Comment", pNAMECOMMENT },
+ { "Expire-Date", pEXPIREDATE },
+ { "Passphrase", pPASSPHRASE },
+ { NULL, 0 }
+ };
+ FILE *fp;
+ char line[1024], *p;
+ int lnr;
+ const char *err = NULL;
+ struct para_data_s *para, *r;
+ int i;
+ struct output_control_s outctrl;
+
+ memset( &outctrl, 0, sizeof( outctrl ) );
+
+ if( !fname || !*fname || !strcmp(fname,"-") ) {
+ fp = stdin;
+ fname = "-";
+ }
+ else {
+ fp = fopen( fname, "r" );
+ if( !fp ) {
+ log_error(_("can't open `%s': %s\n"), fname, strerror(errno) );
+ return;
+ }
+ }
+
+ lnr = 0;
+ err = NULL;
+ para = NULL;
+ while( fgets( line, DIM(line)-1, fp ) ) {
+ char *keyword, *value;
+
+ lnr++;
+ if( *line && line[strlen(line)-1] != '\n' ) {
+ err = "line too long";
+ break;
+ }
+ for( p = line; isspace(*p); p++ )
+ ;
+ if( !*p || *p == '#' )
+ continue;
+ keyword = p;
+ if( *keyword == '%' ) {
+ for( ; !isspace(*p); p++ )
+ ;
+ if( *p )
+ *p++ = 0;
+ for( ; isspace(*p); p++ )
+ ;
+ value = p;
+ trim_trailing_ws( value, strlen(value) );
+ if( !stricmp( keyword, "%echo" ) )
+ log_info("%s\n", value );
+ else if( !stricmp( keyword, "%dry-run" ) )
+ outctrl.dryrun = 1;
+ else if( !stricmp( keyword, "%commit" ) ) {
+ outctrl.lnr = lnr;
+ proc_parameter_file( para, fname, &outctrl );
+ release_parameter_list( para );
+ para = NULL;
+ }
+ else if( !stricmp( keyword, "%pubring" ) ) {
+ if( outctrl.pub.fname && !strcmp( outctrl.pub.fname, value ) )
+ ; /* still the same file - ignore it */
+ else {
+ m_free( outctrl.pub.newfname );
+ outctrl.pub.newfname = m_strdup( value );
+ outctrl.use_files = 1;
+ }
+ }
+ else if( !stricmp( keyword, "%secring" ) ) {
+ if( outctrl.sec.fname && !strcmp( outctrl.sec.fname, value ) )
+ ; /* still the same file - ignore it */
+ else {
+ m_free( outctrl.sec.newfname );
+ outctrl.sec.newfname = m_strdup( value );
+ outctrl.use_files = 1;
+ }
+ }
+ else
+ log_info("skipping control `%s' (%s)\n", keyword, value );
+
+
+ continue;
+ }
+
+
+ if( !(p = strchr( p, ':' )) || p == keyword ) {
+ err = "missing colon";
+ break;
+ }
+ if( *p )
+ *p++ = 0;
+ for( ; isspace(*p); p++ )
+ ;
+ if( !*p ) {
+ err = "missing argument";
+ break;
+ }
+ value = p;
+ trim_trailing_ws( value, strlen(value) );
+
+ for(i=0; keywords[i].name; i++ ) {
+ if( !stricmp( keywords[i].name, keyword ) )
+ break;
+ }
+ if( !keywords[i].name ) {
+ err = "unknown keyword";
+ break;
+ }
+ if( keywords[i].key != pKEYTYPE && !para ) {
+ err = "parameter block does not start with \"Key-Type\"";
+ break;
+ }
+
+ if( keywords[i].key == pKEYTYPE && para ) {
+ outctrl.lnr = lnr;
+ proc_parameter_file( para, fname, &outctrl );
+ release_parameter_list( para );
+ para = NULL;
+ }
+ else {
+ for( r = para; r; r = r->next ) {
+ if( r->key == keywords[i].key )
+ break;
+ }
+ if( r ) {
+ err = "duplicate keyword";
+ break;
+ }
+ }
+ r = m_alloc_clear( sizeof *r + strlen( value ) );
+ r->lnr = lnr;
+ r->key = keywords[i].key;
+ strcpy( r->u.value, value );
+ r->next = para;
+ para = r;
+ }
+ if( err )
+ log_error("%s:%d: %s\n", fname, lnr, err );
+ else if( ferror(fp) ) {
+ log_error("%s:%d: read error: %s\n", fname, lnr, strerror(errno) );
+ }
+ else if( para ) {
+ outctrl.lnr = lnr;
+ proc_parameter_file( para, fname, &outctrl );
+ }
+
+ if( outctrl.use_files ) { /* close open streams */
+ iobuf_close( outctrl.pub.stream );
+ iobuf_close( outctrl.sec.stream );
+ m_free( outctrl.pub.fname );
+ m_free( outctrl.pub.newfname );
+ m_free( outctrl.sec.fname );
+ m_free( outctrl.sec.newfname );
+ }
+
+ release_parameter_list( para );
+ if( strcmp( fname, "-" ) )
+ fclose(fp);
+}
+
+
/****************
* Generate a keypair
+ * (fname is only used in batch mode)
*/
void
-generate_keypair()
+generate_keypair( const char *fname )
{
- unsigned nbits;
- char *pub_fname = NULL;
- char *sec_fname = NULL;
+ unsigned int nbits;
char *uid = NULL;
- KBNODE pub_root = NULL;
- KBNODE sec_root = NULL;
- PKT_secret_key *sk = NULL;
DEK *dek;
STRING2KEY *s2k;
- int rc;
int algo;
- u32 expire;
- int v4;
int both = 0;
+ u32 expire;
+ struct para_data_s *para = NULL;
+ struct para_data_s *r;
+ struct output_control_s outctrl;
- if( opt.batch || opt.answer_yes || opt.answer_no ) {
- log_error(_("Key generation can only be used in interactive mode\n"));
+ memset( &outctrl, 0, sizeof( outctrl ) );
+
+ if( opt.batch ) {
+ read_parameter_file( fname );
return;
}
- algo = ask_algo( &v4, 0 );
- if( !algo ) {
- algo = PUBKEY_ALGO_ELGAMAL_E;
+ algo = ask_algo( 0 );
+ if( !algo ) { /* default: DSA with ElG subkey of the specified size */
both = 1;
+ r = m_alloc_clear( sizeof *r + 20 );
+ r->key = pKEYTYPE;
+ sprintf( r->u.value, "%d", PUBKEY_ALGO_DSA );
+ r->next = para;
+ para = r;
tty_printf(_("DSA keypair will have 1024 bits.\n"));
+ r = m_alloc_clear( sizeof *r + 20 );
+ r->key = pKEYLENGTH;
+ strcpy( r->u.value, "1024" );
+ r->next = para;
+ para = r;
+
+ algo = PUBKEY_ALGO_ELGAMAL_E;
+ r = m_alloc_clear( sizeof *r + 20 );
+ r->key = pSUBKEYTYPE;
+ sprintf( r->u.value, "%d", algo );
+ r->next = para;
+ para = r;
}
+ else {
+ r = m_alloc_clear( sizeof *r + 20 );
+ r->key = pKEYTYPE;
+ sprintf( r->u.value, "%d", algo );
+ r->next = para;
+ para = r;
+ }
+
nbits = ask_keysize( algo );
+ r = m_alloc_clear( sizeof *r + 20 );
+ r->key = both? pSUBKEYLENGTH : pKEYLENGTH;
+ sprintf( r->u.value, "%u", nbits);
+ r->next = para;
+ para = r;
+
expire = ask_expire_interval();
+ r = m_alloc_clear( sizeof *r + 20 );
+ r->key = pKEYEXPIRE;
+ r->u.expire = expire;
+ r->next = para;
+ para = r;
+ r = m_alloc_clear( sizeof *r + 20 );
+ r->key = pSUBKEYEXPIRE;
+ r->u.expire = expire;
+ r->next = para;
+ para = r;
+
uid = ask_user_id(0);
if( !uid ) {
log_error(_("Key generation canceled.\n"));
+ release_parameter_list( para );
return;
}
+ r = m_alloc_clear( sizeof *r + strlen(uid) );
+ r->key = pUSERID;
+ strcpy( r->u.value, uid );
+ r->next = para;
+ para = r;
+
dek = ask_passphrase( &s2k );
+ if( dek ) {
+ r = m_alloc_clear( sizeof *r );
+ r->key = pPASSPHRASE_DEK;
+ r->u.dek = dek;
+ r->next = para;
+ para = r;
+ r = m_alloc_clear( sizeof *r );
+ r->key = pPASSPHRASE_S2K;
+ r->u.s2k = s2k;
+ r->next = para;
+ para = r;
+ }
+
+ proc_parameter_file( para, "[internal]", &outctrl );
+ release_parameter_list( para );
+}
+
+
+static void
+do_generate_keypair( struct para_data_s *para,
+ struct output_control_s *outctrl )
+{
+ char *pub_fname = NULL;
+ char *sec_fname = NULL;
+ KBNODE pub_root = NULL;
+ KBNODE sec_root = NULL;
+ PKT_secret_key *sk = NULL;
+ const char *s;
+ int rc;
+
+ if( outctrl->dryrun ) {
+ log_info("dry-run mode - key generation skipped\n");
+ return;
+ }
- /* now check whether we are allowed to write to the keyrings */
- pub_fname = make_filename(opt.homedir, "pubring.gpg", NULL );
- sec_fname = make_filename(opt.homedir, "secring.gpg", NULL );
+ if( outctrl->use_files ) {
+ if( outctrl->pub.newfname ) {
+ iobuf_close(outctrl->pub.stream);
+ outctrl->pub.stream = NULL;
+ m_free( outctrl->pub.fname );
+ outctrl->pub.fname = outctrl->pub.newfname;
+ outctrl->pub.newfname = NULL;
+
+ outctrl->pub.stream = iobuf_create( outctrl->pub.fname );
+ if( !outctrl->pub.stream ) {
+ log_error("can't create `%s': %s\n", outctrl->pub.newfname,
+ strerror(errno) );
+ return;
+ }
+ if( opt.armor ) {
+ outctrl->pub.afx.what = 1;
+ iobuf_push_filter( outctrl->pub.stream, armor_filter,
+ &outctrl->pub.afx );
+ }
+ }
+ if( outctrl->sec.newfname ) {
+ iobuf_close(outctrl->sec.stream);
+ outctrl->sec.stream = NULL;
+ m_free( outctrl->sec.fname );
+ outctrl->sec.fname = outctrl->sec.newfname;
+ outctrl->sec.newfname = NULL;
+
+ outctrl->sec.stream = iobuf_create( outctrl->sec.fname );
+ if( !outctrl->sec.stream ) {
+ log_error("can't create `%s': %s\n", outctrl->sec.newfname,
+ strerror(errno) );
+ return;
+ }
+ if( opt.armor ) {
+ outctrl->sec.afx.what = 5;
+ iobuf_push_filter( outctrl->sec.stream, armor_filter,
+ &outctrl->sec.afx );
+ }
+ }
+ pub_fname = outctrl->pub.fname; /* only for info output */
+ sec_fname = outctrl->sec.fname; /* only for info output */
+ assert( outctrl->pub.stream );
+ assert( outctrl->sec.stream );
+ }
+ else {
+ pub_fname = get_writable_keyblock_file( 0 );
+ sec_fname = get_writable_keyblock_file( 1 );
+ }
+
if( opt.verbose ) {
- tty_printf(_("writing public certificate to `%s'\n"), pub_fname );
- tty_printf(_("writing secret certificate to `%s'\n"), sec_fname );
+ log_info(_("writing public key to `%s'\n"), pub_fname );
+ log_info(_("writing secret key to `%s'\n"), sec_fname );
}
/* we create the packets as a tree of kbnodes. Because the structure
@@ -889,24 +1474,31 @@ generate_keypair()
pub_root = make_comment_node("#"); delete_kbnode(pub_root);
sec_root = make_comment_node("#"); delete_kbnode(sec_root);
- if( both )
- rc = do_create( PUBKEY_ALGO_DSA, 1024, pub_root, sec_root,
- dek, s2k, &sk, expire, 1);
- else
- rc = do_create( algo, nbits, pub_root, sec_root,
- dek, s2k, &sk, expire, v4);
- if( !rc )
- write_uid(pub_root, uid );
- if( !rc )
- write_uid(sec_root, uid );
- if( !rc )
- rc = write_selfsig(pub_root, pub_root, sk);
- if( !rc )
- rc = write_selfsig(sec_root, pub_root, sk);
+ rc = do_create( get_parameter_algo( para, pKEYTYPE ),
+ get_parameter_uint( para, pKEYLENGTH ),
+ pub_root, sec_root,
+ get_parameter_dek( para, pPASSPHRASE_DEK ),
+ get_parameter_s2k( para, pPASSPHRASE_S2K ),
+ &sk,
+ get_parameter_u32( para, pKEYEXPIRE ) );
+ if( !rc && (s=get_parameter_value(para, pUSERID)) ) {
+ write_uid(pub_root, s );
+ if( !rc )
+ write_uid(sec_root, s );
+ if( !rc )
+ rc = write_selfsig(pub_root, pub_root, sk);
+ if( !rc )
+ rc = write_selfsig(sec_root, pub_root, sk);
+ }
- if( both ) {
- rc = do_create( algo, nbits, pub_root, sec_root,
- dek, s2k, NULL, expire, 1 );
+ if( get_parameter( para, pSUBKEYTYPE ) ) {
+ rc = do_create( get_parameter_algo( para, pSUBKEYTYPE ),
+ get_parameter_uint( para, pSUBKEYLENGTH ),
+ pub_root, sec_root,
+ get_parameter_dek( para, pPASSPHRASE_DEK ),
+ get_parameter_s2k( para, pPASSPHRASE_S2K ),
+ NULL,
+ get_parameter_u32( para, pSUBKEYEXPIRE ) );
if( !rc )
rc = write_keybinding(pub_root, pub_root, sk);
if( !rc )
@@ -914,7 +1506,18 @@ generate_keypair()
}
- if( !rc ) {
+ if( !rc && outctrl->use_files ) { /* direct write to specified files */
+ rc = write_keyblock( outctrl->pub.stream, pub_root );
+ if( rc )
+ log_error("can't write public key: %s\n", g10_errstr(rc) );
+ if( !rc ) {
+ rc = write_keyblock( outctrl->sec.stream, sec_root );
+ if( rc )
+ log_error("can't write secret key: %s\n", g10_errstr(rc) );
+ }
+
+ }
+ else if( !rc ) { /* write to the standard keyrings */
KBPOS pub_kbpos;
KBPOS sec_kbpos;
int rc1 = -1;
@@ -955,12 +1558,17 @@ generate_keypair()
else if( (rc=insert_keyblock( &sec_kbpos, sec_root )) )
log_error("can't write secret key: %s\n", g10_errstr(rc) );
else {
- tty_printf(_("public and secret key created and signed.\n") );
- if( algo == PUBKEY_ALGO_DSA )
+ if( !opt.batch )
+ tty_printf(_("public and secret key created and signed.\n") );
+ if( !opt.batch
+ && get_parameter_algo( para, pKEYTYPE ) == PUBKEY_ALGO_DSA
+ && !get_parameter( para, pSUBKEYTYPE ) )
+ {
tty_printf(_("Note that this key cannot be used for "
"encryption. You may want to use\n"
"the command \"--edit-key\" to generate a "
"secondary key for this purpose.\n") );
+ }
}
if( !rc1 )
@@ -969,18 +1577,20 @@ generate_keypair()
unlock_keyblock( &sec_kbpos );
}
-
- if( rc )
- tty_printf(_("Key generation failed: %s\n"), g10_errstr(rc) );
+ if( rc ) {
+ if( opt.batch )
+ log_error("key generation failed: %s\n", g10_errstr(rc) );
+ else
+ tty_printf(_("Key generation failed: %s\n"), g10_errstr(rc) );
+ }
release_kbnode( pub_root );
release_kbnode( sec_root );
if( sk ) /* the unprotected secret key */
free_secret_key(sk);
- m_free(uid);
- m_free(dek);
- m_free(s2k);
- m_free(pub_fname);
- m_free(sec_fname);
+ if( !outctrl->use_files ) {
+ m_free(pub_fname);
+ m_free(sec_fname);
+ }
}
@@ -994,7 +1604,7 @@ generate_subkeypair( KBNODE pub_keyblock, KBNODE sec_keyblock )
int okay=0, rc=0;
KBNODE node;
PKT_secret_key *sk = NULL; /* this is the primary sk */
- int v4, algo;
+ int algo;
u32 expire;
unsigned nbits;
char *passphrase = NULL;
@@ -1019,8 +1629,10 @@ generate_subkeypair( KBNODE pub_keyblock, KBNODE sec_keyblock )
"in future (time warp or clock problem)\n")
: _("key has been created %lu seconds "
"in future (time warp or clock problem)\n"), d );
- rc = G10ERR_TIME_CONFLICT;
- goto leave;
+ if( !opt.ignore_time_conflict ) {
+ rc = G10ERR_TIME_CONFLICT;
+ goto leave;
+ }
}
@@ -1043,7 +1655,7 @@ generate_subkeypair( KBNODE pub_keyblock, KBNODE sec_keyblock )
goto leave;
- algo = ask_algo( &v4, 1 );
+ algo = ask_algo( 1 );
assert(algo);
nbits = ask_keysize( algo );
expire = ask_expire_interval();
@@ -1060,7 +1672,7 @@ generate_subkeypair( KBNODE pub_keyblock, KBNODE sec_keyblock )
}
rc = do_create( algo, nbits, pub_keyblock, sec_keyblock,
- dek, s2k, NULL, expire, v4 );
+ dek, s2k, NULL, expire );
if( !rc )
rc = write_keybinding(pub_keyblock, pub_keyblock, sk);
if( !rc )
@@ -1080,3 +1692,20 @@ generate_subkeypair( KBNODE pub_keyblock, KBNODE sec_keyblock )
return okay;
}
+/****************
+ * Write a keyblock to an output stream
+ */
+static int
+write_keyblock( IOBUF out, KBNODE node )
+{
+ for( ; node ; node = node->next ) {
+ int rc = build_packet( out, node->pkt );
+ if( rc ) {
+ log_error("build_packet(%d) failed: %s\n",
+ node->pkt->pkttype, g10_errstr(rc) );
+ return G10ERR_WRITE_FILE;
+ }
+ }
+ return 0;
+}
+
diff --git a/g10/keyid.c b/g10/keyid.c
index 665b3be86..d56c58711 100644
--- a/g10/keyid.c
+++ b/g10/keyid.c
@@ -1,5 +1,5 @@
/* keyid.c - jeyid and fingerprint handling
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
diff --git a/g10/keylist.c b/g10/keylist.c
index 91a13afaf..5fc89d765 100644
--- a/g10/keylist.c
+++ b/g10/keylist.c
@@ -1,5 +1,5 @@
/* keylist.c
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -43,34 +43,24 @@ static void fingerprint( PKT_public_key *pk, PKT_secret_key *sk );
/****************
* List the keys
- * If NNAMES is 0; all available keys are listed
+ * If list is NULL, all available keys are listed
*/
void
-public_key_list( int nnames, char **names )
+public_key_list( STRLIST list )
{
- if( !nnames )
+ if( !list )
list_all(0);
- else { /* List by user id */
- STRLIST list = NULL;
- for( ; nnames ; nnames--, names++ )
- add_to_strlist( &list, *names );
+ else
list_one( list, 0 );
- free_strlist( list );
- }
}
void
-secret_key_list( int nnames, char **names )
+secret_key_list( STRLIST list )
{
- if( !nnames )
+ if( !list )
list_all(1);
- else { /* List by user id */
- STRLIST list = NULL;
- for( ; nnames ; nnames--, names++ )
- add_to_strlist( &list, *names );
+ else /* List by user id */
list_one( list, 1 );
- free_strlist( list );
- }
}
@@ -145,6 +135,7 @@ list_one( STRLIST names, int secret )
return;
}
do {
+ merge_keys_and_selfsig( keyblock );
list_keyblock( keyblock, 0 );
release_kbnode( keyblock );
} while( !get_pubkey_next( ctx, NULL, &keyblock ) );
@@ -155,7 +146,7 @@ list_one( STRLIST names, int secret )
static void
print_key_data( PKT_public_key *pk, u32 *keyid )
{
- int n = pubkey_get_npkey( pk->pubkey_algo );
+ int n = pk ? pubkey_get_npkey( pk->pubkey_algo ) : 0;
int i;
for(i=0; i < n; i++ ) {
@@ -211,21 +202,26 @@ list_keyblock( KBNODE keyblock, int secret )
sk = NULL;
keyid_from_pk( pk, keyid );
if( opt.with_colons ) {
- trustletter = query_trust_info( pk, NULL );
- if( trustletter == 'u' )
- ulti_hack = 1;
- printf("pub:%c:%u:%d:%08lX%08lX:%s:%s:",
- trustletter,
+ if ( opt.fast_list_mode ) {
+ fputs( "pub::", stdout );
+ trustletter = 0;
+ }
+ else {
+ trustletter = query_trust_info( pk, NULL );
+ if( trustletter == 'u' )
+ ulti_hack = 1;
+ printf("pub:%c:", trustletter );
+ }
+ printf("%u:%d:%08lX%08lX:%s:%s:",
nbits_from_pk( pk ),
pk->pubkey_algo,
(ulong)keyid[0],(ulong)keyid[1],
datestr_from_pk( pk ),
- pk->expiredate? strtimestamp(pk->expiredate):""
- );
+ pk->expiredate? strtimestamp(pk->expiredate):"" );
if( pk->local_id )
printf("%lu", pk->local_id );
putchar(':');
- if( pk->local_id )
+ if( pk->local_id && !opt.fast_list_mode )
putchar( get_ownertrust_info( pk->local_id ) );
putchar(':');
}
@@ -237,15 +233,20 @@ list_keyblock( KBNODE keyblock, int secret )
}
for( kbctx=NULL; (node=walk_kbnode( keyblock, &kbctx, 0)) ; ) {
- if( node->pkt->pkttype == PKT_USER_ID ) {
+ if( node->pkt->pkttype == PKT_USER_ID && !opt.fast_list_mode ) {
if( any ) {
- if( opt.with_colons ) {
+ if ( opt.with_colons ) {
byte namehash[20];
if( pk && !ulti_hack ) {
- rmd160_hash_buffer( namehash,
- node->pkt->pkt.user_id->name,
- node->pkt->pkt.user_id->len );
+ if( node->pkt->pkt.user_id->photo )
+ rmd160_hash_buffer( namehash,
+ node->pkt->pkt.user_id->name,
+ node->pkt->pkt.user_id->len );
+ else
+ rmd160_hash_buffer( namehash,
+ node->pkt->pkt.user_id->name,
+ node->pkt->pkt.user_id->len );
trustletter = query_trust_info( pk, namehash );
}
else
@@ -288,8 +289,13 @@ list_keyblock( KBNODE keyblock, int secret )
keyid_from_pk( pk2, keyid2 );
if( opt.with_colons ) {
- printf("sub:%c:%u:%d:%08lX%08lX:%s:%s:",
- trustletter,
+ if ( opt.fast_list_mode ) {
+ fputs( "sub::", stdout );
+ }
+ else {
+ printf("sub:%c:", trustletter );
+ }
+ printf("%u:%d:%08lX%08lX:%s:%s:",
nbits_from_pk( pk2 ),
pk2->pubkey_algo,
(ulong)keyid2[0],(ulong)keyid2[1],
@@ -303,11 +309,16 @@ list_keyblock( KBNODE keyblock, int secret )
putchar(':');
putchar('\n');
}
- else
- printf("sub %4u%c/%08lX %s\n", nbits_from_pk( pk2 ),
+ else {
+ printf("sub %4u%c/%08lX %s", nbits_from_pk( pk2 ),
pubkey_letter( pk2->pubkey_algo ),
(ulong)keyid2[1],
datestr_from_pk( pk2 ) );
+ if( pk2->expiredate ) {
+ printf(_(" [expires: %s]"), expirestr_from_pk( pk2 ) );
+ }
+ putchar('\n');
+ }
if( opt.fingerprint > 1 )
fingerprint( pk2, NULL );
if( opt.with_key_data )
@@ -346,6 +357,7 @@ list_keyblock( KBNODE keyblock, int secret )
else if( opt.list_sigs && node->pkt->pkttype == PKT_SIGNATURE ) {
PKT_signature *sig = node->pkt->pkt.signature;
int sigrc;
+ char *sigstr;
if( !any ) { /* no user id, (maybe a revocation follows)*/
if( sig->sig_class == 0x20 )
@@ -363,11 +375,11 @@ list_keyblock( KBNODE keyblock, int secret )
if( sig->sig_class == 0x20 || sig->sig_class == 0x28
|| sig->sig_class == 0x30 )
- fputs("rev", stdout);
+ sigstr = "rev";
else if( (sig->sig_class&~3) == 0x10 )
- fputs("sig", stdout);
+ sigstr = "sig";
else if( sig->sig_class == 0x18 )
- fputs("sig", stdout);
+ sigstr = "sig";
else {
if( opt.with_colons )
printf("sig::::::::::%02x:\n",sig->sig_class );
@@ -390,11 +402,13 @@ list_keyblock( KBNODE keyblock, int secret )
rc = 0;
sigrc = ' ';
}
+ fputs( sigstr, stdout );
if( opt.with_colons ) {
putchar(':');
if( sigrc != ' ' )
putchar(sigrc);
- printf(":::%08lX%08lX:%s::::", (ulong)sig->keyid[0],
+ printf("::%d:%08lX%08lX:%s::::", sig->pubkey_algo,
+ (ulong)sig->keyid[0],
(ulong)sig->keyid[1], datestr_from_sig(sig));
}
else
@@ -404,7 +418,7 @@ list_keyblock( KBNODE keyblock, int secret )
printf("[%s] ", g10_errstr(rc) );
else if( sigrc == '?' )
;
- else {
+ else if ( !opt.fast_list_mode ) {
size_t n;
char *p = get_user_id( sig->keyid, &n );
if( opt.with_colons )
diff --git a/g10/ks-proto.h b/g10/ks-proto.h
index bd58db5f9..7a7858ef9 100644
--- a/g10/ks-proto.h
+++ b/g10/ks-proto.h
@@ -1,5 +1,5 @@
/* ks-proto.h
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
diff --git a/g10/main.h b/g10/main.h
index df04f408d..9ec141ebc 100644
--- a/g10/main.h
+++ b/g10/main.h
@@ -1,5 +1,5 @@
/* main.h
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -81,7 +81,7 @@ int clearsign_file( const char *fname, STRLIST locusr, const char *outfile );
/*-- sig-check.c --*/
int check_key_signature( KBNODE root, KBNODE node, int *is_selfsig );
int check_key_signature2( KBNODE root, KBNODE node,
- int *is_selfsig, u32 *r_expire );
+ int *is_selfsig, u32 *r_expiredate, int *r_expired );
/*-- delkey.c --*/
int delete_key( const char *username, int secure );
@@ -92,7 +92,7 @@ void keyedit_menu( const char *username, STRLIST locusr, STRLIST cmds,
/*-- keygen.c --*/
u32 ask_expiredate(void);
-void generate_keypair(void);
+void generate_keypair( const char *fname );
int keygen_add_key_expire( PKT_signature *sig, void *opaque );
int keygen_add_std_prefs( PKT_signature *sig, void *opaque );
int generate_subkeypair( KBNODE pub_keyblock, KBNODE sec_keyblock );
@@ -103,7 +103,7 @@ char *make_outfile_name( const char *iname );
char *ask_outfile_name( const char *name, size_t namelen );
int open_outfile( const char *iname, int mode, IOBUF *a );
IOBUF open_sigfile( const char *iname );
-void copy_options_file( const char *destdir );
+void try_make_homedir( const char *fname );
/*-- seskey.c --*/
void make_session_key( DEK *dek );
@@ -116,7 +116,7 @@ KBNODE make_comment_node( const char *s );
KBNODE make_mpi_comment_node( const char *s, MPI a );
/*-- import.c --*/
-int import_keys( const char *filename, int fast );
+void import_keys( char **fnames, int nnames, int fast );
int import_keys_stream( IOBUF inp, int fast );
int collapse_uids( KBNODE *keyblock );
@@ -124,20 +124,27 @@ int collapse_uids( KBNODE *keyblock );
int export_pubkeys( STRLIST users, int onlyrfc );
int export_pubkeys_stream( IOBUF out, STRLIST users, int onlyrfc );
int export_seckeys( STRLIST users );
+int export_secsubkeys( STRLIST users );
/* dearmor.c --*/
int dearmor_file( const char *fname );
int enarmor_file( const char *fname );
/*-- revoke.c --*/
+struct revocation_reason_info;
int gen_revoke( const char *uname );
+int revocation_reason_build_cb( PKT_signature *sig, void *opaque );
+struct revocation_reason_info *
+ ask_revocation_reason( int key_rev, int cert_rev, int hint );
+void release_revocation_reason_info( struct revocation_reason_info *reason );
/*-- keylist.c --*/
-void public_key_list( int nnames, char **names );
-void secret_key_list( int nnames, char **names );
+void public_key_list( STRLIST list );
+void secret_key_list( STRLIST list );
/*-- verify.c --*/
int verify_signatures( int nfiles, char **files );
+int verify_files( int nfiles, char **files );
/*-- decrypt.c --*/
int decrypt_message( const char *filename );
diff --git a/g10/mainproc.c b/g10/mainproc.c
index 4c93b4877..7c5ed36aa 100644
--- a/g10/mainproc.c
+++ b/g10/mainproc.c
@@ -1,5 +1,5 @@
-/* maPPPPinproc.c - handle packets
- * Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+/* mainproc.c - handle packets
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -225,10 +225,14 @@ proc_pubkey_enc( CTX c, PACKET *pkt )
|| is_RSA(enc->pubkey_algo) ) {
if ( !c->dek && ((!enc->keyid[0] && !enc->keyid[1])
|| !seckey_available( enc->keyid )) ) {
- c->dek = m_alloc_secure( sizeof *c->dek );
- if( (result = get_session_key( enc, c->dek )) ) {
- /* error: delete the DEK */
- m_free(c->dek); c->dek = NULL;
+ if( opt.list_only )
+ result = -1;
+ else {
+ c->dek = m_alloc_secure( sizeof *c->dek );
+ if( (result = get_session_key( enc, c->dek )) ) {
+ /* error: delete the DEK */
+ m_free(c->dek); c->dek = NULL;
+ }
}
}
else
@@ -268,6 +272,8 @@ print_failed_pkenc( struct kidlist_item *list )
PKT_public_key *pk = m_alloc_clear( sizeof *pk );
const char *algstr = pubkey_algo_to_string( list->pubkey_algo );
+ if( !algstr )
+ algstr = "[?]";
pk->pubkey_algo = list->pubkey_algo;
if( !get_pubkey( pk, list->kid ) ) {
size_t n;
@@ -310,10 +316,14 @@ proc_encrypted( CTX c, PACKET *pkt )
print_failed_pkenc( c->failed_pkenc );
+ write_status( STATUS_BEGIN_DECRYPTION );
+
/*log_debug("dat: %sencrypted data\n", c->dek?"":"conventional ");*/
- if( !c->dek && !c->last_was_session_key ) {
+ if( opt.list_only )
+ result = -1;
+ else if( !c->dek && !c->last_was_session_key ) {
/* assume this is old conventional encrypted data
- * Actually we should use IDEA and MD5 in this case, but becuase
+ * Actually we should use IDEA and MD5 in this case, but because
* IDEA is patented we can't do so */
c->dek = passphrase_to_dek( NULL, 0,
opt.def_cipher_algo ? opt.def_cipher_algo
@@ -345,6 +355,7 @@ proc_encrypted( CTX c, PACKET *pkt )
}
free_packet(pkt);
c->last_was_session_key = 0;
+ write_status( STATUS_END_DECRYPTION );
}
@@ -397,12 +408,14 @@ proc_plaintext( CTX c, PACKET *pkt )
clearsig = 1;
}
}
- if( !any ) { /* no onepass sig packet: enable all standard algos */
+
+ if( !any && !opt.skip_verify ) {
+ /* no onepass sig packet: enable all standard algos */
md_enable( c->mfx.md, DIGEST_ALGO_RMD160 );
md_enable( c->mfx.md, DIGEST_ALGO_SHA1 );
md_enable( c->mfx.md, DIGEST_ALGO_MD5 );
}
- if( only_md5 ) {
+ if( opt.pgp2_workarounds && only_md5 && !opt.skip_verify ) {
/* This is a kludge to work around a bug in pgp2. It does only
* catch those mails which are armored. To catch the non-armored
* pgp mails we could see whether there is the signature packet
@@ -507,6 +520,11 @@ do_check_sig( CTX c, KBNODE node, int *is_selfsig )
|| c->list->pkt->pkttype == PKT_PUBLIC_SUBKEY ) {
return check_key_signature( c->list, node, is_selfsig );
}
+ else if( sig->sig_class == 0x20 ) {
+ log_info(_("standalone revocation - "
+ "use \"gpg --import\" to apply\n"));
+ return G10ERR_NOT_PROCESSED;
+ }
else {
log_error("invalid root packet for sigclass %02x\n",
sig->sig_class);
@@ -534,8 +552,12 @@ print_userid( PACKET *pkt )
printf("ERROR: unexpected packet type %d", pkt->pkttype );
return;
}
- print_string( stdout, pkt->pkt.user_id->name, pkt->pkt.user_id->len,
- opt.with_colons );
+ if( opt.with_colons )
+ print_string( stdout, pkt->pkt.user_id->name,
+ pkt->pkt.user_id->len, ':');
+ else
+ print_utf8_string( stdout, pkt->pkt.user_id->name,
+ pkt->pkt.user_id->len );
}
@@ -638,11 +660,13 @@ list_node( CTX c, KBNODE node )
keyid_from_pk( pk, keyid );
if( mainkey ) {
c->local_id = pk->local_id;
- c->trustletter = query_trust_info( pk, NULL );
+ c->trustletter = opt.fast_list_mode?
+ 0 : query_trust_info( pk, NULL );
}
- printf("%s:%c:%u:%d:%08lX%08lX:%s:%s:",
- mainkey? "pub":"sub",
- c->trustletter,
+ printf("%s:", mainkey? "pub":"sub" );
+ if( c->trustletter )
+ putchar( c->trustletter );
+ printf(":%u:%d:%08lX%08lX:%s:%s:",
nbits_from_pk( pk ),
pk->pubkey_algo,
(ulong)keyid[0],(ulong)keyid[1],
@@ -651,7 +675,7 @@ list_node( CTX c, KBNODE node )
if( c->local_id )
printf("%lu", c->local_id );
putchar(':');
- if( c->local_id )
+ if( c->local_id && !opt.fast_list_mode )
putchar( get_ownertrust_info( c->local_id ) );
putchar(':');
if( node->next && node->next->pkt->pkttype == PKT_RING_TRUST) {
@@ -669,6 +693,7 @@ list_node( CTX c, KBNODE node )
pubkey_letter( pk->pubkey_algo ),
(ulong)keyid_from_pk( pk, NULL ),
datestr_from_pk( pk ) );
+
if( mainkey ) {
/* and now list all userids with their signatures */
for( node = node->next; node; node = node->next ) {
@@ -711,6 +736,10 @@ list_node( CTX c, KBNODE node )
}
}
}
+ else if( pk->expiredate ) { /* of subkey */
+ printf(_(" [expires: %s]"), expirestr_from_pk( pk ) );
+ }
+
if( !any )
putchar('\n');
if( !mainkey && opt.fingerprint > 1 )
@@ -823,7 +852,8 @@ list_node( CTX c, KBNODE node )
putchar(':');
if( sigrc != ' ' )
putchar(sigrc);
- printf(":::%08lX%08lX:%s::::", (ulong)sig->keyid[0],
+ printf("::%d:%08lX%08lX:%s::::", sig->pubkey_algo,
+ (ulong)sig->keyid[0],
(ulong)sig->keyid[1], datestr_from_sig(sig));
}
else
@@ -840,7 +870,7 @@ list_node( CTX c, KBNODE node )
if( opt.with_colons )
putchar(':');
}
- else {
+ else if( !opt.fast_list_mode ) {
p = get_user_id( sig->keyid, &n );
print_string( stdout, p, n, opt.with_colons );
m_free(p);
@@ -1114,7 +1144,8 @@ check_sig_and_print( CTX c, KBNODE node )
buf[16] = 0;
write_status_text( STATUS_NO_PUBKEY, buf );
}
- log_error(_("Can't check signature: %s\n"), g10_errstr(rc) );
+ if( rc != G10ERR_NOT_PROCESSED )
+ log_error(_("Can't check signature: %s\n"), g10_errstr(rc) );
}
return rc;
}
@@ -1129,7 +1160,7 @@ proc_tree( CTX c, KBNODE node )
KBNODE n1;
int rc;
- if( opt.list_packets )
+ if( opt.list_packets || opt.list_only )
return;
c->local_id = 0;
@@ -1174,12 +1205,17 @@ proc_tree( CTX c, KBNODE node )
else if( node->pkt->pkttype == PKT_SIGNATURE ) {
PKT_signature *sig = node->pkt->pkt.signature;
- if( !c->have_data ) {
+ if( sig->sig_class != 0x00 && sig->sig_class != 0x01 )
+ log_info(_("standalone signature of class 0x%02x\n"),
+ sig->sig_class);
+ else if( !c->have_data ) {
/* detached signature */
free_md_filter_context( &c->mfx );
c->mfx.md = md_open(sig->digest_algo, 0);
- if( sig->digest_algo == DIGEST_ALGO_MD5
- && is_RSA( sig->pubkey_algo ) ) {
+ if( !opt.pgp2_workarounds )
+ ;
+ else if( sig->digest_algo == DIGEST_ALGO_MD5
+ && is_RSA( sig->pubkey_algo ) ) {
/* enable a workaround for a pgp2 bug */
c->mfx.md2 = md_open( DIGEST_ALGO_MD5, 0 );
}
diff --git a/g10/mdfilter.c b/g10/mdfilter.c
index 951fd730e..91739f9be 100644
--- a/g10/mdfilter.c
+++ b/g10/mdfilter.c
@@ -1,5 +1,5 @@
/* mdfilter.c - filter data and calculate a message digest
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
diff --git a/g10/misc.c b/g10/misc.c
index 3f18183b5..8706430e7 100644
--- a/g10/misc.c
+++ b/g10/misc.c
@@ -1,5 +1,5 @@
/* misc.c - miscellaneous functions
- * Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
diff --git a/g10/openfile.c b/g10/openfile.c
index 4d16db500..a00785e96 100644
--- a/g10/openfile.c
+++ b/g10/openfile.c
@@ -1,5 +1,5 @@
/* openfile.c
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -24,6 +24,9 @@
#include <string.h>
#include <assert.h>
#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
#include <unistd.h>
#include "util.h"
#include "memory.h"
@@ -39,6 +42,17 @@
#define SKELEXT ".skel"
#endif
+#ifdef HAVE_DRIVE_LETTERS
+ #define CMP_FILENAME(a,b) stricmp( (a), (b) )
+#else
+ #define CMP_FILENAME(a,b) strcmp( (a), (b) )
+#endif
+
+#ifdef MKDIR_TAKES_ONE_ARG
+# undef mkdir
+# define mkdir(a,b) mkdir(a)
+#endif
+
/* FIXME: Implement opt.interactive. */
/****************
@@ -82,13 +96,11 @@ make_outfile_name( const char *iname )
if( (!iname || (*iname=='-' && !iname[1]) ))
return m_strdup("-");
- #ifdef HAVE_DRIVE_LETTERS
- #warning add case insensitive compare
- #endif
n = strlen(iname);
- if( n > 4 && ( !strcmp(iname+n-4,".gpg")
- || !strcmp(iname+n-4,".sig")
- || !strcmp(iname+n-4,".asc") ) ) {
+ if( n > 4 && ( !CMP_FILENAME(iname+n-4,".gpg")
+ || !CMP_FILENAME(iname+n-4,".pgp")
+ || !CMP_FILENAME(iname+n-4,".sig")
+ || !CMP_FILENAME(iname+n-4,".asc") ) ) {
char *buf = m_strdup( iname );
buf[n-4] = 0;
return buf;
@@ -169,11 +181,33 @@ open_outfile( const char *iname, int mode, IOBUF *a )
name = opt.outfile;
else {
#ifdef USE_ONLY_8DOT3
- #warning please implement 8.3 files
- #endif
+ /* It is quite common DOS system to have only one dot in a
+ * a filename So if we have something like this, we simple
+ * replace the suffix execpt in cases where the suffix is
+ * larger than 3 characters and not the same as.
+ * We should really map the filenames to 8.3 but this tends to
+ * be more complicated and is probaly a duty of the filesystem
+ */
+ char *dot;
+ const char *newsfx = mode==1 ? ".asc" :
+ mode==2 ? ".sig" : ".gpg";
+
+ buf = m_alloc(strlen(iname)+4+1);
+ strcpy(buf,iname);
+ dot = strchr(buf, '.' );
+ if( dot && dot > buf && dot[1] && strlen(dot) <= 4
+ && CMP_FILENAME(newsfx, dot) ) {
+ strcpy(dot, newsfx );
+ }
+ else if( dot && !dot[1] ) /* don't duplicate a dot */
+ strcpy( dot, newsfx+1 );
+ else
+ strcat( buf, newsfx );
+ #else
buf = m_alloc(strlen(iname)+4+1);
strcpy(stpcpy(buf,iname), mode==1 ? ".asc" :
mode==2 ? ".sig" : ".gpg");
+ #endif
name = buf;
}
@@ -204,9 +238,6 @@ open_sigfile( const char *iname )
IOBUF a = NULL;
size_t len;
- #ifdef USE_ONLY_8DOT3
- #warning please implement 8.3 files
- #endif
if( iname && !(*iname == '-' && !iname[1]) ) {
len = strlen(iname);
if( len > 4 && ( !strcmp(iname + len - 4, ".sig")
@@ -227,7 +258,7 @@ open_sigfile( const char *iname )
/****************
* Copy the option file skeleton to the given directory.
*/
-void
+static void
copy_options_file( const char *destdir )
{
const char *datadir = GNUPG_DATADIR;
@@ -270,3 +301,23 @@ copy_options_file( const char *destdir )
m_free(fname);
}
+
+void
+try_make_homedir( const char *fname )
+{
+ if( opt.dry_run )
+ return;
+ if( strlen(fname) >= 7
+ && !strcmp(fname+strlen(fname)-7, "/.gnupg" ) ) {
+ if( mkdir( fname, S_IRUSR|S_IWUSR|S_IXUSR ) )
+ log_fatal( _("%s: can't create directory: %s\n"),
+ fname, strerror(errno) );
+ else if( !opt.quiet )
+ log_info( _("%s: directory created\n"), fname );
+ copy_options_file( fname );
+ log_info(_("you have to start GnuPG again, "
+ "so it can read the new options file\n") );
+ g10_exit(1);
+ }
+}
+
diff --git a/g10/options.h b/g10/options.h
index 02613e3cc..b3bdc8a34 100644
--- a/g10/options.h
+++ b/g10/options.h
@@ -1,5 +1,5 @@
/* options.h
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -33,6 +33,7 @@ struct {
int compress;
char *outfile;
int dry_run;
+ int list_only;
int textmode;
int batch; /* run in batch mode */
int answer_yes; /* answer yes on most questions */
@@ -63,6 +64,7 @@ struct {
int compress_sigs;
int always_trust;
int rfc1991;
+ int pgp2_workarounds;
unsigned emulate_bugs; /* bug emulation flags EMUBUG_xxxx */
int shm_coprocess;
const char *set_filename;
@@ -83,10 +85,15 @@ struct {
int allow_non_selfsigned_uid;
int no_literal;
ulong set_filesize;
+ int honor_http_proxy;
+ int fast_list_mode;
+ int ignore_time_conflict;
+ int command_fd;
} opt;
#define EMUBUG_GPGCHKSUM 1
+#define EMUBUG_3DESS2K 2
#define DBG_PACKET_VALUE 1 /* debug packet reading/writing */
#define DBG_MPI_VALUE 2 /* debug mpi details */
diff --git a/g10/options.skel b/g10/options.skel
index fa4ac3f28..646e0152b 100644
--- a/g10/options.skel
+++ b/g10/options.skel
@@ -79,3 +79,8 @@ lock-once
# Use "host -l pgp.net | grep www" to figure out a keyserver.
#keyserver wwwkeys.eu.pgp.net
+# The environment variable http_proxy is only used when the
+# this option is set.
+
+honor-http-proxy
+
diff --git a/g10/packet.h b/g10/packet.h
index 50ea65b3f..fdc8af4a5 100644
--- a/g10/packet.h
+++ b/g10/packet.h
@@ -1,5 +1,5 @@
/* packet.h - packet read/write stuff
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -46,6 +46,7 @@ typedef enum {
PKT_USER_ID =13, /* user id packet */
PKT_PUBLIC_SUBKEY =14, /* public subkey (OpenPGP) */
PKT_OLD_COMMENT =16, /* comment packet from an OpenPGP draft */
+ PKT_PHOTO_ID =17, /* PGP's photo ID */
PKT_COMMENT =61, /* new comment packet (private) */
PKT_ENCRYPTED_MDC =62, /* test: encrypted data with MDC */
} pkttype_t;
@@ -53,7 +54,7 @@ typedef enum {
typedef struct packet_struct PACKET;
typedef struct {
- byte mode;
+ int mode;
byte hash_algo;
byte salt[8];
u32 count;
@@ -155,6 +156,8 @@ typedef struct {
typedef struct {
int len; /* length of the name */
+ char *photo; /* if this is not NULL, the packet is a photo ID */
+ int photolen; /* and the length of the photo */
char name[1];
} PKT_user_id;
@@ -236,6 +239,7 @@ typedef enum {
SIGSUBPKT_POLICY =26, /* policy URL */
SIGSUBPKT_KEY_FLAGS =27, /* key flags */
SIGSUBPKT_SIGNERS_UID =28, /* signer's user id */
+ SIGSUBPKT_REVOC_REASON =29, /* reason for revocation */
SIGSUBPKT_PRIV_ADD_SIG =101,/* signatur is also valid for this uid */
SIGSUBPKT_FLAG_CRITICAL=128
diff --git a/g10/parse-packet.c b/g10/parse-packet.c
index e261b5366..48d601501 100644
--- a/g10/parse-packet.c
+++ b/g10/parse-packet.c
@@ -1,5 +1,5 @@
/* parse-packet.c - read packets
- * Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -61,6 +61,8 @@ static int parse_key( IOBUF inp, int pkttype, unsigned long pktlen,
byte *hdr, int hdrlen, PACKET *packet );
static int parse_user_id( IOBUF inp, int pkttype, unsigned long pktlen,
PACKET *packet );
+static int parse_photo_id( IOBUF inp, int pkttype, unsigned long pktlen,
+ PACKET *packet );
static int parse_comment( IOBUF inp, int pkttype, unsigned long pktlen,
PACKET *packet );
static void parse_trust( IOBUF inp, int pkttype, unsigned long pktlen,
@@ -417,6 +419,10 @@ parse( IOBUF inp, PACKET *pkt, int reqtype, ulong *retpos,
case PKT_USER_ID:
rc = parse_user_id(inp, pkttype, pktlen, pkt );
break;
+ case PKT_PHOTO_ID:
+ pkt->pkttype = pkttype = PKT_USER_ID; /* must fix it */
+ rc = parse_photo_id(inp, pkttype, pktlen, pkt);
+ break;
case PKT_OLD_COMMENT:
case PKT_COMMENT:
rc = parse_comment(inp, pkttype, pktlen, pkt);
@@ -805,6 +811,13 @@ dump_sig_subpkt( int hashed, int type, int critical,
case SIGSUBPKT_SIGNERS_UID:
p = "signer's user ID";
break;
+ case SIGSUBPKT_REVOC_REASON:
+ if( length ) {
+ printf("revocation reason 0x%02x (", *buffer );
+ print_string( stdout, buffer+1, length-1, ')' );
+ p = ")";
+ }
+ break;
case SIGSUBPKT_PRIV_ADD_SIG:
p = "signs additional user ID";
break;
@@ -842,6 +855,10 @@ parse_one_sig_subpkt( const byte *buffer, size_t n, int type )
if( n < 8 ) /* minimum length needed */
break;
return 0;
+ case SIGSUBPKT_REVOC_REASON:
+ if( !n )
+ break;
+ return 0;
case SIGSUBPKT_PREF_SYM:
case SIGSUBPKT_PREF_HASH:
case SIGSUBPKT_PREF_COMPR:
@@ -879,7 +896,7 @@ can_handle_critical( const byte *buffer, size_t n, int type )
case SIGSUBPKT_PREF_COMPR:
return 1;
- case SIGSUBPKT_POLICY: /* Is enough to show the policy? */
+ case SIGSUBPKT_POLICY: /* Is it enough to show the policy? */
default:
return 0;
}
@@ -1318,6 +1335,24 @@ parse_key( IOBUF inp, int pkttype, unsigned long pktlen,
sk->protect.algo = iobuf_get_noeof(inp); pktlen--;
sk->protect.s2k.mode = iobuf_get_noeof(inp); pktlen--;
sk->protect.s2k.hash_algo = iobuf_get_noeof(inp); pktlen--;
+ /* check for the special GNU extension */
+ if( is_v4 && sk->protect.s2k.mode == 101 ) {
+ for(i=0; i < 4 && pktlen; i++, pktlen-- )
+ temp[i] = iobuf_get_noeof(inp);
+ if( i < 4 || memcmp( temp, "GNU", 3 ) ) {
+ if( list_mode )
+ printf( "\tunknown S2K %d\n",
+ sk->protect.s2k.mode );
+ rc = G10ERR_INVALID_PACKET;
+ goto leave;
+ }
+ /* here we know that it is a gnu extension
+ * What follows is the GNU protection mode:
+ * All values have special meanings
+ * and they are mapped in the mode with a base of 1000.
+ */
+ sk->protect.s2k.mode = 1000 + temp[3];
+ }
switch( sk->protect.s2k.mode ) {
case 1:
case 3:
@@ -1333,10 +1368,13 @@ parse_key( IOBUF inp, int pkttype, unsigned long pktlen,
break;
case 3: if( list_mode ) printf( "\titer+salt S2K" );
break;
+ case 1001: if( list_mode ) printf( "\tgnu-dummy S2K" );
+ break;
default:
if( list_mode )
- printf( "\tunknown S2K %d\n",
- sk->protect.s2k.mode );
+ printf( "\tunknown %sS2K %d\n",
+ sk->protect.s2k.mode < 1000? "":"GNU ",
+ sk->protect.s2k.mode );
rc = G10ERR_INVALID_PACKET;
goto leave;
}
@@ -1389,6 +1427,9 @@ parse_key( IOBUF inp, int pkttype, unsigned long pktlen,
default:
sk->protect.ivlen = 8;
}
+ if( sk->protect.s2k.mode == 1001 )
+ sk->protect.ivlen = 0;
+
if( pktlen < sk->protect.ivlen ) {
rc = G10ERR_INVALID_PACKET;
goto leave;
@@ -1409,7 +1450,12 @@ parse_key( IOBUF inp, int pkttype, unsigned long pktlen,
* If the user is so careless, not to protect his secret key,
* we can assume, that he operates an open system :=(.
* So we put the key into secure memory when we unprotect it. */
- if( is_v4 && sk->is_protected ) {
+ if( sk->protect.s2k.mode == 1001 ) {
+ /* better set some dummy stuff here */
+ sk->skey[npkey] = mpi_set_opaque(NULL, m_strdup("dummydata"), 10);
+ pktlen = 0;
+ }
+ else if( is_v4 && sk->is_protected ) {
/* ugly; the length is encrypted too, so we read all
* stuff up to the end of the packet into the first
* skey element */
@@ -1475,6 +1521,8 @@ parse_user_id( IOBUF inp, int pkttype, unsigned long pktlen, PACKET *packet )
packet->pkt.user_id = m_alloc(sizeof *packet->pkt.user_id + pktlen);
packet->pkt.user_id->len = pktlen;
+ packet->pkt.user_id->photo = NULL;
+ packet->pkt.user_id->photolen = 0;
p = packet->pkt.user_id->name;
for( ; pktlen; pktlen--, p++ )
*p = iobuf_get_noeof(inp);
@@ -1496,6 +1544,31 @@ parse_user_id( IOBUF inp, int pkttype, unsigned long pktlen, PACKET *packet )
}
+/****************
+ * PGP generates a packet of type 17. We assume this is a photo ID and
+ * simply store it here as a comment packet.
+ */
+static int
+parse_photo_id( IOBUF inp, int pkttype, unsigned long pktlen, PACKET *packet )
+{
+ byte *p;
+
+ packet->pkt.user_id = m_alloc(sizeof *packet->pkt.user_id + 30);
+ sprintf( packet->pkt.user_id->name, "[image of size %lu]", pktlen );
+ packet->pkt.user_id->len = strlen(packet->pkt.user_id->name);
+
+ packet->pkt.user_id->photo = m_alloc(sizeof *packet->pkt.user_id + pktlen);
+ packet->pkt.user_id->photolen = pktlen;
+ p = packet->pkt.user_id->photo;
+ for( ; pktlen; pktlen--, p++ )
+ *p = iobuf_get_noeof(inp);
+
+ if( list_mode ) {
+ printf(":photo_id packet: %s\n", packet->pkt.user_id->name );
+ }
+ return 0;
+}
+
static int
parse_comment( IOBUF inp, int pkttype, unsigned long pktlen, PACKET *packet )
diff --git a/g10/passphrase.c b/g10/passphrase.c
index 6026ff7f9..b400ea257 100644
--- a/g10/passphrase.c
+++ b/g10/passphrase.c
@@ -1,5 +1,5 @@
/* passphrase.c - Get a passphrase
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -159,7 +159,7 @@ passphrase_to_dek( u32 *keyid, int pubkey_algo,
tty_printf(_("\nYou need a passphrase to unlock the secret key for\n"
"user: \"") );
p = get_user_id( keyid, &n );
- tty_print_string( p, n );
+ tty_print_utf8_string( p, n );
m_free(p);
tty_printf("\"\n");
@@ -242,7 +242,13 @@ hash_passphrase( DEK *dek, char *pw, STRING2KEY *s2k, int create )
md = md_open( s2k->hash_algo, 1);
for(pass=0; used < dek->keylen ; pass++ ) {
if( pass ) {
- md_reset(md);
+ if( (opt.emulate_bugs & EMUBUG_3DESS2K)) {
+ int tmp = md->finalized;
+ md_reset( md );
+ md->finalized = tmp;
+ }
+ else
+ md_reset(md);
for(i=0; i < pass; i++ ) /* preset the hash context */
md_putc(md, 0 );
}
diff --git a/g10/pkclist.c b/g10/pkclist.c
index fab2f13a7..bf93988ce 100644
--- a/g10/pkclist.c
+++ b/g10/pkclist.c
@@ -1,5 +1,5 @@
/* pkclist.c
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -96,6 +96,112 @@ fpr_info( PKT_public_key *pk )
}
+/****************
+ * Show the revocation reason as it is stored with the given signature
+ */
+static void
+do_show_revocation_reason( PKT_signature *sig )
+{
+ size_t n, nn;
+ const byte *p, *pp;
+ int seq = 0;
+ const char *text;
+
+ while( (p = enum_sig_subpkt( sig->hashed_data, SIGSUBPKT_REVOC_REASON,
+ &n, &seq )) ) {
+ if( !n )
+ continue; /* invalid - just skip it */
+
+ if( *p == 0 )
+ text = _("No reason specified");
+ else if( *p == 0x01 )
+ text = _("Key is superseeded");
+ else if( *p == 0x02 )
+ text = _("Key has been compromised");
+ else if( *p == 0x03 )
+ text = _("Key is no longer used");
+ else if( *p == 0x20 )
+ text = _("User ID is no longer valid");
+ else
+ text = NULL;
+
+ log_info( _("Reason for revocation: ") );
+ if( text )
+ fputs( text, log_stream() );
+ else
+ fprintf( log_stream(), "code=%02x", *p );
+ putc( '\n', log_stream() );
+ n--; p++;
+ pp = NULL;
+ do {
+ /* We don't want any empty lines, so skip them */
+ while( n && *p == '\n' ) {
+ p++;
+ n--;
+ }
+ if( n ) {
+ pp = memchr( p, '\n', n );
+ nn = pp? pp - p : n;
+ log_info( _("Revocation comment: ") );
+ print_string( log_stream(), p, nn, 0 );
+ putc( '\n', log_stream() );
+ p += nn; n -= nn;
+ }
+ } while( pp );
+ }
+}
+
+
+static void
+show_revocation_reason( PKT_public_key *pk )
+{
+ /* Hmmm, this is not so easy becuase we have to duplicate the code
+ * used in the trustbd to calculate the keyflags. We need to find
+ * a clean way to check revocation certificates on keys and signatures.
+ * And there should be no duplicate code. Because we enter this function
+ * only when the trustdb toldus, taht we have a revoked key, we could
+ * simplylook for a revocation cert and display this one, when there is
+ * only one. Let's try to do this until we have a better solution.
+ */
+ KBNODE node, keyblock = NULL;
+ byte fingerprint[MAX_FINGERPRINT_LEN];
+ size_t fingerlen;
+ int rc;
+
+ /* get the keyblock */
+ fingerprint_from_pk( pk, fingerprint, &fingerlen );
+ rc = get_keyblock_byfprint( &keyblock, fingerprint, fingerlen );
+ if( rc ) { /* that should never happen */
+ log_debug( "failed to get the keyblock\n");
+ return;
+ }
+
+ for( node=keyblock; node; node = node->next ) {
+ if( ( node->pkt->pkttype == PKT_PUBLIC_KEY
+ || node->pkt->pkttype == PKT_PUBLIC_SUBKEY )
+ && !cmp_public_keys( node->pkt->pkt.public_key, pk ) )
+ break;
+ }
+ if( !node ) {
+ log_debug("Oops, PK not in keyblock\n");
+ release_kbnode( keyblock );
+ return;
+ }
+ /* now find the revocation certificate */
+ for( node = node->next; node ; node = node->next ) {
+ if( node->pkt->pkttype == PKT_PUBLIC_SUBKEY )
+ break;
+ if( node->pkt->pkttype == PKT_SIGNATURE
+ && (node->pkt->pkt.signature->sig_class == 0x20
+ || node->pkt->pkt.signature->sig_class == 0x28 ) ) {
+ /* FIXME: we should check the signature here */
+ do_show_revocation_reason ( node->pkt->pkt.signature );
+ }
+ }
+
+ release_kbnode( keyblock );
+}
+
static void
show_paths( ulong lid, int only_first )
@@ -149,7 +255,7 @@ show_paths( ulong lid, int only_first )
putchar(' ');
p = get_user_id( keyid, &n );
- tty_print_string( p, n ),
+ tty_print_utf8_string( p, n ),
m_free(p);
tty_printf("\"\n");
free_public_key( pk );
@@ -194,7 +300,7 @@ do_edit_ownertrust( ulong lid, int mode, unsigned *new_trust, int defer_help )
for(;;) {
/* a string with valid answers */
- char *ans = _("sSmMqQ");
+ const char *ans = _("sSmMqQ");
if( !did_help ) {
if( !mode ) {
@@ -203,7 +309,7 @@ do_edit_ownertrust( ulong lid, int mode, unsigned *new_trust, int defer_help )
nbits_from_pk( pk ), pubkey_letter( pk->pubkey_algo ),
(ulong)keyid[1], datestr_from_pk( pk ) );
p = get_user_id( keyid, &n );
- tty_print_string( p, n ),
+ tty_print_utf8_string( p, n ),
m_free(p);
tty_printf("\"\n");
print_fpr( pk );
@@ -337,38 +443,53 @@ _("Could not find a valid trust path to the key. Let's see whether we\n"
/****************
* Check whether we can trust this pk which has a trustlevel of TRUSTLEVEL
- * Returns: true if we trust.
+ * Returns: true if we trust. Might change the trustlevel
*/
static int
-do_we_trust( PKT_public_key *pk, int trustlevel )
+do_we_trust( PKT_public_key *pk, int *trustlevel )
{
int rc;
int did_add = 0;
+ int trustmask = 0;
retry:
- if( (trustlevel & TRUST_FLAG_REVOKED) ) {
+ if( (*trustlevel & TRUST_FLAG_REVOKED) ) {
log_info(_("key %08lX: key has been revoked!\n"),
(ulong)keyid_from_pk( pk, NULL) );
+ show_revocation_reason( pk );
if( opt.batch )
return 0;
if( !cpr_get_answer_is_yes("revoked_key.override",
_("Use this key anyway? ")) )
return 0;
+ trustmask |= TRUST_FLAG_REVOKED;
}
- else if( (trustlevel & TRUST_FLAG_SUB_REVOKED) ) {
+ else if( (*trustlevel & TRUST_FLAG_SUB_REVOKED) ) {
log_info(_("key %08lX: subkey has been revoked!\n"),
(ulong)keyid_from_pk( pk, NULL) );
+ show_revocation_reason( pk );
if( opt.batch )
return 0;
if( !cpr_get_answer_is_yes("revoked_key.override",
_("Use this key anyway? ")) )
return 0;
+ trustmask |= TRUST_FLAG_SUB_REVOKED;
}
+ *trustlevel &= ~trustmask;
+ if( opt.always_trust) {
+ if( opt.verbose )
+ log_info("No trust check due to --always-trust option\n");
+ /* The problem with this, is that EXPIRE can't be checked as
+ * this needs to insert a ne key into the trustdb first and
+ * we don't want that */
+ return 1;
+ }
- switch( (trustlevel & TRUST_MASK) ) {
+
+ switch( (*trustlevel & TRUST_MASK) ) {
case TRUST_UNKNOWN: /* No pubkey in trustDB: Insert and check again */
rc = insert_trust_record_by_pk( pk );
if( rc ) {
@@ -376,11 +497,12 @@ do_we_trust( PKT_public_key *pk, int trustlevel )
g10_errstr(rc) );
return 0; /* no */
}
- rc = check_trust( pk, &trustlevel, NULL, NULL, NULL );
+ rc = check_trust( pk, trustlevel, NULL, NULL, NULL );
+ *trustlevel &= ~trustmask;
if( rc )
log_fatal("trust check after insert failed: %s\n",
g10_errstr(rc) );
- if( trustlevel == TRUST_UNKNOWN || trustlevel == TRUST_EXPIRED ) {
+ if( *trustlevel == TRUST_UNKNOWN || *trustlevel == TRUST_EXPIRED ) {
log_debug("do_we_trust: oops at %d\n", __LINE__ );
return 0;
}
@@ -398,7 +520,8 @@ do_we_trust( PKT_public_key *pk, int trustlevel )
else {
int quit;
- rc = add_ownertrust( pk, &quit, &trustlevel );
+ rc = add_ownertrust( pk, &quit, trustlevel );
+ *trustlevel &= ~trustmask;
if( !rc && !did_add && !quit ) {
did_add = 1;
goto retry;
@@ -444,7 +567,7 @@ do_we_trust_pre( PKT_public_key *pk, int trustlevel )
{
int rc;
- rc = do_we_trust( pk, trustlevel );
+ rc = do_we_trust( pk, &trustlevel );
if( (trustlevel & TRUST_FLAG_REVOKED) && !rc )
return 0;
@@ -460,7 +583,7 @@ do_we_trust_pre( PKT_public_key *pk, int trustlevel )
nbits_from_pk( pk ), pubkey_letter( pk->pubkey_algo ),
(ulong)keyid[1], datestr_from_pk( pk ) );
p = get_user_id( keyid, &n );
- tty_print_string( p, n ),
+ tty_print_utf8_string( p, n ),
m_free(p);
tty_printf("\"\n");
print_fpr( pk );
@@ -527,10 +650,12 @@ check_signatures_trust( PKT_signature *sig )
write_status( STATUS_KEYREVOKED );
log_info(_("WARNING: This key has been revoked by its owner!\n"));
log_info(_(" This could mean that the signature is forgery.\n"));
+ show_revocation_reason( pk );
}
else if( (trustlevel & TRUST_FLAG_SUB_REVOKED) ) {
write_status( STATUS_KEYREVOKED );
log_info(_("WARNING: This subkey has been revoked by its owner!\n"));
+ show_revocation_reason( pk );
}
@@ -769,7 +894,8 @@ build_pk_list( STRLIST remusr, PK_LIST *ret_pk_list, unsigned use )
else {
int trustlevel;
- rc = check_trust( pk, &trustlevel, NULL, NULL, NULL );
+ rc = check_trust( pk, &trustlevel, pk->namehash,
+ NULL, NULL );
if( rc ) {
log_error("error checking pk of `%s': %s\n",
answer, g10_errstr(rc) );
@@ -843,7 +969,7 @@ build_pk_list( STRLIST remusr, PK_LIST *ret_pk_list, unsigned use )
else if( !(rc=check_pubkey_algo2(pk->pubkey_algo, use )) ) {
int trustlevel;
- rc = check_trust( pk, &trustlevel, NULL, NULL, NULL );
+ rc = check_trust( pk, &trustlevel, pk->namehash, NULL, NULL );
if( rc ) {
free_public_key( pk ); pk = NULL;
log_error(_("%s: error checking key: %s\n"),
diff --git a/g10/plaintext.c b/g10/plaintext.c
index f8f4dcaf7..4ab20278d 100644
--- a/g10/plaintext.c
+++ b/g10/plaintext.c
@@ -1,5 +1,5 @@
/* plaintext.c - process an plaintext packet
- * Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -107,8 +107,10 @@ handle_plaintext( PKT_plaintext *pt, md_filter_context_t *mfx,
}
if( mfx->md )
md_putc(mfx->md, c );
- if( c == '\r' )
- continue; /* fixme: this hack might be too simple */
+ #ifndef HAVE_DOSISH_SYSTEM
+ if( c == '\r' ) /* convert to native line ending */
+ continue; /* fixme: this hack might be too simple */
+ #endif
if( fp ) {
if( putc( c, fp ) == EOF ) {
log_error("Error writing to `%s': %s\n",
@@ -152,8 +154,10 @@ handle_plaintext( PKT_plaintext *pt, md_filter_context_t *mfx,
while( (c = iobuf_get(pt->buf)) != -1 ) {
if( mfx->md )
md_putc(mfx->md, c );
+ #ifndef HAVE_DOSISH_SYSTEM
if( convert && c == '\r' )
continue; /* fixme: this hack might be too simple */
+ #endif
if( fp ) {
if( putc( c, fp ) == EOF ) {
log_error("Error writing to `%s': %s\n",
@@ -169,10 +173,10 @@ handle_plaintext( PKT_plaintext *pt, md_filter_context_t *mfx,
int eof;
for( eof=0; !eof; ) {
/* Why do we check for len < 32768:
- * If we won� we would practically read 2 EOFS but
+ * If we won't, we would practically read 2 EOFs but
* the first one has already popped the block_filter
* off and therefore we don't catch the boundary.
- * Always assume EOF if iobuf_read returns less bytes
+ * So, always assume EOF if iobuf_read returns less bytes
* then requested */
int len = iobuf_read( pt->buf, buffer, 32768 );
if( len == -1 )
@@ -217,6 +221,8 @@ handle_plaintext( PKT_plaintext *pt, md_filter_context_t *mfx,
if( !state ) {
if( c == '\r' )
state = 1;
+ else if( c == '\n' )
+ state = 2;
else
md_putc(mfx->md, c );
}
@@ -308,7 +314,7 @@ ask_for_detached_datafile( MD_HANDLE md, MD_HANDLE md2,
fp = open_sigfile( inname ); /* open default file */
if( !fp && !opt.batch ) {
int any=0;
- tty_printf("Detached signature.\n");
+ tty_printf(_("Detached signature.\n"));
do {
m_free(answer);
answer = cpr_get("detached_signature.filename",
diff --git a/g10/pubkey-enc.c b/g10/pubkey-enc.c
index af77a1e52..1806de8f8 100644
--- a/g10/pubkey-enc.c
+++ b/g10/pubkey-enc.c
@@ -1,5 +1,5 @@
/* pubkey-enc.c - public key encoded packet handling
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -152,6 +152,10 @@ get_it( PKT_pubkey_enc *k, DEK *dek, PKT_secret_key *sk, u32 *keyid )
write_status(STATUS_RSA_OR_IDEA);
rc = check_cipher_algo( dek->algo );
if( rc ) {
+ if( !opt.quiet && rc == G10ERR_CIPHER_ALGO ) {
+ log_info(_("cipher algorithm %d is unknown or disabled\n"),
+ dek->algo);
+ }
dek->algo = 0;
goto leave;
}
@@ -172,7 +176,7 @@ get_it( PKT_pubkey_enc *k, DEK *dek, PKT_secret_key *sk, u32 *keyid )
}
if( DBG_CIPHER )
log_hexdump("DEK is:", dek->key, dek->keylen );
- /* check that the algo is in the preferences */
+ /* check that the algo is in the preferences and whether it has expired */
{
PKT_public_key *pk = m_alloc_clear( sizeof *pk );
if( (rc = get_pubkey( pk, keyid )) )
@@ -191,10 +195,25 @@ get_it( PKT_pubkey_enc *k, DEK *dek, PKT_secret_key *sk, u32 *keyid )
"NOTE: cipher algorithm %d not found in preferences\n"),
dek->algo );
}
+
+
+ if( !rc && pk->expiredate && pk->expiredate <= make_timestamp() ) {
+ log_info(_("NOTE: secret key %08lX expired at %s\n"),
+ (ulong)keyid[1], asctimestamp( pk->expiredate) );
+ }
+
+ /* FIXME: check wheter the key has been revoked and display
+ * the revocation reason. Actually the user should know this himself,
+ * but the sender might not know already and therefor the user
+ * should get a notice that an revoked key has been used to decode
+ * the message. The user can than watch out for snakes send by
+ * one of those Eves outside his paradise :-)
+ */
free_public_key( pk );
rc = 0;
}
+
leave:
mpi_free(plain_dek);
m_free(frame);
diff --git a/g10/pubring.asc b/g10/pubring.asc
index dc4e8bdb6..09b099bfe 100644
--- a/g10/pubring.asc
+++ b/g10/pubring.asc
@@ -1,225 +1,458 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v0.9.9 (GNU/Linux)
+Version: GnuPG v1.0.0e (GNU/Linux)
Comment: For info see http://www.gnupg.org
-mQGiBDWiHh4RBAD+l0rg5p9rW4M3sKvmeyzhs2mDxhRKDTVVUnTwpMIR2kIA9pT4
-3No/coPajDvhZTaDM/vSz25IZDZWJ7gEu86RpoEdtr/eK8GuDcgsWvFs5+YpCDwW
-G2dx39ME7DN+SRvEE1xUm4E9G2Nnd2UNtLgg82wgi/ZK4Ih9CYDyo0a9awCgisn3
-RvZ/MREJmQq1+SjJgDx+c2sEAOEnxGYisqIKcOTdPOTTie7o7x+nem2uac7uOW68
-N+wRWxhGPIxsOdueMIa7U94Wg/Ydn4f2WngJpBvKNaHYmW8j1Q5zvZXXpIWRXSvy
-TR641BceGHNdYiR/PiDBJsGQ3ac7n7pwhV4qex3IViRDJWz5Dzr88x+Oju63KtxY
-urUIBACi7d1rUlHr4ok7iBRlWHYXU2hpUIQ8C+UOE1XXT+HB7mZLSRONQnWMyXnq
-bAAW+EUUX2xpb54CevAg4eOilt0es8GZMmU6c0wdUsnMWWqOKHBFFlDIvyI27aZ9
-quf0yvby63kFCanQKc0QnqGXQKzuXbFqBYW2UQrYgjXji8rd8bQnV2VybmVyIEtv
-Y2ggKGdudXBnIHNpZykgPGRkOWpuQGdudS5vcmc+iF0EExECAB0FAjZVoKYFCQht
-DIgDCwQDBRUDAgYBAxYCAQIXgAAKCRBot6uJV1SNzS4+AKCHdeYHMmKQV9mC7REE
-5Vz6d5rRBgCfVMcyRP7dxBwhytmwCDpAcCFvCLSJAV8DBRA1oh5DA28RuP8+qgsQ
-A2MyBR0eiPUovYMz0DUXBbNs5606eaVeTJOn9WqkYGcS9xOKlGd8Xj0IcAKN30st
-5AsC5hRqr82rrUjB5/CuVdbvk+Qkh6ixWCqo+RRrbgf8cKCg1x+lDj9PpeSD/B9U
-U45ntxYamoXnPszxtzU+e73Nkbtrej5rgMK8tgTLkhTAbO8M15Mgtw2yOeDFfiCj
-4xzDkYryvLiPI5p2vYXTVcgYnwpNRnMZBwUghb1PMSXj7AP0P/8wnpb656yIjH2O
-AkE5is5HvTEs2wGUCEXXYKxgLIl9bRPGd2DHfJQ6broxy1RHVmaOrOeDibspx67R
-RTm3WqbtLiK0/nRF0gEjFGxLjQiy92gp6xLRiQsMQdkz0Lwgr0dgSs6JejBlsQPp
-5nXXkIm9q/hl6Cly3Zx3KbAIwO5ZF5NyBciezCxSurg64xmxibNhSknblI0vyG+I
-RgQQEQIABgUCNaInPAAKCRBsfuG4YhzAE37WAJ9Xzmig1DrfnUt/KwfgidkPohJV
-iQCg0T6afKuRspWzPAz5TKQpVjd02KmIRgQQEQIABgUCNu1ObAAKCRBd4kmWWwNY
-omq2AJ9+alN2TpVRAhCxP91eqvfEN9HgGgCgrTvpWnB9EKtROr+AT//cujKCyIaZ
-AaIENaIg8xEEALYPe0XNsPjx+inTQ+Izz527ZJnoc6BhWik/4a2bZYENSOQXAMKT
-DQMv2lLeI0i6ceB967MNubhHeVdNeOWYHFSM1UGRfhmZERISho3bp+wVZvVG8GBV
-wpw34PJjgYU/0tDwnJaJ8BzX6j0ecTSTjQPnaUEtdJ/u/gmG9j0218TzAKDihdNo
-KJEU9IKUiSjdGomSuem/VwQArHfaucSiDmY8+zyZbVLLnK6UJMqtsIv1LvAg20xw
-XoUk2bY8H3tXL4UZ8YcoSXYozwALq3cIo5UZJ0q9Of71mI8WLK2iFSYVplpTX0WM
-ClAdkGt3HgVb7xtOhGt1mEKeRQjNZ2LteUQrRDD9MTQ+XxcvEN0IpAj4kBJe9bR6
-HzAD/iecCmGwSlHUZZrgqWzv78o79XxDdcuLdl4i2fL7kwEOf9jsDe7hGs27yrdJ
-EmAG9QF9TOF9LJFmE1CqkgW+EpKxsY01Wjm0BFJB1R7iPUaUtFRZxYqfgXarmPjq
-l2iBi+cVjLzGu+4BSojVAPgP/hhcnIowf4M4edPiICMP1GVjtCFXZXJuZXIgS29j
-aCA8d2VybmVyLmtvY2hAZ3V1Zy5kZT6IWwQTEQIAGwUCNs8JNwUJCCCxRAMLCgMD
-FQMCAxYCAQIXgAAKCRBsfuG4YhzAE2kgAJ92JKU+YcYHoRhX51+4s3fnPIyNEgCf
-aiWeoyb15xgdO6etGiD2MYCWy5mJAHUDBRA1o3cUHRn0wQyYV6UBAT3zAv9HMaPu
-MWFQKZRTtJyGMo0ID+w/DtLn8z7CMBd5L2+2+RTTY36fgwITehtBziIJC9xrFrQn
-x+VB2pYvprTRSCg6U7a/hf5T6WT9zj887C2UuIWE6pjLNTvwAqvGsSoAIpWJAV8D
-BRA1oicOA28RuP8+qgsQAwfcBR9Iuppp+q1mChXqSYV8oROMFqkTyQJ736IllJ7Q
-6eGiEMrOpTkYoFVyFqOJOEivxR+fWJ8xe+e/Kq02Vv0XANGyKias6mqrDnU2BBWu
-PXAo7y5wVuDnmyZS01LP555lNBVilvDsMC/qQrvHe3y0kp4IAbK1EMG3qbsNHCaH
-LRTwM+U9Z0CYnkClbB2gjcC9nbtF3nzoBebowdYytat6eFMrBfYRHAUfZbRN0x6/
-or+I7WV5gtT+GrfVuSxVrGLsK9FN8iXGikiqdL/8BhFntif4BUGdIQdft+UawmT4
-IlrBL/Owh2hul7UPtx4YqwQibGIZjopFSqBGp+j4VFUdapVxMraQLd/PUwZ78nHg
-F/IXBzhN3YrhryCxIGHrN4MN7OWZjO21F945tga1/FnIXsVBVECLiltnC9+/TBV0
-fE28aVca7EWBP+Ix2QWIRgQQEQIABgUCNu1OCwAKCRBd4kmWWwNYonyaAKCxLBst
-eoVfwn5g5Lug9QgVCMV76QCfRgQKXQv9zl4oO7Aa1Qljm9zEM3C5AY0ENs8HCBAG
-APc1hCpuXmaTDAUbIqS9CFHkihMnilIwAV+L2Dbq5eOPtoemPKx5+6xtZfzzY9/V
-CVwZCxY9Y5PEN9r/twUA478L/FOXv5E4BpX+4R91klt/EZGcNfDl2Ar56FpGJ3iL
-g4+vxx9m1TV5k2nNOUZAVD1L+MoapWhaZFXLMChrhDUcbo7/1Fr1Rfv9j/LkkIJJ
-hqf3G8HzE5AvCQVSywUayYZdbmqdiY2bklZJVFAXs1X9zSTGoFc8eOxz6i1ZeMq+
-GwADBgX/T7o5R+SOTlJ72ac/g121f1kFX1dbRkQq2pCI95qTehp1AxdSwG3ur2sl
-FCfi8ZDNUqkFXJrsv5mh1yfqq7zS5T6lGT5lOXCDZbAO2wqNZY1VKeeCdcvD2VMe
-h8XxJfy8y1ZK/iE1p8qnokYpA3nFH+JIsdrXk5ceiN3nKk+aDamUkV1sJzeEm5F7
-QHe60oBKbVGIUF4EhGq6daVyeCeK4KhWuPYyiEgyaq5/xJZbR3uRcdW6X5AiGJWJ
-OOQoGvWziEwEGBECAAwFAjbPBwgFCQbzyQAACgkQbH7huGIcwBN5FQCggakIOYzL
-X3lNq2WWgcAkSNm7kpoAnA69b3z2E5vxyD3bhggVUDX7j8hrmQGiBDbtSOkRBACU
-RhKnGIFyXIeX61GAY9hJA5FgG4UalV55ohdz4whBgDzDGLE3XYlO8HCn4ggKilll
-6MOwY0yZeg6PEU9Y3SqTzpQSV6qj2M7MgcS8xOpi6bNCu0iyZUik0KklUXMdI8e/
-CVmBpQJT9CofbD1dsP6z4dC6z3jil0+5Wbfw6yIXzwCgy/7Fagq5mN0H760/JEii
-XILS1n0D/3H26lTaxo1vGput9Td1FQN7Vn6YDP0/To5ipsOODROV3zyUwF5QleY+
-8zTFJA3qD5KxRfA726WELOF1mB6Mw44UdkPniOoGdMH5oSx6qnNnlVZBBu3U+e1q
-fQwLQjHu0WX4Z2q00DKpWLThGv7Loh5NKi6OfTbMhfHoevCAzQnmA/wKc6J8Gqth
-ENThKXxZaei3Ep0t+PlBmbUzuAYCXZhI6/0KyD6emyQ7LYIaPv9qEfMkMLhxicG0
-v/AAwOCBRKS3bkqc6wAYaO0bjUHJvem3HkWPux82t83+6YPyRnVjm/mwt0uEyKSv
-t7Md2DVrO3lEcKRkRHiYuf0nonPhl5Rs5bQaV2VybmVyIEtvY2ggPHdrQGdudXBn
-Lm9yZz6IWwQTEQIAGwUCNxrPkAUJDMl8gAMLCgMDFQMCAxYCAQIXgAAKCRBd4kmW
-WwNYol3CAJ47+zjeQIsMwiwcJvYfcsLn1yULlQCfUTKupaT6pw5culAis/pBrdBK
-ZciIRgQQEQIABgUCNxrRPQAKCRBsfuG4YhzAE4X0AJ43A7wbYbR6LTfPSD+fdBki
-mNvO8QCdFoSpfY+4FsKVagg/qH3KtGUARtSJAHUDBRA3GtFjHRn0wQyYV6UBAdGu
-Av9AM0o9XkmBbOLLNse8Qp9MjD8TC/oSXYxp1W9AjyRs83iqQ+vaZlbA/O5z2ud4
-I9DV4vwA50Lz5nLFbPHa+yuT8VxTl2icw5u9rZy3iSok3rGXzGOzENMmEFIVFqIE
-mPGIRgQQEQIABgUCNxrRowAKCRBot6uJV1SNzS34AKCErfsfa9Nh5deJ40nxpmSI
-8lK17gCfRYcU6i1B1Nbg2Zkkr5SqTnBtaWCIRgQQEQIABgUCN08fXQAKCRD27t8g
-GEvE2S2+AJ4udDl47EAnP4K+RvsWcv8qjqpzlgCeOFZZblzWjeie8oQfYl7bBBrx
-PqKIRgQQEQIABgUCN6cm/gAKCRCYNGXbIUOUIn7JAJ9LLXMt+0R8u4gdmxQeKz1T
-QyWoswCfYQh/tMjUzk4rKxBy4UtELnwJ9x+0C1dlcm5lciBLb2NoiFsEExECABsF
-AjbtSOoFCQzJfIADCwoDAxUDAgMWAgECF4AACgkQXeJJllsDWKK11gCfUgltInjq
-S+wGOrxfjiGjJsNmVtYAoJLaNHln4KYwLlYOo16kdcB7dqUDiQIeBBAUAwAGBQI3
-L1nUAAoJEGxMMaWx1RVnDcUH/24NeFhidBljDUrrjjkdFmM1Gjbc2KYi0lci663l
-7aPCwTcM24M49q2plu0YvrWCQBy4bbmvGYEnom5oAbmWrBfHW9ZuTTdWXBwVxk8r
-AI6fip4nE2fTq4++Q/aN6EpjMkXIrBIa/oJI9LVYRnzgDgunim7n1bsmBQ1SMjsl
-ARpVuwKXpswM2Hpn7Nw3Yx5/O5ZIxzFREjuHzOa7S7knO3AXy/3upY2lkHOVvEtI
-CA79FbS9/aTFuAZaSmtua9eKCcsLlKb1gmbrLw5u2SZ6mf1poDh0FLMmLnU0TqRi
-G5bDYPIqguoblqRkgUXbt6EUEYZKqX1XbM8+gQf5wMdNatsH/0PlPVyHdY8s8VC9
-UhoGmDH+kHcox0NaMbhSzcczOgvzNOvbcGzYFye9UbAw11cRWX0k40oh9dNAD/fv
-YW+ZsnGly1Dl2A7zkhcxwXfy7IxTVa6xWw7OV8PnCxlRziIEeSFgH4LuXdTwGVPb
-kFYHRp0H5mYN/N0Uj8b0d352c9axzVBpkusO8ehVW8WtUFNrd/IDWnCMBwEwD3Aa
-ciS316M526YNwA24Ahsg4wcJ7j0BEJGMEWpG3M0a4HvCGj2W7dh2D6FLHblzGciS
-PM+bb7u6VA8LOdZ1dRF9eQXDd/vmmOaVMgNSLWmg8pkFZqBW0AtATTMzDud3TJxZ
-KOIuNpKIRgQQEQIABgUCNzr5owAKCRB1D2SVyJ2TPoaLAJ0Z7QpI/+9LIRkz8YKV
-Be+MwPhG8wCgnDJMh1yM9ltCLMN4A7du2fYILBOIRgQQEQIABgUCNzcjxQAKCRD2
-7t8gGEvE2YdlAKCVZs8POchyc7F0Nb6TtiAD37+fTQCfVmNKImKm96tTEsQUcBtI
-FYjQie2JARUDBRA3Q97TUoBXRHZTQB0BAchxB/9iTH4O9RoIshiUysQgMpncn9o9
-snx+sCO/NiSuAVleHNBP1d/Kvo6SGLJYoVfbfLPMNVyuZ4jGi8JQjsgVjpAz93nI
-evhjz7Xwd3JpS9oUvPej1mdWnUB4AnkKQfN+5+eso9Gk7OC9cWq20lU9tpVMDIlO
-j8GHR9kYfJ4fBbzdCGbG5Z9pzo+96gDUMzX5ZrHlChdV4eHJPMi60XeK+mpocQFQ
-H3GBUSTeM3Sy93JoYJLdAA2ZcwMF5xI8HRx8u0rwCZNXnDTgPaRbDiW7587n3dWn
-7Pwmxu/CPtCQ4YO+WdjcKvHio7CqojtM8/7xuclkp3Wb1pE1s9w929ca9SHdmQBt
-AjBtg5QAAAEDALuW2Y7m90qyyiHDNcRl5i8NbaWXcJgPYj6u6I2rTJvGR8UGimr1
-zG1rQ69Uwvgsr9Mf7rR/8WrH3CDbKT0A9fJqiZ0utd9bJ9n3Vi00J+PcSULhcHiq
-qbQdGfTBDJhXpQAFEbQhV2VybmVyIEtvY2ggPHdlcm5lci5rb2NoQGd1dWcuZGU+
-iQCVAwUQNF+g6Y4HfUaLoGaNAQHPCAP/Z8dx0Ne5FFj5Ie8hURLB6KOy0H7b+xVG
-n4UIONHvgqDnvqwkd9MkLG1JKbOlpWl6VvnPhREYn8HKLkv0BTuELvlLVmcn4yMF
-PpV4/KT+vS4GsyRT+UwbuWT/LYHLceWX552PMmx3Cfpqg0+LJ6fgKHhQZMSC7Fiw
-urQcRL9S+iOJARUDBRM0QITaCen5CopyTkUBAf7UB/9AyVg+Usb7kTX2o/oCKUpB
-TM2R3VNYx6ddNLrqEYhXCQtVAOLpEKKaGcsyr8XsQ0DxtJvLIy6dxoHPl0fiSN+I
-OnWjrgtQtxOY3Utb1y2lMAh4sslmfDGgkuRRstRgoAMqogFccy3YHTNGaEU6oSNE
-34+EjtcJwd4dYeIN5QHnxAozJ6gn9Ab/vMvCc2AM3Y9WqrYTvYLfJ7kU6Rgtwd9Y
-rIFGufoF1SmEAHQvFm6NIaTyiFkVuJr7PGlZ0TzFIGFluNUaXAu6uZLZROOPEHIE
-2KF5QPogLe7k/qmyV3Q5+qemuJmh8/QIE/ahOTrmvnb1//WWzLaR9atU9ggUlcSc
-iQCVAwUQNDKd4aRYxL1Kcl8xAQEwEwP/UAO6GG5j2TI3s6PoM+sO3lKk9AMZLQm3
-DfK4g+h537HLOWsS4vYd5o6PU726umfxcs3tXbVqOTOWqzGcaQ66J9sT1RPrujZv
-a8KV0JxjidXmf5TWycwPA2/5GRwSA1rwA2JaSbTdQi13v8WkcNA/QUiBs8Q/BGgE
-3zsjiBp5t9GJAJUDBRA0NRLDFE2blK6PfPUBAYxMA/9RpdcyE/NyOMvEFbQBxxN0
-dS0uL4r6tLk83HF5/aedqwSEJ0rgaQz2fAmCw/QRnEIbdlIAiVYiBDcwrdkBXUC7
-mksqiVGMXIRkXjbTAC2ITtX7iXDcUKo2hcMkQULcFbjfWTHXACEOT1Vogcdp1hyh
-/h12YwtA5bZwnssMQQFb9YkAlQMFEDQz9VAiZsaFTfdptQEBFygD/156sMFkY8K4
-bISZAFyvbgo8kda/8RkgqXkMz9ifPVhllvMty8QXDDfia9jSMJ+hVwIoh4UUEwqJ
-Iqs4y2hULpxAwqmaET2FhFK3DgTRtx/QEP+y16l1W2nBGcbxIM/Zlua2DKNhP/tP
-hi3r/R/o3/Q0LsT2p+rhmWlTe4IYa7/jiQCVAwUQNDPySnaw9XG4JAR1AQFzlgP9
-GLG8VwtM7UfOdtuWs7RYzNBz5HipDnQKYKlZwUzC9V5Aej9vGjEaCA0ya5VPRup/
-syiVkNIk1L3ogA3fa5/bm1geARGdBoyGaLVpIe9EOHiPEW7yAZWAvqVaK3+8ENb8
-GIUEIfqxkkmsZK5J2l5xO1pYLw4kYOgpM70+oAD8dBGJAHUDBRA0MlLHTXV4WztU
-4BkBAZ0pAv95reoPY4/fBVPNe9+NAvUKixfjDIq6wEGF2327a85P4paSJGTWjfmc
-g4a5kse1IVANjwJUM6SqDqDixVs5xOXxBTAcD4DgBUMifBObWbgGTih4IjCTgGnq
-YN1bXWDbyT+JARUCBRI0MhY+b9jjA8N5ozEBAa8FCACoaHMD/bUrugv8vlLlfP/9
-47snyGC+qoZdZ3Xd2s3Ldsdso+ftPGKWQDdxrbiy37pg9kN1JQcswKqDXpg4zJAX
-yASRftkdY9pxWhSkKZLPW5Denpbf67lQKRGmBA3zAFsnHlmkEGp6rmr/fWiRqg2P
-MDaCERbJHkuX5TQLzsxjulzs+U0cYKvRk06GG1/WNT4f1qDlTJPp7EhiKbdCpZiu
-6IItJRyKbSXfArssxbXD/tDpxZ8AVC+XesaO3euDo5aD0ngfaHm6R/kk2JHJuS6m
-Zq1Qz45UxGR/3ePNTraRvJmkkEeJBm7HElouSGm/ZGBaJv2luR+3ATL9meaOTGUg
-iQCVAwUQNC9aOHjfXfFhHz81AQHftAQAiL29H2H16efPxWLtE1TjXeHVmhmPF8Rs
-6mRACMT8utn8vlaJZ2hK1KLKoIs+jI+lBp+JTydM6vUqZjhGBx4k2DEhbg6JIyhK
-+uFzaSo/6yRvwDYHj7jsCqOvl9IBV9V+sMyoMaKt46C6FD+F/0E5iwzSCz5E523I
-tY+0yNGcWW+IPwMFEDPypBKPqVFPlg4pchECe1IAn1K1IQwGgW+TyJFaldvr4sM0
-tRbMAJ9PyJjcjHC8wXqOMIetu7FCQvtyFIkBFQMFEDQww7vnr00jJ6oPcQEBMgAH
-/i0I9nWwtY7TuDZkKmI/UeVil/k8Q1pe1pqwW+FZyHt5R7cOSy4wQ/MHkadq6hBk
-CS6EQaSgR+t8vcBe1cf5Yyba3t0hxMEPindeR5n4+AmkqIBJcPK6X2u6Zde8zFIv
-gpXtqv4XVknTJwLHavZq7Sms9qjvSEMDMtPLXqGtaC90dIrv7DBpg7lM8IvkkOZw
-H50cpbvao1Q4PSnFt7S4KSRv6APF5VfbylkSQgg4wxX94Czluz+yZX54mpZP8TJ9
-UEOjuF4XZp7ImPl5zE044OvzzEoXuoSmprMJDjGG8Vj5ifr680Jxh+Shls6fRdAC
-+p9rZVpv3ChUhVJoOOL+aU+JAHUDBRA0MLbfcV94PgdgYEkBAWHpAv9cKCbk7er2
-RamC2zUwcqgeiHu/FJJAZI/aTt+U0/VQHae/iwq/IYzx4koCm5E4ih1xORxwzipd
-oG5e6cyvmQmW8Mk+b40vMrKG1A/Z9YjvEZjCIKIHb2CbUYUyN26vhqaJARUDBRA0
-MFH1+MN2oaLFF0kBAT6YB/4nKolkRUXA3BnaFIgx7B6QLWvs33un3biep9kqfOfr
-B4WkTzQoglJa0RXMjRe8eVUI6dL5ZHGfvPHCs5NutwQ7LSChVs2BSw/nKllrb8Qz
-njq7LIlO+APSfADjlDhs/mwaGOHQbrev1XCi/uK0V7hEMEYzyJsadlOv2Eejjr2O
-miYdI15q9xpRjISpyvgZulCZ2klOef8fQD58yXtkdGhpyU3H1mSzGKG4JGuRC9Q5
-ve5EP2UUiEK83ARqt03rZ0o4oleafVM63Jqdm+eZaKBTkCYa6ToWmwKWbenm++WJ
-3riLj19m329bmSuzZd9R69HigvQjJSX6pbYc3QMiUOIBiQCVAwUQNC9u/bByAnBQ
-8yElAQFUEgP+I61LwJB8zG0bQSat9p5VRTxH+l6AGZVYMFQsCnwItO11/GNXOz/o
-NfDRGiBcxFGXZoV+7VinTGEFiMgjoqq578XMAVdj1U0XWl6qc+3sAN16m1gymllr
-ywaf0EFG70WzDr3PomTKq8yJXEZwrLdcSlUavQkfHxe3oFh2tQuIqvaJAHUDBRA0
-LryfqNlH+e2VR+0BAVpiAv41RgSP+xf0znGrU5FfRKxU8yk1qYc7ckFKZlIjOOKj
-HkwCqgU4KKACSie7OTloHL9tEfLVyYME7F/iY2HOsfw3oiQa88TvRyKYOdsW+v6G
-hlKMirG0Qs1mwu4tVq8s8BeJAJUDBRA0Lq9ahwK4eWctBcEBAdvWBAC6CnrZpXMM
-K7Pie19eyaUZstjujmhldggp08/iuI6PiKZwmHpxKBgUvo4zN4in1Vb88ejaaTyS
-R2TPm6J/kuo6QS4jGCtrunVir8svhhWFYZB4PyHCma766Vig87DjR1VhLfo/Cscg
-f1p82GXw6vk7ZUgchaehD772vqDCeAVA7IkAlQMFEDMeeSHWw0q1fWuuhQEBamEE
-AJ2G6qbsYeiJem1D9jkXoGK8KPGv1yH6A9KNosyGrSQEdU75NtfJV59VUZWAJi8U
-+OjMzw8RXKRAC1j/94njvloZeMX4E4CGXbPQgyRAoIkwTGgQMdtyPSMggxnb/6m2
-C1sVLInYNDe+8J1vD/WTI8dM98/4va7jQZYwhhUFvKi6iQCVAwUQMx7v5RmzKaWf
-scbZAQHMwQP/cvQPI8r+7o/IB3UB2mNQ4NORZNmNnpcDa5tzohdexlamYKAH/bi/
-yOwncMiy9QPcp7nmROvrFX5q76YCTA5CpZRNRZ9AKRKtIOVtQnVU8HOHJOm7OMGi
-m17ujdHpdd9wuILmNjp4JfRC0saEqkuNOvm5GF/V9g4MawAZeYIHIO+JAHUCBRAz
-LpQwHRn0wQyYV6UBAdXgAwCN0VQjIW2lOvmOTJlJ3fL//QkY7TP1T2EtXF4EELC9
-0RDGyul5O1V2ql4pnEc3UaE8Ji+AsVkBCVw+H8Zzy7247vBVKAlzfNgoVOEqlB69
-0X+vONMId+CKB/ki6LSqKoGJAJUDBRAzHbZsC3OAb8QPTp0BAWLSBACSiypMxbL7
-V5RduLZrMUrdFfkRF/3CU3uaqHtO/Bw9e9VbNQBGfBG/7iSTe45YjXyrlQ+Kzsof
-cpg5V5Gs93xtunpKOEGHzai6tMRBRcsENCIjVXVxlmbDAR2WcCeEWeReAwE0zaru
-gF59EcAN9gN8aj3TBfKtVUv4aKEM2nNTA4kAlQMFEDMdQWc5a99QvA5HcQEBs5gD
-/3QkisqbGHA/qq5qF4U6OM+jEMYRmkYkQ7B6MQHJiP4CA40JGZBLcHJ225sD6eb/
-fYMV4byl792cW8Zz5CA1bnrSErbULYomPvaaGNGWD+druPPj8yYEC/mTrVDuuhaL
-SvDH5H01IfGmyELwD3bOa+jzD9fNVKiALyknTiNydjpiiQCVAwUQMx0+21r0vCW+
-5ILdAQG88wP/dMkaugeEdiMeGISkNllWzN5FDRy9Uj+4suLnKrdbgXonLjsMXxVy
-QDubDRtes4w0AI3sl7u7JpTzmq8kLbCChCkUZ0WWSOaQDAMCNH6SgTKyITwWiaI4
-eG8SkRj9KNJLiOPgg+aBXxWrrpeM/D6LtnRGw8s4h/rvJkfHKk2IGJiJAJUDBRAz
-HHCkqurobv/vwPkBAejZBACOenorE6XpW+/mstD/iuPc56a8XshRSrfjFvbmL8FK
-8YFSkNBVSaG/+oh9a8OpYZl53Iz4CU1J9RY9ac/jVLw4f6VwREfaDZ0YoaXuQfUX
-YHEHJmWpEQebarrbjA88DflEte1cjHTrJiMu0ntv4UIBfo9SBmS1liTmDCN2gAas
-LYkAlQMFEDMa9wIoLpzt/nc8ZQEBSjMD/2X+oqZypuLxG0uwpBKHe8d2z13bbNxu
-S4k8FKg6/YPuLZUuyFpAWOr7ra5hkYTqdTVY/mxlwEO5aOhfi3g2t9+c4b/VH0PS
-3W30XjsPvscnOO+j4nnZI3nbRgdxtPxWgd09GgQ5c83i3OG+fYZqlVV1oCVYzQwu
-WiE0fcj2Nqn2iQB1AwUQMxmVQCfJeCVLKSvFAQGe7AL+NdsUv6POzYdAK6jiDJWs
-+VSSxAIthmM2dm3DVxrr3sZXc2EGFJdH1YctAf5laelPODaIvdZhJ2L21s+zvyJj
-UVJ3gQbwf1XvTShAbx2UgIXlbZWPNHt8HI2iwozvRZJdiQEVAwUQMxYGwYLLW315
-yRYdAQEfMwf+OauwfBI+sDlHTnlUJO4PN1LQAn625aSojKpBCmpuiy3z0fGl6vcy
-aMslqz9Um/wSF65Te9D1rywbZKeVYou3MWqmTtMKTKr8fduW5vRqBERs2diEcdMZ
-AUJglviVaNa8yN8/43mO+UtycOpA+Whd8A6DLtb3Q86ioWuy+HF2mdeCguvPI02N
-rU7U1GP4J2/8aYlg2LqxB7jfOZdZ4DuzIsozDrTnyOgOoQkUqd2BKndnL/JeY5s5
-n8cLY4nADeDMRoC7w+p3Wy/AYgbOeq1M0Kf2TX6sy8k9rGCWDs9cglLbzaGYGX0B
-wmXCaHYZQKzCX3+yP5ERZNvxKAlRuQVynokAlQMFEDB1uhUw9+yDGKhcwQEBD8sD
-/0EVNn1P3k/9O2zF4LuWb2KaTaak1AIES9eTbzoVCcYW0Oh0Z8F9wflJ4odpQ3EV
-pevf2sMZS2hMT3yIBfeqAISV/hXavOCgcum5DMKDdTfl1+zWsjGWlxIOTmK9oek9
-XdK/6aWpYvTj3L7dsZpl4CfAzqS8Yw/a5xxL1TpxuGnDiEYEEBECAAYFAjca1F8A
-CgkQXeJJllsDWKKRZQCgilK5fO438Ijrd1m1PtEvtz8q1ZQAn3b1IC1Ov1KWlKDE
-wLxWTVPWLn9JiQEVAwUTNxycWdImKUTOasbBAQEnHAf/ahq4b4mVQLfMFSyhaFFD
-CqjsN2po+XuwfmgIYMpLjHgJEDbdTXk2JwMjujHoSLOTAKOTR1GvUR5Er5GovVv/
-ZPjYHqfKc4uFEbYDQE8dFEktygvicp+g9Kj/p0gL7eJWWIYSX3QplkPluc42tUlC
-RGNkvwCj70imahiHxeNLnEwsQX2gBCoCQD3edUGbnqUqZovWSX4zd0kW00q1UHx1
-7VleJ8OzwfKQPjaphW1yx4IrFleELdRMblgs2E++BkofxYEKvfNxHXeEUPG55xSa
-7QxWG8TOgrIFhi3SuuqfJavHBu/iBJNRYflluCxONzVJgpnHPqGs9Cd9hbM2TOeU
-VYkBFQMFEzTEvjcJ3HA5OfN/XQEBM4IH/RDpaunPA8yh+MePngyIYspU/75h/DN2
-+ewfFWlNktnlTHwSsOycua9QamGctUQtnASQQZGOWftrX2H2gvxRhlpX4hxHq1DT
-oVvWV1H6r7ede0FjMaGV5d2AlBIosmTM8Xva29jQMdQH/8ZRX0gEtAy98bwh/8AW
-yKHiJeL3oM61QBt64iGcyVbAskV4aMsuxfW7odJfffHLhsZfq/9RwdtNJJhrHNv3
-YZH/Gk/Ze3ffaE4VGQNkvnaDbsdLRSsQlZ0BVluHbkptkSXsLrNf/zY5nmdMTOIe
-jbR45Lo2u3b6AtJ4D1fmH/6pTHfSRM/PYtQ8FDIiosImQczz7SrmP1yJAKIDBRM0
-xL4dkV5OLNsIkwkBAWsaBGUQCQbUVhTi59PGxrGEVnLvG/XznbtjGmWzqZIKLUcv
-nmcmhx7pMj5nfgyss5qJmWN5A/cRSDMD5yzWwVFqCjirPbBLwxyZD3DQU1BAzPi9
-WD0JWLUlRV3gRZi8mkDyzAN3lv34Ch1gUSx/G31ndo/4BxYVvXRGVVWw3D0SE5tz
-ogyfAA4cIQj2+nkXPMWJAJUDBRA3HKvpTKNNLIhJ3D0BAd/7A/4r6rqEhDT22SBp
-hoMuVYotu7F49eozig7vaqLvQaSDQ9XmdTiXfrxHpbnGBHxmTGVCWDzmwnRsvrBb
-9KMzPuk/2GSE3CTTHcgWQYxNgbyLoa3w2bvHvR3MmiIL4Dj3o+vJgLSu8ZV/46by
-Pm5N7EEGNv+OkmEBD9Iap4N4IeF44LQuV2VybmVyIEtvY2ggKG1laW4gYWx0ZXIg
-a2V5KSA8d2tAY29tcHV0ZXIub3JnPokAdQMFEzYbYzIdGfTBDJhXpQEBIooC/jDO
-Yrtr1n6DQof7pbx98iHOtCjzAMBT1fVYkrMmNLbTm3HiaZ2cC3nzJF4Fz/7kddMj
-wgpHwiAX4tVcpYAa/k/kCoaGc8x5BIKzUlh1/0w+9t7fiMPzADUtNYVef179xYhG
-BBARAgAGBQI3GtRpAAoJEF3iSZZbA1ii9GIAn10kFV+PH2UYBGgVeYCJ5iswYOub
-AJkBDI7hajSe1D6Krh2j0zf8VMWOIA==
-=TbxO
+mQGiBDVBlNMRBADeX96LvyNiop30YPeeCBJZzeqQuQ3yQ+SK3AHoXLQ1qsGHrdoi
+HfHbVV2GfulRq+H/z97vUtA3APE2NZ7HuvBJzhXZCOE93wT59OZV8Pp5ir6TAEYm
+dvPCgvjYmwQvKgvaF0hG4eyvQst7SaevFUGV+jEz5DQhniy+/a2/W7nC/QCg/2SE
+nBeZNJnZauf9cXQ34GnXV68D/1BspMcbrpY/YFXsdLUSbroG0EXGma4jY9UlcRV8
+8cIftxl2jh04l91bvzzCFgSGvFdxVbHWnIgbQ+PQ1cme7SsS3ZFFI3B3zykXGOi8
+shhOT/Gip1Tk4O6MwTyOWdTdnEGSjk+qoVwEMxhY/ZZDd3bbUkymrPK5jtfumreB
+JjqwA/wL5fOdCzLWBev4/Xks2YENg0HVwN3a3iypNNGZOYCWTZKnFX5yel/mqiT0
+uEn1CJ5w29GKxRax/Ua9kr7ftMhpQ8lZdyy4Z/Br0NiU9fgvmWF/2WvOMx+hHf/k
+LRUYewxzOSLfapiM1SOQs/L+29tnu4wfAsezSuFfKjKVZHlx4rQnQnJpYW4gV2Fy
+bmVyIChob21lKSA8d2FybmVyQGxvdGhhci5jb20+iF0EExECAB0FAjZYxf4FCQPf
+GysDCwQDBRUDAgYBAxYCAQIXgAAKCRCQOaC/0TnMTJJUAKC0jAhA3fXI2UCbfZ6J
+Ti3CL0bcMQCgpA7pEUYM7edUlxqFJfWYtBblS5u5Ag0ENUGU1BAIAPZCV7cIfwgX
+cqK61qlC8wXo+VMROU+28W65Szgg2gGnVqMU6Y9AVfPQB8bLQ6mUrfdMZIZJ+AyD
+vWXpF9Sh01D49Vlf3HZSTz09jdvOmeFXklnN/biudE/F/Ha8g8VHMGHOfMlm/xX5
+u/2RXscBqtNbno2gpXI61Brwv0YAWCvl9Ij9WE5J280gtJ3kkQc2azNsOA1FHQ98
+iLMcfFstjvbzySPAQ/ClWxiNjrtVjLhdONM0/XwXV0OjHRhs3jMhLLUq/zzhsSlA
+GBGNfISnCnLWhsQDGcgHKXrKlQzZlp+r0ApQmwJG0wg9ZqRdQZ+cfL2JSyIZJrqr
+ol7DVekyCzsAAgIH/AlcnP6QSKd67ad/1lQpzMEBNyIX0X7//lns6XAGl/+U5Iqx
+i+8sd+oJikFlgVH+n0JD6vq4dO8XCBzUgIi3xV2cuJqj16zVp7JdMXKqIxkDu5Q/
+By3/IL7WWkc06FxyDraigP1Hu3W78l0lySK8yEW+fVlkyzK6irkJ7EFWkSDaZqT2
+IrPd94hoGFEyQOIgkYdy2DHoK00nUd9FzIbhrrz2ZDJIfCMVp2go4oCu6Zk0LxJX
+qTFU7K3SxVNN5jWsOCsPzWLyhKNrgnv8WzVaPKgqgMNdmdykAvC0iSTNat51p8Ad
+4mGtY1nW0aOAiufjBTMUtILfHKsknItj/P2D4seITAQYEQIADAUCNljGDQUJA98b
+OQAKCRCQOaC/0TnMTHKtAJsHojLJup9Niwsutt68U02uyl13BwCgpovl3ebeH41a
+k2Kp37si/9RsdICZAaIENt243BEEAOCNfiVnzetemJ2DpFA51QnnGUihYs0beBQ2
+ptJP47uLlxsZbix2Gg3wDCP7HNgcEWlXc29vrd2oiA9nanKLcJzLYVL0lBBbPVX4
+8PGvRFKvJVHI17LWqpq3aOF8kOSf/4QyRIafWdGzxvAFycAiq2Bs1/B7BeUqmhWO
+3FXs6VNLAKDqqMUc7apbVRFSV6/kbQ8PLTYw0QP/dRwVX9NtBEogFNoSU4jw1sRg
++nqGQplE9OXESMQO3fiszBkCWghsKk+/O+HcFrIiSAxRPR3y8nXCsaLQEf4WfrD7
+nKFeGWDIqPvi3KJOzuaqZP3DMf4LdfltmM/zHifZo4aBkkIQd6703vBFAYA0lONH
++W5qyx0ZnYr7XunDqkMD/2JC3cogap2H6IzaHl9oQegGKGwrCErBuJxCeL9i7h/+
+5Wg8ou6TE8kAGf1oMeeWwrWOBxub4xsUqfYk+mKM//O2OkCMfVFQgQQtjy5CtFQx
+X5AErQ4Ukoy8XmNGOAi9ipWpL0450XwNvusaeff4D1ztJbCb+LMkqI9gYEQWSwxF
+tCNKLiBNaWNoYWVsIEFzaGxleSA8amFzaGxleUBhY20ub3JnPohVBBMRAgAVBQI3
+RcCEAwsKAwMVAwIDFgIBAheAAAoJEAcDKpaJBMjiiuQAni3iUNjDvqvOQOlIgz1d
+5ibjHrA8AKDWPy7kZN+W3Leptp3FYTIMTbDpU7kBDQQ23bjuEAQAl1Txo5tRemsP
+8mNmoBlGQx/4EmN61ga/V8iBS7u7MvzI1zktNuHaK7rJItE4ilyGeivXitZ74eGV
+7P2/rbNhWnOo1fMlvLvl8mDNmLD2nJovu4LVFXGhoYdGb75d2YbCCBN5Q/BSYh+l
+b2wd6VewnqMy6A9iGULaAWz10G2IOYMAAwYD/iooRihzfIC6rw6K2kASGRiy/dts
+3w0L9Iu5DsxLFH2tHUpv8fPVDuvGkRfwPuKaTHAvq90/I46/3BBTOOneMaW1+RAL
+hM5f4ytsYNlDDerhRiuGyEjoGtXVjXye/3SwIxISrg0EO7UHNtr4rObQEfF69RcT
+gjzKdO2n2WlP+7/qiEwEGBECAAwFAjdVLZwFCQHwga4ACgkQBwMqlokEyOIEvwCe
+IHFkUaLTPmaZhAOs3yfwDtAC33gAn3f2BoDALaHL1uqu/unWQA1JZRTYmQGiBDfj
+Y5kRBADMfdIcB6LbzfMZAe9+3GMqLgx5fUEhX9GVZIxb3w+ZBGbJGrERMtEigd+S
+Y2xR9TWyhd/eVh80qcgGzA9Fyb6IOdVwN6HxtYdIz4CZP6ZmtSM8jecfbbKsf/Ol
+BJQ6RZlAWNjE6F2r1D/gHpw1ZEl+lSlW3ObCEkeXBC/er/fIowCgwia77SmSgm3b
+GgHEqfFQ8MID6lsD/0h45kDwi3K8WhI6lnZP0zpnNfA6753QaA9NqB8MY36YCVtx
+OhBm7GUCgKyfh9zrTpZWwcBcAQyyB8Ld3K7cWi0uLy+gO2169cRApR0S1l6BlkbO
+9wlv1zoRR1VT2gQCMGw6mjyne99v4Hst7UXV/nXvOsdrxdS5tTkAEL7Alzz0BACc
+imFIsBD1CKqqN0fTdZooVrBZzpn6ZjTgzX1hKr61fuFyPgMkhzutN2jXy8tweCZw
+FmN5XZ9cu7mxAdN9Xmwk7Kl0EGChwZdm7Sx9UTvu9kJnGOQvqtOkWB86Ts+r4fVb
+w65BqcrZZzuMQrUqliM/YVUGazN/w2uyApNPByJUzbQ4TWljaGFlbCBSb3RoIChV
+c2VkIGZvciBrZXkgc2lnbmF0dXJlcykgPG1yb3RoQGdudXBnLm9yZz6IVQQTEQIA
+FQUCN+NjmQMLCgMDFQMCAxYCAQIXgAAKCRDKFfq6GxOtQUZWAJ40vGK1b1f2KN7u
+BHOHLDAHvnuPLwCfXHyq3wGapWGDw6txlP9LMec1jf2JAJQDBRA342hqcwhlf6d9
+2r0BAenKA/d9luNiVpPciTyfM9W4GybmWSlLt0qxrY34WSNL5IOG6P2H335skdAC
+xSUlwBSkD2IzoaQ0LAyGw0jsk8yWhfQqgjWxjZ0zcmKHZJZsMLwtvA4FeOSQuscf
+kYsbA3vZWotYO1o9jyfAZTj0MeALzGEmxBeGUNiKUEnbBU0Lg+c8iEYEEBECAAYF
+AjfjadIACgkQAJxC28xc8YI7iQCfboS4b2tqYvml31ouMT6XPHhTsYMAnRGQId+W
+7mOHlWHvrddjwu8JHms6mQGiBDbYl60RBACxaonXMHpbmyzoQyxn7wYXGpEJZnKc
+IWRc/sE++XSebUZMJOk09qkKhtg1TQ8D0Siv1/EjuqjoKP2f9+EOIW55+55vQsti
+XwevF6pJBFYGGRluQPoFbUilDzCDmismFv0xwIEoOLftxvyvlmmw4Upx3/8TY83f
+dQGzxSDvNbPEtwCguK4ARxZub/SQgLMy6S9/7itEfHcD/RXRVGmz3dDxXtgdAqwV
+mY7RI+FOPQdn+DiFaaTjmqgP+NR6w5v72+jE5cdn/OnYmXQcERXc/4nZgWHdKmso
+eLvLs0hpk9zFhgHkSufCWlo0ZYemaWRYrRI5mukGFIMbPdPEaySNQEqC78Rgj2wm
+FJ2ttbAQlSRi332xTwFbzY4XA/9RppZOE9hGCh+2P4FgtHMgf7L8JUJVgR9tIKUv
+GXjDkSWEqIMeyKeXFoPk5QdxNVM5sRYf6gmV6U3zHUOfEzlOf5GUJyPkmwl9RADE
+6uyk4ySlW2d6+glsM0/Fd9Pyyzb0v6xfAPDFyTYU1X6vUDp0FyzPUijhbrdj4Fwm
+fAVf3LQeTWljaGFlbCBSb3RoIDxtcm90aEBnbnVwZy5vcmc+iFsEExECABsFAjfi
+yIQFCQlnNJ8DCwoDAxUDAgMWAgECF4AACgkQAJxC28xc8YKnHACeMFOdlg4xjXgE
+FzyA7MQFxyXmyuoAnRCcbQ4bvEm/fxaaBFRnJgavm25LiQCVAwUQN+NpSnMIZX+n
+fdq9AQF72gP7ByZG6W8yTz+1nv+CMvGIGLa4otN812X5lXvvIpH7bNgoWWD70xvH
+5GP/Q5e3yUh4aGGN59uOVVQ5uoa3VFYl1ufWt2LvxaSW2q7f0FcvEref/5biu3gx
+2O296DWENYPP3xZtaD+htaDP4h18RFBIvbZz9Ryp9C8myGEPQGcOxw+IRgQQEQIA
+BgUCN+NqjQAKCRDKFfq6GxOtQfhaAJ9bMyNoYhAf3jkeMy1cnXoyr9ZbwQCfeWjK
+xnAa+++nbYVEnuPP2gUdume0Hk1pY2hhZWwgUm90aCA8bXJvdGhAbmVzc2llLmRl
+PohbBBMRAgAbBQI34siUBQkJZzSfAwsKAwMVAwIDFgIBAheAAAoJEACcQtvMXPGC
+iF4AniaC76L0oLBvc0jA40NCXMDz4PX2AJ9RGPnHKf0XmaRXcTOlR8MiH1CeoLkB
+zQQ22JgDEAcAqtpFls8cnLDIh1r6gSRf8sYiv5qd+a8CDd/LWHveWeGCeuBiVbwv
+SG0q9ci13ZRIEtHXi0BVWLBpz/YqQCHJX4Vk2iV6yY7rCo0rFOEzyco+Glssjg1G
+/ZCuVkGo4rpLKqOn6oXq92ojwBNjdYeBOOoZ78jp65gJ3OC0ckYanrRUe3J9bc0W
+lAA+to/Dus91Ivkggu/iH5DEPrf/PQY14t7jxCcxBJCa8XaC04LrXVphPuuRziVe
+gINTU02fdyrZlAyWf+0KZq5rMza1N+NwSxjkxBOzM+lbhA5PSekqHp8AAwUG/12f
+DRpOtZ/GrKoUgkML8urMjxKFD4Hh6l1Wb5NCEe4tIm38yI+C/AwMCY5cDlf03YOZ
+0ThTVjpvQfYT8EJuPbZ+2dGYEroY3OBLetcg6DDh4saKsVU2XSLHyCh2xPzOiusB
+xNPrmvqd63S7JnRSSsEfgwYpKpA/GNMSJyyFpT4vtvK3jOON0v7uobYOBTLRuwj3
+OJMJfyQDa6WyiTJxUvsuQL0MK5cZG7oLUWTK9ZrFPuqzLeZAcpIgJ/QMJ/PnrRnZ
+gUnXEbsnCVZ33NVBtiK/ktS2RTQKcvCNPtnimRqsiEwEGBECAAwFAjbYmAMFCQlm
+AYAACgkQAJxC28xc8YJTTACgmUYdFZGR8pk9NbB4lpnKnum15WUAoIgDLWQA+qb1
+EPtpywwRBvqGOVUPmQGiBDgf7uARBADdNye00iQMSe4RULS0hDKVGNl1CFGzeol+
+AoNkW9bqXD3f9KNrWD11r9tef6C4OMN2fILO7cpD+YZwuHjXv6xSDAoZ31bmsxQn
+N51YhwFhZRh8K/XheaULO9gedCZaXndQ8dvXGC/doKKOo/CNGK8gct+cPPr0N6cu
+FztlgRpbqwCgm8u3ylalEvlWhXOjVYoTnEs04aMEAJVK0ZcYjHUdXWXi+TaDZCJq
+ktk/r2E4M4/EsBTIkuAuy6RvPediVShRQ/CZl0MCQHM17ywdC+PXgOmQLeGbR8m8
+flK9HROJQebHB23/MK2knm/yKgqSJbtoDv23QRfZjNd1aox50uFLvv36CDMhAMQ4
+ENHrBzuj5bMZo8nMELVaBACPlGKAcAO2FP6DpmcJIXDnO+oVHvs4QMzADn+/aBQp
+H3UQASAbu7aH/84SLBUH0h1Z9QNkKLuMtpC0rVHqRsw4d4FmOxoxvOF8hQnICiQr
+2XRMDKZwR/+gH9Vh2XFRi4j/xHH2h787C6bKoOPd6UPJM1HdxNPQlG89fb4hgv/e
+WbQ+TmlpYmUgWXV0YWthIChHTlUvTGludXggb24gU3VwZXJIIFByb2plY3QpIDxn
+bmlpYmVAY2hyb290Lm9yZz6IWwQTEQIAGwUCOB/u4AUJA8JnAAMLCgMDFQMCAxYC
+AQIXgAAKCRDj8lhUEo8OeTsQAJ96XKYFFJuwup2Mce9mDk6EOnEEdACdFp6gwm6x
+T6Hm1FD53oKNgrnafhqIRgQQEQIABgUCOB/w/QAKCRC+6Lh52/bl/+myAJ0UubvN
+9ydWvrdgkKbfokKJTrOC0wCgooxVzceD44Oo/C1kaHjXv5yFQeKIRgQQEQIABgUC
+OClPHgAKCRBd4kmWWwNYol/nAJ0YXC3/sGqBaddoLqoLpo1kapcthACglrEi6n5z
+6OcQO+II4Fe6wFOisYu5AQ0EOB/u8RAEALec6/ux2Py+0Wv/w5J/VmDzUNDOHQJM
+kxTEQbp+vZ80Quf8FoMy8i9PciekoDl+oB8/zQDs92SgqGVD0+y8K9UPIEvmifjr
+oPn+EsIrXf8M7dGGotCtwaiEwDxwmetlQMYLd84XqLj0LgGzdT3/7dMurhUiGZH7
+dpWMfUZAVNjHAAMFA/9iLg3F0Bqi1dVDeCMqOVCOcWKhulFG80il3TwS9Q7SpvJX
+/4yZyoEdyJ/VYm4PakvDUyiy4MuhsvGSwCEyXD4IskEkmlf97jDoBiiktexkjlKI
+vmp7P0XNQMURXFLqDilI9YY2jVAu4XNw+G0G1ImGgzbadbraUl1J1uJtvg+NOYhM
+BBgRAgAMBQI4H+7xBQkDwmcAAAoJEOPyWFQSjw55J58An1UbKjszsK+9Awtz3a+5
+gNiuzdo5AKCE5Pv3w56DMeZLH8GyZkVqo1QsrZkBogQ3KcaNEQQAsRxnSrRpASl8
+e0lOtR3C7I1MoCuivlawh48JzC9WXgA/Pgn+VOLiDDob/zjQoNbBEoG+BHrwq+AC
+CVBQFAiMMNur8u7qY+R4eLWD/KDKaNcydchdKehw0eiy7d9mv0hTHSmkUIgIpy4k
+d+XvsbozP40+/G+yNjGEHvJf3tsO8ocAoP4wWPnUPNwWkuKn41tR3cb2m+ZlA/0Q
+lIn4E3Na3o0AhhuLC3YrJ4X4rHJmUJg+i2mS3lJCM3HPJRCdz/eIlU4WiaBpNPve
+PMEeg5KSluqdYOsCvBa6XsAGm8gxQ2Wzf6ZqsXdBxztjwXqcLeuBKFfuDUlwloYI
+Rie+naIgPasYwu3ABG4peRJmc8aRXJCg39rE8MK4BAP+Pt+NqJQw9S9ykLDDIXDD
+ucH7YOBxfvUo18lPr+iNuPcbXh3fQQoibk4qK0w699YLGD25KizP+FTiCrD2fy9i
+knUplevJkGDTdeDLrAPYVYTM2hryLPcisSP55Yf0GW6SnkFbE5LKYHo5YQF+9rvp
+yUCR4xXm6CXo9m9FKBuuk5i0Hk5pa2xhcyBIZXJuYWV1cyA8bmhAZGYubHRoLnNl
+PohbBBMRAgAbBQI3KcaNBQklmAYAAwsKAwMVAwIDFgIBAheAAAoJEHUPZJXInZM+
+i40AoIykcWzV7PpBoEG4MbTXTNpKBeTIAJ9tJcXW7S/ox+iJGOrBXgSlB7bXnIhG
+BBARAgAGBQI3NDnLAAoJEF3iSZZbA1iipZEAoKm4vkXn0/4KC0aZp5o2U5zyErZe
+AKDF3mdMyHEumx4xSWJyX4TvDZ+3ybkCDQQ3Kc4MEAgAsgkRCXJQLlHgk4Fu1Jk+
+UKEDdMZYufSOGR0D57WxbRtArPqDMox1NqFHGi8Sg88TtDwH6/BnGkYCOuBQidaE
+BPQtl7jeU6fQhXL4kRY3KB50/ChzzUB/G+LsT8COCUIsNDiBQxwEiLTEOMFAqbRA
+ugQhZnUKrf0auZKnB53RPhAuIdGozC+k9+vJl0l76e+JcVr8AL6wWBQO00UbKgp+
+MKiWjFDSYIFtMNrXO9rfHW1n3jW79bvAVyFl9rwEbL0gbSWmaZKXIWI7D11J8aYF
+3ppDk5UsCc0Cs70okV9d58s0PjnTqwAcVxZcyoO81qJVOPesRVJ4jURdGeSBTqNM
+rwADBwgArjJRLMSTveaC2tELGSr7qBioUJ9FbFk0A5D8vH3Xcr34E/m0sgNGJSD3
+qWQNXN0OpH7hKdeiwEPLE8gR/Tnxwgb+r3S0dBViktQPMajdW5S/dJfusTdqBzo2
+LgdZ24lVl1O0ZKci+6SVWt5SBxbAYYtgSEjiGhbWUDdQoC52yNGUQvG9wL5OD1BK
+y94wzKQZi9WV/NdNfJPMjZv+tx3pezfGYTPDnUpP1CoLXY/gre+APwr9yHAg46Hz
+F+DQT+KAWQDTxahEUk9OE86nR3gO0zNN2KzGKb297ikcLWYusW9QQ46X3uIBTYmK
+PZP9l/bR7322tj88GPaKPesZE8rR2ohMBBgRAgAMBQI3Kc4MBQklmAYAAAoJEHUP
+ZJXInZM+GUwAn2qcZ8hOcrD1Bw7zZofZ+xm8wDL/AJ9DJQbxAae5kKnBDG1O28B4
+J0wF45kBogQ14HkWEQQA1qRbEQxVQzxv1QAvAgFoW3nT+BbWAs5fenhmvkWIMunk
+xhB8cIeYaImzmdDK0YioSgQ03ER5O4x5AcVKXiUJKUWqIermAqSCk6W0z8iWD0Vu
+boP8JrAJ6hd5WCWPpzb41OJumi5Xy3RzWdYWq2IOXOVZM2Wt1gnXA7p2PxS+ZqMA
+oKLnKFiDGdQPqKH5zwG488A95X9lA/4mkc0LBxfBIipWEE3HzgkcmNRb0zdxzUGY
+TGrHIYK3i7TZrfq09+jTA1dMbs2tX/nbUdd1oMaKefCqBw3hD50E685bla17TPFh
+NXhBRCCGhH8IGGAg0o6P3B0+QQHJsp7eof/VKgIFN6NeXga+621vkal5eU6jHQ44
+sHHkkkk0fQQAu8a0B2kf4VFHIE4kDraDPgIkhWV2r7efsLJj671NOKBHOMzWB+PK
+0eh0b6Tc34n44lyH6Cmc2F9xUzk7POa/uEi8aPB1z2/NdYeFg6nKTrkN4nYnQtYr
+GG4oPgeX0+DoNHmlRJto+pYMU8PwJA9fCT1K+szRr5p072LImZ7lsk20LlBldGVy
+IEdlcndpbnNraSAoRWxHL0RTQSkgPHBldGVyQGdlcndpbnNraS5kZT6IVwQTEQIA
+FwUCNmGXiwMLBAMFFQMCBgEDFgIBAheAAAoJEJg0ZdshQ5Qir60An1Zl/jBAU7Cx
+XINEaZupk1TmkdiDAKCFGR9orHjfKgw+xEA+idd/Ls0lDohGBBARAgAGBQI3pyH0
+AAoJEF3iSZZbA1iiXRAAnRCydbPV/ipvi0NfEzV9+RC8lBxNAJ9jQwXwCKt0HVc8
+/Y3OVY/WI1LnTbkCDQQ14Hp8EAgAoz58r9ogDLeyaL8NoMXoMhJ0ogHqC0jzt6xa
+zw/h6t0AJE1He5tMF1yVkenXo+sah2oTjrm38fRVXODbACvmn1oP+WLcK7/bG82V
+Ol4Zv0Iu+8X1KzXz2JGae+h0ogNcwyW7CXfPSEVhrCBTY7i7mdnAoyGFoW0yFSvt
+8YcRXdN7GU16tdATfruMV276MuStGwNIWYYfjFtqwFBdaVOpwMfJs2golT7PLEIj
+O2l1u1ZtAI6WvuEzQH4ftzzihmHQXMf4YsvtL5g/8TSJfmfUEFbbKFbU5bIbHzG4
+yj/O8uEBBj7u01oGpu/5UVFTgslvTIEAWx54sfT/oA06PvhsDwADBQf/VWZUn/wC
+/gktKZfh6Aq7RRI2K5bJEXhXE5p0rPWLMQy+v4DPGcuDF3nLg1IZT5mbLUGEh+7n
+zEgUsmLGPqBz54DgjhBxO1DfAfV3HVnYYpL7DO1u4ceCUh2O9PwLnp1+4W2XmND5
+nFrQ6gGChCgwb79/PxQdLEgj9dlf+vrv5SfajmTydiFCZ0+0GZRFDytdIda08TWv
+DabV/41F3T0TSbCMGPWr/TgrfQ6yeyOUpO9lmVbS0u9gKWGAedVOofMYi7Lqp+Pt
+zNQTwd9PKCP/HSjUxmm4xX3yVZuUxUV97ckucB8TOlr9deNnq32jnMuP9DeWpBz4
+05uwoBLYvOGNAYhGBBgRAgAGBQI14Hp8AAoJEJg0ZdshQ5QitJcAn0sn+TIAlbNC
+3YS5YxlYbExg6UnxAJwM+TJoHjFG8+rZ0nW7/vVq6+hHl5kBogQ3zBNgEQQA7vY0
+FBndb1BOSmisOzqCtcqwzP7iMKF+hwEKDqRKrO/oZ7zqMXigROEDb+ar95oSh2EX
+7tETk2b8ga9LA0UxT8nZ8e4eCOOchNggLyX4ZpsyrVTMGwahnjf8KsepIaKqfEnQ
+lzE4KsnLsuC+LKodhDUoInZIn/9bC6cRrCfe/xMAoJdLRTMDNe0+ruy2LtnwQg14
+vRp7BADm9fBrVW89COBepWr/xVQ89mDA23oiAaLrKjiJb8LQg9NpmGa5AFuWBym2
+Y5MzjremPeqmjMfXGyXIu5o+9e1k5DQ72NB/m24FdrYkCW38sinIVVghDtvzLniG
+fOwBL+c0iA0BweBCNuouoJjJegPQbzaliTgcV8ZjuCq4juyp4AQApBN45mj8JIwZ
+wbsNnAmZ4mtv3gR03k20Tk4uCurktNjd0HvU28HOyg/ZehxeoKMd14R/8NZBE39W
+vzJHnAVzfcsmNV1SQS7fSxD2f0FsWYxfF2ErBhwhK3GIuKAujPnlzjT57ZnhzBuH
+cALohJ1izyVOcBwFIAc+mwZSBRAKILq0OFJpY2hhcmQgR3V5IEJyaWdncyAoZ3Bn
+LWxhcCkgPHJnYkBjb25zY29vcC5vdHRhd2Eub24uY2E+iFsEExECABsFAjfME2AF
+CQPCZwADCwoDAxUDAgMWAgECF4AACgkQNmdg8X0u14ixOACfcmzB1f4YZ2yC0jyX
+efVFtbIZ/fMAn35OwFji+uU6/BFLYXnsMlsJMsOMuQENBDfME3QQBADQcXxUkW/f
+6s6S7RXOUIIV9CgHiZpHPV7T23wQhQOOtVjO2akFLryNI6Z6a66JRhS6fRa3+eiL
+9TB0umC8e297dHrzObs43bf5h7sTJB8xHTUI9v4rlMwC8Bk3oghnoCJ820MADttR
+p+CUWMkPaBQoDTJJhyfju66lgxZoycLVMwADBgQApLUhOmpHB+zGMvluBUJgBEja
+Z553bU/gLzRsTCvt1gnIXLjxYXkiKjLyXfym47mXNaGUGWC7b7yaMVjhfnF3bJ5t
+xeIiL7/p3ei17aYOlzXx3MhmuPRhS1IJbXfXChPc7toCqDeSFmnGmVWJZ+zuleTm
+OITYkgt5Lshp/N1NZXKITAQYEQIADAUCN8wTdAUJA8JnAAAKCRA2Z2DxfS7XiApb
+AJ94BeAKtqsshjVPWijCZ/8SBcJogwCggQjLX5KwZzhHASEXQ/oMvAgS6OKZAaIE
+Nuv2vBEEAJttf93iMoIaranZOJ8AR0V0ax+4bTo61nQ392tjaRiPv+9lWuY1O3rv
+pHTzTtXP5Qtz1Uw51jn5rDAA43mwz0+cR93g873ecb41/9LRKF8I9CbmZO6N70Re
+mLdGb4R1FQ2gMHAwIz+Z54esABLQgq1qUZ66k1+TL/3EZRLnRSk3AKD8fayzCfyw
+Vxgy8C67Z35FdBsVGwP9HLfVXrDoAkl3St52A9cIqYKCjWk7Hbv3mdNZIz8pEuhY
+7BlpPeMwP9p5cEqlTMjaQHfefHwm1K7GthihkGAHyWM2iZLZSQzIFPG1ER+feTCA
+VjSSbvoDGyhHbW+uhGYaNwSLQC36+NrC6ULoTq6Uh86Klpa7mJzLAq+b/6XKhR8D
+/jzTElA97kUJEzdpbm5YtqDsu9H16Zdlf+jO59MNi2rcElt3w+thNfucNHVo8fm0
+FGgTpXwNss0Ej4cBXKc8m1ujAWG/hC9s9MMaa1uUgbqngGhZrOvcXXFCJZwoWteW
+K4rqucRx7BAl3hyQwl3KK8TY60Te329VBIcKJyVvb7TFtDFVbHJpayBEaWNrb3cg
+KG9ubGluZSBHbnVQRyB0ZXN0KSA8dWtkQGthbXBzYXguZGs+iQCVAwUQNuwRdSDu
+hu1tZgc9AQEAzwP9HnvIc9zYRmjQEsB44Aik6/pQvrBsSpLNzAWelEaMw6bFHaQT
+1PtMnpFmGxbJR6MBBsWku2armlC8G4EUVn9AR07BtXGVGfn8xsHs4MK77QPO7C/I
+eqOdotrEYr/OmpXMjBHTfB3B/9vu1p4+ubA8jrY/9DKxRLeWtoJcT19Pe/+JARUD
+BRA2744i2gTMWm1DVDsBAQohCACL7/fi/RR7eZc6c0aXEqdytMmAoIg/056jdhwe
+OiJITmXxDwNzaDbofOMWGm2IbDb3XfAU52WmKRsnlUFZFWEmHQurUaApx6xGqQiG
+wJC38sBS+CfbMmhbvWBeu0XI4V/F/wfzpxYCbELULEHsAeDMXCa4TLhKfmZdrde5
+1RJgK+bNZx/HVCwwU5YtGHbyJ/lYDlg8FxxRCPAAb31mSviRJLLrdEwPWWdi9lGr
+G8kp10nnDsfl3mxlItWKAa7ey7ntYi/1glIxSdqgXhfKiXCgZLRC98cQMyj0J3fY
+HXF19fkugPCCx5itawmWLeS7sKAkMKBmsqcWKaYp3oy8WnR7iFsEExECABsFAjbr
+9rwFCQF+UwADCwoDAxUDAgMWAgECF4AACgkQ9u7fIBhLxNmwfgCg6vEPiWfYZ4Bt
+tUvCbLqw7qxl354AoMzEob55S7m8YjrkDP0iimJfHsKliEYEEBECAAYFAjc0ONQA
+CgkQXeJJllsDWKKeoACbB7pifCZOprEAEwLyaJmaSvYOvUkAn1CaMjj9cxhwQxLg
+7X1Db3FTm3PbuQINBDbr92cQCACHpMcXbJWET55YL4vcHhgZnlzdthEHunAp0EG4
+RznS4ESJX7D2Ll2jO74fD25XFQ/6HsvZl+ITZhMMDW5p8lTfniVBPRWRQaVSzjzw
+A0UykQVSf093unT7bSIsGZAMmUymD1ucG5Jh0eHGQq4REmBuvSm6CKh6JRmAJbyk
+TKWhfagX5TN0+mHD+CcFKzsgorYRh7KNlFLB6idtAZxFqdhHXkI64kysMVFt6ZlA
+2CV5LCQy8m1lLc0WuXM58tWDZ84UeBCJfO+5N8EwkS1S4dRWouOxFWx8nJpje0NP
+tb/vyZRQ+JMClVaKOLjmC017k4F8XxVYNqZ7Y5TWmr6sl2WnAAQLB/9iaLQ3eGPG
+9GWv9pp/wAYIYzMiDsokdHXf7gOifZXG1DT3Gn1gXqgJmYP3DQN1l6b7NboH+ekB
+Ua4D1Y9glIf4/HbdCtv6fGFGv2JWDwNWkU1H88ZrDmwAxcOS9vu9D78ElnACrV46
+OOfmc0PnDseZCgGSuAscXU8YM/zLIGFMvmeALzHxPVOLrLp/Ep0+kGNKdEEDV5ht
+5F81uOpTMNkacASAdUqS5iseSjITYbo1sk4j5Fn8pTTn0U9445b/KjKiEH+jbn4x
+fPcC03FaXvMnFP+1nAqLbgFmVJ2ljjgEBbgkDPumsrjIuU2ZgSN9CZZ4tQke/FU0
+7RttYHde48eziEwEGBECAAwFAjbr92cFCQF+UwAACgkQ9u7fIBhLxNmnUACgrtAG
+GLWPUQbGR/6OQa9AZ6xLhnMAn0SZudBARwp97yCM3Wcm433S6xVDmQGiBDWiHh4R
+BAD+l0rg5p9rW4M3sKvmeyzhs2mDxhRKDTVVUnTwpMIR2kIA9pT43No/coPajDvh
+ZTaDM/vSz25IZDZWJ7gEu86RpoEdtr/eK8GuDcgsWvFs5+YpCDwWG2dx39ME7DN+
+SRvEE1xUm4E9G2Nnd2UNtLgg82wgi/ZK4Ih9CYDyo0a9awCgisn3RvZ/MREJmQq1
++SjJgDx+c2sEAOEnxGYisqIKcOTdPOTTie7o7x+nem2uac7uOW68N+wRWxhGPIxs
+OdueMIa7U94Wg/Ydn4f2WngJpBvKNaHYmW8j1Q5zvZXXpIWRXSvyTR641BceGHNd
+YiR/PiDBJsGQ3ac7n7pwhV4qex3IViRDJWz5Dzr88x+Oju63KtxYurUIBACi7d1r
+UlHr4ok7iBRlWHYXU2hpUIQ8C+UOE1XXT+HB7mZLSRONQnWMyXnqbAAW+EUUX2xp
+b54CevAg4eOilt0es8GZMmU6c0wdUsnMWWqOKHBFFlDIvyI27aZ9quf0yvby63kF
+CanQKc0QnqGXQKzuXbFqBYW2UQrYgjXji8rd8bQnV2VybmVyIEtvY2ggKGdudXBn
+IHNpZykgPGRkOWpuQGdudS5vcmc+iF0EExECAB0FAjZVoKYFCQhtDIgDCwQDBRUD
+AgYBAxYCAQIXgAAKCRBot6uJV1SNzS4+AKCHdeYHMmKQV9mC7REE5Vz6d5rRBgCf
+VMcyRP7dxBwhytmwCDpAcCFvCLSJAV8DBRA1oh5DA28RuP8+qgsQA2MyBR0eiPUo
+vYMz0DUXBbNs5606eaVeTJOn9WqkYGcS9xOKlGd8Xj0IcAKN30st5AsC5hRqr82r
+rUjB5/CuVdbvk+Qkh6ixWCqo+RRrbgf8cKCg1x+lDj9PpeSD/B9UU45ntxYamoXn
+PszxtzU+e73Nkbtrej5rgMK8tgTLkhTAbO8M15Mgtw2yOeDFfiCj4xzDkYryvLiP
+I5p2vYXTVcgYnwpNRnMZBwUghb1PMSXj7AP0P/8wnpb656yIjH2OAkE5is5HvTEs
+2wGUCEXXYKxgLIl9bRPGd2DHfJQ6broxy1RHVmaOrOeDibspx67RRTm3WqbtLiK0
+/nRF0gEjFGxLjQiy92gp6xLRiQsMQdkz0Lwgr0dgSs6JejBlsQPp5nXXkIm9q/hl
+6Cly3Zx3KbAIwO5ZF5NyBciezCxSurg64xmxibNhSknblI0vyG+IRgQQEQIABgUC
+NaInPAAKCRBsfuG4YhzAE37WAJ9Xzmig1DrfnUt/KwfgidkPohJViQCg0T6afKuR
+spWzPAz5TKQpVjd02KmIRgQQEQIABgUCNu1ObAAKCRBd4kmWWwNYomq2AJ9+alN2
+TpVRAhCxP91eqvfEN9HgGgCgrTvpWnB9EKtROr+AT//cujKCyIaZAaIENaIg8xEE
+ALYPe0XNsPjx+inTQ+Izz527ZJnoc6BhWik/4a2bZYENSOQXAMKTDQMv2lLeI0i6
+ceB967MNubhHeVdNeOWYHFSM1UGRfhmZERISho3bp+wVZvVG8GBVwpw34PJjgYU/
+0tDwnJaJ8BzX6j0ecTSTjQPnaUEtdJ/u/gmG9j0218TzAKDihdNoKJEU9IKUiSjd
+GomSuem/VwQArHfaucSiDmY8+zyZbVLLnK6UJMqtsIv1LvAg20xwXoUk2bY8H3tX
+L4UZ8YcoSXYozwALq3cIo5UZJ0q9Of71mI8WLK2iFSYVplpTX0WMClAdkGt3HgVb
+7xtOhGt1mEKeRQjNZ2LteUQrRDD9MTQ+XxcvEN0IpAj4kBJe9bR6HzAD/iecCmGw
+SlHUZZrgqWzv78o79XxDdcuLdl4i2fL7kwEOf9jsDe7hGs27yrdJEmAG9QF9TOF9
+LJFmE1CqkgW+EpKxsY01Wjm0BFJB1R7iPUaUtFRZxYqfgXarmPjql2iBi+cVjLzG
+u+4BSojVAPgP/hhcnIowf4M4edPiICMP1GVjtCFXZXJuZXIgS29jaCA8d2VybmVy
+LmtvY2hAZ3V1Zy5kZT6IWwQTEQIAGwUCNs8JNwUJCCCxRAMLCgMDFQMCAxYCAQIX
+gAAKCRBsfuG4YhzAE2kgAJ92JKU+YcYHoRhX51+4s3fnPIyNEgCfaiWeoyb15xgd
+O6etGiD2MYCWy5mJAHUDBRA1o3cUHRn0wQyYV6UBAT3zAv9HMaPuMWFQKZRTtJyG
+Mo0ID+w/DtLn8z7CMBd5L2+2+RTTY36fgwITehtBziIJC9xrFrQnx+VB2pYvprTR
+SCg6U7a/hf5T6WT9zj887C2UuIWE6pjLNTvwAqvGsSoAIpWJAV8DBRA1oicOA28R
+uP8+qgsQAwfcBR9Iuppp+q1mChXqSYV8oROMFqkTyQJ736IllJ7Q6eGiEMrOpTkY
+oFVyFqOJOEivxR+fWJ8xe+e/Kq02Vv0XANGyKias6mqrDnU2BBWuPXAo7y5wVuDn
+myZS01LP555lNBVilvDsMC/qQrvHe3y0kp4IAbK1EMG3qbsNHCaHLRTwM+U9Z0CY
+nkClbB2gjcC9nbtF3nzoBebowdYytat6eFMrBfYRHAUfZbRN0x6/or+I7WV5gtT+
+GrfVuSxVrGLsK9FN8iXGikiqdL/8BhFntif4BUGdIQdft+UawmT4IlrBL/Owh2hu
+l7UPtx4YqwQibGIZjopFSqBGp+j4VFUdapVxMraQLd/PUwZ78nHgF/IXBzhN3Yrh
+ryCxIGHrN4MN7OWZjO21F945tga1/FnIXsVBVECLiltnC9+/TBV0fE28aVca7EWB
+P+Ix2QWIRgQQEQIABgUCNu1OCwAKCRBd4kmWWwNYonyaAKCxLBsteoVfwn5g5Lug
+9QgVCMV76QCfRgQKXQv9zl4oO7Aa1Qljm9zEM3C5AY0ENs8HCBAGAPc1hCpuXmaT
+DAUbIqS9CFHkihMnilIwAV+L2Dbq5eOPtoemPKx5+6xtZfzzY9/VCVwZCxY9Y5PE
+N9r/twUA478L/FOXv5E4BpX+4R91klt/EZGcNfDl2Ar56FpGJ3iLg4+vxx9m1TV5
+k2nNOUZAVD1L+MoapWhaZFXLMChrhDUcbo7/1Fr1Rfv9j/LkkIJJhqf3G8HzE5Av
+CQVSywUayYZdbmqdiY2bklZJVFAXs1X9zSTGoFc8eOxz6i1ZeMq+GwADBgX/T7o5
+R+SOTlJ72ac/g121f1kFX1dbRkQq2pCI95qTehp1AxdSwG3ur2slFCfi8ZDNUqkF
+XJrsv5mh1yfqq7zS5T6lGT5lOXCDZbAO2wqNZY1VKeeCdcvD2VMeh8XxJfy8y1ZK
+/iE1p8qnokYpA3nFH+JIsdrXk5ceiN3nKk+aDamUkV1sJzeEm5F7QHe60oBKbVGI
+UF4EhGq6daVyeCeK4KhWuPYyiEgyaq5/xJZbR3uRcdW6X5AiGJWJOOQoGvWziEwE
+GBECAAwFAjbPBwgFCQbzyQAACgkQbH7huGIcwBN5FQCggakIOYzLX3lNq2WWgcAk
+SNm7kpoAnA69b3z2E5vxyD3bhggVUDX7j8hruQGNBDWiITwUBgCRCYCU5eLFvzCt
+rzesTWLssIQ0vOW8FlYoFc3g416VkCeeQ6bsipGMyG0pEk3vnOpXIpRpTAMqOl/0
+nkra3vmZLEG2ds1Govdeh2Mcr3c5wBSTPdyLuK4L9vbgkjarhd5Ab+/hhHVWh0zT
+MRDUgLQkKrg+Xf1BnJcl1kKtQW8xxermu41KV3O0GpMUVSIVuTDUW6D9nJcm97YV
+VxuxFcWsHsQS7L6KJT+Rn81WIqTQvhPopEdWwSKuI2UKKJtbX18AAwUF/1Nu/rso
+UwOsupBqf/ShJKh2MNAoMaq2iHspBggo9ep+pPxx533J3kwsXA8p/e3sBYbW5xbb
+HXXwA1iQ9JTXbZROd0+xrHRxjheRofFo3Ck0UKi0ZDRRFKHEo2lypt1+/L7V3ymk
+Rq+A7LGdXUk6QuNkkvArxuDEV1s9ZywkmeO64fc/DPzsLNOA5JhDEw+cjBBzHlu5
+khXk14Qsm1xtt3dFW5or8ZCG3xAmm5dKOLw2XUWKFgOMAJHxNpGUCHnQaYhGBCgR
+AgAGBQI4K/uDAAoJEGx+4bhiHMAT2FMAn1xEe77uraGTGkV+eiTiZGKyh8JOAKDO
+g+M0i5iKJXr7AsHmjXXsw1Y9kIhMBBgRAgAMBQI1oiE8BQkHhM4AAAoJEGx+4bhi
+HMATDfUAoLstR8cg5QtHwSQ3nFCOKEREUFIwAKDID3K3hM+b6jW1o+tNX9dnjb+Y
+MZkAbQIwbYOUAAABAwC7ltmO5vdKssohwzXEZeYvDW2ll3CYD2I+ruiNq0ybxkfF
+Bopq9cxta0OvVML4LK/TH+60f/Fqx9wg2yk9APXyaomdLrXfWyfZ91YtNCfj3ElC
+4XB4qqm0HRn0wQyYV6UABRG0IVdlcm5lciBLb2NoIDx3ZXJuZXIua29jaEBndXVn
+LmRlPokAlQMFEDRfoOmOB31Gi6BmjQEBzwgD/2fHcdDXuRRY+SHvIVESweijstB+
+2/sVRp+FCDjR74Kg576sJHfTJCxtSSmzpaVpelb5z4URGJ/Byi5L9AU7hC75S1Zn
+J+MjBT6VePyk/r0uBrMkU/lMG7lk/y2By3Hll+edjzJsdwn6aoNPiyen4Ch4UGTE
+guxYsLq0HES/UvojiQEVAwUTNECE2gnp+QqKck5FAQH+1Af/QMlYPlLG+5E19qP6
+AilKQUzNkd1TWMenXTS66hGIVwkLVQDi6RCimhnLMq/F7ENA8bSbyyMuncaBz5dH
+4kjfiDp1o64LULcTmN1LW9ctpTAIeLLJZnwxoJLkUbLUYKADKqIBXHMt2B0zRmhF
+OqEjRN+PhI7XCcHeHWHiDeUB58QKMyeoJ/QG/7zLwnNgDN2PVqq2E72C3ye5FOkY
+LcHfWKyBRrn6BdUphAB0LxZujSGk8ohZFbia+zxpWdE8xSBhZbjVGlwLurmS2UTj
+jxByBNiheUD6IC3u5P6psld0OfqnpriZofP0CBP2oTk65r529f/1lsy2kfWrVPYI
+FJXEnIkAlQMFEDQyneGkWMS9SnJfMQEBMBMD/1ADuhhuY9kyN7Oj6DPrDt5SpPQD
+GS0Jtw3yuIPoed+xyzlrEuL2HeaOj1O9urpn8XLN7V21ajkzlqsxnGkOuifbE9UT
+67o2b2vCldCcY4nV5n+U1snMDwNv+RkcEgNa8ANiWkm03UItd7/FpHDQP0FIgbPE
+PwRoBN87I4gaebfRiQCVAwUQNDUSwxRNm5Suj3z1AQGMTAP/UaXXMhPzcjjLxBW0
+AccTdHUtLi+K+rS5PNxxef2nnasEhCdK4GkM9nwJgsP0EZxCG3ZSAIlWIgQ3MK3Z
+AV1Au5pLKolRjFyEZF420wAtiE7V+4lw3FCqNoXDJEFC3BW431kx1wAhDk9VaIHH
+adYcof4ddmMLQOW2cJ7LDEEBW/WJAJUDBRA0M/VQImbGhU33abUBARcoA/9eerDB
+ZGPCuGyEmQBcr24KPJHWv/EZIKl5DM/Ynz1YZZbzLcvEFww34mvY0jCfoVcCKIeF
+FBMKiSKrOMtoVC6cQMKpmhE9hYRStw4E0bcf0BD/stepdVtpwRnG8SDP2Zbmtgyj
+YT/7T4Yt6/0f6N/0NC7E9qfq4ZlpU3uCGGu/44kAlQMFEDQz8kp2sPVxuCQEdQEB
+c5YD/RixvFcLTO1HznbblrO0WMzQc+R4qQ50CmCpWcFMwvVeQHo/bxoxGggNMmuV
+T0bqf7MolZDSJNS96IAN32uf25tYHgERnQaMhmi1aSHvRDh4jxFu8gGVgL6lWit/
+vBDW/BiFBCH6sZJJrGSuSdpecTtaWC8OJGDoKTO9PqAA/HQRiQB1AwUQNDJSx011
+eFs7VOAZAQGdKQL/ea3qD2OP3wVTzXvfjQL1CosX4wyKusBBhdt9u2vOT+KWkiRk
+1o35nIOGuZLHtSFQDY8CVDOkqg6g4sVbOcTl8QUwHA+A4AVDInwTm1m4Bk4oeCIw
+k4Bp6mDdW11g28k/iQEVAgUSNDIWPm/Y4wPDeaMxAQGvBQgAqGhzA/21K7oL/L5S
+5Xz//eO7J8hgvqqGXWd13drNy3bHbKPn7TxilkA3ca24st+6YPZDdSUHLMCqg16Y
+OMyQF8gEkX7ZHWPacVoUpCmSz1uQ3p6W3+u5UCkRpgQN8wBbJx5ZpBBqeq5q/31o
+kaoNjzA2ghEWyR5Ll+U0C87MY7pc7PlNHGCr0ZNOhhtf1jU+H9ag5UyT6exIYim3
+QqWYruiCLSUcim0l3wK7LMW1w/7Q6cWfAFQvl3rGjt3rg6OWg9J4H2h5ukf5JNiR
+ybkupmatUM+OVMRkf93jzU62kbyZpJBHiQZuxxJaLkhpv2RgWib9pbkftwEy/Znm
+jkxlIIkAlQMFEDQvWjh4313xYR8/NQEB37QEAIi9vR9h9ennz8Vi7RNU413h1ZoZ
+jxfEbOpkQAjE/LrZ/L5WiWdoStSiyqCLPoyPpQafiU8nTOr1KmY4RgceJNgxIW4O
+iSMoSvrhc2kqP+skb8A2B4+47Aqjr5fSAVfVfrDMqDGireOguhQ/hf9BOYsM0gs+
+ROdtyLWPtMjRnFlviD8DBRAz8qQSj6lRT5YOKXIRAntSAJ9StSEMBoFvk8iRWpXb
+6+LDNLUWzACfT8iY3IxwvMF6jjCHrbuxQkL7chSJARUDBRA0MMO7569NIyeqD3EB
+ATIAB/4tCPZ1sLWO07g2ZCpiP1HlYpf5PENaXtaasFvhWch7eUe3DksuMEPzB5Gn
+auoQZAkuhEGkoEfrfL3AXtXH+WMm2t7dIcTBD4p3XkeZ+PgJpKiASXDyul9rumXX
+vMxSL4KV7ar+F1ZJ0ycCx2r2au0prPao70hDAzLTy16hrWgvdHSK7+wwaYO5TPCL
+5JDmcB+dHKW72qNUOD0pxbe0uCkkb+gDxeVX28pZEkIIOMMV/eAs5bs/smV+eJqW
+T/EyfVBDo7heF2aeyJj5ecxNOODr88xKF7qEpqazCQ4xhvFY+Yn6+vNCcYfkoZbO
+n0XQAvqfa2Vab9woVIVSaDji/mlPiQB1AwUQNDC233FfeD4HYGBJAQFh6QL/XCgm
+5O3q9kWpgts1MHKoHoh7vxSSQGSP2k7flNP1UB2nv4sKvyGM8eJKApuROIodcTkc
+cM4qXaBuXunMr5kJlvDJPm+NLzKyhtQP2fWI7xGYwiCiB29gm1GFMjdur4amiQEV
+AwUQNDBR9fjDdqGixRdJAQE+mAf+JyqJZEVFwNwZ2hSIMewekC1r7N97p924nqfZ
+Knzn6weFpE80KIJSWtEVzI0XvHlVCOnS+WRxn7zxwrOTbrcEOy0goVbNgUsP5ypZ
+a2/EM546uyyJTvgD0nwA45Q4bP5sGhjh0G63r9Vwov7itFe4RDBGM8ibGnZTr9hH
+o469jpomHSNeavcaUYyEqcr4GbpQmdpJTnn/H0A+fMl7ZHRoaclNx9ZksxihuCRr
+kQvUOb3uRD9lFIhCvNwEardN62dKOKJXmn1TOtyanZvnmWigU5AmGuk6FpsClm3p
+5vvlid64i49fZt9vW5krs2XfUevR4oL0IyUl+qW2HN0DIlDiAYkAlQMFEDQvbv2w
+cgJwUPMhJQEBVBID/iOtS8CQfMxtG0EmrfaeVUU8R/pegBmVWDBULAp8CLTtdfxj
+Vzs/6DXw0RogXMRRl2aFfu1Yp0xhBYjII6Kque/FzAFXY9VNF1peqnPt7ADdeptY
+MppZa8sGn9BBRu9Fsw69z6JkyqvMiVxGcKy3XEpVGr0JHx8Xt6BYdrULiKr2iQB1
+AwUQNC68n6jZR/ntlUftAQFaYgL+NUYEj/sX9M5xq1ORX0SsVPMpNamHO3JBSmZS
+Izjiox5MAqoFOCigAkonuzk5aBy/bRHy1cmDBOxf4mNhzrH8N6IkGvPE70cimDnb
+Fvr+hoZSjIqxtELNZsLuLVavLPAXiQCVAwUQNC6vWocCuHlnLQXBAQHb1gQAugp6
+2aVzDCuz4ntfXsmlGbLY7o5oZXYIKdPP4riOj4imcJh6cSgYFL6OMzeIp9VW/PHo
+2mk8kkdkz5uif5LqOkEuIxgra7p1Yq/LL4YVhWGQeD8hwpmu+ulYoPOw40dVYS36
+PwrHIH9afNhl8Or5O2VIHIWnoQ++9r6gwngFQOyJAJUDBRAzHnkh1sNKtX1rroUB
+AWphBACdhuqm7GHoiXptQ/Y5F6BivCjxr9ch+gPSjaLMhq0kBHVO+TbXyVefVVGV
+gCYvFPjozM8PEVykQAtY//eJ475aGXjF+BOAhl2z0IMkQKCJMExoEDHbcj0jIIMZ
+2/+ptgtbFSyJ2DQ3vvCdbw/1kyPHTPfP+L2u40GWMIYVBbyouokAlQMFEDMe7+UZ
+symln7HG2QEBzMED/3L0DyPK/u6PyAd1AdpjUODTkWTZjZ6XA2ubc6IXXsZWpmCg
+B/24v8jsJ3DIsvUD3Ke55kTr6xV+au+mAkwOQqWUTUWfQCkSrSDlbUJ1VPBzhyTp
+uzjBopte7o3R6XXfcLiC5jY6eCX0QtLGhKpLjTr5uRhf1fYODGsAGXmCByDviQB1
+AgUQMy6UMB0Z9MEMmFelAQHV4AMAjdFUIyFtpTr5jkyZSd3y//0JGO0z9U9hLVxe
+BBCwvdEQxsrpeTtVdqpeKZxHN1GhPCYvgLFZAQlcPh/Gc8u9uO7wVSgJc3zYKFTh
+KpQevdF/rzjTCHfgigf5Iui0qiqBiQCVAwUQMx22bAtzgG/ED06dAQFi0gQAkosq
+TMWy+1eUXbi2azFK3RX5ERf9wlN7mqh7TvwcPXvVWzUARnwRv+4kk3uOWI18q5UP
+is7KH3KYOVeRrPd8bbp6SjhBh82ourTEQUXLBDQiI1V1cZZmwwEdlnAnhFnkXgMB
+NM2q7oBefRHADfYDfGo90wXyrVVL+GihDNpzUwOJAJUDBRAzHUFnOWvfULwOR3EB
+AbOYA/90JIrKmxhwP6quaheFOjjPoxDGEZpGJEOwejEByYj+AgONCRmQS3Bydtub
+A+nm/32DFeG8pe/dnFvGc+QgNW560hK21C2KJj72mhjRlg/na7jz4/MmBAv5k61Q
+7roWi0rwx+R9NSHxpshC8A92zmvo8w/XzVSogC8pJ04jcnY6YokAlQMFEDMdPtta
+9LwlvuSC3QEBvPMD/3TJGroHhHYjHhiEpDZZVszeRQ0cvVI/uLLi5yq3W4F6Jy47
+DF8VckA7mw0bXrOMNACN7Je7uyaU85qvJC2wgoQpFGdFlkjmkAwDAjR+koEysiE8
+FomiOHhvEpEY/SjSS4jj4IPmgV8Vq66XjPw+i7Z0RsPLOIf67yZHxypNiBiYiQCV
+AwUQMxxwpKrq6G7/78D5AQHo2QQAjnp6KxOl6Vvv5rLQ/4rj3OemvF7IUUq34xb2
+5i/BSvGBUpDQVUmhv/qIfWvDqWGZedyM+AlNSfUWPWnP41S8OH+lcERH2g2dGKGl
+7kH1F2BxByZlqREHm2q624wPPA35RLXtXIx06yYjLtJ7b+FCAX6PUgZktZYk5gwj
+doAGrC2JAJUDBRAzGvcCKC6c7f53PGUBAUozA/9l/qKmcqbi8RtLsKQSh3vHds9d
+22zcbkuJPBSoOv2D7i2VLshaQFjq+62uYZGE6nU1WP5sZcBDuWjoX4t4NrffnOG/
+1R9D0t1t9F47D77HJzjvo+J52SN520YHcbT8VoHdPRoEOXPN4tzhvn2GapVVdaAl
+WM0MLlohNH3I9jap9okAdQMFEDMZlUAnyXglSykrxQEBnuwC/jXbFL+jzs2HQCuo
+4gyVrPlUksQCLYZjNnZtw1ca697GV3NhBhSXR9WHLQH+ZWnpTzg2iL3WYSdi9tbP
+s78iY1FSd4EG8H9V700oQG8dlICF5W2VjzR7fByNosKM70WSXYkBFQMFEDMWBsGC
+y1t9eckWHQEBHzMH/jmrsHwSPrA5R055VCTuDzdS0AJ+tuWkqIyqQQpqbost89Hx
+per3MmjLJas/VJv8EheuU3vQ9a8sG2SnlWKLtzFqpk7TCkyq/H3blub0agREbNnY
+hHHTGQFCYJb4lWjWvMjfP+N5jvlLcnDqQPloXfAOgy7W90POoqFrsvhxdpnXgoLr
+zyNNja1O1NRj+Cdv/GmJYNi6sQe43zmXWeA7syLKMw6058joDqEJFKndgSp3Zy/y
+XmObOZ/HC2OJwA3gzEaAu8Pqd1svwGIGznqtTNCn9k1+rMvJPaxglg7PXIJS282h
+mBl9AcJlwmh2GUCswl9/sj+REWTb8SgJUbkFcp6JAJUDBRAwdboVMPfsgxioXMEB
+AQ/LA/9BFTZ9T95P/TtsxeC7lm9imk2mpNQCBEvXk286FQnGFtDodGfBfcH5SeKH
+aUNxFaXr39rDGUtoTE98iAX3qgCElf4V2rzgoHLpuQzCg3U35dfs1rIxlpcSDk5i
+vaHpPV3Sv+mlqWL049y+3bGaZeAnwM6kvGMP2uccS9U6cbhpw4hGBBARAgAGBQI3
+GtRfAAoJEF3iSZZbA1iikWUAoIpSuXzuN/CI63dZtT7RL7c/KtWUAJ929SAtTr9S
+lpSgxMC8Vk1T1i5/SYkBFQMFEzccnFnSJilEzmrGwQEBJxwH/2oauG+JlUC3zBUs
+oWhRQwqo7DdqaPl7sH5oCGDKS4x4CRA23U15NicDI7ox6EizkwCjk0dRr1EeRK+R
+qL1b/2T42B6nynOLhRG2A0BPHRRJLcoL4nKfoPSo/6dIC+3iVliGEl90KZZD5bnO
+NrVJQkRjZL8Ao+9IpmoYh8XjS5xMLEF9oAQqAkA93nVBm56lKmaL1kl+M3dJFtNK
+tVB8de1ZXifDs8HykD42qYVtcseCKxZXhC3UTG5YLNhPvgZKH8WBCr3zcR13hFDx
+uecUmu0MVhvEzoKyBYYt0rrqnyWrxwbv4gSTUWH5ZbgsTjc1SYKZxz6hrPQnfYWz
+NkznlFWJARUDBRM0xL43CdxwOTnzf10BATOCB/0Q6WrpzwPMofjHj54MiGLKVP++
+YfwzdvnsHxVpTZLZ5Ux8ErDsnLmvUGphnLVELZwEkEGRjln7a19h9oL8UYZaV+Ic
+R6tQ06Fb1ldR+q+3nXtBYzGhleXdgJQSKLJkzPF72tvY0DHUB//GUV9IBLQMvfG8
+If/AFsih4iXi96DOtUAbeuIhnMlWwLJFeGjLLsX1u6HSX33xy4bGX6v/UcHbTSSY
+axzb92GR/xpP2Xt332hOFRkDZL52g27HS0UrEJWdAVZbh25KbZEl7C6zX/82OZ5n
+TEziHo20eOS6Nrt2+gLSeA9X5h/+qUx30kTPz2LUPBQyIqLCJkHM8+0q5j9ciQCi
+AwUTNMS+HZFeTizbCJMJAQFrGgRlEAkG1FYU4ufTxsaxhFZy7xv18527Yxpls6mS
+Ci1HL55nJoce6TI+Z34MrLOaiZljeQP3EUgzA+cs1sFRago4qz2wS8McmQ9w0FNQ
+QMz4vVg9CVi1JUVd4EWYvJpA8swDd5b9+AodYFEsfxt9Z3aP+AcWFb10RlVVsNw9
+EhObc6IMnwAOHCEI9vp5FzzFiQCVAwUQNxyr6UyjTSyISdw9AQHf+wP+K+q6hIQ0
+9tkgaYaDLlWKLbuxePXqM4oO72qi70Gkg0PV5nU4l368R6W5xgR8ZkxlQlg85sJ0
+bL6wW/SjMz7pP9hkhNwk0x3IFkGMTYG8i6Gt8Nm7x70dzJoiC+A496PryYC0rvGV
+f+Om8j5uTexBBjb/jpJhAQ/SGqeDeCHheOC0Lldlcm5lciBLb2NoIChtZWluIGFs
+dGVyIGtleSkgPHdrQGNvbXB1dGVyLm9yZz6JAHUDBRM2G2MyHRn0wQyYV6UBASKK
+Av4wzmK7a9Z+g0KH+6W8ffIhzrQo8wDAU9X1WJKzJjS205tx4mmdnAt58yReBc/+
+5HXTI8IKR8IgF+LVXKWAGv5P5AqGhnPMeQSCs1JYdf9MPvbe34jD8wA1LTWFXn9e
+/cWIRgQQEQIABgUCNxrUaQAKCRBd4kmWWwNYovRiAJ9dJBVfjx9lGARoFXmAieYr
+MGDrmwCZAQyO4Wo0ntQ+iq4do9M3/FTFjiCZAaIENu1I6REEAJRGEqcYgXJch5fr
+UYBj2EkDkWAbhRqVXnmiF3PjCEGAPMMYsTddiU7wcKfiCAqKWWXow7BjTJl6Do8R
+T1jdKpPOlBJXqqPYzsyBxLzE6mLps0K7SLJlSKTQqSVRcx0jx78JWYGlAlP0Kh9s
+PV2w/rPh0LrPeOKXT7lZt/DrIhfPAKDL/sVqCrmY3QfvrT8kSKJcgtLWfQP/cfbq
+VNrGjW8am631N3UVA3tWfpgM/T9OjmKmw44NE5XfPJTAXlCV5j7zNMUkDeoPkrFF
+8DvbpYQs4XWYHozDjhR2Q+eI6gZ0wfmhLHqqc2eVVkEG7dT57Wp9DAtCMe7RZfhn
+arTQMqlYtOEa/suiHk0qLo59NsyF8eh68IDNCeYD/Apzonwaq2EQ1OEpfFlp6LcS
+nS34+UGZtTO4BgJdmEjr/QrIPp6bJDstgho+/2oR8yQwuHGJwbS/8ADA4IFEpLdu
+SpzrABho7RuNQcm96bceRY+7Hza3zf7pg/JGdWOb+bC3S4TIpK+3sx3YNWs7eURw
+pGREeJi5/Seic+GXlGzltBpXZXJuZXIgS29jaCA8d2tAZ251cGcub3JnPohbBBMR
+AgAbBQI3Gs+QBQkMyXyAAwsKAwMVAwIDFgIBAheAAAoJEF3iSZZbA1iiXcIAnjv7
+ON5AiwzCLBwm9h9ywufXJQuVAJ9RMq6lpPqnDly6UCKz+kGt0EplyIhGBBARAgAG
+BQI3GtE9AAoJEGx+4bhiHMAThfQAnjcDvBthtHotN89IP590GSKY287xAJ0WhKl9
+j7gWwpVqCD+ofcq0ZQBG1IkAdQMFEDca0WMdGfTBDJhXpQEB0a4C/0AzSj1eSYFs
+4ss2x7xCn0yMPxML+hJdjGnVb0CPJGzzeKpD69pmVsD87nPa53gj0NXi/ADnQvPm
+csVs8dr7K5PxXFOXaJzDm72tnLeJKiTesZfMY7MQ0yYQUhUWogSY8YhGBBARAgAG
+BQI3GtGjAAoJEGi3q4lXVI3NLfgAoISt+x9r02Hl14njSfGmZIjyUrXuAJ9FhxTq
+LUHU1uDZmSSvlKpOcG1pYIhGBBARAgAGBQI3Tx9dAAoJEPbu3yAYS8TZLb4Ani50
+OXjsQCc/gr5G+xZy/yqOqnOWAJ44VlluXNaN6J7yhB9iXtsEGvE+oohGBBARAgAG
+BQI3pyb+AAoJEJg0ZdshQ5QifskAn0stcy37RHy7iB2bFB4rPVNDJaizAJ9hCH+0
+yNTOTisrEHLhS0QufAn3H4hFBBARAgAGBQI34UEzAAoJEDZnYPF9LteIeecAn3eT
+mQldy/AIYuEFvyaF1FPmQdDNAJj3trsO1mAyzs7+PB++rZunMveeiEYEEBECAAYF
+AjgqYg8ACgkQ4/JYVBKPDnkbHQCfRR7qUYmwTxtrf+Fw6hfsYjCy//AAn1eRdkkd
+CExOJPwvrHEtZydSmVA1tAtXZXJuZXIgS29jaIhbBBMRAgAbBQI27UjqBQkMyXyA
+AwsKAwMVAwIDFgIBAheAAAoJEF3iSZZbA1iitdYAn1IJbSJ46kvsBjq8X44hoybD
+ZlbWAKCS2jR5Z+CmMC5WDqNepHXAe3alA4kCHgQQFAMABgUCNy9Z1AAKCRBsTDGl
+sdUVZw3FB/9uDXhYYnQZYw1K6445HRZjNRo23NimItJXIuut5e2jwsE3DNuDOPat
+qZbtGL61gkAcuG25rxmBJ6JuaAG5lqwXx1vWbk03VlwcFcZPKwCOn4qeJxNn06uP
+vkP2jehKYzJFyKwSGv6CSPS1WEZ84A4Lp4pu59W7JgUNUjI7JQEaVbsCl6bMDNh6
+Z+zcN2MefzuWSMcxURI7h8zmu0u5JztwF8v97qWNpZBzlbxLSAgO/RW0vf2kxbgG
+WkprbmvXignLC5Sm9YJm6y8Obtkmepn9aaA4dBSzJi51NE6kYhuWw2DyKoLqG5ak
+ZIFF27ehFBGGSql9V2zPPoEH+cDHTWrbB/9D5T1ch3WPLPFQvVIaBpgx/pB3KMdD
+WjG4Us3HMzoL8zTr23Bs2BcnvVGwMNdXEVl9JONKIfXTQA/372FvmbJxpctQ5dgO
+85IXMcF38uyMU1WusVsOzlfD5wsZUc4iBHkhYB+C7l3U8BlT25BWB0adB+ZmDfzd
+FI/G9Hd+dnPWsc1QaZLrDvHoVVvFrVBTa3fyA1pwjAcBMA9wGnIkt9ejOdumDcAN
+uAIbIOMHCe49ARCRjBFqRtzNGuB7who9lu3Ydg+hSx25cxnIkjzPm2+7ulQPCznW
+dXURfXkFw3f75pjmlTIDUi1poPKZBWagVtALQE0zMw7nd0ycWSjiLjaSiEYEEBEC
+AAYFAjc6+aMACgkQdQ9klcidkz6GiwCdGe0KSP/vSyEZM/GClQXvjMD4RvMAoJwy
+TIdcjPZbQizDeAO3btn2CCwTiEYEEBECAAYFAjc3I8UACgkQ9u7fIBhLxNmHZQCg
+lWbPDznIcnOxdDW+k7YgA9+/n00An1ZjSiJipverUxLEFHAbSBWI0IntiQEVAwUQ
+N0Pe01KAV0R2U0AdAQHIcQf/Ykx+DvUaCLIYlMrEIDKZ3J/aPbJ8frAjvzYkrgFZ
+XhzQT9Xfyr6OkhiyWKFX23yzzDVcrmeIxovCUI7IFY6QM/d5yHr4Y8+18HdyaUva
+FLz3o9ZnVp1AeAJ5CkHzfufnrKPRpOzgvXFqttJVPbaVTAyJTo/Bh0fZGHyeHwW8
+3QhmxuWfac6PveoA1DM1+Wax5QoXVeHhyTzIutF3ivpqaHEBUB9xgVEk3jN0svdy
+aGCS3QANmXMDBecSPB0cfLtK8AmTV5w04D2kWw4lu+fO593Vp+z8Jsbvwj7QkOGD
+vlnY3Crx4qOwqqI7TPP+8bnJZKd1m9aRNbPcPdvXGvUh3YhGBBARAgAGBQI4KmIe
+AAoJEOPyWFQSjw55D5AAoJs5OxzJSdYdKsOjh8jLQxOESOE6AJ4vgpvtNaR384dB
+JxUE7yxNTPT7aA==
+=gKwz
-----END PGP PUBLIC KEY BLOCK-----
diff --git a/g10/revoke.c b/g10/revoke.c
index d93c7a462..3ceb5212f 100644
--- a/g10/revoke.c
+++ b/g10/revoke.c
@@ -1,5 +1,5 @@
/* revoke.c
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -24,6 +24,7 @@
#include <string.h>
#include <errno.h>
#include <assert.h>
+#include <ctype.h>
#include "options.h"
#include "packet.h"
@@ -37,6 +38,38 @@
#include "i18n.h"
+struct revocation_reason_info {
+ int code;
+ char *desc;
+};
+
+
+int
+revocation_reason_build_cb( PKT_signature *sig, void *opaque )
+{
+ struct revocation_reason_info *reason = opaque;
+ char *ud = NULL;
+ byte *buffer;
+ size_t buflen = 1;
+
+ if( reason->desc ) {
+ ud = native_to_utf8( reason->desc );
+ buflen += strlen(ud);
+ }
+ buffer = m_alloc( buflen );
+ *buffer = reason->code;
+ if( ud ) {
+ memcpy(buffer+1, ud, strlen(ud) );
+ m_free( ud );
+ }
+
+ build_sig_subpkt( sig, SIGSUBPKT_REVOC_REASON, buffer, buflen );
+ m_free( buffer );
+ return 0;
+}
+
+
+
/****************
* Generate a revocation certificate for UNAME
*/
@@ -55,6 +88,7 @@ gen_revoke( const char *uname )
KBNODE keyblock = NULL;
KBNODE node;
KBPOS kbpos;
+ struct revocation_reason_info *reason = NULL;
if( opt.batch ) {
log_error(_("sorry, can't do this in batch mode\n"));
@@ -62,19 +96,6 @@ gen_revoke( const char *uname )
}
- /* FIXME: ask for the reason of revocation
- 0x00 - No reason specified (key revocations or cert revocations)
- Does not make sense!
-
- 0x01 - Key is superceded (key revocations)
- 0x02 - Key material has been compromised (key revocations)
- 0x03 - Key is no longer used (key revocations)
- 0x20 - User id information is no longer valid (cert revocations)
-
- Following the revocation code is a string of octets which gives
- information about the reason for revocation in human-readable form
- */
-
memset( &afx, 0, sizeof afx);
memset( &zfx, 0, sizeof zfx);
init_packet( &pkt );
@@ -113,7 +134,7 @@ gen_revoke( const char *uname )
{
size_t n;
char *p = get_user_id( sk_keyid, &n );
- tty_print_string( p, n );
+ tty_print_utf8_string( p, n );
m_free(p);
tty_printf("\n");
}
@@ -136,6 +157,13 @@ gen_revoke( const char *uname )
goto leave;
}
+ /* get the reason for the revocation */
+ reason = ask_revocation_reason( 1, 0, 1 );
+ if( !reason ) { /* user decided to cancel */
+ rc = 0;
+ goto leave;
+ }
+
switch( is_secret_key_protected( sk ) ) {
case -1:
log_error(_("unknown protection algorithm\n"));
@@ -163,7 +191,9 @@ gen_revoke( const char *uname )
iobuf_push_filter( out, armor_filter, &afx );
/* create it */
- rc = make_keysig_packet( &sig, pk, NULL, NULL, sk, 0x20, 0, NULL, NULL);
+ rc = make_keysig_packet( &sig, pk, NULL, NULL, sk, 0x20, 0,
+ revocation_reason_build_cb,
+ reason );
if( rc ) {
log_error(_("make_keysig_packet failed: %s\n"), g10_errstr(rc));
goto leave;
@@ -198,193 +228,127 @@ gen_revoke( const char *uname )
iobuf_cancel(out);
else
iobuf_close(out);
+ release_revocation_reason_info( reason );
return rc;
}
-#if 0 /* The code is not complete but anyway, now we use */
- /* the edit menu to revoke signature */
-/****************
- * Return true if there is already a revocation signature for KEYID
- * in KEYBLOCK at point node.
- */
-static int
-already_revoked( const KBNODE keyblock, const KBNODE node, u32 *keyid ) ) {
-{
- const KBNODE n = find_prev_kbnode( keyblock, node, PKT_USER_ID );
-
- for( ; n; n = n->next ) {
- PKT_signature *sig;
- if( n->pkt->pkttype == PKT_SIGNATURE
- && (sig = node->pkt->pkt.signature)->sig_class == 0x30
- && sig->keyid[0] == keyid[0]
- && sig->keyid[1] == keyid[1] )
- return 1;
- }
- else if( n->pkt->pkttype == PKT_USER_ID
- break;
- else if( n->pkt->pkttype == PKT_PUBLIC_SUBKEY
- break;
- }
- return 0;
-}
-/****************
- * Ask whether the signature should be revoked. If the user commits this,
- * flag bit 0 is set.
- */
-static void
-ask_revoke_sig( KBNODE keyblock, KBNODE node, PKT_signature *sig ) ) {
-{
- KBNODE unode = find_prev_kbnode( keyblock, node, PKT_USER_ID );
- if( !unode ) {
- log_error("Oops: no user ID for signature\n");
- return;
- }
-
- tty_printf(_("user ID: \""));
- tty_print_string( unode->pkt->pkt.user_id->name,
- unode->pkt->pkt.user_id->len, 0 );
- tty_printf(_("\"\nsigned with your key %08lX at %s\n"),
- sig->keyid[1], datestr_from_sig(sig) );
-
- if( cpr_get_answer_is_yes("ask_revoke_sig.one",
- _("Create a revocation certificate for this signature? (y/N)")) ) {
- node->flag |= 1;
- }
-}
-
-/****************
- * Generate a signature revocation certificate for UNAME
- */
-int
-gen_sig_revoke( const char *uname )
+struct revocation_reason_info *
+ask_revocation_reason( int key_rev, int cert_rev, int hint )
{
- int rc = 0;
- armor_filter_context_t afx;
- compress_filter_context_t zfx;
- PACKET pkt;
- IOBUF out = NULL;
- KBNODE keyblock = NULL;
- KBNODE node;
- KBPOS kbpos;
- int uidchg;
-
- if( opt.batch ) {
- log_error(_("sorry, can't do this in batch mode\n"));
- return G10ERR_GENERAL;
- }
-
-
- memset( &afx, 0, sizeof afx);
- memset( &zfx, 0, sizeof zfx);
- init_packet( &pkt );
-
-
- /* get the keyblock */
- rc = find_keyblock_byname( &kbpos, uname );
- if( rc ) {
- log_error(_("public key for user `%s' not found\n"), uname );
- goto leave;
- }
-
- /* read the keyblock */
- rc = read_keyblock( &kbpos, &keyblock );
- if( rc ) {
- log_error(_("error reading the certificate: %s\n"), g10_errstr(rc) );
- goto leave;
- }
-
- /* get the keyid from the keyblock */
- node = find_kbnode( keyblock, PKT_PUBLIC_KEY );
- if( !node ) {
- log_error(_("Oops; public key lost!\n"));
- rc = G10ERR_GENERAL;
- goto leave;
- }
-
- if( (rc = open_outfile( NULL, 0, &out )) )
- goto leave;
-
- if( opt.armor ) {
- afx.what = 1;
- iobuf_push_filter( out, armor_filter, &afx );
- }
+ int code;
+ char *description = NULL;
+ struct revocation_reason_info *reason;
+ const char *text_1 = _("Key has been compromised");
+ const char *text_2 = _("Key is superseded");
+ const char *text_3 = _("Key is no longer used");
+ const char *text_4 = _("User ID is non longer valid");
+ const char *code_text = NULL;
+
+ do {
+ m_free(description);
+ description = NULL;
+
+ tty_printf(_("Please select the reason for the revocation:\n"));
+ if( key_rev )
+ tty_printf(" 1 = %s\n", text_1 );
+ if( key_rev )
+ tty_printf(" 2 = %s\n", text_2 );
+ if( key_rev )
+ tty_printf(" 3 = %s\n", text_3 );
+ if( cert_rev )
+ tty_printf(" 4 = %s\n", text_4 );
+ tty_printf( " 0 = %s\n", _("Cancel") );
+ if( hint )
+ tty_printf(_("(Probably you want to select %d here)\n"), hint );
+
+ for(code = 0; !code;) {
+ int n;
+ char *answer = cpr_get("ask_revocation_reason.code",
+ _("Your decision? "));
+ trim_spaces( answer );
+ cpr_kill_prompt();
+ if( *answer == 'q' || *answer == 'Q' )
+ n = 0;
+ else if( !isdigit( *answer ) )
+ n = -1;
+ else if( hint && !*answer )
+ n = hint;
+ else
+ n = atoi(answer);
+ m_free(answer);
+ if( !n )
+ return NULL; /* cancel */
+ else if( key_rev && n == 1 ) {
+ code = 0x02; /* key has been compromised */
+ code_text = text_1;
+ }
+ else if( key_rev && n == 2 ) {
+ code = 0x01; /* key is superseded */
+ code_text = text_2;
+ }
+ else if( key_rev && n == 3 ) {
+ code = 0x03; /* key is no longer used */
+ code_text = text_3;
+ }
+ else if( cert_rev && n == 4 ) {
+ code = 0x20; /* uid is non longer valid */
+ code_text = text_4;
+ }
+ else
+ tty_printf(_("Invalid selection.\n"));
+ }
- /* Now walk over all signatures which we did with one of
- * our secret keys. Hmmm: Should we check for duplicate signatures */
- clear_kbnode_flags( flags );
- for( node = keyblock; node; node = node->next ) {
- PKT_signature *sig;
- if( node->pkt->pkttype == PKT_SIGNATURE
- && ((sig = node->pkt->pkt.signature)->sig_class&~3) == 0x10
- && seckey_available( sig->keyid )
- && !already_revoked( keyblock, node, sig->keyid ) ) { ) {
- ask_revoke_sig( keyblock, node, sig )
+ tty_printf(_("Enter an optional description; "
+ "end it with an empty line:\n") );
+ for(;;) {
+ char *answer = cpr_get("ask_revocation_reason.text", "> " );
+ trim_trailing_ws( answer, strlen(answer) );
+ cpr_kill_prompt();
+ if( !*answer ) {
+ m_free(answer);
+ break;
+ }
+
+ {
+ char *p = make_printable_string( answer, strlen(answer), 0 );
+ m_free(answer);
+ answer = p;
+ }
+
+ if( !description )
+ description = m_strdup(answer);
+ else {
+ char *p = m_alloc( strlen(description) + strlen(answer) + 2 );
+ strcpy(stpcpy(stpcpy( p, description),"\n"),answer);
+ m_free(description);
+ description = p;
+ }
+ m_free(answer);
}
- else if( node->pkt->pkttype == PKT_PUBLIC_SUBKEY
- break;
- }
+ tty_printf(_("Reason for revocation: %s\n"), code_text );
+ if( !description )
+ tty_printf(_("(No description given)\n") );
+ else
+ tty_printf("%s\n", description );
- for( node = keyblock; node; node = node->next ) { {
- if( (node->flag & 1) )
- break;
- }
- if( !node ) {
- log_info(_("nothing to revoke\n"));
- iobuf_cancel(out);
- out = NULL;
- goto leave;
- }
+ } while( !cpr_get_answer_is_yes("ask_revocation_reason.okay",
+ _("Is this okay? ")) );
- init_packet( &pkt );
- pkt.pkttype = PKT_PUBLIC_KEY;
- pkt.pkt.public_key = keyblock->pkt->pkt.public_key;
- rc = build_packet( out, &pkt );
- if( rc ) {
- log_error(_("build_packet failed: %s\n"), g10_errstr(rc) );
- goto leave;
- }
- uidchg = 1;
- for( node = keyblock; node; node = node->next ) {
- if( node->pkt->pkttype == PKT_USER_ID )
- uidchg = 1;
- if( !(node->flag & 1) )
- continue;
-
- if( uidchg ) {
- /* create a user ID packet */
- .......
- uidchg = 0;
- }
+ reason = m_alloc( sizeof *reason );
+ reason->code = code;
+ reason->desc = description;
+ return reason;
+}
- /* create it */
- rc = make_keysig_packet( &sig, pk, NULL, NULL, sk, 0x30, 0, NULL, NULL);
- if( rc ) {
- log_error(_("make_keysig_packet failed: %s\n"), g10_errstr(rc));
- goto leave;
- }
- init_packet( &pkt );
- pkt.pkttype = PKT_SIGNATURE;
- pkt.pkt.signature = sig;
-
- rc = build_packet( out, &pkt );
- if( rc ) {
- log_error(_("build_packet failed: %s\n"), g10_errstr(rc) );
- goto leave;
- }
+void
+release_revocation_reason_info( struct revocation_reason_info *reason )
+{
+ if( reason ) {
+ m_free( reason->desc );
+ m_free( reason );
}
-
- leave:
- release_kbnode( keyblock );
- if( !out )
- ;
- else if( rc )
- iobuf_cancel(out);
- else
- iobuf_close(out);
- return rc;
}
-#endif /* unused code */
diff --git a/g10/ringedit.c b/g10/ringedit.c
index 04d6753de..5fcd458b0 100644
--- a/g10/ringedit.c
+++ b/g10/ringedit.c
@@ -1,5 +1,5 @@
/* ringedit.c - Function for key ring editing
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -63,10 +63,6 @@
#include "i18n.h"
-#ifdef MKDIR_TAKES_ONE_ARG
-# undef mkdir
-# define mkdir(a,b) mkdir(a)
-#endif
struct resource_table_struct {
@@ -185,7 +181,6 @@ enum_keyblock_resources( int *sequence, int secret )
}
-
/****************
* Register a resource (which currently may only be a keyring file).
* The first keyring which is added by this function is
@@ -291,24 +286,13 @@ add_keyblock_resource( const char *url, int force, int secret )
*last_slash_in_filename = 0;
if( access(filename, F_OK) ) {
- if( strlen(filename) >= 7
- && !strcmp(filename+strlen(filename)-7, "/.gnupg") ) {
- if( mkdir(filename, S_IRUSR|S_IWUSR|S_IXUSR) )
- {
- log_error( _("%s: can't create directory: %s\n"),
- filename, strerror(errno));
- rc = G10ERR_OPEN_FILE;
- goto leave;
- }
- else if( !opt.quiet )
- log_info( _("%s: directory created\n"), filename );
- copy_options_file( filename );
- }
- else
- {
- rc = G10ERR_OPEN_FILE;
- goto leave;
- }
+ /* on the first time we try to create the default homedir and
+ * in this case the process will be terminated, so that on the
+ * next invocation it can read the options file in on startup
+ */
+ try_make_homedir( filename );
+ rc = G10ERR_OPEN_FILE;
+ goto leave;
}
*last_slash_in_filename = '/';
@@ -435,6 +419,35 @@ get_keyblock_handle( const char *filename, int secret, KBPOS *kbpos )
}
+/****************
+ * Return the filename of the firstkeyblock resource which is intended
+ * for write access. This will either be the default resource or in
+ * case this is not writable one of the others. If no writable is found,
+ * the default filename in the homedirectory will be returned.
+ * Caller must free, will never return NULL.
+ */
+char *
+get_writable_keyblock_file( int secret )
+{
+ int i = secret? default_secret_resource : default_public_resource;
+
+ if( resource_table[i].used && !resource_table[i].secret == !secret ) {
+ if( !access( resource_table[i].fname, R_OK|W_OK ) ) {
+ return m_strdup( resource_table[i].fname );
+ }
+ }
+ for(i=0; i < MAX_RESOURCES; i++ ) {
+ if( resource_table[i].used && !resource_table[i].secret == !secret ) {
+ if( !access( resource_table[i].fname, R_OK|W_OK ) ) {
+ return m_strdup( resource_table[i].fname );
+ }
+ }
+ }
+ /* Assume the home dir is always writable */
+ return make_filename(opt.homedir, secret? "secring.gpg"
+ : "pubring.gpg", NULL );
+}
+
/****************
* Search a keyblock which starts with the given packet and puts all
@@ -737,7 +750,9 @@ enum_keyblocks( int mode, KBPOS *kbpos, KBNODE *ret_root )
if( !mode || mode == 5 || mode == 100 ) {
int i;
+
kbpos->fp = NULL;
+ kbpos->rt = rt_UNKNOWN;
if( !mode ) {
kbpos->secret = 0;
i = 0;
diff --git a/g10/seckey-cert.c b/g10/seckey-cert.c
index a8fae04d6..283e4e816 100644
--- a/g10/seckey-cert.c
+++ b/g10/seckey-cert.c
@@ -1,5 +1,5 @@
/* seckey-cert.c - secret key certificate packet handling
- * Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -49,6 +49,10 @@ do_check( PKT_secret_key *sk )
CIPHER_HANDLE cipher_hd=NULL;
PKT_secret_key *save_sk;
+ if( sk->protect.s2k.mode == 1001 ) {
+ log_info(_("secret key parts are not available\n"));
+ return G10ERR_GENERAL;
+ }
if( sk->protect.algo == CIPHER_ALGO_NONE )
BUG();
if( check_cipher_algo( sk->protect.algo ) ) {
diff --git a/g10/seskey.c b/g10/seskey.c
index bb158abc0..d0fe5f9bf 100644
--- a/g10/seskey.c
+++ b/g10/seskey.c
@@ -1,5 +1,5 @@
/* seskey.c - make sesssion keys etc.
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
diff --git a/g10/sig-check.c b/g10/sig-check.c
index 773eff7ca..cb00b86dc 100644
--- a/g10/sig-check.c
+++ b/g10/sig-check.c
@@ -1,5 +1,5 @@
/* sig-check.c - Check a signature
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -32,6 +32,7 @@
#include "main.h"
#include "status.h"
#include "i18n.h"
+#include "options.h"
struct cmp_help_context_s {
PKT_signature *sig;
@@ -40,9 +41,9 @@ struct cmp_help_context_s {
static int do_signature_check( PKT_signature *sig, MD_HANDLE digest,
- u32 *r_expire );
+ u32 *r_expiredate, int *r_expired );
static int do_check( PKT_public_key *pk, PKT_signature *sig,
- MD_HANDLE digest );
+ MD_HANDLE digest, int *r_expired );
/****************
@@ -54,11 +55,13 @@ int
signature_check( PKT_signature *sig, MD_HANDLE digest )
{
u32 dummy;
- return do_signature_check( sig, digest, &dummy );
+ int dum2;
+ return do_signature_check( sig, digest, &dummy, &dum2 );
}
static int
-do_signature_check( PKT_signature *sig, MD_HANDLE digest, u32 *r_expire )
+do_signature_check( PKT_signature *sig, MD_HANDLE digest,
+ u32 *r_expiredate, int *r_expired )
{
PKT_public_key *pk = m_alloc_clear( sizeof *pk );
int rc=0;
@@ -66,12 +69,12 @@ do_signature_check( PKT_signature *sig, MD_HANDLE digest, u32 *r_expire )
if( is_RSA(sig->pubkey_algo) )
write_status(STATUS_RSA_OR_IDEA);
- *r_expire = 0;
+ *r_expiredate = 0;
if( get_pubkey( pk, sig->keyid ) )
rc = G10ERR_NO_PUBKEY;
else {
- *r_expire = pk->expiredate;
- rc = do_check( pk, sig, digest );
+ *r_expiredate = pk->expiredate;
+ rc = do_check( pk, sig, digest, r_expired );
}
free_public_key( pk );
@@ -284,13 +287,15 @@ cmp_help( void *opaque, MPI result )
static int
-do_check( PKT_public_key *pk, PKT_signature *sig, MD_HANDLE digest )
+do_check( PKT_public_key *pk, PKT_signature *sig, MD_HANDLE digest,
+ int *r_expired )
{
MPI result = NULL;
int rc=0;
struct cmp_help_context_s ctx;
u32 cur_time;
+ *r_expired = 0;
if( pk->version == 4 && pk->pubkey_algo == PUBKEY_ALGO_ELGAMAL_E ) {
log_info(_("this is a PGP generated "
"ElGamal key which is NOT secure for signatures!\n"));
@@ -303,7 +308,8 @@ do_check( PKT_public_key *pk, PKT_signature *sig, MD_HANDLE digest )
? _("public key is %lu second newer than the signature\n")
: _("public key is %lu seconds newer than the signature\n"),
d );
- return G10ERR_TIME_CONFLICT; /* pubkey newer than signature */
+ if( !opt.ignore_time_conflict )
+ return G10ERR_TIME_CONFLICT; /* pubkey newer than signature */
}
cur_time = make_timestamp();
@@ -313,13 +319,15 @@ do_check( PKT_public_key *pk, PKT_signature *sig, MD_HANDLE digest )
"in future (time warp or clock problem)\n")
: _("key has been created %lu seconds "
"in future (time warp or clock problem)\n"), d );
- return G10ERR_TIME_CONFLICT;
+ if( !opt.ignore_time_conflict )
+ return G10ERR_TIME_CONFLICT;
}
if( pk->expiredate && pk->expiredate < cur_time ) {
log_info(_("NOTE: signature key expired %s\n"),
asctimestamp( pk->expiredate ) );
write_status(STATUS_SIGEXPIRED);
+ *r_expired = 1;
}
@@ -390,16 +398,30 @@ hash_uid_node( KBNODE unode, MD_HANDLE md, PKT_signature *sig )
PKT_user_id *uid = unode->pkt->pkt.user_id;
assert( unode->pkt->pkttype == PKT_USER_ID );
- if( sig->version >=4 ) {
- byte buf[5];
- buf[0] = 0xb4; /* indicates a userid packet */
- buf[1] = uid->len >> 24; /* always use 4 length bytes */
- buf[2] = uid->len >> 16;
- buf[3] = uid->len >> 8;
- buf[4] = uid->len;
- md_write( md, buf, 5 );
+ if( uid->photo ) {
+ if( sig->version >=4 ) {
+ byte buf[5];
+ buf[0] = 0xd1; /* packet of type 17 */
+ buf[1] = uid->photolen >> 24; /* always use 4 length bytes */
+ buf[2] = uid->photolen >> 16;
+ buf[3] = uid->photolen >> 8;
+ buf[4] = uid->photolen;
+ md_write( md, buf, 5 );
+ }
+ md_write( md, uid->photo, uid->photolen );
+ }
+ else {
+ if( sig->version >=4 ) {
+ byte buf[5];
+ buf[0] = 0xb4; /* indicates a userid packet */
+ buf[1] = uid->len >> 24; /* always use 4 length bytes */
+ buf[2] = uid->len >> 16;
+ buf[3] = uid->len >> 8;
+ buf[4] = uid->len;
+ md_write( md, buf, 5 );
+ }
+ md_write( md, uid->name, uid->len );
}
- md_write( md, uid->name, uid->len );
}
/****************
@@ -411,11 +433,13 @@ int
check_key_signature( KBNODE root, KBNODE node, int *is_selfsig )
{
u32 dummy;
- return check_key_signature2(root, node, is_selfsig, &dummy );
+ int dum2;
+ return check_key_signature2(root, node, is_selfsig, &dummy, &dum2 );
}
int
-check_key_signature2( KBNODE root, KBNODE node, int *is_selfsig, u32 *r_expire)
+check_key_signature2( KBNODE root, KBNODE node, int *is_selfsig,
+ u32 *r_expiredate, int *r_expired )
{
MD_HANDLE md;
PKT_public_key *pk;
@@ -425,7 +449,8 @@ check_key_signature2( KBNODE root, KBNODE node, int *is_selfsig, u32 *r_expire)
if( is_selfsig )
*is_selfsig = 0;
- *r_expire = 0;
+ *r_expiredate = 0;
+ *r_expired = 0;
assert( node->pkt->pkttype == PKT_SIGNATURE );
assert( root->pkt->pkttype == PKT_PUBLIC_KEY );
@@ -445,7 +470,7 @@ check_key_signature2( KBNODE root, KBNODE node, int *is_selfsig, u32 *r_expire)
if( sig->sig_class == 0x20 ) {
md = md_open( algo, 0 );
hash_public_key( md, pk );
- rc = do_check( pk, sig, md );
+ rc = do_check( pk, sig, md, r_expired );
md_close(md);
}
else if( sig->sig_class == 0x28 ) { /* subkey revocation */
@@ -455,7 +480,7 @@ check_key_signature2( KBNODE root, KBNODE node, int *is_selfsig, u32 *r_expire)
md = md_open( algo, 0 );
hash_public_key( md, pk );
hash_public_key( md, snode->pkt->pkt.public_key );
- rc = do_check( pk, sig, md );
+ rc = do_check( pk, sig, md, r_expired );
md_close(md);
}
else {
@@ -477,7 +502,7 @@ check_key_signature2( KBNODE root, KBNODE node, int *is_selfsig, u32 *r_expire)
md = md_open( algo, 0 );
hash_public_key( md, pk );
hash_public_key( md, snode->pkt->pkt.public_key );
- rc = do_check( pk, sig, md );
+ rc = do_check( pk, sig, md, r_expired );
md_close(md);
}
else {
@@ -498,10 +523,10 @@ check_key_signature2( KBNODE root, KBNODE node, int *is_selfsig, u32 *r_expire)
if( keyid[0] == sig->keyid[0] && keyid[1] == sig->keyid[1] ) {
if( is_selfsig )
*is_selfsig = 1;
- rc = do_check( pk, sig, md );
+ rc = do_check( pk, sig, md, r_expired );
}
else
- rc = do_signature_check( sig, md, r_expire );
+ rc = do_signature_check( sig, md, r_expiredate, r_expired );
md_close(md);
}
else {
diff --git a/g10/sign.c b/g10/sign.c
index eb53794dc..e4b1b8f4e 100644
--- a/g10/sign.c
+++ b/g10/sign.c
@@ -1,5 +1,5 @@
/* sign.c - sign data
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -39,6 +39,12 @@
#include "i18n.h"
+#ifdef HAVE_DOSISH_SYSTEM
+ #define LF "\r\n"
+#else
+ #define LF "\n"
+#endif
+
/****************
* Create a notation. It is assumed that the stings in STRLIST
@@ -106,7 +112,8 @@ do_sign( PKT_secret_key *sk, PKT_signature *sig,
"in future (time warp or clock problem)\n")
: _("key has been created %lu seconds "
"in future (time warp or clock problem)\n"), d );
- return G10ERR_TIME_CONFLICT;
+ if( !opt.ignore_time_conflict )
+ return G10ERR_TIME_CONFLICT;
}
@@ -582,7 +589,7 @@ clearsign_file( const char *fname, STRLIST locusr, const char *outfile )
else if( (rc = open_outfile( fname, 1, &out )) )
goto leave;
- iobuf_writestr(out, "-----BEGIN PGP SIGNED MESSAGE-----\n" );
+ iobuf_writestr(out, "-----BEGIN PGP SIGNED MESSAGE-----" LF );
for( sk_rover = sk_list; sk_rover; sk_rover = sk_rover->next ) {
PKT_secret_key *sk = sk_rover->sk;
@@ -594,21 +601,28 @@ clearsign_file( const char *fname, STRLIST locusr, const char *outfile )
}
}
- if( old_style || only_md5 )
+ if( old_style && only_md5 )
iobuf_writestr(out, "\n" );
else {
const char *s;
int any = 0;
+ byte hashs_seen[256];
+ memset( hashs_seen, 0, sizeof hashs_seen );
iobuf_writestr(out, "Hash: " );
for( sk_rover = sk_list; sk_rover; sk_rover = sk_rover->next ) {
PKT_secret_key *sk = sk_rover->sk;
- s = digest_algo_to_string( hash_for(sk->pubkey_algo) );
- if( s ) {
- if( any )
- iobuf_put(out, ',' );
- iobuf_writestr(out, s );
- any = 1;
+ int i = hash_for(sk->pubkey_algo);
+
+ if( !hashs_seen[ i & 0xff ] ) {
+ s = digest_algo_to_string( i );
+ if( s ) {
+ hashs_seen[ i & 0xff ] = 1;
+ if( any )
+ iobuf_put(out, ',' );
+ iobuf_writestr(out, s );
+ any = 1;
+ }
}
}
assert(any);
diff --git a/g10/signal.c b/g10/signal.c
index 6ed23e5a0..cf8dbd5eb 100644
--- a/g10/signal.c
+++ b/g10/signal.c
@@ -1,5 +1,5 @@
/* signal.c - signal handling
- * Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -59,14 +59,23 @@ got_fatal_signal( int sig )
caught_fatal_sig = 1;
secmem_term();
- #ifdef IS_DEVELOPMENT_VERSION
+ /* better don't transtale these messages */
write(2, "\n", 1 );
s = log_get_name(); if( s ) write(2, s, strlen(s) );
write(2, ": ", 2 );
s = get_signal_name(sig); write(2, s, strlen(s) );
write(2, " caught ... exiting\n", 21 );
+
+ #ifndef HAVE_DOSISH_SYSTEM
+ { /* reset action to default action and raise signal again */
+ struct sigaction nact;
+ nact.sa_handler = SIG_DFL;
+ sigemptyset( &nact.sa_mask );
+ nact.sa_flags = 0;
+ sigaction( sig, &nact, NULL);
+ }
#endif
- exit(8); /* Hmmm, for some reasons rais2e does not work */
+ raise( sig );
}
diff --git a/g10/skclist.c b/g10/skclist.c
index df8b683f3..3d4b930ce 100644
--- a/g10/skclist.c
+++ b/g10/skclist.c
@@ -1,5 +1,5 @@
/* skclist.c
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
diff --git a/g10/status.c b/g10/status.c
index 9f1c5a669..38f2c145f 100644
--- a/g10/status.c
+++ b/g10/status.c
@@ -1,5 +1,5 @@
/* status.c
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -44,6 +44,7 @@
#include "options.h"
#include "main.h"
#include "i18n.h"
+#include "cipher.h" /* for progress functions */
static int fd = -1;
#ifdef USE_SHM_COPROCESSING
@@ -53,10 +54,29 @@ static int fd = -1;
static int shm_is_locked;
#endif /*USE_SHM_COPROCESSING*/
+
+static void
+progress_cb ( void *ctx, int c )
+{
+ char buf[50];
+
+ if ( c == '\n' )
+ sprintf ( buf, "%.20s X 100 100", (char*)ctx );
+ else
+ sprintf ( buf, "%.20s %c 0 0", (char*)ctx, c );
+ write_status_text ( STATUS_PROGRESS, buf );
+}
+
+
void
set_status_fd ( int newfd )
{
fd = newfd;
+ if ( fd != -1 ) {
+ register_primegen_progress ( progress_cb, "primegen" );
+ register_pk_dsa_progress ( progress_cb, "pk_dsa" );
+ register_pk_elg_progress ( progress_cb, "pk_elg" );
+ }
}
int
@@ -95,6 +115,10 @@ write_status_text ( int no, const char *text)
case STATUS_TRUST_MARGINAL : s = "TRUST_MARGINAL\n"; break;
case STATUS_TRUST_FULLY : s = "TRUST_FULLY\n"; break;
case STATUS_TRUST_ULTIMATE : s = "TRUST_ULTIMATE\n"; break;
+ case STATUS_GET_BOOL : s = "GET_BOOL\n"; break;
+ case STATUS_GET_LINE : s = "GET_LINE\n"; break;
+ case STATUS_GET_HIDDEN : s = "GET_HIDDEN\n"; break;
+ case STATUS_GOT_IT : s = "GOT_IT\n"; break;
case STATUS_SHM_INFO : s = "SHM_INFO\n"; break;
case STATUS_SHM_GET : s = "SHM_GET\n"; break;
case STATUS_SHM_GET_BOOL : s = "SHM_GET_BOOL\n"; break;
@@ -117,6 +141,15 @@ write_status_text ( int no, const char *text)
case STATUS_ERRMDC : s = "ERRMDC\n"; break;
case STATUS_IMPORTED : s = "IMPORTED\n"; break;
case STATUS_IMPORT_RES : s = "IMPORT_RES\n"; break;
+ case STATUS_FILE_START : s = "FILE_START\n"; break;
+ case STATUS_FILE_DONE : s = "FILE_DONE\n"; break;
+ case STATUS_FILE_ERROR : s = "FILE_ERROR\n"; break;
+ case STATUS_BEGIN_DECRYPTION:s = "BEGIN_DECRYPTION\n"; break;
+ case STATUS_END_DECRYPTION : s = "END_DECRYPTION\n"; break;
+ case STATUS_BEGIN_ENCRYPTION:s = "BEGIN_ENCRYPTION\n"; break;
+ case STATUS_END_ENCRYPTION : s = "END_ENCRYPTION\n"; break;
+ case STATUS_DELETE_PROBLEM : s = "DELETE_PROBLEM\n"; break;
+ case STATUS_PROGRESS : s = "PROGRESS\n"; break;
default: s = "?\n"; break;
}
@@ -268,10 +301,50 @@ do_shm_get( const char *keyword, int hidden, int bool )
#endif /* USE_SHM_COPROCESSING */
+/****************
+ * Request a string from the client over the command-fd
+ * If bool, returns static string on true (do not free) or NULL for false
+ */
+static char *
+do_get_from_fd( const char *keyword, int hidden, int bool )
+{
+ int i, len;
+ char *string;
+
+ write_status_text( bool? STATUS_GET_BOOL :
+ hidden? STATUS_GET_HIDDEN : STATUS_GET_LINE, keyword );
+
+ for( string = NULL, i = len = 200; ; i++ ) {
+ if( i >= len-1 ) {
+ char *save = string;
+ len += 100;
+ string = hidden? m_alloc_secure ( len ) : m_alloc ( len );
+ if( save )
+ memcpy(string, save, i );
+ else
+ i=0;
+ }
+ /* Hmmm: why not use our read_line function here */
+ if( read( fd, string+i, 1) != 1 || string[i] == '\n' )
+ break;
+ }
+ string[i] = 0;
+
+ write_status( STATUS_GOT_IT );
+
+ if( bool ) /* Fixme: is this correct??? */
+ return string[0] == 'Y' ? "" : NULL;
+
+ return string;
+}
+
+
int
cpr_enabled()
{
+ if( opt.command_fd != -1 )
+ return 1;
#ifdef USE_SHM_COPROCESSING
if( opt.shm_coprocess )
return 1;
@@ -284,6 +357,8 @@ cpr_get( const char *keyword, const char *prompt )
{
char *p;
+ if( opt.command_fd != -1 )
+ return do_get_from_fd ( keyword, 0, 0 );
#ifdef USE_SHM_COPROCESSING
if( opt.shm_coprocess )
return do_shm_get( keyword, 0, 0 );
@@ -317,6 +392,8 @@ cpr_get_hidden( const char *keyword, const char *prompt )
{
char *p;
+ if( opt.command_fd != -1 )
+ return do_get_from_fd ( keyword, 1, 0 );
#ifdef USE_SHM_COPROCESSING
if( opt.shm_coprocess )
return do_shm_get( keyword, 1, 0 );
@@ -335,6 +412,8 @@ cpr_get_hidden( const char *keyword, const char *prompt )
void
cpr_kill_prompt(void)
{
+ if( opt.command_fd != -1 )
+ return;
#ifdef USE_SHM_COPROCESSING
if( opt.shm_coprocess )
return;
@@ -349,6 +428,8 @@ cpr_get_answer_is_yes( const char *keyword, const char *prompt )
int yes;
char *p;
+ if( opt.command_fd != -1 )
+ return !!do_get_from_fd ( keyword, 0, 1 );
#ifdef USE_SHM_COPROCESSING
if( opt.shm_coprocess )
return !!do_shm_get( keyword, 0, 1 );
@@ -375,6 +456,8 @@ cpr_get_answer_yes_no_quit( const char *keyword, const char *prompt )
int yes;
char *p;
+ if( opt.command_fd != -1 )
+ return !!do_get_from_fd ( keyword, 0, 1 );
#ifdef USE_SHM_COPROCESSING
if( opt.shm_coprocess )
return !!do_shm_get( keyword, 0, 1 );
diff --git a/g10/status.h b/g10/status.h
index 817b34a3c..667565560 100644
--- a/g10/status.h
+++ b/g10/status.h
@@ -1,5 +1,5 @@
/* status.h
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -65,7 +65,21 @@
#define STATUS_ERRMDC 35
#define STATUS_IMPORTED 36
#define STATUS_IMPORT_RES 37
+#define STATUS_FILE_START 38
+#define STATUS_FILE_DONE 39
+#define STATUS_FILE_ERROR 40
+#define STATUS_BEGIN_DECRYPTION 41
+#define STATUS_END_DECRYPTION 42
+#define STATUS_BEGIN_ENCRYPTION 43
+#define STATUS_END_ENCRYPTION 44
+
+#define STATUS_DELETE_PROBLEM 45
+#define STATUS_GET_BOOL 46
+#define STATUS_GET_LINE 47
+#define STATUS_GET_HIDDEN 48
+#define STATUS_GOT_IT 49
+#define STATUS_PROGRESS 50
/*-- status.c --*/
void set_status_fd ( int fd );
diff --git a/g10/tdbdump.c b/g10/tdbdump.c
index 799309e05..3b84103e8 100644
--- a/g10/tdbdump.c
+++ b/g10/tdbdump.c
@@ -1,5 +1,5 @@
/* tdbdump.c
- * Copyright (C) 1999 Free Software Foundation, Inc.
+ * Copyright (C) 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -43,8 +43,8 @@
#include "tdbio.h"
-#define HEXTOBIN(a) ( (a) >= '0' && (a) <= '9' ? ((a)-'0') : \
- (a) >= 'A' && (a) <= 'F' ? ((a)-'A'+10) : ((a)-'a'+10))
+#define HEXTOBIN(x) ( (x) >= '0' && (x) <= '9' ? ((x)-'0') : \
+ (x) >= 'A' && (x) <= 'F' ? ((x)-'A'+10) : ((x)-'a'+10))
/****************
* Read a record but die if it does not exist
@@ -520,5 +520,6 @@ import_ownertrust( const char *fname )
if( !is_stdin )
fclose(fp);
do_sync();
+ sync_trustdb();
}
diff --git a/g10/tdbio.c b/g10/tdbio.c
index b840d723a..8ea24c744 100644
--- a/g10/tdbio.c
+++ b/g10/tdbio.c
@@ -1,5 +1,5 @@
/* tdbio.c
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -40,11 +40,6 @@
#include "tdbio.h"
-#ifdef MKDIR_TAKES_ONE_ARG
-# undef mkdir
-# define mkdir(a,b) mkdir(a)
-#endif
-
/****************
* Yes, this is a very simple implementation. We should really
* use a page aligned buffer and read complete pages.
@@ -439,17 +434,8 @@ tdbio_set_dbname( const char *new_dbname, int create )
assert(p);
*p = 0;
if( access( fname, F_OK ) ) {
- if( strlen(fname) >= 7
- && !strcmp(fname+strlen(fname)-7, "/.gnupg" ) ) {
- if( mkdir( fname, S_IRUSR|S_IWUSR|S_IXUSR ) )
- log_fatal( _("%s: can't create directory: %s\n"),
- fname, strerror(errno) );
- else if( !opt.quiet )
- log_info( _("%s: directory created\n"), fname );
- copy_options_file( fname );
- }
- else
- log_fatal( _("%s: directory does not exist!\n"), fname );
+ try_make_homedir( fname );
+ log_fatal( _("%s: directory does not exist!\n"), fname );
}
*p = '/';
@@ -1130,6 +1116,8 @@ tdbio_dump_record( TRUSTREC *rec, FILE *fp )
fputs(", expired", fp );
if( rec->r.dir.dirflags & DIRF_REVOKED )
fputs(", revoked", fp );
+ if( rec->r.dir.dirflags & DIRF_NEWKEYS )
+ fputs(", newkeys", fp );
}
putc('\n', fp);
break;
diff --git a/g10/tdbio.h b/g10/tdbio.h
index a64f21b5f..4cc51353a 100644
--- a/g10/tdbio.h
+++ b/g10/tdbio.h
@@ -1,5 +1,5 @@
/* tdbio.h - Trust database I/O functions
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -52,6 +52,7 @@
/* one uid with a selfsignature or an revocation */
#define DIRF_EXPIRED 4 /* the complete key has expired */
#define DIRF_REVOKED 8 /* the complete key has been revoked */
+#define DIRF_NEWKEYS 128 /* new keys are available: we can check the sigs */
#define KEYF_CHECKED 1 /* This key has been checked */
#define KEYF_VALID 2 /* This is a valid (sub)key */
@@ -121,7 +122,7 @@ struct trust_record {
} uid;
struct { /* preference record */
ulong lid; /* point back to the directory record */
- /* or 0 for a glocal pref record */
+ /* or 0 for a global pref record */
ulong next; /* points to next pref record */
byte data[ITEMS_PER_PREF_RECORD];
} pref;
diff --git a/g10/textfilter.c b/g10/textfilter.c
index 3125925b6..414d3ec0e 100644
--- a/g10/textfilter.c
+++ b/g10/textfilter.c
@@ -1,5 +1,5 @@
/* textfilter.c
- * Copyright (C) 1998,1999 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -31,7 +31,13 @@
#include "util.h"
#include "filter.h"
#include "i18n.h"
+#include "options.h"
+#ifdef HAVE_DOSISH_SYSTEM
+ #define LF "\r\n"
+#else
+ #define LF "\n"
+#endif
#define MAX_LINELEN 19995 /* a little bit smaller than in armor.c */
/* to make sure that a warning is displayed while */
@@ -151,6 +157,9 @@ copy_clearsig_text( IOBUF out, IOBUF inp, MD_HANDLE md,
int truncated = 0;
int pending_lf = 0;
+ if( !opt.pgp2_workarounds )
+ pgp2mode = 0;
+
if( !escape_dash )
escape_from = 0;
@@ -183,12 +192,37 @@ copy_clearsig_text( IOBUF out, IOBUF inp, MD_HANDLE md,
iobuf_put( out, '-' );
iobuf_put( out, ' ' );
}
+
+ #if 0 /*defined(HAVE_DOSISH_SYSTEM)*/
+ /* We don't use this anymore because my interpretation of rfc2440 7.1
+ * is that there is no conversion needed. If one decides to
+ * clearsign a unix file on a DOS box he will get a mixed line endings.
+ * If at some point it turns out, that a conversion is a nice feature
+ * we can make an option out of it.
+ */
+ /* make sure the lines do end in CR,LF */
+ if( n > 1 && ( (buffer[n-2] == '\r' && buffer[n-1] == '\n' )
+ || (buffer[n-2] == '\n' && buffer[n-1] == '\r'))) {
+ iobuf_write( out, buffer, n-2 );
+ iobuf_put( out, '\r');
+ iobuf_put( out, '\n');
+ }
+ else if( n && buffer[n-1] == '\n' ) {
+ iobuf_write( out, buffer, n-1 );
+ iobuf_put( out, '\r');
+ iobuf_put( out, '\n');
+ }
+ else
+ iobuf_write( out, buffer, n );
+
+ #else
iobuf_write( out, buffer, n );
+ #endif
}
/* at eof */
if( !pending_lf ) { /* make sure that the file ends with a LF */
- iobuf_put( out, '\n');
+ iobuf_writestr( out, LF );
if( !escape_dash )
md_putc( md, '\n' );
}
diff --git a/g10/trustdb.c b/g10/trustdb.c
index 96b77a4ef..54fe34d88 100644
--- a/g10/trustdb.c
+++ b/g10/trustdb.c
@@ -1,5 +1,5 @@
/* trustdb.c
- * Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -110,7 +110,6 @@ static int alloced_tns;
static int max_alloced_tns;
-
static LOCAL_ID_TABLE new_lid_table(void);
static int ins_lid_table_item( LOCAL_ID_TABLE tbl, ulong lid, unsigned flag );
static int qry_lid_table_flag( LOCAL_ID_TABLE tbl, ulong lid, unsigned *flag );
@@ -125,13 +124,22 @@ static int do_check( TRUSTREC *drec, unsigned *trustlevel,
unsigned *retflgs);
static int get_dir_record( PKT_public_key *pk, TRUSTREC *rec );
static int do_update_trust_record( KBNODE keyblock, TRUSTREC *drec,
- int recheck, int *modified );
-static int check_trust_record( TRUSTREC *drec );
+ int sigs_only, int *modified );
+static int check_trust_record( TRUSTREC *drec, int sigs_only );
+static void mark_fresh_keys(void);
/* a table used to keep track of ultimately trusted keys
* which are the ones from our secrings and the trusted keys */
static LOCAL_ID_TABLE ultikey_table;
+
+/* a table to keep track of newly importted keys. This one is
+ * create by the insert_trust_record function and from time to time
+ * used to verify key signature which have been done with these new keys */
+static LOCAL_ID_TABLE fresh_imported_keys;
+static int fresh_imported_keys_count;
+#define FRESH_KEY_CHECK_THRESHOLD 200
+
/* list of unused lid items and tables */
static LOCAL_ID_TABLE unused_lid_tables;
static struct local_id_item *unused_lid_items;
@@ -245,6 +253,27 @@ release_lid_table( LOCAL_ID_TABLE tbl )
}
#endif
+
+/****************
+ * Remove all items from a LID table
+ */
+static void
+clear_lid_table( LOCAL_ID_TABLE tbl )
+{
+ struct local_id_item *a, *a2;
+ int i;
+
+ for(i=0; i < 16; i++ ) {
+ for(a=tbl->items[i]; a; a = a2 ) {
+ a2 = a->next;
+ a->next = unused_lid_items;
+ unused_lid_items = a;
+ }
+ tbl->items[i] = NULL;
+ }
+}
+
+
/****************
* Add a new item to the table or return 1 if we already have this item
*/
@@ -454,7 +483,7 @@ verify_own_keys(void)
if( DBG_TRUST )
log_debug("key %08lX: checking secret key\n", (ulong)keyid[1] );
- if( is_secret_key_protected( sk ) < 1 )
+ if( !opt.quiet && is_secret_key_protected( sk ) < 1 )
log_info(_("NOTE: secret key %08lX is NOT protected.\n"),
(ulong)keyid[1] );
@@ -572,6 +601,18 @@ init_trustdb()
+/****************
+ * This function should be called in certain cases to sync the internal state
+ * of the trustdb with the file image. Currently it is needed after
+ * a sequence of insert_trust_record() calls.
+ */
+void
+sync_trustdb()
+{
+ if( fresh_imported_keys && fresh_imported_keys_count )
+ mark_fresh_keys();
+}
+
/***********************************************
@@ -586,13 +627,13 @@ print_user_id( FILE *fp, const char *text, u32 *keyid )
p = get_user_id( keyid, &n );
if( fp ) {
fprintf( fp, "%s \"", text );
- print_string( fp, p, n, 0 );
+ print_utf8_string( fp, p, n );
putc('\"', fp);
putc('\n', fp);
}
else {
tty_printf( "%s \"", text );
- tty_print_string( p, n );
+ tty_print_utf8_string( p, n );
tty_printf( "\"\n" );
}
m_free(p);
@@ -652,7 +693,7 @@ print_path( int pathlen, TN ME .........., FILE *fp, ulong highlight )
p = get_user_id( keyid, &n );
putc(' ', fp);
putc('\"', fp);
- print_string( fp, p, n > 40? 40:n, 0 );
+ print_utf8_string( fp, p, n > 40? 40:n );
putc('\"', fp);
m_free(p);
putc('\n', fp );
@@ -683,7 +724,10 @@ print_uid_from_keyblock( FILE *fp, KBNODE keyblock, ulong urecno )
if( node->pkt->pkttype == PKT_USER_ID ) {
PKT_user_id *uidpkt = node->pkt->pkt.user_id;
- rmd160_hash_buffer( uhash, uidpkt->name, uidpkt->len );
+ if( uidpkt->photo )
+ rmd160_hash_buffer( uhash, uidpkt->photo, uidpkt->photolen );
+ else
+ rmd160_hash_buffer( uhash, uidpkt->name, uidpkt->len );
if( !memcmp( uhash, urec.r.uid.namehash, 20 ) ) {
print_string( fp, uidpkt->name, uidpkt->len, ':' );
return;
@@ -1082,17 +1126,17 @@ check_uidsigs( KBNODE keyblock, KBNODE keynode, u32 *mainkid, ulong lid,
static unsigned int
check_sig_record( KBNODE keyblock, KBNODE signode,
ulong siglid, int sigidx, u32 *keyid, ulong lid,
- u32 *r_expire )
+ u32 *r_expiretime, int *mod_down, int *mod_up )
{
PKT_signature *sig = signode->pkt->pkt.signature;
unsigned int sigflag = 0;
TRUSTREC tmp;
- int revocation=0, rc;
+ int revocation=0, expired=0, rc;
if( DBG_TRUST )
log_debug("check_sig_record: %08lX.%lu %lu[%d]\n",
(ulong)keyid[1], lid, siglid, sigidx );
- *r_expire = 0;
+ *r_expiretime = 0;
if( (sig->sig_class&~3) == 0x10 ) /* regular certification */
;
else if( sig->sig_class == 0x30 ) /* cert revocation */
@@ -1103,7 +1147,8 @@ check_sig_record( KBNODE keyblock, KBNODE signode,
read_record( siglid, &tmp, 0 );
if( tmp.rectype == RECTYPE_DIR ) {
/* the public key is in the trustdb: check sig */
- rc = check_key_signature2( keyblock, signode, NULL, r_expire );
+ rc = check_key_signature2( keyblock, signode, NULL,
+ r_expiretime, &expired );
if( !rc ) { /* valid signature */
if( opt.verbose )
log_info("sig %08lX.%lu/%lu[%d]/%08lX: %s\n",
@@ -1112,18 +1157,25 @@ check_sig_record( KBNODE keyblock, KBNODE signode,
revocation? _("Valid certificate revocation")
: _("Good certificate") );
sigflag |= SIGF_CHECKED | SIGF_VALID;
+ if( expired ) {
+ sigflag |= SIGF_EXPIRED;
+ /* We have to reset the expiretime, so that this signature
+ * does not get checked over and over due to the reached
+ * expiretime */
+ *r_expiretime = 0;
+ }
if( revocation ) {
sigflag |= SIGF_REVOKED;
- /**mod_down = 1;*/
+ *mod_down = 1;
}
else
- /**mod_up = 1*/;
+ *mod_up = 1;
}
else if( rc == G10ERR_NO_PUBKEY ) {
/* This may happen if the key is still in the trustdb
* but not available in the keystorage */
sigflag |= SIGF_NOPUBKEY;
- /**mod_down = 1;*/
+ *mod_down = 1;
if( revocation )
sigflag |= SIGF_REVOKED;
}
@@ -1137,7 +1189,7 @@ check_sig_record( KBNODE keyblock, KBNODE signode,
sigflag |= SIGF_CHECKED;
if( revocation ) {
sigflag |= SIGF_REVOKED;
- /**mod_down = 1;*/
+ *mod_down = 1;
}
}
}
@@ -1168,14 +1220,15 @@ check_sig_record( KBNODE keyblock, KBNODE signode,
*/
static ulong
make_sig_records( KBNODE keyblock, KBNODE uidnode,
- ulong lid, u32 *mainkid, u32 *min_expire )
+ ulong lid, u32 *mainkid, u32 *min_expire,
+ int *mod_down, int *mod_up )
{
TRUSTREC *srecs, **s_end, *s=NULL, *s2;
KBNODE node;
PKT_signature *sig;
ulong sigrecno, siglid;
int i, sigidx = 0;
- u32 expire;
+ u32 expiretime;
srecs = NULL; s_end = &srecs;
for( node=uidnode->next; node; node = node->next ) {
@@ -1190,6 +1243,12 @@ make_sig_records( KBNODE keyblock, KBNODE uidnode,
siglid = find_or_create_lid( sig );
/* smash dups */
+ /* FIXME: Here we have a problem:
+ * We can't distinguish between a certification and a certification
+ * revocation without looking at class of the signature - we have
+ * to see how we can store the sigclass in the sigrecord..
+ * Argg- I hope I can get rid of this ugly trustdb ASAP.
+ */
for( s2 = s; s2 ; s2 = s2->next ) {
for(i=0; i < sigidx; i++ ) {
if( s2->r.sig.sig[i].lid == siglid )
@@ -1218,7 +1277,8 @@ make_sig_records( KBNODE keyblock, KBNODE uidnode,
s->r.sig.sig[sigidx].lid = siglid;
s->r.sig.sig[sigidx].flag= check_sig_record( keyblock, node,
siglid, sigidx,
- mainkid, lid, &expire );
+ mainkid, lid, &expiretime,
+ mod_down, mod_up );
sigidx++;
if( sigidx == SIGS_PER_RECORD ) {
@@ -1228,8 +1288,8 @@ make_sig_records( KBNODE keyblock, KBNODE uidnode,
sigidx = 0;
}
/* keep track of signers pk expire time */
- if( expire && (!*min_expire || *min_expire > expire ) )
- *min_expire = expire;
+ if( expiretime && (!*min_expire || *min_expire > expiretime ) )
+ *min_expire = expiretime;
}
if( sigidx ) {
s->recnum = tdbio_new_recnum();
@@ -1319,7 +1379,8 @@ make_pref_record( PKT_signature *sig, ulong lid )
static ulong
-make_uid_records( KBNODE keyblock, ulong lid, u32 *keyid, u32 *min_expire )
+make_uid_records( KBNODE keyblock, ulong lid, u32 *keyid, u32 *min_expire,
+ int *mod_down, int *mod_up )
{
TRUSTREC *urecs, **uend, *u, *u2;
KBNODE node;
@@ -1334,7 +1395,10 @@ make_uid_records( KBNODE keyblock, ulong lid, u32 *keyid, u32 *min_expire )
if( node->pkt->pkttype != PKT_USER_ID )
continue;
uid = node->pkt->pkt.user_id;
- rmd160_hash_buffer( uidhash, uid->name, uid->len );
+ if( uid->photo )
+ rmd160_hash_buffer( uidhash, uid->photo, uid->photolen );
+ else
+ rmd160_hash_buffer( uidhash, uid->name, uid->len );
/* create the uid record */
u = m_alloc_clear( sizeof *u );
@@ -1351,9 +1415,21 @@ make_uid_records( KBNODE keyblock, ulong lid, u32 *keyid, u32 *min_expire )
&& (u->r.uid.uidflags & UIDF_VALID) ) {
u->r.uid.prefrec = bestsig? make_pref_record( bestsig, lid ) : 0;
}
+
+ /* the next test is really bad because we should modify
+ * out modification timestamps only if we really have a change.
+ * But because we are deleting the uid records first it is somewhat
+ * difficult to track those changes. fixme */
+ if( !( u->r.uid.uidflags & UIDF_VALID )
+ || ( u->r.uid.uidflags & UIDF_REVOKED ) )
+ *mod_down=1;
+ else
+ *mod_up=1;
+
/* create the list of signatures */
u->r.uid.siglist = make_sig_records( keyblock, node,
- lid, keyid, min_expire );
+ lid, keyid, min_expire,
+ mod_down, mod_up );
}
uidrecno = urecs? urecs->recnum : 0;
@@ -1380,6 +1456,8 @@ update_trust_record( KBNODE keyblock, int recheck, int *modified )
TRUSTREC drec;
int rc;
+ /* NOTE: We don't need recheck anymore, but this might chnage again in
+ * the future */
if( opt.dry_run )
return 0;
if( modified )
@@ -1390,26 +1468,27 @@ update_trust_record( KBNODE keyblock, int recheck, int *modified )
if( rc )
return rc;
- rc = do_update_trust_record( keyblock, &drec, recheck, modified );
+ rc = do_update_trust_record( keyblock, &drec, 0, modified );
return rc;
}
/****************
- * Same as update_trust_record, but tghis functions expects the dir record.
- * On exit the dirrecord will reflect any changes made.
+ * Same as update_trust_record, but this functions expects the dir record.
+ * On exit the dir record will reflect any changes made.
+ * With sigs_only set only foreign key signatures are checked.
*/
static int
do_update_trust_record( KBNODE keyblock, TRUSTREC *drec,
- int recheck, int *modified )
+ int sigs_only, int *modified )
{
PKT_public_key *primary_pk;
TRUSTREC krec, urec, prec, helprec;
int i, rc = 0;
u32 keyid[2]; /* keyid of primary key */
-/* int mod_up = 0;
- int mod_down = 0; */
+ int mod_up = 0;
+ int mod_down = 0;
ulong recno, r2;
- u32 expire;
+ u32 expiretime;
primary_pk = find_kbnode( keyblock, PKT_PUBLIC_KEY )->pkt->pkt.public_key;
if( !primary_pk->local_id )
@@ -1424,7 +1503,7 @@ do_update_trust_record( KBNODE keyblock, TRUSTREC *drec,
if( rc )
return rc;
- /* delete the old stuff */
+ /* delete the old stuff FIXME: implementend sigs_only */
for( recno=drec->r.dir.keylist; recno; recno = krec.r.key.next ) {
read_record( recno, &krec, RECTYPE_KEY );
delete_record( recno );
@@ -1447,22 +1526,13 @@ do_update_trust_record( KBNODE keyblock, TRUSTREC *drec,
/* insert new stuff */
drec->r.dir.dirflags &= ~DIRF_REVOKED;
+ drec->r.dir.dirflags &= ~DIRF_NEWKEYS;
drec->r.dir.keylist = make_key_records( keyblock, drec->recnum, keyid, &i );
if( i ) /* primary key has been revoked */
- drec->r.dir.dirflags &= DIRF_REVOKED;
- expire = 0;
+ drec->r.dir.dirflags |= DIRF_REVOKED;
+ expiretime = 0;
drec->r.dir.uidlist = make_uid_records( keyblock, drec->recnum, keyid,
- &expire );
- #if 0
- if( orig_uidflags != urec.r.uid.uidflags ) {
- write_record( &urec );
- if( !( urec.r.uid.uidflags & UIDF_VALID )
- || ( urec.r.uid.uidflags & UIDF_REVOKED ) )
- *mod_down=1;
- else
- *mod_up=1; /*(maybe a new user id)*/
- #endif
-
+ &expiretime, &mod_down, &mod_up );
if( rc )
rc = tdbio_cancel_transaction();
else {
@@ -1470,9 +1540,9 @@ do_update_trust_record( KBNODE keyblock, TRUSTREC *drec,
*modified = 1;
drec->r.dir.dirflags |= DIRF_CHECKED;
drec->r.dir.valcheck = 0;
- drec->r.dir.checkat = expire;
+ drec->r.dir.checkat = expiretime;
write_record( drec );
- /*tdbio_write_modify_stamp( mod_up, mod_down );*/
+ tdbio_write_modify_stamp( mod_up, mod_down );
rc = tdbio_end_transaction();
}
return rc;
@@ -1537,16 +1607,28 @@ insert_trust_record( KBNODE keyblock )
}
}
+
/* mark tdb as modified upwards */
tdbio_write_modify_stamp( 1, 0 );
/* and put all the other stuff into the keydb */
- rc = do_update_trust_record( keyblock, &dirrec, 1, NULL );
+ rc = do_update_trust_record( keyblock, &dirrec, 0, NULL );
do_sync();
+
+ /* keep track of new keys */
+ if( !fresh_imported_keys )
+ fresh_imported_keys = new_lid_table();
+ ins_lid_table_item( fresh_imported_keys, pk->local_id, 0 );
+ if( ++fresh_imported_keys_count > FRESH_KEY_CHECK_THRESHOLD )
+ mark_fresh_keys();
+
return rc;
}
+
+
+
/****************
* Insert a trust record indentified by a PK into the TrustDB
*/
@@ -1584,7 +1666,7 @@ insert_trust_record_by_pk( PKT_public_key *pk )
* Currently we only do an update_trust_record.
*/
static int
-check_trust_record( TRUSTREC *drec )
+check_trust_record( TRUSTREC *drec, int sigs_only )
{
KBNODE keyblock;
int modified, rc;
@@ -1596,7 +1678,7 @@ check_trust_record( TRUSTREC *drec )
return rc;
}
- rc = do_update_trust_record( keyblock, drec, 0, &modified );
+ rc = do_update_trust_record( keyblock, drec, sigs_only, &modified );
release_kbnode( keyblock );
return rc;
@@ -1673,7 +1755,7 @@ update_trustdb()
/****************
- * Do all required check in the trustdb. This function walks over all
+ * Do all required checks in the trustdb. This function walks over all
* records in the trustdb and does scheduled processing.
*/
void
@@ -1681,7 +1763,7 @@ check_trustdb( const char *username )
{
TRUSTREC rec;
ulong recnum;
- ulong count=0, upd_count=0, err_count=0, skip_count=0;
+ ulong count=0, upd_count=0, err_count=0, skip_count=0, sigonly_count=0;
ulong current_time = make_timestamp();
if( username )
@@ -1690,15 +1772,25 @@ check_trustdb( const char *username )
init_trustdb();
for(recnum=0; !tdbio_read_record( recnum, &rec, 0); recnum++ ) {
+ int sigs_only;
+
if( rec.rectype != RECTYPE_DIR )
continue; /* we only want the dir records */
if( count && !(count % 100) && !opt.quiet )
log_info(_("%lu keys so far processed\n"), count);
count++;
- if( !rec.r.dir.checkat || rec.r.dir.checkat > current_time ) {
- skip_count++;
- continue; /* not scheduled for checking */
+ sigs_only = 0;
+
+ if( !(rec.r.dir.dirflags & DIRF_CHECKED) )
+ ;
+ else if( !rec.r.dir.checkat || rec.r.dir.checkat > current_time ) {
+ if( !(rec.r.dir.dirflags & DIRF_NEWKEYS) ) {
+ skip_count++;
+ continue; /* not scheduled for checking */
+ }
+ sigs_only = 1; /* new public keys - check them */
+ sigonly_count++;
}
if( !rec.r.dir.keylist ) {
@@ -1707,11 +1799,12 @@ check_trustdb( const char *username )
continue;
}
- check_trust_record( &rec );
-
+ check_trust_record( &rec, sigs_only );
}
log_info(_("%lu keys processed\n"), count);
+ if( sigonly_count )
+ log_info(_("\t%lu due to new pubkeys\n"), sigonly_count);
if( skip_count )
log_info(_("\t%lu keys skipped\n"), skip_count);
if( err_count )
@@ -1771,8 +1864,12 @@ build_cert_tree( ulong lid, int depth, int max_depth, TN helproot )
return NULL;
}
- if( dirrec.r.dir.checkat && dirrec.r.dir.checkat <= make_timestamp() )
- check_trust_record( &dirrec );
+ if( dirrec.r.dir.checkat && dirrec.r.dir.checkat <= make_timestamp() ) {
+ check_trust_record( &dirrec, 0 );
+ }
+ else if( (dirrec.r.dir.dirflags & DIRF_NEWKEYS) ) {
+ check_trust_record( &dirrec, 1 );
+ }
keynode->n.k.ownertrust = dirrec.r.dir.ownertrust & TRUST_MASK;
@@ -1923,10 +2020,10 @@ propagate_validity( TN root, TN node, int (*add_fnc)(ulong), unsigned *retflgs )
}
/* loop over all user ids */
- for( ur=node->list; ur && max_validity < TRUST_FULLY; ur = ur->next ) {
+ for( ur=node->list; ur && max_validity <= TRUST_FULLY; ur = ur->next ) {
assert( ur->is_uid );
/* loop over all signators */
- for(kr=ur->list; kr && max_validity < TRUST_FULLY; kr = kr->next ) {
+ for(kr=ur->list; kr && max_validity <= TRUST_FULLY; kr = kr->next ) {
if( propagate_validity( root, kr, add_fnc, retflgs ) )
return -1; /* quit */
if( kr->n.k.validity == TRUST_ULTIMATE ) {
@@ -2000,8 +2097,12 @@ verify_key( int max_depth, TRUSTREC *drec, const char *namehash,
if( !tree )
return TRUST_UNDEFINED;
pv_result = propagate_validity( tree, tree, add_fnc, retflgs );
- if( namehash ) {
+ if( namehash && tree->n.k.validity != TRUST_ULTIMATE ) {
/* find the matching user id.
+ * We don't do this here if the key is ultimately trusted; in
+ * this case there will be no lids for the user IDs and frankly
+ * it does not make sense to compare by the name if we do
+ * have the secret key.
* fixme: the way we handle this is too inefficient */
TN ur;
TRUSTREC rec;
@@ -2074,6 +2175,7 @@ do_check( TRUSTREC *dr, unsigned *validity,
}
else if( !add_fnc
&& tdbio_db_matches_options()
+ /* FIXME, TODO: This comparision is WRONG ! */
&& dr->r.dir.valcheck
> tdbio_read_modify_stamp( (dr->r.dir.validity < TRUST_FULLY) )
&& dr->r.dir.validity )
@@ -2239,10 +2341,16 @@ check_trust( PKT_public_key *pk, unsigned *r_trustlevel,
log_info(_("key %08lX.%lu: created in future "
"(time warp or clock problem)\n"),
(ulong)keyid[1], pk->local_id );
- return G10ERR_TIME_CONFLICT;
+ if( !opt.ignore_time_conflict )
+ return G10ERR_TIME_CONFLICT;
}
- if( rec.r.dir.checkat && rec.r.dir.checkat <= cur_time )
- check_trust_record( &rec );
+
+ if( !(rec.r.dir.dirflags & DIRF_CHECKED) )
+ check_trust_record( &rec, 0 );
+ else if( rec.r.dir.checkat && rec.r.dir.checkat <= cur_time )
+ check_trust_record( &rec, 0 );
+ else if( (rec.r.dir.dirflags & DIRF_NEWKEYS) )
+ check_trust_record( &rec, 1 );
if( pk->expiredate && pk->expiredate <= cur_time ) {
log_info(_("key %08lX.%lu: expired at %s\n"),
@@ -2298,6 +2406,51 @@ check_trust( PKT_public_key *pk, unsigned *r_trustlevel,
}
+/****************
+ * scan the whole trustdb and mark all signature records whose keys
+ * are freshly imported.
+ */
+static void
+mark_fresh_keys()
+{
+ TRUSTREC dirrec, rec;
+ ulong recnum, lid;
+ int i;
+
+ memset( &dirrec, 0, sizeof dirrec );
+
+ for(recnum=0; !tdbio_read_record( recnum, &rec, 0); recnum++ ) {
+ if( rec.rectype != RECTYPE_SIG )
+ continue;
+ /* if we have already have the dir record, we can check it now */
+ if( dirrec.recnum == rec.r.sig.lid
+ && (dirrec.r.dir.dirflags & DIRF_NEWKEYS) )
+ continue; /* flag is already set */
+
+ for(i=0; i < SIGS_PER_RECORD; i++ ) {
+ if( !(lid=rec.r.sig.sig[i].lid) )
+ continue; /* skip deleted sigs */
+ if( !(rec.r.sig.sig[i].flag & SIGF_CHECKED) )
+ continue; /* skip checked signatures */
+ if( qry_lid_table_flag( fresh_imported_keys, lid, NULL ) )
+ continue; /* not in the list of new keys */
+ read_record( rec.r.sig.lid, &dirrec, RECTYPE_DIR );
+ if( !(dirrec.r.dir.dirflags & DIRF_NEWKEYS) ) {
+ dirrec.r.dir.dirflags |= DIRF_NEWKEYS;
+ write_record( &dirrec );
+ }
+ break;
+ }
+ }
+
+ do_sync();
+
+ clear_lid_table( fresh_imported_keys );
+ fresh_imported_keys_count = 0;
+}
+
+
+
int
query_trust_info( PKT_public_key *pk, const byte *namehash )
{
@@ -2531,7 +2684,7 @@ enum_cert_paths_print( void **context, FILE *fp,
/*
* Return an allocated buffer with the preference values for
* the key with LID and the userid which is identified by the
- * HAMEHASH or the firstone if namehash is NULL. ret_n receives
+ * HAMEHASH or the first one if namehash is NULL. ret_n receives
* the length of the allocated buffer. Structure of the buffer is
* a repeated sequences of 2 bytes; where the first byte describes the
* type of the preference and the second one the value. The constants
diff --git a/g10/trustdb.h b/g10/trustdb.h
index 6396fde45..a3e9225cf 100644
--- a/g10/trustdb.h
+++ b/g10/trustdb.h
@@ -1,5 +1,5 @@
/* trustdb.h - Trust database
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -49,6 +49,7 @@ void check_trustdb( const char *username );
void update_trustdb( void );
int setup_trustdb( int level, const char *dbname );
void init_trustdb( void );
+void sync_trustdb( void );
int check_trust( PKT_public_key *pk, unsigned *r_trustlevel,
const byte* nh, int (*add_fnc)(ulong), unsigned *retflgs );
int query_trust_info( PKT_public_key *pk, const byte *nh );
diff --git a/g10/verify.c b/g10/verify.c
index 589b1b7bb..fcc2f09ad 100644
--- a/g10/verify.c
+++ b/g10/verify.c
@@ -1,5 +1,5 @@
/* verify.c - verify signed data
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -33,6 +33,7 @@
#include "memory.h"
#include "util.h"
#include "main.h"
+#include "status.h"
#include "filter.h"
#include "ttyio.h"
#include "i18n.h"
@@ -58,6 +59,7 @@ verify_signatures( int nfiles, char **files )
int i, rc;
STRLIST sl;
+ memset( &afx, 0, sizeof afx);
sigfile = nfiles? *files : NULL;
/* open the signature file */
@@ -67,6 +69,51 @@ verify_signatures( int nfiles, char **files )
return G10ERR_OPEN_FILE;
}
+ if( !opt.no_armor && use_armor_filter( fp ) )
+ iobuf_push_filter( fp, armor_filter, &afx );
+
+ sl = NULL;
+ for(i=1 ; i < nfiles; i++ )
+ add_to_strlist( &sl, files[i] );
+ rc = proc_signature_packets( NULL, fp, sl, sigfile );
+ free_strlist(sl);
+ iobuf_close(fp);
+ if( afx.no_openpgp_data && rc == -1 ) {
+ log_error(_("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") );
+ rc = 0;
+ }
+
+ return rc;
+}
+
+
+static void
+print_file_status( int status, const char *name, int what )
+{
+ char *p = m_alloc(strlen(name)+10);
+ sprintf(p, "%d %s", what, name );
+ write_status_text( status, p );
+ m_free(p);
+}
+
+
+static int
+verify_one_file( const char *name )
+{
+ IOBUF fp;
+ armor_filter_context_t afx;
+ int rc;
+
+ print_file_status( STATUS_FILE_START, name, 1 );
+ fp = iobuf_open(name);
+ if( !fp ) {
+ print_file_status( STATUS_FILE_ERROR, name, 1 );
+ log_error(_("can't open `%s'\n"), print_fname_stdin(name));
+ return G10ERR_OPEN_FILE;
+ }
+
if( !opt.no_armor ) {
if( use_armor_filter( fp ) ) {
memset( &afx, 0, sizeof afx);
@@ -74,14 +121,44 @@ verify_signatures( int nfiles, char **files )
}
}
- sl = NULL;
- for(i=1 ; i < nfiles; i++ )
- add_to_strlist( &sl, files[i] );
- rc = proc_signature_packets( NULL, fp, sl, sigfile );
- free_strlist(sl);
+ rc = proc_signature_packets( NULL, fp, NULL, name );
iobuf_close(fp);
+ write_status( STATUS_FILE_DONE );
return rc;
}
+/****************
+ * Verify each file given in the files array or read the names of the
+ * files from stdin.
+ * Note: This function can not handle detached signatures.
+ */
+int
+verify_files( int nfiles, char **files )
+{
+ int i;
+
+ if( !nfiles ) { /* read the filenames from stdin */
+ char line[2048];
+ unsigned int lno = 0;
+ while( fgets(line, DIM(line), stdin) ) {
+ lno++;
+ if( !*line || line[strlen(line)-1] != '\n' ) {
+ log_error(_("input line %u too long or missing LF\n"), lno );
+ return G10ERR_GENERAL;
+ }
+ /* This code does not work on MSDOS but how cares there are
+ * also no script languages available. We don't strip any
+ * spaces, so that we can process nearly all filenames */
+ line[strlen(line)-1] = 0;
+ verify_one_file( line );
+ }
+
+ }
+ else { /* take filenames from the array */
+ for(i=0; i < nfiles; i++ )
+ verify_one_file( files[i] );
+ }
+ return 0;
+}
diff --git a/include/ChangeLog b/include/ChangeLog
index e5c86ce85..aa6971a2b 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,20 @@
+2000-03-14 14:03:43 Werner Koch ([email protected])
+
+ * types.h (HAVE_U64_TYPEDEF): Defined depending on configure test.
+
+Thu Jan 13 19:31:58 CET 2000 Werner Koch <[email protected]>
+
+ * types.h (HAVE_U64_TYPEDEF): Add a test for _LONGLONG which fixes
+ this long living SGI bug. Reported by Alec Habig.
+
+Sat Dec 4 12:30:28 CET 1999 Werner Koch <[email protected]>
+
+ * iobuf.h (IOBUFCTRL_CANCEL): Nww.
+
+Mon Oct 4 21:23:04 CEST 1999 Werner Koch <[email protected]>
+
+ * errors.h (G10ERR_NOT_PROCESSED): New.
+
Wed Sep 15 16:22:17 CEST 1999 Werner Koch <[email protected]>
diff --git a/include/cipher.h b/include/cipher.h
index a3f0eeba2..bf2010fe0 100644
--- a/include/cipher.h
+++ b/include/cipher.h
@@ -168,10 +168,14 @@ int pubkey_verify( int algo, MPI hash, MPI *data, MPI *pkey,
extern ushort small_prime_numbers[];
/*-- primegen.c --*/
+void register_primegen_progress ( void (*cb)( void *, int), void *cb_data );
MPI generate_secret_prime( unsigned nbits );
MPI generate_public_prime( unsigned nbits );
MPI generate_elg_prime( int mode, unsigned pbits, unsigned qbits,
MPI g, MPI **factors );
+/*-- elsewhere --*/
+void register_pk_dsa_progress ( void (*cb)( void *, int), void *cb_data );
+void register_pk_elg_progress ( void (*cb)( void *, int), void *cb_data );
#endif /*G10_CIPHER_H*/
diff --git a/include/errors.h b/include/errors.h
index 247951271..11c97425f 100644
--- a/include/errors.h
+++ b/include/errors.h
@@ -71,6 +71,7 @@
#define G10ERR_UNKNOWN_HOST 49
#define G10ERR_SELFTEST_FAILED 50
#define G10ERR_NOT_ENCRYPTED 51
+#define G10ERR_NOT_PROCESSED 52
#ifndef HAVE_STRERROR
char *strerror( int n );
diff --git a/include/http.h b/include/http.h
index 7e6d9d970..5cfd4b396 100644
--- a/include/http.h
+++ b/include/http.h
@@ -49,6 +49,10 @@ typedef enum {
HTTP_REQ_POST = 3
} HTTP_REQ_TYPE;
+enum { /* put flag values into an enum, so that gdb can display them */
+ HTTP_FLAG_TRY_PROXY = 1
+};
+
struct http_context {
int initialized;
unsigned int status_code;
@@ -61,6 +65,7 @@ struct http_context {
HTTP_REQ_TYPE req_type;
byte *buffer; /* line buffer */
unsigned buffer_size;
+ unsigned int flags;
};
typedef struct http_context *HTTP_HD;
diff --git a/include/iobuf.h b/include/iobuf.h
index 363b09e5b..e5e9ba94f 100644
--- a/include/iobuf.h
+++ b/include/iobuf.h
@@ -32,6 +32,7 @@
#define IOBUFCTRL_UNDERFLOW 3
#define IOBUFCTRL_FLUSH 4
#define IOBUFCTRL_DESC 5
+#define IOBUFCTRL_CANCEL 6
#define IOBUFCTRL_USER 16
typedef struct iobuf_struct *IOBUF;
diff --git a/include/ttyio.h b/include/ttyio.h
index 7992d85e8..3864e2440 100644
--- a/include/ttyio.h
+++ b/include/ttyio.h
@@ -24,6 +24,7 @@ int tty_batchmode( int onoff );
void tty_printf( const char *fmt, ... );
void tty_print_string( byte *p, size_t n );
void tty_print_utf8_string( byte *p, size_t n );
+void tty_print_utf8_string2( byte *p, size_t n, size_t max_n );
char *tty_get( const char *prompt );
char *tty_get_hidden( const char *prompt );
void tty_kill_prompt(void);
diff --git a/include/types.h b/include/types.h
index baac2b5c2..a91e89a50 100644
--- a/include/types.h
+++ b/include/types.h
@@ -83,6 +83,11 @@
#define HAVE_U32_TYPEDEF
#endif
+/****************
+ * Warning: Some systems segfault when this u64 typedef and
+ * the dummy code in cipher/md.c is not available. Examples are
+ * Solaris and IRIX.
+ */
#ifndef HAVE_U64_TYPEDEF
#undef u64 /* maybe there is a macro with this name */
#if SIZEOF_UNSIGNED_INT == 8
@@ -91,7 +96,7 @@
#elif SIZEOF_UNSIGNED_LONG == 8
typedef unsigned long u64;
#define HAVE_U64_TYPEDEF
- #elif __GNUC__ >= 2 || defined(__SUNPRO_C)
+ #elif SIZEOF_UNSIGNED_LONG_LONG == 8
typedef unsigned long long u64;
#define HAVE_U64_TYPEDEF
#endif
diff --git a/include/util.h b/include/util.h
index 8eec982cc..4c475927c 100644
--- a/include/util.h
+++ b/include/util.h
@@ -65,6 +65,7 @@ void log_set_name( const char *name );
const char *log_get_name(void);
void log_set_pid( int pid );
int log_get_errorcount( int clear );
+void log_inc_errorcount(void);
void g10_log_hexdump( const char *text, const char *buf, size_t len );
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5 )
@@ -131,6 +132,7 @@ const char *strusage( int level );
struct dotlock_handle;
typedef struct dotlock_handle *DOTLOCK;
+void disable_dotlock(void);
DOTLOCK create_dotlock( const char *file_to_lock );
int make_dotlock( DOTLOCK h, long timeout );
int release_dotlock( DOTLOCK h );
@@ -188,6 +190,9 @@ char *stpcpy(char *a,const char *b);
#ifndef HAVE_STRLWR
char *strlwr(char *a);
#endif
+#ifndef HAVE_STRCASECMP
+int strcasecmp( const char *, const char *b);
+#endif
#ifndef HAVE_STRTOUL
#define strtoul(a,b,c) ((unsigned long)strtol((a),(b),(c)))
#endif
@@ -198,6 +203,12 @@ char *strlwr(char *a);
#define stricmp(a,b) strcasecmp( (a), (b) )
#endif
+/*-- w32reg.c --*/
+#ifdef __MINGW32__
+char *read_w32_registry_string( const char *root,
+ const char *dir, const char *name );
+#endif
+
/**** other missing stuff ****/
#ifndef HAVE_ATEXIT /* For SunOS */
#define atexit(a) (on_exit((a),0))
diff --git a/mpi/ChangeLog b/mpi/ChangeLog
index d6cf6e3ee..56dd3bb91 100644
--- a/mpi/ChangeLog
+++ b/mpi/ChangeLog
@@ -1,5 +1,64 @@
-Mon Aug 30 20:38:33 CEST 1999 Werner Koch <[email protected]>
+Wed Mar 22 13:50:24 CET 2000 Werner Koch <[email protected]>
+
+ * config.links: Add support for FreeBSD 5 and made the case stmt
+ looking nicer. From Jun Kuriyama.
+
+Fri Mar 17 17:50:25 CET 2000 Werner Koch <[email protected]>
+
+ * config.links (sparc64-unknown-linux-gnu): use udic module.
+ From Adam Mitchell.
+
+2000-03-14 12:03:56 Werner Koch ([email protected])
+
+ * Makefile.am: Do not use .s and .S files but a temp names, so that
+ OSes with caseinsensitive filenames do work. From Frank Donahoe.
+
+Tue Mar 7 18:45:31 CET 2000 Werner Koch <[email protected]>
+
+ * mpih-mul.c (mpihelp_mul_karatsuba_case): It seems that the
+ untested part works fine. Removed the debugging message.
+
+ * longlong.h (umul_ppmm): Fixes for ARM-4. By Sean MacLennan.
+
+ * config.links: Add support for NetBSD.
+
+Thu Jan 13 19:31:58 CET 2000 Werner Koch <[email protected]>
+
+ * mpi-internal.h (karatsuba_ctx): New.
+ * mpih-mul.c (mpihelp_release_karatsuba_ctx): New.
+ (mpihelp_mul_karatsuba_case): New.
+ (mpihelp_mul): Splitted to make use of the new functions.
+ * mpi-pow.c (mpi_powm): Make use of the new splitted function
+ to avoid multiple allocation of temporary memory during the
+ karatsuba operations.
+ * mpi_mpow.c: Removed the unused Barrett code.
+
+Sun Dec 19 15:22:26 CET 1999 Werner Koch <[email protected]>
+
+ * power/ : Converted more comments to C comments because some AS
+ complain about ' in comments.
+
+Thu Dec 16 10:07:58 CET 1999 Werner Koch <[email protected]>
+
+ * Makefile.am: c/SFLAGS/ASFLAGS/. This has only been used by the
+ powerpc and actually never passed the -Wa,foo to the cc.
+
+Thu Dec 9 10:31:05 CET 1999 Werner Koch <[email protected]>
+
+ * power/: Add all files from GMP for this CPU.
+
+ * config.links: Support for BSDI 4.x. By Wayne Chapeskie.
+ (sparc8): Made the search path the same as sparc9
+
+ * mpih-div.c (mpihelp_divrem): The MPN_COPY_DECR copied one
+ elemnat too many. This is gmp2.0.2p9.txt patch.
+
+Sat Oct 9 20:34:41 CEST 1999 Werner Koch <[email protected]>
+
+ * Makefile.am: Removed libtool.
+
+Mon Aug 30 20:38:33 CEST 1999 Werner Koch <[email protected]>
* config.links: Add case label for DJGPP
diff --git a/mpi/Makefile.am b/mpi/Makefile.am
index ef9816aa5..cdc39ee76 100644
--- a/mpi/Makefile.am
+++ b/mpi/Makefile.am
@@ -3,18 +3,18 @@
INCLUDES = -I$(top_srcdir)/include
CFLAGS = @CFLAGS@ @MPI_OPT_FLAGS@
-SFLAGS = @MPI_SFLAGS@
+ASFLAGS = @MPI_SFLAGS@
EXTRA_DIST = config.links
DISTCLEANFILES = mpih-add1.S mpih-mul1.S mpih-mul2.S mpih-mul3.S \
mpih-lshift.S mpih-rshift.S mpih-sub1.S asm-syntax.h sysdep.h
# Note: we only use .S files so we should delete all left over .s
-CLEANFILES = *.s
+CLEANFILES = _*.s
-noinst_LTLIBRARIES = libmpi.la
+noinst_LIBRARIES = libmpi.a
-libmpi_la_LDFLAGS =
-libmpi_la_SOURCES = longlong.h \
+# libmpi_a_LDFLAGS =
+libmpi_a_SOURCES = longlong.h \
mpi-add.c \
mpi-bit.c \
mpi-cmp.c \
@@ -37,24 +37,24 @@ libmpi_la_SOURCES = longlong.h \
# Note this objects are actually links, the sourcefiles are
# distributed by special code in dist-hook
-common_asm_objects = mpih-mul1.lo \
- mpih-mul2.lo \
- mpih-mul3.lo \
- mpih-add1.lo \
- mpih-sub1.lo \
- mpih-lshift.lo \
- mpih-rshift.lo
+common_asm_objects = mpih-mul1.o \
+ mpih-mul2.o \
+ mpih-mul3.o \
+ mpih-add1.o \
+ mpih-sub1.o \
+ mpih-lshift.o \
+ mpih-rshift.o
-libmpi_la_DEPENDENCIES = $(common_asm_objects) @MPI_EXTRA_ASM_OBJS@
-libmpi_la_LIBADD = $(common_asm_objects) @MPI_EXTRA_ASM_OBJS@
+libmpi_a_DEPENDENCIES = $(common_asm_objects) @MPI_EXTRA_ASM_OBJS@
+libmpi_a_LIBADD = $(common_asm_objects) @MPI_EXTRA_ASM_OBJS@
# cancel the default rules used by libtool which do not really
# work and add one to cpp .S files
.S.o:
+ $(CPP) $(INCLUDES) $(DEFS) $< | grep -v '^#' > _$*.s
+ $(COMPILE) -c _$*.s
+ mv -f _$*.o $*.o
.S.lo:
-.S.s:
- $(CPP) $(INCLUDES) $(DEFS) $< | grep -v '^#' >$*.s
-
diff --git a/mpi/config.links b/mpi/config.links
index da44a9122..6a2cbfb53 100644
--- a/mpi/config.links
+++ b/mpi/config.links
@@ -1,4 +1,4 @@
-# sourced my ../configure to get the list of files to link
+# sourced by ../configure to get the list of files to link
# this should set $mpi_ln_src and mpi_ln_dst.
# Note: this is called from the above directory.
@@ -12,23 +12,40 @@ echo '/* created by config.links - do not edit */' >./mpi/asm-syntax.h
if test "$try_asm_modules" = "yes" ; then
case "${target}" in
- i[34]86*-*-freebsd*-elf | i[34]86*-*-freebsd[34]* | i[34]86*-*-freebsdelf*)
+ i[34]86*-*-freebsd*-elf | \
+ i[34]86*-*-freebsd[3-9]* | \
+ i[34]86*-*-freebsdelf* | \
+ i[34]86*-*-netbsd* )
echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h
cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h
path="i386"
;;
- i[56]86*-*-freebsd*-elf | i[56]86*-*-freebsd[34]* | i[56]86*-*-freebsdelf*)
+ i[56]86*-*-freebsd*-elf | \
+ i[56]86*-*-freebsd[3-9]* | \
+ i[56]86*-*-freebsdelf* | \
+ i[56]86*-*-netbsd* | \
+ pentium-*-netbsd* | \
+ pentiumpro-*-netbsd*)
echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h
cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h
path="i586 i386"
;;
- i[34]86*-*-linuxaout* | i[34]86*-*-linuxoldld* | i[34]86*-*-*bsd*)
+ i[34]86*-*-bsdi4*)
+ echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h
+ cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h
+ path="i386"
+ ;;
+ i[34]86*-*-linuxaout* | \
+ i[34]86*-*-linuxoldld* | \
+ i[34]86*-*-*bsd*)
echo '#define BSD_SYNTAX' >>./mpi/asm-syntax.h
echo '#define X86_BROKEN_ALIGN' >>./mpi/asm-syntax.h
cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h
path="i386"
;;
- i[56]86*-*-linuxaout* | i[56]86*-*-linuxoldld* | i[56]86*-*-*bsd*)
+ i[56]86*-*-linuxaout* | \
+ i[56]86*-*-linuxoldld* | \
+ i[56]86*-*-*bsd*)
echo '#define BSD_SYNTAX' >>./mpi/asm-syntax.h
echo '#define X86_BROKEN_ALIGN' >>./mpi/asm-syntax.h
cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h
@@ -49,7 +66,9 @@ case "${target}" in
cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h
path="i386"
;;
- i[56]86*-*-* | pentium-*-* | pentiumpro-*-*)
+ i[56]86*-*-* | \
+ pentium-*-* | \
+ pentiumpro-*-*)
echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h
cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h
path="i586 i386"
@@ -74,13 +93,23 @@ case "${target}" in
path="pa7100 hppa1.1 hppa"
mpi_extra_modules="udiv-qrnnd"
;;
- sparc9*-*-* | sparc64*-*-* | ultrasparc*-*-*)
+ sparc64-*-linux-gnu)
+ # An extra rule because we have an report for this one only.
+ # Should be compared against the next GMP version
+ echo '/* configured for sparc64-*-linux-gnu */' >>./mpi/asm-syntax.h
+ path="sparc32v8 sparc32"
+ mpi_extra_modules="udiv"
+ ;;
+ sparc9*-*-* | \
+ sparc64*-*-* | \
+ ultrasparc*-*-* )
echo '/* configured for sparc9 or higher */' >>./mpi/asm-syntax.h
path="sparc32v8 sparc32"
;;
- sparc8*-*-* | microsparc*-*-*)
+ sparc8*-*-* | \
+ microsparc*-*-*)
echo '/* configured for sparc8 */' >>./mpi/asm-syntax.h
- path="sparc32v8"
+ path="sparc32v8 sparc32"
;;
supersparc*-*-*)
echo '/* configured for supersparc */' >>./mpi/asm-syntax.h
@@ -92,7 +121,8 @@ case "${target}" in
path="sparc32"
mpi_extra_modules="udiv"
;;
- mips[34]*-*-* | mips*-*-irix6*)
+ mips[34]*-*-* | \
+ mips*-*-irix6*)
echo '/* configured for MIPS3 */' >>./mpi/asm-syntax.h
path="mips3"
;;
@@ -103,7 +133,8 @@ case "${target}" in
# Motorola 68k configurations. Let m68k mean 68020-68040.
# mc68000 or mc68060 configurations need to be specified explicitly
- m680[234]0*-*-linuxaout* | m68k*-*-linuxaout*)
+ m680[234]0*-*-linuxaout* | \
+ m68k*-*-linuxaout*)
echo '#define MIT_SYNTAX' >>./mpi/asm-syntax.h
cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h
path="m68k/mc68020 m68k"
@@ -113,7 +144,8 @@ case "${target}" in
cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h
path="m68k"
;;
- m680[234]0*-*-linux* | m68k*-*-linux*)
+ m680[234]0*-*-linux* | \
+ m68k*-*-linux*)
echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h
cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h
;;
@@ -127,12 +159,14 @@ case "${target}" in
cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h
path="m68k/mc68020 m68k"
;;
- m68000*-*-* | m68060*-*-*)
+ m68000*-*-* | \
+ m68060*-*-*)
echo '#define MIT_SYNTAX' >>./mpi/asm-syntax.h
cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h
path="m68k/mc68000"
;;
- m680[234]0*-*-* | m68k*-*-*)
+ m680[234]0*-*-* | \
+ m68k*-*-*)
echo '#define MIT_SYNTAX' >>./mpi/asm-syntax.h
cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h
path="m68k/mc68020 m68k"
@@ -144,25 +178,37 @@ case "${target}" in
cat $srcdir/mpi/powerpc32/syntax.h >>./mpi/asm-syntax.h
path="powerpc32"
;;
- rs6000-*-aix[456789]* | rs6000-*-aix3.2.[456789])
+ rs6000-*-aix[456789]* | \
+ rs6000-*-aix3.2.[456789])
mpi_sflags="-Wa,-mpwr"
path="power"
mpi_extra_modules="udiv-w-sdiv"
;;
- rs6000-*-* | power-*-* | power2-*-*)
+ rs6000-*-* | \
+ power-*-* | \
+ power2-*-*)
mpi_sflags="-Wa,-mppc"
path="power"
mpi_extra_modules="udiv-w-sdiv"
;;
+ powerpc-ibm-aix4.2.* )
+ # I am not sure about this one but a machine identified by
+ # powerpc-ibm-aix4.2.1.0 cannot use the powerpc32 code.
+ mpi_sflags="-Wa,-mpwr"
+ path="power"
+ mpi_extra_modules="udiv-w-sdiv"
+ ;;
ppc601-*-*)
mpi_sflags="-Wa,-mppc"
path="power powerpc32"
;;
- ppc60[234]*-*-* | powerpc*-*-*)
+ ppc60[234]*-*-* | \
+ powerpc*-*-*)
mpi_sflags="-Wa,-mppc"
path="powerpc32"
;;
- ppc620-*-* | powerpc64*-*-*)
+ ppc620-*-* | \
+ powerpc64*-*-*)
mpi_sflags="-Wa,-mppc"
path="powerpc64"
;;
diff --git a/mpi/longlong.h b/mpi/longlong.h
index c92435570..e36beae49 100644
--- a/mpi/longlong.h
+++ b/mpi/longlong.h
@@ -199,6 +199,8 @@ extern UDItype __udiv_qrnnd ();
"rI" ((USItype)(bh)), \
"r" ((USItype)(al)), \
"rI" ((USItype)(bl)))
+#ifdef __ARM_ARCH_3__
+/* SAM This does not work on arm4 */
#define umul_ppmm(xh, xl, a, b) \
__asm__ ("%@ Inlined umul_ppmm
mov %|r0, %2, lsr #16
@@ -218,6 +220,18 @@ extern UDItype __udiv_qrnnd ();
: "r" ((USItype)(a)), \
"r" ((USItype)(b)) \
: "r0", "r1", "r2")
+#elif __ARM_ARCH_4__
+#define umul_ppmm(xh, xl, a, b) \
+ __asm__ ("%@ Inlined umul_ppmm
+ umull %r1, %r0, %r2, %r3" \
+ : "=&r" ((USItype)(xh)), \
+ "=r" ((USItype)(xl)) \
+ : "r" ((USItype)(a)), \
+ "r" ((USItype)(b)) \
+ : "r0", "r1")
+#else
+#error Untested architecture
+#endif
#define UMUL_TIME 20
#define UDIV_TIME 100
#endif /* __arm__ */
diff --git a/mpi/mpi-internal.h b/mpi/mpi-internal.h
index 035d33cb3..2b521c952 100644
--- a/mpi/mpi-internal.h
+++ b/mpi/mpi-internal.h
@@ -186,6 +186,17 @@ mpi_limb_t mpihelp_sub(mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr, mpi_size_t s1_size,
int mpihelp_cmp( mpi_ptr_t op1_ptr, mpi_ptr_t op2_ptr, mpi_size_t size );
/*-- mpihelp-mul.c --*/
+
+struct karatsuba_ctx {
+ struct karatsuba_ctx *next;
+ mpi_ptr_t tspace;
+ mpi_size_t tspace_size;
+ mpi_ptr_t tp;
+ mpi_size_t tp_size;
+};
+
+void mpihelp_release_karatsuba_ctx( struct karatsuba_ctx *ctx );
+
mpi_limb_t mpihelp_addmul_1( mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr,
mpi_size_t s1_size, mpi_limb_t s2_limb);
mpi_limb_t mpihelp_submul_1( mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr,
@@ -198,6 +209,12 @@ void mpih_sqr_n_basecase( mpi_ptr_t prodp, mpi_ptr_t up, mpi_size_t size );
void mpih_sqr_n( mpi_ptr_t prodp, mpi_ptr_t up, mpi_size_t size,
mpi_ptr_t tspace);
+void mpihelp_mul_karatsuba_case( mpi_ptr_t prodp,
+ mpi_ptr_t up, mpi_size_t usize,
+ mpi_ptr_t vp, mpi_size_t vsize,
+ struct karatsuba_ctx *ctx );
+
+
/*-- mpihelp-mul_1.c (or xxx/cpu/ *.S) --*/
mpi_limb_t mpihelp_mul_1( mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr,
mpi_size_t s1_size, mpi_limb_t s2_limb);
diff --git a/mpi/mpi-mpow.c b/mpi/mpi-mpow.c
index a8c561dd1..001802191 100644
--- a/mpi/mpi-mpow.c
+++ b/mpi/mpi-mpow.c
@@ -1,5 +1,5 @@
/* mpi-mpow.c - MPI functions
- * Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -25,22 +25,6 @@
#include "longlong.h"
#include <assert.h>
-/* Barrett is slower than the classical way. It can be tweaked by
- * using partial multiplications
- */
-/*#define USE_BARRETT*/
-
-
-
-#ifdef USE_BARRETT
-static void barrett_mulm( MPI w, MPI u, MPI v, MPI m, MPI y, int k, MPI r1, MPI r2 );
-static MPI init_barrett( MPI m, int *k, MPI *r1, MPI *r2 );
-static int calc_barrett( MPI r, MPI x, MPI m, MPI y, int k, MPI r1, MPI r2 );
-#else
-#define barrett_mulm( w, u, v, m, y, k, r1, r2 ) mpi_mulm( (w), (u), (v), (m) )
-#endif
-
-
static int
build_index( MPI *exparray, int k, int i, int t )
{
@@ -53,7 +37,6 @@ build_index( MPI *exparray, int k, int i, int t )
if( mpi_test_bit( exparray[j], bitno ) )
index |= 1;
}
- /*log_debug("t=%d i=%d index=%d\n", t, i, index );*/
return index;
}
@@ -68,35 +51,25 @@ mpi_mulpowm( MPI res, MPI *basearray, MPI *exparray, MPI m)
int i, j, idx;
MPI *G; /* table with precomputed values of size 2^k */
MPI tmp;
- #ifdef USE_BARRETT
- MPI barrett_y, barrett_r1, barrett_r2;
- int barrett_k;
- #endif
for(k=0; basearray[k]; k++ )
;
assert(k);
for(t=0, i=0; (tmp=exparray[i]); i++ ) {
- /*log_mpidump("exp: ", tmp );*/
j = mpi_get_nbits(tmp);
if( j > t )
t = j;
}
- /*log_mpidump("mod: ", m );*/
assert(i==k);
assert(t);
assert( k < 10 );
G = m_alloc_clear( (1<<k) * sizeof *G );
- #ifdef USE_BARRETT
- barrett_y = init_barrett( m, &barrett_k, &barrett_r1, &barrett_r2 );
- #endif
/* and calculate */
tmp = mpi_alloc( mpi_get_nlimbs(m)+1 );
mpi_set_ui( res, 1 );
for(i = 1; i <= t; i++ ) {
- barrett_mulm(tmp, res, res, m, barrett_y, barrett_k,
- barrett_r1, barrett_r2 );
+ mpi_mulm(tmp, res, res, m );
idx = build_index( exparray, k, i, t );
assert( idx >= 0 && idx < (1<<k) );
if( !G[idx] ) {
@@ -108,115 +81,21 @@ mpi_mulpowm( MPI res, MPI *basearray, MPI *exparray, MPI m)
if( !G[idx] )
G[idx] = mpi_copy( basearray[j] );
else
- barrett_mulm( G[idx], G[idx], basearray[j],
- m, barrett_y, barrett_k, barrett_r1, barrett_r2 );
+ mpi_mulm( G[idx], G[idx], basearray[j], m );
}
}
if( !G[idx] )
G[idx] = mpi_alloc(0);
}
}
- barrett_mulm(res, tmp, G[idx], m, barrett_y, barrett_k, barrett_r1, barrett_r2 );
+ mpi_mulm(res, tmp, G[idx], m );
}
/* cleanup */
mpi_free(tmp);
- #ifdef USE_BARRETT
- mpi_free(barrett_y);
- mpi_free(barrett_r1);
- mpi_free(barrett_r2);
- #endif
for(i=0; i < (1<<k); i++ )
mpi_free(G[i]);
m_free(G);
}
-
-#ifdef USE_BARRETT
-static void
-barrett_mulm( MPI w, MPI u, MPI v, MPI m, MPI y, int k, MPI r1, MPI r2 )
-{
- mpi_mul(w, u, v);
- if( calc_barrett( w, w, m, y, k, r1, r2 ) )
- mpi_fdiv_r( w, w, m );
-}
-
-/****************
- * Barrett precalculation: y = floor(b^(2k) / m)
- */
-static MPI
-init_barrett( MPI m, int *k, MPI *r1, MPI *r2 )
-{
- MPI tmp;
-
- mpi_normalize( m );
- *k = mpi_get_nlimbs( m );
- tmp = mpi_alloc( *k + 1 );
- mpi_set_ui( tmp, 1 );
- mpi_lshift_limbs( tmp, 2 * *k );
- mpi_fdiv_q( tmp, tmp, m );
- *r1 = mpi_alloc( 2* *k + 1 );
- *r2 = mpi_alloc( 2* *k + 1 );
- return tmp;
-}
-
-/****************
- * Barrett reduction: We assume that these conditions are met:
- * Given x =(x_2k-1 ...x_0)_b
- * m =(m_k-1 ....m_0)_b with m_k-1 != 0
- * Output r = x mod m
- * Before using this function init_barret must be used to calucalte y and k.
- * Returns: false = no error
- * true = can't perform barret reduction
- */
-static int
-calc_barrett( MPI r, MPI x, MPI m, MPI y, int k, MPI r1, MPI r2 )
-{
- int xx = k > 3 ? k-3:0;
-
- mpi_normalize( x );
- if( mpi_get_nlimbs(x) > 2*k )
- return 1; /* can't do it */
-
- /* 1. q1 = floor( x / b^k-1)
- * q2 = q1 * y
- * q3 = floor( q2 / b^k+1 )
- * Actually, we don't need qx, we can work direct on r2
- */
- mpi_set( r2, x );
- mpi_rshift_limbs( r2, k-1 );
- mpi_mul( r2, r2, y );
- mpi_rshift_limbs( r2, k+1 );
-
- /* 2. r1 = x mod b^k+1
- * r2 = q3 * m mod b^k+1
- * r = r1 - r2
- * 3. if r < 0 then r = r + b^k+1
- */
- mpi_set( r1, x );
- if( r1->nlimbs > k+1 ) /* quick modulo operation */
- r1->nlimbs = k+1;
- mpi_mul( r2, r2, m );
- if( r2->nlimbs > k+1 ) /* quick modulo operation */
- r2->nlimbs = k+1;
- mpi_sub( r, r1, r2 );
-
- if( mpi_is_neg( r ) ) {
- MPI tmp;
-
- tmp = mpi_alloc( k + 2 );
- mpi_set_ui( tmp, 1 );
- mpi_lshift_limbs( tmp, k+1 );
- mpi_add( r, r, tmp );
- mpi_free(tmp);
- }
-
- /* 4. while r >= m do r = r - m */
- while( mpi_cmp( r, m ) >= 0 )
- mpi_sub( r, r, m );
-
- return 0;
-}
-#endif /* USE_BARRETT */
-
diff --git a/mpi/mpi-pow.c b/mpi/mpi-pow.c
index e8d55f9b9..fbd2cb8ef 100644
--- a/mpi/mpi-pow.c
+++ b/mpi/mpi-pow.c
@@ -1,6 +1,6 @@
/* mpi-pow.c - MPI functions
* Copyright (C) 1998 Free Software Foundation, Inc.
- * Copyright (C) 1994, 1996 Free Software Foundation, Inc.
+ * Copyright (C) 1994, 1996, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -30,6 +30,7 @@
#include <config.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include "mpi-internal.h"
#include "longlong.h"
#include <assert.h>
@@ -159,7 +160,9 @@ mpi_powm( MPI res, MPI base, MPI exp, MPI mod)
int c;
mpi_limb_t e;
mpi_limb_t carry_limb;
+ struct karatsuba_ctx karactx;
+ memset( &karactx, 0, sizeof karactx );
negative_result = (ep[0] & 1) && base->sign;
i = esize - 1;
@@ -177,6 +180,7 @@ mpi_powm( MPI res, MPI base, MPI exp, MPI mod)
* by RP (==RES->d), and with 50% probability in the area originally
* pointed to by XP.
*/
+
for(;;) {
while( c ) {
mpi_ptr_t tp;
@@ -194,7 +198,6 @@ mpi_powm( MPI res, MPI base, MPI exp, MPI mod)
mpi_free_limb_space( tspace );
tsize = 2 * rsize;
tspace = mpi_alloc_limb_space( tsize, 0 );
-
}
mpih_sqr_n( xp, rp, rsize, tspace );
}
@@ -209,7 +212,15 @@ mpi_powm( MPI res, MPI base, MPI exp, MPI mod)
rsize = xsize;
if( (mpi_limb_signed_t)e < 0 ) {
- mpihelp_mul( xp, rp, rsize, bp, bsize );
+ /*mpihelp_mul( xp, rp, rsize, bp, bsize );*/
+ if( bsize < KARATSUBA_THRESHOLD ) {
+ mpihelp_mul( xp, rp, rsize, bp, bsize );
+ }
+ else {
+ mpihelp_mul_karatsuba_case(
+ xp, rp, rsize, bp, bsize, &karactx );
+ }
+
xsize = rsize + bsize;
if( xsize > msize ) {
mpihelp_divrem(xp + msize, 0, xp, xsize, mp, msize);
@@ -258,6 +269,8 @@ mpi_powm( MPI res, MPI base, MPI exp, MPI mod)
if( mod_shift_cnt )
mpihelp_rshift( rp, rp, rsize, mod_shift_cnt);
MPN_NORMALIZE (rp, rsize);
+
+ mpihelp_release_karatsuba_ctx( &karactx );
}
if( negative_result && rsize ) {
diff --git a/mpi/mpih-div.c b/mpi/mpih-div.c
index 0d711cb58..bb837208b 100644
--- a/mpi/mpih-div.c
+++ b/mpi/mpih-div.c
@@ -338,7 +338,7 @@ mpihelp_divrem( mpi_ptr_t qp, mpi_size_t qextra_limbs,
}
else {
n2 = np[dsize - 1];
- MPN_COPY_DECR (np + 1, np, dsize);
+ MPN_COPY_DECR (np + 1, np, dsize - 1);
np[0] = 0;
}
diff --git a/mpi/mpih-mul.c b/mpi/mpih-mul.c
index 7707c0e30..e1bfef55b 100644
--- a/mpi/mpih-mul.c
+++ b/mpi/mpih-mul.c
@@ -1,5 +1,5 @@
/* mpihelp-mul.c - MPI helper functions
- * Copyright (C) 1994, 1996, 1998, 1999 Free Software Foundation, Inc.
+ * Copyright (C) 1994, 1996, 1998, 1999, 2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -29,6 +29,7 @@
#include <config.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include "mpi-internal.h"
#include "longlong.h"
@@ -372,6 +373,86 @@ mpihelp_mul_n( mpi_ptr_t prodp, mpi_ptr_t up, mpi_ptr_t vp, mpi_size_t size)
}
+
+void
+mpihelp_mul_karatsuba_case( mpi_ptr_t prodp,
+ mpi_ptr_t up, mpi_size_t usize,
+ mpi_ptr_t vp, mpi_size_t vsize,
+ struct karatsuba_ctx *ctx )
+{
+ mpi_limb_t cy;
+
+ if( !ctx->tspace || ctx->tspace_size < vsize ) {
+ if( ctx->tspace )
+ mpi_free_limb_space( ctx->tspace );
+ ctx->tspace = mpi_alloc_limb_space( 2 * vsize,
+ m_is_secure( up ) || m_is_secure( vp ) );
+ ctx->tspace_size = vsize;
+ }
+
+ MPN_MUL_N_RECURSE( prodp, up, vp, vsize, ctx->tspace );
+
+ prodp += vsize;
+ up += vsize;
+ usize -= vsize;
+ if( usize >= vsize ) {
+ if( !ctx->tp || ctx->tp_size < vsize ) {
+ if( ctx->tp )
+ mpi_free_limb_space( ctx->tp );
+ ctx->tp = mpi_alloc_limb_space( 2 * vsize, m_is_secure( up )
+ || m_is_secure( vp ) );
+ ctx->tp_size = vsize;
+ }
+
+ do {
+ MPN_MUL_N_RECURSE( ctx->tp, up, vp, vsize, ctx->tspace );
+ cy = mpihelp_add_n( prodp, prodp, ctx->tp, vsize );
+ mpihelp_add_1( prodp + vsize, ctx->tp + vsize, vsize, cy );
+ prodp += vsize;
+ up += vsize;
+ usize -= vsize;
+ } while( usize >= vsize );
+ }
+
+ if( usize ) {
+ if( usize < KARATSUBA_THRESHOLD ) {
+ mpihelp_mul( ctx->tspace, vp, vsize, up, usize );
+ }
+ else {
+ if( !ctx->next ) {
+ ctx->next = m_alloc_clear( sizeof *ctx );
+ }
+ mpihelp_mul_karatsuba_case( ctx->tspace,
+ vp, vsize,
+ up, usize,
+ ctx->next );
+ }
+
+ cy = mpihelp_add_n( prodp, prodp, ctx->tspace, vsize);
+ mpihelp_add_1( prodp + vsize, ctx->tspace + vsize, usize, cy );
+ }
+}
+
+
+void
+mpihelp_release_karatsuba_ctx( struct karatsuba_ctx *ctx )
+{
+ struct karatsuba_ctx *ctx2;
+
+ if( ctx->tp )
+ mpi_free_limb_space( ctx->tp );
+ if( ctx->tspace )
+ mpi_free_limb_space( ctx->tspace );
+ for( ctx=ctx->next; ctx; ctx = ctx2 ) {
+ ctx2 = ctx->next;
+ if( ctx->tp )
+ mpi_free_limb_space( ctx->tp );
+ if( ctx->tspace )
+ mpi_free_limb_space( ctx->tspace );
+ m_free( ctx );
+ }
+}
+
/* Multiply the natural numbers u (pointed to by UP, with USIZE limbs)
* and v (pointed to by VP, with VSIZE limbs), and store the result at
* PRODP. USIZE + VSIZE limbs are always stored, but if the input
@@ -393,7 +474,7 @@ mpihelp_mul( mpi_ptr_t prodp, mpi_ptr_t up, mpi_size_t usize,
{
mpi_ptr_t prod_endp = prodp + usize + vsize - 1;
mpi_limb_t cy;
- mpi_ptr_t tspace;
+ struct karatsuba_ctx ctx;
if( vsize < KARATSUBA_THRESHOLD ) {
mpi_size_t i;
@@ -437,34 +518,9 @@ mpihelp_mul( mpi_ptr_t prodp, mpi_ptr_t up, mpi_size_t usize,
return cy;
}
- tspace = mpi_alloc_limb_space( 2 * vsize,
- m_is_secure( up ) || m_is_secure( vp ) );
- MPN_MUL_N_RECURSE( prodp, up, vp, vsize, tspace );
-
- prodp += vsize;
- up += vsize;
- usize -= vsize;
- if( usize >= vsize ) {
- mpi_ptr_t tp = mpi_alloc_limb_space( 2 * vsize, m_is_secure( up )
- || m_is_secure( vp ) );
- do {
- MPN_MUL_N_RECURSE( tp, up, vp, vsize, tspace );
- cy = mpihelp_add_n( prodp, prodp, tp, vsize );
- mpihelp_add_1( prodp + vsize, tp + vsize, vsize, cy );
- prodp += vsize;
- up += vsize;
- usize -= vsize;
- } while( usize >= vsize );
- mpi_free_limb_space( tp );
- }
-
- if( usize ) {
- mpihelp_mul( tspace, vp, vsize, up, usize );
- cy = mpihelp_add_n( prodp, prodp, tspace, vsize);
- mpihelp_add_1( prodp + vsize, tspace + vsize, usize, cy );
- }
-
- mpi_free_limb_space( tspace );
+ memset( &ctx, 0, sizeof ctx );
+ mpihelp_mul_karatsuba_case( prodp, up, usize, vp, vsize, &ctx );
+ mpihelp_release_karatsuba_ctx( &ctx );
return *prod_endp;
}
diff --git a/mpi/power/distfiles b/mpi/power/distfiles
index e69de29bb..e664c8db6 100644
--- a/mpi/power/distfiles
+++ b/mpi/power/distfiles
@@ -0,0 +1,7 @@
+mpih-add1.S
+mpih-lshift.S
+mpih-mul1.S
+mpih-mul2.S
+mpih-mul3.S
+mpih-rshift.S
+mpih-sub1.S
diff --git a/mpi/power/mpih-add1.S b/mpi/power/mpih-add1.S
new file mode 100644
index 000000000..ad27f3d81
--- /dev/null
+++ b/mpi/power/mpih-add1.S
@@ -0,0 +1,86 @@
+/* IBM POWER add_n -- Add two limb vectors of equal, non-zero length.
+ *
+ * Copyright (C) 1992, 1994, 1995, 1996, 1999 Free Software Foundation, Inc.
+ *
+ * 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 2 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include "sysdep.h"
+#include "asm-syntax.h"
+
+/*
+# INPUT PARAMETERS
+# res_ptr r3
+# s1_ptr r4
+# s2_ptr r5
+# size r6
+ */
+
+ .toc
+ .extern mpihelp_add_n[DS]
+ .extern .mpihelp_add_n
+.csect [PR]
+ .align 2
+ .globl mpihelp_add_n
+ .globl .mpihelp_add_n
+ .csect mpihelp_add_n[DS]
+mpihelp_add_n:
+ .long .mpihelp_add_n, TOC[tc0], 0
+ .csect [PR]
+.mpihelp_add_n:
+ andil. 10,6,1 # odd or even number of limbs?
+ l 8,0(4) # load least significant s1 limb
+ l 0,0(5) # load least significant s2 limb
+ cal 3,-4(3) # offset res_ptr, it's updated before it's used
+ sri 10,6,1 # count for unrolled loop
+ a 7,0,8 # add least significant limbs, set cy
+ mtctr 10 # copy count into CTR
+ beq 0,Leven # branch if even # of limbs (# of limbs >= 2)
+
+# We have an odd # of limbs. Add the first limbs separately.
+ cmpi 1,10,0 # is count for unrolled loop zero?
+ bne 1,L1 # branch if not
+ st 7,4(3)
+ aze 3,10 # use the fact that r10 is zero...
+ br # return
+
+# We added least significant limbs. Now reload the next limbs to enter loop.
+L1: lu 8,4(4) # load s1 limb and update s1_ptr
+ lu 0,4(5) # load s2 limb and update s2_ptr
+ stu 7,4(3)
+ ae 7,0,8 # add limbs, set cy
+Leven: lu 9,4(4) # load s1 limb and update s1_ptr
+ lu 10,4(5) # load s2 limb and update s2_ptr
+ bdz Lend # If done, skip loop
+
+Loop: lu 8,4(4) # load s1 limb and update s1_ptr
+ lu 0,4(5) # load s2 limb and update s2_ptr
+ ae 11,9,10 # add previous limbs with cy, set cy
+ stu 7,4(3) #
+ lu 9,4(4) # load s1 limb and update s1_ptr
+ lu 10,4(5) # load s2 limb and update s2_ptr
+ ae 7,0,8 # add previous limbs with cy, set cy
+ stu 11,4(3) #
+ bdn Loop # decrement CTR and loop back
+
+Lend: ae 11,9,10 # add limbs with cy, set cy
+ st 7,4(3) #
+ st 11,8(3) #
+ lil 3,0 # load cy into ...
+ aze 3,3 # ... return value register
+ br
+
diff --git a/mpi/power/mpih-lshift.S b/mpi/power/mpih-lshift.S
new file mode 100644
index 000000000..5c53a0ae6
--- /dev/null
+++ b/mpi/power/mpih-lshift.S
@@ -0,0 +1,64 @@
+/* IBM POWER lshift
+ *
+ * Copyright (C) 1992, 1994, 1999 Free Software Foundation, Inc.
+ *
+ * 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 2 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include "sysdep.h"
+#include "asm-syntax.h"
+
+/*
+# INPUT PARAMETERS
+# res_ptr r3
+# s_ptr r4
+# size r5
+# cnt r6
+ */
+
+ .toc
+ .extern mpihelp_lshift[DS]
+ .extern .mpihelp_lshift
+.csect [PR]
+ .align 2
+ .globl mpihelp_lshift
+ .globl .mpihelp_lshift
+ .csect mpihelp_lshift[DS]
+mpihelp_lshift:
+ .long .mpihelp_lshift, TOC[tc0], 0
+ .csect [PR]
+.mpihelp_lshift:
+ sli 0,5,2
+ cax 9,3,0
+ cax 4,4,0
+ sfi 8,6,32
+ mtctr 5 # put limb count in CTR loop register
+ lu 0,-4(4) # read most significant limb
+ sre 3,0,8 # compute carry out limb, and init MQ register
+ bdz Lend2 # if just one limb, skip loop
+ lu 0,-4(4) # read 2:nd most significant limb
+ sreq 7,0,8 # compute most significant limb of result
+ bdz Lend # if just two limb, skip loop
+Loop: lu 0,-4(4) # load next lower limb
+ stu 7,-4(9) # store previous result during read latency
+ sreq 7,0,8 # compute result limb
+ bdn Loop # loop back until CTR is zero
+Lend: stu 7,-4(9) # store 2:nd least significant limb
+Lend2: sle 7,0,6 # compute least significant limb
+ st 7,-4(9) # store it
+ br
+
diff --git a/mpi/power/mpih-mul1.S b/mpi/power/mpih-mul1.S
new file mode 100644
index 000000000..3b71b5aa9
--- /dev/null
+++ b/mpi/power/mpih-mul1.S
@@ -0,0 +1,115 @@
+/* IBM POWER mul_1 -- Multiply a limb vector with a limb and store
+ * the result in a second limb vector.
+ *
+ * Copyright (C) 1992, 1994, 1999 Free Software Foundation, Inc.
+ *
+ * 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 2 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include "sysdep.h"
+#include "asm-syntax.h"
+
+/*
+# INPUT PARAMETERS
+# res_ptr r3
+# s1_ptr r4
+# size r5
+# s2_limb r6
+
+# The RS/6000 has no unsigned 32x32->64 bit multiplication instruction. To
+# obtain that operation, we have to use the 32x32->64 signed multiplication
+# instruction, and add the appropriate compensation to the high limb of the
+# result. We add the multiplicand if the multiplier has its most significant
+# bit set, and we add the multiplier if the multiplicand has its most
+# significant bit set. We need to preserve the carry flag between each
+# iteration, so we have to compute the compensation carefully (the natural,
+# srai+and doesn't work). Since the POWER architecture has a branch unit
+# we can branch in zero cycles, so that's how we perform the additions.
+ */
+
+ .toc
+ .csect .mpihelp_mul_1[PR]
+ .align 2
+ .globl mpihelp_mul_1
+ .globl .mpihelp_mul_1
+ .csect mpihelp_mul_1[DS]
+mpihelp_mul_1:
+ .long .mpihelp_mul_1[PR], TOC[tc0], 0
+ .csect .mpihelp_mul_1[PR]
+.mpihelp_mul_1:
+
+ cal 3,-4(3)
+ l 0,0(4)
+ cmpi 0,6,0
+ mtctr 5
+ mul 9,0,6
+ srai 7,0,31
+ and 7,7,6
+ mfmq 8
+ ai 0,0,0 # reset carry
+ cax 9,9,7
+ blt Lneg
+Lpos: bdz Lend
+Lploop: lu 0,4(4)
+ stu 8,4(3)
+ cmpi 0,0,0
+ mul 10,0,6
+ mfmq 0
+ ae 8,0,9
+ bge Lp0
+ cax 10,10,6 # adjust high limb for negative limb from s1
+Lp0: bdz Lend0
+ lu 0,4(4)
+ stu 8,4(3)
+ cmpi 0,0,0
+ mul 9,0,6
+ mfmq 0
+ ae 8,0,10
+ bge Lp1
+ cax 9,9,6 # adjust high limb for negative limb from s1
+Lp1: bdn Lploop
+ b Lend
+
+Lneg: cax 9,9,0
+ bdz Lend
+Lnloop: lu 0,4(4)
+ stu 8,4(3)
+ cmpi 0,0,0
+ mul 10,0,6
+ cax 10,10,0 # adjust high limb for negative s2_limb
+ mfmq 0
+ ae 8,0,9
+ bge Ln0
+ cax 10,10,6 # adjust high limb for negative limb from s1
+Ln0: bdz Lend0
+ lu 0,4(4)
+ stu 8,4(3)
+ cmpi 0,0,0
+ mul 9,0,6
+ cax 9,9,0 # adjust high limb for negative s2_limb
+ mfmq 0
+ ae 8,0,10
+ bge Ln1
+ cax 9,9,6 # adjust high limb for negative limb from s1
+Ln1: bdn Lnloop
+ b Lend
+
+Lend0: cal 9,0(10)
+Lend: st 8,4(3)
+ aze 3,9
+ br
+
diff --git a/mpi/power/mpih-mul2.S b/mpi/power/mpih-mul2.S
new file mode 100644
index 000000000..19ddee86d
--- /dev/null
+++ b/mpi/power/mpih-mul2.S
@@ -0,0 +1,130 @@
+/* IBM POWER addmul_1 -- Multiply a limb vector with a limb and add
+ * the result to a second limb vector.
+ *
+ * Copyright (C) 1992, 1994, 1999 Free Software Foundation, Inc.
+ *
+ * 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 2 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include "sysdep.h"
+#include "asm-syntax.h"
+
+
+
+/*
+# INPUT PARAMETERS
+# res_ptr r3
+# s1_ptr r4
+# size r5
+# s2_limb r6
+
+# The RS/6000 has no unsigned 32x32->64 bit multiplication instruction. To
+# obtain that operation, we have to use the 32x32->64 signed multiplication
+# instruction, and add the appropriate compensation to the high limb of the
+# result. We add the multiplicand if the multiplier has its most significant
+# bit set, and we add the multiplier if the multiplicand has its most
+# significant bit set. We need to preserve the carry flag between each
+# iteration, so we have to compute the compensation carefully (the natural,
+# srai+and doesn't work). Since the POWER architecture has a branch unit
+# we can branch in zero cycles, so that's how we perform the additions.
+ */
+
+ .toc
+ .csect .mpihelp_addmul_1[PR]
+ .align 2
+ .globl mpihelp_addmul_1
+ .globl .mpihelp_addmul_1
+ .csect mpihelp_addmul_1[DS]
+mpihelp_addmul_1:
+ .long .mpihelp_addmul_1[PR], TOC[tc0], 0
+ .csect .mpihelp_addmul_1[PR]
+.mpihelp_addmul_1:
+
+ cal 3,-4(3)
+ l 0,0(4)
+ cmpi 0,6,0
+ mtctr 5
+ mul 9,0,6
+ srai 7,0,31
+ and 7,7,6
+ mfmq 8
+ cax 9,9,7
+ l 7,4(3)
+ a 8,8,7 # add res_limb
+ blt Lneg
+Lpos: bdz Lend
+
+Lploop: lu 0,4(4)
+ stu 8,4(3)
+ cmpi 0,0,0
+ mul 10,0,6
+ mfmq 0
+ ae 8,0,9 # low limb + old_cy_limb + old cy
+ l 7,4(3)
+ aze 10,10 # propagate cy to new cy_limb
+ a 8,8,7 # add res_limb
+ bge Lp0
+ cax 10,10,6 # adjust high limb for negative limb from s1
+Lp0: bdz Lend0
+ lu 0,4(4)
+ stu 8,4(3)
+ cmpi 0,0,0
+ mul 9,0,6
+ mfmq 0
+ ae 8,0,10
+ l 7,4(3)
+ aze 9,9
+ a 8,8,7
+ bge Lp1
+ cax 9,9,6 # adjust high limb for negative limb from s1
+Lp1: bdn Lploop
+
+ b Lend
+
+Lneg: cax 9,9,0
+ bdz Lend
+Lnloop: lu 0,4(4)
+ stu 8,4(3)
+ cmpi 0,0,0
+ mul 10,0,6
+ mfmq 7
+ ae 8,7,9
+ l 7,4(3)
+ ae 10,10,0 # propagate cy to new cy_limb
+ a 8,8,7 # add res_limb
+ bge Ln0
+ cax 10,10,6 # adjust high limb for negative limb from s1
+Ln0: bdz Lend0
+ lu 0,4(4)
+ stu 8,4(3)
+ cmpi 0,0,0
+ mul 9,0,6
+ mfmq 7
+ ae 8,7,10
+ l 7,4(3)
+ ae 9,9,0 # propagate cy to new cy_limb
+ a 8,8,7 # add res_limb
+ bge Ln1
+ cax 9,9,6 # adjust high limb for negative limb from s1
+Ln1: bdn Lnloop
+ b Lend
+
+Lend0: cal 9,0(10)
+Lend: st 8,4(3)
+ aze 3,9
+ br
+
diff --git a/mpi/power/mpih-mul3.S b/mpi/power/mpih-mul3.S
new file mode 100644
index 000000000..e875e88ea
--- /dev/null
+++ b/mpi/power/mpih-mul3.S
@@ -0,0 +1,135 @@
+/* IBM POWER submul_1 -- Multiply a limb vector with a limb and subtract
+ * the result from a second limb vector.
+ *
+ * Copyright (C) 1992, 1994, 1999 Free Software Foundation, Inc.
+ *
+ * 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 2 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include "sysdep.h"
+#include "asm-syntax.h"
+
+
+/*
+
+# INPUT PARAMETERS
+# res_ptr r3
+# s1_ptr r4
+# size r5
+# s2_limb r6
+
+# The RS/6000 has no unsigned 32x32->64 bit multiplication instruction. To
+# obtain that operation, we have to use the 32x32->64 signed multiplication
+# instruction, and add the appropriate compensation to the high limb of the
+# result. We add the multiplicand if the multiplier has its most significant
+# bit set, and we add the multiplier if the multiplicand has its most
+# significant bit set. We need to preserve the carry flag between each
+# iteration, so we have to compute the compensation carefully (the natural,
+# srai+and doesn't work). Since the POWER architecture has a branch unit
+# we can branch in zero cycles, so that's how we perform the additions.
+ */
+
+ .toc
+ .csect .mpihelp_submul_1[PR]
+ .align 2
+ .globl mpihelp_submul_1
+ .globl .mpihelp_submul_1
+ .csect mpihelp_submul_1[DS]
+mpihelp_submul_1:
+ .long .mpihelp_submul_1[PR], TOC[tc0], 0
+ .csect .mpihelp_submul_1[PR]
+.mpihelp_submul_1:
+
+ cal 3,-4(3)
+ l 0,0(4)
+ cmpi 0,6,0
+ mtctr 5
+ mul 9,0,6
+ srai 7,0,31
+ and 7,7,6
+ mfmq 11
+ cax 9,9,7
+ l 7,4(3)
+ sf 8,11,7 # add res_limb
+ a 11,8,11 # invert cy (r11 is junk)
+ blt Lneg
+Lpos: bdz Lend
+
+Lploop: lu 0,4(4)
+ stu 8,4(3)
+ cmpi 0,0,0
+ mul 10,0,6
+ mfmq 0
+ ae 11,0,9 # low limb + old_cy_limb + old cy
+ l 7,4(3)
+ aze 10,10 # propagate cy to new cy_limb
+ sf 8,11,7 # add res_limb
+ a 11,8,11 # invert cy (r11 is junk)
+ bge Lp0
+ cax 10,10,6 # adjust high limb for negative limb from s1
+Lp0: bdz Lend0
+ lu 0,4(4)
+ stu 8,4(3)
+ cmpi 0,0,0
+ mul 9,0,6
+ mfmq 0
+ ae 11,0,10
+ l 7,4(3)
+ aze 9,9
+ sf 8,11,7
+ a 11,8,11 # invert cy (r11 is junk)
+ bge Lp1
+ cax 9,9,6 # adjust high limb for negative limb from s1
+Lp1: bdn Lploop
+
+ b Lend
+
+Lneg: cax 9,9,0
+ bdz Lend
+Lnloop: lu 0,4(4)
+ stu 8,4(3)
+ cmpi 0,0,0
+ mul 10,0,6
+ mfmq 7
+ ae 11,7,9
+ l 7,4(3)
+ ae 10,10,0 # propagate cy to new cy_limb
+ sf 8,11,7 # add res_limb
+ a 11,8,11 # invert cy (r11 is junk)
+ bge Ln0
+ cax 10,10,6 # adjust high limb for negative limb from s1
+Ln0: bdz Lend0
+ lu 0,4(4)
+ stu 8,4(3)
+ cmpi 0,0,0
+ mul 9,0,6
+ mfmq 7
+ ae 11,7,10
+ l 7,4(3)
+ ae 9,9,0 # propagate cy to new cy_limb
+ sf 8,11,7 # add res_limb
+ a 11,8,11 # invert cy (r11 is junk)
+ bge Ln1
+ cax 9,9,6 # adjust high limb for negative limb from s1
+Ln1: bdn Lnloop
+ b Lend
+
+Lend0: cal 9,0(10)
+Lend: st 8,4(3)
+ aze 3,9
+ br
+
diff --git a/mpi/power/mpih-rshift.S b/mpi/power/mpih-rshift.S
new file mode 100644
index 000000000..e29645072
--- /dev/null
+++ b/mpi/power/mpih-rshift.S
@@ -0,0 +1,64 @@
+/* IBM POWER rshift
+ *
+ * Copyright (C) 1992, 1994, 1999 Free Software Foundation, Inc.
+ *
+ * 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 2 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include "sysdep.h"
+#include "asm-syntax.h"
+
+
+/*
+# INPUT PARAMETERS
+# res_ptr r3
+# s_ptr r4
+# size r5
+# cnt r6
+*/
+
+ .toc
+ .extern mpihelp_rshift[DS]
+ .extern .mpihelp_rshift
+.csect [PR]
+ .align 2
+ .globl mpihelp_rshift
+ .globl .mpihelp_rshift
+ .csect mpihelp_rshift[DS]
+mpihelp_rshift:
+ .long .mpihelp_rshift, TOC[tc0], 0
+ .csect [PR]
+.mpihelp_rshift:
+ sfi 8,6,32
+ mtctr 5 # put limb count in CTR loop register
+ l 0,0(4) # read least significant limb
+ ai 9,3,-4 # adjust res_ptr since it's offset in the stu:s
+ sle 3,0,8 # compute carry limb, and init MQ register
+ bdz Lend2 # if just one limb, skip loop
+ lu 0,4(4) # read 2:nd least significant limb
+ sleq 7,0,8 # compute least significant limb of result
+ bdz Lend # if just two limb, skip loop
+Loop: lu 0,4(4) # load next higher limb
+ stu 7,4(9) # store previous result during read latency
+ sleq 7,0,8 # compute result limb
+ bdn Loop # loop back until CTR is zero
+Lend: stu 7,4(9) # store 2:nd most significant limb
+Lend2: sre 7,0,6 # compute most significant limb
+ st 7,4(9) # store it
+ br
+
+
diff --git a/mpi/power/mpih-sub1.S b/mpi/power/mpih-sub1.S
new file mode 100644
index 000000000..a3605533e
--- /dev/null
+++ b/mpi/power/mpih-sub1.S
@@ -0,0 +1,87 @@
+/* IBM POWER sub_n -- Subtract two limb vectors of equal, non-zero length.
+ *
+ * Copyright (C) 1992, 1994, 1995, 1996, 1999 Free Software Foundation, Inc.
+ *
+ * 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 2 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include "sysdep.h"
+#include "asm-syntax.h"
+
+/*
+# INPUT PARAMETERS
+# res_ptr r3
+# s1_ptr r4
+# s2_ptr r5
+# size r6
+ */
+
+ .toc
+ .extern mpihelp_sub_n[DS]
+ .extern .mpihelp_sub_n
+.csect [PR]
+ .align 2
+ .globl mpihelp_sub_n
+ .globl .mpihelp_sub_n
+ .csect mpihelp_sub_n[DS]
+mpihelp_sub_n:
+ .long .mpihelp_sub_n, TOC[tc0], 0
+ .csect [PR]
+.mpihelp_sub_n:
+ andil. 10,6,1 # odd or even number of limbs?
+ l 8,0(4) # load least significant s1 limb
+ l 0,0(5) # load least significant s2 limb
+ cal 3,-4(3) # offset res_ptr, it's updated before it's used
+ sri 10,6,1 # count for unrolled loop
+ sf 7,0,8 # subtract least significant limbs, set cy
+ mtctr 10 # copy count into CTR
+ beq 0,Leven # branch if even # of limbs (# of limbs >= 2)
+
+# We have an odd # of limbs. Add the first limbs separately.
+ cmpi 1,10,0 # is count for unrolled loop zero?
+ bne 1,L1 # branch if not
+ st 7,4(3)
+ sfe 3,0,0 # load !cy into ...
+ sfi 3,3,0 # ... return value register
+ br # return
+
+# We added least significant limbs. Now reload the next limbs to enter loop.
+L1: lu 8,4(4) # load s1 limb and update s1_ptr
+ lu 0,4(5) # load s2 limb and update s2_ptr
+ stu 7,4(3)
+ sfe 7,0,8 # subtract limbs, set cy
+Leven: lu 9,4(4) # load s1 limb and update s1_ptr
+ lu 10,4(5) # load s2 limb and update s2_ptr
+ bdz Lend # If done, skip loop
+
+Loop: lu 8,4(4) # load s1 limb and update s1_ptr
+ lu 0,4(5) # load s2 limb and update s2_ptr
+ sfe 11,10,9 # subtract previous limbs with cy, set cy
+ stu 7,4(3) #
+ lu 9,4(4) # load s1 limb and update s1_ptr
+ lu 10,4(5) # load s2 limb and update s2_ptr
+ sfe 7,0,8 # subtract previous limbs with cy, set cy
+ stu 11,4(3) #
+ bdn Loop # decrement CTR and loop back
+
+Lend: sfe 11,10,9 # subtract limbs with cy, set cy
+ st 7,4(3) #
+ st 11,8(3) #
+ sfe 3,0,0 # load !cy into ...
+ sfi 3,3,0 # ... return value register
+ br
+
diff --git a/po/ChangeLog b/po/ChangeLog
index bb656dc45..17591833d 100644
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,5 +1,80 @@
-Wed Sep 15 16:22:17 CEST 1999 Werner Koch <[email protected]>
+2000-05-02 10:44:42 Werner Koch ([email protected])
+
+ * fr.po: New version from the TP Robot.
+
+2000-05-01 14:19:52 Werner Koch ([email protected])
+
+ * de.po: Updated.
+ * de.glo: Ditto.
+
+2000-03-15 15:37:08 Werner Koch ([email protected])
+
+ * de.po: Updated.
+
+Wed Feb 23 10:07:57 CET 2000 Werner Koch <[email protected]>
+
+ * nl.po: New. By Ivo Timmermans.
+
+Wed Feb 16 16:25:09 CET 2000 Werner Koch <[email protected]>
+ * eo.po : New. By Edmund.
+
+Wed Feb 16 14:09:00 CET 2000 Werner Koch <[email protected]>
+
+ * ja.po: New. By Yosiaki
+
+ * sv.po: New. By Daniel.
+
+Fri Feb 11 17:44:40 CET 2000 Werner Koch <[email protected]>
+
+ * id.po: Updated.
+
+Thu Jan 6 16:56:18 CET 2000 Werner Koch <[email protected]>
+
+ * Makefile.in.in: Is not longer maintained as a symlink because we
+ have a patch to work around a bug in non-gnu Make.
+ Fixed by Dave Dykstra.
+
+Thu Dec 16 10:07:58 CET 1999 Werner Koch <[email protected]>
+
+ * pt_PT.po: Updated.
+ * de.po: Updated.
+ * it.po: Updated.
+
+Thu Dec 9 10:31:05 CET 1999 Werner Koch <[email protected]>
+
+ * de.po: Updated.
+ * pt_BR.po: Updated.
+
+Fri Nov 12 20:33:19 CET 1999 Werner Koch <[email protected]>
+
+ * es_ES.po: Fixed 3 \n mismatches.
+
+ * de.po: Updated.
+
+Thu Oct 28 16:08:20 CEST 1999 Werner Koch <[email protected]>
+
+ * es_ES.po: Updated.
+
+ * pt_BR.po: Updated.
+
+Fri Oct 8 20:32:01 CEST 1999 Werner Koch <[email protected]>
+
+ * fr.po: Updated for 1.0.0d.
+
+Mon Oct 4 21:23:04 CEST 1999 Werner Koch <[email protected]>
+
+ * pl.po: New version by Alex.
+
+Thu Sep 23 06:26:28 1999 Werner Koch ([email protected])
+
+ * fr.po: Updated by Ga�l.
+
+Sat Sep 18 11:49:51 1999 Werner Koch ([email protected])
+
+ * id.po: New. Done by Tedi Heriyanto.
+
+Wed Sep 15 16:22:17 CEST 1999 Werner Koch <[email protected]>
* pt_PT.po: New. Done by Pedro Morais.
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 68f9996b7..47d1641ef 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -49,4 +49,3 @@ g10/seskey.c
g10/delkey.c
g10/helptext.c
-#---end--
diff --git a/po/de.glo b/po/de.glo
index ddda5b97a..fbf5e21c4 100644
--- a/po/de.glo
+++ b/po/de.glo
@@ -1,20 +1,41 @@
# Glossary for GnuPG german translation
+# Zusammenstellung der Liste:
# Copyright (C) 1998 Free Software Foundation, Inc.
-# Walter Koch <[email protected]>, 1998.
+# Walter Koch <[email protected]>, 1998.
+#
# This is just a textfile for your information.
# It will _not_ be read or processed automatically by any program
+#
+# 1. Die Begriffe ohne ein "<" oder ">" vor dem deutschen Wort
+# stammen aus der Wortliste von Walter Koch (Programm�bersetzung).
+# 2. Die �nderungsvorschl�ge dazu mit einem "*" vor dem deutschen Wort
+# stammen von Peter Gerwinski.
+# 3. Die Begriffe mit einem "<" vor dem deutschen Wort sind so in der
+# Bearbeitung von Herrn Goretzki verwendet worden
+# 4. Die Begriffe mit einem ">" vor dem deutschen Wort sind
+# alternative �bersetzungsm�glichkeiten, die von H.Martin angegeben
+# wurden.
+# 5. (*) Uneinheitlich verwendet
+# 6. - Gef�llt mir (Walter Koch) nicht so toll
+# 7. Die erste genannte �bersetzung ist die in de.po verwendete
+
+
-........ Authentisierung
aka alias
algorithm Verfahren
anonymous ungenannter
-argument
+argument > Argument
armor ASCII-H�lle
+associate with a person <einer Person zuordnen
+authentication Authentisierung
available vorhanden [besser?: verf�gbar]
-bad [signature] falsch[e] Unterschrift
bad [MPI] fehlerhafte MPI
+bad [signature] falsch[e] Unterschrift
+break (the encryption) <(Die Verschl�sselung) aufbrechen
bug "Bug (Programmfehler)"
-cache Lager [ ob das ernst gemeint ist? :-) ]
+cache Lager *Zwischenspeicher
+can't read nicht lesbar
+casual >zuf�llig, >gelegentlich >unregelm��ig
certificate Zertifikat
character set Zeichensatz
check (verb) pr|fen, gepr|ft
@@ -22,68 +43,100 @@ checksum Pr�fsumme
cipher algorithm Verschl�sselungsverfahren
clearsig header Klartextsignatur-Einleitung
command Befehl
-compress algorithm Komprimierverfahren *
+compress algorithm Komprimierverfahren,*Komprimierungsverfahren ?
+compromised nicht mehr sicher
core dump core-dump-Datei
+, (Speicherauszug?)
+core function <wesentliche Funktion
corrupted besch�digter
-critical bit ???
-dash escaped mit Bindestrich \"escapte\"
+cover >behandeln, <erl�utern
+creation <Erzeugung
+critical bit ???
+dash escaped mit Bindestrich \"escapte\", *m.Bindestrichen maskiert?
decryption Enschl�sselung
+default option <Standardoption
DEK ???
-delete entfernen
+delete entfernen, *>l�schen
+depend on >sich verlassen auf,>angewiesen sein auf,>abh�ngen von
depreciated taugt nicht mehr viel
+determined attacker >zielbewusster,>entschlossener Angreifer
digest algorithm Hashmethode
disabled abgeschaltet
encrypted verschl�sselte
+eventually >schlie�lich, endlich Nicht: eventuell
+expiration date <Verfalldatum
+expire <verfallen
expire date Verfallsdatum
failed fehlgeschlagen
-faked [RNG]
+faked [RNG] - *manipulierter Zufallszahlengenerator
fingerprint Fingerabdruck
for-your-eyes-only Vertraulichkeit (\"for-your-eyes-only\")
generated erzeugter
good certificate Korrektes Zertifikat
handle benutzt
hint Tip
-init -
-key-ID Schl�ssel-ID
+ignored unbeachtet
+include <enthalten
+init *initialisieren
+invalid ... falsche ...
+is adequate >ist angemessen, manchmal: <reicht v�llig aus
+issue
+key-ID Schl�ssel-ID, *Schl�sselkennung ?
+
key binding Schl�sselanbindung
keyblock Schl�sselblock
keyring Schl�sselbund
-keyserver - Schl�sselserver
+keyserver Schl�sselserver, -*Schl�ssel-Server
+lifetime >G�ltigkeitsdauer, >Geltungsdauer
lookup - Suche
+machine h�ufig: Computer, Rechner
main key Hauptschl�ssel
-maintenance utility Wartungs-Hilfsprogramm
-malformed ung�nstig aufgebaute
+maintenance utility -Wartungs-Hilfsprogramm
+making signatures >Unterschreiben <Unterzeichnen, <Leisten von
+malformed ung�nstig aufgebaute, *fehlerhaft aufgebaute
+master key >Universalschl�ssel
+, Generalschl�ssel
MDC Manipulation detection code (Siegel ?)
+merge (to) >zusammenf�hren, >vermischen ??
message Botschaft
mode Modus, Methode *
-move schieben
+move schieben, *verschieben
+NAI
network error Netzwerkfehler
note Hinweis
okay in Ordnung
Ooops Huch
+OpenPGP
original Urspr�nglicher
-ownertrust \"Owner trust\"
+ownertrust \"Owner trust\" *Vertrauensw�rdigkeit des Besitzers
packet Paket
packet type Pakettyp
passphrase Mantra
preference items ????
-preferences Einstellungen
+preferences Einstellungen *(die gesamten) Einstellungen
preferred bevorzugt
primary keys Hauptschl�ssel
+prompt (to) auch: >abfragen, >anfordern, >verlangen
+protected
protection algorithm Schutzverfahren
pubkey algorithm Public-Key Verfahren (*)
public key �ffentlicher Sch�ssel
-public key algorithm Public-Key Verfahren
-quit
+public key algorithm Public-Key Verfahren *Public-Key-Verfahren
+quit *(Programm) verlassen, beenden
radix64 radix64
random Zufall
random bytes Zufallswerte
+regular file normale Datei
retry ???? (Wiederholung?, Wiederaufnahme?)
+reveal auch: <jemandem zeigen, >anderen zeigen
+revocation Widerruf <*>R�ckruf
+revocation certificate *<R�ckrufurkunde *R�ckruf-Zertifikat
revoke widerrufen
-revocation Widerruf
RNG Zufallsgenerator
secondary key Zweitschl�ssel
secret key geheimer Schl�ssel
+secret parts geheime Teile
+security need(s) >Sicherheitsbed�fnis(se), >Sicherheitsbedarf
self-signature Eigenbeglaubigung
sender Absender
sign user id User-ID beglaubigen *
@@ -91,25 +144,30 @@ signature (files) Unterschrift *
signature (keys) Beglaubigung *
simple S2K mode ????
skipped �bergangen, �bersprungen, ignoriert
-stdin - stdin
+specify >spezifizieren, <angeben, ?festlegen
+stdin - stdin, *die Standardeingabe
subkey Unterschl�ssel
-terminal charset - Terminalzeichensatz
+superseeded �berholt, veraltet
+terminal charset - Terminalzeichensatz *Terminal-Zeichensatz(s.o.)
throw verwerfe
Timestamp conflict Zeitangaben differieren
-Trust-DB 'Trust'-Datenbank
+Trust-DB 'Trust'-Datenbank, *Vertrauensdatenbank ?
trusted - vertrauensw�rdig
-trustvalues - trustvalues
+trustvalues - trustvalues >Vertrauensniveaus?? *Vertrauensma�? >Vertrauenswerte?
trying Versuch
type [message] [Botschaft] eintippen
ulimately [trust] uneingeschr�nktes [Vertrauen]
-update �ndern, �nderung
-User - User
+untrusted - nichtvertrauensw�rdig, *nicht vertrauensw�rdig
+update �ndern, �nderung >Aktualisieren, >Aktualisierung *auf den
+User - User, *<Benutzer, *Teilnehmer
user ID User-ID
user IDs User-IDs
-username Username
-untrusted - nichtvertruensw�rdig
+user interface >Benutzer-Schnittstelle
+username Username, *<Benutzername,
+validate -- authentifizieren (>besser authentisieren ?? So im
+W�rterbuch der neuen Rechtschreibung)
+validation -- >Authentisierung
+verify < �berpr�fen
warning Warnung
weak key unsicherer Schl�ssel
-
- (*) Uneinheitlich verwendet
- - Gef�llt mir nicht so toll \ No newline at end of file
+wisely >klug, vern�nftig(erweise), >gescheit; m�glichst sinnvoll
diff --git a/po/de.po b/po/de.po
index f3b5ce330..d0de5b9ea 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,10 +1,11 @@
# GnuPG german translation
# Copyright (C) 1998 Free Software Foundation, Inc.
-# Walter Koch <[email protected]>, 1998.
+# Walter Koch <[email protected]>, 1998
msgid ""
msgstr ""
-"POT-Creation-Date: 1999-09-05 19:21+0200\n"
-"PO-Revision-Date: 1999-09-04 22:36+0200\n"
+"Project-Id-Version: gnupg 1.0.0h\n"
+"POT-Creation-Date: 2000-05-30 13:59+0200\n"
+"PO-Revision-Date: 2000-04-22 21:50+0200\n"
"Last-Translator: Walter Koch <[email protected]>\n"
"Language-Team: German <[email protected]>\n"
"MIME-Version: 1.0\n"
@@ -17,11 +18,11 @@ msgstr "Warnung: Sensible Daten k�nnten auf Platte ausgelagert werden.\n"
# " Um dies zu vermeiden, kann das Programm suid(root) installiert werden.\n"
# " Bitte wenden Sie sich hierzu an den Systemadministrator.\n"
-#: util/secmem.c:275
+#: util/secmem.c:287
msgid "operation is not possible without initialized secure memory\n"
msgstr "Vorgang ist ohne sicheren Hauptspeicher nicht m�glich\n"
-#: util/secmem.c:276
+#: util/secmem.c:288
msgid "(you may have used the wrong program for this task)\n"
msgstr ""
"(m�glicherweise haben Sie das falsche Programm f�r diese Aufgabe benutzt)\n"
@@ -42,7 +43,7 @@ msgstr "nein"
msgid "nN"
msgstr "nN"
-#: g10/keyedit.c:564 util/miscutil.c:308
+#: g10/keyedit.c:580 util/miscutil.c:308
msgid "quit"
msgstr "quit"
@@ -242,21 +243,78 @@ msgstr "Netzwerkfehler"
msgid "not encrypted"
msgstr "nicht verschl�sselt"
-#: util/logger.c:218
+#: util/errors.c:103
+msgid "not processed"
+msgstr "nicht bearbeitet"
+
+#: util/logger.c:224
#, c-format
msgid "... this is a bug (%s:%d:%s)\n"
msgstr "... dies ist ein Bug (Programmfehler) (%s:%d:%s)\n"
-#: util/logger.c:224
+#: util/logger.c:230
#, c-format
msgid "you found a bug ... (%s:%d)\n"
msgstr "Sie haben eine Bug (Programmfehler) gefunden ... (%s:%d)\n"
-#: cipher/random.c:452
+#: cipher/random.c:311 g10/import.c:127 g10/keygen.c:1150
+#, c-format
+msgid "can't open `%s': %s\n"
+msgstr "'%s' kann nicht ge�ffnet werden: %s\n"
+
+#: cipher/random.c:315
+#, c-format
+msgid "can't stat `%s': %s\n"
+msgstr "Status von '%s' ist nicht feststellbar: %s\n"
+
+#: cipher/random.c:320
+#, c-format
+msgid "`%s' is not a regular file - ignored\n"
+msgstr "'%s' ist keine normale Datei - sie bleibt unbeachtet\n"
+
+#: cipher/random.c:325
+msgid "note: random_seed file is empty\n"
+msgstr "Hinweis: 'random_seed'-Datei ist leer\n"
+
+#: cipher/random.c:331
+msgid "warning: invalid size of random_seed file - not used\n"
+msgstr ""
+"Warnung: Falsche Gr��e der 'random_seed'-Datei - sie wird nicht verwendet\n"
+
+#: cipher/random.c:339
+#, c-format
+msgid "can't read `%s': %s\n"
+msgstr "'%s' ist unlesbar: %s\n"
+
+#: cipher/random.c:377
+msgid "note: random_seed file not updated\n"
+msgstr "Hinweis: 'random_seed'-Datei bleibt unver�ndert\n"
+
+#: cipher/random.c:397
+#, c-format
+msgid "can't create `%s': %s\n"
+msgstr "'%s' kann nicht erzeugt werden: %s\n"
+
+#: cipher/random.c:404
+#, c-format
+msgid "can't write `%s': %s\n"
+msgstr "kann '%s' nicht schreiben: %s\n"
+
+#: cipher/random.c:407
+#, c-format
+msgid "can't close `%s': %s\n"
+msgstr "kann '%s' nicht schliessen: %s\n"
+
+#: cipher/random.c:418
+#, c-format
+msgid "too many random bits requested; the limit is %d\n"
+msgstr "Zu viele Zufallswerte angefordert: Die Grenze liegt bei %d\n"
+
+#: cipher/random.c:647
msgid "WARNING: using insecure random number generator!!\n"
msgstr "WARNUNG: Der Zufallsgenerator erzeugt keine echten Zufallszahlen!\n"
-#: cipher/random.c:453
+#: cipher/random.c:648
msgid ""
"The random number generator is only a kludge to let\n"
"it run - it is in no way a strong RNG!\n"
@@ -270,7 +328,7 @@ msgstr ""
"BENUTZEN SIE DIE DURCH DIESES PROGRAMM ERZEUGTEN DATEN NICHT!\n"
"\n"
-#: cipher/rndlinux.c:135
+#: cipher/rndlinux.c:141
#, c-format
msgid ""
"\n"
@@ -282,7 +340,7 @@ msgstr ""
"Arbeiten durch, damit das Betriebssystem weitere Entropie sammeln kann!\n"
"(Es werden noch %d Byte ben�tigt.)\n"
-#: g10/g10.c:185
+#: g10/g10.c:195
msgid ""
"@Commands:\n"
" "
@@ -290,135 +348,139 @@ msgstr ""
"@Befehle:\n"
" "
-#: g10/g10.c:187
+#: g10/g10.c:197
msgid "|[file]|make a signature"
msgstr "|[Datei]|Eine Unterschrift erzeugen"
-#: g10/g10.c:188
+#: g10/g10.c:198
msgid "|[file]|make a clear text signature"
msgstr "|[Datei]|Eine Klartextunterschrift erzeugen"
-#: g10/g10.c:189
+#: g10/g10.c:199
msgid "make a detached signature"
msgstr "Eine abgetrennte Unterschrift erzeugen"
-#: g10/g10.c:190
+#: g10/g10.c:200
msgid "encrypt data"
msgstr "Daten verschl�sseln"
-#: g10/g10.c:191
+#: g10/g10.c:201
msgid "encryption only with symmetric cipher"
msgstr "Daten symmetrisch verschl�sseln"
-#: g10/g10.c:192
+#: g10/g10.c:202
msgid "store only"
msgstr "Nur speichern"
-#: g10/g10.c:193
+#: g10/g10.c:203
msgid "decrypt data (default)"
msgstr "Daten entschl�sseln (Voreinstellung)"
-#: g10/g10.c:194
+#: g10/g10.c:204
msgid "verify a signature"
msgstr "Signatur pr�fen"
-#: g10/g10.c:195
+#: g10/g10.c:206
msgid "list keys"
msgstr "Liste der Schl�ssel"
-#: g10/g10.c:197
+#: g10/g10.c:208
msgid "list keys and signatures"
msgstr "Liste der Schl�ssel und ihrer Signaturen"
-#: g10/g10.c:198
+#: g10/g10.c:209
msgid "check key signatures"
msgstr "Signaturen der Schl�ssel pr�fen"
-#: g10/g10.c:199
+#: g10/g10.c:210
msgid "list keys and fingerprints"
msgstr "Liste der Schl�ssel und ihrer \"Fingerabdr�cke\""
-#: g10/g10.c:200
+#: g10/g10.c:211
msgid "list secret keys"
msgstr "Liste der geheimen Schl�ssel"
-#: g10/g10.c:201
+#: g10/g10.c:212
msgid "generate a new key pair"
msgstr "Ein neues Schl�sselpaar erzeugen"
-#: g10/g10.c:202
+#: g10/g10.c:213
msgid "remove key from the public keyring"
-msgstr "Schl�ssel entfernen"
+msgstr "Schl�ssel aus dem �ff. Schl�sselbund entfernen"
-#: g10/g10.c:203
+#: g10/g10.c:215
+msgid "remove key from the secret keyring"
+msgstr "Schl�ssel aus dem geh. Schl�sselbund entfernen"
+
+#: g10/g10.c:216
msgid "sign a key"
msgstr "Schl�ssel signieren"
-#: g10/g10.c:204
+#: g10/g10.c:217
msgid "sign a key locally"
msgstr "Schl�ssel nur auf diesem Rechner signieren"
-#: g10/g10.c:205
+#: g10/g10.c:218
msgid "sign or edit a key"
-msgstr "Unterschreiben o. Bearbeiten eines Schl�ssels"
+msgstr "Unterschreiben oder Bearbeiten eines Schl."
-#: g10/g10.c:206
+#: g10/g10.c:219
msgid "generate a revocation certificate"
msgstr "Ein Schl�sselwiderruf-Zertifikat erzeugen"
-#: g10/g10.c:207
+#: g10/g10.c:220
msgid "export keys"
msgstr "Schl�ssel exportieren"
-#: g10/g10.c:208
+#: g10/g10.c:221
msgid "export keys to a key server"
msgstr "Schl�ssel zu einem Schl�.server exportieren"
-#: g10/g10.c:209
+#: g10/g10.c:222
msgid "import keys from a key server"
msgstr "Schl�ssel von einem Schl�.server importieren"
-#: g10/g10.c:212
+#: g10/g10.c:226
msgid "import/merge keys"
msgstr "Schl�ssel importieren/kombinieren"
-#: g10/g10.c:214
+#: g10/g10.c:228
msgid "list only the sequence of packets"
msgstr "Lediglich Struktur der Datenpakete anzeigen"
-#: g10/g10.c:216
+#: g10/g10.c:230
msgid "export the ownertrust values"
msgstr "Exportieren der \"Owner trust\" Werte"
-#: g10/g10.c:218
+#: g10/g10.c:232
msgid "import ownertrust values"
msgstr "Importieren der \"Owner trust\" Werte"
-#: g10/g10.c:220
+#: g10/g10.c:234
msgid "update the trust database"
msgstr "�ndern der \"Trust\"-Datenbank"
-#: g10/g10.c:222
+#: g10/g10.c:236
msgid "|[NAMES]|check the trust database"
msgstr "|[NAMEN]|�berpr�fen der \"Trust\"-Datenbank"
-#: g10/g10.c:223
+#: g10/g10.c:237
msgid "fix a corrupted trust database"
msgstr "Reparieren einer besch�digten \"Trust\"-Datenb."
-#: g10/g10.c:224
+#: g10/g10.c:238
msgid "De-Armor a file or stdin"
msgstr "Datei oder stdin von der ASCII-H�lle befreien"
-#: g10/g10.c:225
+#: g10/g10.c:240
msgid "En-Armor a file or stdin"
msgstr "Datei oder stdin in eine ASCII-H�lle einpacken"
-#: g10/g10.c:226
+#: g10/g10.c:242
msgid "|algo [files]|print message digests"
msgstr "|algo [Dateien]|Message-Digests f�r die Dateien ausgeben"
-#: g10/g10.c:230
+#: g10/g10.c:246
msgid ""
"@\n"
"Options:\n"
@@ -428,172 +490,161 @@ msgstr ""
"Optionen:\n"
" "
-#: g10/g10.c:232
+#: g10/g10.c:248
msgid "create ascii armored output"
msgstr "Ausgabe mit ASCII-H�lle versehen"
-#: g10/g10.c:233
+#: g10/g10.c:250
msgid "|NAME|encrypt for NAME"
msgstr "|NAME|Verschl�sseln f�r NAME"
-#: g10/g10.c:236
+#: g10/g10.c:253
msgid "|NAME|use NAME as default recipient"
msgstr "|NAME|NAME als voreingestellten Empf�nger benutzen"
-#: g10/g10.c:238
+#: g10/g10.c:255
msgid "use the default key as default recipient"
msgstr ""
"Den Standardschl�ssel als voreingestellten\n"
"Empf�nger benutzen"
-#: g10/g10.c:242
+#: g10/g10.c:259
msgid "use this user-id to sign or decrypt"
msgstr "Mit dieser User-ID signieren"
-#: g10/g10.c:243
+#: g10/g10.c:260
msgid "|N|set compress level N (0 disables)"
msgstr "Kompressionsstufe auf N setzen (0=keine)"
-#: g10/g10.c:245
+#: g10/g10.c:262
msgid "use canonical text mode"
msgstr "Textmodus benutzen"
-#: g10/g10.c:246
+#: g10/g10.c:263
msgid "use as output file"
msgstr "Als Ausgabedatei benutzen"
-#: g10/g10.c:247
+#: g10/g10.c:264
msgid "verbose"
msgstr "Detaillierte Informationen"
-#: g10/g10.c:248
+#: g10/g10.c:265
msgid "be somewhat more quiet"
msgstr "Etwas weniger Infos"
-#: g10/g10.c:249
+#: g10/g10.c:266
msgid "don't use the terminal at all"
msgstr "das Terminal gar nicht benutzen"
-#: g10/g10.c:250
+#: g10/g10.c:267
msgid "force v3 signatures"
msgstr "v3 Signaturen erzwingen"
-#: g10/g10.c:251
+#: g10/g10.c:268
msgid "always use a MDC for encryption"
msgstr "Beim Verschl�sseln ein Siegel (MDC) verwenden"
-#: g10/g10.c:252
+#: g10/g10.c:269
msgid "do not make any changes"
msgstr "Keine wirklichen �nderungen durchf�hren"
#. { oInteractive, "interactive", 0, N_("prompt before overwriting") },
-#: g10/g10.c:254
+#: g10/g10.c:271
msgid "batch mode: never ask"
msgstr "Stapelmodus: Keine Abfragen"
-#: g10/g10.c:255
+#: g10/g10.c:272
msgid "assume yes on most questions"
msgstr "\"Ja\" als Standardantwort annehmen"
-#: g10/g10.c:256
+#: g10/g10.c:273
msgid "assume no on most questions"
msgstr "\"Nein\" als Standardantwort annehmen"
-#: g10/g10.c:257
+#: g10/g10.c:274
msgid "add this keyring to the list of keyrings"
msgstr "Als �ffentlichen Schl�sselbund mitbenutzen"
-#: g10/g10.c:258
+#: g10/g10.c:275
msgid "add this secret keyring to the list"
msgstr "Als geheimen Schl�sselbund mitbenutzen"
-#: g10/g10.c:259
+#: g10/g10.c:276
msgid "|NAME|use NAME as default secret key"
msgstr "|NAME|NAME als voreingestellten Schl�ssel benutzen"
-#: g10/g10.c:260
+#: g10/g10.c:277
msgid "|HOST|use this keyserver to lookup keys"
msgstr "|HOST|Schl�ssel bei diesem Server nachschlagen"
-#: g10/g10.c:261
+#: g10/g10.c:278
msgid "|NAME|set terminal charset to NAME"
msgstr "|NAME|Terminalzeichensatz NAME benutzen"
-#: g10/g10.c:262
+#: g10/g10.c:279
msgid "read options from file"
msgstr "Optionen aus der Datei lesen"
-#: g10/g10.c:264
-msgid "set debugging flags"
-msgstr "Debug-Flags einschalten"
-
-#: g10/g10.c:265
-msgid "enable full debugging"
-msgstr "Alle Debug-Flags einschalten"
-
-#: g10/g10.c:266
+#: g10/g10.c:283
msgid "|FD|write status info to this FD"
msgstr "|FD|Statusinfo auf FD (Dateihandle) ausgeben"
-#: g10/g10.c:267
-msgid "do not write comment packets"
-msgstr "Keine Kommentarpakete schreiben"
-
-#: g10/g10.c:268
-msgid "(default is 1)"
-msgstr "Ben�tigte Vollvertrauen (Voreinstellung 1)"
-
-#: g10/g10.c:269
-msgid "(default is 3)"
-msgstr "Ben�tigte Teilvertrauen (Voreinstellung 3)"
-
-#: g10/g10.c:271
+#: g10/g10.c:288
msgid "|FILE|load extension module FILE"
msgstr "|DATEI|Erweiterungsmodul DATEI laden"
-#: g10/g10.c:272
+#: g10/g10.c:289
msgid "emulate the mode described in RFC1991"
msgstr "Den in RFC1991 beschriebenen Modus nachahmen"
-#: g10/g10.c:273
+#: g10/g10.c:290
msgid "set all packet, cipher and digest options to OpenPGP behavior"
msgstr ""
"alle Paket-, Verschl�sselungs- und\n"
"Hashoptionen auf OpenPGP-Verhalten einstellen"
-#: g10/g10.c:274
+#: g10/g10.c:291
msgid "|N|use passphrase mode N"
msgstr "|N|Verwenden des Mantra-Modus N"
-#: g10/g10.c:276
+#: g10/g10.c:293
msgid "|NAME|use message digest algorithm NAME for passphrases"
msgstr "|NAME|Hashverfahren NAME f�r Mantras benutzen"
-#: g10/g10.c:278
+#: g10/g10.c:295
msgid "|NAME|use cipher algorithm NAME for passphrases"
msgstr "|NAME|Verschl�.verfahren NAME f�r Mantras benutzen"
-#: g10/g10.c:279
+#: g10/g10.c:296
msgid "|NAME|use cipher algorithm NAME"
msgstr "|NAME|Verschl�.verfahren NAME benutzen"
-#: g10/g10.c:280
+#: g10/g10.c:297
msgid "|NAME|use message digest algorithm NAME"
msgstr "|NAME|Hashverfahren NAME benutzen"
-#: g10/g10.c:281
+#: g10/g10.c:298
msgid "|N|use compress algorithm N"
msgstr "|N|Komprimierverfahren N benutzen"
-#: g10/g10.c:282
+#: g10/g10.c:299
msgid "throw keyid field of encrypted packets"
msgstr "Entferne Empf�nger-ID verschl�sselter Pakete"
-#: g10/g10.c:283
+#: g10/g10.c:300
msgid "|NAME=VALUE|use this notation data"
msgstr "|NAME=WERT|verwende diese \"notation\"-Daten"
-#: g10/g10.c:285
+#: g10/g10.c:303
+msgid ""
+"@\n"
+"(See the man page for a complete listing of all commands and options)\n"
+msgstr ""
+"@\n"
+"(Auf der \"man\"-Seite ist eine vollst�ndige Liste aller Kommandos und "
+"Optionen)\n"
+
+#: g10/g10.c:306
msgid ""
"@\n"
"Examples:\n"
@@ -613,17 +664,17 @@ msgstr ""
" --list-keys [Namen] Schl�ssel anzeigen\n"
" --fingerprint [Namen] \"Fingerabdr�cke\" anzeigen\n"
-#: g10/g10.c:370
+#: g10/g10.c:399
msgid "Please report bugs to <[email protected]>.\n"
msgstr ""
"Berichte �ber Bugs (Programmfehler) bitte an <[email protected]>.\n"
"Sinn- oder Schreibfehler in den deutschen Texten bitte an <[email protected]>.\n"
-#: g10/g10.c:374
+#: g10/g10.c:403
msgid "Usage: gpg [options] [files] (-h for help)"
msgstr "Aufruf: gpg [Optionen] [Dateien] (-h f�r Hilfe)"
-#: g10/g10.c:377
+#: g10/g10.c:406
msgid ""
"Syntax: gpg [options] [files]\n"
"sign, check, encrypt or decrypt\n"
@@ -633,7 +684,7 @@ msgstr ""
"Signieren, pr�fen, verschl�sseln, entschl�sseln\n"
"Die voreingestellte Operation ist abh�ngig von den Eingabedaten\n"
-#: g10/g10.c:382
+#: g10/g10.c:413
msgid ""
"\n"
"Supported algorithms:\n"
@@ -641,184 +692,184 @@ msgstr ""
"\n"
"Unterst�tzte Verfahren:\n"
-#: g10/g10.c:456
+#: g10/g10.c:492
msgid "usage: gpg [options] "
msgstr "Aufruf: gpg [Optionen] "
-#: g10/g10.c:509
+#: g10/g10.c:545
msgid "conflicting commands\n"
msgstr "Widerspr�chliche Befehle\n"
-#: g10/g10.c:644
+#: g10/g10.c:687
#, c-format
msgid "NOTE: no default option file `%s'\n"
msgstr "Hinweis: Keine voreingestellte Optionendatei '%s' vorhanden\n"
-#: g10/g10.c:648
+#: g10/g10.c:691
#, c-format
msgid "option file `%s': %s\n"
msgstr "Optionendatei '%s': %s\n"
-#: g10/g10.c:655
+#: g10/g10.c:698
#, c-format
msgid "reading options from `%s'\n"
msgstr "Optionen werden aus '%s' gelesen\n"
-#: g10/g10.c:835
+#: g10/g10.c:885
#, c-format
msgid "%s is not a valid character set\n"
msgstr "%s ist kein g�ltiger Zeichensatz.\n"
-#: g10/g10.c:892 g10/g10.c:901
+#: g10/g10.c:945 g10/g10.c:954
#, c-format
msgid "NOTE: %s is not for normal use!\n"
msgstr "Hinweis: %s ist nicht f�r den �blichen Gebrauch gedacht!\n"
-#: g10/g10.c:894
+#: g10/g10.c:947
#, c-format
msgid "%s not allowed with %s!\n"
msgstr "%s kann nicht zusammen mit %s verwendet werden!\n"
-#: g10/g10.c:897
+#: g10/g10.c:950
#, c-format
msgid "%s makes no sense with %s!\n"
msgstr "%s zusammen mit %s ist nicht sinnvoll!\n"
-#: g10/g10.c:916 g10/g10.c:928
+#: g10/g10.c:969 g10/g10.c:981
msgid "selected cipher algorithm is invalid\n"
msgstr "Das ausgew�hlte Verschl�sslungsverfahren ist ung�ltig\n"
-#: g10/g10.c:922 g10/g10.c:934
+#: g10/g10.c:975 g10/g10.c:987
msgid "selected digest algorithm is invalid\n"
msgstr "Das ausgew�hlte Hashverfahren ist ung�ltig\n"
-#: g10/g10.c:938
+#: g10/g10.c:991
msgid "the given policy URL is invalid\n"
msgstr "Die angegebene URL f�r Richtlinien ist ung�ltig\n"
-#: g10/g10.c:941
+#: g10/g10.c:994
#, c-format
msgid "compress algorithm must be in range %d..%d\n"
msgstr "Das Komprimierverfahren mu� im Bereich %d bis %d liegen\n"
-#: g10/g10.c:943
+#: g10/g10.c:996
msgid "completes-needed must be greater than 0\n"
msgstr "completes-needed m�ssen gr��er als 0 sein\n"
-#: g10/g10.c:945
+#: g10/g10.c:998
msgid "marginals-needed must be greater than 1\n"
msgstr "marginals-needed m�ssen gr��er als 1 sein\n"
-#: g10/g10.c:947
+#: g10/g10.c:1000
msgid "max-cert-depth must be in range 1 to 255\n"
msgstr "max-cert-depth mu� im Bereich 1 bis 255 liegen\n"
-#: g10/g10.c:950
+#: g10/g10.c:1003
msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
msgstr "Hinweis: Vom \"simple S2K\"-Modus (0) ist strikt abzuraten\n"
-#: g10/g10.c:954
+#: g10/g10.c:1007
msgid "invalid S2K mode; must be 0, 1 or 3\n"
msgstr "ung�ltiger \"simple S2K\"-Modus; Wert mu� 0, 1 oder 3 sein\n"
-#: g10/g10.c:1031
+#: g10/g10.c:1092
#, c-format
msgid "failed to initialize the TrustDB: %s\n"
msgstr "Die Trust-DB kann nicht initialisiert werden: %s\n"
-#: g10/g10.c:1037
+#: g10/g10.c:1098
msgid "--store [filename]"
msgstr "--store [Dateiname]"
-#: g10/g10.c:1044
+#: g10/g10.c:1105
msgid "--symmetric [filename]"
msgstr "--symmetric [Dateiname]"
-#: g10/g10.c:1052
+#: g10/g10.c:1113
msgid "--encrypt [filename]"
msgstr "--encrypt [Dateiname]"
-#: g10/g10.c:1065
+#: g10/g10.c:1126
msgid "--sign [filename]"
msgstr "--sign [Dateiname]"
-#: g10/g10.c:1078
+#: g10/g10.c:1139
msgid "--sign --encrypt [filename]"
msgstr "--sign --encrypt [Dateiname]"
-#: g10/g10.c:1092
+#: g10/g10.c:1153
msgid "--clearsign [filename]"
msgstr "--clearsign [Dateiname]"
-#: g10/g10.c:1104
+#: g10/g10.c:1170
msgid "--decrypt [filename]"
msgstr "--decrypt [Dateiname]"
-#: g10/g10.c:1112
+#: g10/g10.c:1178
msgid "--sign-key user-id"
msgstr "--sign-key User-ID"
-#: g10/g10.c:1120
+#: g10/g10.c:1186
msgid "--lsign-key user-id"
msgstr "--lsign-key User-ID"
-#: g10/g10.c:1128
+#: g10/g10.c:1194
msgid "--edit-key user-id [commands]"
msgstr "--edit-key User-ID [Befehle]"
-#: g10/g10.c:1144
+#: g10/g10.c:1210
msgid "--delete-secret-key user-id"
msgstr "--delete-secret-key User-ID"
-#: g10/g10.c:1147
+#: g10/g10.c:1213
msgid "--delete-key user-id"
msgstr "--delete-key User-ID"
-#: g10/encode.c:259 g10/g10.c:1171 g10/sign.c:366
+#: g10/encode.c:260 g10/g10.c:1250 g10/sign.c:373
#, c-format
msgid "can't open %s: %s\n"
msgstr "'%s' kann nicht ge�ffnet werden: %s\n"
-#: g10/g10.c:1182
+#: g10/g10.c:1265
msgid "-k[v][v][v][c] [user-id] [keyring]"
msgstr "-k[v][v][v][c] [User-ID] [Schl�sselbund]"
-#: g10/g10.c:1243
+#: g10/g10.c:1331
#, c-format
msgid "dearmoring failed: %s\n"
msgstr "Entfernen der ASCII-H�lle ist fehlgeschlagen: %s\n"
-#: g10/g10.c:1251
+#: g10/g10.c:1339
#, c-format
msgid "enarmoring failed: %s\n"
msgstr "Anbringen der ASCII-H�lle ist fehlgeschlagen: %s\n"
-#: g10/g10.c:1319
+#: g10/g10.c:1407
#, c-format
msgid "invalid hash algorithm `%s'\n"
msgstr "Ung�ltiges Hashverfahren '%s'\n"
-#: g10/g10.c:1400
+#: g10/g10.c:1488
msgid "[filename]"
msgstr "[Dateiname]"
-#: g10/g10.c:1404
+#: g10/g10.c:1492
msgid "Go ahead and type your message ...\n"
msgstr "Auf geht's - Botschaft eintippen ...\n"
-#: g10/decrypt.c:59 g10/g10.c:1407 g10/verify.c:66
+#: g10/decrypt.c:59 g10/g10.c:1495 g10/verify.c:68 g10/verify.c:113
#, c-format
msgid "can't open `%s'\n"
msgstr "'%s' kann nicht ge�ffnet werden\n"
-#: g10/g10.c:1576
+#: g10/g10.c:1665
msgid ""
"the first character of a notation name must be a letter or an underscore\n"
msgstr ""
"Das erste Zeichen eines \"notation\"-Namens mu� ein Buchstabe oder\n"
"ein Unterstrich sein\n"
-#: g10/g10.c:1582
+#: g10/g10.c:1671
msgid ""
"a notation name must have only letters, digits, dots or underscores and end "
"with an '='\n"
@@ -826,84 +877,88 @@ msgstr ""
"Ein \"notation\"-Name darf nur Buchstaben, Zahlen, Punkte oder Unterstriche "
"enthalten und mu� mit einem '=' enden\n"
-#: g10/g10.c:1588
+#: g10/g10.c:1677
msgid "dots in a notation name must be surrounded by other characters\n"
msgstr ""
"Punkte in einem \"notation\"-Namen m�ssen von anderen Zeichen umgeben sein\n"
-#: g10/g10.c:1596
+#: g10/g10.c:1685
msgid "a notation value must not use any control characters\n"
msgstr "Ein \"notation\"-Wert darf keine Kontrollzeichen verwenden\n"
-#: g10/armor.c:296
+#: g10/armor.c:302
#, c-format
msgid "armor: %s\n"
msgstr "ASCII-H�lle: %s\n"
-#: g10/armor.c:319
+#: g10/armor.c:331
msgid "invalid armor header: "
msgstr "Ung�ltige ASCII-H�lle"
-#: g10/armor.c:326
+#: g10/armor.c:338
msgid "armor header: "
msgstr "ASCII-H�lle: "
-#: g10/armor.c:337
+#: g10/armor.c:349
msgid "invalid clearsig header\n"
msgstr "Ung�ltige Klartextsignatur-Einleitung\n"
-#: g10/armor.c:389
+#: g10/armor.c:401
msgid "nested clear text signatures\n"
msgstr "verschachtelte Klartextunterschriften\n"
-#: g10/armor.c:500
+#: g10/armor.c:525
msgid "invalid dash escaped line: "
msgstr "Ung�ltige mit Bindestrich \"escapte\" Zeile: "
-#: g10/armor.c:512
+#: g10/armor.c:537
msgid "unexpected armor:"
msgstr "Unerwartete ASCII-H�lle:"
-#: g10/armor.c:629
+#: g10/armor.c:654
#, c-format
msgid "invalid radix64 character %02x skipped\n"
msgstr "Ung�ltiges \"radix64\" Zeichen %02x ignoriert\n"
-#: g10/armor.c:672
+#: g10/armor.c:697
msgid "premature eof (no CRC)\n"
msgstr "vorzeitiges Dateiende (keine Pr�fsumme)\n"
-#: g10/armor.c:706
+#: g10/armor.c:731
msgid "premature eof (in CRC)\n"
msgstr "vorzeitiges Dateiende (innerhalb der Pr�fsumme)\n"
-#: g10/armor.c:710
+#: g10/armor.c:735
msgid "malformed CRC\n"
msgstr "Falsch aufgebaute Pr�fsumme\n"
-#: g10/armor.c:714
+#: g10/armor.c:739
#, c-format
msgid "CRC error; %06lx - %06lx\n"
msgstr "Pr�fsummenfehler; %06lx - %06lx\n"
-#: g10/armor.c:731
+#: g10/armor.c:756
msgid "premature eof (in Trailer)\n"
msgstr "vorzeitiges Dateiende (im Nachsatz)\n"
-#: g10/armor.c:735
+#: g10/armor.c:760
msgid "error in trailer line\n"
msgstr "Fehler in der Nachsatzzeile\n"
-#: g10/armor.c:1001
+#: g10/armor.c:912
+msgid "For info see http://www.gnupg.org"
+msgstr "Weitere Infos: siehe http://www.gnupg.org"
+
+#: g10/armor.c:1033
msgid "no valid OpenPGP data found.\n"
msgstr "Keine g�ltigen OpenPGP-Daten gefunden.\n"
-#: g10/armor.c:1005
+#: g10/armor.c:1038
#, c-format
msgid "invalid armor: line longer than %d characters\n"
msgstr "ung�ltige ASCII-H�lle: Zeile ist l�nger als %d Zeichen\n"
-#: g10/armor.c:1009
+#: g10/armor.c:1042
msgid ""
"quoted printable character in armor - probably a buggy MTA has been used\n"
msgstr ""
@@ -920,13 +975,43 @@ msgstr " Fingerabdruck:"
msgid "Fingerprint:"
msgstr "Fingerabdruck:"
+#: g10/pkclist.c:116
+msgid "No reason specified"
+msgstr "Kein Grund angegeben"
+
+#: g10/pkclist.c:118
+#, fuzzy
+msgid "Key is superseeded"
+msgstr "Schl�ssel ist �berholt"
+
+#: g10/pkclist.c:120
+msgid "Key has been compromised"
+msgstr "Hinweis: Dieser Schl�ssel ist nicht mehr sicher"
+
+#: g10/pkclist.c:122
+msgid "Key is no longer used"
+msgstr "Schl�ssel wird nicht mehr benutzt"
+
+#: g10/pkclist.c:124
+#, fuzzy
+msgid "User ID is no longer valid"
+msgstr "User-ID ist nicht mehr g�ltig"
+
+#: g10/pkclist.c:128
+msgid "Reason for revocation: "
+msgstr "Grund f�r Widerruf: "
+
+#: g10/pkclist.c:145
+msgid "Revocation comment: "
+msgstr "Widerruf-Bemerkung: "
+
# valid user replies (not including 1..4)
#. a string with valid answers
-#: g10/pkclist.c:197
+#: g10/pkclist.c:303
msgid "sSmMqQ"
msgstr "sSmMqQ"
-#: g10/pkclist.c:201
+#: g10/pkclist.c:307
#, c-format
msgid ""
"No trust value assigned to %lu:\n"
@@ -935,7 +1020,7 @@ msgstr ""
"Es ist kein \"Owner trust\" f�r %lu definiert:\n"
"%4u%c/%08lX %s \""
-#: g10/pkclist.c:213
+#: g10/pkclist.c:319
msgid ""
"Please decide how far you trust this user to correctly\n"
"verify other users' keys (by looking at passports,\n"
@@ -949,7 +1034,7 @@ msgid ""
msgstr ""
"Bitte entscheiden Sie, in wieweit Sie diesem User zutrauen,\n"
"den Schl�ssel eines anderen Users korrekt zu pr�fen (Vergleich mit\n"
-"Lictbildausweisen, Vergleich der Fingerabdr�cke aus unterschiedlichen\n"
+"Lichtbildausweisen, Vergleich der Fingerabdr�cke aus unterschiedlichen\n"
"Quellen ...)?\n"
"\n"
" 1 = Wei� nicht so recht\n"
@@ -958,23 +1043,23 @@ msgstr ""
" 4 = Ich vertraue ihm vollst�ndig\n"
" s = Bitte weitere Information anzeigen\n"
-#: g10/pkclist.c:222
+#: g10/pkclist.c:328
msgid " m = back to the main menu\n"
msgstr " m = Zur�ck zum Men�\n"
-#: g10/pkclist.c:224
+#: g10/pkclist.c:330
msgid " q = quit\n"
msgstr " q = verlassen\n"
-#: g10/pkclist.c:230
+#: g10/pkclist.c:336
msgid "Your decision? "
msgstr "Ihre Auswahl? "
-#: g10/pkclist.c:252
+#: g10/pkclist.c:358
msgid "Certificates leading to an ultimately trusted key:\n"
msgstr "Zertifikate f�hren zu einem letztlich vertrauensw�rdigen Schl�ssel:\n"
-#: g10/pkclist.c:323
+#: g10/pkclist.c:429
msgid ""
"Could not find a valid trust path to the key. Let's see whether we\n"
"can assign some missing owner trust values.\n"
@@ -985,7 +1070,7 @@ msgstr ""
"ermitteln k�nnen.\n"
"\n"
-#: g10/pkclist.c:329
+#: g10/pkclist.c:435
msgid ""
"No path leading to one of our keys found.\n"
"\n"
@@ -993,7 +1078,7 @@ msgstr ""
"Kein Pfad f�hrt zu einen unserer Schl�sseln.\n"
"\n"
-#: g10/pkclist.c:331
+#: g10/pkclist.c:437
msgid ""
"No certificates with undefined trust found.\n"
"\n"
@@ -1001,7 +1086,7 @@ msgstr ""
"Keine Zertifikate mit undefinierten Vertrauen gefunden.\n"
"\n"
-#: g10/pkclist.c:333
+#: g10/pkclist.c:439
msgid ""
"No trust values changed.\n"
"\n"
@@ -1009,38 +1094,38 @@ msgstr ""
"Keine \"trust\" Werte ge�ndert.\n"
"\n"
-#: g10/pkclist.c:350
+#: g10/pkclist.c:457
#, c-format
msgid "key %08lX: key has been revoked!\n"
msgstr "Schl�ssel %08lX: Schl�ssel wurde widerrufen\n"
-#: g10/pkclist.c:356 g10/pkclist.c:366 g10/pkclist.c:475
+#: g10/pkclist.c:464 g10/pkclist.c:476 g10/pkclist.c:598
msgid "Use this key anyway? "
msgstr "Diesen Schl�ssel trotzdem benutzen?"
-#: g10/pkclist.c:360
+#: g10/pkclist.c:469
#, c-format
msgid "key %08lX: subkey has been revoked!\n"
msgstr "Schl�ssel %08lX: Unterschl�ssel wurde widerrufen\n"
-#: g10/pkclist.c:390
+#: g10/pkclist.c:512
#, c-format
msgid "%08lX: key has expired\n"
msgstr "%08lX: Schl�ssel ist verfallen!\n"
-#: g10/pkclist.c:396
+#: g10/pkclist.c:518
#, c-format
msgid "%08lX: no info to calculate a trust probability\n"
msgstr ""
"%08lX: Keine Infos zur Berechnung der Vertrauenswahrscheinlichkeit "
"vorgefunden\n"
-#: g10/pkclist.c:410
+#: g10/pkclist.c:533
#, c-format
msgid "%08lX: We do NOT trust this key\n"
msgstr "%08lX: Wir haben KEIN Vertrauen zu diesem Schl�ssel!\n"
-#: g10/pkclist.c:416
+#: g10/pkclist.c:539
#, c-format
msgid ""
"%08lX: It is not sure that this key really belongs to the owner\n"
@@ -1049,18 +1134,18 @@ msgstr ""
"%08lX: Es ist nicht sicher, da� dieser Schl�ssel wirklich dem vorgeblichen\n"
"Besitzer geh�rt, aber er wird trotzdem akzeptiert\n"
-#: g10/pkclist.c:422
+#: g10/pkclist.c:545
msgid "This key probably belongs to the owner\n"
msgstr ""
"Dieser Schl�ssel geh�rt h�chstwahrscheinlich dem angegebenen Besitzer\n"
-#: g10/pkclist.c:427
+#: g10/pkclist.c:550
msgid "This key belongs to us\n"
msgstr ""
"Dieser Schl�ssel geh�rt uns (da wir n�mlich den geheimen Schl�ssel dazu "
"haben)\n"
-#: g10/pkclist.c:470
+#: g10/pkclist.c:593
msgid ""
"It is NOT certain that the key belongs to its owner.\n"
"If you *really* know what you are doing, you may answer\n"
@@ -1071,69 +1156,69 @@ msgstr ""
"Wenn Sie *wirklich* wissen, was Sie tun, k�nnen Sie die n�chste\n"
"Frage mit ja beantworten\n"
-#: g10/pkclist.c:484 g10/pkclist.c:507
+#: g10/pkclist.c:607 g10/pkclist.c:630
msgid "WARNING: Using untrusted key!\n"
msgstr "WARNUNG: Ein Schl�ssel ohne gesichertes Vertrauen wird benutzt!\n"
-#: g10/pkclist.c:528
+#: g10/pkclist.c:651
msgid "WARNING: This key has been revoked by its owner!\n"
msgstr "WARNUNG: Dieser Schl�ssel wurde von seinem Besitzer widerrufen!\n"
-#: g10/pkclist.c:529
+#: g10/pkclist.c:652
msgid " This could mean that the signature is forgery.\n"
msgstr " Das k�nnte bedeuten, da� die Signatur gef�lscht ist.\n"
-#: g10/pkclist.c:533
+#: g10/pkclist.c:657
msgid "WARNING: This subkey has been revoked by its owner!\n"
msgstr "WARNUNG: Dieser Unterschl�ssel wurde von seinem Besitzer widerrufen!\n"
-#: g10/pkclist.c:554
+#: g10/pkclist.c:679
msgid "Note: This key has expired!\n"
msgstr "Hinweis: Dieser Schl�ssel ist verfallen!\n"
-#: g10/pkclist.c:562
+#: g10/pkclist.c:687
msgid "WARNING: This key is not certified with a trusted signature!\n"
msgstr "WARNUNG: Dieser Schl�ssel tr�gt keine vertrauensw�rdige Signatur!\n"
-#: g10/pkclist.c:564
+#: g10/pkclist.c:689
msgid ""
" There is no indication that the signature belongs to the owner.\n"
msgstr ""
" Es gibt keinen Hinweis, da� die Signatur wirklich dem vorgeblichen "
"Besitzer geh�rt.\n"
-#: g10/pkclist.c:581
+#: g10/pkclist.c:706
msgid "WARNING: We do NOT trust this key!\n"
msgstr "WARNUNG: Wir haben KEIN Vertrauen zu diesem Schl�ssel!\n"
-#: g10/pkclist.c:582
+#: g10/pkclist.c:707
msgid " The signature is probably a FORGERY.\n"
msgstr " Die Signatur ist wahrscheinlich eine F�LSCHUNG.\n"
-#: g10/pkclist.c:589
+#: g10/pkclist.c:714
msgid ""
"WARNING: This key is not certified with sufficiently trusted signatures!\n"
msgstr ""
"WARNUNG: Dieser Schl�ssel ist nicht durch hinreichend vertrauensw�rdige "
"Signaturen zertifiziert!\n"
-#: g10/pkclist.c:592
+#: g10/pkclist.c:717
msgid " It is not certain that the signature belongs to the owner.\n"
msgstr ""
" Es ist nicht sicher, da� die Signatur wirklich dem vorgeblichen "
"Besitzer geh�rt.\n"
-#: g10/pkclist.c:694 g10/pkclist.c:716 g10/pkclist.c:841 g10/pkclist.c:886
+#: g10/pkclist.c:819 g10/pkclist.c:841 g10/pkclist.c:967 g10/pkclist.c:1012
#, c-format
msgid "%s: skipped: %s\n"
msgstr "%s: �bersprungen: %s\n"
-#: g10/pkclist.c:702 g10/pkclist.c:868
+#: g10/pkclist.c:827 g10/pkclist.c:994
#, c-format
msgid "%s: skipped: public key already present\n"
msgstr "%s: �bersprungen: �ffentlicher Schl�ssel bereits vorhanden\n"
-#: g10/pkclist.c:729
+#: g10/pkclist.c:854
msgid ""
"You did not specify a user ID. (you may use \"-r\")\n"
"\n"
@@ -1141,99 +1226,104 @@ msgstr ""
"Sie gaben keine User-ID angegeben (Benutzen Sie die Option \"-r\").\n"
"\n"
-#: g10/pkclist.c:739
+#: g10/pkclist.c:864
msgid "Enter the user ID: "
msgstr "Geben Sie die User-ID ein: "
-#: g10/pkclist.c:751
+#: g10/pkclist.c:876
msgid "No such user ID.\n"
msgstr "Keine solche User-ID vorhanden.\n"
-#: g10/pkclist.c:756
+#: g10/pkclist.c:881
msgid "skipped: public key already set as default recipient\n"
msgstr ""
"�bersprungen: �ffentlicher Schl�ssel bereits als Standardempf�nger gesetzt\n"
-#: g10/pkclist.c:778
+#: g10/pkclist.c:904
msgid "Public key is disabled.\n"
msgstr "�ffentlicher Schl�ssel ist abgeschaltet.\n"
-#: g10/pkclist.c:785
+#: g10/pkclist.c:911
msgid "skipped: public key already set with --encrypt-to\n"
msgstr ""
"�bersprungen: �ffentlicher Schl�ssel bereits mittels --encrypt-to gesetzt\n"
-#: g10/pkclist.c:816
+#: g10/pkclist.c:942
#, c-format
msgid "unknown default recipient `%s'\n"
msgstr "Unbekannter voreingestellter Empf�nger '%s'\n"
-#: g10/pkclist.c:849
+#: g10/pkclist.c:975
#, c-format
msgid "%s: error checking key: %s\n"
msgstr "%s: Fehler beim Pr�fen des Schl�ssels: %s\n"
-#: g10/pkclist.c:854
+#: g10/pkclist.c:980
#, c-format
msgid "%s: skipped: public key is disabled\n"
msgstr "%s: �bersprungen: �ffentlicher Schl�ssel ist abgeschaltet\n"
-#: g10/pkclist.c:892
+#: g10/pkclist.c:1018
msgid "no valid addressees\n"
msgstr "Keine g�ltigen Adressaten\n"
-#: g10/keygen.c:122
+#: g10/keygen.c:175
msgid "writing self signature\n"
msgstr "Die Eigenbeglaubigung wird geschrieben\n"
-#: g10/keygen.c:160
+#: g10/keygen.c:213
msgid "writing key binding signature\n"
msgstr "Schreiben der \"key-binding\" Signatur\n"
-#: g10/keygen.c:386
+#: g10/keygen.c:261 g10/keygen.c:345
+#, c-format
+msgid "keysize invalid; using %u bits\n"
+msgstr "Ung�ltig Schl�ssell�nge; %u Bit werden verwendet\n"
+
+#: g10/keygen.c:266 g10/keygen.c:350
+#, c-format
+msgid "keysize rounded up to %u bits\n"
+msgstr "Schl�ssell�nge auf %u Bit aufgerundet\n"
+
+#: g10/keygen.c:456
msgid "Please select what kind of key you want:\n"
msgstr "Bitte w�hlen Sie, welche Art von Schl�ssel Sie m�chten:\n"
-#: g10/keygen.c:388
+#: g10/keygen.c:458
#, c-format
msgid " (%d) DSA and ElGamal (default)\n"
msgstr " (%d) DSA und ElGamal (voreingestellt)\n"
-#: g10/keygen.c:389
+#: g10/keygen.c:459
#, c-format
msgid " (%d) DSA (sign only)\n"
msgstr " (%d) DSA (nur signieren/beglaubigen)\n"
-#: g10/keygen.c:391
+#: g10/keygen.c:461
#, c-format
msgid " (%d) ElGamal (encrypt only)\n"
msgstr " (%d) ElGamal (nur verschl�sseln)\n"
-#: g10/keygen.c:392
+#: g10/keygen.c:462
#, c-format
msgid " (%d) ElGamal (sign and encrypt)\n"
msgstr " (%d) ElGamal (signieren/beglaubigen und verschl�sseln)\n"
-#: g10/keygen.c:394
-#, c-format
-msgid " (%d) ElGamal in a v3 packet\n"
-msgstr " (%d) ElGamal in einem v3-Paket\n"
-
-#: g10/keygen.c:399
+#: g10/keygen.c:465
msgid "Your selection? "
msgstr "Ihre Auswahl? "
-#: g10/keygen.c:409
+#: g10/keygen.c:475
msgid "Do you really want to create a sign and encrypt key? "
msgstr ""
"M�chten Sie wirklich einen Unterschriften-/Verschl�sselungschl�ssel "
"erzeugen? "
-#: g10/keygen.c:430
+#: g10/keygen.c:489
msgid "Invalid selection.\n"
msgstr "Ung�ltige Auswahl.\n"
-#: g10/keygen.c:442
+#: g10/keygen.c:501
#, c-format
msgid ""
"About to generate a new %s keypair.\n"
@@ -1246,15 +1336,15 @@ msgstr ""
" standard Schl�ssell�nge ist 1024 Bit\n"
" gr��te sinnvolle Schl�ssell�nge ist 2048 Bit\n"
-#: g10/keygen.c:449
+#: g10/keygen.c:508
msgid "What keysize do you want? (1024) "
msgstr "Welche Schl�ssell�nge w�nschen Sie? (1024) "
-#: g10/keygen.c:454
+#: g10/keygen.c:513
msgid "DSA only allows keysizes from 512 to 1024\n"
msgstr "DSA erlaubt nur Schl�ssell�ngen von 512 bis 1024\n"
-#: g10/keygen.c:456
+#: g10/keygen.c:515
msgid "keysize too small; 768 is smallest value allowed.\n"
msgstr "zu kurz; 768 ist die kleinste m�gliche Schl�ssell�nge.\n"
@@ -1266,12 +1356,12 @@ msgstr "zu kurz; 768 ist die kleinste m�gliche Schl�ssell�nge.\n"
#. * So, before you complain about this limitation, I suggest that
#. * you start a discussion with Marvin about this theme and then
#. * do whatever you want.
-#: g10/keygen.c:466
+#: g10/keygen.c:525
#, c-format
msgid "keysize too large; %d is largest value allowed.\n"
msgstr "Sch�sselgr��e zu hoch; %d ist der Maximalwert.\n"
-#: g10/keygen.c:471
+#: g10/keygen.c:530
msgid ""
"Keysizes larger than 2048 are not suggested because\n"
"computations take REALLY long!\n"
@@ -1279,11 +1369,11 @@ msgstr ""
"Schl�ssell�ngen gr��er als 2048 werden nicht empfohlen, da die\n"
"Berechnungen dann WIRKLICH lange brauchen!\n"
-#: g10/keygen.c:474
+#: g10/keygen.c:533
msgid "Are you sure that you want this keysize? "
msgstr "Sind Sie sicher, da� Sie diese Schl�ssell�nge w�nschen? "
-#: g10/keygen.c:475
+#: g10/keygen.c:534
msgid ""
"Okay, but keep in mind that your monitor and keyboard radiation is also very "
"vulnerable to attacks!\n"
@@ -1291,21 +1381,21 @@ msgstr ""
"Gut, aber bitte denken Sie auch daran, da� Monitor und Tastatur Daten "
"abstrahlen und diese leicht mitgelesen werden k�nnen.\n"
-#: g10/keygen.c:483
+#: g10/keygen.c:542
msgid "Do you really need such a large keysize? "
msgstr "Brauchen Sie wirklich einen derartig langen Schl�ssel? "
-#: g10/keygen.c:489
+#: g10/keygen.c:548
#, c-format
msgid "Requested keysize is %u bits\n"
msgstr "Die verlangte Schl�ssell�nge betr�gt %u Bit\n"
-#: g10/keygen.c:492 g10/keygen.c:496
+#: g10/keygen.c:551 g10/keygen.c:555
#, c-format
msgid "rounded up to %u bits\n"
msgstr "aufgerundet auf %u Bit\n"
-#: g10/keygen.c:509
+#: g10/keygen.c:603
msgid ""
"Please specify how long the key should be valid.\n"
" 0 = key does not expire\n"
@@ -1321,29 +1411,37 @@ msgstr ""
" <n>m = Schl�ssel verf�llt nach n Monaten\n"
" <n>y = Schl�ssel verf�llt nach n Jahren\n"
-#: g10/keygen.c:526
+#: g10/keygen.c:618
msgid "Key is valid for? (0) "
msgstr "Der Schl�ssel bleibt wie lange g�ltig? (0) "
-#: g10/keygen.c:547
+#: g10/keygen.c:623
msgid "invalid value\n"
msgstr "Ung�ltiger Wert.\n"
-#: g10/keygen.c:552
+#: g10/keygen.c:628
msgid "Key does not expire at all\n"
msgstr "Der Schl�ssel verf�llt nie.\n"
#. print the date when the key expires
-#: g10/keygen.c:558
+#: g10/keygen.c:634
#, c-format
msgid "Key expires at %s\n"
msgstr "Der Schl�ssel verf�llt am %s\n"
-#: g10/keygen.c:563
+#: g10/keygen.c:637
+msgid ""
+"Your system can't display dates beyond 2038.\n"
+"However, it will be correctly handled up to 2106.\n"
+msgstr ""
+"Ihr Rechner kann Daten jenseits des Jahres 2038 nicht anzeigen.\n"
+"Trotzdem werden Daten bis 2106 korrekt verarbeitet.\n"
+
+#: g10/keygen.c:642
msgid "Is this correct (y/n)? "
msgstr "Ist dies richtig? (j/n) "
-#: g10/keygen.c:606
+#: g10/keygen.c:685
msgid ""
"\n"
"You need a User-ID to identify your key; the software constructs the user "
@@ -1359,44 +1457,44 @@ msgstr ""
" \"Heinrich Heine (Der Dichter) <[email protected]>\"\n"
"\n"
-#: g10/keygen.c:617
+#: g10/keygen.c:697
msgid "Real name: "
msgstr "Ihr Name (\"Vorname Nachname\"): "
-#: g10/keygen.c:621
+#: g10/keygen.c:701
msgid "Invalid character in name\n"
msgstr "Ung�ltiges Zeichen im Namen\n"
-#: g10/keygen.c:623
+#: g10/keygen.c:703
msgid "Name may not start with a digit\n"
msgstr "Der Name darf nicht mit einer Ziffer beginnen.\n"
-#: g10/keygen.c:625
+#: g10/keygen.c:705
msgid "Name must be at least 5 characters long\n"
msgstr "Der Name mu� min. 5 Zeichen lang sein.\n"
-#: g10/keygen.c:633
+#: g10/keygen.c:713
msgid "Email address: "
msgstr "E-Mail-Adresse: "
-#: g10/keygen.c:644
+#: g10/keygen.c:724
msgid "Not a valid email address\n"
msgstr "Diese E-Mail-Adresse ist ung�ltig\n"
-#: g10/keygen.c:652
+#: g10/keygen.c:732
msgid "Comment: "
msgstr "Kommentar: "
-#: g10/keygen.c:658
+#: g10/keygen.c:738
msgid "Invalid character in comment\n"
msgstr "Ung�ltiges Zeichen im Kommentar.\n"
-#: g10/keygen.c:680
+#: g10/keygen.c:761
#, c-format
msgid "You are using the `%s' character set.\n"
msgstr "Sie benutzen den Zeichensatz `%s'\n"
-#: g10/keygen.c:686
+#: g10/keygen.c:767
#, c-format
msgid ""
"You selected this USER-ID:\n"
@@ -1407,15 +1505,27 @@ msgstr ""
" \"%s\"\n"
"\n"
-#: g10/keygen.c:689
+#: g10/keygen.c:771
+msgid "Please don't put the email address into the real name or the comment\n"
+msgstr "Bitte keine E-Mailadressen als Namen oder Kommentar verwenden\n"
+
+#: g10/keygen.c:776
msgid "NnCcEeOoQq"
msgstr "NnKkEeFfBb"
-#: g10/keygen.c:699
+#: g10/keygen.c:786
+msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
+msgstr "�ndern: (N)ame, (K)ommentar, (E)-Mail oder (B)eenden? "
+
+#: g10/keygen.c:787
msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
msgstr "�ndern: (N)ame, (K)ommentar, (E)-Mail oder (F)ertig/(B)eenden? "
-#: g10/keygen.c:751
+#: g10/keygen.c:806
+msgid "Please correct the error first\n"
+msgstr "Bitte beseitigen Sie zuerst den Fehler\n"
+
+#: g10/keygen.c:844
msgid ""
"You need a Passphrase to protect your secret key.\n"
"\n"
@@ -1423,11 +1533,11 @@ msgstr ""
"Sie ben�tigen ein Mantra, um den geheimen Schl�ssel zu sch�tzen.\n"
"\n"
-#: g10/keyedit.c:456 g10/keygen.c:759
+#: g10/keyedit.c:468 g10/keygen.c:852
msgid "passphrase not correctly repeated; try again.\n"
msgstr "Mantra wurde nicht richtig wiederholt; noch einmal versuchen.\n"
-#: g10/keygen.c:765
+#: g10/keygen.c:858
msgid ""
"You don't want a passphrase - this is probably a *bad* idea!\n"
"I will do it anyway. You can change your passphrase at any time,\n"
@@ -1440,7 +1550,7 @@ msgstr ""
"aufrufen.\n"
"\n"
-#: g10/keygen.c:786
+#: g10/keygen.c:879
msgid ""
"We need to generate a lot of random bytes. It is a good idea to perform\n"
"some other action (type on the keyboard, move the mouse, utilize the\n"
@@ -1451,34 +1561,29 @@ msgstr ""
"unterst�tzen, indem Sie z.B. in einem anderen Fenster/Konsole irgendetwas\n"
"tippen, die Maus verwenden oder irgendwelche anderen Programme benutzen.\n"
-#: g10/keygen.c:856
-msgid "Key generation can only be used in interactive mode\n"
-msgstr ""
-"Die Schl�sselerzeugung kann nur im interaktiven Modus benutzt werden.\n"
-
-#: g10/keygen.c:864
+#: g10/keygen.c:1325
msgid "DSA keypair will have 1024 bits.\n"
msgstr "Der DSA Schl�ssel wird 1024 Bits haben.\n"
-#: g10/keygen.c:870
+#: g10/keygen.c:1368
msgid "Key generation canceled.\n"
msgstr "Schl�sselerzeugung abgebrochen.\n"
-#: g10/keygen.c:880
+#: g10/keygen.c:1465
#, c-format
-msgid "writing public certificate to `%s'\n"
-msgstr "schreiben des �ffentlichen Zertifikats nach '%s'\n"
+msgid "writing public key to `%s'\n"
+msgstr "schreiben des �ffentlichen Schl�ssels nach '%s'\n"
-#: g10/keygen.c:881
+#: g10/keygen.c:1466
#, c-format
-msgid "writing secret certificate to `%s'\n"
-msgstr "schreiben des geheimen Zertifikats nach '%s'\n"
+msgid "writing secret key to `%s'\n"
+msgstr "schreiben des geheimen Schl�ssels nach '%s'\n"
-#: g10/keygen.c:958
+#: g10/keygen.c:1562
msgid "public and secret key created and signed.\n"
msgstr "�ffentlichen und geheimen Schl�ssel erzeugt und signiert.\n"
-#: g10/keygen.c:960
+#: g10/keygen.c:1567
msgid ""
"Note that this key cannot be used for encryption. You may want to use\n"
"the command \"--edit-key\" to generate a secondary key for this purpose.\n"
@@ -1487,12 +1592,12 @@ msgstr ""
"werden kann. Sie k�nnen aber mit dem Befehl \"--edit-key\" einen\n"
"Zweitschl�ssel f�r diesem Zweck erzeugen.\n"
-#: g10/keygen.c:974 g10/keygen.c:1073
+#: g10/keygen.c:1584 g10/keygen.c:1685
#, c-format
msgid "Key generation failed: %s\n"
msgstr "Schl�sselerzeugung fehlgeschlagen: %s\n"
-#: g10/keygen.c:1018 g10/sig-check.c:312 g10/sign.c:105
+#: g10/keygen.c:1628 g10/sig-check.c:318 g10/sign.c:111
#, c-format
msgid ""
"key has been created %lu second in future (time warp or clock problem)\n"
@@ -1500,7 +1605,7 @@ msgstr ""
"Der Schl�ssel wurde %lu Sekunde in der Zukunft erzeugt (Zeitreise oder Uhren "
"stimmen nicht �berein)\n"
-#: g10/keygen.c:1020 g10/sig-check.c:314 g10/sign.c:107
+#: g10/keygen.c:1630 g10/sig-check.c:320 g10/sign.c:113
#, c-format
msgid ""
"key has been created %lu seconds in future (time warp or clock problem)\n"
@@ -1508,12 +1613,12 @@ msgstr ""
"Der Schl�ssel wurde %lu Sekunden in der Zukunft erzeugt (Zeitreise oder "
"Uhren stimmen nicht �berein)\n"
-#: g10/keygen.c:1051
+#: g10/keygen.c:1663
msgid "Really create? "
msgstr "Wirklich erzeugen? "
-#: g10/encode.c:91 g10/openfile.c:156 g10/openfile.c:246 g10/tdbio.c:468
-#: g10/tdbio.c:529
+#: g10/encode.c:91 g10/openfile.c:168 g10/openfile.c:277 g10/tdbio.c:454
+#: g10/tdbio.c:515
#, c-format
msgid "%s: can't open: %s\n"
msgstr "%s: kann nicht ge�ffnet werden: %s\n"
@@ -1523,306 +1628,311 @@ msgstr "%s: kann nicht ge�ffnet werden: %s\n"
msgid "error creating passphrase: %s\n"
msgstr "Fehler beim Erzeugen des Mantras: %s\n"
-#: g10/encode.c:171 g10/encode.c:318
+#: g10/encode.c:171 g10/encode.c:319
#, c-format
msgid "%s: WARNING: empty file\n"
msgstr "%s: WARNUNG: Leere Datei\n"
-#: g10/encode.c:265
+#: g10/encode.c:266
#, c-format
msgid "reading from `%s'\n"
msgstr "Lesen von '%s'\n"
-#: g10/encode.c:482
+#: g10/encode.c:483
#, c-format
msgid "%s/%s encrypted for: %s\n"
-msgstr "%s verschl�sselt f�r: %s\n"
+msgstr "%s/%s verschl�sselt f�r: %s\n"
-#: g10/export.c:147
+#: g10/export.c:153
#, c-format
msgid "%s: user not found: %s\n"
msgstr "%s: Benutzer nicht gefunden: %s\n"
-#: g10/export.c:156
+#: g10/export.c:162
#, c-format
msgid "certificate read problem: %s\n"
msgstr "Zertifikat Leseproblem: %s\n"
-#: g10/export.c:165
+#: g10/export.c:171
#, c-format
msgid "key %08lX: not a rfc2440 key - skipped\n"
msgstr "Schl�ssel %08lX: dies ist kein rfc2440-Sch�ssel - �bersprungen\n"
-#: g10/export.c:203
+#: g10/export.c:182
+#, c-format
+msgid "key %08lX: not protected - skipped\n"
+msgstr "Schl�ssel %08lX: ungesch�tzt - �bersprungen\n"
+
+#: g10/export.c:232
msgid "WARNING: nothing exported\n"
msgstr "WARNUNG: Nichts exportiert\n"
-#: g10/getkey.c:206
+#: g10/getkey.c:211
msgid "too many entries in pk cache - disabled\n"
msgstr "zu viele Eintr�ge im pk-Lager - abgeschaltet\n"
-#: g10/getkey.c:345
+#: g10/getkey.c:350
msgid "too many entries in unk cache - disabled\n"
msgstr "zu viele Eintr�ge im unk-Lager - abgeschaltet\n"
-#: g10/getkey.c:1289 g10/getkey.c:1328
+#: g10/getkey.c:1308 g10/getkey.c:1347
msgid "RSA key cannot be used in this version\n"
msgstr "RSA-Schl�ssel k�nnen in dieser Version nicht verwendet werden\n"
-#: g10/getkey.c:1291 g10/getkey.c:1330
+#: g10/getkey.c:1310 g10/getkey.c:1349
msgid "No key for user ID\n"
msgstr "Kein Schl�ssel f�r User-ID\n"
-#: g10/getkey.c:1369 g10/getkey.c:1409
+#: g10/getkey.c:1388 g10/getkey.c:1428
msgid "No user ID for key\n"
msgstr "Keine User-ID f�r Schl�ssel\n"
-#: g10/getkey.c:1565 g10/getkey.c:1621
+#: g10/getkey.c:1642 g10/getkey.c:1698
#, c-format
msgid "using secondary key %08lX instead of primary key %08lX\n"
msgstr ""
"der Zweitschl�ssel %08lX wird anstelle des Hauptschl�ssels %08lX verwendet\n"
-#: g10/import.c:118
-#, c-format
-msgid "can't open `%s': %s\n"
-msgstr "'%s' kann nicht ge�ffnet werden: %s\n"
+#: g10/getkey.c:2017
+#, fuzzy
+msgid "[User id not found]"
+msgstr "%s: Benutzer nicht gefunden\n"
-#: g10/import.c:162
+#: g10/import.c:181
#, c-format
msgid "skipping block of type %d\n"
msgstr "�berspringe den Block vom Typ %d\n"
-#: g10/import.c:169 g10/trustdb.c:1658 g10/trustdb.c:1697
+#: g10/import.c:188 g10/trustdb.c:1740 g10/trustdb.c:1781
#, c-format
msgid "%lu keys so far processed\n"
msgstr "%lu Schl�ssel bislang bearbeitet\n"
-#: g10/import.c:174
+#: g10/import.c:193
#, c-format
msgid "error reading `%s': %s\n"
msgstr "Fehler beim Lesen von `%s': %s\n"
-#: g10/import.c:177
+#: g10/import.c:203
#, c-format
msgid "Total number processed: %lu\n"
msgstr "Anzahl insgesamt bearbeiteter Schl�ssel: %lu\n"
-#: g10/import.c:179
+#: g10/import.c:205
#, c-format
msgid " w/o user IDs: %lu\n"
msgstr " ohne User-ID: %lu\n"
-#: g10/import.c:181
+#: g10/import.c:207
#, c-format
msgid " imported: %lu"
msgstr " importiert: %lu"
-#: g10/import.c:187
+#: g10/import.c:213
#, c-format
msgid " unchanged: %lu\n"
msgstr " unver�ndert: %lu\n"
-#: g10/import.c:189
+#: g10/import.c:215
#, c-format
msgid " new user IDs: %lu\n"
msgstr " neue User-IDs: %lu\n"
-#: g10/import.c:191
+#: g10/import.c:217
#, c-format
msgid " new subkeys: %lu\n"
msgstr " neue Unterschl�ssel: %lu\n"
-#: g10/import.c:193
+#: g10/import.c:219
#, c-format
msgid " new signatures: %lu\n"
msgstr " neue Signaturen: %lu\n"
-#: g10/import.c:195
+#: g10/import.c:221
#, c-format
msgid " new key revocations: %lu\n"
msgstr "neue Schl�sselwiderrufe: %lu\n"
-#: g10/import.c:197
+#: g10/import.c:223
#, c-format
msgid " secret keys read: %lu\n"
msgstr " gelesene geheime Schl.: %lu\n"
-#: g10/import.c:199
+#: g10/import.c:225
#, c-format
msgid " secret keys imported: %lu\n"
msgstr "geheime Schl�ssel importiert: %lu\n"
-#: g10/import.c:201
+#: g10/import.c:227
#, c-format
msgid " secret keys unchanged: %lu\n"
msgstr " unver�nderte geh.Schl.: %lu\n"
-#: g10/import.c:362 g10/import.c:554
+#: g10/import.c:386 g10/import.c:578
#, c-format
msgid "key %08lX: no user ID\n"
msgstr "Schl�ssel %08lX: Keine User-ID\n"
-#: g10/import.c:376
+#: g10/import.c:400
#, c-format
msgid "key %08lX: no valid user IDs\n"
msgstr "Schl�ssel %08lX: Keine g�ltigen User-IDs\n"
-#: g10/import.c:378
+#: g10/import.c:402
msgid "this may be caused by a missing self-signature\n"
msgstr "dies k�nnte durch fehlende Eigenbeglaubigung verursacht worden sein\n"
-#: g10/import.c:389 g10/import.c:621
+#: g10/import.c:413 g10/import.c:645
#, c-format
msgid "key %08lX: public key not found: %s\n"
msgstr "Schl�ssel %08lX: �ffentlicher Schl�ssel nicht gefunden: %s\n"
-#: g10/import.c:395
+#: g10/import.c:419
msgid "no default public keyring\n"
msgstr "Kein voreingestellter �ffentlicher Schl�sselbund\n"
-#: g10/import.c:399 g10/openfile.c:186 g10/sign.c:268 g10/sign.c:580
+#: g10/import.c:423 g10/openfile.c:220 g10/sign.c:275 g10/sign.c:587
#, c-format
msgid "writing to `%s'\n"
msgstr "Schreiben nach '%s'\n"
-#: g10/import.c:402 g10/import.c:460 g10/import.c:569 g10/import.c:670
+#: g10/import.c:426 g10/import.c:484 g10/import.c:593 g10/import.c:694
#, c-format
msgid "can't lock keyring `%s': %s\n"
msgstr "kann Schl�sselbund `%s' nicht sperren: %s\n"
-#: g10/import.c:405 g10/import.c:463 g10/import.c:572 g10/import.c:673
+#: g10/import.c:429 g10/import.c:487 g10/import.c:596 g10/import.c:697
#, c-format
msgid "error writing keyring `%s': %s\n"
msgstr "Fehler beim Schreiben des Schl�sselbundes `%s': %s\n"
-#: g10/import.c:410
+#: g10/import.c:434
#, c-format
msgid "key %08lX: public key imported\n"
msgstr "Schl�ssel %08lX: �ffentlicher Schl�ssel importiert\n"
-#: g10/import.c:427
+#: g10/import.c:451
#, c-format
msgid "key %08lX: doesn't match our copy\n"
msgstr "Schl�ssel %08lX: Stimmt nicht mit unserer Kopie �berein\n"
-#: g10/import.c:436 g10/import.c:629
+#: g10/import.c:460 g10/import.c:653
#, c-format
msgid "key %08lX: can't locate original keyblock: %s\n"
msgstr ""
"Schl�ssel %08lX: der lokale originale Schl�sselblocks wurde nicht gefunden: "
"%s\n"
-#: g10/import.c:442 g10/import.c:635
+#: g10/import.c:466 g10/import.c:659
#, c-format
msgid "key %08lX: can't read original keyblock: %s\n"
msgstr ""
"Schl�ssel %08lX: Lesefehler im lokalen originalen Schl�sselblocks: %s\n"
-#: g10/import.c:469
+#: g10/import.c:493
#, c-format
msgid "key %08lX: 1 new user ID\n"
msgstr "Schl�ssel %08lX: 1 neue User-ID\n"
-#: g10/import.c:472
+#: g10/import.c:496
#, c-format
msgid "key %08lX: %d new user IDs\n"
msgstr "Schl�ssel %08lX: %d neue User-IDs\n"
-#: g10/import.c:475
+#: g10/import.c:499
#, c-format
msgid "key %08lX: 1 new signature\n"
msgstr "Schl�ssel %08lX: 1 neue Signatur\n"
-#: g10/import.c:478
+#: g10/import.c:502
#, c-format
msgid "key %08lX: %d new signatures\n"
msgstr "Schl�ssel %08lX: %d neue Signaturen\n"
-#: g10/import.c:481
+#: g10/import.c:505
#, c-format
msgid "key %08lX: 1 new subkey\n"
msgstr "Schl�ssel %08lX: 1 neuer Unterschl�ssel\n"
-#: g10/import.c:484
+#: g10/import.c:508
#, c-format
msgid "key %08lX: %d new subkeys\n"
msgstr "Schl�ssel %08lX: %d neue Unterschl�ssel\n"
-#: g10/import.c:494
+#: g10/import.c:518
#, c-format
msgid "key %08lX: not changed\n"
msgstr "Schl�ssel %08lX: Nicht ge�ndert\n"
-#: g10/import.c:577
+#: g10/import.c:601
#, c-format
msgid "key %08lX: secret key imported\n"
msgstr "Schl�ssel %08lX: Geheimer Schl�ssel importiert\n"
#. we can't merge secret keys
-#: g10/import.c:581
+#: g10/import.c:605
#, c-format
msgid "key %08lX: already in secret keyring\n"
msgstr "Schl�ssel %08lX: Ist bereits im geheimen Schl�sselbund\n"
-#: g10/import.c:586
+#: g10/import.c:610
#, c-format
msgid "key %08lX: secret key not found: %s\n"
msgstr "Schl�ssel %08lX: geheimer Schl�ssel nicht gefunden: %s\n"
-#: g10/import.c:615
+#: g10/import.c:639
#, c-format
msgid "key %08lX: no public key - can't apply revocation certificate\n"
msgstr ""
"Schl�ssel %08lX: Kein �ffentlicher Schl�ssel - der Schl�sselwiderruf kann "
"nicht angebracht werden\n"
-#: g10/import.c:646
+#: g10/import.c:670
#, c-format
msgid "key %08lX: invalid revocation certificate: %s - rejected\n"
msgstr "Schl�ssel %08lX: Ung�ltiges Widerrufzertifikat: %s - zur�ckgewiesen\n"
-#: g10/import.c:678
+#: g10/import.c:702
#, c-format
msgid "key %08lX: revocation certificate imported\n"
msgstr "Schl�ssel %08lX: Widerrufzertifikat importiert\n"
-#: g10/import.c:711
+#: g10/import.c:744
#, c-format
msgid "key %08lX: no user ID for signature\n"
msgstr "Schl�ssel %08lX: Keine User-ID f�r Signatur\n"
-#: g10/import.c:718 g10/import.c:742
+#: g10/import.c:751 g10/import.c:775
#, c-format
msgid "key %08lX: unsupported public key algorithm\n"
-msgstr "Schl�ssel %08lX: Nicht unterst�tzetes Public-Key-Verfahren\n"
+msgstr "Schl�ssel %08lX: Nicht unterst�tztes Public-Key-Verfahren\n"
-#: g10/import.c:719
+#: g10/import.c:752
#, c-format
msgid "key %08lX: invalid self-signature\n"
msgstr "Schl�ssel %08lX: Ung�ltige Eigenbeglaubigung\n"
-#: g10/import.c:734
+#: g10/import.c:767
#, c-format
msgid "key %08lX: no subkey for key binding\n"
msgstr "Schl�ssel %08lX: Kein Unterschl�ssel f�r die Schl�sselanbindung\n"
-#: g10/import.c:743
+#: g10/import.c:776
#, c-format
msgid "key %08lX: invalid subkey binding\n"
msgstr "Schl�ssel %08lX: Ung�ltige Unterschl�ssel-Anbindung\n"
-#: g10/import.c:769
+#: g10/import.c:803
#, c-format
msgid "key %08lX: accepted non self-signed user ID '"
msgstr "Schl�ssel %08lX: Nicht eigenbeglaubigte User-ID �bernommen'"
-#: g10/import.c:798
+#: g10/import.c:832
#, c-format
msgid "key %08lX: skipped user ID '"
msgstr "Schl�ssel %08lX: User-ID �bergangen '"
-#: g10/import.c:821
+#: g10/import.c:855
#, c-format
msgid "key %08lX: skipped subkey\n"
msgstr "Schl�ssel %08lX: Unterschl�ssel ignoriert\n"
@@ -1831,98 +1941,99 @@ msgstr "Schl�ssel %08lX: Unterschl�ssel ignoriert\n"
#. * to import non-exportable signature when we have the
#. * the secret key used to create this signature - it
#. * seems that this makes sense
-#: g10/import.c:846
+#: g10/import.c:880
#, c-format
msgid "key %08lX: non exportable signature (class %02x) - skipped\n"
-msgstr "Schl�ssel %08lX: Nicht exportf�hige Unterschrift - �bergangen\n"
+msgstr ""
+"Schl�ssel %08lX: Nicht exportf�hige Unterschrift (Klasse %02x) - �bergangen\n"
-#: g10/import.c:855
+#: g10/import.c:889
#, c-format
msgid "key %08lX: revocation certificate at wrong place - skipped\n"
msgstr "Schl�ssel %08lX: Widerrufzertifikat an falschem Platz - �bergangen\n"
-#: g10/import.c:863
+#: g10/import.c:897
#, c-format
msgid "key %08lX: invalid revocation certificate: %s - skipped\n"
msgstr "Schl�ssel %08lX: Ung�ltiges Widerrufzertifikat: %s - �bergangen\n"
-#: g10/import.c:963
+#: g10/import.c:997
#, c-format
msgid "key %08lX: duplicated user ID detected - merged\n"
msgstr "Schl�ssel %08lX: Doppelte User-ID entdeckt - zusammengef�hrt\n"
-#: g10/import.c:1014
+#: g10/import.c:1048
#, c-format
msgid "key %08lX: revocation certificate added\n"
msgstr "Schl�ssel %08lX: Widerrufzertifikat hinzugef�gt\n"
-#: g10/import.c:1128 g10/import.c:1183
+#: g10/import.c:1162 g10/import.c:1215
#, c-format
msgid "key %08lX: our copy has no self-signature\n"
msgstr "Schl�ssel %08lX: Unsere Kopie hat keine Eigenbeglaubigung\n"
-#: g10/delkey.c:64 g10/keyedit.c:93
+#: g10/delkey.c:64 g10/keyedit.c:94
#, c-format
msgid "%s: user not found\n"
msgstr "%s: Benutzer nicht gefunden\n"
-#: g10/keyedit.c:154
+#: g10/keyedit.c:155
msgid "[revocation]"
msgstr "[Widerruf]"
-#: g10/keyedit.c:155
+#: g10/keyedit.c:156
msgid "[self-signature]"
msgstr "[Eigenbeglaubigung]"
-#: g10/keyedit.c:219
+#: g10/keyedit.c:220
msgid "1 bad signature\n"
msgstr "1 falsche Beglaubigung\n"
-#: g10/keyedit.c:221
+#: g10/keyedit.c:222
#, c-format
msgid "%d bad signatures\n"
msgstr "%d falsche Beglaubigungen\n"
-#: g10/keyedit.c:223
+#: g10/keyedit.c:224
msgid "1 signature not checked due to a missing key\n"
msgstr "1 Beglaubigung wegen fehlendem Schl�ssel nicht gepr�ft\n"
-#: g10/keyedit.c:225
+#: g10/keyedit.c:226
#, c-format
msgid "%d signatures not checked due to missing keys\n"
msgstr "%d Beglaubigungen wegen fehlenden Schl�sseln nicht gepr�ft\n"
-#: g10/keyedit.c:227
+#: g10/keyedit.c:228
msgid "1 signature not checked due to an error\n"
msgstr "1 Beglaubigung aufgrund von Fehler nicht gepr�ft\n"
-#: g10/keyedit.c:229
+#: g10/keyedit.c:230
#, c-format
msgid "%d signatures not checked due to errors\n"
msgstr "%d Beglaubigungen aufgrund von Fehlern nicht gepr�ft\n"
-#: g10/keyedit.c:231
+#: g10/keyedit.c:232
msgid "1 user ID without valid self-signature detected\n"
msgstr "Eine User-ID ohne g�ltige Eigenbeglaubigung entdeckt\n"
-#: g10/keyedit.c:233
+#: g10/keyedit.c:234
#, c-format
msgid "%d user IDs without valid self-signatures detected\n"
msgstr "%d User-IDs ohne g�ltige Eigenbeglaubigung entdeckt\n"
#. Fixme: see whether there is a revocation in which
#. * case we should allow to sign it again.
-#: g10/keyedit.c:313
+#: g10/keyedit.c:316
#, c-format
msgid "Already signed by key %08lX\n"
msgstr "Ist bereits durch Schl�ssel %08lX beglaubigt.\n"
-#: g10/keyedit.c:321
+#: g10/keyedit.c:324
#, c-format
msgid "Nothing to sign with key %08lX\n"
msgstr "Nichts zu beglaubigen f�r Schl�ssel %08lX\n"
-#: g10/keyedit.c:330
+#: g10/keyedit.c:333
msgid ""
"Are you really sure that you want to sign this key\n"
"with your key: \""
@@ -1930,7 +2041,7 @@ msgstr ""
"Sind Sie wirklich sicher, da� Sie vorstehenden Schl�ssel mit Ihrem\n"
"Schl�ssel beglaubigen wollen: \""
-#: g10/keyedit.c:339
+#: g10/keyedit.c:342
msgid ""
"The signature will be marked as non-exportable.\n"
"\n"
@@ -1938,29 +2049,33 @@ msgstr ""
"Die Unterschrift wird als nicht exportf�hig markiert werden.\n"
"\n"
-#: g10/keyedit.c:344
+#: g10/keyedit.c:347
msgid "Really sign? "
msgstr "Wirklich unterschreiben? "
-#: g10/keyedit.c:370 g10/keyedit.c:1832 g10/keyedit.c:1881 g10/sign.c:128
+#: g10/keyedit.c:373 g10/keyedit.c:1869 g10/keyedit.c:1931 g10/sign.c:135
#, c-format
msgid "signing failed: %s\n"
msgstr "Beglaubigung fehlgeschlagen: %s\n"
-#: g10/keyedit.c:423
+#: g10/keyedit.c:427
msgid "This key is not protected.\n"
msgstr "Dieser Schl�ssel ist nicht gesch�tzt.\n"
-#: g10/keyedit.c:426
+#: g10/keyedit.c:431
+msgid "Secret parts of primary key are not available.\n"
+msgstr "Geheime Teile des Haupschl�ssels sind nicht vorhanden\n"
+
+#: g10/keyedit.c:435
msgid "Key is protected.\n"
msgstr "Schl�ssel ist gesch�tzt.\n"
-#: g10/keyedit.c:443
+#: g10/keyedit.c:455
#, c-format
msgid "Can't edit this key: %s\n"
msgstr "Dieser Schl�ssel kann nicht editiert werden: %s\n"
-#: g10/keyedit.c:448
+#: g10/keyedit.c:460
msgid ""
"Enter the new passphrase for this secret key.\n"
"\n"
@@ -1968,7 +2083,7 @@ msgstr ""
"Geben Sie das neue Mantra f�r diesen geheimen Schl�ssel ein.\n"
"\n"
-#: g10/keyedit.c:460
+#: g10/keyedit.c:472
msgid ""
"You don't want a passphrase - this is probably a *bad* idea!\n"
"\n"
@@ -1976,392 +2091,396 @@ msgstr ""
"Sie wollen kein Mantra - dies ist bestimmt *keine* gute Idee!\n"
"\n"
-#: g10/keyedit.c:463
+#: g10/keyedit.c:475
msgid "Do you really want to do this? "
msgstr "M�chten Sie dies wirklich tun? "
-#: g10/keyedit.c:524
+#: g10/keyedit.c:539
msgid "moving a key signature to the correct place\n"
msgstr "schiebe eine Beglaubigung an die richtige Stelle\n"
-#: g10/keyedit.c:564
+#: g10/keyedit.c:580
msgid "quit this menu"
msgstr "Men� verlassen"
-#: g10/keyedit.c:565
+#: g10/keyedit.c:581
msgid "q"
msgstr "q"
-#: g10/keyedit.c:566
+#: g10/keyedit.c:582
msgid "save"
msgstr "save"
-#: g10/keyedit.c:566
+#: g10/keyedit.c:582
msgid "save and quit"
msgstr "speichern und Men� verlassen"
-#: g10/keyedit.c:567
+#: g10/keyedit.c:583
msgid "help"
msgstr "help"
-#: g10/keyedit.c:567
+#: g10/keyedit.c:583
msgid "show this help"
msgstr "Diese Hilfe zeigen"
-#: g10/keyedit.c:569
+#: g10/keyedit.c:585
msgid "fpr"
msgstr "fpr"
-#: g10/keyedit.c:569
+#: g10/keyedit.c:585
msgid "show fingerprint"
msgstr "\"Fingerabdruck\" anzeigen"
-#: g10/keyedit.c:570
+#: g10/keyedit.c:586
msgid "list"
msgstr "Liste der Schl�ssel"
-#: g10/keyedit.c:570
+#: g10/keyedit.c:586
msgid "list key and user IDs"
msgstr "Schl�ssel und User-IDs auflisten"
-#: g10/keyedit.c:571
+#: g10/keyedit.c:587
msgid "l"
msgstr "l"
-#: g10/keyedit.c:572
+#: g10/keyedit.c:588
msgid "uid"
msgstr "uid"
-#: g10/keyedit.c:572
+#: g10/keyedit.c:588
msgid "select user ID N"
msgstr "User-ID N ausw�hlen"
-#: g10/keyedit.c:573
+#: g10/keyedit.c:589
msgid "key"
msgstr "key"
-#: g10/keyedit.c:573
+#: g10/keyedit.c:589
msgid "select secondary key N"
msgstr "Zweitschl�ssel N ausw�hlen"
-#: g10/keyedit.c:574
+#: g10/keyedit.c:590
msgid "check"
msgstr "check"
-#: g10/keyedit.c:574
+#: g10/keyedit.c:590
msgid "list signatures"
msgstr "Liste der Signaturen"
-#: g10/keyedit.c:575
+#: g10/keyedit.c:591
msgid "c"
msgstr "c"
-#: g10/keyedit.c:576
+#: g10/keyedit.c:592
msgid "sign"
msgstr "sign"
-#: g10/keyedit.c:576
+#: g10/keyedit.c:592
msgid "sign the key"
msgstr "Den Schl�ssel signieren"
-#: g10/keyedit.c:577
+#: g10/keyedit.c:593
msgid "s"
msgstr "s"
-#: g10/keyedit.c:578
+#: g10/keyedit.c:594
msgid "lsign"
msgstr "lsign"
-#: g10/keyedit.c:578
+#: g10/keyedit.c:594
msgid "sign the key locally"
msgstr "Den Schl�ssel nur auf diesem Rechner signieren"
-#: g10/keyedit.c:579
+#: g10/keyedit.c:595
msgid "debug"
msgstr "debug"
-#: g10/keyedit.c:580
+#: g10/keyedit.c:596
msgid "adduid"
msgstr "adduid"
-#: g10/keyedit.c:580
+#: g10/keyedit.c:596
msgid "add a user ID"
msgstr "Eine User-ID hinzuf�gen"
-#: g10/keyedit.c:581
+#: g10/keyedit.c:597
msgid "deluid"
msgstr "deluid"
-#: g10/keyedit.c:581
+#: g10/keyedit.c:597
msgid "delete user ID"
msgstr "User-ID entfernen"
-#: g10/keyedit.c:582
+#: g10/keyedit.c:598
msgid "addkey"
msgstr "addkey"
-#: g10/keyedit.c:582
+#: g10/keyedit.c:598
msgid "add a secondary key"
msgstr "Einen Zweitschl�ssel hinzuf�gen"
-#: g10/keyedit.c:583
+#: g10/keyedit.c:599
msgid "delkey"
msgstr "delkey"
-#: g10/keyedit.c:583
+#: g10/keyedit.c:599
msgid "delete a secondary key"
msgstr "Einen Zweitschl�ssel entfernen"
-#: g10/keyedit.c:584
+#: g10/keyedit.c:600
msgid "delsig"
msgstr "delsig"
-#: g10/keyedit.c:584
+#: g10/keyedit.c:600
msgid "delete signatures"
msgstr "Signatur entfernen"
-#: g10/keyedit.c:585
+#: g10/keyedit.c:601
msgid "expire"
msgstr "expire"
-#: g10/keyedit.c:585
+#: g10/keyedit.c:601
msgid "change the expire date"
msgstr "�ndern des Verfallsdatums"
-#: g10/keyedit.c:586
+#: g10/keyedit.c:602
msgid "toggle"
msgstr "toggle"
-#: g10/keyedit.c:586
+#: g10/keyedit.c:602
msgid "toggle between secret and public key listing"
msgstr "Umschalten zwischen Anzeige geheimer und �ffentlicher Schl�ssel"
-#: g10/keyedit.c:588
+#: g10/keyedit.c:604
msgid "t"
msgstr "t"
-#: g10/keyedit.c:589
+#: g10/keyedit.c:605
msgid "pref"
msgstr "pref"
-#: g10/keyedit.c:589
+#: g10/keyedit.c:605
msgid "list preferences"
msgstr "Liste der Voreinstellungen"
-#: g10/keyedit.c:590
+#: g10/keyedit.c:606
msgid "passwd"
msgstr "passwd"
-#: g10/keyedit.c:590
+#: g10/keyedit.c:606
msgid "change the passphrase"
msgstr "Das Mantra �ndern"
-#: g10/keyedit.c:591
+#: g10/keyedit.c:607
msgid "trust"
msgstr "trust"
-#: g10/keyedit.c:591
+#: g10/keyedit.c:607
msgid "change the ownertrust"
msgstr "Den \"Owner trust\" �ndern"
-#: g10/keyedit.c:592
+#: g10/keyedit.c:608
msgid "revsig"
msgstr "revsig"
-#: g10/keyedit.c:592
+#: g10/keyedit.c:608
msgid "revoke signatures"
msgstr "Signaturen widerrufen"
-#: g10/keyedit.c:593
+#: g10/keyedit.c:609
msgid "revkey"
msgstr "revkey"
-#: g10/keyedit.c:593
+#: g10/keyedit.c:609
msgid "revoke a secondary key"
msgstr "Einen Zweitschl�ssel widerrufen"
-#: g10/keyedit.c:594
+#: g10/keyedit.c:610
msgid "disable"
msgstr "disable"
-#: g10/keyedit.c:594
+#: g10/keyedit.c:610
msgid "disable a key"
msgstr "Schl�ssel abschalten"
-#: g10/keyedit.c:595
+#: g10/keyedit.c:611
msgid "enable"
msgstr "enable"
-#: g10/keyedit.c:595
+#: g10/keyedit.c:611
msgid "enable a key"
msgstr "Schl�ssel anschalten"
-#: g10/delkey.c:107 g10/keyedit.c:614
+#: g10/delkey.c:110 g10/keyedit.c:630
msgid "can't do that in batchmode\n"
msgstr "Dies kann im Batchmodus nicht durchgef�hrt werden.\n"
#. check that they match
#. fixme: check that they both match
-#: g10/keyedit.c:652
+#: g10/keyedit.c:668
msgid "Secret key is available.\n"
msgstr "Geheimer Schl�ssel ist vorhanden.\n"
-#: g10/keyedit.c:681
+#: g10/keyedit.c:697
msgid "Command> "
msgstr "Befehl> "
-#: g10/keyedit.c:711
+#: g10/keyedit.c:727
msgid "Need the secret key to do this.\n"
msgstr "Hierzu wird der geheime Schl�ssel ben�tigt.\n"
-#: g10/keyedit.c:758
+#: g10/keyedit.c:731
+msgid "Please use the command \"toggle\" first.\n"
+msgstr "Bitte verwenden sie zun�chst den Befehl \"toggle\"\n"
+
+#: g10/keyedit.c:778
msgid "Really sign all user IDs? "
msgstr "Wirklich alle User-IDs beglaubigen? "
-#: g10/keyedit.c:759
+#: g10/keyedit.c:779
msgid "Hint: Select the user IDs to sign\n"
msgstr "Tip: W�hlen Sie die User-IDs, die beglaubigt werden sollen\n"
-#: g10/keyedit.c:786 g10/keyedit.c:968
+#: g10/keyedit.c:811 g10/keyedit.c:993
#, c-format
msgid "update of trustdb failed: %s\n"
msgstr "�nderung der \"Trust-DB\" fehlgeschlagen: %s\n"
-#: g10/keyedit.c:797 g10/keyedit.c:818
+#: g10/keyedit.c:822 g10/keyedit.c:843
msgid "You must select at least one user ID.\n"
msgstr "Zumindestens eine User-ID mu� ausgew�hlt werden.\n"
-#: g10/keyedit.c:799
+#: g10/keyedit.c:824
msgid "You can't delete the last user ID!\n"
msgstr "Die letzte User-ID kann nicht gel�scht werden!\n"
-#: g10/keyedit.c:802
+#: g10/keyedit.c:827
msgid "Really remove all selected user IDs? "
msgstr "M�chten Sie alle ausgew�hlten User-IDs wirklich entfernen? "
-#: g10/keyedit.c:803
+#: g10/keyedit.c:828
msgid "Really remove this user ID? "
msgstr "Diese User-ID wirklich entfernen? "
-#: g10/keyedit.c:839 g10/keyedit.c:861
+#: g10/keyedit.c:864 g10/keyedit.c:886
msgid "You must select at least one key.\n"
msgstr "Zumindestens ein Schl�ssel mu� ausgew�hlt werden.\n"
-#: g10/keyedit.c:843
+#: g10/keyedit.c:868
msgid "Do you really want to delete the selected keys? "
msgstr "M�chten Sie die ausgew�hlten Schl�ssel wirklich entfernen? "
-#: g10/keyedit.c:844
+#: g10/keyedit.c:869
msgid "Do you really want to delete this key? "
msgstr "M�chten Sie diesen Schl�ssel wirklich entfernen? "
-#: g10/keyedit.c:865
+#: g10/keyedit.c:890
msgid "Do you really want to revoke the selected keys? "
msgstr "M�chten Sie die ausgew�hlten Schl�ssel wirklich widerrufen? "
-#: g10/keyedit.c:866
+#: g10/keyedit.c:891
msgid "Do you really want to revoke this key? "
msgstr "M�chten Sie diesen Schl�ssel wirklich wiederrufen? "
-#: g10/keyedit.c:932
+#: g10/keyedit.c:957
msgid "Save changes? "
msgstr "�nderungen speichern? "
-#: g10/keyedit.c:935
+#: g10/keyedit.c:960
msgid "Quit without saving? "
msgstr "Beenden ohne zu speichern? "
-#: g10/keyedit.c:946
+#: g10/keyedit.c:971
#, c-format
msgid "update failed: %s\n"
msgstr "�nderung fehlgeschlagen: %s\n"
-#: g10/keyedit.c:953
+#: g10/keyedit.c:978
#, c-format
msgid "update secret failed: %s\n"
msgstr "�nderung des Geheimnisses fehlgeschlagen: %s\n"
-#: g10/keyedit.c:960
+#: g10/keyedit.c:985
msgid "Key not changed so no update needed.\n"
msgstr "Schl�ssel ist nicht ge�ndert worden, also ist kein Speichern n�tig.\n"
-#: g10/keyedit.c:975
+#: g10/keyedit.c:1000
msgid "Invalid command (try \"help\")\n"
msgstr "Ung�ltiger Befehl (versuchen Sie's mal mit \"help\")\n"
-#: g10/keyedit.c:1065
+#: g10/keyedit.c:1093
msgid "This key has been disabled"
msgstr "Hinweis: Dieser Schl�ssel ist abgeschaltet"
-#: g10/keyedit.c:1336
+#: g10/keyedit.c:1364
msgid "Delete this good signature? (y/N/q)"
msgstr "Diese korrekte Beglaubigung entfernen? (j/N/q)"
-#: g10/keyedit.c:1340
+#: g10/keyedit.c:1368
msgid "Delete this invalid signature? (y/N/q)"
msgstr "Diese ung�ltige Beglaubigung entfernen= (j/N/q)"
-#: g10/keyedit.c:1344
+#: g10/keyedit.c:1372
msgid "Delete this unknown signature? (y/N/q)"
msgstr "Diese unbekannte Beglaubigung entfernen? (j/N/q)"
-#: g10/keyedit.c:1350
+#: g10/keyedit.c:1378
msgid "Really delete this self-signature? (y/N)"
msgstr "Eigenbeglaubigung wirklich entfernen? (j/N)"
-#: g10/keyedit.c:1364
+#: g10/keyedit.c:1392
#, c-format
msgid "Deleted %d signature.\n"
msgstr "%d Beglaubigungen entfernt.\n"
-#: g10/keyedit.c:1365
+#: g10/keyedit.c:1393
#, c-format
msgid "Deleted %d signatures.\n"
msgstr "%d Beglaubigungen entfernt.\n"
-#: g10/keyedit.c:1368
+#: g10/keyedit.c:1396
msgid "Nothing deleted.\n"
msgstr "Nichts entfernt.\n"
-#: g10/keyedit.c:1437
+#: g10/keyedit.c:1465
msgid "Please remove selections from the secret keys.\n"
msgstr "Bitte entfernen Sie die Auswahl von den geheimen Schl�sseln.\n"
-#: g10/keyedit.c:1443
+#: g10/keyedit.c:1471
msgid "Please select at most one secondary key.\n"
msgstr "Bitte w�hlen Sie h�chstens einen Zweitschl�ssel aus.\n"
-#: g10/keyedit.c:1447
+#: g10/keyedit.c:1475
msgid "Changing expiration time for a secondary key.\n"
msgstr "�ndern des Verfallsdatums des Zweitschl�ssels.\n"
-#: g10/keyedit.c:1449
+#: g10/keyedit.c:1477
msgid "Changing expiration time for the primary key.\n"
msgstr "�ndern des Verfallsdatums des Hauptschl�ssels.\n"
-#: g10/keyedit.c:1490
+#: g10/keyedit.c:1519
msgid "You can't change the expiration date of a v3 key\n"
msgstr "Sie k�nnen das Verfallsdatum eines v3-Schl�ssels nicht �ndern\n"
-#: g10/keyedit.c:1506
+#: g10/keyedit.c:1535
msgid "No corresponding signature in secret ring\n"
msgstr "Keine entsprechende Signatur im geheimen Schl�sselbund\n"
-#: g10/keyedit.c:1566
+#: g10/keyedit.c:1596
#, c-format
msgid "No user ID with index %d\n"
msgstr "Keine User-ID mit Index %d\n"
-#: g10/keyedit.c:1612
+#: g10/keyedit.c:1642
#, c-format
msgid "No secondary key with index %d\n"
msgstr "Kein Zweitschl�ssel mit Index %d\n"
-#: g10/keyedit.c:1710
+#: g10/keyedit.c:1740
msgid "user ID: \""
msgstr "User-ID: \""
-#: g10/keyedit.c:1713
+#: g10/keyedit.c:1743
#, c-format
msgid ""
"\"\n"
@@ -2370,141 +2489,151 @@ msgstr ""
"\"\n"
"unterschrieben mit Ihrem Schl�ssel %08lX um %s\n"
-#: g10/keyedit.c:1717
+#: g10/keyedit.c:1747
msgid "Create a revocation certificate for this signature? (y/N)"
msgstr "Ein Widerrufszertifikat f�r diese Unterschrift erzeugen (j/N)"
#. FIXME: detect duplicates here
-#: g10/keyedit.c:1740
-#, fuzzy
+#: g10/keyedit.c:1771
msgid "You have signed these user IDs:\n"
-msgstr "Die letzte User-ID kann nicht gel�scht werden!\n"
+msgstr "Sie haben folgende User-IDs beglaubigt:\n"
-#: g10/keyedit.c:1754 g10/keyedit.c:1789
-#, fuzzy, c-format
+#: g10/keyedit.c:1785 g10/keyedit.c:1820
+#, c-format
msgid " signed by %08lX at %s\n"
-msgstr ""
-"\"\n"
-"unterschrieben mit Ihrem Schl�ssel %08lX um %s\n"
+msgstr " beglaubiigt durch %08lX um %s\n"
-#: g10/keyedit.c:1759
-#, fuzzy, c-format
+#: g10/keyedit.c:1790
+#, c-format
msgid " revoked by %08lX at %s\n"
-msgstr ""
-"\"\n"
-"unterschrieben mit Ihrem Schl�ssel %08lX um %s\n"
+msgstr " widerrufen durch %08lX um %s\n"
-#: g10/keyedit.c:1779
-#, fuzzy
+#: g10/keyedit.c:1810
msgid "You are about to revoke these signatures:\n"
-msgstr "M�chten Sie einige der ung�ltigen Signaturen entfernen? "
+msgstr "Es werden nun folgende Beglaubigungen entfernt:\n"
-#: g10/keyedit.c:1797
+#: g10/keyedit.c:1828
msgid "Really create the revocation certificates? (y/N)"
msgstr "Wirklich ein Unterschrift-Widerrufszertifikat erzeugen? (j/N) "
-#: g10/keyedit.c:1820
+#: g10/keyedit.c:1857
msgid "no secret key\n"
msgstr "Kein geheimer Schl�ssel\n"
+#. of subkey
+#: g10/keylist.c:318 g10/mainproc.c:740
+#, c-format
+msgid " [expires: %s]"
+msgstr " [verf�llt: %s]"
+
#: g10/mainproc.c:213
#, c-format
msgid "public key is %08lX\n"
msgstr "�ffentlicher Schl�ssel ist %08lX\n"
-#: g10/mainproc.c:244
+#: g10/mainproc.c:248
msgid "public key encrypted data: good DEK\n"
msgstr "Mit �ffentlichem Sch�ssel verschl�sselte Daten: Korrekte DEK\n"
-#: g10/mainproc.c:275
+#: g10/mainproc.c:281
#, c-format
msgid "encrypted with %u-bit %s key, ID %08lX, created %s\n"
msgstr "verschl�sselt mit %u-Bit %s Schl�ssel, ID %08lX, erzeugt %s\n"
# Scripte scannen lt. dl1bke auf "ID (0-9A-F)+" deswegen mu� "ID" rein :-(
# [kw]
-#: g10/mainproc.c:285
+#: g10/mainproc.c:291
#, c-format
msgid "encrypted with %s key, ID %08lX\n"
msgstr "verschl�sselt mit %s Schl�ssel, ID %08lX\n"
-#: g10/mainproc.c:291
+#: g10/mainproc.c:297
msgid "no secret key for decryption available\n"
msgstr "kein geheimer Schl�ssel zur Entschl�sselung vorhanden\n"
-#: g10/mainproc.c:300
+#: g10/mainproc.c:306
#, c-format
msgid "public key decryption failed: %s\n"
msgstr "Entschl�sselung mit �ffentlichem Schl�ssel fehlgeschlagen: %s\n"
-#: g10/mainproc.c:330
+#: g10/mainproc.c:342
msgid "decryption okay\n"
msgstr "Enschl�sselung fehlgeschlagen: %s\n"
-#: g10/mainproc.c:335
+#: g10/mainproc.c:347
msgid "WARNING: encrypted message has been manipulated!\n"
msgstr "Warnung: Verschl�sselte Botschaft ist manipuliert worden!\n"
-#: g10/mainproc.c:340
+#: g10/mainproc.c:352
#, c-format
msgid "decryption failed: %s\n"
msgstr "Enschl�sselung fehlgeschlagen: %s\n"
-#: g10/mainproc.c:358
+#: g10/mainproc.c:371
msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
msgstr ""
"Hinweis: Der Absender verlangte Vertraulichkeit(\"for-your-eyes-only\")\n"
-#: g10/mainproc.c:360
+#: g10/mainproc.c:373
#, c-format
msgid "original file name='%.*s'\n"
msgstr "Urspr�nglicher Dateiname='%.*s'\n"
-#: g10/mainproc.c:587 g10/mainproc.c:596
+#: g10/mainproc.c:524
+msgid "standalone revocation - use \"gpg --import\" to apply\n"
+msgstr ""
+"Einzelner Widerruf - verwenden Sie \"gpg --import\" um ihn anzuwenden\n"
+
+#: g10/mainproc.c:611 g10/mainproc.c:620
msgid "WARNING: invalid notation data found\n"
msgstr "WARNUNG: Ung�ltige \"Notation\"-Daten gefunden\n"
-#: g10/mainproc.c:599
+#: g10/mainproc.c:623
msgid "Notation: "
msgstr "\"Notation\": "
-#: g10/mainproc.c:606
+#: g10/mainproc.c:630
msgid "Policy: "
msgstr "Richtlinie: "
-#: g10/mainproc.c:1025
+#: g10/mainproc.c:1057
msgid "signature verification suppressed\n"
msgstr "Unterschriften-�berpr�fung unterdr�ckt\n"
# Scripte scannen lt. dl1bke auf "ID (0-9A-F)+" deswegen mu� "ID" rein :-(
-#: g10/mainproc.c:1031
+#: g10/mainproc.c:1063
#, c-format
msgid "Signature made %.*s using %s key ID %08lX\n"
msgstr "Unterschrift vom %.*s, %s Schl�ssel ID %08lX\n"
#. just in case that we have no userid
-#: g10/mainproc.c:1057 g10/mainproc.c:1068
+#: g10/mainproc.c:1089 g10/mainproc.c:1100
msgid "BAD signature from \""
msgstr "FALSCHE Unterschrift von \""
-#: g10/mainproc.c:1058 g10/mainproc.c:1069
+#: g10/mainproc.c:1090 g10/mainproc.c:1101
msgid "Good signature from \""
msgstr "Korrekte Unterschrift von \""
-#: g10/mainproc.c:1060
+#: g10/mainproc.c:1092
msgid " aka \""
msgstr " alias \""
-#: g10/mainproc.c:1115
+#: g10/mainproc.c:1148
#, c-format
msgid "Can't check signature: %s\n"
msgstr "Unterschrift kann nicht gepr�ft werden: %s\n"
-#: g10/mainproc.c:1212
+#: g10/mainproc.c:1209
+#, c-format
+msgid "standalone signature of class 0x%02x\n"
+msgstr "Einzelne Unterschrift der Klasse 0x%02x\n"
+
+#: g10/mainproc.c:1250
msgid "old style (PGP 2.x) signature\n"
msgstr "Unterschrift nach alter (PGP 2.x) Art\n"
-#: g10/mainproc.c:1217
+#: g10/mainproc.c:1255
msgid "invalid root packet detected in proc_tree()\n"
msgstr "ung�ltiges root-Paket in proc_tree() entdeckt\n"
@@ -2535,12 +2664,12 @@ msgstr ""
"Diese Verschl�sselungsmethode taugt nicht mehr viel; verwenden Sie eine "
"st�rker standardisierte Methode!\n"
-#: g10/parse-packet.c:113
+#: g10/parse-packet.c:115
#, c-format
msgid "can't handle public key algorithm %d\n"
msgstr "dieses Public-Key Verfahren %d kann nicht benutzt werden\n"
-#: g10/parse-packet.c:939
+#: g10/parse-packet.c:956
#, c-format
msgid "subpacket of type %d has critical bit set\n"
msgstr "Im Unterpaket des Typs %d ist das \"critical bit\" gesetzt\n"
@@ -2582,15 +2711,19 @@ msgid "data not saved; use option \"--output\" to save it\n"
msgstr ""
"Daten wurden nicht gespeichert; verwenden Sie daf�r die Option \"--output\"\n"
-#: g10/plaintext.c:315
+#: g10/plaintext.c:317
+msgid "Detached signature.\n"
+msgstr "Abgetrennte Beglaubigungen.\n"
+
+#: g10/plaintext.c:321
msgid "Please enter name of data file: "
msgstr "Bitte geben Sie den Namen der Datendatei ein: "
-#: g10/plaintext.c:336
+#: g10/plaintext.c:342
msgid "reading stdin ...\n"
msgstr "lese stdin ...\n"
-#: g10/plaintext.c:379
+#: g10/plaintext.c:385
#, c-format
msgid "can't open signed data `%s'\n"
msgstr "kann signierte Datei '%s' nicht �ffnen.\n"
@@ -2608,535 +2741,598 @@ msgstr "Alles klar, wir sind der ungenannte Empf�nger.\n"
msgid "old encoding of the DEK is not supported\n"
msgstr "alte Kodierung des DEK wird nicht unterst�tzt\n"
-#: g10/pubkey-enc.c:191
+#: g10/pubkey-enc.c:156
+#, c-format
+msgid "cipher algorithm %d is unknown or disabled\n"
+msgstr "Versch�sselungsverfahren %d ist unbekannt oder abgeschaltet\n"
+
+#: g10/pubkey-enc.c:195
#, c-format
msgid "NOTE: cipher algorithm %d not found in preferences\n"
msgstr "Hinweis: Verfahren %d ist kein bevorzugtes Verschl�sselungsverfahren\n"
-#: g10/seckey-cert.c:55
+#: g10/pubkey-enc.c:201
+#, c-format
+msgid "NOTE: secret key %08lX expired at %s\n"
+msgstr "Hinweis: geheimer Schl�ssel %08lX verf�llt am %s\n"
+
+#: g10/hkp.c:62
+#, c-format
+msgid "requesting key %08lX from %s ...\n"
+msgstr "Schl�ssels %08lX von %s wird angefordert ...\n"
+
+#: g10/hkp.c:75
+#, c-format
+msgid "can't get key from keyserver: %s\n"
+msgstr "Schl�ssel ist beim Schl�sselserver nicht erh�ltlich: %s\n"
+
+#: g10/hkp.c:98 g10/hkp.c:136
+msgid "no keyserver known (use option --keyserver)\n"
+msgstr "Kein Schl�sselserver bekannt (Option --keyserver verwenden)\n"
+
+#: g10/hkp.c:106
+#, c-format
+msgid "%s: not a valid key ID\n"
+msgstr "%s: Dies ist keine g�ltige Schl�ssel-ID\n"
+
+#: g10/hkp.c:158
+#, c-format
+msgid "can't connect to `%s': %s\n"
+msgstr "Verbindung zu '%s' kann nicht aufgebaut werden: %s\n"
+
+#: g10/hkp.c:182
+#, c-format
+msgid "error sending to `%s': %s\n"
+msgstr "Fehler beim Senden an `%s': %s\n"
+
+#: g10/hkp.c:194
+#, c-format
+msgid "success sending to `%s' (status=%u)\n"
+msgstr "Senden an `%s' erfolgreich (status=%u)\n"
+
+#: g10/hkp.c:197
+#, c-format
+msgid "failed sending to `%s': status=%u\n"
+msgstr "Senden an `%s' erfolglos (status=%u)\n"
+
+#: g10/seckey-cert.c:53
+msgid "secret key parts are not available\n"
+msgstr "Teile des geheimen Schl�ssels sind nicht vorhanden\n"
+
+#: g10/seckey-cert.c:59
#, c-format
msgid "protection algorithm %d is not supported\n"
msgstr "Schutzverfahren %d wird nicht unterst�tzt\n"
-#: g10/seckey-cert.c:171
+#: g10/seckey-cert.c:175
msgid "Invalid passphrase; please try again ...\n"
msgstr "Ung�ltiges Mantra; versuchen Sie's doch noch einmal ...\n"
-#: g10/seckey-cert.c:227
+#: g10/seckey-cert.c:231
msgid "WARNING: Weak key detected - please change passphrase again.\n"
msgstr ""
"WARNUNG: Unsicherer Schl�ssel entdeckt -\n"
" bitte Mantra nochmals wechseln.\n"
-#: g10/sig-check.c:199
+#: g10/sig-check.c:202
msgid "assuming bad MDC due to an unknown critical bit\n"
msgstr ""
"Vermutlich ist das Siegel (MDC) BESCH�DIGT (wegen unbekanntem \"critical "
"bit\")\n"
-#: g10/sig-check.c:295
+#: g10/sig-check.c:300
msgid ""
"this is a PGP generated ElGamal key which is NOT secure for signatures!\n"
msgstr ""
"Dieser durch PGP erzeugte ElGamal-Schl�ssel ist f�r Signaturen NICHT sicher "
"genug!\n"
-#: g10/sig-check.c:303
+#: g10/sig-check.c:308
#, c-format
msgid "public key is %lu second newer than the signature\n"
msgstr ""
"�ffentlicher Schl�ssel ist um %lu Sekunde j�nger als die Unterschrift\n"
-#: g10/sig-check.c:304
+#: g10/sig-check.c:309
#, c-format
msgid "public key is %lu seconds newer than the signature\n"
msgstr ""
"�ffentlicher Schl�ssel ist um %lu Sekunden j�nger als die Unterschrift\n"
-#: g10/sig-check.c:320
+#: g10/sig-check.c:327
#, c-format
msgid "NOTE: signature key expired %s\n"
msgstr "Hinweis: Schl�ssel der Signatur ist verfallen am %s.\n"
-#: g10/sig-check.c:377
+#: g10/sig-check.c:385
msgid "assuming bad signature due to an unknown critical bit\n"
msgstr ""
"Vermutlich eine FALSCHE Unterschrift, wegen unbekanntem \"critical bit\"\n"
-#: g10/sign.c:132
+#: g10/sign.c:139
#, c-format
msgid "%s signature from: %s\n"
msgstr "%s Unterschrift von: %s\n"
-#: g10/sign.c:263 g10/sign.c:575
+#: g10/sign.c:270 g10/sign.c:582
#, c-format
msgid "can't create %s: %s\n"
msgstr "%s kann nicht erzeugt werden: %s\n"
-#: g10/sign.c:361
+#: g10/sign.c:368
msgid "signing:"
msgstr "unterschreibe:"
-#: g10/sign.c:404
+#: g10/sign.c:411
#, c-format
msgid "WARNING: `%s' is an empty file\n"
msgstr "WARNUNG: '%s' ist eine leere Datei.\n"
-#: g10/textfilter.c:128
+#: g10/textfilter.c:134
#, c-format
msgid "can't handle text lines longer than %d characters\n"
msgstr "Textzeilen l�nger als %d Zeichen k�nnen nicht benutzt werden\n"
-#: g10/textfilter.c:197
+#: g10/textfilter.c:231
#, c-format
msgid "input line longer than %d characters\n"
msgstr "Eingabezeile ist l�nger als %d Zeichen\n"
-#: g10/tdbio.c:121 g10/tdbio.c:1635
+#: g10/tdbio.c:116 g10/tdbio.c:1623
#, c-format
msgid "trustdb rec %lu: lseek failed: %s\n"
msgstr "trustdb Satz %lu: lseek fehlgeschlagen: %s\n"
-#: g10/tdbio.c:127 g10/tdbio.c:1642
+#: g10/tdbio.c:122 g10/tdbio.c:1630
#, c-format
msgid "trustdb rec %lu: write failed (n=%d): %s\n"
msgstr "trustdb Satz %lu: write fehlgeschlagen (n=%d): %s\n"
-#: g10/tdbio.c:237
+#: g10/tdbio.c:232
msgid "trustdb transaction too large\n"
msgstr "trustdb Transaktion zu gro�\n"
-#: g10/tdbio.c:429
+#: g10/tdbio.c:424
#, c-format
msgid "%s: can't access: %s\n"
msgstr "%s: kann nicht zugegriffen werden: %s\n"
-#: g10/ringedit.c:298 g10/tdbio.c:445
-#, c-format
-msgid "%s: can't create directory: %s\n"
-msgstr "%s: Verzeichnis kann nicht erzeugt werden: %s\n"
-
-#: g10/ringedit.c:304 g10/tdbio.c:448
-#, c-format
-msgid "%s: directory created\n"
-msgstr "%s: Verzeichnis erzeugt\n"
-
-#: g10/tdbio.c:452
+#: g10/tdbio.c:438
#, c-format
msgid "%s: directory does not exist!\n"
msgstr "%s: Verzeichnis existiert nicht!\n"
-#: g10/openfile.c:182 g10/openfile.c:253 g10/ringedit.c:1348 g10/tdbio.c:458
+#: g10/openfile.c:216 g10/openfile.c:284 g10/ringedit.c:1363 g10/tdbio.c:444
#, c-format
msgid "%s: can't create: %s\n"
msgstr "%s: kann nicht erzeugt werden: %s\n"
-#: g10/tdbio.c:473 g10/tdbio.c:522
+#: g10/tdbio.c:459 g10/tdbio.c:508
#, c-format
msgid "%s: can't create lock\n"
msgstr "%s: Sperre kann nicht erzeugt werden\n"
-#: g10/tdbio.c:487
+#: g10/tdbio.c:473
#, c-format
msgid "%s: failed to create version record: %s"
msgstr "%s: Fehler beim Erzeugen des Versionsatzes: %s"
-#: g10/tdbio.c:491
+#: g10/tdbio.c:477
#, c-format
msgid "%s: invalid trustdb created\n"
msgstr "%s: ung�ltige trust-db erzeugt\n"
-#: g10/tdbio.c:494
+#: g10/tdbio.c:480
#, c-format
msgid "%s: trustdb created\n"
msgstr "%s: trust-db erzeugt\n"
-#: g10/tdbio.c:531
+#: g10/tdbio.c:517
#, c-format
msgid "%s: invalid trustdb\n"
msgstr "%s: ung�ltige 'Trust'-Datenbank\n"
-#: g10/tdbio.c:564
+#: g10/tdbio.c:550
#, c-format
msgid "%s: failed to create hashtable: %s\n"
msgstr "%s: hashtable kann nicht erzeugt werden: %s\n"
-#: g10/tdbio.c:572
+#: g10/tdbio.c:558
#, c-format
msgid "%s: error updating version record: %s\n"
msgstr "%s: Fehler beim �ndern des Versionsatzes: %s\n"
-#: g10/tdbio.c:588 g10/tdbio.c:627 g10/tdbio.c:649 g10/tdbio.c:679
-#: g10/tdbio.c:704 g10/tdbio.c:1568 g10/tdbio.c:1595
+#: g10/tdbio.c:574 g10/tdbio.c:613 g10/tdbio.c:635 g10/tdbio.c:665
+#: g10/tdbio.c:690 g10/tdbio.c:1556 g10/tdbio.c:1583
#, c-format
msgid "%s: error reading version record: %s\n"
msgstr "%s: Fehler beim Lesen des Versionsatzes: %s\n"
-#: g10/tdbio.c:601 g10/tdbio.c:660
+#: g10/tdbio.c:587 g10/tdbio.c:646
#, c-format
msgid "%s: error writing version record: %s\n"
msgstr "%s: Fehler beim Schreiben des Versionsatzes: %s\n"
-#: g10/tdbio.c:1247
+#: g10/tdbio.c:1235
#, c-format
msgid "trustdb: lseek failed: %s\n"
msgstr "trustdb: lseek fehlgeschlagen: %s\n"
-#: g10/tdbio.c:1255
+#: g10/tdbio.c:1243
#, c-format
msgid "trustdb: read failed (n=%d): %s\n"
msgstr "trustdb: read failed (n=%d): %s\n"
-#: g10/tdbio.c:1276
+#: g10/tdbio.c:1264
#, c-format
msgid "%s: not a trustdb file\n"
msgstr "%s: keine trustdb Datei\n"
-#: g10/tdbio.c:1292
+#: g10/tdbio.c:1280
#, c-format
msgid "%s: version record with recnum %lu\n"
msgstr "%s: version record with recnum %lu\n"
-#: g10/tdbio.c:1297
+#: g10/tdbio.c:1285
#, c-format
msgid "%s: invalid file version %d\n"
msgstr "%s: invalid file version %d\n"
-#: g10/tdbio.c:1601
+#: g10/tdbio.c:1589
#, c-format
msgid "%s: error reading free record: %s\n"
msgstr "%s: Fehler beim Lesen eines freien Satzes: %s\n"
-#: g10/tdbio.c:1609
+#: g10/tdbio.c:1597
#, c-format
msgid "%s: error writing dir record: %s\n"
msgstr "%s: Fehler beim Schreiben eines Verzeichnis-Satzes: %s\n"
-#: g10/tdbio.c:1619
+#: g10/tdbio.c:1607
#, c-format
msgid "%s: failed to zero a record: %s\n"
msgstr "%s: konnte einen Satz nicht Nullen: %s\n"
-#: g10/tdbio.c:1649
+#: g10/tdbio.c:1637
#, c-format
msgid "%s: failed to append a record: %s\n"
msgstr "%s: konnte Satz nicht anh�ngen: %s\n"
-#: g10/tdbio.c:1760
+#: g10/tdbio.c:1748
msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
msgstr ""
"Die \"Trust\"-Datenbank ist besch�digt; verwenden Sie \"gpg "
"--fix-trustdb\".\n"
-#: g10/trustdb.c:160
+#: g10/trustdb.c:168
#, c-format
msgid "trust record %lu, req type %d: read failed: %s\n"
msgstr "trust record %lu, req type %d: read failed: %s\n"
-#: g10/trustdb.c:175
+#: g10/trustdb.c:183
#, c-format
msgid "trust record %lu, type %d: write failed: %s\n"
msgstr "trust record %lu, type %d: write failed: %s\n"
-#: g10/trustdb.c:189
+#: g10/trustdb.c:197
#, c-format
msgid "trust record %lu: delete failed: %s\n"
msgstr "Vertrauenssatz %lu: l�schen fehlgeschlagen: %s\n"
-#: g10/trustdb.c:203
+#: g10/trustdb.c:211
#, c-format
msgid "trustdb: sync failed: %s\n"
msgstr "\"Trust-DB\": sync fehlgeschlagen: %s\n"
-#: g10/trustdb.c:347
+#: g10/trustdb.c:376
#, c-format
msgid "error reading dir record for LID %lu: %s\n"
msgstr "Fehler beim Lesen des Dir-Satzes f�r LID %lu: %s\n"
-#: g10/trustdb.c:354
+#: g10/trustdb.c:383
#, c-format
msgid "lid %lu: expected dir record, got type %d\n"
msgstr "lid %lu: Dir-Satz erwartet, aber es kam Typ %d\n"
-#: g10/trustdb.c:359
+#: g10/trustdb.c:388
#, c-format
msgid "no primary key for LID %lu\n"
msgstr "Kein Hauptschl�ssel f�r LID %lu\n"
-#: g10/trustdb.c:364
+#: g10/trustdb.c:393
#, c-format
msgid "error reading primary key for LID %lu: %s\n"
msgstr "Fehler beim Lesen den Hauptschl�ssels der LID %lu: %s\n"
-#: g10/trustdb.c:403
+#: g10/trustdb.c:432
#, c-format
msgid "get_dir_record: search_record failed: %s\n"
msgstr "get_dir_record: search_record fehlgeschlagen: %s\n"
-#: g10/trustdb.c:458
+#: g10/trustdb.c:487
#, c-format
msgid "NOTE: secret key %08lX is NOT protected.\n"
msgstr "HINWEIS: Geheimer Schl�ssel %08lX ist NICHT gesch�tzt.\n"
-#: g10/trustdb.c:466
+#: g10/trustdb.c:495
#, c-format
msgid "key %08lX: secret key without public key - skipped\n"
msgstr ""
"Schl�ssel %08lX: geheimer Schl�ssel, aber ohne �ffentlichen Schl�ssel - "
"�bersprungen\n"
-#: g10/trustdb.c:473
+#: g10/trustdb.c:502
#, c-format
msgid "key %08lX: secret and public key don't match\n"
msgstr ""
"Schl�ssel %08lX: geheimer und �ffentlicher Schl�ssel passen nicht zusammen.\n"
-#: g10/trustdb.c:485
+#: g10/trustdb.c:514
#, c-format
msgid "key %08lX: can't put it into the trustdb\n"
msgstr "Schl�ssel %08lX kann nicht in die \"trustdb\" eingef�gt werden\n"
-#: g10/trustdb.c:491
+#: g10/trustdb.c:520
#, c-format
msgid "key %08lX: query record failed\n"
msgstr "Schl�ssel %08lX: Satzabfrage fehlgeschlagen\n"
-#: g10/trustdb.c:500
+#: g10/trustdb.c:529
#, c-format
msgid "key %08lX: already in trusted key table\n"
msgstr "Schl�ssel %08lX: Ist bereits in geheimer Schl�sseltabelle\n"
-#: g10/trustdb.c:503
+#: g10/trustdb.c:532
#, c-format
msgid "key %08lX: accepted as trusted key.\n"
msgstr "Schl�ssel %08lX: Akzeptiert als vertrauensw�rdiger Schl�ssel.\n"
-#: g10/trustdb.c:511
+#: g10/trustdb.c:540
#, c-format
msgid "enumerate secret keys failed: %s\n"
msgstr "enum_secret_keys fehlgeschlagen: %s\n"
-#: g10/trustdb.c:877
+#: g10/trustdb.c:921
#, c-format
msgid "key %08lX.%lu: Good subkey binding\n"
msgstr "Schl�ssel %08lX.%lu: Korrekte Unterschl�ssel-Anbindung\n"
-#: g10/trustdb.c:883 g10/trustdb.c:918
+#: g10/trustdb.c:927 g10/trustdb.c:962
#, c-format
msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
-msgstr "Schl�ssel %08lX.%lu: Ung�ltige Unterschl�ssel-Anbindung\n"
+msgstr "Schl�ssel %08lX.%lu: Ung�ltige Unterschl�ssel-Anbindung: %s\n"
-#: g10/trustdb.c:895
+#: g10/trustdb.c:939
#, c-format
msgid "key %08lX.%lu: Valid key revocation\n"
msgstr "Schl�ssel %08lX.%lu: G�ltiger Schl�sselwiderruf\n"
-#: g10/trustdb.c:901
+#: g10/trustdb.c:945
#, c-format
msgid "key %08lX.%lu: Invalid key revocation: %s\n"
msgstr "Schl�ssel %08lX.%lu: Ung�ltiger Schl�sselwiderruf: %s\n"
-#: g10/trustdb.c:912
+#: g10/trustdb.c:956
#, c-format
msgid "key %08lX.%lu: Valid subkey revocation\n"
msgstr "Schl�ssel %08lX.%lu: G�ltiger Unterschl�sselwiderruf\n"
-#: g10/trustdb.c:1023
+#: g10/trustdb.c:1067
msgid "Good self-signature"
msgstr "Korrekte Eigenbeglaubigung"
-#: g10/trustdb.c:1033
+#: g10/trustdb.c:1077
msgid "Invalid self-signature"
msgstr "Ung�ltige Eigenbeglaubigung"
-#: g10/trustdb.c:1060
+#: g10/trustdb.c:1104
msgid "Valid user ID revocation skipped due to a newer self signature"
msgstr ""
"G�ltiger User-ID-Widerruf ignoriert, da eine neuere Eigenbeglaubigung "
"vorliegt"
-#: g10/trustdb.c:1066
+#: g10/trustdb.c:1110
msgid "Valid user ID revocation"
msgstr "G�ltiger User-ID-Widerruf"
-#: g10/trustdb.c:1071
+#: g10/trustdb.c:1115
msgid "Invalid user ID revocation"
msgstr "Ung�ltiger User-ID-Widerruf"
-#: g10/trustdb.c:1112
+#: g10/trustdb.c:1157
msgid "Valid certificate revocation"
msgstr "G�ltiger Zerifikat-Widerruf"
-#: g10/trustdb.c:1113
+#: g10/trustdb.c:1158
msgid "Good certificate"
msgstr "Korrektes Zertifikat"
-#: g10/trustdb.c:1134
+#: g10/trustdb.c:1186
msgid "Invalid certificate revocation"
msgstr "Ung�ltiger Zertifikatswiderruf"
-#: g10/trustdb.c:1135
+#: g10/trustdb.c:1187
msgid "Invalid certificate"
msgstr "Ung�ltiges Zertifikat"
-#: g10/trustdb.c:1152 g10/trustdb.c:1156
+#: g10/trustdb.c:1204 g10/trustdb.c:1208
#, c-format
msgid "sig record %lu[%d] points to wrong record.\n"
msgstr "Signatursatz %lu[%d] zeigt auf falschen Satz.\n"
-#: g10/trustdb.c:1208
+#: g10/trustdb.c:1267
msgid "duplicated certificate - deleted"
msgstr "Doppelte Zertifikate - entfernt"
-#: g10/trustdb.c:1514
+#: g10/trustdb.c:1584
#, c-format
msgid "tdbio_search_dir failed: %s\n"
msgstr "tdbio_search_dir fehlgeschlagen: %s\n"
-#: g10/trustdb.c:1636
+#: g10/trustdb.c:1718
#, c-format
msgid "lid ?: insert failed: %s\n"
msgstr "lid ?: Einf�gen fehlgeschlagen: %s\n"
-#: g10/trustdb.c:1641
+#: g10/trustdb.c:1723
#, c-format
msgid "lid %lu: insert failed: %s\n"
msgstr "lid %lu: Einf�gen fehlgeschlagen: %s\n"
-#: g10/trustdb.c:1647
+#: g10/trustdb.c:1729
#, c-format
msgid "lid %lu: inserted\n"
msgstr "lid %lu: eingef�gt\n"
-#: g10/trustdb.c:1652
+#: g10/trustdb.c:1734
#, c-format
msgid "error reading dir record: %s\n"
msgstr "Fehler beim Lesen des Verz.Satzes: %s\n"
-#: g10/trustdb.c:1660 g10/trustdb.c:1714
+#: g10/trustdb.c:1742 g10/trustdb.c:1805
#, c-format
msgid "%lu keys processed\n"
msgstr "%lu Schl�ssel bearbeitet\n"
-#: g10/trustdb.c:1662 g10/trustdb.c:1718
+#: g10/trustdb.c:1744 g10/trustdb.c:1811
#, c-format
msgid "\t%lu keys with errors\n"
msgstr "\t%lu Schl�ssel mit Fehlern\n"
-#: g10/trustdb.c:1664
+#: g10/trustdb.c:1746
#, c-format
msgid "\t%lu keys inserted\n"
msgstr "\t%lu Schl�ssel eingef�gt\n"
-#: g10/trustdb.c:1667
+#: g10/trustdb.c:1749
#, c-format
msgid "enumerate keyblocks failed: %s\n"
msgstr "enumerate Schl�sselblock fehlgeschlagen: %s\n"
-#: g10/trustdb.c:1705
+#: g10/trustdb.c:1797
#, c-format
msgid "lid %lu: dir record w/o key - skipped\n"
msgstr "lid %lu: Dir-Satz ohne Schl�ssel - �bergangen\n"
-#: g10/trustdb.c:1716
+#: g10/trustdb.c:1807
+#, c-format
+msgid "\t%lu due to new pubkeys\n"
+msgstr "\t%lu wegen neuer Schl�ssel\n"
+
+#: g10/trustdb.c:1809
#, c-format
msgid "\t%lu keys skipped\n"
msgstr "\t%lu Schl�ssel �bersprungen\n"
-#: g10/trustdb.c:1720
+#: g10/trustdb.c:1813
#, c-format
msgid "\t%lu keys updated\n"
msgstr "\t%lu Schl�ssel ge�ndert\n"
-#: g10/trustdb.c:2057
+#: g10/trustdb.c:2158
msgid "Ooops, no keys\n"
msgstr "Huch, keine Schl�ssel\n"
-#: g10/trustdb.c:2061
+#: g10/trustdb.c:2162
msgid "Ooops, no user IDs\n"
msgstr "Huch, keine User-IDs\n"
-#: g10/trustdb.c:2218
+#: g10/trustdb.c:2320
#, c-format
msgid "check_trust: search dir record failed: %s\n"
msgstr "check_trust: Suche nach Dir-Satz fehlgeschlagen: %s\n"
-#: g10/trustdb.c:2227
+#: g10/trustdb.c:2329
#, c-format
msgid "key %08lX: insert trust record failed: %s\n"
msgstr "Schl�ssel %08lX: 'trust record' einf�gen fehlgeschlagen: %s\n"
-#: g10/trustdb.c:2231
+#: g10/trustdb.c:2333
#, c-format
msgid "key %08lX.%lu: inserted into trustdb\n"
msgstr "Schl�ssel %08lX.%lu: in \"trustdb\" eingef�gt\n"
-#: g10/trustdb.c:2239
+#: g10/trustdb.c:2341
#, c-format
msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
msgstr ""
"Schl�ssel %08lX.%lu: wurde in der Zukunft erzeugt (Zeitreise oder Uhren "
"stimmen nicht �berein)\n"
-#: g10/trustdb.c:2248
+#: g10/trustdb.c:2356
#, c-format
msgid "key %08lX.%lu: expired at %s\n"
msgstr "Schl�ssel %08lX.%lu: verfallen am %s\n"
-#: g10/trustdb.c:2256
+#: g10/trustdb.c:2364
#, c-format
msgid "key %08lX.%lu: trust check failed: %s\n"
msgstr "Schl�ssel %08lX.%lu: Vertrauenspr�fung fehlgeschlagen: %s\n"
-#: g10/trustdb.c:2362
+#: g10/trustdb.c:2515
#, c-format
msgid "user '%s' not found: %s\n"
msgstr "Benutzer '%s' nicht gefunden: %s\n"
-#: g10/trustdb.c:2364
+#: g10/trustdb.c:2517
#, c-format
msgid "problem finding '%s' in trustdb: %s\n"
msgstr "Problem, '%s' in der Trust-DB zu finden: %s\n"
-#: g10/trustdb.c:2367
+#: g10/trustdb.c:2520
#, c-format
msgid "user '%s' not in trustdb - inserting\n"
msgstr "User '%s' ist nicht in der 'Trust'-Datenbank - wird eingef�gt\n"
-#: g10/trustdb.c:2370
+#: g10/trustdb.c:2523
#, c-format
msgid "failed to put '%s' into trustdb: %s\n"
msgstr "konnte '%s' nicht in die 'Trust'-Datenbank hineintun: %s\n"
-#: g10/trustdb.c:2556 g10/trustdb.c:2586
+#: g10/trustdb.c:2709 g10/trustdb.c:2739
msgid "WARNING: can't yet handle long pref records\n"
msgstr "WARNUNG: Lange 'Pref'-Records k�nnen noch nicht benutzt werden\n"
-#: g10/ringedit.c:318
+#: g10/verify.c:82
+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 ""
+"Die Unterschrift konnte nicht �berpr�ft werden.\n"
+"Denken Sie daran, da� die Datei mit der Unterschrift (.sig oder .asc)\n"
+"als erster in der Kommandozeile stehen sollte.\n"
+
+#: g10/verify.c:147
+#, c-format
+msgid "input line %u too long or missing LF\n"
+msgstr "Eingabezeile %u ist zu lang oder es fehlt ein LF\n"
+
+#: g10/ringedit.c:302
#, c-format
msgid "%s: can't create keyring: %s\n"
msgstr "%s: Schl�sselbund kann nicht erzeugt werden: %s\n"
-#: g10/ringedit.c:335 g10/ringedit.c:1353
+#: g10/ringedit.c:319 g10/ringedit.c:1368
#, c-format
msgid "%s: keyring created\n"
msgstr "%s: Schl�sselbund erstellt\n"
-#: g10/ringedit.c:1530
+#: g10/ringedit.c:1545
msgid "WARNING: 2 files with confidential information exists.\n"
msgstr "Warnung: Zwei Dateien mit vertraulichem Inhalt vorhanden.\n"
-#: g10/ringedit.c:1531
+#: g10/ringedit.c:1546
#, c-format
msgid "%s is the unchanged one\n"
msgstr "%s ist der Unver�nderte\n"
-#: g10/ringedit.c:1532
+#: g10/ringedit.c:1547
#, c-format
msgid "%s is the new one\n"
msgstr "%s ist der Neue\n"
-#: g10/ringedit.c:1533
+#: g10/ringedit.c:1548
msgid "Please fix this possible security flaw\n"
msgstr "Bitte diesen potentiellen Sicherheitsmangel beseitigen\n"
@@ -3161,38 +3357,53 @@ msgstr ""
"ist f�r Signaturen NICHT sicher genug!\n"
#. do not overwrite
-#: g10/openfile.c:65
+#: g10/openfile.c:79
#, c-format
msgid "File `%s' exists. "
msgstr "Datei '%s' existiert bereits. "
-#: g10/openfile.c:67
+#: g10/openfile.c:81
msgid "Overwrite (y/N)? "
msgstr "�berschreiben (j/N)? "
-#: g10/openfile.c:97
+#: g10/openfile.c:109
#, c-format
msgid "%s: unknown suffix\n"
msgstr "%s: unbekannte Dateinamenerweiterung\n"
-#: g10/openfile.c:119
+#: g10/openfile.c:131
msgid "Enter new filename"
msgstr "Neuen Dateinamen eingeben"
-#: g10/openfile.c:160
+#: g10/openfile.c:172
msgid "writing to stdout\n"
msgstr "Schreiben auf die Standardausgabe\n"
-#: g10/openfile.c:219
+#: g10/openfile.c:250
#, c-format
msgid "assuming signed data in `%s'\n"
msgstr "die unterzeichneten Daten sind wohl in '%s'\n"
-#: g10/openfile.c:269
+#: g10/openfile.c:300
#, c-format
msgid "%s: new options file created\n"
msgstr "%s: neue Optionendatei erstellt\n"
+#: g10/openfile.c:313
+#, c-format
+msgid "%s: can't create directory: %s\n"
+msgstr "%s: Verzeichnis kann nicht erzeugt werden: %s\n"
+
+#: g10/openfile.c:316
+#, c-format
+msgid "%s: directory created\n"
+msgstr "%s: Verzeichnis erzeugt\n"
+
+#: g10/openfile.c:318
+msgid "you have to start GnuPG again, so it can read the new options file\n"
+msgstr ""
+"Sie m�ssen GnuPG noch einmal starten, damit es die neue Optionsdatei liest\n"
+
#: g10/encr-data.c:66
#, c-format
msgid "%s encrypted data\n"
@@ -3220,25 +3431,25 @@ msgstr ""
"Trotz %d-fachen Versuch konnte die Erzeugung eines unsicheren Schl�ssels f�r "
"sym.Verschl�sselung nicht vermieden werden!\n"
-#: g10/delkey.c:93
+#: g10/delkey.c:94
msgid "there is a secret key for this public key!\n"
msgstr "Es gibt einen privaten Schl�ssel zu diesem �ffentlichen Schl�ssel!\n"
-#: g10/delkey.c:95
+#: g10/delkey.c:96
msgid "use option \"--delete-secret-key\" to delete it first.\n"
msgstr ""
"Benutzen Sie das Kommando \"--delete-secret-key\", um ihn vorab zu "
"entfernen.\n"
-#: g10/delkey.c:111
+#: g10/delkey.c:114
msgid "can't do that in batchmode without \"--yes\"\n"
msgstr "Dies kann im Batchmodus ohne \"--yes\" nicht durchgef�hrt werden.\n"
-#: g10/delkey.c:133
+#: g10/delkey.c:136
msgid "Delete this key from the keyring? "
msgstr "Diesen Schl�ssel aus dem Schl�sselbund l�schen? "
-#: g10/delkey.c:141
+#: g10/delkey.c:144
msgid "This is a secret key! - really delete? "
msgstr "Dies ist ein privater Schl�ssel! - Wirklich l�schen? "
@@ -3488,542 +3699,59 @@ msgstr ""
"Eingabetaste bet�tigen, wird der (in Klammern angezeigte) Standarddateiname\n"
"verwendet."
-#: g10/helptext.c:237
+#: g10/helptext.c:229
+#, fuzzy
+msgid ""
+"You should specify a reason for the certification. Depending on the\n"
+"context you have the ability to choose from this list:\n"
+" \"Key has been compromised\"\n"
+" Use this if you have a reason to believe that unauthorized persons\n"
+" got access to your secret key.\n"
+" \"Key is superseeded\"\n"
+" Use this if you have replaced this key with a newer one.\n"
+" \"Key is no longer used\"\n"
+" Use this if you have retired this key.\n"
+" \"User ID is no longer valid\"\n"
+" 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 ""
+"Sie sollten einen Grund f�r die Zertifizierung angeben. Je nach\n"
+"Zusammenhang k�nnen Sie aus dieser Liste ausw�hlen:\n"
+" \"Schl�ssel wurde kompromitiert\"\n"
+" Falls Sie Grund zu der Annahme haben, da� nicht berechtigte Personen\n"
+" Zugriff zu Ihrem geheimen Schl�ssel hatten, so w�hlen sie diesen "
+"Punkt\n"
+" \"Schl�ssel ist �berholt\"\n"
+" Falls Sie diesen Schl�ssel durch einem neuen ersetzt haben.\n"
+" \"Schl�ssel wird nicht mehr benutzt\"\n"
+" Falls Sie diesen Schl�ssel zur�ckgezogen haben.\n"
+" \"User-ID ist nicht mehr g�ltig\"\n"
+" Um bekanntzugeben, da� die User-ID nicht mehr benutzt werden soll.\n"
+" �blicherweise zeigt man so an, da� eine E-Mailadresse nicht mehr "
+"gilt.\n"
+
+#: g10/helptext.c:245
+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 ""
+"Wenn Sie m�chten, k�nnen Sie hier einen Text eingeben, der darlegt, warum\n"
+"Sie diesen Widerruf herausgeben. Der Text sollte m�glichst knapp sein.\n"
+"Eine Leerzeile beendet die Eingabe.\n"
+
+#: g10/helptext.c:260
msgid "No help available"
msgstr "Keine Hilfe vorhanden."
-#: g10/helptext.c:245
+#: g10/helptext.c:268
#, c-format
msgid "No help available for `%s'"
msgstr "Keine Hilfe f�r '%s' vorhanden."
-# "It's up to you to assign a value here; this value will never be exported\n"
-# "to any 3rd party. We need it to implement the web-of-trust; it has nothing\n"
-# "to do with the (implicitly created) web-of-certificates."
-#~ msgid "edit_ownertrust.value"
-#~ msgstr ""
-#~ "SIE m�ssen hier einen Wert eingeben. Dieser Wert wird niemals an eine "
-#~ "Dritte\n"
-#~ "weitergegeben (exportiert) werden. Wir brauchen ihn zum Aufbau des\n"
-#~ "\"web-of-trust\", Er hat nichts mit dem (stillschweigend aufgebautem)\n"
-#~ "\"web-of-certificates\" zu tun."
-
-# "If you want to use this revoked key anyway, answer \"yes\"."
-#~ msgid "revoked_key.override"
-#~ msgstr ""
-#~ "Wenn Sie diesen widerrufenen Schl�ssel trotzdem benutzen wollen,\n"
-#~ "so antworten Sie mit \"ja\" oder schweigen f�r immer."
-
-# "If you want to use this untrusted key anyway, answer \"yes\"."
-#~ msgid "untrusted_key.override"
-#~ msgstr ""
-#~ "Wenn Sie diesen nichtvertruensw�rdigen Schl�ssel trotzdem benutzen wollen,\n"
-#~ "so antworten Sie mit \"ja\" oder schweigen Sie f�r immer."
-
-# "Enter the user id of the addresse to whom you want to send the message."
-#~ msgid "pklist.user_id.enter"
-#~ msgstr ""
-#~ "Geben Sie die User-ID dessen ein, an den Sie die Botschaft senden wollen."
-
-#~ msgid "keygen.algo"
-#~ msgstr ""
-#~ "W�hlen Sie die zu verwendende Methode aus.\n"
-#~ "DSA (alias DSS) bedeutet \"digital signature algorithm\" (Digitales\n"
-#~ " Unterschrift-Verfahren). Es kann nur zum Unterschreiben und Beglaubigen\n"
-#~ " benutzt werden. Dies ist das empfohlene Verfahren, da dessen �berpr�fung\n"
-#~ " wesentlich schneller abl�uft, als die von \"ElGamal\".\n"
-#~ "\n"
-#~ "ElGamal ist ein Verfahren f�r Unterschrift, Beglaubigung und "
-#~ "Verschl�sselung\n"
-#~ " OpenPGP unterscheidet zwischen zwei Arten von ElGamal: eines nur zum\n"
-#~ " Unterschreiben/Beglaubigen und eines zus�tzlich zum Verschl�sseln.\n"
-#~ " Eigentlich sind diese Arten identisch; allerdings m�ssen einige Parameter\n"
-#~ " auf eine besondere Art gew�hlt werden, um einen sicheren Schl�ssel f�r\n"
-#~ " Unterschriften zu erzeugen. Dieses Programm macht dies zwar so, aber "
-#~ "andere\n"
-#~ " Programme sind nach OpenPGP-Spezifikation nicht verpflichtet die zweite "
-#~ "Art\n"
-#~ " (die mit zus�tzlichem Verschl�sseln) zu verstehen.\n"
-#~ "\n"
-#~ "Der Hauptschl�ssel (\"primary Key\") mu� auf jeden Fall zum Unterschreiben "
-#~ "f�hig\n"
-#~ "sein. Deshalb kann ein Nur-Verschl�ssel-ElGamal-Schl�ssel daf�r nicht\n"
-#~ "verwendet werden.\n"
-#~ "Auch sollte man \"ElGamal in einem v3-Paket\" nicht verwenden, denn solch "
-#~ "ein\n"
-#~ "Schl�ssel ist nicht mit anderen Programmen nach der OpenPGP-Spezifikation\n"
-#~ "vertr�glich."
-
-# 0.9.0: 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."
-#~ msgid "keygen.algo.elg_se"
-#~ msgstr ""
-#~ "Obwohl diese Schl�ssel in RFC 2440 definiert sind, ist ihre Verwendung "
-#~ "nicht\n"
-#~ "empfohlen. Sie werden n�mlich nicht von allen Programmen unterst�tzt.\n"
-#~ "Au�erdem sind damit ezeugte Unterschriften recht gro� und die �berpr�fung\n"
-#~ "ist langsam."
-
-# "Enter the size of the key"
-#~ msgid "keygen.size"
-#~ msgstr ""
-#~ "W�hlen Sie die gew�nschte Schl�ssell�nge.\n"
-#~ "\n"
-#~ "Ein langer Schl�ssel bietet mehr Sicherheit, kostet aber auch mehr "
-#~ "Rechenzeit.\n"
-#~ "Ein kurzer Schl�ssel ist nicht ganz so sicher, wird aber schneller "
-#~ "bearbeitet.\n"
-#~ "1024 Bit ist f�r den Heimgebrauch ein brauchbarer Wert. Wenn Sie aber z.B. "
-#~ "in\n"
-#~ "Atlanta, Georgia, USA f�r eine Limonandenfabrik arbeiten, und das Rezept\n"
-#~ "speichern wollen (\"SCHLEMMER!\"), so w�ren 2048 Bit kein schlechter Wert."
-
-# "Answer \"yes\" or \"no\""
-#~ msgid "keygen.size.huge.okay"
-#~ msgstr "Geben Sie \"Ja\" oder \"Nein\" ein"
-
-#~ msgid "keygen.size.large.okay"
-#~ msgstr "Geben Sie \"Ja\" oder \"Nein\" ein"
-
-#~ msgid "keygen.valid"
-#~ msgstr "Geben Sie den erforderlichen Wert ein"
-
-#~ msgid "keygen.valid.okay"
-#~ msgstr "Geben Sie \"Ja\" oder \"Nein\" ein"
-
-# "Enter the name of the key holder"
-#~ msgid "keygen.name"
-#~ msgstr "Geben Sie den Namen des Schl�sselinhabers ein"
-
-# "please enter an optional but highly suggested email address"
-#~ msgid "keygen.email"
-#~ msgstr ""
-#~ "Geben Sie eine E-Mail-Adresse ein. Dies ist zwar nicht notwendig,\n"
-#~ "aber empfehlenswert."
-
-# "Please enter an optional comment"
-#~ msgid "keygen.comment"
-#~ msgstr "Geben Sie (bei Bedarf) einen Kommentar ein"
-
-# "N to change the name.\n"
-# "C to change the comment.\n"
-# "E to change the email address.\n"
-# "O to continue with key generation.\n"
-# "Q to to quit the key generation."
-#~ msgid "keygen.userid.cmd"
-#~ msgstr ""
-#~ "N um den Namen zu �ndern.\n"
-#~ "K um den Kommentar zu �ndern.\n"
-#~ "E um die E-Mail-Adresse zu �ndern.\n"
-#~ "F um mit der Schl�sselerzeugung fortzusetzen.\n"
-#~ "B um die Schl�sselerzeugung abbrechen."
-
-# "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
-#~ msgid "keygen.sub.okay"
-#~ msgstr ""
-#~ "Geben Sie \"Ja\" (oder nur \"j\") ein, um den Unterschl�ssel zu erzeugen."
-
-# "Answer \"yes\" or \"no\""
-#~ msgid "sign_uid.okay"
-#~ msgstr "Geben Sie \"Ja\" oder \"Nein\" ein"
+#~ msgid " (%d) ElGamal in a v3 packet\n"
+#~ msgstr " (%d) ElGamal in einem v3-Paket\n"
-# "Answer \"yes\" or \"no\""
-#~ msgid "change_passwd.empty.okay"
-#~ msgstr "Geben Sie \"Ja\" oder \"Nein\" ein"
-
-# "Answer \"yes\" or \"no\""
-#~ msgid "keyedit.save.okay"
-#~ msgstr "Geben Sie \"Ja\" oder \"Nein\" ein"
-
-#~ msgid "keyedit.cancel.okay"
-#~ msgstr "Geben Sie \"Ja\" oder \"Nein\" ein"
-
-# "Answer \"yes\" is you want to sign ALL the user IDs"
-#~ msgid "keyedit.sign_all.okay"
-#~ msgstr ""
-#~ "Geben Sie \"Ja\" (oder nur \"j\") ein, um alle User-IDs zu beglaubigen"
-
-# "Answer \"yes\" if you really want to delete this user ID.\n"
-# "All ceritifcates are then also lost!"
-#~ msgid "keyedit.remove.uid.okay"
-#~ msgstr ""
-#~ "Geben Sie \"Ja\" (oder nur \"j\") ein, um diese User-ID zu L�SCHEN.\n"
-#~ "Alle Zertifikate werden dann auch weg sein!"
-
-# "Answer \"yes\" if it is okay to delete the subkey"
-#~ msgid "keyedit.remove.subkey.okay"
+#~ msgid "Key generation can only be used in interactive mode\n"
#~ msgstr ""
-#~ "Geben Sie \"Ja\" (oder nur \"j\") ein, um diesen Unterschl�ssel zu l�schen"
-
-# ("keyedit.delsig.valid"),
-# "This is a valid signature on the key; you normally don't want\n"
-# "to delete this signature may be important to establish a trust\n"
-# "connection to the key or another key certified by this key."
-#~ msgid "keyedit.delsig.valid"
-#~ msgstr ""
-#~ "Dies ist eine g�ltige Beglaubigung f�r den Schl�ssel. Es ist normalerweise\n"
-#~ "unn�tig sie zu l�schen. Sie ist m�glicherweise sogar notwendig, um einen\n"
-#~ "Trust-Weg zu diesem oder einem durch diesen Schl�ssel beglaubigten "
-#~ "Schl�ssel\n"
-#~ "herzustellen"
-
-# "This signature can't be checked because you don't have the\n"
-# "corresponding key. You should postpone its deletion until you\n"
-# "know which key was used because this signing key might establish"
-# "a trust connection through another already certified key."
-#~ msgid "keyedit.delsig.unknown"
-#~ msgstr ""
-#~ "Diese Beglaubigung kann nicht gepr�ft werden, da Sie den passenden Scl�ssel\n"
-#~ "nicht besitzen. Sie sollten die L�schung der Beglaubigung verschieben, bis\n"
-#~ "sie wissen, welcher Schl�ssel verwendet wurde. Denn vielleicht w�rde genau\n"
-#~ "diese Beglaubigung den \"Trust\"-Weg kompletieren."
-
-# ("keyedit.delsig.invalid"),
-# "The signature is not valid. It does make sense to remove it from\n"
-# "your keyring if it is really invalid and not just unchecked due to\n"
-# "a missing public key (marked by \"sig?\")."
-#~ msgid "keyedit.delsig.invalid"
-#~ msgstr ""
-#~ "Diese Beglaubigung ist ung�ltig. Es ist sinnvoll sie aus Ihrem\n"
-#~ "Schl�sselbund zu entfernen, sofern sie wirklich ung�ltig ist und nicht nur\n"
-#~ "wegen eines fehlenden �ff.Schl�ssel (\"sig?\") unkontrollierbar ist."
-
-# ("keyedit.delsig.selfsig")
-# "This is a signature which binds the user ID to the key. It is\n"
-# "usually not a good idea to remove such a signature. Actually\n"
-# "GnuPG might not be able to use this key anymore. So do this\n"
-# "only if this self-signature is for some reason not valid and\n"
-# "a second one is available."
-#~ msgid "keyedit.delsig.selfsig"
-#~ msgstr ""
-#~ "Diese Beglaubigung bindet die User-ID an den Schl�ssel. Normalerweise ist\n"
-#~ "es nicht gut, solche Beglaubigungen zu entfernen. Um ehrlich zu sein:\n"
-#~ "Es kann sein, da� GnuPG solche Schl�ssel gar nicht mehr benutzen kann.\n"
-#~ "Sie sollten diese Eigenbeglaubigung also nur dann entfernen, wenn sie aus\n"
-#~ "irgendeinem Grund nicht g�ltig ist und eine zweite Beglaubigung verf�gbar "
-#~ "ist."
-
-# ################################
-# ####### Help msgids ############
-# ################################
-#~ msgid "passphrase.enter"
-#~ msgstr ""
-#~ "Bitte geben Sie das Mantra ein. Dies ist ein geheimer Satz, der aus\n"
-#~ "beliebigen Zeichen bestehen kann. Was Sie eingegeben wird nicht angezeigt.\n"
-#~ "\n"
-#~ "Zur ihrer eigenen Sicherbeit benutzen Sie bitte einen Satz, den sie sich\n"
-#~ "gut merken k�nne, der aber nicht leicht zu erraten ist; Zitate und andere\n"
-#~ "bekannte Texte sind eine SCHLECHTE Wahl, da diese mit Sicherheit online\n"
-#~ "verf�gbar sind und durch entsprechende Programme zum Raten des Mantras\n"
-#~ "benutzt werden. S�tze mit pers�nlicher Bedeutung, die auch noch durch\n"
-#~ "falsche Gro�-/Kleinschreibung und eingestreute Sonderzeichen ver�ndert "
-#~ "werden,\n"
-#~ "sind i.d.R. eine gute Wahl"
-
-#~ msgid "passphrase.repeat"
-#~ msgstr ""
-#~ "Um sicher zu gehen, da� Sie sich bei der Eingabe des Mantras nicht\n"
-#~ "vertippt haben, geben Sie diese bitte nochmal ein. Nur wenn beide Eingaben\n"
-#~ "�bereinstimmen, wird das Mantra akzeptiert."
-
-# "Give the name fo the file to which the signature applies"
-#~ msgid "detached_signature.filename"
-#~ msgstr ""
-#~ "Geben Sie den Namen der Datei an, zu dem die abgetrennte Unterschrift geh�rt"
-
-# "Answer \"yes\" if it is okay to overwrite the file"
-#~ msgid "openfile.overwrite.okay"
-#~ msgstr "Geben Sie \"ja\" ein, wenn Sie die Datei �berschreiben m�chten"
-
-# "Please enter a new filename. If you just hit RETURN the default\n"
-# "file (which is shown in brackets) will be used."
-#~ msgid "openfile.askoutname"
-#~ msgstr ""
-#~ "Geben Sie bitte einen neuen Dateinamen ein. Falls Sie nur die\n"
-#~ "Eingabetaste bet�tigen, wird der (in Klammern angezeigte) Standarddateiname\n"
-#~ "verwendet."
-
-#~ msgid "tdbio_search_sdir failed: %s\n"
-#~ msgstr "tdbio_search_sdir fehlgeschlagen: %s\n"
-
-#~ msgid "print all message digests"
-#~ msgstr "Message-Digests f�r die Eingabedaten ausgeben"
-
-#~ msgid "Too many preferences"
-#~ msgstr "Zu viele Einstellungen"
-
-#~ msgid "Too many preference items"
-#~ msgstr "Zu viele Angaben zur Bevorzugung"
-
-#~ msgid "insert_trust_record: keyblock not found: %s\n"
-#~ msgstr "insert_trust_record: Schl�sselblock nicht gefunden: %s\n"
-
-#~ msgid "lid %lu: update failed: %s\n"
-#~ msgstr "lid %lu: �nderung fehlgeschlagen: %s\n"
-
-#~ msgid "lid %lu: updated\n"
-#~ msgstr "lid %lu: ge�ndert\n"
-
-#~ msgid "lid %lu: okay\n"
-#~ msgstr "lid %lu: In Ordnung\n"
-
-#~ msgid "NOTE: sig rec %lu[%d] in hintlist of %lu but marked as checked\n"
-#~ msgstr "Hinweis: sig rec %lu[%d] in hintlist of %lu but marked as checked\n"
-
-#~ msgid "NOTE: sig rec %lu[%d] in hintlist of %lu but not marked\n"
-#~ msgstr "Hinweis: sig rec %lu[%d] in hintlist of %lu but not marked\n"
-
-#~ msgid "sig rec %lu[%d] in hintlist of %lu does not point to a dir record\n"
-#~ msgstr "sig rec %lu[%d] in hintlist of %lu does not point to a dir record\n"
-
-#~ msgid "lid %lu: no primary key\n"
-#~ msgstr "lid %lu: kein Hauptschl�ssel\n"
-
-#~ msgid "lid %lu: user id not found in keyblock\n"
-#~ msgstr "lid %lu: User-ID im Schl�sselblock nicht gefunden\n"
-
-#~ msgid "lid %lu: user id without signature\n"
-#~ msgstr "lid %lu: User-ID ohne Signatur\n"
-
-#~ msgid "lid %lu: self-signature in hintlist\n"
-#~ msgstr "lid %lu: Eigenbeglaubigung in 'hintlist'\n"
-
-#~ msgid "very strange: no public key\n"
-#~ msgstr "sehr seltsam: kein �ffentlicher Schl�ssel\n"
-
-#~ msgid "hintlist %lu[%d] of %lu does not point to a dir record\n"
-#~ msgstr "hintlist %lu[%d] of %lu zeigt nicht auf einen 'dir record'\n"
-
-#~ msgid "lid %lu does not have a key\n"
-#~ msgstr "lid %lu hat keinen Schl�ssel\n"
-
-#~ msgid "lid %lu: can't get keyblock: %s\n"
-#~ msgstr "lid %lu: Schl�sselblock nicht verf�gbar: %s\n"
-
-#~ msgid "public key not anymore available"
-#~ msgstr "�ffentlicher Schl�ssel ist nicht mehr vorhanden"
-
-#~ msgid "uid %08lX.%lu/%02X%02X: has shadow dir %lu but is not yet marked.\n"
-#~ msgstr ""
-#~ "uid %08lX.%lu/%02X%02X: hat \"shadow-dir\" %lu, aber ist noch nicht "
-#~ "markiert.\n"
-
-#~ msgid "%s: keyblock read problem: %s\n"
-#~ msgstr "%s: Schl�sselblock Leseproblem: %s\n"
-
-#~ msgid "%s: update failed: %s\n"
-#~ msgstr "%s: �nderung fehlgeschlagen: %s\n"
-
-#~ msgid "%s: updated\n"
-#~ msgstr "%s: ge�ndert\n"
-
-#~ msgid "%s: okay\n"
-#~ msgstr "%s: In Ordnung\n"
-
-#~ msgid "lid %lu: keyblock not found: %s\n"
-#~ msgstr "lid %lu: Schl�sselblock nicht gefunden: %s\n"
-
-# "Please enter \"help\" to see the list of commands."
-#~ msgid "keyedit.cmd"
-#~ msgstr "Geben Sie \"help\" ein, um die Liste der Befehle einzusehen."
-
-#~ msgid "can't open file: %s\n"
-#~ msgstr "Kann die Datei nicht �ffnen: %s\n"
-
-#~ msgid "read error: %s\n"
-#~ msgstr "Lesefehler: %s\n"
-
-#~ msgid "can't write to keyring: %s\n"
-#~ msgstr "kann Schl�sselbund nicht schreiben: %s\n"
-
-#~ msgid "writing keyblock\n"
-#~ msgstr "Schreiben des Schl�sselblocks\n"
-
-#~ msgid "can't write keyblock: %s\n"
-#~ msgstr "Der Schl�sselblock kann nicht geschrieben werden: %s\n"
-
-#~ msgid "can't lock secret keyring: %s\n"
-#~ msgstr "kann geheimen Schl�sselbund nicht sperren: %s\n"
-
-#~ msgid "can't write keyring: %s\n"
-#~ msgstr "kann Schl�sselbund nicht schreiben: %s\n"
-
-#~ msgid "encrypted message is valid\n"
-#~ msgstr "verschl�sselte Botschaft ist g�ltig\n"
-
-#~ msgid "Can't check MDC: %s\n"
-#~ msgstr "Siegel (MDC) kann nicht gepr�ft werden: %s\n"
-
-#~ msgid "Usage: gpgm [options] [files] (-h for help)"
-#~ msgstr "Syntax: gpgm [Optionen] [Dateien] (-h f�r Hilfe)"
-
-#~ msgid ""
-#~ "Syntax: gpgm [options] [files]\n"
-#~ "GnuPG maintenance utility\n"
-#~ msgstr ""
-#~ "Syntax: gpgm [options] [files]\n"
-#~ "GnuPG Wartungs-Hilfsprogramm\n"
-
-#~ msgid "usage: gpgm [options] "
-#~ msgstr "Aufruf: gpgm [Optionen] "
-
-#~ msgid "|KEYID|ulimately trust this key"
-#~ msgstr "|KEYID|Diesem Schl�ssel uneingeschr�nkt vertrauen"
-
-#~ msgid "chained sigrec %lu has a wrong owner\n"
-#~ msgstr "Verketteter Signatursatz %lu hat einen falschen Besitzer\n"
-
-#~ msgid "'%s' is not a valid long keyID\n"
-#~ msgstr "'%s' ist keine g�ltige lange Schl�ssel-ID\n"
-
-#~ msgid "key %08lX: no public key for trusted key - skipped\n"
-#~ msgstr ""
-#~ "Schl�ssel %08lX: kein �ffentlicher Sch�ssel f�r vertrauensw�rdigen Schl�ssel "
-#~ "- �bersprungen\n"
-
-#~ msgid "lid %lu: read dir record failed: %s\n"
-#~ msgstr "lid %lu: Lesen des Verz.Satzes fehlgeschlagen: %s\n"
-
-#~ msgid "lid %lu: read key record failed: %s\n"
-#~ msgstr "lid %lu: Lesen des Schl..Satzes fehlgeschlagen: %s\n"
-
-#~ msgid "lid %lu: read uid record failed: %s\n"
-#~ msgstr "lid %lu: Lesen des UserID-Satzes fehlgeschlagen: %s\n"
-
-#~ msgid "lid %lu: read pref record failed: %s\n"
-#~ msgstr "lid %lu: Lesen des Pref.Satzes fehlgeschlagen: %s\n"
-
-#~ msgid "lid %lu: read sig record failed: %s\n"
-#~ msgstr "lid %lu: Lesen des Sig.Satzes fehlgeschlagen: %s\n"
-
-#~ msgid "user '%s' read problem: %s\n"
-#~ msgstr "User '%s' Leseproblem: %s\n"
-
-#~ msgid "user '%s' list problem: %s\n"
-#~ msgstr "User '%s' Listenproblem: %s\n"
-
-#~ msgid "user '%s' not in trustdb\n"
-#~ msgstr "User '%s' ist nicht in der trustdb\n"
-
-#~ msgid ""
-#~ "# List of assigned trustvalues, created %s\n"
-#~ "# (Use \"gpgm --import-ownertrust\" to restore them)\n"
-#~ msgstr ""
-#~ "# Liste der zugewisenen \"trustvalues\", erzeugt am %s\n"
-#~ "# (Verwenden Sie \"gpgm --import-ownertrust\" um sie wieder einzuspielen)\n"
-
-#~ msgid "directory record w/o primary key\n"
-#~ msgstr "Verzeichnis-Satz ohne Hauptschl�ssel\n"
-
-#~ msgid "line too long\n"
-#~ msgstr "Zeile zu lang\n"
-
-#~ msgid "error: missing colon\n"
-#~ msgstr "Fehler: Fehlender Doppelpunkt\n"
-
-#~ msgid "error: invalid fingerprint\n"
-#~ msgstr "Fehler: ung�ltiger Fingerabdruck\n"
-
-#~ msgid "error: no ownertrust value\n"
-#~ msgstr "Fehler: Keine \"Owner trust\" Werte\n"
-
-#~ msgid "key not in trustdb, searching ring.\n"
-#~ msgstr "Schl�ssel ist nicht in der trustdb, Schl.bund wird durchsucht.\n"
-
-#~ msgid "key not in ring: %s\n"
-#~ msgstr "Schl�ssel ist nicht im Schl�sselbund: %s\n"
-
-#~ msgid "Oops: key is now in trustdb???\n"
-#~ msgstr "Huch: Schl�ssel ist ja gar nicht in der Trust-DB?\n"
-
-#~ msgid "insert trust record failed: %s\n"
-#~ msgstr "'trust record' einf�gen fehlgeschlagen: %s\n"
-
-#~ msgid "Hmmm, public key lost?"
-#~ msgstr "Hmmm, �ffentlicher Sch�ssel verloren?"
-
-#~ msgid "did not use primary key for insert_trust_record()\n"
-#~ msgstr "F�r insert_trust_record() wurde nicht der Hauptschl�ssel benutzt\n"
-
-#~ msgid "second"
-#~ msgstr "Sekunde"
-
-#~ msgid "seconds"
-#~ msgstr "Sekunden"
-
-#~ msgid "invalid clear text header: "
-#~ msgstr "ung�ltige Klartexteinleitung"
-
-#~ msgid "LID %lu: changing trust from %u to %u\n"
-#~ msgstr "LID %lu: �ndern des 'Trusts' von %u auf %u\n"
-
-#~ msgid "LID %lu: setting trust to %u\n"
-#~ msgstr "LID %lu: Setze 'Trust' auf %u\n"
-
-#~ msgid "This key belongs to us (we have the secret key)\n"
-#~ msgstr ""
-#~ "Dieser Schl�ssel geh�rt uns (alldieweil wir den geheimen Schl�ssel dazu "
-#~ "haben)\n"
-
-#~ msgid "You will see a list of signators etc. here\n"
-#~ msgstr "Sie sollten hier eigentlich eine Liste der Signierer sehen.\n"
-
-#~ msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (3)\n"
-#~ msgstr "Schl�ssel %08lX: Ung�ltige Eigenbeglaubigung\n"
-
-#~ msgid ""
-#~ "key %08lX.%lu, uid %02X%02X, sig %08lX: very strange: no public key\n"
-#~ msgstr "Schl�ssel %08lX: Keine User-ID f�r Signatur\n"
-
-#~ msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: invalid signature: %s\n"
-#~ msgstr "Schl�ssel %08lX: Ung�ltige Eigenbeglaubigung\n"
-
-#~ msgid "key %08lX.%lu, uid %02X%02X: good self-signature\n"
-#~ msgstr "Schl�ssel %08lX: Ung�ltige Eigenbeglaubigung\n"
-
-#~ msgid ""
-#~ "key %08lX.%lu, uid %02X%02X, sig %08lX: duplicated signature - deleted\n"
-#~ msgstr "Schl�ssel %08lX: Ung�ltige Eigensignatur\n"
-
-#~ msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (1)\n"
-#~ msgstr "Schl�ssel %08lX: Ung�ltige Eigensignatur\n"
-
-#~ msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: weird: no public key\n"
-#~ msgstr "Schl�ssel %08lX: Keine User-ID f�r Signatur\n"
-
-#~ msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (2)\n"
-#~ msgstr "Schl�ssel %08lX: Ung�ltige Eigensignatur\n"
-
-#~ msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: no public key\n"
-#~ msgstr "Schl�ssel %08lX: Keine User-ID f�r Signatur\n"
-
-#~ msgid "key %08lX: already in ultikey_table\n"
-#~ msgstr "Schl�ssel %08lX: bereits in der Tabelle der geheime Schl�ssel\n"
-
-#~ msgid "can't write keyring\n"
-#~ msgstr "kann Schl�sselbund nicht schreiben\n"
-
-#~ msgid "make a signature on a key in the keyring"
-#~ msgstr "Schl�ssel signieren"
-
-#~ msgid "edit a key signature"
-#~ msgstr "Bearbeiten der Signaturen eines Schl�ssels"
-
-#~ msgid "public and secret subkey created.\n"
-#~ msgstr "�ffentlicher und geheimer Schl�ssel erzeugt.\n"
-
-#~ msgid "No public key for %d signatures\n"
-#~ msgstr "Kein �ffentlicher Schl�ssel f�r %d Signaturen\n"
-
-#~ msgid "[User name not available] "
-#~ msgstr "[Benuzername nicht verf�gbar] "
-
-#~ msgid "This is a BAD signature!\n"
-#~ msgstr "Dies ist eine FALSCHE Signatur!\n"
-
-#~ msgid "The signature could not be checked!\n"
-#~ msgstr "Die Signatur konnte nicht gepr�ft werden!\n"
-
-#~ msgid "Checking signatures of this public key certificate:\n"
-#~ msgstr "Die Signaturen dieses Zertifikats werden �berpr�ft:\n"
+#~ "Die Schl�sselerzeugung kann nur im interaktiven Modus benutzt werden.\n"
diff --git a/po/eo.po b/po/eo.po
new file mode 100644
index 000000000..d23077f51
--- /dev/null
+++ b/po/eo.po
@@ -0,0 +1,3658 @@
+# Mesa�oj por la programo GnuPG
+# Copyright (C) 2000 Free Software Foundation, Inc.
+# Edmund GRIMLEY EVANS <[email protected]>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gnupg 1.0.0h\n"
+"POT-Creation-Date: 2000-05-30 13:59+0200\n"
+"PO-Revision-Date: 2000-02-16 14:41+00:00\n"
+"Last-Translator: Edmund GRIMLEY EVANS <[email protected]>\n"
+"Language-Team: Esperanto <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-3\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: util/secmem.c:79
+msgid "Warning: using insecure memory!\n"
+msgstr "Averto: uzas malsekuran memoron!\n"
+
+#: util/secmem.c:287
+msgid "operation is not possible without initialized secure memory\n"
+msgstr "operacio ne eblas sen sekura memoro kun komenca valoro\n"
+
+#: util/secmem.c:288
+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"
+
+#: util/miscutil.c:277 util/miscutil.c:306
+msgid "yes"
+msgstr "jes"
+
+#: util/miscutil.c:278 util/miscutil.c:309
+msgid "yY"
+msgstr "jJ"
+
+#: util/miscutil.c:279 util/miscutil.c:307
+msgid "no"
+msgstr "ne"
+
+#: util/miscutil.c:280 util/miscutil.c:310
+msgid "nN"
+msgstr "nN"
+
+#: g10/keyedit.c:580 util/miscutil.c:308
+msgid "quit"
+msgstr "fini"
+
+#: util/miscutil.c:311
+msgid "qQ"
+msgstr "fF"
+
+#: util/errors.c:54
+msgid "general error"
+msgstr "�enerala eraro"
+
+#: util/errors.c:55
+msgid "unknown packet type"
+msgstr "nekonata paketo-speco"
+
+#: util/errors.c:56
+msgid "unknown version"
+msgstr "nekonata versio"
+
+#: util/errors.c:57
+msgid "unknown pubkey algorithm"
+msgstr "nekonata publik�losila metodo"
+
+#: util/errors.c:58
+msgid "unknown digest algorithm"
+msgstr "nekonata kompendi-metodo"
+
+#: util/errors.c:59
+msgid "bad public key"
+msgstr "malbona publika �losilo"
+
+#: util/errors.c:60
+msgid "bad secret key"
+msgstr "malbona sekreta �losilo"
+
+#: util/errors.c:61
+msgid "bad signature"
+msgstr "malbona subskribo"
+
+#: util/errors.c:62
+msgid "checksum error"
+msgstr "eraro en kontrolsumo"
+
+#: util/errors.c:63
+msgid "bad passphrase"
+msgstr "malbona pasfrazo"
+
+#: util/errors.c:64
+msgid "public key not found"
+msgstr "publika �losilo ne trovita"
+
+#: util/errors.c:65
+msgid "unknown cipher algorithm"
+msgstr "nekonata �ifrad-metodo"
+
+#: util/errors.c:66
+msgid "can't open the keyring"
+msgstr "ne povas malfermi la �losilaron"
+
+#: util/errors.c:67
+msgid "invalid packet"
+msgstr "nevalida paketo"
+
+#: util/errors.c:68
+msgid "invalid armor"
+msgstr "nevalida kiraso"
+
+#: util/errors.c:69
+msgid "no such user id"
+msgstr "uzantidentigilo ne ekzistas"
+
+#: util/errors.c:70
+msgid "secret key not available"
+msgstr "sekreta �losilo ne havebla"
+
+#: util/errors.c:71
+msgid "wrong secret key used"
+msgstr "mal�usta sekreta �losilo uzata"
+
+#: util/errors.c:72
+msgid "not supported"
+msgstr "ne realigita"
+
+#: util/errors.c:73
+msgid "bad key"
+msgstr "malbona �losilo"
+
+#: util/errors.c:74
+msgid "file read error"
+msgstr "legeraro �e dosiero"
+
+#: util/errors.c:75
+msgid "file write error"
+msgstr "skriberaro �e dosiero"
+
+#: util/errors.c:76
+msgid "unknown compress algorithm"
+msgstr "nekonata densig-metodo"
+
+#: util/errors.c:77
+msgid "file open error"
+msgstr "eraro �e malfermo de dosiero"
+
+#: util/errors.c:78
+msgid "file create error"
+msgstr "eraro �e kreo de dosiero"
+
+#: util/errors.c:79
+msgid "invalid passphrase"
+msgstr "nevalida pasfrazo"
+
+#: util/errors.c:80
+msgid "unimplemented pubkey algorithm"
+msgstr "nerealigita publik�losila metodo"
+
+#: util/errors.c:81
+msgid "unimplemented cipher algorithm"
+msgstr "nerealigita �ifrad-metodo"
+
+#: util/errors.c:82
+msgid "unknown signature class"
+msgstr "nekonata klaso de subskribo"
+
+#: util/errors.c:83
+msgid "trust database error"
+msgstr "eraro en fido-datenaro"
+
+#: util/errors.c:84
+msgid "bad MPI"
+msgstr "malbona MPI"
+
+#: util/errors.c:85
+msgid "resource limit"
+msgstr "trafis rimedolimon"
+
+#: util/errors.c:86
+msgid "invalid keyring"
+msgstr "nevalida �losilaro"
+
+#: util/errors.c:87
+msgid "bad certificate"
+msgstr "malbona atestilo"
+
+#: util/errors.c:88
+msgid "malformed user id"
+msgstr "misformita uzantidentigilo"
+
+#: util/errors.c:89
+msgid "file close error"
+msgstr "eraro �e fermo de dosiero"
+
+#: util/errors.c:90
+msgid "file rename error"
+msgstr "eraro �e renomado de dosiero"
+
+#: util/errors.c:91
+msgid "file delete error"
+msgstr "eraro �e forvi�o de dosiero"
+
+#: util/errors.c:92
+msgid "unexpected data"
+msgstr "neatendita dateno"
+
+#: util/errors.c:93
+msgid "timestamp conflict"
+msgstr "malkongruo de tempostampoj"
+
+#: util/errors.c:94
+msgid "unusable pubkey algorithm"
+msgstr "neuzebla publik�losila metodo"
+
+#: util/errors.c:95
+msgid "file exists"
+msgstr "dosiero ekzistas"
+
+#: util/errors.c:96
+msgid "weak key"
+msgstr "malforta �losilo"
+
+#: util/errors.c:97
+msgid "invalid argument"
+msgstr "nevalida argumento"
+
+#: util/errors.c:98
+msgid "bad URI"
+msgstr "malbona URI"
+
+#: util/errors.c:99
+msgid "unsupported URI"
+msgstr "nerealigita URI"
+
+#: util/errors.c:100
+msgid "network error"
+msgstr "reteraro"
+
+#: util/errors.c:102
+msgid "not encrypted"
+msgstr "ne �ifrita"
+
+#: util/errors.c:103
+msgid "not processed"
+msgstr "ne traktita"
+
+#: util/logger.c:224
+#, c-format
+msgid "... this is a bug (%s:%d:%s)\n"
+msgstr "... �i tio estas cimo (%s:%d:%s)\n"
+
+#: util/logger.c:230
+#, c-format
+msgid "you found a bug ... (%s:%d)\n"
+msgstr "vi trovis cimon ... (%s:%d)\n"
+
+#: cipher/random.c:311 g10/import.c:127 g10/keygen.c:1150
+#, c-format
+msgid "can't open `%s': %s\n"
+msgstr "ne povas malfermi '%s': %s\n"
+
+#: cipher/random.c:315
+#, fuzzy, c-format
+msgid "can't stat `%s': %s\n"
+msgstr "ne povas malfermi '%s': %s\n"
+
+#: cipher/random.c:320
+#, c-format
+msgid "`%s' is not a regular file - ignored\n"
+msgstr ""
+
+#: cipher/random.c:325
+msgid "note: random_seed file is empty\n"
+msgstr ""
+
+#: cipher/random.c:331
+msgid "warning: invalid size of random_seed file - not used\n"
+msgstr ""
+
+#: cipher/random.c:339
+#, fuzzy, c-format
+msgid "can't read `%s': %s\n"
+msgstr "ne povas malfermi '%s': %s\n"
+
+#: cipher/random.c:377
+msgid "note: random_seed file not updated\n"
+msgstr ""
+
+#: cipher/random.c:397
+#, fuzzy, c-format
+msgid "can't create `%s': %s\n"
+msgstr "ne povas krei %s: %s\n"
+
+#: cipher/random.c:404
+#, fuzzy, c-format
+msgid "can't write `%s': %s\n"
+msgstr "ne povas malfermi '%s': %s\n"
+
+#: cipher/random.c:407
+#, fuzzy, c-format
+msgid "can't close `%s': %s\n"
+msgstr "ne povas malfermi '%s': %s\n"
+
+#: cipher/random.c:418
+#, c-format
+msgid "too many random bits requested; the limit is %d\n"
+msgstr ""
+
+#: cipher/random.c:647
+msgid "WARNING: using insecure random number generator!!\n"
+msgstr "AVERTO: uzas malsekuran stokastilon!!\n"
+
+#: cipher/random.c:648
+msgid ""
+"The random number generator is only a kludge to let\n"
+"it run - it is in no way a strong RNG!\n"
+"\n"
+"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"
+"\n"
+"NE UZU DATENOJN KREITAJN DE �I TIU PROGRAMO!!\n"
+"\n"
+
+#: cipher/rndlinux.c:141
+#, c-format
+msgid ""
+"\n"
+"Not enough random bytes available. Please do some other work to give\n"
+"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"
+"mastruma sistemo kolekti pli da entropio! (Mankas %d bitokoj)\n"
+
+#: g10/g10.c:195
+msgid ""
+"@Commands:\n"
+" "
+msgstr ""
+"@Komandoj:\n"
+" "
+
+#: g10/g10.c:197
+msgid "|[file]|make a signature"
+msgstr "|[dosiero]|fari subskribon"
+
+#: g10/g10.c:198
+msgid "|[file]|make a clear text signature"
+msgstr "|[dosiero]|fari klartekstan subskribon"
+
+#: g10/g10.c:199
+msgid "make a detached signature"
+msgstr "fari apartan subskribon"
+
+#: g10/g10.c:200
+msgid "encrypt data"
+msgstr "�ifri datenojn"
+
+#: g10/g10.c:201
+msgid "encryption only with symmetric cipher"
+msgstr "�ifri nur kun simetria �ifro"
+
+#: g10/g10.c:202
+msgid "store only"
+msgstr "nur skribi"
+
+#: g10/g10.c:203
+msgid "decrypt data (default)"
+msgstr "mal�ifri datenojn (implicita elekto)"
+
+#: g10/g10.c:204
+msgid "verify a signature"
+msgstr "kontroli subskribon"
+
+#: g10/g10.c:206
+msgid "list keys"
+msgstr "listigi �losilojn"
+
+#: g10/g10.c:208
+msgid "list keys and signatures"
+msgstr "listigi �losilojn kaj subskribojn"
+
+#: g10/g10.c:209
+msgid "check key signatures"
+msgstr "kontroli �losilsubskribojn"
+
+#: g10/g10.c:210
+msgid "list keys and fingerprints"
+msgstr "listigi �losilojn kaj fingro�purojn"
+
+#: g10/g10.c:211
+msgid "list secret keys"
+msgstr "listigi sekretajn �losilojn"
+
+#: g10/g10.c:212
+msgid "generate a new key pair"
+msgstr "krei novan �losilparon"
+
+#: g10/g10.c:213
+msgid "remove key from the public keyring"
+msgstr "forigi �losilon de la publika �losilaro"
+
+#: g10/g10.c:215
+msgid "remove key from the secret keyring"
+msgstr "forigi �losilon de la sekreta �losilaro"
+
+#: g10/g10.c:216
+msgid "sign a key"
+msgstr "subskribi �losilon"
+
+#: g10/g10.c:217
+msgid "sign a key locally"
+msgstr "subskribi �losilon loke"
+
+#: g10/g10.c:218
+msgid "sign or edit a key"
+msgstr "subskribi a� redakti �losilon"
+
+#: g10/g10.c:219
+msgid "generate a revocation certificate"
+msgstr "krei revokatestilon"
+
+#: g10/g10.c:220
+msgid "export keys"
+msgstr "eksporti �losilojn"
+
+#: g10/g10.c:221
+msgid "export keys to a key server"
+msgstr "eksporti �losilojn al �losilservilo"
+
+#: g10/g10.c:222
+msgid "import keys from a key server"
+msgstr "importi �losilojn de �losilservilo"
+
+#: g10/g10.c:226
+msgid "import/merge keys"
+msgstr "importi/kunfandi �losilojn"
+
+#: g10/g10.c:228
+msgid "list only the sequence of packets"
+msgstr "listigi nur la sinsekvon de paketoj"
+
+#: g10/g10.c:230
+msgid "export the ownertrust values"
+msgstr "eksporti la posedantofido-valorojn"
+
+#: g10/g10.c:232
+msgid "import ownertrust values"
+msgstr "importi posedantofido-valorojn"
+
+#: g10/g10.c:234
+msgid "update the trust database"
+msgstr "aktualigi la fido-datenaron"
+
+#: g10/g10.c:236
+msgid "|[NAMES]|check the trust database"
+msgstr "|[NOMOJ]|kontroli la fido-datenaron"
+
+#: g10/g10.c:237
+msgid "fix a corrupted trust database"
+msgstr "ripari fu�itan fido-datenaron"
+
+#: g10/g10.c:238
+msgid "De-Armor a file or stdin"
+msgstr "elkirasigi dosieron a� la normalan enigon"
+
+#: g10/g10.c:240
+msgid "En-Armor a file or stdin"
+msgstr "enkirasigi dosieron a� la normalan enigon"
+
+#: g10/g10.c:242
+msgid "|algo [files]|print message digests"
+msgstr "|metodo [dosieroj]|presi mesa�o-kompendiojn"
+
+#: g10/g10.c:246
+msgid ""
+"@\n"
+"Options:\n"
+" "
+msgstr ""
+"@\n"
+"Opcioj:\n"
+" "
+
+#: g10/g10.c:248
+msgid "create ascii armored output"
+msgstr "krei eligon en askia kiraso"
+
+#: g10/g10.c:250
+msgid "|NAME|encrypt for NAME"
+msgstr "|NOMO|�ifri por NOMO"
+
+#: g10/g10.c:253
+msgid "|NAME|use NAME as default recipient"
+msgstr "|NOMO|uzi NOMOn kiel implicitan ricevonton"
+
+#: g10/g10.c:255
+msgid "use the default key as default recipient"
+msgstr "uzi la implicitan �losilon kiel implicitan ricevonton"
+
+#: g10/g10.c:259
+msgid "use this user-id to sign or decrypt"
+msgstr "uzi �i tiun uzantidentigilon por subskribi a� mal�ifri"
+
+#: g10/g10.c:260
+msgid "|N|set compress level N (0 disables)"
+msgstr "|N|difini densig-nivelon N (0=nenia)"
+
+#: g10/g10.c:262
+msgid "use canonical text mode"
+msgstr "uzi tekstan re�imon"
+
+#: g10/g10.c:263
+msgid "use as output file"
+msgstr "uzi dosieron por eligo"
+
+#: g10/g10.c:264
+msgid "verbose"
+msgstr "detala eligo"
+
+#: g10/g10.c:265
+msgid "be somewhat more quiet"
+msgstr "iom malpli da informoj"
+
+#: g10/g10.c:266
+msgid "don't use the terminal at all"
+msgstr "tute ne uzi la terminalon"
+
+#: g10/g10.c:267
+msgid "force v3 signatures"
+msgstr "devigi v3-subskribojn"
+
+#: g10/g10.c:268
+msgid "always use a MDC for encryption"
+msgstr "�iam uzi sigelon (MDC) por �ifrado"
+
+#: g10/g10.c:269
+msgid "do not make any changes"
+msgstr "fari neniajn �an�ojn"
+
+#. { oInteractive, "interactive", 0, N_("prompt before overwriting") },
+#: g10/g10.c:271
+msgid "batch mode: never ask"
+msgstr "neinteraga re�imo: neniam demandi"
+
+#: g10/g10.c:272
+msgid "assume yes on most questions"
+msgstr "supozi \"jes\" �e la plej multaj demandoj"
+
+#: g10/g10.c:273
+msgid "assume no on most questions"
+msgstr "supozi \"ne\" �e la plej multaj demandoj"
+
+#: g10/g10.c:274
+msgid "add this keyring to the list of keyrings"
+msgstr "aldoni �i tiun �losilaron al la listo de �losilaroj"
+
+#: g10/g10.c:275
+msgid "add this secret keyring to the list"
+msgstr "aldoni �i tiun sekretan �losilaron al la listo"
+
+#: g10/g10.c:276
+msgid "|NAME|use NAME as default secret key"
+msgstr "|NOMO|uzi NOMOn kiel la implicitan sekretan �losilon"
+
+#: g10/g10.c:277
+msgid "|HOST|use this keyserver to lookup keys"
+msgstr "|SERVILO|uzi �i tiun �losilservilon por ser�i �losilojn"
+
+#: g10/g10.c:278
+msgid "|NAME|set terminal charset to NAME"
+msgstr "|NOMO|difini NOMOn kiel la signaron de la terminalo"
+
+#: g10/g10.c:279
+msgid "read options from file"
+msgstr "legi la opciojn el dosiero"
+
+#: g10/g10.c:283
+msgid "|FD|write status info to this FD"
+msgstr "|FD|skribi statusinformojn al FD (dosierpriskribilo)"
+
+#: g10/g10.c:288
+msgid "|FILE|load extension module FILE"
+msgstr "|DOSIERO|legi aldonan bibliotekon DOSIERO"
+
+#: g10/g10.c:289
+msgid "emulate the mode described in RFC1991"
+msgstr "imiti la re�imon priskribitan en RFC 1991"
+
+#: g10/g10.c:290
+msgid "set all packet, cipher and digest options to OpenPGP behavior"
+msgstr "�alti �iujn paket-, �ifrad- kaj kompendi-opciojn al OpenPGP-konduto"
+
+#: g10/g10.c:291
+msgid "|N|use passphrase mode N"
+msgstr "|N|uzi pasfraz-re�imon N"
+
+#: g10/g10.c:293
+msgid "|NAME|use message digest algorithm NAME for passphrases"
+msgstr "|NOMO|uzi kompendi-metodon NOMO por pasfrazoj"
+
+#: g10/g10.c:295
+msgid "|NAME|use cipher algorithm NAME for passphrases"
+msgstr "|NOMO|uzi �ifrad-metodon NOMO por pasfrazoj"
+
+#: g10/g10.c:296
+msgid "|NAME|use cipher algorithm NAME"
+msgstr "|NOMO|uzi �ifrad-metodon NOMO"
+
+#: g10/g10.c:297
+msgid "|NAME|use message digest algorithm NAME"
+msgstr "|NOMO|uzi kompendi-metodon NOMO"
+
+#: g10/g10.c:298
+msgid "|N|use compress algorithm N"
+msgstr "|N|uzi densig-metodon N"
+
+#: g10/g10.c:299
+msgid "throw keyid field of encrypted packets"
+msgstr "forigi la �losilidentigilon de �ifritaj paketoj"
+
+#: g10/g10.c:300
+msgid "|NAME=VALUE|use this notation data"
+msgstr "|NOMO=VALORO|uzi �i tiun notacian datenon"
+
+#: g10/g10.c:303
+msgid ""
+"@\n"
+"(See the man page for a complete listing of all commands and options)\n"
+msgstr ""
+
+#: g10/g10.c:306
+msgid ""
+"@\n"
+"Examples:\n"
+"\n"
+" -se -r Bob [file] sign and encrypt for user Bob\n"
+" --clearsign [file] make a clear text signature\n"
+" --detach-sign [file] make a detached signature\n"
+" --list-keys [names] show keys\n"
+" --fingerprint [names] show fingerprints\n"
+msgstr ""
+"@\n"
+"Ekzemploj:\n"
+"\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"
+
+#: g10/g10.c:399
+msgid "Please report bugs to <[email protected]>.\n"
+msgstr "Bonvolu raporti cimojn al <[email protected]>.\n"
+
+#: g10/g10.c:403
+msgid "Usage: gpg [options] [files] (-h for help)"
+msgstr "Uzado: gpg [opcioj] [dosieroj] (-h por helpo)"
+
+#: g10/g10.c:406
+msgid ""
+"Syntax: gpg [options] [files]\n"
+"sign, check, encrypt or decrypt\n"
+"default operation depends on the input data\n"
+msgstr ""
+"Sintakso: gpg [opcioj] [dosieroj]\n"
+"subskribi, kontroli, �ifri a� mal�ifri\n"
+"implicita operacio dependas de la enigataj datenoj\n"
+
+#: g10/g10.c:413
+msgid ""
+"\n"
+"Supported algorithms:\n"
+msgstr ""
+"\n"
+"Realigitaj metodoj:\n"
+
+#: g10/g10.c:492
+msgid "usage: gpg [options] "
+msgstr "uzado: gpg [opcioj] "
+
+#: g10/g10.c:545
+msgid "conflicting commands\n"
+msgstr "malkongruaj komandoj\n"
+
+#: g10/g10.c:687
+#, c-format
+msgid "NOTE: no default option file `%s'\n"
+msgstr "NOTO: mankas implicita opcio-dosiero '%s'\n"
+
+#: g10/g10.c:691
+#, c-format
+msgid "option file `%s': %s\n"
+msgstr "opcio-dosiero '%s': %s\n"
+
+#: g10/g10.c:698
+#, c-format
+msgid "reading options from `%s'\n"
+msgstr "legas opciojn el '%s'\n"
+
+#: g10/g10.c:885
+#, c-format
+msgid "%s is not a valid character set\n"
+msgstr "%s ne estas valida signaro\n"
+
+#: g10/g10.c:945 g10/g10.c:954
+#, c-format
+msgid "NOTE: %s is not for normal use!\n"
+msgstr "NOTO: %s ne estas por normala uzado!\n"
+
+#: g10/g10.c:947
+#, c-format
+msgid "%s not allowed with %s!\n"
+msgstr "%s ne eblas kun %s!\n"
+
+#: g10/g10.c:950
+#, c-format
+msgid "%s makes no sense with %s!\n"
+msgstr "%s ne havas sencon kun %s!\n"
+
+#: g10/g10.c:969 g10/g10.c:981
+msgid "selected cipher algorithm is invalid\n"
+msgstr "elektita �ifrad-metodo ne validas\n"
+
+#: g10/g10.c:975 g10/g10.c:987
+msgid "selected digest algorithm is invalid\n"
+msgstr "elektita kompendi-metodo ne validas\n"
+
+#: g10/g10.c:991
+msgid "the given policy URL is invalid\n"
+msgstr "la donita gvidlinia URL ne validas\n"
+
+#: g10/g10.c:994
+#, c-format
+msgid "compress algorithm must be in range %d..%d\n"
+msgstr "la densig-metodo devas esti inter %d kaj %d\n"
+
+#: g10/g10.c:996
+msgid "completes-needed must be greater than 0\n"
+msgstr "completes-needed devas esti pli granda ol 0\n"
+
+#: g10/g10.c:998
+msgid "marginals-needed must be greater than 1\n"
+msgstr "marginals-needed devas esti pli granda ol 1\n"
+
+#: g10/g10.c:1000
+msgid "max-cert-depth must be in range 1 to 255\n"
+msgstr "max-cert-depth devas esti inter 1 kaj 255\n"
+
+#: g10/g10.c:1003
+msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
+msgstr "NOTO: simpla S2K-re�imo (0) estas forte malrekomendata\n"
+
+#: g10/g10.c:1007
+msgid "invalid S2K mode; must be 0, 1 or 3\n"
+msgstr "nevalida S2K-re�imo; devas esti 0, 1 a� 3\n"
+
+#: g10/g10.c:1092
+#, c-format
+msgid "failed to initialize the TrustDB: %s\n"
+msgstr "malsukcesis doni komencajn valorojn al fido-datenaro: %s\n"
+
+#: g10/g10.c:1098
+msgid "--store [filename]"
+msgstr "--store [dosiero]"
+
+#: g10/g10.c:1105
+msgid "--symmetric [filename]"
+msgstr "--symmetric [dosiero]"
+
+#: g10/g10.c:1113
+msgid "--encrypt [filename]"
+msgstr "--encrypt [dosiero]"
+
+#: g10/g10.c:1126
+msgid "--sign [filename]"
+msgstr "--sign [dosiero]"
+
+#: g10/g10.c:1139
+msgid "--sign --encrypt [filename]"
+msgstr "--sign --encrypt [dosiero]"
+
+#: g10/g10.c:1153
+msgid "--clearsign [filename]"
+msgstr "--clearsign [dosiero]"
+
+#: g10/g10.c:1170
+msgid "--decrypt [filename]"
+msgstr "--decrypt [dosiero]"
+
+#: g10/g10.c:1178
+msgid "--sign-key user-id"
+msgstr "--sign-key uzantidentigilo"
+
+#: g10/g10.c:1186
+msgid "--lsign-key user-id"
+msgstr "--lsign-key uzantidentigilo"
+
+#: g10/g10.c:1194
+msgid "--edit-key user-id [commands]"
+msgstr "--edit-key uzantidentigilo [komandoj]"
+
+#: g10/g10.c:1210
+msgid "--delete-secret-key user-id"
+msgstr "--delete-secret-key uzantidentigilo"
+
+#: g10/g10.c:1213
+msgid "--delete-key user-id"
+msgstr "--delete-key uzantidentigilo"
+
+#: g10/encode.c:260 g10/g10.c:1250 g10/sign.c:373
+#, c-format
+msgid "can't open %s: %s\n"
+msgstr "ne povas malfermi %s: %s\n"
+
+#: g10/g10.c:1265
+msgid "-k[v][v][v][c] [user-id] [keyring]"
+msgstr "-k[v][v][v][c] [uzantidentigilo] [�losilaro]"
+
+#: g10/g10.c:1331
+#, c-format
+msgid "dearmoring failed: %s\n"
+msgstr "elkirasigo malsukcesis: %s\n"
+
+#: g10/g10.c:1339
+#, c-format
+msgid "enarmoring failed: %s\n"
+msgstr "enkirasigo malsukcesis: %s\n"
+
+#: g10/g10.c:1407
+#, c-format
+msgid "invalid hash algorithm `%s'\n"
+msgstr "nevalida kompendi-metodo '%s'\n"
+
+#: g10/g10.c:1488
+msgid "[filename]"
+msgstr "[dosiero]"
+
+#: g10/g10.c:1492
+msgid "Go ahead and type your message ...\n"
+msgstr "Ektajpu vian mesa�on ...\n"
+
+#: g10/decrypt.c:59 g10/g10.c:1495 g10/verify.c:68 g10/verify.c:113
+#, c-format
+msgid "can't open `%s'\n"
+msgstr "ne povas malfermi '%s'\n"
+
+#: g10/g10.c:1665
+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"
+
+#: g10/g10.c:1671
+msgid ""
+"a notation name must have only letters, digits, dots or underscores and end "
+"with an '='\n"
+msgstr ""
+"notacia nomo devas enhavi nur literojn, ciferojn, punktojn a� substrekojn "
+"kaj fini per '='\n"
+
+#: g10/g10.c:1677
+msgid "dots in a notation name must be surrounded by other characters\n"
+msgstr "punktoj en notacia nomo devas esti inter aliaj signoj\n"
+
+#: g10/g10.c:1685
+msgid "a notation value must not use any control characters\n"
+msgstr "notacia valoro ne povas enhavi stirsignojn\n"
+
+#: g10/armor.c:302
+#, c-format
+msgid "armor: %s\n"
+msgstr "kiraso: %s\n"
+
+#: g10/armor.c:331
+msgid "invalid armor header: "
+msgstr "nevalida kiraso�apo: "
+
+#: g10/armor.c:338
+msgid "armor header: "
+msgstr "kiraso�apo: "
+
+#: g10/armor.c:349
+msgid "invalid clearsig header\n"
+msgstr "nevalida �apo de klarteksta subskribo\n"
+
+#: g10/armor.c:401
+msgid "nested clear text signatures\n"
+msgstr "ingitaj klartekstaj subskriboj\n"
+
+#: g10/armor.c:525
+msgid "invalid dash escaped line: "
+msgstr "nevalida strek-eskapita linio: "
+
+#: g10/armor.c:537
+msgid "unexpected armor:"
+msgstr "neatendita kiraso:"
+
+#: g10/armor.c:654
+#, c-format
+msgid "invalid radix64 character %02x skipped\n"
+msgstr "nevalida signo %02x en bazo 64 ignorita\n"
+
+#: g10/armor.c:697
+msgid "premature eof (no CRC)\n"
+msgstr "tro frua dosierfino (nenia CRC)\n"
+
+#: g10/armor.c:731
+msgid "premature eof (in CRC)\n"
+msgstr "tro frua dosierfino (en CRC)\n"
+
+#: g10/armor.c:735
+msgid "malformed CRC\n"
+msgstr "misformita CRC\n"
+
+#: g10/armor.c:739
+#, c-format
+msgid "CRC error; %06lx - %06lx\n"
+msgstr "CRC-eraro; %06lx - %06lx\n"
+
+#: g10/armor.c:756
+msgid "premature eof (in Trailer)\n"
+msgstr "tro frua dosierfino (en vosto)\n"
+
+#: g10/armor.c:760
+msgid "error in trailer line\n"
+msgstr "eraro en vostolinio\n"
+
+#: g10/armor.c:912
+msgid "For info see http://www.gnupg.org"
+msgstr ""
+
+#: g10/armor.c:1033
+msgid "no valid OpenPGP data found.\n"
+msgstr "validaj OpenPGP-datenoj ne trovitaj.\n"
+
+#: g10/armor.c:1038
+#, c-format
+msgid "invalid armor: line longer than %d characters\n"
+msgstr "nevalida kiraso: linio pli longa ol %d signojn\n"
+
+#: g10/armor.c:1042
+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 "
+"uzata\n"
+
+#. Translators: this shoud fit into 24 bytes to that the fingerprint
+#. * data is properly aligned with the user ID
+#: g10/pkclist.c:53
+msgid " Fingerprint:"
+msgstr " Fingrospuro:"
+
+#: g10/pkclist.c:80
+msgid "Fingerprint:"
+msgstr "Fingrospuro:"
+
+#: g10/pkclist.c:116
+msgid "No reason specified"
+msgstr ""
+
+#: g10/pkclist.c:118
+#, fuzzy
+msgid "Key is superseeded"
+msgstr "�losilo estas protektita.\n"
+
+#: g10/pkclist.c:120
+#, fuzzy
+msgid "Key has been compromised"
+msgstr "�i tiu �losilo estas mal�altita"
+
+#: g10/pkclist.c:122
+msgid "Key is no longer used"
+msgstr ""
+
+#: g10/pkclist.c:124
+msgid "User ID is no longer valid"
+msgstr ""
+
+#: g10/pkclist.c:128
+msgid "Reason for revocation: "
+msgstr ""
+
+#: g10/pkclist.c:145
+msgid "Revocation comment: "
+msgstr ""
+
+#. a string with valid answers
+#: g10/pkclist.c:303
+msgid "sSmMqQ"
+msgstr "iImMfF"
+
+#: g10/pkclist.c:307
+#, c-format
+msgid ""
+"No trust value assigned to %lu:\n"
+"%4u%c/%08lX %s \""
+msgstr ""
+"Nenia fidovaloro atribuita al %lu:\n"
+"%4u%c/%08lX %s \""
+
+#: g10/pkclist.c:319
+msgid ""
+"Please decide how far you trust this user to correctly\n"
+"verify other users' keys (by looking at passports,\n"
+"checking fingerprints from different sources...)?\n"
+"\n"
+" 1 = Don't know\n"
+" 2 = I do NOT trust\n"
+" 3 = I trust marginally\n"
+" 4 = I trust fully\n"
+" s = please show me more information\n"
+msgstr ""
+"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"
+" 1 = Ne scias\n"
+" 2 = Mi NE fidas\n"
+" 3 = Mi iom fidas\n"
+" 4 = Mi plene fidas\n"
+" i = Montru pli da informoj\n"
+
+#: g10/pkclist.c:328
+msgid " m = back to the main menu\n"
+msgstr " m = reen al la �efmenuo\n"
+
+#: g10/pkclist.c:330
+msgid " q = quit\n"
+msgstr " f = fini\n"
+
+#: g10/pkclist.c:336
+msgid "Your decision? "
+msgstr "Via decido? "
+
+#: g10/pkclist.c:358
+msgid "Certificates leading to an ultimately trusted key:\n"
+msgstr "Atestiloj, kiuj kondukas fine al fidata �losilo:\n"
+
+#: g10/pkclist.c:429
+msgid ""
+"Could not find a valid trust path to the key. Let's see whether we\n"
+"can assign some missing owner trust values.\n"
+"\n"
+msgstr ""
+"Ne povis trovi validan fidovojon al la �losilo. Ni vidu, �u eblas\n"
+"atribui iujn mankantajn posedantofido-valorojn.\n"
+"\n"
+
+#: g10/pkclist.c:435
+msgid ""
+"No path leading to one of our keys found.\n"
+"\n"
+msgstr ""
+"Nenia vojo trovita, kiu kondukas al unu el niaj �losiloj.\n"
+"\n"
+
+#: g10/pkclist.c:437
+msgid ""
+"No certificates with undefined trust found.\n"
+"\n"
+msgstr ""
+"Neniom da atestiloj trovitaj kun nedifinita fidovaloro.\n"
+"\n"
+
+#: g10/pkclist.c:439
+msgid ""
+"No trust values changed.\n"
+"\n"
+msgstr ""
+"Neniuj fidovaloroj �an�itaj.\n"
+"\n"
+
+#: g10/pkclist.c:457
+#, c-format
+msgid "key %08lX: key has been revoked!\n"
+msgstr "�losilo %08lX: �losilo estas revokita!\n"
+
+#: g10/pkclist.c:464 g10/pkclist.c:476 g10/pkclist.c:598
+msgid "Use this key anyway? "
+msgstr "�u tamen uzi �i tiun �losilon? "
+
+#: g10/pkclist.c:469
+#, c-format
+msgid "key %08lX: subkey has been revoked!\n"
+msgstr "�losilo %08lX: sub�losilo estas revokita!\n"
+
+#: g10/pkclist.c:512
+#, c-format
+msgid "%08lX: key has expired\n"
+msgstr "%08lX: �losilo eksvalidi�is\n"
+
+#: g10/pkclist.c:518
+#, c-format
+msgid "%08lX: no info to calculate a trust probability\n"
+msgstr "%08lX: mankas informoj por kalkuli fidovaloron\n"
+
+#: g10/pkclist.c:533
+#, c-format
+msgid "%08lX: We do NOT trust this key\n"
+msgstr "%08lX: Ni NE fidas �i tiun �losilon\n"
+
+#: g10/pkclist.c:539
+#, c-format
+msgid ""
+"%08lX: It is not sure that this key really belongs to the owner\n"
+"but it is accepted anyway\n"
+msgstr ""
+"%08lX: Ne estas certe, ke �i tiu �losilo vere apartenas al la posedanto,\n"
+"sed �i tamen estas akceptita\n"
+
+#: g10/pkclist.c:545
+msgid "This key probably belongs to the owner\n"
+msgstr "�i tiu �losilo ver�ajne apartenas al la posedanto\n"
+
+#: g10/pkclist.c:550
+msgid "This key belongs to us\n"
+msgstr "�i tiu �losilo apartenas al ni\n"
+
+#: g10/pkclist.c:593
+msgid ""
+"It is NOT certain that the key belongs to its owner.\n"
+"If you *really* know what you are doing, you may answer\n"
+"the next question with yes\n"
+"\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"
+
+#: g10/pkclist.c:607 g10/pkclist.c:630
+msgid "WARNING: Using untrusted key!\n"
+msgstr "AVERTO: Uzas nefidatan �losilon!\n"
+
+#: g10/pkclist.c:651
+msgid "WARNING: This key has been revoked by its owner!\n"
+msgstr "AVERTO: �i tiu �losilo estas revokita de sia posedanto!\n"
+
+#: g10/pkclist.c:652
+msgid " This could mean that the signature is forgery.\n"
+msgstr " Tio povas signifi, ke la subskribo estas falsa.\n"
+
+#: g10/pkclist.c:657
+msgid "WARNING: This subkey has been revoked by its owner!\n"
+msgstr "AVERTO: �i tiu sub�losilo estas revokita de sia posedanto!\n"
+
+#: g10/pkclist.c:679
+msgid "Note: This key has expired!\n"
+msgstr "Noto: �i tiu �losilo eksvalidi�is!\n"
+
+#: g10/pkclist.c:687
+msgid "WARNING: This key is not certified with a trusted signature!\n"
+msgstr "AVERTO: �i tiu �losilo ne estas atestita kun fidata subskribo!\n"
+
+#: g10/pkclist.c:689
+msgid ""
+" There is no indication that the signature belongs to the owner.\n"
+msgstr ""
+" Estas nenia indiko, ke la subskribo apartenas al la posedanto.\n"
+
+#: g10/pkclist.c:706
+msgid "WARNING: We do NOT trust this key!\n"
+msgstr "AVERTO: Ni NE fidas �i tiun �losilon!\n"
+
+#: g10/pkclist.c:707
+msgid " The signature is probably a FORGERY.\n"
+msgstr " La subskribo ver�ajne estas FALSA.\n"
+
+#: g10/pkclist.c:714
+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"
+
+#: g10/pkclist.c:717
+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"
+
+#: g10/pkclist.c:819 g10/pkclist.c:841 g10/pkclist.c:967 g10/pkclist.c:1012
+#, c-format
+msgid "%s: skipped: %s\n"
+msgstr "%s: ignorita: %s\n"
+
+#: g10/pkclist.c:827 g10/pkclist.c:994
+#, c-format
+msgid "%s: skipped: public key already present\n"
+msgstr "%s: ignorita: publika �losilo jam �eestas\n"
+
+#: g10/pkclist.c:854
+msgid ""
+"You did not specify a user ID. (you may use \"-r\")\n"
+"\n"
+msgstr ""
+"Vi ne specifis uzantidentigilon. (Vi povas uzi \"-r\")\n"
+"\n"
+
+#: g10/pkclist.c:864
+msgid "Enter the user ID: "
+msgstr "Donu la uzantidentigilon: "
+
+#: g10/pkclist.c:876
+msgid "No such user ID.\n"
+msgstr "Uzantidentigilo ne ekzistas.\n"
+
+#: g10/pkclist.c:881
+msgid "skipped: public key already set as default recipient\n"
+msgstr "ignorita: publika �losilo jam difinita kiel implicita ricevonto\n"
+
+#: g10/pkclist.c:904
+msgid "Public key is disabled.\n"
+msgstr "Publika �losilo estas mal�altita.\n"
+
+#: g10/pkclist.c:911
+msgid "skipped: public key already set with --encrypt-to\n"
+msgstr "ignorita: publika �losilo jam difinita per --encrypt-to\n"
+
+#: g10/pkclist.c:942
+#, c-format
+msgid "unknown default recipient `%s'\n"
+msgstr "nekonata implicita ricevonto '%s'\n"
+
+#: g10/pkclist.c:975
+#, c-format
+msgid "%s: error checking key: %s\n"
+msgstr "%s: eraro dum kontrolo de �losilo: %s\n"
+
+#: g10/pkclist.c:980
+#, c-format
+msgid "%s: skipped: public key is disabled\n"
+msgstr "%s: ignorita: publika �losilo estas mal�altita\n"
+
+#: g10/pkclist.c:1018
+msgid "no valid addressees\n"
+msgstr "mankas validaj adresitoj\n"
+
+#: g10/keygen.c:175
+msgid "writing self signature\n"
+msgstr "skribas mem-subskribon\n"
+
+#: g10/keygen.c:213
+msgid "writing key binding signature\n"
+msgstr "skribas �losilbindan subskribon\n"
+
+#: g10/keygen.c:261 g10/keygen.c:345
+#, fuzzy, c-format
+msgid "keysize invalid; using %u bits\n"
+msgstr "Petita �losilgrando estas %u bitoj\n"
+
+#: g10/keygen.c:266 g10/keygen.c:350
+#, fuzzy, c-format
+msgid "keysize rounded up to %u bits\n"
+msgstr "rondigita �is %u bitoj\n"
+
+#: g10/keygen.c:456
+msgid "Please select what kind of key you want:\n"
+msgstr "Bonvolu elekti, kian �losilon vi deziras:\n"
+
+#: g10/keygen.c:458
+#, c-format
+msgid " (%d) DSA and ElGamal (default)\n"
+msgstr " (%d) DSA kaj ElGamal (implicita elekto)\n"
+
+#: g10/keygen.c:459
+#, c-format
+msgid " (%d) DSA (sign only)\n"
+msgstr " (%d) DSA (nur subskribi)\n"
+
+#: g10/keygen.c:461
+#, c-format
+msgid " (%d) ElGamal (encrypt only)\n"
+msgstr " (%d) ElGamal (nur �ifri)\n"
+
+#: g10/keygen.c:462
+#, c-format
+msgid " (%d) ElGamal (sign and encrypt)\n"
+msgstr " (%d) ElGamal (subskribi kaj �ifri)\n"
+
+#: g10/keygen.c:465
+msgid "Your selection? "
+msgstr "Via elekto? "
+
+#: g10/keygen.c:475
+msgid "Do you really want to create a sign and encrypt key? "
+msgstr "�u vi vere volas krei subskriban kaj �ifran �losilon? "
+
+#: g10/keygen.c:489
+msgid "Invalid selection.\n"
+msgstr "Nevalida elekto.\n"
+
+#: g10/keygen.c:501
+#, c-format
+msgid ""
+"About to generate a new %s keypair.\n"
+" minimum keysize is 768 bits\n"
+" 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"
+
+#: g10/keygen.c:508
+msgid "What keysize do you want? (1024) "
+msgstr "Kiun �losilgrandon vi deziras? (1024) "
+
+#: g10/keygen.c:513
+msgid "DSA only allows keysizes from 512 to 1024\n"
+msgstr "DSA permesas �losilgrandon nur inter 512 kaj 1024\n"
+
+#: g10/keygen.c:515
+msgid "keysize too small; 768 is smallest value allowed.\n"
+msgstr "�losilgrando tro malgranda; 768 estas plej eta permesata valoro.\n"
+
+#. It is ridiculous and an annoyance to use larger key sizes!
+#. * GnuPG can handle much larger sizes; but it takes an eternity
+#. * to create such a key (but less than the time the Sirius
+#. * Computer Corporation needs to process one of the usual
+#. * complaints) and {de,en}cryption although needs some time.
+#. * So, before you complain about this limitation, I suggest that
+#. * you start a discussion with Marvin about this theme and then
+#. * do whatever you want.
+#: g10/keygen.c:525
+#, c-format
+msgid "keysize too large; %d is largest value allowed.\n"
+msgstr "�losilgrando tro granda; %d estas plej granda permesata valoro.\n"
+
+#: g10/keygen.c:530
+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"
+
+#: g10/keygen.c:533
+msgid "Are you sure that you want this keysize? "
+msgstr "�u vi estas certa, ke vi deziras �i tiun �losilgrandon? "
+
+#: g10/keygen.c:534
+msgid ""
+"Okay, but keep in mind that your monitor and keyboard radiation is also very "
+"vulnerable to attacks!\n"
+msgstr ""
+"Bone, sed pripensu, ke la elradiado de viaj ekrano kaj klavaro estas tre "
+"facile kaptebla!\n"
+
+#: g10/keygen.c:542
+msgid "Do you really need such a large keysize? "
+msgstr "�u vi vere bezonas tiom grandan �losilgrandon? "
+
+#: g10/keygen.c:548
+#, c-format
+msgid "Requested keysize is %u bits\n"
+msgstr "Petita �losilgrando estas %u bitoj\n"
+
+#: g10/keygen.c:551 g10/keygen.c:555
+#, c-format
+msgid "rounded up to %u bits\n"
+msgstr "rondigita �is %u bitoj\n"
+
+#: g10/keygen.c:603
+msgid ""
+"Please specify how long the key should be valid.\n"
+" 0 = key does not expire\n"
+" <n> = key expires in n days\n"
+" <n>w = key expires in n weeks\n"
+" <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"
+
+#: g10/keygen.c:618
+msgid "Key is valid for? (0) "
+msgstr "�losilo validu ...? (0) "
+
+#: g10/keygen.c:623
+msgid "invalid value\n"
+msgstr "nevalida valoro\n"
+
+#: g10/keygen.c:628
+msgid "Key does not expire at all\n"
+msgstr "�losilo neniam eksvalidi�os\n"
+
+#. print the date when the key expires
+#: g10/keygen.c:634
+#, c-format
+msgid "Key expires at %s\n"
+msgstr "�losilo eksvalidi�os je %s\n"
+
+#: g10/keygen.c:637
+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"
+
+#: g10/keygen.c:642
+msgid "Is this correct (y/n)? "
+msgstr "�u tio estas �usta (j/n)? "
+
+#: g10/keygen.c:685
+msgid ""
+"\n"
+"You need a User-ID to identify your key; the software constructs the user "
+"id\n"
+"from Real Name, Comment and Email Address in this form:\n"
+" \"Heinrich Heine (Der Dichter) <[email protected]>\"\n"
+"\n"
+msgstr ""
+"\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) <[email protected]>\"\n"
+"\n"
+
+#: g10/keygen.c:697
+msgid "Real name: "
+msgstr "Vera nomo: "
+
+#: g10/keygen.c:701
+msgid "Invalid character in name\n"
+msgstr "Nevalida signo en nomo\n"
+
+#: g10/keygen.c:703
+msgid "Name may not start with a digit\n"
+msgstr "Nomo ne povas komenci�i per cifero\n"
+
+#: g10/keygen.c:705
+msgid "Name must be at least 5 characters long\n"
+msgstr "Nomo devas havi almena� 5 signojn\n"
+
+#: g10/keygen.c:713
+msgid "Email address: "
+msgstr "Retadreso: "
+
+#: g10/keygen.c:724
+msgid "Not a valid email address\n"
+msgstr "Nevalida retadreso\n"
+
+#: g10/keygen.c:732
+msgid "Comment: "
+msgstr "Komento: "
+
+#: g10/keygen.c:738
+msgid "Invalid character in comment\n"
+msgstr "Nevalida signo en komento\n"
+
+#: g10/keygen.c:761
+#, c-format
+msgid "You are using the `%s' character set.\n"
+msgstr "Vi uzas la signaron '%s'.\n"
+
+#: g10/keygen.c:767
+#, c-format
+msgid ""
+"You selected this USER-ID:\n"
+" \"%s\"\n"
+"\n"
+msgstr ""
+"Vi elektis �i tiun uzantidentigilon:\n"
+" \"%s\"\n"
+"\n"
+
+#: g10/keygen.c:771
+msgid "Please don't put the email address into the real name or the comment\n"
+msgstr ""
+
+#: g10/keygen.c:776
+msgid "NnCcEeOoQq"
+msgstr "NnKkAaBbFf"
+
+#: g10/keygen.c:786
+#, fuzzy
+msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
+msgstr "�an�u (N)omon, (K)omenton, (A)adreson, a� (B)one/(F)ini? "
+
+#: g10/keygen.c:787
+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? "
+
+#: g10/keygen.c:806
+msgid "Please correct the error first\n"
+msgstr ""
+
+#: g10/keygen.c:844
+msgid ""
+"You need a Passphrase to protect your secret key.\n"
+"\n"
+msgstr ""
+"Vi bezonas pasfrazon por protekti vian sekretan �losilon.\n"
+"\n"
+
+#: g10/keyedit.c:468 g10/keygen.c:852
+msgid "passphrase not correctly repeated; try again.\n"
+msgstr "la pasfrazo ne estis �uste ripetita; provu denove.\n"
+
+#: g10/keygen.c:858
+msgid ""
+"You don't want a passphrase - this is probably a *bad* idea!\n"
+"I will do it anyway. You can change your passphrase at any time,\n"
+"using this program with the option \"--edit-key\".\n"
+"\n"
+msgstr ""
+"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"
+
+#: g10/keygen.c:879
+msgid ""
+"We need to generate a lot of random bytes. It is a good idea to perform\n"
+"some other action (type on the keyboard, move the mouse, utilize the\n"
+"disks) during the prime generation; this gives the random number\n"
+"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"
+
+#: g10/keygen.c:1325
+msgid "DSA keypair will have 1024 bits.\n"
+msgstr "DSA-�losilparo havos 1024 bitojn.\n"
+
+#: g10/keygen.c:1368
+msgid "Key generation canceled.\n"
+msgstr "Kreado de �losiloj nuligita.\n"
+
+#: g10/keygen.c:1465
+#, fuzzy, c-format
+msgid "writing public key to `%s'\n"
+msgstr "skribas publikan atestilon al '%s'\n"
+
+#: g10/keygen.c:1466
+#, fuzzy, c-format
+msgid "writing secret key to `%s'\n"
+msgstr "skribas sekretan atestilon al '%s'\n"
+
+#: g10/keygen.c:1562
+msgid "public and secret key created and signed.\n"
+msgstr "publika kaj sekreta �losiloj kreitaj kaj subskribitaj.\n"
+
+#: g10/keygen.c:1567
+msgid ""
+"Note that this key cannot be used for encryption. You may want to use\n"
+"the command \"--edit-key\" to generate a secondary key 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"
+
+#: g10/keygen.c:1584 g10/keygen.c:1685
+#, c-format
+msgid "Key generation failed: %s\n"
+msgstr "Kreado de �losiloj malsukcesis: %s\n"
+
+#: g10/keygen.c:1628 g10/sig-check.c:318 g10/sign.c:111
+#, 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"
+
+#: g10/keygen.c:1630 g10/sig-check.c:320 g10/sign.c:113
+#, 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"
+
+#: g10/keygen.c:1663
+msgid "Really create? "
+msgstr "�u vere krei? "
+
+#: g10/encode.c:91 g10/openfile.c:168 g10/openfile.c:277 g10/tdbio.c:454
+#: g10/tdbio.c:515
+#, c-format
+msgid "%s: can't open: %s\n"
+msgstr "%s: ne povas malfermi: %s\n"
+
+#: g10/encode.c:113
+#, c-format
+msgid "error creating passphrase: %s\n"
+msgstr "eraro dum kreado de pasfrazo: %s\n"
+
+#: g10/encode.c:171 g10/encode.c:319
+#, c-format
+msgid "%s: WARNING: empty file\n"
+msgstr "%s: AVERTO: malplena dosiero\n"
+
+#: g10/encode.c:266
+#, c-format
+msgid "reading from `%s'\n"
+msgstr "legas el '%s'\n"
+
+#: g10/encode.c:483
+#, c-format
+msgid "%s/%s encrypted for: %s\n"
+msgstr "%s/%s-�ifrita por: %s\n"
+
+#: g10/export.c:153
+#, c-format
+msgid "%s: user not found: %s\n"
+msgstr "%s: uzanto ne trovita: %s\n"
+
+#: g10/export.c:162
+#, c-format
+msgid "certificate read problem: %s\n"
+msgstr "problemo �e legado de atestilo: %s\n"
+
+#: g10/export.c:171
+#, c-format
+msgid "key %08lX: not a rfc2440 key - skipped\n"
+msgstr "�losilo %08lX: ne estas RFC-2440-�losilo - ignorita\n"
+
+#: g10/export.c:182
+#, fuzzy, c-format
+msgid "key %08lX: not protected - skipped\n"
+msgstr "�losilo %08lX: ne estas RFC-2440-�losilo - ignorita\n"
+
+#: g10/export.c:232
+msgid "WARNING: nothing exported\n"
+msgstr "AVERTO: nenio estis eksportita\n"
+
+#: g10/getkey.c:211
+msgid "too many entries in pk cache - disabled\n"
+msgstr "tro da registroj en pk-staplo - mal�altas\n"
+
+#: g10/getkey.c:350
+msgid "too many entries in unk cache - disabled\n"
+msgstr "tro da registroj en unk-staplo - mal�altas\n"
+
+#: g10/getkey.c:1308 g10/getkey.c:1347
+msgid "RSA key cannot be used in this version\n"
+msgstr "RSA-�losilo ne estas uzebla kun �i tiu versio\n"
+
+#: g10/getkey.c:1310 g10/getkey.c:1349
+msgid "No key for user ID\n"
+msgstr "Mankas �losilo por uzantidentigilo\n"
+
+#: g10/getkey.c:1388 g10/getkey.c:1428
+msgid "No user ID for key\n"
+msgstr "Mankas uzantidentigilo por �losilo\n"
+
+#: g10/getkey.c:1642 g10/getkey.c:1698
+#, c-format
+msgid "using secondary key %08lX instead of primary key %08lX\n"
+msgstr "uzas flankan �losilon %08lX anstata� la �efa �losilo %08lX\n"
+
+#: g10/getkey.c:2017
+#, fuzzy
+msgid "[User id not found]"
+msgstr "%s: uzanto ne trovita\n"
+
+#: g10/import.c:181
+#, c-format
+msgid "skipping block of type %d\n"
+msgstr "ignoras blokon de speco %d\n"
+
+#: g10/import.c:188 g10/trustdb.c:1740 g10/trustdb.c:1781
+#, c-format
+msgid "%lu keys so far processed\n"
+msgstr "%lu �losiloj jam traktitaj\n"
+
+#: g10/import.c:193
+#, c-format
+msgid "error reading `%s': %s\n"
+msgstr "eraro dum legado de '%s': %s\n"
+
+#: g10/import.c:203
+#, c-format
+msgid "Total number processed: %lu\n"
+msgstr " Nombro traktita entute: %lu\n"
+
+#: g10/import.c:205
+#, c-format
+msgid " w/o user IDs: %lu\n"
+msgstr " sen uzantidentigilo: %lu\n"
+
+#: g10/import.c:207
+#, c-format
+msgid " imported: %lu"
+msgstr " importitaj: %lu"
+
+#: g10/import.c:213
+#, c-format
+msgid " unchanged: %lu\n"
+msgstr " ne�an�itaj: %lu\n"
+
+#: g10/import.c:215
+#, c-format
+msgid " new user IDs: %lu\n"
+msgstr " novaj uzantidentigiloj: %lu\n"
+
+#: g10/import.c:217
+#, c-format
+msgid " new subkeys: %lu\n"
+msgstr " novaj sub�losiloj: %lu\n"
+
+#: g10/import.c:219
+#, c-format
+msgid " new signatures: %lu\n"
+msgstr " novaj subskriboj: %lu\n"
+
+#: g10/import.c:221
+#, c-format
+msgid " new key revocations: %lu\n"
+msgstr " novaj �losilrevokoj: %lu\n"
+
+#: g10/import.c:223
+#, c-format
+msgid " secret keys read: %lu\n"
+msgstr " sekretaj �losiloj legitaj: %lu\n"
+
+#: g10/import.c:225
+#, c-format
+msgid " secret keys imported: %lu\n"
+msgstr "sekretaj �losiloj importitaj: %lu\n"
+
+#: g10/import.c:227
+#, c-format
+msgid " secret keys unchanged: %lu\n"
+msgstr "sekretaj �losiloj ne�an�itaj: %lu\n"
+
+#: g10/import.c:386 g10/import.c:578
+#, c-format
+msgid "key %08lX: no user ID\n"
+msgstr "�losilo %08lX: mankas uzantidentigilo\n"
+
+#: g10/import.c:400
+#, c-format
+msgid "key %08lX: no valid user IDs\n"
+msgstr "�losilo %08lX: mankas valida uzantidentigilo\n"
+
+#: g10/import.c:402
+msgid "this may be caused by a missing self-signature\n"
+msgstr "tio povas esti ka�zata de mankanta mem-subskribo\n"
+
+#: g10/import.c:413 g10/import.c:645
+#, c-format
+msgid "key %08lX: public key not found: %s\n"
+msgstr "�losilo %08lX: publika �losilo ne trovita: %s\n"
+
+#: g10/import.c:419
+msgid "no default public keyring\n"
+msgstr "mankas implicita publika �losilaro\n"
+
+#: g10/import.c:423 g10/openfile.c:220 g10/sign.c:275 g10/sign.c:587
+#, c-format
+msgid "writing to `%s'\n"
+msgstr "skribas al '%s'\n"
+
+#: g10/import.c:426 g10/import.c:484 g10/import.c:593 g10/import.c:694
+#, c-format
+msgid "can't lock keyring `%s': %s\n"
+msgstr "ne povas �losi la �losilaron '%s': %s\n"
+
+#: g10/import.c:429 g10/import.c:487 g10/import.c:596 g10/import.c:697
+#, c-format
+msgid "error writing keyring `%s': %s\n"
+msgstr "eraro dum skribado de �losilaro '%s': %s\n"
+
+#: g10/import.c:434
+#, c-format
+msgid "key %08lX: public key imported\n"
+msgstr "�losilo %08lX: publika �losilo importita\n"
+
+#: g10/import.c:451
+#, c-format
+msgid "key %08lX: doesn't match our copy\n"
+msgstr "�losilo %08lX: diferencas de nia kopio\n"
+
+#: g10/import.c:460 g10/import.c:653
+#, c-format
+msgid "key %08lX: can't locate original keyblock: %s\n"
+msgstr "�losilo %08lX: ne povas trovi originalan �losilblokon: %s\n"
+
+#: g10/import.c:466 g10/import.c:659
+#, c-format
+msgid "key %08lX: can't read original keyblock: %s\n"
+msgstr "�losilo %08lX: ne povas legi originalan �losilblokon: %s\n"
+
+#: g10/import.c:493
+#, c-format
+msgid "key %08lX: 1 new user ID\n"
+msgstr "�losilo %08lX: 1 nova uzantidentigilo\n"
+
+#: g10/import.c:496
+#, c-format
+msgid "key %08lX: %d new user IDs\n"
+msgstr "�losilo %08lX: %d novaj uzantidentigiloj\n"
+
+#: g10/import.c:499
+#, c-format
+msgid "key %08lX: 1 new signature\n"
+msgstr "�losilo %08lX: 1 nova subskribo\n"
+
+#: g10/import.c:502
+#, c-format
+msgid "key %08lX: %d new signatures\n"
+msgstr "�losilo %08lX: %d novaj subskriboj\n"
+
+#: g10/import.c:505
+#, c-format
+msgid "key %08lX: 1 new subkey\n"
+msgstr "�losilo %08lX: 1 nova sub�losilo\n"
+
+#: g10/import.c:508
+#, c-format
+msgid "key %08lX: %d new subkeys\n"
+msgstr "�losilo %08lX: %d novaj sub�losiloj\n"
+
+#: g10/import.c:518
+#, c-format
+msgid "key %08lX: not changed\n"
+msgstr "�losilo %08lX: ne �an�ita\n"
+
+#: g10/import.c:601
+#, c-format
+msgid "key %08lX: secret key imported\n"
+msgstr "�losilo %08lX: sekreta �losilo importita\n"
+
+#. we can't merge secret keys
+#: g10/import.c:605
+#, c-format
+msgid "key %08lX: already in secret keyring\n"
+msgstr "�losilo %08lX: jam en sekreta �losilaro\n"
+
+#: g10/import.c:610
+#, c-format
+msgid "key %08lX: secret key not found: %s\n"
+msgstr "�losilo %08lX: sekreta �losilo ne trovita: %s\n"
+
+#: g10/import.c:639
+#, c-format
+msgid "key %08lX: no public key - can't apply revocation certificate\n"
+msgstr ""
+"�losilo %08lX: publika �losilo mankas - ne povas apliki revokatestilon\n"
+
+#: g10/import.c:670
+#, c-format
+msgid "key %08lX: invalid revocation certificate: %s - rejected\n"
+msgstr "�losilo %08lX: nevalida revokatestilo: %s - malakceptita\n"
+
+#: g10/import.c:702
+#, c-format
+msgid "key %08lX: revocation certificate imported\n"
+msgstr "�losilo %08lX: revokatestilo importita\n"
+
+#: g10/import.c:744
+#, c-format
+msgid "key %08lX: no user ID for signature\n"
+msgstr "�losilo %08lX: mankas uzantidentigilo por subskribo\n"
+
+#: g10/import.c:751 g10/import.c:775
+#, c-format
+msgid "key %08lX: unsupported public key algorithm\n"
+msgstr "�losilo %08lX: nerealigita publik�losila metodo\n"
+
+#: g10/import.c:752
+#, c-format
+msgid "key %08lX: invalid self-signature\n"
+msgstr "�losilo %08lX: nevalida mem-subskribo\n"
+
+#: g10/import.c:767
+#, c-format
+msgid "key %08lX: no subkey for key binding\n"
+msgstr "�losilo %08lX: mankas sub�losilo por �losilbindado\n"
+
+#: g10/import.c:776
+#, c-format
+msgid "key %08lX: invalid subkey binding\n"
+msgstr "�losilo %08lX: nevalida sub�losila bindado\n"
+
+#: g10/import.c:803
+#, c-format
+msgid "key %08lX: accepted non self-signed user ID '"
+msgstr "�losilo %08lX: akceptis ne-mem-subskribitan uzantidentigilon '"
+
+#: g10/import.c:832
+#, c-format
+msgid "key %08lX: skipped user ID '"
+msgstr "�losilo %08lX: ignoris uzantidentigilon '"
+
+#: g10/import.c:855
+#, c-format
+msgid "key %08lX: skipped subkey\n"
+msgstr "�losilo %08lX: ignoris sub�losilon\n"
+
+#. here we violate the rfc a bit by still allowing
+#. * to import non-exportable signature when we have the
+#. * the secret key used to create this signature - it
+#. * seems that this makes sense
+#: g10/import.c:880
+#, c-format
+msgid "key %08lX: non exportable signature (class %02x) - skipped\n"
+msgstr "�losilo %08lX: neeksportebla subskribo (klaso %02x) - ignorita\n"
+
+#: g10/import.c:889
+#, c-format
+msgid "key %08lX: revocation certificate at wrong place - skipped\n"
+msgstr "�losilo %08lX: revokatestilo en mal�usta loko - ignorita\n"
+
+#: g10/import.c:897
+#, c-format
+msgid "key %08lX: invalid revocation certificate: %s - skipped\n"
+msgstr "�losilo %08lX: nevalida revokatestilo: %s - ignorita\n"
+
+#: g10/import.c:997
+#, c-format
+msgid "key %08lX: duplicated user ID detected - merged\n"
+msgstr "�losilo %08lX: trovis ripetitan uzantidentigilon - kunfandita\n"
+
+#: g10/import.c:1048
+#, c-format
+msgid "key %08lX: revocation certificate added\n"
+msgstr "�losilo %08lX: revokatestilo aldonita\n"
+
+#: g10/import.c:1162 g10/import.c:1215
+#, c-format
+msgid "key %08lX: our copy has no self-signature\n"
+msgstr "�losilo %08lX: nia kopio ne havas mem-subskribon\n"
+
+#: g10/delkey.c:64 g10/keyedit.c:94
+#, c-format
+msgid "%s: user not found\n"
+msgstr "%s: uzanto ne trovita\n"
+
+#: g10/keyedit.c:155
+msgid "[revocation]"
+msgstr "[revoko]"
+
+#: g10/keyedit.c:156
+msgid "[self-signature]"
+msgstr "[mem-subskribo]"
+
+#: g10/keyedit.c:220
+msgid "1 bad signature\n"
+msgstr "1 malbona subskribo\n"
+
+#: g10/keyedit.c:222
+#, c-format
+msgid "%d bad signatures\n"
+msgstr "%d malbonaj subskriboj\n"
+
+#: g10/keyedit.c:224
+msgid "1 signature not checked due to a missing key\n"
+msgstr "1 subskribo ne kontrolita pro manko de �losilo\n"
+
+#: g10/keyedit.c:226
+#, c-format
+msgid "%d signatures not checked due to missing keys\n"
+msgstr "%d subskriboj ne kontrolitaj pro manko de �losiloj\n"
+
+#: g10/keyedit.c:228
+msgid "1 signature not checked due to an error\n"
+msgstr "1 subskribo ne kontrolita pro eraro\n"
+
+#: g10/keyedit.c:230
+#, c-format
+msgid "%d signatures not checked due to errors\n"
+msgstr "%d subskriboj ne kontrolitaj pro eraroj\n"
+
+#: g10/keyedit.c:232
+msgid "1 user ID without valid self-signature detected\n"
+msgstr "1 uzantidentigilo sen valida mem-subskribo estis trovita\n"
+
+#: g10/keyedit.c:234
+#, c-format
+msgid "%d user IDs without valid self-signatures detected\n"
+msgstr "%d uzantidentigiloj sen valida mem-subskribo estis trovitaj\n"
+
+#. Fixme: see whether there is a revocation in which
+#. * case we should allow to sign it again.
+#: g10/keyedit.c:316
+#, c-format
+msgid "Already signed by key %08lX\n"
+msgstr "Jam subskribita per �losilo %08lX\n"
+
+#: g10/keyedit.c:324
+#, c-format
+msgid "Nothing to sign with key %08lX\n"
+msgstr "Nenio por subskribi per �losilo %08lX\n"
+
+#: g10/keyedit.c:333
+msgid ""
+"Are you really sure that you want to sign this key\n"
+"with your key: \""
+msgstr ""
+"�u vi estas tute certa, ke vi volas subskribi �i tiun �losilon\n"
+"per via �losilo: \""
+
+#: g10/keyedit.c:342
+msgid ""
+"The signature will be marked as non-exportable.\n"
+"\n"
+msgstr ""
+"La subskribo estos markita kiel neeksportebla.\n"
+"\n"
+
+#: g10/keyedit.c:347
+msgid "Really sign? "
+msgstr "�u vere subskribi? "
+
+#: g10/keyedit.c:373 g10/keyedit.c:1869 g10/keyedit.c:1931 g10/sign.c:135
+#, c-format
+msgid "signing failed: %s\n"
+msgstr "subskribado malsukcesis: %s\n"
+
+#: g10/keyedit.c:427
+msgid "This key is not protected.\n"
+msgstr "�i tiu �losilo ne estas protektita.\n"
+
+#: g10/keyedit.c:431
+#, fuzzy
+msgid "Secret parts of primary key are not available.\n"
+msgstr "sekreta �losilo ne havebla"
+
+#: g10/keyedit.c:435
+msgid "Key is protected.\n"
+msgstr "�losilo estas protektita.\n"
+
+#: g10/keyedit.c:455
+#, c-format
+msgid "Can't edit this key: %s\n"
+msgstr "Ne povas redakti �i tiun �losilon: %s\n"
+
+#: g10/keyedit.c:460
+msgid ""
+"Enter the new passphrase for this secret key.\n"
+"\n"
+msgstr ""
+"Donu la novan pasfrazon por �i tiu sekreta �losilo.\n"
+"\n"
+
+#: g10/keyedit.c:472
+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"
+"\n"
+
+#: g10/keyedit.c:475
+msgid "Do you really want to do this? "
+msgstr "�u vi vere volas fari tion? "
+
+#: g10/keyedit.c:539
+msgid "moving a key signature to the correct place\n"
+msgstr "movas �losilsubskribon al la �usta loko\n"
+
+#: g10/keyedit.c:580
+msgid "quit this menu"
+msgstr "forlasi �i tiun menuon"
+
+#: g10/keyedit.c:581
+msgid "q"
+msgstr "f"
+
+#: g10/keyedit.c:582
+msgid "save"
+msgstr "skribi"
+
+#: g10/keyedit.c:582
+msgid "save and quit"
+msgstr "skribi kaj fini"
+
+#: g10/keyedit.c:583
+msgid "help"
+msgstr "helpo"
+
+#: g10/keyedit.c:583
+msgid "show this help"
+msgstr "montri �i tiun helpon"
+
+#: g10/keyedit.c:585
+msgid "fpr"
+msgstr "fsp"
+
+#: g10/keyedit.c:585
+msgid "show fingerprint"
+msgstr "montri fingrospuron"
+
+#: g10/keyedit.c:586
+msgid "list"
+msgstr "listo"
+
+#: g10/keyedit.c:586
+msgid "list key and user IDs"
+msgstr "listigi �losilojn kaj uzantidentigilojn"
+
+#: g10/keyedit.c:587
+msgid "l"
+msgstr "l"
+
+#: g10/keyedit.c:588
+msgid "uid"
+msgstr "uid"
+
+#: g10/keyedit.c:588
+msgid "select user ID N"
+msgstr "elekti uzantidentigilon N"
+
+#: g10/keyedit.c:589
+msgid "key"
+msgstr "�losilo"
+
+#: g10/keyedit.c:589
+msgid "select secondary key N"
+msgstr "elekti flankan �losilon N"
+
+#: g10/keyedit.c:590
+msgid "check"
+msgstr "kontroli"
+
+#: g10/keyedit.c:590
+msgid "list signatures"
+msgstr "listigi subskribojn"
+
+#: g10/keyedit.c:591
+msgid "c"
+msgstr "k"
+
+#: g10/keyedit.c:592
+msgid "sign"
+msgstr "subskribi"
+
+#: g10/keyedit.c:592
+msgid "sign the key"
+msgstr "subskribi la �losilon"
+
+#: g10/keyedit.c:593
+msgid "s"
+msgstr "s"
+
+#: g10/keyedit.c:594
+msgid "lsign"
+msgstr "lsub"
+
+#: g10/keyedit.c:594
+msgid "sign the key locally"
+msgstr "subskribi la �losilon loke"
+
+#: g10/keyedit.c:595
+msgid "debug"
+msgstr "spuri"
+
+#: g10/keyedit.c:596
+msgid "adduid"
+msgstr "aluid"
+
+#: g10/keyedit.c:596
+msgid "add a user ID"
+msgstr "aldoni uzantidentigilon"
+
+#: g10/keyedit.c:597
+msgid "deluid"
+msgstr "foruid"
+
+#: g10/keyedit.c:597
+msgid "delete user ID"
+msgstr "forvi�i uzantidentigilon"
+
+#: g10/keyedit.c:598
+msgid "addkey"
+msgstr "al"
+
+#: g10/keyedit.c:598
+msgid "add a secondary key"
+msgstr "aldoni flankan �losilon"
+
+#: g10/keyedit.c:599
+msgid "delkey"
+msgstr "for"
+
+#: g10/keyedit.c:599
+msgid "delete a secondary key"
+msgstr "forvi�i flankan �losilon"
+
+#: g10/keyedit.c:600
+msgid "delsig"
+msgstr "forsig"
+
+#: g10/keyedit.c:600
+msgid "delete signatures"
+msgstr "forvi�i subskribojn"
+
+#: g10/keyedit.c:601
+msgid "expire"
+msgstr "eksval"
+
+#: g10/keyedit.c:601
+msgid "change the expire date"
+msgstr "�an�i la daton de eksvalidi�o"
+
+#: g10/keyedit.c:602
+msgid "toggle"
+msgstr "alia"
+
+#: g10/keyedit.c:602
+msgid "toggle between secret and public key listing"
+msgstr "de sekreta a� publika listo iri al la alia"
+
+#: g10/keyedit.c:604
+msgid "t"
+msgstr "a"
+
+#: g10/keyedit.c:605
+msgid "pref"
+msgstr "pref"
+
+#: g10/keyedit.c:605
+msgid "list preferences"
+msgstr "listigi preferojn"
+
+#: g10/keyedit.c:606
+msgid "passwd"
+msgstr "pasf"
+
+#: g10/keyedit.c:606
+msgid "change the passphrase"
+msgstr "�an�i la pasfrazon"
+
+#: g10/keyedit.c:607
+msgid "trust"
+msgstr "fido"
+
+#: g10/keyedit.c:607
+msgid "change the ownertrust"
+msgstr "�an�i la posedantofidon"
+
+#: g10/keyedit.c:608
+msgid "revsig"
+msgstr "revsig"
+
+#: g10/keyedit.c:608
+msgid "revoke signatures"
+msgstr "revoki subskribojn"
+
+#: g10/keyedit.c:609
+msgid "revkey"
+msgstr "rev"
+
+#: g10/keyedit.c:609
+msgid "revoke a secondary key"
+msgstr "revoki flankan �losilon"
+
+#: g10/keyedit.c:610
+msgid "disable"
+msgstr "el"
+
+#: g10/keyedit.c:610
+msgid "disable a key"
+msgstr "mal�alti �losilon"
+
+#: g10/keyedit.c:611
+msgid "enable"
+msgstr "en"
+
+#: g10/keyedit.c:611
+msgid "enable a key"
+msgstr "�alti �losilon"
+
+#: g10/delkey.c:110 g10/keyedit.c:630
+msgid "can't do that in batchmode\n"
+msgstr "ne povas fari tion en neinteraga re�imo\n"
+
+#. check that they match
+#. fixme: check that they both match
+#: g10/keyedit.c:668
+msgid "Secret key is available.\n"
+msgstr "Sekreta �losilo estas havebla.\n"
+
+#: g10/keyedit.c:697
+msgid "Command> "
+msgstr "Komando> "
+
+#: g10/keyedit.c:727
+msgid "Need the secret key to do this.\n"
+msgstr "Bezonas la sekretan �losilon por fari tion.\n"
+
+#: g10/keyedit.c:731
+msgid "Please use the command \"toggle\" first.\n"
+msgstr ""
+
+#: g10/keyedit.c:778
+msgid "Really sign all user IDs? "
+msgstr "�u vere subskribi �iujn uzantidentigilojn? "
+
+#: g10/keyedit.c:779
+msgid "Hint: Select the user IDs to sign\n"
+msgstr "Sugesto: Elekti la uzantidentigilojn por subskribi\n"
+
+#: g10/keyedit.c:811 g10/keyedit.c:993
+#, c-format
+msgid "update of trustdb failed: %s\n"
+msgstr "aktualigo de fido-datenaro malsukcesis: %s\n"
+
+#: g10/keyedit.c:822 g10/keyedit.c:843
+msgid "You must select at least one user ID.\n"
+msgstr "Vi devas elekti almena� unu uzantidentigilon.\n"
+
+#: g10/keyedit.c:824
+msgid "You can't delete the last user ID!\n"
+msgstr "Vi ne povas forvi�i la lastan uzantidentigilon!\n"
+
+#: g10/keyedit.c:827
+msgid "Really remove all selected user IDs? "
+msgstr "�u vere forigi �iujn elektitajn uzantidentigilojn? "
+
+#: g10/keyedit.c:828
+msgid "Really remove this user ID? "
+msgstr "�u vere forigi �i tiun uzantidentigilon? "
+
+#: g10/keyedit.c:864 g10/keyedit.c:886
+msgid "You must select at least one key.\n"
+msgstr "Vi devas elekti almena� unu �losilon.\n"
+
+#: g10/keyedit.c:868
+msgid "Do you really want to delete the selected keys? "
+msgstr "�u vi vere volas forvi�i la elektitajn �losilojn? "
+
+#: g10/keyedit.c:869
+msgid "Do you really want to delete this key? "
+msgstr "�u vi vere volas forvi�i �i tiun �losilon? "
+
+#: g10/keyedit.c:890
+msgid "Do you really want to revoke the selected keys? "
+msgstr "�u vi vere volas revoki la elektitajn �losilojn? "
+
+#: g10/keyedit.c:891
+msgid "Do you really want to revoke this key? "
+msgstr "�u vi vere volas revoki �i tiun �losilon? "
+
+#: g10/keyedit.c:957
+msgid "Save changes? "
+msgstr "�u skribi �an�ojn? "
+
+#: g10/keyedit.c:960
+msgid "Quit without saving? "
+msgstr "�u fini sen skribi �an�ojn? "
+
+#: g10/keyedit.c:971
+#, c-format
+msgid "update failed: %s\n"
+msgstr "aktualigo malsukcesis: %s\n"
+
+#: g10/keyedit.c:978
+#, c-format
+msgid "update secret failed: %s\n"
+msgstr "aktualigo de sekreto malsukcesis: %s\n"
+
+#: g10/keyedit.c:985
+msgid "Key not changed so no update needed.\n"
+msgstr "�losilo ne �an�ita, do aktualigo ne necesas.\n"
+
+#: g10/keyedit.c:1000
+msgid "Invalid command (try \"help\")\n"
+msgstr "Nevalida komando (provu per \"helpo\")\n"
+
+#: g10/keyedit.c:1093
+msgid "This key has been disabled"
+msgstr "�i tiu �losilo estas mal�altita"
+
+#: g10/keyedit.c:1364
+msgid "Delete this good signature? (y/N/q)"
+msgstr "�u forvi�i �i tiun bonan subskribon? (j/N/f)"
+
+#: g10/keyedit.c:1368
+msgid "Delete this invalid signature? (y/N/q)"
+msgstr "�u forvi�i �i tiun nevalidan subskribon? (j/N/f)"
+
+#: g10/keyedit.c:1372
+msgid "Delete this unknown signature? (y/N/q)"
+msgstr "�u forvi�i �i tiun nekonatan subskribon? (j/N/f)"
+
+#: g10/keyedit.c:1378
+msgid "Really delete this self-signature? (y/N)"
+msgstr "�u vere forvi�i �i tiun mem-subskribon? (j/N)"
+
+#: g10/keyedit.c:1392
+#, c-format
+msgid "Deleted %d signature.\n"
+msgstr "Forvi�is %d subskribon.\n"
+
+#: g10/keyedit.c:1393
+#, c-format
+msgid "Deleted %d signatures.\n"
+msgstr "Forvi�is %d subskribojn.\n"
+
+#: g10/keyedit.c:1396
+msgid "Nothing deleted.\n"
+msgstr "Nenio estis forvi�ita.\n"
+
+#: g10/keyedit.c:1465
+msgid "Please remove selections from the secret keys.\n"
+msgstr "Bonvolu malelekti la sekretajn �losilojn.\n"
+
+#: g10/keyedit.c:1471
+msgid "Please select at most one secondary key.\n"
+msgstr "Bonvolu elekti maksimume unu flankan �losilon.\n"
+
+#: g10/keyedit.c:1475
+msgid "Changing expiration time for a secondary key.\n"
+msgstr "�an�as la daton de eksvalidi�o de flanka �losilo.\n"
+
+#: g10/keyedit.c:1477
+msgid "Changing expiration time for the primary key.\n"
+msgstr "�an�as la daton de eksvalidi�o de la �efa �losilo.\n"
+
+#: g10/keyedit.c:1519
+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"
+
+#: g10/keyedit.c:1535
+msgid "No corresponding signature in secret ring\n"
+msgstr "Mankas responda subskribo en sekreta �losilaro\n"
+
+#: g10/keyedit.c:1596
+#, c-format
+msgid "No user ID with index %d\n"
+msgstr "Mankas uzantidentigilo kun indekso %d\n"
+
+#: g10/keyedit.c:1642
+#, c-format
+msgid "No secondary key with index %d\n"
+msgstr "Mankas flanka �losilo kun indekso %d\n"
+
+#: g10/keyedit.c:1740
+msgid "user ID: \""
+msgstr "uzantidentigilo: \""
+
+#: g10/keyedit.c:1743
+#, c-format
+msgid ""
+"\"\n"
+"signed with your key %08lX at %s\n"
+msgstr ""
+"\"\n"
+"subskribita per via �losilo %08lX je %s\n"
+
+#: g10/keyedit.c:1747
+msgid "Create a revocation certificate for this signature? (y/N)"
+msgstr "�u krei revokatestilon por �i tiu subskribo? (j/N)"
+
+#. FIXME: detect duplicates here
+#: g10/keyedit.c:1771
+msgid "You have signed these user IDs:\n"
+msgstr "Vi subskribis la sekvajn uzantidentigilojn:\n"
+
+#: g10/keyedit.c:1785 g10/keyedit.c:1820
+#, c-format
+msgid " signed by %08lX at %s\n"
+msgstr " subskribita per %08lX je %s\n"
+
+#: g10/keyedit.c:1790
+#, c-format
+msgid " revoked by %08lX at %s\n"
+msgstr " revokita de %08lX je %s\n"
+
+#: g10/keyedit.c:1810
+msgid "You are about to revoke these signatures:\n"
+msgstr "Vi revokos la sekvajn subskribojn:\n"
+
+#: g10/keyedit.c:1828
+msgid "Really create the revocation certificates? (y/N)"
+msgstr "�u vere krei la revokatestilojn? (j/N)"
+
+#: g10/keyedit.c:1857
+msgid "no secret key\n"
+msgstr "mankas sekreta �losilo\n"
+
+#. of subkey
+#: g10/keylist.c:318 g10/mainproc.c:740
+#, fuzzy, c-format
+msgid " [expires: %s]"
+msgstr "�losilo eksvalidi�os je %s\n"
+
+#: g10/mainproc.c:213
+#, c-format
+msgid "public key is %08lX\n"
+msgstr "publika �losilo estas %08lX\n"
+
+#: g10/mainproc.c:248
+msgid "public key encrypted data: good DEK\n"
+msgstr "publik�losile �ifritaj datenoj: bona DEK\n"
+
+#: g10/mainproc.c:281
+#, c-format
+msgid "encrypted with %u-bit %s key, ID %08lX, created %s\n"
+msgstr "�ifrita per %u-bita %s-�losilo, %08lX, kreita je %s\n"
+
+#: g10/mainproc.c:291
+#, c-format
+msgid "encrypted with %s key, ID %08lX\n"
+msgstr "�ifrita per %s-�losilo, %08lX\n"
+
+#: g10/mainproc.c:297
+msgid "no secret key for decryption available\n"
+msgstr "mankas sekreta �losilo por mal�ifrado\n"
+
+#: g10/mainproc.c:306
+#, c-format
+msgid "public key decryption failed: %s\n"
+msgstr "publik�losila mal�ifrado malsukcesis: %s\n"
+
+#: g10/mainproc.c:342
+msgid "decryption okay\n"
+msgstr "mal�ifrado sukcesis\n"
+
+#: g10/mainproc.c:347
+msgid "WARNING: encrypted message has been manipulated!\n"
+msgstr "AVERTO: �ifrita mesa�o estis manipulita!\n"
+
+#: g10/mainproc.c:352
+#, c-format
+msgid "decryption failed: %s\n"
+msgstr "mal�ifrado malsukcesis: %s\n"
+
+#: g10/mainproc.c:371
+msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
+msgstr "NOTO: sendinto petis konfidencon (\"for-your-eyes-only\")\n"
+
+#: g10/mainproc.c:373
+#, c-format
+msgid "original file name='%.*s'\n"
+msgstr "originala dosiernomo='%.*s'\n"
+
+#: g10/mainproc.c:524
+msgid "standalone revocation - use \"gpg --import\" to apply\n"
+msgstr "memstara revoko - uzu \"gpg --import\" por apliki �in\n"
+
+#: g10/mainproc.c:611 g10/mainproc.c:620
+msgid "WARNING: invalid notation data found\n"
+msgstr "AVERTO: nevalida notacia dateno trovita\n"
+
+#: g10/mainproc.c:623
+msgid "Notation: "
+msgstr "Notacio: "
+
+#: g10/mainproc.c:630
+msgid "Policy: "
+msgstr "Gvidlinio: "
+
+#: g10/mainproc.c:1057
+msgid "signature verification suppressed\n"
+msgstr "kontrolo de subskribo estas mal�altita\n"
+
+#: g10/mainproc.c:1063
+#, c-format
+msgid "Signature made %.*s using %s key ID %08lX\n"
+msgstr "Subskribo farita je %.*s per %s, �losilo %08lX\n"
+
+#. just in case that we have no userid
+#: g10/mainproc.c:1089 g10/mainproc.c:1100
+msgid "BAD signature from \""
+msgstr "MALBONA subskribo de \""
+
+#: g10/mainproc.c:1090 g10/mainproc.c:1101
+msgid "Good signature from \""
+msgstr "Bona subskribo de \""
+
+#: g10/mainproc.c:1092
+msgid " aka \""
+msgstr " alinome \""
+
+#: g10/mainproc.c:1148
+#, c-format
+msgid "Can't check signature: %s\n"
+msgstr "Ne povas kontroli subskribon: %s\n"
+
+#: g10/mainproc.c:1209
+#, c-format
+msgid "standalone signature of class 0x%02x\n"
+msgstr "memstara subskribo de klaso 0x%02x\n"
+
+#: g10/mainproc.c:1250
+msgid "old style (PGP 2.x) signature\n"
+msgstr "malnovstila subskribo (PGP 2.x)\n"
+
+#: g10/mainproc.c:1255
+msgid "invalid root packet detected in proc_tree()\n"
+msgstr "nevalida radikpaketo trovita en proc_tree()\n"
+
+#: g10/misc.c:94
+#, c-format
+msgid "can't disable core dumps: %s\n"
+msgstr "ne povas mal�alti kreadon de core-dosieroj: %s\n"
+
+#: g10/misc.c:97
+msgid "WARNING: program may create a core file!\n"
+msgstr "AVERTO: programo povas krei core-dosieron!\n"
+
+#: g10/misc.c:205
+msgid "Experimental algorithms should not be used!\n"
+msgstr "Eksperimentaj metodoj ne estu uzataj!\n"
+
+#: g10/misc.c:219
+msgid ""
+"RSA keys are deprecated; please consider creating a new key and use this key "
+"in the future\n"
+msgstr ""
+"RSA-�losiloj estas malrekomendataj; bonvolu pripensi krei novan �losilon kaj "
+"uzi tiun en la estonteco\n"
+
+#: g10/misc.c:241
+msgid "this cipher algorithm is depreciated; please use a more standard one!\n"
+msgstr "�i tiu �ifrad-metodo estas malrekomendata; bonvolu uzi pli normalan!\n"
+
+#: g10/parse-packet.c:115
+#, c-format
+msgid "can't handle public key algorithm %d\n"
+msgstr "ne povas trakti publik�losilan metodon %d\n"
+
+#: g10/parse-packet.c:956
+#, c-format
+msgid "subpacket of type %d has critical bit set\n"
+msgstr "subpaketo de speco %d havas �altitan \"critical bit\"\n"
+
+#: g10/passphrase.c:159
+msgid ""
+"\n"
+"You need a passphrase to unlock the secret key for\n"
+"user: \""
+msgstr ""
+"\n"
+"Vi bezonas pasfrazon por mal�losi la sekretan �losilon\n"
+"por la uzanto: \""
+
+#: g10/passphrase.c:168
+#, c-format
+msgid "%u-bit %s key, ID %08lX, created %s"
+msgstr "%u-bita %s-�losilo, %08lX, kreita je %s"
+
+#: g10/passphrase.c:173
+#, c-format
+msgid " (main key ID %08lX)"
+msgstr " (�ef�losilo %08lX)"
+
+#: g10/passphrase.c:190
+msgid "can't query password in batchmode\n"
+msgstr "ne povas kontroli pasvorton en neinteraga re�imo\n"
+
+#: g10/passphrase.c:194
+msgid "Enter passphrase: "
+msgstr "Donu pasfrazon: "
+
+#: g10/passphrase.c:198
+msgid "Repeat passphrase: "
+msgstr "Ripetu pasfrazon: "
+
+#: g10/plaintext.c:63
+msgid "data not saved; use option \"--output\" to save it\n"
+msgstr "datenoj ne savitaj; uzu la opcion \"--output\" por savi ilin\n"
+
+#: g10/plaintext.c:317
+msgid "Detached signature.\n"
+msgstr "Aparta subskribo.\n"
+
+#: g10/plaintext.c:321
+msgid "Please enter name of data file: "
+msgstr "Bonvolu doni la nomon de la dosiero: "
+
+#: g10/plaintext.c:342
+msgid "reading stdin ...\n"
+msgstr "legas la normalan enigon ...\n"
+
+#: g10/plaintext.c:385
+#, c-format
+msgid "can't open signed data `%s'\n"
+msgstr "ne povas malfermi subskribitan dosieron '%s'\n"
+
+#: g10/pubkey-enc.c:79
+#, c-format
+msgid "anonymous receiver; trying secret key %08lX ...\n"
+msgstr "nenomita ricevonto; provas per sekreta �losilo %08lX ...\n"
+
+#: g10/pubkey-enc.c:85
+msgid "okay, we are the anonymous recipient.\n"
+msgstr "bone; ni estas la nenomita ricevonto.\n"
+
+#: g10/pubkey-enc.c:137
+msgid "old encoding of the DEK is not supported\n"
+msgstr "malnova kodado de DEK ne estas realigita\n"
+
+#: g10/pubkey-enc.c:156
+#, fuzzy, c-format
+msgid "cipher algorithm %d is unknown or disabled\n"
+msgstr "protekto-metodo %d ne estas realigita\n"
+
+#: g10/pubkey-enc.c:195
+#, c-format
+msgid "NOTE: cipher algorithm %d not found in preferences\n"
+msgstr "NOTO: �ifrad-metodo %d ne trovita en preferoj\n"
+
+#: g10/pubkey-enc.c:201
+#, fuzzy, c-format
+msgid "NOTE: secret key %08lX expired at %s\n"
+msgstr "NOTO: subskribo-�losilo eksvalidi�is je %s\n"
+
+#: g10/hkp.c:62
+#, c-format
+msgid "requesting key %08lX from %s ...\n"
+msgstr "petas la �losilon %08lX de %s ...\n"
+
+#: g10/hkp.c:75
+#, c-format
+msgid "can't get key from keyserver: %s\n"
+msgstr "ne povas akiri �losilon de �losilservilo: %s\n"
+
+#: g10/hkp.c:98 g10/hkp.c:136
+msgid "no keyserver known (use option --keyserver)\n"
+msgstr "neniu �losilservilo konata (uzu la opcion --keyserver)\n"
+
+#: g10/hkp.c:106
+#, c-format
+msgid "%s: not a valid key ID\n"
+msgstr "%s: ne valida �losilidentigilo\n"
+
+#: g10/hkp.c:158
+#, c-format
+msgid "can't connect to `%s': %s\n"
+msgstr "ne povas konekti�i al '%s': %s\n"
+
+#: g10/hkp.c:182
+#, c-format
+msgid "error sending to `%s': %s\n"
+msgstr "eraro dum sendo al '%s': %s\n"
+
+#: g10/hkp.c:194
+#, c-format
+msgid "success sending to `%s' (status=%u)\n"
+msgstr "sukceso dum sendo al '%s' (statuso=%u)\n"
+
+#: g10/hkp.c:197
+#, c-format
+msgid "failed sending to `%s': status=%u\n"
+msgstr "malsukceso dum sendo al '%s': statuso=%u\n"
+
+#: g10/seckey-cert.c:53
+#, fuzzy
+msgid "secret key parts are not available\n"
+msgstr "sekreta �losilo ne havebla"
+
+#: g10/seckey-cert.c:59
+#, c-format
+msgid "protection algorithm %d is not supported\n"
+msgstr "protekto-metodo %d ne estas realigita\n"
+
+#: g10/seckey-cert.c:175
+msgid "Invalid passphrase; please try again ...\n"
+msgstr "Nevalida pasfrazo; bonvolu provi denove ...\n"
+
+#: g10/seckey-cert.c:231
+msgid "WARNING: Weak key detected - please change passphrase again.\n"
+msgstr ""
+"AVERTO: Malforta �losilo trovita - bonvolu �an�i la pasfrazon denove.\n"
+
+#: g10/sig-check.c:202
+msgid "assuming bad MDC due to an unknown critical bit\n"
+msgstr "supozas malbonan sigelon (MDC) pro nekonata \"critical bit\"\n"
+
+#: g10/sig-check.c:300
+msgid ""
+"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 "
+"subskribado!\n"
+
+#: g10/sig-check.c:308
+#, c-format
+msgid "public key is %lu second newer than the signature\n"
+msgstr "la publika �losilo estas %lu sekundon pli nova ol la subskribo\n"
+
+#: g10/sig-check.c:309
+#, c-format
+msgid "public key is %lu seconds newer than the signature\n"
+msgstr "la publika �losilo estas %lu sekundojn pli nova ol la subskribo\n"
+
+#: g10/sig-check.c:327
+#, c-format
+msgid "NOTE: signature key expired %s\n"
+msgstr "NOTO: subskribo-�losilo eksvalidi�is je %s\n"
+
+#: g10/sig-check.c:385
+msgid "assuming bad signature due to an unknown critical bit\n"
+msgstr "supozas malbonan subskribon pro nekonata \"critical bit\"\n"
+
+#: g10/sign.c:139
+#, c-format
+msgid "%s signature from: %s\n"
+msgstr "%s-subskribo de: %s\n"
+
+#: g10/sign.c:270 g10/sign.c:582
+#, c-format
+msgid "can't create %s: %s\n"
+msgstr "ne povas krei %s: %s\n"
+
+#: g10/sign.c:368
+msgid "signing:"
+msgstr "subskribas:"
+
+#: g10/sign.c:411
+#, c-format
+msgid "WARNING: `%s' is an empty file\n"
+msgstr "AVERTO: '%s' estas malplena dosiero\n"
+
+#: g10/textfilter.c:134
+#, c-format
+msgid "can't handle text lines longer than %d characters\n"
+msgstr "ne povas trakti tekstliniojn pli longajn ol %d signojn\n"
+
+#: g10/textfilter.c:231
+#, c-format
+msgid "input line longer than %d characters\n"
+msgstr "enigata linio pli longa ol %d signojn\n"
+
+#: g10/tdbio.c:116 g10/tdbio.c:1623
+#, c-format
+msgid "trustdb rec %lu: lseek failed: %s\n"
+msgstr "fido-datenaro loko %lu: lseek malsukcesis: %s\n"
+
+#: g10/tdbio.c:122 g10/tdbio.c:1630
+#, c-format
+msgid "trustdb rec %lu: write failed (n=%d): %s\n"
+msgstr "fido-datenaro loko %lu: skribo malsukcesis (n=%d): %s\n"
+
+#: g10/tdbio.c:232
+msgid "trustdb transaction too large\n"
+msgstr "fido-datenaro-transakcio tro granda\n"
+
+#: g10/tdbio.c:424
+#, c-format
+msgid "%s: can't access: %s\n"
+msgstr "%s: ne povas aliri: %s\n"
+
+#: g10/tdbio.c:438
+#, c-format
+msgid "%s: directory does not exist!\n"
+msgstr "%s: dosierujo ne ekzistas!\n"
+
+#: g10/openfile.c:216 g10/openfile.c:284 g10/ringedit.c:1363 g10/tdbio.c:444
+#, c-format
+msgid "%s: can't create: %s\n"
+msgstr "%s: ne povas krei: %s\n"
+
+#: g10/tdbio.c:459 g10/tdbio.c:508
+#, c-format
+msgid "%s: can't create lock\n"
+msgstr "%s: ne povas krei �loson\n"
+
+#: g10/tdbio.c:473
+#, c-format
+msgid "%s: failed to create version record: %s"
+msgstr "%s: malsukcesis krei versiregistron: %s"
+
+#: g10/tdbio.c:477
+#, c-format
+msgid "%s: invalid trustdb created\n"
+msgstr "%s: nevalida fido-datenaro kreita\n"
+
+#: g10/tdbio.c:480
+#, c-format
+msgid "%s: trustdb created\n"
+msgstr "%s: fido-datenaro kreita\n"
+
+#: g10/tdbio.c:517
+#, c-format
+msgid "%s: invalid trustdb\n"
+msgstr "%s: nevalida fido-datenaro\n"
+
+#: g10/tdbio.c:550
+#, c-format
+msgid "%s: failed to create hashtable: %s\n"
+msgstr "%s: malsukcesis krei haktabelon: %s\n"
+
+#: g10/tdbio.c:558
+#, c-format
+msgid "%s: error updating version record: %s\n"
+msgstr "%s: eraro dum aktualigo de versiregistro: %s\n"
+
+#: g10/tdbio.c:574 g10/tdbio.c:613 g10/tdbio.c:635 g10/tdbio.c:665
+#: g10/tdbio.c:690 g10/tdbio.c:1556 g10/tdbio.c:1583
+#, c-format
+msgid "%s: error reading version record: %s\n"
+msgstr "%s: eraro dum legado de versiregistro: %s\n"
+
+#: g10/tdbio.c:587 g10/tdbio.c:646
+#, c-format
+msgid "%s: error writing version record: %s\n"
+msgstr "%s: eraro dum skribado de versiregistro: %s\n"
+
+#: g10/tdbio.c:1235
+#, c-format
+msgid "trustdb: lseek failed: %s\n"
+msgstr "fido-datenaro: lseek malsukcesis: %s\n"
+
+#: g10/tdbio.c:1243
+#, c-format
+msgid "trustdb: read failed (n=%d): %s\n"
+msgstr "fido-datenaro: lego malsukcesis (n=%d): %s\n"
+
+#: g10/tdbio.c:1264
+#, c-format
+msgid "%s: not a trustdb file\n"
+msgstr "%s: ne estas fido-datenaro\n"
+
+#: g10/tdbio.c:1280
+#, c-format
+msgid "%s: version record with recnum %lu\n"
+msgstr "%s: versiregistro kun registronumero %lu\n"
+
+#: g10/tdbio.c:1285
+#, c-format
+msgid "%s: invalid file version %d\n"
+msgstr "%s: nevalida dosiero-versio %d\n"
+
+#: g10/tdbio.c:1589
+#, c-format
+msgid "%s: error reading free record: %s\n"
+msgstr "%s: eraro dum legado de libera registro: %s\n"
+
+#: g10/tdbio.c:1597
+#, c-format
+msgid "%s: error writing dir record: %s\n"
+msgstr "%s: eraro dum skribo de dosieruja registro: %s\n"
+
+#: g10/tdbio.c:1607
+#, c-format
+msgid "%s: failed to zero a record: %s\n"
+msgstr "%s: malsukcesis nuligi registron: %s\n"
+
+#: g10/tdbio.c:1637
+#, c-format
+msgid "%s: failed to append a record: %s\n"
+msgstr "%s: malsukcesis aldoni registron: %s\n"
+
+#: g10/tdbio.c:1748
+msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
+msgstr "la fido-datenaro estas fu�ita; bonvolu ruli \"gpg --fix-trustdb\".\n"
+
+#: g10/trustdb.c:168
+#, c-format
+msgid "trust record %lu, req type %d: read failed: %s\n"
+msgstr "fido-datenaro loko %lu, petospeco %d: lego malsukcesis: %s\n"
+
+#: g10/trustdb.c:183
+#, c-format
+msgid "trust record %lu, type %d: write failed: %s\n"
+msgstr "fido-datenaro %lu, speco %d: skribo malsukcesis: %s\n"
+
+#: g10/trustdb.c:197
+#, c-format
+msgid "trust record %lu: delete failed: %s\n"
+msgstr "fido-registro %lu: forvi�o malsukcesis: %s\n"
+
+#: g10/trustdb.c:211
+#, c-format
+msgid "trustdb: sync failed: %s\n"
+msgstr "fido-datenaro: sync malsukcesis: %s\n"
+
+#: g10/trustdb.c:376
+#, c-format
+msgid "error reading dir record for LID %lu: %s\n"
+msgstr "eraro dum legado de dosieruja registro por LID %lu: %s\n"
+
+#: g10/trustdb.c:383
+#, c-format
+msgid "lid %lu: expected dir record, got type %d\n"
+msgstr "lid %lu: atendis dosierujan registron, trovis specon %d\n"
+
+#: g10/trustdb.c:388
+#, c-format
+msgid "no primary key for LID %lu\n"
+msgstr "mankas �efa �losilo por LID %lu\n"
+
+#: g10/trustdb.c:393
+#, c-format
+msgid "error reading primary key for LID %lu: %s\n"
+msgstr "eraro dum legado de �efa �losilo por LID %lu: %s\n"
+
+#: g10/trustdb.c:432
+#, c-format
+msgid "get_dir_record: search_record failed: %s\n"
+msgstr "get_dir_record: search_record malsukcesis: %s\n"
+
+#: g10/trustdb.c:487
+#, c-format
+msgid "NOTE: secret key %08lX is NOT protected.\n"
+msgstr "NOTO: sekreta �losilo %08lX NE estas protektita.\n"
+
+#: g10/trustdb.c:495
+#, c-format
+msgid "key %08lX: secret key without public key - skipped\n"
+msgstr "�losilo %08lX: sekreta �losilo sen publika �losilo - ignorita\n"
+
+#: g10/trustdb.c:502
+#, c-format
+msgid "key %08lX: secret and public key don't match\n"
+msgstr "�losilo %08lX: sekreta kaj publika �losiloj ne kongruas\n"
+
+#: g10/trustdb.c:514
+#, c-format
+msgid "key %08lX: can't put it into the trustdb\n"
+msgstr "�losilo %08lX: ne povas meti �in en la fido-datenaron\n"
+
+#: g10/trustdb.c:520
+#, c-format
+msgid "key %08lX: query record failed\n"
+msgstr "�losilo %08lX: peto-registro malsukcesis\n"
+
+#: g10/trustdb.c:529
+#, c-format
+msgid "key %08lX: already in trusted key table\n"
+msgstr "�losilo %08lX: jam en tabelo de fidataj �losiloj\n"
+
+#: g10/trustdb.c:532
+#, c-format
+msgid "key %08lX: accepted as trusted key.\n"
+msgstr "�losilo %08lX: akceptita kiel fidata �losilo.\n"
+
+#: g10/trustdb.c:540
+#, c-format
+msgid "enumerate secret keys failed: %s\n"
+msgstr "listigo de sekretaj �losiloj malsukcesis: %s\n"
+
+#: g10/trustdb.c:921
+#, c-format
+msgid "key %08lX.%lu: Good subkey binding\n"
+msgstr "�losilo %08lX.%lu: Bona sub�losila bindado\n"
+
+#: g10/trustdb.c:927 g10/trustdb.c:962
+#, c-format
+msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
+msgstr "�losilo %08lX.%lu: Nevalida sub�losila bindado: %s\n"
+
+#: g10/trustdb.c:939
+#, c-format
+msgid "key %08lX.%lu: Valid key revocation\n"
+msgstr "�losilo %08lX.%lu: Valida �losilrevoko\n"
+
+#: g10/trustdb.c:945
+#, c-format
+msgid "key %08lX.%lu: Invalid key revocation: %s\n"
+msgstr "�losilo %08lX.%lu: Nevalida �losilrevoko: %s\n"
+
+#: g10/trustdb.c:956
+#, c-format
+msgid "key %08lX.%lu: Valid subkey revocation\n"
+msgstr "�losilo %08lX.%lu: Valida sub�losilrevoko\n"
+
+#: g10/trustdb.c:1067
+msgid "Good self-signature"
+msgstr "Bona mem-subskribo"
+
+#: g10/trustdb.c:1077
+msgid "Invalid self-signature"
+msgstr "Nevalida mem-subskribo"
+
+#: g10/trustdb.c:1104
+msgid "Valid user ID revocation skipped due to a newer self signature"
+msgstr "Valida uzantidentigil-revoko ignorita pro pli nova mem-subskribo"
+
+#: g10/trustdb.c:1110
+msgid "Valid user ID revocation"
+msgstr "Valida uzantidentigil-revoko"
+
+#: g10/trustdb.c:1115
+msgid "Invalid user ID revocation"
+msgstr "Nevalida uzantidentigil-revoko"
+
+#: g10/trustdb.c:1157
+msgid "Valid certificate revocation"
+msgstr "Valida atestilrevoko"
+
+#: g10/trustdb.c:1158
+msgid "Good certificate"
+msgstr "Bona atestilo"
+
+#: g10/trustdb.c:1186
+msgid "Invalid certificate revocation"
+msgstr "Nevalida atestilrevoko"
+
+#: g10/trustdb.c:1187
+msgid "Invalid certificate"
+msgstr "Nevalida atestilo"
+
+#: g10/trustdb.c:1204 g10/trustdb.c:1208
+#, c-format
+msgid "sig record %lu[%d] points to wrong record.\n"
+msgstr "subskribo-registro %lu[%d] montras al mal�usta registro.\n"
+
+#: g10/trustdb.c:1267
+msgid "duplicated certificate - deleted"
+msgstr "ripetita atestilo - forvi�ita"
+
+#: g10/trustdb.c:1584
+#, c-format
+msgid "tdbio_search_dir failed: %s\n"
+msgstr "tdbio_search_dir malsukcesis: %s\n"
+
+#: g10/trustdb.c:1718
+#, c-format
+msgid "lid ?: insert failed: %s\n"
+msgstr "lid ?: en�ovo malsukcesis: %s\n"
+
+#: g10/trustdb.c:1723
+#, c-format
+msgid "lid %lu: insert failed: %s\n"
+msgstr "lid %lu: en�ovo malsukcesis: %s\n"
+
+#: g10/trustdb.c:1729
+#, c-format
+msgid "lid %lu: inserted\n"
+msgstr "lid %lu: en�ovita\n"
+
+#: g10/trustdb.c:1734
+#, c-format
+msgid "error reading dir record: %s\n"
+msgstr "eraro dum legado de dosieruja registro: %s\n"
+
+#: g10/trustdb.c:1742 g10/trustdb.c:1805
+#, c-format
+msgid "%lu keys processed\n"
+msgstr "%lu �losiloj traktitaj\n"
+
+#: g10/trustdb.c:1744 g10/trustdb.c:1811
+#, c-format
+msgid "\t%lu keys with errors\n"
+msgstr "\t%lu �losiloj kun eraroj\n"
+
+#: g10/trustdb.c:1746
+#, c-format
+msgid "\t%lu keys inserted\n"
+msgstr "\t%lu �losiloj en�ovitaj\n"
+
+#: g10/trustdb.c:1749
+#, c-format
+msgid "enumerate keyblocks failed: %s\n"
+msgstr "listigo de �losilblokoj malsukcesis: %s\n"
+
+#: g10/trustdb.c:1797
+#, c-format
+msgid "lid %lu: dir record w/o key - skipped\n"
+msgstr "lid %lu: dosieruja registro sen �losilo - ignorita\n"
+
+#: g10/trustdb.c:1807
+#, c-format
+msgid "\t%lu due to new pubkeys\n"
+msgstr "\t%lu pro novaj publikaj �losiloj\n"
+
+#: g10/trustdb.c:1809
+#, c-format
+msgid "\t%lu keys skipped\n"
+msgstr "\t%lu �losiloj ignoritaj\n"
+
+#: g10/trustdb.c:1813
+#, c-format
+msgid "\t%lu keys updated\n"
+msgstr "\t%lu �losiloj aktualigitaj\n"
+
+#: g10/trustdb.c:2158
+msgid "Ooops, no keys\n"
+msgstr "Hu, mankas �losiloj\n"
+
+#: g10/trustdb.c:2162
+msgid "Ooops, no user IDs\n"
+msgstr "Hu, mankas uzantidentigiloj\n"
+
+#: g10/trustdb.c:2320
+#, c-format
+msgid "check_trust: search dir record failed: %s\n"
+msgstr "check_trust: ser�o pri dosieruja registro malsukcesis: %s\n"
+
+#: g10/trustdb.c:2329
+#, c-format
+msgid "key %08lX: insert trust record failed: %s\n"
+msgstr "�losilo %08lX: en�ovo de fidoregistro malsukcesis: %s\n"
+
+#: g10/trustdb.c:2333
+#, c-format
+msgid "key %08lX.%lu: inserted into trustdb\n"
+msgstr "�losilo %08lX.%lu: en�ovis en fido-datenaron\n"
+
+#: g10/trustdb.c:2341
+#, c-format
+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"
+
+#: g10/trustdb.c:2356
+#, c-format
+msgid "key %08lX.%lu: expired at %s\n"
+msgstr "�losilo %08lX.%lu: eksvalidi�is je %s\n"
+
+#: g10/trustdb.c:2364
+#, c-format
+msgid "key %08lX.%lu: trust check failed: %s\n"
+msgstr "�losilo %08lX.%lu: fido-kontrolo malsukcesis: %s\n"
+
+#: g10/trustdb.c:2515
+#, c-format
+msgid "user '%s' not found: %s\n"
+msgstr "uzanto '%s' ne trovita: %s\n"
+
+#: g10/trustdb.c:2517
+#, c-format
+msgid "problem finding '%s' in trustdb: %s\n"
+msgstr "problemo dum trovo de '%s' en fido-datenaro: %s\n"
+
+#: g10/trustdb.c:2520
+#, c-format
+msgid "user '%s' not in trustdb - inserting\n"
+msgstr "uzanto '%s' ne estas en fido-datenaro - en�ovas\n"
+
+#: g10/trustdb.c:2523
+#, c-format
+msgid "failed to put '%s' into trustdb: %s\n"
+msgstr "malsukcesis meti '%s' en fido-datenaron: %s\n"
+
+#: g10/trustdb.c:2709 g10/trustdb.c:2739
+msgid "WARNING: can't yet handle long pref records\n"
+msgstr "AVERTO: ne povas trakti longajn preferoregistrojn\n"
+
+#: g10/verify.c:82
+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 ""
+"ne eblis kontroli la subskribon.\n"
+"Bonvolu memori, ke la subskribodosiero (.sig a� .asc)\n"
+"devas esti la unua dosiero donita en la komandlinio.\n"
+
+#: g10/verify.c:147
+#, c-format
+msgid "input line %u too long or missing LF\n"
+msgstr "enigata linio %u tro longa, a� mankas linifino\n"
+
+#: g10/ringedit.c:302
+#, c-format
+msgid "%s: can't create keyring: %s\n"
+msgstr "%s: ne povas krei �losilaron: %s\n"
+
+#: g10/ringedit.c:319 g10/ringedit.c:1368
+#, c-format
+msgid "%s: keyring created\n"
+msgstr "%s: �losilaro kreita\n"
+
+#: g10/ringedit.c:1545
+msgid "WARNING: 2 files with confidential information exists.\n"
+msgstr "AVERTO: ekzistas 2 dosieroj kun sekretaj informoj.\n"
+
+#: g10/ringedit.c:1546
+#, c-format
+msgid "%s is the unchanged one\n"
+msgstr "%s estas la ne�an�ita\n"
+
+#: g10/ringedit.c:1547
+#, c-format
+msgid "%s is the new one\n"
+msgstr "%s estas la nova\n"
+
+#: g10/ringedit.c:1548
+msgid "Please fix this possible security flaw\n"
+msgstr "Bonvolu ripari �i tiun eblan sekurecproblemon\n"
+
+#: g10/skclist.c:88 g10/skclist.c:125
+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 "
+"stokastilo!\n"
+
+#: g10/skclist.c:113
+#, c-format
+msgid "skipped `%s': %s\n"
+msgstr "ignoris '%s': %s\n"
+
+#: g10/skclist.c:119
+#, c-format
+msgid ""
+"skipped `%s': this is a PGP generated ElGamal key which is not secure for "
+"signatures!\n"
+msgstr ""
+"ignoris '%s': �i tio estas PGP-kreita ElGamal-�losilo, kiu ne estas sekura "
+"por subskribado!\n"
+
+#. do not overwrite
+#: g10/openfile.c:79
+#, c-format
+msgid "File `%s' exists. "
+msgstr "Dosiero '%s' ekzistas. "
+
+#: g10/openfile.c:81
+msgid "Overwrite (y/N)? "
+msgstr "�u surskribi (j/N)? "
+
+#: g10/openfile.c:109
+#, c-format
+msgid "%s: unknown suffix\n"
+msgstr "%s: nekonata sufikso\n"
+
+#: g10/openfile.c:131
+msgid "Enter new filename"
+msgstr "Donu novan dosiernomon"
+
+#: g10/openfile.c:172
+msgid "writing to stdout\n"
+msgstr "skribas al la normala eligo\n"
+
+#: g10/openfile.c:250
+#, c-format
+msgid "assuming signed data in `%s'\n"
+msgstr "supozas subskribitajn datenojn en '%s'\n"
+
+#: g10/openfile.c:300
+#, c-format
+msgid "%s: new options file created\n"
+msgstr "%s: nova opcio-dosiero kreita\n"
+
+#: g10/openfile.c:313
+#, c-format
+msgid "%s: can't create directory: %s\n"
+msgstr "%s: ne povas krei dosierujon: %s\n"
+
+#: g10/openfile.c:316
+#, c-format
+msgid "%s: directory created\n"
+msgstr "%s: dosierujo kreita\n"
+
+#: g10/openfile.c:318
+msgid "you have to start GnuPG again, so it can read the new options file\n"
+msgstr ""
+"vi devas restartigi GnuPG, por ke �i povu legi la novan opcio-dosieron\n"
+
+#: g10/encr-data.c:66
+#, c-format
+msgid "%s encrypted data\n"
+msgstr "%s-�ifritaj datenoj\n"
+
+#: g10/encr-data.c:68
+#, c-format
+msgid "encrypted with unknown algorithm %d\n"
+msgstr "�ifrita per nekonata metodo %d\n"
+
+#: g10/encr-data.c:85
+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"
+
+#: g10/seskey.c:52
+msgid "weak key created - retrying\n"
+msgstr "malforta �losilo kreita - provas denove\n"
+
+#: g10/seskey.c:57
+#, 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"
+
+#: g10/delkey.c:94
+msgid "there is a secret key for this public key!\n"
+msgstr "mankas sekreta �losilo por �i tiu publika �losilo!\n"
+
+#: g10/delkey.c:96
+msgid "use option \"--delete-secret-key\" to delete it first.\n"
+msgstr "uzu la opcion \"--delete-secret-key\" por forvi�i �in unue.\n"
+
+#: g10/delkey.c:114
+msgid "can't do that in batchmode without \"--yes\"\n"
+msgstr "ne povas fari tion en neinteraga re�imo sen \"--yes\"\n"
+
+#: g10/delkey.c:136
+msgid "Delete this key from the keyring? "
+msgstr "�u forvi�i �i tiun �losilon de la �losilaro? "
+
+#: g10/delkey.c:144
+msgid "This is a secret key! - really delete? "
+msgstr "Tio estas sekreta �losilo! �u vere forvi�i �in? "
+
+#: g10/helptext.c:47
+msgid ""
+"It's up to you to assign a value here; this value will never be exported\n"
+"to any 3rd party. We need it to implement the web-of-trust; it has nothing\n"
+"to do with the (implicitly created) web-of-certificates."
+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"
+"rilatas al la (implicite kreita) atestilo-reto."
+
+#: g10/helptext.c:53
+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\"."
+
+#: g10/helptext.c:57
+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\"."
+
+#: g10/helptext.c:61
+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."
+
+#: g10/helptext.c:65
+msgid ""
+"Select the algorithm to use.\n"
+"\n"
+"DSA (aka DSS) is the digital signature algorithm which can only be used\n"
+"for signatures. This is the suggested algorithm because verification of\n"
+"DSA signatures are much faster than those of ElGamal.\n"
+"\n"
+"ElGamal is an algorithm which can be used for signatures and encryption.\n"
+"OpenPGP distinguishs between two flavors of this algorithms: an encrypt "
+"only\n"
+"and a sign+encrypt; actually it is the same, but some parameters must be\n"
+"selected in a special way to create a safe key for signatures: this program\n"
+"does this but other OpenPGP implementations are not required to understand\n"
+"the signature+encryption flavor.\n"
+"\n"
+"The first (primary) key must always be a key which is capable of signing;\n"
+"this is the reason why the encryption only ElGamal key is not available in\n"
+"this menu."
+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"
+"\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."
+
+#: g10/helptext.c:85
+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"
+"subskriboj kreitaj per ili etas iom grandaj kaj malrapide kontroleblaj."
+
+#: g10/helptext.c:92
+msgid "Enter the size of the key"
+msgstr "Donu la �losilgrandon"
+
+#: g10/helptext.c:96 g10/helptext.c:101 g10/helptext.c:113 g10/helptext.c:145
+#: g10/helptext.c:150 g10/helptext.c:155 g10/helptext.c:160
+msgid "Answer \"yes\" or \"no\""
+msgstr "Respondu per \"jes\" a� \"ne\""
+
+#: g10/helptext.c:106
+msgid ""
+"Enter the required value as shown in the prompt.\n"
+"It is possible to enter a ISO date (YYYY-MM-DD) but you won't\n"
+"get a good error response - instead the system tries to interpret\n"
+"the given value as an interval."
+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"
+"la donitan valoron kiel gamon."
+
+#: g10/helptext.c:118
+msgid "Enter the name of the key holder"
+msgstr "Donu la nomon de la �losilposedanto"
+
+#: g10/helptext.c:123
+msgid "please enter an optional but highly suggested email address"
+msgstr "bonvolu doni retadreson (ne devige, sed tre rekomendate)"
+
+#: g10/helptext.c:127
+msgid "Please enter an optional comment"
+msgstr "Bonvolu doni nedevigan komenton"
+
+#: g10/helptext.c:132
+msgid ""
+"N to change the name.\n"
+"C to change the comment.\n"
+"E to change the email address.\n"
+"O to continue with key generation.\n"
+"Q to to quit the key generation."
+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."
+
+#: g10/helptext.c:141
+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."
+
+#: g10/helptext.c:164
+msgid "Answer \"yes\" is you want to sign ALL the user IDs"
+msgstr "Respondu per \"jes\", se vi volas subskribi �iujn uzantidentigilojn"
+
+#: g10/helptext.c:168
+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!"
+
+#: g10/helptext.c:173
+msgid "Answer \"yes\" if it is okay to delete the subkey"
+msgstr "Respondu per \"jes\", se la sub�losilo estu forvi�ita"
+
+#: g10/helptext.c:178
+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."
+
+#: g10/helptext.c:183
+msgid ""
+"This signature can't be checked because you don't have the\n"
+"corresponding key. You should postpone its deletion until you\n"
+"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."
+
+#: g10/helptext.c:189
+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."
+
+#: g10/helptext.c:193
+msgid ""
+"This is a signature which binds the user ID to the key. It is\n"
+"usually not a good idea to remove such a signature. Actually\n"
+"GnuPG might not be able to use this key anymore. So do this\n"
+"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"
+"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"
+"mem-subskribo estas ial nevalida, kaj dua mem-subskribo estas\n"
+"havebla."
+
+#: g10/helptext.c:202
+msgid ""
+"Please enter the passhrase; this is a secret sentence \n"
+" Blurb, blurb,.... "
+msgstr ""
+"Bonvolu doni la pasfrazon; tio estas sekreta frazo, kiu ne\n"
+"estas facile divenebla."
+
+#: g10/helptext.c:209
+msgid "Please repeat the last passphrase, so you are sure what you typed in."
+msgstr ""
+"Bonvolu ripeti la pasfrazon, por kontroli, ke vi bone scias, kion vi tajpis."
+
+#: g10/helptext.c:213
+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"
+
+#: g10/helptext.c:218
+msgid "Answer \"yes\" if it is okay to overwrite the file"
+msgstr "Respondu per \"jes\", se la dosiero estu surskribita"
+
+#: g10/helptext.c:223
+msgid ""
+"Please enter a new filename. If you just hit RETURN the default\n"
+"file (which is shown in brackets) will be used."
+msgstr ""
+"Bonvolu doni novan dosiernomon. Se vi premas nur ENEN, la implicita\n"
+"dosiero (montrita en parentezo) estos uzata."
+
+#: g10/helptext.c:229
+msgid ""
+"You should specify a reason for the certification. Depending on the\n"
+"context you have the ability to choose from this list:\n"
+" \"Key has been compromised\"\n"
+" Use this if you have a reason to believe that unauthorized persons\n"
+" got access to your secret key.\n"
+" \"Key is superseeded\"\n"
+" Use this if you have replaced this key with a newer one.\n"
+" \"Key is no longer used\"\n"
+" Use this if you have retired this key.\n"
+" \"User ID is no longer valid\"\n"
+" 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 ""
+
+#: g10/helptext.c:245
+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 ""
+
+#: g10/helptext.c:260
+msgid "No help available"
+msgstr "Nenia helpo disponata"
+
+#: g10/helptext.c:268
+#, c-format
+msgid "No help available for `%s'"
+msgstr "Nenia helpo disponata por '%s'"
+
+#~ msgid "set debugging flags"
+#~ msgstr "�alti spurajn flagojn"
+
+#~ msgid "enable full debugging"
+#~ msgstr "�alti plenan spuradon"
+
+#~ msgid "do not write comment packets"
+#~ msgstr "ne skribi koment-paketojn"
+
+#~ msgid "(default is 1)"
+#~ msgstr "(implicite estas 1)"
+
+#~ msgid "(default is 3)"
+#~ msgstr "(implicite estas 3)"
+
+#~ msgid " (%d) ElGamal in a v3 packet\n"
+#~ msgstr " (%d) ElGamal en v3-paketo\n"
+
+#~ msgid "Key generation can only be used in interactive mode\n"
+#~ msgstr "Kreado de �losiloj funkcias nur en interaga re�imo\n"
diff --git a/po/es_ES.po b/po/es_ES.po
index 04ab34bf8..5456b950c 100644
--- a/po/es_ES.po
+++ b/po/es_ES.po
@@ -1,17 +1,17 @@
# Spanish messages for gnupg
-# Urko Lusa <[email protected]>, 1998
+# Urko Lusa <[email protected]>, 1998-99
# I've tried to mantain the terminology used by Armando Ramos
# <[email protected]> is his PGP 2.3.6i translation.
# I also got inspiration from it.po by Marco d'Itri <[email protected]>
#
-# GPG version: 0.9.7
+# GPG version: 1.0.0
msgid ""
msgstr ""
-"POT-Creation-Date: 1999-09-05 19:21+0200\n"
-"PO-Revision-Date: 1999-06-06 18:33+0200\n"
+"POT-Creation-Date: 2000-05-30 13:59+0200\n"
+"PO-Revision-Date: 1999-10-27 06:35+0200\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Date: 1998-11-13 10:49:25+0100\n"
-"From: Urko Lusa <[email protected]>\n"
+"From: Urko Lusa <[email protected]>\n"
"Updated: 1998-01-12\n"
"By: Luca Olivetti <[email protected]>\n"
"Xgettext-Options: --default-domain=gnupg --directory=.. --add-comments "
@@ -26,11 +26,11 @@ msgstr ""
msgid "Warning: using insecure memory!\n"
msgstr "ATENCI�N: �se est� usando memoria insegura!\n"
-#: util/secmem.c:275
+#: util/secmem.c:287
msgid "operation is not possible without initialized secure memory\n"
msgstr "operaci�n imposible sin memoria segura inicializada\n"
-#: util/secmem.c:276
+#: util/secmem.c:288
msgid "(you may have used the wrong program for this task)\n"
msgstr "(es posible que haya usado el programa incorrecto para esta tarea)\n"
@@ -50,7 +50,7 @@ msgstr ""
msgid "nN"
msgstr ""
-#: g10/keyedit.c:564 util/miscutil.c:308
+#: g10/keyedit.c:580 util/miscutil.c:308
msgid "quit"
msgstr ""
@@ -120,7 +120,7 @@ msgstr "Armadura no v�lida"
#: util/errors.c:69
msgid "no such user id"
-msgstr "No existe el identificativo de usuario"
+msgstr "No existe el ID de usuario"
#: util/errors.c:70
msgid "secret key not available"
@@ -196,7 +196,7 @@ msgstr "Certificado incorrecto"
#: util/errors.c:88
msgid "malformed user id"
-msgstr "Identificativo de usuario mal formado"
+msgstr "ID de usuario mal formado"
#: util/errors.c:89
msgid "file close error"
@@ -224,7 +224,7 @@ msgstr "Algoritmo de clave p�blica no utilizable"
#: util/errors.c:95
msgid "file exists"
-msgstr "El fichero existe. "
+msgstr "El fichero existe."
#: util/errors.c:96
msgid "weak key"
@@ -232,7 +232,7 @@ msgstr "Clave d�bil"
#: util/errors.c:97
msgid "invalid argument"
-msgstr "argumento no v�lido"
+msgstr "Argumento no v�lido"
#: util/errors.c:98
msgid "bad URI"
@@ -244,28 +244,85 @@ msgstr "URI no soportado"
#: util/errors.c:100
msgid "network error"
-msgstr "error de red"
+msgstr "Error de red"
#: util/errors.c:102
msgid "not encrypted"
-msgstr "no cifrado"
+msgstr "No cifrado"
-#: util/logger.c:218
+#: util/errors.c:103
+#, fuzzy
+msgid "not processed"
+msgstr "se han procesado %lu claves\n"
+
+#: util/logger.c:224
#, c-format
msgid "... this is a bug (%s:%d:%s)\n"
msgstr "... esto es un bug (%s:%d:%s)\n"
-#: util/logger.c:224
+#: util/logger.c:230
#, c-format
msgid "you found a bug ... (%s:%d)\n"
msgstr "Ha encontrado Vd. un bug... (%s:%d)\n"
-#: cipher/random.c:452
+#: cipher/random.c:311 g10/import.c:127 g10/keygen.c:1150
+#, c-format
+msgid "can't open `%s': %s\n"
+msgstr "no puede abrirse `%s': %s\n"
+
+#: cipher/random.c:315
+#, fuzzy, c-format
+msgid "can't stat `%s': %s\n"
+msgstr "no puede abrirse `%s': %s\n"
+
+#: cipher/random.c:320
+#, c-format
+msgid "`%s' is not a regular file - ignored\n"
+msgstr ""
+
+#: cipher/random.c:325
+msgid "note: random_seed file is empty\n"
+msgstr ""
+
+#: cipher/random.c:331
+msgid "warning: invalid size of random_seed file - not used\n"
+msgstr ""
+
+#: cipher/random.c:339
+#, fuzzy, c-format
+msgid "can't read `%s': %s\n"
+msgstr "no puede abrirse `%s': %s\n"
+
+#: cipher/random.c:377
+msgid "note: random_seed file not updated\n"
+msgstr ""
+
+#: cipher/random.c:397
+#, fuzzy, c-format
+msgid "can't create `%s': %s\n"
+msgstr "no puede crearse %s: %s\n"
+
+#: cipher/random.c:404
+#, fuzzy, c-format
+msgid "can't write `%s': %s\n"
+msgstr "no puede abrirse `%s': %s\n"
+
+#: cipher/random.c:407
+#, fuzzy, c-format
+msgid "can't close `%s': %s\n"
+msgstr "no puede abrirse `%s': %s\n"
+
+#: cipher/random.c:418
+#, c-format
+msgid "too many random bits requested; the limit is %d\n"
+msgstr ""
+
+#: cipher/random.c:647
msgid "WARNING: using insecure random number generator!!\n"
msgstr ""
"ATENCI�N: �se est� usando un generador de n�meros aleatorios inseguro!\n"
-#: cipher/random.c:453
+#: cipher/random.c:648
msgid ""
"The random number generator is only a kludge to let\n"
"it run - it is in no way a strong RNG!\n"
@@ -279,7 +336,7 @@ msgstr ""
"�NO USE NING�N DATO GENERADO POR ESTE PROGRAMA!\n"
"\n"
-#: cipher/rndlinux.c:135
+#: cipher/rndlinux.c:141
#, c-format
msgid ""
"\n"
@@ -291,7 +348,7 @@ msgstr ""
"otro trabajo para que el sistema pueda recolectar m�s entrop�a\n"
"(se necesitan %d bytes m�s).\n"
-#: g10/g10.c:185
+#: g10/g10.c:195
msgid ""
"@Commands:\n"
" "
@@ -299,138 +356,140 @@ msgstr ""
"@Comandos:\n"
" "
-#: g10/g10.c:187
+#: g10/g10.c:197
msgid "|[file]|make a signature"
msgstr "|[file]|hace una firma"
-#: g10/g10.c:188
+#: g10/g10.c:198
msgid "|[file]|make a clear text signature"
msgstr "|[file]|hace una firma en texto claro"
-#: g10/g10.c:189
+#: g10/g10.c:199
msgid "make a detached signature"
msgstr "hace una firma separada"
-#: g10/g10.c:190
+#: g10/g10.c:200
msgid "encrypt data"
msgstr "cifra datos"
-#: g10/g10.c:191
+#: g10/g10.c:201
msgid "encryption only with symmetric cipher"
msgstr "cifra s�lo con un cifrado sim�trico"
-#: g10/g10.c:192
+#: g10/g10.c:202
msgid "store only"
msgstr "s�lo almacenar"
-#: g10/g10.c:193
+#: g10/g10.c:203
msgid "decrypt data (default)"
msgstr "descifra datos (predefinido)"
-#: g10/g10.c:194
+#: g10/g10.c:204
msgid "verify a signature"
msgstr "verifica una firma"
-#: g10/g10.c:195
+#: g10/g10.c:206
msgid "list keys"
msgstr "lista claves"
-#: g10/g10.c:197
+#: g10/g10.c:208
msgid "list keys and signatures"
msgstr "lista claves y firmas"
-#: g10/g10.c:198
+#: g10/g10.c:209
msgid "check key signatures"
msgstr "comprueba las firmas de las claves"
-#: g10/g10.c:199
+#: g10/g10.c:210
msgid "list keys and fingerprints"
msgstr "lista claves y huellas dactilares"
-#: g10/g10.c:200
+#: g10/g10.c:211
msgid "list secret keys"
msgstr "lista claves secretas"
-#: g10/g10.c:201
+#: g10/g10.c:212
msgid "generate a new key pair"
msgstr "genera un nuevo par de claves"
-#: g10/g10.c:202
+#: g10/g10.c:213
msgid "remove key from the public keyring"
msgstr "elimina la clave del anillo p�blico"
-#: g10/g10.c:203
+#: g10/g10.c:215
#, fuzzy
+msgid "remove key from the secret keyring"
+msgstr "elimina la clave del anillo p�blico"
+
+#: g10/g10.c:216
msgid "sign a key"
msgstr "firma la clave"
-#: g10/g10.c:204
-#, fuzzy
+#: g10/g10.c:217
msgid "sign a key locally"
msgstr "firma la clave localmente"
-#: g10/g10.c:205
+#: g10/g10.c:218
msgid "sign or edit a key"
msgstr "firma o modifica una clave"
-#: g10/g10.c:206
+#: g10/g10.c:219
msgid "generate a revocation certificate"
msgstr "genera un certificado de revocaci�n"
-#: g10/g10.c:207
+#: g10/g10.c:220
msgid "export keys"
msgstr "exporta claves"
-#: g10/g10.c:208
+#: g10/g10.c:221
msgid "export keys to a key server"
msgstr "exporta claves a un servidor de claves"
-#: g10/g10.c:209
+#: g10/g10.c:222
msgid "import keys from a key server"
msgstr "importa claves desde un servidor de claves"
-#: g10/g10.c:212
+#: g10/g10.c:226
msgid "import/merge keys"
msgstr "importa/fusiona claves"
-#: g10/g10.c:214
+#: g10/g10.c:228
msgid "list only the sequence of packets"
msgstr "lista s�lo la secuencia de paquetes"
-#: g10/g10.c:216
+#: g10/g10.c:230
msgid "export the ownertrust values"
msgstr "exporta los valores de confianza"
-#: g10/g10.c:218
+#: g10/g10.c:232
msgid "import ownertrust values"
msgstr "importa los valores de confianza"
-#: g10/g10.c:220
-#, fuzzy
+#: g10/g10.c:234
msgid "update the trust database"
-msgstr "|[NOMBRES]|actualiza la base de datos de confianza"
+msgstr "actualiza la base de datos de confianza"
-#: g10/g10.c:222
+#: g10/g10.c:236
msgid "|[NAMES]|check the trust database"
msgstr "|[NOMBRES]|comprueba la base de datos de confianza"
-#: g10/g10.c:223
+#: g10/g10.c:237
msgid "fix a corrupted trust database"
msgstr "arregla una base de datos de confianza da�ada"
-#: g10/g10.c:224
+#: g10/g10.c:238
msgid "De-Armor a file or stdin"
msgstr "quita la armadura de un fichero o stdin"
-#: g10/g10.c:225
+#: g10/g10.c:240
msgid "En-Armor a file or stdin"
msgstr "crea la armadura a un fichero o stdin"
-#: g10/g10.c:226
+#: g10/g10.c:242
msgid "|algo [files]|print message digests"
msgstr "|algo [ficheros]|imprime res�menes de mensaje"
-#: g10/g10.c:230
+#: g10/g10.c:246
msgid ""
"@\n"
"Options:\n"
@@ -440,173 +499,160 @@ msgstr ""
"Opciones:\n"
" "
-#: g10/g10.c:232
+#: g10/g10.c:248
msgid "create ascii armored output"
msgstr "crea una salida ascii con armadura"
-#: g10/g10.c:233
+#: g10/g10.c:250
msgid "|NAME|encrypt for NAME"
msgstr "|NOMBRE|cifra para NOMBRE"
-#: g10/g10.c:236
-#, fuzzy
+#: g10/g10.c:253
msgid "|NAME|use NAME as default recipient"
-msgstr "|NOMBRE|usa NOMBRE como clave secreta por defecto"
+msgstr "|NOMBRE|usa NOMBRE como destinatario por defecto"
-#: g10/g10.c:238
+#: g10/g10.c:255
msgid "use the default key as default recipient"
-msgstr ""
+msgstr "usa la clave por defecto como destinatario"
-#: g10/g10.c:242
+#: g10/g10.c:259
msgid "use this user-id to sign or decrypt"
msgstr "usa este usuario para firmar o descifrar"
-#: g10/g10.c:243
+#: g10/g10.c:260
msgid "|N|set compress level N (0 disables)"
-msgstr "|N|establece nivel de compresi�n N (0 no comprime)"
+msgstr "|N|nivel de compresi�n N (0 no comprime)"
-#: g10/g10.c:245
+#: g10/g10.c:262
msgid "use canonical text mode"
msgstr "usa modo de texto can�nico"
-#: g10/g10.c:246
+#: g10/g10.c:263
msgid "use as output file"
msgstr "usa como fichero de salida"
-#: g10/g10.c:247
+#: g10/g10.c:264
msgid "verbose"
msgstr "prolijo"
-#: g10/g10.c:248
+#: g10/g10.c:265
msgid "be somewhat more quiet"
msgstr "algo m�s discreto"
-#: g10/g10.c:249
+#: g10/g10.c:266
msgid "don't use the terminal at all"
-msgstr ""
+msgstr "no usa la terminal en absoluto"
-#: g10/g10.c:250
+#: g10/g10.c:267
msgid "force v3 signatures"
msgstr "fuerza firmas v3"
-#: g10/g10.c:251
+#: g10/g10.c:268
msgid "always use a MDC for encryption"
msgstr "siempre usa un MCD para cifrar"
-#: g10/g10.c:252
+#: g10/g10.c:269
msgid "do not make any changes"
msgstr "no hace ning�n cambio"
#. { oInteractive, "interactive", 0, N_("prompt before overwriting") },
-#: g10/g10.c:254
+#: g10/g10.c:271
msgid "batch mode: never ask"
msgstr "proceso por lotes: nunca preguntar"
-#: g10/g10.c:255
+#: g10/g10.c:272
msgid "assume yes on most questions"
msgstr "asume \"s�\" en casi todas las preguntas"
-#: g10/g10.c:256
+#: g10/g10.c:273
msgid "assume no on most questions"
msgstr "asume \"no\" en casi todas las preguntas"
-#: g10/g10.c:257
+#: g10/g10.c:274
msgid "add this keyring to the list of keyrings"
msgstr "a�ade este anillo a la lista de anillos"
-#: g10/g10.c:258
+#: g10/g10.c:275
msgid "add this secret keyring to the list"
msgstr "a�ade este anillo secreto a la lista"
-#: g10/g10.c:259
+#: g10/g10.c:276
msgid "|NAME|use NAME as default secret key"
msgstr "|NOMBRE|usa NOMBRE como clave secreta por defecto"
-#: g10/g10.c:260
+#: g10/g10.c:277
msgid "|HOST|use this keyserver to lookup keys"
msgstr "|SERVIDOR|usa este servidor de claves"
-#: g10/g10.c:261
+#: g10/g10.c:278
msgid "|NAME|set terminal charset to NAME"
msgstr "|NOMBRE|usa el juego de caracteres NOMBRE"
-#: g10/g10.c:262
+#: g10/g10.c:279
msgid "read options from file"
msgstr "lee opciones del fichero"
-#: g10/g10.c:264
-msgid "set debugging flags"
-msgstr "establece los par�metros de depuraci�n"
-
-#: g10/g10.c:265
-msgid "enable full debugging"
-msgstr "habilita depuraci�n completa"
-
-#: g10/g10.c:266
+#: g10/g10.c:283
msgid "|FD|write status info to this FD"
msgstr "|DF|escribe informaci�n de estado en descriptor DF"
-#: g10/g10.c:267
-msgid "do not write comment packets"
-msgstr "no escribe paquetes de comentario"
-
-#: g10/g10.c:268
-msgid "(default is 1)"
-msgstr "(por defecto es 1)"
-
-#: g10/g10.c:269
-msgid "(default is 3)"
-msgstr "(por defecto es 3)"
-
-#: g10/g10.c:271
+#: g10/g10.c:288
msgid "|FILE|load extension module FILE"
msgstr "|FICHERO|carga m�dulo de extensiones FICHERO"
-#: g10/g10.c:272
+#: g10/g10.c:289
msgid "emulate the mode described in RFC1991"
msgstr "emula el modo descrito en la RFC1991"
-#: g10/g10.c:273
+#: g10/g10.c:290
msgid "set all packet, cipher and digest options to OpenPGP behavior"
msgstr ""
+"todas las opciones de paquete, cifrado y\n"
+"resumen tipo OpenPGP"
-#: g10/g10.c:274
+#: g10/g10.c:291
msgid "|N|use passphrase mode N"
msgstr "|N|usa modo de contrase�a N"
-#: g10/g10.c:276
+#: g10/g10.c:293
msgid "|NAME|use message digest algorithm NAME for passphrases"
msgstr ""
"|NOMBRE|usa algoritmo de resumen de mensaje NOMBRE\n"
"para las contrase�as"
-#: g10/g10.c:278
+#: g10/g10.c:295
msgid "|NAME|use cipher algorithm NAME for passphrases"
msgstr ""
"|NOMBRE|usa el algoritmo de cifrado NOMBRE para las\n"
"contrase�as"
-#: g10/g10.c:279
+#: g10/g10.c:296
msgid "|NAME|use cipher algorithm NAME"
msgstr "|NOMBRE|usa el algoritmo de cifrado NOMBRE"
-#: g10/g10.c:280
+#: g10/g10.c:297
msgid "|NAME|use message digest algorithm NAME"
msgstr "|NOMBRE|usa algoritmo de resumen de mensaje NOMBRE"
-#: g10/g10.c:281
+#: g10/g10.c:298
msgid "|N|use compress algorithm N"
msgstr "|N|usa el algoritmo de compresi�n N"
-#: g10/g10.c:282
+#: g10/g10.c:299
msgid "throw keyid field of encrypted packets"
-msgstr "elimina el campo keyid de los paquetes cifrados"
+msgstr "elimina campo keyid de los paquetes cifrados"
-#: g10/g10.c:283
+#: g10/g10.c:300
msgid "|NAME=VALUE|use this notation data"
+msgstr "|NOMBRE=VALOR|usa estos datos de notaci�n"
+
+#: g10/g10.c:303
+msgid ""
+"@\n"
+"(See the man page for a complete listing of all commands and options)\n"
msgstr ""
-#: g10/g10.c:285
+#: g10/g10.c:306
msgid ""
"@\n"
"Examples:\n"
@@ -626,15 +672,15 @@ msgstr ""
" --list-keys [nombres] muestra las claves\n"
" --fingerprint [nombres] muestra las huellas dactilares\n"
-#: g10/g10.c:370
+#: g10/g10.c:399
msgid "Please report bugs to <[email protected]>.\n"
msgstr "Por favor, informe de posibles \"bugs\" a <[email protected]>.\n"
-#: g10/g10.c:374
+#: g10/g10.c:403
msgid "Usage: gpg [options] [files] (-h for help)"
msgstr "Uso: gpg [opciones] [ficheros] (-h para ayuda)"
-#: g10/g10.c:377
+#: g10/g10.c:406
msgid ""
"Syntax: gpg [options] [files]\n"
"sign, check, encrypt or decrypt\n"
@@ -644,7 +690,7 @@ msgstr ""
"Firma, comprueba, cifra o descifra.\n"
"La operaci�n por defecto depende del tipo de datos de entrada.\n"
-#: g10/g10.c:382
+#: g10/g10.c:413
msgid ""
"\n"
"Supported algorithms:\n"
@@ -652,269 +698,270 @@ msgstr ""
"\n"
"Algoritmos soportados:\n"
-#: g10/g10.c:456
+#: g10/g10.c:492
msgid "usage: gpg [options] "
msgstr "uso: gpg [opciones] "
-#: g10/g10.c:509
+#: g10/g10.c:545
msgid "conflicting commands\n"
msgstr "comandos incompatibles\n"
-#: g10/g10.c:644
+#: g10/g10.c:687
#, c-format
msgid "NOTE: no default option file `%s'\n"
msgstr "NOTA: no existe el fichero de opciones predefinido `%s'\n"
-#: g10/g10.c:648
+#: g10/g10.c:691
#, c-format
msgid "option file `%s': %s\n"
msgstr "fichero de opciones `%s': %s\n"
-#: g10/g10.c:655
+#: g10/g10.c:698
#, c-format
msgid "reading options from `%s'\n"
msgstr "leyendo opciones desde `%s'\n"
-#: g10/g10.c:835
+#: g10/g10.c:885
#, c-format
msgid "%s is not a valid character set\n"
msgstr "%s no es un juego de caracteres v�lido\n"
-#: g10/g10.c:892 g10/g10.c:901
+#: g10/g10.c:945 g10/g10.c:954
#, c-format
msgid "NOTE: %s is not for normal use!\n"
-msgstr ""
+msgstr "NOTA: �%s no es para uso normal!\n"
-#: g10/g10.c:894
+#: g10/g10.c:947
#, c-format
msgid "%s not allowed with %s!\n"
-msgstr ""
+msgstr "�%s no permitido con %s!\n"
-#: g10/g10.c:897
+#: g10/g10.c:950
#, c-format
msgid "%s makes no sense with %s!\n"
-msgstr ""
+msgstr "�%s no tiene sentido con %s!\n"
-#: g10/g10.c:916 g10/g10.c:928
+#: g10/g10.c:969 g10/g10.c:981
msgid "selected cipher algorithm is invalid\n"
msgstr "el algoritmo de cifrado seleccionado no es v�lido\n"
-#: g10/g10.c:922 g10/g10.c:934
+#: g10/g10.c:975 g10/g10.c:987
msgid "selected digest algorithm is invalid\n"
msgstr "el algoritmo de resumen seleccionado no es v�lido\n"
-#: g10/g10.c:938
+#: g10/g10.c:991
msgid "the given policy URL is invalid\n"
-msgstr ""
+msgstr "URL de pol�tica no v�lida\n"
-#: g10/g10.c:941
+#: g10/g10.c:994
#, c-format
msgid "compress algorithm must be in range %d..%d\n"
msgstr "el algoritmo de compresi�n debe estar en el rango %d-%d\n"
-#: g10/g10.c:943
+#: g10/g10.c:996
msgid "completes-needed must be greater than 0\n"
msgstr "completes-needed debe ser mayor que 0\n"
-#: g10/g10.c:945
+#: g10/g10.c:998
msgid "marginals-needed must be greater than 1\n"
msgstr "marginals-needed debe ser mayor que 1\n"
-#: g10/g10.c:947
+#: g10/g10.c:1000
msgid "max-cert-depth must be in range 1 to 255\n"
msgstr "max-cert-depth debe estar en el rango 1-255\n"
-#: g10/g10.c:950
+#: g10/g10.c:1003
msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
msgstr "NOTA: el modo S2K simple (0) no es nada recomendable\n"
-#: g10/g10.c:954
+#: g10/g10.c:1007
msgid "invalid S2K mode; must be 0, 1 or 3\n"
msgstr "modo S2K incorrecto; debe ser 0, 1 o 3\n"
-#: g10/g10.c:1031
+#: g10/g10.c:1092
#, c-format
msgid "failed to initialize the TrustDB: %s\n"
msgstr "inicializaci�n de la base de datos de confianza fallida: %s\n"
-#: g10/g10.c:1037
+#: g10/g10.c:1098
msgid "--store [filename]"
msgstr "--store [nombre_fichero]"
-#: g10/g10.c:1044
+#: g10/g10.c:1105
msgid "--symmetric [filename]"
msgstr "--symmetric [nombre_fichero]"
-#: g10/g10.c:1052
+#: g10/g10.c:1113
msgid "--encrypt [filename]"
msgstr "--encrypt [nombre_fichero]"
-#: g10/g10.c:1065
+#: g10/g10.c:1126
msgid "--sign [filename]"
msgstr "--sign [nombre_fichero]"
-#: g10/g10.c:1078
+#: g10/g10.c:1139
msgid "--sign --encrypt [filename]"
msgstr "--sign --encrypt [nombre_fichero]"
-#: g10/g10.c:1092
+#: g10/g10.c:1153
msgid "--clearsign [filename]"
msgstr "--clearsign [nombre_fichero]"
-#: g10/g10.c:1104
+#: g10/g10.c:1170
msgid "--decrypt [filename]"
msgstr "--decrypt [nombre_fichero]"
-#: g10/g10.c:1112
+#: g10/g10.c:1178
msgid "--sign-key user-id"
-msgstr ""
+msgstr "--sign-key id-usuario"
-#: g10/g10.c:1120
-#, fuzzy
+#: g10/g10.c:1186
msgid "--lsign-key user-id"
-msgstr "--delete-key nombre_usuario"
+msgstr "--lsign-key id-usuario"
-#: g10/g10.c:1128
-#, fuzzy
+#: g10/g10.c:1194
msgid "--edit-key user-id [commands]"
-msgstr "--edit-key nombre_usuario [comandos]"
+msgstr "--edit-key id-usuario [comandos]"
-#: g10/g10.c:1144
-#, fuzzy
+#: g10/g10.c:1210
msgid "--delete-secret-key user-id"
-msgstr "--delete-secret-key nombre_usuario"
+msgstr "--delete-secret-key id-usuario"
-#: g10/g10.c:1147
-#, fuzzy
+#: g10/g10.c:1213
msgid "--delete-key user-id"
-msgstr "--delete-key nombre_usuario"
+msgstr "--delete-key id-usuario"
-#: g10/encode.c:259 g10/g10.c:1171 g10/sign.c:366
+#: g10/encode.c:260 g10/g10.c:1250 g10/sign.c:373
#, c-format
msgid "can't open %s: %s\n"
msgstr "no puede abrirse `%s': %s\n"
-#: g10/g10.c:1182
-#, fuzzy
+#: g10/g10.c:1265
msgid "-k[v][v][v][c] [user-id] [keyring]"
-msgstr "-k[v][v][v][c] [id_usuario] [anillo]"
+msgstr "-k[v][v][v][c] [id-usuario] [anillo]"
-#: g10/g10.c:1243
+#: g10/g10.c:1331
#, c-format
msgid "dearmoring failed: %s\n"
msgstr "eliminaci�n de armadura fallida: %s\n"
-#: g10/g10.c:1251
+#: g10/g10.c:1339
#, c-format
msgid "enarmoring failed: %s\n"
msgstr "creaci�n de armadura fallida: %s\n"
-#: g10/g10.c:1319
+#: g10/g10.c:1407
#, c-format
msgid "invalid hash algorithm `%s'\n"
msgstr "algoritmo de distribuci�n no v�lido `%s'\n"
-#: g10/g10.c:1400
+#: g10/g10.c:1488
msgid "[filename]"
msgstr "[nombre_fichero]"
-#: g10/g10.c:1404
+#: g10/g10.c:1492
msgid "Go ahead and type your message ...\n"
-msgstr "Adelante, teclee su mensaje ...\n"
+msgstr "Adelante, teclee su mensaje...\n"
-#: g10/decrypt.c:59 g10/g10.c:1407 g10/verify.c:66
+#: g10/decrypt.c:59 g10/g10.c:1495 g10/verify.c:68 g10/verify.c:113
#, c-format
msgid "can't open `%s'\n"
msgstr "no puede abrirse `%s'\n"
-#: g10/g10.c:1576
+#: g10/g10.c:1665
msgid ""
"the first character of a notation name must be a letter or an underscore\n"
-msgstr ""
+msgstr "El primer caracter de una notaci�n debe ser una letra o un subrayado\n"
-#: g10/g10.c:1582
+#: g10/g10.c:1671
msgid ""
"a notation name must have only letters, digits, dots or underscores and end "
"with an '='\n"
msgstr ""
+"un nombre de notaci�n debe tener s�lo letras, d�gitos, puntos o subrayados, "
+"y acabar con un '='\n"
-#: g10/g10.c:1588
+#: g10/g10.c:1677
msgid "dots in a notation name must be surrounded by other characters\n"
-msgstr ""
+msgstr "los puntos en una notaci�n deben estar rodeados por otros caracteres\n"
-#: g10/g10.c:1596
+#: g10/g10.c:1685
msgid "a notation value must not use any control characters\n"
-msgstr ""
+msgstr "un valor de notaci�n no debe usar ning�n caracter de control\n"
-#: g10/armor.c:296
+#: g10/armor.c:302
#, c-format
msgid "armor: %s\n"
msgstr "armadura: %s\n"
-#: g10/armor.c:319
+#: g10/armor.c:331
msgid "invalid armor header: "
msgstr "cabecera de armadura no v�lida: "
-#: g10/armor.c:326
+#: g10/armor.c:338
msgid "armor header: "
msgstr "cabecera de armadura: "
-#: g10/armor.c:337
+#: g10/armor.c:349
msgid "invalid clearsig header\n"
msgstr "cabecera de firma clara no v�lida\n"
-#: g10/armor.c:389
+#: g10/armor.c:401
msgid "nested clear text signatures\n"
msgstr "firmas en texto claro anidadas\n"
-#: g10/armor.c:500
+#: g10/armor.c:525
msgid "invalid dash escaped line: "
msgstr "L�nea con guiones no v�lida: "
-#: g10/armor.c:512
+#: g10/armor.c:537
msgid "unexpected armor:"
msgstr "armadura inesperada"
-#: g10/armor.c:629
+#: g10/armor.c:654
#, c-format
msgid "invalid radix64 character %02x skipped\n"
msgstr "caracteres no v�lidos radix64 %02x ignorados\n"
-#: g10/armor.c:672
+#: g10/armor.c:697
msgid "premature eof (no CRC)\n"
msgstr "Fin de fichero prematuro\n"
-#: g10/armor.c:706
+#: g10/armor.c:731
msgid "premature eof (in CRC)\n"
msgstr "Fin de suma de comprobaci�n prematuro\n"
-#: g10/armor.c:710
+#: g10/armor.c:735
msgid "malformed CRC\n"
msgstr "Suma de comprobaci�n mal creada\n"
-#: g10/armor.c:714
+#: g10/armor.c:739
#, c-format
msgid "CRC error; %06lx - %06lx\n"
msgstr "Error en suma de comprobaci�n: %06lx - %06lx\n"
-#: g10/armor.c:731
+#: g10/armor.c:756
msgid "premature eof (in Trailer)\n"
msgstr "fin de fichero prematuro (en el cierre)\n"
-#: g10/armor.c:735
+#: g10/armor.c:760
msgid "error in trailer line\n"
msgstr "error en la l�nea de cierre\n"
-#: g10/armor.c:1001
+#: g10/armor.c:912
+msgid "For info see http://www.gnupg.org"
+msgstr ""
+
+#: g10/armor.c:1033
msgid "no valid OpenPGP data found.\n"
msgstr "no se han encontrados datos OpenPGP v�lidos\n"
-#: g10/armor.c:1005
+#: g10/armor.c:1038
#, c-format
msgid "invalid armor: line longer than %d characters\n"
msgstr "armadura incorrecta: l�nea m�s larga de %d caracteres\n"
-#: g10/armor.c:1009
+#: g10/armor.c:1042
msgid ""
"quoted printable character in armor - probably a buggy MTA has been used\n"
msgstr ""
@@ -924,30 +971,58 @@ msgstr ""
#. Translators: this shoud fit into 24 bytes to that the fingerprint
#. * data is properly aligned with the user ID
#: g10/pkclist.c:53
-#, fuzzy
msgid " Fingerprint:"
-msgstr " importadas: %lu"
+msgstr " Huella dactilar:"
#: g10/pkclist.c:80
-#, fuzzy
msgid "Fingerprint:"
-msgstr "muestra huella dactilar"
+msgstr "Huella dactilar:"
+
+#: g10/pkclist.c:116
+msgid "No reason specified"
+msgstr ""
+
+#: g10/pkclist.c:118
+#, fuzzy
+msgid "Key is superseeded"
+msgstr "La clave est� protegida.\n"
+
+#: g10/pkclist.c:120
+#, fuzzy
+msgid "Key has been compromised"
+msgstr "Esta clave est� deshabilitada"
+
+#: g10/pkclist.c:122
+msgid "Key is no longer used"
+msgstr ""
+
+#: g10/pkclist.c:124
+msgid "User ID is no longer valid"
+msgstr ""
+
+#: g10/pkclist.c:128
+msgid "Reason for revocation: "
+msgstr ""
+
+#: g10/pkclist.c:145
+msgid "Revocation comment: "
+msgstr ""
#. a string with valid answers
-#: g10/pkclist.c:197
+#: g10/pkclist.c:303
msgid "sSmMqQ"
msgstr "iImMqQ"
-#: g10/pkclist.c:201
+#: g10/pkclist.c:307
#, c-format
msgid ""
"No trust value assigned to %lu:\n"
"%4u%c/%08lX %s \""
msgstr ""
-"No hay confianza definida para el propietario %lu:\n"
+"No hay confianza definida para %lu:\n"
"%4u%c/%08lX %s \""
-#: g10/pkclist.c:213
+#: g10/pkclist.c:319
msgid ""
"Please decide how far you trust this user to correctly\n"
"verify other users' keys (by looking at passports,\n"
@@ -959,7 +1034,7 @@ msgid ""
" 4 = I trust fully\n"
" s = please show me more information\n"
msgstr ""
-"Por favor, decida su nivel de confianza para este que usuario\n"
+"Por favor, decida su nivel de confianza para que este usuario\n"
"verifique las claves de otros usuarios (mirando pasaportes,\n"
"comprobando huellas dactilares en diferentes fuentes...)\n"
"\n"
@@ -969,23 +1044,23 @@ msgstr ""
" 4 = Me f�o completamente\n"
" i = Mostrar m�s informaci�n\n"
-#: g10/pkclist.c:222
+#: g10/pkclist.c:328
msgid " m = back to the main menu\n"
msgstr " m = volver al men� principal\n"
-#: g10/pkclist.c:224
+#: g10/pkclist.c:330
msgid " q = quit\n"
msgstr " q = salir\n"
-#: g10/pkclist.c:230
+#: g10/pkclist.c:336
msgid "Your decision? "
msgstr "Su decisi�n: "
-#: g10/pkclist.c:252
+#: g10/pkclist.c:358
msgid "Certificates leading to an ultimately trusted key:\n"
msgstr "Certificados que llevan a una clave de confianza absoluta:\n"
-#: g10/pkclist.c:323
+#: g10/pkclist.c:429
msgid ""
"Could not find a valid trust path to the key. Let's see whether we\n"
"can assign some missing owner trust values.\n"
@@ -995,7 +1070,7 @@ msgstr ""
"si es posible asignar algunos valores de confianza perdidos.\n"
"\n"
-#: g10/pkclist.c:329
+#: g10/pkclist.c:435
msgid ""
"No path leading to one of our keys found.\n"
"\n"
@@ -1003,7 +1078,7 @@ msgstr ""
"No se ha encontrado ninguna ruta con una de nuestras claves.\n"
"\n"
-#: g10/pkclist.c:331
+#: g10/pkclist.c:437
msgid ""
"No certificates with undefined trust found.\n"
"\n"
@@ -1011,7 +1086,7 @@ msgstr ""
"No se ha encontrado ning�n certificado sin valor de confianza.\n"
"\n"
-#: g10/pkclist.c:333
+#: g10/pkclist.c:439
msgid ""
"No trust values changed.\n"
"\n"
@@ -1019,36 +1094,36 @@ msgstr ""
"No se cambi� ning�n valor de confianza.\n"
"\n"
-#: g10/pkclist.c:350
+#: g10/pkclist.c:457
#, c-format
msgid "key %08lX: key has been revoked!\n"
msgstr "clave %08lX: �esta clave ha sido revocada!\n"
-#: g10/pkclist.c:356 g10/pkclist.c:366 g10/pkclist.c:475
+#: g10/pkclist.c:464 g10/pkclist.c:476 g10/pkclist.c:598
msgid "Use this key anyway? "
msgstr "�Usar esta clave de todas formas? "
-#: g10/pkclist.c:360
+#: g10/pkclist.c:469
#, c-format
msgid "key %08lX: subkey has been revoked!\n"
msgstr "clave %08lX: �esta subclave ha sido revocada!\n"
-#: g10/pkclist.c:390
+#: g10/pkclist.c:512
#, c-format
msgid "%08lX: key has expired\n"
msgstr "%08lX: clave caducada\n"
-#: g10/pkclist.c:396
+#: g10/pkclist.c:518
#, c-format
msgid "%08lX: no info to calculate a trust probability\n"
msgstr "%08lX: no hay informaci�n para calcular la probabilidad de confianza\n"
-#: g10/pkclist.c:410
+#: g10/pkclist.c:533
#, c-format
msgid "%08lX: We do NOT trust this key\n"
msgstr "%08lX: �Esta clave NO es de confianza!\n"
-#: g10/pkclist.c:416
+#: g10/pkclist.c:539
#, c-format
msgid ""
"%08lX: It is not sure that this key really belongs to the owner\n"
@@ -1058,15 +1133,15 @@ msgstr ""
"proprietario\n"
"pero se acepta igualmente\n"
-#: g10/pkclist.c:422
+#: g10/pkclist.c:545
msgid "This key probably belongs to the owner\n"
msgstr "Esta clave probablemente pertenece a su proprietario\n"
-#: g10/pkclist.c:427
+#: g10/pkclist.c:550
msgid "This key belongs to us\n"
msgstr "Esta clave nos pertenece\n"
-#: g10/pkclist.c:470
+#: g10/pkclist.c:593
msgid ""
"It is NOT certain that the key belongs to its owner.\n"
"If you *really* know what you are doing, you may answer\n"
@@ -1078,66 +1153,66 @@ msgstr ""
"\"s�\" a la siguiente pregunta.\n"
"\n"
-#: g10/pkclist.c:484 g10/pkclist.c:507
+#: g10/pkclist.c:607 g10/pkclist.c:630
msgid "WARNING: Using untrusted key!\n"
msgstr "ATENCI�N: �Usando una clave no fiable!\n"
-#: g10/pkclist.c:528
+#: g10/pkclist.c:651
msgid "WARNING: This key has been revoked by its owner!\n"
msgstr "ATENCI�N: �Esta clave ha sido revocada por su propietario!\n"
-#: g10/pkclist.c:529
+#: g10/pkclist.c:652
msgid " This could mean that the signature is forgery.\n"
msgstr " Esto puede significar que la firma est� falsificada.\n"
-#: g10/pkclist.c:533
+#: g10/pkclist.c:657
msgid "WARNING: This subkey has been revoked by its owner!\n"
msgstr "ATENCI�N: �Esta clave ha sido revocada por su propietario!\n"
-#: g10/pkclist.c:554
+#: g10/pkclist.c:679
msgid "Note: This key has expired!\n"
msgstr "Nota: �Esta clave est� caducada!\n"
-#: g10/pkclist.c:562
+#: g10/pkclist.c:687
msgid "WARNING: This key is not certified with a trusted signature!\n"
msgstr ""
"ATENCI�N: �Esta clave no est� certificada por una firma de confianza!\n"
-#: g10/pkclist.c:564
+#: g10/pkclist.c:689
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"
+msgstr " No hay indicios de que la firma pertenezca al propietario.\n"
-#: g10/pkclist.c:581
+#: g10/pkclist.c:706
msgid "WARNING: We do NOT trust this key!\n"
msgstr "ATENCI�N: �Esta clave NO es de confianza!\n"
-#: g10/pkclist.c:582
+#: g10/pkclist.c:707
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"
-#: g10/pkclist.c:589
+#: g10/pkclist.c:714
msgid ""
"WARNING: This key is not certified with sufficiently trusted signatures!\n"
msgstr ""
"ATENCI�N: �Esta clave no est� certificada con suficientes firmas de "
"confianza!\n"
-#: g10/pkclist.c:592
+#: g10/pkclist.c:717
msgid " It is not certain that the signature belongs to the owner.\n"
-msgstr " No es seguro que la firma pertenezca al propietario.\n"
+msgstr " No es seguro que la firma pertenezca al propietario.\n"
-#: g10/pkclist.c:694 g10/pkclist.c:716 g10/pkclist.c:841 g10/pkclist.c:886
+#: g10/pkclist.c:819 g10/pkclist.c:841 g10/pkclist.c:967 g10/pkclist.c:1012
#, c-format
msgid "%s: skipped: %s\n"
msgstr "%s: ignorado: %s\n"
-#: g10/pkclist.c:702 g10/pkclist.c:868
-#, fuzzy, c-format
+#: g10/pkclist.c:827 g10/pkclist.c:994
+#, c-format
msgid "%s: skipped: public key already present\n"
-msgstr "%s: problema lectura del bloque de clave: %s\n"
+msgstr "%s: ignorado: clave p�blica ya presente\n"
-#: g10/pkclist.c:729
+#: g10/pkclist.c:854
msgid ""
"You did not specify a user ID. (you may use \"-r\")\n"
"\n"
@@ -1145,98 +1220,100 @@ msgstr ""
"No se ha especificado un ID de usuario (puede usar \"-r\")\n"
"\n"
-#: g10/pkclist.c:739
+#: g10/pkclist.c:864
msgid "Enter the user ID: "
msgstr "Introduzca el ID de usuario: "
-#: g10/pkclist.c:751
+#: g10/pkclist.c:876
msgid "No such user ID.\n"
msgstr "ID de usuario inexistente.\n"
-#: g10/pkclist.c:756
-#, fuzzy
+#: g10/pkclist.c:881
msgid "skipped: public key already set as default recipient\n"
-msgstr "%s: problema lectura del bloque de clave: %s\n"
+msgstr "ignorado: clave p�blica ya designada como destinataria por defecto\n"
-#: g10/pkclist.c:778
-#, fuzzy
+#: g10/pkclist.c:904
msgid "Public key is disabled.\n"
-msgstr "la clave p�blica es %08lX\n"
+msgstr "Clave p�blica deshabilitada.\n"
-#: g10/pkclist.c:785
-#, fuzzy
+#: g10/pkclist.c:911
msgid "skipped: public key already set with --encrypt-to\n"
-msgstr "%s: problema lectura del bloque de clave: %s\n"
+msgstr "ignorado: clave p�blica ya designada con --encrypt-to\n"
-#: g10/pkclist.c:816
-#, fuzzy, c-format
+#: g10/pkclist.c:942
+#, c-format
msgid "unknown default recipient `%s'\n"
-msgstr "NOTA: no existe el fichero de opciones predefinido `%s'\n"
+msgstr "desconocido el destinatario predefinido `%s'\n"
-#: g10/pkclist.c:849
+#: g10/pkclist.c:975
#, c-format
msgid "%s: error checking key: %s\n"
msgstr "%s: error comprobando la clave: %s\n"
-#: g10/pkclist.c:854
-#, fuzzy, c-format
+#: g10/pkclist.c:980
+#, c-format
msgid "%s: skipped: public key is disabled\n"
-msgstr "%s: problema lectura del bloque de clave: %s\n"
+msgstr "%s: ignorado: clave p�blica deshabilitada\n"
-#: g10/pkclist.c:892
+#: g10/pkclist.c:1018
msgid "no valid addressees\n"
msgstr "no hay direcciones v�lidas\n"
-#: g10/keygen.c:122
+#: g10/keygen.c:175
msgid "writing self signature\n"
msgstr "escribiendo autofirma\n"
-#: g10/keygen.c:160
+#: g10/keygen.c:213
msgid "writing key binding signature\n"
msgstr "escribiendo la firma de comprobaci�n de clave\n"
-#: g10/keygen.c:386
+#: g10/keygen.c:261 g10/keygen.c:345
+#, fuzzy, c-format
+msgid "keysize invalid; using %u bits\n"
+msgstr "El tama�o requerido es de %u bits\n"
+
+#: g10/keygen.c:266 g10/keygen.c:350
+#, fuzzy, c-format
+msgid "keysize rounded up to %u bits\n"
+msgstr "redondeados a %u bits\n"
+
+#: g10/keygen.c:456
msgid "Please select what kind of key you want:\n"
msgstr "Por favor seleccione tipo de clave deseado:\n"
-#: g10/keygen.c:388
+#: g10/keygen.c:458
#, c-format
msgid " (%d) DSA and ElGamal (default)\n"
msgstr " (%d) DSA y ElGamal (por defecto)\n"
-#: g10/keygen.c:389
+#: g10/keygen.c:459
#, c-format
msgid " (%d) DSA (sign only)\n"
msgstr " (%d) DSA (s�lo firma)\n"
-#: g10/keygen.c:391
+#: g10/keygen.c:461
#, c-format
msgid " (%d) ElGamal (encrypt only)\n"
msgstr " (%d) ElGamal (s�lo cifrado)\n"
-#: g10/keygen.c:392
+#: g10/keygen.c:462
#, c-format
msgid " (%d) ElGamal (sign and encrypt)\n"
msgstr " (%d) ElGamal (firma y cifrado)\n"
-#: g10/keygen.c:394
-#, c-format
-msgid " (%d) ElGamal in a v3 packet\n"
-msgstr " (%d) ElGamal en un paquete v3\n"
-
-#: g10/keygen.c:399
+#: g10/keygen.c:465
msgid "Your selection? "
msgstr "Su elecci�n: "
-#: g10/keygen.c:409
+#: g10/keygen.c:475
msgid "Do you really want to create a sign and encrypt key? "
msgstr "�De verdad quiere crear una clave de firma y cifrado? "
-#: g10/keygen.c:430
+#: g10/keygen.c:489
msgid "Invalid selection.\n"
msgstr "Elecci�n no v�lida.\n"
-#: g10/keygen.c:442
+#: g10/keygen.c:501
#, c-format
msgid ""
"About to generate a new %s keypair.\n"
@@ -1249,15 +1326,15 @@ msgstr ""
" el tama�o por defecto es 1024 bits\n"
" el tama�o m�ximo recomendado es 2048 bits\n"
-#: g10/keygen.c:449
+#: g10/keygen.c:508
msgid "What keysize do you want? (1024) "
msgstr "�De qu� tama�o quiere la clave (1024)? "
-#: g10/keygen.c:454
+#: g10/keygen.c:513
msgid "DSA only allows keysizes from 512 to 1024\n"
msgstr "DSA s�lo permite tama�os desde 512 a 1024\n"
-#: g10/keygen.c:456
+#: g10/keygen.c:515
msgid "keysize too small; 768 is smallest value allowed.\n"
msgstr "tama�o insuficiente; 768 es el valor m�nimo permitido\n"
@@ -1269,12 +1346,12 @@ msgstr "tama�o insuficiente; 768 es el valor m�nimo permitido\n"
#. * So, before you complain about this limitation, I suggest that
#. * you start a discussion with Marvin about this theme and then
#. * do whatever you want.
-#: g10/keygen.c:466
+#: g10/keygen.c:525
#, c-format
msgid "keysize too large; %d is largest value allowed.\n"
msgstr "tama�o excesivo; %d es el m�ximo valor permitido.\n"
-#: g10/keygen.c:471
+#: g10/keygen.c:530
msgid ""
"Keysizes larger than 2048 are not suggested because\n"
"computations take REALLY long!\n"
@@ -1282,11 +1359,11 @@ msgstr ""
"No se recomiendan claves de m�s de 2048 bits porque\n"
"el tiempo de computaci�n es REALMENTE largo.\n"
-#: g10/keygen.c:474
+#: g10/keygen.c:533
msgid "Are you sure that you want this keysize? "
msgstr "�Seguro que quiere una clave de este tama�o? "
-#: g10/keygen.c:475
+#: g10/keygen.c:534
msgid ""
"Okay, but keep in mind that your monitor and keyboard radiation is also very "
"vulnerable to attacks!\n"
@@ -1295,21 +1372,21 @@ msgstr ""
"teclado\n"
"tambi�n son vulnerables a un ataque!\n"
-#: g10/keygen.c:483
+#: g10/keygen.c:542
msgid "Do you really need such a large keysize? "
msgstr "�De verdad necesita una clave tan grande? "
-#: g10/keygen.c:489
+#: g10/keygen.c:548
#, c-format
msgid "Requested keysize is %u bits\n"
msgstr "El tama�o requerido es de %u bits\n"
-#: g10/keygen.c:492 g10/keygen.c:496
+#: g10/keygen.c:551 g10/keygen.c:555
#, c-format
msgid "rounded up to %u bits\n"
msgstr "redondeados a %u bits\n"
-#: g10/keygen.c:509
+#: g10/keygen.c:603
msgid ""
"Please specify how long the key should be valid.\n"
" 0 = key does not expire\n"
@@ -1325,29 +1402,35 @@ msgstr ""
" <n>m = la clave caduca en n meses\n"
" <n>y = la clave caduca en n a�os\n"
-#: g10/keygen.c:526
+#: g10/keygen.c:618
msgid "Key is valid for? (0) "
msgstr "�Validez de la clave (0)? "
-#: g10/keygen.c:547
+#: g10/keygen.c:623
msgid "invalid value\n"
msgstr "valor no v�lido\n"
-#: g10/keygen.c:552
+#: g10/keygen.c:628
msgid "Key does not expire at all\n"
msgstr "La clave nunca caduca\n"
#. print the date when the key expires
-#: g10/keygen.c:558
+#: g10/keygen.c:634
#, c-format
msgid "Key expires at %s\n"
msgstr "La clave caduca el %s\n"
-#: g10/keygen.c:563
+#: g10/keygen.c:637
+msgid ""
+"Your system can't display dates beyond 2038.\n"
+"However, it will be correctly handled up to 2106.\n"
+msgstr ""
+
+#: g10/keygen.c:642
msgid "Is this correct (y/n)? "
msgstr "�Es correcto (s/n)? "
-#: g10/keygen.c:606
+#: g10/keygen.c:685
msgid ""
"\n"
"You need a User-ID to identify your key; the software constructs the user "
@@ -1365,63 +1448,76 @@ msgstr ""
" \"Heinrich Heine (Der Dichter) <[email protected]>\"\n"
"\n"
-#: g10/keygen.c:617
+#: g10/keygen.c:697
msgid "Real name: "
msgstr "Nombre y apellidos: "
-#: g10/keygen.c:621
+#: g10/keygen.c:701
msgid "Invalid character in name\n"
msgstr "Caracter no v�lido en el nombre\n"
-#: g10/keygen.c:623
+#: g10/keygen.c:703
msgid "Name may not start with a digit\n"
msgstr "El nombre no puede empezar con un n�mero\n"
-#: g10/keygen.c:625
+#: g10/keygen.c:705
msgid "Name must be at least 5 characters long\n"
msgstr "El nombre debe tener al menos 5 caracteres\n"
-#: g10/keygen.c:633
+#: g10/keygen.c:713
msgid "Email address: "
msgstr "Direcci�n de correo electr�nico: "
-#: g10/keygen.c:644
+#: g10/keygen.c:724
msgid "Not a valid email address\n"
msgstr "Direcci�n no v�lida\n"
-#: g10/keygen.c:652
+#: g10/keygen.c:732
msgid "Comment: "
msgstr "Comentario: "
-#: g10/keygen.c:658
+#: g10/keygen.c:738
msgid "Invalid character in comment\n"
msgstr "Caracter no v�lido en el comentario\n"
-#: g10/keygen.c:680
+#: g10/keygen.c:761
#, c-format
msgid "You are using the `%s' character set.\n"
msgstr "Est� usando el juego de caracteres `%s'.\n"
-#: g10/keygen.c:686
+#: g10/keygen.c:767
#, c-format
msgid ""
"You selected this USER-ID:\n"
" \"%s\"\n"
"\n"
msgstr ""
-"Ha seleccionado este identificativo de usuario:\n"
+"Ha seleccionado este ID de usuario:\n"
" \"%s\"\n"
"\n"
-#: g10/keygen.c:689
+#: g10/keygen.c:771
+msgid "Please don't put the email address into the real name or the comment\n"
+msgstr ""
+
+#: g10/keygen.c:776
msgid "NnCcEeOoQq"
msgstr "NnCcDdVvSs"
-#: g10/keygen.c:699
+#: g10/keygen.c:786
+#, fuzzy
+msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
+msgstr "�Cambia (N)ombre, (C)omentario, (D)irecci�n o (V)ale/(S)alir? "
+
+#: g10/keygen.c:787
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? "
-#: g10/keygen.c:751
+#: g10/keygen.c:806
+msgid "Please correct the error first\n"
+msgstr ""
+
+#: g10/keygen.c:844
msgid ""
"You need a Passphrase to protect your secret key.\n"
"\n"
@@ -1429,11 +1525,11 @@ msgstr ""
"Necesita una contrase�a para proteger su clave secreta.\n"
"\n"
-#: g10/keyedit.c:456 g10/keygen.c:759
+#: g10/keyedit.c:468 g10/keygen.c:852
msgid "passphrase not correctly repeated; try again.\n"
msgstr "contrase�a repetida incorrecta, int�ntelo de nuevo.\n"
-#: g10/keygen.c:765
+#: g10/keygen.c:858
msgid ""
"You don't want a passphrase - this is probably a *bad* idea!\n"
"I will do it anyway. You can change your passphrase at any time,\n"
@@ -1445,7 +1541,7 @@ msgstr ""
"la opci�n \"--edit-key\".\n"
"\n"
-#: g10/keygen.c:786
+#: g10/keygen.c:879
msgid ""
"We need to generate a lot of random bytes. It is a good idea to perform\n"
"some other action (type on the keyboard, move the mouse, utilize the\n"
@@ -1458,34 +1554,29 @@ msgstr ""
"generador de n�meros aleatorios mayor oportunidad de recoger suficiente\n"
"entrop�a.\n"
-#: g10/keygen.c:856
-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"
-
-#: g10/keygen.c:864
+#: g10/keygen.c:1325
msgid "DSA keypair will have 1024 bits.\n"
msgstr "El par de claves DSA tendr� 1024 bits.\n"
-#: g10/keygen.c:870
-#, fuzzy
+#: g10/keygen.c:1368
msgid "Key generation canceled.\n"
msgstr "Creaci�n de claves cancelada.\n"
-#: g10/keygen.c:880
-#, c-format
-msgid "writing public certificate to `%s'\n"
+#: g10/keygen.c:1465
+#, fuzzy, c-format
+msgid "writing public key to `%s'\n"
msgstr "escribiendo certificado p�blico en `%s'\n"
-#: g10/keygen.c:881
-#, c-format
-msgid "writing secret certificate to `%s'\n"
+#: g10/keygen.c:1466
+#, fuzzy, c-format
+msgid "writing secret key to `%s'\n"
msgstr "escribiendo certificado privado en `%s'\n"
-#: g10/keygen.c:958
+#: g10/keygen.c:1562
msgid "public and secret key created and signed.\n"
msgstr "Claves p�blica y secreta creadas y firmadas.\n"
-#: g10/keygen.c:960
+#: g10/keygen.c:1567
msgid ""
"Note that this key cannot be used for encryption. You may want to use\n"
"the command \"--edit-key\" to generate a secondary key for this purpose.\n"
@@ -1494,12 +1585,12 @@ msgstr ""
"el comando \"--edit-key\" para crear una clave secundaria con este "
"prop�sito.\n"
-#: g10/keygen.c:974 g10/keygen.c:1073
+#: g10/keygen.c:1584 g10/keygen.c:1685
#, c-format
msgid "Key generation failed: %s\n"
msgstr "Creaci�n de la clave fallida: %s\n"
-#: g10/keygen.c:1018 g10/sig-check.c:312 g10/sign.c:105
+#: g10/keygen.c:1628 g10/sig-check.c:318 g10/sign.c:111
#, c-format
msgid ""
"key has been created %lu second in future (time warp or clock problem)\n"
@@ -1507,7 +1598,7 @@ msgstr ""
"clave p�blica creada %lu segundos en el futuro (salto en el tiempo o\n"
"problemas con el reloj)\n"
-#: g10/keygen.c:1020 g10/sig-check.c:314 g10/sign.c:107
+#: g10/keygen.c:1630 g10/sig-check.c:320 g10/sign.c:113
#, c-format
msgid ""
"key has been created %lu seconds in future (time warp or clock problem)\n"
@@ -1515,12 +1606,12 @@ msgstr ""
"clave p�blica creada %lu segundos en el futuro (salto en el tiempo o\n"
"problemas con el reloj)\n"
-#: g10/keygen.c:1051
+#: g10/keygen.c:1663
msgid "Really create? "
msgstr "�Crear de verdad? "
-#: g10/encode.c:91 g10/openfile.c:156 g10/openfile.c:246 g10/tdbio.c:468
-#: g10/tdbio.c:529
+#: g10/encode.c:91 g10/openfile.c:168 g10/openfile.c:277 g10/tdbio.c:454
+#: g10/tdbio.c:515
#, c-format
msgid "%s: can't open: %s\n"
msgstr "%s: no puede abrirse: %s\n"
@@ -1530,304 +1621,307 @@ msgstr "%s: no puede abrirse: %s\n"
msgid "error creating passphrase: %s\n"
msgstr "error creando contrase�a: %s\n"
-#: g10/encode.c:171 g10/encode.c:318
+#: g10/encode.c:171 g10/encode.c:319
#, c-format
msgid "%s: WARNING: empty file\n"
msgstr "%s: ATENCI�N: fichero vac�o\n"
-#: g10/encode.c:265
+#: g10/encode.c:266
#, c-format
msgid "reading from `%s'\n"
msgstr "leyendo desde `%s'\n"
-#: g10/encode.c:482
+#: g10/encode.c:483
#, c-format
msgid "%s/%s encrypted for: %s\n"
msgstr "%s/%s cifrado para: %s\n"
-#: g10/export.c:147
+#: g10/export.c:153
#, c-format
msgid "%s: user not found: %s\n"
msgstr "%s: usuario no encontrado: %s\n"
-#: g10/export.c:156
+#: g10/export.c:162
#, c-format
msgid "certificate read problem: %s\n"
msgstr "problema en la lectura del certificado: %s\n"
-#: g10/export.c:165
+#: g10/export.c:171
#, c-format
msgid "key %08lX: not a rfc2440 key - skipped\n"
msgstr "clave %08lX: no es conforme a rfc2440 - ignorada\n"
-#: g10/export.c:203
+#: g10/export.c:182
+#, fuzzy, c-format
+msgid "key %08lX: not protected - skipped\n"
+msgstr "clave %08lX: no es conforme a rfc2440 - ignorada\n"
+
+#: g10/export.c:232
msgid "WARNING: nothing exported\n"
msgstr "ATENCI�N: no se ha exportado nada\n"
-#: g10/getkey.c:206
+#: g10/getkey.c:211
msgid "too many entries in pk cache - disabled\n"
msgstr "demasiados registros en la cache pk - anulada\n"
-#: g10/getkey.c:345
+#: g10/getkey.c:350
msgid "too many entries in unk cache - disabled\n"
msgstr "demasiados registros en la cache unk - anulada\n"
-#: g10/getkey.c:1289 g10/getkey.c:1328
+#: g10/getkey.c:1308 g10/getkey.c:1347
msgid "RSA key cannot be used in this version\n"
-msgstr ""
+msgstr "No puede usarse clave RSA en esta versi�n\n"
-#: g10/getkey.c:1291 g10/getkey.c:1330
-#, fuzzy
+#: g10/getkey.c:1310 g10/getkey.c:1349
msgid "No key for user ID\n"
-msgstr "clave %08lX: no hay identificativo de usuario\n"
+msgstr "No hay clave para tal usuario\n"
-#: g10/getkey.c:1369 g10/getkey.c:1409
-#, fuzzy
+#: g10/getkey.c:1388 g10/getkey.c:1428
msgid "No user ID for key\n"
-msgstr "no hay clave secreta\n"
+msgstr "No hay clave secreta para tal usuario\n"
-#: g10/getkey.c:1565 g10/getkey.c:1621
+#: g10/getkey.c:1642 g10/getkey.c:1698
#, c-format
msgid "using secondary key %08lX instead of primary key %08lX\n"
msgstr "usando clave secundaria %08lX en vez de clave primaria %08lX\n"
-#: g10/import.c:118
-#, c-format
-msgid "can't open `%s': %s\n"
-msgstr "no puede abrirse `%s': %s\n"
+#: g10/getkey.c:2017
+#, fuzzy
+msgid "[User id not found]"
+msgstr "%s: usuario no encontrado\n"
-#: g10/import.c:162
+#: g10/import.c:181
#, c-format
msgid "skipping block of type %d\n"
msgstr "ignorando bloque de tipo %d\n"
-#: g10/import.c:169 g10/trustdb.c:1658 g10/trustdb.c:1697
+#: g10/import.c:188 g10/trustdb.c:1740 g10/trustdb.c:1781
#, c-format
msgid "%lu keys so far processed\n"
msgstr "hasta ahora se han procesado %lu claves\n"
-#: g10/import.c:174
+#: g10/import.c:193
#, c-format
msgid "error reading `%s': %s\n"
msgstr "error leyendo `%s': %s\n"
-#: g10/import.c:177
+#: g10/import.c:203
#, c-format
msgid "Total number processed: %lu\n"
msgstr " Cantidad total procesada: %lu\n"
-#: g10/import.c:179
+#: g10/import.c:205
#, c-format
msgid " w/o user IDs: %lu\n"
msgstr " sin identificativo: %lu\n"
-#: g10/import.c:181
+#: g10/import.c:207
#, c-format
msgid " imported: %lu"
msgstr " importadas: %lu"
-#: g10/import.c:187
+#: g10/import.c:213
#, c-format
msgid " unchanged: %lu\n"
msgstr " sin cambios: %lu\n"
-#: g10/import.c:189
+#: g10/import.c:215
#, c-format
msgid " new user IDs: %lu\n"
msgstr " nuevos identificativos: %lu\n"
-#: g10/import.c:191
+#: g10/import.c:217
#, c-format
msgid " new subkeys: %lu\n"
msgstr " nuevas subclaves: %lu\n"
-#: g10/import.c:193
+#: g10/import.c:219
#, c-format
msgid " new signatures: %lu\n"
msgstr " nuevas firmas: %lu\n"
-#: g10/import.c:195
+#: g10/import.c:221
#, c-format
msgid " new key revocations: %lu\n"
msgstr " nuevas revocaciones: %lu\n"
-#: g10/import.c:197
+#: g10/import.c:223
#, c-format
msgid " secret keys read: %lu\n"
msgstr " claves secretas le�das: %lu\n"
-#: g10/import.c:199
+#: g10/import.c:225
#, c-format
msgid " secret keys imported: %lu\n"
msgstr " claves secretas importadas: %lu\n"
-#: g10/import.c:201
+#: g10/import.c:227
#, c-format
msgid " secret keys unchanged: %lu\n"
msgstr "claves secretas sin cambios: %lu\n"
-#: g10/import.c:362 g10/import.c:554
-#, fuzzy, c-format
+#: g10/import.c:386 g10/import.c:578
+#, c-format
msgid "key %08lX: no user ID\n"
msgstr "clave %08lX: no hay identificativo de usuario\n"
-#: g10/import.c:376
-#, fuzzy, c-format
+#: g10/import.c:400
+#, c-format
msgid "key %08lX: no valid user IDs\n"
msgstr "clave %08lX: no hay identificativos de usuario v�lidos\n"
-#: g10/import.c:378
+#: g10/import.c:402
msgid "this may be caused by a missing self-signature\n"
msgstr "esto puede ser debido a la ausencia de autofirma\n"
-#: g10/import.c:389 g10/import.c:621
+#: g10/import.c:413 g10/import.c:645
#, c-format
msgid "key %08lX: public key not found: %s\n"
msgstr "clave %08lX: clave p�blica no encontrada: %s\n"
-#: g10/import.c:395
+#: g10/import.c:419
msgid "no default public keyring\n"
msgstr "no hay anillo p�blico por defecto\n"
-#: g10/import.c:399 g10/openfile.c:186 g10/sign.c:268 g10/sign.c:580
+#: g10/import.c:423 g10/openfile.c:220 g10/sign.c:275 g10/sign.c:587
#, c-format
msgid "writing to `%s'\n"
msgstr "escribiendo en `%s'\n"
-#: g10/import.c:402 g10/import.c:460 g10/import.c:569 g10/import.c:670
+#: g10/import.c:426 g10/import.c:484 g10/import.c:593 g10/import.c:694
#, c-format
msgid "can't lock keyring `%s': %s\n"
msgstr "no puede bloquearse el anillo `%s': %s\n"
-#: g10/import.c:405 g10/import.c:463 g10/import.c:572 g10/import.c:673
+#: g10/import.c:429 g10/import.c:487 g10/import.c:596 g10/import.c:697
#, c-format
msgid "error writing keyring `%s': %s\n"
msgstr "error escribiendo anillo `%s': %s\n"
-#: g10/import.c:410
+#: g10/import.c:434
#, c-format
msgid "key %08lX: public key imported\n"
msgstr "clave %08lX: clave p�blica importada\n"
-#: g10/import.c:427
+#: g10/import.c:451
#, c-format
msgid "key %08lX: doesn't match our copy\n"
msgstr "clave %08lX: no se corresponde con nuestra copia\n"
-#: g10/import.c:436 g10/import.c:629
+#: g10/import.c:460 g10/import.c:653
#, c-format
msgid "key %08lX: can't locate original keyblock: %s\n"
msgstr "clave %08lX: no puede localizarse el bloque de claves original: %s\n"
-#: g10/import.c:442 g10/import.c:635
+#: g10/import.c:466 g10/import.c:659
#, c-format
msgid "key %08lX: can't read original keyblock: %s\n"
msgstr "clave %08lX: no puede leerse el bloque de claves original: %s\n"
-#: g10/import.c:469
-#, fuzzy, c-format
+#: g10/import.c:493
+#, c-format
msgid "key %08lX: 1 new user ID\n"
msgstr "clave %08lX: 1 nuevo identificativo de usuario\n"
-#: g10/import.c:472
-#, fuzzy, c-format
+#: g10/import.c:496
+#, c-format
msgid "key %08lX: %d new user IDs\n"
msgstr "clave %08lX: %d nuevos identificativos de usuario\n"
-#: g10/import.c:475
+#: g10/import.c:499
#, c-format
msgid "key %08lX: 1 new signature\n"
msgstr "clave %08lX: 1 nueva firma\n"
-#: g10/import.c:478
+#: g10/import.c:502
#, c-format
msgid "key %08lX: %d new signatures\n"
msgstr "clave %08lX: %d nuevas firmas\n"
-#: g10/import.c:481
+#: g10/import.c:505
#, c-format
msgid "key %08lX: 1 new subkey\n"
msgstr "clave %08lX: 1 nueva subclave\n"
-#: g10/import.c:484
+#: g10/import.c:508
#, c-format
msgid "key %08lX: %d new subkeys\n"
msgstr "clave %08lX: %d nuevas subclaves\n"
-#: g10/import.c:494
+#: g10/import.c:518
#, c-format
msgid "key %08lX: not changed\n"
msgstr "clave %08lX: sin cambios\n"
-#: g10/import.c:577
+#: g10/import.c:601
#, c-format
msgid "key %08lX: secret key imported\n"
msgstr "clave %08lX: clave secreta importada\n"
#. we can't merge secret keys
-#: g10/import.c:581
+#: g10/import.c:605
#, c-format
msgid "key %08lX: already in secret keyring\n"
msgstr "clave %08lX: ya estaba en el anillo secreto\n"
-#: g10/import.c:586
+#: g10/import.c:610
#, c-format
msgid "key %08lX: secret key not found: %s\n"
msgstr "clave %08lX: clave secreta no encontrada: %s\n"
-#: g10/import.c:615
+#: g10/import.c:639
#, c-format
msgid "key %08lX: no public key - can't apply revocation certificate\n"
msgstr ""
"clave %08lX: falta la clave p�blica - imposibile applicar el\n"
"certificado de revocaci�n\n"
-#: g10/import.c:646
+#: g10/import.c:670
#, c-format
msgid "key %08lX: invalid revocation certificate: %s - rejected\n"
msgstr "clave %08lX: certificado de revocaci�n no v�lido: %s - rechazado\n"
-#: g10/import.c:678
+#: g10/import.c:702
#, c-format
msgid "key %08lX: revocation certificate imported\n"
msgstr "clave %08lX: certificado de revocaci�n importado\n"
-#: g10/import.c:711
-#, fuzzy, c-format
+#: g10/import.c:744
+#, c-format
msgid "key %08lX: no user ID for signature\n"
msgstr "clave %08lX: no hay identificativo de usuario para la firma\n"
-#: g10/import.c:718 g10/import.c:742
+#: g10/import.c:751 g10/import.c:775
#, c-format
msgid "key %08lX: unsupported public key algorithm\n"
msgstr "clave %08lX: algoritmo de clave p�blica no soportado\n"
-#: g10/import.c:719
+#: g10/import.c:752
#, c-format
msgid "key %08lX: invalid self-signature\n"
msgstr "clave %08lX: autofirma no v�lida\n"
-#: g10/import.c:734
+#: g10/import.c:767
#, c-format
msgid "key %08lX: no subkey for key binding\n"
msgstr "clave %08lX: no hay subclave para unir\n"
-#: g10/import.c:743
+#: g10/import.c:776
#, c-format
msgid "key %08lX: invalid subkey binding\n"
msgstr "clave %08lX.%lu: uni�n de subclave no v�lida\n"
-#: g10/import.c:769
-#, fuzzy, c-format
+#: g10/import.c:803
+#, c-format
msgid "key %08lX: accepted non self-signed user ID '"
-msgstr "clave %08lX: ignorado identificativo de usuario '"
+msgstr "clave %08lX: aceptado ID de usuario sin autofirma '"
-#: g10/import.c:798
-#, fuzzy, c-format
+#: g10/import.c:832
+#, c-format
msgid "key %08lX: skipped user ID '"
-msgstr "clave %08lX: ignorado identificativo de usuario '"
+msgstr "clave %08lX: ignorado ID de usuario '"
-#: g10/import.c:821
+#: g10/import.c:855
#, c-format
msgid "key %08lX: skipped subkey\n"
msgstr "clave %08lX: subclave ignorada\n"
@@ -1836,100 +1930,99 @@ msgstr "clave %08lX: subclave ignorada\n"
#. * to import non-exportable signature when we have the
#. * the secret key used to create this signature - it
#. * seems that this makes sense
-#: g10/import.c:846
+#: g10/import.c:880
#, c-format
msgid "key %08lX: non exportable signature (class %02x) - skipped\n"
msgstr "clave %08lX: firma no exportable (clase %02x) - ignorada\n"
-#: g10/import.c:855
+#: g10/import.c:889
#, c-format
msgid "key %08lX: revocation certificate at wrong place - skipped\n"
msgstr ""
"clave %08lX: certificado de revocaci�n en lugar equivocado - ignorado\n"
-#: g10/import.c:863
+#: g10/import.c:897
#, c-format
msgid "key %08lX: invalid revocation certificate: %s - skipped\n"
msgstr "clave %08lX: certificado de revocaci�n no valido: %s - ignorado\n"
-#: g10/import.c:963
+#: g10/import.c:997
#, c-format
msgid "key %08lX: duplicated user ID detected - merged\n"
msgstr "clave %08lX: detectado usuario duplicado - fusionada\n"
-#: g10/import.c:1014
+#: g10/import.c:1048
#, c-format
msgid "key %08lX: revocation certificate added\n"
msgstr "clave %08lX: certificado de revocaci�n a�adido\n"
-#: g10/import.c:1128 g10/import.c:1183
+#: g10/import.c:1162 g10/import.c:1215
#, c-format
msgid "key %08lX: our copy has no self-signature\n"
msgstr "clave %08lX: nuestra copia no tiene autofirma\n"
-#: g10/delkey.c:64 g10/keyedit.c:93
+#: g10/delkey.c:64 g10/keyedit.c:94
#, c-format
msgid "%s: user not found\n"
msgstr "%s: usuario no encontrado\n"
-#: g10/keyedit.c:154
+#: g10/keyedit.c:155
msgid "[revocation]"
msgstr "[revocaci�n]"
-#: g10/keyedit.c:155
+#: g10/keyedit.c:156
msgid "[self-signature]"
msgstr "[autofirma]"
-#: g10/keyedit.c:219
+#: g10/keyedit.c:220
msgid "1 bad signature\n"
msgstr "1 firma incorrecta\n"
-#: g10/keyedit.c:221
+#: g10/keyedit.c:222
#, c-format
msgid "%d bad signatures\n"
msgstr "%d firmas incorrectas\n"
-#: g10/keyedit.c:223
+#: g10/keyedit.c:224
msgid "1 signature not checked due to a missing key\n"
msgstr "1 firma no comprobada por falta de clave\n"
-#: g10/keyedit.c:225
+#: g10/keyedit.c:226
#, c-format
msgid "%d signatures not checked due to missing keys\n"
msgstr "%d firmas no comprobadas por falta de clave\n"
-#: g10/keyedit.c:227
+#: g10/keyedit.c:228
msgid "1 signature not checked due to an error\n"
msgstr "1 firma no comprobada por causa de un error\n"
-#: g10/keyedit.c:229
+#: g10/keyedit.c:230
#, c-format
msgid "%d signatures not checked due to errors\n"
msgstr "%d firmas no comprobadas por causa de un error\n"
-#: g10/keyedit.c:231
-#, fuzzy
+#: g10/keyedit.c:232
msgid "1 user ID without valid self-signature detected\n"
msgstr "Detectado 1 identificativo de usuario sin autofirma v�lida\n"
-#: g10/keyedit.c:233
-#, fuzzy, c-format
+#: g10/keyedit.c:234
+#, c-format
msgid "%d user IDs without valid self-signatures detected\n"
msgstr "Detectados %d identificativos de usuario sin autofirma v�lida\n"
#. Fixme: see whether there is a revocation in which
#. * case we should allow to sign it again.
-#: g10/keyedit.c:313
+#: g10/keyedit.c:316
#, c-format
msgid "Already signed by key %08lX\n"
msgstr "Ya firmada por la clave %08lX\n"
-#: g10/keyedit.c:321
+#: g10/keyedit.c:324
#, c-format
msgid "Nothing to sign with key %08lX\n"
msgstr "Nada que firmar con la clave %08lX\n"
-#: g10/keyedit.c:330
+#: g10/keyedit.c:333
msgid ""
"Are you really sure that you want to sign this key\n"
"with your key: \""
@@ -1937,7 +2030,7 @@ msgstr ""
"�Est� realmente seguro de querer firmar esta clave\n"
"con su clave: \""
-#: g10/keyedit.c:339
+#: g10/keyedit.c:342
msgid ""
"The signature will be marked as non-exportable.\n"
"\n"
@@ -1945,29 +2038,34 @@ msgstr ""
"La firma se marcar� como no exportable.\n"
"\n"
-#: g10/keyedit.c:344
+#: g10/keyedit.c:347
msgid "Really sign? "
msgstr "�Firmar de verdad? "
-#: g10/keyedit.c:370 g10/keyedit.c:1832 g10/keyedit.c:1881 g10/sign.c:128
+#: g10/keyedit.c:373 g10/keyedit.c:1869 g10/keyedit.c:1931 g10/sign.c:135
#, c-format
msgid "signing failed: %s\n"
msgstr "firma fallida: %s\n"
-#: g10/keyedit.c:423
+#: g10/keyedit.c:427
msgid "This key is not protected.\n"
msgstr "Esta clave no est� protegida.\n"
-#: g10/keyedit.c:426
+#: g10/keyedit.c:431
+#, fuzzy
+msgid "Secret parts of primary key are not available.\n"
+msgstr "Clave secreta no disponible"
+
+#: g10/keyedit.c:435
msgid "Key is protected.\n"
msgstr "La clave est� protegida.\n"
-#: g10/keyedit.c:443
+#: g10/keyedit.c:455
#, c-format
msgid "Can't edit this key: %s\n"
msgstr "No puede editarse esta clave: %s\n"
-#: g10/keyedit.c:448
+#: g10/keyedit.c:460
msgid ""
"Enter the new passphrase for this secret key.\n"
"\n"
@@ -1975,7 +2073,7 @@ msgstr ""
"Introduzca la nueva contrase�a para esta clave secreta.\n"
"\n"
-#: g10/keyedit.c:460
+#: g10/keyedit.c:472
msgid ""
"You don't want a passphrase - this is probably a *bad* idea!\n"
"\n"
@@ -1983,412 +2081,396 @@ msgstr ""
"No ha especificado contrase�a. Esto es probablemente una *mala* idea.\n"
"\n"
-#: g10/keyedit.c:463
+#: g10/keyedit.c:475
msgid "Do you really want to do this? "
msgstr "�Realmente quiere hacer esto? "
-#: g10/keyedit.c:524
+#: g10/keyedit.c:539
msgid "moving a key signature to the correct place\n"
msgstr "moviendo la firma de la clave al lugar correcto\n"
-#: g10/keyedit.c:564
+#: g10/keyedit.c:580
msgid "quit this menu"
msgstr "sale de este men�"
-#: g10/keyedit.c:565
+#: g10/keyedit.c:581
msgid "q"
msgstr ""
-#: g10/keyedit.c:566
+#: g10/keyedit.c:582
msgid "save"
msgstr ""
-#: g10/keyedit.c:566
+#: g10/keyedit.c:582
msgid "save and quit"
msgstr "graba y sale"
-#: g10/keyedit.c:567
+#: g10/keyedit.c:583
msgid "help"
msgstr ""
-#: g10/keyedit.c:567
+#: g10/keyedit.c:583
msgid "show this help"
msgstr "muestra esta ayuda"
-#: g10/keyedit.c:569
+#: g10/keyedit.c:585
msgid "fpr"
msgstr ""
-#: g10/keyedit.c:569
+#: g10/keyedit.c:585
msgid "show fingerprint"
msgstr "muestra huella dactilar"
-#: g10/keyedit.c:570
+#: g10/keyedit.c:586
msgid "list"
msgstr ""
-#: g10/keyedit.c:570
-#, fuzzy
+#: g10/keyedit.c:586
msgid "list key and user IDs"
msgstr "lista clave e identificativos de usuario"
-#: g10/keyedit.c:571
+#: g10/keyedit.c:587
msgid "l"
msgstr ""
-#: g10/keyedit.c:572
+#: g10/keyedit.c:588
msgid "uid"
msgstr ""
-#: g10/keyedit.c:572
-#, fuzzy
+#: g10/keyedit.c:588
msgid "select user ID N"
msgstr "selecciona identificativo de usuario N"
-#: g10/keyedit.c:573
+#: g10/keyedit.c:589
msgid "key"
msgstr ""
-#: g10/keyedit.c:573
+#: g10/keyedit.c:589
msgid "select secondary key N"
msgstr "selecciona clave secundaria N"
-#: g10/keyedit.c:574
+#: g10/keyedit.c:590
msgid "check"
msgstr ""
-#: g10/keyedit.c:574
+#: g10/keyedit.c:590
msgid "list signatures"
msgstr "lista firmas"
-#: g10/keyedit.c:575
+#: g10/keyedit.c:591
msgid "c"
msgstr ""
-#: g10/keyedit.c:576
+#: g10/keyedit.c:592
msgid "sign"
msgstr ""
-#: g10/keyedit.c:576
+#: g10/keyedit.c:592
msgid "sign the key"
msgstr "firma la clave"
-#: g10/keyedit.c:577
+#: g10/keyedit.c:593
msgid "s"
msgstr ""
-#: g10/keyedit.c:578
-#, fuzzy
+#: g10/keyedit.c:594
msgid "lsign"
-msgstr "firmando:"
+msgstr ""
-#: g10/keyedit.c:578
+#: g10/keyedit.c:594
msgid "sign the key locally"
msgstr "firma la clave localmente"
-#: g10/keyedit.c:579
+#: g10/keyedit.c:595
msgid "debug"
msgstr ""
-#: g10/keyedit.c:580
+#: g10/keyedit.c:596
msgid "adduid"
msgstr ""
-#: g10/keyedit.c:580
-#, fuzzy
+#: g10/keyedit.c:596
msgid "add a user ID"
msgstr "a�ade un identificativo de usuario"
-#: g10/keyedit.c:581
+#: g10/keyedit.c:597
msgid "deluid"
msgstr ""
-#: g10/keyedit.c:581
-#, fuzzy
+#: g10/keyedit.c:597
msgid "delete user ID"
msgstr "borra un identificativo de usuario"
-#: g10/keyedit.c:582
+#: g10/keyedit.c:598
msgid "addkey"
msgstr ""
-#: g10/keyedit.c:582
+#: g10/keyedit.c:598
msgid "add a secondary key"
msgstr "a�ade una clave secundaria"
-#: g10/keyedit.c:583
+#: g10/keyedit.c:599
msgid "delkey"
msgstr ""
-#: g10/keyedit.c:583
+#: g10/keyedit.c:599
msgid "delete a secondary key"
msgstr "borra una clave secundaria"
-#: g10/keyedit.c:584
-#, fuzzy
+#: g10/keyedit.c:600
msgid "delsig"
-msgstr "firmando:"
+msgstr ""
-#: g10/keyedit.c:584
-#, fuzzy
+#: g10/keyedit.c:600
msgid "delete signatures"
-msgstr "lista firmas"
+msgstr "borra firmas"
-#: g10/keyedit.c:585
+#: g10/keyedit.c:601
msgid "expire"
msgstr ""
-#: g10/keyedit.c:585
+#: g10/keyedit.c:601
msgid "change the expire date"
msgstr "cambia fecha de caducidad"
-#: g10/keyedit.c:586
+#: g10/keyedit.c:602
msgid "toggle"
msgstr ""
-#: g10/keyedit.c:586
+#: g10/keyedit.c:602
msgid "toggle between secret and public key listing"
msgstr "cambia entre lista de claves secretas y p�blicas"
-#: g10/keyedit.c:588
+#: g10/keyedit.c:604
msgid "t"
msgstr ""
-#: g10/keyedit.c:589
+#: g10/keyedit.c:605
msgid "pref"
msgstr ""
-#: g10/keyedit.c:589
+#: g10/keyedit.c:605
msgid "list preferences"
msgstr "muestra preferencias"
-#: g10/keyedit.c:590
+#: g10/keyedit.c:606
msgid "passwd"
msgstr ""
-#: g10/keyedit.c:590
+#: g10/keyedit.c:606
msgid "change the passphrase"
msgstr "cambia la contrase�a"
-#: g10/keyedit.c:591
+#: g10/keyedit.c:607
msgid "trust"
msgstr ""
-#: g10/keyedit.c:591
+#: g10/keyedit.c:607
msgid "change the ownertrust"
msgstr "cambia valores de confianza"
-#: g10/keyedit.c:592
+#: g10/keyedit.c:608
msgid "revsig"
msgstr ""
-#: g10/keyedit.c:592
+#: g10/keyedit.c:608
msgid "revoke signatures"
msgstr "revoca firmas"
-#: g10/keyedit.c:593
+#: g10/keyedit.c:609
msgid "revkey"
msgstr ""
-#: g10/keyedit.c:593
+#: g10/keyedit.c:609
msgid "revoke a secondary key"
msgstr "revoca una clave secundaria"
-#: g10/keyedit.c:594
+#: g10/keyedit.c:610
msgid "disable"
msgstr ""
-#: g10/keyedit.c:594
-#, fuzzy
+#: g10/keyedit.c:610
msgid "disable a key"
-msgstr "Clave incorrecta"
+msgstr "deshabilita una clave"
-#: g10/keyedit.c:595
+#: g10/keyedit.c:611
msgid "enable"
msgstr ""
-#: g10/keyedit.c:595
-#, fuzzy
+#: g10/keyedit.c:611
msgid "enable a key"
-msgstr "Clave incorrecta"
+msgstr "habilita una clave"
-#: g10/delkey.c:107 g10/keyedit.c:614
+#: g10/delkey.c:110 g10/keyedit.c:630
msgid "can't do that in batchmode\n"
msgstr "imposible hacer esto en modo de proceso por lotes\n"
#. check that they match
#. fixme: check that they both match
-#: g10/keyedit.c:652
+#: g10/keyedit.c:668
msgid "Secret key is available.\n"
msgstr "Clave secreta disponible.\n"
-#: g10/keyedit.c:681
+#: g10/keyedit.c:697
msgid "Command> "
msgstr "Comando> "
-#: g10/keyedit.c:711
+#: g10/keyedit.c:727
msgid "Need the secret key to do this.\n"
msgstr "Se necesita la clave secreta para hacer esto.\n"
-#: g10/keyedit.c:758
-#, fuzzy
+#: g10/keyedit.c:731
+msgid "Please use the command \"toggle\" first.\n"
+msgstr ""
+
+#: g10/keyedit.c:778
msgid "Really sign all user IDs? "
msgstr "�Firmar realmente todos los identificativos de usuario? "
-#: g10/keyedit.c:759
-#, fuzzy
+#: g10/keyedit.c:779
msgid "Hint: Select the user IDs to sign\n"
msgstr "Sugerencia: seleccione los identificativos de usuario a firmar\n"
-#: g10/keyedit.c:786 g10/keyedit.c:968
+#: g10/keyedit.c:811 g10/keyedit.c:993
#, c-format
msgid "update of trustdb failed: %s\n"
msgstr "actualizaci�n de confianza fallida: %s\n"
-#: g10/keyedit.c:797 g10/keyedit.c:818
-#, fuzzy
+#: g10/keyedit.c:822 g10/keyedit.c:843
msgid "You must select at least one user ID.\n"
msgstr "Debe seleccionar por lo menos un identificativo de usuario.\n"
-#: g10/keyedit.c:799
-#, fuzzy
+#: g10/keyedit.c:824
msgid "You can't delete the last user ID!\n"
msgstr "�No puede borrar el �ltimo identificativo de usuario!\n"
-#: g10/keyedit.c:802
-#, fuzzy
+#: g10/keyedit.c:827
msgid "Really remove all selected user IDs? "
msgstr "�Borrar realmente todos los identificativos seleccionados? "
-#: g10/keyedit.c:803
-#, fuzzy
+#: g10/keyedit.c:828
msgid "Really remove this user ID? "
msgstr "�Borrar realmente este identificativo? "
-#: g10/keyedit.c:839 g10/keyedit.c:861
+#: g10/keyedit.c:864 g10/keyedit.c:886
msgid "You must select at least one key.\n"
msgstr "Debe seleccionar por lo menos una clave.\n"
-#: g10/keyedit.c:843
+#: g10/keyedit.c:868
msgid "Do you really want to delete the selected keys? "
msgstr "�Borrar realmente las claves seleccionadas? "
-#: g10/keyedit.c:844
+#: g10/keyedit.c:869
msgid "Do you really want to delete this key? "
msgstr "�Borrar realmente esta clave? "
-#: g10/keyedit.c:865
+#: g10/keyedit.c:890
msgid "Do you really want to revoke the selected keys? "
msgstr "�Revocar realmente las claves seleccionadas? "
-#: g10/keyedit.c:866
+#: g10/keyedit.c:891
msgid "Do you really want to revoke this key? "
msgstr "�Revocar realmente esta clave? "
-#: g10/keyedit.c:932
+#: g10/keyedit.c:957
msgid "Save changes? "
msgstr "�Grabar cambios? "
-#: g10/keyedit.c:935
+#: g10/keyedit.c:960
msgid "Quit without saving? "
msgstr "�Salir sin grabar? "
-#: g10/keyedit.c:946
+#: g10/keyedit.c:971
#, c-format
msgid "update failed: %s\n"
msgstr "actualizaci�n fallida: %s\n"
-#: g10/keyedit.c:953
+#: g10/keyedit.c:978
#, c-format
msgid "update secret failed: %s\n"
msgstr "actualizaci�n de la clave secreta fallida: %s\n"
-#: g10/keyedit.c:960
+#: g10/keyedit.c:985
msgid "Key not changed so no update needed.\n"
msgstr "Clave sin cambios, no se necesita actualizaci�n.\n"
-#: g10/keyedit.c:975
+#: g10/keyedit.c:1000
msgid "Invalid command (try \"help\")\n"
msgstr "Comando no v�lido (pruebe \"help\")\n"
-#: g10/keyedit.c:1065
-#, fuzzy
+#: g10/keyedit.c:1093
msgid "This key has been disabled"
-msgstr "Nota: �Esta clave est� caducada!\n"
+msgstr "Esta clave est� deshabilitada"
-#: g10/keyedit.c:1336
+#: g10/keyedit.c:1364
msgid "Delete this good signature? (y/N/q)"
-msgstr ""
+msgstr "�Borrar esta firma correcta? (s/N/q)"
-#: g10/keyedit.c:1340
+#: g10/keyedit.c:1368
msgid "Delete this invalid signature? (y/N/q)"
-msgstr ""
+msgstr "�Borrar esta firma no v�lida? (s/N/q)"
-#: g10/keyedit.c:1344
+#: g10/keyedit.c:1372
msgid "Delete this unknown signature? (y/N/q)"
-msgstr ""
+msgstr "�Borrar esta firma desconocida? (s/N/q)"
-#: g10/keyedit.c:1350
-#, fuzzy
+#: g10/keyedit.c:1378
msgid "Really delete this self-signature? (y/N)"
-msgstr "�Crear los certificados de revocaci�n realmente? (s/N)"
+msgstr "�Borrar realmente esta autofirma? (s/N)"
-#: g10/keyedit.c:1364
-#, fuzzy, c-format
+#: g10/keyedit.c:1392
+#, c-format
msgid "Deleted %d signature.\n"
-msgstr "%d firmas incorrectas\n"
+msgstr "%d firmas borradas.\n"
-#: g10/keyedit.c:1365
-#, fuzzy, c-format
+#: g10/keyedit.c:1393
+#, c-format
msgid "Deleted %d signatures.\n"
-msgstr "%d firmas incorrectas\n"
+msgstr "%d firmas borradas\n"
-#: g10/keyedit.c:1368
-#, fuzzy
+#: g10/keyedit.c:1396
msgid "Nothing deleted.\n"
-msgstr "ATENCI�N: no se ha exportado nada\n"
+msgstr "No se borr� nada\n"
-#: g10/keyedit.c:1437
+#: g10/keyedit.c:1465
msgid "Please remove selections from the secret keys.\n"
msgstr "Por favor, quite la selecci�n de las claves secretas.\n"
-#: g10/keyedit.c:1443
+#: g10/keyedit.c:1471
msgid "Please select at most one secondary key.\n"
msgstr "Por favor, seleccione como m�ximo una clave secundaria.\n"
-#: g10/keyedit.c:1447
-#, fuzzy
+#: g10/keyedit.c:1475
msgid "Changing expiration time for a secondary key.\n"
msgstr "Cambiando caducidad de clave secundaria.\n"
-#: g10/keyedit.c:1449
-#, fuzzy
+#: g10/keyedit.c:1477
msgid "Changing expiration time for the primary key.\n"
msgstr "Cambiando caducidad de clave primaria.\n"
-#: g10/keyedit.c:1490
+#: g10/keyedit.c:1519
msgid "You can't change the expiration date of a v3 key\n"
msgstr "No puede cambiar la fecha de caducidad de una clave v3\n"
-#: g10/keyedit.c:1506
+#: g10/keyedit.c:1535
msgid "No corresponding signature in secret ring\n"
msgstr "No hay firma correspondiente en anillo secreto\n"
-#: g10/keyedit.c:1566
-#, fuzzy, c-format
+#: g10/keyedit.c:1596
+#, c-format
msgid "No user ID with index %d\n"
msgstr "No hay ning�n identificativo de usuario con el �ndice %d\n"
-#: g10/keyedit.c:1612
+#: g10/keyedit.c:1642
#, c-format
msgid "No secondary key with index %d\n"
msgstr "No hay ninguna clave secundaria con el �ndice %d\n"
-#: g10/keyedit.c:1710
+#: g10/keyedit.c:1740
msgid "user ID: \""
msgstr "ID de usuario: \""
-#: g10/keyedit.c:1713
+#: g10/keyedit.c:1743
#, c-format
msgid ""
"\"\n"
@@ -2397,139 +2479,146 @@ msgstr ""
"\"\n"
"firmada con su clave %08lX el %s\n"
-#: g10/keyedit.c:1717
+#: g10/keyedit.c:1747
msgid "Create a revocation certificate for this signature? (y/N)"
msgstr "�Crear un certificado de revocaci�n para esta clave (s/N)?"
#. FIXME: detect duplicates here
-#: g10/keyedit.c:1740
-#, fuzzy
+#: g10/keyedit.c:1771
msgid "You have signed these user IDs:\n"
-msgstr "�No puede borrar el �ltimo identificativo de usuario!\n"
+msgstr "Ha firmado los siguientes IDs de usuario:\n"
-#: g10/keyedit.c:1754 g10/keyedit.c:1789
-#, fuzzy, c-format
+#: g10/keyedit.c:1785 g10/keyedit.c:1820
+#, c-format
msgid " signed by %08lX at %s\n"
-msgstr ""
-"\"\n"
-"firmada con su clave %08lX el %s\n"
+msgstr " firmada por %08lX el %s\n"
-#: g10/keyedit.c:1759
-#, fuzzy, c-format
+#: g10/keyedit.c:1790
+#, c-format
msgid " revoked by %08lX at %s\n"
-msgstr ""
-"\"\n"
-"firmada con su clave %08lX el %s\n"
+msgstr " revocada por %08lX el %s\n"
-#: g10/keyedit.c:1779
-#, fuzzy
+#: g10/keyedit.c:1810
msgid "You are about to revoke these signatures:\n"
-msgstr "�Revocar realmente las claves seleccionadas? "
+msgstr "Va Vd. a revocar las siguientes firmas:\n"
-#: g10/keyedit.c:1797
+#: g10/keyedit.c:1828
msgid "Really create the revocation certificates? (y/N)"
msgstr "�Crear los certificados de revocaci�n realmente? (s/N)"
-#: g10/keyedit.c:1820
+#: g10/keyedit.c:1857
msgid "no secret key\n"
msgstr "no hay clave secreta\n"
+#. of subkey
+#: g10/keylist.c:318 g10/mainproc.c:740
+#, fuzzy, c-format
+msgid " [expires: %s]"
+msgstr "La clave caduca el %s\n"
+
#: g10/mainproc.c:213
#, c-format
msgid "public key is %08lX\n"
msgstr "la clave p�blica es %08lX\n"
-#: g10/mainproc.c:244
+#: g10/mainproc.c:248
msgid "public key encrypted data: good DEK\n"
msgstr "datos cifrados de la clave p�blica: DEK bueno\n"
-#: g10/mainproc.c:275
-#, fuzzy, c-format
+#: g10/mainproc.c:281
+#, c-format
msgid "encrypted with %u-bit %s key, ID %08lX, created %s\n"
-msgstr "clave %2$s de %1$u bits, ID %3$08lX, creada el %4$s"
+msgstr "cifrado con clave %2$s de %1$u bits, ID %3$08lX, creada el %4$s\n"
-#: g10/mainproc.c:285
-#, fuzzy, c-format
+#: g10/mainproc.c:291
+#, c-format
msgid "encrypted with %s key, ID %08lX\n"
-msgstr "Firma creada %.*s usando identificativo de clave %s %08lX\n"
+msgstr "cifrado con clave %s, ID %08lX\n"
-#: g10/mainproc.c:291
-#, fuzzy
+#: g10/mainproc.c:297
msgid "no secret key for decryption available\n"
-msgstr "Clave secreta no disponible"
+msgstr "clave secreta para descifrado no disponible\n"
-#: g10/mainproc.c:300
+#: g10/mainproc.c:306
#, c-format
msgid "public key decryption failed: %s\n"
msgstr "descifrado de la clave p�blica fallido: %s\n"
-#: g10/mainproc.c:330
+#: g10/mainproc.c:342
msgid "decryption okay\n"
msgstr "descifrado correcto\n"
-#: g10/mainproc.c:335
+#: g10/mainproc.c:347
msgid "WARNING: encrypted message has been manipulated!\n"
msgstr "ATENCI�N: �el mensaje cifrado ha sido manipulado!\n"
-#: g10/mainproc.c:340
+#: g10/mainproc.c:352
#, c-format
msgid "decryption failed: %s\n"
msgstr "descifrado fallido: %s\n"
-#: g10/mainproc.c:358
+#: g10/mainproc.c:371
msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
msgstr "NOTA: el remitente solicit� \"s�lo-para-tus-ojos\"\n"
-#: g10/mainproc.c:360
+#: g10/mainproc.c:373
#, c-format
msgid "original file name='%.*s'\n"
msgstr "nombre fichero original='%.*s'\n"
-#: g10/mainproc.c:587 g10/mainproc.c:596
-#, fuzzy
+#: g10/mainproc.c:524
+msgid "standalone revocation - use \"gpg --import\" to apply\n"
+msgstr ""
+
+#: g10/mainproc.c:611 g10/mainproc.c:620
msgid "WARNING: invalid notation data found\n"
-msgstr "no se han encontrados datos OpenPGP v�lidos\n"
+msgstr "ATENCI�N: encontrados datos de notaci�n no v�lidos\n"
-#: g10/mainproc.c:599
+#: g10/mainproc.c:623
msgid "Notation: "
-msgstr ""
+msgstr "Notaci�n: "
-#: g10/mainproc.c:606
+#: g10/mainproc.c:630
msgid "Policy: "
-msgstr ""
+msgstr "Pol�tica: "
-#: g10/mainproc.c:1025
+#: g10/mainproc.c:1057
msgid "signature verification suppressed\n"
msgstr "suprimida la verificaci�n de la firma\n"
-#: g10/mainproc.c:1031
+#: g10/mainproc.c:1063
#, c-format
msgid "Signature made %.*s using %s key ID %08lX\n"
-msgstr "Firma creada %.*s usando identificativo de clave %s %08lX\n"
+msgstr "Firma creada el %.*s usando clave %s ID %08lX\n"
#. just in case that we have no userid
-#: g10/mainproc.c:1057 g10/mainproc.c:1068
+#: g10/mainproc.c:1089 g10/mainproc.c:1100
msgid "BAD signature from \""
msgstr "Firma INCORRECTA de \""
-#: g10/mainproc.c:1058 g10/mainproc.c:1069
+#: g10/mainproc.c:1090 g10/mainproc.c:1101
msgid "Good signature from \""
msgstr "Firma correcta de \""
-#: g10/mainproc.c:1060
+#: g10/mainproc.c:1092
msgid " aka \""
msgstr "tambi�n conocido como \""
-#: g10/mainproc.c:1115
+#: g10/mainproc.c:1148
#, c-format
msgid "Can't check signature: %s\n"
msgstr "Imposible comprobar la firma: %s\n"
-#: g10/mainproc.c:1212
+#: g10/mainproc.c:1209
+#, fuzzy, c-format
+msgid "standalone signature of class 0x%02x\n"
+msgstr "Clase de firma desconocida"
+
+#: g10/mainproc.c:1250
msgid "old style (PGP 2.x) signature\n"
msgstr "firma viejo estilo (PGP 2.x)\n"
-#: g10/mainproc.c:1217
+#: g10/mainproc.c:1255
msgid "invalid root packet detected in proc_tree()\n"
msgstr "paquete ra�z no v�lido detectado en proc_tree()\n"
@@ -2560,12 +2649,12 @@ msgstr ""
"este algoritmo de cifrado est� en desuso, considere el uso de uno m�s "
"est�ndar.\n"
-#: g10/parse-packet.c:113
+#: g10/parse-packet.c:115
#, c-format
msgid "can't handle public key algorithm %d\n"
msgstr "no puedo manejar el algoritmo de clave p�blica %d\n"
-#: g10/parse-packet.c:939
+#: g10/parse-packet.c:956
#, 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"
@@ -2591,9 +2680,8 @@ msgid " (main key ID %08lX)"
msgstr "(ID clave primaria %08lX)"
#: g10/passphrase.c:190
-#, fuzzy
msgid "can't query password in batchmode\n"
-msgstr "imposible hacer esto en modo de proceso por lotes\n"
+msgstr "imposible pedir contrase�a en modo de proceso por lotes\n"
#: g10/passphrase.c:194
msgid "Enter passphrase: "
@@ -2607,15 +2695,20 @@ msgstr "Repita contrase�a: "
msgid "data not saved; use option \"--output\" to save it\n"
msgstr "datos no grabados; use la opci�n \"--output\" para grabarlos\n"
-#: g10/plaintext.c:315
+#: g10/plaintext.c:317
+#, fuzzy
+msgid "Detached signature.\n"
+msgstr "%d firmas borradas.\n"
+
+#: g10/plaintext.c:321
msgid "Please enter name of data file: "
msgstr "Introduzca el nombre del fichero de datos: "
-#: g10/plaintext.c:336
+#: g10/plaintext.c:342
msgid "reading stdin ...\n"
msgstr "leyendo stdin...\n"
-#: g10/plaintext.c:379
+#: g10/plaintext.c:385
#, c-format
msgid "can't open signed data `%s'\n"
msgstr "imposible abrir datos firmados `%s'\n"
@@ -2633,536 +2726,592 @@ msgstr "de acuerdo, somos el destinatario an�nimo.\n"
msgid "old encoding of the DEK is not supported\n"
msgstr "la codificaci�n vieja de DEK no est� soportada\n"
-#: g10/pubkey-enc.c:191
+#: g10/pubkey-enc.c:156
+#, fuzzy, c-format
+msgid "cipher algorithm %d is unknown or disabled\n"
+msgstr "el algoritmo de protecci�n %d no est� soportado\n"
+
+#: g10/pubkey-enc.c:195
#, c-format
msgid "NOTE: cipher algorithm %d not found in preferences\n"
msgstr "NOTA: algoritmo de cifrado %d no encontrado en las preferencias\n"
-#: g10/seckey-cert.c:55
+#: g10/pubkey-enc.c:201
+#, fuzzy, c-format
+msgid "NOTE: secret key %08lX expired at %s\n"
+msgstr "NOTA: clave de la firma caducada el %s\n"
+
+#: g10/hkp.c:62
+#, c-format
+msgid "requesting key %08lX from %s ...\n"
+msgstr ""
+
+#: g10/hkp.c:75
+#, fuzzy, c-format
+msgid "can't get key from keyserver: %s\n"
+msgstr "no puede escribirse en el anillo: %s\n"
+
+#: g10/hkp.c:98 g10/hkp.c:136
+msgid "no keyserver known (use option --keyserver)\n"
+msgstr ""
+
+#: g10/hkp.c:106
+#, fuzzy, c-format
+msgid "%s: not a valid key ID\n"
+msgstr "'%s' no es un identificativo largo de clave v�lido\n"
+
+#: g10/hkp.c:158
+#, fuzzy, c-format
+msgid "can't connect to `%s': %s\n"
+msgstr "no puede abrirse `%s': %s\n"
+
+#: g10/hkp.c:182
+#, fuzzy, c-format
+msgid "error sending to `%s': %s\n"
+msgstr "error leyendo `%s': %s\n"
+
+#: g10/hkp.c:194
+#, c-format
+msgid "success sending to `%s' (status=%u)\n"
+msgstr ""
+
+#: g10/hkp.c:197
+#, c-format
+msgid "failed sending to `%s': status=%u\n"
+msgstr ""
+
+#: g10/seckey-cert.c:53
+#, fuzzy
+msgid "secret key parts are not available\n"
+msgstr "Clave secreta no disponible"
+
+#: g10/seckey-cert.c:59
#, c-format
msgid "protection algorithm %d is not supported\n"
msgstr "el algoritmo de protecci�n %d no est� soportado\n"
-#: g10/seckey-cert.c:171
+#: g10/seckey-cert.c:175
msgid "Invalid passphrase; please try again ...\n"
msgstr "Contrase�a incorrecta, int�ntelo de nuevo...\n"
-#: g10/seckey-cert.c:227
+#: g10/seckey-cert.c:231
msgid "WARNING: Weak key detected - please change passphrase again.\n"
msgstr "ATENCI�N: detectada clave d�bil - por favor cambie la contrase�a.\n"
-#: g10/sig-check.c:199
+#: g10/sig-check.c:202
msgid "assuming bad MDC due to an unknown critical bit\n"
-msgstr "asumiendo firma mala debido a un bit cr�tico desconocido\n"
+msgstr "asumiendo MDC incorrecto debido a un bit cr�tico desconocido\n"
-#: g10/sig-check.c:295
+#: g10/sig-check.c:300
msgid ""
"this is a PGP generated ElGamal key which is NOT secure for signatures!\n"
msgstr ""
"�esto es una clave ElGamal generada por PGP que NO es segura para las "
"firmas!\n"
-#: g10/sig-check.c:303
+#: g10/sig-check.c:308
#, c-format
msgid "public key is %lu second newer than the signature\n"
msgstr "la clave p�blica es %lu segundos m�s nueva que la firma\n"
-#: g10/sig-check.c:304
+#: g10/sig-check.c:309
#, c-format
msgid "public key is %lu seconds newer than the signature\n"
msgstr "la clave p�blica es %lu segundos m�s nueva que la firma\n"
-#: g10/sig-check.c:320
+#: g10/sig-check.c:327
#, c-format
msgid "NOTE: signature key expired %s\n"
msgstr "NOTA: clave de la firma caducada el %s\n"
-#: g10/sig-check.c:377
+#: g10/sig-check.c:385
msgid "assuming bad signature due to an unknown critical bit\n"
-msgstr "asumiendo firma mala debido a un bit cr�tico desconocido\n"
+msgstr "asumiendo firma incorrecta debido a un bit cr�tico desconocido\n"
-#: g10/sign.c:132
+#: g10/sign.c:139
#, c-format
msgid "%s signature from: %s\n"
-msgstr "firma %s de %s\n"
+msgstr "firma %s de: %s\n"
-#: g10/sign.c:263 g10/sign.c:575
+#: g10/sign.c:270 g10/sign.c:582
#, c-format
msgid "can't create %s: %s\n"
msgstr "no puede crearse %s: %s\n"
-#: g10/sign.c:361
+#: g10/sign.c:368
msgid "signing:"
msgstr "firmando:"
-#: g10/sign.c:404
+#: g10/sign.c:411
#, c-format
msgid "WARNING: `%s' is an empty file\n"
msgstr "ATENCI�N `%s' es un fichero vac�o\n"
-#: g10/textfilter.c:128
+#: g10/textfilter.c:134
#, 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"
-#: g10/textfilter.c:197
+#: g10/textfilter.c:231
#, c-format
msgid "input line longer than %d characters\n"
msgstr "l�nea de longitud superior a %d caracteres\n"
-#: g10/tdbio.c:121 g10/tdbio.c:1635
+#: g10/tdbio.c:116 g10/tdbio.c:1623
#, c-format
msgid "trustdb rec %lu: lseek failed: %s\n"
msgstr "registro base de datos de confianza %lu: lseek fallido: %s\n"
-#: g10/tdbio.c:127 g10/tdbio.c:1642
+#: g10/tdbio.c:122 g10/tdbio.c:1630
#, c-format
msgid "trustdb rec %lu: write failed (n=%d): %s\n"
msgstr ""
-"resgisto base de datos de confianza %lu: escritura fallida (n=%d): %s\n"
+"resgistro base de datos de confianza %lu: escritura fallida (n=%d): %s\n"
-#: g10/tdbio.c:237
+#: g10/tdbio.c:232
msgid "trustdb transaction too large\n"
msgstr "transacci�n en la base de datos de confianza demasiado grande\n"
-#: g10/tdbio.c:429
+#: g10/tdbio.c:424
#, c-format
msgid "%s: can't access: %s\n"
msgstr "%s: no puede abrirse: %s\n"
-#: g10/ringedit.c:298 g10/tdbio.c:445
-#, c-format
-msgid "%s: can't create directory: %s\n"
-msgstr "%s: no puede crearse el directorio: %s\n"
-
-#: g10/ringedit.c:304 g10/tdbio.c:448
-#, c-format
-msgid "%s: directory created\n"
-msgstr "%s: directorio creado\n"
-
-#: g10/tdbio.c:452
+#: g10/tdbio.c:438
#, c-format
msgid "%s: directory does not exist!\n"
msgstr "%s: �el directorio no existe!\n"
-#: g10/openfile.c:182 g10/openfile.c:253 g10/ringedit.c:1348 g10/tdbio.c:458
+#: g10/openfile.c:216 g10/openfile.c:284 g10/ringedit.c:1363 g10/tdbio.c:444
#, c-format
msgid "%s: can't create: %s\n"
msgstr "%s: no puede crearse: %s\n"
-#: g10/tdbio.c:473 g10/tdbio.c:522
+#: g10/tdbio.c:459 g10/tdbio.c:508
#, c-format
msgid "%s: can't create lock\n"
msgstr "%s: no puede crearse bloqueo\n"
-#: g10/tdbio.c:487
+#: g10/tdbio.c:473
#, c-format
msgid "%s: failed to create version record: %s"
msgstr "%s: fallo en la creaci�n del registro de versi�n: %s"
-#: g10/tdbio.c:491
+#: g10/tdbio.c:477
#, c-format
msgid "%s: invalid trustdb created\n"
msgstr "%s: se ha creado base de datos de confianza no v�lida\n"
-#: g10/tdbio.c:494
+#: g10/tdbio.c:480
#, c-format
msgid "%s: trustdb created\n"
msgstr "%s: se ha creado base de datos de confianza\n"
-#: g10/tdbio.c:531
+#: g10/tdbio.c:517
#, c-format
msgid "%s: invalid trustdb\n"
msgstr "%s: base de datos de confianza no v�lida\n"
-#: g10/tdbio.c:564
+#: g10/tdbio.c:550
#, c-format
msgid "%s: failed to create hashtable: %s\n"
msgstr "%s: fallo en la creaci�n de la tabla hash: %s\n"
-#: g10/tdbio.c:572
+#: g10/tdbio.c:558
#, c-format
msgid "%s: error updating version record: %s\n"
msgstr "%s: error actualizando el registro de versi�n: %s\n"
-#: g10/tdbio.c:588 g10/tdbio.c:627 g10/tdbio.c:649 g10/tdbio.c:679
-#: g10/tdbio.c:704 g10/tdbio.c:1568 g10/tdbio.c:1595
+#: g10/tdbio.c:574 g10/tdbio.c:613 g10/tdbio.c:635 g10/tdbio.c:665
+#: g10/tdbio.c:690 g10/tdbio.c:1556 g10/tdbio.c:1583
#, c-format
msgid "%s: error reading version record: %s\n"
msgstr "%s: error leyendo registro de versi�n: %s\n"
-#: g10/tdbio.c:601 g10/tdbio.c:660
+#: g10/tdbio.c:587 g10/tdbio.c:646
#, c-format
msgid "%s: error writing version record: %s\n"
msgstr "%s: error escribiendo registro de versi�n: %s\n"
-#: g10/tdbio.c:1247
+#: g10/tdbio.c:1235
#, c-format
msgid "trustdb: lseek failed: %s\n"
msgstr "base de datos de confianza: fallo lseek: %s\n"
-#: g10/tdbio.c:1255
+#: g10/tdbio.c:1243
#, c-format
msgid "trustdb: read failed (n=%d): %s\n"
msgstr "base de datos de confianza: error lectura (n=%d): %s\n"
-#: g10/tdbio.c:1276
+#: g10/tdbio.c:1264
#, c-format
msgid "%s: not a trustdb file\n"
msgstr "%s: no es una base de datos de confianza\n"
-#: g10/tdbio.c:1292
+#: g10/tdbio.c:1280
#, c-format
msgid "%s: version record with recnum %lu\n"
msgstr "%s: registro de versi�n con n�mero de registro %lu\n"
-#: g10/tdbio.c:1297
+#: g10/tdbio.c:1285
#, c-format
msgid "%s: invalid file version %d\n"
msgstr "%s: versi�n del fichero %d no v�lida\n"
-#: g10/tdbio.c:1601
+#: g10/tdbio.c:1589
#, c-format
msgid "%s: error reading free record: %s\n"
msgstr "%s: error leyendo registro libre: %s\n"
-#: g10/tdbio.c:1609
+#: g10/tdbio.c:1597
#, c-format
msgid "%s: error writing dir record: %s\n"
msgstr "%s: error escribiendo registro de directorio: %s\n"
-#: g10/tdbio.c:1619
+#: g10/tdbio.c:1607
#, c-format
msgid "%s: failed to zero a record: %s\n"
msgstr "%s: fallo en poner a cero un registro: %s\n"
-#: g10/tdbio.c:1649
+#: g10/tdbio.c:1637
#, c-format
msgid "%s: failed to append a record: %s\n"
msgstr "%s: fallo al a�adir un registro: %s\n"
-#: g10/tdbio.c:1760
-#, fuzzy
+#: g10/tdbio.c:1748
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"
-"\"gpgm --fix-trust-db\".\n"
+"\"gpg --fix-trust-db\".\n"
-#: g10/trustdb.c:160
+#: g10/trustdb.c:168
#, 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"
-#: g10/trustdb.c:175
+#: g10/trustdb.c:183
#, c-format
msgid "trust record %lu, type %d: write failed: %s\n"
msgstr "registro de confianza %lu, tipo %d: fallo escritura: %s\n"
-#: g10/trustdb.c:189
+#: g10/trustdb.c:197
#, c-format
msgid "trust record %lu: delete failed: %s\n"
msgstr "registro de confianza %lu: fallo al borrar: %s\n"
-#: g10/trustdb.c:203
+#: g10/trustdb.c:211
#, c-format
msgid "trustdb: sync failed: %s\n"
msgstr "base de datos de confianza: fallo sincronizaci�n: %s\n"
-#: g10/trustdb.c:347
+#: g10/trustdb.c:376
#, c-format
msgid "error reading dir record for LID %lu: %s\n"
msgstr "error leyendo registro de directorio del LID %lu: %s\n"
-#: g10/trustdb.c:354
+#: g10/trustdb.c:383
#, c-format
msgid "lid %lu: expected dir record, got type %d\n"
msgstr "lid %lu: esperaba registro directorio, encontrado tipo %d\n"
-#: g10/trustdb.c:359
+#: g10/trustdb.c:388
#, c-format
msgid "no primary key for LID %lu\n"
msgstr "no hay clave primaria para el LID %lu\n"
-#: g10/trustdb.c:364
+#: g10/trustdb.c:393
#, c-format
msgid "error reading primary key for LID %lu: %s\n"
msgstr "error leyendo clave primaria para el LID %lu: %s\n"
-#: g10/trustdb.c:403
+#: g10/trustdb.c:432
#, c-format
msgid "get_dir_record: search_record failed: %s\n"
msgstr "get_dir_record: search_record fallida: %s\n"
-#: g10/trustdb.c:458
+#: g10/trustdb.c:487
#, c-format
msgid "NOTE: secret key %08lX is NOT protected.\n"
msgstr "NOTA: la clave secreta %08lX NO est� protegida.\n"
-#: g10/trustdb.c:466
+#: g10/trustdb.c:495
#, c-format
msgid "key %08lX: secret key without public key - skipped\n"
msgstr "clave %08lX: clave secreta sin clave p�blica - ignorada\n"
-#: g10/trustdb.c:473
+#: g10/trustdb.c:502
#, c-format
msgid "key %08lX: secret and public key don't match\n"
msgstr "clave %08lX: las claves p�blica y secreta no se corresponden\n"
-#: g10/trustdb.c:485
+#: g10/trustdb.c:514
#, c-format
msgid "key %08lX: can't put it into the trustdb\n"
msgstr "clave %08lX: imposible incluirla en la base de datos de confianza\n"
-#: g10/trustdb.c:491
+#: g10/trustdb.c:520
#, c-format
msgid "key %08lX: query record failed\n"
msgstr "clave %08lX: petici�n de registro fallida\n"
-#: g10/trustdb.c:500
+#: g10/trustdb.c:529
#, c-format
msgid "key %08lX: already in trusted key table\n"
msgstr "clave %08lX: ya est� en la tabla de confianza\n"
-#: g10/trustdb.c:503
+#: g10/trustdb.c:532
#, c-format
msgid "key %08lX: accepted as trusted key.\n"
msgstr "clave %08lX: aceptada como clave de confianza.\n"
-#: g10/trustdb.c:511
+#: g10/trustdb.c:540
#, c-format
msgid "enumerate secret keys failed: %s\n"
-msgstr "enum_secret_keys fallido: %s\n"
+msgstr "enumeraci�n de claves secretas fallida: %s\n"
-#: g10/trustdb.c:877
+#: g10/trustdb.c:921
#, c-format
msgid "key %08lX.%lu: Good subkey binding\n"
-msgstr "clave %08lX.%lu: buena uni�n de subclave\n"
+msgstr "clave %08lX.%lu: uni�n de subclave v�lida\n"
-#: g10/trustdb.c:883 g10/trustdb.c:918
+#: g10/trustdb.c:927 g10/trustdb.c:962
#, c-format
msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
-msgstr "clave %08lX.%lu: uni�n de subclave no v�lida\n"
+msgstr "clave %08lX.%lu: uni�n de subclave no v�lida: %s\n"
-#: g10/trustdb.c:895
+#: g10/trustdb.c:939
#, c-format
msgid "key %08lX.%lu: Valid key revocation\n"
msgstr "clave %08lX.%lu: revocaci�n de clave v�lida\n"
-#: g10/trustdb.c:901
+#: g10/trustdb.c:945
#, c-format
msgid "key %08lX.%lu: Invalid key revocation: %s\n"
msgstr "clave %08lX.%lu: revocaci�n de clave no v�lida: %s\n"
-#: g10/trustdb.c:912
+#: g10/trustdb.c:956
#, c-format
msgid "key %08lX.%lu: Valid subkey revocation\n"
msgstr "clave %08lX.%lu: revocaci�n de subclave v�lida\n"
-#: g10/trustdb.c:1023
+#: g10/trustdb.c:1067
msgid "Good self-signature"
-msgstr "Autofirma buena"
+msgstr "Autofirma v�lida"
-#: g10/trustdb.c:1033
+#: g10/trustdb.c:1077
msgid "Invalid self-signature"
msgstr "Autofirma no v�lida"
-#: g10/trustdb.c:1060
-#, fuzzy
+#: g10/trustdb.c:1104
msgid "Valid user ID revocation skipped due to a newer self signature"
msgstr ""
-"Revocaci�n v�lida de identificativo de usuario ignorada debido a una "
-"autofirma m�s reciente\n"
+"Revocaci�n v�lida de ID de usuario ignorada debido a autofirma m�s reciente"
-#: g10/trustdb.c:1066
-#, fuzzy
+#: g10/trustdb.c:1110
msgid "Valid user ID revocation"
-msgstr "Revocaci�n identificativo de usuario v�lida.\n"
+msgstr "Revocaci�n de ID de usuario v�lida"
-#: g10/trustdb.c:1071
+#: g10/trustdb.c:1115
msgid "Invalid user ID revocation"
-msgstr "Revocaci�n identificativo de usuario no v�lida."
+msgstr "Revocaci�n de ID de usuario no v�lida."
-#: g10/trustdb.c:1112
+#: g10/trustdb.c:1157
msgid "Valid certificate revocation"
msgstr "Revocaci�n de certificado v�lida"
-#: g10/trustdb.c:1113
+#: g10/trustdb.c:1158
msgid "Good certificate"
-msgstr "Certificado bueno"
+msgstr "Certificado correcto"
-#: g10/trustdb.c:1134
+#: g10/trustdb.c:1186
msgid "Invalid certificate revocation"
msgstr "Certificado de revocaci�n incorrecto"
-#: g10/trustdb.c:1135
+#: g10/trustdb.c:1187
msgid "Invalid certificate"
msgstr "Certificado incorrecto"
-#: g10/trustdb.c:1152 g10/trustdb.c:1156
+#: g10/trustdb.c:1204 g10/trustdb.c:1208
#, c-format
msgid "sig record %lu[%d] points to wrong record.\n"
msgstr "registro de firma %lu[%d] apunta al registro equivocado.\n"
-#: g10/trustdb.c:1208
+#: g10/trustdb.c:1267
msgid "duplicated certificate - deleted"
msgstr "certificado duplicado - eliminado"
-#: g10/trustdb.c:1514
+#: g10/trustdb.c:1584
#, c-format
msgid "tdbio_search_dir failed: %s\n"
msgstr "tdbio_search_dir fallida: %s\n"
-#: g10/trustdb.c:1636
+#: g10/trustdb.c:1718
#, c-format
msgid "lid ?: insert failed: %s\n"
msgstr "lid ?: inserci�n fallida: %s\n"
-#: g10/trustdb.c:1641
+#: g10/trustdb.c:1723
#, c-format
msgid "lid %lu: insert failed: %s\n"
msgstr "lid %lu: inserci�n fallida: %s\n"
-#: g10/trustdb.c:1647
+#: g10/trustdb.c:1729
#, c-format
msgid "lid %lu: inserted\n"
msgstr "lid %lu: insertada\n"
-#: g10/trustdb.c:1652
-#, fuzzy, c-format
+#: g10/trustdb.c:1734
+#, c-format
msgid "error reading dir record: %s\n"
-msgstr "error buscando registro de directorio: %s\n"
+msgstr "error leyendo registro de directorio: %s\n"
-#: g10/trustdb.c:1660 g10/trustdb.c:1714
+#: g10/trustdb.c:1742 g10/trustdb.c:1805
#, c-format
msgid "%lu keys processed\n"
msgstr "se han procesado %lu claves\n"
-#: g10/trustdb.c:1662 g10/trustdb.c:1718
+#: g10/trustdb.c:1744 g10/trustdb.c:1811
#, c-format
msgid "\t%lu keys with errors\n"
msgstr "\t%lu claves con errores\n"
-#: g10/trustdb.c:1664
+#: g10/trustdb.c:1746
#, c-format
msgid "\t%lu keys inserted\n"
msgstr "\t%lu claves insertadas\n"
-#: g10/trustdb.c:1667
+#: g10/trustdb.c:1749
#, c-format
msgid "enumerate keyblocks failed: %s\n"
msgstr "enumeraci�n bloques de clave fallido: %s\n"
-#: g10/trustdb.c:1705
+#: g10/trustdb.c:1797
#, c-format
msgid "lid %lu: dir record w/o key - skipped\n"
msgstr "lid %lu: registro de directiorio sin clave - ignorado\n"
-#: g10/trustdb.c:1716
+#: g10/trustdb.c:1807
+#, fuzzy, c-format
+msgid "\t%lu due to new pubkeys\n"
+msgstr "clave %08lX: %d nuevas subclaves\n"
+
+#: g10/trustdb.c:1809
#, c-format
msgid "\t%lu keys skipped\n"
msgstr "\t%lu claves ignoradas\n"
-#: g10/trustdb.c:1720
+#: g10/trustdb.c:1813
#, c-format
msgid "\t%lu keys updated\n"
msgstr "\t%lu claves actualizadas\n"
-#: g10/trustdb.c:2057
+#: g10/trustdb.c:2158
msgid "Ooops, no keys\n"
msgstr "Oh oh, no hay claves\n"
-#: g10/trustdb.c:2061
-#, fuzzy
+#: g10/trustdb.c:2162
msgid "Ooops, no user IDs\n"
-msgstr "Oh oh, no hay identificativos de usuario\n"
+msgstr "Oh oh, no hay ning�n ID de usuario\n"
-#: g10/trustdb.c:2218
+#: g10/trustdb.c:2320
#, c-format
msgid "check_trust: search dir record failed: %s\n"
msgstr "check_trust: b�squeda registro directorio fallida: %s\n"
-#: g10/trustdb.c:2227
+#: g10/trustdb.c:2329
#, c-format
msgid "key %08lX: insert trust record failed: %s\n"
msgstr "clave %08lX: inserci�n del registro de confianza fallida: %s\n"
-#: g10/trustdb.c:2231
+#: g10/trustdb.c:2333
#, c-format
msgid "key %08lX.%lu: inserted into trustdb\n"
msgstr "clave %08lX.%lu: incluida en la base de datos de confianza\n"
-#: g10/trustdb.c:2239
+#: g10/trustdb.c:2341
#, c-format
msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
msgstr ""
"clave %08lX.%lu: creada en el futuro (salto en el tiempo o\n"
"problemas con el reloj)\n"
-#: g10/trustdb.c:2248
+#: g10/trustdb.c:2356
#, c-format
msgid "key %08lX.%lu: expired at %s\n"
msgstr "clave %08lX.%lu: caducada el %s\n"
-#: g10/trustdb.c:2256
+#: g10/trustdb.c:2364
#, c-format
msgid "key %08lX.%lu: trust check failed: %s\n"
msgstr "clave %08lX.%lu: comprobaci�n de confianza fallida: %s\n"
-#: g10/trustdb.c:2362
+#: g10/trustdb.c:2515
#, c-format
msgid "user '%s' not found: %s\n"
msgstr "usuario '%s' no encontrado: %s\n"
-#: g10/trustdb.c:2364
+#: g10/trustdb.c:2517
#, c-format
msgid "problem finding '%s' in trustdb: %s\n"
msgstr "problema buscando '%s' en la tabla de confianza: %s\n"
-#: g10/trustdb.c:2367
+#: g10/trustdb.c:2520
#, c-format
msgid "user '%s' not in trustdb - inserting\n"
msgstr "usuario '%s' no est� en la tabla de confianza - insertando\n"
-#: g10/trustdb.c:2370
+#: g10/trustdb.c:2523
#, c-format
msgid "failed to put '%s' into trustdb: %s\n"
msgstr "fallo al poner '%s' en la tabla de confianza: %s\n"
-#: g10/trustdb.c:2556 g10/trustdb.c:2586
+#: g10/trustdb.c:2709 g10/trustdb.c:2739
msgid "WARNING: can't yet handle long pref records\n"
msgstr "ATENC�ON: todav�a no puedo tratar registros de preferencias largos\n"
-#: g10/ringedit.c:318
+#: g10/verify.c:82
+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 ""
+
+#: g10/verify.c:147
+#, c-format
+msgid "input line %u too long or missing LF\n"
+msgstr ""
+
+#: g10/ringedit.c:302
#, c-format
msgid "%s: can't create keyring: %s\n"
msgstr "%s: no se puede crear el anillo: %s\n"
-#: g10/ringedit.c:335 g10/ringedit.c:1353
+#: g10/ringedit.c:319 g10/ringedit.c:1368
#, c-format
msgid "%s: keyring created\n"
msgstr "%s: anillo creado\n"
-#: g10/ringedit.c:1530
+#: g10/ringedit.c:1545
msgid "WARNING: 2 files with confidential information exists.\n"
msgstr "ATENCI�N: existen 2 ficheros con informaci�n confidencial.\n"
-#: g10/ringedit.c:1531
+#: g10/ringedit.c:1546
#, c-format
msgid "%s is the unchanged one\n"
msgstr "%s es el que no se ha modificado\n"
-#: g10/ringedit.c:1532
+#: g10/ringedit.c:1547
#, c-format
msgid "%s is the new one\n"
msgstr "%s es el nuevo\n"
-#: g10/ringedit.c:1533
+#: g10/ringedit.c:1548
msgid "Please fix this possible security flaw\n"
msgstr "Por favor arregle este posible fallo de seguridad\n"
#: g10/skclist.c:88 g10/skclist.c:125
msgid "key is not flagged as insecure - can't use it with the faked RNG!\n"
-msgstr ""
+msgstr "clave no marcada como insegura - no puede usarse con el pseudo RNG\n"
#: g10/skclist.c:113
#, c-format
@@ -3179,39 +3328,52 @@ msgstr ""
"para las firmas\n"
#. do not overwrite
-#: g10/openfile.c:65
+#: g10/openfile.c:79
#, c-format
msgid "File `%s' exists. "
msgstr "El fichero `%s' ya existe. "
-#: g10/openfile.c:67
+#: g10/openfile.c:81
msgid "Overwrite (y/N)? "
msgstr "�Sobreescribir (s/N)? "
-#: g10/openfile.c:97
+#: g10/openfile.c:109
#, c-format
msgid "%s: unknown suffix\n"
-msgstr ""
+msgstr "%s: sufijo desconocido\n"
-#: g10/openfile.c:119
-#, fuzzy
+#: g10/openfile.c:131
msgid "Enter new filename"
-msgstr "--store [nombre_fichero]"
+msgstr "Introduzca nuevo nombre de fichero"
-#: g10/openfile.c:160
+#: g10/openfile.c:172
msgid "writing to stdout\n"
msgstr "escribiendo en stdout\n"
-#: g10/openfile.c:219
+#: g10/openfile.c:250
#, c-format
msgid "assuming signed data in `%s'\n"
msgstr "asumiendo que hay datos firmados en `%s'\n"
-#: g10/openfile.c:269
+#: g10/openfile.c:300
#, c-format
msgid "%s: new options file created\n"
msgstr "%s: se ha creado un nuevo fichero de opciones\n"
+#: g10/openfile.c:313
+#, c-format
+msgid "%s: can't create directory: %s\n"
+msgstr "%s: no puede crearse el directorio: %s\n"
+
+#: g10/openfile.c:316
+#, c-format
+msgid "%s: directory created\n"
+msgstr "%s: directorio creado\n"
+
+#: g10/openfile.c:318
+msgid "you have to start GnuPG again, so it can read the new options file\n"
+msgstr ""
+
#: g10/encr-data.c:66
#, c-format
msgid "%s encrypted data\n"
@@ -3239,28 +3401,25 @@ msgstr ""
"�imposible evitar clave d�bil para cifrado sim�trico despu�s de %d "
"intentos!\n"
-#: g10/delkey.c:93
-#, fuzzy
+#: g10/delkey.c:94
msgid "there is a secret key for this public key!\n"
-msgstr "elimina la clave del anillo p�blico"
+msgstr "�hay una clave secreta para esta clave p�blica!\n"
-#: g10/delkey.c:95
+#: g10/delkey.c:96
msgid "use option \"--delete-secret-key\" to delete it first.\n"
-msgstr ""
+msgstr "use la opci�n \"--delete-secret-key\" para borrarla antes.\n"
-#: g10/delkey.c:111
-#, fuzzy
+#: g10/delkey.c:114
msgid "can't do that in batchmode without \"--yes\"\n"
-msgstr "imposible hacer esto en modo de proceso por lotes\n"
+msgstr "imposible hacer esto en modo de proceso por lotes sin \"--yes\"\n"
-#: g10/delkey.c:133
-#, fuzzy
+#: g10/delkey.c:136
msgid "Delete this key from the keyring? "
-msgstr "elimina la clave del anillo p�blico"
+msgstr "�Eliminar esta clave del anillo? "
-#: g10/delkey.c:141
+#: g10/delkey.c:144
msgid "This is a secret key! - really delete? "
-msgstr ""
+msgstr "�Esta es una clave secreta! �Eliminar realmente? "
#: g10/helptext.c:47
msgid ""
@@ -3268,19 +3427,25 @@ msgid ""
"to any 3rd party. We need it to implement the web-of-trust; it has nothing\n"
"to do with the (implicitly created) web-of-certificates."
msgstr ""
+"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)."
#: g10/helptext.c:53
msgid "If you want to use this revoked key anyway, answer \"yes\"."
-msgstr ""
+msgstr "Si quiere usar esta clave revocada de todos modos, conteste \"s�\"."
#: g10/helptext.c:57
msgid "If you want to use this untrusted key anyway, answer \"yes\"."
msgstr ""
+"Si quiere usar esta clave no confiable de todos modos, conteste \"s�\"."
#: g10/helptext.c:61
msgid ""
"Enter the user ID of the addressee to whom you want to send the message."
msgstr ""
+"Introduzca el ID de usuario de la direcci�n a la que quiere enviar el "
+"mensaje."
#: g10/helptext.c:65
msgid ""
@@ -3302,6 +3467,21 @@ msgid ""
"this is the reason why the encryption only ElGamal key is not available in\n"
"this menu."
msgstr ""
+"Seleccione el algoritmo a usar.\n"
+"\n"
+"DSA (tambi�n conocido como DSS) es el 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"
+"\n"
+"ElGamal es un algoritmo que puede ser usado para firma y cifrado. OpenPGP\n"
+"distingue entre dos tipos de estos algoritmos: para s�lo 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 firmas.\n"
+"Este programa lo hace as�, pero otras implementaciones de OpenPGP no tienen\n"
+"porqu� 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�."
#: g10/helptext.c:85
msgid ""
@@ -3309,16 +3489,18 @@ msgid ""
"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 la RFC2440, no se sugiere su uso,\n"
+"ya que no est�n soportadas por todos los programas y las firmas creadas\n"
+"con ellas son bastante grandes y lentas de verificar."
#: g10/helptext.c:92
-#, fuzzy
msgid "Enter the size of the key"
-msgstr "Introduzca el ID de usuario: "
+msgstr "Introduzca la longitud de la clave"
#: g10/helptext.c:96 g10/helptext.c:101 g10/helptext.c:113 g10/helptext.c:145
#: g10/helptext.c:150 g10/helptext.c:155 g10/helptext.c:160
msgid "Answer \"yes\" or \"no\""
-msgstr ""
+msgstr "Responda \"s�\" o \"no\""
#: g10/helptext.c:106
msgid ""
@@ -3327,19 +3509,24 @@ msgid ""
"get a good error response - instead the system tries to interpret\n"
"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� una\n"
+"buena respuesta a los errores; el sistema intentar� interpretar el valor\n"
+"introducido como un intervalo."
#: g10/helptext.c:118
msgid "Enter the name of the key holder"
-msgstr ""
+msgstr "Introduzca el nombre del due�o de la clave"
#: g10/helptext.c:123
msgid "please enter an optional but highly suggested email address"
msgstr ""
+"Introduzca una direcci�n de correo electr�nico (opcional pero muy\n"
+"recomendable)"
#: g10/helptext.c:127
-#, fuzzy
msgid "Please enter an optional comment"
-msgstr "Introduzca el nombre del fichero de datos: "
+msgstr "Introduzca un comentario opcional"
#: g10/helptext.c:132
msgid ""
@@ -3349,24 +3536,31 @@ msgid ""
"O to continue with key generation.\n"
"Q to to quit the key generation."
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."
#: g10/helptext.c:141
msgid "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
-msgstr ""
+msgstr "Responda \"s�\" (o s�lo \"s\") para generar la subclave."
#: g10/helptext.c:164
msgid "Answer \"yes\" is you want to sign ALL the user IDs"
-msgstr ""
+msgstr "Responda \"s�\" si quiere firmar TODOS los IDs de usuario"
#: g10/helptext.c:168
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!"
#: g10/helptext.c:173
msgid "Answer \"yes\" if it is okay to delete the subkey"
-msgstr ""
+msgstr "Responda \"s�\" si quiere borrar esta subclave"
#: g10/helptext.c:178
msgid ""
@@ -3374,6 +3568,9 @@ msgid ""
"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"
+"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."
#: g10/helptext.c:183
msgid ""
@@ -3382,12 +3579,16 @@ msgid ""
"know which key was used because this signing key might establish\n"
"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."
#: g10/helptext.c:189
msgid ""
"The signature is not valid. It does make sense to remove it from\n"
"your keyring."
-msgstr ""
+msgstr "Esta firma no es v�lida. Tiene sentido borrarla de su anillo."
#: g10/helptext.c:193
msgid ""
@@ -3397,40 +3598,94 @@ msgid ""
"only if this self-signature is for some reason not valid and\n"
"a second one is available."
msgstr ""
+"Esta es una firma que une el ID de usuario a la clave. No suele ser una "
+"buena\n"
+"idea borrar dichas firmas. De hecho, GnuPG podr�a no ser capaz de volver a\n"
+"usar esta clave. As� que b�rrela tan s�lo si esta autofirma no es v�lida "
+"por\n"
+"alguna raz�n y hay otra disponible."
#: g10/helptext.c:202
msgid ""
"Please enter the passhrase; this is a secret sentence \n"
" Blurb, blurb,.... "
-msgstr ""
+msgstr "Por favor introduzca la contrase�a"
#: g10/helptext.c:209
msgid "Please repeat the last passphrase, so you are sure what you typed in."
-msgstr ""
+msgstr "Repita la �ltima contrase�a para asegurarse de lo que tecle�."
#: g10/helptext.c:213
+#, fuzzy
msgid "Give the name of the file to which the signature applies"
-msgstr ""
+msgstr "Introduzca el nombre del fichero al que corresponde la firma"
#: g10/helptext.c:218
msgid "Answer \"yes\" if it is okay to overwrite the file"
-msgstr ""
+msgstr "Responda \"s�\" para sobreescribir el fichero"
#: g10/helptext.c:223
msgid ""
"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 ENTER se usar� el fichero "
+"por\n"
+"omisi�n (mostrado entre corchetes)."
-#: g10/helptext.c:237
+#: g10/helptext.c:229
+msgid ""
+"You should specify a reason for the certification. Depending on the\n"
+"context you have the ability to choose from this list:\n"
+" \"Key has been compromised\"\n"
+" Use this if you have a reason to believe that unauthorized persons\n"
+" got access to your secret key.\n"
+" \"Key is superseeded\"\n"
+" Use this if you have replaced this key with a newer one.\n"
+" \"Key is no longer used\"\n"
+" Use this if you have retired this key.\n"
+" \"User ID is no longer valid\"\n"
+" 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 ""
+
+#: g10/helptext.c:245
+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 ""
+
+#: g10/helptext.c:260
msgid "No help available"
msgstr "Ayuda no disponible"
-#: g10/helptext.c:245
+#: g10/helptext.c:268
#, c-format
msgid "No help available for `%s'"
msgstr "Ayuda no disponible para `%s'"
+#~ msgid "set debugging flags"
+#~ msgstr "establece los par�metros de depuraci�n"
+
+#~ msgid "enable full debugging"
+#~ msgstr "habilita depuraci�n completa"
+
+#~ msgid "do not write comment packets"
+#~ msgstr "no escribe paquetes de comentario"
+
+#~ msgid "(default is 1)"
+#~ msgstr "(por defecto es 1)"
+
+#~ msgid "(default is 3)"
+#~ msgstr "(por defecto es 3)"
+
+#~ msgid " (%d) ElGamal in a v3 packet\n"
+#~ 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"
+
#, fuzzy
#~ msgid "tdbio_search_sdir failed: %s\n"
#~ msgstr "tdbio_search_dir fallida: %s\n"
@@ -3529,9 +3784,6 @@ msgstr "Ayuda no disponible para `%s'"
#~ msgid "read error: %s\n"
#~ msgstr "error de lectura: %s\n"
-#~ msgid "can't write to keyring: %s\n"
-#~ msgstr "no puede escribirse en el anillo: %s\n"
-
#~ msgid "writing keyblock\n"
#~ msgstr "escribiendo bloque de claves\n"
@@ -3571,9 +3823,6 @@ msgstr "Ayuda no disponible para `%s'"
#~ msgid "chained sigrec %lu has a wrong owner\n"
#~ msgstr "registro de firma encadenado %lu tiene el propietario equivocado\n"
-#~ msgid "'%s' is not a valid long keyID\n"
-#~ msgstr "'%s' no es un identificativo largo de clave v�lido\n"
-
#~ msgid "key %08lX: no public key for trusted key - skipped\n"
#~ msgstr "clave %08lX: clave de confianza sin clave p�blica - ignorada\n"
diff --git a/po/fr.po b/po/fr.po
index 44b3776a2..a605f8d48 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -1,12 +1,12 @@
# GnuPG French translation
-# Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+# Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
# Ga�l Qu�ri <[email protected]>, 1998.
#
msgid ""
msgstr ""
-"Project-Id-Version: gnupg 1.0\n"
-"POT-Creation-Date: 1999-09-05 19:21+0200\n"
-"PO-Revision-Date: 1999-09-03 18:07+0200\n"
+"Project-Id-Version: gnupg 1.0.0h\n"
+"POT-Creation-Date: 2000-05-30 13:59+0200\n"
+"PO-Revision-Date: 2000-01-09 23:47 +01:00\n"
"Last-Translator: Ga�l Qu�ri <[email protected]>\n"
"Language-Team: French <[email protected]>\n"
"MIME-Version: 1.0\n"
@@ -17,15 +17,15 @@ msgstr ""
msgid "Warning: using insecure memory!\n"
msgstr "Attention : utilisation de la m�moire non s�re !\n"
-#: util/secmem.c:275
+#: util/secmem.c:287
msgid "operation is not possible without initialized secure memory\n"
msgstr ""
"l'op�ration n'est pas possible tant que la m�moire s�re n'est pas\n"
"initialis�e\n"
-#: util/secmem.c:276
+#: util/secmem.c:288
msgid "(you may have used the wrong program for this task)\n"
-msgstr "(vous avez peut-�tre utilis� le mauvais programme pour cette tache)\n"
+msgstr "(vous avez peut-�tre utilis� un programme non adapt� � cette fin)\n"
#: util/miscutil.c:277 util/miscutil.c:306
msgid "yes"
@@ -43,7 +43,7 @@ msgstr "non"
msgid "nN"
msgstr "nN"
-#: g10/keyedit.c:564 util/miscutil.c:308
+#: g10/keyedit.c:580 util/miscutil.c:308
msgid "quit"
msgstr "quitter"
@@ -85,7 +85,7 @@ msgstr "mauvaise signature"
#: util/errors.c:62
msgid "checksum error"
-msgstr "erreur de checksum"
+msgstr "somme de contr�le erron�e"
#: util/errors.c:63
msgid "bad passphrase"
@@ -101,7 +101,7 @@ msgstr "algorithme de chiffrement inconnu"
#: util/errors.c:66
msgid "can't open the keyring"
-msgstr "ne peut ouvrir le porte-cl�s"
+msgstr "impossible d'ouvrir le porte-cl�s"
#: util/errors.c:67
msgid "invalid packet"
@@ -157,11 +157,11 @@ msgstr "mot de passe invalide"
#: util/errors.c:80
msgid "unimplemented pubkey algorithm"
-msgstr "algorithme � cl� publique non impl�ment�"
+msgstr "algorithme � cl� publique non implant�"
#: util/errors.c:81
msgid "unimplemented cipher algorithm"
-msgstr "algorithme de chiffrement non impl�ment�"
+msgstr "algorithme de chiffrement non implant�"
#: util/errors.c:82
msgid "unknown signature class"
@@ -243,22 +243,78 @@ msgstr "erreur de r�seau"
msgid "not encrypted"
msgstr "non chiffr�"
-#: util/logger.c:218
+#: util/errors.c:103
+msgid "not processed"
+msgstr "non trait�"
+
+#: util/logger.c:224
#, c-format
msgid "... this is a bug (%s:%d:%s)\n"
msgstr "... c'est un bug (%s:%d:%s)\n"
-#: util/logger.c:224
+#: util/logger.c:230
#, c-format
msgid "you found a bug ... (%s:%d)\n"
msgstr "vous avez trouv� un bug ... (%s:%d)\n"
-#: cipher/random.c:452
+#: cipher/random.c:311 g10/import.c:127 g10/keygen.c:1150
+#, c-format
+msgid "can't open `%s': %s\n"
+msgstr "impossible d'ouvrir `%s': %s\n"
+
+#: cipher/random.c:315
+#, fuzzy, c-format
+msgid "can't stat `%s': %s\n"
+msgstr "impossible d'ouvrir `%s': %s\n"
+
+#: cipher/random.c:320
+#, c-format
+msgid "`%s' is not a regular file - ignored\n"
+msgstr ""
+
+#: cipher/random.c:325
+msgid "note: random_seed file is empty\n"
+msgstr ""
+
+#: cipher/random.c:331
+msgid "warning: invalid size of random_seed file - not used\n"
+msgstr ""
+
+#: cipher/random.c:339
+#, fuzzy, c-format
+msgid "can't read `%s': %s\n"
+msgstr "impossible d'ouvrir `%s': %s\n"
+
+#: cipher/random.c:377
+msgid "note: random_seed file not updated\n"
+msgstr ""
+
+#: cipher/random.c:397
+#, fuzzy, c-format
+msgid "can't create `%s': %s\n"
+msgstr "impossible de cr�er %s : %s\n"
+
+#: cipher/random.c:404
+#, fuzzy, c-format
+msgid "can't write `%s': %s\n"
+msgstr "impossible d'ouvrir `%s': %s\n"
+
+#: cipher/random.c:407
+#, fuzzy, c-format
+msgid "can't close `%s': %s\n"
+msgstr "impossible d'ouvrir `%s': %s\n"
+
+#: cipher/random.c:418
+#, c-format
+msgid "too many random bits requested; the limit is %d\n"
+msgstr ""
+
+#: cipher/random.c:647
msgid "WARNING: using insecure random number generator!!\n"
msgstr ""
"ATTENTION : utilisation d'un g�n�rateur de nombres al�atoires peu s�r !!\n"
-#: cipher/random.c:453
+#: cipher/random.c:648
msgid ""
"The random number generator is only a kludge to let\n"
"it run - it is in no way a strong RNG!\n"
@@ -272,7 +328,7 @@ msgstr ""
"N'UTILISEZ PAS LES DONN�ES G�N�R�ES PAR CE PROGRAMME !!\n"
"\n"
-#: cipher/rndlinux.c:135
+#: cipher/rndlinux.c:141
#, c-format
msgid ""
"\n"
@@ -283,7 +339,7 @@ msgstr ""
"Il n'y a pas assez d'octets al�atoires disponibles. Faites autre chose\n"
"pour que l'OS puisse amasser plus d'entropie ! (il faut %d octets de plus)\n"
-#: g10/g10.c:185
+#: g10/g10.c:195
msgid ""
"@Commands:\n"
" "
@@ -291,136 +347,139 @@ msgstr ""
"@Commandes:\n"
" "
-#: g10/g10.c:187
+#: g10/g10.c:197
msgid "|[file]|make a signature"
msgstr "|[fichier]|faire une signature"
-#: g10/g10.c:188
+#: g10/g10.c:198
msgid "|[file]|make a clear text signature"
msgstr "|[fichier]|faire une signature en texte clair"
-#: g10/g10.c:189
+#: g10/g10.c:199
msgid "make a detached signature"
msgstr "faire une signature d�tach�e"
-#: g10/g10.c:190
+#: g10/g10.c:200
msgid "encrypt data"
msgstr "chiffrer les donn�es"
-#: g10/g10.c:191
+#: g10/g10.c:201
msgid "encryption only with symmetric cipher"
msgstr "chiffrement sym�trique seulement"
-#: g10/g10.c:192
+#: g10/g10.c:202
msgid "store only"
msgstr "pas d'action"
-#: g10/g10.c:193
+#: g10/g10.c:203
msgid "decrypt data (default)"
msgstr "d�chiffrer les donn�es (d�faut)"
-#: g10/g10.c:194
+#: g10/g10.c:204
msgid "verify a signature"
msgstr "v�rifier une signature"
-#: g10/g10.c:195
+#: g10/g10.c:206
msgid "list keys"
msgstr "lister les cl�s"
-#: g10/g10.c:197
+#: g10/g10.c:208
msgid "list keys and signatures"
msgstr "lister les cl�s et les signatures"
-#: g10/g10.c:198
+#: g10/g10.c:209
msgid "check key signatures"
msgstr "v�rifier les signatures des cl�s"
-#: g10/g10.c:199
+#: g10/g10.c:210
msgid "list keys and fingerprints"
msgstr "lister les cl�s et les empreintes"
-#: g10/g10.c:200
+#: g10/g10.c:211
msgid "list secret keys"
msgstr "lister les cl�s secr�tes"
-#: g10/g10.c:201
+#: g10/g10.c:212
msgid "generate a new key pair"
msgstr "g�n�rer une nouvelle paire de cl�s"
-#: g10/g10.c:202
+#: g10/g10.c:213
msgid "remove key from the public keyring"
msgstr "enlever la cl� du porte-cl�s public"
-#: g10/g10.c:203
+#: g10/g10.c:215
+msgid "remove key from the secret keyring"
+msgstr "enlever la cl� du porte-cl�s secret"
+
+#: g10/g10.c:216
msgid "sign a key"
msgstr "signer une cl�"
-#: g10/g10.c:204
+#: g10/g10.c:217
msgid "sign a key locally"
msgstr "signer une cl� localement"
-#: g10/g10.c:205
+#: g10/g10.c:218
msgid "sign or edit a key"
msgstr "signer ou �diter une cl�"
-#: g10/g10.c:206
+#: g10/g10.c:219
msgid "generate a revocation certificate"
msgstr "g�n�rer un certificat de r�vocation"
-#: g10/g10.c:207
+#: g10/g10.c:220
msgid "export keys"
msgstr "exporter les cl�s"
-#: g10/g10.c:208
+#: g10/g10.c:221
msgid "export keys to a key server"
msgstr "exporter les cl�s vers un serveur de cl�s"
-#: g10/g10.c:209
+#: g10/g10.c:222
msgid "import keys from a key server"
msgstr "importer les cl�s d'un serveur de cl�s"
-#: g10/g10.c:212
+#: g10/g10.c:226
msgid "import/merge keys"
msgstr "importer/fusionner les cl�s"
-#: g10/g10.c:214
+#: g10/g10.c:228
msgid "list only the sequence of packets"
msgstr "ne lister que les paquets"
-#: g10/g10.c:216
+#: g10/g10.c:230
msgid "export the ownertrust values"
msgstr "exporter les indices de confiance"
-#: g10/g10.c:218
+#: g10/g10.c:232
msgid "import ownertrust values"
msgstr "importer les indices de confiance"
-#
-#: g10/g10.c:220
+#: g10/g10.c:234
msgid "update the trust database"
msgstr "mettre la base de confiance � jour"
-#: g10/g10.c:222
+#: g10/g10.c:236
msgid "|[NAMES]|check the trust database"
msgstr "|[NOMS]|v�rifier la base de confiance"
-#: g10/g10.c:223
+#: g10/g10.c:237
msgid "fix a corrupted trust database"
msgstr "r�parer une base de confiance corrompue"
-#: g10/g10.c:224
+#: g10/g10.c:238
msgid "De-Armor a file or stdin"
msgstr "Enlever l'armure d'un fichier ou de stdin"
-#: g10/g10.c:225
+#: g10/g10.c:240
msgid "En-Armor a file or stdin"
msgstr "Mettre une armure � un fichier ou � stdin"
-#: g10/g10.c:226
+#: g10/g10.c:242
msgid "|algo [files]|print message digests"
msgstr "|alg. [fich.]|indiquer les fonctions de hachage"
-#: g10/g10.c:230
+#: g10/g10.c:246
msgid ""
"@\n"
"Options:\n"
@@ -430,169 +489,154 @@ msgstr ""
"Options:\n"
" "
-#: g10/g10.c:232
+#: g10/g10.c:248
msgid "create ascii armored output"
msgstr "cr�er une sortie ascii avec armure"
-#: g10/g10.c:233
+#: g10/g10.c:250
msgid "|NAME|encrypt for NAME"
msgstr "|NOM|chiffrer pour NOM"
-#: g10/g10.c:236
+#: g10/g10.c:253
msgid "|NAME|use NAME as default recipient"
msgstr "|NOM|utiliser NOM comme r�cipient par d�faut"
-#: g10/g10.c:238
+#: g10/g10.c:255
msgid "use the default key as default recipient"
msgstr "utiliser la cl� par d�f. comme r�cipient"
-#: g10/g10.c:242
+#: g10/g10.c:259
msgid "use this user-id to sign or decrypt"
msgstr "utiliser ce nom pour signer ou d�chiffrer"
-#: g10/g10.c:243
+#: g10/g10.c:260
msgid "|N|set compress level N (0 disables)"
msgstr "|N|niveau de compression N (0 d�sactive)"
-#: g10/g10.c:245
+#: g10/g10.c:262
msgid "use canonical text mode"
msgstr "utiliser le mode texte canonique"
-#: g10/g10.c:246
+#: g10/g10.c:263
msgid "use as output file"
msgstr "utiliser comme fichier de sortie"
-#: g10/g10.c:247
+#: g10/g10.c:264
msgid "verbose"
msgstr "bavard"
-#: g10/g10.c:248
+#: g10/g10.c:265
msgid "be somewhat more quiet"
msgstr "devenir beaucoup plus silencieux"
-#: g10/g10.c:249
+#: g10/g10.c:266
msgid "don't use the terminal at all"
msgstr "ne pas utiliser du tout le terminal"
-#
-#: g10/g10.c:250
+#: g10/g10.c:267
msgid "force v3 signatures"
msgstr "forcer les signatures en v3"
-#: g10/g10.c:251
+#: g10/g10.c:268
msgid "always use a MDC for encryption"
msgstr "toujours utiliser un sceau pour le chiffrement"
-#: g10/g10.c:252
+#: g10/g10.c:269
msgid "do not make any changes"
msgstr "ne rien changer"
#. { oInteractive, "interactive", 0, N_("prompt before overwriting") },
-#: g10/g10.c:254
+#: g10/g10.c:271
msgid "batch mode: never ask"
msgstr "mode automatique : ne jamais rien demander"
-#: g10/g10.c:255
+#: g10/g10.c:272
msgid "assume yes on most questions"
msgstr "r�pondre oui � la plupart des questions"
-#: g10/g10.c:256
+#: g10/g10.c:273
msgid "assume no on most questions"
msgstr "r�pondre non � la plupart des questions"
-#: g10/g10.c:257
+#: g10/g10.c:274
msgid "add this keyring to the list of keyrings"
msgstr "ajouter ce porte-cl�s � la liste"
-#: g10/g10.c:258
+#: g10/g10.c:275
msgid "add this secret keyring to the list"
msgstr "ajouter ce porte-cl�s secret � la liste"
-#: g10/g10.c:259
+#: g10/g10.c:276
msgid "|NAME|use NAME as default secret key"
msgstr "|NOM|utiliser NOM comme cl� secr�te par d�faut"
-#: g10/g10.c:260
+#: g10/g10.c:277
msgid "|HOST|use this keyserver to lookup keys"
msgstr "|H�TE|utiliser ce serveur pour chercher des cl�s"
-#: g10/g10.c:261
+#: g10/g10.c:278
msgid "|NAME|set terminal charset to NAME"
msgstr "|NOM|le terminal utilise la table de caract�res NOM"
-#: g10/g10.c:262
+#: g10/g10.c:279
msgid "read options from file"
msgstr "lire les options du fichier"
-#: g10/g10.c:264
-msgid "set debugging flags"
-msgstr "choisir les attributs de d�boguage"
-
-#: g10/g10.c:265
-msgid "enable full debugging"
-msgstr "permettre un d�boguage complet"
-
-#: g10/g10.c:266
+#: g10/g10.c:283
msgid "|FD|write status info to this FD"
msgstr "|FD|�crire l'�tat sur ce descripteur"
-#: g10/g10.c:267
-msgid "do not write comment packets"
-msgstr "ne pas �crire de paquets de commentaire"
-
-#: g10/g10.c:268
-msgid "(default is 1)"
-msgstr "nombre de signatures compl�tes requises (1)"
-
-#: g10/g10.c:269
-msgid "(default is 3)"
-msgstr "nombre de signatures marginales requises (3)"
-
-#: g10/g10.c:271
+#: g10/g10.c:288
msgid "|FILE|load extension module FILE"
msgstr "|FICH|charger le module d'extension FICH"
-#: g10/g10.c:272
+#: g10/g10.c:289
msgid "emulate the mode described in RFC1991"
msgstr "imiter le mode d�crit dans la RFC1991"
-#: g10/g10.c:273
+#: g10/g10.c:290
msgid "set all packet, cipher and digest options to OpenPGP behavior"
msgstr "utiliser le comportement d�fini par OpenPGP"
-#: g10/g10.c:274
+#: g10/g10.c:291
msgid "|N|use passphrase mode N"
msgstr "|N|coder les mots de passe suivant le mode N"
-#: g10/g10.c:276
+#: g10/g10.c:293
msgid "|NAME|use message digest algorithm NAME for passphrases"
msgstr "|NOM|utiliser le hachage NOM pour les mots de passe"
-#: g10/g10.c:278
+#: g10/g10.c:295
msgid "|NAME|use cipher algorithm NAME for passphrases"
msgstr "|NOM|utiliser le chiffre NOM pour les mots de passe"
-#: g10/g10.c:279
+#: g10/g10.c:296
msgid "|NAME|use cipher algorithm NAME"
msgstr "|NOM|utiliser l'algorithme de chiffrement NOM"
-#: g10/g10.c:280
+#: g10/g10.c:297
msgid "|NAME|use message digest algorithm NAME"
msgstr "|NOM|utiliser la fonction de hachage NOM"
-#: g10/g10.c:281
+#: g10/g10.c:298
msgid "|N|use compress algorithm N"
msgstr "|N|utiliser l'algorithme de compression N"
-#: g10/g10.c:282
+#: g10/g10.c:299
msgid "throw keyid field of encrypted packets"
msgstr "supprimer l'ident. des paquets chiffr�s"
-#: g10/g10.c:283
+#: g10/g10.c:300
msgid "|NAME=VALUE|use this notation data"
msgstr "|NOM=VALEUR|utiliser ces donn�es de notation"
-#: g10/g10.c:285
+#: g10/g10.c:303
+msgid ""
+"@\n"
+"(See the man page for a complete listing of all commands and options)\n"
+msgstr ""
+
+#: g10/g10.c:306
msgid ""
"@\n"
"Examples:\n"
@@ -612,25 +656,25 @@ msgstr ""
" --list-keys [utilisateur] montrer les cl�s\n"
" --fingerprint [utilisateur] montrer les empreintes\n"
-#: g10/g10.c:370
+#: g10/g10.c:399
msgid "Please report bugs to <[email protected]>.\n"
msgstr "Rapporter toutes anomalies � <[email protected]>.\n"
-#: g10/g10.c:374
+#: g10/g10.c:403
msgid "Usage: gpg [options] [files] (-h for help)"
msgstr "Utilisation: gpg [options] [fichiers] (-h pour l'aide)"
-#: g10/g10.c:377
+#: g10/g10.c:406
msgid ""
"Syntax: gpg [options] [files]\n"
"sign, check, encrypt or decrypt\n"
"default operation depends on the input data\n"
msgstr ""
"Syntaxe: gpg [options] [fichiers]\n"
-"signer, v�rifier, chiffer ou d�chiffrer\n"
+"signer, v�rifier, chiffrer ou d�chiffrer\n"
"l'op�ration par d�faut d�pend des donn�es entr�es\n"
-#: g10/g10.c:382
+#: g10/g10.c:413
msgid ""
"\n"
"Supported algorithms:\n"
@@ -638,184 +682,184 @@ msgstr ""
"\n"
"Algorithmes support�s :\n"
-#: g10/g10.c:456
+#: g10/g10.c:492
msgid "usage: gpg [options] "
msgstr "utilisation: gpg [options] "
-#: g10/g10.c:509
+#: g10/g10.c:545
msgid "conflicting commands\n"
msgstr "commandes en conflit\n"
-#: g10/g10.c:644
+#: g10/g10.c:687
#, c-format
msgid "NOTE: no default option file `%s'\n"
msgstr "NOTE : pas de fichier d'options par d�faut `%s'\n"
-#: g10/g10.c:648
+#: g10/g10.c:691
#, c-format
msgid "option file `%s': %s\n"
msgstr "fichier d'options `%s' : %s\n"
-#: g10/g10.c:655
+#: g10/g10.c:698
#, c-format
msgid "reading options from `%s'\n"
msgstr "lire les options de `%s'\n"
-#: g10/g10.c:835
+#: g10/g10.c:885
#, c-format
msgid "%s is not a valid character set\n"
msgstr "%s n'est pas une table de caract�res valide\n"
-#: g10/g10.c:892 g10/g10.c:901
+#: g10/g10.c:945 g10/g10.c:954
#, c-format
msgid "NOTE: %s is not for normal use!\n"
msgstr "NOTE : %s n'est pas pour une utilisation normale !\n"
-#: g10/g10.c:894
+#: g10/g10.c:947
#, c-format
msgid "%s not allowed with %s!\n"
msgstr "%s n'est pas permis avec %s !\n"
-#: g10/g10.c:897
+#: g10/g10.c:950
#, c-format
msgid "%s makes no sense with %s!\n"
msgstr "%s n'a aucun sens avec %s !\n"
-#: g10/g10.c:916 g10/g10.c:928
+#: g10/g10.c:969 g10/g10.c:981
msgid "selected cipher algorithm is invalid\n"
msgstr "l'algorithme de chiffrement s�lectionn� est invalide\n"
-#: g10/g10.c:922 g10/g10.c:934
+#: g10/g10.c:975 g10/g10.c:987
msgid "selected digest algorithm is invalid\n"
msgstr "la fonction de hachage s�lectionn�e est invalide\n"
-#: g10/g10.c:938
+#: g10/g10.c:991
msgid "the given policy URL is invalid\n"
msgstr "l'URL de politique donn�e est invalide\n"
-#: g10/g10.c:941
+#: g10/g10.c:994
#, c-format
msgid "compress algorithm must be in range %d..%d\n"
-msgstr "l'algorithme de compression doit faire partie de l'�chelle %d..%d\n"
+msgstr "l'algorithme de compression doit faire partie de l'intervalle %d..%d\n"
-#: g10/g10.c:943
+#: g10/g10.c:996
msgid "completes-needed must be greater than 0\n"
msgstr "� completes-needed � doit �tre sup�rieur � 0\n"
-#: g10/g10.c:945
+#: g10/g10.c:998
msgid "marginals-needed must be greater than 1\n"
msgstr "� marginals-needed � doit �tre sup�rieur � 1\n"
-#: g10/g10.c:947
+#: g10/g10.c:1000
msgid "max-cert-depth must be in range 1 to 255\n"
msgstr "� max-cert-depth � doit �tre compris entre 1 et 255\n"
-#: g10/g10.c:950
+#: g10/g10.c:1003
msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
msgstr "NOTE : le mode S2K simple (0) est fortement d�conseill�\n"
-#: g10/g10.c:954
+#: g10/g10.c:1007
msgid "invalid S2K mode; must be 0, 1 or 3\n"
msgstr "mode S2K invalide ; doit �tre 0, 1 ou 3\n"
-#: g10/g10.c:1031
+#: g10/g10.c:1092
#, c-format
msgid "failed to initialize the TrustDB: %s\n"
-msgstr "n'a pas pu initialiser la base de confiance : %s\n"
+msgstr "impossible d'initialiser la base de confiance : %s\n"
-#: g10/g10.c:1037
+#: g10/g10.c:1098
msgid "--store [filename]"
msgstr "--store [nom du fichier]"
-#: g10/g10.c:1044
+#: g10/g10.c:1105
msgid "--symmetric [filename]"
msgstr "--symmetric [nom du fichier]"
-#: g10/g10.c:1052
+#: g10/g10.c:1113
msgid "--encrypt [filename]"
msgstr "--encrypt [nom du fichier]"
-#: g10/g10.c:1065
+#: g10/g10.c:1126
msgid "--sign [filename]"
msgstr "--sign [nom du fichier]"
-#: g10/g10.c:1078
+#: g10/g10.c:1139
msgid "--sign --encrypt [filename]"
msgstr "--sign --encrypt [nom du fichier]"
-#: g10/g10.c:1092
+#: g10/g10.c:1153
msgid "--clearsign [filename]"
msgstr "--clearsign [nom du fichier]"
-#: g10/g10.c:1104
+#: g10/g10.c:1170
msgid "--decrypt [filename]"
msgstr "--decrypt [nom du fichier]"
-#: g10/g10.c:1112
+#: g10/g10.c:1178
msgid "--sign-key user-id"
msgstr "--sign-key utilisateur"
-#: g10/g10.c:1120
+#: g10/g10.c:1186
msgid "--lsign-key user-id"
msgstr "--lsign-key utilisateur"
-#: g10/g10.c:1128
+#: g10/g10.c:1194
msgid "--edit-key user-id [commands]"
msgstr "--edit-key utilisateur [commandes]"
-#: g10/g10.c:1144
+#: g10/g10.c:1210
msgid "--delete-secret-key user-id"
msgstr "--delete-secret-key utilisateur"
-#: g10/g10.c:1147
+#: g10/g10.c:1213
msgid "--delete-key user-id"
msgstr "--delete-key utilisateur"
-#: g10/encode.c:259 g10/g10.c:1171 g10/sign.c:366
+#: g10/encode.c:260 g10/g10.c:1250 g10/sign.c:373
#, c-format
msgid "can't open %s: %s\n"
-msgstr "ne peut ouvrir %s: %s\n"
+msgstr "impossible d'ouvrir %s: %s\n"
-#: g10/g10.c:1182
+#: g10/g10.c:1265
msgid "-k[v][v][v][c] [user-id] [keyring]"
msgstr "-k[v][v][v][c] [utilisateur] [porte-cl�s]"
-#: g10/g10.c:1243
+#: g10/g10.c:1331
#, c-format
msgid "dearmoring failed: %s\n"
msgstr "suppression d'armure non r�ussie : %s\n"
-#: g10/g10.c:1251
+#: g10/g10.c:1339
#, c-format
msgid "enarmoring failed: %s\n"
msgstr "construction d'armure non r�ussie : %s \n"
-#: g10/g10.c:1319
+#: g10/g10.c:1407
#, c-format
msgid "invalid hash algorithm `%s'\n"
msgstr "algorithme de hachage `%s' invalide\n"
-#: g10/g10.c:1400
+#: g10/g10.c:1488
msgid "[filename]"
msgstr "[nom du fichier]"
-#: g10/g10.c:1404
+#: g10/g10.c:1492
msgid "Go ahead and type your message ...\n"
msgstr "Continuez et tapez votre message...\n"
-#: g10/decrypt.c:59 g10/g10.c:1407 g10/verify.c:66
+#: g10/decrypt.c:59 g10/g10.c:1495 g10/verify.c:68 g10/verify.c:113
#, c-format
msgid "can't open `%s'\n"
-msgstr "ne peut ouvrir `%s'\n"
+msgstr "impossible d'ouvrir `%s'\n"
-#: g10/g10.c:1576
+#: g10/g10.c:1665
msgid ""
"the first character of a notation name must be a letter or an underscore\n"
msgstr ""
"le premier caract�re du nom d'une notation doit �tre un lettre ou un trait\n"
"de soulignement\n"
-#: g10/g10.c:1582
+#: g10/g10.c:1671
msgid ""
"a notation name must have only letters, digits, dots or underscores and end "
"with an '='\n"
@@ -824,85 +868,89 @@ msgstr ""
"des points ou des traits de soulignement et doit se terminer par un signe "
"�gal\n"
-#: g10/g10.c:1588
+#: g10/g10.c:1677
msgid "dots in a notation name must be surrounded by other characters\n"
msgstr ""
"les points dans le nom d'une notation doivent �tre entour�s d'autes "
"caract�res\n"
-#: g10/g10.c:1596
+#: g10/g10.c:1685
msgid "a notation value must not use any control characters\n"
msgstr "une valeur de notation ne doit utiliser aucun caract�re de contr�le\n"
-#: g10/armor.c:296
+#: g10/armor.c:302
#, c-format
msgid "armor: %s\n"
msgstr "armure : %s\n"
-#: g10/armor.c:319
+#: g10/armor.c:331
msgid "invalid armor header: "
msgstr "en-t�te d'armure invalide : "
-#: g10/armor.c:326
+#: g10/armor.c:338
msgid "armor header: "
msgstr "en-t�te d'armure : "
-#: g10/armor.c:337
+#: g10/armor.c:349
msgid "invalid clearsig header\n"
msgstr "en-t�te de signature claire invalide\n"
-#: g10/armor.c:389
+#: g10/armor.c:401
msgid "nested clear text signatures\n"
msgstr "signatures en texte clair imbriqu�es\n"
-#: g10/armor.c:500
+#: g10/armor.c:525
msgid "invalid dash escaped line: "
msgstr "ligne de traits d'�chappement invalide : "
-#: g10/armor.c:512
+#: g10/armor.c:537
msgid "unexpected armor:"
msgstr "armure inattendue :"
-#: g10/armor.c:629
+#: g10/armor.c:654
#, c-format
msgid "invalid radix64 character %02x skipped\n"
msgstr "caract�re %02x invalide en base 64 ignor�\n"
-#: g10/armor.c:672
+#: g10/armor.c:697
msgid "premature eof (no CRC)\n"
msgstr "fin de fichier pr�matur�e (pas de CRC)\n"
-#: g10/armor.c:706
+#: g10/armor.c:731
msgid "premature eof (in CRC)\n"
msgstr "fin de fichier pr�matur�e (dans le CRC)\n"
-#: g10/armor.c:710
+#: g10/armor.c:735
msgid "malformed CRC\n"
msgstr "CRC malform�\n"
-#: g10/armor.c:714
+#: g10/armor.c:739
#, c-format
msgid "CRC error; %06lx - %06lx\n"
msgstr "Erreur de CRC ; %06lx - %06lx\n"
-#: g10/armor.c:731
+#: g10/armor.c:756
msgid "premature eof (in Trailer)\n"
msgstr "fin de fichier pr�matur�e (dans la remorque)\n"
-#: g10/armor.c:735
+#: g10/armor.c:760
msgid "error in trailer line\n"
msgstr "erreur dans la ligne de remorque\n"
-#: g10/armor.c:1001
+#: g10/armor.c:912
+msgid "For info see http://www.gnupg.org"
+msgstr ""
+
+#: g10/armor.c:1033
msgid "no valid OpenPGP data found.\n"
msgstr "aucune donn�e OpenPGP valide n'a �t� trouv�e.\n"
-#: g10/armor.c:1005
+#: g10/armor.c:1038
#, c-format
msgid "invalid armor: line longer than %d characters\n"
msgstr "armure invalide : ligne plus longue que %d caract�res\n"
-#: g10/armor.c:1009
+#: g10/armor.c:1042
msgid ""
"quoted printable character in armor - probably a buggy MTA has been used\n"
msgstr ""
@@ -919,12 +967,42 @@ msgstr " Empreinte : %lu"
msgid "Fingerprint:"
msgstr "Empreinte :"
+#: g10/pkclist.c:116
+msgid "No reason specified"
+msgstr ""
+
+#: g10/pkclist.c:118
+#, fuzzy
+msgid "Key is superseeded"
+msgstr "La cl� est prot�g�e.\n"
+
+#: g10/pkclist.c:120
+#, fuzzy
+msgid "Key has been compromised"
+msgstr "Cette cl� a �t� d�sactiv�e"
+
+#: g10/pkclist.c:122
+msgid "Key is no longer used"
+msgstr ""
+
+#: g10/pkclist.c:124
+msgid "User ID is no longer valid"
+msgstr ""
+
+#: g10/pkclist.c:128
+msgid "Reason for revocation: "
+msgstr ""
+
+#: g10/pkclist.c:145
+msgid "Revocation comment: "
+msgstr ""
+
#. a string with valid answers
-#: g10/pkclist.c:197
+#: g10/pkclist.c:303
msgid "sSmMqQ"
msgstr "sSmMqQ"
-#: g10/pkclist.c:201
+#: g10/pkclist.c:307
#, c-format
msgid ""
"No trust value assigned to %lu:\n"
@@ -933,7 +1011,7 @@ msgstr ""
"Pas de confiance d�finie pour %lu :\n"
"%4u%c/%08lX %s \""
-#: g10/pkclist.c:213
+#: g10/pkclist.c:319
msgid ""
"Please decide how far you trust this user to correctly\n"
"verify other users' keys (by looking at passports,\n"
@@ -957,32 +1035,32 @@ msgstr ""
" 4 = je le crois totalement\n"
" s = montrez-moi plus d'informations\n"
-#: g10/pkclist.c:222
+#: g10/pkclist.c:328
msgid " m = back to the main menu\n"
msgstr " m = retour au menu principal\n"
-#: g10/pkclist.c:224
+#: g10/pkclist.c:330
msgid " q = quit\n"
msgstr " q = quitter\n"
-#: g10/pkclist.c:230
+#: g10/pkclist.c:336
msgid "Your decision? "
msgstr "Votre d�cision ? "
-#: g10/pkclist.c:252
+#: g10/pkclist.c:358
msgid "Certificates leading to an ultimately trusted key:\n"
msgstr "Certificats conduisant vers une cl� � confiance ultime :\n"
-#: g10/pkclist.c:323
+#: g10/pkclist.c:429
msgid ""
"Could not find a valid trust path to the key. Let's see whether we\n"
"can assign some missing owner trust values.\n"
"\n"
msgstr ""
-"N'a pas pu trouver un chemin de confiance valide jusqu'� la cl�. Voyons si\n"
-"nous ne pouvons pas assigner quelques indices de confiance manquants.\n"
+"Impossible de trouver un chemin de confiance valide jusqu'� la cl�. Voyons\n"
+"si nous ne pouvons pas assigner quelques indices de confiance manquants.\n"
-#: g10/pkclist.c:329
+#: g10/pkclist.c:435
msgid ""
"No path leading to one of our keys found.\n"
"\n"
@@ -990,7 +1068,7 @@ msgstr ""
"Aucun chemin menant vers une de nos cl�s n'a �t� trouv�.\n"
"\n"
-#: g10/pkclist.c:331
+#: g10/pkclist.c:437
msgid ""
"No certificates with undefined trust found.\n"
"\n"
@@ -998,7 +1076,7 @@ msgstr ""
"Aucun certificat � confiance ind�finie n'a �t� trouv�.\n"
"\n"
-#: g10/pkclist.c:333
+#: g10/pkclist.c:439
msgid ""
"No trust values changed.\n"
"\n"
@@ -1006,36 +1084,36 @@ msgstr ""
"Pas d'indice de confiance chang�.\n"
"\n"
-#: g10/pkclist.c:350
+#: g10/pkclist.c:457
#, c-format
msgid "key %08lX: key has been revoked!\n"
msgstr "cl� %08lX : la cl� a �t� r�voqu�e !\n"
-#: g10/pkclist.c:356 g10/pkclist.c:366 g10/pkclist.c:475
+#: g10/pkclist.c:464 g10/pkclist.c:476 g10/pkclist.c:598
msgid "Use this key anyway? "
msgstr "Utiliser cette cl� quand-m�me ? "
-#: g10/pkclist.c:360
+#: g10/pkclist.c:469
#, c-format
msgid "key %08lX: subkey has been revoked!\n"
msgstr "cl� %08lX : la sous-cl� a �t� r�voqu�e !\n"
-#: g10/pkclist.c:390
+#: g10/pkclist.c:512
#, c-format
msgid "%08lX: key has expired\n"
msgstr "%08lX : la cl� a expir�\n"
-#: g10/pkclist.c:396
+#: g10/pkclist.c:518
#, c-format
msgid "%08lX: no info to calculate a trust probability\n"
msgstr "%08lX : pas d'information pour calculer une probabilit� de confiance\n"
-#: g10/pkclist.c:410
+#: g10/pkclist.c:533
#, c-format
msgid "%08lX: We do NOT trust this key\n"
msgstr "%08lX : Nous ne faisons PAS confiance � cette cl�\n"
-#: g10/pkclist.c:416
+#: g10/pkclist.c:539
#, c-format
msgid ""
"%08lX: It is not sure that this key really belongs to the owner\n"
@@ -1044,15 +1122,15 @@ msgstr ""
"%08lX : Il n'est pas s�r que cette cl� appartient vraiment � son\n"
"propri�taire mais elle est quand m�me accept�e\n"
-#: g10/pkclist.c:422
+#: g10/pkclist.c:545
msgid "This key probably belongs to the owner\n"
msgstr "Cette cl� appartient probablement � son propri�taire\n"
-#: g10/pkclist.c:427
+#: g10/pkclist.c:550
msgid "This key belongs to us\n"
msgstr "Cette cl� nous appartient\n"
-#: g10/pkclist.c:470
+#: g10/pkclist.c:593
msgid ""
"It is NOT certain that the key belongs to its owner.\n"
"If you *really* know what you are doing, you may answer\n"
@@ -1064,67 +1142,67 @@ msgstr ""
"oui � la prochaine question\n"
"\n"
-#: g10/pkclist.c:484 g10/pkclist.c:507
+#: g10/pkclist.c:607 g10/pkclist.c:630
msgid "WARNING: Using untrusted key!\n"
msgstr "ATTENTION : Utilisation d'une cl� sans confiance !\n"
-#: g10/pkclist.c:528
+#: g10/pkclist.c:651
msgid "WARNING: This key has been revoked by its owner!\n"
msgstr "ATTENTION : Cette cl� � �t� r�voqu�e par son propri�taire !\n"
-#: g10/pkclist.c:529
+#: g10/pkclist.c:652
msgid " This could mean that the signature is forgery.\n"
msgstr " Cela pourrait signifier que la signature est fausse.\n"
-#: g10/pkclist.c:533
+#: g10/pkclist.c:657
msgid "WARNING: This subkey has been revoked by its owner!\n"
msgstr "ATTENTION : Cette sous-cl� � �t� r�voqu�e par son propri�taire !\n"
-#: g10/pkclist.c:554
+#: g10/pkclist.c:679
msgid "Note: This key has expired!\n"
msgstr "Note : Cette cl� a expir� !\n"
-#: g10/pkclist.c:562
+#: g10/pkclist.c:687
msgid "WARNING: This key is not certified with a trusted signature!\n"
msgstr ""
"ATTENTION : Cette cl� n'est pas certifi�e avec une signature de confiance !\n"
-#: g10/pkclist.c:564
+#: g10/pkclist.c:689
msgid ""
" There is no indication that the signature belongs to the owner.\n"
msgstr " Rien ne dit que la signature appartient � son propri�taire.\n"
-#: g10/pkclist.c:581
+#: g10/pkclist.c:706
msgid "WARNING: We do NOT trust this key!\n"
msgstr "ATTENTION : Nous ne faisons PAS confiance � cette cl� !\n"
-#: g10/pkclist.c:582
+#: g10/pkclist.c:707
msgid " The signature is probably a FORGERY.\n"
msgstr " La signature est certainement FAUSSE.\n"
-#: g10/pkclist.c:589
+#: g10/pkclist.c:714
msgid ""
"WARNING: This key is not certified with sufficiently trusted signatures!\n"
msgstr ""
"ATTENTION : Les signatures de cette cl� n'ont pas une confiance suffisante "
"!\n"
-#: g10/pkclist.c:592
+#: g10/pkclist.c:717
msgid " It is not certain that the signature belongs to the owner.\n"
msgstr ""
" Il n'est pas s�r que la signature appartient � son propri�taire.\n"
-#: g10/pkclist.c:694 g10/pkclist.c:716 g10/pkclist.c:841 g10/pkclist.c:886
+#: g10/pkclist.c:819 g10/pkclist.c:841 g10/pkclist.c:967 g10/pkclist.c:1012
#, c-format
msgid "%s: skipped: %s\n"
msgstr "%s : ignor� : %s\n"
-#: g10/pkclist.c:702 g10/pkclist.c:868
+#: g10/pkclist.c:827 g10/pkclist.c:994
#, c-format
msgid "%s: skipped: public key already present\n"
msgstr "%s : ignor� : cl� publique d�j� pr�sente\n"
-#: g10/pkclist.c:729
+#: g10/pkclist.c:854
msgid ""
"You did not specify a user ID. (you may use \"-r\")\n"
"\n"
@@ -1133,97 +1211,102 @@ msgstr ""
"\"-r\")\n"
"\n"
-#: g10/pkclist.c:739
+#: g10/pkclist.c:864
msgid "Enter the user ID: "
msgstr "Entrez le nom d'utilisateur : "
-#: g10/pkclist.c:751
+#: g10/pkclist.c:876
msgid "No such user ID.\n"
msgstr "Pas de tel utilisateur.\n"
-#: g10/pkclist.c:756
+#: g10/pkclist.c:881
msgid "skipped: public key already set as default recipient\n"
msgstr "ignor� : la cl� publique est d�j� le r�cipient par d�faut\n"
-#: g10/pkclist.c:778
+#: g10/pkclist.c:904
msgid "Public key is disabled.\n"
msgstr "La cl� publique est d�sactiv�e.\n"
-#: g10/pkclist.c:785
+#: g10/pkclist.c:911
msgid "skipped: public key already set with --encrypt-to\n"
msgstr "ignor� : cl� publique configur�e par --encrypt-to\n"
-#: g10/pkclist.c:816
+#: g10/pkclist.c:942
#, c-format
msgid "unknown default recipient `%s'\n"
msgstr "r�cipient par d�faut `%s' inconnu\n"
-#: g10/pkclist.c:849
+#: g10/pkclist.c:975
#, c-format
msgid "%s: error checking key: %s\n"
msgstr "%s : erreur pendant la v�rification de la cl� : %s\n"
-#: g10/pkclist.c:854
+#: g10/pkclist.c:980
#, c-format
msgid "%s: skipped: public key is disabled\n"
msgstr "%s : ignor� : la cl� publique est d�sactiv�e\n"
-#: g10/pkclist.c:892
+#: g10/pkclist.c:1018
msgid "no valid addressees\n"
msgstr "pas de destinataire valide\n"
# g10/keygen.c:123 ???
-#: g10/keygen.c:122
+#: g10/keygen.c:175
msgid "writing self signature\n"
msgstr "�criture de l'auto-signature\n"
# g10/keygen.c:161 ???
-#: g10/keygen.c:160
+#: g10/keygen.c:213
msgid "writing key binding signature\n"
msgstr "�criture de la signature de liaison\n"
-#: g10/keygen.c:386
+#: g10/keygen.c:261 g10/keygen.c:345
+#, fuzzy, c-format
+msgid "keysize invalid; using %u bits\n"
+msgstr "La taille demand�e est %u bits\n"
+
+#: g10/keygen.c:266 g10/keygen.c:350
+#, fuzzy, c-format
+msgid "keysize rounded up to %u bits\n"
+msgstr "arrondie � %u bits\n"
+
+#: g10/keygen.c:456
msgid "Please select what kind of key you want:\n"
msgstr "S�lectionnez le type de cl� d�sir� :\n"
-#: g10/keygen.c:388
+#: g10/keygen.c:458
#, c-format
msgid " (%d) DSA and ElGamal (default)\n"
msgstr " (%d) DSA et ElGamal (d�faut)\n"
-#: g10/keygen.c:389
+#: g10/keygen.c:459
#, c-format
msgid " (%d) DSA (sign only)\n"
msgstr " (%d) DSA (signature seule)\n"
-#: g10/keygen.c:391
+#: g10/keygen.c:461
#, c-format
msgid " (%d) ElGamal (encrypt only)\n"
msgstr " (%d) ElGamal (chiffrement seul)\n"
-#: g10/keygen.c:392
+#: g10/keygen.c:462
#, c-format
msgid " (%d) ElGamal (sign and encrypt)\n"
msgstr " (%d) ElGamal (signature et chiffrement)\n"
-#: g10/keygen.c:394
-#, c-format
-msgid " (%d) ElGamal in a v3 packet\n"
-msgstr " (%d) ElGamal dans un paquet v3\n"
-
-#: g10/keygen.c:399
+#: g10/keygen.c:465
msgid "Your selection? "
msgstr "Votre choix ? "
-#: g10/keygen.c:409
+#: g10/keygen.c:475
msgid "Do you really want to create a sign and encrypt key? "
msgstr "Voulez-vous vraiment cr�er une cl� de signature et de chiffrement ? "
-#: g10/keygen.c:430
+#: g10/keygen.c:489
msgid "Invalid selection.\n"
msgstr "Choix invalide.\n"
-#: g10/keygen.c:442
+#: g10/keygen.c:501
#, c-format
msgid ""
"About to generate a new %s keypair.\n"
@@ -1236,15 +1319,15 @@ msgstr ""
" la taille par d�faut est 1024 bits\n"
" la taille maximale conseill�e est 2048 bits\n"
-#: g10/keygen.c:449
+#: g10/keygen.c:508
msgid "What keysize do you want? (1024) "
msgstr "Quelle taille de cl� d�sirez-vous ? (1024) "
-#: g10/keygen.c:454
+#: g10/keygen.c:513
msgid "DSA only allows keysizes from 512 to 1024\n"
msgstr "DSA permet seulement des tailles comprises entre 512 et 1024\n"
-#: g10/keygen.c:456
+#: g10/keygen.c:515
msgid "keysize too small; 768 is smallest value allowed.\n"
msgstr "taille trop petite ; 768 est la plus petite valeur permise.\n"
@@ -1256,12 +1339,12 @@ msgstr "taille trop petite ; 768 est la plus petite valeur permise.\n"
#. * So, before you complain about this limitation, I suggest that
#. * you start a discussion with Marvin about this theme and then
#. * do whatever you want.
-#: g10/keygen.c:466
+#: g10/keygen.c:525
#, c-format
msgid "keysize too large; %d is largest value allowed.\n"
msgstr "taille trop importante ; %d est la plus grande valeur permise.\n"
-#: g10/keygen.c:471
+#: g10/keygen.c:530
msgid ""
"Keysizes larger than 2048 are not suggested because\n"
"computations take REALLY long!\n"
@@ -1269,11 +1352,11 @@ msgstr ""
"Les tailles sup�rieures � 2048 ne sont pas conseill�es car\n"
"les calculs prennent VRAIMENT beaucoup de temps !\n"
-#: g10/keygen.c:474
+#: g10/keygen.c:533
msgid "Are you sure that you want this keysize? "
msgstr "Etes-vous s�r de vouloir cette taille ? "
-#: g10/keygen.c:475
+#: g10/keygen.c:534
msgid ""
"Okay, but keep in mind that your monitor and keyboard radiation is also very "
"vulnerable to attacks!\n"
@@ -1281,21 +1364,21 @@ msgstr ""
"D'accord, mais n'oubliez pas que les radiations de votre �cran et de votre\n"
"clavier sont aussi tr�s vuln�rables aux attaques !\n"
-#: g10/keygen.c:483
+#: g10/keygen.c:542
msgid "Do you really need such a large keysize? "
msgstr "Avez-vous r�ellement besoin d'une taille aussi grande ? "
-#: g10/keygen.c:489
+#: g10/keygen.c:548
#, c-format
msgid "Requested keysize is %u bits\n"
msgstr "La taille demand�e est %u bits\n"
-#: g10/keygen.c:492 g10/keygen.c:496
+#: g10/keygen.c:551 g10/keygen.c:555
#, c-format
msgid "rounded up to %u bits\n"
msgstr "arrondie � %u bits\n"
-#: g10/keygen.c:509
+#: g10/keygen.c:603
msgid ""
"Please specify how long the key should be valid.\n"
" 0 = key does not expire\n"
@@ -1311,29 +1394,37 @@ msgstr ""
" <n>m = la cl� expire dans n mois\n"
" <n>y = la cl� expire dans n ans\n"
-#: g10/keygen.c:526
+#: g10/keygen.c:618
msgid "Key is valid for? (0) "
msgstr "La cl� est valide pour ? (0) "
-#: g10/keygen.c:547
+#: g10/keygen.c:623
msgid "invalid value\n"
msgstr "valeur invalide\n"
-#: g10/keygen.c:552
+#: g10/keygen.c:628
msgid "Key does not expire at all\n"
msgstr "La cl� n'expire pas du tout\n"
#. print the date when the key expires
-#: g10/keygen.c:558
+#: g10/keygen.c:634
#, c-format
msgid "Key expires at %s\n"
msgstr "La cl� expire le %s\n"
-#: g10/keygen.c:563
+#: g10/keygen.c:637
+msgid ""
+"Your system can't display dates beyond 2038.\n"
+"However, it will be correctly handled up to 2106.\n"
+msgstr ""
+"Votre syst�me ne sait pas afficher les dates au-del� de 2038.\n"
+"Cependant la gestion des dates sera correcte jusqu'� 2106.\n"
+
+#: g10/keygen.c:642
msgid "Is this correct (y/n)? "
msgstr "Est-ce correct (o/n) ? "
-#: g10/keygen.c:606
+#: g10/keygen.c:685
msgid ""
"\n"
"You need a User-ID to identify your key; the software constructs the user "
@@ -1349,44 +1440,44 @@ msgstr ""
" � Heinrich Heine (Der Dichter) <[email protected]> �\n"
"\n"
-#: g10/keygen.c:617
+#: g10/keygen.c:697
msgid "Real name: "
msgstr "Nom r�el : "
-#: g10/keygen.c:621
+#: g10/keygen.c:701
msgid "Invalid character in name\n"
msgstr "Caract�re invalide dans le nom\n"
-#: g10/keygen.c:623
+#: g10/keygen.c:703
msgid "Name may not start with a digit\n"
msgstr "Le nom ne doit pas commencer par un chiffre\n"
-#: g10/keygen.c:625
+#: g10/keygen.c:705
msgid "Name must be at least 5 characters long\n"
msgstr "Le nom doit faire au moins 5 caract�res de long\n"
-#: g10/keygen.c:633
+#: g10/keygen.c:713
msgid "Email address: "
msgstr "Adresse e-mail : "
-#: g10/keygen.c:644
+#: g10/keygen.c:724
msgid "Not a valid email address\n"
msgstr "Ce n'est pas une adresse e-mail valide\n"
-#: g10/keygen.c:652
+#: g10/keygen.c:732
msgid "Comment: "
msgstr "Commentaire : "
-#: g10/keygen.c:658
+#: g10/keygen.c:738
msgid "Invalid character in comment\n"
msgstr "Caract�re invalide dans le commentaire\n"
-#: g10/keygen.c:680
+#: g10/keygen.c:761
#, c-format
msgid "You are using the `%s' character set.\n"
msgstr "Vous utilisez le jeu de caract�res '%s'.\n"
-#: g10/keygen.c:686
+#: g10/keygen.c:767
#, c-format
msgid ""
"You selected this USER-ID:\n"
@@ -1397,15 +1488,28 @@ msgstr ""
" \"%s\"\n"
"\n"
-#: g10/keygen.c:689
+#: g10/keygen.c:771
+msgid "Please don't put the email address into the real name or the comment\n"
+msgstr ""
+
+#: g10/keygen.c:776
msgid "NnCcEeOoQq"
msgstr "NnCcEeOoQq"
-#: g10/keygen.c:699
+#: g10/keygen.c:786
+#, fuzzy
+msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
+msgstr "Changer le (N)om, le (C)ommentaire, l'(E)-mail ou (O)K/(Q)uitter? "
+
+#: g10/keygen.c:787
msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
msgstr "Changer le (N)om, le (C)ommentaire, l'(E)-mail ou (O)K/(Q)uitter? "
-#: g10/keygen.c:751
+#: g10/keygen.c:806
+msgid "Please correct the error first\n"
+msgstr ""
+
+#: g10/keygen.c:844
msgid ""
"You need a Passphrase to protect your secret key.\n"
"\n"
@@ -1413,11 +1517,11 @@ msgstr ""
"Vous avez besoin d'un mot de passe pour prot�ger votre cl� secr�te.\n"
"\n"
-#: g10/keyedit.c:456 g10/keygen.c:759
+#: g10/keyedit.c:468 g10/keygen.c:852
msgid "passphrase not correctly repeated; try again.\n"
msgstr "le mot de passe n'a pas �t� r�p�t� � l'identique ; recommencez.\n"
-#: g10/keygen.c:765
+#: g10/keygen.c:858
msgid ""
"You don't want a passphrase - this is probably a *bad* idea!\n"
"I will do it anyway. You can change your passphrase at any time,\n"
@@ -1429,7 +1533,7 @@ msgstr ""
"le d�sirez, en utilisant ce programme avec l'option � --edit-key �.\n"
"\n"
-#: g10/keygen.c:786
+#: g10/keygen.c:879
msgid ""
"We need to generate a lot of random bytes. It is a good idea to perform\n"
"some other action (type on the keyboard, move the mouse, utilize the\n"
@@ -1441,33 +1545,29 @@ msgstr ""
"pendant la g�n�ration de nombres premiers ; cela donne au g�n�rateur de\n"
"nombres al�atoires une meilleure chance d'avoir assez d'entropie.\n"
-#: g10/keygen.c:856
-msgid "Key generation can only be used in interactive mode\n"
-msgstr "La g�n�ration de cl� ne peut �tre faite qu'en mode interactif\n"
-
-#: g10/keygen.c:864
+#: g10/keygen.c:1325
msgid "DSA keypair will have 1024 bits.\n"
msgstr "La paire de cl�s DSA fera 1024 bits.\n"
-#: g10/keygen.c:870
+#: g10/keygen.c:1368
msgid "Key generation canceled.\n"
msgstr "La g�n�ration de cl� a �t� annul�e.\n"
-#: g10/keygen.c:880
-#, c-format
-msgid "writing public certificate to `%s'\n"
+#: g10/keygen.c:1465
+#, fuzzy, c-format
+msgid "writing public key to `%s'\n"
msgstr "�criture d'un certificat public � `%s'\n"
-#: g10/keygen.c:881
-#, c-format
-msgid "writing secret certificate to `%s'\n"
+#: g10/keygen.c:1466
+#, fuzzy, c-format
+msgid "writing secret key to `%s'\n"
msgstr "�criture d'un certificat secret � `%s'\n"
-#: g10/keygen.c:958
+#: g10/keygen.c:1562
msgid "public and secret key created and signed.\n"
msgstr "les cl�s publique et secr�te ont �t� cr��es et sign�es.\n"
-#: g10/keygen.c:960
+#: g10/keygen.c:1567
msgid ""
"Note that this key cannot be used for encryption. You may want to use\n"
"the command \"--edit-key\" to generate a secondary key for this purpose.\n"
@@ -1476,13 +1576,13 @@ msgstr ""
"utiliser la commande � --edit-key � pour g�n�rer une cl� secondaire �\n"
"cette fin.\n"
-#: g10/keygen.c:974 g10/keygen.c:1073
+#: g10/keygen.c:1584 g10/keygen.c:1685
#, c-format
msgid "Key generation failed: %s\n"
msgstr "La g�n�ration de cl� a �chou� : %s\n"
# on s'amuse comme on peut...
-#: g10/keygen.c:1018 g10/sig-check.c:312 g10/sign.c:105
+#: g10/keygen.c:1628 g10/sig-check.c:318 g10/sign.c:111
#, c-format
msgid ""
"key has been created %lu second in future (time warp or clock problem)\n"
@@ -1490,7 +1590,7 @@ msgstr ""
"la cl� a �t� cr��e %lu seconde dans le futur (discontinuit� temporelle ou\n"
"probl�me d'horloge)\n"
-#: g10/keygen.c:1020 g10/sig-check.c:314 g10/sign.c:107
+#: g10/keygen.c:1630 g10/sig-check.c:320 g10/sign.c:113
#, c-format
msgid ""
"key has been created %lu seconds in future (time warp or clock problem)\n"
@@ -1498,319 +1598,324 @@ msgstr ""
"la cl� a �t� cr��e %lu secondes dans le futur (discontinuit� temporelle ou\n"
"probl�me d'horloge\n"
-#: g10/keygen.c:1051
+#: g10/keygen.c:1663
msgid "Really create? "
msgstr "Cr�er vraiment ? "
-#: g10/encode.c:91 g10/openfile.c:156 g10/openfile.c:246 g10/tdbio.c:468
-#: g10/tdbio.c:529
+#: g10/encode.c:91 g10/openfile.c:168 g10/openfile.c:277 g10/tdbio.c:454
+#: g10/tdbio.c:515
#, c-format
msgid "%s: can't open: %s\n"
-msgstr "%s : ne peut ouvrir : %s\n"
+msgstr "%s : impossible d'ouvrir : %s\n"
#: g10/encode.c:113
#, c-format
msgid "error creating passphrase: %s\n"
msgstr "erreur pendant la cr�ation du mot de passe : %s\n"
-#: g10/encode.c:171 g10/encode.c:318
+#: g10/encode.c:171 g10/encode.c:319
#, c-format
msgid "%s: WARNING: empty file\n"
msgstr "%s : ATTENTION : fichier vide\n"
-#: g10/encode.c:265
+#: g10/encode.c:266
#, c-format
msgid "reading from `%s'\n"
msgstr "lecture de `%s'\n"
-#: g10/encode.c:482
+#: g10/encode.c:483
#, c-format
msgid "%s/%s encrypted for: %s\n"
msgstr "%s/%s chiffr� pour : %s\n"
-#: g10/export.c:147
+#: g10/export.c:153
#, c-format
msgid "%s: user not found: %s\n"
msgstr "%s : utilisateur non trouv� : %s\n"
-#: g10/export.c:156
+#: g10/export.c:162
#, c-format
msgid "certificate read problem: %s\n"
msgstr "probl�me lors de lecture du certificat : %s\n"
-#: g10/export.c:165
+#: g10/export.c:171
#, c-format
msgid "key %08lX: not a rfc2440 key - skipped\n"
msgstr "cl� %08lX : ce n'est pas une cl� rfc2440 - ignor�e\n"
-#: g10/export.c:203
+#: g10/export.c:182
+#, fuzzy, c-format
+msgid "key %08lX: not protected - skipped\n"
+msgstr "cl� %08lX : ce n'est pas une cl� rfc2440 - ignor�e\n"
+
+#: g10/export.c:232
msgid "WARNING: nothing exported\n"
msgstr "ATTENTION : rien n'a �t� export�\n"
-#: g10/getkey.c:206
+#: g10/getkey.c:211
msgid "too many entries in pk cache - disabled\n"
msgstr "trop d'entr�es dans le cache pk - d�sactiv�\n"
-#: g10/getkey.c:345
+#: g10/getkey.c:350
msgid "too many entries in unk cache - disabled\n"
msgstr "trop d'entr�es dans le cache unk - d�sactiv�\n"
-#: g10/getkey.c:1289 g10/getkey.c:1328
+#: g10/getkey.c:1308 g10/getkey.c:1347
msgid "RSA key cannot be used in this version\n"
msgstr "les cl�s RSA ne peuvent �tre utilis�es dans cette version\n"
-#: g10/getkey.c:1291 g10/getkey.c:1330
+#: g10/getkey.c:1310 g10/getkey.c:1349
msgid "No key for user ID\n"
msgstr "Pas de cl� pour l'utilisateur\n"
-#: g10/getkey.c:1369 g10/getkey.c:1409
+#: g10/getkey.c:1388 g10/getkey.c:1428
msgid "No user ID for key\n"
msgstr "Pas d'utilisateur pour la cl�\n"
-#: g10/getkey.c:1565 g10/getkey.c:1621
+#: g10/getkey.c:1642 g10/getkey.c:1698
#, c-format
msgid "using secondary key %08lX instead of primary key %08lX\n"
msgstr ""
"utilisation de la cl� secondaire %08lX � la place de la cl�\n"
"principale %08lX\n"
-#: g10/import.c:118
-#, c-format
-msgid "can't open `%s': %s\n"
-msgstr "impossible d'ouvrir `%s': %s\n"
+#: g10/getkey.c:2017
+#, fuzzy
+msgid "[User id not found]"
+msgstr "%s : utilisateur non trouv�\n"
-#: g10/import.c:162
+#: g10/import.c:181
#, c-format
msgid "skipping block of type %d\n"
msgstr "ne prend pas en compte le bloc de type %d\n"
-#: g10/import.c:169 g10/trustdb.c:1658 g10/trustdb.c:1697
+#: g10/import.c:188 g10/trustdb.c:1740 g10/trustdb.c:1781
#, c-format
msgid "%lu keys so far processed\n"
msgstr "%lu cl�s trait�es jusqu'ici\n"
-#: g10/import.c:174
+#: g10/import.c:193
#, c-format
msgid "error reading `%s': %s\n"
msgstr "erreur pendant la lecture de `%s' : %s\n"
-#: g10/import.c:177
+#: g10/import.c:203
#, c-format
msgid "Total number processed: %lu\n"
msgstr " Quantit� totale trait�e : %lu\n"
-#: g10/import.c:179
+#: g10/import.c:205
#, c-format
msgid " w/o user IDs: %lu\n"
msgstr " sans nom d'utilisateur : %lu\n"
-#: g10/import.c:181
+#: g10/import.c:207
#, c-format
msgid " imported: %lu"
msgstr " import�e : %lu"
-#: g10/import.c:187
+#: g10/import.c:213
#, c-format
msgid " unchanged: %lu\n"
msgstr " inchang�e : %lu\n"
-#: g10/import.c:189
+#: g10/import.c:215
#, c-format
msgid " new user IDs: %lu\n"
msgstr " nouveaux noms d'utilisateurs : %lu\n"
-#: g10/import.c:191
+#: g10/import.c:217
#, c-format
msgid " new subkeys: %lu\n"
msgstr " nouvelles sous-cl�s : %lu\n"
-#: g10/import.c:193
+#: g10/import.c:219
#, c-format
msgid " new signatures: %lu\n"
msgstr " nouvelles signatures : %lu\n"
-#: g10/import.c:195
+#: g10/import.c:221
#, c-format
msgid " new key revocations: %lu\n"
msgstr " nouvelles r�vocations de cl�s : %lu\n"
-#: g10/import.c:197
+#: g10/import.c:223
#, c-format
msgid " secret keys read: %lu\n"
msgstr " cl�s secr�tes lues : %lu\n"
-#: g10/import.c:199
+#: g10/import.c:225
#, c-format
msgid " secret keys imported: %lu\n"
msgstr " cl�s secr�tes import�es : %lu\n"
-#: g10/import.c:201
+#: g10/import.c:227
#, c-format
msgid " secret keys unchanged: %lu\n"
msgstr " cl�s secr�tes inchang�es : %lu\n"
-#: g10/import.c:362 g10/import.c:554
+#: g10/import.c:386 g10/import.c:578
#, c-format
msgid "key %08lX: no user ID\n"
msgstr "cl� %08lX : pas de nom d'utilisateur\n"
-#: g10/import.c:376
+#: g10/import.c:400
#, c-format
msgid "key %08lX: no valid user IDs\n"
msgstr "cl� %08lX : pas de nom d'utilisateur valide\n"
-#: g10/import.c:378
+#: g10/import.c:402
msgid "this may be caused by a missing self-signature\n"
msgstr "cela peut provenir d'une auto-signature manquante\n"
-#: g10/import.c:389 g10/import.c:621
+#: g10/import.c:413 g10/import.c:645
#, c-format
msgid "key %08lX: public key not found: %s\n"
msgstr "cl� %08lX : cl� publique pas trouv�e: %s\n"
-#: g10/import.c:395
+#: g10/import.c:419
msgid "no default public keyring\n"
msgstr "pas de porte-cl�s public par d�faut\n"
-#: g10/import.c:399 g10/openfile.c:186 g10/sign.c:268 g10/sign.c:580
+#: g10/import.c:423 g10/openfile.c:220 g10/sign.c:275 g10/sign.c:587
#, c-format
msgid "writing to `%s'\n"
msgstr "�criture de `%s'\n"
-#: g10/import.c:402 g10/import.c:460 g10/import.c:569 g10/import.c:670
+#: g10/import.c:426 g10/import.c:484 g10/import.c:593 g10/import.c:694
#, c-format
msgid "can't lock keyring `%s': %s\n"
-msgstr "ne peut verrouiller le porte-cl�s `%s' : %s\n"
+msgstr "impossible de verrouiller le porte-cl�s `%s' : %s\n"
-#: g10/import.c:405 g10/import.c:463 g10/import.c:572 g10/import.c:673
+#: g10/import.c:429 g10/import.c:487 g10/import.c:596 g10/import.c:697
#, c-format
msgid "error writing keyring `%s': %s\n"
msgstr "erreur durant l'�criture du porte-cl�s `%s' : %s\n"
-#: g10/import.c:410
+#: g10/import.c:434
#, c-format
msgid "key %08lX: public key imported\n"
msgstr "cl� %08lX : cl� publique import�e\n"
-#: g10/import.c:427
+#: g10/import.c:451
#, c-format
msgid "key %08lX: doesn't match our copy\n"
msgstr "cl� %08lX : ne ressemble pas � notre copie\n"
-#: g10/import.c:436 g10/import.c:629
+#: g10/import.c:460 g10/import.c:653
#, c-format
msgid "key %08lX: can't locate original keyblock: %s\n"
-msgstr "cl� %08lX : ne peut trouver le bloc de cl�s original : %s\n"
+msgstr "cl� %08lX : impossible de trouver le bloc de cl�s original : %s\n"
-#: g10/import.c:442 g10/import.c:635
+#: g10/import.c:466 g10/import.c:659
#, c-format
msgid "key %08lX: can't read original keyblock: %s\n"
-msgstr "cl� %08lX : ne peut lire le bloc de cl�s original : %s\n"
+msgstr "cl� %08lX : impossible de lire le bloc de cl�s original : %s\n"
-#: g10/import.c:469
+#: g10/import.c:493
#, c-format
msgid "key %08lX: 1 new user ID\n"
msgstr "cl� %08lX : un nouvel utilisateur\n"
-#: g10/import.c:472
+#: g10/import.c:496
#, c-format
msgid "key %08lX: %d new user IDs\n"
msgstr "cl� %08lX : %d nouveaux utilisateurs\n"
-#: g10/import.c:475
+#: g10/import.c:499
#, c-format
msgid "key %08lX: 1 new signature\n"
msgstr "cl� %08lX : une nouvelle signature\n"
-#: g10/import.c:478
+#: g10/import.c:502
#, c-format
msgid "key %08lX: %d new signatures\n"
msgstr "cl� %08lX : %d nouvelles signatures\n"
-#: g10/import.c:481
+#: g10/import.c:505
#, c-format
msgid "key %08lX: 1 new subkey\n"
msgstr "cl� %08lX : une nouvelle sous-cl�\n"
-#: g10/import.c:484
+#: g10/import.c:508
#, c-format
msgid "key %08lX: %d new subkeys\n"
msgstr "cl� %08lX : %d nouvelles sous-cl�s\n"
-#: g10/import.c:494
+#: g10/import.c:518
#, c-format
msgid "key %08lX: not changed\n"
msgstr "cl� %08lX : n'a pas chang�\n"
-#: g10/import.c:577
+#: g10/import.c:601
#, c-format
msgid "key %08lX: secret key imported\n"
msgstr "cl� %08lX : cl� secr�te import�e\n"
#. we can't merge secret keys
-#: g10/import.c:581
+#: g10/import.c:605
#, c-format
msgid "key %08lX: already in secret keyring\n"
msgstr "cl� %08lX : d�j� dans le porte-cl�s secret\n"
-#: g10/import.c:586
+#: g10/import.c:610
#, c-format
msgid "key %08lX: secret key not found: %s\n"
msgstr "cl� %08lX : cl� secr�te pas trouv�e: %s\n"
-#: g10/import.c:615
+#: g10/import.c:639
#, c-format
msgid "key %08lX: no public key - can't apply revocation certificate\n"
msgstr ""
-"cl� %08lX : pas de cl� publique - ne peut appliquer le certificat de\n"
-"r�vocation\n"
+"cl� %08lX : pas de cl� publique - le certificat de r�vocation ne peut\n"
+"�tre appliqu�\n"
-#: g10/import.c:646
+#: g10/import.c:670
#, c-format
msgid "key %08lX: invalid revocation certificate: %s - rejected\n"
msgstr "cl� %08lX : certificat de r�vocation invalide : %s - rejet�\n"
-#: g10/import.c:678
+#: g10/import.c:702
#, c-format
msgid "key %08lX: revocation certificate imported\n"
msgstr "cl� %08lX : certificat de r�vocation import�\n"
-#: g10/import.c:711
+#: g10/import.c:744
#, c-format
msgid "key %08lX: no user ID for signature\n"
msgstr "cl� %08lX : pas d'utilisateur pour la signature\n"
-#: g10/import.c:718 g10/import.c:742
+#: g10/import.c:751 g10/import.c:775
#, c-format
msgid "key %08lX: unsupported public key algorithm\n"
msgstr "cl� %08lX : algorithme de cl� publique non support�\n"
-#: g10/import.c:719
+#: g10/import.c:752
#, c-format
msgid "key %08lX: invalid self-signature\n"
msgstr "cl� %08lX : auto-signature invalide\n"
-#: g10/import.c:734
+#: g10/import.c:767
#, c-format
msgid "key %08lX: no subkey for key binding\n"
msgstr "cl� %08lX : pas de sous-cl� pour relier la cl�\n"
-#: g10/import.c:743
+#: g10/import.c:776
#, c-format
msgid "key %08lX: invalid subkey binding\n"
msgstr "cl� %08lX : liaison avec la sous-cl� invalide\n"
-#: g10/import.c:769
+#: g10/import.c:803
#, c-format
msgid "key %08lX: accepted non self-signed user ID '"
msgstr "cl� %08lX : utilisateur non sign� par lui-m�me accept� : '"
-#: g10/import.c:798
+#: g10/import.c:832
#, c-format
msgid "key %08lX: skipped user ID '"
msgstr "cl� %08lX : utilisateur non pris en compte : '"
-#: g10/import.c:821
+#: g10/import.c:855
#, c-format
msgid "key %08lX: skipped subkey\n"
msgstr "cl� %08lX : sous-cl� non prise en compte\n"
@@ -1819,98 +1924,98 @@ msgstr "cl� %08lX : sous-cl� non prise en compte\n"
#. * to import non-exportable signature when we have the
#. * the secret key used to create this signature - it
#. * seems that this makes sense
-#: g10/import.c:846
+#: g10/import.c:880
#, c-format
msgid "key %08lX: non exportable signature (class %02x) - skipped\n"
msgstr "cl� %08lX : signature non exportable (classe %02x) - ignor�e\n"
-#: g10/import.c:855
+#: g10/import.c:889
#, c-format
msgid "key %08lX: revocation certificate at wrong place - skipped\n"
msgstr "cl� %08lX : certificat de r�vocation au mauvais endroit - ignor�e\n"
-#: g10/import.c:863
+#: g10/import.c:897
#, c-format
msgid "key %08lX: invalid revocation certificate: %s - skipped\n"
msgstr "cl� %08lX : certificat de r�vocation invalide : %s - ignor�e\n"
-#: g10/import.c:963
+#: g10/import.c:997
#, c-format
msgid "key %08lX: duplicated user ID detected - merged\n"
msgstr "cl� %08lX: nom d'utilisateur doublon fusionn�\n"
-#: g10/import.c:1014
+#: g10/import.c:1048
#, c-format
msgid "key %08lX: revocation certificate added\n"
msgstr "cl� %08lX : certificat de r�vocation ajout�\n"
-#: g10/import.c:1128 g10/import.c:1183
+#: g10/import.c:1162 g10/import.c:1215
#, c-format
msgid "key %08lX: our copy has no self-signature\n"
msgstr "cl� %08lX : notre copie n'a pas d'auto-signature\n"
-#: g10/delkey.c:64 g10/keyedit.c:93
+#: g10/delkey.c:64 g10/keyedit.c:94
#, c-format
msgid "%s: user not found\n"
msgstr "%s : utilisateur non trouv�\n"
-#: g10/keyedit.c:154
+#: g10/keyedit.c:155
msgid "[revocation]"
msgstr "[r�vocation]"
-#: g10/keyedit.c:155
+#: g10/keyedit.c:156
msgid "[self-signature]"
msgstr "[auto-signature]"
-#: g10/keyedit.c:219
+#: g10/keyedit.c:220
msgid "1 bad signature\n"
msgstr "une mauvaise signature\n"
-#: g10/keyedit.c:221
+#: g10/keyedit.c:222
#, c-format
msgid "%d bad signatures\n"
msgstr "%d mauvaises signatures\n"
-#: g10/keyedit.c:223
+#: g10/keyedit.c:224
msgid "1 signature not checked due to a missing key\n"
msgstr "une signature non v�rifi�e � cause d'une cl� manquante\n"
-#: g10/keyedit.c:225
+#: g10/keyedit.c:226
#, c-format
msgid "%d signatures not checked due to missing keys\n"
msgstr "%d signatures non v�rifi�es � cause de cl�s manquantes\n"
-#: g10/keyedit.c:227
+#: g10/keyedit.c:228
msgid "1 signature not checked due to an error\n"
msgstr "une signature non v�rifi�e � cause d'une erreur\n"
-#: g10/keyedit.c:229
+#: g10/keyedit.c:230
#, c-format
msgid "%d signatures not checked due to errors\n"
msgstr "%d signatures non v�rifi�es � cause d'erreurs\n"
-#: g10/keyedit.c:231
+#: g10/keyedit.c:232
msgid "1 user ID without valid self-signature detected\n"
msgstr "un nom d'utilisateur sans auto-signature valide d�tect�\n"
-#: g10/keyedit.c:233
+#: g10/keyedit.c:234
#, c-format
msgid "%d user IDs without valid self-signatures detected\n"
msgstr "%d nom d'utilisateurs sans auto-signature valide d�tect�\n"
#. Fixme: see whether there is a revocation in which
#. * case we should allow to sign it again.
-#: g10/keyedit.c:313
+#: g10/keyedit.c:316
#, c-format
msgid "Already signed by key %08lX\n"
msgstr "D�j� sign� par la cl� %08lX\n"
-#: g10/keyedit.c:321
+#: g10/keyedit.c:324
#, c-format
msgid "Nothing to sign with key %08lX\n"
msgstr "Rien � signer avec la cl� %08lX\n"
-#: g10/keyedit.c:330
+#: g10/keyedit.c:333
msgid ""
"Are you really sure that you want to sign this key\n"
"with your key: \""
@@ -1918,7 +2023,7 @@ msgstr ""
"Etes-vous vraiment s�r(e) que vous voulez signer cette cl�\n"
"avec la v�tre : \""
-#: g10/keyedit.c:339
+#: g10/keyedit.c:342
msgid ""
"The signature will be marked as non-exportable.\n"
"\n"
@@ -1926,35 +2031,40 @@ msgstr ""
"La signature sera marqu�e comme non-exportable.\n"
"\n"
-#: g10/keyedit.c:344
+#: g10/keyedit.c:347
msgid "Really sign? "
msgstr "Signer r�ellement ? "
-#: g10/keyedit.c:370 g10/keyedit.c:1832 g10/keyedit.c:1881 g10/sign.c:128
+#: g10/keyedit.c:373 g10/keyedit.c:1869 g10/keyedit.c:1931 g10/sign.c:135
#, c-format
msgid "signing failed: %s\n"
msgstr "la signature a �chou� : %s\n"
-#: g10/keyedit.c:423
+#: g10/keyedit.c:427
msgid "This key is not protected.\n"
msgstr "Cette cl� n'est pas prot�g�e.\n"
-#: g10/keyedit.c:426
+#: g10/keyedit.c:431
+#, fuzzy
+msgid "Secret parts of primary key are not available.\n"
+msgstr "la cl� secr�te n'est pas disponible"
+
+#: g10/keyedit.c:435
msgid "Key is protected.\n"
msgstr "La cl� est prot�g�e.\n"
-#: g10/keyedit.c:443
+#: g10/keyedit.c:455
#, c-format
msgid "Can't edit this key: %s\n"
-msgstr "Ne peut �diter cette cl� : %s\n"
+msgstr "Impossible d'�diter cette cl� : %s\n"
-#: g10/keyedit.c:448
+#: g10/keyedit.c:460
msgid ""
"Enter the new passphrase for this secret key.\n"
"\n"
msgstr "Entrez le nouveau mot de passe pour cette cl� secr�te.\n"
-#: g10/keyedit.c:460
+#: g10/keyedit.c:472
msgid ""
"You don't want a passphrase - this is probably a *bad* idea!\n"
"\n"
@@ -1963,395 +2073,398 @@ msgstr ""
"*mauvaise* id�e\n"
"\n"
-#: g10/keyedit.c:463
+#: g10/keyedit.c:475
msgid "Do you really want to do this? "
msgstr "Voulez-vous vraiment faire cela? "
-#: g10/keyedit.c:524
+#: g10/keyedit.c:539
msgid "moving a key signature to the correct place\n"
msgstr "replacer la signature d'une cl� � l'endroit correct\n"
-#: g10/keyedit.c:564
+#: g10/keyedit.c:580
msgid "quit this menu"
msgstr "quitter ce menu"
-#: g10/keyedit.c:565
+#: g10/keyedit.c:581
msgid "q"
msgstr "q"
-#: g10/keyedit.c:566
+#: g10/keyedit.c:582
msgid "save"
msgstr "enregistrer"
-#: g10/keyedit.c:566
+#: g10/keyedit.c:582
msgid "save and quit"
msgstr "enregistrer et quitter"
# FIXMOI : si je mets aide �a va demander de taper "aide"...
-#: g10/keyedit.c:567
+#: g10/keyedit.c:583
msgid "help"
msgstr "help"
-#: g10/keyedit.c:567
+#: g10/keyedit.c:583
msgid "show this help"
msgstr "afficher cette aide"
# g10/keyedit.c:556 ???
-#: g10/keyedit.c:569
+#: g10/keyedit.c:585
msgid "fpr"
msgstr "fpr"
-#: g10/keyedit.c:569
+#: g10/keyedit.c:585
msgid "show fingerprint"
msgstr "afficher l'empreinte"
-#: g10/keyedit.c:570
+#: g10/keyedit.c:586
msgid "list"
msgstr "lister"
-#: g10/keyedit.c:570
+#: g10/keyedit.c:586
msgid "list key and user IDs"
msgstr "lister la cl� et les noms d'utilisateurs"
-#: g10/keyedit.c:571
+#: g10/keyedit.c:587
msgid "l"
msgstr "l"
-#: g10/keyedit.c:572
+#: g10/keyedit.c:588
msgid "uid"
msgstr "uid"
-#: g10/keyedit.c:572
+#: g10/keyedit.c:588
msgid "select user ID N"
msgstr "s�lectionner le nom d'utilisateur N"
-#: g10/keyedit.c:573
+#: g10/keyedit.c:589
msgid "key"
msgstr "cl�"
-#: g10/keyedit.c:573
+#: g10/keyedit.c:589
msgid "select secondary key N"
msgstr "s�lectionner la cl� secondaire N"
-#: g10/keyedit.c:574
+#: g10/keyedit.c:590
msgid "check"
msgstr "v�rifier"
-#: g10/keyedit.c:574
+#: g10/keyedit.c:590
msgid "list signatures"
msgstr "lister les signatures"
-#: g10/keyedit.c:575
+#: g10/keyedit.c:591
msgid "c"
msgstr "c"
-#: g10/keyedit.c:576
+#: g10/keyedit.c:592
msgid "sign"
msgstr "signer"
-#: g10/keyedit.c:576
+#: g10/keyedit.c:592
msgid "sign the key"
msgstr "signer la cl�"
-#: g10/keyedit.c:577
+#: g10/keyedit.c:593
msgid "s"
msgstr "s"
-#: g10/keyedit.c:578
+#: g10/keyedit.c:594
msgid "lsign"
msgstr "lsigner"
-#: g10/keyedit.c:578
+#: g10/keyedit.c:594
msgid "sign the key locally"
msgstr "signer la cl� localement"
-#: g10/keyedit.c:579
+#: g10/keyedit.c:595
msgid "debug"
msgstr "d�boguer"
-#: g10/keyedit.c:580
+#: g10/keyedit.c:596
msgid "adduid"
msgstr "aj.ut"
-#: g10/keyedit.c:580
+#: g10/keyedit.c:596
msgid "add a user ID"
msgstr "ajouter un utilisateur"
-#: g10/keyedit.c:581
+#: g10/keyedit.c:597
msgid "deluid"
msgstr "suppr.ut"
-#: g10/keyedit.c:581
+#: g10/keyedit.c:597
msgid "delete user ID"
msgstr "enlever un utilisateur"
-#: g10/keyedit.c:582
+#: g10/keyedit.c:598
msgid "addkey"
msgstr "aj.cl�"
-#: g10/keyedit.c:582
+#: g10/keyedit.c:598
msgid "add a secondary key"
msgstr "ajouter une cl� secondaire"
-#: g10/keyedit.c:583
+#: g10/keyedit.c:599
msgid "delkey"
msgstr "suppr.cl�"
-#: g10/keyedit.c:583
+#: g10/keyedit.c:599
msgid "delete a secondary key"
msgstr "enlever une cl� secondaire"
-#: g10/keyedit.c:584
+#: g10/keyedit.c:600
msgid "delsig"
msgstr "suppr.sign"
-#: g10/keyedit.c:584
+#: g10/keyedit.c:600
msgid "delete signatures"
msgstr "supprimer les signatures"
-#: g10/keyedit.c:585
+#: g10/keyedit.c:601
msgid "expire"
msgstr "expire"
-#: g10/keyedit.c:585
+#: g10/keyedit.c:601
msgid "change the expire date"
msgstr "changer la date d'expiration"
-#: g10/keyedit.c:586
+#: g10/keyedit.c:602
msgid "toggle"
msgstr "changer"
-#: g10/keyedit.c:586
+#: g10/keyedit.c:602
msgid "toggle between secret and public key listing"
msgstr "passer de la liste des cl�s secr�tes aux cl�s priv�es et inversement"
-#: g10/keyedit.c:588
+#: g10/keyedit.c:604
msgid "t"
msgstr "t"
-#: g10/keyedit.c:589
+#: g10/keyedit.c:605
msgid "pref"
msgstr "pr�f"
-#: g10/keyedit.c:589
+#: g10/keyedit.c:605
msgid "list preferences"
msgstr "lister les pr�f�rences"
-#: g10/keyedit.c:590
+#: g10/keyedit.c:606
msgid "passwd"
msgstr "mot.pas"
-#: g10/keyedit.c:590
+#: g10/keyedit.c:606
msgid "change the passphrase"
msgstr "changer le mot de passe"
-#: g10/keyedit.c:591
+#: g10/keyedit.c:607
msgid "trust"
msgstr "confi."
-#: g10/keyedit.c:591
+#: g10/keyedit.c:607
msgid "change the ownertrust"
msgstr "changer la confiance"
-#: g10/keyedit.c:592
+#: g10/keyedit.c:608
msgid "revsig"
msgstr "revsig"
-#
-#: g10/keyedit.c:592
+#: g10/keyedit.c:608
msgid "revoke signatures"
msgstr "r�voquer les signatures"
-#: g10/keyedit.c:593
+#: g10/keyedit.c:609
msgid "revkey"
msgstr "revcl�"
-#: g10/keyedit.c:593
+#: g10/keyedit.c:609
msgid "revoke a secondary key"
msgstr "r�voquer une cl� secondaire"
-#: g10/keyedit.c:594
+#: g10/keyedit.c:610
msgid "disable"
msgstr "d�sactiver"
-#: g10/keyedit.c:594
+#: g10/keyedit.c:610
msgid "disable a key"
msgstr "d�sactiver une cl�"
-#: g10/keyedit.c:595
+#: g10/keyedit.c:611
msgid "enable"
msgstr "activer"
-#: g10/keyedit.c:595
+#: g10/keyedit.c:611
msgid "enable a key"
msgstr "activer une cl�"
-#: g10/delkey.c:107 g10/keyedit.c:614
+#: g10/delkey.c:110 g10/keyedit.c:630
msgid "can't do that in batchmode\n"
msgstr "impossible de faire cela en mode automatique\n"
#. check that they match
#. fixme: check that they both match
-#: g10/keyedit.c:652
+#: g10/keyedit.c:668
msgid "Secret key is available.\n"
msgstr "La cl� secr�te est disponible.\n"
-#: g10/keyedit.c:681
+#: g10/keyedit.c:697
msgid "Command> "
msgstr "Commande> "
-#: g10/keyedit.c:711
+#: g10/keyedit.c:727
msgid "Need the secret key to do this.\n"
msgstr "Il faut la cl� secr�te pour faire cela.\n"
-#: g10/keyedit.c:758
+#: g10/keyedit.c:731
+msgid "Please use the command \"toggle\" first.\n"
+msgstr ""
+
+#: g10/keyedit.c:778
msgid "Really sign all user IDs? "
msgstr "Signer vraiment tous les utilisateurs ? "
-#: g10/keyedit.c:759
+#: g10/keyedit.c:779
msgid "Hint: Select the user IDs to sign\n"
msgstr "Aide : S�lectionner les utilisateurs � signer\n"
-#: g10/keyedit.c:786 g10/keyedit.c:968
+#: g10/keyedit.c:811 g10/keyedit.c:993
#, c-format
msgid "update of trustdb failed: %s\n"
msgstr "la mise � jour de la base de confiance a �chou� : %s\n"
-#: g10/keyedit.c:797 g10/keyedit.c:818
+#: g10/keyedit.c:822 g10/keyedit.c:843
msgid "You must select at least one user ID.\n"
msgstr "Vous devez s�lectionner au moins un utilisateur.\n"
-#: g10/keyedit.c:799
+#: g10/keyedit.c:824
msgid "You can't delete the last user ID!\n"
msgstr "Vous ne pouvez pas supprimer le dernier utilisateur !\n"
-#: g10/keyedit.c:802
+#: g10/keyedit.c:827
msgid "Really remove all selected user IDs? "
msgstr "Enlever r�ellement tous les utilisateurs s�lectionn�s ? "
-#: g10/keyedit.c:803
+#: g10/keyedit.c:828
msgid "Really remove this user ID? "
msgstr "Enlever r�ellement cet utilisateur ? "
-#: g10/keyedit.c:839 g10/keyedit.c:861
+#: g10/keyedit.c:864 g10/keyedit.c:886
msgid "You must select at least one key.\n"
msgstr "Vous devez s�lectionner au moins une cl�.\n"
-#: g10/keyedit.c:843
+#: g10/keyedit.c:868
msgid "Do you really want to delete the selected keys? "
msgstr "Voulez-vous vraiment supprimer les cl�s s�lectionn�es ? "
-#: g10/keyedit.c:844
+#: g10/keyedit.c:869
msgid "Do you really want to delete this key? "
msgstr "Voulez-vous vraiment supprimer cette cl� ? "
-#: g10/keyedit.c:865
+#: g10/keyedit.c:890
msgid "Do you really want to revoke the selected keys? "
msgstr "Voulez-vous vraiment r�voquer les cl�s s�lectionn�es ? "
-#: g10/keyedit.c:866
+#: g10/keyedit.c:891
msgid "Do you really want to revoke this key? "
msgstr "Voulez-vous vraiment r�voquer cette cl� ? "
-#: g10/keyedit.c:932
+#: g10/keyedit.c:957
msgid "Save changes? "
msgstr "Enregistrer les changements? "
-#: g10/keyedit.c:935
+#: g10/keyedit.c:960
msgid "Quit without saving? "
msgstr "Quitter sans enregistrer? "
-#: g10/keyedit.c:946
+#: g10/keyedit.c:971
#, c-format
msgid "update failed: %s\n"
msgstr "la mise � jour a �chou� : %s\n"
-#: g10/keyedit.c:953
+#: g10/keyedit.c:978
#, c-format
msgid "update secret failed: %s\n"
msgstr "la mise � jour de la cl� secr�te a �chou� : %s\n"
-#: g10/keyedit.c:960
+#: g10/keyedit.c:985
msgid "Key not changed so no update needed.\n"
msgstr "La cl� n'a pas chang� donc la mise � jour est inutile.\n"
-#: g10/keyedit.c:975
+#: g10/keyedit.c:1000
msgid "Invalid command (try \"help\")\n"
msgstr "Commande invalide (essayez � help �)\n"
-#: g10/keyedit.c:1065
+#: g10/keyedit.c:1093
msgid "This key has been disabled"
msgstr "Cette cl� a �t� d�sactiv�e"
-#: g10/keyedit.c:1336
+#: g10/keyedit.c:1364
msgid "Delete this good signature? (y/N/q)"
msgstr "Supprimer cette bonne signature ? (o/N/q)"
-#: g10/keyedit.c:1340
+#: g10/keyedit.c:1368
msgid "Delete this invalid signature? (y/N/q)"
msgstr "Supprimer cette signature invalide ? (o/N/q)"
-#: g10/keyedit.c:1344
+#: g10/keyedit.c:1372
msgid "Delete this unknown signature? (y/N/q)"
msgstr "Supprimer cette signature inconnue ? (o/N/q)"
-#: g10/keyedit.c:1350
+#: g10/keyedit.c:1378
msgid "Really delete this self-signature? (y/N)"
msgstr "Faut-il vraiment supprimer cette auto-signature ? (o/N)"
-#: g10/keyedit.c:1364
+#: g10/keyedit.c:1392
#, c-format
msgid "Deleted %d signature.\n"
msgstr "%d signature supprim�e.\n"
-#: g10/keyedit.c:1365
+#: g10/keyedit.c:1393
#, c-format
msgid "Deleted %d signatures.\n"
msgstr "%d signatures supprim�es\n"
-#: g10/keyedit.c:1368
+#: g10/keyedit.c:1396
msgid "Nothing deleted.\n"
msgstr "Rien n'a �t� supprim�.\n"
-#: g10/keyedit.c:1437
+#: g10/keyedit.c:1465
msgid "Please remove selections from the secret keys.\n"
msgstr "Enlevez les s�lections des cl�s secr�tes.\n"
-#: g10/keyedit.c:1443
+#: g10/keyedit.c:1471
msgid "Please select at most one secondary key.\n"
msgstr "Vous devez s�lectionner au plus une cl� secondaire.\n"
-#: g10/keyedit.c:1447
+#: g10/keyedit.c:1475
msgid "Changing expiration time for a secondary key.\n"
msgstr "Changer la date d'expiration d'une cl� secondaire.\n"
-#: g10/keyedit.c:1449
+#: g10/keyedit.c:1477
msgid "Changing expiration time for the primary key.\n"
msgstr "Changer la date d'expiration de la cl� principale.\n"
-#: g10/keyedit.c:1490
+#: g10/keyedit.c:1519
msgid "You can't change the expiration date of a v3 key\n"
msgstr "Vous ne pouvez pas changer la date d'expiration d'une cl� v3\n"
-#: g10/keyedit.c:1506
+#: g10/keyedit.c:1535
msgid "No corresponding signature in secret ring\n"
msgstr "Pas de signature correspondante dans le porte-cl�s secret\n"
-#: g10/keyedit.c:1566
+#: g10/keyedit.c:1596
#, c-format
msgid "No user ID with index %d\n"
msgstr "Pas d'utilisateur avec l'index %d\n"
-#: g10/keyedit.c:1612
+#: g10/keyedit.c:1642
#, c-format
msgid "No secondary key with index %d\n"
msgstr "Pas de cl� secondaire avec l'index %d\n"
-#: g10/keyedit.c:1710
+#: g10/keyedit.c:1740
msgid "user ID: \""
msgstr "nom d'utilisateur : � "
-#: g10/keyedit.c:1713
+#: g10/keyedit.c:1743
#, c-format
msgid ""
"\"\n"
@@ -2360,144 +2473,153 @@ msgstr ""
" �\n"
"sign� avec votre cl� %08lX � %s\n"
-#: g10/keyedit.c:1717
+#: g10/keyedit.c:1747
msgid "Create a revocation certificate for this signature? (y/N)"
msgstr "G�n�rer un certificat de r�vocation pour cette signature ? (o/N)"
#. FIXME: detect duplicates here
-#: g10/keyedit.c:1740
-#, fuzzy
+#: g10/keyedit.c:1771
msgid "You have signed these user IDs:\n"
-msgstr "Vous ne pouvez pas supprimer le dernier utilisateur !\n"
+msgstr "Vous avez sign� ces noms d'utilisateurs :\n"
-#: g10/keyedit.c:1754 g10/keyedit.c:1789
-#, fuzzy, c-format
+#: g10/keyedit.c:1785 g10/keyedit.c:1820
+#, c-format
msgid " signed by %08lX at %s\n"
-msgstr ""
-" �\n"
-"sign� avec votre cl� %08lX � %s\n"
+msgstr " sign� par %08lX � %s\n"
-#: g10/keyedit.c:1759
-#, fuzzy, c-format
+#: g10/keyedit.c:1790
+#, c-format
msgid " revoked by %08lX at %s\n"
-msgstr ""
-" �\n"
-"sign� avec votre cl� %08lX � %s\n"
+msgstr " r�voqu� par %08lX � %s\n"
-#: g10/keyedit.c:1779
-#, fuzzy
+#: g10/keyedit.c:1810
msgid "You are about to revoke these signatures:\n"
-msgstr "Voulez-vous vraiment r�voquer les cl�s s�lectionn�es ? "
+msgstr "Vous �tes sur le point de r�voquer ces signatures:\n"
-#: g10/keyedit.c:1797
+#: g10/keyedit.c:1828
msgid "Really create the revocation certificates? (y/N)"
msgstr "Faut-il vraiment g�n�rer les certificats de r�vocation ? (o/N)"
-#: g10/keyedit.c:1820
+#: g10/keyedit.c:1857
msgid "no secret key\n"
msgstr "pas de cl� secr�te\n"
+#. of subkey
+#: g10/keylist.c:318 g10/mainproc.c:740
+#, fuzzy, c-format
+msgid " [expires: %s]"
+msgstr "La cl� expire le %s\n"
+
#: g10/mainproc.c:213
#, c-format
msgid "public key is %08lX\n"
msgstr "la cl� publique est %08lX\n"
-#: g10/mainproc.c:244
+#: g10/mainproc.c:248
msgid "public key encrypted data: good DEK\n"
msgstr "donn�es chiffr�es avec la cl� publique : bonne cl� de chiffrement\n"
-#: g10/mainproc.c:275
+#: g10/mainproc.c:281
#, c-format
msgid "encrypted with %u-bit %s key, ID %08lX, created %s\n"
msgstr "chiffr� avec une cl� de %u bits %s, ID %08lX, cr��e le %s\n"
-#: g10/mainproc.c:285
+#: g10/mainproc.c:291
#, c-format
msgid "encrypted with %s key, ID %08lX\n"
msgstr "chiffr� avec une cl� %s, %08lX\n"
-#: g10/mainproc.c:291
+#: g10/mainproc.c:297
msgid "no secret key for decryption available\n"
msgstr "aucune cl� secr�te n'est disponible pour le d�chiffrement\n"
-#: g10/mainproc.c:300
+#: g10/mainproc.c:306
#, c-format
msgid "public key decryption failed: %s\n"
msgstr "le d�chiffrement de la cl� publique a �chou� : %s\n"
-#: g10/mainproc.c:330
+#: g10/mainproc.c:342
msgid "decryption okay\n"
msgstr "le d�chiffrement a r�ussi\n"
-#: g10/mainproc.c:335
+#: g10/mainproc.c:347
msgid "WARNING: encrypted message has been manipulated!\n"
msgstr "ATTENTION: le message chiffr� a �t� manipul� !\n"
-#: g10/mainproc.c:340
+#: g10/mainproc.c:352
#, c-format
msgid "decryption failed: %s\n"
msgstr "le d�chiffrement a �chou� : %s\n"
-#: g10/mainproc.c:358
+#: g10/mainproc.c:371
msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
msgstr "NOTE : l'exp�diteur a demand� � pour vos yeux seulement �\n"
-#: g10/mainproc.c:360
+#: g10/mainproc.c:373
#, c-format
msgid "original file name='%.*s'\n"
msgstr "nom de fichier original : '%.*s'\n"
-#: g10/mainproc.c:587 g10/mainproc.c:596
+#: g10/mainproc.c:524
+msgid "standalone revocation - use \"gpg --import\" to apply\n"
+msgstr "r�vocation autonome - utilisez � gpg --import � pour l'appliquer\n"
+
+#: g10/mainproc.c:611 g10/mainproc.c:620
msgid "WARNING: invalid notation data found\n"
msgstr "ATTENTION : des donn�es de notation invalides ont �t� d�tect�es\n"
-#: g10/mainproc.c:599
+#: g10/mainproc.c:623
msgid "Notation: "
msgstr "Notation : "
-#: g10/mainproc.c:606
+#: g10/mainproc.c:630
msgid "Policy: "
msgstr "Politique : "
-#: g10/mainproc.c:1025
+#: g10/mainproc.c:1057
msgid "signature verification suppressed\n"
msgstr "v�rification de signature supprim�e\n"
-#: g10/mainproc.c:1031
+#: g10/mainproc.c:1063
#, c-format
msgid "Signature made %.*s using %s key ID %08lX\n"
msgstr "Signature faite %.*s avec une cl� %s ID %08lX\n"
#. just in case that we have no userid
-#: g10/mainproc.c:1057 g10/mainproc.c:1068
+#: g10/mainproc.c:1089 g10/mainproc.c:1100
msgid "BAD signature from \""
msgstr "MAUVAISE signature de \""
-#: g10/mainproc.c:1058 g10/mainproc.c:1069
+#: g10/mainproc.c:1090 g10/mainproc.c:1101
msgid "Good signature from \""
msgstr "Bonne signature de \""
-#: g10/mainproc.c:1060
+#: g10/mainproc.c:1092
msgid " aka \""
msgstr " alias \""
-#: g10/mainproc.c:1115
+#: g10/mainproc.c:1148
#, c-format
msgid "Can't check signature: %s\n"
-msgstr "Ne peut v�rifier la signature : %s\n"
+msgstr "Impossible de v�rifier la signature : %s\n"
-#: g10/mainproc.c:1212
+#: g10/mainproc.c:1209
+#, c-format
+msgid "standalone signature of class 0x%02x\n"
+msgstr "signature autonome de classe 0x%02x\n"
+
+#: g10/mainproc.c:1250
msgid "old style (PGP 2.x) signature\n"
msgstr "signature d'un ancien style (PGP 2.x)\n"
-#: g10/mainproc.c:1217
+#: g10/mainproc.c:1255
msgid "invalid root packet detected in proc_tree()\n"
msgstr "paquet racine invalide d�tect� dans proc_tree()\n"
#: g10/misc.c:94
#, c-format
msgid "can't disable core dumps: %s\n"
-msgstr "ne peut emp�cher la g�n�ration de fichiers core : %s\n"
+msgstr "impossible d'emp�cher la g�n�ration de fichiers core : %s\n"
#: g10/misc.c:97
msgid "WARNING: program may create a core file!\n"
@@ -2521,12 +2643,12 @@ msgstr ""
"Cet algorithme de chiffrement est d�conseill� ; utilisez-en un\n"
"plus standard !\n"
-#: g10/parse-packet.c:113
+#: g10/parse-packet.c:115
#, c-format
msgid "can't handle public key algorithm %d\n"
-msgstr "ne peut g�rer l'algorithme � cl� publique %d\n"
+msgstr "impossible de g�rer l'algorithme � cl� publique %d\n"
-#: g10/parse-packet.c:939
+#: g10/parse-packet.c:956
#, c-format
msgid "subpacket of type %d has critical bit set\n"
msgstr "un sous-paquet de type %d poss�de un bit critique\n"
@@ -2569,18 +2691,22 @@ msgstr ""
"donn�es non enregistr�es ; utilisez l'option \"--output\" pour\n"
"les enregistrer\n"
-#: g10/plaintext.c:315
+#: g10/plaintext.c:317
+msgid "Detached signature.\n"
+msgstr "Signature d�tach�e.\n"
+
+#: g10/plaintext.c:321
msgid "Please enter name of data file: "
msgstr "Entrez le nom d'un fichier de donn�es : "
-#: g10/plaintext.c:336
+#: g10/plaintext.c:342
msgid "reading stdin ...\n"
msgstr "lecture de l'entr�e standard...\n"
-#: g10/plaintext.c:379
+#: g10/plaintext.c:385
#, c-format
msgid "can't open signed data `%s'\n"
-msgstr "ne peut ouvir les donn�es sign�es `%s'\n"
+msgstr "impossible d'ouvir les donn�es sign�es `%s'\n"
#: g10/pubkey-enc.c:79
#, c-format
@@ -2595,542 +2721,608 @@ msgstr "d'accord, nous sommes le r�cipient anonyme.\n"
msgid "old encoding of the DEK is not supported\n"
msgstr "l'ancien codage de la cl� de chiffrement (DEK) n'est pas support�\n"
-#: g10/pubkey-enc.c:191
+#: g10/pubkey-enc.c:156
+#, fuzzy, c-format
+msgid "cipher algorithm %d is unknown or disabled\n"
+msgstr "l'algorithme de protection %d n'est pas support�\n"
+
+#: g10/pubkey-enc.c:195
#, c-format
msgid "NOTE: cipher algorithm %d not found in preferences\n"
msgstr ""
"NOTE : l'algorithme de chiffrement %d n'a pas �t� trouv� dans les "
"pr�f�rences\n"
-#: g10/seckey-cert.c:55
+#: g10/pubkey-enc.c:201
+#, fuzzy, c-format
+msgid "NOTE: secret key %08lX expired at %s\n"
+msgstr "NOTE : la cl� de signature a expir� le %s\n"
+
+#: g10/hkp.c:62
+#, c-format
+msgid "requesting key %08lX from %s ...\n"
+msgstr ""
+
+#: g10/hkp.c:75
+#, fuzzy, c-format
+msgid "can't get key from keyserver: %s\n"
+msgstr "importer les cl�s d'un serveur de cl�s"
+
+#: g10/hkp.c:98 g10/hkp.c:136
+msgid "no keyserver known (use option --keyserver)\n"
+msgstr ""
+
+#: g10/hkp.c:106
+#, fuzzy, c-format
+msgid "%s: not a valid key ID\n"
+msgstr "%s n'est pas une table de caract�res valide\n"
+
+#: g10/hkp.c:158
+#, fuzzy, c-format
+msgid "can't connect to `%s': %s\n"
+msgstr "impossible d'ouvrir `%s': %s\n"
+
+#: g10/hkp.c:182
+#, fuzzy, c-format
+msgid "error sending to `%s': %s\n"
+msgstr "erreur pendant la lecture de `%s' : %s\n"
+
+#: g10/hkp.c:194
+#, c-format
+msgid "success sending to `%s' (status=%u)\n"
+msgstr ""
+
+#: g10/hkp.c:197
+#, c-format
+msgid "failed sending to `%s': status=%u\n"
+msgstr ""
+
+#: g10/seckey-cert.c:53
+#, fuzzy
+msgid "secret key parts are not available\n"
+msgstr "la cl� secr�te n'est pas disponible"
+
+#: g10/seckey-cert.c:59
#, c-format
msgid "protection algorithm %d is not supported\n"
msgstr "l'algorithme de protection %d n'est pas support�\n"
-#: g10/seckey-cert.c:171
+#: g10/seckey-cert.c:175
msgid "Invalid passphrase; please try again ...\n"
msgstr "Mot de passe invalide ; r�essayez...\n"
-#: g10/seckey-cert.c:227
+#: g10/seckey-cert.c:231
msgid "WARNING: Weak key detected - please change passphrase again.\n"
msgstr "ATTENTION : Cl� faible d�tect�e - changez encore le mot de passe.\n"
-#: g10/sig-check.c:199
+#: g10/sig-check.c:202
msgid "assuming bad MDC due to an unknown critical bit\n"
msgstr "le sceau (MDC) est suppos� �tre faux car un bit critique est inconnu\n"
-#: g10/sig-check.c:295
+#: g10/sig-check.c:300
msgid ""
"this is a PGP generated ElGamal key which is NOT secure for signatures!\n"
msgstr ""
"Ceci est une cl� ElGamal g�n�r�e par PGP qui n'est PAS s�re pour les\n"
"signatures !\n"
-#: g10/sig-check.c:303
+#: g10/sig-check.c:308
#, c-format
msgid "public key is %lu second newer than the signature\n"
msgstr "la cl� publique est plus r�cente de %lu seconde que la signature\n"
-#: g10/sig-check.c:304
+#: g10/sig-check.c:309
#, c-format
msgid "public key is %lu seconds newer than the signature\n"
msgstr "la cl� publique est plus r�cente de %lu secondes que la signature\n"
-#: g10/sig-check.c:320
+#: g10/sig-check.c:327
#, c-format
msgid "NOTE: signature key expired %s\n"
msgstr "NOTE : la cl� de signature a expir� le %s\n"
-#: g10/sig-check.c:377
+#: g10/sig-check.c:385
msgid "assuming bad signature due to an unknown critical bit\n"
msgstr ""
"la signature est suppos�e �tre fausse car un bit critique est\n"
"inconnu\n"
-#: g10/sign.c:132
+#: g10/sign.c:139
#, c-format
msgid "%s signature from: %s\n"
msgstr "Signature %s de : %s\n"
-#: g10/sign.c:263 g10/sign.c:575
+#: g10/sign.c:270 g10/sign.c:582
#, c-format
msgid "can't create %s: %s\n"
-msgstr "ne peut cr�er %s : %s\n"
+msgstr "impossible de cr�er %s : %s\n"
-#: g10/sign.c:361
+#: g10/sign.c:368
msgid "signing:"
msgstr "signature :"
-#: g10/sign.c:404
+#: g10/sign.c:411
#, c-format
msgid "WARNING: `%s' is an empty file\n"
msgstr "ATTENTION : `%s' est un fichier vide\n"
-#: g10/textfilter.c:128
+#: g10/textfilter.c:134
#, c-format
msgid "can't handle text lines longer than %d characters\n"
-msgstr "ne peut pas traiter les ligne plus longues que %d caract�res\n"
+msgstr "impossible de traiter les lignes plus longues que %d caract�res\n"
-#: g10/textfilter.c:197
+#: g10/textfilter.c:231
#, c-format
msgid "input line longer than %d characters\n"
msgstr "la ligne d'entr�e est plus longue que %d caract�res\n"
-#: g10/tdbio.c:121 g10/tdbio.c:1635
+#: g10/tdbio.c:116 g10/tdbio.c:1623
#, c-format
msgid "trustdb rec %lu: lseek failed: %s\n"
msgstr "enregistrement de base de confiance %lu : lseek a �chou� : %s\n"
-#: g10/tdbio.c:127 g10/tdbio.c:1642
+#: g10/tdbio.c:122 g10/tdbio.c:1630
#, c-format
msgid "trustdb rec %lu: write failed (n=%d): %s\n"
msgstr ""
"enregistrement de la base de confiance %lu : l'�criture a �chou� (n=%d) : "
"%s\n"
-#: g10/tdbio.c:237
+#: g10/tdbio.c:232
msgid "trustdb transaction too large\n"
msgstr "transaction de base de confiance trop volumineuse\n"
-#: g10/tdbio.c:429
+#: g10/tdbio.c:424
#, c-format
msgid "%s: can't access: %s\n"
-msgstr "%s : ne peut acc�der : %s\n"
-
-#: g10/ringedit.c:298 g10/tdbio.c:445
-#, c-format
-msgid "%s: can't create directory: %s\n"
-msgstr "%s : ne peut cr�er le r�pertoire : %s\n"
-
-#: g10/ringedit.c:304 g10/tdbio.c:448
-#, c-format
-msgid "%s: directory created\n"
-msgstr "%s : r�pertoire cr��\n"
+msgstr "%s : impossible d'acc�der : %s\n"
-#: g10/tdbio.c:452
+#: g10/tdbio.c:438
#, c-format
msgid "%s: directory does not exist!\n"
msgstr "%s : le r�pertoire n'existe pas !\n"
-#: g10/openfile.c:182 g10/openfile.c:253 g10/ringedit.c:1348 g10/tdbio.c:458
+#: g10/openfile.c:216 g10/openfile.c:284 g10/ringedit.c:1363 g10/tdbio.c:444
#, c-format
msgid "%s: can't create: %s\n"
-msgstr "%s : ne peut cr�er : %s\n"
+msgstr "%s : impossible de cr�er : %s\n"
-#: g10/tdbio.c:473 g10/tdbio.c:522
+#: g10/tdbio.c:459 g10/tdbio.c:508
#, c-format
msgid "%s: can't create lock\n"
-msgstr "%s : ne peut cr�er de verrouillage\n"
+msgstr "%s : impossible de cr�er de verrouillage\n"
-#: g10/tdbio.c:487
+#: g10/tdbio.c:473
#, c-format
msgid "%s: failed to create version record: %s"
-msgstr "%s : n'a pas pu cr�er un enregistrement de version : %s"
+msgstr "%s : impossible de cr�er un enregistrement de version : %s"
-#: g10/tdbio.c:491
+#: g10/tdbio.c:477
#, c-format
msgid "%s: invalid trustdb created\n"
msgstr "%s : base de confiance invalide cr��e\n"
-#: g10/tdbio.c:494
+#: g10/tdbio.c:480
#, c-format
msgid "%s: trustdb created\n"
msgstr "%s : base de confiance cr��e\n"
-#: g10/tdbio.c:531
+#: g10/tdbio.c:517
#, c-format
msgid "%s: invalid trustdb\n"
msgstr "%s : base de confiance invalide\n"
-#: g10/tdbio.c:564
+#: g10/tdbio.c:550
#, c-format
msgid "%s: failed to create hashtable: %s\n"
msgstr "%s : la cr�ation de la table de hachage a �chou� : %s\n"
-#: g10/tdbio.c:572
+#: g10/tdbio.c:558
#, c-format
msgid "%s: error updating version record: %s\n"
msgstr ""
"%s : erreur pendant la mise � jour de l'enregistrement de version : %s\n"
-#: g10/tdbio.c:588 g10/tdbio.c:627 g10/tdbio.c:649 g10/tdbio.c:679
-#: g10/tdbio.c:704 g10/tdbio.c:1568 g10/tdbio.c:1595
+#: g10/tdbio.c:574 g10/tdbio.c:613 g10/tdbio.c:635 g10/tdbio.c:665
+#: g10/tdbio.c:690 g10/tdbio.c:1556 g10/tdbio.c:1583
#, c-format
msgid "%s: error reading version record: %s\n"
msgstr "%s : erreur pendant la lecture de l'enregistrement de version : %s\n"
-#: g10/tdbio.c:601 g10/tdbio.c:660
+#: g10/tdbio.c:587 g10/tdbio.c:646
#, c-format
msgid "%s: error writing version record: %s\n"
msgstr "%s : erreur pendant l'�criture de l'enregistrement de version : %s\n"
-#: g10/tdbio.c:1247
+#: g10/tdbio.c:1235
#, c-format
msgid "trustdb: lseek failed: %s\n"
msgstr "base de confiance : � lseek() � a �chou� : %s\n"
-#: g10/tdbio.c:1255
+#: g10/tdbio.c:1243
#, c-format
msgid "trustdb: read failed (n=%d): %s\n"
msgstr "base de confiance : la lecture a �chou� (n=%d) : %s\n"
-#: g10/tdbio.c:1276
+#: g10/tdbio.c:1264
#, c-format
msgid "%s: not a trustdb file\n"
msgstr "%s : ce n'est pas un fichier de base de confiance\n"
-#: g10/tdbio.c:1292
+#: g10/tdbio.c:1280
#, c-format
msgid "%s: version record with recnum %lu\n"
msgstr "%s : enregistrement de version avec un num�ro %lu\n"
-#: g10/tdbio.c:1297
+#: g10/tdbio.c:1285
#, c-format
msgid "%s: invalid file version %d\n"
msgstr "%s : version %d du fichier invalide\n"
-#: g10/tdbio.c:1601
+#: g10/tdbio.c:1589
#, c-format
msgid "%s: error reading free record: %s\n"
msgstr "%s : erreur pendant la lecture de l'enregistrement libre : %s\n"
-#: g10/tdbio.c:1609
+#: g10/tdbio.c:1597
#, c-format
msgid "%s: error writing dir record: %s\n"
msgstr ""
"%s : erreur pendant l'�criture de l'enregistrement de\n"
"r�pertoire : %s\n"
-#: g10/tdbio.c:1619
+#: g10/tdbio.c:1607
#, c-format
msgid "%s: failed to zero a record: %s\n"
msgstr "%s : n'a pu mettre un enregistrement � z�ro : %s\n"
-#: g10/tdbio.c:1649
+#: g10/tdbio.c:1637
#, c-format
msgid "%s: failed to append a record: %s\n"
-msgstr "%s : n'a pas pu ajouter un enregistrement : %s\n"
+msgstr "%s : impossible d'ajouter un enregistrement : %s\n"
-#: g10/tdbio.c:1760
+#: g10/tdbio.c:1748
msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
msgstr "la base de confiance est corrompue ; ex�cutez � gpg --fix-trustdb �.\n"
-#: g10/trustdb.c:160
+#: g10/trustdb.c:168
#, c-format
msgid "trust record %lu, req type %d: read failed: %s\n"
msgstr ""
"enregistrement de confiance %lu, type de requ�te %d : la lecture a �chou� : "
"%s\n"
-#: g10/trustdb.c:175
+#: g10/trustdb.c:183
#, c-format
msgid "trust record %lu, type %d: write failed: %s\n"
msgstr "enregistrement de confiance %lu, type %d : l'�criture a �chou� : %s\n"
-#: g10/trustdb.c:189
+#: g10/trustdb.c:197
#, c-format
msgid "trust record %lu: delete failed: %s\n"
msgstr "enregistrement de confiance %lu : la suppression a �chou� : %s\n"
-#: g10/trustdb.c:203
+#: g10/trustdb.c:211
#, c-format
msgid "trustdb: sync failed: %s\n"
msgstr "base de confiance : la synchronisation a �chou� : %s\n"
-#: g10/trustdb.c:347
+#: g10/trustdb.c:376
#, c-format
msgid "error reading dir record for LID %lu: %s\n"
msgstr ""
"erreur pendant la lecture de l'enregistrement de r�pertoire pour\n"
"le LID %lu : %s\n"
-#: g10/trustdb.c:354
+#: g10/trustdb.c:383
#, c-format
msgid "lid %lu: expected dir record, got type %d\n"
msgstr "lid %lu : enregistrement de r�pertoire attendu, a re�u le type %d\n"
-#: g10/trustdb.c:359
+#: g10/trustdb.c:388
#, c-format
msgid "no primary key for LID %lu\n"
msgstr "pas de cl� principale pour le LID %lu\n"
-#: g10/trustdb.c:364
+#: g10/trustdb.c:393
#, c-format
msgid "error reading primary key for LID %lu: %s\n"
msgstr "erreur pendant la lecture de la cl� principale pour le LID %lu : %s\n"
-#: g10/trustdb.c:403
+#: g10/trustdb.c:432
#, c-format
msgid "get_dir_record: search_record failed: %s\n"
msgstr "get_dir_record : search_record a �chou� : %s\n"
-#: g10/trustdb.c:458
+#: g10/trustdb.c:487
#, c-format
msgid "NOTE: secret key %08lX is NOT protected.\n"
msgstr "NOTE : la cl� secr�te %08lX n'est PAS prot�g�e.\n"
-#: g10/trustdb.c:466
+#: g10/trustdb.c:495
#, c-format
msgid "key %08lX: secret key without public key - skipped\n"
msgstr "cl� %08lX : cl� secr�te sans cl� publique - non prise en compte\n"
-#: g10/trustdb.c:473
+#: g10/trustdb.c:502
#, c-format
msgid "key %08lX: secret and public key don't match\n"
msgstr "cl� %08lX : les cl�s secr�te et publique ne correspondent pas\n"
-#: g10/trustdb.c:485
+#: g10/trustdb.c:514
#, c-format
msgid "key %08lX: can't put it into the trustdb\n"
-msgstr "cl� %08lX : ne peut �tre mise dans la base de confiance\n"
+msgstr "cl� %08lX : impossible de la mettre dans la base de confiance\n"
-#: g10/trustdb.c:491
+#: g10/trustdb.c:520
#, c-format
msgid "key %08lX: query record failed\n"
msgstr "cl� %08lX : l'enregistrement de requ�te a �chou�\n"
-#: g10/trustdb.c:500
+#: g10/trustdb.c:529
#, c-format
msgid "key %08lX: already in trusted key table\n"
msgstr "cl� %08lX : d�j� dans la table des cl�s certifi�es\n"
-#: g10/trustdb.c:503
+#: g10/trustdb.c:532
#, c-format
msgid "key %08lX: accepted as trusted key.\n"
msgstr "cl� %08lX : accept�e comme cl� certifi�e.\n"
-#: g10/trustdb.c:511
+#: g10/trustdb.c:540
#, c-format
msgid "enumerate secret keys failed: %s\n"
msgstr "l'�num�ration des cl�s secr�tes a �chou� : %s\n"
-#: g10/trustdb.c:877
+#: g10/trustdb.c:921
#, c-format
msgid "key %08lX.%lu: Good subkey binding\n"
msgstr "cl� %08lX.%lu : bonne liaison avec la sous-cl�\n"
-#: g10/trustdb.c:883 g10/trustdb.c:918
+#: g10/trustdb.c:927 g10/trustdb.c:962
#, c-format
msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
msgstr "cl� %08lX.%lu : liaison avec la sous-cl� invalide : %s\n"
-#: g10/trustdb.c:895
+#: g10/trustdb.c:939
#, c-format
msgid "key %08lX.%lu: Valid key revocation\n"
msgstr "cl� %08lX.%lu : r�vocation de cl� valide\n"
-#: g10/trustdb.c:901
+#: g10/trustdb.c:945
#, c-format
msgid "key %08lX.%lu: Invalid key revocation: %s\n"
msgstr "cl� %08lX.%lu : r�vocation de sous-cl� invalide : %s\n"
-#: g10/trustdb.c:912
+#: g10/trustdb.c:956
#, c-format
msgid "key %08lX.%lu: Valid subkey revocation\n"
msgstr "cl� %08lX.%lu : r�vocation de sous-cl� valide\n"
-#: g10/trustdb.c:1023
+#: g10/trustdb.c:1067
msgid "Good self-signature"
msgstr "Bonne auto-signature"
-#: g10/trustdb.c:1033
+#: g10/trustdb.c:1077
msgid "Invalid self-signature"
msgstr "Auto-signature invalide"
-#: g10/trustdb.c:1060
+#: g10/trustdb.c:1104
msgid "Valid user ID revocation skipped due to a newer self signature"
msgstr ""
"La r�vocation valide de nom d'utilisateur a �t� ignor�e car l'auto-\n"
"signature est plus r�cente"
-#: g10/trustdb.c:1066
+#: g10/trustdb.c:1110
msgid "Valid user ID revocation"
msgstr "R�vocation de nom d'utilisateur valide"
-#: g10/trustdb.c:1071
+#: g10/trustdb.c:1115
msgid "Invalid user ID revocation"
msgstr "R�vocation de nom d'utilisateur invalide"
-#: g10/trustdb.c:1112
+#: g10/trustdb.c:1157
msgid "Valid certificate revocation"
msgstr "Certificat de r�vocation valide"
-#: g10/trustdb.c:1113
+#: g10/trustdb.c:1158
msgid "Good certificate"
msgstr "Bon certificat"
-#: g10/trustdb.c:1134
+#: g10/trustdb.c:1186
msgid "Invalid certificate revocation"
msgstr "R�vocation de certificat invalide"
-#: g10/trustdb.c:1135
+#: g10/trustdb.c:1187
msgid "Invalid certificate"
msgstr "Certificat invalide"
-#: g10/trustdb.c:1152 g10/trustdb.c:1156
+#: g10/trustdb.c:1204 g10/trustdb.c:1208
#, c-format
msgid "sig record %lu[%d] points to wrong record.\n"
msgstr ""
"l'enregistrement de signature %lu[%d] pointe vers le mauvais\n"
"enregistrement de r�pertoire\n"
-#: g10/trustdb.c:1208
+#: g10/trustdb.c:1267
msgid "duplicated certificate - deleted"
msgstr "certificat dupliqu� - supprim�"
-#: g10/trustdb.c:1514
+#: g10/trustdb.c:1584
#, c-format
msgid "tdbio_search_dir failed: %s\n"
msgstr "tdbio_search_dir a �chou� : %s\n"
-#: g10/trustdb.c:1636
+#: g10/trustdb.c:1718
#, c-format
msgid "lid ?: insert failed: %s\n"
msgstr "lid ? : l'insertion a �chou� : %s\n"
-#: g10/trustdb.c:1641
+#: g10/trustdb.c:1723
#, c-format
msgid "lid %lu: insert failed: %s\n"
msgstr "lid %lu : l'insertion a �chou� : %s\n"
-#: g10/trustdb.c:1647
+#: g10/trustdb.c:1729
#, c-format
msgid "lid %lu: inserted\n"
msgstr "lid %lu : ins�r�\n"
-#: g10/trustdb.c:1652
+#: g10/trustdb.c:1734
#, c-format
msgid "error reading dir record: %s\n"
msgstr "erreur pendant la lecture de l'enregistrement de r�pertoire : %s\n"
-#: g10/trustdb.c:1660 g10/trustdb.c:1714
+#: g10/trustdb.c:1742 g10/trustdb.c:1805
#, c-format
msgid "%lu keys processed\n"
msgstr "%lu cl�s trait�es\n"
-#: g10/trustdb.c:1662 g10/trustdb.c:1718
+#: g10/trustdb.c:1744 g10/trustdb.c:1811
#, c-format
msgid "\t%lu keys with errors\n"
msgstr "\t%lu cl�s avec erreurs\n"
-#: g10/trustdb.c:1664
+#: g10/trustdb.c:1746
#, c-format
msgid "\t%lu keys inserted\n"
msgstr "\t%lu cl�s ins�r�es\n"
-#: g10/trustdb.c:1667
+#: g10/trustdb.c:1749
#, c-format
msgid "enumerate keyblocks failed: %s\n"
msgstr "l'�num�ration des blocs de cl�s a �chou� : %s\n"
-#: g10/trustdb.c:1705
+#: g10/trustdb.c:1797
#, c-format
msgid "lid %lu: dir record w/o key - skipped\n"
msgstr "lid %lu : enregistrement de r�pertoire sans cl� - ignor�\n"
-#: g10/trustdb.c:1716
+#: g10/trustdb.c:1807
+#, c-format
+msgid "\t%lu due to new pubkeys\n"
+msgstr "\t%lu � cause de nouvelles cl�s publiques\n"
+
+#: g10/trustdb.c:1809
#, c-format
msgid "\t%lu keys skipped\n"
msgstr "\t%lu cl�s ignor�es\n"
-#: g10/trustdb.c:1720
+#: g10/trustdb.c:1813
#, c-format
msgid "\t%lu keys updated\n"
msgstr "\t%lu cl�s mises � jour\n"
-#: g10/trustdb.c:2057
+#: g10/trustdb.c:2158
msgid "Ooops, no keys\n"
msgstr "Ooops, pas de cl�\n"
-#: g10/trustdb.c:2061
+#: g10/trustdb.c:2162
msgid "Ooops, no user IDs\n"
msgstr "Ooops, pas de nom d'utilisateur\n"
-#: g10/trustdb.c:2218
+#: g10/trustdb.c:2320
#, c-format
msgid "check_trust: search dir record failed: %s\n"
msgstr ""
"check_trust : la recherche d'enregistrement de r�pertoire a �chou� : %s\n"
-#: g10/trustdb.c:2227
+#: g10/trustdb.c:2329
#, c-format
msgid "key %08lX: insert trust record failed: %s\n"
msgstr "cl� %08lX : l'insertion d'enregistrement de confiance a �chou� : %s\n"
-#: g10/trustdb.c:2231
+#: g10/trustdb.c:2333
#, c-format
msgid "key %08lX.%lu: inserted into trustdb\n"
msgstr "cl� %08lX.%lu : ins�r�e dans la base de confiance\n"
-#: g10/trustdb.c:2239
+#: g10/trustdb.c:2341
#, c-format
msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
msgstr ""
"cl� %08lX.%lu : cr��e dans le futur (voyage temporel ou\n"
"probl�me d'horloge)\n"
-#: g10/trustdb.c:2248
+#: g10/trustdb.c:2356
#, c-format
msgid "key %08lX.%lu: expired at %s\n"
msgstr "cl� %08lX.%lu : a expir� le %s\n"
-#: g10/trustdb.c:2256
+#: g10/trustdb.c:2364
#, c-format
msgid "key %08lX.%lu: trust check failed: %s\n"
msgstr "cl� %08lX.%lu : la v�rification de confiance a �chou�: %s\n"
-#: g10/trustdb.c:2362
+#: g10/trustdb.c:2515
#, c-format
msgid "user '%s' not found: %s\n"
msgstr "l'utilisateur '%s' n'a pas �t� trouv� : %s\n"
-#: g10/trustdb.c:2364
+#: g10/trustdb.c:2517
#, c-format
msgid "problem finding '%s' in trustdb: %s\n"
msgstr "probl�me de recherche de '%s' dans la base de confiance : %s\n"
-#: g10/trustdb.c:2367
+#: g10/trustdb.c:2520
#, c-format
msgid "user '%s' not in trustdb - inserting\n"
msgstr "l'utilisateur '%s' n'est pas dans la base de confiance - insertion\n"
-#: g10/trustdb.c:2370
+#: g10/trustdb.c:2523
#, c-format
msgid "failed to put '%s' into trustdb: %s\n"
-msgstr "n'a pas pu ins�rer '%s' dans la base de confiance : %s\n"
+msgstr "impossible d'ins�rer '%s' dans la base de confiance : %s\n"
-#: g10/trustdb.c:2556 g10/trustdb.c:2586
+#: g10/trustdb.c:2709 g10/trustdb.c:2739
msgid "WARNING: can't yet handle long pref records\n"
msgstr ""
"ATTENTION : les enregistrements de pr�f�rences longs ne sont pas encore\n"
"support�s\n"
-#: g10/ringedit.c:318
+#: g10/verify.c:82
+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 ""
+"impossible de v�rifier la signature.\n"
+"Rappelez-vous bien que le fichier de signature (.sig ou .asc)\n"
+"doit �tre le premier fichier indiqu� sur la ligne de commande.\n"
+
+#: g10/verify.c:147
+#, c-format
+msgid "input line %u too long or missing LF\n"
+msgstr ""
+"la ligne d'entr�e %u est trop longue ou il manque un caract�re de saut\n"
+"de ligne\n"
+
+#: g10/ringedit.c:302
#, c-format
msgid "%s: can't create keyring: %s\n"
-msgstr "%s : ne peut cr�er le porte-cl�s : %s\n"
+msgstr "%s : impossible de cr�er le porte-cl�s : %s\n"
-#: g10/ringedit.c:335 g10/ringedit.c:1353
+#: g10/ringedit.c:319 g10/ringedit.c:1368
#, c-format
msgid "%s: keyring created\n"
msgstr "%s : porte-cl�s cr��\n"
-#: g10/ringedit.c:1530
+#: g10/ringedit.c:1545
msgid "WARNING: 2 files with confidential information exists.\n"
msgstr ""
"ATTENTION : 2 fichiers avec des informations confidentielles existent.\n"
-#: g10/ringedit.c:1531
+#: g10/ringedit.c:1546
#, c-format
msgid "%s is the unchanged one\n"
msgstr "%s est le fichier original\n"
-#: g10/ringedit.c:1532
+#: g10/ringedit.c:1547
#, c-format
msgid "%s is the new one\n"
msgstr "%s est le nouveau\n"
-#: g10/ringedit.c:1533
+#: g10/ringedit.c:1548
msgid "Please fix this possible security flaw\n"
msgstr "R�parez ce probl�me de s�curit� possible\n"
@@ -3155,38 +3347,54 @@ msgstr ""
"s�re pour les signatures !\n"
#. do not overwrite
-#: g10/openfile.c:65
+#: g10/openfile.c:79
#, c-format
msgid "File `%s' exists. "
msgstr "Le fichier `%s' existe. "
-#: g10/openfile.c:67
+#: g10/openfile.c:81
msgid "Overwrite (y/N)? "
msgstr "R��crire (o/N)? "
-#: g10/openfile.c:97
+#: g10/openfile.c:109
#, c-format
msgid "%s: unknown suffix\n"
msgstr "%s : suffixe inconnu\n"
-#: g10/openfile.c:119
+#: g10/openfile.c:131
msgid "Enter new filename"
msgstr "Entrez le nouveau nom de fichier"
-#: g10/openfile.c:160
+#: g10/openfile.c:172
msgid "writing to stdout\n"
msgstr "�criture vers la sortie standard\n"
-#: g10/openfile.c:219
+#: g10/openfile.c:250
#, c-format
msgid "assuming signed data in `%s'\n"
msgstr "les donn�es sign�es sont suppos�es �tre dans `%s'\n"
-#: g10/openfile.c:269
+#: g10/openfile.c:300
#, c-format
msgid "%s: new options file created\n"
msgstr "%s : nouveau fichier d'options cr��\n"
+#: g10/openfile.c:313
+#, c-format
+msgid "%s: can't create directory: %s\n"
+msgstr "%s : impossible de cr�er le r�pertoire : %s\n"
+
+#: g10/openfile.c:316
+#, c-format
+msgid "%s: directory created\n"
+msgstr "%s : r�pertoire cr��\n"
+
+#: g10/openfile.c:318
+msgid "you have to start GnuPG again, so it can read the new options file\n"
+msgstr ""
+"vous devez red�marrer GnuPG pour qu'il puisse lire le nouveau\n"
+"fichier � options �\n"
+
#: g10/encr-data.c:66
#, c-format
msgid "%s encrypted data\n"
@@ -3212,31 +3420,28 @@ msgstr "cl� faible g�n�r�e - nouvel essai\n"
#, c-format
msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
msgstr ""
-"ne peut �viter une cl� faible pour le chiffrement sym�trique :\n"
+"impossible d'�viter une cl� faible pour le chiffrement sym�trique :\n"
"%d essais ont eu lieu !\n"
-#: g10/delkey.c:93
-#, fuzzy
+#: g10/delkey.c:94
msgid "there is a secret key for this public key!\n"
-msgstr "enlever la cl� du porte-cl�s public"
+msgstr "il y a une cl� secr�te pour cette cl� publique !\n"
-#: g10/delkey.c:95
+#: g10/delkey.c:96
msgid "use option \"--delete-secret-key\" to delete it first.\n"
-msgstr ""
+msgstr "utiliser l'option � --delete-secret-key � pour l'effacer d'abord.\n"
-#: g10/delkey.c:111
-#, fuzzy
+#: g10/delkey.c:114
msgid "can't do that in batchmode without \"--yes\"\n"
-msgstr "impossible de faire cela en mode automatique\n"
+msgstr "impossible de faire cela en mode automatique sans � --yes �\n"
-#: g10/delkey.c:133
-#, fuzzy
+#: g10/delkey.c:136
msgid "Delete this key from the keyring? "
-msgstr "enlever la cl� du porte-cl�s public"
+msgstr "Enlever cette cl� du porte-cl�s ? "
-#: g10/delkey.c:141
+#: g10/delkey.c:144
msgid "This is a secret key! - really delete? "
-msgstr ""
+msgstr "C'est une cl� secr�te - faut-il vraiment l'effacer ? "
#: g10/helptext.c:47
msgid ""
@@ -3298,7 +3503,7 @@ msgstr ""
"servir aux signatures ; elles sont en fait identiques mais certains\n"
"param�tres doivent �tre sp�cialement choisis pour que la cl� g�n�re des\n"
"signatures s�res : ce programme est capable de le faire mais les autres\n"
-"impl�mentations de OpenPGP ne sont pas oblig�es d'accepter cette forme de\n"
+"implantations de OpenPGP ne sont pas oblig�es d'accepter cette forme de\n"
"cl�.\n"
"\n"
"La premi�re cl� (cl� principale) doit toujours �tre capable de signer ;\n"
@@ -3452,14 +3657,58 @@ msgid ""
"Please enter a new filename. If you just hit RETURN the default\n"
"file (which is shown in brackets) will be used."
msgstr ""
-"Entrez le nouveau nom de fichier. Si vous tapez simplement ENTR�E lefichier "
-"par d�faut (indiqu� entre crochets) sera utilis�."
+"Entrez le nouveau nom de fichier. Si vous tapez simplement ENTR�E le\n"
+"fichier par d�faut (indiqu� entre crochets) sera utilis�."
+
+#: g10/helptext.c:229
+msgid ""
+"You should specify a reason for the certification. Depending on the\n"
+"context you have the ability to choose from this list:\n"
+" \"Key has been compromised\"\n"
+" Use this if you have a reason to believe that unauthorized persons\n"
+" got access to your secret key.\n"
+" \"Key is superseeded\"\n"
+" Use this if you have replaced this key with a newer one.\n"
+" \"Key is no longer used\"\n"
+" Use this if you have retired this key.\n"
+" \"User ID is no longer valid\"\n"
+" 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 ""
-#: g10/helptext.c:237
+#: g10/helptext.c:245
+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 ""
+
+#: g10/helptext.c:260
msgid "No help available"
msgstr "Pas d'aide disponible"
-#: g10/helptext.c:245
+#: g10/helptext.c:268
#, c-format
msgid "No help available for `%s'"
msgstr "Pas d'aide disponible pour `%s'"
+
+#~ msgid "set debugging flags"
+#~ msgstr "choisir les attributs de d�boguage"
+
+#~ msgid "enable full debugging"
+#~ msgstr "permettre un d�boguage complet"
+
+#~ msgid "do not write comment packets"
+#~ msgstr "ne pas �crire de paquets de commentaire"
+
+#~ msgid "(default is 1)"
+#~ msgstr "nombre de signatures compl�tes requises (1)"
+
+#~ msgid "(default is 3)"
+#~ msgstr "nombre de signatures marginales requises (3)"
+
+#~ msgid " (%d) ElGamal in a v3 packet\n"
+#~ msgstr " (%d) ElGamal dans un paquet v3\n"
+
+#~ msgid "Key generation can only be used in interactive mode\n"
+#~ msgstr "La g�n�ration de cl� ne peut �tre faite qu'en mode interactif\n"
diff --git a/po/id.po b/po/id.po
new file mode 100644
index 000000000..fda528363
--- /dev/null
+++ b/po/id.po
@@ -0,0 +1,3647 @@
+# GNU Privacy Guard 1.0.1 (Indonesian)
+# Copyright (C) 1999 Free Software Foundation, Inc.
+# Tedi Heriyanto <[email protected]>, 1999-2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU Privacy Guard 1.0.1\n"
+"POT-Creation-Date: 2000-05-30 13:59+0200\n"
+"PO-Revision-Date: 2000-02-06 18:04+07:00\n"
+"Last-Translator: Tedi Heriyanto <[email protected]>\n"
+"Language-Team: Indonesia <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: util/secmem.c:79
+msgid "Warning: using insecure memory!\n"
+msgstr "Peringatan: menggunakan memori yang tidak aman!\n"
+
+#: util/secmem.c:287
+msgid "operation is not possible without initialized secure memory\n"
+msgstr "operasi tidak mungkin tanpa menginisialisasi memori yang aman\n"
+
+#: util/secmem.c:288
+msgid "(you may have used the wrong program for this task)\n"
+msgstr "(anda mungkin menggunakan program yang salah untuk tugas ini)\n"
+
+#: util/miscutil.c:277 util/miscutil.c:306
+msgid "yes"
+msgstr "ya"
+
+#: util/miscutil.c:278 util/miscutil.c:309
+msgid "yY"
+msgstr "yY"
+
+#: util/miscutil.c:279 util/miscutil.c:307
+msgid "no"
+msgstr "tidak"
+
+#: util/miscutil.c:280 util/miscutil.c:310
+msgid "nN"
+msgstr "tT"
+
+#: g10/keyedit.c:580 util/miscutil.c:308
+msgid "quit"
+msgstr "keluar"
+
+#: util/miscutil.c:311
+msgid "qQ"
+msgstr "kK"
+
+#: util/errors.c:54
+msgid "general error"
+msgstr "Kesalahan umum"
+
+#: util/errors.c:55
+msgid "unknown packet type"
+msgstr "tipe paket tidak dikenal"
+
+#: util/errors.c:56
+msgid "unknown version"
+msgstr "versi tidak dikenal"
+
+#: util/errors.c:57
+msgid "unknown pubkey algorithm"
+msgstr "algoritma pubkey tidak dikenal"
+
+#: util/errors.c:58
+msgid "unknown digest algorithm"
+msgstr "algoritma digest tidak dikenal"
+
+#: util/errors.c:59
+msgid "bad public key"
+msgstr "kunci publik yang buruk"
+
+#: util/errors.c:60
+msgid "bad secret key"
+msgstr "kunci rahasia yang buruk"
+
+#: util/errors.c:61
+msgid "bad signature"
+msgstr "signature yang buruk"
+
+#: util/errors.c:62
+msgid "checksum error"
+msgstr "kesalahan checksum"
+
+#: util/errors.c:63
+msgid "bad passphrase"
+msgstr "passphrase yang buruk"
+
+#: util/errors.c:64
+msgid "public key not found"
+msgstr "kunci publik tidak ditemukan"
+
+#: util/errors.c:65
+msgid "unknown cipher algorithm"
+msgstr "algoritma cipher tidak dikenal"
+
+#: util/errors.c:66
+msgid "can't open the keyring"
+msgstr "tidak dapat membuka keyring"
+
+#: util/errors.c:67
+msgid "invalid packet"
+msgstr "paket tidak valid"
+
+#: util/errors.c:68
+msgid "invalid armor"
+msgstr "armor tidak valid"
+
+#: util/errors.c:69
+msgid "no such user id"
+msgstr "tidak ada user id tsb"
+
+#: util/errors.c:70
+msgid "secret key not available"
+msgstr "kunci rahasia tidak ada"
+
+#: util/errors.c:71
+msgid "wrong secret key used"
+msgstr "digunakan kunci rahasia yang salah"
+
+#: util/errors.c:72
+msgid "not supported"
+msgstr "tidak didukung"
+
+#: util/errors.c:73
+msgid "bad key"
+msgstr "kunci yang buruk"
+
+#: util/errors.c:74
+msgid "file read error"
+msgstr "kesalahan baca file"
+
+#: util/errors.c:75
+msgid "file write error"
+msgstr "kesalahan tulis file"
+
+#: util/errors.c:76
+msgid "unknown compress algorithm"
+msgstr "algoritma kompresi tidak dikenal"
+
+#: util/errors.c:77
+msgid "file open error"
+msgstr "kesalahan buka file"
+
+#: util/errors.c:78
+msgid "file create error"
+msgstr "kesalahan buat file"
+
+#: util/errors.c:79
+msgid "invalid passphrase"
+msgstr "passphrase tidak valid"
+
+#: util/errors.c:80
+msgid "unimplemented pubkey algorithm"
+msgstr "algoritma pubkey belum diimplementasikan"
+
+#: util/errors.c:81
+msgid "unimplemented cipher algorithm"
+msgstr "algoritma cipher belum diimplementasikan"
+
+#: util/errors.c:82
+msgid "unknown signature class"
+msgstr "kelas signature tidak dikenal"
+
+#: util/errors.c:83
+msgid "trust database error"
+msgstr "kesalahan database trust"
+
+#: util/errors.c:84
+msgid "bad MPI"
+msgstr "MPI yang buruk"
+
+#: util/errors.c:85
+msgid "resource limit"
+msgstr "batasan sumber daya"
+
+#: util/errors.c:86
+msgid "invalid keyring"
+msgstr "keyring tidak valid"
+
+#: util/errors.c:87
+msgid "bad certificate"
+msgstr "sertifikat yang buruk"
+
+#: util/errors.c:88
+msgid "malformed user id"
+msgstr "user id yang tidak benar"
+
+#: util/errors.c:89
+msgid "file close error"
+msgstr "kesalahan tutup file"
+
+#: util/errors.c:90
+msgid "file rename error"
+msgstr "kesalahan ganti nama file"
+
+#: util/errors.c:91
+msgid "file delete error"
+msgstr "kesalahan hapus file"
+
+#: util/errors.c:92
+msgid "unexpected data"
+msgstr "data tidak terduga"
+
+#: util/errors.c:93
+msgid "timestamp conflict"
+msgstr "konflik timestamp"
+
+#: util/errors.c:94
+msgid "unusable pubkey algorithm"
+msgstr "algoritma pubkey tidak dapat digunakan"
+
+#: util/errors.c:95
+msgid "file exists"
+msgstr "file ada"
+
+#: util/errors.c:96
+msgid "weak key"
+msgstr "kunci lemah"
+
+#: util/errors.c:97
+msgid "invalid argument"
+msgstr "argumen tidak valid"
+
+#: util/errors.c:98
+msgid "bad URI"
+msgstr "URI yang buruk"
+
+#: util/errors.c:99
+msgid "unsupported URI"
+msgstr "URI tidak didukung"
+
+#: util/errors.c:100
+msgid "network error"
+msgstr "kesalahan jaringan"
+
+#: util/errors.c:102
+msgid "not encrypted"
+msgstr "tidak dienkripsi"
+
+#: util/errors.c:103
+#, fuzzy
+msgid "not processed"
+msgstr "%lu kunci diproses\n"
+
+#: util/logger.c:224
+#, c-format
+msgid "... this is a bug (%s:%d:%s)\n"
+msgstr "... kesalahan (%s:%d:%s)\n"
+
+#: util/logger.c:230
+#, c-format
+msgid "you found a bug ... (%s:%d)\n"
+msgstr "anda menemukan kesalahan ...(%s:%d)\n"
+
+#: cipher/random.c:311 g10/import.c:127 g10/keygen.c:1150
+#, c-format
+msgid "can't open `%s': %s\n"
+msgstr "tidak dapat membuka `%s': %s\n"
+
+#: cipher/random.c:315
+#, fuzzy, c-format
+msgid "can't stat `%s': %s\n"
+msgstr "tidak dapat membuka `%s': %s\n"
+
+#: cipher/random.c:320
+#, c-format
+msgid "`%s' is not a regular file - ignored\n"
+msgstr ""
+
+#: cipher/random.c:325
+msgid "note: random_seed file is empty\n"
+msgstr ""
+
+#: cipher/random.c:331
+msgid "warning: invalid size of random_seed file - not used\n"
+msgstr ""
+
+#: cipher/random.c:339
+#, fuzzy, c-format
+msgid "can't read `%s': %s\n"
+msgstr "tidak dapat membuka `%s': %s\n"
+
+#: cipher/random.c:377
+msgid "note: random_seed file not updated\n"
+msgstr ""
+
+#: cipher/random.c:397
+#, fuzzy, c-format
+msgid "can't create `%s': %s\n"
+msgstr "tidak dapat membuat %s: %s\n"
+
+#: cipher/random.c:404
+#, fuzzy, c-format
+msgid "can't write `%s': %s\n"
+msgstr "tidak dapat membuka `%s': %s\n"
+
+#: cipher/random.c:407
+#, fuzzy, c-format
+msgid "can't close `%s': %s\n"
+msgstr "tidak dapat membuka `%s': %s\n"
+
+#: cipher/random.c:418
+#, c-format
+msgid "too many random bits requested; the limit is %d\n"
+msgstr ""
+
+#: cipher/random.c:647
+msgid "WARNING: using insecure random number generator!!\n"
+msgstr "PERINGATAN: menggunakan random number generator yang tidak aman!!\n"
+
+#: cipher/random.c:648
+msgid ""
+"The random number generator is only a kludge to let\n"
+"it run - it is in no way a strong RNG!\n"
+"\n"
+"DON'T USE ANY DATA GENERATED BY THIS PROGRAM!!\n"
+"\n"
+msgstr ""
+"Random number generator yang digunakan tidak aman,\n"
+"ia bukanlah RNG yang kuat!\n"
+"\n"
+"JANGAN MENGGUNAKAN DATA YANG DIHASILKAN PROGRAM INI!!\n"
+"\n"
+
+#: cipher/rndlinux.c:141
+#, c-format
+msgid ""
+"\n"
+"Not enough random bytes available. Please do some other work to give\n"
+"the OS a chance to collect more entropy! (Need %d more bytes)\n"
+msgstr ""
+"\n"
+"Tidak tersedia cukup byte random. Silakan melakukan aktivitas lain agar\n"
+"memungkinkan SO mengumpulkan lebih banyak entropi! (Perlu %d byte lagi)\n"
+
+#: g10/g10.c:195
+msgid ""
+"@Commands:\n"
+" "
+msgstr ""
+"@Perintah:\n"
+" "
+
+#: g10/g10.c:197
+msgid "|[file]|make a signature"
+msgstr "|[file]|buat signature"
+
+#: g10/g10.c:198
+msgid "|[file]|make a clear text signature"
+msgstr "|[file]|buat signature teks"
+
+#: g10/g10.c:199
+msgid "make a detached signature"
+msgstr "buat detached signature"
+
+#: g10/g10.c:200
+msgid "encrypt data"
+msgstr "enkripsi data"
+
+#: g10/g10.c:201
+msgid "encryption only with symmetric cipher"
+msgstr "enkripsi hanya dengan symmetric cipher"
+
+#: g10/g10.c:202
+msgid "store only"
+msgstr "hanya disimpan"
+
+#: g10/g10.c:203
+msgid "decrypt data (default)"
+msgstr "dekripsi data (default)"
+
+#: g10/g10.c:204
+msgid "verify a signature"
+msgstr "verifikasi signature"
+
+#: g10/g10.c:206
+msgid "list keys"
+msgstr "tampilkan kunci"
+
+#: g10/g10.c:208
+msgid "list keys and signatures"
+msgstr "tampilkan kunci dan signature"
+
+#: g10/g10.c:209
+msgid "check key signatures"
+msgstr "periksa signature kunci"
+
+#: g10/g10.c:210
+msgid "list keys and fingerprints"
+msgstr "tampilkan kunci dan fingerprint"
+
+#: g10/g10.c:211
+msgid "list secret keys"
+msgstr "tampilkan kunci rahasia"
+
+#: g10/g10.c:212
+msgid "generate a new key pair"
+msgstr "buat sepasang kunci baru"
+
+#: g10/g10.c:213
+msgid "remove key from the public keyring"
+msgstr "hapus kunci dari keyring publik"
+
+#: g10/g10.c:215
+#, fuzzy
+msgid "remove key from the secret keyring"
+msgstr "hapus kunci dari keyring publik"
+
+#: g10/g10.c:216
+msgid "sign a key"
+msgstr "tandai kunci"
+
+#: g10/g10.c:217
+msgid "sign a key locally"
+msgstr "tandai kunci secara lokal"
+
+#: g10/g10.c:218
+msgid "sign or edit a key"
+msgstr "tandai atau edit kunci"
+
+#: g10/g10.c:219
+msgid "generate a revocation certificate"
+msgstr "buat sertifikat revokasi"
+
+#: g10/g10.c:220
+msgid "export keys"
+msgstr "ekspor kunci"
+
+#: g10/g10.c:221
+msgid "export keys to a key server"
+msgstr "ekspor kunci ke key server"
+
+#: g10/g10.c:222
+msgid "import keys from a key server"
+msgstr "impor kunci dari key server"
+
+#: g10/g10.c:226
+msgid "import/merge keys"
+msgstr "impor/gabung kunci"
+
+#: g10/g10.c:228
+msgid "list only the sequence of packets"
+msgstr "tampilkan hanya urutan paket"
+
+#: g10/g10.c:230
+msgid "export the ownertrust values"
+msgstr "ekspor nilai ownertrust"
+
+#: g10/g10.c:232
+msgid "import ownertrust values"
+msgstr "impor nilai ownertrust"
+
+#: g10/g10.c:234
+msgid "update the trust database"
+msgstr "perbarui database trust"
+
+#: g10/g10.c:236
+msgid "|[NAMES]|check the trust database"
+msgstr "|[NAMA]|periksa database trust"
+
+#: g10/g10.c:237
+msgid "fix a corrupted trust database"
+msgstr "perbaiki database trust yang terkorupsi"
+
+#: g10/g10.c:238
+msgid "De-Armor a file or stdin"
+msgstr "De-Armor file atau stdin"
+
+#: g10/g10.c:240
+msgid "En-Armor a file or stdin"
+msgstr "En-Armor file atau stdin"
+
+#: g10/g10.c:242
+msgid "|algo [files]|print message digests"
+msgstr "|algo [file]|cetak digest pesan"
+
+#: g10/g10.c:246
+msgid ""
+"@\n"
+"Options:\n"
+" "
+msgstr ""
+"@\n"
+"Pilihan:\n"
+" "
+
+#: g10/g10.c:248
+msgid "create ascii armored output"
+msgstr "ciptakan output ascii"
+
+#: g10/g10.c:250
+msgid "|NAME|encrypt for NAME"
+msgstr "|NAMA|enkripsi untuk NAMA"
+
+#: g10/g10.c:253
+msgid "|NAME|use NAME as default recipient"
+msgstr "|NAMA|gunakan NAMA sebagai penerima baku"
+
+#: g10/g10.c:255
+msgid "use the default key as default recipient"
+msgstr "gunakan kunci baku sebagai penerima baku"
+
+#: g10/g10.c:259
+msgid "use this user-id to sign or decrypt"
+msgstr "gunakan id-user ini untuk menandai/dekripsi"
+
+#: g10/g10.c:260
+msgid "|N|set compress level N (0 disables)"
+msgstr "|N|set tingkat kompresi N (0 tidak ada)"
+
+#: g10/g10.c:262
+msgid "use canonical text mode"
+msgstr "gunakan mode teks kanonikal"
+
+#: g10/g10.c:263
+msgid "use as output file"
+msgstr "gunakan sebagai file output"
+
+#: g10/g10.c:264
+msgid "verbose"
+msgstr "detil"
+
+#: g10/g10.c:265
+msgid "be somewhat more quiet"
+msgstr "lebih diam"
+
+#: g10/g10.c:266
+msgid "don't use the terminal at all"
+msgstr "jangan menggunakan terminal"
+
+#: g10/g10.c:267
+msgid "force v3 signatures"
+msgstr "paksa signature v3"
+
+#: g10/g10.c:268
+msgid "always use a MDC for encryption"
+msgstr "selalu gunakan MDC untuk enkripsi"
+
+#: g10/g10.c:269
+msgid "do not make any changes"
+msgstr "jangan buat perubahan"
+
+#. { oInteractive, "interactive", 0, N_("prompt before overwriting") },
+#: g10/g10.c:271
+msgid "batch mode: never ask"
+msgstr "mode batch: tanpa tanya"
+
+#: g10/g10.c:272
+msgid "assume yes on most questions"
+msgstr "asumsikan ya untuk seluruh pertanyaan"
+
+#: g10/g10.c:273
+msgid "assume no on most questions"
+msgstr "asumsikan tidak untuk seluruh pertanyaan"
+
+#: g10/g10.c:274
+msgid "add this keyring to the list of keyrings"
+msgstr "tambah keyring ini ke daftar keyring"
+
+#: g10/g10.c:275
+msgid "add this secret keyring to the list"
+msgstr "tambah keyring rahasia ini ke daftar"
+
+#: g10/g10.c:276
+msgid "|NAME|use NAME as default secret key"
+msgstr "|NAMA|gunakan NAMA sebagai kunci rahasia baku"
+
+#: g10/g10.c:277
+msgid "|HOST|use this keyserver to lookup keys"
+msgstr "|HOST|gunakan keyserver ini utk lihat kunci"
+
+#: g10/g10.c:278
+msgid "|NAME|set terminal charset to NAME"
+msgstr "|NAMA|set charset terminal ke NAMA"
+
+#: g10/g10.c:279
+msgid "read options from file"
+msgstr "baca pilihan dari file"
+
+#: g10/g10.c:283
+msgid "|FD|write status info to this FD"
+msgstr "|FD|tulis info status ke FD ini"
+
+#: g10/g10.c:288
+msgid "|FILE|load extension module FILE"
+msgstr "|FILE|muat modul ekstensi FILE"
+
+#: g10/g10.c:289
+msgid "emulate the mode described in RFC1991"
+msgstr "emulasikan mode seperti dalam RFC1991"
+
+#: g10/g10.c:290
+msgid "set all packet, cipher and digest options to OpenPGP behavior"
+msgstr "set pilihan paket, cipher, digest ke OpenPGP"
+
+#: g10/g10.c:291
+msgid "|N|use passphrase mode N"
+msgstr "|N|gunakan passphrase mode N"
+
+#: g10/g10.c:293
+msgid "|NAME|use message digest algorithm NAME for passphrases"
+msgstr "|NAMA|gunakan algoritma digest NAMA utk passphrase"
+
+#: g10/g10.c:295
+msgid "|NAME|use cipher algorithm NAME for passphrases"
+msgstr "|NAMA|gunakan algoritma cipher NAMA untuk passphrase"
+
+#: g10/g10.c:296
+msgid "|NAME|use cipher algorithm NAME"
+msgstr "|NAMA|gunakan algoritma cipher NAMA"
+
+#: g10/g10.c:297
+msgid "|NAME|use message digest algorithm NAME"
+msgstr "|NAMA|gunakan algoritma digest pesan NAMA"
+
+#: g10/g10.c:298
+msgid "|N|use compress algorithm N"
+msgstr "|N|gunakan algoritma kompresi N"
+
+#: g10/g10.c:299
+msgid "throw keyid field of encrypted packets"
+msgstr "buang field keyid paket terenkripsi"
+
+#: g10/g10.c:300
+msgid "|NAME=VALUE|use this notation data"
+msgstr "|NAMA=NILAI|gunakan notasi data ini"
+
+#: g10/g10.c:303
+msgid ""
+"@\n"
+"(See the man page for a complete listing of all commands and options)\n"
+msgstr ""
+
+#: g10/g10.c:306
+msgid ""
+"@\n"
+"Examples:\n"
+"\n"
+" -se -r Bob [file] sign and encrypt for user Bob\n"
+" --clearsign [file] make a clear text signature\n"
+" --detach-sign [file] make a detached signature\n"
+" --list-keys [names] show keys\n"
+" --fingerprint [names] show fingerprints\n"
+msgstr ""
+"@\n"
+"Contoh:\n"
+"\n"
+" -se -r Bob [file] tandai dan enkripsi untuk user Bob\n"
+" --clearsign [file] buat signature berbentuk teks\n"
+" --detach-sign [file] buat signature detached\n"
+" --list-keys [nama] tampilkan kunci\n"
+" --fingerprint [nama] tampilkan fingerprint\n"
+
+#: g10/g10.c:399
+msgid "Please report bugs to <[email protected]>.\n"
+msgstr "Silakan laporkan kesalahan ke <[email protected]>.\n"
+
+#: g10/g10.c:403
+msgid "Usage: gpg [options] [files] (-h for help)"
+msgstr "Pemakaian: gpg [pilihan] [file] (-h untuk bantuan)"
+
+#: g10/g10.c:406
+msgid ""
+"Syntax: gpg [options] [files]\n"
+"sign, check, encrypt or decrypt\n"
+"default operation depends on the input data\n"
+msgstr ""
+"Sintaks: gpg [pilihan] [file]\n"
+"tandai, cek, enkripsi atau dekripsi\n"
+"operasi baku tergantung pada data input\n"
+
+#: g10/g10.c:413
+msgid ""
+"\n"
+"Supported algorithms:\n"
+msgstr ""
+"\n"
+"Algoritma yang didukung:\n"
+
+#: g10/g10.c:492
+msgid "usage: gpg [options] "
+msgstr "pemakaian: gpg [pilihan] "
+
+#: g10/g10.c:545
+msgid "conflicting commands\n"
+msgstr "perintah saling konflik\n"
+
+#: g10/g10.c:687
+#, c-format
+msgid "NOTE: no default option file `%s'\n"
+msgstr "CATATAN: tidak ada file pilihan baku `%s'\n"
+
+#: g10/g10.c:691
+#, c-format
+msgid "option file `%s': %s\n"
+msgstr "file pilihan `%s': %s\n"
+
+#: g10/g10.c:698
+#, c-format
+msgid "reading options from `%s'\n"
+msgstr "membaca pilihan dari `%s'\n"
+
+#: g10/g10.c:885
+#, c-format
+msgid "%s is not a valid character set\n"
+msgstr "%s bukanlah set karakter yang valid\n"
+
+#: g10/g10.c:945 g10/g10.c:954
+#, c-format
+msgid "NOTE: %s is not for normal use!\n"
+msgstr "CATATAN: %s tidak untuk pemakaian normal!\n"
+
+#: g10/g10.c:947
+#, c-format
+msgid "%s not allowed with %s!\n"
+msgstr "%s tidak dibolehkan dengan %s!\n"
+
+#: g10/g10.c:950
+#, c-format
+msgid "%s makes no sense with %s!\n"
+msgstr "%s tidak masuk akal dengan %s!\n"
+
+#: g10/g10.c:969 g10/g10.c:981
+msgid "selected cipher algorithm is invalid\n"
+msgstr "algoritma cipher yang dipilih tidak valid\n"
+
+#: g10/g10.c:975 g10/g10.c:987
+msgid "selected digest algorithm is invalid\n"
+msgstr "algoritma digest yang dipilih tidak valid\n"
+
+#: g10/g10.c:991
+msgid "the given policy URL is invalid\n"
+msgstr "kebijakan URL yang diberikan tidak valid\n"
+
+#: g10/g10.c:994
+#, c-format
+msgid "compress algorithm must be in range %d..%d\n"
+msgstr "algoritma kompresi harus di antara %d..%d\n"
+
+#: g10/g10.c:996
+msgid "completes-needed must be greater than 0\n"
+msgstr "completes-needed harus lebih dari 0\n"
+
+#: g10/g10.c:998
+msgid "marginals-needed must be greater than 1\n"
+msgstr "marginals-needed harus lebih dari 1\n"
+
+#: g10/g10.c:1000
+msgid "max-cert-depth must be in range 1 to 255\n"
+msgstr "max-cert-depth harus di antara 1 hingga 255\n"
+
+#: g10/g10.c:1003
+msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
+msgstr "CATATAN: mode S2K sederhana (0) tidak dianjurkan\n"
+
+#: g10/g10.c:1007
+msgid "invalid S2K mode; must be 0, 1 or 3\n"
+msgstr "mode S2K yang tidak valid; harus 0, 1 atau 3\n"
+
+#: g10/g10.c:1092
+#, c-format
+msgid "failed to initialize the TrustDB: %s\n"
+msgstr "gagal inisialisasi TrustDB: %s\n"
+
+#: g10/g10.c:1098
+msgid "--store [filename]"
+msgstr "--store [namafile]"
+
+#: g10/g10.c:1105
+msgid "--symmetric [filename]"
+msgstr "--symmetric [namafile]"
+
+#: g10/g10.c:1113
+msgid "--encrypt [filename]"
+msgstr "--encrypt [namafile]"
+
+#: g10/g10.c:1126
+msgid "--sign [filename]"
+msgstr "--sign [namafile]"
+
+#: g10/g10.c:1139
+msgid "--sign --encrypt [filename]"
+msgstr "--sign --encrypt [namafile]"
+
+#: g10/g10.c:1153
+msgid "--clearsign [filename]"
+msgstr "--clearsign [namafile]"
+
+#: g10/g10.c:1170
+msgid "--decrypt [filename]"
+msgstr "--decrypt [namafile]"
+
+#: g10/g10.c:1178
+msgid "--sign-key user-id"
+msgstr "--sign-key id-user"
+
+#: g10/g10.c:1186
+msgid "--lsign-key user-id"
+msgstr "--lsign-key id-user"
+
+#: g10/g10.c:1194
+msgid "--edit-key user-id [commands]"
+msgstr "--edit-key id-user [perintah]"
+
+#: g10/g10.c:1210
+msgid "--delete-secret-key user-id"
+msgstr "--delete-secret-key id-user"
+
+#: g10/g10.c:1213
+msgid "--delete-key user-id"
+msgstr "--delete-key id-user"
+
+#: g10/encode.c:260 g10/g10.c:1250 g10/sign.c:373
+#, c-format
+msgid "can't open %s: %s\n"
+msgstr "tidak dapat membuka %s: %s\n"
+
+#: g10/g10.c:1265
+msgid "-k[v][v][v][c] [user-id] [keyring]"
+msgstr "-k[v][v][v][c] [id-user] [keyring]"
+
+#: g10/g10.c:1331
+#, c-format
+msgid "dearmoring failed: %s\n"
+msgstr "gagal dearmoring: %s\n"
+
+#: g10/g10.c:1339
+#, c-format
+msgid "enarmoring failed: %s\n"
+msgstr "gagal enarmoring: %s\n"
+
+#: g10/g10.c:1407
+#, c-format
+msgid "invalid hash algorithm `%s'\n"
+msgstr "algoritma hash tidak valid `%s'\n"
+
+#: g10/g10.c:1488
+msgid "[filename]"
+msgstr "[namafile]"
+
+#: g10/g10.c:1492
+msgid "Go ahead and type your message ...\n"
+msgstr "Teruskan dan ketikkan pesan anda ....\n"
+
+#: g10/decrypt.c:59 g10/g10.c:1495 g10/verify.c:68 g10/verify.c:113
+#, c-format
+msgid "can't open `%s'\n"
+msgstr "tidak dapat membuka `%s'\n"
+
+#: g10/g10.c:1665
+msgid ""
+"the first character of a notation name must be a letter or an underscore\n"
+msgstr "karakter pertama nama notasi harus huruf atau garis bawah\n"
+
+#: g10/g10.c:1671
+msgid ""
+"a notation name must have only letters, digits, dots or underscores and end "
+"with an '='\n"
+msgstr ""
+"nama notasi hanya terdiri dari huruf, digit, titik atau garis bawah dan "
+"diakhiri dengan sebuah '='\n"
+
+#: g10/g10.c:1677
+msgid "dots in a notation name must be surrounded by other characters\n"
+msgstr "titik dalam nama notasi harus diapit oleh karakter lain\n"
+
+#: g10/g10.c:1685
+msgid "a notation value must not use any control characters\n"
+msgstr "nilai notasi tidak boleh menggunakan karakter kendali\n"
+
+#: g10/armor.c:302
+#, c-format
+msgid "armor: %s\n"
+msgstr "armor: %s\n"
+
+#: g10/armor.c:331
+msgid "invalid armor header: "
+msgstr "header armor tidak valid: "
+
+#: g10/armor.c:338
+msgid "armor header: "
+msgstr "header armor: "
+
+#: g10/armor.c:349
+msgid "invalid clearsig header\n"
+msgstr "header clearsig tidak valid\n"
+
+#: g10/armor.c:401
+msgid "nested clear text signatures\n"
+msgstr "signature teks bersarang\n"
+
+#: g10/armor.c:525
+msgid "invalid dash escaped line: "
+msgstr "dash escaped line tidak valid: "
+
+#: g10/armor.c:537
+msgid "unexpected armor:"
+msgstr "armor tidak terduga:"
+
+#: g10/armor.c:654
+#, c-format
+msgid "invalid radix64 character %02x skipped\n"
+msgstr "karakter radix64 tidak valid %02x dilewati\n"
+
+#: g10/armor.c:697
+msgid "premature eof (no CRC)\n"
+msgstr "eof prematur (tanpa CRC)\n"
+
+#: g10/armor.c:731
+msgid "premature eof (in CRC)\n"
+msgstr "eof prematur (dalam CRC)\n"
+
+#: g10/armor.c:735
+msgid "malformed CRC\n"
+msgstr "CRC tidak tepat\n"
+
+#: g10/armor.c:739
+#, c-format
+msgid "CRC error; %06lx - %06lx\n"
+msgstr "kesalahan CRC; %06lx - %06lx\n"
+
+#: g10/armor.c:756
+msgid "premature eof (in Trailer)\n"
+msgstr "eof prematur (dalam Trailer)\n"
+
+#: g10/armor.c:760
+msgid "error in trailer line\n"
+msgstr "kesalahan dalam garis trailer\n"
+
+#: g10/armor.c:912
+msgid "For info see http://www.gnupg.org"
+msgstr ""
+
+#: g10/armor.c:1033
+msgid "no valid OpenPGP data found.\n"
+msgstr "tidak ditemukan data OpenPGP yang valid.\n"
+
+#: g10/armor.c:1038
+#, c-format
+msgid "invalid armor: line longer than %d characters\n"
+msgstr "armor tidak valid: baris melebihi %d karakter\n"
+
+#: g10/armor.c:1042
+msgid ""
+"quoted printable character in armor - probably a buggy MTA has been used\n"
+msgstr ""
+"karakter dapat dicetak dalam armor - mungkin kesalahan pada MTA telah "
+"dipakai\n"
+
+#. Translators: this shoud fit into 24 bytes to that the fingerprint
+#. * data is properly aligned with the user ID
+#: g10/pkclist.c:53
+msgid " Fingerprint:"
+msgstr " Fingerprint:"
+
+#: g10/pkclist.c:80
+msgid "Fingerprint:"
+msgstr "Fingerprint:"
+
+#: g10/pkclist.c:116
+msgid "No reason specified"
+msgstr ""
+
+#: g10/pkclist.c:118
+#, fuzzy
+msgid "Key is superseeded"
+msgstr "Kunci diproteksi.\n"
+
+#: g10/pkclist.c:120
+#, fuzzy
+msgid "Key has been compromised"
+msgstr "Kunci ini telah ditiadakan"
+
+#: g10/pkclist.c:122
+msgid "Key is no longer used"
+msgstr ""
+
+#: g10/pkclist.c:124
+msgid "User ID is no longer valid"
+msgstr ""
+
+#: g10/pkclist.c:128
+msgid "Reason for revocation: "
+msgstr ""
+
+#: g10/pkclist.c:145
+msgid "Revocation comment: "
+msgstr ""
+
+#. a string with valid answers
+#: g10/pkclist.c:303
+msgid "sSmMqQ"
+msgstr "sSmMqQ"
+
+#: g10/pkclist.c:307
+#, c-format
+msgid ""
+"No trust value assigned to %lu:\n"
+"%4u%c/%08lX %s \""
+msgstr ""
+"Tidak ada nilai trust untuk %lu:\n"
+"%4u%c/%08lX %s \""
+
+#: g10/pkclist.c:319
+msgid ""
+"Please decide how far you trust this user to correctly\n"
+"verify other users' keys (by looking at passports,\n"
+"checking fingerprints from different sources...)?\n"
+"\n"
+" 1 = Don't know\n"
+" 2 = I do NOT trust\n"
+" 3 = I trust marginally\n"
+" 4 = I trust fully\n"
+" s = please show me more information\n"
+msgstr ""
+"Silakan putuskan seberapa jauh anda percaya user ini untuk\n"
+"secara tepat memverifikasi kunci user lain (dengan melihat pada passpor,\n"
+"memeriksa fingerprint dari berbagai sumber...)?\n"
+" 1 = Tidak tahu\n"
+" 2 = Saya TIDAK percaya\n"
+" 3 = Saya cukup percaya\n"
+" 4 = Saya sangat percaya\n"
+" s = tampilkan lebih banyak informasi\n"
+" \n"
+
+#: g10/pkclist.c:328
+msgid " m = back to the main menu\n"
+msgstr " m = kembali ke menu utama\n"
+
+#: g10/pkclist.c:330
+msgid " q = quit\n"
+msgstr " q = berhenti\n"
+
+#: g10/pkclist.c:336
+msgid "Your decision? "
+msgstr "Keputusan anda? "
+
+#: g10/pkclist.c:358
+msgid "Certificates leading to an ultimately trusted key:\n"
+msgstr "Sertifikat mengarahkan ke kunci terpercaya:\n"
+
+#: g10/pkclist.c:429
+msgid ""
+"Could not find a valid trust path to the key. Let's see whether we\n"
+"can assign some missing owner trust values.\n"
+"\n"
+msgstr ""
+"Tidak dapat menemukan jalur trust yang valid ke kunci. Mari kita coba\n"
+"apakah dapat mengisi nilai trust pemilik yang hilang.\n"
+
+#: g10/pkclist.c:435
+msgid ""
+"No path leading to one of our keys found.\n"
+"\n"
+msgstr ""
+"Tidak ditemukan jalur ke salah satu kunci.\n"
+"\n"
+
+#: g10/pkclist.c:437
+msgid ""
+"No certificates with undefined trust found.\n"
+"\n"
+msgstr ""
+"Tidak ditemukan sertifikat dengan trust tak terdefinisi.\n"
+"\n"
+
+#: g10/pkclist.c:439
+msgid ""
+"No trust values changed.\n"
+"\n"
+msgstr ""
+"Tidak ada perubahan nilai trust.\n"
+"\n"
+
+#: g10/pkclist.c:457
+#, c-format
+msgid "key %08lX: key has been revoked!\n"
+msgstr "kunci %08lX: kunci telah dibatalkan!\n"
+
+#: g10/pkclist.c:464 g10/pkclist.c:476 g10/pkclist.c:598
+msgid "Use this key anyway? "
+msgstr "Tetap gunakan kunci ini? "
+
+#: g10/pkclist.c:469
+#, c-format
+msgid "key %08lX: subkey has been revoked!\n"
+msgstr "kunci %08lX: subkey telah dibatalkan!\n"
+
+#: g10/pkclist.c:512
+#, c-format
+msgid "%08lX: key has expired\n"
+msgstr "%08lX: kunci telah berakhir\n"
+
+#: g10/pkclist.c:518
+#, c-format
+msgid "%08lX: no info to calculate a trust probability\n"
+msgstr "%08lX: tidak ada info untuk menghitung probabilitas trust\n"
+
+#: g10/pkclist.c:533
+#, c-format
+msgid "%08lX: We do NOT trust this key\n"
+msgstr "%08lX: Kita tidak percaya kunci ini\n"
+
+#: g10/pkclist.c:539
+#, c-format
+msgid ""
+"%08lX: It is not sure that this key really belongs to the owner\n"
+"but it is accepted anyway\n"
+msgstr ""
+"%08lX: Tidak pasti kunci ini milik pemiliknya\n"
+"tapi tetap diterima\n"
+
+#: g10/pkclist.c:545
+msgid "This key probably belongs to the owner\n"
+msgstr "Kunci ini mungkin milik pemiliknya\n"
+
+#: g10/pkclist.c:550
+msgid "This key belongs to us\n"
+msgstr "Kunci ini milik kita\n"
+
+#: g10/pkclist.c:593
+msgid ""
+"It is NOT certain that the key belongs to its owner.\n"
+"If you *really* know what you are doing, you may answer\n"
+"the next question with yes\n"
+"\n"
+msgstr ""
+"Tidak pasti bahwa kunci milik pemiliknya.\n"
+"Jika anda yakin tahu apa yang sedang anda lakukan, anda boleh menjawab\n"
+"pertanyaan berikut dengan ya\n"
+
+#: g10/pkclist.c:607 g10/pkclist.c:630
+msgid "WARNING: Using untrusted key!\n"
+msgstr "PERINGATAN: Menggunakan kunci tidak dipercaya!\n"
+
+#: g10/pkclist.c:651
+msgid "WARNING: This key has been revoked by its owner!\n"
+msgstr "PERINGATAN: Kunci ini telah dibatalkan oleh pemiliknya!\n"
+
+#: g10/pkclist.c:652
+msgid " This could mean that the signature is forgery.\n"
+msgstr " Mungkin signature adalah palsu.\n"
+
+#: g10/pkclist.c:657
+msgid "WARNING: This subkey has been revoked by its owner!\n"
+msgstr "PERINGATAN: Subkey ini telah dibatalkan oleh pemiliknya!\n"
+
+#: g10/pkclist.c:679
+msgid "Note: This key has expired!\n"
+msgstr "Catatan: Kunci ini telah berakhir!\n"
+
+#: g10/pkclist.c:687
+msgid "WARNING: This key is not certified with a trusted signature!\n"
+msgstr ""
+"PERINGATAN: Kunci ini tidak disertifikasi dengan sig yang terpercaya!\n"
+
+#: g10/pkclist.c:689
+msgid ""
+" There is no indication that the signature belongs to the owner.\n"
+msgstr " Tidak ada indikasi signature milik pemilik.\n"
+
+#: g10/pkclist.c:706
+msgid "WARNING: We do NOT trust this key!\n"
+msgstr "PERINGATAN: Kita tidak percaya kunci ini!\n"
+
+#: g10/pkclist.c:707
+msgid " The signature is probably a FORGERY.\n"
+msgstr " Signature mungkin palsu.\n"
+
+#: g10/pkclist.c:714
+msgid ""
+"WARNING: This key is not certified with sufficiently trusted signatures!\n"
+msgstr ""
+"PERINGATAN: Kunci tdk disertifikasi dg signature terpercaya yg cukup!\n"
+
+#: g10/pkclist.c:717
+msgid " It is not certain that the signature belongs to the owner.\n"
+msgstr " Tidak pasti signature milik pemilik.\n"
+
+#: g10/pkclist.c:819 g10/pkclist.c:841 g10/pkclist.c:967 g10/pkclist.c:1012
+#, c-format
+msgid "%s: skipped: %s\n"
+msgstr "%s: dilewati: %s\n"
+
+#: g10/pkclist.c:827 g10/pkclist.c:994
+#, c-format
+msgid "%s: skipped: public key already present\n"
+msgstr "%s: dilewati: kunci publik telah ada\n"
+
+#: g10/pkclist.c:854
+msgid ""
+"You did not specify a user ID. (you may use \"-r\")\n"
+"\n"
+msgstr "Anda tidak menspesifikasikan ID user. (anda dapat gunakan \"-r\")\n"
+
+#: g10/pkclist.c:864
+msgid "Enter the user ID: "
+msgstr "Masukkan ID user: "
+
+#: g10/pkclist.c:876
+msgid "No such user ID.\n"
+msgstr "Tidak ada ID user tersebut.\n"
+
+#: g10/pkclist.c:881
+msgid "skipped: public key already set as default recipient\n"
+msgstr "dilewati: kunci publik telah diset sebagai penerima baku\n"
+
+#: g10/pkclist.c:904
+msgid "Public key is disabled.\n"
+msgstr "Kunci publik dimatikan.\n"
+
+#: g10/pkclist.c:911
+msgid "skipped: public key already set with --encrypt-to\n"
+msgstr "dilewati: kunci publik telah diset dengan --encrypt-to\n"
+
+#: g10/pkclist.c:942
+#, c-format
+msgid "unknown default recipient `%s'\n"
+msgstr "penerima baku tidak dikenal `%s'\n"
+
+#: g10/pkclist.c:975
+#, c-format
+msgid "%s: error checking key: %s\n"
+msgstr "%s: kesalahan memeriksa kunci: %s\n"
+
+#: g10/pkclist.c:980
+#, c-format
+msgid "%s: skipped: public key is disabled\n"
+msgstr "%s: dilewati: kunci publik dimatikan\n"
+
+#: g10/pkclist.c:1018
+msgid "no valid addressees\n"
+msgstr "tidak ada alamat yang valid\n"
+
+#: g10/keygen.c:175
+msgid "writing self signature\n"
+msgstr "menulis self signature\n"
+
+#: g10/keygen.c:213
+msgid "writing key binding signature\n"
+msgstr "menulis key binding signature\n"
+
+#: g10/keygen.c:261 g10/keygen.c:345
+#, fuzzy, c-format
+msgid "keysize invalid; using %u bits\n"
+msgstr "Keysize yang diminta adalah %u bit\n"
+
+#: g10/keygen.c:266 g10/keygen.c:350
+#, fuzzy, c-format
+msgid "keysize rounded up to %u bits\n"
+msgstr "dibulatkan hingga %u bit\n"
+
+#: g10/keygen.c:456
+msgid "Please select what kind of key you want:\n"
+msgstr "Silakan pilih kunci yang anda inginkan:\n"
+
+#: g10/keygen.c:458
+#, c-format
+msgid " (%d) DSA and ElGamal (default)\n"
+msgstr " (%d) DSA dan ElGamal (baku)\n"
+
+#: g10/keygen.c:459
+#, c-format
+msgid " (%d) DSA (sign only)\n"
+msgstr " (%d) DSA (hanya menandai)\n"
+
+#: g10/keygen.c:461
+#, c-format
+msgid " (%d) ElGamal (encrypt only)\n"
+msgstr " (%d) ElGamal (hanya enkripsi)\n"
+
+#: g10/keygen.c:462
+#, c-format
+msgid " (%d) ElGamal (sign and encrypt)\n"
+msgstr " (%d) ElGamal (tandai dan enkripsi)\n"
+
+#: g10/keygen.c:465
+msgid "Your selection? "
+msgstr "Pilihan anda? "
+
+#: g10/keygen.c:475
+msgid "Do you really want to create a sign and encrypt key? "
+msgstr "Anda ingin membuat kunci sign dan enkripsi? "
+
+#: g10/keygen.c:489
+msgid "Invalid selection.\n"
+msgstr "Pilihan tidak valid.\n"
+
+#: g10/keygen.c:501
+#, c-format
+msgid ""
+"About to generate a new %s keypair.\n"
+" minimum keysize is 768 bits\n"
+" default keysize is 1024 bits\n"
+" highest suggested keysize is 2048 bits\n"
+msgstr ""
+"Akan dibuat satu pasang kunci baru %s.\n"
+" keysize minimum adalah 768 bit\n"
+" keysize default adalah 1024 bit\n"
+" keysize tertinggi dianjurkan 2048 bit\n"
+
+#: g10/keygen.c:508
+msgid "What keysize do you want? (1024) "
+msgstr "Keysize yang anda inginkan? (1024) "
+
+#: g10/keygen.c:513
+msgid "DSA only allows keysizes from 512 to 1024\n"
+msgstr "DSA hanya membolehkan keysize dari 512 hingga 1024\n"
+
+#: g10/keygen.c:515
+msgid "keysize too small; 768 is smallest value allowed.\n"
+msgstr "keysize terlalu kecil; 768 adalah nilai terendah yang diijinkan.\n"
+
+#. It is ridiculous and an annoyance to use larger key sizes!
+#. * GnuPG can handle much larger sizes; but it takes an eternity
+#. * to create such a key (but less than the time the Sirius
+#. * Computer Corporation needs to process one of the usual
+#. * complaints) and {de,en}cryption although needs some time.
+#. * So, before you complain about this limitation, I suggest that
+#. * you start a discussion with Marvin about this theme and then
+#. * do whatever you want.
+#: g10/keygen.c:525
+#, c-format
+msgid "keysize too large; %d is largest value allowed.\n"
+msgstr "keysize terlalu besar; %d adalah nilai tertinggi yang diijinkan.\n"
+
+#: g10/keygen.c:530
+msgid ""
+"Keysizes larger than 2048 are not suggested because\n"
+"computations take REALLY long!\n"
+msgstr ""
+"Keysize lebih besar dari 2048 tidak dianjurkan karena\n"
+"komputasi akan sangat lama!\n"
+
+#: g10/keygen.c:533
+msgid "Are you sure that you want this keysize? "
+msgstr "Apakah anda yakin memerlukan keysize ini? "
+
+#: g10/keygen.c:534
+msgid ""
+"Okay, but keep in mind that your monitor and keyboard radiation is also very "
+"vulnerable to attacks!\n"
+msgstr ""
+"Oke, tetapi ingat bahwa radiasi monitor dan keyboard anda juga sangat mudah "
+"diserang!\n"
+
+#: g10/keygen.c:542
+msgid "Do you really need such a large keysize? "
+msgstr "Apakah anda perlu keysize berukuran besar tersebut? "
+
+#: g10/keygen.c:548
+#, c-format
+msgid "Requested keysize is %u bits\n"
+msgstr "Keysize yang diminta adalah %u bit\n"
+
+#: g10/keygen.c:551 g10/keygen.c:555
+#, c-format
+msgid "rounded up to %u bits\n"
+msgstr "dibulatkan hingga %u bit\n"
+
+#: g10/keygen.c:603
+msgid ""
+"Please specify how long the key should be valid.\n"
+" 0 = key does not expire\n"
+" <n> = key expires in n days\n"
+" <n>w = key expires in n weeks\n"
+" <n>m = key expires in n months\n"
+" <n>y = key expires in n years\n"
+msgstr ""
+"Silakan spesifikasikan lama kunci tetap valid.\n"
+" 0 = kunci tidak pernah berakhir\n"
+" <n> = kunci berakhir dalam n hari\n"
+" <n>w = kunci berakhir dalam n minggu\n"
+" <n>m = kunci berakhir dalam n bulan\n"
+" <n>y = kunci berakhir dalam n tahun\n"
+
+#: g10/keygen.c:618
+msgid "Key is valid for? (0) "
+msgstr "Kunci valid untuk? (0) "
+
+#: g10/keygen.c:623
+msgid "invalid value\n"
+msgstr "nilai yang tidak valid\n"
+
+#: g10/keygen.c:628
+msgid "Key does not expire at all\n"
+msgstr "Kunci tidak pernah berakhir\n"
+
+#. print the date when the key expires
+#: g10/keygen.c:634
+#, c-format
+msgid "Key expires at %s\n"
+msgstr "Kunci berakhir pada %s\n"
+
+#: g10/keygen.c:637
+msgid ""
+"Your system can't display dates beyond 2038.\n"
+"However, it will be correctly handled up to 2106.\n"
+msgstr ""
+
+#: g10/keygen.c:642
+msgid "Is this correct (y/n)? "
+msgstr "Benar (y/t)? "
+
+#: g10/keygen.c:685
+msgid ""
+"\n"
+"You need a User-ID to identify your key; the software constructs the user "
+"id\n"
+"from Real Name, Comment and Email Address in this form:\n"
+" \"Heinrich Heine (Der Dichter) <[email protected]>\"\n"
+"\n"
+msgstr ""
+"\n"
+"Anda perlu sebuah User-ID untuk mengidentifikasi kunci anda; software "
+"membuat \n"
+"user-id dari Nama sebenarnya, Komentar dan Alamat email dalam bentuk:\n"
+" \"Heinrich Heine (Der Dichter) <[email protected]>\"\n"
+
+#: g10/keygen.c:697
+msgid "Real name: "
+msgstr "Nama sebenarnya: "
+
+#: g10/keygen.c:701
+msgid "Invalid character in name\n"
+msgstr "Karakter tidak valid dalam nama\n"
+
+#: g10/keygen.c:703
+msgid "Name may not start with a digit\n"
+msgstr "Nama tidak boleh dimulai dengan digit\n"
+
+#: g10/keygen.c:705
+msgid "Name must be at least 5 characters long\n"
+msgstr "Nama harus berukuran minimum 5 karakter\n"
+
+#: g10/keygen.c:713
+msgid "Email address: "
+msgstr "Alamat email: "
+
+#: g10/keygen.c:724
+msgid "Not a valid email address\n"
+msgstr "Bukan alamat email yang valid\n"
+
+#: g10/keygen.c:732
+msgid "Comment: "
+msgstr "Komentar: "
+
+#: g10/keygen.c:738
+msgid "Invalid character in comment\n"
+msgstr "Karakter tidak valid dalam komentar\n"
+
+#: g10/keygen.c:761
+#, c-format
+msgid "You are using the `%s' character set.\n"
+msgstr "Anda menggunakan set karakter `%s'.\n"
+
+#: g10/keygen.c:767
+#, c-format
+msgid ""
+"You selected this USER-ID:\n"
+" \"%s\"\n"
+"\n"
+msgstr ""
+"Anda memilih USER-ID ini:\n"
+" \"%s\"\n"
+
+#: g10/keygen.c:771
+msgid "Please don't put the email address into the real name or the comment\n"
+msgstr ""
+
+#: g10/keygen.c:776
+msgid "NnCcEeOoQq"
+msgstr "NnKkEeOoQq"
+
+#: g10/keygen.c:786
+#, fuzzy
+msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
+msgstr "Ganti (N)ama, (K)omentar, (E)mail atau (O)ke/(Q)uit? "
+
+#: g10/keygen.c:787
+msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
+msgstr "Ganti (N)ama, (K)omentar, (E)mail atau (O)ke/(Q)uit? "
+
+#: g10/keygen.c:806
+msgid "Please correct the error first\n"
+msgstr ""
+
+#: g10/keygen.c:844
+msgid ""
+"You need a Passphrase to protect your secret key.\n"
+"\n"
+msgstr ""
+"Anda perlu sebuah passphrase untuk melindungi kunci rahasia anda.\n"
+"\n"
+
+#: g10/keyedit.c:468 g10/keygen.c:852
+msgid "passphrase not correctly repeated; try again.\n"
+msgstr "passphrase tidak diulang dengan benar; coba lagi.\n"
+
+#: g10/keygen.c:858
+msgid ""
+"You don't want a passphrase - this is probably a *bad* idea!\n"
+"I will do it anyway. You can change your passphrase at any time,\n"
+"using this program with the option \"--edit-key\".\n"
+"\n"
+msgstr ""
+"Anda tidak ingin sebuah passphrase - ini mungkin ide yang buruk!\n"
+"Namun saya akan tetap lakukan. Anda dapat merubah passphrase anda setiap "
+"saat,\n"
+"menggunakan program ini dengan pilihan \"--edit-key\".\n"
+
+#: g10/keygen.c:879
+msgid ""
+"We need to generate a lot of random bytes. It is a good idea to perform\n"
+"some other action (type on the keyboard, move the mouse, utilize the\n"
+"disks) during the prime generation; this gives the random number\n"
+"generator a better chance to gain enough entropy.\n"
+msgstr ""
+"Kita perlu membuat banyak byte random. Adalah ide yang baik untuk melakukan\n"
+"aksi lain (mengetik pada keyboard, menggerakkan mouse, memakai disk)\n"
+"selama pembuatan prima; ini akan memberi random number generator kesempatan\n"
+"yang baik untuk memperoleh entropi.\n"
+
+#: g10/keygen.c:1325
+msgid "DSA keypair will have 1024 bits.\n"
+msgstr "Keypair DSA akan memiliki 1024 bit.\n"
+
+#: g10/keygen.c:1368
+msgid "Key generation canceled.\n"
+msgstr "Pembuatan kunci dibatalkan.\n"
+
+#: g10/keygen.c:1465
+#, fuzzy, c-format
+msgid "writing public key to `%s'\n"
+msgstr "menulis sertifikat publik ke `%s'\n"
+
+#: g10/keygen.c:1466
+#, fuzzy, c-format
+msgid "writing secret key to `%s'\n"
+msgstr "menulis sertifikat rahasia ke `%s'\n"
+
+#: g10/keygen.c:1562
+msgid "public and secret key created and signed.\n"
+msgstr "kunci publik dan rahasia dibuat dan ditandai.\n"
+
+#: g10/keygen.c:1567
+msgid ""
+"Note that this key cannot be used for encryption. You may want to use\n"
+"the command \"--edit-key\" to generate a secondary key for this purpose.\n"
+msgstr ""
+"Perhatikan bahwa kunci ini tidak dapat digunakan untuk enkripsi. Anda \n"
+"mungkin ingin menggunakan perintah \"--edit-key\" untuk membuat kunci kedua "
+"untuk tujuan ini.\n"
+
+#: g10/keygen.c:1584 g10/keygen.c:1685
+#, c-format
+msgid "Key generation failed: %s\n"
+msgstr "Pembuatan kunci gagal: %s\n"
+
+#: g10/keygen.c:1628 g10/sig-check.c:318 g10/sign.c:111
+#, c-format
+msgid ""
+"key has been created %lu second in future (time warp or clock problem)\n"
+msgstr ""
+"kunci telah diciptakan dalam %lu detik mendatang (masalah waktu atau jam)\n"
+
+#: g10/keygen.c:1630 g10/sig-check.c:320 g10/sign.c:113
+#, c-format
+msgid ""
+"key has been created %lu seconds in future (time warp or clock problem)\n"
+msgstr ""
+"kunci telah diciptakan dalam %lu detik mendatang (masalah waktu atau jam)\n"
+
+#: g10/keygen.c:1663
+msgid "Really create? "
+msgstr "Ingin diciptakan? "
+
+#: g10/encode.c:91 g10/openfile.c:168 g10/openfile.c:277 g10/tdbio.c:454
+#: g10/tdbio.c:515
+#, c-format
+msgid "%s: can't open: %s\n"
+msgstr "%s: tidak dapat dibuka: %s\n"
+
+#: g10/encode.c:113
+#, c-format
+msgid "error creating passphrase: %s\n"
+msgstr "kesalahan penciptaan passphrase: %s\n"
+
+#: g10/encode.c:171 g10/encode.c:319
+#, c-format
+msgid "%s: WARNING: empty file\n"
+msgstr "%s: PERINGATAN: file kosong\n"
+
+#: g10/encode.c:266
+#, c-format
+msgid "reading from `%s'\n"
+msgstr "Membaca dari `%s'\n"
+
+#: g10/encode.c:483
+#, c-format
+msgid "%s/%s encrypted for: %s\n"
+msgstr "%s/%s dienkripsi untuk: %s\n"
+
+#: g10/export.c:153
+#, c-format
+msgid "%s: user not found: %s\n"
+msgstr "%s: user tidak ditemukan: %s\n"
+
+#: g10/export.c:162
+#, c-format
+msgid "certificate read problem: %s\n"
+msgstr "masalah pembacaan sertifikat: %s\n"
+
+#: g10/export.c:171
+#, c-format
+msgid "key %08lX: not a rfc2440 key - skipped\n"
+msgstr "kunci %08lX: bukan kunci rfc2440 - dilewati\n"
+
+#: g10/export.c:182
+#, fuzzy, c-format
+msgid "key %08lX: not protected - skipped\n"
+msgstr "kunci %08lX: bukan kunci rfc2440 - dilewati\n"
+
+#: g10/export.c:232
+msgid "WARNING: nothing exported\n"
+msgstr "PERINGATAN: tidak ada yang diekspor\n"
+
+#: g10/getkey.c:211
+msgid "too many entries in pk cache - disabled\n"
+msgstr "terlalu banyak masukan dalam pk cache - ditiadakan\n"
+
+#: g10/getkey.c:350
+msgid "too many entries in unk cache - disabled\n"
+msgstr "terlalu banyak masukan di unk cache - ditiadakan\n"
+
+#: g10/getkey.c:1308 g10/getkey.c:1347
+msgid "RSA key cannot be used in this version\n"
+msgstr "Kunci RSA tidak dapat digunakan pada versi ini\n"
+
+#: g10/getkey.c:1310 g10/getkey.c:1349
+msgid "No key for user ID\n"
+msgstr "Tidak ada kunci untuk ID user\n"
+
+#: g10/getkey.c:1388 g10/getkey.c:1428
+msgid "No user ID for key\n"
+msgstr "Tidak ada ID user untuk kunci\n"
+
+#: g10/getkey.c:1642 g10/getkey.c:1698
+#, c-format
+msgid "using secondary key %08lX instead of primary key %08lX\n"
+msgstr "menggunakan kunci sekunder %08lX selain kunci primer %08lX\n"
+
+#: g10/getkey.c:2017
+#, fuzzy
+msgid "[User id not found]"
+msgstr "%s: user tidak ditemukan\n"
+
+#: g10/import.c:181
+#, c-format
+msgid "skipping block of type %d\n"
+msgstr "melewati blok tipe %d\n"
+
+#: g10/import.c:188 g10/trustdb.c:1740 g10/trustdb.c:1781
+#, c-format
+msgid "%lu keys so far processed\n"
+msgstr "%lu kunci telah diproses\n"
+
+#: g10/import.c:193
+#, c-format
+msgid "error reading `%s': %s\n"
+msgstr "kesalahan membaca `%s': %s\n"
+
+#: g10/import.c:203
+#, c-format
+msgid "Total number processed: %lu\n"
+msgstr "Jumlah yang telah diproses: %lu\n"
+
+#: g10/import.c:205
+#, c-format
+msgid " w/o user IDs: %lu\n"
+msgstr " tanpa ID user: %lu\n"
+
+#: g10/import.c:207
+#, c-format
+msgid " imported: %lu"
+msgstr " diimpor: %lu"
+
+#: g10/import.c:213
+#, c-format
+msgid " unchanged: %lu\n"
+msgstr " tidak berubah: %lu\n"
+
+#: g10/import.c:215
+#, c-format
+msgid " new user IDs: %lu\n"
+msgstr " ID user baru: %lu\n"
+
+#: g10/import.c:217
+#, c-format
+msgid " new subkeys: %lu\n"
+msgstr " subkey baru: %lu\n"
+
+#: g10/import.c:219
+#, c-format
+msgid " new signatures: %lu\n"
+msgstr " signature baru: %lu\n"
+
+#: g10/import.c:221
+#, c-format
+msgid " new key revocations: %lu\n"
+msgstr " pembatalan kunci baru: %lu\n"
+
+#: g10/import.c:223
+#, c-format
+msgid " secret keys read: %lu\n"
+msgstr " kunci rahasia dibaca: %lu\n"
+
+#: g10/import.c:225
+#, c-format
+msgid " secret keys imported: %lu\n"
+msgstr " kunci rahasia diimpor: %lu\n"
+
+#: g10/import.c:227
+#, c-format
+msgid " secret keys unchanged: %lu\n"
+msgstr " kunci rahasia tetap: %lu\n"
+
+#: g10/import.c:386 g10/import.c:578
+#, c-format
+msgid "key %08lX: no user ID\n"
+msgstr "kunci %08lX: tidak ada ID user\n"
+
+#: g10/import.c:400
+#, c-format
+msgid "key %08lX: no valid user IDs\n"
+msgstr "kunci %08lX: tidak ada ID user yang valid\n"
+
+#: g10/import.c:402
+msgid "this may be caused by a missing self-signature\n"
+msgstr "mungkin disebabkan oleh self-signature yang tidak ada\n"
+
+#: g10/import.c:413 g10/import.c:645
+#, c-format
+msgid "key %08lX: public key not found: %s\n"
+msgstr "kunci %08lX: kunci publik tidak ditemukan: %s\n"
+
+#: g10/import.c:419
+msgid "no default public keyring\n"
+msgstr "tidak ada keyring publik baku\n"
+
+#: g10/import.c:423 g10/openfile.c:220 g10/sign.c:275 g10/sign.c:587
+#, c-format
+msgid "writing to `%s'\n"
+msgstr "menulis ke `%s'\n"
+
+#: g10/import.c:426 g10/import.c:484 g10/import.c:593 g10/import.c:694
+#, c-format
+msgid "can't lock keyring `%s': %s\n"
+msgstr "tidak dapat mengunci keyring `%s': %s\n"
+
+#: g10/import.c:429 g10/import.c:487 g10/import.c:596 g10/import.c:697
+#, c-format
+msgid "error writing keyring `%s': %s\n"
+msgstr "kesalahan menulis keyring `%s': %s\n"
+
+#: g10/import.c:434
+#, c-format
+msgid "key %08lX: public key imported\n"
+msgstr "kunci %08lX: kunci publik diimpor\n"
+
+#: g10/import.c:451
+#, c-format
+msgid "key %08lX: doesn't match our copy\n"
+msgstr "kunci %08lX: tidak cocok dengan duplikat kami\n"
+
+#: g10/import.c:460 g10/import.c:653
+#, c-format
+msgid "key %08lX: can't locate original keyblock: %s\n"
+msgstr "kunci %08lX: tidak dapat mengalokasi keyblock orisinal: %s\n"
+
+#: g10/import.c:466 g10/import.c:659
+#, c-format
+msgid "key %08lX: can't read original keyblock: %s\n"
+msgstr "kunci %08lX: tidak dapat membaca keyblok orisinal: %s\n"
+
+#: g10/import.c:493
+#, c-format
+msgid "key %08lX: 1 new user ID\n"
+msgstr "kunci %08lX: 1 user ID baru\n"
+
+#: g10/import.c:496
+#, c-format
+msgid "key %08lX: %d new user IDs\n"
+msgstr "kunci %08lX: %d user ID baru\n"
+
+#: g10/import.c:499
+#, c-format
+msgid "key %08lX: 1 new signature\n"
+msgstr "kunci %08lX: 1 signature baru\n"
+
+#: g10/import.c:502
+#, c-format
+msgid "key %08lX: %d new signatures\n"
+msgstr "kunci %08lX: %d signature baru\n"
+
+#: g10/import.c:505
+#, c-format
+msgid "key %08lX: 1 new subkey\n"
+msgstr "kunci %08lX: 1 subkey baru\n"
+
+#: g10/import.c:508
+#, c-format
+msgid "key %08lX: %d new subkeys\n"
+msgstr "kunci %08lX: %d subkey baru\n"
+
+#: g10/import.c:518
+#, c-format
+msgid "key %08lX: not changed\n"
+msgstr "kunci %08lX: tidak berubah\n"
+
+#: g10/import.c:601
+#, c-format
+msgid "key %08lX: secret key imported\n"
+msgstr "kunci %08lX: kunci rahasia diimpor\n"
+
+#. we can't merge secret keys
+#: g10/import.c:605
+#, c-format
+msgid "key %08lX: already in secret keyring\n"
+msgstr "kunci %08lX: sudah ada di keyring rahasia\n"
+
+#: g10/import.c:610
+#, c-format
+msgid "key %08lX: secret key not found: %s\n"
+msgstr "kunci %08lX: kunci rahasia tidak ditemukan: %s\n"
+
+#: g10/import.c:639
+#, c-format
+msgid "key %08lX: no public key - can't apply revocation certificate\n"
+msgstr ""
+"kunci %08lX: tdk ada kunci publik-tdk dpt mengaplikasikan sertifikat "
+"pembatalan\n"
+
+#: g10/import.c:670
+#, c-format
+msgid "key %08lX: invalid revocation certificate: %s - rejected\n"
+msgstr "kunci %08lX: sertifikat pembatalan tidak valid: %s - ditolak\n"
+
+#: g10/import.c:702
+#, c-format
+msgid "key %08lX: revocation certificate imported\n"
+msgstr "kunci %08lX: sertifikat pembatalan diimpor\n"
+
+#: g10/import.c:744
+#, c-format
+msgid "key %08lX: no user ID for signature\n"
+msgstr "kunci %08lX: tidak ada ID user untuk signature\n"
+
+#: g10/import.c:751 g10/import.c:775
+#, c-format
+msgid "key %08lX: unsupported public key algorithm\n"
+msgstr "kunci %08lX: algoritma publik key tidak didukung\n"
+
+#: g10/import.c:752
+#, c-format
+msgid "key %08lX: invalid self-signature\n"
+msgstr "kunci %08lX: self-signature tidak valid\n"
+
+#: g10/import.c:767
+#, c-format
+msgid "key %08lX: no subkey for key binding\n"
+msgstr "kunci %08lX: tidak ada subkey untuk key binding\n"
+
+#: g10/import.c:776
+#, c-format
+msgid "key %08lX: invalid subkey binding\n"
+msgstr "kunci %08lX: subkey binding tidak valid\n"
+
+#: g10/import.c:803
+#, c-format
+msgid "key %08lX: accepted non self-signed user ID '"
+msgstr "kunci %08lX: menerima ID user yang tidak self-signed "
+
+#: g10/import.c:832
+#, c-format
+msgid "key %08lX: skipped user ID '"
+msgstr "kunci %08lX: melewati ID user "
+
+#: g10/import.c:855
+#, c-format
+msgid "key %08lX: skipped subkey\n"
+msgstr "kunci %08lX: melewati subkey\n"
+
+#. here we violate the rfc a bit by still allowing
+#. * to import non-exportable signature when we have the
+#. * the secret key used to create this signature - it
+#. * seems that this makes sense
+#: g10/import.c:880
+#, c-format
+msgid "key %08lX: non exportable signature (class %02x) - skipped\n"
+msgstr "kunci %08lX: signature tidak dapat diekpor (kelas %02x) - dilewati\n"
+
+#: g10/import.c:889
+#, c-format
+msgid "key %08lX: revocation certificate at wrong place - skipped\n"
+msgstr "kunci %08lX: sertifikat pembatalan di tempat yang salah - dilewati\n"
+
+#: g10/import.c:897
+#, c-format
+msgid "key %08lX: invalid revocation certificate: %s - skipped\n"
+msgstr "kunci %08lX: sertifikat pembatalan tidak valid: %s - dilewati\n"
+
+#: g10/import.c:997
+#, c-format
+msgid "key %08lX: duplicated user ID detected - merged\n"
+msgstr "kunci %08lX: terdeteksi ID user duplikat - digabungkan\n"
+
+#: g10/import.c:1048
+#, c-format
+msgid "key %08lX: revocation certificate added\n"
+msgstr "kunci %08lX: penambahan sertifikat pembatalan\n"
+
+#: g10/import.c:1162 g10/import.c:1215
+#, c-format
+msgid "key %08lX: our copy has no self-signature\n"
+msgstr "kunci %08lX: salinan kita tidak memiliki self-signature\n"
+
+#: g10/delkey.c:64 g10/keyedit.c:94
+#, c-format
+msgid "%s: user not found\n"
+msgstr "%s: user tidak ditemukan\n"
+
+#: g10/keyedit.c:155
+msgid "[revocation]"
+msgstr "[pembatalan]"
+
+#: g10/keyedit.c:156
+msgid "[self-signature]"
+msgstr "[self-signature]"
+
+#: g10/keyedit.c:220
+msgid "1 bad signature\n"
+msgstr "1 signature yang buruk\n"
+
+#: g10/keyedit.c:222
+#, c-format
+msgid "%d bad signatures\n"
+msgstr "%d signature yang buruk\n"
+
+#: g10/keyedit.c:224
+msgid "1 signature not checked due to a missing key\n"
+msgstr "1 signature tidak diperiksa karena tidak ada kunci\n"
+
+#: g10/keyedit.c:226
+#, c-format
+msgid "%d signatures not checked due to missing keys\n"
+msgstr "%d signature tidak diperiksa karena tidak ada kunci\n"
+
+#: g10/keyedit.c:228
+msgid "1 signature not checked due to an error\n"
+msgstr "1 signature tidak diperiksa karena kesalahan\n"
+
+#: g10/keyedit.c:230
+#, c-format
+msgid "%d signatures not checked due to errors\n"
+msgstr "%d signature tidak diperiksa karena ada kesalahan\n"
+
+#: g10/keyedit.c:232
+msgid "1 user ID without valid self-signature detected\n"
+msgstr "terdeteksi 1 ID user tanpa self-signature yang valid\n"
+
+#: g10/keyedit.c:234
+#, c-format
+msgid "%d user IDs without valid self-signatures detected\n"
+msgstr "terdeteksi ID %d user tanpa self-signature yang valid\n"
+
+#. Fixme: see whether there is a revocation in which
+#. * case we should allow to sign it again.
+#: g10/keyedit.c:316
+#, c-format
+msgid "Already signed by key %08lX\n"
+msgstr "Sudah ditandai dengan kunci %08lX\n"
+
+#: g10/keyedit.c:324
+#, c-format
+msgid "Nothing to sign with key %08lX\n"
+msgstr "Tidak ada yang ditandai dengan kunci %08lX\n"
+
+#: g10/keyedit.c:333
+msgid ""
+"Are you really sure that you want to sign this key\n"
+"with your key: \""
+msgstr ""
+"Apakah anda yakin untuk menandai kunci ini \n"
+"dengan kunci anda: "
+
+#: g10/keyedit.c:342
+msgid ""
+"The signature will be marked as non-exportable.\n"
+"\n"
+msgstr ""
+"Signature akan ditandai sebagai tidak dapat diekspor.\n"
+"\n"
+
+#: g10/keyedit.c:347
+msgid "Really sign? "
+msgstr "Ditandai? "
+
+#: g10/keyedit.c:373 g10/keyedit.c:1869 g10/keyedit.c:1931 g10/sign.c:135
+#, c-format
+msgid "signing failed: %s\n"
+msgstr "gagal menandai: %s\n"
+
+#: g10/keyedit.c:427
+msgid "This key is not protected.\n"
+msgstr "Kunci ini tidak diproteksi.\n"
+
+#: g10/keyedit.c:431
+#, fuzzy
+msgid "Secret parts of primary key are not available.\n"
+msgstr "kunci rahasia tidak ada"
+
+#: g10/keyedit.c:435
+msgid "Key is protected.\n"
+msgstr "Kunci diproteksi.\n"
+
+#: g10/keyedit.c:455
+#, c-format
+msgid "Can't edit this key: %s\n"
+msgstr "Tidak dapat mengedit kunci ini: %s\n"
+
+#: g10/keyedit.c:460
+msgid ""
+"Enter the new passphrase for this secret key.\n"
+"\n"
+msgstr ""
+"Masukkan passphrase baru untuk kunci rahasia ini.\n"
+"\n"
+
+#: g10/keyedit.c:472
+msgid ""
+"You don't want a passphrase - this is probably a *bad* idea!\n"
+"\n"
+msgstr ""
+"Anda tidak ingin passphrase - bukan ide yang baik!\n"
+"\n"
+
+#: g10/keyedit.c:475
+msgid "Do you really want to do this? "
+msgstr "Apakah anda ingin melakukan hal ini? "
+
+#: g10/keyedit.c:539
+msgid "moving a key signature to the correct place\n"
+msgstr "memindahkan signature kunci ke tempat yang tepat\n"
+
+#: g10/keyedit.c:580
+msgid "quit this menu"
+msgstr "berhenti dari menu ini"
+
+#: g10/keyedit.c:581
+msgid "q"
+msgstr "q"
+
+#: g10/keyedit.c:582
+msgid "save"
+msgstr "simpan"
+
+#: g10/keyedit.c:582
+msgid "save and quit"
+msgstr "simpan dan berhenti"
+
+#: g10/keyedit.c:583
+msgid "help"
+msgstr "bantuan"
+
+#: g10/keyedit.c:583
+msgid "show this help"
+msgstr "tampilkan bantuan"
+
+#: g10/keyedit.c:585
+msgid "fpr"
+msgstr "fpr"
+
+#: g10/keyedit.c:585
+msgid "show fingerprint"
+msgstr "tampilkan fingerprint"
+
+#: g10/keyedit.c:586
+msgid "list"
+msgstr "tampilkan"
+
+#: g10/keyedit.c:586
+msgid "list key and user IDs"
+msgstr "tampilkan kunci dan ID user"
+
+#: g10/keyedit.c:587
+msgid "l"
+msgstr "l"
+
+#: g10/keyedit.c:588
+msgid "uid"
+msgstr "uid"
+
+#: g10/keyedit.c:588
+msgid "select user ID N"
+msgstr "pilih ID user N"
+
+#: g10/keyedit.c:589
+msgid "key"
+msgstr "kunci"
+
+#: g10/keyedit.c:589
+msgid "select secondary key N"
+msgstr "pilih kunci sekunder N"
+
+#: g10/keyedit.c:590
+msgid "check"
+msgstr "periksa"
+
+#: g10/keyedit.c:590
+msgid "list signatures"
+msgstr "tampilkan signature"
+
+#: g10/keyedit.c:591
+msgid "c"
+msgstr "c"
+
+#: g10/keyedit.c:592
+msgid "sign"
+msgstr "tandai"
+
+#: g10/keyedit.c:592
+msgid "sign the key"
+msgstr "tandai kunci"
+
+#: g10/keyedit.c:593
+msgid "s"
+msgstr "s"
+
+#: g10/keyedit.c:594
+msgid "lsign"
+msgstr "lsign"
+
+#: g10/keyedit.c:594
+msgid "sign the key locally"
+msgstr "tandai kunci secara lokal"
+
+#: g10/keyedit.c:595
+msgid "debug"
+msgstr "debug"
+
+#: g10/keyedit.c:596
+msgid "adduid"
+msgstr "adduid"
+
+#: g10/keyedit.c:596
+msgid "add a user ID"
+msgstr "tambah sebuah ID user"
+
+#: g10/keyedit.c:597
+msgid "deluid"
+msgstr "deluid"
+
+#: g10/keyedit.c:597
+msgid "delete user ID"
+msgstr "hapus ID user"
+
+#: g10/keyedit.c:598
+msgid "addkey"
+msgstr "addkey"
+
+#: g10/keyedit.c:598
+msgid "add a secondary key"
+msgstr "tambah kunci sekunder"
+
+#: g10/keyedit.c:599
+msgid "delkey"
+msgstr "delkey"
+
+#: g10/keyedit.c:599
+msgid "delete a secondary key"
+msgstr "hapus kunci sekunder"
+
+#: g10/keyedit.c:600
+msgid "delsig"
+msgstr "delsig"
+
+#: g10/keyedit.c:600
+msgid "delete signatures"
+msgstr "hapus signature"
+
+#: g10/keyedit.c:601
+msgid "expire"
+msgstr "expire"
+
+#: g10/keyedit.c:601
+msgid "change the expire date"
+msgstr "ubah tanggal kadaluarsa"
+
+#: g10/keyedit.c:602
+msgid "toggle"
+msgstr "toggle"
+
+#: g10/keyedit.c:602
+msgid "toggle between secret and public key listing"
+msgstr "ubah tampilan kunci rahasia dan publik"
+
+#: g10/keyedit.c:604
+msgid "t"
+msgstr "t"
+
+#: g10/keyedit.c:605
+msgid "pref"
+msgstr "pref"
+
+#: g10/keyedit.c:605
+msgid "list preferences"
+msgstr "tampilkan preferensi"
+
+#: g10/keyedit.c:606
+msgid "passwd"
+msgstr "passwd"
+
+#: g10/keyedit.c:606
+msgid "change the passphrase"
+msgstr "ubah passphrase"
+
+#: g10/keyedit.c:607
+msgid "trust"
+msgstr "trust"
+
+#: g10/keyedit.c:607
+msgid "change the ownertrust"
+msgstr "ubah ownertrust"
+
+#: g10/keyedit.c:608
+msgid "revsig"
+msgstr "revsig"
+
+#: g10/keyedit.c:608
+msgid "revoke signatures"
+msgstr "batalkan signature"
+
+#: g10/keyedit.c:609
+msgid "revkey"
+msgstr "revkey"
+
+#: g10/keyedit.c:609
+msgid "revoke a secondary key"
+msgstr "batalkan kunci sekunder"
+
+#: g10/keyedit.c:610
+msgid "disable"
+msgstr "disable"
+
+#: g10/keyedit.c:610
+msgid "disable a key"
+msgstr "tiadakan kunci"
+
+#: g10/keyedit.c:611
+msgid "enable"
+msgstr "enable"
+
+#: g10/keyedit.c:611
+msgid "enable a key"
+msgstr "aktifkan kunci"
+
+#: g10/delkey.c:110 g10/keyedit.c:630
+msgid "can't do that in batchmode\n"
+msgstr "tidak dapat dilakukan dalam mode batch\n"
+
+#. check that they match
+#. fixme: check that they both match
+#: g10/keyedit.c:668
+msgid "Secret key is available.\n"
+msgstr "Kunci rahasia tersedia.\n"
+
+#: g10/keyedit.c:697
+msgid "Command> "
+msgstr "Perintah> "
+
+#: g10/keyedit.c:727
+msgid "Need the secret key to do this.\n"
+msgstr "Perlu kunci rahasia.\n"
+
+#: g10/keyedit.c:731
+msgid "Please use the command \"toggle\" first.\n"
+msgstr ""
+
+#: g10/keyedit.c:778
+msgid "Really sign all user IDs? "
+msgstr "Tandai ID seluruh user? "
+
+#: g10/keyedit.c:779
+msgid "Hint: Select the user IDs to sign\n"
+msgstr "Petunjuk: Pilih ID user untuk ditandai\n"
+
+#: g10/keyedit.c:811 g10/keyedit.c:993
+#, c-format
+msgid "update of trustdb failed: %s\n"
+msgstr "gagal perbarui trustdb: %s\n"
+
+#: g10/keyedit.c:822 g10/keyedit.c:843
+msgid "You must select at least one user ID.\n"
+msgstr "Anda harus memilih minimum satu ID user.\n"
+
+#: g10/keyedit.c:824
+msgid "You can't delete the last user ID!\n"
+msgstr "Anda tidak dapat menghapus ID user terakhir!\n"
+
+#: g10/keyedit.c:827
+msgid "Really remove all selected user IDs? "
+msgstr "Hapus seluruh ID user terpilih? "
+
+#: g10/keyedit.c:828
+msgid "Really remove this user ID? "
+msgstr "Hapus ID user ini? "
+
+#: g10/keyedit.c:864 g10/keyedit.c:886
+msgid "You must select at least one key.\n"
+msgstr "Anda harus memilih minimum satu kunci.\n"
+
+#: g10/keyedit.c:868
+msgid "Do you really want to delete the selected keys? "
+msgstr "Anda ingin menghapus kunci terpilih ini? "
+
+#: g10/keyedit.c:869
+msgid "Do you really want to delete this key? "
+msgstr "Anda ingin menghapus kunci ini? "
+
+#: g10/keyedit.c:890
+msgid "Do you really want to revoke the selected keys? "
+msgstr "Anda ingin membatalkan kunci terpilih ini? "
+
+#: g10/keyedit.c:891
+msgid "Do you really want to revoke this key? "
+msgstr "Anda ingin membatalkan kunci ini? "
+
+#: g10/keyedit.c:957
+msgid "Save changes? "
+msgstr "Simpan perubahan? "
+
+#: g10/keyedit.c:960
+msgid "Quit without saving? "
+msgstr "Berhenti tanpa menyimpan? "
+
+#: g10/keyedit.c:971
+#, c-format
+msgid "update failed: %s\n"
+msgstr "gagal memperbarui: %s\n"
+
+#: g10/keyedit.c:978
+#, c-format
+msgid "update secret failed: %s\n"
+msgstr "gagal perbarui rahasia: %s\n"
+
+#: g10/keyedit.c:985
+msgid "Key not changed so no update needed.\n"
+msgstr "Kunci tidak berubah sehingga tidak perlu pembaharuan.\n"
+
+#: g10/keyedit.c:1000
+msgid "Invalid command (try \"help\")\n"
+msgstr "Perintah tidak valid (coba \"help\")\n"
+
+#: g10/keyedit.c:1093
+msgid "This key has been disabled"
+msgstr "Kunci ini telah ditiadakan"
+
+#: g10/keyedit.c:1364
+msgid "Delete this good signature? (y/N/q)"
+msgstr "Hapus signature baik ini? (y/T/q)"
+
+#: g10/keyedit.c:1368
+msgid "Delete this invalid signature? (y/N/q)"
+msgstr "Hapus signature tidak valid ini? (y/T/q)"
+
+#: g10/keyedit.c:1372
+msgid "Delete this unknown signature? (y/N/q)"
+msgstr "Hapus signature tidak dikenal ini? (y/T/q)"
+
+#: g10/keyedit.c:1378
+msgid "Really delete this self-signature? (y/N)"
+msgstr "Yakin ingin menghapus self-signature ini? (y/T)"
+
+#: g10/keyedit.c:1392
+#, c-format
+msgid "Deleted %d signature.\n"
+msgstr "Menghapus %d signature.\n"
+
+#: g10/keyedit.c:1393
+#, c-format
+msgid "Deleted %d signatures.\n"
+msgstr "Menghapus %d signature.\n"
+
+#: g10/keyedit.c:1396
+msgid "Nothing deleted.\n"
+msgstr "Tidak ada yang dihapus.\n"
+
+#: g10/keyedit.c:1465
+msgid "Please remove selections from the secret keys.\n"
+msgstr "Silakan hapus pilihan dari kunci rahasia.\n"
+
+#: g10/keyedit.c:1471
+msgid "Please select at most one secondary key.\n"
+msgstr "Silakan pilih maksimum satu kunci sekunder.\n"
+
+#: g10/keyedit.c:1475
+msgid "Changing expiration time for a secondary key.\n"
+msgstr "Merubah batas waktu untuk kunci sekunder.\n"
+
+#: g10/keyedit.c:1477
+msgid "Changing expiration time for the primary key.\n"
+msgstr "Merubah batas waktu untuk kunci primer.\n"
+
+#: g10/keyedit.c:1519
+msgid "You can't change the expiration date of a v3 key\n"
+msgstr "Anda tidak dapat merubah batas waktu kunci v3\n"
+
+#: g10/keyedit.c:1535
+msgid "No corresponding signature in secret ring\n"
+msgstr "Tidak ada signature koresponden di ring rahasia\n"
+
+#: g10/keyedit.c:1596
+#, c-format
+msgid "No user ID with index %d\n"
+msgstr "Tidak ada ID user dengan index %d\n"
+
+#: g10/keyedit.c:1642
+#, c-format
+msgid "No secondary key with index %d\n"
+msgstr "Tidak ada kunci sekunder dengan index %d\n"
+
+#: g10/keyedit.c:1740
+msgid "user ID: \""
+msgstr "ID user: "
+
+#: g10/keyedit.c:1743
+#, c-format
+msgid ""
+"\"\n"
+"signed with your key %08lX at %s\n"
+msgstr "ditandai dengan kunci anda %08lX pada %s\n"
+
+#: g10/keyedit.c:1747
+msgid "Create a revocation certificate for this signature? (y/N)"
+msgstr "Membuat sertifikat pembatalan untuk signature ini? (y/N)"
+
+#. FIXME: detect duplicates here
+#: g10/keyedit.c:1771
+msgid "You have signed these user IDs:\n"
+msgstr "Anda telah menandai ID user ini:\n"
+
+#: g10/keyedit.c:1785 g10/keyedit.c:1820
+#, c-format
+msgid " signed by %08lX at %s\n"
+msgstr " ditandai oleh %08lX pada %s\n"
+
+#: g10/keyedit.c:1790
+#, c-format
+msgid " revoked by %08lX at %s\n"
+msgstr " dibatalkan oleh %08lX pada %s\n"
+
+#: g10/keyedit.c:1810
+msgid "You are about to revoke these signatures:\n"
+msgstr "Anda akan membatalkan signature ini:\n"
+
+#: g10/keyedit.c:1828
+msgid "Really create the revocation certificates? (y/N)"
+msgstr "Ingin membuat sertifikat pembatalan? (y/T)"
+
+#: g10/keyedit.c:1857
+msgid "no secret key\n"
+msgstr "tidak ada kunci rahasia\n"
+
+#. of subkey
+#: g10/keylist.c:318 g10/mainproc.c:740
+#, fuzzy, c-format
+msgid " [expires: %s]"
+msgstr "Kunci berakhir pada %s\n"
+
+#: g10/mainproc.c:213
+#, c-format
+msgid "public key is %08lX\n"
+msgstr "kunci publik adalah %08lX\n"
+
+#: g10/mainproc.c:248
+msgid "public key encrypted data: good DEK\n"
+msgstr "data terenkripsi dengan kunci publik: DEK baik\n"
+
+#: g10/mainproc.c:281
+#, c-format
+msgid "encrypted with %u-bit %s key, ID %08lX, created %s\n"
+msgstr "dienkripsi dengan %u-bit kunci %s, ID %08lX, tercipta %s\n"
+
+#: g10/mainproc.c:291
+#, c-format
+msgid "encrypted with %s key, ID %08lX\n"
+msgstr "dienkripsi dengan kunci %s, ID %08lX\n"
+
+#: g10/mainproc.c:297
+msgid "no secret key for decryption available\n"
+msgstr "tidak tersedia kunci rahasia untuk dekripsi\n"
+
+#: g10/mainproc.c:306
+#, c-format
+msgid "public key decryption failed: %s\n"
+msgstr "gagal dekripsi kunci publik: %s\n"
+
+#: g10/mainproc.c:342
+msgid "decryption okay\n"
+msgstr "dekripsi lancar\n"
+
+#: g10/mainproc.c:347
+msgid "WARNING: encrypted message has been manipulated!\n"
+msgstr "PERINGATAN: pesan terenkripsi telah dimanipulasi!\n"
+
+#: g10/mainproc.c:352
+#, c-format
+msgid "decryption failed: %s\n"
+msgstr "gagal dekripsi: %s\n"
+
+#: g10/mainproc.c:371
+msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
+msgstr "CATATAN: pengirim meminta \"for-your-eyes-only\"\n"
+
+#: g10/mainproc.c:373
+#, c-format
+msgid "original file name='%.*s'\n"
+msgstr "nama file asli='%.*s'\n"
+
+#: g10/mainproc.c:524
+msgid "standalone revocation - use \"gpg --import\" to apply\n"
+msgstr ""
+
+#: g10/mainproc.c:611 g10/mainproc.c:620
+msgid "WARNING: invalid notation data found\n"
+msgstr "PERINGATAN: ditemukan notasi data tidak valid\n"
+
+#: g10/mainproc.c:623
+msgid "Notation: "
+msgstr "Notasi: "
+
+#: g10/mainproc.c:630
+msgid "Policy: "
+msgstr "Kebijakan: "
+
+#: g10/mainproc.c:1057
+msgid "signature verification suppressed\n"
+msgstr "verifikasi signature tidak optimal\n"
+
+#: g10/mainproc.c:1063
+#, c-format
+msgid "Signature made %.*s using %s key ID %08lX\n"
+msgstr "Signature dibuat %.*s menggunakan kunci %s ID %08lX\n"
+
+#. just in case that we have no userid
+#: g10/mainproc.c:1089 g10/mainproc.c:1100
+msgid "BAD signature from \""
+msgstr "signature BURUK dari \""
+
+#: g10/mainproc.c:1090 g10/mainproc.c:1101
+msgid "Good signature from \""
+msgstr "Signature baik dari \""
+
+#: g10/mainproc.c:1092
+msgid " aka \""
+msgstr " alias \""
+
+#: g10/mainproc.c:1148
+#, c-format
+msgid "Can't check signature: %s\n"
+msgstr "Tidak dapat memeriksa signature: %s\n"
+
+#: g10/mainproc.c:1209
+#, fuzzy, c-format
+msgid "standalone signature of class 0x%02x\n"
+msgstr "kelas signature tidak dikenal"
+
+#: g10/mainproc.c:1250
+msgid "old style (PGP 2.x) signature\n"
+msgstr "signature model lama (PGP 2.X)\n"
+
+#: g10/mainproc.c:1255
+msgid "invalid root packet detected in proc_tree()\n"
+msgstr "terdeteksi root paket tidak valid dalam proc_tree()\n"
+
+#: g10/misc.c:94
+#, c-format
+msgid "can't disable core dumps: %s\n"
+msgstr "tidak dapat meniadakan core dump: %s\n"
+
+#: g10/misc.c:97
+msgid "WARNING: program may create a core file!\n"
+msgstr "PERINGATAN: program mungkin membuat file core!\n"
+
+#: g10/misc.c:205
+msgid "Experimental algorithms should not be used!\n"
+msgstr "Algoritma eksperimental sebaiknya tidak dipakai!\n"
+
+#: g10/misc.c:219
+msgid ""
+"RSA keys are deprecated; please consider creating a new key and use this key "
+"in the future\n"
+msgstr ""
+"Kunci RSA didepresiasi; silakan membuat kunci baru dan menggunakannya di "
+"masa depan\n"
+
+#: g10/misc.c:241
+msgid "this cipher algorithm is depreciated; please use a more standard one!\n"
+msgstr ""
+"algoritma cipher ini didepresiasi; silakan gunakan yang lebih standar!\n"
+
+#: g10/parse-packet.c:115
+#, c-format
+msgid "can't handle public key algorithm %d\n"
+msgstr "tidak dapat menangani algoritma kunci publik %d\n"
+
+#: g10/parse-packet.c:956
+#, c-format
+msgid "subpacket of type %d has critical bit set\n"
+msgstr "subpaket tipe %d memiliki bit kritis terset\n"
+
+#: g10/passphrase.c:159
+msgid ""
+"\n"
+"You need a passphrase to unlock the secret key for\n"
+"user: \""
+msgstr ""
+"\n"
+"Anda perlu passphrase untuk membuka kunci rahasia untuk\n"
+"pemakai: \""
+
+#: g10/passphrase.c:168
+#, c-format
+msgid "%u-bit %s key, ID %08lX, created %s"
+msgstr "%u-bit kunci %s, ID %08lX, tercipta %s"
+
+#: g10/passphrase.c:173
+#, c-format
+msgid " (main key ID %08lX)"
+msgstr " (ID kunci utama %08lX)"
+
+#: g10/passphrase.c:190
+msgid "can't query password in batchmode\n"
+msgstr "tidak dapat meminta password dalam mode batch\n"
+
+#: g10/passphrase.c:194
+msgid "Enter passphrase: "
+msgstr "Masukkan passphrase: "
+
+#: g10/passphrase.c:198
+msgid "Repeat passphrase: "
+msgstr "Ulangi passphrase: "
+
+#: g10/plaintext.c:63
+msgid "data not saved; use option \"--output\" to save it\n"
+msgstr "data tidak disimpan; gunakan pilihan \"--output\" untuk menyimpannya\n"
+
+#: g10/plaintext.c:317
+#, fuzzy
+msgid "Detached signature.\n"
+msgstr "Menghapus %d signature.\n"
+
+#: g10/plaintext.c:321
+msgid "Please enter name of data file: "
+msgstr "Silakan masukkan nama file data: "
+
+#: g10/plaintext.c:342
+msgid "reading stdin ...\n"
+msgstr "membaca stdin ...\n"
+
+#: g10/plaintext.c:385
+#, c-format
+msgid "can't open signed data `%s'\n"
+msgstr "tidak dapat membuka data tertandai `%s'\n"
+
+#: g10/pubkey-enc.c:79
+#, c-format
+msgid "anonymous receiver; trying secret key %08lX ...\n"
+msgstr "penerima anonim; mencoba kunci rahasia %08lX ...\n"
+
+#: g10/pubkey-enc.c:85
+msgid "okay, we are the anonymous recipient.\n"
+msgstr "baik, kita adalah penerima anonim.\n"
+
+#: g10/pubkey-enc.c:137
+msgid "old encoding of the DEK is not supported\n"
+msgstr "encoding lama DEK tidak didukung\n"
+
+#: g10/pubkey-enc.c:156
+#, fuzzy, c-format
+msgid "cipher algorithm %d is unknown or disabled\n"
+msgstr "algoritma proteksi %d tidak didukung\n"
+
+#: g10/pubkey-enc.c:195
+#, c-format
+msgid "NOTE: cipher algorithm %d not found in preferences\n"
+msgstr "CATATAN: algoritma cipher %d tidak ditemukan dalam preferensi\n"
+
+#: g10/pubkey-enc.c:201
+#, fuzzy, c-format
+msgid "NOTE: secret key %08lX expired at %s\n"
+msgstr "CATATAN: kunci signature berakhir %s\n"
+
+#: g10/hkp.c:62
+#, c-format
+msgid "requesting key %08lX from %s ...\n"
+msgstr ""
+
+#: g10/hkp.c:75
+#, fuzzy, c-format
+msgid "can't get key from keyserver: %s\n"
+msgstr "impor kunci dari key server"
+
+#: g10/hkp.c:98 g10/hkp.c:136
+msgid "no keyserver known (use option --keyserver)\n"
+msgstr ""
+
+#: g10/hkp.c:106
+#, fuzzy, c-format
+msgid "%s: not a valid key ID\n"
+msgstr "%s bukanlah set karakter yang valid\n"
+
+#: g10/hkp.c:158
+#, fuzzy, c-format
+msgid "can't connect to `%s': %s\n"
+msgstr "tidak dapat membuka `%s': %s\n"
+
+#: g10/hkp.c:182
+#, fuzzy, c-format
+msgid "error sending to `%s': %s\n"
+msgstr "kesalahan membaca `%s': %s\n"
+
+#: g10/hkp.c:194
+#, c-format
+msgid "success sending to `%s' (status=%u)\n"
+msgstr ""
+
+#: g10/hkp.c:197
+#, c-format
+msgid "failed sending to `%s': status=%u\n"
+msgstr ""
+
+#: g10/seckey-cert.c:53
+#, fuzzy
+msgid "secret key parts are not available\n"
+msgstr "kunci rahasia tidak ada"
+
+#: g10/seckey-cert.c:59
+#, c-format
+msgid "protection algorithm %d is not supported\n"
+msgstr "algoritma proteksi %d tidak didukung\n"
+
+#: g10/seckey-cert.c:175
+msgid "Invalid passphrase; please try again ...\n"
+msgstr "Passphrase tidak valid; silakan coba lagi ...\n"
+
+#: g10/seckey-cert.c:231
+msgid "WARNING: Weak key detected - please change passphrase again.\n"
+msgstr "PERINGATAN: terdeteksi kunci lemah - silakan rubah passphrase lagi.\n"
+
+#: g10/sig-check.c:202
+msgid "assuming bad MDC due to an unknown critical bit\n"
+msgstr "mengasumsikan MDC buruk karena ada bit kritis tidak dikenal\n"
+
+#: g10/sig-check.c:300
+msgid ""
+"this is a PGP generated ElGamal key which is NOT secure for signatures!\n"
+msgstr ""
+"ini adalah kunci ElGamal ciptaan PGP yang tidak aman untuk signature!\n"
+
+#: g10/sig-check.c:308
+#, c-format
+msgid "public key is %lu second newer than the signature\n"
+msgstr "kunci publik adalah %lu detik lebih baru daripada signature\n"
+
+#: g10/sig-check.c:309
+#, c-format
+msgid "public key is %lu seconds newer than the signature\n"
+msgstr "kunci publik adalah %lu detik lebih baru daripada signature\n"
+
+#: g10/sig-check.c:327
+#, c-format
+msgid "NOTE: signature key expired %s\n"
+msgstr "CATATAN: kunci signature berakhir %s\n"
+
+#: g10/sig-check.c:385
+msgid "assuming bad signature due to an unknown critical bit\n"
+msgstr "mengasumsikan signature buruk karena ada bit kritik tidak dikenal\n"
+
+#: g10/sign.c:139
+#, c-format
+msgid "%s signature from: %s\n"
+msgstr "%s signature dari: %s\n"
+
+#: g10/sign.c:270 g10/sign.c:582
+#, c-format
+msgid "can't create %s: %s\n"
+msgstr "tidak dapat membuat %s: %s\n"
+
+#: g10/sign.c:368
+msgid "signing:"
+msgstr "menandai:"
+
+#: g10/sign.c:411
+#, c-format
+msgid "WARNING: `%s' is an empty file\n"
+msgstr "PERINGATAN: `%s' adalah file kosong\n"
+
+#: g10/textfilter.c:134
+#, c-format
+msgid "can't handle text lines longer than %d characters\n"
+msgstr "tidak dapat menangani baris teks lebih dari %d karakter\n"
+
+#: g10/textfilter.c:231
+#, c-format
+msgid "input line longer than %d characters\n"
+msgstr "baris input lebih dari %d karakter\n"
+
+#: g10/tdbio.c:116 g10/tdbio.c:1623
+#, c-format
+msgid "trustdb rec %lu: lseek failed: %s\n"
+msgstr "trustdb rec %lu: lseek gagal: %s\n"
+
+#: g10/tdbio.c:122 g10/tdbio.c:1630
+#, c-format
+msgid "trustdb rec %lu: write failed (n=%d): %s\n"
+msgstr "trustdb rec %lu: gagal menulis (n=%d): %s\n"
+
+#: g10/tdbio.c:232
+msgid "trustdb transaction too large\n"
+msgstr "transaksi trustdb terlalu besar\n"
+
+#: g10/tdbio.c:424
+#, c-format
+msgid "%s: can't access: %s\n"
+msgstr "%s: tidak dapat akses: %s\n"
+
+#: g10/tdbio.c:438
+#, c-format
+msgid "%s: directory does not exist!\n"
+msgstr "%s: direktori tidak ada!\n"
+
+#: g10/openfile.c:216 g10/openfile.c:284 g10/ringedit.c:1363 g10/tdbio.c:444
+#, c-format
+msgid "%s: can't create: %s\n"
+msgstr "%s: tidak dapat membuat: %s\n"
+
+#: g10/tdbio.c:459 g10/tdbio.c:508
+#, c-format
+msgid "%s: can't create lock\n"
+msgstr "%s: tidak dapat membuat lock\n"
+
+#: g10/tdbio.c:473
+#, c-format
+msgid "%s: failed to create version record: %s"
+msgstr "%s: gagal membuat catatan versi: %s"
+
+#: g10/tdbio.c:477
+#, c-format
+msgid "%s: invalid trustdb created\n"
+msgstr "%s: tercipta trustdb tidak valid\n"
+
+#: g10/tdbio.c:480
+#, c-format
+msgid "%s: trustdb created\n"
+msgstr "%s: tercipta trustdb\n"
+
+#: g10/tdbio.c:517
+#, c-format
+msgid "%s: invalid trustdb\n"
+msgstr "%s: trustdb tidak valid\n"
+
+#: g10/tdbio.c:550
+#, c-format
+msgid "%s: failed to create hashtable: %s\n"
+msgstr "%s: gagal membuat hashtable: %s\n"
+
+#: g10/tdbio.c:558
+#, c-format
+msgid "%s: error updating version record: %s\n"
+msgstr "%s: kesalahan memperbaharui catatan versi: %s\n"
+
+#: g10/tdbio.c:574 g10/tdbio.c:613 g10/tdbio.c:635 g10/tdbio.c:665
+#: g10/tdbio.c:690 g10/tdbio.c:1556 g10/tdbio.c:1583
+#, c-format
+msgid "%s: error reading version record: %s\n"
+msgstr "%s: kesalahan membaca catatan versi: %s\n"
+
+#: g10/tdbio.c:587 g10/tdbio.c:646
+#, c-format
+msgid "%s: error writing version record: %s\n"
+msgstr "%s: kesalahan menulis catatan versi: %s\n"
+
+#: g10/tdbio.c:1235
+#, c-format
+msgid "trustdb: lseek failed: %s\n"
+msgstr "trustdb: lseek gagal: %s\n"
+
+#: g10/tdbio.c:1243
+#, c-format
+msgid "trustdb: read failed (n=%d): %s\n"
+msgstr "trustdb: gagal membaca (n=%d): %s\n"
+
+#: g10/tdbio.c:1264
+#, c-format
+msgid "%s: not a trustdb file\n"
+msgstr "%s: bukan file trustdb\n"
+
+#: g10/tdbio.c:1280
+#, c-format
+msgid "%s: version record with recnum %lu\n"
+msgstr "%s: catatan versi dengan recnum %lu\n"
+
+#: g10/tdbio.c:1285
+#, c-format
+msgid "%s: invalid file version %d\n"
+msgstr "%s: versi file %d tidak valid\n"
+
+#: g10/tdbio.c:1589
+#, c-format
+msgid "%s: error reading free record: %s\n"
+msgstr "%s: kesalahan membaca record bebas: %s\n"
+
+#: g10/tdbio.c:1597
+#, c-format
+msgid "%s: error writing dir record: %s\n"
+msgstr "%s: kesalahan menulis dir record: %s\n"
+
+#: g10/tdbio.c:1607
+#, c-format
+msgid "%s: failed to zero a record: %s\n"
+msgstr "%s: gagal mengosongkan record: %s\n"
+
+#: g10/tdbio.c:1637
+#, c-format
+msgid "%s: failed to append a record: %s\n"
+msgstr "%s: gagal menambahkan record: %s\n"
+
+#: g10/tdbio.c:1748
+msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
+msgstr "trustdb terkorupsi; silakan jalankan \"gpg --fix-trustdb\".\n"
+
+#: g10/trustdb.c:168
+#, c-format
+msgid "trust record %lu, req type %d: read failed: %s\n"
+msgstr "trust record %lu, req tipe %d: gagal baca: %s\n"
+
+#: g10/trustdb.c:183
+#, c-format
+msgid "trust record %lu, type %d: write failed: %s\n"
+msgstr "trust record %lu, tipe %d: gagal menulis: %s\n"
+
+#: g10/trustdb.c:197
+#, c-format
+msgid "trust record %lu: delete failed: %s\n"
+msgstr "trust record %lu: gagal menghapus: %s\n"
+
+#: g10/trustdb.c:211
+#, c-format
+msgid "trustdb: sync failed: %s\n"
+msgstr "trustdb: gagal sync: %s\n"
+
+#: g10/trustdb.c:376
+#, c-format
+msgid "error reading dir record for LID %lu: %s\n"
+msgstr "gagal membaca dir record untuk LID %lu: %s\n"
+
+#: g10/trustdb.c:383
+#, c-format
+msgid "lid %lu: expected dir record, got type %d\n"
+msgstr "lid %lu: diharapkan dir record, didapat tipe %d\n"
+
+#: g10/trustdb.c:388
+#, c-format
+msgid "no primary key for LID %lu\n"
+msgstr "bukan kunci primer untuk LID %lu\n"
+
+#: g10/trustdb.c:393
+#, c-format
+msgid "error reading primary key for LID %lu: %s\n"
+msgstr "gagal membaca kunci primer untuk LID %lu: %s\n"
+
+#: g10/trustdb.c:432
+#, c-format
+msgid "get_dir_record: search_record failed: %s\n"
+msgstr "get_dir_record: gagal search_record: %s\n"
+
+#: g10/trustdb.c:487
+#, c-format
+msgid "NOTE: secret key %08lX is NOT protected.\n"
+msgstr "CATATAN: kunci rahasia %08lX tidak diproteksi.\n"
+
+#: g10/trustdb.c:495
+#, c-format
+msgid "key %08lX: secret key without public key - skipped\n"
+msgstr "kunci %08lX: kunci rahasia tanpa kunci publik - dilewati\n"
+
+#: g10/trustdb.c:502
+#, c-format
+msgid "key %08lX: secret and public key don't match\n"
+msgstr "kunci %08lX: kunci publik dan rahasia tidak cocok\n"
+
+#: g10/trustdb.c:514
+#, c-format
+msgid "key %08lX: can't put it into the trustdb\n"
+msgstr "kunci %08lX: tidak dapat meletakkan ke trustdb\n"
+
+#: g10/trustdb.c:520
+#, c-format
+msgid "key %08lX: query record failed\n"
+msgstr "kunci %08lX: gagal query record\n"
+
+#: g10/trustdb.c:529
+#, c-format
+msgid "key %08lX: already in trusted key table\n"
+msgstr "kunci %08lX: sudah ada dalam tabel kunci trustdb\n"
+
+#: g10/trustdb.c:532
+#, c-format
+msgid "key %08lX: accepted as trusted key.\n"
+msgstr "kunci %08lX: diterima sebagai kunci terpercaya.\n"
+
+#: g10/trustdb.c:540
+#, c-format
+msgid "enumerate secret keys failed: %s\n"
+msgstr "gagal enumerasi kunci rahasia: %s\n"
+
+#: g10/trustdb.c:921
+#, c-format
+msgid "key %08lX.%lu: Good subkey binding\n"
+msgstr "kunci %08lX.%lu: binding subkey baik\n"
+
+#: g10/trustdb.c:927 g10/trustdb.c:962
+#, c-format
+msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
+msgstr "kunci %08lX.%lu: binding subkey tidak valid: %s\n"
+
+#: g10/trustdb.c:939
+#, c-format
+msgid "key %08lX.%lu: Valid key revocation\n"
+msgstr "kunci %08lX.%lu: pembatalan kunci valid\n"
+
+#: g10/trustdb.c:945
+#, c-format
+msgid "key %08lX.%lu: Invalid key revocation: %s\n"
+msgstr "kunci %08lX.%lu: pembatalan kunci tidak valid: %s\n"
+
+#: g10/trustdb.c:956
+#, c-format
+msgid "key %08lX.%lu: Valid subkey revocation\n"
+msgstr "kunci %08lX.%lu: pembatalan subkey valid\n"
+
+#: g10/trustdb.c:1067
+msgid "Good self-signature"
+msgstr "Self-signature yang baik"
+
+#: g10/trustdb.c:1077
+msgid "Invalid self-signature"
+msgstr "Self-signature tidak valid"
+
+#: g10/trustdb.c:1104
+msgid "Valid user ID revocation skipped due to a newer self signature"
+msgstr ""
+"Pembatalan ID user valid dilewati karena ada self signature yang lebih baru"
+
+#: g10/trustdb.c:1110
+msgid "Valid user ID revocation"
+msgstr "Pembatalan ID user valid"
+
+#: g10/trustdb.c:1115
+msgid "Invalid user ID revocation"
+msgstr "Pembatalan ID user tidak valid"
+
+#: g10/trustdb.c:1157
+msgid "Valid certificate revocation"
+msgstr "Pembatalan sertifikat valid"
+
+#: g10/trustdb.c:1158
+msgid "Good certificate"
+msgstr "Sertifikat yang baik"
+
+#: g10/trustdb.c:1186
+msgid "Invalid certificate revocation"
+msgstr "Pembatalan sertifikat tidak valid"
+
+#: g10/trustdb.c:1187
+msgid "Invalid certificate"
+msgstr "Sertifikat tidak valid"
+
+#: g10/trustdb.c:1204 g10/trustdb.c:1208
+#, c-format
+msgid "sig record %lu[%d] points to wrong record.\n"
+msgstr "sig record %lu[%d] menunjuk ke record yang salah.\n"
+
+#: g10/trustdb.c:1267
+msgid "duplicated certificate - deleted"
+msgstr "sertifikat ganda - dihapus"
+
+#: g10/trustdb.c:1584
+#, c-format
+msgid "tdbio_search_dir failed: %s\n"
+msgstr "tdbio_search_dir gagal: %s\n"
+
+#: g10/trustdb.c:1718
+#, c-format
+msgid "lid ?: insert failed: %s\n"
+msgstr "lid ?: gagal menyisipkan: %s\n"
+
+#: g10/trustdb.c:1723
+#, c-format
+msgid "lid %lu: insert failed: %s\n"
+msgstr "lid %lu: gagal menyisipkan: %s\n"
+
+#: g10/trustdb.c:1729
+#, c-format
+msgid "lid %lu: inserted\n"
+msgstr "lid %lu: menyisipkan\n"
+
+#: g10/trustdb.c:1734
+#, c-format
+msgid "error reading dir record: %s\n"
+msgstr "kesalahan membaca dir record: %s\n"
+
+#: g10/trustdb.c:1742 g10/trustdb.c:1805
+#, c-format
+msgid "%lu keys processed\n"
+msgstr "%lu kunci diproses\n"
+
+#: g10/trustdb.c:1744 g10/trustdb.c:1811
+#, c-format
+msgid "\t%lu keys with errors\n"
+msgstr "\t%lu kunci dengan kesalahan\n"
+
+#: g10/trustdb.c:1746
+#, c-format
+msgid "\t%lu keys inserted\n"
+msgstr "%lu kunci disisipkan\n"
+
+#: g10/trustdb.c:1749
+#, c-format
+msgid "enumerate keyblocks failed: %s\n"
+msgstr "gagal enumerasi keyblok: %s\n"
+
+#: g10/trustdb.c:1797
+#, c-format
+msgid "lid %lu: dir record w/o key - skipped\n"
+msgstr "lid %lu: dir record tanpa kunci - dilewati\n"
+
+#: g10/trustdb.c:1807
+#, fuzzy, c-format
+msgid "\t%lu due to new pubkeys\n"
+msgstr "kunci %08lX: %d subkey baru\n"
+
+#: g10/trustdb.c:1809
+#, c-format
+msgid "\t%lu keys skipped\n"
+msgstr "%lu kunci dilewati\n"
+
+#: g10/trustdb.c:1813
+#, c-format
+msgid "\t%lu keys updated\n"
+msgstr "%lu kunci diperbaharui\n"
+
+#: g10/trustdb.c:2158
+msgid "Ooops, no keys\n"
+msgstr "Ooops, tanpa kunci\n"
+
+#: g10/trustdb.c:2162
+msgid "Ooops, no user IDs\n"
+msgstr "Ooops, tanpa ID user\n"
+
+#: g10/trustdb.c:2320
+#, c-format
+msgid "check_trust: search dir record failed: %s\n"
+msgstr "check_trust: gagal mencari di record: %s\n"
+
+#: g10/trustdb.c:2329
+#, c-format
+msgid "key %08lX: insert trust record failed: %s\n"
+msgstr "kunci %08lX: gagal menyisipkan record trust: %s\n"
+
+#: g10/trustdb.c:2333
+#, c-format
+msgid "key %08lX.%lu: inserted into trustdb\n"
+msgstr "kunci %08lX.%lu: menyisipkan ke trustdb\n"
+
+#: g10/trustdb.c:2341
+#, c-format
+msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
+msgstr "kunci %08lX.%lu: tercipta di masa datang (masalah waktu atau jam)\n"
+
+#: g10/trustdb.c:2356
+#, c-format
+msgid "key %08lX.%lu: expired at %s\n"
+msgstr "kunci %08lX.%lu: berakhir pada %s\n"
+
+#: g10/trustdb.c:2364
+#, c-format
+msgid "key %08lX.%lu: trust check failed: %s\n"
+msgstr "kunci %08lX.%lu: gagal periksa trust: %s\n"
+
+#: g10/trustdb.c:2515
+#, c-format
+msgid "user '%s' not found: %s\n"
+msgstr "user '%s' tidak ditemukan: %s\n"
+
+#: g10/trustdb.c:2517
+#, c-format
+msgid "problem finding '%s' in trustdb: %s\n"
+msgstr "masalah menemukan '%s' dalam trustdb: %s\n"
+
+#: g10/trustdb.c:2520
+#, c-format
+msgid "user '%s' not in trustdb - inserting\n"
+msgstr "pemakai '%s' tidak ada di trustdb - menyisipkan\n"
+
+#: g10/trustdb.c:2523
+#, c-format
+msgid "failed to put '%s' into trustdb: %s\n"
+msgstr "gagal menaruh '%s' ke dalam trustdb: %s\n"
+
+#: g10/trustdb.c:2709 g10/trustdb.c:2739
+msgid "WARNING: can't yet handle long pref records\n"
+msgstr "PERINGATAN: belum dapat menangani record pref panjang\n"
+
+#: g10/verify.c:82
+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 ""
+
+#: g10/verify.c:147
+#, c-format
+msgid "input line %u too long or missing LF\n"
+msgstr ""
+
+#: g10/ringedit.c:302
+#, c-format
+msgid "%s: can't create keyring: %s\n"
+msgstr "%s: tidak dapat membuat keyring: %s\n"
+
+#: g10/ringedit.c:319 g10/ringedit.c:1368
+#, c-format
+msgid "%s: keyring created\n"
+msgstr "%s: keyring tercipta\n"
+
+#: g10/ringedit.c:1545
+msgid "WARNING: 2 files with confidential information exists.\n"
+msgstr "PERINGATAN: terdapat 2 file dengan informasi penting.\n"
+
+#: g10/ringedit.c:1546
+#, c-format
+msgid "%s is the unchanged one\n"
+msgstr "%s adalah yang tidak berubah\n"
+
+#: g10/ringedit.c:1547
+#, c-format
+msgid "%s is the new one\n"
+msgstr "%s adalah yang baru\n"
+
+#: g10/ringedit.c:1548
+msgid "Please fix this possible security flaw\n"
+msgstr "Silakan perbaikan kemungkinan lubang keamanan\n"
+
+#: g10/skclist.c:88 g10/skclist.c:125
+msgid "key is not flagged as insecure - can't use it with the faked RNG!\n"
+msgstr ""
+"kunci tidak dianggap sebagai tidak aman - tidak dapat digunakan dengan RNG "
+"palsu!\n"
+
+#: g10/skclist.c:113
+#, c-format
+msgid "skipped `%s': %s\n"
+msgstr "melewati `%s': %s\n"
+
+#: g10/skclist.c:119
+#, c-format
+msgid ""
+"skipped `%s': this is a PGP generated ElGamal key which is not secure for "
+"signatures!\n"
+msgstr ""
+"melewati `%s': ini adalah kunci ElGamal yang dihasilkan PGP yang tidak aman "
+"untuk signature!\n"
+
+#. do not overwrite
+#: g10/openfile.c:79
+#, c-format
+msgid "File `%s' exists. "
+msgstr "File `%s' ada. "
+
+#: g10/openfile.c:81
+msgid "Overwrite (y/N)? "
+msgstr "Ditimpa (y/T)? "
+
+#: g10/openfile.c:109
+#, c-format
+msgid "%s: unknown suffix\n"
+msgstr "%s: suffix tidak dikenal\n"
+
+#: g10/openfile.c:131
+msgid "Enter new filename"
+msgstr "Masukkan nama file baru"
+
+#: g10/openfile.c:172
+msgid "writing to stdout\n"
+msgstr "menulis ke stdout\n"
+
+#: g10/openfile.c:250
+#, c-format
+msgid "assuming signed data in `%s'\n"
+msgstr "mengasumsikan data bertanda dalam `%s'\n"
+
+#: g10/openfile.c:300
+#, c-format
+msgid "%s: new options file created\n"
+msgstr "%s: file pilihan baru tercipta\n"
+
+#: g10/openfile.c:313
+#, c-format
+msgid "%s: can't create directory: %s\n"
+msgstr "%s: tidak dapat membuat direktori: %s\n"
+
+#: g10/openfile.c:316
+#, c-format
+msgid "%s: directory created\n"
+msgstr "%s: direktori tercipta\n"
+
+#: g10/openfile.c:318
+msgid "you have to start GnuPG again, so it can read the new options file\n"
+msgstr ""
+
+#: g10/encr-data.c:66
+#, c-format
+msgid "%s encrypted data\n"
+msgstr "%s data terenkripsi\n"
+
+#: g10/encr-data.c:68
+#, c-format
+msgid "encrypted with unknown algorithm %d\n"
+msgstr "dienkripsi dengan algoritma tidak dikenal %d\n"
+
+#: g10/encr-data.c:85
+msgid ""
+"WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
+msgstr ""
+"PERINGATAN: pesan dienkripsi dengan kunci lemah dalam cipher simetrik.\n"
+
+#: g10/seskey.c:52
+msgid "weak key created - retrying\n"
+msgstr "kunci lemah tercipta - mengulang\n"
+
+#: g10/seskey.c:57
+#, c-format
+msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
+msgstr ""
+"tidak dapat menghindari kunci lemah untuk cipher simetrik; mencoba %d kali!\n"
+
+#: g10/delkey.c:94
+msgid "there is a secret key for this public key!\n"
+msgstr "terdapat kunci rahasia untuk kunci publik ini!\n"
+
+#: g10/delkey.c:96
+msgid "use option \"--delete-secret-key\" to delete it first.\n"
+msgstr "gunakan pilihan \"--delete-secret-key\" untuk menghapusnya.\n"
+
+#: g10/delkey.c:114
+msgid "can't do that in batchmode without \"--yes\"\n"
+msgstr "tidak dapat dilakukan dalam mode batch tanpa \"--yes\"\n"
+
+#: g10/delkey.c:136
+msgid "Delete this key from the keyring? "
+msgstr "Menghapus kunci ini dari keyring? "
+
+#: g10/delkey.c:144
+msgid "This is a secret key! - really delete? "
+msgstr "Ini adalah kunci rahasia! - Yakin dihapus? "
+
+#: g10/helptext.c:47
+msgid ""
+"It's up to you to assign a value here; this value will never be exported\n"
+"to any 3rd party. We need it to implement the web-of-trust; it has nothing\n"
+"to do with the (implicitly created) web-of-certificates."
+msgstr ""
+"Terserah anda untuk memberi nilai baru di sini; nilai ini tidak akan "
+"diekspor\n"
+"ke pihak ketiga. Kami perlu untuk mengimplementasikan web-of-trust; tidak "
+"ada\n"
+"kaitan dengan (membuat secara implisit) web-of-certificates."
+
+#: g10/helptext.c:53
+msgid "If you want to use this revoked key anyway, answer \"yes\"."
+msgstr "Jika anda tetap ingin menggunakan kunci yang dibatalkan, jawab \"ya\"."
+
+#: g10/helptext.c:57
+msgid "If you want to use this untrusted key anyway, answer \"yes\"."
+msgstr "Jika anda ingin menggunakan kunci tidak terpercaya ini, jawab \"ya\"."
+
+#: g10/helptext.c:61
+msgid ""
+"Enter the user ID of the addressee to whom you want to send the message."
+msgstr "Masukkan ID user penerima pesan."
+
+#: g10/helptext.c:65
+msgid ""
+"Select the algorithm to use.\n"
+"\n"
+"DSA (aka DSS) is the digital signature algorithm which can only be used\n"
+"for signatures. This is the suggested algorithm because verification of\n"
+"DSA signatures are much faster than those of ElGamal.\n"
+"\n"
+"ElGamal is an algorithm which can be used for signatures and encryption.\n"
+"OpenPGP distinguishs between two flavors of this algorithms: an encrypt "
+"only\n"
+"and a sign+encrypt; actually it is the same, but some parameters must be\n"
+"selected in a special way to create a safe key for signatures: this program\n"
+"does this but other OpenPGP implementations are not required to understand\n"
+"the signature+encryption flavor.\n"
+"\n"
+"The first (primary) key must always be a key which is capable of signing;\n"
+"this is the reason why the encryption only ElGamal key is not available in\n"
+"this menu."
+msgstr ""
+"Pilih algoritma untuk digunakan.\n"
+"\n"
+"DSA (DSS) adalah algoritma signature digital yang hanya dapat digunakan \n"
+"untuk signature. Ia merupakan algoritma yang disarankan karena verifikasi\n"
+"signature DSA jauh lebih cepat daripada ElGamal.\n"
+"\n"
+"ElGamal adalah suatu algoritma yang dapat digunakan untuk signature dan \n"
+"enkripsi. OpenPGP membedakannya ke dalam dua bentuk yaitu: hanya enkripsi\n"
+"dan enkripsi+sign; sebenarnya sama, tetapi beberapa parameter harus dipilih\n"
+"secara khusus untuk membuat kunci yang aman untuk signature; program ini\n"
+"melakukannya tetapi implementasi OpenPGP lain tidak harus memahami bentuk\n"
+"signature+enkripsi.\n"
+"\n"
+"Kunci pertama (primer) harus selalu merupakan kunci yang mampu men-sign;\n"
+"hal ini merupakan alasan mengapa kunci ElGamal hanya-enkripsi tidak ada\n"
+"di menu ini."
+
+#: g10/helptext.c:85
+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 ""
+"Meskipun kunci ini didefinisikan dalam RFC2440 mereka tidak disarankan\n"
+"karena belum didukung oleh seluruh program dan signature yang dibuat\n"
+"dengan mereka cukup besar dan sangat lambat untuk diverifikasi."
+
+#: g10/helptext.c:92
+msgid "Enter the size of the key"
+msgstr "Masukkan ukuran kunci"
+
+#: g10/helptext.c:96 g10/helptext.c:101 g10/helptext.c:113 g10/helptext.c:145
+#: g10/helptext.c:150 g10/helptext.c:155 g10/helptext.c:160
+msgid "Answer \"yes\" or \"no\""
+msgstr "Jawab \"ya\" atau \"tidak\""
+
+#: g10/helptext.c:106
+msgid ""
+"Enter the required value as shown in the prompt.\n"
+"It is possible to enter a ISO date (YYYY-MM-DD) but you won't\n"
+"get a good error response - instead the system tries to interpret\n"
+"the given value as an interval."
+msgstr ""
+"Masukkan nilai yang diperlukan seperti pada prompt.\n"
+"Dapat digunakan format (YYYY-MM-DD) untuk mengisi tanggal ISO tetapi anda\n"
+"tidak akan mendapat respon kesalahan yang baik - sebaiknya sistem akan\n"
+"berusaha menginterprestasi nilai yang diberikan sebagai sebuah interval."
+
+#: g10/helptext.c:118
+msgid "Enter the name of the key holder"
+msgstr "Masukkan nama pemegang kunci"
+
+#: g10/helptext.c:123
+msgid "please enter an optional but highly suggested email address"
+msgstr "silakan masukkan alamat email (pilihan namun sangat dianjurkan)"
+
+#: g10/helptext.c:127
+msgid "Please enter an optional comment"
+msgstr "Silakan masukkan komentar pilihan"
+
+#: g10/helptext.c:132
+msgid ""
+"N to change the name.\n"
+"C to change the comment.\n"
+"E to change the email address.\n"
+"O to continue with key generation.\n"
+"Q to to quit the key generation."
+msgstr ""
+"N untuk merubah nama.\n"
+"K untuk merubah komentar.\n"
+"E untuk merubah alamat email.\n"
+"O untuk melanjutkan dengan pembuatan kunci.\n"
+"K untuk menghentikan pembuatan kunci."
+
+#: g10/helptext.c:141
+msgid "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
+msgstr "Jawab \"ya\" (atau \"y\") jika telah siap membuat subkey."
+
+#: g10/helptext.c:164
+msgid "Answer \"yes\" is you want to sign ALL the user IDs"
+msgstr "Jawab \"ya\" jika anda ingin menandai seluruh ID user"
+
+#: g10/helptext.c:168
+msgid ""
+"Answer \"yes\" if you really want to delete this user ID.\n"
+"All certificates are then also lost!"
+msgstr ""
+"Jawab \"ya\" jika anda benar-benar ingin menghapus ID user ini.\n"
+"Seluruh sertifikat lalu akan hilang!"
+
+#: g10/helptext.c:173
+msgid "Answer \"yes\" if it is okay to delete the subkey"
+msgstr "Jawab \"ya\" jika ingin menghapus subkey"
+
+#: g10/helptext.c:178
+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 ""
+"Ini adalah signature valid untuk kunci; anda normalnya tdk ingin menghapus\n"
+"signature ini karena mungkin penting membangun koneksi trust ke kunci atau\n"
+"ke kunci tersertifikasi lain dengan kunci ini."
+
+#: g10/helptext.c:183
+msgid ""
+"This signature can't be checked because you don't have the\n"
+"corresponding key. You should postpone its deletion until you\n"
+"know which key was used because this signing key might establish\n"
+"a trust connection through another already certified key."
+msgstr ""
+"Signature ini tidak dapat diperiksa karena anda tidak memiliki kunci\n"
+"korespondennya. Anda perlu menunda penghapusannya hingga anda tahu\n"
+"kunci yang digunakan karena kunci penanda ini mungkin membangun suatu\n"
+"koneksi trust melalui kunci yang telah tersertifikasi lain."
+
+#: g10/helptext.c:189
+msgid ""
+"The signature is not valid. It does make sense to remove it from\n"
+"your keyring."
+msgstr ""
+"Signature tidak valid. Masuk akal untuk menghapusnya dari keyring anda."
+
+#: g10/helptext.c:193
+msgid ""
+"This is a signature which binds the user ID to the key. It is\n"
+"usually not a good idea to remove such a signature. Actually\n"
+"GnuPG might not be able to use this key anymore. So do this\n"
+"only if this self-signature is for some reason not valid and\n"
+"a second one is available."
+msgstr ""
+"Ini adalah signature yang menghubungkan ID pemakai ke kunci. Biasanya\n"
+"bukan ide yang baik untuk menghapus signature semacam itu. Umumnya\n"
+"GnuPG tidak akan dapat menggunakan kunci ini lagi. Sehingga lakukan hal\n"
+"ini bila self-signature untuk beberapa alasan tidak valid dan\n"
+"tersedia yang kedua."
+
+#: g10/helptext.c:202
+msgid ""
+"Please enter the passhrase; this is a secret sentence \n"
+" Blurb, blurb,.... "
+msgstr ""
+"Silakan masukkan passphrase; ini kalimat rahasia\n"
+" Blurb, blurb,...."
+
+#: g10/helptext.c:209
+msgid "Please repeat the last passphrase, so you are sure what you typed in."
+msgstr ""
+"Silakan ulangi passphrase terakhir, sehingga anda yakin yang anda ketikkan."
+
+#: g10/helptext.c:213
+#, fuzzy
+msgid "Give the name of the file to which the signature applies"
+msgstr "Beri nama file untuk mengaplikasikan signature"
+
+#: g10/helptext.c:218
+msgid "Answer \"yes\" if it is okay to overwrite the file"
+msgstr "Jawab \"ya\" jika ingin menimpa file"
+
+#: g10/helptext.c:223
+msgid ""
+"Please enter a new filename. If you just hit RETURN the default\n"
+"file (which is shown in brackets) will be used."
+msgstr ""
+"Silakan masukan nama file baru. Jika anda hanya menekan RETURN nama\n"
+"file baku (yang diapit tanda kurung) akan dipakai."
+
+#: g10/helptext.c:229
+msgid ""
+"You should specify a reason for the certification. Depending on the\n"
+"context you have the ability to choose from this list:\n"
+" \"Key has been compromised\"\n"
+" Use this if you have a reason to believe that unauthorized persons\n"
+" got access to your secret key.\n"
+" \"Key is superseeded\"\n"
+" Use this if you have replaced this key with a newer one.\n"
+" \"Key is no longer used\"\n"
+" Use this if you have retired this key.\n"
+" \"User ID is no longer valid\"\n"
+" 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 ""
+
+#: g10/helptext.c:245
+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 ""
+
+#: g10/helptext.c:260
+msgid "No help available"
+msgstr "Tidak tersedia bantuan"
+
+#: g10/helptext.c:268
+#, fuzzy, c-format
+msgid "No help available for `%s'"
+msgstr "Tidak tersedia bantuan untuk `%s'"
+
+#~ msgid "set debugging flags"
+#~ msgstr "set flag debugging"
+
+#~ msgid "enable full debugging"
+#~ msgstr "aktifkan full debugging"
+
+#~ msgid "do not write comment packets"
+#~ msgstr "jangan menulis komentar paket"
+
+#~ msgid "(default is 1)"
+#~ msgstr "(baku adalah 1)"
+
+#~ msgid "(default is 3)"
+#~ msgstr "(baku adalah 3)"
+
+#~ msgid " (%d) ElGamal in a v3 packet\n"
+#~ msgstr " (%d) ElGamal dalam paket v3\n"
+
+#~ msgid "Key generation can only be used in interactive mode\n"
+#~ msgstr "Pembuatan kunci hanya dapat digunakan dalam mode interaktif\n"
diff --git a/po/it.po b/po/it.po
index 744110ff5..c15c845b3 100644
--- a/po/it.po
+++ b/po/it.po
@@ -4,9 +4,9 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: gnupg-1.0.0\n"
-"POT-Creation-Date: 1999-09-05 19:21+0200\n"
-"PO-Revision-Date: 1999-09-09 15:51+02:00\n"
+"Project-Id-Version: gnupg-1.0.0h\n"
+"POT-Creation-Date: 2000-05-30 13:59+0200\n"
+"PO-Revision-Date: 1999-12-08 15:51+02:00\n"
"Last-Translator: Marco d'Itri <[email protected]>\n"
"Language-Team: Italian <[email protected]>\n"
"MIME-Version: 1.0\n"
@@ -17,11 +17,11 @@ msgstr ""
msgid "Warning: using insecure memory!\n"
msgstr "Attenzione: si sta usando memoria insicura!\n"
-#: util/secmem.c:275
+#: util/secmem.c:287
msgid "operation is not possible without initialized secure memory\n"
msgstr "l'operazione non � possibile senza memoria sicura inizializzata\n"
-#: util/secmem.c:276
+#: util/secmem.c:288
msgid "(you may have used the wrong program for this task)\n"
msgstr "(potresti avere usato il programma sbagliato per questa funzione)\n"
@@ -41,7 +41,7 @@ msgstr "no"
msgid "nN"
msgstr "nN"
-#: g10/keyedit.c:564 util/miscutil.c:308
+#: g10/keyedit.c:580 util/miscutil.c:308
msgid "quit"
msgstr "quit"
@@ -241,22 +241,79 @@ msgstr "errore di rete"
msgid "not encrypted"
msgstr "non cifrato"
-#: util/logger.c:218
+# ??? (Md)
+#: util/errors.c:103
+msgid "not processed"
+msgstr "non esaminato"
+
+#: util/logger.c:224
#, c-format
msgid "... this is a bug (%s:%d:%s)\n"
msgstr "... questo � un bug (%s:%d:%s)\n"
-#: util/logger.c:224
+#: util/logger.c:230
#, c-format
msgid "you found a bug ... (%s:%d)\n"
msgstr "Hai trovato un bug... (%s:%d)\n"
-#: cipher/random.c:452
+#: cipher/random.c:311 g10/import.c:127 g10/keygen.c:1150
+#, c-format
+msgid "can't open `%s': %s\n"
+msgstr "impossibile aprire `%s': %s\n"
+
+#: cipher/random.c:315
+#, fuzzy, c-format
+msgid "can't stat `%s': %s\n"
+msgstr "impossibile aprire `%s': %s\n"
+
+#: cipher/random.c:320
+#, c-format
+msgid "`%s' is not a regular file - ignored\n"
+msgstr ""
+
+#: cipher/random.c:325
+msgid "note: random_seed file is empty\n"
+msgstr ""
+
+#: cipher/random.c:331
+msgid "warning: invalid size of random_seed file - not used\n"
+msgstr ""
+
+#: cipher/random.c:339
+#, fuzzy, c-format
+msgid "can't read `%s': %s\n"
+msgstr "impossibile aprire `%s': %s\n"
+
+#: cipher/random.c:377
+msgid "note: random_seed file not updated\n"
+msgstr ""
+
+#: cipher/random.c:397
+#, fuzzy, c-format
+msgid "can't create `%s': %s\n"
+msgstr "impossibile creare %s: %s\n"
+
+#: cipher/random.c:404
+#, fuzzy, c-format
+msgid "can't write `%s': %s\n"
+msgstr "impossibile aprire `%s': %s\n"
+
+#: cipher/random.c:407
+#, fuzzy, c-format
+msgid "can't close `%s': %s\n"
+msgstr "impossibile aprire `%s': %s\n"
+
+#: cipher/random.c:418
+#, c-format
+msgid "too many random bits requested; the limit is %d\n"
+msgstr ""
+
+#: cipher/random.c:647
msgid "WARNING: using insecure random number generator!!\n"
msgstr ""
"ATTENZIONE: si sta usando un generatore di numeri casuali non sicuro!!\n"
-#: cipher/random.c:453
+#: cipher/random.c:648
msgid ""
"The random number generator is only a kludge to let\n"
"it run - it is in no way a strong RNG!\n"
@@ -270,7 +327,7 @@ msgstr ""
"NON USARE ALCUN DATO GENERATO DA QUESTO PROGRAMMA!\n"
"\n"
-#: cipher/rndlinux.c:135
+#: cipher/rndlinux.c:141
#, c-format
msgid ""
"\n"
@@ -282,7 +339,7 @@ msgstr ""
"altra cosa per dare all'OS la possibilit� di raccogliere altra entropia!\n"
"(Servono altri %d byte)\n"
-#: g10/g10.c:185
+#: g10/g10.c:195
msgid ""
"@Commands:\n"
" "
@@ -290,135 +347,139 @@ msgstr ""
"@Comandi:\n"
" "
-#: g10/g10.c:187
+#: g10/g10.c:197
msgid "|[file]|make a signature"
msgstr "|[file]|fai una firma"
-#: g10/g10.c:188
+#: g10/g10.c:198
msgid "|[file]|make a clear text signature"
msgstr "|[file]|fai una firma mantenendo il testo in chiaro"
-#: g10/g10.c:189
+#: g10/g10.c:199
msgid "make a detached signature"
msgstr "fai una firma separata"
-#: g10/g10.c:190
+#: g10/g10.c:200
msgid "encrypt data"
msgstr "cifra dati"
-#: g10/g10.c:191
+#: g10/g10.c:201
msgid "encryption only with symmetric cipher"
msgstr "cifra solo con un cifrario simmetrico"
-#: g10/g10.c:192
+#: g10/g10.c:202
msgid "store only"
msgstr "immagazzina soltanto"
-#: g10/g10.c:193
+#: g10/g10.c:203
msgid "decrypt data (default)"
msgstr "decifra dati (predefinito)"
-#: g10/g10.c:194
+#: g10/g10.c:204
msgid "verify a signature"
msgstr "verifica una firma"
-#: g10/g10.c:195
+#: g10/g10.c:206
msgid "list keys"
msgstr "elenca le chiavi"
-#: g10/g10.c:197
+#: g10/g10.c:208
msgid "list keys and signatures"
msgstr "elenca le chiavi e le firme"
-#: g10/g10.c:198
+#: g10/g10.c:209
msgid "check key signatures"
msgstr "controlla le firme delle chiavi"
-#: g10/g10.c:199
+#: g10/g10.c:210
msgid "list keys and fingerprints"
msgstr "elenca le chiavi e le impronte digitali"
-#: g10/g10.c:200
+#: g10/g10.c:211
msgid "list secret keys"
msgstr "elenca le chiavi segrete"
-#: g10/g10.c:201
+#: g10/g10.c:212
msgid "generate a new key pair"
msgstr "genera una nuova coppia di chiavi"
-#: g10/g10.c:202
+#: g10/g10.c:213
msgid "remove key from the public keyring"
msgstr "rimuove una chiave dal portachiavi pubblico"
-#: g10/g10.c:203
+#: g10/g10.c:215
+msgid "remove key from the secret keyring"
+msgstr "rimuove una chiave dal portachiavi privato"
+
+#: g10/g10.c:216
msgid "sign a key"
msgstr "firma una chiave"
-#: g10/g10.c:204
+#: g10/g10.c:217
msgid "sign a key locally"
msgstr "firma localmente una chiave"
-#: g10/g10.c:205
+#: g10/g10.c:218
msgid "sign or edit a key"
msgstr "firma o modifica una chiave"
-#: g10/g10.c:206
+#: g10/g10.c:219
msgid "generate a revocation certificate"
msgstr "genera un certificato di revoca"
-#: g10/g10.c:207
+#: g10/g10.c:220
msgid "export keys"
msgstr "esporta delle chiavi"
-#: g10/g10.c:208
+#: g10/g10.c:221
msgid "export keys to a key server"
msgstr "esporta le chiavi a un key server"
-#: g10/g10.c:209
+#: g10/g10.c:222
msgid "import keys from a key server"
msgstr "importa le chiavi da un key server"
-#: g10/g10.c:212
+#: g10/g10.c:226
msgid "import/merge keys"
msgstr "importa/aggiungi delle chiavi"
-#: g10/g10.c:214
+#: g10/g10.c:228
msgid "list only the sequence of packets"
msgstr "elenca solo la sequenza dei pacchetti"
-#: g10/g10.c:216
+#: g10/g10.c:230
msgid "export the ownertrust values"
msgstr "esporta i valori di fiducia"
-#: g10/g10.c:218
+#: g10/g10.c:232
msgid "import ownertrust values"
msgstr "importa i valori di fiducia"
-#: g10/g10.c:220
+#: g10/g10.c:234
msgid "update the trust database"
msgstr "aggiorna il database della fiducia"
-#: g10/g10.c:222
+#: g10/g10.c:236
msgid "|[NAMES]|check the trust database"
msgstr "|[NOMI]|controlla il database della fiducia"
-#: g10/g10.c:223
+#: g10/g10.c:237
msgid "fix a corrupted trust database"
msgstr "ripara un database della fiducia rovinato"
-#: g10/g10.c:224
+#: g10/g10.c:238
msgid "De-Armor a file or stdin"
msgstr "rimuovi l'armatura a un file o a stdin"
-#: g10/g10.c:225
+#: g10/g10.c:240
msgid "En-Armor a file or stdin"
msgstr "crea l'armatura a un file o a stdin"
-#: g10/g10.c:226
+#: g10/g10.c:242
msgid "|algo [files]|print message digests"
msgstr "|algo [files]|stampa tutti i message digests"
-#: g10/g10.c:230
+#: g10/g10.c:246
msgid ""
"@\n"
"Options:\n"
@@ -428,170 +489,156 @@ msgstr ""
"Opzioni:\n"
" "
-#: g10/g10.c:232
+#: g10/g10.c:248
msgid "create ascii armored output"
msgstr "crea un output ascii con armatura"
-#: g10/g10.c:233
+#: g10/g10.c:250
msgid "|NAME|encrypt for NAME"
msgstr "|NOME|cifra per NOME"
-#: g10/g10.c:236
+#: g10/g10.c:253
msgid "|NAME|use NAME as default recipient"
msgstr "|NOME|usa NOME come destinatario predefinito"
-#: g10/g10.c:238
+#: g10/g10.c:255
msgid "use the default key as default recipient"
msgstr "usa la chiave predefinita come destinatario predefinito"
-#: g10/g10.c:242
+#: g10/g10.c:259
msgid "use this user-id to sign or decrypt"
msgstr "usa questo user-id per firmare o decifrare"
-#: g10/g10.c:243
+#: g10/g10.c:260
msgid "|N|set compress level N (0 disables)"
msgstr "|N|imposta il livello di compressione (0 disab.)"
-#: g10/g10.c:245
+#: g10/g10.c:262
msgid "use canonical text mode"
msgstr "usa il modo testo canonico"
-#: g10/g10.c:246
+#: g10/g10.c:263
msgid "use as output file"
msgstr "usa come file di output"
-#: g10/g10.c:247
+#: g10/g10.c:264
msgid "verbose"
msgstr "prolisso"
-#: g10/g10.c:248
+#: g10/g10.c:265
msgid "be somewhat more quiet"
msgstr "meno prolisso"
-#: g10/g10.c:249
+#: g10/g10.c:266
msgid "don't use the terminal at all"
msgstr "non usa per niente il terminale"
-#: g10/g10.c:250
+#: g10/g10.c:267
msgid "force v3 signatures"
msgstr "forza l'uso di firme v3"
-#: g10/g10.c:251
+#: g10/g10.c:268
msgid "always use a MDC for encryption"
msgstr "usa sempre un MDC per cifrare"
-#: g10/g10.c:252
+#: g10/g10.c:269
msgid "do not make any changes"
msgstr "non fa cambiamenti"
#. { oInteractive, "interactive", 0, N_("prompt before overwriting") },
-#: g10/g10.c:254
+#: g10/g10.c:271
msgid "batch mode: never ask"
msgstr "modo batch: non fa domande"
-#: g10/g10.c:255
+#: g10/g10.c:272
msgid "assume yes on most questions"
msgstr "assumi \"s�\" per quasi tutte le domande"
-#: g10/g10.c:256
+#: g10/g10.c:273
msgid "assume no on most questions"
msgstr "assumi \"no\" per quasi tutte le domande"
-#: g10/g10.c:257
+#: g10/g10.c:274
msgid "add this keyring to the list of keyrings"
msgstr "aggiungi questo portachiavi alla lista"
-#: g10/g10.c:258
+#: g10/g10.c:275
msgid "add this secret keyring to the list"
msgstr "aggiungi questo portachiavi segreto alla lista"
-#: g10/g10.c:259
+#: g10/g10.c:276
msgid "|NAME|use NAME as default secret key"
msgstr "|NOME|usa NOME come chiave segreta predefinita"
-#: g10/g10.c:260
+#: g10/g10.c:277
msgid "|HOST|use this keyserver to lookup keys"
msgstr "|HOST|cerca le chiavi in questo keyserver"
-#: g10/g10.c:261
+#: g10/g10.c:278
msgid "|NAME|set terminal charset to NAME"
msgstr "|NOME|imposta il set di caratteri del terminale NOME"
-#: g10/g10.c:262
+#: g10/g10.c:279
msgid "read options from file"
msgstr "leggi le opzioni dal file"
-#: g10/g10.c:264
-msgid "set debugging flags"
-msgstr "imposta i flag di debugging"
-
-#: g10/g10.c:265
-msgid "enable full debugging"
-msgstr "abilita il debugging completo"
-
-#: g10/g10.c:266
+#: g10/g10.c:283
msgid "|FD|write status info to this FD"
msgstr "|FD|scrivi le informazioni di stato su questo FD"
-#: g10/g10.c:267
-msgid "do not write comment packets"
-msgstr "non scrivere pacchetti di commento"
-
-#: g10/g10.c:268
-msgid "(default is 1)"
-msgstr "(predefinito � 1)"
-
-#: g10/g10.c:269
-msgid "(default is 3)"
-msgstr "(predefinito � 3)"
-
-#: g10/g10.c:271
+#: g10/g10.c:288
msgid "|FILE|load extension module FILE"
msgstr "|FILE|carica il modulo di estensione FILE"
-#: g10/g10.c:272
+#: g10/g10.c:289
msgid "emulate the mode described in RFC1991"
msgstr "emula il modo descritto in RFC 1991"
-#: g10/g10.c:273
+#: g10/g10.c:290
msgid "set all packet, cipher and digest options to OpenPGP behavior"
msgstr ""
"imposta tutte le opzioni di pacchetto,\n"
"cifrario e digest per OpenPGP"
-#: g10/g10.c:274
+#: g10/g10.c:291
msgid "|N|use passphrase mode N"
msgstr "|N|usa il modo N per la passphrase"
-#: g10/g10.c:276
+#: g10/g10.c:293
msgid "|NAME|use message digest algorithm NAME for passphrases"
msgstr "|NOME|usa l'algoritmo di message digest NOME per le passphrase"
-#: g10/g10.c:278
+#: g10/g10.c:295
msgid "|NAME|use cipher algorithm NAME for passphrases"
msgstr "|NOME|usa l'alg. di cifratura NOME per le passphrase"
-#: g10/g10.c:279
+#: g10/g10.c:296
msgid "|NAME|use cipher algorithm NAME"
msgstr "|NOME|usa l'algoritmo di cifratura NOME"
-#: g10/g10.c:280
+#: g10/g10.c:297
msgid "|NAME|use message digest algorithm NAME"
msgstr "|NOME|usa l'algoritmo di message digest NOME"
-#: g10/g10.c:281
+#: g10/g10.c:298
msgid "|N|use compress algorithm N"
msgstr "|N|usa l'algoritmo di compressione N"
-#: g10/g10.c:282
+#: g10/g10.c:299
msgid "throw keyid field of encrypted packets"
msgstr "elimina il campo keyid dei pacchetti cifrati"
-#: g10/g10.c:283
+#: g10/g10.c:300
msgid "|NAME=VALUE|use this notation data"
msgstr "|NOME=VALORE|usa questi dati per una nota"
-#: g10/g10.c:285
+#: g10/g10.c:303
+msgid ""
+"@\n"
+"(See the man page for a complete listing of all commands and options)\n"
+msgstr ""
+
+#: g10/g10.c:306
msgid ""
"@\n"
"Examples:\n"
@@ -611,15 +658,15 @@ msgstr ""
" --list-keys [nomi] mostra le chiavi\n"
" --fingerprint [nomi] mostra le impronte digitali\n"
-#: g10/g10.c:370
+#: g10/g10.c:399
msgid "Please report bugs to <[email protected]>.\n"
msgstr "Per favore segnala i bug a <[email protected]>.\n"
-#: g10/g10.c:374
+#: g10/g10.c:403
msgid "Usage: gpg [options] [files] (-h for help)"
msgstr "Uso: gpg [opzioni] [files] (-h per l'aiuto)"
-#: g10/g10.c:377
+#: g10/g10.c:406
msgid ""
"Syntax: gpg [options] [files]\n"
"sign, check, encrypt or decrypt\n"
@@ -629,7 +676,7 @@ msgstr ""
"firma, controlla, cifra o decifra\n"
"l'operazione predefinita dipende dai dati di input\n"
-#: g10/g10.c:382
+#: g10/g10.c:413
msgid ""
"\n"
"Supported algorithms:\n"
@@ -637,184 +684,184 @@ msgstr ""
"\n"
"Algoritmi gestiti:\n"
-#: g10/g10.c:456
+#: g10/g10.c:492
msgid "usage: gpg [options] "
msgstr "uso: gpg [opzioni] "
-#: g10/g10.c:509
+#: g10/g10.c:545
msgid "conflicting commands\n"
msgstr "comandi in conflitto\n"
-#: g10/g10.c:644
+#: g10/g10.c:687
#, c-format
msgid "NOTE: no default option file `%s'\n"
msgstr "NOTA: manca il file `%s' con le opzioni predefinite\n"
-#: g10/g10.c:648
+#: g10/g10.c:691
#, c-format
msgid "option file `%s': %s\n"
msgstr "file con le opzioni `%s': %s\n"
-#: g10/g10.c:655
+#: g10/g10.c:698
#, c-format
msgid "reading options from `%s'\n"
msgstr "lettura delle opzioni da `%s'\n"
-#: g10/g10.c:835
+#: g10/g10.c:885
#, c-format
msgid "%s is not a valid character set\n"
msgstr "%s non � un set di caratteri valido\n"
-#: g10/g10.c:892 g10/g10.c:901
+#: g10/g10.c:945 g10/g10.c:954
#, c-format
msgid "NOTE: %s is not for normal use!\n"
msgstr "NOTA: %s normalmente non deve essere usato!\n"
-#: g10/g10.c:894
+#: g10/g10.c:947
#, c-format
msgid "%s not allowed with %s!\n"
msgstr "Non � permesso usare %s con %s!\n"
-#: g10/g10.c:897
+#: g10/g10.c:950
#, c-format
msgid "%s makes no sense with %s!\n"
msgstr "Non ha senso usare %s con %s!\n"
-#: g10/g10.c:916 g10/g10.c:928
+#: g10/g10.c:969 g10/g10.c:981
msgid "selected cipher algorithm is invalid\n"
msgstr "l'algoritmo di cifratura selezionato non � valido\n"
-#: g10/g10.c:922 g10/g10.c:934
+#: g10/g10.c:975 g10/g10.c:987
msgid "selected digest algorithm is invalid\n"
msgstr "l'algoritmo di digest selezionato non � valido\n"
-#: g10/g10.c:938
+#: g10/g10.c:991
msgid "the given policy URL is invalid\n"
msgstr "L'URL della policy indicato non � valido\n"
-#: g10/g10.c:941
+#: g10/g10.c:994
#, c-format
msgid "compress algorithm must be in range %d..%d\n"
msgstr "l'algoritmo di compressione deve essere tra %d e %d\n"
-#: g10/g10.c:943
+#: g10/g10.c:996
msgid "completes-needed must be greater than 0\n"
msgstr "completes-needed deve essere maggiore di 0\n"
-#: g10/g10.c:945
+#: g10/g10.c:998
msgid "marginals-needed must be greater than 1\n"
msgstr "marginals-needed deve essere maggiore di 1\n"
-#: g10/g10.c:947
+#: g10/g10.c:1000
msgid "max-cert-depth must be in range 1 to 255\n"
msgstr "max-cert-depth deve essere tra 1 e 255\n"
-#: g10/g10.c:950
+#: g10/g10.c:1003
msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
msgstr "NOTA: l'uso del modo S2K semplice (0) � fortemente scoraggiato\n"
-#: g10/g10.c:954
+#: g10/g10.c:1007
msgid "invalid S2K mode; must be 0, 1 or 3\n"
msgstr "modo S2K non valido; deve essere 0, 1 o 3\n"
-#: g10/g10.c:1031
+#: g10/g10.c:1092
#, c-format
msgid "failed to initialize the TrustDB: %s\n"
msgstr "inizializzazione del trustdb fallita: %s\n"
-#: g10/g10.c:1037
+#: g10/g10.c:1098
msgid "--store [filename]"
msgstr "--store [nomefile]"
-#: g10/g10.c:1044
+#: g10/g10.c:1105
msgid "--symmetric [filename]"
msgstr "--symmetric [nomefile]"
-#: g10/g10.c:1052
+#: g10/g10.c:1113
msgid "--encrypt [filename]"
msgstr "--encrypt [nomefile]"
-#: g10/g10.c:1065
+#: g10/g10.c:1126
msgid "--sign [filename]"
msgstr "--sign [nomefile]"
-#: g10/g10.c:1078
+#: g10/g10.c:1139
msgid "--sign --encrypt [filename]"
msgstr "--sign --encrypt [nomefile]"
-#: g10/g10.c:1092
+#: g10/g10.c:1153
msgid "--clearsign [filename]"
msgstr "--clearsign [nomefile]"
-#: g10/g10.c:1104
+#: g10/g10.c:1170
msgid "--decrypt [filename]"
msgstr "--decrypt [nomefile]"
-#: g10/g10.c:1112
+#: g10/g10.c:1178
msgid "--sign-key user-id"
msgstr "--sign-key user-id"
-#: g10/g10.c:1120
+#: g10/g10.c:1186
msgid "--lsign-key user-id"
msgstr "--lsign-key user-id"
-#: g10/g10.c:1128
+#: g10/g10.c:1194
msgid "--edit-key user-id [commands]"
msgstr "--edit-key user-id [comandi]"
-#: g10/g10.c:1144
+#: g10/g10.c:1210
msgid "--delete-secret-key user-id"
msgstr "--delete-secret-key user-id"
-#: g10/g10.c:1147
+#: g10/g10.c:1213
msgid "--delete-key user-id"
msgstr "--delete-key user-id"
-#: g10/encode.c:259 g10/g10.c:1171 g10/sign.c:366
+#: g10/encode.c:260 g10/g10.c:1250 g10/sign.c:373
#, c-format
msgid "can't open %s: %s\n"
msgstr "impossibile aprire `%s': %s\n"
-#: g10/g10.c:1182
+#: g10/g10.c:1265
msgid "-k[v][v][v][c] [user-id] [keyring]"
msgstr "-k[v][v][v][c] [user-id] [portachiavi]"
-#: g10/g10.c:1243
+#: g10/g10.c:1331
#, c-format
msgid "dearmoring failed: %s\n"
msgstr "rimozione dell'armatura fallita: %s\n"
-#: g10/g10.c:1251
+#: g10/g10.c:1339
#, c-format
msgid "enarmoring failed: %s\n"
msgstr "creazione dell'armatura fallita: %s\n"
-#: g10/g10.c:1319
+#: g10/g10.c:1407
#, c-format
msgid "invalid hash algorithm `%s'\n"
msgstr "algoritmo di hash non valido `%s'\n"
-#: g10/g10.c:1400
+#: g10/g10.c:1488
msgid "[filename]"
msgstr "[nomefile]"
-#: g10/g10.c:1404
+#: g10/g10.c:1492
msgid "Go ahead and type your message ...\n"
msgstr "Vai avanti e scrivi il messaggio...\n"
-#: g10/decrypt.c:59 g10/g10.c:1407 g10/verify.c:66
+#: g10/decrypt.c:59 g10/g10.c:1495 g10/verify.c:68 g10/verify.c:113
#, c-format
msgid "can't open `%s'\n"
msgstr "impossibile aprire `%s'\n"
-#: g10/g10.c:1576
+#: g10/g10.c:1665
msgid ""
"the first character of a notation name must be a letter or an underscore\n"
msgstr ""
"il primo carattere del nome di una nota deve essere una lettera o un\n"
"underscore\n"
-#: g10/g10.c:1582
+#: g10/g10.c:1671
msgid ""
"a notation name must have only letters, digits, dots or underscores and end "
"with an '='\n"
@@ -822,83 +869,87 @@ msgstr ""
"il nome di una nota deve essere formato solo da lettere, numeri, punti o\n"
"underscore e deve finire con `='\n"
-#: g10/g10.c:1588
+#: g10/g10.c:1677
msgid "dots in a notation name must be surrounded by other characters\n"
msgstr "nel nome di una nota i punti devono avere altri caratteri intorno\n"
-#: g10/g10.c:1596
+#: g10/g10.c:1685
msgid "a notation value must not use any control characters\n"
msgstr "il valore di una nota non deve usare caratteri di controllo\n"
-#: g10/armor.c:296
+#: g10/armor.c:302
#, c-format
msgid "armor: %s\n"
msgstr "armatura: %s\n"
-#: g10/armor.c:319
+#: g10/armor.c:331
msgid "invalid armor header: "
msgstr "header dell'armatura non valido: "
-#: g10/armor.c:326
+#: g10/armor.c:338
msgid "armor header: "
msgstr "header dell'armatura: "
-#: g10/armor.c:337
+#: g10/armor.c:349
msgid "invalid clearsig header\n"
msgstr "header della firma in chiaro non valido\n"
-#: g10/armor.c:389
+#: g10/armor.c:401
msgid "nested clear text signatures\n"
msgstr "firme in chiaro annidate\n"
-#: g10/armor.c:500
+#: g10/armor.c:525
msgid "invalid dash escaped line: "
msgstr "riga protetta con il trattino non valida: "
-#: g10/armor.c:512
+#: g10/armor.c:537
msgid "unexpected armor:"
msgstr "armatura inaspettata:"
-#: g10/armor.c:629
+#: g10/armor.c:654
#, c-format
msgid "invalid radix64 character %02x skipped\n"
msgstr "Carattere radix64 non valido %02x saltato\n"
-#: g10/armor.c:672
+#: g10/armor.c:697
msgid "premature eof (no CRC)\n"
msgstr "eof prematura (nessun CRC)\n"
-#: g10/armor.c:706
+#: g10/armor.c:731
msgid "premature eof (in CRC)\n"
msgstr "eof prematura (nel CRC)\n"
-#: g10/armor.c:710
+#: g10/armor.c:735
msgid "malformed CRC\n"
msgstr "CRC malformato\n"
-#: g10/armor.c:714
+#: g10/armor.c:739
#, c-format
msgid "CRC error; %06lx - %06lx\n"
msgstr "errore nel CRC; %06lx - %06lx\n"
-#: g10/armor.c:731
+#: g10/armor.c:756
msgid "premature eof (in Trailer)\n"
msgstr "eof prematura (nella coda)\n"
-#: g10/armor.c:735
+#: g10/armor.c:760
msgid "error in trailer line\n"
msgstr "errore nella riga della coda\n"
-#: g10/armor.c:1001
+#: g10/armor.c:912
+msgid "For info see http://www.gnupg.org"
+msgstr ""
+
+#: g10/armor.c:1033
msgid "no valid OpenPGP data found.\n"
msgstr "Non sono stati trovati dati OpenPGP validi.\n"
-#: g10/armor.c:1005
+#: g10/armor.c:1038
#, c-format
msgid "invalid armor: line longer than %d characters\n"
msgstr "armatura non valida: linea pi� lunga di %d caratteri\n"
-#: g10/armor.c:1009
+#: g10/armor.c:1042
msgid ""
"quoted printable character in armor - probably a buggy MTA has been used\n"
msgstr ""
@@ -915,14 +966,44 @@ msgstr " Impronta digitale:"
msgid "Fingerprint:"
msgstr "Impronta digitale:"
+#: g10/pkclist.c:116
+msgid "No reason specified"
+msgstr ""
+
+#: g10/pkclist.c:118
+#, fuzzy
+msgid "Key is superseeded"
+msgstr "La chiave � protetta.\n"
+
+#: g10/pkclist.c:120
+#, fuzzy
+msgid "Key has been compromised"
+msgstr "Questa chiave � stata disabilitata"
+
+#: g10/pkclist.c:122
+msgid "Key is no longer used"
+msgstr ""
+
+#: g10/pkclist.c:124
+msgid "User ID is no longer valid"
+msgstr ""
+
+#: g10/pkclist.c:128
+msgid "Reason for revocation: "
+msgstr ""
+
+#: g10/pkclist.c:145
+msgid "Revocation comment: "
+msgstr ""
+
# valid user replies (not including 1..4)
# [Marco, you can change 'm' and 's' to whatever letters you like]
#. a string with valid answers
-#: g10/pkclist.c:197
+#: g10/pkclist.c:303
msgid "sSmMqQ"
msgstr "sSmMqQ"
-#: g10/pkclist.c:201
+#: g10/pkclist.c:307
#, c-format
msgid ""
"No trust value assigned to %lu:\n"
@@ -931,7 +1012,7 @@ msgstr ""
"Nessun valore di fiducia assegnato a %lu:\n"
"%4u%c/%08lX %s \""
-#: g10/pkclist.c:213
+#: g10/pkclist.c:319
msgid ""
"Please decide how far you trust this user to correctly\n"
"verify other users' keys (by looking at passports,\n"
@@ -953,23 +1034,23 @@ msgstr ""
" 4 = Mi fido completamente\n"
" s = mostrami ulteriori informazioni\n"
-#: g10/pkclist.c:222
+#: g10/pkclist.c:328
msgid " m = back to the main menu\n"
msgstr " m = torna al men� principale\n"
-#: g10/pkclist.c:224
+#: g10/pkclist.c:330
msgid " q = quit\n"
msgstr " q = abbandona\n"
-#: g10/pkclist.c:230
+#: g10/pkclist.c:336
msgid "Your decision? "
msgstr "Cosa hai deciso? "
-#: g10/pkclist.c:252
+#: g10/pkclist.c:358
msgid "Certificates leading to an ultimately trusted key:\n"
msgstr "Certificati che portano a chiavi definitivamente affidabili:\n"
-#: g10/pkclist.c:323
+#: g10/pkclist.c:429
msgid ""
"Could not find a valid trust path to the key. Let's see whether we\n"
"can assign some missing owner trust values.\n"
@@ -979,20 +1060,20 @@ msgstr ""
"se possiamo assegnare qualche valore di fiducia del proprietario mancante.\n"
"\n"
-#: g10/pkclist.c:329
+#: g10/pkclist.c:435
msgid ""
"No path leading to one of our keys found.\n"
"\n"
msgstr ""
"Non � stato trovato alcun percorso che porti a una delle nostre chiavi.\n"
-#: g10/pkclist.c:331
+#: g10/pkclist.c:437
msgid ""
"No certificates with undefined trust found.\n"
"\n"
msgstr "Non � stato trovato alcun certificato con fiducia non definita.\n"
-#: g10/pkclist.c:333
+#: g10/pkclist.c:439
msgid ""
"No trust values changed.\n"
"\n"
@@ -1000,36 +1081,36 @@ msgstr ""
"Nessun valore di fiducia modificato.\n"
"\n"
-#: g10/pkclist.c:350
+#: g10/pkclist.c:457
#, c-format
msgid "key %08lX: key has been revoked!\n"
msgstr "chiave %08lX: la chiave � stata revocata!\n"
-#: g10/pkclist.c:356 g10/pkclist.c:366 g10/pkclist.c:475
+#: g10/pkclist.c:464 g10/pkclist.c:476 g10/pkclist.c:598
msgid "Use this key anyway? "
msgstr "Uso lo stesso questa chiave? "
-#: g10/pkclist.c:360
+#: g10/pkclist.c:469
#, c-format
msgid "key %08lX: subkey has been revoked!\n"
msgstr "chiave %08lX: la subchiave � stata revocata!\n"
-#: g10/pkclist.c:390
+#: g10/pkclist.c:512
#, c-format
msgid "%08lX: key has expired\n"
msgstr "%08lX: la chiave � scaduta\n"
-#: g10/pkclist.c:396
+#: g10/pkclist.c:518
#, c-format
msgid "%08lX: no info to calculate a trust probability\n"
msgstr "%08lX: mancano informazioni per calcolare una probabilit� di fiducia\n"
-#: g10/pkclist.c:410
+#: g10/pkclist.c:533
#, c-format
msgid "%08lX: We do NOT trust this key\n"
msgstr "%08lX: NON ci fidiamo di questa chiave!\n"
-#: g10/pkclist.c:416
+#: g10/pkclist.c:539
#, c-format
msgid ""
"%08lX: It is not sure that this key really belongs to the owner\n"
@@ -1038,15 +1119,15 @@ msgstr ""
"%08lX: Non � sicuro che questa chiave appartenga veramente al proprietario\n"
"ma � accettata comunque\n"
-#: g10/pkclist.c:422
+#: g10/pkclist.c:545
msgid "This key probably belongs to the owner\n"
msgstr "Questa chiave probabilmente appartiene al proprietario\n"
-#: g10/pkclist.c:427
+#: g10/pkclist.c:550
msgid "This key belongs to us\n"
msgstr "Questa chiave ci appartiene\n"
-#: g10/pkclist.c:470
+#: g10/pkclist.c:593
msgid ""
"It is NOT certain that the key belongs to its owner.\n"
"If you *really* know what you are doing, you may answer\n"
@@ -1058,65 +1139,65 @@ msgstr ""
"prossima domanda.\n"
"\n"
-#: g10/pkclist.c:484 g10/pkclist.c:507
+#: g10/pkclist.c:607 g10/pkclist.c:630
msgid "WARNING: Using untrusted key!\n"
msgstr "ATTENZIONE: uso di una chiave non fidata!\n"
-#: g10/pkclist.c:528
+#: g10/pkclist.c:651
msgid "WARNING: This key has been revoked by its owner!\n"
msgstr "ATTENZIONE: questa chiave � stata revocata dal suo proprietario!\n"
-#: g10/pkclist.c:529
+#: g10/pkclist.c:652
msgid " This could mean that the signature is forgery.\n"
msgstr " Questo pu� significare che la firma � stata falsificata.\n"
-#: g10/pkclist.c:533
+#: g10/pkclist.c:657
msgid "WARNING: This subkey has been revoked by its owner!\n"
msgstr "ATTENZIONE: questa subchiave � stata revocata dal proprietario!\n"
-#: g10/pkclist.c:554
+#: g10/pkclist.c:679
msgid "Note: This key has expired!\n"
msgstr "Nota: questa chiave � scaduta!\n"
-#: g10/pkclist.c:562
+#: g10/pkclist.c:687
msgid "WARNING: This key is not certified with a trusted signature!\n"
msgstr "ATTENZIONE: questa chiave non � certificata con una firma fidata!\n"
-#: g10/pkclist.c:564
+#: g10/pkclist.c:689
msgid ""
" There is no indication that the signature belongs to the owner.\n"
msgstr ""
" Non ci sono indicazioni che la firma appartenga al proprietario.\n"
-#: g10/pkclist.c:581
+#: g10/pkclist.c:706
msgid "WARNING: We do NOT trust this key!\n"
msgstr "ATTENZIONE: NON ci fidiamo di questa chiave!\n"
-#: g10/pkclist.c:582
+#: g10/pkclist.c:707
msgid " The signature is probably a FORGERY.\n"
msgstr " La firma � probabilmente un FALSO.\n"
-#: g10/pkclist.c:589
+#: g10/pkclist.c:714
msgid ""
"WARNING: This key is not certified with sufficiently trusted signatures!\n"
msgstr ""
"ATTENZIONE: questa chiave non � certificata con firme abbastanza fidate!\n"
-#: g10/pkclist.c:592
+#: g10/pkclist.c:717
msgid " It is not certain that the signature belongs to the owner.\n"
msgstr " Non � sicuro che la firma appartenga al proprietario.\n"
-#: g10/pkclist.c:694 g10/pkclist.c:716 g10/pkclist.c:841 g10/pkclist.c:886
+#: g10/pkclist.c:819 g10/pkclist.c:841 g10/pkclist.c:967 g10/pkclist.c:1012
#, c-format
msgid "%s: skipped: %s\n"
msgstr "%s: saltata: %s\n"
-#: g10/pkclist.c:702 g10/pkclist.c:868
+#: g10/pkclist.c:827 g10/pkclist.c:994
#, c-format
msgid "%s: skipped: public key already present\n"
msgstr "%s: saltato: chiave pubblica gi� presente\n"
-#: g10/pkclist.c:729
+#: g10/pkclist.c:854
msgid ""
"You did not specify a user ID. (you may use \"-r\")\n"
"\n"
@@ -1124,95 +1205,100 @@ msgstr ""
"Non hai specificato un user ID. (puoi usare \"-r\")\n"
"\n"
-#: g10/pkclist.c:739
+#: g10/pkclist.c:864
msgid "Enter the user ID: "
msgstr "Inserisci l'user ID: "
-#: g10/pkclist.c:751
+#: g10/pkclist.c:876
msgid "No such user ID.\n"
msgstr "User ID inesistente.\n"
-#: g10/pkclist.c:756
+#: g10/pkclist.c:881
msgid "skipped: public key already set as default recipient\n"
msgstr "saltato: chiave pubblica gi� impostata come destinatario predefinito\n"
-#: g10/pkclist.c:778
+#: g10/pkclist.c:904
msgid "Public key is disabled.\n"
msgstr "La chiave pubblica � disabilitata.\n"
-#: g10/pkclist.c:785
+#: g10/pkclist.c:911
msgid "skipped: public key already set with --encrypt-to\n"
msgstr "saltato: chiave pubblica gi� impostata con --encrypt-to\n"
-#: g10/pkclist.c:816
+#: g10/pkclist.c:942
#, c-format
msgid "unknown default recipient `%s'\n"
msgstr "destinatario predefinito `%s' sconosciuto\n"
-#: g10/pkclist.c:849
+#: g10/pkclist.c:975
#, c-format
msgid "%s: error checking key: %s\n"
msgstr "%s: errore nel controllare la chiave: %s\n"
-#: g10/pkclist.c:854
+#: g10/pkclist.c:980
#, c-format
msgid "%s: skipped: public key is disabled\n"
msgstr "%s: saltato: chiave pubblica disabilitata\n"
-#: g10/pkclist.c:892
+#: g10/pkclist.c:1018
msgid "no valid addressees\n"
msgstr "nessun indirizzo valido\n"
-#: g10/keygen.c:122
+#: g10/keygen.c:175
msgid "writing self signature\n"
msgstr "scrittura della autofirma\n"
-#: g10/keygen.c:160
+#: g10/keygen.c:213
msgid "writing key binding signature\n"
msgstr "scrittura della firma di collegamento alla chiave\n"
-#: g10/keygen.c:386
+#: g10/keygen.c:261 g10/keygen.c:345
+#, fuzzy, c-format
+msgid "keysize invalid; using %u bits\n"
+msgstr "La dimensione richiesta della chiave � %u bit\n"
+
+#: g10/keygen.c:266 g10/keygen.c:350
+#, fuzzy, c-format
+msgid "keysize rounded up to %u bits\n"
+msgstr "arrotondate a %u bit\n"
+
+#: g10/keygen.c:456
msgid "Please select what kind of key you want:\n"
msgstr "Per favore scegli che tipo di chiave vuoi:\n"
-#: g10/keygen.c:388
+#: g10/keygen.c:458
#, c-format
msgid " (%d) DSA and ElGamal (default)\n"
msgstr " (%d) DSA e ElGamal (default)\n"
-#: g10/keygen.c:389
+#: g10/keygen.c:459
#, c-format
msgid " (%d) DSA (sign only)\n"
msgstr " (%d) DSA (firma solo)\n"
-#: g10/keygen.c:391
+#: g10/keygen.c:461
#, c-format
msgid " (%d) ElGamal (encrypt only)\n"
msgstr " (%d) ElGamal (cifra solo)\n"
-#: g10/keygen.c:392
+#: g10/keygen.c:462
#, c-format
msgid " (%d) ElGamal (sign and encrypt)\n"
msgstr " (%d) ElGamal (firma e cifra)\n"
-#: g10/keygen.c:394
-#, c-format
-msgid " (%d) ElGamal in a v3 packet\n"
-msgstr " (%d) ElGamal in un pacchetto v3\n"
-
-#: g10/keygen.c:399
+#: g10/keygen.c:465
msgid "Your selection? "
msgstr "Cosa scegli? "
-#: g10/keygen.c:409
+#: g10/keygen.c:475
msgid "Do you really want to create a sign and encrypt key? "
msgstr "Vuoi davvero creare una chiave di firma e cifratura? "
-#: g10/keygen.c:430
+#: g10/keygen.c:489
msgid "Invalid selection.\n"
msgstr "Scelta non valida.\n"
-#: g10/keygen.c:442
+#: g10/keygen.c:501
#, c-format
msgid ""
"About to generate a new %s keypair.\n"
@@ -1225,15 +1311,15 @@ msgstr ""
" la dimensione predefinita � 1024 bit\n"
" la dimensione massima consigliata � 2048 bit\n"
-#: g10/keygen.c:449
+#: g10/keygen.c:508
msgid "What keysize do you want? (1024) "
msgstr "Di che dimensioni vuoi la chiave? (1024) "
-#: g10/keygen.c:454
+#: g10/keygen.c:513
msgid "DSA only allows keysizes from 512 to 1024\n"
msgstr "DSA permette solo chiavi di dimensioni tra 512 e 1024\n"
-#: g10/keygen.c:456
+#: g10/keygen.c:515
msgid "keysize too small; 768 is smallest value allowed.\n"
msgstr "la chiave � troppo corta; 768 � il minimo valore permesso.\n"
@@ -1245,12 +1331,12 @@ msgstr "la chiave � troppo corta; 768 � il minimo valore permesso.\n"
#. * So, before you complain about this limitation, I suggest that
#. * you start a discussion with Marvin about this theme and then
#. * do whatever you want.
-#: g10/keygen.c:466
+#: g10/keygen.c:525
#, c-format
msgid "keysize too large; %d is largest value allowed.\n"
msgstr "la chiave � troppo lunga; %d � il massimo valore permesso.\n"
-#: g10/keygen.c:471
+#: g10/keygen.c:530
msgid ""
"Keysizes larger than 2048 are not suggested because\n"
"computations take REALLY long!\n"
@@ -1258,11 +1344,11 @@ msgstr ""
"Chiavi pi� lunghe di 2048 non sono consigliate perch� i calcoli sono\n"
"VERAMENTE lunghi!\n"
-#: g10/keygen.c:474
+#: g10/keygen.c:533
msgid "Are you sure that you want this keysize? "
msgstr "Sei sicuro di volere una chiave di queste dimensioni? "
-#: g10/keygen.c:475
+#: g10/keygen.c:534
msgid ""
"Okay, but keep in mind that your monitor and keyboard radiation is also very "
"vulnerable to attacks!\n"
@@ -1270,21 +1356,21 @@ msgstr ""
"Va bene, ma ricordati che anche le radiazioni emesse dal tuo monitor e dalla "
"tua tastiera sono molto vulnerabili ad attacchi!\n"
-#: g10/keygen.c:483
+#: g10/keygen.c:542
msgid "Do you really need such a large keysize? "
msgstr "Ti serve davvero una chiave cos� lunga? "
-#: g10/keygen.c:489
+#: g10/keygen.c:548
#, c-format
msgid "Requested keysize is %u bits\n"
msgstr "La dimensione richiesta della chiave � %u bit\n"
-#: g10/keygen.c:492 g10/keygen.c:496
+#: g10/keygen.c:551 g10/keygen.c:555
#, c-format
msgid "rounded up to %u bits\n"
msgstr "arrotondate a %u bit\n"
-#: g10/keygen.c:509
+#: g10/keygen.c:603
msgid ""
"Please specify how long the key should be valid.\n"
" 0 = key does not expire\n"
@@ -1300,29 +1386,37 @@ msgstr ""
" <n>m = la chiave scadr� dopo n mesi\n"
" <n>y = la chiave scadr� dopo n anni\n"
-#: g10/keygen.c:526
+#: g10/keygen.c:618
msgid "Key is valid for? (0) "
msgstr "Chiave valida per? (0) "
-#: g10/keygen.c:547
+#: g10/keygen.c:623
msgid "invalid value\n"
msgstr "valore non valido\n"
-#: g10/keygen.c:552
+#: g10/keygen.c:628
msgid "Key does not expire at all\n"
msgstr "La chiave non scade\n"
#. print the date when the key expires
-#: g10/keygen.c:558
+#: g10/keygen.c:634
#, c-format
msgid "Key expires at %s\n"
msgstr "La chiave scadr� il %s\n"
-#: g10/keygen.c:563
+#: g10/keygen.c:637
+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"
+
+#: g10/keygen.c:642
msgid "Is this correct (y/n)? "
msgstr "� giusto (s/n)? "
-#: g10/keygen.c:606
+#: g10/keygen.c:685
msgid ""
"\n"
"You need a User-ID to identify your key; the software constructs the user "
@@ -1338,44 +1432,44 @@ msgstr ""
" \"Heinrich Heine (Der Dichter) <[email protected]>\"\n"
"\n"
-#: g10/keygen.c:617
+#: g10/keygen.c:697
msgid "Real name: "
msgstr "Nome e Cognome: "
-#: g10/keygen.c:621
+#: g10/keygen.c:701
msgid "Invalid character in name\n"
msgstr "Carattere non valido nel nome\n"
-#: g10/keygen.c:623
+#: g10/keygen.c:703
msgid "Name may not start with a digit\n"
msgstr "Il nome non pu� iniziare con una cifra\n"
-#: g10/keygen.c:625
+#: g10/keygen.c:705
msgid "Name must be at least 5 characters long\n"
msgstr "Il nome deve essere lungo almeno 5 caratteri\n"
-#: g10/keygen.c:633
+#: g10/keygen.c:713
msgid "Email address: "
msgstr "Indirizzo di Email: "
-#: g10/keygen.c:644
+#: g10/keygen.c:724
msgid "Not a valid email address\n"
msgstr "L'indirizzo di email non � valido\n"
-#: g10/keygen.c:652
+#: g10/keygen.c:732
msgid "Comment: "
msgstr "Commento: "
-#: g10/keygen.c:658
+#: g10/keygen.c:738
msgid "Invalid character in comment\n"
msgstr "Carattere non valido nel commento\n"
-#: g10/keygen.c:680
+#: g10/keygen.c:761
#, c-format
msgid "You are using the `%s' character set.\n"
msgstr "Stai usando il set di caratteri `%s'.\n"
-#: g10/keygen.c:686
+#: g10/keygen.c:767
#, c-format
msgid ""
"You selected this USER-ID:\n"
@@ -1386,15 +1480,28 @@ msgstr ""
" \"%s\"\n"
"\n"
-#: g10/keygen.c:689
+#: g10/keygen.c:771
+msgid "Please don't put the email address into the real name or the comment\n"
+msgstr ""
+
+#: g10/keygen.c:776
msgid "NnCcEeOoQq"
msgstr "NnCcEeOoQq"
-#: g10/keygen.c:699
+#: g10/keygen.c:786
+#, fuzzy
+msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
+msgstr "Modifica (N)ome, (C)ommento, (E)mail oppure (O)kay/(Q)uit? "
+
+#: g10/keygen.c:787
msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
msgstr "Modifica (N)ome, (C)ommento, (E)mail oppure (O)kay/(Q)uit? "
-#: g10/keygen.c:751
+#: g10/keygen.c:806
+msgid "Please correct the error first\n"
+msgstr ""
+
+#: g10/keygen.c:844
msgid ""
"You need a Passphrase to protect your secret key.\n"
"\n"
@@ -1402,11 +1509,11 @@ msgstr ""
"Ti serve una passphrase per proteggere la tua chiave segreta.\n"
"\n"
-#: g10/keyedit.c:456 g10/keygen.c:759
+#: g10/keyedit.c:468 g10/keygen.c:852
msgid "passphrase not correctly repeated; try again.\n"
msgstr "passphrase non ripetuta correttamente; riprova.\n"
-#: g10/keygen.c:765
+#: g10/keygen.c:858
msgid ""
"You don't want a passphrase - this is probably a *bad* idea!\n"
"I will do it anyway. You can change your passphrase at any time,\n"
@@ -1418,7 +1525,7 @@ msgstr ""
"programma con l'opzione \"--edit-key\".\n"
"\n"
-#: g10/keygen.c:786
+#: g10/keygen.c:879
msgid ""
"We need to generate a lot of random bytes. It is a good idea to perform\n"
"some other action (type on the keyboard, move the mouse, utilize the\n"
@@ -1430,33 +1537,29 @@ msgstr ""
"dischi) durante la generazione dei numeri primi; questo da al generatore di\n"
"numeri casuali migliori possibilit� di raccogliere abbastanza entropia.\n"
-#: g10/keygen.c:856
-msgid "Key generation can only be used in interactive mode\n"
-msgstr "Una chiave pu� essere generata solo in modo interattivo\n"
-
-#: g10/keygen.c:864
+#: g10/keygen.c:1325
msgid "DSA keypair will have 1024 bits.\n"
msgstr "La coppia DSA avr� 1024 bit.\n"
-#: g10/keygen.c:870
+#: g10/keygen.c:1368
msgid "Key generation canceled.\n"
msgstr "Generazione della chiave annullata.\n"
-#: g10/keygen.c:880
-#, c-format
-msgid "writing public certificate to `%s'\n"
+#: g10/keygen.c:1465
+#, fuzzy, c-format
+msgid "writing public key to `%s'\n"
msgstr "scrittura del certificato pubblico in `%s'\n"
-#: g10/keygen.c:881
-#, c-format
-msgid "writing secret certificate to `%s'\n"
+#: g10/keygen.c:1466
+#, fuzzy, c-format
+msgid "writing secret key to `%s'\n"
msgstr "scrittura del certificato segreto in `%s'\n"
-#: g10/keygen.c:958
+#: g10/keygen.c:1562
msgid "public and secret key created and signed.\n"
msgstr "chiavi pubbliche e segrete create e firmate.\n"
-#: g10/keygen.c:960
+#: g10/keygen.c:1567
msgid ""
"Note that this key cannot be used for encryption. You may want to use\n"
"the command \"--edit-key\" to generate a secondary key for this purpose.\n"
@@ -1465,12 +1568,12 @@ msgstr ""
"il comando \"--edit-key\" per generare una chiave secondaria per questo "
"scopo.\n"
-#: g10/keygen.c:974 g10/keygen.c:1073
+#: g10/keygen.c:1584 g10/keygen.c:1685
#, c-format
msgid "Key generation failed: %s\n"
msgstr "Generazione della chiave fallita: %s\n"
-#: g10/keygen.c:1018 g10/sig-check.c:312 g10/sign.c:105
+#: g10/keygen.c:1628 g10/sig-check.c:318 g10/sign.c:111
#, c-format
msgid ""
"key has been created %lu second in future (time warp or clock problem)\n"
@@ -1478,7 +1581,7 @@ msgstr ""
"la chiave � stata creata %lu secondo nel futuro (salto nel tempo o problema\n"
"con l'orologio)\n"
-#: g10/keygen.c:1020 g10/sig-check.c:314 g10/sign.c:107
+#: g10/keygen.c:1630 g10/sig-check.c:320 g10/sign.c:113
#, c-format
msgid ""
"key has been created %lu seconds in future (time warp or clock problem)\n"
@@ -1486,12 +1589,12 @@ msgstr ""
"la chiave � stata creata %lu secondi nel futuro (salto nel tempo o problema\n"
"con l'orologio)\n"
-#: g10/keygen.c:1051
+#: g10/keygen.c:1663
msgid "Really create? "
msgstr "Crea davvero? "
-#: g10/encode.c:91 g10/openfile.c:156 g10/openfile.c:246 g10/tdbio.c:468
-#: g10/tdbio.c:529
+#: g10/encode.c:91 g10/openfile.c:168 g10/openfile.c:277 g10/tdbio.c:454
+#: g10/tdbio.c:515
#, c-format
msgid "%s: can't open: %s\n"
msgstr "%s: impossibile aprire: %s\n"
@@ -1501,302 +1604,307 @@ msgstr "%s: impossibile aprire: %s\n"
msgid "error creating passphrase: %s\n"
msgstr "errore nella creazione della passhprase: %s\n"
-#: g10/encode.c:171 g10/encode.c:318
+#: g10/encode.c:171 g10/encode.c:319
#, c-format
msgid "%s: WARNING: empty file\n"
msgstr "%s: ATTENZIONE: file vuoto\n"
-#: g10/encode.c:265
+#: g10/encode.c:266
#, c-format
msgid "reading from `%s'\n"
msgstr "lettura da `%s'\n"
-#: g10/encode.c:482
+#: g10/encode.c:483
#, c-format
msgid "%s/%s encrypted for: %s\n"
msgstr "%s/%s cifrato per: %s\n"
-#: g10/export.c:147
+#: g10/export.c:153
#, c-format
msgid "%s: user not found: %s\n"
msgstr "%s: utente non trovato: %s\n"
-#: g10/export.c:156
+#: g10/export.c:162
#, c-format
msgid "certificate read problem: %s\n"
msgstr "problema di lettura del certificato: %s\n"
-#: g10/export.c:165
+#: g10/export.c:171
#, c-format
msgid "key %08lX: not a rfc2440 key - skipped\n"
msgstr "chiave %08lX: chiave non rfc2440 - saltata\n"
-#: g10/export.c:203
+#: g10/export.c:182
+#, fuzzy, c-format
+msgid "key %08lX: not protected - skipped\n"
+msgstr "chiave %08lX: chiave non rfc2440 - saltata\n"
+
+#: g10/export.c:232
msgid "WARNING: nothing exported\n"
msgstr "ATTENZIONE: non � stato esportato nulla\n"
-#: g10/getkey.c:206
+#: g10/getkey.c:211
msgid "too many entries in pk cache - disabled\n"
msgstr "troppe voci nella pk cache - disabilitata\n"
-#: g10/getkey.c:345
+#: g10/getkey.c:350
msgid "too many entries in unk cache - disabled\n"
msgstr "troppe voci nella unk cache - disabilitata\n"
-#: g10/getkey.c:1289 g10/getkey.c:1328
+#: g10/getkey.c:1308 g10/getkey.c:1347
msgid "RSA key cannot be used in this version\n"
msgstr "In questa versione non possono essere usate chiavi RSA\n"
-#: g10/getkey.c:1291 g10/getkey.c:1330
+#: g10/getkey.c:1310 g10/getkey.c:1349
msgid "No key for user ID\n"
msgstr "Non ci sono chiavi per questo user ID\n"
-#: g10/getkey.c:1369 g10/getkey.c:1409
+#: g10/getkey.c:1388 g10/getkey.c:1428
msgid "No user ID for key\n"
msgstr "Non ci sono user ID per questa chiave\n"
-#: g10/getkey.c:1565 g10/getkey.c:1621
+#: g10/getkey.c:1642 g10/getkey.c:1698
#, c-format
msgid "using secondary key %08lX instead of primary key %08lX\n"
msgstr "uso la chiave secondaria %08lX invece della chiave primaria %08lX\n"
-#: g10/import.c:118
-#, c-format
-msgid "can't open `%s': %s\n"
-msgstr "impossibile aprire `%s': %s\n"
+#: g10/getkey.c:2017
+#, fuzzy
+msgid "[User id not found]"
+msgstr "%s: utente non trovato\n"
-#: g10/import.c:162
+#: g10/import.c:181
#, c-format
msgid "skipping block of type %d\n"
msgstr "salto un blocco di tipo %d\n"
-#: g10/import.c:169 g10/trustdb.c:1658 g10/trustdb.c:1697
+#: g10/import.c:188 g10/trustdb.c:1740 g10/trustdb.c:1781
#, c-format
msgid "%lu keys so far processed\n"
msgstr "Per ora sono state esaminate %lu chiavi\n"
-#: g10/import.c:174
+#: g10/import.c:193
#, c-format
msgid "error reading `%s': %s\n"
msgstr "errore leggendo `%s': %s\n"
-#: g10/import.c:177
+#: g10/import.c:203
#, c-format
msgid "Total number processed: %lu\n"
msgstr "Numero totale esaminato: %lu\n"
-#: g10/import.c:179
+#: g10/import.c:205
#, c-format
msgid " w/o user IDs: %lu\n"
msgstr " senza user ID: %lu\n"
-#: g10/import.c:181
+#: g10/import.c:207
#, c-format
msgid " imported: %lu"
msgstr " importate: %lu"
-#: g10/import.c:187
+#: g10/import.c:213
#, c-format
msgid " unchanged: %lu\n"
msgstr " non modificate: %lu\n"
-#: g10/import.c:189
+#: g10/import.c:215
#, c-format
msgid " new user IDs: %lu\n"
msgstr " nuovi user ID: %lu\n"
-#: g10/import.c:191
+#: g10/import.c:217
#, c-format
msgid " new subkeys: %lu\n"
msgstr " nuove subchiavi: %lu\n"
-#: g10/import.c:193
+#: g10/import.c:219
#, c-format
msgid " new signatures: %lu\n"
msgstr " nuove firme: %lu\n"
-#: g10/import.c:195
+#: g10/import.c:221
#, c-format
msgid " new key revocations: %lu\n"
msgstr "nuove revoche di chiavi: %lu\n"
-#: g10/import.c:197
+#: g10/import.c:223
#, c-format
msgid " secret keys read: %lu\n"
msgstr " chiavi segrete lette: %lu\n"
-#: g10/import.c:199
+#: g10/import.c:225
#, c-format
msgid " secret keys imported: %lu\n"
msgstr "chiavi segrete importate: %lu\n"
-#: g10/import.c:201
+#: g10/import.c:227
#, c-format
msgid " secret keys unchanged: %lu\n"
msgstr "chiavi segrete non cambiate: %lu\n"
-#: g10/import.c:362 g10/import.c:554
+#: g10/import.c:386 g10/import.c:578
#, c-format
msgid "key %08lX: no user ID\n"
msgstr "chiave %08lX: nessun user ID\n"
-#: g10/import.c:376
+#: g10/import.c:400
#, c-format
msgid "key %08lX: no valid user IDs\n"
msgstr "chiave %08lX: nessun user ID valido\n"
-#: g10/import.c:378
+#: g10/import.c:402
msgid "this may be caused by a missing self-signature\n"
msgstr "questo pu� essere causato da una autofirma mancante\n"
-#: g10/import.c:389 g10/import.c:621
+#: g10/import.c:413 g10/import.c:645
#, c-format
msgid "key %08lX: public key not found: %s\n"
msgstr "chiave %08lX: chiave pubblica non trovata: %s\n"
-#: g10/import.c:395
+#: g10/import.c:419
msgid "no default public keyring\n"
msgstr "nessun portachiavi pubblico predefinito\n"
-#: g10/import.c:399 g10/openfile.c:186 g10/sign.c:268 g10/sign.c:580
+#: g10/import.c:423 g10/openfile.c:220 g10/sign.c:275 g10/sign.c:587
#, c-format
msgid "writing to `%s'\n"
msgstr "scrittura in `%s'\n"
-#: g10/import.c:402 g10/import.c:460 g10/import.c:569 g10/import.c:670
+#: g10/import.c:426 g10/import.c:484 g10/import.c:593 g10/import.c:694
#, c-format
msgid "can't lock keyring `%s': %s\n"
msgstr "impossibile fare il lock del portachiavi `%s': %s\n"
-#: g10/import.c:405 g10/import.c:463 g10/import.c:572 g10/import.c:673
+#: g10/import.c:429 g10/import.c:487 g10/import.c:596 g10/import.c:697
#, c-format
msgid "error writing keyring `%s': %s\n"
msgstr "errore scrivendo il portachiavi `%s': %s\n"
-#: g10/import.c:410
+#: g10/import.c:434
#, c-format
msgid "key %08lX: public key imported\n"
msgstr "chiave %08lX: chiave pubblica importata\n"
-#: g10/import.c:427
+#: g10/import.c:451
#, c-format
msgid "key %08lX: doesn't match our copy\n"
msgstr "chiave %08lX: non corrisponde alla nostra copia\n"
-#: g10/import.c:436 g10/import.c:629
+#: g10/import.c:460 g10/import.c:653
#, c-format
msgid "key %08lX: can't locate original keyblock: %s\n"
msgstr "chiave %08lX: impossibile individuare il keyblock originale: %s\n"
-#: g10/import.c:442 g10/import.c:635
+#: g10/import.c:466 g10/import.c:659
#, c-format
msgid "key %08lX: can't read original keyblock: %s\n"
msgstr "chiave %08lX: impossibile leggere il keyblock originale: %s\n"
-#: g10/import.c:469
+#: g10/import.c:493
#, c-format
msgid "key %08lX: 1 new user ID\n"
msgstr "chiave %08lX: 1 nuovo user ID\n"
-#: g10/import.c:472
+#: g10/import.c:496
#, c-format
msgid "key %08lX: %d new user IDs\n"
msgstr "chiave %08lX: %d nuovi user ID\n"
-#: g10/import.c:475
+#: g10/import.c:499
#, c-format
msgid "key %08lX: 1 new signature\n"
msgstr "chiave %08lX: una nuova firma\n"
-#: g10/import.c:478
+#: g10/import.c:502
#, c-format
msgid "key %08lX: %d new signatures\n"
msgstr "chiave %08lX: %d nuove firme\n"
-#: g10/import.c:481
+#: g10/import.c:505
#, c-format
msgid "key %08lX: 1 new subkey\n"
msgstr "chiave %08lX: una nuova subchiave\n"
-#: g10/import.c:484
+#: g10/import.c:508
#, c-format
msgid "key %08lX: %d new subkeys\n"
msgstr "chiave %08lX: %d nuove subchiavi\n"
-#: g10/import.c:494
+#: g10/import.c:518
#, c-format
msgid "key %08lX: not changed\n"
msgstr "chiave %08lX: non cambiata\n"
-#: g10/import.c:577
+#: g10/import.c:601
#, c-format
msgid "key %08lX: secret key imported\n"
msgstr "chiave %08lX: chiave segreta importata\n"
#. we can't merge secret keys
-#: g10/import.c:581
+#: g10/import.c:605
#, c-format
msgid "key %08lX: already in secret keyring\n"
msgstr "chiave %08lX: gi� nel portachiavi segreto\n"
-#: g10/import.c:586
+#: g10/import.c:610
#, c-format
msgid "key %08lX: secret key not found: %s\n"
msgstr "chiave %08lX: chiave segreta non trovata: %s\n"
-#: g10/import.c:615
+#: g10/import.c:639
#, c-format
msgid "key %08lX: no public key - can't apply revocation certificate\n"
msgstr ""
"chiave %08lX: manca la chiave pubblica - impossibile applicare il\n"
"certificato di revoca\n"
-#: g10/import.c:646
+#: g10/import.c:670
#, c-format
msgid "key %08lX: invalid revocation certificate: %s - rejected\n"
msgstr "chiave %08lX: certificato di revoca non valido: %s - rifiutato\n"
-#: g10/import.c:678
+#: g10/import.c:702
#, c-format
msgid "key %08lX: revocation certificate imported\n"
msgstr "chiave %08lX: certificato di revoca importato\n"
-#: g10/import.c:711
+#: g10/import.c:744
#, c-format
msgid "key %08lX: no user ID for signature\n"
msgstr "chiave %08lX: nessun user ID per la firma\n"
-#: g10/import.c:718 g10/import.c:742
+#: g10/import.c:751 g10/import.c:775
#, c-format
msgid "key %08lX: unsupported public key algorithm\n"
msgstr "chiave %08lX: algoritmo a chiave pubblica non gestito\n"
-#: g10/import.c:719
+#: g10/import.c:752
#, c-format
msgid "key %08lX: invalid self-signature\n"
msgstr "chiave %08lX: autofirma non valida\n"
-#: g10/import.c:734
+#: g10/import.c:767
#, c-format
msgid "key %08lX: no subkey for key binding\n"
msgstr "chiave %08lX: non ci sono subchiavi per il legame con la chiave\n"
-#: g10/import.c:743
+#: g10/import.c:776
#, c-format
msgid "key %08lX: invalid subkey binding\n"
msgstr "chiave %08lX: legame con la subchiave non valido:\n"
-#: g10/import.c:769
+#: g10/import.c:803
#, c-format
msgid "key %08lX: accepted non self-signed user ID '"
msgstr "chiave %08lX: accettato l'user ID non autofirmato '"
-#: g10/import.c:798
+#: g10/import.c:832
#, c-format
msgid "key %08lX: skipped user ID '"
msgstr "chiave %08lX: saltato l'user ID '"
-#: g10/import.c:821
+#: g10/import.c:855
#, c-format
msgid "key %08lX: skipped subkey\n"
msgstr "chiave %08lX: saltata la subchiave\n"
@@ -1805,98 +1913,98 @@ msgstr "chiave %08lX: saltata la subchiave\n"
#. * to import non-exportable signature when we have the
#. * the secret key used to create this signature - it
#. * seems that this makes sense
-#: g10/import.c:846
+#: g10/import.c:880
#, c-format
msgid "key %08lX: non exportable signature (class %02x) - skipped\n"
msgstr "chiave %08lX: firma non esportabile (classe %02x) - saltata\n"
-#: g10/import.c:855
+#: g10/import.c:889
#, c-format
msgid "key %08lX: revocation certificate at wrong place - skipped\n"
msgstr "chiave %08lX: certificato di revoca nel posto sbagliato - saltato\n"
-#: g10/import.c:863
+#: g10/import.c:897
#, c-format
msgid "key %08lX: invalid revocation certificate: %s - skipped\n"
msgstr "chiave %08lX: certificato di revoca non valido: %s - saltato\n"
-#: g10/import.c:963
+#: g10/import.c:997
#, c-format
msgid "key %08lX: duplicated user ID detected - merged\n"
msgstr "chiave %08lX: trovato un user ID duplicato - unito\n"
-#: g10/import.c:1014
+#: g10/import.c:1048
#, c-format
msgid "key %08lX: revocation certificate added\n"
msgstr "chiave %08lX: certificato di revoca aggiunto\n"
-#: g10/import.c:1128 g10/import.c:1183
+#: g10/import.c:1162 g10/import.c:1215
#, c-format
msgid "key %08lX: our copy has no self-signature\n"
msgstr "chiave %08lX: la nostra copia non ha autofirma\n"
-#: g10/delkey.c:64 g10/keyedit.c:93
+#: g10/delkey.c:64 g10/keyedit.c:94
#, c-format
msgid "%s: user not found\n"
msgstr "%s: utente non trovato\n"
-#: g10/keyedit.c:154
+#: g10/keyedit.c:155
msgid "[revocation]"
msgstr "[revoca]"
-#: g10/keyedit.c:155
+#: g10/keyedit.c:156
msgid "[self-signature]"
msgstr "[autofirma]"
-#: g10/keyedit.c:219
+#: g10/keyedit.c:220
msgid "1 bad signature\n"
msgstr "una firma non corretta\n"
-#: g10/keyedit.c:221
+#: g10/keyedit.c:222
#, c-format
msgid "%d bad signatures\n"
msgstr "%d firme non corrette\n"
-#: g10/keyedit.c:223
+#: g10/keyedit.c:224
msgid "1 signature not checked due to a missing key\n"
msgstr "una firma non controllata per mancanza della chiave\n"
-#: g10/keyedit.c:225
+#: g10/keyedit.c:226
#, c-format
msgid "%d signatures not checked due to missing keys\n"
msgstr "%d firme non controllate per mancanza delle chiavi\n"
-#: g10/keyedit.c:227
+#: g10/keyedit.c:228
msgid "1 signature not checked due to an error\n"
msgstr "una firma non controllata a causa di un errore\n"
-#: g10/keyedit.c:229
+#: g10/keyedit.c:230
#, c-format
msgid "%d signatures not checked due to errors\n"
msgstr "%d firme non controllate a causa di errori\n"
-#: g10/keyedit.c:231
+#: g10/keyedit.c:232
msgid "1 user ID without valid self-signature detected\n"
msgstr "Trovato un user ID senza autofirma valida\n"
-#: g10/keyedit.c:233
+#: g10/keyedit.c:234
#, c-format
msgid "%d user IDs without valid self-signatures detected\n"
msgstr "Trovati %d user ID senza autofirme valide\n"
#. Fixme: see whether there is a revocation in which
#. * case we should allow to sign it again.
-#: g10/keyedit.c:313
+#: g10/keyedit.c:316
#, c-format
msgid "Already signed by key %08lX\n"
msgstr "Gi� firmato dalla chiave %08lX\n"
-#: g10/keyedit.c:321
+#: g10/keyedit.c:324
#, c-format
msgid "Nothing to sign with key %08lX\n"
msgstr "Niente da firmare con la chiave %08lX\n"
-#: g10/keyedit.c:330
+#: g10/keyedit.c:333
msgid ""
"Are you really sure that you want to sign this key\n"
"with your key: \""
@@ -1904,7 +2012,7 @@ msgstr ""
"Sei davvero sicuro di volere firmare questa chiave\n"
"con la tua chiave: \""
-#: g10/keyedit.c:339
+#: g10/keyedit.c:342
msgid ""
"The signature will be marked as non-exportable.\n"
"\n"
@@ -1912,29 +2020,34 @@ msgstr ""
"La firma sar� segnata come non esportabile.\n"
"\n"
-#: g10/keyedit.c:344
+#: g10/keyedit.c:347
msgid "Really sign? "
msgstr "Firmo davvero? "
-#: g10/keyedit.c:370 g10/keyedit.c:1832 g10/keyedit.c:1881 g10/sign.c:128
+#: g10/keyedit.c:373 g10/keyedit.c:1869 g10/keyedit.c:1931 g10/sign.c:135
#, c-format
msgid "signing failed: %s\n"
msgstr "firma fallita: %s\n"
-#: g10/keyedit.c:423
+#: g10/keyedit.c:427
msgid "This key is not protected.\n"
msgstr "Questa chiave non � protetta.\n"
-#: g10/keyedit.c:426
+#: g10/keyedit.c:431
+#, fuzzy
+msgid "Secret parts of primary key are not available.\n"
+msgstr "la chiave segreta non � disponibile"
+
+#: g10/keyedit.c:435
msgid "Key is protected.\n"
msgstr "La chiave � protetta.\n"
-#: g10/keyedit.c:443
+#: g10/keyedit.c:455
#, c-format
msgid "Can't edit this key: %s\n"
msgstr "Impossibile modificare questa chiave: %s\n"
-#: g10/keyedit.c:448
+#: g10/keyedit.c:460
msgid ""
"Enter the new passphrase for this secret key.\n"
"\n"
@@ -1942,7 +2055,7 @@ msgstr ""
"Inserisci la nuova passphrase per questa chiave segreta.\n"
"\n"
-#: g10/keyedit.c:460
+#: g10/keyedit.c:472
msgid ""
"You don't want a passphrase - this is probably a *bad* idea!\n"
"\n"
@@ -1950,392 +2063,396 @@ msgstr ""
"Non vuoi una passphrase - questa � probabilmente una *cattiva* idea!\n"
"\n"
-#: g10/keyedit.c:463
+#: g10/keyedit.c:475
msgid "Do you really want to do this? "
msgstr "Vuoi veramente farlo?"
-#: g10/keyedit.c:524
+#: g10/keyedit.c:539
msgid "moving a key signature to the correct place\n"
msgstr "spostamento della firma di una chiave nel posto corretto\n"
-#: g10/keyedit.c:564
+#: g10/keyedit.c:580
msgid "quit this menu"
msgstr "abbandona questo men�"
-#: g10/keyedit.c:565
+#: g10/keyedit.c:581
msgid "q"
msgstr "q"
-#: g10/keyedit.c:566
+#: g10/keyedit.c:582
msgid "save"
msgstr "save"
-#: g10/keyedit.c:566
+#: g10/keyedit.c:582
msgid "save and quit"
msgstr "salva ed esci"
-#: g10/keyedit.c:567
+#: g10/keyedit.c:583
msgid "help"
msgstr "help"
-#: g10/keyedit.c:567
+#: g10/keyedit.c:583
msgid "show this help"
msgstr "mostra questo aiuto"
-#: g10/keyedit.c:569
+#: g10/keyedit.c:585
msgid "fpr"
msgstr "fpr"
-#: g10/keyedit.c:569
+#: g10/keyedit.c:585
msgid "show fingerprint"
msgstr "mostra le impronte digitali"
-#: g10/keyedit.c:570
+#: g10/keyedit.c:586
msgid "list"
msgstr "list"
-#: g10/keyedit.c:570
+#: g10/keyedit.c:586
msgid "list key and user IDs"
msgstr "elenca le chiavi e gli user ID"
-#: g10/keyedit.c:571
+#: g10/keyedit.c:587
msgid "l"
msgstr "l"
-#: g10/keyedit.c:572
+#: g10/keyedit.c:588
msgid "uid"
msgstr "uid"
-#: g10/keyedit.c:572
+#: g10/keyedit.c:588
msgid "select user ID N"
msgstr "scegli l'user ID N"
-#: g10/keyedit.c:573
+#: g10/keyedit.c:589
msgid "key"
msgstr "key"
-#: g10/keyedit.c:573
+#: g10/keyedit.c:589
msgid "select secondary key N"
msgstr "scegli la chiave secondaria N"
-#: g10/keyedit.c:574
+#: g10/keyedit.c:590
msgid "check"
msgstr "check"
-#: g10/keyedit.c:574
+#: g10/keyedit.c:590
msgid "list signatures"
msgstr "elenca le firme"
-#: g10/keyedit.c:575
+#: g10/keyedit.c:591
msgid "c"
msgstr "c"
-#: g10/keyedit.c:576
+#: g10/keyedit.c:592
msgid "sign"
msgstr "sign"
-#: g10/keyedit.c:576
+#: g10/keyedit.c:592
msgid "sign the key"
msgstr "firma la chiave"
-#: g10/keyedit.c:577
+#: g10/keyedit.c:593
msgid "s"
msgstr "s"
-#: g10/keyedit.c:578
+#: g10/keyedit.c:594
msgid "lsign"
msgstr "lsign"
-#: g10/keyedit.c:578
+#: g10/keyedit.c:594
msgid "sign the key locally"
msgstr "firma la chiave localmente"
-#: g10/keyedit.c:579
+#: g10/keyedit.c:595
msgid "debug"
msgstr "debug"
-#: g10/keyedit.c:580
+#: g10/keyedit.c:596
msgid "adduid"
msgstr "adduid"
-#: g10/keyedit.c:580
+#: g10/keyedit.c:596
msgid "add a user ID"
msgstr "aggiungi un user ID"
-#: g10/keyedit.c:581
+#: g10/keyedit.c:597
msgid "deluid"
msgstr "deluid"
-#: g10/keyedit.c:581
+#: g10/keyedit.c:597
msgid "delete user ID"
msgstr "cancella un user ID"
-#: g10/keyedit.c:582
+#: g10/keyedit.c:598
msgid "addkey"
msgstr "addkey"
-#: g10/keyedit.c:582
+#: g10/keyedit.c:598
msgid "add a secondary key"
msgstr "aggiungi una chiave secondaria"
-#: g10/keyedit.c:583
+#: g10/keyedit.c:599
msgid "delkey"
msgstr "delkey"
-#: g10/keyedit.c:583
+#: g10/keyedit.c:599
msgid "delete a secondary key"
msgstr "cancella una chiave secondaria"
-#: g10/keyedit.c:584
+#: g10/keyedit.c:600
msgid "delsig"
msgstr "delsign"
-#: g10/keyedit.c:584
+#: g10/keyedit.c:600
msgid "delete signatures"
msgstr "cancella le firme"
-#: g10/keyedit.c:585
+#: g10/keyedit.c:601
msgid "expire"
msgstr "expire"
-#: g10/keyedit.c:585
+#: g10/keyedit.c:601
msgid "change the expire date"
msgstr "cambia la data di scadenza"
-#: g10/keyedit.c:586
+#: g10/keyedit.c:602
msgid "toggle"
msgstr "toggle"
-#: g10/keyedit.c:586
+#: g10/keyedit.c:602
msgid "toggle between secret and public key listing"
msgstr "cambia tra visualizzare la chiave segreta e la chiave pubblica"
-#: g10/keyedit.c:588
+#: g10/keyedit.c:604
msgid "t"
msgstr "t"
-#: g10/keyedit.c:589
+#: g10/keyedit.c:605
msgid "pref"
msgstr "pref"
-#: g10/keyedit.c:589
+#: g10/keyedit.c:605
msgid "list preferences"
msgstr "elenca le impostazioni"
-#: g10/keyedit.c:590
+#: g10/keyedit.c:606
msgid "passwd"
msgstr "passwd"
-#: g10/keyedit.c:590
+#: g10/keyedit.c:606
msgid "change the passphrase"
msgstr "cambia la passphrase"
-#: g10/keyedit.c:591
+#: g10/keyedit.c:607
msgid "trust"
msgstr "trust"
-#: g10/keyedit.c:591
+#: g10/keyedit.c:607
msgid "change the ownertrust"
msgstr "cambia il valore di fiducia"
-#: g10/keyedit.c:592
+#: g10/keyedit.c:608
msgid "revsig"
msgstr "revsig"
-#: g10/keyedit.c:592
+#: g10/keyedit.c:608
msgid "revoke signatures"
msgstr "revoca firme"
-#: g10/keyedit.c:593
+#: g10/keyedit.c:609
msgid "revkey"
msgstr "revkey"
-#: g10/keyedit.c:593
+#: g10/keyedit.c:609
msgid "revoke a secondary key"
msgstr "revoca una chiave secondaria"
-#: g10/keyedit.c:594
+#: g10/keyedit.c:610
msgid "disable"
msgstr "disable"
-#: g10/keyedit.c:594
+#: g10/keyedit.c:610
msgid "disable a key"
msgstr "disabilita una chiave"
-#: g10/keyedit.c:595
+#: g10/keyedit.c:611
msgid "enable"
msgstr "abilita"
-#: g10/keyedit.c:595
+#: g10/keyedit.c:611
msgid "enable a key"
msgstr "abilita una chiave"
-#: g10/delkey.c:107 g10/keyedit.c:614
+#: g10/delkey.c:110 g10/keyedit.c:630
msgid "can't do that in batchmode\n"
msgstr "impossibile fare questo in modo batch\n"
#. check that they match
#. fixme: check that they both match
-#: g10/keyedit.c:652
+#: g10/keyedit.c:668
msgid "Secret key is available.\n"
msgstr "� disponibile una chiave segreta.\n"
-#: g10/keyedit.c:681
+#: g10/keyedit.c:697
msgid "Command> "
msgstr "Comando> "
-#: g10/keyedit.c:711
+#: g10/keyedit.c:727
msgid "Need the secret key to do this.\n"
msgstr "Per fare questo serve la chiave segreta.\n"
-#: g10/keyedit.c:758
+#: g10/keyedit.c:731
+msgid "Please use the command \"toggle\" first.\n"
+msgstr ""
+
+#: g10/keyedit.c:778
msgid "Really sign all user IDs? "
msgstr "Firmo davvero tutti gli user ID? "
-#: g10/keyedit.c:759
+#: g10/keyedit.c:779
msgid "Hint: Select the user IDs to sign\n"
msgstr "Suggerimento: seleziona gli user ID da firmare\n"
-#: g10/keyedit.c:786 g10/keyedit.c:968
+#: g10/keyedit.c:811 g10/keyedit.c:993
#, c-format
msgid "update of trustdb failed: %s\n"
msgstr "aggiornamento del trustdb fallito: %s\n"
-#: g10/keyedit.c:797 g10/keyedit.c:818
+#: g10/keyedit.c:822 g10/keyedit.c:843
msgid "You must select at least one user ID.\n"
msgstr "Devi selezionare almeno un user ID.\n"
-#: g10/keyedit.c:799
+#: g10/keyedit.c:824
msgid "You can't delete the last user ID!\n"
msgstr "Non puoi cancellare l'ultimo user ID!\n"
-#: g10/keyedit.c:802
+#: g10/keyedit.c:827
msgid "Really remove all selected user IDs? "
msgstr "Tolgo davvero tutti gli user ID selezionati? "
-#: g10/keyedit.c:803
+#: g10/keyedit.c:828
msgid "Really remove this user ID? "
msgstr "Tolgo davvero questo user ID? "
-#: g10/keyedit.c:839 g10/keyedit.c:861
+#: g10/keyedit.c:864 g10/keyedit.c:886
msgid "You must select at least one key.\n"
msgstr "Devi selezionare almeno una chiave.\n"
-#: g10/keyedit.c:843
+#: g10/keyedit.c:868
msgid "Do you really want to delete the selected keys? "
msgstr "Vuoi davvero cancellare le chiavi selezionate? "
-#: g10/keyedit.c:844
+#: g10/keyedit.c:869
msgid "Do you really want to delete this key? "
msgstr "Vuoi davvero cancellare questa chiave? "
-#: g10/keyedit.c:865
+#: g10/keyedit.c:890
msgid "Do you really want to revoke the selected keys? "
msgstr "Vuoi davvero revocare le chiavi selezionate? "
-#: g10/keyedit.c:866
+#: g10/keyedit.c:891
msgid "Do you really want to revoke this key? "
msgstr "Vuoi davvero revocare questa chiave? "
-#: g10/keyedit.c:932
+#: g10/keyedit.c:957
msgid "Save changes? "
msgstr "Salvo i cambiamenti? "
-#: g10/keyedit.c:935
+#: g10/keyedit.c:960
msgid "Quit without saving? "
msgstr "Esco senza salvare? "
-#: g10/keyedit.c:946
+#: g10/keyedit.c:971
#, c-format
msgid "update failed: %s\n"
msgstr "aggiornamento fallito: %s\n"
-#: g10/keyedit.c:953
+#: g10/keyedit.c:978
#, c-format
msgid "update secret failed: %s\n"
msgstr "aggiornamento della chiave segreta fallito: %s\n"
-#: g10/keyedit.c:960
+#: g10/keyedit.c:985
msgid "Key not changed so no update needed.\n"
msgstr "La chiave non � cambiata quindi non sono necessari aggiornamenti.\n"
-#: g10/keyedit.c:975
+#: g10/keyedit.c:1000
msgid "Invalid command (try \"help\")\n"
msgstr "Comando non valido (prova \"help\")\n"
-#: g10/keyedit.c:1065
+#: g10/keyedit.c:1093
msgid "This key has been disabled"
msgstr "Questa chiave � stata disabilitata"
-#: g10/keyedit.c:1336
+#: g10/keyedit.c:1364
msgid "Delete this good signature? (y/N/q)"
msgstr "Cancellare questa firma corretta? (s/N/q)"
-#: g10/keyedit.c:1340
+#: g10/keyedit.c:1368
msgid "Delete this invalid signature? (y/N/q)"
msgstr "Cancellare questa firma non valida? (s/N/q)"
-#: g10/keyedit.c:1344
+#: g10/keyedit.c:1372
msgid "Delete this unknown signature? (y/N/q)"
msgstr "Cancellare questa firma sconosciuta? (s/N/q)"
-#: g10/keyedit.c:1350
+#: g10/keyedit.c:1378
msgid "Really delete this self-signature? (y/N)"
msgstr "Cancellare davvero questa autofirma? (s/N)"
-#: g10/keyedit.c:1364
+#: g10/keyedit.c:1392
#, c-format
msgid "Deleted %d signature.\n"
msgstr "Cancellata %d firma.\n"
-#: g10/keyedit.c:1365
+#: g10/keyedit.c:1393
#, c-format
msgid "Deleted %d signatures.\n"
msgstr "Cancellate %d firme.\n"
-#: g10/keyedit.c:1368
+#: g10/keyedit.c:1396
msgid "Nothing deleted.\n"
msgstr "Non � stato cancellato nulla.\n"
-#: g10/keyedit.c:1437
+#: g10/keyedit.c:1465
msgid "Please remove selections from the secret keys.\n"
msgstr "Togli le selezioni dalle chiavi segrete.\n"
-#: g10/keyedit.c:1443
+#: g10/keyedit.c:1471
msgid "Please select at most one secondary key.\n"
msgstr "Seleziona al massimo una chiave secondaria.\n"
-#: g10/keyedit.c:1447
+#: g10/keyedit.c:1475
msgid "Changing expiration time for a secondary key.\n"
msgstr "Cambio la data di scadenza per una chiave secondaria.\n"
-#: g10/keyedit.c:1449
+#: g10/keyedit.c:1477
msgid "Changing expiration time for the primary key.\n"
msgstr "Cambio la data di scadenza per la chiave primaria.\n"
-#: g10/keyedit.c:1490
+#: g10/keyedit.c:1519
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"
-#: g10/keyedit.c:1506
+#: g10/keyedit.c:1535
msgid "No corresponding signature in secret ring\n"
msgstr "Manca la firma corrispondente nel portachiavi segreto\n"
-#: g10/keyedit.c:1566
+#: g10/keyedit.c:1596
#, c-format
msgid "No user ID with index %d\n"
msgstr "Nessun user ID con l'indice %d\n"
-#: g10/keyedit.c:1612
+#: g10/keyedit.c:1642
#, c-format
msgid "No secondary key with index %d\n"
msgstr "Nessuna chiave secondaria con l'indice %d\n"
-#: g10/keyedit.c:1710
+#: g10/keyedit.c:1740
msgid "user ID: \""
msgstr "user ID: \""
-#: g10/keyedit.c:1713
+#: g10/keyedit.c:1743
#, c-format
msgid ""
"\"\n"
@@ -2345,131 +2462,146 @@ msgstr ""
"firmata con la tua chiave %08lX a %s\n"
"\n"
-#: g10/keyedit.c:1717
+#: g10/keyedit.c:1747
msgid "Create a revocation certificate for this signature? (y/N)"
msgstr "Creare un certificato di revoca per questa firma? (s/N)"
#. FIXME: detect duplicates here
-#: g10/keyedit.c:1740
+#: g10/keyedit.c:1771
msgid "You have signed these user IDs:\n"
msgstr "Non puoi cancellare l'ultimo user ID!\n"
-#: g10/keyedit.c:1754 g10/keyedit.c:1789
+#: g10/keyedit.c:1785 g10/keyedit.c:1820
#, c-format
msgid " signed by %08lX at %s\n"
msgstr " firmata da %08lX il %s\n"
-#: g10/keyedit.c:1759
+#: g10/keyedit.c:1790
#, c-format
msgid " revoked by %08lX at %s\n"
msgstr " revocata da %08lX il %s\n"
-#: g10/keyedit.c:1779
+#: g10/keyedit.c:1810
msgid "You are about to revoke these signatures:\n"
msgstr "Stai per revocare queste firme:\n"
-#: g10/keyedit.c:1797
+#: g10/keyedit.c:1828
msgid "Really create the revocation certificates? (y/N)"
msgstr "Creare davvero i certificati di revoca? (s/N)"
-#: g10/keyedit.c:1820
+#: g10/keyedit.c:1857
msgid "no secret key\n"
msgstr "manca la chiave segreta\n"
+#. of subkey
+#: g10/keylist.c:318 g10/mainproc.c:740
+#, fuzzy, c-format
+msgid " [expires: %s]"
+msgstr "La chiave scadr� il %s\n"
+
#: g10/mainproc.c:213
#, c-format
msgid "public key is %08lX\n"
msgstr "la chiave pubblica � %08lX\n"
-#: g10/mainproc.c:244
+#: g10/mainproc.c:248
msgid "public key encrypted data: good DEK\n"
msgstr "dati cifrati con la chiave pubblica: DEK corretto\n"
-#: g10/mainproc.c:275
+#: g10/mainproc.c:281
#, c-format
msgid "encrypted with %u-bit %s key, ID %08lX, created %s\n"
msgstr "cifrato con la chiave %2$s di %1$u bit, ID %3$08lX, creata il %4$s\n"
-#: g10/mainproc.c:285
+#: g10/mainproc.c:291
#, c-format
msgid "encrypted with %s key, ID %08lX\n"
msgstr "Cifrato con la chiave %s con ID %08lX\n"
-#: g10/mainproc.c:291
+#: g10/mainproc.c:297
msgid "no secret key for decryption available\n"
msgstr "nessuna chiave disponibile per decifrare\n"
-#: g10/mainproc.c:300
+#: g10/mainproc.c:306
#, c-format
msgid "public key decryption failed: %s\n"
msgstr "decifratura della chiave pubblica fallita: %s\n"
-#: g10/mainproc.c:330
+#: g10/mainproc.c:342
msgid "decryption okay\n"
msgstr "decifratura corretta\n"
-#: g10/mainproc.c:335
+#: g10/mainproc.c:347
msgid "WARNING: encrypted message has been manipulated!\n"
msgstr "ATTENZIONE: il messaggio cifrato � stato manipolato!\n"
-#: g10/mainproc.c:340
+#: g10/mainproc.c:352
#, c-format
msgid "decryption failed: %s\n"
msgstr "decifratura fallita: %s\n"
-#: g10/mainproc.c:358
+#: g10/mainproc.c:371
msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
msgstr "NOTA: il mittente ha richiesto \"solo-per-i-tuoi-occhi\"\n"
-#: g10/mainproc.c:360
+#: g10/mainproc.c:373
#, c-format
msgid "original file name='%.*s'\n"
msgstr "nome del file originale='%.*s'\n"
-#: g10/mainproc.c:587 g10/mainproc.c:596
+#: g10/mainproc.c:524
+msgid "standalone revocation - use \"gpg --import\" to apply\n"
+msgstr "revoca solitaria - usa \"gpg --import\" per applicarla\n"
+
+#: g10/mainproc.c:611 g10/mainproc.c:620
msgid "WARNING: invalid notation data found\n"
msgstr "ATTENZIONE: trovati dati di una nota non validi\n"
-#: g10/mainproc.c:599
+#: g10/mainproc.c:623
msgid "Notation: "
msgstr "Nota: "
-#: g10/mainproc.c:606
+#: g10/mainproc.c:630
msgid "Policy: "
msgstr "Policy: "
-#: g10/mainproc.c:1025
+#: g10/mainproc.c:1057
msgid "signature verification suppressed\n"
msgstr "verifica della firma soppressa\n"
-#: g10/mainproc.c:1031
+#: g10/mainproc.c:1063
#, c-format
msgid "Signature made %.*s using %s key ID %08lX\n"
msgstr "Firma fatta %.*s usando la chiave %s con ID %08lX\n"
#. just in case that we have no userid
-#: g10/mainproc.c:1057 g10/mainproc.c:1068
+#: g10/mainproc.c:1089 g10/mainproc.c:1100
msgid "BAD signature from \""
msgstr "Firma NON corretta da \""
-#: g10/mainproc.c:1058 g10/mainproc.c:1069
+#: g10/mainproc.c:1090 g10/mainproc.c:1101
msgid "Good signature from \""
msgstr "Firma valida da \""
-#: g10/mainproc.c:1060
+#: g10/mainproc.c:1092
msgid " aka \""
msgstr " anche noto come \""
-#: g10/mainproc.c:1115
+#: g10/mainproc.c:1148
#, c-format
msgid "Can't check signature: %s\n"
msgstr "Impossibile controllare la firma: %s\n"
-#: g10/mainproc.c:1212
+#: g10/mainproc.c:1209
+#, c-format
+msgid "standalone signature of class 0x%02x\n"
+msgstr "firma solitaria di classe 0x%02x\n"
+
+#: g10/mainproc.c:1250
msgid "old style (PGP 2.x) signature\n"
msgstr "firma vecchio stile (PGP 2.x)\n"
-#: g10/mainproc.c:1217
+#: g10/mainproc.c:1255
msgid "invalid root packet detected in proc_tree()\n"
msgstr "individuato un pacchetto radice non valido in proc_tree()\n"
@@ -2499,12 +2631,12 @@ msgstr ""
msgid "this cipher algorithm is depreciated; please use a more standard one!\n"
msgstr "questo algoritmo di cifratura � deprecato; usane uno pi� standard!\n"
-#: g10/parse-packet.c:113
+#: g10/parse-packet.c:115
#, c-format
msgid "can't handle public key algorithm %d\n"
msgstr "impossibile gestire l'algoritmo a chiave pubblica %d\n"
-#: g10/parse-packet.c:939
+#: g10/parse-packet.c:956
#, c-format
msgid "subpacket of type %d has critical bit set\n"
msgstr "il sottopacchetto di tipo %d ha un bit critico impostato\n"
@@ -2546,15 +2678,19 @@ msgid "data not saved; use option \"--output\" to save it\n"
msgstr ""
"i dati non sono stati salvati; usa l'opzione \"--output\" per salvarli\n"
-#: g10/plaintext.c:315
+#: g10/plaintext.c:317
+msgid "Detached signature.\n"
+msgstr "Firma separata.\n"
+
+#: g10/plaintext.c:321
msgid "Please enter name of data file: "
msgstr "Inserisci il nome del file di dati: "
-#: g10/plaintext.c:336
+#: g10/plaintext.c:342
msgid "reading stdin ...\n"
msgstr "viene letto stdin...\n"
-#: g10/plaintext.c:379
+#: g10/plaintext.c:385
#, c-format
msgid "can't open signed data `%s'\n"
msgstr "impossibile aprire i dati firmati `%s'\n"
@@ -2572,527 +2708,591 @@ 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"
-#: g10/pubkey-enc.c:191
+#: g10/pubkey-enc.c:156
+#, fuzzy, c-format
+msgid "cipher algorithm %d is unknown or disabled\n"
+msgstr "l'algoritmo di protezione %d non � gestito\n"
+
+#: g10/pubkey-enc.c:195
#, c-format
msgid "NOTE: cipher algorithm %d not found in preferences\n"
msgstr ""
"NOTA: l'algoritmo di cifratura %d non � stato trovato nelle impostazioni\n"
-#: g10/seckey-cert.c:55
+#: g10/pubkey-enc.c:201
+#, fuzzy, c-format
+msgid "NOTE: secret key %08lX expired at %s\n"
+msgstr "NOTA: chiave per firmare scaduta il %s\n"
+
+#: g10/hkp.c:62
+#, c-format
+msgid "requesting key %08lX from %s ...\n"
+msgstr ""
+
+#: g10/hkp.c:75
+#, fuzzy, c-format
+msgid "can't get key from keyserver: %s\n"
+msgstr "importa le chiavi da un key server"
+
+#: g10/hkp.c:98 g10/hkp.c:136
+msgid "no keyserver known (use option --keyserver)\n"
+msgstr ""
+
+#: g10/hkp.c:106
+#, fuzzy, c-format
+msgid "%s: not a valid key ID\n"
+msgstr "%s non � un set di caratteri valido\n"
+
+#: g10/hkp.c:158
+#, fuzzy, c-format
+msgid "can't connect to `%s': %s\n"
+msgstr "impossibile aprire `%s': %s\n"
+
+#: g10/hkp.c:182
+#, fuzzy, c-format
+msgid "error sending to `%s': %s\n"
+msgstr "errore leggendo `%s': %s\n"
+
+#: g10/hkp.c:194
+#, c-format
+msgid "success sending to `%s' (status=%u)\n"
+msgstr ""
+
+#: g10/hkp.c:197
+#, c-format
+msgid "failed sending to `%s': status=%u\n"
+msgstr ""
+
+#: g10/seckey-cert.c:53
+#, fuzzy
+msgid "secret key parts are not available\n"
+msgstr "la chiave segreta non � disponibile"
+
+#: g10/seckey-cert.c:59
#, c-format
msgid "protection algorithm %d is not supported\n"
msgstr "l'algoritmo di protezione %d non � gestito\n"
-#: g10/seckey-cert.c:171
+#: g10/seckey-cert.c:175
msgid "Invalid passphrase; please try again ...\n"
msgstr "Passphrase non valida; riprova...\n"
-#: g10/seckey-cert.c:227
+#: g10/seckey-cert.c:231
msgid "WARNING: Weak key detected - please change passphrase again.\n"
msgstr ""
"ATTENZIONE: Individuata una chiave debole - per favore cambia ancora la\n"
"passphrase.\n"
-#: g10/sig-check.c:199
+#: g10/sig-check.c:202
msgid "assuming bad MDC due to an unknown critical bit\n"
msgstr "si suppone un MDC non valido a causa di un bit critico sconosciuto\n"
-#: g10/sig-check.c:295
+#: g10/sig-check.c:300
msgid ""
"this is a PGP generated ElGamal key which is NOT secure for signatures!\n"
msgstr ""
"questa � una chiave ElGamal generata da PGP e NON � sicura per le firme!\n"
-#: g10/sig-check.c:303
+#: g10/sig-check.c:308
#, c-format
msgid "public key is %lu second newer than the signature\n"
msgstr "la chiave pubblica � %lu secondo pi� recente della firma\n"
-#: g10/sig-check.c:304
+#: g10/sig-check.c:309
#, c-format
msgid "public key is %lu seconds newer than the signature\n"
msgstr "la chiave pubblica � %lu secondi pi� recente della firma\n"
-#: g10/sig-check.c:320
+#: g10/sig-check.c:327
#, c-format
msgid "NOTE: signature key expired %s\n"
msgstr "NOTA: chiave per firmare scaduta il %s\n"
-#: g10/sig-check.c:377
+#: g10/sig-check.c:385
msgid "assuming bad signature due to an unknown critical bit\n"
msgstr ""
"si suppone una firma non valida a causa di un bit critico sconosciuto\n"
-#: g10/sign.c:132
+#: g10/sign.c:139
#, c-format
msgid "%s signature from: %s\n"
msgstr "Firma %s da: %s\n"
-#: g10/sign.c:263 g10/sign.c:575
+#: g10/sign.c:270 g10/sign.c:582
#, c-format
msgid "can't create %s: %s\n"
msgstr "impossibile creare %s: %s\n"
-#: g10/sign.c:361
+#: g10/sign.c:368
msgid "signing:"
msgstr "firma:"
-#: g10/sign.c:404
+#: g10/sign.c:411
#, c-format
msgid "WARNING: `%s' is an empty file\n"
msgstr "ATTENZIONE: `%s' � un file vuoto\n"
-#: g10/textfilter.c:128
+#: g10/textfilter.c:134
#, 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"
-#: g10/textfilter.c:197
+#: g10/textfilter.c:231
#, c-format
msgid "input line longer than %d characters\n"
msgstr "linea di input pi� lunga di %d caratteri\n"
-#: g10/tdbio.c:121 g10/tdbio.c:1635
+#: g10/tdbio.c:116 g10/tdbio.c:1623
#, c-format
msgid "trustdb rec %lu: lseek failed: %s\n"
msgstr "trustdb rec %lu: lseek fallita: %s\n"
-#: g10/tdbio.c:127 g10/tdbio.c:1642
+#: g10/tdbio.c:122 g10/tdbio.c:1630
#, c-format
msgid "trustdb rec %lu: write failed (n=%d): %s\n"
msgstr "trustdb rec %lu: scrittura fallita (n=%d): %s\n"
-#: g10/tdbio.c:237
+#: g10/tdbio.c:232
msgid "trustdb transaction too large\n"
msgstr "transazione del trustdb troppo grande\n"
-#: g10/tdbio.c:429
+#: g10/tdbio.c:424
#, c-format
msgid "%s: can't access: %s\n"
msgstr "%s: impossibile acedere a: %s\n"
-#: g10/ringedit.c:298 g10/tdbio.c:445
-#, c-format
-msgid "%s: can't create directory: %s\n"
-msgstr "%s: impossibile creare la directory: %s\n"
-
-#: g10/ringedit.c:304 g10/tdbio.c:448
-#, c-format
-msgid "%s: directory created\n"
-msgstr "%s: directory creata\n"
-
-#: g10/tdbio.c:452
+#: g10/tdbio.c:438
#, c-format
msgid "%s: directory does not exist!\n"
msgstr "%s: la directory non esiste!\n"
-#: g10/openfile.c:182 g10/openfile.c:253 g10/ringedit.c:1348 g10/tdbio.c:458
+#: g10/openfile.c:216 g10/openfile.c:284 g10/ringedit.c:1363 g10/tdbio.c:444
#, c-format
msgid "%s: can't create: %s\n"
msgstr "%s: impossibile creare: %s\n"
-#: g10/tdbio.c:473 g10/tdbio.c:522
+#: g10/tdbio.c:459 g10/tdbio.c:508
#, c-format
msgid "%s: can't create lock\n"
msgstr "%s: impossibile creare il lock\n"
-#: g10/tdbio.c:487
+#: g10/tdbio.c:473
#, c-format
msgid "%s: failed to create version record: %s"
msgstr "%s: creazione del record della versione fallita: %s"
-#: g10/tdbio.c:491
+#: g10/tdbio.c:477
#, c-format
msgid "%s: invalid trustdb created\n"
msgstr "%s: � stato creato un trustdb non valido\n"
-#: g10/tdbio.c:494
+#: g10/tdbio.c:480
#, c-format
msgid "%s: trustdb created\n"
msgstr "%s: creato il trustdb\n"
-#: g10/tdbio.c:531
+#: g10/tdbio.c:517
#, c-format
msgid "%s: invalid trustdb\n"
msgstr "%s: trustdb non valido\n"
-#: g10/tdbio.c:564
+#: g10/tdbio.c:550
#, c-format
msgid "%s: failed to create hashtable: %s\n"
msgstr "%s: creazione della tabella hash fallita: %s\n"
-#: g10/tdbio.c:572
+#: g10/tdbio.c:558
#, c-format
msgid "%s: error updating version record: %s\n"
msgstr "%s: errore durante l'aggiornamento del record di versione: %s\n"
-#: g10/tdbio.c:588 g10/tdbio.c:627 g10/tdbio.c:649 g10/tdbio.c:679
-#: g10/tdbio.c:704 g10/tdbio.c:1568 g10/tdbio.c:1595
+#: g10/tdbio.c:574 g10/tdbio.c:613 g10/tdbio.c:635 g10/tdbio.c:665
+#: g10/tdbio.c:690 g10/tdbio.c:1556 g10/tdbio.c:1583
#, c-format
msgid "%s: error reading version record: %s\n"
msgstr "%s: errore durante la lettura del record di versione: %s\n"
-#: g10/tdbio.c:601 g10/tdbio.c:660
+#: g10/tdbio.c:587 g10/tdbio.c:646
#, c-format
msgid "%s: error writing version record: %s\n"
msgstr "%s: errore durante la scrittura del record di versione: %s\n"
-#: g10/tdbio.c:1247
+#: g10/tdbio.c:1235
#, c-format
msgid "trustdb: lseek failed: %s\n"
msgstr "trustdb: lseek fallita: %s\n"
-#: g10/tdbio.c:1255
+#: g10/tdbio.c:1243
#, c-format
msgid "trustdb: read failed (n=%d): %s\n"
msgstr "trustdb: read fallita (n=%d): %s\n"
-#: g10/tdbio.c:1276
+#: g10/tdbio.c:1264
#, c-format
msgid "%s: not a trustdb file\n"
msgstr "%s: non � un file di trustdb\n"
-#: g10/tdbio.c:1292
+#: g10/tdbio.c:1280
#, c-format
msgid "%s: version record with recnum %lu\n"
msgstr "%s: record di versione con recnum %lu\n"
-#: g10/tdbio.c:1297
+#: g10/tdbio.c:1285
#, c-format
msgid "%s: invalid file version %d\n"
msgstr "%s: versione %d del file non valida\n"
-#: g10/tdbio.c:1601
+#: g10/tdbio.c:1589
#, c-format
msgid "%s: error reading free record: %s\n"
msgstr "%s: errore durante la lettura del record libero: %s\n"
-#: g10/tdbio.c:1609
+#: g10/tdbio.c:1597
#, c-format
msgid "%s: error writing dir record: %s\n"
msgstr "%s: errore durante la scrittura del dir record: %s\n"
-#: g10/tdbio.c:1619
+#: g10/tdbio.c:1607
#, c-format
msgid "%s: failed to zero a record: %s\n"
msgstr "%s: azzeramento di un record fallito: %s\n"
-#: g10/tdbio.c:1649
+#: g10/tdbio.c:1637
#, c-format
msgid "%s: failed to append a record: %s\n"
msgstr "%s: accodatura a un record fallita: %s\n"
-#: g10/tdbio.c:1760
+#: g10/tdbio.c:1748
msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
msgstr "Il trustdb � danneggiato; eseguire \"gpg --fix-trust-db\".\n"
-#: g10/trustdb.c:160
+#: g10/trustdb.c:168
#, c-format
msgid "trust record %lu, req type %d: read failed: %s\n"
msgstr "trust record %lu, tipo %d: read fallita: %s\n"
-#: g10/trustdb.c:175
+#: g10/trustdb.c:183
#, c-format
msgid "trust record %lu, type %d: write failed: %s\n"
msgstr "trust record %lu, req type %d: write fallita: %s\n"
-#: g10/trustdb.c:189
+#: g10/trustdb.c:197
#, c-format
msgid "trust record %lu: delete failed: %s\n"
msgstr "trust record %lu: delete fallita: %s\n"
-#: g10/trustdb.c:203
+#: g10/trustdb.c:211
#, c-format
msgid "trustdb: sync failed: %s\n"
msgstr "trustdb: sync fallita: %s\n"
-#: g10/trustdb.c:347
+#: g10/trustdb.c:376
#, c-format
msgid "error reading dir record for LID %lu: %s\n"
msgstr "errore durante la lettura del dir record per il LID %lu: %s\n"
-#: g10/trustdb.c:354
+#: g10/trustdb.c:383
#, c-format
msgid "lid %lu: expected dir record, got type %d\n"
msgstr "lid %lu: atteso un dir record, trovato uno di tipo %d\n"
-#: g10/trustdb.c:359
+#: g10/trustdb.c:388
#, c-format
msgid "no primary key for LID %lu\n"
msgstr "manca una chiave primaria per il LID %lu\n"
-#: g10/trustdb.c:364
+#: g10/trustdb.c:393
#, c-format
msgid "error reading primary key for LID %lu: %s\n"
msgstr ""
"errore durante la lettura della chiave primaria per il\n"
"LID %lu: %s\n"
-#: g10/trustdb.c:403
+#: g10/trustdb.c:432
#, c-format
msgid "get_dir_record: search_record failed: %s\n"
msgstr "get_dir_record: search_record fallito: %s\n"
-#: g10/trustdb.c:458
+#: g10/trustdb.c:487
#, c-format
msgid "NOTE: secret key %08lX is NOT protected.\n"
msgstr "NOTA: la chiave segreta %08lX NON � protetta.\n"
-#: g10/trustdb.c:466
+#: g10/trustdb.c:495
#, c-format
msgid "key %08lX: secret key without public key - skipped\n"
msgstr "chiave %08lX: chiave segreta senza chiave pubblica - saltata\n"
-#: g10/trustdb.c:473
+#: g10/trustdb.c:502
#, c-format
msgid "key %08lX: secret and public key don't match\n"
msgstr "chiave %08lX: le chiavi segreta e pubblica non corrispondono\n"
-#: g10/trustdb.c:485
+#: g10/trustdb.c:514
#, c-format
msgid "key %08lX: can't put it into the trustdb\n"
msgstr "chiave %08lX: impossibile metterla nel trustdb\n"
-#: g10/trustdb.c:491
+#: g10/trustdb.c:520
#, c-format
msgid "key %08lX: query record failed\n"
msgstr "chiave %08lX: richiesta del record fallita\n"
-#: g10/trustdb.c:500
+#: g10/trustdb.c:529
#, c-format
msgid "key %08lX: already in trusted key table\n"
msgstr "chiave %08lX: gi� nella tabella delle chiavi affidabili\n"
-#: g10/trustdb.c:503
+#: g10/trustdb.c:532
#, c-format
msgid "key %08lX: accepted as trusted key.\n"
msgstr "chiave %08lX: accettata come chiave affidabile\n"
-#: g10/trustdb.c:511
+#: g10/trustdb.c:540
#, c-format
msgid "enumerate secret keys failed: %s\n"
msgstr "enumerate secret keys fallito: %s\n"
-#: g10/trustdb.c:877
+#: g10/trustdb.c:921
#, c-format
msgid "key %08lX.%lu: Good subkey binding\n"
msgstr "chiave %08lX.%lu: Legame con la subchiave corretto\n"
-#: g10/trustdb.c:883 g10/trustdb.c:918
+#: g10/trustdb.c:927 g10/trustdb.c:962
#, c-format
msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
msgstr "chiave %08lX.%lu: Legame con la subchiave non valido: %s\n"
-#: g10/trustdb.c:895
+#: g10/trustdb.c:939
#, c-format
msgid "key %08lX.%lu: Valid key revocation\n"
msgstr "chiave %08lX.%lu: Revoca della chiave valida\n"
-#: g10/trustdb.c:901
+#: g10/trustdb.c:945
#, c-format
msgid "key %08lX.%lu: Invalid key revocation: %s\n"
msgstr "chiave %08lX.%lu: Revoca della chiave non valida: %s\n"
-#: g10/trustdb.c:912
+#: g10/trustdb.c:956
#, c-format
msgid "key %08lX.%lu: Valid subkey revocation\n"
msgstr "chiave %08lX.%lu: Revoca della subchiave valida\n"
-#: g10/trustdb.c:1023
+#: g10/trustdb.c:1067
msgid "Good self-signature"
msgstr "Autofirma corretta"
-#: g10/trustdb.c:1033
+#: g10/trustdb.c:1077
msgid "Invalid self-signature"
msgstr "Autofirma non valida"
-#: g10/trustdb.c:1060
+#: g10/trustdb.c:1104
msgid "Valid user ID revocation skipped due to a newer self signature"
msgstr ""
"Saltata una revoca dell'user ID valida a causa di una autofirma pi� recente"
-#: g10/trustdb.c:1066
+#: g10/trustdb.c:1110
msgid "Valid user ID revocation"
msgstr "Revoca dell'user ID valida"
-#: g10/trustdb.c:1071
+#: g10/trustdb.c:1115
msgid "Invalid user ID revocation"
msgstr "Revoca dell'user ID non valida"
-#: g10/trustdb.c:1112
+#: g10/trustdb.c:1157
msgid "Valid certificate revocation"
msgstr "Revoca del certificato valida"
-#: g10/trustdb.c:1113
+#: g10/trustdb.c:1158
msgid "Good certificate"
msgstr "Certificato corretto"
-#: g10/trustdb.c:1134
+#: g10/trustdb.c:1186
msgid "Invalid certificate revocation"
msgstr "Certificato di revoca non valido"
-#: g10/trustdb.c:1135
+#: g10/trustdb.c:1187
msgid "Invalid certificate"
msgstr "Certificato non valido"
-#: g10/trustdb.c:1152 g10/trustdb.c:1156
+#: g10/trustdb.c:1204 g10/trustdb.c:1208
#, c-format
msgid "sig record %lu[%d] points to wrong record.\n"
msgstr "il sig recor di %lu[%d] punta al record sbagliato.\n"
-#: g10/trustdb.c:1208
+#: g10/trustdb.c:1267
msgid "duplicated certificate - deleted"
msgstr "certificato doppio - cancellato"
-#: g10/trustdb.c:1514
+#: g10/trustdb.c:1584
#, c-format
msgid "tdbio_search_dir failed: %s\n"
msgstr "tdbio_search_dir fallita: %s\n"
-#: g10/trustdb.c:1636
+#: g10/trustdb.c:1718
#, c-format
msgid "lid ?: insert failed: %s\n"
msgstr "lid ?: inserimento fallito: %s\n"
-#: g10/trustdb.c:1641
+#: g10/trustdb.c:1723
#, c-format
msgid "lid %lu: insert failed: %s\n"
msgstr "lid %lu: inserimento fallito: %s\n"
-#: g10/trustdb.c:1647
+#: g10/trustdb.c:1729
#, c-format
msgid "lid %lu: inserted\n"
msgstr "lid %lu: inserito\n"
-#: g10/trustdb.c:1652
+#: g10/trustdb.c:1734
#, c-format
msgid "error reading dir record: %s\n"
msgstr "errore durante la lettura del dir record: %s\n"
-#: g10/trustdb.c:1660 g10/trustdb.c:1714
+#: g10/trustdb.c:1742 g10/trustdb.c:1805
#, c-format
msgid "%lu keys processed\n"
msgstr "%lu chiavi esaminate\n"
-#: g10/trustdb.c:1662 g10/trustdb.c:1718
+#: g10/trustdb.c:1744 g10/trustdb.c:1811
#, c-format
msgid "\t%lu keys with errors\n"
msgstr "\t%lu chiavi con errori\n"
-#: g10/trustdb.c:1664
+#: g10/trustdb.c:1746
#, c-format
msgid "\t%lu keys inserted\n"
msgstr "\t%lu chiavi inserite\n"
-#: g10/trustdb.c:1667
+#: g10/trustdb.c:1749
#, c-format
msgid "enumerate keyblocks failed: %s\n"
msgstr "enumerate keyblocks fallito: %s\n"
-#: g10/trustdb.c:1705
+#: g10/trustdb.c:1797
#, c-format
msgid "lid %lu: dir record w/o key - skipped\n"
msgstr "lid %lu: dir record senza chiave - saltato\n"
-#: g10/trustdb.c:1716
+#: g10/trustdb.c:1807
+#, c-format
+msgid "\t%lu due to new pubkeys\n"
+msgstr "\t%lu a causa di nuove chiavi pubbliche\n"
+
+#: g10/trustdb.c:1809
#, c-format
msgid "\t%lu keys skipped\n"
msgstr "\t%lu chiavi saltate\n"
-#: g10/trustdb.c:1720
+#: g10/trustdb.c:1813
#, c-format
msgid "\t%lu keys updated\n"
msgstr "\t%lu chiavi aggiornate\n"
-#: g10/trustdb.c:2057
+#: g10/trustdb.c:2158
msgid "Ooops, no keys\n"
msgstr "Ooops, mancano le chiavi\n"
-#: g10/trustdb.c:2061
+#: g10/trustdb.c:2162
msgid "Ooops, no user IDs\n"
msgstr "Ooops, mancano gli user ID\n"
-#: g10/trustdb.c:2218
+#: g10/trustdb.c:2320
#, c-format
msgid "check_trust: search dir record failed: %s\n"
msgstr "check_trust: ricerca del dir record fallita: %s\n"
-#: g10/trustdb.c:2227
+#: g10/trustdb.c:2329
#, c-format
msgid "key %08lX: insert trust record failed: %s\n"
msgstr "chiave %08lX: inserimento del record della fiducia fallito: %s\n"
-#: g10/trustdb.c:2231
+#: g10/trustdb.c:2333
#, c-format
msgid "key %08lX.%lu: inserted into trustdb\n"
msgstr "chiave %08lX.%lu: inserita nel trustdb\n"
-#: g10/trustdb.c:2239
+#: g10/trustdb.c:2341
#, c-format
msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
msgstr ""
"chiave %08lX.%lu: creata nel futuro (salto nel tempo o problema\n"
"con l'orologio)\n"
-#: g10/trustdb.c:2248
+#: g10/trustdb.c:2356
#, c-format
msgid "key %08lX.%lu: expired at %s\n"
msgstr "chiave %08lX.%lu: scaduta il %s\n"
-#: g10/trustdb.c:2256
+#: g10/trustdb.c:2364
#, c-format
msgid "key %08lX.%lu: trust check failed: %s\n"
msgstr "chiave %08lX.%lu: controllo della fiducia fallito: %s\n"
-#: g10/trustdb.c:2362
+#: g10/trustdb.c:2515
#, c-format
msgid "user '%s' not found: %s\n"
msgstr "utente `%s' non trovato: %s\n"
-#: g10/trustdb.c:2364
+#: g10/trustdb.c:2517
#, c-format
msgid "problem finding '%s' in trustdb: %s\n"
msgstr "problema cercando `%s' nel trustdb: %s\n"
-#: g10/trustdb.c:2367
+#: g10/trustdb.c:2520
#, c-format
msgid "user '%s' not in trustdb - inserting\n"
msgstr "l'utente `%s' non � nel trustdb - viene inserito\n"
-#: g10/trustdb.c:2370
+#: g10/trustdb.c:2523
#, c-format
msgid "failed to put '%s' into trustdb: %s\n"
msgstr "impossibile mettere `%s' nel trustdb: %s\n"
-#: g10/trustdb.c:2556 g10/trustdb.c:2586
+#: g10/trustdb.c:2709 g10/trustdb.c:2739
msgid "WARNING: can't yet handle long pref records\n"
msgstr "ATTENZIONE: non � ancora possibile gestire record pref lunghi\n"
-#: g10/ringedit.c:318
+#: g10/verify.c:82
+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 ""
+"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"
+
+#: g10/verify.c:147
+#, c-format
+msgid "input line %u too long or missing LF\n"
+msgstr "linea di input %u troppo lunga o LF mancante\n"
+
+#: g10/ringedit.c:302
#, c-format
msgid "%s: can't create keyring: %s\n"
msgstr "%s: impossibile creare il portachiavi: %s\n"
-#: g10/ringedit.c:335 g10/ringedit.c:1353
+#: g10/ringedit.c:319 g10/ringedit.c:1368
#, c-format
msgid "%s: keyring created\n"
msgstr "%s: portachiavi creato\n"
-#: g10/ringedit.c:1530
+#: g10/ringedit.c:1545
msgid "WARNING: 2 files with confidential information exists.\n"
msgstr "ATTENZIONE: esistono due file con informazioni confidenziali.\n"
-#: g10/ringedit.c:1531
+#: g10/ringedit.c:1546
#, c-format
msgid "%s is the unchanged one\n"
msgstr "%s � quello non modificato\n"
-#: g10/ringedit.c:1532
+#: g10/ringedit.c:1547
#, c-format
msgid "%s is the new one\n"
msgstr "%s � quello nuovo\n"
-#: g10/ringedit.c:1533
+#: g10/ringedit.c:1548
msgid "Please fix this possible security flaw\n"
msgstr "Per favore risolvete questo possibile problema di sicurezza\n"
@@ -3117,38 +3317,54 @@ msgstr ""
"le firme!\n"
#. do not overwrite
-#: g10/openfile.c:65
+#: g10/openfile.c:79
#, c-format
msgid "File `%s' exists. "
msgstr "Il file `%s' esiste. "
-#: g10/openfile.c:67
+#: g10/openfile.c:81
msgid "Overwrite (y/N)? "
msgstr "Sovrascrivo (s/N)? "
-#: g10/openfile.c:97
+#: g10/openfile.c:109
#, c-format
msgid "%s: unknown suffix\n"
msgstr "%s: suffisso sconosciuto\n"
-#: g10/openfile.c:119
+#: g10/openfile.c:131
msgid "Enter new filename"
msgstr "Inserire il nuovo nome del file"
-#: g10/openfile.c:160
+#: g10/openfile.c:172
msgid "writing to stdout\n"
msgstr "scrivo su stdout\n"
-#: g10/openfile.c:219
+#: g10/openfile.c:250
#, c-format
msgid "assuming signed data in `%s'\n"
msgstr "suppongo che i dati firmati siano in `%s'\n"
-#: g10/openfile.c:269
+#: g10/openfile.c:300
#, c-format
msgid "%s: new options file created\n"
msgstr "%s: creato un nuovo file delle opzioni\n"
+#: g10/openfile.c:313
+#, c-format
+msgid "%s: can't create directory: %s\n"
+msgstr "%s: impossibile creare la directory: %s\n"
+
+#: g10/openfile.c:316
+#, c-format
+msgid "%s: directory created\n"
+msgstr "%s: directory creata\n"
+
+#: g10/openfile.c:318
+msgid "you have to start GnuPG again, so it can read the new options file\n"
+msgstr ""
+"� necessario eseguire di nuovo GnuPG in modo che possa leggere il nuovo\n"
+"file delle opzioni\n"
+
#: g10/encr-data.c:66
#, c-format
msgid "%s encrypted data\n"
@@ -3177,23 +3393,23 @@ msgstr ""
"Impossibile evitare una chiave debole per il cifrario simmetrico;\n"
"ho provato %d volte!\n"
-#: g10/delkey.c:93
+#: g10/delkey.c:94
msgid "there is a secret key for this public key!\n"
msgstr "c'� una chiave segreta per questa chiave pubblica!\n"
-#: g10/delkey.c:95
+#: g10/delkey.c:96
msgid "use option \"--delete-secret-key\" to delete it first.\n"
msgstr "prima usa l'opzione \"--delete-secret-key\" per cancellarla.\n"
-#: g10/delkey.c:111
+#: g10/delkey.c:114
msgid "can't do that in batchmode without \"--yes\"\n"
msgstr "impossibile fare questo in modo batch senza \"--yes\"\n"
-#: g10/delkey.c:133
+#: g10/delkey.c:136
msgid "Delete this key from the keyring? "
msgstr "Vuoi cancellare questa chiave dal portachiavi? "
-#: g10/delkey.c:141
+#: g10/delkey.c:144
msgid "This is a secret key! - really delete? "
msgstr "� una chaive segreta! - Vuoi cancellarla davvero? "
@@ -3218,8 +3434,7 @@ msgstr "Se vuoi usare comunque questa chiave non fidata, rispondi \"si\"."
#: g10/helptext.c:61
msgid ""
"Enter the user ID of the addressee to whom you want to send the message."
-msgstr ""
-"Inserisci l'user ID del destinatario a cui vuoi mandare il messaggio."
+msgstr "Inserisci l'user ID del destinatario a cui vuoi mandare il messaggio."
#: g10/helptext.c:65
msgid ""
@@ -3345,7 +3560,8 @@ msgid ""
"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 cancellare\n"
+"Questa � una firma valida per la chiave. Normalmente non vorresti "
+"cancellare\n"
"questa firma perch� pu� essere importante per stabilire una connessione di\n"
"fiducia alla chiave o a un'altra chiave certificata da questa chiave."
@@ -3412,12 +3628,55 @@ msgstr ""
"Inserisci il nuovo nome del file. Se premi INVIO sar� usato il nome\n"
"predefinito (quello indicato tra parentesi)."
-#: g10/helptext.c:237
+#: g10/helptext.c:229
+msgid ""
+"You should specify a reason for the certification. Depending on the\n"
+"context you have the ability to choose from this list:\n"
+" \"Key has been compromised\"\n"
+" Use this if you have a reason to believe that unauthorized persons\n"
+" got access to your secret key.\n"
+" \"Key is superseeded\"\n"
+" Use this if you have replaced this key with a newer one.\n"
+" \"Key is no longer used\"\n"
+" Use this if you have retired this key.\n"
+" \"User ID is no longer valid\"\n"
+" 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 ""
+
+#: g10/helptext.c:245
+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 ""
+
+#: g10/helptext.c:260
msgid "No help available"
msgstr "Non � disponibile un aiuto"
-#: g10/helptext.c:245
+#: g10/helptext.c:268
#, c-format
msgid "No help available for `%s'"
msgstr "Non � disponibile un aiuto per `%s'"
+#~ msgid "set debugging flags"
+#~ msgstr "imposta i flag di debugging"
+
+#~ msgid "enable full debugging"
+#~ msgstr "abilita il debugging completo"
+
+#~ msgid "do not write comment packets"
+#~ msgstr "non scrivere pacchetti di commento"
+
+#~ msgid "(default is 1)"
+#~ msgstr "(predefinito � 1)"
+
+#~ msgid "(default is 3)"
+#~ msgstr "(predefinito � 3)"
+
+#~ msgid " (%d) ElGamal in a v3 packet\n"
+#~ msgstr " (%d) ElGamal in un pacchetto v3\n"
+
+#~ msgid "Key generation can only be used in interactive mode\n"
+#~ msgstr "Una chiave pu� essere generata solo in modo interattivo\n"
diff --git a/po/ja.po b/po/ja.po
new file mode 100644
index 000000000..2d078a7e4
--- /dev/null
+++ b/po/ja.po
@@ -0,0 +1,3643 @@
+# Japanese messages for GnuPG
+# Copyright (C) 1999 Free Software Foundation, Inc.
+# IIDA Yosiaki <[email protected]>, 1999-2000.
+# Yoshihiro Kajiki <[email protected]>, 1999.
+# Special thanks to "Takashi P.KATOH".
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gnupg 1.0.0h\n"
+"POT-Creation-Date: 2000-05-30 13:59+0200\n"
+"PO-Revision-Date: 2000-02-16 20:10+09:00\n"
+"Last-Translator: IIDA Yosiaki <[email protected]>\n"
+"Language-Team: Japanese <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=EUC-JP\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: util/secmem.c:79
+msgid "Warning: using insecure memory!\n"
+msgstr "�ٹ�: �����Ǥʤ����꡼����Ѥ��Ƥ��ޤ�!\n"
+
+#: util/secmem.c:287
+msgid "operation is not possible without initialized secure memory\n"
+msgstr "��������줿�����ʥ��꡼��̵�����ˤϼ¹ԤǤ��ޤ���\n"
+
+#: util/secmem.c:288
+msgid "(you may have used the wrong program for this task)\n"
+msgstr "(������Ū�ˤ���Ŭ�ڤʥץ��������Ѥ����ΤǤ��礦)\n"
+
+#: util/miscutil.c:277 util/miscutil.c:306
+msgid "yes"
+msgstr "yes"
+
+#: util/miscutil.c:278 util/miscutil.c:309
+msgid "yY"
+msgstr "yY"
+
+#: util/miscutil.c:279 util/miscutil.c:307
+msgid "no"
+msgstr "no"
+
+#: util/miscutil.c:280 util/miscutil.c:310
+msgid "nN"
+msgstr "nN"
+
+#: g10/keyedit.c:580 util/miscutil.c:308
+msgid "quit"
+msgstr "quit"
+
+#: util/miscutil.c:311
+msgid "qQ"
+msgstr "qQ"
+
+#: util/errors.c:54
+msgid "general error"
+msgstr "����Ū�ʥ��顼"
+
+#: util/errors.c:55
+msgid "unknown packet type"
+msgstr "�ѥ��åȥ����פ������Ǥ�"
+
+#: util/errors.c:56
+msgid "unknown version"
+msgstr "�С�����������Ǥ�"
+
+#: util/errors.c:57
+msgid "unknown pubkey algorithm"
+msgstr "�������Υ��르�ꥺ�ब�����Ǥ�"
+
+#: util/errors.c:58
+msgid "unknown digest algorithm"
+msgstr "����Υ��르�ꥺ�ब�����Ǥ�"
+
+#: util/errors.c:59
+msgid "bad public key"
+msgstr "�������������Ǥ�"
+
+#: util/errors.c:60
+msgid "bad secret key"
+msgstr "��̩���������Ǥ�"
+
+#: util/errors.c:61
+msgid "bad signature"
+msgstr "��̾�������Ǥ�"
+
+#: util/errors.c:62
+msgid "checksum error"
+msgstr "�����å����२�顼"
+
+#: util/errors.c:63
+msgid "bad passphrase"
+msgstr "�ѥ��ե졼��������������ޤ���"
+
+#: util/errors.c:64
+msgid "public key not found"
+msgstr "���������ߤĤ���ޤ���"
+
+#: util/errors.c:65
+msgid "unknown cipher algorithm"
+msgstr "�Ź楢�르�ꥺ�ब�����Ǥ�"
+
+#: util/errors.c:66
+msgid "can't open the keyring"
+msgstr "����󥰤������ޤ���"
+
+#: util/errors.c:67
+msgid "invalid packet"
+msgstr "̵���ʥѥ��åȤǤ�"
+
+#: util/errors.c:68
+msgid "invalid armor"
+msgstr "̵�������äǤ�"
+
+#: util/errors.c:69
+msgid "no such user id"
+msgstr "���Υ桼�� ID �Ϥ���ޤ���"
+
+#: util/errors.c:70
+msgid "secret key not available"
+msgstr "��̩��������ޤ���"
+
+#: util/errors.c:71
+msgid "wrong secret key used"
+msgstr "��������̩�����Ѥ����Ƥ��ޤ�"
+
+#: util/errors.c:72
+msgid "not supported"
+msgstr "���ݡ��Ȥ��Ƥ��ޤ���"
+
+#: util/errors.c:73
+msgid "bad key"
+msgstr "���������Ǥ�"
+
+#: util/errors.c:74
+msgid "file read error"
+msgstr "�ե�������ɤ߽Ф����顼"
+
+#: util/errors.c:75
+msgid "file write error"
+msgstr "�ե�����ؤν񤭹��ߥ��顼"
+
+#: util/errors.c:76
+msgid "unknown compress algorithm"
+msgstr "���̥��르�ꥺ�ब�����Ǥ�"
+
+#: util/errors.c:77
+msgid "file open error"
+msgstr "�ե����뤬�����ޤ���"
+
+#: util/errors.c:78
+msgid "file create error"
+msgstr "�ե����뤬�����Ǥ��ޤ���"
+
+#: util/errors.c:79
+msgid "invalid passphrase"
+msgstr "�ѥ��ե졼�����ְ�äƤ��ޤ�"
+
+#: util/errors.c:80
+msgid "unimplemented pubkey algorithm"
+msgstr "�������Υ��르�ꥺ�ब��������Ƥ��ޤ���"
+
+#: util/errors.c:81
+msgid "unimplemented cipher algorithm"
+msgstr "�Ź楢�르�ꥺ�ब��������Ƥ��ޤ���"
+
+#: util/errors.c:82
+msgid "unknown signature class"
+msgstr "��̾�Υ��饹�������Ǥ�"
+
+#: util/errors.c:83
+msgid "trust database error"
+msgstr "���ѥǡ����١����Υ��顼�Ǥ�"
+
+#: util/errors.c:84
+msgid "bad MPI"
+msgstr "MPI �������Ǥ�"
+
+#: util/errors.c:85
+msgid "resource limit"
+msgstr "�꥽�������³��Ǥ�"
+
+#: util/errors.c:86
+msgid "invalid keyring"
+msgstr "����󥰤�̵���Ǥ�"
+
+#: util/errors.c:87
+msgid "bad certificate"
+msgstr "�����������Ǥ�"
+
+#: util/errors.c:88
+msgid "malformed user id"
+msgstr "�桼�� ID �ν񼰤�����������ޤ���"
+
+#: util/errors.c:89
+msgid "file close error"
+msgstr "�ե����뤬�Ĥ����ޤ���"
+
+#: util/errors.c:90
+msgid "file rename error"
+msgstr "�ե�����̾���ѹ����Ǥ��ޤ���"
+
+#: util/errors.c:91
+msgid "file delete error"
+msgstr "�ե�����κ�����Ǥ��ޤ���"
+
+#: util/errors.c:92
+msgid "unexpected data"
+msgstr "ͽ������Ƥ��ʤ��ǡ����Ǥ�"
+
+#: util/errors.c:93
+msgid "timestamp conflict"
+msgstr "���դ����ͤ��Ƥ��ޤ�"
+
+#: util/errors.c:94
+msgid "unusable pubkey algorithm"
+msgstr "���ѤǤ��ʤ����������르�ꥺ��Ǥ�"
+
+#: util/errors.c:95
+msgid "file exists"
+msgstr "�ե����뤬����¸�ߤ��Ƥ��ޤ�"
+
+#: util/errors.c:96
+msgid "weak key"
+msgstr "�夤���Ǥ�"
+
+#: util/errors.c:97
+msgid "invalid argument"
+msgstr "̵���ʻ���Ǥ�"
+
+#: util/errors.c:98
+msgid "bad URI"
+msgstr "URI ���ְ�äƤ��ޤ�"
+
+#: util/errors.c:99
+msgid "unsupported URI"
+msgstr "���� URI �ϥ��ݡ��Ȥ��Ƥ��ޤ���"
+
+#: util/errors.c:100
+msgid "network error"
+msgstr "�ͥåȥ�����顼"
+
+#: util/errors.c:102
+msgid "not encrypted"
+msgstr "�Ź沽����Ƥ��ޤ���"
+
+#: util/errors.c:103
+msgid "not processed"
+msgstr "̤����"
+
+#: util/logger.c:224
+#, c-format
+msgid "... this is a bug (%s:%d:%s)\n"
+msgstr "... �Х��Ǥ� (%s:%d:%s)\n"
+
+#: util/logger.c:230
+#, c-format
+msgid "you found a bug ... (%s:%d)\n"
+msgstr "�Х��򸫤Ĥ����褦�Ǥ� ... (%s:%d)\n"
+
+#: cipher/random.c:311 g10/import.c:127 g10/keygen.c:1150
+#, c-format
+msgid "can't open `%s': %s\n"
+msgstr "`%s' �������ޤ���: %s\n"
+
+#: cipher/random.c:315
+#, fuzzy, c-format
+msgid "can't stat `%s': %s\n"
+msgstr "`%s' �������ޤ���: %s\n"
+
+#: cipher/random.c:320
+#, c-format
+msgid "`%s' is not a regular file - ignored\n"
+msgstr ""
+
+#: cipher/random.c:325
+msgid "note: random_seed file is empty\n"
+msgstr ""
+
+#: cipher/random.c:331
+msgid "warning: invalid size of random_seed file - not used\n"
+msgstr ""
+
+#: cipher/random.c:339
+#, fuzzy, c-format
+msgid "can't read `%s': %s\n"
+msgstr "`%s' �������ޤ���: %s\n"
+
+#: cipher/random.c:377
+msgid "note: random_seed file not updated\n"
+msgstr ""
+
+#: cipher/random.c:397
+#, fuzzy, c-format
+msgid "can't create `%s': %s\n"
+msgstr "%s �������Ǥ��ޤ���: %s\n"
+
+#: cipher/random.c:404
+#, fuzzy, c-format
+msgid "can't write `%s': %s\n"
+msgstr "`%s' �������ޤ���: %s\n"
+
+#: cipher/random.c:407
+#, fuzzy, c-format
+msgid "can't close `%s': %s\n"
+msgstr "`%s' �������ޤ���: %s\n"
+
+#: cipher/random.c:418
+#, c-format
+msgid "too many random bits requested; the limit is %d\n"
+msgstr ""
+
+#: cipher/random.c:647
+msgid "WARNING: using insecure random number generator!!\n"
+msgstr "�ٹ�: �����Ǥʤ�����������֤��Ȥ��Ƥ��ޤ�!!\n"
+
+#: cipher/random.c:648
+msgid ""
+"The random number generator is only a kludge to let\n"
+"it run - it is in no way a strong RNG!\n"
+"\n"
+"DON'T USE ANY DATA GENERATED BY THIS PROGRAM!!\n"
+"\n"
+msgstr ""
+"���� OS ����ܤ���Ƥ��뵿������������르�ꥺ��ϡ�\n"
+"�Ź��ѤȤ��Ƥ���Ŭ���Ǥ������Ǥ�����������Ǥ��ޤ���\n"
+"\n"
+"���Υץ������ˤ���������줿�ǡ����ϰ��ڻ��Ѥ��ƤϤ����ޤ���!!\n"
+"\n"
+
+#: cipher/rndlinux.c:141
+#, c-format
+msgid ""
+"\n"
+"Not enough random bytes available. Please do some other work to give\n"
+"the OS a chance to collect more entropy! (Need %d more bytes)\n"
+msgstr ""
+"\n"
+"��ʬ��Ĺ��������������ޤ��󡣥���ȥ��ԡ������ä�����褦��\n"
+"OS ��������ѹ����Ƥ���������(%d bytes �ʾ�μ�����ɬ�פǤ�)\n"
+
+#: g10/g10.c:195
+msgid ""
+"@Commands:\n"
+" "
+msgstr ""
+"@���ޥ��:\n"
+" "
+
+#: g10/g10.c:197
+msgid "|[file]|make a signature"
+msgstr "|[file]|��̾�����"
+
+#: g10/g10.c:198
+msgid "|[file]|make a clear text signature"
+msgstr "|[file]|���ꥢ��̾�����"
+
+#: g10/g10.c:199
+msgid "make a detached signature"
+msgstr "ʬΥ��̾�����"
+
+#: g10/g10.c:200
+msgid "encrypt data"
+msgstr "�ǡ�����Ź沽"
+
+#: g10/g10.c:201
+msgid "encryption only with symmetric cipher"
+msgstr "�Ź沽�ˤ��оΰŹ�ˡ�Τߤ����"
+
+#: g10/g10.c:202
+msgid "store only"
+msgstr "��¸�Τ�"
+
+#: g10/g10.c:203
+msgid "decrypt data (default)"
+msgstr "�ǡ��������� (�ǥե����)"
+
+#: g10/g10.c:204
+msgid "verify a signature"
+msgstr "��̾�򸡾�"
+
+#: g10/g10.c:206
+msgid "list keys"
+msgstr "�����"
+
+#: g10/g10.c:208
+msgid "list keys and signatures"
+msgstr "���Ƚ�̾�ΰ���"
+
+#: g10/g10.c:209
+msgid "check key signatures"
+msgstr "���ν�̾�򸡾�"
+
+#: g10/g10.c:210
+msgid "list keys and fingerprints"
+msgstr "���Ȼ���ΰ���"
+
+#: g10/g10.c:211
+msgid "list secret keys"
+msgstr "��̩���ΰ���"
+
+#: g10/g10.c:212
+msgid "generate a new key pair"
+msgstr "���������ڥ������"
+
+#: g10/g10.c:213
+msgid "remove key from the public keyring"
+msgstr "��������󥰤��鸰����"
+
+#: g10/g10.c:215
+msgid "remove key from the secret keyring"
+msgstr "��̩����󥰤��鸰����"
+
+#: g10/g10.c:216
+msgid "sign a key"
+msgstr "���˽�̾"
+
+#: g10/g10.c:217
+msgid "sign a key locally"
+msgstr "��������ˤƸ��˽�̾"
+
+#: g10/g10.c:218
+msgid "sign or edit a key"
+msgstr "���ؤν�̾�ޤ����Խ�"
+
+#: g10/g10.c:219
+msgid "generate a revocation certificate"
+msgstr "�˴�����������"
+
+#: g10/g10.c:220
+msgid "export keys"
+msgstr "����񤭽Ф�"
+
+#: g10/g10.c:221
+msgid "export keys to a key server"
+msgstr "�������Ф˸�����Ͽ"
+
+#: g10/g10.c:222
+msgid "import keys from a key server"
+msgstr "�������С����鸰���ɤ߹���"
+
+#: g10/g10.c:226
+msgid "import/merge keys"
+msgstr "�����ɤ߹���/�ޡ���"
+
+#: g10/g10.c:228
+msgid "list only the sequence of packets"
+msgstr "�ѥ��å���Τߤΰ���"
+
+#: g10/g10.c:230
+msgid "export the ownertrust values"
+msgstr "��ͭ�Ԥ��Ѥ����ͤ�񤭽Ф�"
+
+#: g10/g10.c:232
+msgid "import ownertrust values"
+msgstr "��ͭ�Ԥ��Ѥ����ͤ��ɤ߹���"
+
+#: g10/g10.c:234
+msgid "update the trust database"
+msgstr "���ѥǡ����١����򹹿�"
+
+#: g10/g10.c:236
+msgid "|[NAMES]|check the trust database"
+msgstr "|[NAMES]|���ѥǡ����١���������å�"
+
+#: g10/g10.c:237
+msgid "fix a corrupted trust database"
+msgstr "���줿���ѥǡ����١�������"
+
+#: g10/g10.c:238
+msgid "De-Armor a file or stdin"
+msgstr "�ե�����ޤ���ɸ�����Ϥ����ý���"
+
+#: g10/g10.c:240
+msgid "En-Armor a file or stdin"
+msgstr "�ե�����ޤ���ɸ�����Ϥ����ò�"
+
+#: g10/g10.c:242
+msgid "|algo [files]|print message digests"
+msgstr "|algo [files]|��������������"
+
+#: g10/g10.c:246
+msgid ""
+"@\n"
+"Options:\n"
+" "
+msgstr ""
+"@\n"
+"���ץ����:\n"
+" "
+
+#: g10/g10.c:248
+msgid "create ascii armored output"
+msgstr "���������������������"
+
+#: g10/g10.c:250
+msgid "|NAME|encrypt for NAME"
+msgstr "|NAME|NAME �Ѥ˰Ź沽"
+
+#: g10/g10.c:253
+msgid "|NAME|use NAME as default recipient"
+msgstr "|NAME|�ǥե���Ȥμ����ԤȤ��� NAME ���Ѥ���"
+
+#: g10/g10.c:255
+msgid "use the default key as default recipient"
+msgstr "�ǥե���Ȥμ����ԤȤ��ƥǥե���Ȥθ����Ѥ���"
+
+#: g10/g10.c:259
+msgid "use this user-id to sign or decrypt"
+msgstr "��̾������� ���� user-id ���Ѥ���"
+
+#: g10/g10.c:260
+msgid "|N|set compress level N (0 disables)"
+msgstr "|N|���̥�٥�� N �����ꤹ�� (0 ���󰵽�)"
+
+#: g10/g10.c:262
+msgid "use canonical text mode"
+msgstr "ɸ��ƥ����ȥ⡼�ɤ��Ѥ���"
+
+#: g10/g10.c:263
+msgid "use as output file"
+msgstr "���ϥե�����Ȥ����Ѥ���"
+
+#: g10/g10.c:264
+msgid "verbose"
+msgstr "��Ĺ"
+
+#: g10/g10.c:265
+msgid "be somewhat more quiet"
+msgstr "����Ť�"
+
+#: g10/g10.c:266
+msgid "don't use the terminal at all"
+msgstr "ü������Ѥ��ʤ�"
+
+#: g10/g10.c:267
+msgid "force v3 signatures"
+msgstr "����Ū�� v3 ��̾����"
+
+#: g10/g10.c:268
+msgid "always use a MDC for encryption"
+msgstr "�Ź沽�ˤϾ�� MDC �����"
+
+#: g10/g10.c:269
+msgid "do not make any changes"
+msgstr "���Ƥ��ѹ����Ѥ��ʤ�"
+
+#. { oInteractive, "interactive", 0, N_("prompt before overwriting") },
+#: g10/g10.c:271
+msgid "batch mode: never ask"
+msgstr "�Хå��⡼��: �䤤��碌��Ԥ�ʤ�"
+
+#: g10/g10.c:272
+msgid "assume yes on most questions"
+msgstr "���Ƥμ���� yes �ȸ��ʤ�"
+
+#: g10/g10.c:273
+msgid "assume no on most questions"
+msgstr "���Ƥμ���� no �ȸ��ʤ�"
+
+#: g10/g10.c:274
+msgid "add this keyring to the list of keyrings"
+msgstr "����󥰤ΰ����� ���θ���ä���"
+
+#: g10/g10.c:275
+msgid "add this secret keyring to the list"
+msgstr "������ ������̩����󥰤�ä���"
+
+#: g10/g10.c:276
+msgid "|NAME|use NAME as default secret key"
+msgstr "|NAME|�ǥե���Ȥ���̩���Ȥ��� NAME ���Ѥ���"
+
+#: g10/g10.c:277
+msgid "|HOST|use this keyserver to lookup keys"
+msgstr "|HOST|���θ����� ���θ������Ф��Ѥ���"
+
+#: g10/g10.c:278
+msgid "|NAME|set terminal charset to NAME"
+msgstr "|NAME|ü����ʸ�������ɤ� NAME �����ꤹ��"
+
+#: g10/g10.c:279
+msgid "read options from file"
+msgstr "�ե����뤫�饪�ץ������ɤ߹���"
+
+#: g10/g10.c:283
+msgid "|FD|write status info to this FD"
+msgstr "|FD|���� FD �˾��֤�񤭽Ф�"
+
+#: g10/g10.c:288
+msgid "|FILE|load extension module FILE"
+msgstr "|FILE|��ĥ�⥸�塼�� FILE ���ɤߤ���"
+
+#: g10/g10.c:289
+msgid "emulate the mode described in RFC1991"
+msgstr "RFC1991 �˵��Ҥ��줿�⡼�ɤ��Ѥ���"
+
+#: g10/g10.c:290
+msgid "set all packet, cipher and digest options to OpenPGP behavior"
+msgstr "���ƤΥѥ��åȤȰŹ�Ƚ�̾�Υ��ץ����� OpenPGP �ο��������"
+
+#: g10/g10.c:291
+msgid "|N|use passphrase mode N"
+msgstr "|N|�ѥ��ե졼���⡼�� N ���Ѥ���"
+
+#: g10/g10.c:293
+msgid "|NAME|use message digest algorithm NAME for passphrases"
+msgstr "|NAME|�ѥ��ե졼���˥�å��������󥢥르�ꥺ�� NAME ���Ѥ���"
+
+#: g10/g10.c:295
+msgid "|NAME|use cipher algorithm NAME for passphrases"
+msgstr "|NAME|�ѥ��ե졼���˰Ź楢�르�ꥺ�� NAME ���Ѥ���"
+
+#: g10/g10.c:296
+msgid "|NAME|use cipher algorithm NAME"
+msgstr "|NAME|�Ź楢�르�ꥺ�� NAME ���Ѥ���"
+
+#: g10/g10.c:297
+msgid "|NAME|use message digest algorithm NAME"
+msgstr "|NAME|��å��������󥢥르�ꥺ�� NAME ���Ѥ���"
+
+#: g10/g10.c:298
+msgid "|N|use compress algorithm N"
+msgstr "|NAME|���̥��르�ꥺ�� NAME ���Ѥ���"
+
+#: g10/g10.c:299
+msgid "throw keyid field of encrypted packets"
+msgstr "�Ź�ѥ��åȤθ� ID �ե�����ɤ����Ф���"
+
+#: g10/g10.c:300
+msgid "|NAME=VALUE|use this notation data"
+msgstr "|NAME=VALUE|��������ǡ������Ѥ���"
+
+#: g10/g10.c:303
+msgid ""
+"@\n"
+"(See the man page for a complete listing of all commands and options)\n"
+msgstr ""
+
+#: g10/g10.c:306
+msgid ""
+"@\n"
+"Examples:\n"
+"\n"
+" -se -r Bob [file] sign and encrypt for user Bob\n"
+" --clearsign [file] make a clear text signature\n"
+" --detach-sign [file] make a detached signature\n"
+" --list-keys [names] show keys\n"
+" --fingerprint [names] show fingerprints\n"
+msgstr ""
+"@\n"
+"��:\n"
+"\n"
+" -se -r Bob [file] �桼�� Bob �ؤν�̾�ȰŹ沽\n"
+" --clearsign [file] ���ꥢ��̾������\n"
+" --detach-sign [file] ʬΥ��̾������\n"
+" --list-keys [names] ����ɽ��\n"
+" --fingerprint [names] �����ɽ��\n"
+
+#: g10/g10.c:399
+msgid "Please report bugs to <[email protected]>.\n"
+msgstr "�Х��򸫤Ĥ����� <[email protected]> �ޤǥ�ݡ��Ȥ����äƲ�������\n"
+
+#: g10/g10.c:403
+msgid "Usage: gpg [options] [files] (-h for help)"
+msgstr "�Ȥ���: gpg [���ץ����] [�ե�����] (�إ�פ� -h)"
+
+#: g10/g10.c:406
+msgid ""
+"Syntax: gpg [options] [files]\n"
+"sign, check, encrypt or decrypt\n"
+"default operation depends on the input data\n"
+msgstr ""
+"��: gpg [options] [files]\n"
+"��̾�����ڡ��Ź沽���ޤ��� ����\n"
+"�ǥե���Ȥ�ư������ϥǡ����˰�¸\n"
+
+#: g10/g10.c:413
+msgid ""
+"\n"
+"Supported algorithms:\n"
+msgstr ""
+"\n"
+"���ݡ��Ȥ��Ƥ��륢�르�ꥺ��:\n"
+
+#: g10/g10.c:492
+msgid "usage: gpg [options] "
+msgstr "�Ȥ���: gpg [options] "
+
+#: g10/g10.c:545
+msgid "conflicting commands\n"
+msgstr "���ޥ�ɤξ���\n"
+
+#: g10/g10.c:687
+#, c-format
+msgid "NOTE: no default option file `%s'\n"
+msgstr "����: �ǥե���ȥ��ץ����ե����� `%s' ������ޤ���\n"
+
+#: g10/g10.c:691
+#, c-format
+msgid "option file `%s': %s\n"
+msgstr "���ץ����ե����� `%s': %s\n"
+
+#: g10/g10.c:698
+#, c-format
+msgid "reading options from `%s'\n"
+msgstr "`%s' ���饪�ץ������ɤ߹��ߤޤ�\n"
+
+#: g10/g10.c:885
+#, c-format
+msgid "%s is not a valid character set\n"
+msgstr "%s ��������ʸ�������ɤǤϤ���ޤ���\n"
+
+#: g10/g10.c:945 g10/g10.c:954
+#, c-format
+msgid "NOTE: %s is not for normal use!\n"
+msgstr "����: %s ���̾���Ѥ��ޤ���!\n"
+
+#: g10/g10.c:947
+#, c-format
+msgid "%s not allowed with %s!\n"
+msgstr "%s �� %s �ȶ����Ѥ��뤳�ȤϤǤ��ޤ���!\n"
+
+#: g10/g10.c:950
+#, c-format
+msgid "%s makes no sense with %s!\n"
+msgstr "%s �� %s �ȶ����Ѥ��Ƥ��̣������ޤ���!\n"
+
+#: g10/g10.c:969 g10/g10.c:981
+msgid "selected cipher algorithm is invalid\n"
+msgstr "���򤵤줿�Ź楢�르�ꥺ���̵���Ǥ�\n"
+
+#: g10/g10.c:975 g10/g10.c:987
+msgid "selected digest algorithm is invalid\n"
+msgstr "���򤵤줿���󥢥르�ꥺ���̵���Ǥ�\n"
+
+#: g10/g10.c:991
+msgid "the given policy URL is invalid\n"
+msgstr "Ϳ����줿�ݥꥷ�� URL ��̵���Ǥ�\n"
+
+#: g10/g10.c:994
+#, c-format
+msgid "compress algorithm must be in range %d..%d\n"
+msgstr "���̥��르�ꥺ��� %d..%d ���ϰϤǤʤ���Фʤ�ޤ���\n"
+
+#: g10/g10.c:996
+msgid "completes-needed must be greater than 0\n"
+msgstr "completes-needed �� 0 ����礭���ͤ�ɬ�פǤ�\n"
+
+#: g10/g10.c:998
+msgid "marginals-needed must be greater than 1\n"
+msgstr "marginals-needed �� 1 ����礭���ͤ�ɬ�פǤ�\n"
+
+#: g10/g10.c:1000
+msgid "max-cert-depth must be in range 1 to 255\n"
+msgstr "max-cert-depth �� 1 ���� 255 ���ϰϤǤʤ���Фʤ�ޤ���\n"
+
+#: g10/g10.c:1003
+msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
+msgstr "����: ñ��� S2K �⡼�� (0) �λ��Ѥˤ϶���ȿ�Ф��ޤ�\n"
+
+#: g10/g10.c:1007
+msgid "invalid S2K mode; must be 0, 1 or 3\n"
+msgstr "̵���� S2K �⡼�ɡ�0, 1 �ޤ��� 3 �Ǥʤ���Фʤ�ޤ���\n"
+
+#: g10/g10.c:1092
+#, c-format
+msgid "failed to initialize the TrustDB: %s\n"
+msgstr "���ѥǡ����١����ν�����˼��Ԥ��ޤ���: %s\n"
+
+#: g10/g10.c:1098
+msgid "--store [filename]"
+msgstr "--store [�ե�����̾]"
+
+#: g10/g10.c:1105
+msgid "--symmetric [filename]"
+msgstr "--symmetric [�ե�����̾]"
+
+#: g10/g10.c:1113
+msgid "--encrypt [filename]"
+msgstr "--encrypt [�ե�����̾]"
+
+#: g10/g10.c:1126
+msgid "--sign [filename]"
+msgstr "--sign [�ե�����̾]"
+
+#: g10/g10.c:1139
+msgid "--sign --encrypt [filename]"
+msgstr "--sign --encrypt [�ե�����̾]"
+
+#: g10/g10.c:1153
+msgid "--clearsign [filename]"
+msgstr "--clearsign [�ե�����̾]"
+
+#: g10/g10.c:1170
+msgid "--decrypt [filename]"
+msgstr "--decrypt [�ե�����̾]"
+
+#: g10/g10.c:1178
+msgid "--sign-key user-id"
+msgstr "--sign-key user-id"
+
+#: g10/g10.c:1186
+msgid "--lsign-key user-id"
+msgstr "--lsign-key user-id"
+
+#: g10/g10.c:1194
+msgid "--edit-key user-id [commands]"
+msgstr "--edit-key user-id [���ޥ��]"
+
+#: g10/g10.c:1210
+msgid "--delete-secret-key user-id"
+msgstr "--delete-secret-key user-id"
+
+#: g10/g10.c:1213
+msgid "--delete-key user-id"
+msgstr "--delete-key user-id"
+
+#: g10/encode.c:260 g10/g10.c:1250 g10/sign.c:373
+#, c-format
+msgid "can't open %s: %s\n"
+msgstr "%s �������ޤ���: %s\n"
+
+#: g10/g10.c:1265
+msgid "-k[v][v][v][c] [user-id] [keyring]"
+msgstr "-k[v][v][v][c] [user-id] [�����]"
+
+#: g10/g10.c:1331
+#, c-format
+msgid "dearmoring failed: %s\n"
+msgstr "���ý���˼���: %s\n"
+
+#: g10/g10.c:1339
+#, c-format
+msgid "enarmoring failed: %s\n"
+msgstr "���ò��˼���: %s\n"
+
+#: g10/g10.c:1407
+#, c-format
+msgid "invalid hash algorithm `%s'\n"
+msgstr "�ϥå��奢�르�ꥺ�� `%s' ��̵���Ǥ�\n"
+
+#: g10/g10.c:1488
+msgid "[filename]"
+msgstr "[�ե�����̾]"
+
+#: g10/g10.c:1492
+msgid "Go ahead and type your message ...\n"
+msgstr "���Ϥ��ޤ�����å������򥿥��פ��Ʋ����� ...\n"
+
+#: g10/decrypt.c:59 g10/g10.c:1495 g10/verify.c:68 g10/verify.c:113
+#, c-format
+msgid "can't open `%s'\n"
+msgstr "`%s' �������ޤ���\n"
+
+#: g10/g10.c:1665
+msgid ""
+"the first character of a notation name must be a letter or an underscore\n"
+msgstr "����̾����Ƭ��ʸ�����������������(_)�Ǥʤ���Фʤ�ޤ���\n"
+
+#: g10/g10.c:1671
+msgid ""
+"a notation name must have only letters, digits, dots or underscores and end "
+"with an '='\n"
+msgstr ""
+"����̾�ˤ�ʸ�����������ɥåȡ��������������(_)�Τߤ��Ѥ���'=' "
+"��ȼ��ʤ���Фʤ�ޤ���\n"
+
+#: g10/g10.c:1677
+msgid "dots in a notation name must be surrounded by other characters\n"
+msgstr "����̾�ΥɥåȤ�¾��ʸ���ǰϤޤ�ʤ���Фʤ�ޤ���\n"
+
+#: g10/g10.c:1685
+msgid "a notation value must not use any control characters\n"
+msgstr "����̾���ͤ�����ʸ�����Ѥ��ƤϤ����ޤ���\n"
+
+#: g10/armor.c:302
+#, c-format
+msgid "armor: %s\n"
+msgstr "����: %s\n"
+
+#: g10/armor.c:331
+msgid "invalid armor header: "
+msgstr "̵�������åإå�: "
+
+#: g10/armor.c:338
+msgid "armor header: "
+msgstr "���åإå�: "
+
+#: g10/armor.c:349
+msgid "invalid clearsig header\n"
+msgstr "̵���ʥ��ꥢ��̾�إå�\n"
+
+#: g10/armor.c:401
+msgid "nested clear text signatures\n"
+msgstr "�ͥ��Ȥ��줿���ꥢ��̾\n"
+
+#: g10/armor.c:525
+msgid "invalid dash escaped line: "
+msgstr "̵���ʥ��å���ǥ��������פ��줿��: "
+
+#: g10/armor.c:537
+msgid "unexpected armor:"
+msgstr "ͽ�����ʤ�����:"
+
+#: g10/armor.c:654
+#, c-format
+msgid "invalid radix64 character %02x skipped\n"
+msgstr "̵���� radix64 ʸ�� %02x �򥹥��åפ��ޤ�\n"
+
+#: g10/armor.c:697
+msgid "premature eof (no CRC)\n"
+msgstr "eof ���᤹���ޤ� (CRC ������ޤ���)\n"
+
+#: g10/armor.c:731
+msgid "premature eof (in CRC)\n"
+msgstr "eof ���᤹���ޤ� (CRC ����ˤ���ޤ�)\n"
+
+#: g10/armor.c:735
+msgid "malformed CRC\n"
+msgstr "CRC �ν񼰤�����������ޤ���\n"
+
+#: g10/armor.c:739
+#, c-format
+msgid "CRC error; %06lx - %06lx\n"
+msgstr "CRC ���顼; %06lx - %06lx\n"
+
+#: g10/armor.c:756
+msgid "premature eof (in Trailer)\n"
+msgstr "eof ���᤹���ޤ� (Trailer ����ˤ���ޤ�)\n"
+
+#: g10/armor.c:760
+msgid "error in trailer line\n"
+msgstr "Trailer �Ԥ˥��顼������ޤ�\n"
+
+#: g10/armor.c:912
+msgid "For info see http://www.gnupg.org"
+msgstr ""
+
+#: g10/armor.c:1033
+msgid "no valid OpenPGP data found.\n"
+msgstr "ͭ���� OpenPGP �ǡ��������Ĥ���ޤ���\n"
+
+#: g10/armor.c:1038
+#, c-format
+msgid "invalid armor: line longer than %d characters\n"
+msgstr "̵��������: �Ԥ�Ĺ���� %d ʸ����ۤ��Ƥ��ޤ�\n"
+
+#: g10/armor.c:1042
+msgid ""
+"quoted printable character in armor - probably a buggy MTA has been used\n"
+msgstr ""
+"���ä���� quoted printable ʸ��������ޤ��������餯�Х��Τ��� MTA "
+"�����Ѥ��줿�ΤǤ��礦\n"
+
+#. Translators: this shoud fit into 24 bytes to that the fingerprint
+#. * data is properly aligned with the user ID
+#: g10/pkclist.c:53
+msgid " Fingerprint:"
+msgstr " ����:"
+
+#: g10/pkclist.c:80
+msgid "Fingerprint:"
+msgstr "����:"
+
+#: g10/pkclist.c:116
+msgid "No reason specified"
+msgstr ""
+
+#: g10/pkclist.c:118
+#, fuzzy
+msgid "Key is superseeded"
+msgstr "�����ݸ��Ƥ��ޤ���\n"
+
+#: g10/pkclist.c:120
+#, fuzzy
+msgid "Key has been compromised"
+msgstr "���θ��ϻ����ԲĤ����ꤵ��Ƥ��ޤ�"
+
+#: g10/pkclist.c:122
+msgid "Key is no longer used"
+msgstr ""
+
+#: g10/pkclist.c:124
+msgid "User ID is no longer valid"
+msgstr ""
+
+#: g10/pkclist.c:128
+msgid "Reason for revocation: "
+msgstr ""
+
+#: g10/pkclist.c:145
+msgid "Revocation comment: "
+msgstr ""
+
+#. a string with valid answers
+#: g10/pkclist.c:303
+msgid "sSmMqQ"
+msgstr "sSmMqQ"
+
+#: g10/pkclist.c:307
+#, c-format
+msgid ""
+"No trust value assigned to %lu:\n"
+"%4u%c/%08lX %s \""
+msgstr ""
+"%lu �˿����٤����ꤵ��Ƥ��ޤ���:\n"
+"%4u%c/%08lX %s \""
+
+#: g10/pkclist.c:319
+msgid ""
+"Please decide how far you trust this user to correctly\n"
+"verify other users' keys (by looking at passports,\n"
+"checking fingerprints from different sources...)?\n"
+"\n"
+" 1 = Don't know\n"
+" 2 = I do NOT trust\n"
+" 3 = I trust marginally\n"
+" 4 = I trust fully\n"
+" s = please show me more information\n"
+msgstr ""
+"¾�Υ桼���θ������������ڤ��뤿��ˡ����Υ桼���ο����٤���Ʋ�����\n"
+"(�ѥ��ݡ��Ȥ򸫤��Ƥ��ä��ꡢ¾������������Ⱦȹ礷����...)?\n"
+"\n"
+" 1 = ̤��\n"
+" 2 = ���Ѥ��ʤ�\n"
+" 3 = �������ٿ��Ѥ���\n"
+" 4 = �����˿��Ѥ���\n"
+" s = ���ܤ�������򸫤�\n"
+
+#: g10/pkclist.c:328
+msgid " m = back to the main menu\n"
+msgstr " m = �ᥤ���˥塼�����\n"
+
+#: g10/pkclist.c:330
+msgid " q = quit\n"
+msgstr " q = ��λ\n"
+
+#: g10/pkclist.c:336
+msgid "Your decision? "
+msgstr "���ʤ��η����? "
+
+#: g10/pkclist.c:358
+msgid "Certificates leading to an ultimately trusted key:\n"
+msgstr "����Ū�˿��Ѥ������ؤξ�����:\n"
+
+#: g10/pkclist.c:429
+msgid ""
+"Could not find a valid trust path to the key. Let's see whether we\n"
+"can assign some missing owner trust values.\n"
+"\n"
+msgstr ""
+"���ؤ�ͭ���ʿ��ѤΥѥ������Ĥ���ޤ��󡣷礱�Ƥ���ͤο����٤�\n"
+"����Ǥ��ʤ����ɤ�����Ĵ�٤ޤ��礦��\n"
+"\n"
+
+#: g10/pkclist.c:435
+msgid ""
+"No path leading to one of our keys found.\n"
+"\n"
+msgstr ""
+"�桹�θ��ػ��ѥ�������ޤ���\n"
+"\n"
+
+#: g10/pkclist.c:437
+msgid ""
+"No certificates with undefined trust found.\n"
+"\n"
+msgstr ""
+"�����٤�̤����ξ�����Ϥ���ޤ���\n"
+"\n"
+
+#: g10/pkclist.c:439
+msgid ""
+"No trust values changed.\n"
+"\n"
+msgstr ""
+"�����٤��ѹ��Ϥ���ޤ���\n"
+"\n"
+
+#: g10/pkclist.c:457
+#, c-format
+msgid "key %08lX: key has been revoked!\n"
+msgstr "�� %08lX: �����˴��ѤߤǤ�!\n"
+
+#: g10/pkclist.c:464 g10/pkclist.c:476 g10/pkclist.c:598
+msgid "Use this key anyway? "
+msgstr "����Ǥ� ���θ���Ȥ��ޤ���? "
+
+#: g10/pkclist.c:469
+#, c-format
+msgid "key %08lX: subkey has been revoked!\n"
+msgstr "�� %08lX: �������˴��ѤߤǤ�!\n"
+
+#: g10/pkclist.c:512
+#, c-format
+msgid "%08lX: key has expired\n"
+msgstr "�� %08lX: ���ϴ����ڤ�Ǥ�!\n"
+
+#: g10/pkclist.c:518
+#, c-format
+msgid "%08lX: no info to calculate a trust probability\n"
+msgstr "%08lX: �����٤�׻�������󤬤���ޤ���\n"
+
+#: g10/pkclist.c:533
+#, c-format
+msgid "%08lX: We do NOT trust this key\n"
+msgstr "%08lX: ���θ��Ͽ��ѤǤ��ޤ���\n"
+
+#: g10/pkclist.c:539
+#, c-format
+msgid ""
+"%08lX: It is not sure that this key really belongs to the owner\n"
+"but it is accepted anyway\n"
+msgstr "%08lX: ���θ��ϼºݤ��ܿͤΤ�Τ��������Ǥ���������Ǥ��������ޤ�\n"
+
+#: g10/pkclist.c:545
+msgid "This key probably belongs to the owner\n"
+msgstr "���θ��Ϥ��֤��ܿͤΤ�ΤǤ�\n"
+
+#: g10/pkclist.c:550
+msgid "This key belongs to us\n"
+msgstr "���θ��ϲ桹�Τ�ΤǤ�\n"
+
+#: g10/pkclist.c:593
+msgid ""
+"It is NOT certain that the key belongs to its owner.\n"
+"If you *really* know what you are doing, you may answer\n"
+"the next question with yes\n"
+"\n"
+msgstr ""
+"���θ����ܿͤΤ�Τ��ɤ����ο��Ǥ��ޤ���\n"
+"������Ԥ����Ȥ� *�μ¤�* ���򤷤Ƥ��ʤ����ˤϡ�\n"
+"���μ���ˤ� no �������Ƥ���������\n"
+"\n"
+
+#: g10/pkclist.c:607 g10/pkclist.c:630
+msgid "WARNING: Using untrusted key!\n"
+msgstr "�ٹ�: ���ѤǤ��ʤ������Ѥ��Ƥ��ޤ�!\n"
+
+#: g10/pkclist.c:651
+msgid "WARNING: This key has been revoked by its owner!\n"
+msgstr "�ٹ�: ���θ����ܿͤˤ�ä��˴�����Ƥ��ޤ�!\n"
+
+#: g10/pkclist.c:652
+msgid " This could mean that the signature is forgery.\n"
+msgstr " ��̾�ϵ�ʪ���Ȼפ��ޤ���\n"
+
+#: g10/pkclist.c:657
+msgid "WARNING: This subkey has been revoked by its owner!\n"
+msgstr "�ٹ�: �����������ܿͤˤ�ä��˴�����Ƥ��ޤ�!\n"
+
+#: g10/pkclist.c:679
+msgid "Note: This key has expired!\n"
+msgstr "����: ���θ��ϴ����ڤ�Ǥ�!\n"
+
+#: g10/pkclist.c:687
+msgid "WARNING: This key is not certified with a trusted signature!\n"
+msgstr "�ٹ�: ���θ��Ͽ��ѤǤ����̾�ˤ�äƾ�������Ƥ��ޤ���!\n"
+
+#: g10/pkclist.c:689
+msgid ""
+" There is no indication that the signature belongs to the owner.\n"
+msgstr " ���ν�̾���ܿͤΤ�Τ��ɤ����θ��ڼ��ʤ�����ޤ���\n"
+
+#: g10/pkclist.c:706
+msgid "WARNING: We do NOT trust this key!\n"
+msgstr "�ٹ�: ���θ��Ͽ��ѤǤ��ޤ���!\n"
+
+#: g10/pkclist.c:707
+msgid " The signature is probably a FORGERY.\n"
+msgstr " ���ν�̾�Ϥ����餯 ��ʪ �Ǥ���\n"
+
+#: g10/pkclist.c:714
+msgid ""
+"WARNING: This key is not certified with sufficiently trusted signatures!\n"
+msgstr "�ٹ�: ���θ��Ͻ�ʬ�˿��ѤǤ����̾�ˤ�äƾ�������Ƥ��ޤ���!\n"
+
+#: g10/pkclist.c:717
+msgid " It is not certain that the signature belongs to the owner.\n"
+msgstr " ���ν�̾���ܿͤΤ�Τ��ɤ����ο��Ǥ��ޤ���\n"
+
+#: g10/pkclist.c:819 g10/pkclist.c:841 g10/pkclist.c:967 g10/pkclist.c:1012
+#, c-format
+msgid "%s: skipped: %s\n"
+msgstr "%s: �����å�: %s\n"
+
+#: g10/pkclist.c:827 g10/pkclist.c:994
+#, c-format
+msgid "%s: skipped: public key already present\n"
+msgstr "%s: �����å�: �������ϴ��ˤ���ޤ�\n"
+
+#: g10/pkclist.c:854
+msgid ""
+"You did not specify a user ID. (you may use \"-r\")\n"
+"\n"
+msgstr "�桼�� ID �����ꤵ��Ƥ��ޤ���(\"-r\" ���Ѥ����Ǥ��礦)��\n"
+
+#: g10/pkclist.c:864
+msgid "Enter the user ID: "
+msgstr "�桼�� ID ������: "
+
+#: g10/pkclist.c:876
+msgid "No such user ID.\n"
+msgstr "���Υ桼�� ID �Ϥ���ޤ���\n"
+
+#: g10/pkclist.c:881
+msgid "skipped: public key already set as default recipient\n"
+msgstr "�����å�: �������ϥǥե���Ȥμ����Ԥ����ꤵ��Ƥ��ޤ�\n"
+
+#: g10/pkclist.c:904
+msgid "Public key is disabled.\n"
+msgstr "��������̵�뤷�ޤ�����\n"
+
+#: g10/pkclist.c:911
+msgid "skipped: public key already set with --encrypt-to\n"
+msgstr "�����å�: �������ϴ��� --encrypt-to �ˤ����ꤵ��Ƥ��ޤ�\n"
+
+#: g10/pkclist.c:942
+#, c-format
+msgid "unknown default recipient `%s'\n"
+msgstr "�ǥե���Ȥμ����� `%s' �����Ĥ���ޤ���\n"
+
+#: g10/pkclist.c:975
+#, c-format
+msgid "%s: error checking key: %s\n"
+msgstr "%s: ���Υ��顼: %s\n"
+
+#: g10/pkclist.c:980
+#, c-format
+msgid "%s: skipped: public key is disabled\n"
+msgstr "%s: �����å�: ��������̵�뤷�ޤ���\n"
+
+#: g10/pkclist.c:1018
+msgid "no valid addressees\n"
+msgstr "ͭ���ʥ��ɥ쥹������ޤ���\n"
+
+#: g10/keygen.c:175
+msgid "writing self signature\n"
+msgstr "���ʽ�̾��񤭹��ߤޤ�\n"
+
+#: g10/keygen.c:213
+msgid "writing key binding signature\n"
+msgstr "��̾���б����븰��񤭹��ߤޤ�\n"
+
+#: g10/keygen.c:261 g10/keygen.c:345
+#, fuzzy, c-format
+msgid "keysize invalid; using %u bits\n"
+msgstr "�׵ᤵ�줿���������� %u �ӥå�\n"
+
+#: g10/keygen.c:266 g10/keygen.c:350
+#, fuzzy, c-format
+msgid "keysize rounded up to %u bits\n"
+msgstr "%u �ӥåȤ˴ݤ�ޤ�\n"
+
+#: g10/keygen.c:456
+msgid "Please select what kind of key you want:\n"
+msgstr "���μ�������򤷤Ʋ�����:\n"
+
+#: g10/keygen.c:458
+#, c-format
+msgid " (%d) DSA and ElGamal (default)\n"
+msgstr " (%d) DSA �� ElGamal (�ǥե����)\n"
+
+#: g10/keygen.c:459
+#, c-format
+msgid " (%d) DSA (sign only)\n"
+msgstr " (%d) DSA (��̾�Τ�)\n"
+
+#: g10/keygen.c:461
+#, c-format
+msgid " (%d) ElGamal (encrypt only)\n"
+msgstr " (%d) ElGamal (�Ź沽�Τ�)\n"
+
+#: g10/keygen.c:462
+#, c-format
+msgid " (%d) ElGamal (sign and encrypt)\n"
+msgstr " (%d) ElGamal (��̾�ȰŹ沽)\n"
+
+#: g10/keygen.c:465
+msgid "Your selection? "
+msgstr "�ɤ�����Ӥޤ���? "
+
+#: g10/keygen.c:475
+msgid "Do you really want to create a sign and encrypt key? "
+msgstr "�����˽�̾�ȰŹ��Ѥθ�����ޤ���? "
+
+#: g10/keygen.c:489
+msgid "Invalid selection.\n"
+msgstr "̵��������Ǥ���\n"
+
+#: g10/keygen.c:501
+#, c-format
+msgid ""
+"About to generate a new %s keypair.\n"
+" minimum keysize is 768 bits\n"
+" default keysize is 1024 bits\n"
+" highest suggested keysize is 2048 bits\n"
+msgstr ""
+"������ %s ���ڥ��������ˤĤ���\n"
+" �Ǿ��θ��������� is 768 �ӥå�\n"
+" �ǥե���Ȥθ��������� 1024 �ӥå�\n"
+" ����θ��������� 2048 �ӥå�\n"
+
+#: g10/keygen.c:508
+msgid "What keysize do you want? (1024) "
+msgstr "�ɤθ������������򤷤ޤ���? (1024) "
+
+#: g10/keygen.c:513
+msgid "DSA only allows keysizes from 512 to 1024\n"
+msgstr "DSA �θ��������� 512 ���� 1024 �ޤǤǤ�\n"
+
+#: g10/keygen.c:515
+msgid "keysize too small; 768 is smallest value allowed.\n"
+msgstr "�������������������ޤ�; 768 ���Ǿ��Ǥ���\n"
+
+#. It is ridiculous and an annoyance to use larger key sizes!
+#. * GnuPG can handle much larger sizes; but it takes an eternity
+#. * to create such a key (but less than the time the Sirius
+#. * Computer Corporation needs to process one of the usual
+#. * complaints) and {de,en}cryption although needs some time.
+#. * So, before you complain about this limitation, I suggest that
+#. * you start a discussion with Marvin about this theme and then
+#. * do whatever you want.
+#: g10/keygen.c:525
+#, c-format
+msgid "keysize too large; %d is largest value allowed.\n"
+msgstr "�����������礭�����ޤ�; %d ������Ǥ���\n"
+
+#: g10/keygen.c:530
+msgid ""
+"Keysizes larger than 2048 are not suggested because\n"
+"computations take REALLY long!\n"
+msgstr ""
+"2048 �ʾ�θ��������ϡ��׻����֤� ���� Ĺ���ʤ�Τ�\n"
+"�侩���ޤ���!\n"
+
+#: g10/keygen.c:533
+msgid "Are you sure that you want this keysize? "
+msgstr "���θ����������������ɤ��Ǥ���? "
+
+#: g10/keygen.c:534
+msgid ""
+"Okay, but keep in mind that your monitor and keyboard radiation is also very "
+"vulnerable to attacks!\n"
+msgstr ""
+"�狼��ޤ����������������ʤ��Υ�˥����䥭���ܡ������Ϥϡ�������Ф��� "
+"�������餱�Ǥ��뤳�Ȥ򿴤�α��Ƥ����Ʋ�����!\n"
+
+#: g10/keygen.c:542
+msgid "Do you really need such a large keysize? "
+msgstr "���ʤ��������ˤ��Τ褦��Ĺ������ɬ�פǤ���? "
+
+#: g10/keygen.c:548
+#, c-format
+msgid "Requested keysize is %u bits\n"
+msgstr "�׵ᤵ�줿���������� %u �ӥå�\n"
+
+#: g10/keygen.c:551 g10/keygen.c:555
+#, c-format
+msgid "rounded up to %u bits\n"
+msgstr "%u �ӥåȤ˴ݤ�ޤ�\n"
+
+#: g10/keygen.c:603
+msgid ""
+"Please specify how long the key should be valid.\n"
+" 0 = key does not expire\n"
+" <n> = key expires in n days\n"
+" <n>w = key expires in n weeks\n"
+" <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"
+
+#: g10/keygen.c:618
+msgid "Key is valid for? (0) "
+msgstr "����ͭ������? (0)"
+
+#: g10/keygen.c:623
+msgid "invalid value\n"
+msgstr "̵������\n"
+
+#: g10/keygen.c:628
+msgid "Key does not expire at all\n"
+msgstr "����̵���¤Ǥ�\n"
+
+#. print the date when the key expires
+#: g10/keygen.c:634
+#, c-format
+msgid "Key expires at %s\n"
+msgstr "���� %s �ˤƴ����ڤ�ˤʤ�ޤ�\n"
+
+#: g10/keygen.c:637
+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"
+
+#: g10/keygen.c:642
+msgid "Is this correct (y/n)? "
+msgstr "������ɤ��Ǥ��� (y/n)? "
+
+#: g10/keygen.c:685
+msgid ""
+"\n"
+"You need a User-ID to identify your key; the software constructs the user "
+"id\n"
+"from Real Name, Comment and Email Address in this form:\n"
+" \"Heinrich Heine (Der Dichter) <[email protected]>\"\n"
+"\n"
+msgstr ""
+"\n"
+"���ʤ��θ����̤��뤿��� �桼�� ID ��ɬ�פǤ���\n"
+"���Υ��եȤ���̾�����ᡢ�Żҥ᡼�륢�ɥ쥹���顢���ν񼰤ǥ桼�� ID "
+"��������ޤ�:\n"
+" \"Heinrich Heine (Der Dichter) <[email protected]>\"\n"
+"\n"
+
+#: g10/keygen.c:697
+msgid "Real name: "
+msgstr "��̾: "
+
+#: g10/keygen.c:701
+msgid "Invalid character in name\n"
+msgstr "̾����̵����ʸ��������ޤ�\n"
+
+#: g10/keygen.c:703
+msgid "Name may not start with a digit\n"
+msgstr "̾���Ͽ����ǻϤޤäƤϤ����ޤ���\n"
+
+#: g10/keygen.c:705
+msgid "Name must be at least 5 characters long\n"
+msgstr "̾���� 5 ʸ���ʾ�Ǥʤ���Фʤ�ޤ���\n"
+
+#: g10/keygen.c:713
+msgid "Email address: "
+msgstr "�Żҥ᡼�륢�ɥ쥹: "
+
+#: g10/keygen.c:724
+msgid "Not a valid email address\n"
+msgstr "ͭ�����Żҥ᡼�륢�ɥ쥹�ǤϤ���ޤ���\n"
+
+#: g10/keygen.c:732
+msgid "Comment: "
+msgstr "����: "
+
+#: g10/keygen.c:738
+msgid "Invalid character in comment\n"
+msgstr "�����̵����ʸ��������ޤ�\n"
+
+#: g10/keygen.c:761
+#, c-format
+msgid "You are using the `%s' character set.\n"
+msgstr "���ʤ���ʸ�������� `%s' ��ȤäƤ��ޤ���\n"
+
+#: g10/keygen.c:767
+#, c-format
+msgid ""
+"You selected this USER-ID:\n"
+" \"%s\"\n"
+"\n"
+msgstr ""
+"���Υ桼�� ID �����ꤷ�ޤ���:\n"
+" \"%s\"\n"
+"\n"
+
+#: g10/keygen.c:771
+msgid "Please don't put the email address into the real name or the comment\n"
+msgstr ""
+
+#: g10/keygen.c:776
+msgid "NnCcEeOoQq"
+msgstr "NnCcEeOoQq"
+
+#: g10/keygen.c:786
+#, fuzzy
+msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
+msgstr "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
+
+#: g10/keygen.c:787
+msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
+msgstr "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
+
+#: g10/keygen.c:806
+msgid "Please correct the error first\n"
+msgstr ""
+
+#: g10/keygen.c:844
+msgid ""
+"You need a Passphrase to protect your secret key.\n"
+"\n"
+msgstr ""
+"��̩�����ݸ�뤿��˥ѥ��ե졼����ɬ�פǤ���\n"
+"\n"
+
+#: g10/keyedit.c:468 g10/keygen.c:852
+msgid "passphrase not correctly repeated; try again.\n"
+msgstr "�ѥ��ե졼�����ۤʤ�ޤ����⤦�������ꤷ�Ʋ�������\n"
+
+#: g10/keygen.c:858
+msgid ""
+"You don't want a passphrase - this is probably a *bad* idea!\n"
+"I will do it anyway. You can change your passphrase at any time,\n"
+"using this program with the option \"--edit-key\".\n"
+"\n"
+msgstr ""
+"�ѥ��ե졼������ɬ�פʤ褦�Ǥ���������ϰ����ͤ��Ǥ�!\n"
+"³�Ԥ��ޤ����ѥ��ե졼���ϡ����Υץ������� \"--edit-key\" \n"
+"���ץ����ˤ�äơ����ĤǤ��ѹ��Ǥ��ޤ���\n"
+"\n"
+
+#: g10/keygen.c:879
+msgid ""
+"We need to generate a lot of random bytes. It is a good idea to perform\n"
+"some other action (type on the keyboard, move the mouse, utilize the\n"
+"disks) during the prime generation; this gives the random number\n"
+"generator a better chance to gain enough entropy.\n"
+msgstr ""
+"������Ĺ��������������ޤ��������ܡ��ɤ��ǤĤȤ����ޥ�����ư�����Ȥ���\n"
+"�ǥ������˥�����������ʤɤ�¾�ι�ư��Ʊ���˹Ԥ��ȡ�����������֤ˤ�\n"
+"�𻨤����礭���ɤ�������������䤹���ʤ�ޤ��Τǡ������ᤷ�ޤ���\n"
+
+#: g10/keygen.c:1325
+msgid "DSA keypair will have 1024 bits.\n"
+msgstr "DSA ���ڥ��� 1024 �ӥåȤˤʤ�ޤ�\n"
+
+#: g10/keygen.c:1368
+msgid "Key generation canceled.\n"
+msgstr "������������ߤ���ޤ�����\n"
+
+#: g10/keygen.c:1465
+#, fuzzy, c-format
+msgid "writing public key to `%s'\n"
+msgstr "`%s' �ؤθ����������񤭹��ߤޤ�\n"
+
+#: g10/keygen.c:1466
+#, fuzzy, c-format
+msgid "writing secret key to `%s'\n"
+msgstr "`%s' �ؤ���̩�������񤭹��ߤޤ�\n"
+
+#: g10/keygen.c:1562
+msgid "public and secret key created and signed.\n"
+msgstr "����������̩�����������졢��̾����ޤ�����\n"
+
+#: g10/keygen.c:1567
+msgid ""
+"Note that this key cannot be used for encryption. You may want to use\n"
+"the command \"--edit-key\" to generate a secondary key for this purpose.\n"
+msgstr ""
+"���θ��ϰŹ沽�ˤϻ��ѤǤ��ʤ����Ȥ����դ��Ƥ����������Ź沽��Ԥ��ˤϡ�\n"
+"\"--edit-key\" ���ޥ�ɤ��Ѥ���������������Ƥ���������\n"
+
+#: g10/keygen.c:1584 g10/keygen.c:1685
+#, c-format
+msgid "Key generation failed: %s\n"
+msgstr "���κ����˼���: %s\n"
+
+#: g10/keygen.c:1628 g10/sig-check.c:318 g10/sign.c:111
+#, c-format
+msgid ""
+"key has been created %lu second in future (time warp or clock problem)\n"
+msgstr "���� %lu ��̤��˺�������ޤ��� (����ι�Ԥ����פΤ��뤤�Ǥ��礦)\n"
+
+#: g10/keygen.c:1630 g10/sig-check.c:320 g10/sign.c:113
+#, c-format
+msgid ""
+"key has been created %lu seconds in future (time warp or clock problem)\n"
+msgstr "���� %lu ��̤��˺�������ޤ��� (����ι�Ԥ����פΤ��뤤�Ǥ��礦)\n"
+
+#: g10/keygen.c:1663
+msgid "Really create? "
+msgstr "�����˺������ޤ���? "
+
+#: g10/encode.c:91 g10/openfile.c:168 g10/openfile.c:277 g10/tdbio.c:454
+#: g10/tdbio.c:515
+#, c-format
+msgid "%s: can't open: %s\n"
+msgstr "%s: �����ޤ���: %s\n"
+
+#: g10/encode.c:113
+#, c-format
+msgid "error creating passphrase: %s\n"
+msgstr "�ѥ��ե졼���������˼���: %s\n"
+
+#: g10/encode.c:171 g10/encode.c:319
+#, c-format
+msgid "%s: WARNING: empty file\n"
+msgstr "%s: �ٹ�: ���Υե�����Ǥ�\n"
+
+#: g10/encode.c:266
+#, c-format
+msgid "reading from `%s'\n"
+msgstr "`%s' �����ɤ߹��ߤޤ�\n"
+
+#: g10/encode.c:483
+#, c-format
+msgid "%s/%s encrypted for: %s\n"
+msgstr "%s/%s �Ź沽 ������: %s\n"
+
+#: g10/export.c:153
+#, c-format
+msgid "%s: user not found: %s\n"
+msgstr "%s: �桼�������Ĥ���ޤ���: %s\n"
+
+#: g10/export.c:162
+#, c-format
+msgid "certificate read problem: %s\n"
+msgstr "��������ɤ߹��ߤ˼���: %s\n"
+
+#: g10/export.c:171
+#, c-format
+msgid "key %08lX: not a rfc2440 key - skipped\n"
+msgstr "�� %08lX: rfc2440 �θ��ǤϤ���ޤ��� - �����åפ��ޤ�\n"
+
+#: g10/export.c:182
+#, fuzzy, c-format
+msgid "key %08lX: not protected - skipped\n"
+msgstr "�� %08lX: rfc2440 �θ��ǤϤ���ޤ��� - �����åפ��ޤ�\n"
+
+#: g10/export.c:232
+msgid "WARNING: nothing exported\n"
+msgstr "�ٹ�: ����񤭽Ф��Ƥ��ޤ���\n"
+
+#: g10/getkey.c:211
+msgid "too many entries in pk cache - disabled\n"
+msgstr "pk ����å���Υ���ȥ꡼��¿�����ޤ� - ̵��\n"
+
+#: g10/getkey.c:350
+msgid "too many entries in unk cache - disabled\n"
+msgstr "unk ����å���Υ���ȥ꡼��¿�����ޤ� - ̵��\n"
+
+#: g10/getkey.c:1308 g10/getkey.c:1347
+msgid "RSA key cannot be used in this version\n"
+msgstr "���ΥС������Ǥ� RSA �����ϻȤ��ޤ���\n"
+
+#: g10/getkey.c:1310 g10/getkey.c:1349
+msgid "No key for user ID\n"
+msgstr "�桼�� ID �θ�������ޤ���\n"
+
+#: g10/getkey.c:1388 g10/getkey.c:1428
+msgid "No user ID for key\n"
+msgstr "���Υ桼�� ID ������ޤ���\n"
+
+#: g10/getkey.c:1642 g10/getkey.c:1698
+#, c-format
+msgid "using secondary key %08lX instead of primary key %08lX\n"
+msgstr "���� %08lX ����Ѥ��ޤ� - �縰 %08lX ������\n"
+
+#: g10/getkey.c:2017
+#, fuzzy
+msgid "[User id not found]"
+msgstr "%s: �桼�������Ĥ���ޤ���\n"
+
+#: g10/import.c:181
+#, c-format
+msgid "skipping block of type %d\n"
+msgstr "������ %d �Υ֥��å��򥹥��åפ��ޤ�\n"
+
+#: g10/import.c:188 g10/trustdb.c:1740 g10/trustdb.c:1781
+#, c-format
+msgid "%lu keys so far processed\n"
+msgstr "%lu ���ޤǽ���\n"
+
+#: g10/import.c:193
+#, c-format
+msgid "error reading `%s': %s\n"
+msgstr "`%s' ���ɤ߹��ߤ˼���: %s\n"
+
+#: g10/import.c:203
+#, c-format
+msgid "Total number processed: %lu\n"
+msgstr "��������: %lu\n"
+
+#: g10/import.c:205
+#, c-format
+msgid " w/o user IDs: %lu\n"
+msgstr " �桼�� ID �ʤ�: %lu\n"
+
+#: g10/import.c:207
+#, c-format
+msgid " imported: %lu"
+msgstr " �ɤ߹���: %lu"
+
+#: g10/import.c:213
+#, c-format
+msgid " unchanged: %lu\n"
+msgstr " �ѹ��ʤ�: %lu\n"
+
+#: g10/import.c:215
+#, c-format
+msgid " new user IDs: %lu\n"
+msgstr " �����ʥ桼�� ID: %lu\n"
+
+#: g10/import.c:217
+#, c-format
+msgid " new subkeys: %lu\n"
+msgstr " ����������: %lu\n"
+
+#: g10/import.c:219
+#, c-format
+msgid " new signatures: %lu\n"
+msgstr " �����ʽ�̾: %lu\n"
+
+#: g10/import.c:221
+#, c-format
+msgid " new key revocations: %lu\n"
+msgstr " �����ʸ����˴�: %lu\n"
+
+#: g10/import.c:223
+#, c-format
+msgid " secret keys read: %lu\n"
+msgstr " ��̩�����ɤ߽Ф�: %lu\n"
+
+#: g10/import.c:225
+#, c-format
+msgid " secret keys imported: %lu\n"
+msgstr " ��̩�����ɤ߹���: %lu\n"
+
+#: g10/import.c:227
+#, c-format
+msgid " secret keys unchanged: %lu\n"
+msgstr " �ѹ���̵����̩��: %lu\n"
+
+#: g10/import.c:386 g10/import.c:578
+#, c-format
+msgid "key %08lX: no user ID\n"
+msgstr "�� %08lX: �桼�� ID ������ޤ���\n"
+
+#: g10/import.c:400
+#, c-format
+msgid "key %08lX: no valid user IDs\n"
+msgstr "�� %08lX: ���ѤǤ���桼�� ID ������ޤ���\n"
+
+#: g10/import.c:402
+msgid "this may be caused by a missing self-signature\n"
+msgstr "���ʽ�̾������Ƥ��ʤ�����Ǥ��礦\n"
+
+#: g10/import.c:413 g10/import.c:645
+#, c-format
+msgid "key %08lX: public key not found: %s\n"
+msgstr "�� %08lX: �����������Ĥ���ޤ���: %s\n"
+
+#: g10/import.c:419
+msgid "no default public keyring\n"
+msgstr "�ǥե���Ȥθ�������󥰤�����ޤ���\n"
+
+#: g10/import.c:423 g10/openfile.c:220 g10/sign.c:275 g10/sign.c:587
+#, c-format
+msgid "writing to `%s'\n"
+msgstr "`%s' �ؤν񤭽Ф�\n"
+
+#: g10/import.c:426 g10/import.c:484 g10/import.c:593 g10/import.c:694
+#, c-format
+msgid "can't lock keyring `%s': %s\n"
+msgstr "����� `%s' �Υ��å����Ǥ��ޤ���: %s\n"
+
+#: g10/import.c:429 g10/import.c:487 g10/import.c:596 g10/import.c:697
+#, c-format
+msgid "error writing keyring `%s': %s\n"
+msgstr "����� `%s' �ν񤭹��ߤ˼���: %s\n"
+
+#: g10/import.c:434
+#, c-format
+msgid "key %08lX: public key imported\n"
+msgstr "�� %08lX: ���������ɤ߹��ߤޤ���\n"
+
+#: g10/import.c:451
+#, c-format
+msgid "key %08lX: doesn't match our copy\n"
+msgstr "�� %08lX: �桹����ͭ���븰�Ȱۤʤ�ޤ�\n"
+
+#: g10/import.c:460 g10/import.c:653
+#, c-format
+msgid "key %08lX: can't locate original keyblock: %s\n"
+msgstr "�� %08lX: ���ꥸ�ʥ�θ��֥��å��˰��֤Ǥ��ޤ���: %s\n"
+
+#: g10/import.c:466 g10/import.c:659
+#, c-format
+msgid "key %08lX: can't read original keyblock: %s\n"
+msgstr "�� %08lX: ���ꥸ�ʥ�θ��֥��å����ɤ�ޤ���: %s\n"
+
+#: g10/import.c:493
+#, c-format
+msgid "key %08lX: 1 new user ID\n"
+msgstr "�� %08lX: �����ʥ桼�� ID �� 1 ��\n"
+
+#: g10/import.c:496
+#, c-format
+msgid "key %08lX: %d new user IDs\n"
+msgstr "�� %08lX: �����ʥ桼�� ID �� %d ��\n"
+
+#: g10/import.c:499
+#, c-format
+msgid "key %08lX: 1 new signature\n"
+msgstr "�� %08lX: �����ʽ�̾�� 1 ��\n"
+
+#: g10/import.c:502
+#, c-format
+msgid "key %08lX: %d new signatures\n"
+msgstr "�� %08lX: �����ʽ�̾�� %d ��\n"
+
+#: g10/import.c:505
+#, c-format
+msgid "key %08lX: 1 new subkey\n"
+msgstr "�� %08lX: ������������ 1 ��\n"
+
+#: g10/import.c:508
+#, c-format
+msgid "key %08lX: %d new subkeys\n"
+msgstr "�� %08lX: ������������ %d ��\n"
+
+#: g10/import.c:518
+#, c-format
+msgid "key %08lX: not changed\n"
+msgstr "�� %08lX: �ѹ��ʤ�\n"
+
+#: g10/import.c:601
+#, c-format
+msgid "key %08lX: secret key imported\n"
+msgstr "�� %08lX: ��̩�����ɤ߹��ߤޤ���\n"
+
+#. we can't merge secret keys
+#: g10/import.c:605
+#, c-format
+msgid "key %08lX: already in secret keyring\n"
+msgstr "�� %08lX: ������̩����󥰤ˤ���ޤ�\n"
+
+#: g10/import.c:610
+#, c-format
+msgid "key %08lX: secret key not found: %s\n"
+msgstr "�� %08lX: ��̩�������Ĥ���ޤ���: %s\n"
+
+#: g10/import.c:639
+#, c-format
+msgid "key %08lX: no public key - can't apply revocation certificate\n"
+msgstr "�� %08lX: ������������ޤ��� - �˴��������Ŭ�Ѥ��Ǥ��ޤ���\n"
+
+#: g10/import.c:670
+#, c-format
+msgid "key %08lX: invalid revocation certificate: %s - rejected\n"
+msgstr "�� %08lX: ̵�����˴�������: %s - ���ݤ��ޤ���\n"
+
+#: g10/import.c:702
+#, c-format
+msgid "key %08lX: revocation certificate imported\n"
+msgstr "�� %08lX: �˴���������ɤ߹��ߤޤ���\n"
+
+#: g10/import.c:744
+#, c-format
+msgid "key %08lX: no user ID for signature\n"
+msgstr "�� %08lX: ��̾���б�����桼�� ID ������ޤ���\n"
+
+#: g10/import.c:751 g10/import.c:775
+#, c-format
+msgid "key %08lX: unsupported public key algorithm\n"
+msgstr "�� %08lX: ���ݡ��Ȥ��Ƥ��ʤ����������르�ꥺ��Ǥ�\n"
+
+#: g10/import.c:752
+#, c-format
+msgid "key %08lX: invalid self-signature\n"
+msgstr "�� %08lX: ���ʽ�̾��̵���Ǥ�\n"
+
+#: g10/import.c:767
+#, c-format
+msgid "key %08lX: no subkey for key binding\n"
+msgstr "�� %08lX: �����б���������������ޤ���\n"
+
+#: g10/import.c:776
+#, c-format
+msgid "key %08lX: invalid subkey binding\n"
+msgstr "�� %08lX: ̵�����������б��Ǥ�\n"
+
+#: g10/import.c:803
+#, c-format
+msgid "key %08lX: accepted non self-signed user ID '"
+msgstr "�� %08lX: �������줿���ʽ�̾����Ƥ��ʤ��桼�� ID '"
+
+#: g10/import.c:832
+#, c-format
+msgid "key %08lX: skipped user ID '"
+msgstr "�� %08lX: �����åפ����桼�� ID '"
+
+#: g10/import.c:855
+#, c-format
+msgid "key %08lX: skipped subkey\n"
+msgstr "�� %08lX: �����åפ�������\n"
+
+#. here we violate the rfc a bit by still allowing
+#. * to import non-exportable signature when we have the
+#. * the secret key used to create this signature - it
+#. * seems that this makes sense
+#: g10/import.c:880
+#, c-format
+msgid "key %08lX: non exportable signature (class %02x) - skipped\n"
+msgstr "�� %08lX: �񤭽Ф��ԲĤʽ�̾ (class %02x) - �����å�\n"
+
+#: g10/import.c:889
+#, c-format
+msgid "key %08lX: revocation certificate at wrong place - skipped\n"
+msgstr "�� %08lX: �˴������񤬴ְ�ä����ꤵ��Ƥ��ޤ� - �����å�\n"
+
+#: g10/import.c:897
+#, c-format
+msgid "key %08lX: invalid revocation certificate: %s - skipped\n"
+msgstr "�� %08lX: ̵�����˴�������: %s - �����å�\n"
+
+#: g10/import.c:997
+#, c-format
+msgid "key %08lX: duplicated user ID detected - merged\n"
+msgstr "�� %08lX: ��ʣ�����桼�� ID �θ��� - �ɲ�\n"
+
+#: g10/import.c:1048
+#, c-format
+msgid "key %08lX: revocation certificate added\n"
+msgstr "�� %08lX: �˴���������ɲ�\n"
+
+#: g10/import.c:1162 g10/import.c:1215
+#, c-format
+msgid "key %08lX: our copy has no self-signature\n"
+msgstr "�� %08lX: �桹�Υ��ԡ��ˤϼ��ʽ�̾������ޤ���\n"
+
+#: g10/delkey.c:64 g10/keyedit.c:94
+#, c-format
+msgid "%s: user not found\n"
+msgstr "%s: �桼�������Ĥ���ޤ���\n"
+
+#: g10/keyedit.c:155
+msgid "[revocation]"
+msgstr "[�˴�]"
+
+#: g10/keyedit.c:156
+msgid "[self-signature]"
+msgstr "[���ʽ�̾]"
+
+#: g10/keyedit.c:220
+msgid "1 bad signature\n"
+msgstr "̵���ʽ�̾ 1 ��\n"
+
+#: g10/keyedit.c:222
+#, c-format
+msgid "%d bad signatures\n"
+msgstr "̵���ʽ�̾ %d ��\n"
+
+#: g10/keyedit.c:224
+msgid "1 signature not checked due to a missing key\n"
+msgstr "����̵���Τ� 1 �Ĥν�̾�ϸ��ڤǤ��ޤ���\n"
+
+#: g10/keyedit.c:226
+#, c-format
+msgid "%d signatures not checked due to missing keys\n"
+msgstr "����̵���Τ� %d �Ĥν�̾�ϸ��ڤǤ��ޤ���\n"
+
+#: g10/keyedit.c:228
+msgid "1 signature not checked due to an error\n"
+msgstr "����̵���Τ� 1 �Ĥν�̾�ϸ��ڤǤ��ޤ���\n"
+
+#: g10/keyedit.c:230
+#, c-format
+msgid "%d signatures not checked due to errors\n"
+msgstr "%d �Ĥν�̾�ϥ��顼�ˤ�긡�ڤ���ޤ���\n"
+
+#: g10/keyedit.c:232
+msgid "1 user ID without valid self-signature detected\n"
+msgstr "ͭ���ʼ��ʽ�̾��̵���桼�� ID �� 1 �Ĥ���ޤ�\n"
+
+#: g10/keyedit.c:234
+#, c-format
+msgid "%d user IDs without valid self-signatures detected\n"
+msgstr "ͭ���ʼ��ʽ�̾��̵���桼�� ID �� %d �Ĥ���ޤ�\n"
+
+#. Fixme: see whether there is a revocation in which
+#. * case we should allow to sign it again.
+#: g10/keyedit.c:316
+#, c-format
+msgid "Already signed by key %08lX\n"
+msgstr "�� %08lX �ˤ�äƴ��˽�̾����Ƥ��ޤ�\n"
+
+#: g10/keyedit.c:324
+#, c-format
+msgid "Nothing to sign with key %08lX\n"
+msgstr "�� %08lX �ˤ�äƽ�̾�����ΤϤ���ޤ���\n"
+
+#: g10/keyedit.c:333
+msgid ""
+"Are you really sure that you want to sign this key\n"
+"with your key: \""
+msgstr "������ ���θ��ˤ��ʤ��θ��ǽ�̾�����ɤ��Ǥ���: \""
+
+#: g10/keyedit.c:342
+msgid ""
+"The signature will be marked as non-exportable.\n"
+"\n"
+msgstr ""
+"��̾�Ͻ񤭽Ф��ԲĤ����ꤵ��ޤ���\n"
+"\n"
+
+#: g10/keyedit.c:347
+msgid "Really sign? "
+msgstr "�����˽�̾���ޤ���? "
+
+#: g10/keyedit.c:373 g10/keyedit.c:1869 g10/keyedit.c:1931 g10/sign.c:135
+#, c-format
+msgid "signing failed: %s\n"
+msgstr "��̾�˼��Ԥ��ޤ���: %s\n"
+
+#: g10/keyedit.c:427
+msgid "This key is not protected.\n"
+msgstr "���θ����ݸ��Ƥ��ޤ���\n"
+
+#: g10/keyedit.c:431
+#, fuzzy
+msgid "Secret parts of primary key are not available.\n"
+msgstr "��̩��������ޤ���"
+
+#: g10/keyedit.c:435
+msgid "Key is protected.\n"
+msgstr "�����ݸ��Ƥ��ޤ���\n"
+
+#: g10/keyedit.c:455
+#, c-format
+msgid "Can't edit this key: %s\n"
+msgstr "���θ����Խ����뤳�ȤϤǤ��ޤ���: %s\n"
+
+#: g10/keyedit.c:460
+msgid ""
+"Enter the new passphrase for this secret key.\n"
+"\n"
+msgstr ""
+"������̩�����Ф��뿷�����ѥ��ե졼�������Ϥ��Ʋ�������\n"
+"\n"
+
+#: g10/keyedit.c:472
+msgid ""
+"You don't want a passphrase - this is probably a *bad* idea!\n"
+"\n"
+msgstr ""
+"�ѥ��ե졼������ɬ�פʤ褦�Ǥ���������ϰ����ͤ��Ǥ�!\n"
+"\n"
+
+#: g10/keyedit.c:475
+msgid "Do you really want to do this? "
+msgstr "�����˼¹Ԥ��ޤ���? "
+
+#: g10/keyedit.c:539
+msgid "moving a key signature to the correct place\n"
+msgstr "���ν�̾�����������˰�ư���ޤ�\n"
+
+#: g10/keyedit.c:580
+msgid "quit this menu"
+msgstr "���Υ�˥塼��λ"
+
+#: g10/keyedit.c:581
+msgid "q"
+msgstr "q"
+
+#: g10/keyedit.c:582
+msgid "save"
+msgstr "save"
+
+#: g10/keyedit.c:582
+msgid "save and quit"
+msgstr "��¸���ƽ�λ"
+
+#: g10/keyedit.c:583
+msgid "help"
+msgstr "help"
+
+#: g10/keyedit.c:583
+msgid "show this help"
+msgstr "���Υإ�פ򸫤�"
+
+#: g10/keyedit.c:585
+msgid "fpr"
+msgstr "fpr"
+
+#: g10/keyedit.c:585
+msgid "show fingerprint"
+msgstr "����򸫤�"
+
+#: g10/keyedit.c:586
+msgid "list"
+msgstr "list"
+
+#: g10/keyedit.c:586
+msgid "list key and user IDs"
+msgstr "���ȥ桼�� ID �ΰ���"
+
+#: g10/keyedit.c:587
+msgid "l"
+msgstr "l"
+
+#: g10/keyedit.c:588
+msgid "uid"
+msgstr "uid"
+
+#: g10/keyedit.c:588
+msgid "select user ID N"
+msgstr "�桼�� ID N ������"
+
+#: g10/keyedit.c:589
+msgid "key"
+msgstr "key"
+
+#: g10/keyedit.c:589
+msgid "select secondary key N"
+msgstr "���� N ������"
+
+#: g10/keyedit.c:590
+msgid "check"
+msgstr "check"
+
+#: g10/keyedit.c:590
+msgid "list signatures"
+msgstr "��̾�ΰ���"
+
+#: g10/keyedit.c:591
+msgid "c"
+msgstr "c"
+
+#: g10/keyedit.c:592
+msgid "sign"
+msgstr "sign"
+
+#: g10/keyedit.c:592
+msgid "sign the key"
+msgstr "���ؽ�̾"
+
+#: g10/keyedit.c:593
+msgid "s"
+msgstr "s"
+
+#: g10/keyedit.c:594
+msgid "lsign"
+msgstr "lsign"
+
+#: g10/keyedit.c:594
+msgid "sign the key locally"
+msgstr "���˽񤭽Ф��ԲĤʽ�̾"
+
+#: g10/keyedit.c:595
+msgid "debug"
+msgstr "debug"
+
+#: g10/keyedit.c:596
+msgid "adduid"
+msgstr "adduid"
+
+#: g10/keyedit.c:596
+msgid "add a user ID"
+msgstr "�桼�� ID ���ɲ�"
+
+#: g10/keyedit.c:597
+msgid "deluid"
+msgstr "deluid"
+
+#: g10/keyedit.c:597
+msgid "delete user ID"
+msgstr "�桼�� ID �ξõ�"
+
+#: g10/keyedit.c:598
+msgid "addkey"
+msgstr "addkey"
+
+#: g10/keyedit.c:598
+msgid "add a secondary key"
+msgstr "�������ɲ�"
+
+#: g10/keyedit.c:599
+msgid "delkey"
+msgstr "delkey"
+
+#: g10/keyedit.c:599
+msgid "delete a secondary key"
+msgstr "������"
+
+#: g10/keyedit.c:600
+msgid "delsig"
+msgstr "delsig"
+
+#: g10/keyedit.c:600
+msgid "delete signatures"
+msgstr "��̾�κ��"
+
+#: g10/keyedit.c:601
+msgid "expire"
+msgstr "expire"
+
+#: g10/keyedit.c:601
+msgid "change the expire date"
+msgstr "ͭ�����¤��ѹ�"
+
+#: g10/keyedit.c:602
+msgid "toggle"
+msgstr "toggle"
+
+#: g10/keyedit.c:602
+msgid "toggle between secret and public key listing"
+msgstr "��̩���ȸ������������ڤ��ؤ�"
+
+#: g10/keyedit.c:604
+msgid "t"
+msgstr "t"
+
+#: g10/keyedit.c:605
+msgid "pref"
+msgstr "pref"
+
+#: g10/keyedit.c:605
+msgid "list preferences"
+msgstr "ͥ���̤ΰ���"
+
+#: g10/keyedit.c:606
+msgid "passwd"
+msgstr "passwd"
+
+#: g10/keyedit.c:606
+msgid "change the passphrase"
+msgstr "�ѥ��ե졼�����ѹ�"
+
+#: g10/keyedit.c:607
+msgid "trust"
+msgstr "trust"
+
+#: g10/keyedit.c:607
+msgid "change the ownertrust"
+msgstr "���ʽ�̾���ѹ�"
+
+#: g10/keyedit.c:608
+msgid "revsig"
+msgstr "revsig"
+
+#: g10/keyedit.c:608
+msgid "revoke signatures"
+msgstr "��̾���˴�"
+
+#: g10/keyedit.c:609
+msgid "revkey"
+msgstr "revkey"
+
+#: g10/keyedit.c:609
+msgid "revoke a secondary key"
+msgstr "�������˴�"
+
+#: g10/keyedit.c:610
+msgid "disable"
+msgstr "disable"
+
+#: g10/keyedit.c:610
+msgid "disable a key"
+msgstr "��������ԲĤˤ���"
+
+#: g10/keyedit.c:611
+msgid "enable"
+msgstr "enable"
+
+#: g10/keyedit.c:611
+msgid "enable a key"
+msgstr "������ѲĤˤ���"
+
+#: g10/delkey.c:110 g10/keyedit.c:630
+msgid "can't do that in batchmode\n"
+msgstr "����ϥХå��⡼�ɤǤϼ¹ԤǤ��ޤ���\n"
+
+#. check that they match
+#. fixme: check that they both match
+#: g10/keyedit.c:668
+msgid "Secret key is available.\n"
+msgstr "��̩�������ѤǤ��ޤ�\n"
+
+#: g10/keyedit.c:697
+msgid "Command> "
+msgstr "���ޥ��> "
+
+#: g10/keyedit.c:727
+msgid "Need the secret key to do this.\n"
+msgstr "�����¹Ԥ���ˤ���̩����ɬ�פǤ���\n"
+
+#: g10/keyedit.c:731
+msgid "Please use the command \"toggle\" first.\n"
+msgstr ""
+
+#: g10/keyedit.c:778
+msgid "Really sign all user IDs? "
+msgstr "���ƤΥ桼�� ID �� ������ ��̾���ޤ���? "
+
+#: g10/keyedit.c:779
+msgid "Hint: Select the user IDs to sign\n"
+msgstr "�ҥ��: ��̾����桼�� ID ������\n"
+
+#: g10/keyedit.c:811 g10/keyedit.c:993
+#, c-format
+msgid "update of trustdb failed: %s\n"
+msgstr "���ѥǡ����١����ι����˼��Ԥ��ޤ���: %s\n"
+
+#: g10/keyedit.c:822 g10/keyedit.c:843
+msgid "You must select at least one user ID.\n"
+msgstr "���ʤ��Ȥ� 1 �ĤΥ桼�� ID �����򤷤Ʋ�������\n"
+
+#: g10/keyedit.c:824
+msgid "You can't delete the last user ID!\n"
+msgstr "�Ǹ�桼�� ID �ν�̾�Ϻ���Ǥ��ޤ���\n"
+
+#: g10/keyedit.c:827
+msgid "Really remove all selected user IDs? "
+msgstr "���򤷤��桼�� ID �� ������ ������ޤ���? "
+
+#: g10/keyedit.c:828
+msgid "Really remove this user ID? "
+msgstr "���Υ桼�� ID �� ������ ������ޤ���? "
+
+#: g10/keyedit.c:864 g10/keyedit.c:886
+msgid "You must select at least one key.\n"
+msgstr "���ʤ��Ȥ� 1 �Ĥθ������򤷤Ʋ�������\n"
+
+#: g10/keyedit.c:868
+msgid "Do you really want to delete the selected keys? "
+msgstr "���򤷤����� ������ ������ޤ���? "
+
+#: g10/keyedit.c:869
+msgid "Do you really want to delete this key? "
+msgstr "���θ��� ������ ������ޤ���? "
+
+#: g10/keyedit.c:890
+msgid "Do you really want to revoke the selected keys? "
+msgstr "���򤷤����� ������ �˴����ޤ���? "
+
+#: g10/keyedit.c:891
+msgid "Do you really want to revoke this key? "
+msgstr "���θ��� ������ �˴����ޤ���? "
+
+#: g10/keyedit.c:957
+msgid "Save changes? "
+msgstr "�ѹ�����¸���ޤ���? "
+
+#: g10/keyedit.c:960
+msgid "Quit without saving? "
+msgstr "��¸�����˽�λ���ޤ���? "
+
+#: g10/keyedit.c:971
+#, c-format
+msgid "update failed: %s\n"
+msgstr "�����˼���: %s\n"
+
+#: g10/keyedit.c:978
+#, c-format
+msgid "update secret failed: %s\n"
+msgstr "��̩���ι����˼���: %s\n"
+
+#: g10/keyedit.c:985
+msgid "Key not changed so no update needed.\n"
+msgstr "�����ѹ�����Ƥ��ޤ���Τǹ�������ɬ�פϤ���ޤ���\n"
+
+#: g10/keyedit.c:1000
+msgid "Invalid command (try \"help\")\n"
+msgstr "̵���ʥ��ޥ�� (\"help\" �򸫤�)\n"
+
+#: g10/keyedit.c:1093
+msgid "This key has been disabled"
+msgstr "���θ��ϻ����ԲĤ����ꤵ��Ƥ��ޤ�"
+
+#: g10/keyedit.c:1364
+msgid "Delete this good signature? (y/N/q)"
+msgstr "������������̾�������ޤ���? (y/N/q)"
+
+#: g10/keyedit.c:1368
+msgid "Delete this invalid signature? (y/N/q)"
+msgstr "����̵���ʽ�̾�������ޤ���? (y/N/q)"
+
+#: g10/keyedit.c:1372
+msgid "Delete this unknown signature? (y/N/q)"
+msgstr "���������ʽ�̾�������ޤ���? (y/N/q)"
+
+#: g10/keyedit.c:1378
+msgid "Really delete this self-signature? (y/N)"
+msgstr "���μ��ʽ�̾�� ������ ������ޤ���? (y/N)"
+
+#: g10/keyedit.c:1392
+#, c-format
+msgid "Deleted %d signature.\n"
+msgstr "%d �Ĥν�̾�������ޤ�����\n"
+
+#: g10/keyedit.c:1393
+#, c-format
+msgid "Deleted %d signatures.\n"
+msgstr "%d �Ĥν�̾�������ޤ�����\n"
+
+#: g10/keyedit.c:1396
+msgid "Nothing deleted.\n"
+msgstr "���������Ƥ��ޤ���\n"
+
+#: g10/keyedit.c:1465
+msgid "Please remove selections from the secret keys.\n"
+msgstr "��̩��������������Ʋ�������\n"
+
+#: g10/keyedit.c:1471
+msgid "Please select at most one secondary key.\n"
+msgstr "¿���Ƥ� 1 �Ĥ����������򤷤Ʋ�������\n"
+
+#: g10/keyedit.c:1475
+msgid "Changing expiration time for a secondary key.\n"
+msgstr "������ͭ�����¤��ѹ����ޤ���\n"
+
+#: g10/keyedit.c:1477
+msgid "Changing expiration time for the primary key.\n"
+msgstr "�縰��ͭ�����¤��ѹ����ޤ���\n"
+
+#: g10/keyedit.c:1519
+msgid "You can't change the expiration date of a v3 key\n"
+msgstr "v3 ����ͭ�����¤��ѹ����뤳�Ȥ��Ǥ��ޤ�\n"
+
+#: g10/keyedit.c:1535
+msgid "No corresponding signature in secret ring\n"
+msgstr "��̩����󥰤��б������̾������ޤ���\n"
+
+#: g10/keyedit.c:1596
+#, c-format
+msgid "No user ID with index %d\n"
+msgstr "%d �֤Υ桼�� ID �Ϥ���ޤ���\n"
+
+#: g10/keyedit.c:1642
+#, c-format
+msgid "No secondary key with index %d\n"
+msgstr "%d �֤������Ϥ���ޤ���\n"
+
+#: g10/keyedit.c:1740
+msgid "user ID: \""
+msgstr "�桼�� ID: \""
+
+#: g10/keyedit.c:1743
+#, c-format
+msgid ""
+"\"\n"
+"signed with your key %08lX at %s\n"
+msgstr ""
+"\"\n"
+"���ʤ��θ� %08lX �� %s �˽�̾����Ƥ��ޤ�\n"
+
+#: g10/keyedit.c:1747
+msgid "Create a revocation certificate for this signature? (y/N)"
+msgstr "���ν�̾���Ф����˴��������������ޤ���? (y/N)"
+
+#. FIXME: detect duplicates here
+#: g10/keyedit.c:1771
+msgid "You have signed these user IDs:\n"
+msgstr "�����Υ桼�� ID �˽�̾���ޤ���:\n"
+
+#: g10/keyedit.c:1785 g10/keyedit.c:1820
+#, c-format
+msgid " signed by %08lX at %s\n"
+msgstr " %08lX �ˤ�ä� %s �˽�̾����Ƥ��ޤ�\n"
+
+#: g10/keyedit.c:1790
+#, c-format
+msgid " revoked by %08lX at %s\n"
+msgstr " %08lX �ˤ�ä� %s ���˴�����Ƥ��ޤ�\n"
+
+#: g10/keyedit.c:1810
+msgid "You are about to revoke these signatures:\n"
+msgstr "���ʤ��Ϥ����ν�̾���˴����뤫�¤äƤ��ޤ�:\n"
+
+#: g10/keyedit.c:1828
+msgid "Really create the revocation certificates? (y/N)"
+msgstr "�˴�������� ������ �������ޤ���? (y/N)"
+
+#: g10/keyedit.c:1857
+msgid "no secret key\n"
+msgstr "��̩��������ޤ���\n"
+
+#. of subkey
+#: g10/keylist.c:318 g10/mainproc.c:740
+#, fuzzy, c-format
+msgid " [expires: %s]"
+msgstr "���� %s �ˤƴ����ڤ�ˤʤ�ޤ�\n"
+
+#: g10/mainproc.c:213
+#, c-format
+msgid "public key is %08lX\n"
+msgstr "�������� %08lX �Ǥ�\n"
+
+#: g10/mainproc.c:248
+msgid "public key encrypted data: good DEK\n"
+msgstr "�������ǰŹ沽���줿�ǡ���: ������ DEK �Ǥ�\n"
+
+#: g10/mainproc.c:281
+#, c-format
+msgid "encrypted with %u-bit %s key, ID %08lX, created %s\n"
+msgstr "%u �ӥå� %s ��, ID %08lX �ˤ�äưŹ沽����ޤ��� %s\n"
+
+#: g10/mainproc.c:291
+#, c-format
+msgid "encrypted with %s key, ID %08lX\n"
+msgstr "%s ��, ID %08lX �ˤ�äưŹ沽����ޤ���\n"
+
+#: g10/mainproc.c:297
+msgid "no secret key for decryption available\n"
+msgstr "�����ɬ�פ���̩��������ޤ���\n"
+
+#: g10/mainproc.c:306
+#, c-format
+msgid "public key decryption failed: %s\n"
+msgstr "������������˼���: %s\n"
+
+#: g10/mainproc.c:342
+msgid "decryption okay\n"
+msgstr "���������\n"
+
+#: g10/mainproc.c:347
+msgid "WARNING: encrypted message has been manipulated!\n"
+msgstr "�ٹ�: �Ź沽���줿��å������ϲ��⤵��Ƥ��ޤ�!\n"
+
+#: g10/mainproc.c:352
+#, c-format
+msgid "decryption failed: %s\n"
+msgstr "����˼���: %s\n"
+
+#: g10/mainproc.c:371
+msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
+msgstr "����: �����Ԥϡ��ɤ߽�������������פ褦�˵��Ƥ��ޤ�\n"
+
+#: g10/mainproc.c:373
+#, c-format
+msgid "original file name='%.*s'\n"
+msgstr "���Υե�����̾='%.*s'\n"
+
+#: g10/mainproc.c:524
+msgid "standalone revocation - use \"gpg --import\" to apply\n"
+msgstr "��Ω�˴�����gpg --import�פ�Ȥä�Ŭ�Ѥ��Ƥ�������\n"
+
+#: g10/mainproc.c:611 g10/mainproc.c:620
+msgid "WARNING: invalid notation data found\n"
+msgstr "�ٹ�: ̵��������ǡ���������ޤ�\n"
+
+#: g10/mainproc.c:623
+msgid "Notation: "
+msgstr "����: "
+
+#: g10/mainproc.c:630
+msgid "Policy: "
+msgstr "�ݥꥷ��: "
+
+#: g10/mainproc.c:1057
+msgid "signature verification suppressed\n"
+msgstr "��̾�θ��ڤ��Ǥ��ޤ���\n"
+
+#: g10/mainproc.c:1063
+#, c-format
+msgid "Signature made %.*s using %s key ID %08lX\n"
+msgstr "%.*s �� %s �� ID %08lX �ˤ���̾\n"
+
+#. just in case that we have no userid
+#: g10/mainproc.c:1089 g10/mainproc.c:1100
+msgid "BAD signature from \""
+msgstr "�����ʽ�̾: \""
+
+#: g10/mainproc.c:1090 g10/mainproc.c:1101
+msgid "Good signature from \""
+msgstr "��������̾: \""
+
+#: g10/mainproc.c:1092
+msgid " aka \""
+msgstr " ��̾ \""
+
+#: g10/mainproc.c:1148
+#, c-format
+msgid "Can't check signature: %s\n"
+msgstr "��̾�θ��ڤ��Ǥ��ޤ���: %s\n"
+
+#: g10/mainproc.c:1209
+#, c-format
+msgid "standalone signature of class 0x%02x\n"
+msgstr "���饹0x%02x����Ω��̾\n"
+
+#: g10/mainproc.c:1250
+msgid "old style (PGP 2.x) signature\n"
+msgstr "�Ť����� (PGP 2.x) �ˤ���̾\n"
+
+#: g10/mainproc.c:1255
+msgid "invalid root packet detected in proc_tree()\n"
+msgstr "proc_tree() �����̵���ʥѥ��åȤ����Ф���ޤ���\n"
+
+#: g10/misc.c:94
+#, c-format
+msgid "can't disable core dumps: %s\n"
+msgstr "��������פ�̵���ˤǤ��ޤ���: %s\n"
+
+#: g10/misc.c:97
+msgid "WARNING: program may create a core file!\n"
+msgstr "�ٹ�: �ץ������ϥ����ե������������ޤ�!\n"
+
+#: g10/misc.c:205
+msgid "Experimental algorithms should not be used!\n"
+msgstr "�¸���Υ��르�ꥺ��ϻ��Ѥ��٤��ǤϤ���ޤ���!\n"
+
+#: g10/misc.c:219
+msgid ""
+"RSA keys are deprecated; please consider creating a new key and use this key "
+"in the future\n"
+msgstr ""
+"RSA "
+"����ȿ�Ф���Ƥ��ޤ�������������������ƺ���Ϥ��θ����Ѥ��뤳�Ȥ�Ƥ���Ƥ��"
+"�����\n"
+
+#: g10/misc.c:241
+msgid "this cipher algorithm is depreciated; please use a more standard one!\n"
+msgstr "���ΰŹ楢�르�ꥺ���ȿ�Ф���Ƥ��ޤ�������Ū����ˡ���Ѥ��Ʋ�����!\n"
+
+#: g10/parse-packet.c:115
+#, c-format
+msgid "can't handle public key algorithm %d\n"
+msgstr "�������Υ��르�ꥺ�� %d �ϻ��ѤǤ��ޤ���\n"
+
+#: g10/parse-packet.c:956
+#, c-format
+msgid "subpacket of type %d has critical bit set\n"
+msgstr "subpacket of type %d has critical bit set\n"
+
+#: g10/passphrase.c:159
+msgid ""
+"\n"
+"You need a passphrase to unlock the secret key for\n"
+"user: \""
+msgstr ""
+"\n"
+"���Υ桼���Υ��å���������ˤϥѥ��ե졼����ɬ�פǤ�\n"
+"�桼��: \""
+
+#: g10/passphrase.c:168
+#, c-format
+msgid "%u-bit %s key, ID %08lX, created %s"
+msgstr "%u �ӥå� %s ��, ID %08lX ����������ޤ��� %s"
+
+#: g10/passphrase.c:173
+#, c-format
+msgid " (main key ID %08lX)"
+msgstr " (�縰 ID %08lX)"
+
+#: g10/passphrase.c:190
+msgid "can't query password in batchmode\n"
+msgstr "�Хå��⡼�ɤǤϥѥ���ɤ��䤤��碌���Ǥ��ޤ���\n"
+
+#: g10/passphrase.c:194
+msgid "Enter passphrase: "
+msgstr "�ѥ��ե졼��������: "
+
+#: g10/passphrase.c:198
+msgid "Repeat passphrase: "
+msgstr "�ѥ��ե졼���������: "
+
+#: g10/plaintext.c:63
+msgid "data not saved; use option \"--output\" to save it\n"
+msgstr ""
+"�ǡ�������¸����Ƥ��ޤ�����¸����ˤ� \"--output\" "
+"���ץ�������Ѥ��Ʋ�������\n"
+
+#: g10/plaintext.c:317
+msgid "Detached signature.\n"
+msgstr "ʬΥ��̾��\n"
+
+#: g10/plaintext.c:321
+msgid "Please enter name of data file: "
+msgstr "�ǡ����ե������̾��������: "
+
+#: g10/plaintext.c:342
+msgid "reading stdin ...\n"
+msgstr "ɸ�����Ϥ���ɤ߹����� ...\n"
+
+#: g10/plaintext.c:385
+#, c-format
+msgid "can't open signed data `%s'\n"
+msgstr "��̾���줿�ǡ��� `%s' �������ޤ���\n"
+
+#: g10/pubkey-enc.c:79
+#, c-format
+msgid "anonymous receiver; trying secret key %08lX ...\n"
+msgstr "������μ������ѤǤ�����̩�� %08lX ���Ѥ��ޤ� ...\n"
+
+#: g10/pubkey-enc.c:85
+msgid "okay, we are the anonymous recipient.\n"
+msgstr "��λ��������μ������ѤǤ���\n"
+
+#: g10/pubkey-enc.c:137
+msgid "old encoding of the DEK is not supported\n"
+msgstr "DEK �ˤ��켰�ΰŹ�ϥ��ݡ��Ȥ��Ƥ��ޤ���\n"
+
+#: g10/pubkey-enc.c:156
+#, fuzzy, c-format
+msgid "cipher algorithm %d is unknown or disabled\n"
+msgstr "�ݸ�르�ꥺ�� %d �ϥ��ݡ��Ȥ��Ƥ��ޤ���\n"
+
+#: g10/pubkey-enc.c:195
+#, c-format
+msgid "NOTE: cipher algorithm %d not found in preferences\n"
+msgstr "����: �Ź楢�르�ꥺ�� %d ��ͥ�������äƤ��ޤ���\n"
+
+#: g10/pubkey-enc.c:201
+#, fuzzy, c-format
+msgid "NOTE: secret key %08lX expired at %s\n"
+msgstr "����: ��̾�θ��ϴ����ڤ�Ǥ� %s\n"
+
+#: g10/hkp.c:62
+#, c-format
+msgid "requesting key %08lX from %s ...\n"
+msgstr ""
+
+#: g10/hkp.c:75
+#, fuzzy, c-format
+msgid "can't get key from keyserver: %s\n"
+msgstr "�������С����鸰���ɤ߹���"
+
+#: g10/hkp.c:98 g10/hkp.c:136
+msgid "no keyserver known (use option --keyserver)\n"
+msgstr ""
+
+#: g10/hkp.c:106
+#, fuzzy, c-format
+msgid "%s: not a valid key ID\n"
+msgstr "%s ��������ʸ�������ɤǤϤ���ޤ���\n"
+
+#: g10/hkp.c:158
+#, fuzzy, c-format
+msgid "can't connect to `%s': %s\n"
+msgstr "`%s' �������ޤ���: %s\n"
+
+#: g10/hkp.c:182
+#, fuzzy, c-format
+msgid "error sending to `%s': %s\n"
+msgstr "`%s' ���ɤ߹��ߤ˼���: %s\n"
+
+#: g10/hkp.c:194
+#, c-format
+msgid "success sending to `%s' (status=%u)\n"
+msgstr ""
+
+#: g10/hkp.c:197
+#, c-format
+msgid "failed sending to `%s': status=%u\n"
+msgstr ""
+
+#: g10/seckey-cert.c:53
+#, fuzzy
+msgid "secret key parts are not available\n"
+msgstr "��̩��������ޤ���"
+
+#: g10/seckey-cert.c:59
+#, c-format
+msgid "protection algorithm %d is not supported\n"
+msgstr "�ݸ�르�ꥺ�� %d �ϥ��ݡ��Ȥ��Ƥ��ޤ���\n"
+
+#: g10/seckey-cert.c:175
+msgid "Invalid passphrase; please try again ...\n"
+msgstr "̵���ʥѥ��ե졼���Ǥ��������Ϥ��Ʋ����� ...\n"
+
+#: g10/seckey-cert.c:231
+msgid "WARNING: Weak key detected - please change passphrase again.\n"
+msgstr "�ٹ�: �夤�������Ф���ޤ������ѥ��ե졼�����ѹ����Ʋ�������\n"
+
+#: g10/sig-check.c:202
+msgid "assuming bad MDC due to an unknown critical bit\n"
+msgstr "�����ʥ���ƥ�����ӥåȤ����ä��Τǡ�MDC ���������ȸ��ʤ��ޤ�\n"
+
+#: g10/sig-check.c:300
+msgid ""
+"this is a PGP generated ElGamal key which is NOT secure for signatures!\n"
+msgstr ""
+"����� PGP �ˤ�äƺ������줿 ElGamal "
+"���Ǥ������θ��Ͻ�̾���Ѥ���ˤϰ����ǤϤ���ޤ���!\n"
+
+#: g10/sig-check.c:308
+#, c-format
+msgid "public key is %lu second newer than the signature\n"
+msgstr "�������Ͻ�̾���� %lu �ø�˺�������Ƥ��ޤ�\n"
+
+#: g10/sig-check.c:309
+#, c-format
+msgid "public key is %lu seconds newer than the signature\n"
+msgstr "�������Ͻ�̾���� %lu �ø�˺�������Ƥ��ޤ�\n"
+
+#: g10/sig-check.c:327
+#, c-format
+msgid "NOTE: signature key expired %s\n"
+msgstr "����: ��̾�θ��ϴ����ڤ�Ǥ� %s\n"
+
+#: g10/sig-check.c:385
+msgid "assuming bad signature due to an unknown critical bit\n"
+msgstr "�����ʥ���ƥ�����ӥåȤ����ä��Τǡ���̾���������ȸ��ʤ��ޤ�\n"
+
+#: g10/sign.c:139
+#, c-format
+msgid "%s signature from: %s\n"
+msgstr "%s ��̾����̾��: %s\n"
+
+#: g10/sign.c:270 g10/sign.c:582
+#, c-format
+msgid "can't create %s: %s\n"
+msgstr "%s �������Ǥ��ޤ���: %s\n"
+
+#: g10/sign.c:368
+msgid "signing:"
+msgstr "��̾:"
+
+#: g10/sign.c:411
+#, c-format
+msgid "WARNING: `%s' is an empty file\n"
+msgstr "�ٹ�: `%s' �϶��Υե�����Ǥ�\n"
+
+#: g10/textfilter.c:134
+#, c-format
+msgid "can't handle text lines longer than %d characters\n"
+msgstr "%d ʸ���ʾ��Ĺ���Υƥ����ȹԤϻ��ѤǤ��ޤ���\n"
+
+#: g10/textfilter.c:231
+#, c-format
+msgid "input line longer than %d characters\n"
+msgstr "���ϹԤ�Ĺ���� %d ʸ����ۤ��Ƥ��ޤ�\n"
+
+#: g10/tdbio.c:116 g10/tdbio.c:1623
+#, c-format
+msgid "trustdb rec %lu: lseek failed: %s\n"
+msgstr "���ѥǡ����١��� �쥳���� %lu: �������˼���: %s\n"
+
+#: g10/tdbio.c:122 g10/tdbio.c:1630
+#, c-format
+msgid "trustdb rec %lu: write failed (n=%d): %s\n"
+msgstr "���ѥǡ����١��� �쥳���� %lu: �񤭹��ߤ˼��� (n=%d): %s\n"
+
+#: g10/tdbio.c:232
+msgid "trustdb transaction too large\n"
+msgstr "���ѥǡ����١��� �ȥ�󥶥�������礭�����ޤ�\n"
+
+#: g10/tdbio.c:424
+#, c-format
+msgid "%s: can't access: %s\n"
+msgstr "%s: ���������Ǥ��ޤ���: %s\n"
+
+#: g10/tdbio.c:438
+#, c-format
+msgid "%s: directory does not exist!\n"
+msgstr "%s: ���񤬤���ޤ���!\n"
+
+#: g10/openfile.c:216 g10/openfile.c:284 g10/ringedit.c:1363 g10/tdbio.c:444
+#, c-format
+msgid "%s: can't create: %s\n"
+msgstr "%s: �����Ǥ��ޤ���: %s\n"
+
+#: g10/tdbio.c:459 g10/tdbio.c:508
+#, c-format
+msgid "%s: can't create lock\n"
+msgstr "%s: ���å��������Ǥ��ޤ���\n"
+
+#: g10/tdbio.c:473
+#, c-format
+msgid "%s: failed to create version record: %s"
+msgstr "%s: �С������쥳���ɤκ����˼���: %s"
+
+#: g10/tdbio.c:477
+#, c-format
+msgid "%s: invalid trustdb created\n"
+msgstr "%s: ̵���ʿ��ѥǡ����١��������\n"
+
+#: g10/tdbio.c:480
+#, c-format
+msgid "%s: trustdb created\n"
+msgstr "%s: ���ѥǡ����١�����������ޤ���\n"
+
+#: g10/tdbio.c:517
+#, c-format
+msgid "%s: invalid trustdb\n"
+msgstr "%s: ̵���ʿ��ѥǡ����١���\n"
+
+#: g10/tdbio.c:550
+#, c-format
+msgid "%s: failed to create hashtable: %s\n"
+msgstr "%s: �ϥå���ɽ�κ����˼���: %s\n"
+
+#: g10/tdbio.c:558
+#, c-format
+msgid "%s: error updating version record: %s\n"
+msgstr "%s: �С������쥳���ɤι������顼: %s\n"
+
+#: g10/tdbio.c:574 g10/tdbio.c:613 g10/tdbio.c:635 g10/tdbio.c:665
+#: g10/tdbio.c:690 g10/tdbio.c:1556 g10/tdbio.c:1583
+#, c-format
+msgid "%s: error reading version record: %s\n"
+msgstr "%s: �С������쥳���ɤ��ɤ߽Ф����顼: %s\n"
+
+#: g10/tdbio.c:587 g10/tdbio.c:646
+#, c-format
+msgid "%s: error writing version record: %s\n"
+msgstr "%s: �С������쥳���ɤν񤭹��ߥ��顼: %s\n"
+
+#: g10/tdbio.c:1235
+#, c-format
+msgid "trustdb: lseek failed: %s\n"
+msgstr "���ѥǡ����١���: �������˼���: %s\n"
+
+#: g10/tdbio.c:1243
+#, c-format
+msgid "trustdb: read failed (n=%d): %s\n"
+msgstr "���ѥǡ����١���: �ɤ߽Ф��˼��� (n=%d): %s\n"
+
+#: g10/tdbio.c:1264
+#, c-format
+msgid "%s: not a trustdb file\n"
+msgstr "%s: ���ѥǡ����١����ե�����ǤϤ���ޤ���\n"
+
+#: g10/tdbio.c:1280
+#, c-format
+msgid "%s: version record with recnum %lu\n"
+msgstr "%s: �쥳�����ֹ� %lu �֤ΥС������쥳����\n"
+
+#: g10/tdbio.c:1285
+#, c-format
+msgid "%s: invalid file version %d\n"
+msgstr "%s: ̵���ʥե�����С������ %d\n"
+
+#: g10/tdbio.c:1589
+#, c-format
+msgid "%s: error reading free record: %s\n"
+msgstr "%s: �����쥳���ɤ��ɤ߽Ф����顼: %s\n"
+
+#: g10/tdbio.c:1597
+#, c-format
+msgid "%s: error writing dir record: %s\n"
+msgstr "%s: �����쥳���ɤν񤭹��ߥ��顼: %s\n"
+
+#: g10/tdbio.c:1607
+#, c-format
+msgid "%s: failed to zero a record: %s\n"
+msgstr "%s: �쥳���ɤν�����˼���: %s\n"
+
+#: g10/tdbio.c:1637
+#, c-format
+msgid "%s: failed to append a record: %s\n"
+msgstr "%s: �쥳���ɤν�����˼���: %s\n"
+
+#: g10/tdbio.c:1748
+msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
+msgstr ""
+"���ѥǡ����١���������Ƥ��ޤ���\"gpg --fix-trustdb\" ��¹Ԥ��Ʋ�������\n"
+
+#: g10/trustdb.c:168
+#, c-format
+msgid "trust record %lu, req type %d: read failed: %s\n"
+msgstr "���ѥ쥳���� %lu, �ꥯ�����ȥ����� %d: �ɤ߽Ф��˼���: %s\n"
+
+#: g10/trustdb.c:183
+#, c-format
+msgid "trust record %lu, type %d: write failed: %s\n"
+msgstr "���ѥ쥳���� %lu, ������ %d: �񤭹��ߤ˼���: %s\n"
+
+#: g10/trustdb.c:197
+#, c-format
+msgid "trust record %lu: delete failed: %s\n"
+msgstr "���ѥ쥳���� %lu: ����˼���: %s\n"
+
+#: g10/trustdb.c:211
+#, c-format
+msgid "trustdb: sync failed: %s\n"
+msgstr "���ѥǡ����١���: Ʊ���˼���: %s\n"
+
+#: g10/trustdb.c:376
+#, c-format
+msgid "error reading dir record for LID %lu: %s\n"
+msgstr "LID %lu �Υǥ��쥯�ȥ�쥳���ɤ��ɤ߽Ф����顼: %s\n"
+
+#: g10/trustdb.c:383
+#, c-format
+msgid "lid %lu: expected dir record, got type %d\n"
+msgstr "lid %lu: ���Ԥ��줿�ǥ��쥯�ȥ�쥳���ɡ������� %d\n"
+
+#: g10/trustdb.c:388
+#, c-format
+msgid "no primary key for LID %lu\n"
+msgstr "LID %lu �μ縰������ޤ���\n"
+
+#: g10/trustdb.c:393
+#, c-format
+msgid "error reading primary key for LID %lu: %s\n"
+msgstr "LID %lu �μ縰���ɤ߽Ф����顼: %s\n"
+
+#: g10/trustdb.c:432
+#, c-format
+msgid "get_dir_record: search_record failed: %s\n"
+msgstr "get_dir_record: search_record �˼���: %s\n"
+
+#: g10/trustdb.c:487
+#, c-format
+msgid "NOTE: secret key %08lX is NOT protected.\n"
+msgstr "����: ��̩�� %08lX ���ݸ��Ƥ��ޤ���\n"
+
+#: g10/trustdb.c:495
+#, c-format
+msgid "key %08lX: secret key without public key - skipped\n"
+msgstr "�� %08lX: �������Τʤ���̩���Ǥ��������å�\n"
+
+#: g10/trustdb.c:502
+#, c-format
+msgid "key %08lX: secret and public key don't match\n"
+msgstr "�� %08lX: ��̩���ȸ��������б����Ƥ��ޤ���\n"
+
+#: g10/trustdb.c:514
+#, c-format
+msgid "key %08lX: can't put it into the trustdb\n"
+msgstr "�� %08lX: ���ѥǡ����١�������Ͽ�Ǥ��ޤ���\n"
+
+#: g10/trustdb.c:520
+#, c-format
+msgid "key %08lX: query record failed\n"
+msgstr "�� %08lX: �����꡼�쥳���ɤ˼���\n"
+
+#: g10/trustdb.c:529
+#, c-format
+msgid "key %08lX: already in trusted key table\n"
+msgstr "�� %08lX: ���˿��Ѥ��븰��ɽ�ˤ���ޤ�\n"
+
+#: g10/trustdb.c:532
+#, c-format
+msgid "key %08lX: accepted as trusted key.\n"
+msgstr "�� %08lX: ���Ѥ��븰�Ȥ��Ƽ�������ޤ�����\n"
+
+#: g10/trustdb.c:540
+#, c-format
+msgid "enumerate secret keys failed: %s\n"
+msgstr "��̩���ΰ����˼���: %s\n"
+
+#: g10/trustdb.c:921
+#, c-format
+msgid "key %08lX.%lu: Good subkey binding\n"
+msgstr "�� %08lX.%lu: �������б���ͭ���Ǥ�\n"
+
+#: g10/trustdb.c:927 g10/trustdb.c:962
+#, c-format
+msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
+msgstr "�� %08lX.%lu: �������б���̵���Ǥ�: %s\n"
+
+#: g10/trustdb.c:939
+#, c-format
+msgid "key %08lX.%lu: Valid key revocation\n"
+msgstr "�� %08lX.%lu: ͭ���ʸ����ѻ�\n"
+
+#: g10/trustdb.c:945
+#, c-format
+msgid "key %08lX.%lu: Invalid key revocation: %s\n"
+msgstr "�� %08lX.%lu: ̵���ʸ����˴�: %s\n"
+
+#: g10/trustdb.c:956
+#, c-format
+msgid "key %08lX.%lu: Valid subkey revocation\n"
+msgstr "�� %08lX.%lu: ͭ�����������˴�\n"
+
+#: g10/trustdb.c:1067
+msgid "Good self-signature"
+msgstr "ͭ���ʼ��ʽ�̾"
+
+#: g10/trustdb.c:1077
+msgid "Invalid self-signature"
+msgstr "̵���ʼ��ʽ�̾"
+
+#: g10/trustdb.c:1104
+msgid "Valid user ID revocation skipped due to a newer self signature"
+msgstr "���������ʽ�̾����Ƥ���Τǡ�ͭ���ʥ桼�� ID ���˴��ϹԤ��ޤ���"
+
+#: g10/trustdb.c:1110
+msgid "Valid user ID revocation"
+msgstr "ͭ���ʥ桼�� ID ���˴�"
+
+#: g10/trustdb.c:1115
+msgid "Invalid user ID revocation"
+msgstr "̵���ʥ桼�� ID ���˴�"
+
+#: g10/trustdb.c:1157
+msgid "Valid certificate revocation"
+msgstr "ͭ���ʾ�������˴�"
+
+#: g10/trustdb.c:1158
+msgid "Good certificate"
+msgstr "ͭ���ʾ�����"
+
+#: g10/trustdb.c:1186
+msgid "Invalid certificate revocation"
+msgstr "̵���ʾ�������˴�"
+
+#: g10/trustdb.c:1187
+msgid "Invalid certificate"
+msgstr "̵���ʾ�����"
+
+#: g10/trustdb.c:1204 g10/trustdb.c:1208
+#, c-format
+msgid "sig record %lu[%d] points to wrong record.\n"
+msgstr "��̾�쥳���� %lu[%d] �ϸ��ä��쥳���ɤ�ؤ��Ƥ��ޤ���\n"
+
+#: g10/trustdb.c:1267
+msgid "duplicated certificate - deleted"
+msgstr "��ʣ���������� - ������ޤ���"
+
+#: g10/trustdb.c:1584
+#, c-format
+msgid "tdbio_search_dir failed: %s\n"
+msgstr "tdbio_search_dir �˼���: %s\n"
+
+#: g10/trustdb.c:1718
+#, c-format
+msgid "lid ?: insert failed: %s\n"
+msgstr "lid ?: �����˼���: %s\n"
+
+#: g10/trustdb.c:1723
+#, c-format
+msgid "lid %lu: insert failed: %s\n"
+msgstr "lid %lu: �����˼���: %s\n"
+
+#: g10/trustdb.c:1729
+#, c-format
+msgid "lid %lu: inserted\n"
+msgstr "lid %lu: �������ޤ���\n"
+
+#: g10/trustdb.c:1734
+#, c-format
+msgid "error reading dir record: %s\n"
+msgstr "�ǥ��쥯�ȥ�쥳���ɤ��ɤ߽Ф����顼: %s\n"
+
+#: g10/trustdb.c:1742 g10/trustdb.c:1805
+#, c-format
+msgid "%lu keys processed\n"
+msgstr "%lu ����������ޤ���\n"
+
+#: g10/trustdb.c:1744 g10/trustdb.c:1811
+#, c-format
+msgid "\t%lu keys with errors\n"
+msgstr "\t%lu ���ˤϥ��顼������ޤ�\n"
+
+#: g10/trustdb.c:1746
+#, c-format
+msgid "\t%lu keys inserted\n"
+msgstr "\t%lu �����������ޤ���\n"
+
+#: g10/trustdb.c:1749
+#, c-format
+msgid "enumerate keyblocks failed: %s\n"
+msgstr "���֥��å��ΰ����˼���: %s\n"
+
+#: g10/trustdb.c:1797
+#, c-format
+msgid "lid %lu: dir record w/o key - skipped\n"
+msgstr "lid %lu: ���ʤ��Υǥ��쥯�ȥ�쥳���� - �����å�\n"
+
+#: g10/trustdb.c:1807
+#, c-format
+msgid "\t%lu due to new pubkeys\n"
+msgstr "\t%lu �����ʸ�����\n"
+
+#: g10/trustdb.c:1809
+#, c-format
+msgid "\t%lu keys skipped\n"
+msgstr "\t%lu ���򥹥��åפ��ޤ���\n"
+
+#: g10/trustdb.c:1813
+#, c-format
+msgid "\t%lu keys updated\n"
+msgstr "\t%lu ���򹹿����ޤ���\n"
+
+#: g10/trustdb.c:2158
+msgid "Ooops, no keys\n"
+msgstr "���äȡ���������ޤ���\n"
+
+#: g10/trustdb.c:2162
+msgid "Ooops, no user IDs\n"
+msgstr "���äȡ��桼�� ID ������ޤ���\n"
+
+#: g10/trustdb.c:2320
+#, c-format
+msgid "check_trust: search dir record failed: %s\n"
+msgstr "check_trust: �ǥ��쥯�ȥ�쥳���ɤθ����˼���: %s\n"
+
+#: g10/trustdb.c:2329
+#, c-format
+msgid "key %08lX: insert trust record failed: %s\n"
+msgstr "�� %08lX: ���ѥ쥳���ɤ������˼���: %s\n"
+
+#: g10/trustdb.c:2333
+#, c-format
+msgid "key %08lX.%lu: inserted into trustdb\n"
+msgstr "�� %08lX.%lu: ���ѥ쥳���ɤ��������ޤ���\n"
+
+#: g10/trustdb.c:2341
+#, c-format
+msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
+msgstr ""
+"�� %08lX.%lu: ̤��˺�������Ƥ��ޤ� (����ι�Ԥ����פΤ��뤤�Ǥ��礦)\n"
+
+#: g10/trustdb.c:2356
+#, c-format
+msgid "key %08lX.%lu: expired at %s\n"
+msgstr "�� %08lX.%lu: %s �Ǵ����ڤ�Ǥ�\n"
+
+#: g10/trustdb.c:2364
+#, c-format
+msgid "key %08lX.%lu: trust check failed: %s\n"
+msgstr "�� %08lX.%lu: ���Ѥθ��ڤ˼���: %s\n"
+
+#: g10/trustdb.c:2515
+#, c-format
+msgid "user '%s' not found: %s\n"
+msgstr "�桼�� '%s' �����Ĥ���ޤ���: %s\n"
+
+#: g10/trustdb.c:2517
+#, c-format
+msgid "problem finding '%s' in trustdb: %s\n"
+msgstr "���ѥǡ����١������� '%s' �θ����˾㳲: %s\n"
+
+#: g10/trustdb.c:2520
+#, c-format
+msgid "user '%s' not in trustdb - inserting\n"
+msgstr "�桼�� '%s' �Ͽ��ѥǡ����١�������Ͽ����Ƥ��ޤ��� - �������ޤ���\n"
+
+#: g10/trustdb.c:2523
+#, c-format
+msgid "failed to put '%s' into trustdb: %s\n"
+msgstr "'%s' �ο��ѥǡ����١����ؤ���Ͽ�˼���: %s\n"
+
+#: g10/trustdb.c:2709 g10/trustdb.c:2739
+msgid "WARNING: can't yet handle long pref records\n"
+msgstr "�ٹ�: �ޤ� long pref �쥳���ɤϼ�갷���ޤ���\n"
+
+#: g10/verify.c:82
+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 ""
+"��̾�򸡾ڤǤ��ޤ���Ǥ�������̾�ե�����\n"
+"(.sig��.asc)�����ޥ�ɹԤκǽ�Ǥʤ����\n"
+"�ʤ�ʤ����Ȥ�ǰƬ�ˤ����Ƥ���������\n"
+
+#: g10/verify.c:147
+#, c-format
+msgid "input line %u too long or missing LF\n"
+msgstr "���Ϥ�%u���ܤ�Ĺ�᤮�뤫��LF���ʤ��褦�Ǥ�\n"
+
+#: g10/ringedit.c:302
+#, c-format
+msgid "%s: can't create keyring: %s\n"
+msgstr "%s: ����󥰤�����Ǥ��ޤ���: %s\n"
+
+#: g10/ringedit.c:319 g10/ringedit.c:1368
+#, c-format
+msgid "%s: keyring created\n"
+msgstr "%s: ����󥰤�������ޤ���\n"
+
+#: g10/ringedit.c:1545
+msgid "WARNING: 2 files with confidential information exists.\n"
+msgstr "�ٹ�: ���Ѿ������ä� 2 �ĤΥե����뤬¸�ߤ��ޤ���\n"
+
+#: g10/ringedit.c:1546
+#, c-format
+msgid "%s is the unchanged one\n"
+msgstr "%s ���ѹ�����Ƥ��ʤ����Ǥ�\n"
+
+#: g10/ringedit.c:1547
+#, c-format
+msgid "%s is the new one\n"
+msgstr "%s �Ͽ��������Ǥ�\n"
+
+#: g10/ringedit.c:1548
+msgid "Please fix this possible security flaw\n"
+msgstr "���ΰ�����η�٤������Ʋ�����\n"
+
+#: g10/skclist.c:88 g10/skclist.c:125
+msgid "key is not flagged as insecure - can't use it with the faked RNG!\n"
+msgstr ""
+"���ˤϰ����Ǥʤ��ե饰�����ꤵ��Ƥ��ޤ��� - "
+"��ʪ����������֤ˤ��ɲäǤ��ޤ���!\n"
+
+#: g10/skclist.c:113
+#, c-format
+msgid "skipped `%s': %s\n"
+msgstr "`%s' �򥹥��å�: %s\n"
+
+#: g10/skclist.c:119
+#, c-format
+msgid ""
+"skipped `%s': this is a PGP generated ElGamal key which is not secure for "
+"signatures!\n"
+msgstr ""
+"`%s' �򥹥��å�: ����� PGP ���������� ElGamal "
+"���Ǥ������θ��Ͻ�̾���Ѥ���ˤϰ����ǤϤ���ޤ���!\n"
+
+#. do not overwrite
+#: g10/openfile.c:79
+#, c-format
+msgid "File `%s' exists. "
+msgstr "�ե����� `%s' �ϴ���¸�ߤ��ޤ���"
+
+#: g10/openfile.c:81
+msgid "Overwrite (y/N)? "
+msgstr "��񤭤��ޤ��� (y/N)? "
+
+#: g10/openfile.c:109
+#, c-format
+msgid "%s: unknown suffix\n"
+msgstr "%s: �����ʳ�ĥ��\n"
+
+#: g10/openfile.c:131
+msgid "Enter new filename"
+msgstr "�������ե�����̾�����Ϥ��Ʋ�����"
+
+#: g10/openfile.c:172
+msgid "writing to stdout\n"
+msgstr "ɸ����Ϥ˽񤭽Ф��ޤ�\n"
+
+#: g10/openfile.c:250
+#, c-format
+msgid "assuming signed data in `%s'\n"
+msgstr "��̾���줿�ǡ����� `%s' �ˤ�������ꤷ�ޤ�\n"
+
+#: g10/openfile.c:300
+#, c-format
+msgid "%s: new options file created\n"
+msgstr "%s: ���������ץ����ե������������ޤ���\n"
+
+#: g10/openfile.c:313
+#, c-format
+msgid "%s: can't create directory: %s\n"
+msgstr "%s: ���񤬺����Ǥ��ޤ���: %s\n"
+
+#: g10/openfile.c:316
+#, c-format
+msgid "%s: directory created\n"
+msgstr "%s: �����������ޤ���\n"
+
+#: g10/openfile.c:318
+msgid "you have to start GnuPG again, so it can read the new options file\n"
+msgstr "���ץ���󡦥ե�������ɤ�ľ���褦��GnuPG��Ƶ�ư���Ƥ�������\n"
+
+#: g10/encr-data.c:66
+#, c-format
+msgid "%s encrypted data\n"
+msgstr "%s �Ź沽���줿�ǡ���\n"
+
+#: g10/encr-data.c:68
+#, c-format
+msgid "encrypted with unknown algorithm %d\n"
+msgstr "�����ʥ��르�ꥺ��ˤ��Ź� %d\n"
+
+#: g10/encr-data.c:85
+msgid ""
+"WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
+msgstr "�ٹ�: ��å��������оΰŹ�ˡ�μ夤���ˤ��Ź沽����Ƥ��ޤ���\n"
+
+#: g10/seskey.c:52
+msgid "weak key created - retrying\n"
+msgstr "�夤������������ޤ��� - �Ƽ¹Ԥ��ޤ�\n"
+
+#: g10/seskey.c:57
+#, c-format
+msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
+msgstr "�оΰŹ�ˡ�μ夤������򤹤뤳�Ȥ��Ǥ��ޤ���%d ���ߤޤ���!\n"
+
+#: g10/delkey.c:94
+msgid "there is a secret key for this public key!\n"
+msgstr "���θ������ΰ٤���̩��������ޤ�!\n"
+
+#: g10/delkey.c:96
+msgid "use option \"--delete-secret-key\" to delete it first.\n"
+msgstr ""
+"�ޤ������������ˤ� \"--delete-secret-key\" ���ץ���� ���Ѥ��Ʋ�������\n"
+
+#: g10/delkey.c:114
+msgid "can't do that in batchmode without \"--yes\"\n"
+msgstr "\"--yes\" ��ȼ��ʤ��Хå��⡼�ɤǤϼ¹ԤǤ��ޤ���\n"
+
+#: g10/delkey.c:136
+msgid "Delete this key from the keyring? "
+msgstr "���θ��򸰥�󥰤��������ޤ���? "
+
+#: g10/delkey.c:144
+msgid "This is a secret key! - really delete? "
+msgstr "��̩��������ޤ�! - ������ ������ޤ���? "
+
+#: g10/helptext.c:47
+msgid ""
+"It's up to you to assign a value here; this value will never be exported\n"
+"to any 3rd party. We need it to implement the web-of-trust; it has nothing\n"
+"to do with the (implicitly created) web-of-certificates."
+msgstr ""
+"���������ꤷ���ͤϡ��礭�����ޤ��������ͤϷ褷���軰�Ԥˤ��󶡤���ޤ���\n"
+"�����Ԥ��ˤϡ��桹�� web-of-trust ���������ɬ�פ�����ޤ�����\n"
+"(����Ū�˺������줿) web-of-certificates ��̵���Ƥϲ���Ǥ��ޤ���"
+
+#: g10/helptext.c:53
+msgid "If you want to use this revoked key anyway, answer \"yes\"."
+msgstr "�����˴����줿����Ȥ������ʤ���С�\"no\" �������Ʋ�������"
+
+#: g10/helptext.c:57
+msgid "If you want to use this untrusted key anyway, answer \"yes\"."
+msgstr "���ο��ѤǤ��ʤ�����Ȥ������ʤ���С�\"no\" �������Ʋ�������"
+
+#: g10/helptext.c:61
+msgid ""
+"Enter the user ID of the addressee to whom you want to send the message."
+msgstr "��å�������������ꥢ�ɥ쥹�Υ桼�� ID �����Ϥ��Ʋ�������"
+
+#: g10/helptext.c:65
+msgid ""
+"Select the algorithm to use.\n"
+"\n"
+"DSA (aka DSS) is the digital signature algorithm which can only be used\n"
+"for signatures. This is the suggested algorithm because verification of\n"
+"DSA signatures are much faster than those of ElGamal.\n"
+"\n"
+"ElGamal is an algorithm which can be used for signatures and encryption.\n"
+"OpenPGP distinguishs between two flavors of this algorithms: an encrypt "
+"only\n"
+"and a sign+encrypt; actually it is the same, but some parameters must be\n"
+"selected in a special way to create a safe key for signatures: this program\n"
+"does this but other OpenPGP implementations are not required to understand\n"
+"the signature+encryption flavor.\n"
+"\n"
+"The first (primary) key must always be a key which is capable of signing;\n"
+"this is the reason why the encryption only ElGamal key is not available in\n"
+"this menu."
+msgstr ""
+"���Ѥ��륢�르�ꥺ�������\n"
+"\n"
+"DSA (��̾ DSS) �ϡ���̾�ˤΤ��Ѥ��뤳�Ȥ��Ǥ����Żҽ�̾���르�ꥺ��Ǥ���\n"
+"DSA ��̾�� ElGamal ˡ�����®�˸��ڤǤ���Τǡ�����Ͽ侩���륢�르�ꥺ��\n"
+"�Ǥ���\n"
+"\n"
+"ElGamal �ϡ���̾�ȰŹ沽���Ѥ��뤳�Ȥ��Ǥ��륢�르�ꥺ��Ǥ���\n"
+"OpenPGP "
+"�Ǥϡ����Υ��르�ꥺ��ΡְŹ沽�Τߡפȡֽ�̾+�Ź沽�פΣ��Ĥ���ˡ��\n"
+"���̤��Ƥ��ޤ������ºݤˤ�Ʊ���Ǥ�������������̾�Ѥΰ����ʸ�����������ˤ�\n"
+"�����Ĥ����ѿ������̤���ˡ�����򤷤ʤ���Фʤ�ޤ��󡣤��Υץ������Ǥϡ�\n"
+"����ϲ�ǽ�Ǥ�����OpenPGP "
+"��¾�μ����Ǥϡֽ�̾+�Ź沽�פ���ˡ���ᤷ�ޤ���\n"
+"\n"
+"�ǽ�θ�(�縰)�Ͻ�̾�˻��ѤǤ��븰�Ǥʤ���Фʤ�ޤ���\n"
+"���Τ��Ȥ��ְŹ沽�Τߡפ� ElGamal ���������Υ�˥塼��̵�����Ȥ���ͳ�Ǥ���"
+
+#: g10/helptext.c:85
+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"
+"����������̾������Ĺ���ơ����ڤˤ���֤������뤿��Ǥ���"
+
+#: g10/helptext.c:92
+msgid "Enter the size of the key"
+msgstr "����Ĺ�������Ϥ��Ʋ�����"
+
+#: g10/helptext.c:96 g10/helptext.c:101 g10/helptext.c:113 g10/helptext.c:145
+#: g10/helptext.c:150 g10/helptext.c:155 g10/helptext.c:160
+msgid "Answer \"yes\" or \"no\""
+msgstr "\"yes\" �ޤ��� \"no\" �������Ʋ�����"
+
+#: g10/helptext.c:106
+msgid ""
+"Enter the required value as shown in the prompt.\n"
+"It is possible to enter a ISO date (YYYY-MM-DD) but you won't\n"
+"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"
+"�褦�˻�ߤޤ���"
+
+#: g10/helptext.c:118
+msgid "Enter the name of the key holder"
+msgstr "���ۥ����̾�������Ϥ��Ʋ�����"
+
+#: g10/helptext.c:123
+msgid "please enter an optional but highly suggested email address"
+msgstr "���ץ����Ǥ������Żҥ᡼�륢�ɥ쥹�����Ϥ��뤳�Ȥ򶯤��侩���ޤ�"
+
+#: g10/helptext.c:127
+msgid "Please enter an optional comment"
+msgstr "���ץ����Υ����Ȥ����Ϥ��Ʋ�����"
+
+#: g10/helptext.c:132
+msgid ""
+"N to change the name.\n"
+"C to change the comment.\n"
+"E to change the email address.\n"
+"O to continue with key generation.\n"
+"Q to to quit the key generation."
+msgstr ""
+"N ̾�����ѹ�\n"
+"C �����Ȥ��ѹ�\n"
+"E �Żҥ᡼�륢�ɥ쥹���ѹ�\n"
+"O ����������³��\n"
+"Q �������������"
+
+#: g10/helptext.c:141
+msgid "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
+msgstr "���������������硢\"yes\" (�ޤ��ϡ�ñ�� \"y\") �������Ʋ�������"
+
+#: g10/helptext.c:164
+msgid "Answer \"yes\" is you want to sign ALL the user IDs"
+msgstr "���Ƥ� �桼�� ID �˽�̾��������С�\"yes\" �������Ʋ�����"
+
+#: g10/helptext.c:168
+msgid ""
+"Answer \"yes\" if you really want to delete this user ID.\n"
+"All certificates are then also lost!"
+msgstr ""
+"�����Υ桼�� ID �� ������ �����������С�\"yes\" "
+"�������Ʋ��������Ƥξ������Ʊ���˺������ޤ�!"
+
+#: g10/helptext.c:173
+msgid "Answer \"yes\" if it is okay to delete the subkey"
+msgstr "�����������������硢\"yes\" �������Ʋ�����"
+
+#: g10/helptext.c:178
+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"
+"���פ�����Ǥ���"
+
+#: g10/helptext.c:183
+msgid ""
+"This signature can't be checked because you don't have the\n"
+"corresponding key. You should postpone its deletion until you\n"
+"know which key was used because this signing key might establish\n"
+"a trust connection through another already certified key."
+msgstr ""
+"���ν�̾�Ȱ��פ��븰����ͭ���Ƥ��ʤ��Τǡ����ν�̾�ϸ��ڤǤ��ޤ���\n"
+"���ʤ��Ϥ��θ������Ѥ����ޤǤϡ����ν�̾�κ������α����٤��Ǥ���\n"
+"���Τʤ顢���ν�̾�θ��ϡ�¾�ξ������줿���ˤ�äƿ��Ѥ��ؤ�������뤫��\n"
+"�Τ�ʤ�����Ǥ���"
+
+#: g10/helptext.c:189
+msgid ""
+"The signature is not valid. It does make sense to remove it from\n"
+"your keyring."
+msgstr ""
+"���ν�̾��ͭ���ǤϤ���ޤ��󡣤��Τ��Ȥϡ����ʤ��θ���󥰤��������٤���\n"
+"�Ȥ������Ȥ��̣���Ƥ��ޤ���"
+
+#: g10/helptext.c:193
+msgid ""
+"This is a signature which binds the user ID to the key. It is\n"
+"usually not a good idea to remove such a signature. Actually\n"
+"GnuPG might not be able to use this key anymore. So do this\n"
+"only if this self-signature is for some reason not valid and\n"
+"a second one is available."
+msgstr ""
+"����ϡ����Υ桼�� ID ���б�������̾�Ǥ����̾���ν�̾��������Τ�\n"
+"�ɤ��ͤ��ǤϤ���ޤ��󡣼ºݤˤϡ�GnuPG �Ϥ�Ϥ䤳�θ���Ȥ��ʤ��Τ���\n"
+"�Τ�ޤ��󡣤�äơ����μ��ʽ�̾�����餫����ͳ�ˤ��̵���Ǥ��äơ�\n"
+"���ؤȤʤ븰��������ˤΤߡ������¹Ԥ��Ʋ�������"
+
+#: g10/helptext.c:202
+msgid ""
+"Please enter the passhrase; this is a secret sentence \n"
+" Blurb, blurb,.... "
+msgstr ""
+"�ѥ��ե졼�������Ϥ��Ʋ��������������̩��ʸ�ϤΤ��ȤǤ���\n"
+" �ۥ��ۥ�.... "
+
+#: g10/helptext.c:209
+msgid "Please repeat the last passphrase, so you are sure what you typed in."
+msgstr "���Ϥ����ե졼�����ǧ���뤿��ˡ��ѥ��ե졼��������Ϥ��Ʋ�������"
+
+#: g10/helptext.c:213
+msgid "Give the name of the file to which the signature applies"
+msgstr "��̾��Ԥ��ե������̾���򵭽Ҥ��Ʋ�����"
+
+#: g10/helptext.c:218
+msgid "Answer \"yes\" if it is okay to overwrite the file"
+msgstr "��񤭤��Ƥ��ɤ���С�\"yes\" �������Ʋ�����"
+
+#: g10/helptext.c:223
+msgid ""
+"Please enter a new filename. If you just hit RETURN the default\n"
+"file (which is shown in brackets) will be used."
+msgstr ""
+"�������ե�����̾�����Ϥ��Ʋ�������ñ�˥꥿���󥭡��򲡤��ȡ�\n"
+"�ǥե���ȤΥե�����̾ (��̤ǰϤޤ줿���) �����Ѥ���ޤ�"
+
+#: g10/helptext.c:229
+msgid ""
+"You should specify a reason for the certification. Depending on the\n"
+"context you have the ability to choose from this list:\n"
+" \"Key has been compromised\"\n"
+" Use this if you have a reason to believe that unauthorized persons\n"
+" got access to your secret key.\n"
+" \"Key is superseeded\"\n"
+" Use this if you have replaced this key with a newer one.\n"
+" \"Key is no longer used\"\n"
+" Use this if you have retired this key.\n"
+" \"User ID is no longer valid\"\n"
+" 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 ""
+
+#: g10/helptext.c:245
+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 ""
+
+#: g10/helptext.c:260
+msgid "No help available"
+msgstr "�إ�פϤ���ޤ���"
+
+#: g10/helptext.c:268
+#, c-format
+msgid "No help available for `%s'"
+msgstr "`%s' �ؤΥإ�פϤ���ޤ���"
+
+#~ msgid "set debugging flags"
+#~ msgstr "�ǥХå��ե饰�򥻥åȤ���"
+
+#~ msgid "enable full debugging"
+#~ msgstr "���ƤΥǥХå���ͭ���ˤ���"
+
+#~ msgid "do not write comment packets"
+#~ msgstr "�����ȥѥ��åȤ�񤭽Ф��ʤ�"
+
+#~ msgid "(default is 1)"
+#~ msgstr "(�ǥե���Ȥ� 1)"
+
+#~ msgid "(default is 3)"
+#~ msgstr "(�ǥե���Ȥ� 3)"
+
+#~ msgid " (%d) ElGamal in a v3 packet\n"
+#~ msgstr " (%d) ElGamal in a v3 packet\n"
+
+#~ msgid "Key generation can only be used in interactive mode\n"
+#~ msgstr "���κ��������å⡼�ɤǤ����¹ԤǤ��ޤ���\n"
diff --git a/po/nl.po b/po/nl.po
new file mode 100644
index 000000000..bdaa50423
--- /dev/null
+++ b/po/nl.po
@@ -0,0 +1,3707 @@
+# Dutch messages for gnupg
+# Copyright (C) 2000 Free Software Foundation, Inc.
+# Ivo Timmermans <[email protected]>, 2000.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gnupg 1.0.0h\n"
+"POT-Creation-Date: 2000-05-30 13:59+0200\n"
+"PO-Revision-Date: 2000-02-20 21:30+01:00\n"
+"Last-Translator: Ivo Timmermans <[email protected]>\n"
+"Language-Team: Dutch <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: util/secmem.c:79
+msgid "Warning: using insecure memory!\n"
+msgstr "Let op: er wordt onveilig geheugen gebruikt!\n"
+
+#: util/secmem.c:287
+msgid "operation is not possible without initialized secure memory\n"
+msgstr "bewerking is niet mogelijk zonder initialisatie van veilig geheugen\n"
+
+#: util/secmem.c:288
+msgid "(you may have used the wrong program for this task)\n"
+msgstr "(misschien heb je hiervoor het verkeerde programma gebruikt)\n"
+
+#: util/miscutil.c:277 util/miscutil.c:306
+msgid "yes"
+msgstr "ja"
+
+#: util/miscutil.c:278 util/miscutil.c:309
+msgid "yY"
+msgstr "yYjJ"
+
+#: util/miscutil.c:279 util/miscutil.c:307
+msgid "no"
+msgstr "nee"
+
+#: util/miscutil.c:280 util/miscutil.c:310
+msgid "nN"
+msgstr "nN"
+
+#: g10/keyedit.c:580 util/miscutil.c:308
+msgid "quit"
+msgstr "einde"
+
+#: util/miscutil.c:311
+msgid "qQ"
+msgstr "qQeE"
+
+#: util/errors.c:54
+msgid "general error"
+msgstr "algemene fout"
+
+#: util/errors.c:55
+msgid "unknown packet type"
+msgstr "onbekend pakket type"
+
+#: util/errors.c:56
+msgid "unknown version"
+msgstr "onbekende versie"
+
+#: util/errors.c:57
+msgid "unknown pubkey algorithm"
+msgstr "onbekend publieke sleutel algoritme"
+
+#: util/errors.c:58
+msgid "unknown digest algorithm"
+msgstr "onbekend verteeralgoritme"
+
+#: util/errors.c:59
+msgid "bad public key"
+msgstr "foutieve publieke sleutel"
+
+#: util/errors.c:60
+msgid "bad secret key"
+msgstr "foutieve geheime sleutel"
+
+#: util/errors.c:61
+msgid "bad signature"
+msgstr "foutieve ondertekening"
+
+#: util/errors.c:62
+msgid "checksum error"
+msgstr "verkeerd controlegetal"
+
+#: util/errors.c:63
+msgid "bad passphrase"
+msgstr "verkeerde sleuteltekst"
+
+#: util/errors.c:64
+msgid "public key not found"
+msgstr "publieke sleutel niet gevonden"
+
+#: util/errors.c:65
+msgid "unknown cipher algorithm"
+msgstr "onbekend versleutelalgoritme"
+
+#: util/errors.c:66
+msgid "can't open the keyring"
+msgstr "kan de sleutelbos niet openen"
+
+#: util/errors.c:67
+msgid "invalid packet"
+msgstr "ongeldig pakket"
+
+#: util/errors.c:68
+msgid "invalid armor"
+msgstr "ongeldige versleuteling"
+
+#: util/errors.c:69
+msgid "no such user id"
+msgstr "niet-bestaand gebruikersnummer"
+
+#: util/errors.c:70
+msgid "secret key not available"
+msgstr "geheime sleutel niet beschikbaar"
+
+#: util/errors.c:71
+msgid "wrong secret key used"
+msgstr "verkeerde geheime sleutel gebruikt"
+
+#: util/errors.c:72
+msgid "not supported"
+msgstr "niet ondersteund"
+
+#: util/errors.c:73
+msgid "bad key"
+msgstr "foutieve sleutel"
+
+#: util/errors.c:74
+msgid "file read error"
+msgstr "leesfout op bestand"
+
+#: util/errors.c:75
+msgid "file write error"
+msgstr "schrijffout op bestand"
+
+#: util/errors.c:76
+msgid "unknown compress algorithm"
+msgstr "onbekend compressiealgoritme"
+
+#: util/errors.c:77
+msgid "file open error"
+msgstr "fout bij openen bestand"
+
+#: util/errors.c:78
+msgid "file create error"
+msgstr "fout bij aanmaken bestand"
+
+#: util/errors.c:79
+msgid "invalid passphrase"
+msgstr "ongeldige sleuteltekst"
+
+#: util/errors.c:80
+msgid "unimplemented pubkey algorithm"
+msgstr "publieke sleutel algoritme niet ge�mplementeerd"
+
+#: util/errors.c:81
+msgid "unimplemented cipher algorithm"
+msgstr "encryptie-algoritme niet ge�mplementeerd"
+
+#: util/errors.c:82
+msgid "unknown signature class"
+msgstr "onbekende klasse van ondertekeningen"
+
+#: util/errors.c:83
+msgid "trust database error"
+msgstr "fout in de vertrouwensrelatiedatabase"
+
+#: util/errors.c:84
+msgid "bad MPI"
+msgstr "foutieve MPI"
+
+#: util/errors.c:85
+msgid "resource limit"
+msgstr "hulpbronlimiet"
+
+#: util/errors.c:86
+msgid "invalid keyring"
+msgstr "ongeldige sleutelbos"
+
+#: util/errors.c:87
+msgid "bad certificate"
+msgstr "foutief certificaat"
+
+#: util/errors.c:88
+msgid "malformed user id"
+msgstr "ongeldige gebruikersidentificatie"
+
+#: util/errors.c:89
+msgid "file close error"
+msgstr "fout bij het sluiten van het bestand"
+
+#: util/errors.c:90
+msgid "file rename error"
+msgstr "fout bij het hernoemen van het bestand"
+
+#: util/errors.c:91
+msgid "file delete error"
+msgstr "fout bij het verwijderen van het bestand"
+
+#: util/errors.c:92
+msgid "unexpected data"
+msgstr "onverwachte gegevens"
+
+#: util/errors.c:93
+msgid "timestamp conflict"
+msgstr "tijden komen niet overeen"
+
+#: util/errors.c:94
+msgid "unusable pubkey algorithm"
+msgstr "onbruikbaar publieke sleutel-algoritme"
+
+#: util/errors.c:95
+msgid "file exists"
+msgstr "bestand bestaat al"
+
+#: util/errors.c:96
+msgid "weak key"
+msgstr "onveilige sleutel"
+
+#: util/errors.c:97
+msgid "invalid argument"
+msgstr "ongeldig argument"
+
+#: util/errors.c:98
+msgid "bad URI"
+msgstr "foutieve URI"
+
+#: util/errors.c:99
+msgid "unsupported URI"
+msgstr "URI wordt niet ondersteund"
+
+#: util/errors.c:100
+msgid "network error"
+msgstr "netwerkfout"
+
+#: util/errors.c:102
+msgid "not encrypted"
+msgstr "niet versleuteld"
+
+#: util/errors.c:103
+msgid "not processed"
+msgstr "niet behandeld"
+
+#: util/logger.c:224
+#, c-format
+msgid "... this is a bug (%s:%d:%s)\n"
+msgstr "... dit is een programmeerfout (%s:%d:%s)\n"
+
+#: util/logger.c:230
+#, c-format
+msgid "you found a bug ... (%s:%d)\n"
+msgstr "u heeft een fout in het programma gevonden ... (%s:%d)\n"
+
+#: cipher/random.c:311 g10/import.c:127 g10/keygen.c:1150
+#, c-format
+msgid "can't open `%s': %s\n"
+msgstr "kan `%s' niet openen: %s\n"
+
+#: cipher/random.c:315
+#, fuzzy, c-format
+msgid "can't stat `%s': %s\n"
+msgstr "kan `%s' niet openen: %s\n"
+
+#: cipher/random.c:320
+#, c-format
+msgid "`%s' is not a regular file - ignored\n"
+msgstr ""
+
+#: cipher/random.c:325
+msgid "note: random_seed file is empty\n"
+msgstr ""
+
+#: cipher/random.c:331
+msgid "warning: invalid size of random_seed file - not used\n"
+msgstr ""
+
+#: cipher/random.c:339
+#, fuzzy, c-format
+msgid "can't read `%s': %s\n"
+msgstr "kan `%s' niet openen: %s\n"
+
+#: cipher/random.c:377
+msgid "note: random_seed file not updated\n"
+msgstr ""
+
+#: cipher/random.c:397
+#, fuzzy, c-format
+msgid "can't create `%s': %s\n"
+msgstr "kan %s niet aanmaken: %s\n"
+
+#: cipher/random.c:404
+#, fuzzy, c-format
+msgid "can't write `%s': %s\n"
+msgstr "kan `%s' niet openen: %s\n"
+
+#: cipher/random.c:407
+#, fuzzy, c-format
+msgid "can't close `%s': %s\n"
+msgstr "kan `%s' niet openen: %s\n"
+
+#: cipher/random.c:418
+#, c-format
+msgid "too many random bits requested; the limit is %d\n"
+msgstr ""
+
+#: cipher/random.c:647
+msgid "WARNING: using insecure random number generator!!\n"
+msgstr "LET OP: de willekeurige getallengenerator is niet veilig!!\n"
+
+#: cipher/random.c:648
+msgid ""
+"The random number generator is only a kludge to let\n"
+"it run - it is in no way a strong RNG!\n"
+"\n"
+"DON'T USE ANY DATA GENERATED BY THIS PROGRAM!!\n"
+"\n"
+msgstr ""
+"De willekeurige getallengenerator is slechts een slordige oplossing om\n"
+"het te laten werken - het is in geen geval een echte WGG!\n"
+"\n"
+"Gebruik geen enkele gegevens die door dit programma gegenereerd zijn!!\n"
+"\n"
+
+#: cipher/rndlinux.c:141
+#, c-format
+msgid ""
+"\n"
+"Not enough random bytes available. Please do some other work to give\n"
+"the OS a chance to collect more entropy! (Need %d more bytes)\n"
+msgstr ""
+"\n"
+"Niet genoeg willekeurige gegevens beschikbaar. Ga wat ander werk doen\n"
+"om het besturingssysteem de kans te geven om meer entropie te\n"
+"verzamelen! (Nog %d bytes nodig)\n"
+
+#: g10/g10.c:195
+msgid ""
+"@Commands:\n"
+" "
+msgstr ""
+"@Opdrachten:\n"
+" "
+
+#: g10/g10.c:197
+msgid "|[file]|make a signature"
+msgstr "|[bestand]|maak een ondertekening"
+
+#: g10/g10.c:198
+msgid "|[file]|make a clear text signature"
+msgstr "|[bestand]|maak een niet versleutelde ondertekening"
+
+#: g10/g10.c:199
+msgid "make a detached signature"
+msgstr "maak een losstaande ondertekening"
+
+#: g10/g10.c:200
+msgid "encrypt data"
+msgstr "versleutel gegevens"
+
+#: g10/g10.c:201
+msgid "encryption only with symmetric cipher"
+msgstr "versleutel slechts met een symmetrische versleutelmethode"
+
+#: g10/g10.c:202
+msgid "store only"
+msgstr "alleen bewaren"
+
+#: g10/g10.c:203
+msgid "decrypt data (default)"
+msgstr "gegevens decoderen (standaard)"
+
+#: g10/g10.c:204
+msgid "verify a signature"
+msgstr "ondertekening controleren"
+
+#: g10/g10.c:206
+msgid "list keys"
+msgstr "lijst van sleutels genereren"
+
+#: g10/g10.c:208
+msgid "list keys and signatures"
+msgstr "sleutels en ondertekeningen opnoemen"
+
+#: g10/g10.c:209
+msgid "check key signatures"
+msgstr "sleutelverificaties controleren"
+
+#: g10/g10.c:210
+msgid "list keys and fingerprints"
+msgstr "sleutels en vingerafdrukken opnoemen"
+
+#: g10/g10.c:211
+msgid "list secret keys"
+msgstr "geheime sleutels opnoemen"
+
+#: g10/g10.c:212
+msgid "generate a new key pair"
+msgstr "nieuw sleutelpaar genereren"
+
+#: g10/g10.c:213
+msgid "remove key from the public keyring"
+msgstr "sleutel weghalen uit de publieke sleutelbos"
+
+#: g10/g10.c:215
+msgid "remove key from the secret keyring"
+msgstr "sleutel weghalen uit de geheime sleutelbos"
+
+#: g10/g10.c:216
+msgid "sign a key"
+msgstr "onderteken een sleutel"
+
+#: g10/g10.c:217
+msgid "sign a key locally"
+msgstr "onderteken een sleutel lokaal"
+
+#: g10/g10.c:218
+msgid "sign or edit a key"
+msgstr "onderteken of bewerk een sleutel"
+
+#: g10/g10.c:219
+msgid "generate a revocation certificate"
+msgstr "genereer een terugtrekkings-certificaat"
+
+#: g10/g10.c:220
+msgid "export keys"
+msgstr "exporteer sleutels"
+
+#: g10/g10.c:221
+msgid "export keys to a key server"
+msgstr "exporteer sleutels naar een sleutelserver"
+
+#: g10/g10.c:222
+msgid "import keys from a key server"
+msgstr "importeer sleutels van een sleutelserver"
+
+#: g10/g10.c:226
+msgid "import/merge keys"
+msgstr "sleutels importeren/samenvoegen"
+
+#: g10/g10.c:228
+msgid "list only the sequence of packets"
+msgstr "noem alleen de volgorde van pakketten"
+
+#: g10/g10.c:230
+msgid "export the ownertrust values"
+msgstr "exporteer het vertrouwen in de eigenaars"
+
+#: g10/g10.c:232
+msgid "import ownertrust values"
+msgstr "importeer het vertrouwen in de eigenaars"
+
+#: g10/g10.c:234
+msgid "update the trust database"
+msgstr "werk de vertrouwensdatabase bij"
+
+#: g10/g10.c:236
+msgid "|[NAMES]|check the trust database"
+msgstr "|[NAMEN]|controleer de vertrouwensdatabase"
+
+#: g10/g10.c:237
+msgid "fix a corrupted trust database"
+msgstr "repareer een beschadigde vertrouwensdatabase"
+
+#: g10/g10.c:238
+msgid "De-Armor a file or stdin"
+msgstr "Verwijder de beveiliging op bestand of standaard invoer"
+
+#: g10/g10.c:240
+msgid "En-Armor a file or stdin"
+msgstr "Voeg beveiliging toe aan bestad of standaard invoer"
+
+#: g10/g10.c:242
+msgid "|algo [files]|print message digests"
+msgstr "|algo [bestanden]|geef controlegetal van berichten weer"
+
+#: g10/g10.c:246
+msgid ""
+"@\n"
+"Options:\n"
+" "
+msgstr ""
+"@\n"
+"Opties:\n"
+" "
+
+#: g10/g10.c:248
+msgid "create ascii armored output"
+msgstr "genereer beveiliging in ASCII"
+
+#: g10/g10.c:250
+msgid "|NAME|encrypt for NAME"
+msgstr "|NAAM|versleutel voor NAAM"
+
+#: g10/g10.c:253
+msgid "|NAME|use NAME as default recipient"
+msgstr "|NAAM|gebruik NAAM als standaard ontvanger"
+
+#: g10/g10.c:255
+msgid "use the default key as default recipient"
+msgstr "gebruik de standaard sleutel als standaard ontvanger"
+
+#: g10/g10.c:259
+msgid "use this user-id to sign or decrypt"
+msgstr ""
+"gebruik deze gebruikersidentificatie om te ondertekenen of te decoderen"
+
+#: g10/g10.c:260
+msgid "|N|set compress level N (0 disables)"
+msgstr "|N|stel compressieniveau in op N (uitzetten met 0)"
+
+#: g10/g10.c:262
+msgid "use canonical text mode"
+msgstr "gebruik de verkorte tekstmodus"
+
+#: g10/g10.c:263
+msgid "use as output file"
+msgstr "gebruik als uitvoerbestand"
+
+#: g10/g10.c:264
+msgid "verbose"
+msgstr "geef meer informatie"
+
+#: g10/g10.c:265
+msgid "be somewhat more quiet"
+msgstr "wees iets stiller"
+
+#: g10/g10.c:266
+msgid "don't use the terminal at all"
+msgstr "gebruik de terminal helemaal niet"
+
+#: g10/g10.c:267
+msgid "force v3 signatures"
+msgstr "forcees v3 ondertekening"
+
+#: g10/g10.c:268
+msgid "always use a MDC for encryption"
+msgstr "gebruik altijd een MDC voor versleuteling"
+
+#: g10/g10.c:269
+msgid "do not make any changes"
+msgstr "maak geen enkele verandering"
+
+#. { oInteractive, "interactive", 0, N_("prompt before overwriting") },
+#: g10/g10.c:271
+msgid "batch mode: never ask"
+msgstr "doorlopende modus: vraag nooit"
+
+#: g10/g10.c:272
+msgid "assume yes on most questions"
+msgstr "veronderstel ja als antwoord op de meeste vragen"
+
+#: g10/g10.c:273
+msgid "assume no on most questions"
+msgstr "veronderstel nee als antwoord op de meeste vragen"
+
+#: g10/g10.c:274
+msgid "add this keyring to the list of keyrings"
+msgstr "voeg deze sleutelbos toe aan de lijst van sleutelbossen"
+
+#: g10/g10.c:275
+msgid "add this secret keyring to the list"
+msgstr "voeg deze geheime sleutelbos toe aan de lijst"
+
+#: g10/g10.c:276
+msgid "|NAME|use NAME as default secret key"
+msgstr "|NAAM|gebruik NAAM als standaard geheime sleutel"
+
+#: g10/g10.c:277
+msgid "|HOST|use this keyserver to lookup keys"
+msgstr "|SERVER|gebruik deze sleutelserver om sleutels op te zoeken"
+
+#: g10/g10.c:278
+msgid "|NAME|set terminal charset to NAME"
+msgstr "|NAAM|zet tekenverzameling van terminal op NAAM"
+
+#: g10/g10.c:279
+msgid "read options from file"
+msgstr "lees opties uit bestand"
+
+#: g10/g10.c:283
+msgid "|FD|write status info to this FD"
+msgstr "|BB|schrijf status naar deze bestandsbeschrijver"
+
+#: g10/g10.c:288
+msgid "|FILE|load extension module FILE"
+msgstr "|BESTAND|laad extensiemodule BESTAND"
+
+#: g10/g10.c:289
+msgid "emulate the mode described in RFC1991"
+msgstr "doe als RFC1991 voorschrijft"
+
+#: g10/g10.c:290
+msgid "set all packet, cipher and digest options to OpenPGP behavior"
+msgstr "zet alle pakket-, versleutel- en controle-opties naar OpenPGP gedrag"
+
+#: g10/g10.c:291
+msgid "|N|use passphrase mode N"
+msgstr "|N|gebruik sleuteltekst modus N"
+
+#: g10/g10.c:293
+msgid "|NAME|use message digest algorithm NAME for passphrases"
+msgstr "|NAAM|gebruik berichtsamenvattingsalgoritme NAAM voor sleutelteksten"
+
+#: g10/g10.c:295
+msgid "|NAME|use cipher algorithm NAME for passphrases"
+msgstr "|NAAM|gebruik versleutelalgoritme NAAM voor sleutelteksten"
+
+#: g10/g10.c:296
+msgid "|NAME|use cipher algorithm NAME"
+msgstr "|NAAM|gebruik versleutelalgoritme NAAM"
+
+#: g10/g10.c:297
+msgid "|NAME|use message digest algorithm NAME"
+msgstr "|NAAM|gebruik berichtsamenvattingsalgoritme NAAM"
+
+#: g10/g10.c:298
+msgid "|N|use compress algorithm N"
+msgstr "|N|gebruik compressiealgoritme N"
+
+#: g10/g10.c:299
+msgid "throw keyid field of encrypted packets"
+msgstr "plaats geen sleutelidentificatieveld in versleutelde pakketten"
+
+#: g10/g10.c:300
+msgid "|NAME=VALUE|use this notation data"
+msgstr "|NAAM=WAARDE|gebruik deze notitiegegevens"
+
+#: g10/g10.c:303
+msgid ""
+"@\n"
+"(See the man page for a complete listing of all commands and options)\n"
+msgstr ""
+
+#: g10/g10.c:306
+msgid ""
+"@\n"
+"Examples:\n"
+"\n"
+" -se -r Bob [file] sign and encrypt for user Bob\n"
+" --clearsign [file] make a clear text signature\n"
+" --detach-sign [file] make a detached signature\n"
+" --list-keys [names] show keys\n"
+" --fingerprint [names] show fingerprints\n"
+msgstr ""
+"@\n"
+"Voorbeelden:\n"
+"\n"
+" -se -r Bob [bestand] teken en versleutel voor Bob\n"
+" --clearsign [bestand] genereer een leesbare ondertekening\n"
+" --detach-sign [bestand] genereer een losstaande ondertekening\n"
+" --list-keys [namen] toon sleutels\n"
+" --fingerprints [namen] toon vingerafdrukken\n"
+
+#: g10/g10.c:399
+msgid "Please report bugs to <[email protected]>.\n"
+msgstr ""
+"Meld fouten in het programma a.u.b. aan <[email protected]>;\n"
+"fouten in de vertaling aan <[email protected]>.\n"
+
+#: g10/g10.c:403
+msgid "Usage: gpg [options] [files] (-h for help)"
+msgstr "Gebruik: gpg [opties] [bestanden] (-h voor hulp)"
+
+#: g10/g10.c:406
+msgid ""
+"Syntax: gpg [options] [files]\n"
+"sign, check, encrypt or decrypt\n"
+"default operation depends on the input data\n"
+msgstr ""
+"Syntaxis: gpg [opties] [bestanden]\n"
+"onderteken, controleer, versleutel of decodeer de ingevoerde gegevens\n"
+"standaardactie hangt af van de gegevens\n"
+
+#: g10/g10.c:413
+msgid ""
+"\n"
+"Supported algorithms:\n"
+msgstr ""
+"\n"
+"Ondersteunde algoritmes:\n"
+
+#: g10/g10.c:492
+msgid "usage: gpg [options] "
+msgstr "gebruik: gpg [opties] "
+
+#: g10/g10.c:545
+msgid "conflicting commands\n"
+msgstr "tegenstrijdige commando's\n"
+
+#: g10/g10.c:687
+#, c-format
+msgid "NOTE: no default option file `%s'\n"
+msgstr "LET OP: geen bestand `%s' met standaardopties\n"
+
+#: g10/g10.c:691
+#, c-format
+msgid "option file `%s': %s\n"
+msgstr "optiebestand `%s': %s\n"
+
+#: g10/g10.c:698
+#, c-format
+msgid "reading options from `%s'\n"
+msgstr "opties inlezen van `%s'\n"
+
+#: g10/g10.c:885
+#, c-format
+msgid "%s is not a valid character set\n"
+msgstr "%s is een onbekende tekenverzameling\n"
+
+#: g10/g10.c:945 g10/g10.c:954
+#, c-format
+msgid "NOTE: %s is not for normal use!\n"
+msgstr "LET OP: %s is niet voor gewoon gebruik!\n"
+
+#: g10/g10.c:947
+#, c-format
+msgid "%s not allowed with %s!\n"
+msgstr "%s is niet toegestaan met deze %s!\n"
+
+#: g10/g10.c:950
+#, c-format
+msgid "%s makes no sense with %s!\n"
+msgstr "%s heeft geen betekenis met %s!\n"
+
+#: g10/g10.c:969 g10/g10.c:981
+msgid "selected cipher algorithm is invalid\n"
+msgstr "geselecteerd versleutelalgoritme is ongeldig\n"
+
+#: g10/g10.c:975 g10/g10.c:987
+msgid "selected digest algorithm is invalid\n"
+msgstr "geselecteerd controle-algoritme is ongeldig\n"
+
+#: g10/g10.c:991
+msgid "the given policy URL is invalid\n"
+msgstr "de gegeven beleids-URL is ongeldig\n"
+
+#: g10/g10.c:994
+#, c-format
+msgid "compress algorithm must be in range %d..%d\n"
+msgstr "compressie-algoritme moet in het bereik %d..%d liggen\n"
+
+#: g10/g10.c:996
+msgid "completes-needed must be greater than 0\n"
+msgstr "completes-needed(?) moet groter zijn dan 0\n"
+
+#: g10/g10.c:998
+msgid "marginals-needed must be greater than 1\n"
+msgstr "marginals-needed(?) moet groter zijn dan 1\n"
+
+#: g10/g10.c:1000
+msgid "max-cert-depth must be in range 1 to 255\n"
+msgstr "max-cert-depth moet tussen de 1 en de 255 (inclusief) liggen\n"
+
+#: g10/g10.c:1003
+msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
+msgstr "LET OP: simpele S2K mode (0) wordt met klem afgeraden\n"
+
+#: g10/g10.c:1007
+msgid "invalid S2K mode; must be 0, 1 or 3\n"
+msgstr "ongeldige S2K modus; moet 0, 1 of 3 zijn\n"
+
+#: g10/g10.c:1092
+#, c-format
+msgid "failed to initialize the TrustDB: %s\n"
+msgstr "fout bij het initialiseren van de vertrouwensdatabase: %s\n"
+
+#: g10/g10.c:1098
+msgid "--store [filename]"
+msgstr "--store [bestandsnaam]"
+
+#: g10/g10.c:1105
+msgid "--symmetric [filename]"
+msgstr "--symmetric [bestandsnaam]"
+
+#: g10/g10.c:1113
+msgid "--encrypt [filename]"
+msgstr "--encrypt [bestandsnaam]"
+
+#: g10/g10.c:1126
+msgid "--sign [filename]"
+msgstr "--sign [bestandsnaam]"
+
+#: g10/g10.c:1139
+msgid "--sign --encrypt [filename]"
+msgstr "--sign --encrypt [bestandsnaam]"
+
+#: g10/g10.c:1153
+msgid "--clearsign [filename]"
+msgstr "--clearsign [bestandsnaam]"
+
+#: g10/g10.c:1170
+msgid "--decrypt [filename]"
+msgstr "--decrypt [bestandsnaam]"
+
+#: g10/g10.c:1178
+msgid "--sign-key user-id"
+msgstr "--sign-key gebruikersidentificatie"
+
+#: g10/g10.c:1186
+msgid "--lsign-key user-id"
+msgstr "--lsign-key gebruikers-identificatie"
+
+#: g10/g10.c:1194
+msgid "--edit-key user-id [commands]"
+msgstr "--edit-key gebruikersidentificatie [opdrachten]"
+
+#: g10/g10.c:1210
+msgid "--delete-secret-key user-id"
+msgstr "--delete-secret-key gebruikersidentificatie"
+
+#: g10/g10.c:1213
+msgid "--delete-key user-id"
+msgstr "--delete-key gebruikersidentificatie"
+
+#: g10/encode.c:260 g10/g10.c:1250 g10/sign.c:373
+#, c-format
+msgid "can't open %s: %s\n"
+msgstr "kan %s niet openen: %s\n"
+
+#: g10/g10.c:1265
+msgid "-k[v][v][v][c] [user-id] [keyring]"
+msgstr "-k[v][v][v][c] [gebruikersidentificatie] [sleutelbos]"
+
+#: g10/g10.c:1331
+#, c-format
+msgid "dearmoring failed: %s\n"
+msgstr "opheffen van beveiliging mislukt: %s\n"
+
+#: g10/g10.c:1339
+#, c-format
+msgid "enarmoring failed: %s\n"
+msgstr "beveiligen mislukt: %s\n"
+
+#: g10/g10.c:1407
+#, c-format
+msgid "invalid hash algorithm `%s'\n"
+msgstr "ongeldig frommelalgoritme `%s'\n"
+
+#: g10/g10.c:1488
+msgid "[filename]"
+msgstr "[bestandsnaam]"
+
+#: g10/g10.c:1492
+msgid "Go ahead and type your message ...\n"
+msgstr "Gaat uw gang, type het bericht ...\n"
+
+#: g10/decrypt.c:59 g10/g10.c:1495 g10/verify.c:68 g10/verify.c:113
+#, c-format
+msgid "can't open `%s'\n"
+msgstr "kan `%s' niet openen\n"
+
+#: g10/g10.c:1665
+msgid ""
+"the first character of a notation name must be a letter or an underscore\n"
+msgstr ""
+"het eerste teken van een notitienaam moet een letter of laag liggend steepje "
+"zijn\n"
+
+#: g10/g10.c:1671
+msgid ""
+"a notation name must have only letters, digits, dots or underscores and end "
+"with an '='\n"
+msgstr ""
+"een notitienaam mag alleen letters, cijfers, punten of underscores bevatten "
+"en eindig met een =\n"
+
+#: g10/g10.c:1677
+msgid "dots in a notation name must be surrounded by other characters\n"
+msgstr "punten in notitienamen moeten omgeven zijn door andere tekens\n"
+
+#: g10/g10.c:1685
+msgid "a notation value must not use any control characters\n"
+msgstr "een notitienaam mag geen controletekens bevatten\n"
+
+#: g10/armor.c:302
+#, c-format
+msgid "armor: %s\n"
+msgstr "beveiliging: %s\n"
+
+#: g10/armor.c:331
+msgid "invalid armor header: "
+msgstr "ongeldige beveiliginsinformatie: "
+
+#: g10/armor.c:338
+msgid "armor header: "
+msgstr "beveiligingsinformatie"
+
+#: g10/armor.c:349
+msgid "invalid clearsig header\n"
+msgstr "ongeldige informatie over leesbare ondertekening\n"
+
+#: g10/armor.c:401
+msgid "nested clear text signatures\n"
+msgstr "geneste leesbare ondertekeningen\n"
+
+#: g10/armor.c:525
+msgid "invalid dash escaped line: "
+msgstr "ongeldige regel met streepjes: "
+
+#: g10/armor.c:537
+msgid "unexpected armor:"
+msgstr "onverwachte beveiliging:"
+
+#: g10/armor.c:654
+#, c-format
+msgid "invalid radix64 character %02x skipped\n"
+msgstr "ongeldig wortel64 teken %02x overgeslagen\n"
+
+#: g10/armor.c:697
+msgid "premature eof (no CRC)\n"
+msgstr "voortijdig einde (geen controlesom)\n"
+
+#: g10/armor.c:731
+msgid "premature eof (in CRC)\n"
+msgstr "voortijdig einde (in controlesom)\n"
+
+#: g10/armor.c:735
+msgid "malformed CRC\n"
+msgstr "verkeerde controlesom\n"
+
+#: g10/armor.c:739
+#, c-format
+msgid "CRC error; %06lx - %06lx\n"
+msgstr "fout in controlesom; %06lx - %06lx\n"
+
+# fixme
+#: g10/armor.c:756
+msgid "premature eof (in Trailer)\n"
+msgstr "voortijdig einde (in trailer)\n"
+
+# fixme
+#: g10/armor.c:760
+msgid "error in trailer line\n"
+msgstr "fout in de trailer regel\n"
+
+#: g10/armor.c:912
+msgid "For info see http://www.gnupg.org"
+msgstr ""
+
+#: g10/armor.c:1033
+msgid "no valid OpenPGP data found.\n"
+msgstr "geen geldige OpenPGP gegevens gevonden.\n"
+
+#: g10/armor.c:1038
+#, c-format
+msgid "invalid armor: line longer than %d characters\n"
+msgstr "ongeldige beveiliging: regel langer dan %d tekens\n"
+
+#: g10/armor.c:1042
+msgid ""
+"quoted printable character in armor - probably a buggy MTA has been used\n"
+msgstr ""
+"aangehaald gewoon teken in beveiliging - waaschijnlijk is er een foutief "
+"mailbezorgprogramma gebruikt\n"
+
+#. Translators: this shoud fit into 24 bytes to that the fingerprint
+#. * data is properly aligned with the user ID
+#: g10/pkclist.c:53
+msgid " Fingerprint:"
+msgstr " Vingerafdruk:"
+
+#: g10/pkclist.c:80
+msgid "Fingerprint:"
+msgstr "Vingerafdruk:"
+
+#: g10/pkclist.c:116
+msgid "No reason specified"
+msgstr ""
+
+#: g10/pkclist.c:118
+#, fuzzy
+msgid "Key is superseeded"
+msgstr "Sleutel is beveiligd.\n"
+
+#: g10/pkclist.c:120
+#, fuzzy
+msgid "Key has been compromised"
+msgstr "Deze sleutel is niet beschikbaar"
+
+#: g10/pkclist.c:122
+msgid "Key is no longer used"
+msgstr ""
+
+#: g10/pkclist.c:124
+msgid "User ID is no longer valid"
+msgstr ""
+
+#: g10/pkclist.c:128
+msgid "Reason for revocation: "
+msgstr ""
+
+#: g10/pkclist.c:145
+msgid "Revocation comment: "
+msgstr ""
+
+#. a string with valid answers
+#: g10/pkclist.c:303
+msgid "sSmMqQ"
+msgstr "sSmMqQ"
+
+#: g10/pkclist.c:307
+#, c-format
+msgid ""
+"No trust value assigned to %lu:\n"
+"%4u%c/%08lX %s \""
+msgstr ""
+"Geen vertrouwenswaarde toegekend aan %lu:\n"
+"%4u%c/%08lX %s \""
+
+#: g10/pkclist.c:319
+msgid ""
+"Please decide how far you trust this user to correctly\n"
+"verify other users' keys (by looking at passports,\n"
+"checking fingerprints from different sources...)?\n"
+"\n"
+" 1 = Don't know\n"
+" 2 = I do NOT trust\n"
+" 3 = I trust marginally\n"
+" 4 = I trust fully\n"
+" s = please show me more information\n"
+msgstr ""
+"Geef aan hoezeer je deze gebruiker vertrouwt om de sleutels van andere\n"
+"gebruikers correct te verifieren (door naar paspoorten of\n"
+"vingerafdrukken van andere bronnen te kijken...) ?\n"
+"\n"
+" 1 = Geen idee\n"
+" 2 = Ik vertrouw hem niet\n"
+" 3 = Ik vertrouw hem maar ten dele\n"
+" 4 = Ik vertrouw hem volledig\n"
+" s = Geef wat meer informatie\n"
+
+#: g10/pkclist.c:328
+msgid " m = back to the main menu\n"
+msgstr " m = terug naar hoofdmenu\n"
+
+#: g10/pkclist.c:330
+msgid " q = quit\n"
+msgstr " q = be�indigen\n"
+
+#: g10/pkclist.c:336
+msgid "Your decision? "
+msgstr "Uw keuze? "
+
+#: g10/pkclist.c:358
+msgid "Certificates leading to an ultimately trusted key:\n"
+msgstr "Certificaten die leiden tot een volledig betrouwbare sleutel:\n"
+
+#: g10/pkclist.c:429
+msgid ""
+"Could not find a valid trust path to the key. Let's see whether we\n"
+"can assign some missing owner trust values.\n"
+"\n"
+msgstr ""
+"Kon geen pad vinden dat leidt tot vertrouwen van de sleutel. Laten we\n"
+"eens proberen of we wat missende waarden kunnen invullen.\n"
+"\n"
+
+#: g10/pkclist.c:435
+msgid ""
+"No path leading to one of our keys found.\n"
+"\n"
+msgstr ""
+"Geen pad gevonden dat leidt naar een van onze sleutels.\n"
+"\n"
+
+#: g10/pkclist.c:437
+msgid ""
+"No certificates with undefined trust found.\n"
+"\n"
+msgstr ""
+"Geen certificaten gevonden zonder betrouwbaarheidswaarden.\n"
+"\n"
+
+#: g10/pkclist.c:439
+msgid ""
+"No trust values changed.\n"
+"\n"
+msgstr ""
+"Betrouwbaarheidswaarden zijn niet veranderd.\n"
+"\n"
+
+#: g10/pkclist.c:457
+#, c-format
+msgid "key %08lX: key has been revoked!\n"
+msgstr "sleutel %08lx: sleutel is teruggeroepen!\n"
+
+#: g10/pkclist.c:464 g10/pkclist.c:476 g10/pkclist.c:598
+msgid "Use this key anyway? "
+msgstr "Deze sleutel toch gebruiken? "
+
+#: g10/pkclist.c:469
+#, c-format
+msgid "key %08lX: subkey has been revoked!\n"
+msgstr "sleutel %08lx: subsleutel is teruggeroepen!\n"
+
+#: g10/pkclist.c:512
+#, c-format
+msgid "%08lX: key has expired\n"
+msgstr "%08lx: sleutel is verlopen\n"
+
+#: g10/pkclist.c:518
+#, c-format
+msgid "%08lX: no info to calculate a trust probability\n"
+msgstr "%08lx: geen informatie om een betrouwbaarheidskans te berekenen\n"
+
+#: g10/pkclist.c:533
+#, c-format
+msgid "%08lX: We do NOT trust this key\n"
+msgstr "%08lx: We vertrouwen deze sleutel NIET\n"
+
+#: g10/pkclist.c:539
+#, c-format
+msgid ""
+"%08lX: It is not sure that this key really belongs to the owner\n"
+"but it is accepted anyway\n"
+msgstr ""
+"%08lx: Het is niet helemaal zeker dat deze sleutel echt aan de\n"
+"eigenaar toebehoort, maar ik accepteer hem toch\n"
+
+#: g10/pkclist.c:545
+msgid "This key probably belongs to the owner\n"
+msgstr "Deze sleutel behoort waarschijnlijk toe aan de eigenaar\n"
+
+#: g10/pkclist.c:550
+msgid "This key belongs to us\n"
+msgstr "Deze sleutel is van ons\n"
+
+#: g10/pkclist.c:593
+msgid ""
+"It is NOT certain that the key belongs to its owner.\n"
+"If you *really* know what you are doing, you may answer\n"
+"the next question with yes\n"
+"\n"
+msgstr ""
+"Het is NIET zeker dat deze sleutel van de eigenaar is. Als je\n"
+"*echt* weet waar je mee bezig bent, mag je de volgende vraag\n"
+"beantwoorden met ja\n"
+"\n"
+
+#: g10/pkclist.c:607 g10/pkclist.c:630
+msgid "WARNING: Using untrusted key!\n"
+msgstr "LET OP: Ik gebruik een onbetrouwbare sleutel!\n"
+
+#: g10/pkclist.c:651
+msgid "WARNING: This key has been revoked by its owner!\n"
+msgstr "LET OP: Deze sleutel is ingetrokken door de eigenaar!\n"
+
+#: g10/pkclist.c:652
+msgid " This could mean that the signature is forgery.\n"
+msgstr ""
+" Dit zou kunnen betekenen dat de ondertekening een vervalsing is.\n"
+
+#: g10/pkclist.c:657
+msgid "WARNING: This subkey has been revoked by its owner!\n"
+msgstr "LET OP: Deze subsleutel is ingetrokken door de eigenaar!\n"
+
+#: g10/pkclist.c:679
+msgid "Note: This key has expired!\n"
+msgstr "Let op: Deze sleutel is verlopen!\n"
+
+#: g10/pkclist.c:687
+msgid "WARNING: This key is not certified with a trusted signature!\n"
+msgstr ""
+"LET OP: Deze sleutel is niet getekend met een betrouwbare ondertekening!\n"
+
+#: g10/pkclist.c:689
+msgid ""
+" There is no indication that the signature belongs to the owner.\n"
+msgstr ""
+" Er is geen indicatie dat deze ondertekening van de eigenaar is.\n"
+
+#: g10/pkclist.c:706
+msgid "WARNING: We do NOT trust this key!\n"
+msgstr "LET OP: We vertrouwen NIET op deze sleutel!\n"
+
+#: g10/pkclist.c:707
+msgid " The signature is probably a FORGERY.\n"
+msgstr " De sleutel is waarschijnlijk VERVALST.\n"
+
+#: g10/pkclist.c:714
+msgid ""
+"WARNING: This key is not certified with sufficiently trusted signatures!\n"
+msgstr ""
+"LET OP: Deze sleutel is niet getekend met genoeg betrouwbare "
+"ondertekeningen!\n"
+
+#: g10/pkclist.c:717
+msgid " It is not certain that the signature belongs to the owner.\n"
+msgstr ""
+" Het is niet zeker dat deze ondertekening toebehoort aan de "
+"eigenaar.\n"
+
+#: g10/pkclist.c:819 g10/pkclist.c:841 g10/pkclist.c:967 g10/pkclist.c:1012
+#, c-format
+msgid "%s: skipped: %s\n"
+msgstr "%s: overgeslagen: %s\n"
+
+#: g10/pkclist.c:827 g10/pkclist.c:994
+#, c-format
+msgid "%s: skipped: public key already present\n"
+msgstr "%s: overgeslagen: openbare sleutel is al aanwezig\n"
+
+#: g10/pkclist.c:854
+msgid ""
+"You did not specify a user ID. (you may use \"-r\")\n"
+"\n"
+msgstr ""
+"Je gaf geen gebruikersidentificatie op. (je kunt \"-r\" gebruiken)\n"
+"\n"
+
+#: g10/pkclist.c:864
+msgid "Enter the user ID: "
+msgstr "Geef de gebruikersidentificatie: "
+
+#: g10/pkclist.c:876
+msgid "No such user ID.\n"
+msgstr "Gebruiker bestaat niet.\n"
+
+#: g10/pkclist.c:881
+msgid "skipped: public key already set as default recipient\n"
+msgstr ""
+"overgeslagen: openbare sleutel is al ingesteld als de standaard ontvanger\n"
+
+# fixme
+#: g10/pkclist.c:904
+msgid "Public key is disabled.\n"
+msgstr "Openbare sleutel is niet toegankelijk.\n"
+
+#: g10/pkclist.c:911
+msgid "skipped: public key already set with --encrypt-to\n"
+msgstr "overgeslagen: openbare sleutel is al ingesteld met --encrypt-to\n"
+
+#: g10/pkclist.c:942
+#, c-format
+msgid "unknown default recipient `%s'\n"
+msgstr "onbekende standaard ontvanger `%s'\n"
+
+#: g10/pkclist.c:975
+#, c-format
+msgid "%s: error checking key: %s\n"
+msgstr "%s: fout tijdens controleren van de sleutel: %s\n"
+
+# fixme
+#: g10/pkclist.c:980
+#, c-format
+msgid "%s: skipped: public key is disabled\n"
+msgstr "%s: overgeslagen: openbare sleutel is niet toegankelijk\n"
+
+#: g10/pkclist.c:1018
+msgid "no valid addressees\n"
+msgstr "geen geldige adressen\n"
+
+#: g10/keygen.c:175
+msgid "writing self signature\n"
+msgstr "zelfondertekening wegschrijven\n"
+
+#: g10/keygen.c:213
+msgid "writing key binding signature\n"
+msgstr "schrijven van sleutelbindingsondertekening\n"
+
+#: g10/keygen.c:261 g10/keygen.c:345
+#, fuzzy, c-format
+msgid "keysize invalid; using %u bits\n"
+msgstr "Gevraagde sleutellengte is %u bits\n"
+
+#: g10/keygen.c:266 g10/keygen.c:350
+#, fuzzy, c-format
+msgid "keysize rounded up to %u bits\n"
+msgstr "afgerond naar %u bits\n"
+
+#: g10/keygen.c:456
+msgid "Please select what kind of key you want:\n"
+msgstr "Selecteer aub wat voor sleutel u wilt:\n"
+
+#: g10/keygen.c:458
+#, c-format
+msgid " (%d) DSA and ElGamal (default)\n"
+msgstr " (%d) DSA en ElGamal (standaard)\n"
+
+#: g10/keygen.c:459
+#, c-format
+msgid " (%d) DSA (sign only)\n"
+msgstr " (%d) DSA (alleen ondertekenen)\n"
+
+#: g10/keygen.c:461
+#, c-format
+msgid " (%d) ElGamal (encrypt only)\n"
+msgstr " (%d) ElGamal (alleen versleutelen)\n"
+
+#: g10/keygen.c:462
+#, c-format
+msgid " (%d) ElGamal (sign and encrypt)\n"
+msgstr " (%d) ElGamal (ondertekenen en versleutelen)\n"
+
+#: g10/keygen.c:465
+msgid "Your selection? "
+msgstr "Uw keuze? "
+
+#: g10/keygen.c:475
+msgid "Do you really want to create a sign and encrypt key? "
+msgstr "Wilt u echt een sleutel maken om mee te ondertekenen en versleutelen? "
+
+#: g10/keygen.c:489
+msgid "Invalid selection.\n"
+msgstr "Ongeldige keuze.\n"
+
+#: g10/keygen.c:501
+#, c-format
+msgid ""
+"About to generate a new %s keypair.\n"
+" minimum keysize is 768 bits\n"
+" default keysize is 1024 bits\n"
+" highest suggested keysize is 2048 bits\n"
+msgstr ""
+"Ik ga zo een nieuw %s sleutelpaar aanmaken.\n"
+" mimimale sleutellengte is 768 bits\n"
+" standaard sleutellengte is 1024 bits\n"
+" hoogste aan te raden sleutellengte is 2048 bits\n"
+
+#: g10/keygen.c:508
+msgid "What keysize do you want? (1024) "
+msgstr "Hoe lang wil je de sleutel maken? (1024) "
+
+#: g10/keygen.c:513
+msgid "DSA only allows keysizes from 512 to 1024\n"
+msgstr "DSA staat alleen sleutellengtes toe van 512 tot 1024\n"
+
+#: g10/keygen.c:515
+msgid "keysize too small; 768 is smallest value allowed.\n"
+msgstr "sleutel te kort; 768 is de kleinste toegestane waarde.\n"
+
+#. It is ridiculous and an annoyance to use larger key sizes!
+#. * GnuPG can handle much larger sizes; but it takes an eternity
+#. * to create such a key (but less than the time the Sirius
+#. * Computer Corporation needs to process one of the usual
+#. * complaints) and {de,en}cryption although needs some time.
+#. * So, before you complain about this limitation, I suggest that
+#. * you start a discussion with Marvin about this theme and then
+#. * do whatever you want.
+#: g10/keygen.c:525
+#, c-format
+msgid "keysize too large; %d is largest value allowed.\n"
+msgstr "sleutel te lang; %d is de maximumlengte.\n"
+
+#: g10/keygen.c:530
+msgid ""
+"Keysizes larger than 2048 are not suggested because\n"
+"computations take REALLY long!\n"
+msgstr ""
+"Sleutels langer dan 2048 worden afgeraden omdat berekeningen dan ERG\n"
+"lang duren!\n"
+
+#: g10/keygen.c:533
+msgid "Are you sure that you want this keysize? "
+msgstr "Weet je zeker dat je deze sleutellengte wilt gebruiken? "
+
+#: g10/keygen.c:534
+msgid ""
+"Okay, but keep in mind that your monitor and keyboard radiation is also very "
+"vulnerable to attacks!\n"
+msgstr ""
+"Okee, maar houd er rekening mee dat straling van monitor en toetsenbord ook "
+"erg vatbaar zijn voor aanvallen!\n"
+
+#: g10/keygen.c:542
+msgid "Do you really need such a large keysize? "
+msgstr "Heb je echt een sleutel nodig die zo lang is? "
+
+#: g10/keygen.c:548
+#, c-format
+msgid "Requested keysize is %u bits\n"
+msgstr "Gevraagde sleutellengte is %u bits\n"
+
+#: g10/keygen.c:551 g10/keygen.c:555
+#, c-format
+msgid "rounded up to %u bits\n"
+msgstr "afgerond naar %u bits\n"
+
+#: g10/keygen.c:603
+msgid ""
+"Please specify how long the key should be valid.\n"
+" 0 = key does not expire\n"
+" <n> = key expires in n days\n"
+" <n>w = key expires in n weeks\n"
+" <n>m = key expires in n months\n"
+" <n>y = key expires in n years\n"
+msgstr ""
+"Geef aub aan hoe lang de sleutel geldig mag blijven.\n"
+" 0 = sleutel verloopt nooit\n"
+" <n> = sleutel verloopt over n dagen\n"
+" <n>w = sleutel verloopt over n weken\n"
+" <n>m = sleutel verloopt over n maanden\n"
+" <n>y = sleutel verloopt over n jaar\n"
+
+#: g10/keygen.c:618
+msgid "Key is valid for? (0) "
+msgstr "Sleutel is geldig gedurende? (0) "
+
+#: g10/keygen.c:623
+msgid "invalid value\n"
+msgstr "ongeldige waarde\n"
+
+#: g10/keygen.c:628
+msgid "Key does not expire at all\n"
+msgstr "Sleutel verloopt nooit\n"
+
+#. print the date when the key expires
+#: g10/keygen.c:634
+#, c-format
+msgid "Key expires at %s\n"
+msgstr "Sleutel verloopt op %s\n"
+
+# fixme
+#: g10/keygen.c:637
+msgid ""
+"Your system can't display dates beyond 2038.\n"
+"However, it will be correctly handled up to 2106.\n"
+msgstr ""
+"Uw systeem kan geen data weergeven van na 2038.\n"
+"Desondanks wordt het goed behandeld tot 2106.\n"
+
+#: g10/keygen.c:642
+msgid "Is this correct (y/n)? "
+msgstr "Klopt dit (j/n)? "
+
+#: g10/keygen.c:685
+msgid ""
+"\n"
+"You need a User-ID to identify your key; the software constructs the user "
+"id\n"
+"from Real Name, Comment and Email Address in this form:\n"
+" \"Heinrich Heine (Der Dichter) <[email protected]>\"\n"
+"\n"
+msgstr ""
+"\n"
+"U heeft een gebruikersidentificatie nodig voor de sleutel; het\n"
+"programma bouwt deze op uit Echte naam, Kommentaar en Email Adres in\n"
+"dit formaat:\n"
+" \"Heinrich Heine (Der Dichter) <[email protected]>\"\n"
+"\n"
+
+#: g10/keygen.c:697
+msgid "Real name: "
+msgstr "Echte naam: "
+
+#: g10/keygen.c:701
+msgid "Invalid character in name\n"
+msgstr "Ongeldig teken in naam\n"
+
+#: g10/keygen.c:703
+msgid "Name may not start with a digit\n"
+msgstr "Naam mag niet beginnen met een cijfer\n"
+
+#: g10/keygen.c:705
+msgid "Name must be at least 5 characters long\n"
+msgstr "Naam moet ten minste 5 tekens lang zijn\n"
+
+#: g10/keygen.c:713
+msgid "Email address: "
+msgstr "Email Adres: "
+
+#: g10/keygen.c:724
+msgid "Not a valid email address\n"
+msgstr "Ongeldig email adres\n"
+
+#: g10/keygen.c:732
+msgid "Comment: "
+msgstr "Kommentaar: "
+
+#: g10/keygen.c:738
+msgid "Invalid character in comment\n"
+msgstr "Ongeldig teken in kommentaar\n"
+
+#: g10/keygen.c:761
+#, c-format
+msgid "You are using the `%s' character set.\n"
+msgstr "Je gebruik tekenverzameling `%s'.\n"
+
+#: g10/keygen.c:767
+#, c-format
+msgid ""
+"You selected this USER-ID:\n"
+" \"%s\"\n"
+"\n"
+msgstr ""
+"Je hebt deze gebruikersidentificatie gekozen:\n"
+" \"%s\"\n"
+"\n"
+
+#: g10/keygen.c:771
+msgid "Please don't put the email address into the real name or the comment\n"
+msgstr ""
+
+#: g10/keygen.c:776
+msgid "NnCcEeOoQq"
+msgstr "NnKkEeOoEe"
+
+#: g10/keygen.c:786
+#, fuzzy
+msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
+msgstr "Verander (N)aam, (K)ommentaar, (E)mail of (O)kee/ei(N)de? "
+
+#: g10/keygen.c:787
+msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
+msgstr "Verander (N)aam, (K)ommentaar, (E)mail of (O)kee/ei(N)de? "
+
+#: g10/keygen.c:806
+msgid "Please correct the error first\n"
+msgstr ""
+
+#: g10/keygen.c:844
+msgid ""
+"You need a Passphrase to protect your secret key.\n"
+"\n"
+msgstr ""
+"Je hebt een sleuteltekst nodig om je geheime sleutel te bewaken.\n"
+"\n"
+
+#: g10/keyedit.c:468 g10/keygen.c:852
+msgid "passphrase not correctly repeated; try again.\n"
+msgstr "sleuteltekst is niet goed herhaald; probeer het opnieuw.\n"
+
+#: g10/keygen.c:858
+msgid ""
+"You don't want a passphrase - this is probably a *bad* idea!\n"
+"I will do it anyway. You can change your passphrase at any time,\n"
+"using this program with the option \"--edit-key\".\n"
+"\n"
+msgstr ""
+"U heeft gekozen voor geen sleuteltekst - dit is waaschijnlijk een\n"
+"*slecht* idee! Ik zal het toch doen. U kunt uw sleuteltekst altijd\n"
+"nog aanpassen, gebruik dit programma met de optie \"--edit-key\".\n"
+"\n"
+
+#: g10/keygen.c:879
+msgid ""
+"We need to generate a lot of random bytes. It is a good idea to perform\n"
+"some other action (type on the keyboard, move the mouse, utilize the\n"
+"disks) during the prime generation; this gives the random number\n"
+"generator a better chance to gain enough entropy.\n"
+msgstr ""
+"We hebben een heleboel willekeurige data nodig. Het is wellicht een\n"
+"goed idee om wat anders te doen (het toetsenbord en de muis gebruiken,\n"
+"of de schijven aanspreken) tijdens de generatie van de priemgetallen;\n"
+"dit geeft de generator een grotere kans om genoeg entropie te\n"
+"verzamelen.\n"
+
+#: g10/keygen.c:1325
+msgid "DSA keypair will have 1024 bits.\n"
+msgstr "DSA sleutelpaar zal 1024 bits lang zijn.\n"
+
+#: g10/keygen.c:1368
+msgid "Key generation canceled.\n"
+msgstr "Sleutelgeneratie afgebroken.\n"
+
+#: g10/keygen.c:1465
+#, fuzzy, c-format
+msgid "writing public key to `%s'\n"
+msgstr "Openbaar certificaat wordt geschreven naar `%s'\n"
+
+#: g10/keygen.c:1466
+#, fuzzy, c-format
+msgid "writing secret key to `%s'\n"
+msgstr "Geheim certificaat wordt weggeschreven naar `%s'\n"
+
+#: g10/keygen.c:1562
+msgid "public and secret key created and signed.\n"
+msgstr "openbare en geheime sleutels zijn gemaakt en getekend.\n"
+
+#: g10/keygen.c:1567
+msgid ""
+"Note that this key cannot be used for encryption. You may want to use\n"
+"the command \"--edit-key\" to generate a secondary key for this purpose.\n"
+msgstr ""
+"Let er op dat deze sleutel niet gebruikt kan worden voor versleutelen.\n"
+"U wilt misschien het commando \"--edit-key\" gebruiken om een tweede\n"
+"sleutel te maken hiervoor.\n"
+
+#: g10/keygen.c:1584 g10/keygen.c:1685
+#, c-format
+msgid "Key generation failed: %s\n"
+msgstr "Sleutelgeneratie is mislukt: %s\n"
+
+#: g10/keygen.c:1628 g10/sig-check.c:318 g10/sign.c:111
+#, c-format
+msgid ""
+"key has been created %lu second in future (time warp or clock problem)\n"
+msgstr ""
+"Sleutel is %lu seconden in de toekomst gemaakt (tijdsverschuiving of\n"
+"klokprobleem)\n"
+
+#: g10/keygen.c:1630 g10/sig-check.c:320 g10/sign.c:113
+#, c-format
+msgid ""
+"key has been created %lu seconds in future (time warp or clock problem)\n"
+msgstr ""
+"sleutel is %lu seconden in de toekomst gemaakt (tijdsverschuiving of\n"
+"klokprobleem)\n"
+
+#: g10/keygen.c:1663
+msgid "Really create? "
+msgstr "Echt maken? "
+
+#: g10/encode.c:91 g10/openfile.c:168 g10/openfile.c:277 g10/tdbio.c:454
+#: g10/tdbio.c:515
+#, c-format
+msgid "%s: can't open: %s\n"
+msgstr "%s: kon niet openen: %s\n"
+
+#: g10/encode.c:113
+#, c-format
+msgid "error creating passphrase: %s\n"
+msgstr "fout tijdens aanmake sleuteltekst: %s\n"
+
+#: g10/encode.c:171 g10/encode.c:319
+#, c-format
+msgid "%s: WARNING: empty file\n"
+msgstr "%s: LET OP: leeg bestand\n"
+
+#: g10/encode.c:266
+#, c-format
+msgid "reading from `%s'\n"
+msgstr "lezen uit `%s'\n"
+
+#: g10/encode.c:483
+#, c-format
+msgid "%s/%s encrypted for: %s\n"
+msgstr "%s/%s versleuteld voor: %s\n"
+
+#: g10/export.c:153
+#, c-format
+msgid "%s: user not found: %s\n"
+msgstr "%s: gebruiker niet gevonden: %s\n"
+
+#: g10/export.c:162
+#, c-format
+msgid "certificate read problem: %s\n"
+msgstr "leesprobleem voor certificaat: %s\n"
+
+#: g10/export.c:171
+#, c-format
+msgid "key %08lX: not a rfc2440 key - skipped\n"
+msgstr "sleutel %08lx: geen sleutel volgens rfc2240 - overgeslagen\n"
+
+#: g10/export.c:182
+#, fuzzy, c-format
+msgid "key %08lX: not protected - skipped\n"
+msgstr "sleutel %08lx: geen sleutel volgens rfc2240 - overgeslagen\n"
+
+#: g10/export.c:232
+msgid "WARNING: nothing exported\n"
+msgstr "LET OP: er is niets ge�xporteerd\n"
+
+#: g10/getkey.c:211
+msgid "too many entries in pk cache - disabled\n"
+msgstr "te veel ingangen in de pk cache - uitgezet\n"
+
+#: g10/getkey.c:350
+msgid "too many entries in unk cache - disabled\n"
+msgstr "te veel ingangen in de unk cache - uitgezet\n"
+
+#: g10/getkey.c:1308 g10/getkey.c:1347
+msgid "RSA key cannot be used in this version\n"
+msgstr "RSA sleutel kan niet gebruikt worden in deze versie\n"
+
+#: g10/getkey.c:1310 g10/getkey.c:1349
+msgid "No key for user ID\n"
+msgstr "Geen sleutel voor gebruikersidentificatie\n"
+
+#: g10/getkey.c:1388 g10/getkey.c:1428
+msgid "No user ID for key\n"
+msgstr "Geen gebruikersidentificatie voor sleutel\n"
+
+#: g10/getkey.c:1642 g10/getkey.c:1698
+#, c-format
+msgid "using secondary key %08lX instead of primary key %08lX\n"
+msgstr "gebruik secundaire sleutel %08lx in plaats van de primaire %08lx\n"
+
+#: g10/getkey.c:2017
+#, fuzzy
+msgid "[User id not found]"
+msgstr "%s: gebruiker niet gevonden\n"
+
+#: g10/import.c:181
+#, c-format
+msgid "skipping block of type %d\n"
+msgstr "blok van type %d wordt overgeslagen\n"
+
+#: g10/import.c:188 g10/trustdb.c:1740 g10/trustdb.c:1781
+#, c-format
+msgid "%lu keys so far processed\n"
+msgstr "%lu sleutels zijn tot nu toe behandeld\n"
+
+#: g10/import.c:193
+#, c-format
+msgid "error reading `%s': %s\n"
+msgstr "fout bij lezen `%s': %s\n"
+
+#: g10/import.c:203
+#, c-format
+msgid "Total number processed: %lu\n"
+msgstr "Totaal aantal behandeld: %lu\n"
+
+#: g10/import.c:205
+#, c-format
+msgid " w/o user IDs: %lu\n"
+msgstr " zonder identificatie: %lu\n"
+
+#: g10/import.c:207
+#, c-format
+msgid " imported: %lu"
+msgstr "ge�mporteerd: %lu"
+
+#: g10/import.c:213
+#, c-format
+msgid " unchanged: %lu\n"
+msgstr "onveranderd: %lu\n"
+
+#: g10/import.c:215
+#, c-format
+msgid " new user IDs: %lu\n"
+msgstr "nieuwe gebruikers: %lu\n"
+
+#: g10/import.c:217
+#, c-format
+msgid " new subkeys: %lu\n"
+msgstr "nieuwe subsleutels: %lu\n"
+
+#: g10/import.c:219
+#, c-format
+msgid " new signatures: %lu\n"
+msgstr "nieuwe ondertekeningen: %lu\n"
+
+#: g10/import.c:221
+#, c-format
+msgid " new key revocations: %lu\n"
+msgstr "nieuwe sleutelterugtrekkingen: %lu\n"
+
+#: g10/import.c:223
+#, c-format
+msgid " secret keys read: %lu\n"
+msgstr "geheime sleutels gelezen: %lu\n"
+
+#: g10/import.c:225
+#, c-format
+msgid " secret keys imported: %lu\n"
+msgstr "geheime sleutels ge�mporteerd: %lu\n"
+
+#: g10/import.c:227
+#, c-format
+msgid " secret keys unchanged: %lu\n"
+msgstr "onveranderde geheime sleutels: %lu\n"
+
+#: g10/import.c:386 g10/import.c:578
+#, c-format
+msgid "key %08lX: no user ID\n"
+msgstr "sleutel %08lX: geen gebruikersidentificatie\n"
+
+#: g10/import.c:400
+#, c-format
+msgid "key %08lX: no valid user IDs\n"
+msgstr "sleutel %08lX: geen geldige gebruikersidentificaties\n"
+
+#: g10/import.c:402
+msgid "this may be caused by a missing self-signature\n"
+msgstr ""
+"dit zou veroorzaakt kunnen worden door een ontbrekende zelf-ondertkening\n"
+
+#: g10/import.c:413 g10/import.c:645
+#, c-format
+msgid "key %08lX: public key not found: %s\n"
+msgstr "sleutel %08lX: openbare sleutel niet gevonden: %s\n"
+
+#: g10/import.c:419
+msgid "no default public keyring\n"
+msgstr "geen standaard openbare sleutelbos\n"
+
+#: g10/import.c:423 g10/openfile.c:220 g10/sign.c:275 g10/sign.c:587
+#, c-format
+msgid "writing to `%s'\n"
+msgstr "schrijven naar `%s'\n"
+
+#: g10/import.c:426 g10/import.c:484 g10/import.c:593 g10/import.c:694
+#, c-format
+msgid "can't lock keyring `%s': %s\n"
+msgstr "kan sleutelbos `%s' niet vergrendelen: %s\n"
+
+#: g10/import.c:429 g10/import.c:487 g10/import.c:596 g10/import.c:697
+#, c-format
+msgid "error writing keyring `%s': %s\n"
+msgstr "fout bij schrijven van de sleutelbos `%s': %s\n"
+
+#: g10/import.c:434
+#, c-format
+msgid "key %08lX: public key imported\n"
+msgstr "sleutel %08lX: openbare sleutel ge�mporteerd\n"
+
+#: g10/import.c:451
+#, c-format
+msgid "key %08lX: doesn't match our copy\n"
+msgstr "sleutel %08lX: komt niet overeen met onze kopie\n"
+
+#: g10/import.c:460 g10/import.c:653
+#, c-format
+msgid "key %08lX: can't locate original keyblock: %s\n"
+msgstr "sleutel %08lX: kan originele sleutelblok niet vinden: %s\n"
+
+#: g10/import.c:466 g10/import.c:659
+#, c-format
+msgid "key %08lX: can't read original keyblock: %s\n"
+msgstr "sleutel %08lX: kan origineel sleutelblok niet lezen: %s\n"
+
+#: g10/import.c:493
+#, c-format
+msgid "key %08lX: 1 new user ID\n"
+msgstr "sleutel %08lX: 1 nieuwe gebruiker\n"
+
+#: g10/import.c:496
+#, c-format
+msgid "key %08lX: %d new user IDs\n"
+msgstr "sleutel %08lX: %d nieuwe gebruikers\n"
+
+#: g10/import.c:499
+#, c-format
+msgid "key %08lX: 1 new signature\n"
+msgstr "sleutel %08lX: 1 nieuwe ondertekening\n"
+
+#: g10/import.c:502
+#, c-format
+msgid "key %08lX: %d new signatures\n"
+msgstr "sleutel %08lX: %d nieuwe ondertekeningen\n"
+
+#: g10/import.c:505
+#, c-format
+msgid "key %08lX: 1 new subkey\n"
+msgstr "sleutel %08lX: 1 nieuwe subsleutel\n"
+
+#: g10/import.c:508
+#, c-format
+msgid "key %08lX: %d new subkeys\n"
+msgstr "sleutel %08lX: %d nieuwe subsleutels\n"
+
+#: g10/import.c:518
+#, c-format
+msgid "key %08lX: not changed\n"
+msgstr "sleutel %08lX: niet veranderd\n"
+
+#: g10/import.c:601
+#, c-format
+msgid "key %08lX: secret key imported\n"
+msgstr "sleutel %08lX: geheime sleutel ge�mporteerd\n"
+
+#. we can't merge secret keys
+#: g10/import.c:605
+#, c-format
+msgid "key %08lX: already in secret keyring\n"
+msgstr "sleutel %08lX: reeds aanwezig in de geheime sleutelbos\n"
+
+#: g10/import.c:610
+#, c-format
+msgid "key %08lX: secret key not found: %s\n"
+msgstr "sleutel %08lX: geheime sleutel niet gevonden: %s\n"
+
+#: g10/import.c:639
+#, c-format
+msgid "key %08lX: no public key - can't apply revocation certificate\n"
+msgstr ""
+"sleutel %08lX: geen openbare sleutel - kan terugtrekkingscertificaat niet "
+"toepassen\n"
+
+#: g10/import.c:670
+#, c-format
+msgid "key %08lX: invalid revocation certificate: %s - rejected\n"
+msgstr "sleutel %08lX: ongeldig terugtrekkingscertificaat: %s - afgewezen\n"
+
+#: g10/import.c:702
+#, c-format
+msgid "key %08lX: revocation certificate imported\n"
+msgstr "sleutel %08lX: terugtrekkingscertificaat ge�mporteerd\n"
+
+#: g10/import.c:744
+#, c-format
+msgid "key %08lX: no user ID for signature\n"
+msgstr "sleutel %08lX: geen gebruikersidentificatie voor ondertekening\n"
+
+#: g10/import.c:751 g10/import.c:775
+#, c-format
+msgid "key %08lX: unsupported public key algorithm\n"
+msgstr "sleutel %08lX: openbaar sleutel algoritme niet ondersteund\n"
+
+#: g10/import.c:752
+#, c-format
+msgid "key %08lX: invalid self-signature\n"
+msgstr "sleutel %08lX: ongeldige eigen ondertekening\n"
+
+#: g10/import.c:767
+#, c-format
+msgid "key %08lX: no subkey for key binding\n"
+msgstr "sleutel %08lX: geen subsleutel voor sleutelbinding\n"
+
+#: g10/import.c:776
+#, c-format
+msgid "key %08lX: invalid subkey binding\n"
+msgstr "sleutel %08lX: ongeldige subsleutelbinding\n"
+
+#: g10/import.c:803
+#, c-format
+msgid "key %08lX: accepted non self-signed user ID '"
+msgstr ""
+"sleutel %08lX: niet zelfondertekende gebruikersidentificatie geaccepteerd '"
+
+#: g10/import.c:832
+#, c-format
+msgid "key %08lX: skipped user ID '"
+msgstr "sleutel %08lX: gebruikersidentificatie overgeslagen '"
+
+#: g10/import.c:855
+#, c-format
+msgid "key %08lX: skipped subkey\n"
+msgstr "sleutel %08lX: subsleutel overgeslagen\n"
+
+#. here we violate the rfc a bit by still allowing
+#. * to import non-exportable signature when we have the
+#. * the secret key used to create this signature - it
+#. * seems that this makes sense
+#: g10/import.c:880
+#, c-format
+msgid "key %08lX: non exportable signature (class %02x) - skipped\n"
+msgstr ""
+"sleutel %08lX: niet exporteerbare ondertekening (klasse %02x) - "
+"overgeslagen\n"
+
+#: g10/import.c:889
+#, c-format
+msgid "key %08lX: revocation certificate at wrong place - skipped\n"
+msgstr ""
+"sleutel %08lX: terugtrekkingscertificaat op de verkeerde plek - "
+"overgeslagen\n"
+
+#: g10/import.c:897
+#, c-format
+msgid "key %08lX: invalid revocation certificate: %s - skipped\n"
+msgstr "sleutel %08lX: ongeldig terugtrekkingscertificaat: %s - overgeslagen\n"
+
+#: g10/import.c:997
+#, c-format
+msgid "key %08lX: duplicated user ID detected - merged\n"
+msgstr ""
+"sleutel %08lX: dubbele gebruikersidentificatie gevonden - samengevoegd\n"
+
+#: g10/import.c:1048
+#, c-format
+msgid "key %08lX: revocation certificate added\n"
+msgstr "sleutel %08lX: terugtrekkingscertificaat toegevoegd\n"
+
+#: g10/import.c:1162 g10/import.c:1215
+#, c-format
+msgid "key %08lX: our copy has no self-signature\n"
+msgstr "sleutel %08lX: onze versie heeft geen zelfondertekening\n"
+
+#: g10/delkey.c:64 g10/keyedit.c:94
+#, c-format
+msgid "%s: user not found\n"
+msgstr "%s: gebruiker niet gevonden\n"
+
+#: g10/keyedit.c:155
+msgid "[revocation]"
+msgstr "[terugtrekking]"
+
+#: g10/keyedit.c:156
+msgid "[self-signature]"
+msgstr "[zelfondertekening]"
+
+#: g10/keyedit.c:220
+msgid "1 bad signature\n"
+msgstr "1 ongeldige ondertekening\n"
+
+#: g10/keyedit.c:222
+#, c-format
+msgid "%d bad signatures\n"
+msgstr "%d ongeldige ondertekeningen\n"
+
+#: g10/keyedit.c:224
+msgid "1 signature not checked due to a missing key\n"
+msgstr "1 ondertekening niet gecontroleerd wegens een ontbrekende sleutel\n"
+
+#: g10/keyedit.c:226
+#, c-format
+msgid "%d signatures not checked due to missing keys\n"
+msgstr "%d ondertekeningen niet gecontroleerd wegens ontbrekende sleutels\n"
+
+#: g10/keyedit.c:228
+msgid "1 signature not checked due to an error\n"
+msgstr "1 ondertekening niet gecontroleerd wegens een fout\n"
+
+#: g10/keyedit.c:230
+#, c-format
+msgid "%d signatures not checked due to errors\n"
+msgstr "%d ondertekeningen niet gecontroleerd wegens fouten\n"
+
+#: g10/keyedit.c:232
+msgid "1 user ID without valid self-signature detected\n"
+msgstr "1 gebruikersidentificatie gevonden zonder geldige zelfondertekening\n"
+
+#: g10/keyedit.c:234
+#, c-format
+msgid "%d user IDs without valid self-signatures detected\n"
+msgstr ""
+"%d gebruikersidentificaties gevonden zonder geldige zelfondertekening\n"
+
+#. Fixme: see whether there is a revocation in which
+#. * case we should allow to sign it again.
+#: g10/keyedit.c:316
+#, c-format
+msgid "Already signed by key %08lX\n"
+msgstr "Reeds ondertekend met sleutel %08lx\n"
+
+#: g10/keyedit.c:324
+#, c-format
+msgid "Nothing to sign with key %08lX\n"
+msgstr "Niets te tekenen met sleutel %08lX\n"
+
+#: g10/keyedit.c:333
+msgid ""
+"Are you really sure that you want to sign this key\n"
+"with your key: \""
+msgstr ""
+"Bent u er echt zeker van dat u deze sleutel wilt tekenen\n"
+"met uw sleutel: \""
+
+#: g10/keyedit.c:342
+msgid ""
+"The signature will be marked as non-exportable.\n"
+"\n"
+msgstr ""
+"Deze ondertekening zal gemarkeerd worden als niet exporteerbaar.\n"
+"\n"
+
+#: g10/keyedit.c:347
+msgid "Really sign? "
+msgstr "Echt tekenen? "
+
+#: g10/keyedit.c:373 g10/keyedit.c:1869 g10/keyedit.c:1931 g10/sign.c:135
+#, c-format
+msgid "signing failed: %s\n"
+msgstr "ondertekening mislukt: %s\n"
+
+#: g10/keyedit.c:427
+msgid "This key is not protected.\n"
+msgstr "Deze sleutel is niet beveiligd.\n"
+
+#: g10/keyedit.c:431
+#, fuzzy
+msgid "Secret parts of primary key are not available.\n"
+msgstr "geheime sleutel niet beschikbaar"
+
+#: g10/keyedit.c:435
+msgid "Key is protected.\n"
+msgstr "Sleutel is beveiligd.\n"
+
+#: g10/keyedit.c:455
+#, c-format
+msgid "Can't edit this key: %s\n"
+msgstr "Kan deze sleutel niet bewerken: %s\n"
+
+#: g10/keyedit.c:460
+msgid ""
+"Enter the new passphrase for this secret key.\n"
+"\n"
+msgstr ""
+"Geef de sleuteltekst voor deze geheime sleutel.\n"
+"\n"
+
+#: g10/keyedit.c:472
+msgid ""
+"You don't want a passphrase - this is probably a *bad* idea!\n"
+"\n"
+msgstr ""
+"U wilt geen sleuteltekst - dit is waaschijnlijk een *slecht* idee!\n"
+"\n"
+
+#: g10/keyedit.c:475
+msgid "Do you really want to do this? "
+msgstr "Wilt u dit echt? "
+
+#: g10/keyedit.c:539
+msgid "moving a key signature to the correct place\n"
+msgstr "sleutelondertekening naar de juiste plaats schuiven\n"
+
+#: g10/keyedit.c:580
+msgid "quit this menu"
+msgstr "be�indig dit menu"
+
+#: g10/keyedit.c:581
+msgid "q"
+msgstr "q"
+
+#: g10/keyedit.c:582
+msgid "save"
+msgstr "bewaar"
+
+#: g10/keyedit.c:582
+msgid "save and quit"
+msgstr "opslaan en be�indigen"
+
+#: g10/keyedit.c:583
+msgid "help"
+msgstr "hulp"
+
+#: g10/keyedit.c:583
+msgid "show this help"
+msgstr "geef deze hulp"
+
+#: g10/keyedit.c:585
+msgid "fpr"
+msgstr "fpr"
+
+#: g10/keyedit.c:585
+msgid "show fingerprint"
+msgstr "toon vingerafdruk"
+
+#: g10/keyedit.c:586
+msgid "list"
+msgstr "lijst"
+
+#: g10/keyedit.c:586
+msgid "list key and user IDs"
+msgstr "lijst van sleutel- en gebruikersidentificaties"
+
+#: g10/keyedit.c:587
+msgid "l"
+msgstr "l"
+
+#: g10/keyedit.c:588
+msgid "uid"
+msgstr "gebruikersidentificatie"
+
+#: g10/keyedit.c:588
+msgid "select user ID N"
+msgstr "selecteer gebruikersidentificatie N"
+
+#: g10/keyedit.c:589
+msgid "key"
+msgstr "sleutel"
+
+#: g10/keyedit.c:589
+msgid "select secondary key N"
+msgstr "selecteer subsleutel N"
+
+#: g10/keyedit.c:590
+msgid "check"
+msgstr "controleer"
+
+#: g10/keyedit.c:590
+msgid "list signatures"
+msgstr "toon ondertekeningen"
+
+#: g10/keyedit.c:591
+msgid "c"
+msgstr "c"
+
+#: g10/keyedit.c:592
+msgid "sign"
+msgstr "onderteken"
+
+#: g10/keyedit.c:592
+msgid "sign the key"
+msgstr "onderteken de sleutel"
+
+#: g10/keyedit.c:593
+msgid "s"
+msgstr "s"
+
+#: g10/keyedit.c:594
+msgid "lsign"
+msgstr "lteken"
+
+#: g10/keyedit.c:594
+msgid "sign the key locally"
+msgstr "teken de sleutel lokaal"
+
+#: g10/keyedit.c:595
+msgid "debug"
+msgstr "debug"
+
+#: g10/keyedit.c:596
+msgid "adduid"
+msgstr "adduid"
+
+#: g10/keyedit.c:596
+msgid "add a user ID"
+msgstr "voeg een gebruikersidentificatie toe"
+
+#: g10/keyedit.c:597
+msgid "deluid"
+msgstr "deluid"
+
+#: g10/keyedit.c:597
+msgid "delete user ID"
+msgstr "verwijder gebruikersidentificatie"
+
+#: g10/keyedit.c:598
+msgid "addkey"
+msgstr "addkey"
+
+#: g10/keyedit.c:598
+msgid "add a secondary key"
+msgstr "voeg een secundaire sleutel toe"
+
+#: g10/keyedit.c:599
+msgid "delkey"
+msgstr "delkey"
+
+#: g10/keyedit.c:599
+msgid "delete a secondary key"
+msgstr "verwijder een secundaire sleutel"
+
+#: g10/keyedit.c:600
+msgid "delsig"
+msgstr "delsig"
+
+#: g10/keyedit.c:600
+msgid "delete signatures"
+msgstr "verwijder ondertekeningen"
+
+#: g10/keyedit.c:601
+msgid "expire"
+msgstr "expire"
+
+#: g10/keyedit.c:601
+msgid "change the expire date"
+msgstr "verander de vervaldatum"
+
+#: g10/keyedit.c:602
+msgid "toggle"
+msgstr "wissel"
+
+#: g10/keyedit.c:602
+msgid "toggle between secret and public key listing"
+msgstr "wissel tussen geheime en openbare sleutels"
+
+#: g10/keyedit.c:604
+msgid "t"
+msgstr "t"
+
+#: g10/keyedit.c:605
+msgid "pref"
+msgstr "pref"
+
+#: g10/keyedit.c:605
+msgid "list preferences"
+msgstr "toon voorkeuren"
+
+#: g10/keyedit.c:606
+msgid "passwd"
+msgstr "passwd"
+
+#: g10/keyedit.c:606
+msgid "change the passphrase"
+msgstr "verander de sleuteltekst"
+
+#: g10/keyedit.c:607
+msgid "trust"
+msgstr "trust"
+
+#: g10/keyedit.c:607
+msgid "change the ownertrust"
+msgstr "verander het vertrouwen in de eigenaar"
+
+#: g10/keyedit.c:608
+msgid "revsig"
+msgstr "revsig"
+
+#: g10/keyedit.c:608
+msgid "revoke signatures"
+msgstr "roep ondertekeningen terug"
+
+#: g10/keyedit.c:609
+msgid "revkey"
+msgstr "revkey"
+
+#: g10/keyedit.c:609
+msgid "revoke a secondary key"
+msgstr "trek secundaire sleutel in"
+
+#: g10/keyedit.c:610
+msgid "disable"
+msgstr "disable"
+
+#: g10/keyedit.c:610
+msgid "disable a key"
+msgstr "sta het gebruik van een sleutel niet toe"
+
+#: g10/keyedit.c:611
+msgid "enable"
+msgstr "enable"
+
+#: g10/keyedit.c:611
+msgid "enable a key"
+msgstr "sta gebruik van een sleutel toe"
+
+#: g10/delkey.c:110 g10/keyedit.c:630
+msgid "can't do that in batchmode\n"
+msgstr "kan dat niet doen in lopende band-modus\n"
+
+#. check that they match
+#. fixme: check that they both match
+#: g10/keyedit.c:668
+msgid "Secret key is available.\n"
+msgstr "Geheime sleutel is beschikbaar.\n"
+
+#: g10/keyedit.c:697
+msgid "Command> "
+msgstr "Commando> "
+
+#: g10/keyedit.c:727
+msgid "Need the secret key to do this.\n"
+msgstr "Ik heb de geheime sleutel nodig om dat te doen.\n"
+
+#: g10/keyedit.c:731
+msgid "Please use the command \"toggle\" first.\n"
+msgstr ""
+
+#: g10/keyedit.c:778
+msgid "Really sign all user IDs? "
+msgstr "Echt alle gebruikers tekenen? "
+
+#: g10/keyedit.c:779
+msgid "Hint: Select the user IDs to sign\n"
+msgstr "Hint: Selecteer de gebruikersidentificaties om te tekenen\n"
+
+#: g10/keyedit.c:811 g10/keyedit.c:993
+#, c-format
+msgid "update of trustdb failed: %s\n"
+msgstr "bijwerken van de vertrouwensdatabase ging niet goed: %s\n"
+
+#: g10/keyedit.c:822 g10/keyedit.c:843
+msgid "You must select at least one user ID.\n"
+msgstr "U moet op zijn minst een gebruikersidentificatie opgeven.\n"
+
+#: g10/keyedit.c:824
+msgid "You can't delete the last user ID!\n"
+msgstr "U kunt de laatste gebruiker niet verwijderen!\n"
+
+#: g10/keyedit.c:827
+msgid "Really remove all selected user IDs? "
+msgstr "Al deze gebruikers echt verwijderen? "
+
+#: g10/keyedit.c:828
+msgid "Really remove this user ID? "
+msgstr "Deze gebruiker echt verwijderen? "
+
+#: g10/keyedit.c:864 g10/keyedit.c:886
+msgid "You must select at least one key.\n"
+msgstr "U moet op zijn minst een sleutel selecteren.\n"
+
+#: g10/keyedit.c:868
+msgid "Do you really want to delete the selected keys? "
+msgstr "Wilt u echt alle geselecteerde sleutels verwijderen? "
+
+#: g10/keyedit.c:869
+msgid "Do you really want to delete this key? "
+msgstr "Wilt u deze sleutel echt verwijderen? "
+
+#: g10/keyedit.c:890
+msgid "Do you really want to revoke the selected keys? "
+msgstr "Wilt u echt alle geselecteerde sleutels intrekken? "
+
+#: g10/keyedit.c:891
+msgid "Do you really want to revoke this key? "
+msgstr "Wilt u deze sleutel echt intrekken? "
+
+#: g10/keyedit.c:957
+msgid "Save changes? "
+msgstr "Veranderingen bewaren? "
+
+#: g10/keyedit.c:960
+msgid "Quit without saving? "
+msgstr "Be�indigen zonder te bewaren? "
+
+#: g10/keyedit.c:971
+#, c-format
+msgid "update failed: %s\n"
+msgstr "bijwerken ging niet: %s\n"
+
+#: g10/keyedit.c:978
+#, c-format
+msgid "update secret failed: %s\n"
+msgstr "bijwerken van de geheime sleutel mislukte: %s\n"
+
+#: g10/keyedit.c:985
+msgid "Key not changed so no update needed.\n"
+msgstr "sleutel is niet veranderd en hoeft dus niet bijgewerkt te worden.\n"
+
+#: g10/keyedit.c:1000
+msgid "Invalid command (try \"help\")\n"
+msgstr "Foutief commando (probeer \"help\")\n"
+
+#: g10/keyedit.c:1093
+msgid "This key has been disabled"
+msgstr "Deze sleutel is niet beschikbaar"
+
+#: g10/keyedit.c:1364
+msgid "Delete this good signature? (y/N/q)"
+msgstr "Verwijder deze goede ondertekening? (j/N/q)"
+
+#: g10/keyedit.c:1368
+msgid "Delete this invalid signature? (y/N/q)"
+msgstr "Verwijder deze ongeldige ondertekening? (j/N/q)"
+
+#: g10/keyedit.c:1372
+msgid "Delete this unknown signature? (y/N/q)"
+msgstr "Verwijder deze onbekende ondertekening? (j/N/q)"
+
+#: g10/keyedit.c:1378
+msgid "Really delete this self-signature? (y/N)"
+msgstr "Deze zelfondertekening echt verwijderen? (j/N)"
+
+#: g10/keyedit.c:1392
+#, c-format
+msgid "Deleted %d signature.\n"
+msgstr "%d ondertekening verwijderd.\n"
+
+#: g10/keyedit.c:1393
+#, c-format
+msgid "Deleted %d signatures.\n"
+msgstr "%d ondertekeningen verwijderd.\n"
+
+#: g10/keyedit.c:1396
+msgid "Nothing deleted.\n"
+msgstr "Niets verwijderd.\n"
+
+#: g10/keyedit.c:1465
+msgid "Please remove selections from the secret keys.\n"
+msgstr "Haal a.u.b. de selecties weg voor de geheime sleutels.\n"
+
+#: g10/keyedit.c:1471
+msgid "Please select at most one secondary key.\n"
+msgstr "Selecteer a.u.b. maximaal ��n secundaire sleutel.\n"
+
+#: g10/keyedit.c:1475
+msgid "Changing expiration time for a secondary key.\n"
+msgstr "Vervaldatum voor secundaire sleutel instellen.\n"
+
+#: g10/keyedit.c:1477
+msgid "Changing expiration time for the primary key.\n"
+msgstr "Vervaldatum voor primaire sleutel instellen.\n"
+
+#: g10/keyedit.c:1519
+msgid "You can't change the expiration date of a v3 key\n"
+msgstr "U kunt de vervaldatum van een v3 sleutel niet wijzigen\n"
+
+#: g10/keyedit.c:1535
+msgid "No corresponding signature in secret ring\n"
+msgstr "Geen overeenkomende ondertekening in de geheime sleutelbos\n"
+
+#: g10/keyedit.c:1596
+#, c-format
+msgid "No user ID with index %d\n"
+msgstr "Geen gebruikersidentificatie met index %d\n"
+
+#: g10/keyedit.c:1642
+#, c-format
+msgid "No secondary key with index %d\n"
+msgstr "Geen secundaire sleutel met index %d\n"
+
+#: g10/keyedit.c:1740
+msgid "user ID: \""
+msgstr "gebruikersidentificatie: \""
+
+#: g10/keyedit.c:1743
+#, c-format
+msgid ""
+"\"\n"
+"signed with your key %08lX at %s\n"
+msgstr ""
+"\"\n"
+"tekende met uw sleutel %08lX op %s\n"
+
+#: g10/keyedit.c:1747
+msgid "Create a revocation certificate for this signature? (y/N)"
+msgstr "Terugtrekkingscertificaat maken voor deze ondertekening? (j/N)"
+
+#. FIXME: detect duplicates here
+#: g10/keyedit.c:1771
+msgid "You have signed these user IDs:\n"
+msgstr "U heeft deze gebruikers ondertekend:\n"
+
+#: g10/keyedit.c:1785 g10/keyedit.c:1820
+#, c-format
+msgid " signed by %08lX at %s\n"
+msgstr " getekend door %08lX op %s\n"
+
+#: g10/keyedit.c:1790
+#, c-format
+msgid " revoked by %08lX at %s\n"
+msgstr " ingetrokken door %08lX op %s\n"
+
+#: g10/keyedit.c:1810
+msgid "You are about to revoke these signatures:\n"
+msgstr "U staat op het punt om deze ondertekeningen in te trekken:\n"
+
+#: g10/keyedit.c:1828
+msgid "Really create the revocation certificates? (y/N)"
+msgstr "Echt deze terugtrekkingscertificaten aanmaken? (j/N)"
+
+#: g10/keyedit.c:1857
+msgid "no secret key\n"
+msgstr "geen geheime sleutel\n"
+
+#. of subkey
+#: g10/keylist.c:318 g10/mainproc.c:740
+#, fuzzy, c-format
+msgid " [expires: %s]"
+msgstr "Sleutel verloopt op %s\n"
+
+#: g10/mainproc.c:213
+#, c-format
+msgid "public key is %08lX\n"
+msgstr "openbare sleutel is %08lX\n"
+
+#: g10/mainproc.c:248
+msgid "public key encrypted data: good DEK\n"
+msgstr "gegevens versleuteld met een openbare sleutel: goede DEK\n"
+
+#: g10/mainproc.c:281
+#, c-format
+msgid "encrypted with %u-bit %s key, ID %08lX, created %s\n"
+msgstr "versleuteld met %u-bit %s sleutel, nummer %08lX, gemaakt op %s\n"
+
+#: g10/mainproc.c:291
+#, c-format
+msgid "encrypted with %s key, ID %08lX\n"
+msgstr "versleuteld met %s sleutel, nummer %08lX\n"
+
+#: g10/mainproc.c:297
+msgid "no secret key for decryption available\n"
+msgstr "geheime sleutel voor ontsleuteling is niet beschikbaar\n"
+
+#: g10/mainproc.c:306
+#, c-format
+msgid "public key decryption failed: %s\n"
+msgstr "openbare sleutel-ontsleuteling ging niet: %s\n"
+
+#: g10/mainproc.c:342
+msgid "decryption okay\n"
+msgstr "ontsleutelen ging goed\n"
+
+#: g10/mainproc.c:347
+msgid "WARNING: encrypted message has been manipulated!\n"
+msgstr "LET OP: het versleutelde bericht is veranderd!\n"
+
+#: g10/mainproc.c:352
+#, c-format
+msgid "decryption failed: %s\n"
+msgstr "ontsleuteling mislukte: %s\n"
+
+# Dit kan wel Engels blijven.. toch?
+#: g10/mainproc.c:371
+msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
+msgstr "LET OP: afzender vroeg om \"for-your-eyes-only\"\n"
+
+#: g10/mainproc.c:373
+#, c-format
+msgid "original file name='%.*s'\n"
+msgstr "originele bestandsnaam='%.*s'\n"
+
+#: g10/mainproc.c:524
+msgid "standalone revocation - use \"gpg --import\" to apply\n"
+msgstr "alleenstaande intrekking - gebruik \"gpg --import\" om uit te voeren\n"
+
+#: g10/mainproc.c:611 g10/mainproc.c:620
+msgid "WARNING: invalid notation data found\n"
+msgstr "LET OP: ongeldige aantekeningen gevonden\n"
+
+#: g10/mainproc.c:623
+msgid "Notation: "
+msgstr "Aantekening: "
+
+#: g10/mainproc.c:630
+msgid "Policy: "
+msgstr "Beleid: "
+
+#: g10/mainproc.c:1057
+msgid "signature verification suppressed\n"
+msgstr "controle van de ondertekening overgeslagen\n"
+
+#: g10/mainproc.c:1063
+#, c-format
+msgid "Signature made %.*s using %s key ID %08lX\n"
+msgstr "Ondertekening gemaakt op %.*s met %s sleutel nummer %08lX\n"
+
+#. just in case that we have no userid
+#: g10/mainproc.c:1089 g10/mainproc.c:1100
+msgid "BAD signature from \""
+msgstr "FOUTE ondertekening van \""
+
+#: g10/mainproc.c:1090 g10/mainproc.c:1101
+msgid "Good signature from \""
+msgstr "Correcte ondertekening van \""
+
+#: g10/mainproc.c:1092
+msgid " aka \""
+msgstr " alias \""
+
+#: g10/mainproc.c:1148
+#, c-format
+msgid "Can't check signature: %s\n"
+msgstr "Kan ondertekening niet controleren: %s\n"
+
+#: g10/mainproc.c:1209
+#, c-format
+msgid "standalone signature of class 0x%02x\n"
+msgstr "losstaande ondertekening van type 0x%02x\n"
+
+#: g10/mainproc.c:1250
+msgid "old style (PGP 2.x) signature\n"
+msgstr "oude stijl (PGP 2.x) ondertekening\n"
+
+#: g10/mainproc.c:1255
+msgid "invalid root packet detected in proc_tree()\n"
+msgstr "ongeldig hoofdpakket gevonden in proc_tree()\n"
+
+#: g10/misc.c:94
+#, c-format
+msgid "can't disable core dumps: %s\n"
+msgstr "kan geheugendumps niet uitzetten: %s\n"
+
+#: g10/misc.c:97
+msgid "WARNING: program may create a core file!\n"
+msgstr "LET OP: programma zou een geheugendump kunnen maken!\n"
+
+#: g10/misc.c:205
+msgid "Experimental algorithms should not be used!\n"
+msgstr "Experimentele algoritmes dienen niet gebruikt te worden!\n"
+
+#: g10/misc.c:219
+msgid ""
+"RSA keys are deprecated; please consider creating a new key and use this key "
+"in the future\n"
+msgstr ""
+"RSA sleutels zijn verouderd; overweeg a.u.b. het aanmaken van een\n"
+"nieuwe sleutel om in de toekomst te gebruiken\n"
+
+#: g10/misc.c:241
+msgid "this cipher algorithm is depreciated; please use a more standard one!\n"
+msgstr "dit versleutelalgoritme is verouderd; gebruik een meer algemene!\n"
+
+#: g10/parse-packet.c:115
+#, c-format
+msgid "can't handle public key algorithm %d\n"
+msgstr "kan openbare sleutel-algoritme %d niet behandelen\n"
+
+#: g10/parse-packet.c:956
+#, c-format
+msgid "subpacket of type %d has critical bit set\n"
+msgstr "subpakket type %d heeft kritische bit gezet\n"
+
+#: g10/passphrase.c:159
+msgid ""
+"\n"
+"You need a passphrase to unlock the secret key for\n"
+"user: \""
+msgstr ""
+"\n"
+"U heeft een sleuteltekst nodig om de beveiliging voor de geheime\n"
+"sleutel voor gebruiker op te heffen: \""
+
+#: g10/passphrase.c:168
+#, c-format
+msgid "%u-bit %s key, ID %08lX, created %s"
+msgstr "%u-bit %s sleutel, nummer %08lX, gemaakt op %s"
+
+#: g10/passphrase.c:173
+#, c-format
+msgid " (main key ID %08lX)"
+msgstr " (hoofdsleutelnummer %08lX)"
+
+#: g10/passphrase.c:190
+msgid "can't query password in batchmode\n"
+msgstr "kan niet om wachtwoord vragen in lopende band-modus\n"
+
+#: g10/passphrase.c:194
+msgid "Enter passphrase: "
+msgstr "Geef de sleuteltekst: "
+
+#: g10/passphrase.c:198
+msgid "Repeat passphrase: "
+msgstr "Herhaal de sleuteltekst: "
+
+#: g10/plaintext.c:63
+msgid "data not saved; use option \"--output\" to save it\n"
+msgstr ""
+"gegevens niet bewaard; gebruik de optie \"--output\" om het op te slaan in\n"
+
+#: g10/plaintext.c:317
+msgid "Detached signature.\n"
+msgstr "Losstaande ondertekening.\n"
+
+#: g10/plaintext.c:321
+msgid "Please enter name of data file: "
+msgstr "Geef de naam van het gegevensbestand: "
+
+#: g10/plaintext.c:342
+msgid "reading stdin ...\n"
+msgstr "lezen uit standaard invoer ...\n"
+
+#: g10/plaintext.c:385
+#, c-format
+msgid "can't open signed data `%s'\n"
+msgstr "kan ondertekende gegevens `%s' niet openen\n"
+
+#: g10/pubkey-enc.c:79
+#, c-format
+msgid "anonymous receiver; trying secret key %08lX ...\n"
+msgstr "anonieme ontvanger; ik probeer geheime sleutel %08lX ...\n"
+
+#: g10/pubkey-enc.c:85
+msgid "okay, we are the anonymous recipient.\n"
+msgstr "okee, wij zijn de anonieme ontvanger.\n"
+
+#: g10/pubkey-enc.c:137
+msgid "old encoding of the DEK is not supported\n"
+msgstr "oude codering van de DEK wordt niet ondersteund.\n"
+
+#: g10/pubkey-enc.c:156
+#, fuzzy, c-format
+msgid "cipher algorithm %d is unknown or disabled\n"
+msgstr "beschermingsalgoritme %d wordt niet ondersteund\n"
+
+#: g10/pubkey-enc.c:195
+#, c-format
+msgid "NOTE: cipher algorithm %d not found in preferences\n"
+msgstr "LET OP: versleutelalgoritme %d niet gevonden in de voorkeuren\n"
+
+#: g10/pubkey-enc.c:201
+#, fuzzy, c-format
+msgid "NOTE: secret key %08lX expired at %s\n"
+msgstr "LET OP: sleutel voor ondertekening is vervallen op %s\n"
+
+#: g10/hkp.c:62
+#, c-format
+msgid "requesting key %08lX from %s ...\n"
+msgstr "opvragen van sleutel %08lX van %s ...\n"
+
+#: g10/hkp.c:75
+#, c-format
+msgid "can't get key from keyserver: %s\n"
+msgstr "kan de sleutel niet opvragen van de server: %s\n"
+
+#: g10/hkp.c:98 g10/hkp.c:136
+msgid "no keyserver known (use option --keyserver)\n"
+msgstr "geen sleutelserver bekend (gebruik de optie --keyserver)\n"
+
+#: g10/hkp.c:106
+#, c-format
+msgid "%s: not a valid key ID\n"
+msgstr "%s: ongeldig sleutelnummer\n"
+
+#: g10/hkp.c:158
+#, c-format
+msgid "can't connect to `%s': %s\n"
+msgstr "kan geen verbinding maken met `%s': %s\n"
+
+#: g10/hkp.c:182
+#, c-format
+msgid "error sending to `%s': %s\n"
+msgstr "fout bij versturen naar `%s': %s\n"
+
+#: g10/hkp.c:194
+#, c-format
+msgid "success sending to `%s' (status=%u)\n"
+msgstr "versturen naar `%s' gelukt (status=%u)\n"
+
+#: g10/hkp.c:197
+#, c-format
+msgid "failed sending to `%s': status=%u\n"
+msgstr "fout bij versturen naar `%s': status=%u\n"
+
+#: g10/seckey-cert.c:53
+#, fuzzy
+msgid "secret key parts are not available\n"
+msgstr "geheime sleutel niet beschikbaar"
+
+#: g10/seckey-cert.c:59
+#, c-format
+msgid "protection algorithm %d is not supported\n"
+msgstr "beschermingsalgoritme %d wordt niet ondersteund\n"
+
+#: g10/seckey-cert.c:175
+msgid "Invalid passphrase; please try again ...\n"
+msgstr "Foutieve sleuteltekst; probeer a.u.b. opnieuw ...\n"
+
+#: g10/seckey-cert.c:231
+msgid "WARNING: Weak key detected - please change passphrase again.\n"
+msgstr ""
+"LET OP: Kwetsbare sleutel gevonden - verander a.u.b. de sleuteltekst "
+"opnieuw.\n"
+
+#: g10/sig-check.c:202
+msgid "assuming bad MDC due to an unknown critical bit\n"
+msgstr "foutieve MDC aangenomen wegens een onbekende kritische bit\n"
+
+#: g10/sig-check.c:300
+msgid ""
+"this is a PGP generated ElGamal key which is NOT secure for signatures!\n"
+msgstr ""
+"dit is een ElGamal sleutel van PGP, die NIET veilig is voor "
+"ondertekeningen!\n"
+
+#: g10/sig-check.c:308
+#, c-format
+msgid "public key is %lu second newer than the signature\n"
+msgstr "openbare sleutel is %lu seconde nieuwer dan de ondertekening\n"
+
+#: g10/sig-check.c:309
+#, c-format
+msgid "public key is %lu seconds newer than the signature\n"
+msgstr "openbare sleutel is %lu seconden nieuwer dan de ondertekening\n"
+
+#: g10/sig-check.c:327
+#, c-format
+msgid "NOTE: signature key expired %s\n"
+msgstr "LET OP: sleutel voor ondertekening is vervallen op %s\n"
+
+#: g10/sig-check.c:385
+msgid "assuming bad signature due to an unknown critical bit\n"
+msgstr "foutieve ondertekening aangenomen wegens een onbekende kritische bit\n"
+
+#: g10/sign.c:139
+#, c-format
+msgid "%s signature from: %s\n"
+msgstr "%s ondertekening van: %s\n"
+
+#: g10/sign.c:270 g10/sign.c:582
+#, c-format
+msgid "can't create %s: %s\n"
+msgstr "kan %s niet aanmaken: %s\n"
+
+#: g10/sign.c:368
+msgid "signing:"
+msgstr "ondertekenen:"
+
+#: g10/sign.c:411
+#, c-format
+msgid "WARNING: `%s' is an empty file\n"
+msgstr "LET OP: `%s' is een leeg bestand\n"
+
+#: g10/textfilter.c:134
+#, c-format
+msgid "can't handle text lines longer than %d characters\n"
+msgstr "kan tekstregels langer dan %d tekens niet aan\n"
+
+#: g10/textfilter.c:231
+#, c-format
+msgid "input line longer than %d characters\n"
+msgstr "invoerregel langer dan %d tekens\n"
+
+# Untranslated.
+#: g10/tdbio.c:116 g10/tdbio.c:1623
+#, c-format
+msgid "trustdb rec %lu: lseek failed: %s\n"
+msgstr "trustdb rec %lu: lseed failed: %s\n"
+
+#: g10/tdbio.c:122 g10/tdbio.c:1630
+#, c-format
+msgid "trustdb rec %lu: write failed (n=%d): %s\n"
+msgstr "trustdb rec %lu: write failed (n=%d): %s\n"
+
+#: g10/tdbio.c:232
+msgid "trustdb transaction too large\n"
+msgstr "transactie naar vertrouwensdatabase te groot\n"
+
+#: g10/tdbio.c:424
+#, c-format
+msgid "%s: can't access: %s\n"
+msgstr "%s: kan er niet bij: %s\n"
+
+#: g10/tdbio.c:438
+#, c-format
+msgid "%s: directory does not exist!\n"
+msgstr "%s: map bestaat niet!\n"
+
+#: g10/openfile.c:216 g10/openfile.c:284 g10/ringedit.c:1363 g10/tdbio.c:444
+#, c-format
+msgid "%s: can't create: %s\n"
+msgstr "%s: kan hem niet aanmaken: %s\n"
+
+#: g10/tdbio.c:459 g10/tdbio.c:508
+#, c-format
+msgid "%s: can't create lock\n"
+msgstr "%s: kan hem niet vergrendelen\n"
+
+#: g10/tdbio.c:473
+#, c-format
+msgid "%s: failed to create version record: %s"
+msgstr "%s: aanmaken van versieveld lukte niet: %s"
+
+#: g10/tdbio.c:477
+#, c-format
+msgid "%s: invalid trustdb created\n"
+msgstr "%s: foutieve vertrouwensdatabase aangemaakt\n"
+
+#: g10/tdbio.c:480
+#, c-format
+msgid "%s: trustdb created\n"
+msgstr "%s: vertrouwensdatabase aangemaakt\n"
+
+#: g10/tdbio.c:517
+#, c-format
+msgid "%s: invalid trustdb\n"
+msgstr "%s: ongeldige vertrouwensdatabase\n"
+
+#: g10/tdbio.c:550
+#, c-format
+msgid "%s: failed to create hashtable: %s\n"
+msgstr "%s: kon frommeltabel niet aanmaken: %s\n"
+
+#: g10/tdbio.c:558
+#, c-format
+msgid "%s: error updating version record: %s\n"
+msgstr "%s: fout bij het bijwerken van versieveld: %s\n"
+
+#: g10/tdbio.c:574 g10/tdbio.c:613 g10/tdbio.c:635 g10/tdbio.c:665
+#: g10/tdbio.c:690 g10/tdbio.c:1556 g10/tdbio.c:1583
+#, c-format
+msgid "%s: error reading version record: %s\n"
+msgstr "%s: fout bij het lezen van het versieveld: %s\n"
+
+#: g10/tdbio.c:587 g10/tdbio.c:646
+#, c-format
+msgid "%s: error writing version record: %s\n"
+msgstr "%s: fout bij het schrijven van het versieveld: %s\n"
+
+#: g10/tdbio.c:1235
+#, c-format
+msgid "trustdb: lseek failed: %s\n"
+msgstr "vertrouwensdatabase: lseek mislukte: %s\n"
+
+#: g10/tdbio.c:1243
+#, c-format
+msgid "trustdb: read failed (n=%d): %s\n"
+msgstr "vertrouwensdatabase: lezen mislukte (n=%d): %s\n"
+
+#: g10/tdbio.c:1264
+#, c-format
+msgid "%s: not a trustdb file\n"
+msgstr "%s: is geen vertrouwensdatabasebestand\n"
+
+#: g10/tdbio.c:1280
+#, c-format
+msgid "%s: version record with recnum %lu\n"
+msgstr "%s: versieveld met recnr %lu\n"
+
+#: g10/tdbio.c:1285
+#, c-format
+msgid "%s: invalid file version %d\n"
+msgstr "%s: ongeldige bestandsversie %d\n"
+
+#: g10/tdbio.c:1589
+#, c-format
+msgid "%s: error reading free record: %s\n"
+msgstr "%s: fout bij het lezen van een beschikbaar veld: %s\n"
+
+# dir?
+#: g10/tdbio.c:1597
+#, c-format
+msgid "%s: error writing dir record: %s\n"
+msgstr "%s: fout bij het schrijven van indexveld: %s\n"
+
+#: g10/tdbio.c:1607
+#, c-format
+msgid "%s: failed to zero a record: %s\n"
+msgstr "%s: veld met nullen vullen lukte niet: %s\n"
+
+#: g10/tdbio.c:1637
+#, c-format
+msgid "%s: failed to append a record: %s\n"
+msgstr "%s: kon geen veld toevoegen: %s\n"
+
+#: g10/tdbio.c:1748
+msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
+msgstr ""
+"de vertrouwensdatabase is beschadigd; draai a.u.b. \"gpg --fix-trustdb\".\n"
+
+#: g10/trustdb.c:168
+#, c-format
+msgid "trust record %lu, req type %d: read failed: %s\n"
+msgstr "vertrouwensveld %lu, req type %d: lezen mislukte: %s\n"
+
+#: g10/trustdb.c:183
+#, c-format
+msgid "trust record %lu, type %d: write failed: %s\n"
+msgstr "vertrouwensveld %lu, type %d: schrijven mislukte: %s\n"
+
+#: g10/trustdb.c:197
+#, c-format
+msgid "trust record %lu: delete failed: %s\n"
+msgstr "vertrouwensveld %lu: verwijderen mislukte: %s\n"
+
+#: g10/trustdb.c:211
+#, c-format
+msgid "trustdb: sync failed: %s\n"
+msgstr "vertrouwensdatabase: synchronisatie mislukte: %s\n"
+
+#: g10/trustdb.c:376
+#, c-format
+msgid "error reading dir record for LID %lu: %s\n"
+msgstr "fout tijdens lezen van indexveld voor LID %lu: %s\n"
+
+#: g10/trustdb.c:383
+#, c-format
+msgid "lid %lu: expected dir record, got type %d\n"
+msgstr "lid %lu: verwachtte indexveld, kreeg type %d\n"
+
+#: g10/trustdb.c:388
+#, c-format
+msgid "no primary key for LID %lu\n"
+msgstr "geen pimaire sleutel voor LID %lu\n"
+
+#: g10/trustdb.c:393
+#, c-format
+msgid "error reading primary key for LID %lu: %s\n"
+msgstr "fout tijdens het lezen van primaire sleutel voor LID %lu: %s\n"
+
+#: g10/trustdb.c:432
+#, c-format
+msgid "get_dir_record: search_record failed: %s\n"
+msgstr "get_dir_record: search_record mislukte: %s\n"
+
+#: g10/trustdb.c:487
+#, c-format
+msgid "NOTE: secret key %08lX is NOT protected.\n"
+msgstr "LET OP: geheime sleutel %08lX is NIET beveiligd.\n"
+
+#: g10/trustdb.c:495
+#, c-format
+msgid "key %08lX: secret key without public key - skipped\n"
+msgstr ""
+"sleutel %08lX: geheime sleutel zonder openbare sleutel - overgeslagen\n"
+
+#: g10/trustdb.c:502
+#, c-format
+msgid "key %08lX: secret and public key don't match\n"
+msgstr "sleutel %08lX: geheime en openbare sleutel horen niet bij elkaar\n"
+
+#: g10/trustdb.c:514
+#, c-format
+msgid "key %08lX: can't put it into the trustdb\n"
+msgstr "sleutel %08lX: kan niet toevoegen aan de vertrouwensdatabase\n"
+
+#: g10/trustdb.c:520
+#, c-format
+msgid "key %08lX: query record failed\n"
+msgstr "sleutel %08lX: opvragen van veld mislukte\n"
+
+#: g10/trustdb.c:529
+#, c-format
+msgid "key %08lX: already in trusted key table\n"
+msgstr "sleutel %08lX: reeds aanwezig in de betrouwbare sleutel-tabel\n"
+
+#: g10/trustdb.c:532
+#, c-format
+msgid "key %08lX: accepted as trusted key.\n"
+msgstr "sleutel %08lX: geaccepteerd als een betrouwbare sleutel.\n"
+
+#: g10/trustdb.c:540
+#, c-format
+msgid "enumerate secret keys failed: %s\n"
+msgstr "nummeren van de geheime sleutels mislukte: %s\n"
+
+#: g10/trustdb.c:921
+#, c-format
+msgid "key %08lX.%lu: Good subkey binding\n"
+msgstr "sleutel %08lX.%lu: Goede subsleutelbinding\n"
+
+#: g10/trustdb.c:927 g10/trustdb.c:962
+#, c-format
+msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
+msgstr "sleutel %08lX.%lu: Foutieve subsleutelbinding: %s\n"
+
+#: g10/trustdb.c:939
+#, c-format
+msgid "key %08lX.%lu: Valid key revocation\n"
+msgstr "sleutel %08lX.%lu: Geldige sleutelterugtrekking\n"
+
+#: g10/trustdb.c:945
+#, c-format
+msgid "key %08lX.%lu: Invalid key revocation: %s\n"
+msgstr "sleutel %08lX.%lu: Ongeldige sleutelterugtrekking: %s\n"
+
+#: g10/trustdb.c:956
+#, c-format
+msgid "key %08lX.%lu: Valid subkey revocation\n"
+msgstr "sleutel %08lX.%lu: Geldige subsleutelterugtrekking\n"
+
+#: g10/trustdb.c:1067
+msgid "Good self-signature"
+msgstr "Correcte zelfondertekening"
+
+#: g10/trustdb.c:1077
+msgid "Invalid self-signature"
+msgstr "Ongeldige zelfondertekening"
+
+# User ID onvertaald
+#: g10/trustdb.c:1104
+msgid "Valid user ID revocation skipped due to a newer self signature"
+msgstr ""
+"Geldig terugtrekkingscertificaat overgeslagen wegens een nieuwere "
+"zelfondertekening"
+
+#: g10/trustdb.c:1110
+msgid "Valid user ID revocation"
+msgstr "Geldig terugtrekkingscertificaat voor gebruiker"
+
+#: g10/trustdb.c:1115
+msgid "Invalid user ID revocation"
+msgstr "Ongeldig terugtrekkingscertificaat voor gebruiker"
+
+#: g10/trustdb.c:1157
+msgid "Valid certificate revocation"
+msgstr "Geldige terugtrekking van certificaat"
+
+#: g10/trustdb.c:1158
+msgid "Good certificate"
+msgstr "Correct certificaat"
+
+#: g10/trustdb.c:1186
+msgid "Invalid certificate revocation"
+msgstr "Ongeldige terugtrekking van certificaat"
+
+#: g10/trustdb.c:1187
+msgid "Invalid certificate"
+msgstr "Ongeldig certificaat"
+
+#: g10/trustdb.c:1204 g10/trustdb.c:1208
+#, c-format
+msgid "sig record %lu[%d] points to wrong record.\n"
+msgstr "ondert. veld %lu[%d] wijst naar een verkeerd veld.\n"
+
+#: g10/trustdb.c:1267
+msgid "duplicated certificate - deleted"
+msgstr "dubbel certificaat - verwijderd"
+
+#: g10/trustdb.c:1584
+#, c-format
+msgid "tdbio_search_dir failed: %s\n"
+msgstr "tdbio_search_dir mislukte: %s\n"
+
+#: g10/trustdb.c:1718
+#, c-format
+msgid "lid ?: insert failed: %s\n"
+msgstr "lid ?: invoegen mislukte: %s\n"
+
+#: g10/trustdb.c:1723
+#, c-format
+msgid "lid %lu: insert failed: %s\n"
+msgstr "lid %lu: invoegen mislukte: %s\n"
+
+#: g10/trustdb.c:1729
+#, c-format
+msgid "lid %lu: inserted\n"
+msgstr "lid %lu: ingevoegd\n"
+
+#: g10/trustdb.c:1734
+#, c-format
+msgid "error reading dir record: %s\n"
+msgstr "fout bij het lezen van indexveld: %s\n"
+
+#: g10/trustdb.c:1742 g10/trustdb.c:1805
+#, c-format
+msgid "%lu keys processed\n"
+msgstr "%lu sleutels verwerkt\n"
+
+#: g10/trustdb.c:1744 g10/trustdb.c:1811
+#, c-format
+msgid "\t%lu keys with errors\n"
+msgstr " %lu sleutels met fouten\n"
+
+#: g10/trustdb.c:1746
+#, c-format
+msgid "\t%lu keys inserted\n"
+msgstr " %lu sleutels ingevoegd\n"
+
+#: g10/trustdb.c:1749
+#, c-format
+msgid "enumerate keyblocks failed: %s\n"
+msgstr "nummeren van de sleutelblokken mislukte: %s\n"
+
+#: g10/trustdb.c:1797
+#, c-format
+msgid "lid %lu: dir record w/o key - skipped\n"
+msgstr "lid %lu: indexveld zonder sleutel - overgeslagen\n"
+
+#: g10/trustdb.c:1807
+#, c-format
+msgid "\t%lu due to new pubkeys\n"
+msgstr " %lu vanwege nieuwe openbare sleutels\n"
+
+#: g10/trustdb.c:1809
+#, c-format
+msgid "\t%lu keys skipped\n"
+msgstr " %lu sleutels overgeslagen\n"
+
+#: g10/trustdb.c:1813
+#, c-format
+msgid "\t%lu keys updated\n"
+msgstr " %lu sleutels bijgewerkt\n"
+
+#: g10/trustdb.c:2158
+msgid "Ooops, no keys\n"
+msgstr "Ooeeps, geen sleutels\n"
+
+#: g10/trustdb.c:2162
+msgid "Ooops, no user IDs\n"
+msgstr "Ooeeps, geen gebruikersidentificaties\n"
+
+#: g10/trustdb.c:2320
+#, c-format
+msgid "check_trust: search dir record failed: %s\n"
+msgstr "check_trust: zoeken naar indexveld mislukte: %s\n"
+
+#: g10/trustdb.c:2329
+#, c-format
+msgid "key %08lX: insert trust record failed: %s\n"
+msgstr "sleutel %08lX: invoegen van vertrouwensveld mislukte: %s\n"
+
+#: g10/trustdb.c:2333
+#, c-format
+msgid "key %08lX.%lu: inserted into trustdb\n"
+msgstr "sleutel %08lX.%lu: ingevoegd in de vertrouwensdatabase\n"
+
+#: g10/trustdb.c:2341
+#, c-format
+msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
+msgstr ""
+"sleutel %08lX.%lu: aangemaakt in de toekomst (tijdsverschuiving of "
+"klokprobleem)\n"
+
+#: g10/trustdb.c:2356
+#, c-format
+msgid "key %08lX.%lu: expired at %s\n"
+msgstr "sleutel %08lX.%lu: vervallen op %s\n"
+
+#: g10/trustdb.c:2364
+#, c-format
+msgid "key %08lX.%lu: trust check failed: %s\n"
+msgstr "sleutel %08lX.%lu: betrouwbaarheidscontrole mislukt: %s\n"
+
+#: g10/trustdb.c:2515
+#, c-format
+msgid "user '%s' not found: %s\n"
+msgstr "gebruiker `%s' niet gevonden: %s\n"
+
+#: g10/trustdb.c:2517
+#, c-format
+msgid "problem finding '%s' in trustdb: %s\n"
+msgstr "kon `%s' niet opzoeken in de vertrouwensdatabase: %s\n"
+
+#: g10/trustdb.c:2520
+#, c-format
+msgid "user '%s' not in trustdb - inserting\n"
+msgstr "gebruiker '%s' komt niet voor in de vertrouwensdatabase - invoegen\n"
+
+#: g10/trustdb.c:2523
+#, c-format
+msgid "failed to put '%s' into trustdb: %s\n"
+msgstr "kon '%s' niet invoegen in de vertrouwensdatabase: %s\n"
+
+#: g10/trustdb.c:2709 g10/trustdb.c:2739
+msgid "WARNING: can't yet handle long pref records\n"
+msgstr "LET OP: kan nog geen lange voorkeursblokken verwerken\n"
+
+#: g10/verify.c:82
+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 ""
+"deze ondertekening kon niet worden gecontroleerd.\n"
+"Onthoud dat het bestand met de ondertekening (.sig of .asc) het eerste\n"
+"bestand van de commandoregel moet zijn.\n"
+
+#: g10/verify.c:147
+#, c-format
+msgid "input line %u too long or missing LF\n"
+msgstr "invoerregel %u is te lang, of ontbrekende LF\n"
+
+#: g10/ringedit.c:302
+#, c-format
+msgid "%s: can't create keyring: %s\n"
+msgstr "%s: kan sleutelbos niet aanmaken: %s\n"
+
+#: g10/ringedit.c:319 g10/ringedit.c:1368
+#, c-format
+msgid "%s: keyring created\n"
+msgstr "%s: sleutelbos aangemaakt\n"
+
+#: g10/ringedit.c:1545
+msgid "WARNING: 2 files with confidential information exists.\n"
+msgstr "LET OP: er zijn 2 bestanden met vertrouwelijke informatie.\n"
+
+#: g10/ringedit.c:1546
+#, c-format
+msgid "%s is the unchanged one\n"
+msgstr "%s is de onveranderde\n"
+
+#: g10/ringedit.c:1547
+#, c-format
+msgid "%s is the new one\n"
+msgstr "%s is de nieuwe\n"
+
+#: g10/ringedit.c:1548
+msgid "Please fix this possible security flaw\n"
+msgstr "Dicht dit mogelijke beveiligingsgat\n"
+
+#: g10/skclist.c:88 g10/skclist.c:125
+msgid "key is not flagged as insecure - can't use it with the faked RNG!\n"
+msgstr ""
+"sleutel is niet als onveilig gemarkeerd - kan hem niet gebruiken met "
+"nep-RNG!\n"
+
+#: g10/skclist.c:113
+#, c-format
+msgid "skipped `%s': %s\n"
+msgstr "`%s' overgeslagen: %s\n"
+
+#: g10/skclist.c:119
+#, c-format
+msgid ""
+"skipped `%s': this is a PGP generated ElGamal key which is not secure for "
+"signatures!\n"
+msgstr ""
+"`%s' overgeslagen: dit is een ElGamal sleutel gemaakt door PGP, dit is\n"
+"niet veilig genoeg voor ondertekeningen!\n"
+
+#. do not overwrite
+#: g10/openfile.c:79
+#, c-format
+msgid "File `%s' exists. "
+msgstr "Bestand `%s' bestaat al. "
+
+#: g10/openfile.c:81
+msgid "Overwrite (y/N)? "
+msgstr "Overschrijven (j/N)? "
+
+#: g10/openfile.c:109
+#, c-format
+msgid "%s: unknown suffix\n"
+msgstr "%s: onbekend achtervoegsel\n"
+
+#: g10/openfile.c:131
+msgid "Enter new filename"
+msgstr "Geef een nieuwe bestandsnaam"
+
+#: g10/openfile.c:172
+msgid "writing to stdout\n"
+msgstr "naar standaard uitvoer schrijven\n"
+
+#: g10/openfile.c:250
+#, c-format
+msgid "assuming signed data in `%s'\n"
+msgstr "ik neem aan dat de getekende gegevens zich in `%s' bevinden\n"
+
+#: g10/openfile.c:300
+#, c-format
+msgid "%s: new options file created\n"
+msgstr "%s: nieuw optiebestand aangemaakt\n"
+
+#: g10/openfile.c:313
+#, c-format
+msgid "%s: can't create directory: %s\n"
+msgstr "%s: kan map niet aamaken: %s\n"
+
+#: g10/openfile.c:316
+#, c-format
+msgid "%s: directory created\n"
+msgstr "%s: map aangemaakt\n"
+
+#: g10/openfile.c:318
+msgid "you have to start GnuPG again, so it can read the new options file\n"
+msgstr ""
+"u moet GnuPG opnieuw starten, zodat het het nieuwe optiebestand kan inlezen\n"
+
+#: g10/encr-data.c:66
+#, c-format
+msgid "%s encrypted data\n"
+msgstr "%s versleutelde gegevens\n"
+
+#: g10/encr-data.c:68
+#, c-format
+msgid "encrypted with unknown algorithm %d\n"
+msgstr "versleuteld met onbekend algoritme %d\n"
+
+#: g10/encr-data.c:85
+msgid ""
+"WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
+msgstr ""
+"LET OP: dit bericht werd versleuteld met een zwakke sleutel in het\n"
+"symmetrische versleutelalgoritme.\n"
+
+#: g10/seskey.c:52
+msgid "weak key created - retrying\n"
+msgstr "zwakke sleutel gemaakt - ik probeer het opnieuw\n"
+
+#: g10/seskey.c:57
+#, c-format
+msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
+msgstr ""
+"kon het aanmaken van een zwakke sleutel voor het symmetrische\n"
+"algoritme niet voorkomen; ik heb het %d keer geprobeerd!\n"
+
+#: g10/delkey.c:94
+msgid "there is a secret key for this public key!\n"
+msgstr "er is een geheime sleutel voor deze openbare sleutel!\n"
+
+#: g10/delkey.c:96
+msgid "use option \"--delete-secret-key\" to delete it first.\n"
+msgstr ""
+"gebruik eerst de optie \"--delete-secret-key\" om hem te verwijderen.\n"
+
+#: g10/delkey.c:114
+msgid "can't do that in batchmode without \"--yes\"\n"
+msgstr "kan dat niet doen in lopende band-mode zonder \"--yes\"\n"
+
+#: g10/delkey.c:136
+msgid "Delete this key from the keyring? "
+msgstr "Deze sleutel van de sleutelbos verwijderen? "
+
+#: g10/delkey.c:144
+msgid "This is a secret key! - really delete? "
+msgstr "Dit is een geheime sleutel! - echt verwijderen? "
+
+#: g10/helptext.c:47
+msgid ""
+"It's up to you to assign a value here; this value will never be exported\n"
+"to any 3rd party. We need it to implement the web-of-trust; it has nothing\n"
+"to do with the (implicitly created) web-of-certificates."
+msgstr ""
+"Het is aan u om hier een waarde te geven; deze waarde zal nooit\n"
+"weggegeven worden aan derden. We hebben het nodig om het\n"
+"netwerk-van-vertrouwen op te bouwen; het heeft niets te maken met het\n"
+"netwerk-van-certificaten (dat automatisch gemaakt wordt)."
+
+#: g10/helptext.c:53
+msgid "If you want to use this revoked key anyway, answer \"yes\"."
+msgstr "Als u dit desondanks toch wilt intrekken, antwoord dan \"ja\"."
+
+#: g10/helptext.c:57
+msgid "If you want to use this untrusted key anyway, answer \"yes\"."
+msgstr ""
+"Als u deze onbetrouwbare sleutel toch wilt gebruiken, antwoord dan \"ja\"."
+
+#: g10/helptext.c:61
+msgid ""
+"Enter the user ID of the addressee to whom you want to send the message."
+msgstr "Geef de identificatie van de ontvangende gebruiker."
+
+#: g10/helptext.c:65
+msgid ""
+"Select the algorithm to use.\n"
+"\n"
+"DSA (aka DSS) is the digital signature algorithm which can only be used\n"
+"for signatures. This is the suggested algorithm because verification of\n"
+"DSA signatures are much faster than those of ElGamal.\n"
+"\n"
+"ElGamal is an algorithm which can be used for signatures and encryption.\n"
+"OpenPGP distinguishs between two flavors of this algorithms: an encrypt "
+"only\n"
+"and a sign+encrypt; actually it is the same, but some parameters must be\n"
+"selected in a special way to create a safe key for signatures: this program\n"
+"does this but other OpenPGP implementations are not required to understand\n"
+"the signature+encryption flavor.\n"
+"\n"
+"The first (primary) key must always be a key which is capable of signing;\n"
+"this is the reason why the encryption only ElGamal key is not available in\n"
+"this menu."
+msgstr ""
+"Selecteer het te gebruiken algoritme.\n"
+"\n"
+"DSA (ook wel DSS) is het `Digital Signature Algoritm' dat alleen\n"
+"gebruikt kan worden voor ondertekeningen. Dit heeft de voorkeur omdat\n"
+"controle van DSA ondertekeningen veel sneller gaan dan van ElGamal.\n"
+"\n"
+"ElGamal is een algoritme dat gebruikt kan worden voor ondertekening en\n"
+"versleuteling. OpenPGP maakt een onderscheid tussen de twee varianten\n"
+"van dit algoritme: alleen versleutelen en versleutelen+tekenen; het is\n"
+"in werkelijkheid het zelfde, maar sommige parameters moeten speciaal\n"
+"gezet worden voor de aanmaak van een veilige sleutel voor\n"
+"ondertekeningen: dit programma doet dit, maar andere OpenPGP\n"
+"implementaties zijn niet verplicht om de versleutelen+tekenen-variant\n"
+"te ondersteunen.\n"
+"\n"
+"De eerste (primaire) sleutel moet altijd een sleutel zijn waarmee\n"
+"ondertekend kan worden; om deze reden is de ElGamal sleutel voor\n"
+"alleen versleutelen niet aanwezig in dit menu."
+
+#: g10/helptext.c:85
+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 ""
+"Hoewel deze sleutels gedefinieerd zijn in RFC2440, worden ze niet\n"
+"aangeraden om dat ze niet ondersteund worden door alle programma's, en\n"
+"ondertekeningen die ermee gemaakt zijn, zijn behoorlijk groot en traag\n"
+"te verifi�ren."
+
+#: g10/helptext.c:92
+msgid "Enter the size of the key"
+msgstr "Geef de sleutelgrootte"
+
+#: g10/helptext.c:96 g10/helptext.c:101 g10/helptext.c:113 g10/helptext.c:145
+#: g10/helptext.c:150 g10/helptext.c:155 g10/helptext.c:160
+msgid "Answer \"yes\" or \"no\""
+msgstr "Antwoord met \"ja\" of \"nee\""
+
+#: g10/helptext.c:106
+msgid ""
+"Enter the required value as shown in the prompt.\n"
+"It is possible to enter a ISO date (YYYY-MM-DD) but you won't\n"
+"get a good error response - instead the system tries to interpret\n"
+"the given value as an interval."
+msgstr ""
+"Geef de verwachtte waarde zoals aangegeven in de prompt.\n"
+"Het is mogelijk om een ISO datum (JJJJ-MM-DD) op te geven, maar u zult\n"
+"dan geen goede foutafhandeling krijgen, inplaats daarvan zal het\n"
+"systeem deze waarde proberen te interpreteren als een interval."
+
+#: g10/helptext.c:118
+msgid "Enter the name of the key holder"
+msgstr "Geef de naam van de eigenaar van de sleutel"
+
+#: g10/helptext.c:123
+msgid "please enter an optional but highly suggested email address"
+msgstr "geef a.u.b. een optioneel maar aan te raden e-mail adres."
+
+#: g10/helptext.c:127
+msgid "Please enter an optional comment"
+msgstr "Geef eventueel een kanttekening"
+
+#: g10/helptext.c:132
+msgid ""
+"N to change the name.\n"
+"C to change the comment.\n"
+"E to change the email address.\n"
+"O to continue with key generation.\n"
+"Q to to quit the key generation."
+msgstr ""
+"N om de naam te veranderen.\n"
+"C om het kommentaar te veranderen.\n"
+"E om het e-mail adres te veranderen.\n"
+"O om door te gaan met de sleutelgeneratie.\n"
+"Q om te stoppen met de sleutelgeneratie."
+
+#: g10/helptext.c:141
+msgid "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
+msgstr "Antwoord met \"ja\" (of alleen \"j\") om een subsleutel aan te maken."
+
+#: g10/helptext.c:164
+msgid "Answer \"yes\" is you want to sign ALL the user IDs"
+msgstr "Antwoord met \"ja\" als u ALLE gebruikersidentificaties wilt tekenen"
+
+#: g10/helptext.c:168
+msgid ""
+"Answer \"yes\" if you really want to delete this user ID.\n"
+"All certificates are then also lost!"
+msgstr ""
+"Antwoord \"ja\" indien u deze gebruiker echt wilt verwijderen.\n"
+"Alle certificaten gaan dan ook verloren!"
+
+#: g10/helptext.c:173
+msgid "Answer \"yes\" if it is okay to delete the subkey"
+msgstr "Antwoord met \"ja\" als het goed is om de subsleutel te verwijderen"
+
+#: g10/helptext.c:178
+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 ""
+"Dit is een geldige ondertekening van de sleutel; u hoeft deze normaal\n"
+"gesproken niet te verwijderen, omdat het misschien een vertrouwens-\n"
+"relatie met deze of een andere sleutel verstoort, die getekend is met\n"
+"deze sleutel."
+
+#: g10/helptext.c:183
+msgid ""
+"This signature can't be checked because you don't have the\n"
+"corresponding key. You should postpone its deletion until you\n"
+"know which key was used because this signing key might establish\n"
+"a trust connection through another already certified key."
+msgstr ""
+"Deze ondertekening kan niet gecontroleerd worden omdat u de\n"
+"bijbehorende sleutel niet heeft. U kunt het verwijderen beter\n"
+"uitstellen totdat u weet welke sleutel gebruikt was, omdat het\n"
+"ondertekenen met deze sleutel misschien een vertrouwensband kan\n"
+"scheppen met een andere, al getekende, sleutel."
+
+#: g10/helptext.c:189
+msgid ""
+"The signature is not valid. It does make sense to remove it from\n"
+"your keyring."
+msgstr ""
+"De ondertekening is ongeldig. Het is zinnig om deze uit de sleutelbos\n"
+"te verwijderen."
+
+#: g10/helptext.c:193
+msgid ""
+"This is a signature which binds the user ID to the key. It is\n"
+"usually not a good idea to remove such a signature. Actually\n"
+"GnuPG might not be able to use this key anymore. So do this\n"
+"only if this self-signature is for some reason not valid and\n"
+"a second one is available."
+msgstr ""
+"Dit is een ondertekening die de gebruikersidentificatie met de sleutel\n"
+"verbindt. Het is meestal geen goed idee om zo'n ondertekening te\n"
+"verwijderen. Wellicht is GnuPG zelfs niet meer in staat om de sleutel\n"
+"hierna te gebruiken. Dus doe dit alleen als de zelfondertekening om de\n"
+"een of andere reden niet geldig is, en een tweede beschikbaar is."
+
+#: g10/helptext.c:202
+msgid ""
+"Please enter the passhrase; this is a secret sentence \n"
+" Blurb, blurb,.... "
+msgstr ""
+"Geef a.u.b. een sleuteltekst; dit is een geheime zin\n"
+" blabla, blablabla, ..."
+
+#: g10/helptext.c:209
+msgid "Please repeat the last passphrase, so you are sure what you typed in."
+msgstr ""
+"Herhaal a.u.b. de voorgaande sleuteltekst, zodat u zeker weet wat u ingetypt "
+"heeft."
+
+#: g10/helptext.c:213
+msgid "Give the name of the file to which the signature applies"
+msgstr "Geef de naam van het bestand waaraan de ondertekening toebehoort"
+
+#: g10/helptext.c:218
+msgid "Answer \"yes\" if it is okay to overwrite the file"
+msgstr "Antwoord \"ja\" als het goed is om het bestand te overschrijven"
+
+#: g10/helptext.c:223
+msgid ""
+"Please enter a new filename. If you just hit RETURN the default\n"
+"file (which is shown in brackets) will be used."
+msgstr ""
+"Geef a.u.b. een nieuwe bestansnaam. Als u op RETURN drukt, wordt de\n"
+"standaard bestandsnaam (tussen blokhaken weergegeven) gebruikt."
+
+#: g10/helptext.c:229
+msgid ""
+"You should specify a reason for the certification. Depending on the\n"
+"context you have the ability to choose from this list:\n"
+" \"Key has been compromised\"\n"
+" Use this if you have a reason to believe that unauthorized persons\n"
+" got access to your secret key.\n"
+" \"Key is superseeded\"\n"
+" Use this if you have replaced this key with a newer one.\n"
+" \"Key is no longer used\"\n"
+" Use this if you have retired this key.\n"
+" \"User ID is no longer valid\"\n"
+" 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 ""
+
+#: g10/helptext.c:245
+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 ""
+
+#: g10/helptext.c:260
+msgid "No help available"
+msgstr "Geen hulp beschikbaar"
+
+#: g10/helptext.c:268
+#, c-format
+msgid "No help available for `%s'"
+msgstr "Geen hulp beschikbaar voor `%s'"
+
+#~ msgid "set debugging flags"
+#~ msgstr "zet afluistervlaggen"
+
+#~ msgid "enable full debugging"
+#~ msgstr "sta volledige aflustering toe"
+
+#~ msgid "do not write comment packets"
+#~ msgstr "schrijf geen commentaarpakketten"
+
+#~ msgid "(default is 1)"
+#~ msgstr "(standaard is 1)"
+
+#~ msgid "(default is 3)"
+#~ msgstr "(standaard is 3)"
+
+#~ msgid " (%d) ElGamal in a v3 packet\n"
+#~ msgstr " (%d) ElGamal in een v3 pakket\n"
+
+#~ msgid "Key generation can only be used in interactive mode\n"
+#~ msgstr "Sleutelgeneratie kan alleen gebruikt worden in interactieve modus\n"
diff --git a/po/pl.po b/po/pl.po
index 068834188..1f65c0447 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,9 +6,9 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: gnupg-0.9.11\n"
-"POT-Creation-Date: 1999-09-05 19:21+0200\n"
-"PO-Revision-Date: 1999-09-07 10:59+02:00\n"
+"Project-Id-Version: gnupg-1.0.0\n"
+"POT-Creation-Date: 2000-05-30 13:59+0200\n"
+"PO-Revision-Date: 1999-10-02 21:35+02:00\n"
"Last-Translator: Janusz A. Urbanowicz <[email protected]>\n"
"Language-Team: Polish <[email protected]>\n"
"MIME-Version: 1.0\n"
@@ -27,11 +27,11 @@ msgstr ""
msgid "Warning: using insecure memory!\n"
msgstr "Ostrze�enie: u�ywana pami�� nie jest pami�ci� bezpieczn�!\n"
-#: util/secmem.c:275
+#: util/secmem.c:287
msgid "operation is not possible without initialized secure memory\n"
msgstr "operacja niemo�liwa do wykonania bez dost�pnej pami�ci bezpiecznej\n"
-#: util/secmem.c:276
+#: util/secmem.c:288
msgid "(you may have used the wrong program for this task)\n"
msgstr "(prawdopodobnie u�ywany program jest niew�a�ciwy dlatego zadania)\n"
@@ -51,7 +51,7 @@ msgstr "nie"
msgid "nN"
msgstr "nN"
-#: g10/keyedit.c:564 util/miscutil.c:308
+#: g10/keyedit.c:580 util/miscutil.c:308
msgid "quit"
msgstr "wyj�cie"
@@ -101,7 +101,7 @@ msgstr "niepoprawne wyra�enie przej�ciowe"
#: util/errors.c:64
msgid "public key not found"
-msgstr "klucz publiczny nie odnaleziony"
+msgstr "nie odnaleziono klucza publicznego"
#: util/errors.c:65
msgid "unknown cipher algorithm"
@@ -125,19 +125,19 @@ msgstr "brak takiego identyfikatora u�ytkownika."
#: util/errors.c:70
msgid "secret key not available"
-msgstr "klucz tajny jest niedost�pny"
+msgstr "klucz tajny nie jest dost�pny"
#: util/errors.c:71
msgid "wrong secret key used"
-msgstr "zosta� u�yty niew�a�ciwy klucz tajny"
+msgstr "u�yty zosta� niew�a�ciwy klucz tajny"
#: util/errors.c:72
msgid "not supported"
-msgstr "nie jet obs�ugiwany"
+msgstr "nie jest obs�ugiwany"
#: util/errors.c:73
msgid "bad key"
-msgstr "klucz niepoprawny"
+msgstr "niepoprawny klucz"
#: util/errors.c:74
msgid "file read error"
@@ -213,7 +213,7 @@ msgstr "b��d przy usuwaniu pliku"
#: util/errors.c:92
msgid "unexpected data"
-msgstr "nieoczekiowane dane"
+msgstr "nieoczekiwane dane"
#: util/errors.c:93
msgid "timestamp conflict"
@@ -241,7 +241,7 @@ msgstr "niepoprawny URI"
#: util/errors.c:99
msgid "unsupported URI"
-msgstr "URI typu nie obs�ugiwanego"
+msgstr "URI nie obs�ugiwanego typu"
#: util/errors.c:100
msgid "network error"
@@ -249,25 +249,82 @@ msgstr "b��d sieci"
#: util/errors.c:102
msgid "not encrypted"
-msgstr "nie zaszyfrowany"
+msgstr "nie jest zaszyfrowany"
-#: util/logger.c:218
+#: util/errors.c:103
+#, fuzzy
+msgid "not processed"
+msgstr "%lu kluczy przetworzonych\n"
+
+#: util/logger.c:224
#, c-format
msgid "... this is a bug (%s:%d:%s)\n"
msgstr "... to jest b��d w programie (%s:%d:%s)\n"
-#: util/logger.c:224
+#: util/logger.c:230
#, c-format
msgid "you found a bug ... (%s:%d)\n"
msgstr "znalaz�e�(a�) b��d w programie ... (%s:%d)\n"
-#: cipher/random.c:452
+#: cipher/random.c:311 g10/import.c:127 g10/keygen.c:1150
+#, c-format
+msgid "can't open `%s': %s\n"
+msgstr "nie mo�na otworzy� %s: %s\n"
+
+#: cipher/random.c:315
+#, fuzzy, c-format
+msgid "can't stat `%s': %s\n"
+msgstr "nie mo�na otworzy� %s: %s\n"
+
+#: cipher/random.c:320
+#, c-format
+msgid "`%s' is not a regular file - ignored\n"
+msgstr ""
+
+#: cipher/random.c:325
+msgid "note: random_seed file is empty\n"
+msgstr ""
+
+#: cipher/random.c:331
+msgid "warning: invalid size of random_seed file - not used\n"
+msgstr ""
+
+#: cipher/random.c:339
+#, fuzzy, c-format
+msgid "can't read `%s': %s\n"
+msgstr "nie mo�na otworzy� %s: %s\n"
+
+#: cipher/random.c:377
+msgid "note: random_seed file not updated\n"
+msgstr ""
+
+#: cipher/random.c:397
+#, fuzzy, c-format
+msgid "can't create `%s': %s\n"
+msgstr "nie mo�na stworzy� %s: %s\n"
+
+#: cipher/random.c:404
+#, fuzzy, c-format
+msgid "can't write `%s': %s\n"
+msgstr "nie mo�na otworzy� %s: %s\n"
+
+#: cipher/random.c:407
+#, fuzzy, c-format
+msgid "can't close `%s': %s\n"
+msgstr "nie mo�na otworzy� %s: %s\n"
+
+#: cipher/random.c:418
+#, c-format
+msgid "too many random bits requested; the limit is %d\n"
+msgstr ""
+
+#: cipher/random.c:647
msgid "WARNING: using insecure random number generator!!\n"
msgstr ""
"OSTRZE�ENIE: u�ywany generator liczb losowych\n"
"nie jest kryptograficznie bezpieczny!!\n"
-#: cipher/random.c:453
+#: cipher/random.c:648
msgid ""
"The random number generator is only a kludge to let\n"
"it run - it is in no way a strong RNG!\n"
@@ -281,7 +338,7 @@ msgstr ""
"JAKIEKOLWIEK DANE GENEROWANE PRZEZ TEN PROGRAM NIE NADAJ� SI� DO \n"
"NORMALNEGO U�YTKU I NIE ZAPEWNIAJ� BEZPIECZE�STWA!!\n"
-#: cipher/rndlinux.c:135
+#: cipher/rndlinux.c:141
#, c-format
msgid ""
"\n"
@@ -293,7 +350,7 @@ msgstr ""
"Prosz� kontynuowa� inne dzia�ania aby system m�g� zebra� odpowiedni�\n"
"ilo�� entropii do ich wygenerowania (brakuje %d bajt�w).\n"
-#: g10/g10.c:185
+#: g10/g10.c:195
msgid ""
"@Commands:\n"
" "
@@ -301,135 +358,140 @@ msgstr ""
"@Polecenia:\n"
" "
-#: g10/g10.c:187
+#: g10/g10.c:197
msgid "|[file]|make a signature"
msgstr "|[plik]|z�o�enie podpisu"
-#: g10/g10.c:188
+#: g10/g10.c:198
msgid "|[file]|make a clear text signature"
msgstr "|[plik]|z�o�enie podpisu na czytelnym dokumencie"
-#: g10/g10.c:189
+#: g10/g10.c:199
msgid "make a detached signature"
msgstr "sporz�dzenie podpisu oddzielonego od dokumentu"
-#: g10/g10.c:190
+#: g10/g10.c:200
msgid "encrypt data"
msgstr "szyfrowanie danych"
-#: g10/g10.c:191
+#: g10/g10.c:201
msgid "encryption only with symmetric cipher"
msgstr "szyfrowanie tylko szyfrem symetrycznym"
-#: g10/g10.c:192
+#: g10/g10.c:202
msgid "store only"
-msgstr "tylko zapis"
+msgstr "tylko zapis do pliku"
-#: g10/g10.c:193
+#: g10/g10.c:203
msgid "decrypt data (default)"
msgstr "odszyfrowywanie danych (domy�lnie)"
-#: g10/g10.c:194
+#: g10/g10.c:204
msgid "verify a signature"
msgstr "sprawdzenie podpisu"
-#: g10/g10.c:195
+#: g10/g10.c:206
msgid "list keys"
msgstr "lista kluczy"
-#: g10/g10.c:197
+#: g10/g10.c:208
msgid "list keys and signatures"
msgstr "lista kluczy i podpis�w"
-#: g10/g10.c:198
+#: g10/g10.c:209
msgid "check key signatures"
msgstr "sprawdzenie podpis�w kluczy"
-#: g10/g10.c:199
+#: g10/g10.c:210
msgid "list keys and fingerprints"
msgstr "lista kluczy i ich odcisk�w"
-#: g10/g10.c:200
+#: g10/g10.c:211
msgid "list secret keys"
msgstr "lista kluczy tajnych"
-#: g10/g10.c:201
+#: g10/g10.c:212
msgid "generate a new key pair"
msgstr "generacja nowej pary klucza"
-#: g10/g10.c:202
+#: g10/g10.c:213
msgid "remove key from the public keyring"
msgstr "usuni�cie klucza ze zbioru kluczy publicznych"
-#: g10/g10.c:203
+#: g10/g10.c:215
+#, fuzzy
+msgid "remove key from the secret keyring"
+msgstr "usuni�cie klucza ze zbioru kluczy publicznych"
+
+#: g10/g10.c:216
msgid "sign a key"
msgstr "z�o�enie podpisu na kluczu"
-#: g10/g10.c:204
+#: g10/g10.c:217
msgid "sign a key locally"
msgstr "z�o�enie lokalnego podpisu na kluczu"
-#: g10/g10.c:205
+#: g10/g10.c:218
msgid "sign or edit a key"
msgstr "podpisanie lub modyfikacja klucza"
-#: g10/g10.c:206
+#: g10/g10.c:219
msgid "generate a revocation certificate"
-msgstr "generacja certyfikatu uniewa�nienia klucza"
+msgstr "tworzenie certyfikatu uniewa�nienia klucza"
-#: g10/g10.c:207
+#: g10/g10.c:220
msgid "export keys"
msgstr "eksport kluczy do pliku"
-#: g10/g10.c:208
+#: g10/g10.c:221
msgid "export keys to a key server"
msgstr "eksport kluczy do serwera kluczy"
-#: g10/g10.c:209
+#: g10/g10.c:222
msgid "import keys from a key server"
msgstr "import kluczy z serwera kluczy"
-#: g10/g10.c:212
+#: g10/g10.c:226
msgid "import/merge keys"
-msgstr "import/do��czenie kluczy"
+msgstr "import/do��czanie kluczy"
-#: g10/g10.c:214
+#: g10/g10.c:228
msgid "list only the sequence of packets"
msgstr "wypisane sekwencji pakiet�w"
-#: g10/g10.c:216
+#: g10/g10.c:230
msgid "export the ownertrust values"
msgstr "eksport warto�ci zaufania"
-#: g10/g10.c:218
+#: g10/g10.c:232
msgid "import ownertrust values"
msgstr "wczytanie warto��i zaufania"
-#: g10/g10.c:220
+#: g10/g10.c:234
msgid "update the trust database"
msgstr "uaktualnienie bazy zaufania"
-#: g10/g10.c:222
+#: g10/g10.c:236
msgid "|[NAMES]|check the trust database"
msgstr "|[NAZWY]|sprawdzenie bazy zaufania"
-#: g10/g10.c:223
+#: g10/g10.c:237
msgid "fix a corrupted trust database"
-msgstr "naprawa uszkodzonej Bazy Zaufania"
+msgstr "naprawa uszkodzonej bazy zaufania"
-#: g10/g10.c:224
+#: g10/g10.c:238
msgid "De-Armor a file or stdin"
msgstr "zdj�cie opakowania ASCII pliku lub potoku"
-#: g10/g10.c:225
+#: g10/g10.c:240
msgid "En-Armor a file or stdin"
msgstr "opakowanie ASCII pliku lub potoku"
-#: g10/g10.c:226
+#: g10/g10.c:242
msgid "|algo [files]|print message digests"
msgstr "|algo [pliki]|skr�ty wiadomo�ci"
-#: g10/g10.c:230
+#: g10/g10.c:246
msgid ""
"@\n"
"Options:\n"
@@ -439,168 +501,154 @@ msgstr ""
"Opcje:\n"
" "
-#: g10/g10.c:232
+#: g10/g10.c:248
msgid "create ascii armored output"
-msgstr "plik wynikowy w opakowaniu ASCII"
+msgstr "plik wynikowy b�dzie w opakowaniu ASCII"
-#: g10/g10.c:233
+#: g10/g10.c:250
msgid "|NAME|encrypt for NAME"
-msgstr "|NAZWA|szyfrowanie dla odbiorcy NAZWA"
+msgstr "|NAZWA|szyfrowanie dla adresata NAZWA"
-#: g10/g10.c:236
+#: g10/g10.c:253
msgid "|NAME|use NAME as default recipient"
msgstr "|NAZWA|u�ycie NAZWA jako domy�lnego adresata"
-#: g10/g10.c:238
+#: g10/g10.c:255
msgid "use the default key as default recipient"
msgstr "domy�lny klucz jest domy�lnym adresatem"
-#: g10/g10.c:242
+#: g10/g10.c:259
msgid "use this user-id to sign or decrypt"
msgstr "identyfikator do podpisania lub odszyfrowania"
-#: g10/g10.c:243
+#: g10/g10.c:260
msgid "|N|set compress level N (0 disables)"
msgstr "|N|poziom kompresji N (0 - brak)"
-#: g10/g10.c:245
+#: g10/g10.c:262
msgid "use canonical text mode"
msgstr "kanoniczny format tekstowy"
-#: g10/g10.c:246
+#: g10/g10.c:263
msgid "use as output file"
msgstr "plik wyj�ciowy"
-#: g10/g10.c:247
+#: g10/g10.c:264
msgid "verbose"
msgstr "z informacjami dodatkowymi"
-#: g10/g10.c:248
+#: g10/g10.c:265
msgid "be somewhat more quiet"
msgstr "mniej komunikat�ww"
-#: g10/g10.c:249
+#: g10/g10.c:266
msgid "don't use the terminal at all"
msgstr "bez odwo�a� do terminala"
-#: g10/g10.c:250
+#: g10/g10.c:267
msgid "force v3 signatures"
msgstr "wymuszenie trzeciej wersji formatu podpis�w"
-#: g10/g10.c:251
+#: g10/g10.c:268
msgid "always use a MDC for encryption"
msgstr "do szyfrowania b�dzie u�ywany MDC"
-#: g10/g10.c:252
+#: g10/g10.c:269
msgid "do not make any changes"
msgstr "pozostawienie bez zmian"
#. { oInteractive, "interactive", 0, N_("prompt before overwriting") },
-#: g10/g10.c:254
+#: g10/g10.c:271
msgid "batch mode: never ask"
msgstr "tryb wsadowy: �adnych pyta�"
-#: g10/g10.c:255
+#: g10/g10.c:272
msgid "assume yes on most questions"
msgstr "automatyczna odpowied� tak na wi�kszo�� pyta�"
-#: g10/g10.c:256
+#: g10/g10.c:273
msgid "assume no on most questions"
msgstr "automatyczna odpowied� nie na wi�kszo�� pyta�"
-#: g10/g10.c:257
+#: g10/g10.c:274
msgid "add this keyring to the list of keyrings"
msgstr "doda� zbi�r kluczy do listy u�ywanych"
-#: g10/g10.c:258
+#: g10/g10.c:275
msgid "add this secret keyring to the list"
msgstr "doda� zbi�r kluczy tajnych do listy"
-#: g10/g10.c:259
+#: g10/g10.c:276
msgid "|NAME|use NAME as default secret key"
msgstr "|NAZWA|u�ycie NAZWA jako domy�lnego klucza tajnego"
-#: g10/g10.c:260
+#: g10/g10.c:277
msgid "|HOST|use this keyserver to lookup keys"
msgstr "|HOST|serwer kluczy w kt�rym b�d� poszukiwane"
-#: g10/g10.c:261
+#: g10/g10.c:278
msgid "|NAME|set terminal charset to NAME"
msgstr "|NAZWA|zestaw znak�w terminala NAZWA"
-#: g10/g10.c:262
+#: g10/g10.c:279
msgid "read options from file"
msgstr "wczytanie opcji z pliku"
-#: g10/g10.c:264
-msgid "set debugging flags"
-msgstr "ustawienie opcji �ledzenia wykonania programu"
-
-#: g10/g10.c:265
-msgid "enable full debugging"
-msgstr "umo�liwienie pe�nego �ledzenia programu"
-
-#: g10/g10.c:266
+#: g10/g10.c:283
msgid "|FD|write status info to this FD"
msgstr "|FD|zapisa� opis stanu do FD"
-#: g10/g10.c:267
-msgid "do not write comment packets"
-msgstr "nie zapisywa� pakiet�w z komentarzem"
-
-#: g10/g10.c:268
-msgid "(default is 1)"
-msgstr "(domy�lnie 1)"
-
-#: g10/g10.c:269
-msgid "(default is 3)"
-msgstr "(domy�lnie 3)"
-
-#: g10/g10.c:271
+#: g10/g10.c:288
msgid "|FILE|load extension module FILE"
msgstr "|PLIK|�adowanie modu�u rozszerzenia z PLIK"
-#: g10/g10.c:272
+#: g10/g10.c:289
msgid "emulate the mode described in RFC1991"
msgstr "emulacja trybu opisanego w RFC1991"
-#: g10/g10.c:273
+#: g10/g10.c:290
msgid "set all packet, cipher and digest options to OpenPGP behavior"
msgstr "zgodno�� ustawie� pakiet�w, szyfr�w i skr�t�w z OpenPGP"
-#: g10/g10.c:274
+#: g10/g10.c:291
msgid "|N|use passphrase mode N"
msgstr "|N|N-ty tryb wprowadzania wyra�enia przej�ciowego"
-#: g10/g10.c:276
+#: g10/g10.c:293
msgid "|NAME|use message digest algorithm NAME for passphrases"
msgstr "|ALG|algorytm obliczania skr�t�w wiadomo�ci ALG"
-#: g10/g10.c:278
+#: g10/g10.c:295
msgid "|NAME|use cipher algorithm NAME for passphrases"
msgstr "|ALG|algorytmu szyfruj�cy ALG dla has�a"
-#: g10/g10.c:279
+#: g10/g10.c:296
msgid "|NAME|use cipher algorithm NAME"
msgstr "|NAZWA|algorytm szyfruj�cy NAZWA"
-#: g10/g10.c:280
+#: g10/g10.c:297
msgid "|NAME|use message digest algorithm NAME"
msgstr "|NAZWA|algorytm obliczania skr�t�w wiadomo�ci NAZWA"
-#: g10/g10.c:281
+#: g10/g10.c:298
msgid "|N|use compress algorithm N"
msgstr "|N|algorytm kompresji N"
-#: g10/g10.c:282
+#: g10/g10.c:299
msgid "throw keyid field of encrypted packets"
msgstr "usuni�cie identyfikator�w kluczy z pakiet�w"
-#: g10/g10.c:283
+#: g10/g10.c:300
msgid "|NAME=VALUE|use this notation data"
msgstr "|NAZWA=TRE��|adnotacje"
-#: g10/g10.c:285
+#: g10/g10.c:303
+msgid ""
+"@\n"
+"(See the man page for a complete listing of all commands and options)\n"
+msgstr ""
+
+#: g10/g10.c:306
msgid ""
"@\n"
"Examples:\n"
@@ -621,15 +669,15 @@ msgstr ""
" --list-keys [nazwy] pokazuje klucze\n"
" --fingerprint [nazwy] pokazuje odciski kluczy\n"
-#: g10/g10.c:370
+#: g10/g10.c:399
msgid "Please report bugs to <[email protected]>.\n"
msgstr "B��dy prosimy zg�asza� na adres <[email protected]>.\n"
-#: g10/g10.c:374
+#: g10/g10.c:403
msgid "Usage: gpg [options] [files] (-h for help)"
msgstr "Wywo�anie: gpg [opcje] [pliki] (-h podaje pomoc)"
-#: g10/g10.c:377
+#: g10/g10.c:406
msgid ""
"Syntax: gpg [options] [files]\n"
"sign, check, encrypt or decrypt\n"
@@ -639,7 +687,7 @@ msgstr ""
"podpisywanie, sprawdzanie podpis�w, szyfrowanie, deszyfrowanie\n"
"domy�lnie wykonywana operacja zale�y od danych wej�ciowych\n"
-#: g10/g10.c:382
+#: g10/g10.c:413
msgid ""
"\n"
"Supported algorithms:\n"
@@ -647,182 +695,182 @@ msgstr ""
"\n"
"Obs�ugiwane algorytmy:\n"
-#: g10/g10.c:456
+#: g10/g10.c:492
msgid "usage: gpg [options] "
msgstr "wywo�anie: gpg [opcje]"
-#: g10/g10.c:509
+#: g10/g10.c:545
msgid "conflicting commands\n"
msgstr "sprzeczne polecenia\n"
-#: g10/g10.c:644
+#: g10/g10.c:687
#, c-format
msgid "NOTE: no default option file `%s'\n"
msgstr "UWAGA: brak domy�lnego pliku opcji '%s'\n"
-#: g10/g10.c:648
+#: g10/g10.c:691
#, c-format
msgid "option file `%s': %s\n"
msgstr "plik opcji '%s': %s\n"
-#: g10/g10.c:655
+#: g10/g10.c:698
#, c-format
msgid "reading options from `%s'\n"
msgstr "odczyt opcji z '%s'\n"
-#: g10/g10.c:835
+#: g10/g10.c:885
#, c-format
msgid "%s is not a valid character set\n"
msgstr "%s nie jest poprawn� nazw� zestawu znak�w\n"
-#: g10/g10.c:892 g10/g10.c:901
+#: g10/g10.c:945 g10/g10.c:954
#, c-format
msgid "NOTE: %s is not for normal use!\n"
msgstr "UWAGA: %s nie jest do normalnego u�ytku!\n"
-#: g10/g10.c:894
+#: g10/g10.c:947
#, c-format
msgid "%s not allowed with %s!\n"
msgstr "%s jest niedozwolony z %s!\n"
-#: g10/g10.c:897
+#: g10/g10.c:950
#, c-format
msgid "%s makes no sense with %s!\n"
msgstr "%s nie ma sensu z %s!\n"
-#: g10/g10.c:916 g10/g10.c:928
+#: g10/g10.c:969 g10/g10.c:981
msgid "selected cipher algorithm is invalid\n"
msgstr "wybrany algorytm szyfruj�cy jest niepoprawny\n"
-#: g10/g10.c:922 g10/g10.c:934
+#: g10/g10.c:975 g10/g10.c:987
msgid "selected digest algorithm is invalid\n"
msgstr "wybrany algorytm geenracji skr�t�w wiadomo�ci jest niepoprawny\n"
-#: g10/g10.c:938
+#: g10/g10.c:991
msgid "the given policy URL is invalid\n"
msgstr "podany URL regulaminu jest niepoprawny\n"
-#: g10/g10.c:941
+#: g10/g10.c:994
#, c-format
msgid "compress algorithm must be in range %d..%d\n"
msgstr "ustawienie algortytmu kompresji musi pochodzi� z zakresu %d..%d\n"
-#: g10/g10.c:943
+#: g10/g10.c:996
msgid "completes-needed must be greater than 0\n"
msgstr "warto�� completes-needed musi by� wi�ksza od 0\n"
-#: g10/g10.c:945
+#: g10/g10.c:998
msgid "marginals-needed must be greater than 1\n"
msgstr "warto�� marginals-needed musi by� wi�ksza od 1\n"
-#: g10/g10.c:947
+#: g10/g10.c:1000
msgid "max-cert-depth must be in range 1 to 255\n"
msgstr "warto�� max-cert-depth musi mie�ci� si� w zakresie od 1 do 255\n"
-#: g10/g10.c:950
+#: g10/g10.c:1003
msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
msgstr "UWAGA: prosty tryb S2K (0) jest stanowczo odradzany\n"
-#: g10/g10.c:954
+#: g10/g10.c:1007
msgid "invalid S2K mode; must be 0, 1 or 3\n"
msgstr "niepoprawny tryb S2K; musi mie� warto�� 0, 1 lub 3\n"
-#: g10/g10.c:1031
+#: g10/g10.c:1092
#, c-format
msgid "failed to initialize the TrustDB: %s\n"
msgstr "inicjowanie Bazy Zaufania nie powiod�o si�: %s\n"
-#: g10/g10.c:1037
+#: g10/g10.c:1098
msgid "--store [filename]"
msgstr "--store [plik]"
-#: g10/g10.c:1044
+#: g10/g10.c:1105
msgid "--symmetric [filename]"
msgstr "--symmetric [plik]"
-#: g10/g10.c:1052
+#: g10/g10.c:1113
msgid "--encrypt [filename]"
msgstr "--encrypt [plik]"
-#: g10/g10.c:1065
+#: g10/g10.c:1126
msgid "--sign [filename]"
msgstr "--sign [plik]"
-#: g10/g10.c:1078
+#: g10/g10.c:1139
msgid "--sign --encrypt [filename]"
msgstr "--sign --encrypt [plik]"
-#: g10/g10.c:1092
+#: g10/g10.c:1153
msgid "--clearsign [filename]"
-msgstr "--clearsign [plik]\""
+msgstr "--clearsign [plik]"
-#: g10/g10.c:1104
+#: g10/g10.c:1170
msgid "--decrypt [filename]"
msgstr "--decrypt [plik]"
-#: g10/g10.c:1112
+#: g10/g10.c:1178
msgid "--sign-key user-id"
msgstr "--sign-key nazwa u�ytkownika"
-#: g10/g10.c:1120
+#: g10/g10.c:1186
msgid "--lsign-key user-id"
msgstr "--lsign-key nazwa u�ytkownika"
-#: g10/g10.c:1128
+#: g10/g10.c:1194
msgid "--edit-key user-id [commands]"
msgstr "--edit-key nazwa u�ytkownika [polecenia]"
-#: g10/g10.c:1144
+#: g10/g10.c:1210
msgid "--delete-secret-key user-id"
msgstr "--delete-secret-key nazwa u�ytkownika"
-#: g10/g10.c:1147
+#: g10/g10.c:1213
msgid "--delete-key user-id"
msgstr "--delete-key nazwa u�ytkownika"
-#: g10/encode.c:259 g10/g10.c:1171 g10/sign.c:366
+#: g10/encode.c:260 g10/g10.c:1250 g10/sign.c:373
#, c-format
msgid "can't open %s: %s\n"
msgstr "nie mo�na otworzy� %s: %s\n"
-#: g10/g10.c:1182
+#: g10/g10.c:1265
msgid "-k[v][v][v][c] [user-id] [keyring]"
msgstr "-k[v][v][v][c] [identyfikator] [zbi�r kluczy]"
-#: g10/g10.c:1243
+#: g10/g10.c:1331
#, c-format
msgid "dearmoring failed: %s\n"
msgstr "usuni�cie opakowania ASCII nie powiod�o si�: %s\n"
-#: g10/g10.c:1251
+#: g10/g10.c:1339
#, c-format
msgid "enarmoring failed: %s\n"
msgstr "opakowywanie ASCII nie powiod�o si�: %s\n"
-#: g10/g10.c:1319
+#: g10/g10.c:1407
#, c-format
msgid "invalid hash algorithm `%s'\n"
msgstr "niew�a�ciwy algorytm skr�tu '%s'\n"
-#: g10/g10.c:1400
+#: g10/g10.c:1488
msgid "[filename]"
msgstr "[nazwa pliku]"
-#: g10/g10.c:1404
+#: g10/g10.c:1492
msgid "Go ahead and type your message ...\n"
msgstr "Wpisz tutaj swoj� wiadomo�� ...\n"
-#: g10/decrypt.c:59 g10/g10.c:1407 g10/verify.c:66
+#: g10/decrypt.c:59 g10/g10.c:1495 g10/verify.c:68 g10/verify.c:113
#, c-format
msgid "can't open `%s'\n"
msgstr "nie mo�na otworzy� '%s'\n"
-#: g10/g10.c:1576
+#: g10/g10.c:1665
msgid ""
"the first character of a notation name must be a letter or an underscore\n"
-msgstr "adnotacja musi zaczyna� si� od podkre�lenia lub litery\n"
+msgstr "adnotacja musi zaczyna� si� od litery lub podkre�lenia\n"
-#: g10/g10.c:1582
+#: g10/g10.c:1671
msgid ""
"a notation name must have only letters, digits, dots or underscores and end "
"with an '='\n"
@@ -830,83 +878,87 @@ msgstr ""
"nazwa adnotacji mo�e zawiera� tylko litery, cyfry, kropki,\n"
"podkre�lenia, i musi ko�czy� si� '='\n"
-#: g10/g10.c:1588
+#: g10/g10.c:1677
msgid "dots in a notation name must be surrounded by other characters\n"
msgstr "kropki w adnotacji musz� znajdowa� si� pomi�dzy innymi znakami\n"
-#: g10/g10.c:1596
+#: g10/g10.c:1685
msgid "a notation value must not use any control characters\n"
msgstr "warto�� adnotacji nie mo�e zawiera� znak�w steruj�cych\n"
-#: g10/armor.c:296
+#: g10/armor.c:302
#, c-format
msgid "armor: %s\n"
msgstr "opakowanie: %s\n"
-#: g10/armor.c:319
+#: g10/armor.c:331
msgid "invalid armor header: "
msgstr "niepoprawny nag��wek opakowania: "
-#: g10/armor.c:326
+#: g10/armor.c:338
msgid "armor header: "
msgstr "nag��wek opakowania: "
-#: g10/armor.c:337
+#: g10/armor.c:349
msgid "invalid clearsig header\n"
msgstr "niew�a�ciwy nag��wek czytelnego podpisanego dokumentu\n"
-#: g10/armor.c:389
+#: g10/armor.c:401
msgid "nested clear text signatures\n"
msgstr "zagnie�d�one podpisy na czytelnym dokumencie\n"
-#: g10/armor.c:500
+#: g10/armor.c:525
msgid "invalid dash escaped line: "
msgstr "niepoprawne oznaczenie linii minusami: "
-#: g10/armor.c:512
+#: g10/armor.c:537
msgid "unexpected armor:"
msgstr "nieoczekiwane opakowanie:"
-#: g10/armor.c:629
+#: g10/armor.c:654
#, c-format
msgid "invalid radix64 character %02x skipped\n"
msgstr "niew�a�ciwy znak formatu radix64 %02x zosta� pomini�ty\n"
-#: g10/armor.c:672
+#: g10/armor.c:697
msgid "premature eof (no CRC)\n"
msgstr "przewczesny koniec pliku (brak CRC)\n"
-#: g10/armor.c:706
+#: g10/armor.c:731
msgid "premature eof (in CRC)\n"
msgstr "przedwczesny koniec pliku (w CRC)\n"
-#: g10/armor.c:710
+#: g10/armor.c:735
msgid "malformed CRC\n"
msgstr "b��d formatu CRC\n"
-#: g10/armor.c:714
+#: g10/armor.c:739
#, c-format
msgid "CRC error; %06lx - %06lx\n"
msgstr "B��d sumy CRC; %06lx - %06lx\n"
-#: g10/armor.c:731
+#: g10/armor.c:756
msgid "premature eof (in Trailer)\n"
-msgstr "przedwczesny koniec pliku (w linii ko�cz�cej)\n"
+msgstr "przedwczesny koniec pliku (w zako�czeniu)\n"
-#: g10/armor.c:735
+#: g10/armor.c:760
msgid "error in trailer line\n"
msgstr "b��d w linii ko�cz�cej\n"
-#: g10/armor.c:1001
+#: g10/armor.c:912
+msgid "For info see http://www.gnupg.org"
+msgstr ""
+
+#: g10/armor.c:1033
msgid "no valid OpenPGP data found.\n"
msgstr "nie odnaleziono poprawnych danych w formacie OpenPGP.\n"
-#: g10/armor.c:1005
+#: g10/armor.c:1038
#, c-format
msgid "invalid armor: line longer than %d characters\n"
msgstr "b��d opakowania: linia d�u�sza ni� %d znak�w\n"
-#: g10/armor.c:1009
+#: g10/armor.c:1042
msgid ""
"quoted printable character in armor - probably a buggy MTA has been used\n"
msgstr ""
@@ -923,12 +975,42 @@ msgstr " Odcisk:"
msgid "Fingerprint:"
msgstr "Odcisk klucza:"
+#: g10/pkclist.c:116
+msgid "No reason specified"
+msgstr ""
+
+#: g10/pkclist.c:118
+#, fuzzy
+msgid "Key is superseeded"
+msgstr "Klucz jest chroniony.\n"
+
+#: g10/pkclist.c:120
+#, fuzzy
+msgid "Key has been compromised"
+msgstr "Ten klucz zosta� wy��czony z u�ycia"
+
+#: g10/pkclist.c:122
+msgid "Key is no longer used"
+msgstr ""
+
+#: g10/pkclist.c:124
+msgid "User ID is no longer valid"
+msgstr ""
+
+#: g10/pkclist.c:128
+msgid "Reason for revocation: "
+msgstr ""
+
+#: g10/pkclist.c:145
+msgid "Revocation comment: "
+msgstr ""
+
#. a string with valid answers
-#: g10/pkclist.c:197
+#: g10/pkclist.c:303
msgid "sSmMqQ"
msgstr "iIpPwW"
-#: g10/pkclist.c:201
+#: g10/pkclist.c:307
#, c-format
msgid ""
"No trust value assigned to %lu:\n"
@@ -937,7 +1019,7 @@ msgstr ""
"Brak warto�ci zaufania dla %lu:\n"
"%4u%c/%08lX %s \""
-#: g10/pkclist.c:213
+#: g10/pkclist.c:319
msgid ""
"Please decide how far you trust this user to correctly\n"
"verify other users' keys (by looking at passports,\n"
@@ -960,23 +1042,23 @@ msgstr ""
" 4 = W pe�ni mu ufam.\n"
" i = potrzebuj� wi�cej informacji\n"
-#: g10/pkclist.c:222
+#: g10/pkclist.c:328
msgid " m = back to the main menu\n"
msgstr " p = powr�t do g��wnego menu\n"
-#: g10/pkclist.c:224
+#: g10/pkclist.c:330
msgid " q = quit\n"
msgstr "w = wyj�cie\n"
-#: g10/pkclist.c:230
+#: g10/pkclist.c:336
msgid "Your decision? "
msgstr "Twoja decyzja? "
-#: g10/pkclist.c:252
+#: g10/pkclist.c:358
msgid "Certificates leading to an ultimately trusted key:\n"
msgstr "Certyfikaty prowadz�ce do ostatecznie zaufanego klucza:\n"
-#: g10/pkclist.c:323
+#: g10/pkclist.c:429
msgid ""
"Could not find a valid trust path to the key. Let's see whether we\n"
"can assign some missing owner trust values.\n"
@@ -986,7 +1068,7 @@ msgstr ""
"Sprawd�my czy mo�na przypisa� brakuj�ce warto�ci zaufania.\n"
"\n"
-#: g10/pkclist.c:329
+#: g10/pkclist.c:435
msgid ""
"No path leading to one of our keys found.\n"
"\n"
@@ -994,7 +1076,7 @@ msgstr ""
"Brak �cie�ki prowadz�cej do kt�rego� z naszych kluczy.\n"
"\n"
-#: g10/pkclist.c:331
+#: g10/pkclist.c:437
msgid ""
"No certificates with undefined trust found.\n"
"\n"
@@ -1002,7 +1084,7 @@ msgstr ""
"Brak certyfikat�w o niezdefiniowanym poziomie zaufania.\n"
"\n"
-#: g10/pkclist.c:333
+#: g10/pkclist.c:439
msgid ""
"No trust values changed.\n"
"\n"
@@ -1010,36 +1092,36 @@ msgstr ""
"Parametry zaufania nie zosta�y zmienione.\n"
"\n"
-#: g10/pkclist.c:350
+#: g10/pkclist.c:457
#, c-format
msgid "key %08lX: key has been revoked!\n"
msgstr "klucz %08lX: klucz zosta� uniewa�niony!\n"
-#: g10/pkclist.c:356 g10/pkclist.c:366 g10/pkclist.c:475
+#: g10/pkclist.c:464 g10/pkclist.c:476 g10/pkclist.c:598
msgid "Use this key anyway? "
msgstr "U�y� tego klucza pomimo to? "
-#: g10/pkclist.c:360
+#: g10/pkclist.c:469
#, c-format
msgid "key %08lX: subkey has been revoked!\n"
msgstr "klucz %08lX: podklucz zosta� uniewa�niony!\n"
-#: g10/pkclist.c:390
+#: g10/pkclist.c:512
#, c-format
msgid "%08lX: key has expired\n"
msgstr "%08lX: data wa�no�ci klucza up�yn�a\n"
-#: g10/pkclist.c:396
+#: g10/pkclist.c:518
#, c-format
msgid "%08lX: no info to calculate a trust probability\n"
msgstr "%08lX: brak informacji aby obliczy� prawdopodobie�stwo zaufania\n"
-#: g10/pkclist.c:410
+#: g10/pkclist.c:533
#, c-format
msgid "%08lX: We do NOT trust this key\n"
msgstr "%08lX: NIE UFAMY temu kluczowi\n"
-#: g10/pkclist.c:416
+#: g10/pkclist.c:539
#, c-format
msgid ""
"%08lX: It is not sure that this key really belongs to the owner\n"
@@ -1048,16 +1130,16 @@ msgstr ""
"%08lX: Nie ma pewno��i �e ten klucz faktycznie nale�y do odoby podaj�cej\n"
"si� za jego w�a�ciciela, ale jest akceptowalny.\n"
-#: g10/pkclist.c:422
+#: g10/pkclist.c:545
msgid "This key probably belongs to the owner\n"
msgstr ""
"Ten klucz prawdopodobnie nale�y do osoby podaj�cej si� za jego w�a�ciciela.\n"
-#: g10/pkclist.c:427
+#: g10/pkclist.c:550
msgid "This key belongs to us\n"
msgstr "Ten klucz nale�y do nas\n"
-#: g10/pkclist.c:470
+#: g10/pkclist.c:593
msgid ""
"It is NOT certain that the key belongs to its owner.\n"
"If you *really* know what you are doing, you may answer\n"
@@ -1068,67 +1150,68 @@ msgstr ""
"w�a�ciciela. Je�li nie masz co do tego �adnych w�tpliwo�ci i *naprawd�*\n"
"wiesz co robisz mo�esz odpowiedzie� \"tak\" na nast�pne pytanie.\n"
-#: g10/pkclist.c:484 g10/pkclist.c:507
+#: g10/pkclist.c:607 g10/pkclist.c:630
msgid "WARNING: Using untrusted key!\n"
msgstr "OSTRZE�ENIE: u�ywany jest klucz nie obdarzony zaufaniem!\n"
-#: g10/pkclist.c:528
+#: g10/pkclist.c:651
msgid "WARNING: This key has been revoked by its owner!\n"
msgstr "OSTRZE�ENIE: Ten klucz zosta� uniewa�niony przez w�a�ciciela!\n"
-#: g10/pkclist.c:529
+#: g10/pkclist.c:652
msgid " This could mean that the signature is forgery.\n"
msgstr " To mo�e oznacza� �e podpis jest fa�szerstwem.\n"
-#: g10/pkclist.c:533
+#: g10/pkclist.c:657
msgid "WARNING: This subkey has been revoked by its owner!\n"
msgstr "OSTRZE�ENIE: Ten podklucz zosta� uniewa�niony przez w�a�ciciela!\n"
-#: g10/pkclist.c:554
+#: g10/pkclist.c:679
msgid "Note: This key has expired!\n"
msgstr "Uwaga: Data wa�no�ci tego klucza up�yn�a!\n"
-#: g10/pkclist.c:562
+#: g10/pkclist.c:687
msgid "WARNING: This key is not certified with a trusted signature!\n"
msgstr "OSTRZE�ENIE: Ten klucz nie jest po�wiadczony zaufanym podpisem!\n"
-#: g10/pkclist.c:564
+#: g10/pkclist.c:689
msgid ""
" There is no indication that the signature belongs to the owner.\n"
msgstr ""
-" Nic nie wskazuje na to �e ten podpis z�o�y� w�a�ciciel klucza.\n"
+" Nic nie wskazuje na to �e ten podpis z�o�y� w�a�ciciel klucza.\n"
-#: g10/pkclist.c:581
+#: g10/pkclist.c:706
msgid "WARNING: We do NOT trust this key!\n"
msgstr "OSTRZE�ENIE: NIE UFAMY temu kluczowi!\n"
-#: g10/pkclist.c:582
+#: g10/pkclist.c:707
msgid " The signature is probably a FORGERY.\n"
-msgstr " Ten podpis prawdopodobnie jest FA�SZERSTWEM.\n"
+msgstr " Ten podpis prawdopodobnie jest FA�SZERSTWEM.\n"
-#: g10/pkclist.c:589
+#: g10/pkclist.c:714
msgid ""
"WARNING: This key is not certified with sufficiently trusted signatures!\n"
msgstr ""
"OSTRZE�ENIE: Ten klucz nie jest po�wiadczony wystarczaj�co zaufanymi "
"podpisami!\n"
-#: g10/pkclist.c:592
+#: g10/pkclist.c:717
msgid " It is not certain that the signature belongs to the owner.\n"
msgstr ""
-" Nie ma pewno�ci �e ten podpis zosta� z�o�nony przez w�a�ciciela.\n"
+" Nie ma pewno�ci �e ten podpis zosta� z�o�nony przez "
+"w�a�ciciela.\n"
-#: g10/pkclist.c:694 g10/pkclist.c:716 g10/pkclist.c:841 g10/pkclist.c:886
+#: g10/pkclist.c:819 g10/pkclist.c:841 g10/pkclist.c:967 g10/pkclist.c:1012
#, c-format
msgid "%s: skipped: %s\n"
msgstr "%s: pomini�ty: %s\n"
-#: g10/pkclist.c:702 g10/pkclist.c:868
+#: g10/pkclist.c:827 g10/pkclist.c:994
#, c-format
msgid "%s: skipped: public key already present\n"
msgstr "%s: pomini�ty: klucz publiczny ju� znajduje si� w bazie\n"
-#: g10/pkclist.c:729
+#: g10/pkclist.c:854
msgid ""
"You did not specify a user ID. (you may use \"-r\")\n"
"\n"
@@ -1136,96 +1219,100 @@ msgstr ""
"Nie poda�e� identyfikatora u�ytkownika (user ID). \n"
"Mo�na to zrobi� za pomoc� opcji \"-r\".\n"
-#: g10/pkclist.c:739
+#: g10/pkclist.c:864
msgid "Enter the user ID: "
msgstr "Wprowad� identyfikator u�ytkownika (user ID): "
-#: g10/pkclist.c:751
+#: g10/pkclist.c:876
msgid "No such user ID.\n"
msgstr "Brak takiego identyfikatora u�ytkownika.\n"
-#: g10/pkclist.c:756
+#: g10/pkclist.c:881
msgid "skipped: public key already set as default recipient\n"
msgstr "pomini�ty: klucz publiczny ju� jest domy�lnym adresatem\n"
-#: g10/pkclist.c:778
+#: g10/pkclist.c:904
msgid "Public key is disabled.\n"
msgstr "Klucz publiczny wy��czony z uzycia.\n"
-#: g10/pkclist.c:785
+#: g10/pkclist.c:911
msgid "skipped: public key already set with --encrypt-to\n"
msgstr "pomini�ty: klucz publiczny ju� wybrany w --encrypt-to\n"
-#: g10/pkclist.c:816
+#: g10/pkclist.c:942
#, c-format
msgid "unknown default recipient `%s'\n"
msgstr "nieznany domy�lny adresat '%s'\n"
-#: g10/pkclist.c:849
+#: g10/pkclist.c:975
#, c-format
msgid "%s: error checking key: %s\n"
msgstr "%s: b��d podczas sprawdzania klucza: %s\n"
-#: g10/pkclist.c:854
+#: g10/pkclist.c:980
#, c-format
msgid "%s: skipped: public key is disabled\n"
msgstr "%s: pomini�ty: klucz publiczny wy��czony z u�ycia\n"
-#: g10/pkclist.c:892
+#: g10/pkclist.c:1018
msgid "no valid addressees\n"
msgstr "brak poprawnych adres�w\n"
-#: g10/keygen.c:122
+#: g10/keygen.c:175
msgid "writing self signature\n"
msgstr "zapis podpisu klucza nim samym\n"
-#: g10/keygen.c:160
+#: g10/keygen.c:213
msgid "writing key binding signature\n"
msgstr "zapis podpisu wi���cego klucz\n"
-#: g10/keygen.c:386
+#: g10/keygen.c:261 g10/keygen.c:345
+#, fuzzy, c-format
+msgid "keysize invalid; using %u bits\n"
+msgstr "��dana d�ugo�� klucza to %u bity.\n"
+
+#: g10/keygen.c:266 g10/keygen.c:350
+#, fuzzy, c-format
+msgid "keysize rounded up to %u bits\n"
+msgstr "zaokr�glono do %u bit�w\n"
+
+#: g10/keygen.c:456
msgid "Please select what kind of key you want:\n"
msgstr "Prosz� wybra� rodzaj klucza:\n"
-#: g10/keygen.c:388
+#: g10/keygen.c:458
#, c-format
msgid " (%d) DSA and ElGamal (default)\n"
msgstr " (%d) Para kluczy dla algorytm�w DSA i ElGamala (domy�lne)\n"
-#: g10/keygen.c:389
+#: g10/keygen.c:459
#, c-format
msgid " (%d) DSA (sign only)\n"
msgstr " (%d) DSA (tylko do podpisywania)\n"
-#: g10/keygen.c:391
+#: g10/keygen.c:461
#, c-format
msgid " (%d) ElGamal (encrypt only)\n"
msgstr " (%d) Klucz dla algorytmu ElGamala (tylko do szyfrowanie)\n"
-#: g10/keygen.c:392
+#: g10/keygen.c:462
#, c-format
msgid " (%d) ElGamal (sign and encrypt)\n"
msgstr " (%d) Klucz dla algorytmu ElGamala (do szyfrowania i podpisywania)\n"
-#: g10/keygen.c:394
-#, c-format
-msgid " (%d) ElGamal in a v3 packet\n"
-msgstr ""
-" (%d) Klucz dla algorytmu ElGamala w pakiecie w trzeciej wersji formatu\n"
-
-#: g10/keygen.c:399
+#: g10/keygen.c:465
msgid "Your selection? "
msgstr "Tw�j wyb�r? "
-#: g10/keygen.c:409
+#: g10/keygen.c:475
msgid "Do you really want to create a sign and encrypt key? "
msgstr "Czy na pewno chcesz stworzy� klucz do szyfrowania i podpisywania? "
-#: g10/keygen.c:430
+#: g10/keygen.c:489
msgid "Invalid selection.\n"
msgstr "Niew�a�ciwy wyb�r.\n"
-#: g10/keygen.c:442
+#: g10/keygen.c:501
#, c-format
msgid ""
"About to generate a new %s keypair.\n"
@@ -1238,15 +1325,15 @@ msgstr ""
" domy�lny rozmiar klucza wynosi 1024 bity\n"
" najwi�kszy sugerowany rozmiar klucza wynosi 2048 bit�w\n"
-#: g10/keygen.c:449
+#: g10/keygen.c:508
msgid "What keysize do you want? (1024) "
msgstr "Jakiej d�ugo�ci klucz wygenerowa�? (1024) "
-#: g10/keygen.c:454
+#: g10/keygen.c:513
msgid "DSA only allows keysizes from 512 to 1024\n"
msgstr "Klucz dla DSA musi mie� d�ugo�� pomi�dzy 512 i 1024 bitow.\n"
-#: g10/keygen.c:456
+#: g10/keygen.c:515
msgid "keysize too small; 768 is smallest value allowed.\n"
msgstr "D�ugo�� klucza zbyt ma�a; minimalna dopuszczona wynosi 768 bit�w.\n"
@@ -1258,12 +1345,12 @@ msgstr "D�ugo�� klucza zbyt ma�a; minimalna dopuszczona wynosi 768 bit�w.\n"
#. * So, before you complain about this limitation, I suggest that
#. * you start a discussion with Marvin about this theme and then
#. * do whatever you want.
-#: g10/keygen.c:466
+#: g10/keygen.c:525
#, c-format
msgid "keysize too large; %d is largest value allowed.\n"
msgstr "zbyt du�y rozmiar klucza, ograniczenie wynosi %d.\n"
-#: g10/keygen.c:471
+#: g10/keygen.c:530
msgid ""
"Keysizes larger than 2048 are not suggested because\n"
"computations take REALLY long!\n"
@@ -1271,11 +1358,11 @@ msgstr ""
"Klucze d�u�sze ni� 2048 bit�w s� odradzane, poniewa� obliczenia\n"
"trwaj� wtedy BARDZO d�ugo!\n"
-#: g10/keygen.c:474
+#: g10/keygen.c:533
msgid "Are you sure that you want this keysize? "
msgstr "Na pewno wygenerowa� klucz takiej d�ugo�ci? "
-#: g10/keygen.c:475
+#: g10/keygen.c:534
msgid ""
"Okay, but keep in mind that your monitor and keyboard radiation is also very "
"vulnerable to attacks!\n"
@@ -1283,21 +1370,21 @@ msgstr ""
"Nale�y tak�e pami�ta� o tym, �e informacje mog� by� te� wykradzione z\n"
"komputera przez pods�uch emisji elektromagnetycznej klawiatury i monitora!\n"
-#: g10/keygen.c:483
+#: g10/keygen.c:542
msgid "Do you really need such a large keysize? "
msgstr "Czy naprawd� potrzebujesz takiego d�ugiego klucza? "
-#: g10/keygen.c:489
+#: g10/keygen.c:548
#, c-format
msgid "Requested keysize is %u bits\n"
msgstr "��dana d�ugo�� klucza to %u bity.\n"
-#: g10/keygen.c:492 g10/keygen.c:496
+#: g10/keygen.c:551 g10/keygen.c:555
#, c-format
msgid "rounded up to %u bits\n"
msgstr "zaokr�glono do %u bit�w\n"
-#: g10/keygen.c:509
+#: g10/keygen.c:603
msgid ""
"Please specify how long the key should be valid.\n"
" 0 = key does not expire\n"
@@ -1313,29 +1400,35 @@ msgstr ""
" <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"
-#: g10/keygen.c:526
+#: g10/keygen.c:618
msgid "Key is valid for? (0) "
msgstr "Okres wa�no�ci klucza ? (0) "
-#: g10/keygen.c:547
+#: g10/keygen.c:623
msgid "invalid value\n"
msgstr "niepoprawna warto��\n"
-#: g10/keygen.c:552
+#: g10/keygen.c:628
msgid "Key does not expire at all\n"
msgstr "Klucz nie ma daty wa�no�ci (nie traci wa�no�ci z up�ywem czasu).\n"
#. print the date when the key expires
-#: g10/keygen.c:558
+#: g10/keygen.c:634
#, c-format
msgid "Key expires at %s\n"
msgstr "Data wa�no�ci klucza: %s\n"
-#: g10/keygen.c:563
+#: g10/keygen.c:637
+msgid ""
+"Your system can't display dates beyond 2038.\n"
+"However, it will be correctly handled up to 2106.\n"
+msgstr ""
+
+#: g10/keygen.c:642
msgid "Is this correct (y/n)? "
msgstr "Dane poprawne (t/n)? "
-#: g10/keygen.c:606
+#: g10/keygen.c:685
msgid ""
"\n"
"You need a User-ID to identify your key; the software constructs the user "
@@ -1351,44 +1444,44 @@ msgstr ""
" \"Tadeusz �ele�ski (Boy) <[email protected]>\"\n"
"\n"
-#: g10/keygen.c:617
+#: g10/keygen.c:697
msgid "Real name: "
msgstr "Imi� i nazwisko: "
-#: g10/keygen.c:621
+#: g10/keygen.c:701
msgid "Invalid character in name\n"
msgstr "Niew�a�ciwy znak w imieniu lub nazwisku\n"
-#: g10/keygen.c:623
+#: g10/keygen.c:703
msgid "Name may not start with a digit\n"
msgstr "Imi� lub nazwisko nie mo�e zaczyna� si� od cyfry\n"
-#: g10/keygen.c:625
+#: g10/keygen.c:705
msgid "Name must be at least 5 characters long\n"
msgstr "Imi� i nazwisko musz� mie� conajmniej 5 znak�w d�ugo�ci.\n"
-#: g10/keygen.c:633
+#: g10/keygen.c:713
msgid "Email address: "
msgstr "Adres poczty elektronicznej: "
-#: g10/keygen.c:644
+#: g10/keygen.c:724
msgid "Not a valid email address\n"
-msgstr "To nie jest poprawny adres poczty elektronicznej\n"
+msgstr "to nie jest poprawny adres poczty elektronicznej\n"
-#: g10/keygen.c:652
+#: g10/keygen.c:732
msgid "Comment: "
msgstr "Komentarz: "
-#: g10/keygen.c:658
+#: g10/keygen.c:738
msgid "Invalid character in comment\n"
msgstr "Niew�a�ciwy znak w komentarzu\n"
-#: g10/keygen.c:680
+#: g10/keygen.c:761
#, c-format
msgid "You are using the `%s' character set.\n"
msgstr "U�ywasz zestawu znak�w %s.\n"
-#: g10/keygen.c:686
+#: g10/keygen.c:767
#, c-format
msgid ""
"You selected this USER-ID:\n"
@@ -1399,43 +1492,58 @@ msgstr ""
" \"%s\"\n"
"\n"
-#: g10/keygen.c:689
+#: g10/keygen.c:771
+msgid "Please don't put the email address into the real name or the comment\n"
+msgstr ""
+
+#: g10/keygen.c:776
msgid "NnCcEeOoQq"
msgstr "IiKkEeDdWw"
-#: g10/keygen.c:699
+#: g10/keygen.c:786
+#, fuzzy
+msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
+msgstr ""
+"Zmieni� (I)mi�/nazwisko, (K)omentarz, adres (E)mail, \n"
+"przej�� (D)alej czy (W)yj�� z programu? "
+
+#: g10/keygen.c:787
msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
msgstr ""
"Zmieni� (I)mi�/nazwisko, (K)omentarz, adres (E)mail, \n"
-"przej�� (D)alej czy (W)yj�� z programu ? "
+"przej�� (D)alej czy (W)yj�� z programu? "
+
+#: g10/keygen.c:806
+msgid "Please correct the error first\n"
+msgstr ""
-#: g10/keygen.c:751
+#: g10/keygen.c:844
msgid ""
"You need a Passphrase to protect your secret key.\n"
"\n"
msgstr ""
"Musisz poda� wyra�enie przej�ciowe (has�o) aby ochroni� sw�j klucz tajny.\n"
-#: g10/keyedit.c:456 g10/keygen.c:759
+#: g10/keyedit.c:468 g10/keygen.c:852
msgid "passphrase not correctly repeated; try again.\n"
msgstr ""
"Powt�rzone wyra�enie przej�ciowe nie zgadza si� z podanym w pierwszej "
"pr�bie;\n"
"spr�buj jeszcze raz.\n"
-#: g10/keygen.c:765
+#: g10/keygen.c:858
msgid ""
"You don't want a passphrase - this is probably a *bad* idea!\n"
"I will do it anyway. You can change your passphrase at any time,\n"
"using this program with the option \"--edit-key\".\n"
"\n"
msgstr ""
-"Nie chcesz poda� wyra�enia przej�ciowego (has�a) - to z�y pomys�!\n"
+"Nie chcesz poda� wyra�enia przej�ciowego (has�a) - to *z�y* pomys�!\n"
"W ka�dej chwili mo�esz ustawi� wyra�enie przej�ciowe u�ywaj�c tego programu\n"
"i opcji \"--edit-key\".\n"
"\n"
-#: g10/keygen.c:786
+#: g10/keygen.c:879
msgid ""
"We need to generate a lot of random bytes. It is a good idea to perform\n"
"some other action (type on the keyboard, move the mouse, utilize the\n"
@@ -1446,36 +1554,32 @@ msgstr ""
"generowania\n"
"liczb pierszych jest wykonanywanie w tym czasie innych dzia�a� (pisanie na\n"
"klawiaturzeze, poruszanie myszk�, odwo�anie si� do dysk�w); dzi�ki temu\n"
-"generator liczb losowych ma mo�liwo�� zebrania odpowiedniej ilo�ci "
-"entropii.\n"
-
-#: g10/keygen.c:856
-msgid "Key generation can only be used in interactive mode\n"
-msgstr "Generacj� klucza mo�na wykonywa� tylko w trybie interaktywnym\n"
+"generator liczb losowych ma mo�liwo�� zebrania odpowiedniej ilo�ci entropii. "
+"\n"
-#: g10/keygen.c:864
+#: g10/keygen.c:1325
msgid "DSA keypair will have 1024 bits.\n"
msgstr "Para kluczy dla DSA b�dzie mia�a 1024 bity d�ugo�ci.\n"
-#: g10/keygen.c:870
+#: g10/keygen.c:1368
msgid "Key generation canceled.\n"
msgstr "Procedura generacji klucza zosta�a anulowana.\n"
-#: g10/keygen.c:880
-#, c-format
-msgid "writing public certificate to `%s'\n"
-msgstr "zapisuj� certyfikat publiczny w '%s'\n"
+#: g10/keygen.c:1465
+#, fuzzy, c-format
+msgid "writing public key to `%s'\n"
+msgstr "zapis certyfikatu publicznego w '%s'\n"
-#: g10/keygen.c:881
-#, c-format
-msgid "writing secret certificate to `%s'\n"
-msgstr "zapisuj� certyfikat prywatny w '%s'\n"
+#: g10/keygen.c:1466
+#, fuzzy, c-format
+msgid "writing secret key to `%s'\n"
+msgstr "zapis certyfikatu prywatnego w '%s'\n"
-#: g10/keygen.c:958
+#: g10/keygen.c:1562
msgid "public and secret key created and signed.\n"
-msgstr "Prywatny i publiczny klucz zosta� stworzony i podpisany.\n"
+msgstr "prywatny i publiczny klucz zosta� stworzony i podpisany.\n"
-#: g10/keygen.c:960
+#: g10/keygen.c:1567
msgid ""
"Note that this key cannot be used for encryption. You may want to use\n"
"the command \"--edit-key\" to generate a secondary key for this purpose.\n"
@@ -1483,20 +1587,20 @@ msgstr ""
"Ten klucz nie mo�e by� wykorzystany do szyfrowania. Komend� \"--edit-key\" \n"
"mo�na doda� do niego podklucz u�ywany do szyfrowania.\n"
-#: g10/keygen.c:974 g10/keygen.c:1073
+#: g10/keygen.c:1584 g10/keygen.c:1685
#, c-format
msgid "Key generation failed: %s\n"
msgstr "Generacja klucza nie powiod�a si�: %s\n"
-#: g10/keygen.c:1018 g10/sig-check.c:312 g10/sign.c:105
+#: g10/keygen.c:1628 g10/sig-check.c:318 g10/sign.c:111
#, 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"
+"klucz zosta� stworzony %lu sekund w przysz�o�ci (zaburzenia\n"
"czasoprzestrzeni, lub �le ustawiony zegar systemowy)\n"
-#: g10/keygen.c:1020 g10/sig-check.c:314 g10/sign.c:107
+#: g10/keygen.c:1630 g10/sig-check.c:320 g10/sign.c:113
#, c-format
msgid ""
"key has been created %lu seconds in future (time warp or clock problem)\n"
@@ -1504,12 +1608,12 @@ msgstr ""
"klucz zosta� stworzony %lu sekund w przysz�o�ci (zaburzenia\n"
"czasoprzestrzeni, lub �le ustawiony zegar systemowy)\n"
-#: g10/keygen.c:1051
+#: g10/keygen.c:1663
msgid "Really create? "
msgstr "Na pewno generowa�? "
-#: g10/encode.c:91 g10/openfile.c:156 g10/openfile.c:246 g10/tdbio.c:468
-#: g10/tdbio.c:529
+#: g10/encode.c:91 g10/openfile.c:168 g10/openfile.c:277 g10/tdbio.c:454
+#: g10/tdbio.c:515
#, c-format
msgid "%s: can't open: %s\n"
msgstr "%s: nie mo�na otworzy�: %s\n"
@@ -1519,305 +1623,310 @@ msgstr "%s: nie mo�na otworzy�: %s\n"
msgid "error creating passphrase: %s\n"
msgstr "b��d podczs tworzenia wyra�enia przej�ciowego (has�a): %s\n"
-#: g10/encode.c:171 g10/encode.c:318
+#: g10/encode.c:171 g10/encode.c:319
#, c-format
msgid "%s: WARNING: empty file\n"
msgstr "%s: OSTRZE�ENIE: plik jest pusty\n"
-#: g10/encode.c:265
+#: g10/encode.c:266
#, c-format
msgid "reading from `%s'\n"
msgstr "odczyt z '%s'\n"
-#: g10/encode.c:482
+#: g10/encode.c:483
#, c-format
msgid "%s/%s encrypted for: %s\n"
msgstr "%s/%s zaszyfrowany dla: %s\n"
-#: g10/export.c:147
+#: g10/export.c:153
#, c-format
msgid "%s: user not found: %s\n"
-msgstr "%s: nie znaleziono u�ytkownika %s\n"
+msgstr "%s: nie znaleziono u�ytkownika: %s\n"
-#: g10/export.c:156
+#: g10/export.c:162
#, c-format
msgid "certificate read problem: %s\n"
msgstr "b��d przy odczycie certyfikatu: %s\n"
-#: g10/export.c:165
+#: g10/export.c:171
#, c-format
msgid "key %08lX: not a rfc2440 key - skipped\n"
msgstr "klucz %08lX: nie jest w formacie RFC 2440 - pomini�ty\n"
-#: g10/export.c:203
+#: g10/export.c:182
+#, fuzzy, c-format
+msgid "key %08lX: not protected - skipped\n"
+msgstr "klucz %08lX: nie jest w formacie RFC 2440 - pomini�ty\n"
+
+#: g10/export.c:232
msgid "WARNING: nothing exported\n"
msgstr "OSTRZE�ENIE: nic nie zosta�o wyeksportowane!\n"
-#: g10/getkey.c:206
+#: g10/getkey.c:211
msgid "too many entries in pk cache - disabled\n"
msgstr "zbyt wiele wpis�w w buforze kluczy publicznych - wy��czony\n"
-#: g10/getkey.c:345
+#: g10/getkey.c:350
msgid "too many entries in unk cache - disabled\n"
msgstr "zbyt wiele wpis�w w buforze nieznanych kluczy - wy��czony\n"
-#: g10/getkey.c:1289 g10/getkey.c:1328
+#: g10/getkey.c:1308 g10/getkey.c:1347
msgid "RSA key cannot be used in this version\n"
msgstr "W tej wersji nie mo�na u�ywa� kluczy RSA\n"
-#: g10/getkey.c:1291 g10/getkey.c:1330
+#: g10/getkey.c:1310 g10/getkey.c:1349
msgid "No key for user ID\n"
msgstr "Brak klucza z takim identyfikatorem u�ytkownika.\n"
-#: g10/getkey.c:1369 g10/getkey.c:1409
+#: g10/getkey.c:1388 g10/getkey.c:1428
msgid "No user ID for key\n"
msgstr "Brak identyfikatora u�ytkownika dla klucza.\n"
-#: g10/getkey.c:1565 g10/getkey.c:1621
+#: g10/getkey.c:1642 g10/getkey.c:1698
#, c-format
msgid "using secondary key %08lX instead of primary key %08lX\n"
msgstr "u�ywany jest podklucz %08lX zamiast klucza g��wnego %08lX\n"
-#: g10/import.c:118
-#, c-format
-msgid "can't open `%s': %s\n"
-msgstr "nie mo�na otworzy� %s: %s\n"
+#: g10/getkey.c:2017
+#, fuzzy
+msgid "[User id not found]"
+msgstr "%s: nie znaleziono u�ytkownika\n"
-#: g10/import.c:162
+#: g10/import.c:181
#, c-format
msgid "skipping block of type %d\n"
msgstr "blok typu %d zostaje pomini�ty\n"
-#: g10/import.c:169 g10/trustdb.c:1658 g10/trustdb.c:1697
+#: g10/import.c:188 g10/trustdb.c:1740 g10/trustdb.c:1781
#, c-format
msgid "%lu keys so far processed\n"
msgstr "%lu kluczy przetworzonych do tej chwili\n"
-#: g10/import.c:174
+#: g10/import.c:193
#, c-format
msgid "error reading `%s': %s\n"
msgstr "b��d odczytu '%s': %s\n"
-#: g10/import.c:177
+#: g10/import.c:203
#, c-format
msgid "Total number processed: %lu\n"
msgstr "Og�em przetworzonych kluczy: %lu\n"
-#: g10/import.c:179
+#: g10/import.c:205
#, c-format
msgid " w/o user IDs: %lu\n"
msgstr " bez identyfikatora: %lu\n"
-#: g10/import.c:181
+#: g10/import.c:207
#, c-format
msgid " imported: %lu"
msgstr " do��czono do zbioru: %lu"
-#: g10/import.c:187
+#: g10/import.c:213
#, c-format
msgid " unchanged: %lu\n"
msgstr " bez zmian: %lu\n"
-#: g10/import.c:189
+#: g10/import.c:215
#, c-format
msgid " new user IDs: %lu\n"
msgstr " nowych identyfikator�w: %lu\n"
-#: g10/import.c:191
+#: g10/import.c:217
#, c-format
msgid " new subkeys: %lu\n"
msgstr " nowych podkluczy: %lu\n"
-#: g10/import.c:193
+#: g10/import.c:219
#, c-format
msgid " new signatures: %lu\n"
msgstr " nowych podpis�w: %lu\n"
-#: g10/import.c:195
+#: g10/import.c:221
#, c-format
msgid " new key revocations: %lu\n"
msgstr " nowych uniewa�nie� kluczy: %lu\n"
-#: g10/import.c:197
+#: g10/import.c:223
#, c-format
msgid " secret keys read: %lu\n"
msgstr " tajnych kluczy wczytanych: %lu\n"
-#: g10/import.c:199
+#: g10/import.c:225
#, c-format
msgid " secret keys imported: %lu\n"
msgstr " tajnych kluczy dodanych: %lu\n"
-#: g10/import.c:201
+#: g10/import.c:227
#, c-format
msgid " secret keys unchanged: %lu\n"
msgstr " tajnych kluczy bez zmian: %lu\n"
-#: g10/import.c:362 g10/import.c:554
+#: g10/import.c:386 g10/import.c:578
#, c-format
msgid "key %08lX: no user ID\n"
msgstr "klucz %08lX: brak identyfikatora u�ytkownika\n"
-#: g10/import.c:376
+#: g10/import.c:400
#, c-format
msgid "key %08lX: no valid user IDs\n"
msgstr "klucz %08lX: brak poprawnych identyfikator�w u�ytkownika\n"
-#: g10/import.c:378
+#: g10/import.c:402
msgid "this may be caused by a missing self-signature\n"
msgstr "to mo�e by� spowodowane brakiem podpisu w�a�ciciela klucza\n"
-#: g10/import.c:389 g10/import.c:621
+#: g10/import.c:413 g10/import.c:645
#, c-format
msgid "key %08lX: public key not found: %s\n"
msgstr "klucz %08lX: brak klucza publicznego: %s\n"
-#: g10/import.c:395
+#: g10/import.c:419
msgid "no default public keyring\n"
msgstr "brak domy�lnego zbioru kluczy publicznych\n"
-#: g10/import.c:399 g10/openfile.c:186 g10/sign.c:268 g10/sign.c:580
+#: g10/import.c:423 g10/openfile.c:220 g10/sign.c:275 g10/sign.c:587
#, c-format
msgid "writing to `%s'\n"
msgstr "zapis do '%s'\n"
-#: g10/import.c:402 g10/import.c:460 g10/import.c:569 g10/import.c:670
+#: g10/import.c:426 g10/import.c:484 g10/import.c:593 g10/import.c:694
#, c-format
msgid "can't lock keyring `%s': %s\n"
msgstr "nie mo�na zablokowa� zbioru kluczy publicznych '%s': %s\n"
-#: g10/import.c:405 g10/import.c:463 g10/import.c:572 g10/import.c:673
+#: g10/import.c:429 g10/import.c:487 g10/import.c:596 g10/import.c:697
#, c-format
msgid "error writing keyring `%s': %s\n"
msgstr "b��d zapisu zbioru kluczy '%s': %s\n"
-#: g10/import.c:410
+#: g10/import.c:434
#, c-format
msgid "key %08lX: public key imported\n"
-msgstr "klucz %08lX: klucz publiczny wczytano do zbioru\n"
+msgstr "klucz %08lX: klucz publiczny do��czony do zbioru\n"
-#: g10/import.c:427
+#: g10/import.c:451
#, c-format
msgid "key %08lX: doesn't match our copy\n"
msgstr "klucz %08lX: nie zgadza si� z lokalnie posiadan� kopi�\n"
-#: g10/import.c:436 g10/import.c:629
+#: g10/import.c:460 g10/import.c:653
#, c-format
msgid "key %08lX: can't locate original keyblock: %s\n"
msgstr "klucz %08lX: brak oryginalnego bloku klucza; %s\n"
-#: g10/import.c:442 g10/import.c:635
+#: g10/import.c:466 g10/import.c:659
#, c-format
msgid "key %08lX: can't read original keyblock: %s\n"
msgstr "klucz %08lX: nie mo�na odczyta� oryginalnego bloku klucza; %s\n"
-#: g10/import.c:469
+#: g10/import.c:493
#, c-format
msgid "key %08lX: 1 new user ID\n"
msgstr "klucz %08lX: 1 nowy identyfikator u�ytkownika\n"
-#: g10/import.c:472
+#: g10/import.c:496
#, c-format
msgid "key %08lX: %d new user IDs\n"
msgstr "klucz %08lX: %d nowych identyfikator�w u�ytkownika\n"
-#: g10/import.c:475
+#: g10/import.c:499
#, c-format
msgid "key %08lX: 1 new signature\n"
msgstr "klucz %08lX: 1 nowy podpis\n"
-#: g10/import.c:478
+#: g10/import.c:502
#, c-format
msgid "key %08lX: %d new signatures\n"
msgstr "klucz %08lX: %d nowych podpis�w\n"
-#: g10/import.c:481
+#: g10/import.c:505
#, c-format
msgid "key %08lX: 1 new subkey\n"
msgstr "klucz %08lX: 1 nowy podklucz\n"
-#: g10/import.c:484
+#: g10/import.c:508
#, c-format
msgid "key %08lX: %d new subkeys\n"
msgstr "klucz %08lX: %d nowych podkluczy\n"
-#: g10/import.c:494
+#: g10/import.c:518
#, c-format
msgid "key %08lX: not changed\n"
msgstr "klucz %08lX: bez zmian\n"
-#: g10/import.c:577
+#: g10/import.c:601
#, c-format
msgid "key %08lX: secret key imported\n"
msgstr "Klucz %08lX: klucz tajny wczytany do zbioru\n"
#. we can't merge secret keys
-#: g10/import.c:581
+#: g10/import.c:605
#, c-format
msgid "key %08lX: already in secret keyring\n"
msgstr "Klucz %08lX: ten klucz ju� znajduje si� w zbiorze\n"
-#: g10/import.c:586
+#: g10/import.c:610
#, c-format
msgid "key %08lX: secret key not found: %s\n"
msgstr "klucz %08lX: brak klucza tajnego: %s\n"
-#: g10/import.c:615
+#: g10/import.c:639
#, c-format
msgid "key %08lX: no public key - can't apply revocation certificate\n"
msgstr ""
"klucz %08lX: brak klucza publicznego - wczytany certyfikat \n"
"uniwa�nienia nie mo�e by� zastosowany\n"
-#: g10/import.c:646
+#: g10/import.c:670
#, c-format
msgid "key %08lX: invalid revocation certificate: %s - rejected\n"
msgstr ""
"klucz %08lX: niepoprawny certyfikat uniewa�nienia:\n"
"%s - odrzucony\n"
-#: g10/import.c:678
+#: g10/import.c:702
#, c-format
msgid "key %08lX: revocation certificate imported\n"
msgstr "klucz %08lX: wczytany certyfikat uniewa�nienia\n"
-#: g10/import.c:711
+#: g10/import.c:744
#, c-format
msgid "key %08lX: no user ID for signature\n"
msgstr "klucz %08lX: brak identyfikatora u�ytkownika do podpisu\n"
-#: g10/import.c:718 g10/import.c:742
+#: g10/import.c:751 g10/import.c:775
#, c-format
msgid "key %08lX: unsupported public key algorithm\n"
msgstr ""
"klucz %08lX: nie obs�ugiwany algorytm szyfrowania z kluczem publicznym\n"
-#: g10/import.c:719
+#: g10/import.c:752
#, c-format
msgid "key %08lX: invalid self-signature\n"
msgstr "klucz %08lX: niepoprawny podpis w�a�ciciela klucza\n"
-#: g10/import.c:734
+#: g10/import.c:767
#, c-format
msgid "key %08lX: no subkey for key binding\n"
msgstr "klucz %08lX: brak podklucza do dowi�zania\n"
-#: g10/import.c:743
+#: g10/import.c:776
#, c-format
msgid "key %08lX: invalid subkey binding\n"
msgstr "klucz %08lX: niepoprawne dowi�zanie podklucza\n"
-#: g10/import.c:769
+#: g10/import.c:803
#, c-format
msgid "key %08lX: accepted non self-signed user ID '"
msgstr "klucz %08lX: przyj�to identyfikator nie podpisany nim samym '"
-#: g10/import.c:798
+#: g10/import.c:832
#, c-format
msgid "key %08lX: skipped user ID '"
msgstr "klucz %08lX: pomini�to identyfikator u�ytkownika '"
-#: g10/import.c:821
+#: g10/import.c:855
#, c-format
msgid "key %08lX: skipped subkey\n"
msgstr "klucz %08lX: podklucz pomini�ty\n"
@@ -1826,83 +1935,83 @@ msgstr "klucz %08lX: podklucz pomini�ty\n"
#. * to import non-exportable signature when we have the
#. * the secret key used to create this signature - it
#. * seems that this makes sense
-#: g10/import.c:846
+#: g10/import.c:880
#, c-format
msgid "key %08lX: non exportable signature (class %02x) - skipped\n"
msgstr "klucz %08lX: podpis nieeksportowalny (klasa %02x) - pomini�ty\n"
-#: g10/import.c:855
+#: g10/import.c:889
#, c-format
msgid "key %08lX: revocation certificate at wrong place - skipped\n"
msgstr ""
"klucz %08lX: certyfikat uniewa�nienia umieszczony w niew�a�ciwym \n"
"miejscu - zosta� pomini�ty\n"
-#: g10/import.c:863
+#: g10/import.c:897
#, c-format
msgid "key %08lX: invalid revocation certificate: %s - skipped\n"
msgstr "klucz %08lX: niepoprawny certyfikat uniewa�nienia: %s - pomini�ty\n"
-#: g10/import.c:963
+#: g10/import.c:997
#, c-format
msgid "key %08lX: duplicated user ID detected - merged\n"
msgstr "key %08lX: powt�rzony identyfikator u�ytkownika - do��czony\n"
-#: g10/import.c:1014
+#: g10/import.c:1048
#, c-format
msgid "key %08lX: revocation certificate added\n"
msgstr "klucz %08lX: dodany certyfikat uniewa�nienia\n"
-#: g10/import.c:1128 g10/import.c:1183
+#: g10/import.c:1162 g10/import.c:1215
#, c-format
msgid "key %08lX: our copy has no self-signature\n"
msgstr "klucz %08lX: dost�pna kopia nie jest podpisana ni� sam�\n"
-#: g10/delkey.c:64 g10/keyedit.c:93
+#: g10/delkey.c:64 g10/keyedit.c:94
#, c-format
msgid "%s: user not found\n"
msgstr "%s: nie znaleziono u�ytkownika\n"
-#: g10/keyedit.c:154
+#: g10/keyedit.c:155
msgid "[revocation]"
msgstr "[uniewa�nienie]"
-#: g10/keyedit.c:155
+#: g10/keyedit.c:156
msgid "[self-signature]"
msgstr "[podpis klucza nim samym]"
-#: g10/keyedit.c:219
+#: g10/keyedit.c:220
msgid "1 bad signature\n"
msgstr "1 niepoprawny podpis\n"
-#: g10/keyedit.c:221
+#: g10/keyedit.c:222
#, c-format
msgid "%d bad signatures\n"
msgstr "%d niepoprawnych podpis�w\n"
-#: g10/keyedit.c:223
+#: g10/keyedit.c:224
msgid "1 signature not checked due to a missing key\n"
msgstr "1 podpis nie zosta� sprawdzony z powodu braku klucza\n"
-#: g10/keyedit.c:225
+#: g10/keyedit.c:226
#, c-format
msgid "%d signatures not checked due to missing keys\n"
msgstr "%d podpis�w nie zosta�o sprawdzonych z powodu braku kluczy\n"
-#: g10/keyedit.c:227
+#: g10/keyedit.c:228
msgid "1 signature not checked due to an error\n"
msgstr "1 podpis nie zosta� sprawdzony z powodu b��du\n"
-#: g10/keyedit.c:229
+#: g10/keyedit.c:230
#, c-format
msgid "%d signatures not checked due to errors\n"
msgstr "%d podpis�w nie sprawdzonych z powodu b��d�w\n"
-#: g10/keyedit.c:231
+#: g10/keyedit.c:232
msgid "1 user ID without valid self-signature detected\n"
msgstr "wykryto 1 identyfikator u�ytkownika bez podpisu w�a�ciciela klucza\n"
-#: g10/keyedit.c:233
+#: g10/keyedit.c:234
#, c-format
msgid "%d user IDs without valid self-signatures detected\n"
msgstr ""
@@ -1910,17 +2019,17 @@ msgstr ""
#. Fixme: see whether there is a revocation in which
#. * case we should allow to sign it again.
-#: g10/keyedit.c:313
+#: g10/keyedit.c:316
#, c-format
msgid "Already signed by key %08lX\n"
msgstr "Ju� podpisano kluczem %08lX.\n"
-#: g10/keyedit.c:321
+#: g10/keyedit.c:324
#, c-format
msgid "Nothing to sign with key %08lX\n"
msgstr "Nie ma nic do podpisania kluczem %08lX.\n"
-#: g10/keyedit.c:330
+#: g10/keyedit.c:333
msgid ""
"Are you really sure that you want to sign this key\n"
"with your key: \""
@@ -1928,7 +2037,7 @@ msgstr ""
"Czy jeste� naprawd� pewien �e chcesz podpisa� ten klucz \n"
"swoim kluczem: \""
-#: g10/keyedit.c:339
+#: g10/keyedit.c:342
msgid ""
"The signature will be marked as non-exportable.\n"
"\n"
@@ -1936,29 +2045,34 @@ msgstr ""
"Podpis zostanie oznaczony jako nieeksportowalny.\n"
"\n"
-#: g10/keyedit.c:344
+#: g10/keyedit.c:347
msgid "Really sign? "
msgstr "Na pewno podpisa�? "
-#: g10/keyedit.c:370 g10/keyedit.c:1832 g10/keyedit.c:1881 g10/sign.c:128
+#: g10/keyedit.c:373 g10/keyedit.c:1869 g10/keyedit.c:1931 g10/sign.c:135
#, c-format
msgid "signing failed: %s\n"
msgstr "z�o�enie podpisu nie powiod�o si�: %s\n"
-#: g10/keyedit.c:423
+#: g10/keyedit.c:427
msgid "This key is not protected.\n"
msgstr "Ten klucz nie jest chroniony.\n"
-#: g10/keyedit.c:426
+#: g10/keyedit.c:431
+#, fuzzy
+msgid "Secret parts of primary key are not available.\n"
+msgstr "klucz tajny nie jest dost�pny"
+
+#: g10/keyedit.c:435
msgid "Key is protected.\n"
msgstr "Klucz jest chroniony.\n"
-#: g10/keyedit.c:443
+#: g10/keyedit.c:455
#, c-format
msgid "Can't edit this key: %s\n"
msgstr "Tego klucza nie mo�na edytowa�: %s.\n"
-#: g10/keyedit.c:448
+#: g10/keyedit.c:460
msgid ""
"Enter the new passphrase for this secret key.\n"
"\n"
@@ -1966,7 +2080,7 @@ msgstr ""
"Wprowad� nowe wyra�enie przej�ciowe (has�o) dla tego klucza tajnego.\n"
"\n"
-#: g10/keyedit.c:460
+#: g10/keyedit.c:472
msgid ""
"You don't want a passphrase - this is probably a *bad* idea!\n"
"\n"
@@ -1974,393 +2088,397 @@ msgstr ""
"Nie chcesz poda� wyra�enia przej�ciowego (has�a) - to *z�y* pomys�!\n"
"\n"
-#: g10/keyedit.c:463
+#: g10/keyedit.c:475
msgid "Do you really want to do this? "
msgstr "Czy na pewno chcesz to zrobi�? "
-#: g10/keyedit.c:524
+#: g10/keyedit.c:539
msgid "moving a key signature to the correct place\n"
-msgstr "przenosz� podpis klucza na w�a�ciwe miejsce\n"
+msgstr "przeniesienie podpis klucza na w�a�ciwe miejsce\n"
-#: g10/keyedit.c:564
+#: g10/keyedit.c:580
msgid "quit this menu"
msgstr "wyj�cie z tego menu"
-#: g10/keyedit.c:565
+#: g10/keyedit.c:581
msgid "q"
msgstr "w"
-#: g10/keyedit.c:566
+#: g10/keyedit.c:582
msgid "save"
msgstr "zapis"
-#: g10/keyedit.c:566
+#: g10/keyedit.c:582
msgid "save and quit"
msgstr "zapis zmian i wyj�cie"
-#: g10/keyedit.c:567
+#: g10/keyedit.c:583
msgid "help"
msgstr "pomoc"
-#: g10/keyedit.c:567
+#: g10/keyedit.c:583
msgid "show this help"
msgstr "ten tekst pomocy"
-#: g10/keyedit.c:569
+#: g10/keyedit.c:585
msgid "fpr"
msgstr "odc"
-#: g10/keyedit.c:569
+#: g10/keyedit.c:585
msgid "show fingerprint"
msgstr "okazanie odcisku klucza"
-#: g10/keyedit.c:570
+#: g10/keyedit.c:586
msgid "list"
msgstr "lista"
-#: g10/keyedit.c:570
+#: g10/keyedit.c:586
msgid "list key and user IDs"
msgstr "lista kluczy i identyfikator�w u�ytkownik�w"
-#: g10/keyedit.c:571
+#: g10/keyedit.c:587
msgid "l"
msgstr "l"
-#: g10/keyedit.c:572
+#: g10/keyedit.c:588
msgid "uid"
msgstr "id"
-#: g10/keyedit.c:572
+#: g10/keyedit.c:588
msgid "select user ID N"
msgstr "wyb�r identyfikatora u�ytkownika N"
-#: g10/keyedit.c:573
+#: g10/keyedit.c:589
msgid "key"
msgstr "klucz"
-#: g10/keyedit.c:573
+#: g10/keyedit.c:589
msgid "select secondary key N"
msgstr "wyb�r podklucza N"
-#: g10/keyedit.c:574
+#: g10/keyedit.c:590
msgid "check"
msgstr "lista"
-#: g10/keyedit.c:574
+#: g10/keyedit.c:590
msgid "list signatures"
msgstr "lista podpis�w"
-#: g10/keyedit.c:575
+#: g10/keyedit.c:591
msgid "c"
msgstr "l"
-#: g10/keyedit.c:576
+#: g10/keyedit.c:592
msgid "sign"
msgstr "podpis"
-#: g10/keyedit.c:576
+#: g10/keyedit.c:592
msgid "sign the key"
msgstr "z�o�enie podpisu na kluczu"
-#: g10/keyedit.c:577
+#: g10/keyedit.c:593
msgid "s"
msgstr "p"
-#: g10/keyedit.c:578
+#: g10/keyedit.c:594
msgid "lsign"
msgstr "lpodpis"
-#: g10/keyedit.c:578
+#: g10/keyedit.c:594
msgid "sign the key locally"
msgstr "z�o�enie lokalnego podpisu na kluczu"
-#: g10/keyedit.c:579
+#: g10/keyedit.c:595
msgid "debug"
-msgstr "�ledzenia"
+msgstr "�ledzenie"
-#: g10/keyedit.c:580
+#: g10/keyedit.c:596
msgid "adduid"
msgstr "dodid"
-#: g10/keyedit.c:580
+#: g10/keyedit.c:596
msgid "add a user ID"
msgstr "dodanie nowego identyfikatora u�ytkownika do klucza"
-#: g10/keyedit.c:581
+#: g10/keyedit.c:597
msgid "deluid"
msgstr "usid"
-#: g10/keyedit.c:581
+#: g10/keyedit.c:597
msgid "delete user ID"
msgstr "usuni�cie identyfikatora u�ytkownika z klucza"
-#: g10/keyedit.c:582
+#: g10/keyedit.c:598
msgid "addkey"
msgstr "dodkl"
-#: g10/keyedit.c:582
+#: g10/keyedit.c:598
msgid "add a secondary key"
msgstr "dodanie podklucza"
-#: g10/keyedit.c:583
+#: g10/keyedit.c:599
msgid "delkey"
msgstr "uskl"
-#: g10/keyedit.c:583
+#: g10/keyedit.c:599
msgid "delete a secondary key"
msgstr "usuni�cie podklucza"
-#: g10/keyedit.c:584
+#: g10/keyedit.c:600
msgid "delsig"
msgstr "lpodpis"
-#: g10/keyedit.c:584
+#: g10/keyedit.c:600
msgid "delete signatures"
msgstr "lista podpis�w"
-#: g10/keyedit.c:585
+#: g10/keyedit.c:601
msgid "expire"
msgstr "data"
-#: g10/keyedit.c:585
+#: g10/keyedit.c:601
msgid "change the expire date"
msgstr "zmiana daty wa�no�ci klucza"
-#: g10/keyedit.c:586
+#: g10/keyedit.c:602
msgid "toggle"
msgstr "prze�"
-#: g10/keyedit.c:586
+#: g10/keyedit.c:602
msgid "toggle between secret and public key listing"
msgstr "prze��czenie pomi�dzy list� kluczy publicznych i tajnych"
-#: g10/keyedit.c:588
+#: g10/keyedit.c:604
msgid "t"
msgstr "p"
-#: g10/keyedit.c:589
+#: g10/keyedit.c:605
msgid "pref"
msgstr "opcje"
-#: g10/keyedit.c:589
+#: g10/keyedit.c:605
msgid "list preferences"
msgstr "lista opcji"
-#: g10/keyedit.c:590
+#: g10/keyedit.c:606
msgid "passwd"
msgstr "has�o"
-#: g10/keyedit.c:590
+#: g10/keyedit.c:606
msgid "change the passphrase"
msgstr "zmiana wyra�enia przej�ciowego (has�a)"
-#: g10/keyedit.c:591
+#: g10/keyedit.c:607
msgid "trust"
msgstr "zaufanie"
-#: g10/keyedit.c:591
+#: g10/keyedit.c:607
msgid "change the ownertrust"
msgstr "zmiana zaufania w�a�ciciela"
-#: g10/keyedit.c:592
+#: g10/keyedit.c:608
msgid "revsig"
msgstr "unpod"
-#: g10/keyedit.c:592
+#: g10/keyedit.c:608
msgid "revoke signatures"
msgstr "uniewa�nienie podpisu"
-#: g10/keyedit.c:593
+#: g10/keyedit.c:609
msgid "revkey"
msgstr "unpkl"
-#: g10/keyedit.c:593
+#: g10/keyedit.c:609
msgid "revoke a secondary key"
msgstr "uniewa�nienie podklucza"
-#: g10/keyedit.c:594
+#: g10/keyedit.c:610
msgid "disable"
msgstr "wy�kl"
-#: g10/keyedit.c:594
+#: g10/keyedit.c:610
msgid "disable a key"
msgstr "wy��czy� klucz z u�ycia"
-#: g10/keyedit.c:595
+#: g10/keyedit.c:611
msgid "enable"
msgstr "w�kl"
-#: g10/keyedit.c:595
+#: g10/keyedit.c:611
msgid "enable a key"
msgstr "w��czy� klucz do u�ycia"
-#: g10/delkey.c:107 g10/keyedit.c:614
+#: g10/delkey.c:110 g10/keyedit.c:630
msgid "can't do that in batchmode\n"
msgstr "nie dzia�a w trybie wsadowym\n"
#. check that they match
#. fixme: check that they both match
-#: g10/keyedit.c:652
+#: g10/keyedit.c:668
msgid "Secret key is available.\n"
msgstr "Dost�pny jest klucz tajny.\n"
-#: g10/keyedit.c:681
+#: g10/keyedit.c:697
msgid "Command> "
msgstr "Polecenie> "
-#: g10/keyedit.c:711
+#: g10/keyedit.c:727
msgid "Need the secret key to do this.\n"
msgstr "Do wykonania tej operacji potrzebny jest klucz tajny.\n"
-#: g10/keyedit.c:758
+#: g10/keyedit.c:731
+msgid "Please use the command \"toggle\" first.\n"
+msgstr ""
+
+#: g10/keyedit.c:778
msgid "Really sign all user IDs? "
msgstr "Podpisa� wszystkie identyfikatory u�ytkownika na tym kluczu? "
-#: g10/keyedit.c:759
+#: g10/keyedit.c:779
msgid "Hint: Select the user IDs to sign\n"
msgstr "Podpowied�: wybierz identyfikatory u�ytkownika do podpisania.\n"
-#: g10/keyedit.c:786 g10/keyedit.c:968
+#: g10/keyedit.c:811 g10/keyedit.c:993
#, c-format
msgid "update of trustdb failed: %s\n"
msgstr "naniesienie poprawek bazy zaufania nie powiod�o si�: %s\n"
-#: g10/keyedit.c:797 g10/keyedit.c:818
+#: g10/keyedit.c:822 g10/keyedit.c:843
msgid "You must select at least one user ID.\n"
msgstr "Musisz wybra� co najmniej jeden identyfikator u�ytkownika.\n"
-#: g10/keyedit.c:799
+#: g10/keyedit.c:824
msgid "You can't delete the last user ID!\n"
msgstr "Nie mo�esz usun�� ostatniego identyfikatora u�ytkownika!\n"
-#: g10/keyedit.c:802
+#: g10/keyedit.c:827
msgid "Really remove all selected user IDs? "
msgstr "Czy na pewno usun�� wszystkie wybrane identyfikatory u�ytkownika? "
-#: g10/keyedit.c:803
+#: g10/keyedit.c:828
msgid "Really remove this user ID? "
msgstr "Czy na pewno usun�� ten identyfikator u�ytkownika? "
-#: g10/keyedit.c:839 g10/keyedit.c:861
+#: g10/keyedit.c:864 g10/keyedit.c:886
msgid "You must select at least one key.\n"
msgstr "Musisz wybra� co najmniej jeden klucz.\n"
-#: g10/keyedit.c:843
+#: g10/keyedit.c:868
msgid "Do you really want to delete the selected keys? "
msgstr "Czy na pewno chcesz usun�� wybrane klucze? "
-#: g10/keyedit.c:844
+#: g10/keyedit.c:869
msgid "Do you really want to delete this key? "
msgstr "Czy na pewno chcesz usun�� ten klucz? "
-#: g10/keyedit.c:865
+#: g10/keyedit.c:890
msgid "Do you really want to revoke the selected keys? "
msgstr "Czy na pewno chcesz uniewa�ni� wybrane klucze? "
-#: g10/keyedit.c:866
+#: g10/keyedit.c:891
msgid "Do you really want to revoke this key? "
msgstr "Czy na pewno chcesz uniewa�ni� ten klucz? "
-#: g10/keyedit.c:932
+#: g10/keyedit.c:957
msgid "Save changes? "
msgstr "Zapisa� zmiany? "
-#: g10/keyedit.c:935
+#: g10/keyedit.c:960
msgid "Quit without saving? "
msgstr "Wyj�� bez zapisania zmian? "
-#: g10/keyedit.c:946
+#: g10/keyedit.c:971
#, c-format
msgid "update failed: %s\n"
msgstr "naniesienie poprawek nie powiod�o si�: %s\n"
-#: g10/keyedit.c:953
+#: g10/keyedit.c:978
#, c-format
msgid "update secret failed: %s\n"
msgstr "naniesienie poprawek na kluczu tajnym nie powiod�o si�: %s\n"
-#: g10/keyedit.c:960
+#: g10/keyedit.c:985
msgid "Key not changed so no update needed.\n"
msgstr ""
"Klucz nie zosta� zmieniony wi�c nanoszenie poprawek nie jest konieczne.\n"
-#: g10/keyedit.c:975
+#: g10/keyedit.c:1000
msgid "Invalid command (try \"help\")\n"
-msgstr "Niepoprawna komenda (spr�buj \"help\")\n"
+msgstr "Niepoprawne polecenie (spr�buj \"help\")\n"
-#: g10/keyedit.c:1065
+#: g10/keyedit.c:1093
msgid "This key has been disabled"
-msgstr "Ten klucz zosta� wy��czony z u�ytku"
+msgstr "Ten klucz zosta� wy��czony z u�ycia"
-#: g10/keyedit.c:1336
+#: g10/keyedit.c:1364
msgid "Delete this good signature? (y/N/q)"
msgstr "Usun�� ten poprawny podpis? (t/N/w)"
-#: g10/keyedit.c:1340
+#: g10/keyedit.c:1368
msgid "Delete this invalid signature? (y/N/q)"
msgstr "Usun�� ten niepoprawny podpis? (t/N/w)"
-#: g10/keyedit.c:1344
+#: g10/keyedit.c:1372
msgid "Delete this unknown signature? (y/N/q)"
msgstr "Usun�� ten nieznany podpis? (t/N/w)"
-#: g10/keyedit.c:1350
+#: g10/keyedit.c:1378
msgid "Really delete this self-signature? (y/N)"
msgstr "Na pewno usun�� ten podpis klucza nim samym? (t/N)"
-#: g10/keyedit.c:1364
+#: g10/keyedit.c:1392
#, c-format
msgid "Deleted %d signature.\n"
msgstr "%d podpis usuni�ty.\n"
-#: g10/keyedit.c:1365
+#: g10/keyedit.c:1393
#, c-format
msgid "Deleted %d signatures.\n"
msgstr "%d podpis�w usuni�tych.\n"
-#: g10/keyedit.c:1368
+#: g10/keyedit.c:1396
msgid "Nothing deleted.\n"
msgstr "Nic nie zosta�o usuni�te.\n"
-#: g10/keyedit.c:1437
+#: g10/keyedit.c:1465
msgid "Please remove selections from the secret keys.\n"
msgstr "Prosz� usun�� znacznik wyboru z kluczy tajnych.\n"
-#: g10/keyedit.c:1443
+#: g10/keyedit.c:1471
msgid "Please select at most one secondary key.\n"
msgstr "Prosz� wybra� najwy�ej jeden podklucz.\n"
-#: g10/keyedit.c:1447
+#: g10/keyedit.c:1475
msgid "Changing expiration time for a secondary key.\n"
msgstr "Zmiana daty wa�no�ci podklucza.\n"
-#: g10/keyedit.c:1449
+#: g10/keyedit.c:1477
msgid "Changing expiration time for the primary key.\n"
msgstr "Zmiana daty wa�no�ci g��wnego klucza.\n"
-#: g10/keyedit.c:1490
+#: g10/keyedit.c:1519
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"
-#: g10/keyedit.c:1506
+#: g10/keyedit.c:1535
msgid "No corresponding signature in secret ring\n"
msgstr "Brak odpowiadaj�cego podpisu w zbiorze kluczy tajnych\n"
-#: g10/keyedit.c:1566
+#: g10/keyedit.c:1596
#, c-format
msgid "No user ID with index %d\n"
msgstr "Brak identyfikatora u�ytkownika o numerze %d.\n"
-#: g10/keyedit.c:1612
+#: g10/keyedit.c:1642
#, c-format
msgid "No secondary key with index %d\n"
msgstr "Brak podklucza o indeksie %d\n"
-#: g10/keyedit.c:1710
+#: g10/keyedit.c:1740
msgid "user ID: \""
msgstr "Identyfikator u�ytkownika: "
-#: g10/keyedit.c:1713
+#: g10/keyedit.c:1743
#, c-format
msgid ""
"\"\n"
@@ -2369,110 +2487,114 @@ msgstr ""
"\"\n"
"podpisano Twoim kluczem %08lX w %s\n"
-#: g10/keyedit.c:1717
+#: g10/keyedit.c:1747
msgid "Create a revocation certificate for this signature? (y/N)"
msgstr "Stworzy� certyfikat uniewa�nienia tego podpisu? (t/N)"
#. FIXME: detect duplicates here
-#: g10/keyedit.c:1740
-#, fuzzy
+#: g10/keyedit.c:1771
msgid "You have signed these user IDs:\n"
-msgstr "Nie mo�esz usun�� ostatniego identyfikatora u�ytkownika!\n"
+msgstr "Te identyfikatory s� podpisane przez ciebie:\n"
-#: g10/keyedit.c:1754 g10/keyedit.c:1789
-#, fuzzy, c-format
+#: g10/keyedit.c:1785 g10/keyedit.c:1820
+#, c-format
msgid " signed by %08lX at %s\n"
-msgstr ""
-"\"\n"
-"podpisano Twoim kluczem %08lX w %s\n"
+msgstr " podpisany kluczem %08lX w %s\n"
-#: g10/keyedit.c:1759
-#, fuzzy, c-format
+#: g10/keyedit.c:1790
+#, c-format
msgid " revoked by %08lX at %s\n"
-msgstr ""
-"\"\n"
-"podpisano Twoim kluczem %08lX w %s\n"
+msgstr "uniewa�niony kluczem %08lX w %s\n"
-#: g10/keyedit.c:1779
-#, fuzzy
+#: g10/keyedit.c:1810
msgid "You are about to revoke these signatures:\n"
-msgstr "Czy na pewno chcesz uniewa�ni� wybrane klucze? "
+msgstr "Czy na pewno chcesz uniewa�ni� te podpisy:\n"
-#: g10/keyedit.c:1797
+#: g10/keyedit.c:1828
msgid "Really create the revocation certificates? (y/N)"
msgstr "Na pewno utworzy� certyfikaty uniewa�nienia ? (t/N)"
-#: g10/keyedit.c:1820
+#: g10/keyedit.c:1857
msgid "no secret key\n"
msgstr "brak klucza prywatnego\n"
+#. of subkey
+#: g10/keylist.c:318 g10/mainproc.c:740
+#, fuzzy, c-format
+msgid " [expires: %s]"
+msgstr "Data wa�no�ci klucza: %s\n"
+
#: g10/mainproc.c:213
#, c-format
msgid "public key is %08lX\n"
msgstr "klucz publiczny %08lX\n"
-#: g10/mainproc.c:244
+#: g10/mainproc.c:248
msgid "public key encrypted data: good DEK\n"
msgstr "dane zaszyfrowane kluczem publicznym: poprawny klucz sesyjny\n"
-#: g10/mainproc.c:275
+#: g10/mainproc.c:281
#, c-format
msgid "encrypted with %u-bit %s key, ID %08lX, created %s\n"
msgstr "d�ugo�� %u bit�w, typ %s, klucz %08lX, stworzony %s\n"
-#: g10/mainproc.c:285
+#: g10/mainproc.c:291
#, c-format
msgid "encrypted with %s key, ID %08lX\n"
msgstr "zaszyfrowane kluczem %s, o identyfikatorze %08lX\n"
-#: g10/mainproc.c:291
+#: g10/mainproc.c:297
msgid "no secret key for decryption available\n"
msgstr "odszyfrowuj�cy klucz tajny do jest niedost�pny\n"
-#: g10/mainproc.c:300
+#: g10/mainproc.c:306
#, c-format
msgid "public key decryption failed: %s\n"
msgstr "b��d odszyfrowywania kluczem publicznym: %s\n"
-#: g10/mainproc.c:330
+#: g10/mainproc.c:342
msgid "decryption okay\n"
msgstr "odszyfrowane poprawnie\n"
-#: g10/mainproc.c:335
+#: g10/mainproc.c:347
msgid "WARNING: encrypted message has been manipulated!\n"
-msgstr "OSTRZE�ENIE: zaszyfrowana wiadomo�� by�a manipulowana!\n"
+msgstr "OSTRZE�ENIE: dokonano manipulacji zaszyfrowan� wiadomo�ci�!\n"
-#: g10/mainproc.c:340
+#: g10/mainproc.c:352
#, c-format
msgid "decryption failed: %s\n"
msgstr "b��d odszyfrowywania: %s\n"
-#: g10/mainproc.c:358
+#: g10/mainproc.c:371
msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
msgstr "UWAGA: nadawca zaznaczy� �e wiadomo�� nie powinna by� zapisywana\n"
-#: g10/mainproc.c:360
+#: g10/mainproc.c:373
#, c-format
msgid "original file name='%.*s'\n"
msgstr "pierwotna nazwa pliku='%.*s'\n"
-#: g10/mainproc.c:587 g10/mainproc.c:596
+#: g10/mainproc.c:524
+msgid "standalone revocation - use \"gpg --import\" to apply\n"
+msgstr ""
+
+#: g10/mainproc.c:611 g10/mainproc.c:620
msgid "WARNING: invalid notation data found\n"
msgstr "OSTRZE�ENIE: niepoprawne dane w adnotacji\n"
-#: g10/mainproc.c:599
+#: g10/mainproc.c:623
msgid "Notation: "
msgstr "Adnotacja:"
-#: g10/mainproc.c:606
+#: g10/mainproc.c:630
msgid "Policy: "
msgstr "Regulamin:"
-#: g10/mainproc.c:1025
+#: g10/mainproc.c:1057
msgid "signature verification suppressed\n"
msgstr "wymuszono pomini�cie sprawdzenia podpisu\n"
-#: g10/mainproc.c:1031
+#: g10/mainproc.c:1063
#, c-format
msgid "Signature made %.*s using %s key ID %08lX\n"
msgstr ""
@@ -2480,28 +2602,33 @@ msgstr ""
"z u�yciem klucza o identyfikatorze %08lX\n"
#. just in case that we have no userid
-#: g10/mainproc.c:1057 g10/mainproc.c:1068
+#: g10/mainproc.c:1089 g10/mainproc.c:1100
msgid "BAD signature from \""
msgstr "NIEPOPRAWNY podpis z�o�ony przez \""
-#: g10/mainproc.c:1058 g10/mainproc.c:1069
+#: g10/mainproc.c:1090 g10/mainproc.c:1101
msgid "Good signature from \""
msgstr "Poprawny podpis z�o�ony przez \""
-#: g10/mainproc.c:1060
+#: g10/mainproc.c:1092
msgid " aka \""
msgstr " alias \""
-#: g10/mainproc.c:1115
+#: g10/mainproc.c:1148
#, c-format
msgid "Can't check signature: %s\n"
-msgstr "Nie mog� sprawdzi� podpisu: %s\n"
+msgstr "Nie mo�na sprawdzi� podpisu: %s\n"
+
+#: g10/mainproc.c:1209
+#, fuzzy, c-format
+msgid "standalone signature of class 0x%02x\n"
+msgstr "nieznana klasa podpisu"
-#: g10/mainproc.c:1212
+#: g10/mainproc.c:1250
msgid "old style (PGP 2.x) signature\n"
msgstr "podpis starego typu (PGP 2.x)\n"
-#: g10/mainproc.c:1217
+#: g10/mainproc.c:1255
msgid "invalid root packet detected in proc_tree()\n"
msgstr "wykryto niepoprawny pakiet pierwotny w proc_tree()\n"
@@ -2532,12 +2659,12 @@ msgstr ""
"ten algorytm szyfruj�cy jest odradzany; prosz� u�ywa� bardziej "
"standardowych!\n"
-#: g10/parse-packet.c:113
+#: g10/parse-packet.c:115
#, c-format
msgid "can't handle public key algorithm %d\n"
msgstr "algorytm klucza publicznego niemo�liwy do obs�u�enia: %d\n"
-#: g10/parse-packet.c:939
+#: g10/parse-packet.c:956
#, c-format
msgid "subpacket of type %d has critical bit set\n"
msgstr "podpakiet typu %d ma ustawiony krytyczny bit\n"
@@ -2560,7 +2687,9 @@ msgstr "d�ugo�� %u bit�w, typ %s, klucz %08lX, stworzony %s"
#: g10/passphrase.c:173
#, c-format
msgid " (main key ID %08lX)"
-msgstr " (g��wny ID klucza %08lX)"
+msgstr ""
+" \n"
+"(identyfikator g��wnego klucza %08lX)"
#: g10/passphrase.c:190
msgid "can't query password in batchmode\n"
@@ -2579,15 +2708,20 @@ msgid "data not saved; use option \"--output\" to save it\n"
msgstr ""
"dane nie zosta�y zapisane; nale�y u�y� opcji \"--output\" aby je zapisa�\n"
-#: g10/plaintext.c:315
+#: g10/plaintext.c:317
+#, fuzzy
+msgid "Detached signature.\n"
+msgstr "%d podpis usuni�ty.\n"
+
+#: g10/plaintext.c:321
msgid "Please enter name of data file: "
msgstr "Nazwa pliku danych: "
-#: g10/plaintext.c:336
+#: g10/plaintext.c:342
msgid "reading stdin ...\n"
-msgstr "czytam strumie� standardowego wej�cia\n"
+msgstr "odczyt ze strumienia standardowego wej�cia...\n"
-#: g10/plaintext.c:379
+#: g10/plaintext.c:385
#, c-format
msgid "can't open signed data `%s'\n"
msgstr "nie mo�na otworzy� podpisanego pliku '%s'\n"
@@ -2595,7 +2729,7 @@ msgstr "nie mo�na otworzy� podpisanego pliku '%s'\n"
#: g10/pubkey-enc.c:79
#, c-format
msgid "anonymous receiver; trying secret key %08lX ...\n"
-msgstr "adresat anonimowy; pr�buj� klucz tajny %08lX ...\n"
+msgstr "adresat anonimowy; pr�ba klucza tajnego %08lX ...\n"
#: g10/pubkey-enc.c:85
msgid "okay, we are the anonymous recipient.\n"
@@ -2605,529 +2739,590 @@ msgstr "OK, to my jeste�my adresatem anonimowym.\n"
msgid "old encoding of the DEK is not supported\n"
msgstr "stary, nie obs�ugiwany algorytm szyfrowania klucza sesyjnego\n"
-#: g10/pubkey-enc.c:191
+#: g10/pubkey-enc.c:156
+#, fuzzy, c-format
+msgid "cipher algorithm %d is unknown or disabled\n"
+msgstr "%d - algorytm ochrony nie obs�ugiwany\n"
+
+#: g10/pubkey-enc.c:195
#, c-format
msgid "NOTE: cipher algorithm %d not found in preferences\n"
msgstr "UWAGA: brak algorytmu szyfruj�cego %d w ustawieniach\n"
-#: g10/seckey-cert.c:55
+#: g10/pubkey-enc.c:201
+#, fuzzy, c-format
+msgid "NOTE: secret key %08lX expired at %s\n"
+msgstr "UWAGA: klucz podpisuj�cy przekroczy� dat� wa�no�ci %s\n"
+
+#: g10/hkp.c:62
+#, c-format
+msgid "requesting key %08lX from %s ...\n"
+msgstr ""
+
+#: g10/hkp.c:75
+#, fuzzy, c-format
+msgid "can't get key from keyserver: %s\n"
+msgstr "niemo�liwy jest zapis do zbioru kluczy: %s\n"
+
+#: g10/hkp.c:98 g10/hkp.c:136
+msgid "no keyserver known (use option --keyserver)\n"
+msgstr ""
+
+#: g10/hkp.c:106
+#, fuzzy, c-format
+msgid "%s: not a valid key ID\n"
+msgstr "'%s\" nie jest w�a�ciwym identyfikatorem klucza\n"
+
+#: g10/hkp.c:158
+#, fuzzy, c-format
+msgid "can't connect to `%s': %s\n"
+msgstr "nie mo�na otworzy� %s: %s\n"
+
+#: g10/hkp.c:182
+#, fuzzy, c-format
+msgid "error sending to `%s': %s\n"
+msgstr "b��d odczytu '%s': %s\n"
+
+#: g10/hkp.c:194
+#, c-format
+msgid "success sending to `%s' (status=%u)\n"
+msgstr ""
+
+#: g10/hkp.c:197
+#, c-format
+msgid "failed sending to `%s': status=%u\n"
+msgstr ""
+
+#: g10/seckey-cert.c:53
+#, fuzzy
+msgid "secret key parts are not available\n"
+msgstr "klucz tajny nie jest dost�pny"
+
+#: g10/seckey-cert.c:59
#, c-format
msgid "protection algorithm %d is not supported\n"
msgstr "%d - algorytm ochrony nie obs�ugiwany\n"
-#: g10/seckey-cert.c:171
+#: g10/seckey-cert.c:175
msgid "Invalid passphrase; please try again ...\n"
msgstr ""
"Niepoprawne wyra�enie przej�ciowe (has�o); prosz� spr�bowa� ponownie ...\n"
-#: g10/seckey-cert.c:227
+#: g10/seckey-cert.c:231
msgid "WARNING: Weak key detected - please change passphrase again.\n"
msgstr ""
-"Ostrze�enie: Wykryto klucz s�aby algorytmu - nale�y ponownie zmieni� \n"
-"wyra�enie przej�ciowe (has�o).\n"
+"OSTRZE�ENIE: Wykryto klucz s�aby algorytmu - nale�y ponownie zmieni� \n"
+" wyra�enie przej�ciowe (has�o).\n"
-#: g10/sig-check.c:199
+#: g10/sig-check.c:202
msgid "assuming bad MDC due to an unknown critical bit\n"
msgstr ""
"przyj�to niepoprawno�� MDC z powonu ustawienia nieznanego bitu krytycznego\n"
-#: g10/sig-check.c:295
+#: g10/sig-check.c:300
msgid ""
"this is a PGP generated ElGamal key which is NOT secure for signatures!\n"
msgstr ""
"Klucz algorytmu ElGamala wygenerowany przez PGP - podpisy nim sk�adane\n"
"nie zapewniaj� bezpiecze�stwa!\n"
-#: g10/sig-check.c:303
+#: g10/sig-check.c:308
#, c-format
msgid "public key is %lu second newer than the signature\n"
msgstr "klucz publiczny jest o %lu sekund m�odszy od podpisu\n"
-#: g10/sig-check.c:304
+#: g10/sig-check.c:309
#, c-format
msgid "public key is %lu seconds newer than the signature\n"
msgstr "klucz publiczny jest o %lu sekund m�odszy od podpisu\n"
-#: g10/sig-check.c:320
+#: g10/sig-check.c:327
#, c-format
msgid "NOTE: signature key expired %s\n"
msgstr "UWAGA: klucz podpisuj�cy przekroczy� dat� wa�no�ci %s\n"
-#: g10/sig-check.c:377
+#: g10/sig-check.c:385
msgid "assuming bad signature due to an unknown critical bit\n"
msgstr ""
"przyj�to niewa�no�� podpisu z powonu ustawienia nieznanego bitu krytycznego\n"
-#: g10/sign.c:132
+#: g10/sign.c:139
#, c-format
msgid "%s signature from: %s\n"
msgstr "%s podpis z�o�ony przez: %s\n"
-#: g10/sign.c:263 g10/sign.c:575
+#: g10/sign.c:270 g10/sign.c:582
#, c-format
msgid "can't create %s: %s\n"
-msgstr "nie mog� stworzy� %s: %s\n"
+msgstr "nie mo�na stworzy� %s: %s\n"
-#: g10/sign.c:361
+#: g10/sign.c:368
msgid "signing:"
msgstr "podpis:"
-#: g10/sign.c:404
+#: g10/sign.c:411
#, c-format
msgid "WARNING: `%s' is an empty file\n"
msgstr "OSTRZE�ENIE: plik '%s' jest pusty\n"
-#: g10/textfilter.c:128
+#: g10/textfilter.c:134
#, c-format
msgid "can't handle text lines longer than %d characters\n"
-msgstr "nie mog� obs�u�y� linii tekstu d�u�szej ni� %d znak�w\n"
+msgstr "nie mo�na obs�u�y� linii tekstu d�u�szej ni� %d znak�w\n"
-#: g10/textfilter.c:197
+#: g10/textfilter.c:231
#, c-format
msgid "input line longer than %d characters\n"
msgstr "linia d�u�sza ni� %d znak�w\n"
-#: g10/tdbio.c:121 g10/tdbio.c:1635
+#: g10/tdbio.c:116 g10/tdbio.c:1623
#, c-format
msgid "trustdb rec %lu: lseek failed: %s\n"
msgstr "baza zaufania, wpis %lu: lseek() nie powiod�a si�: %s\n"
-#: g10/tdbio.c:127 g10/tdbio.c:1642
+#: g10/tdbio.c:122 g10/tdbio.c:1630
#, 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"
-#: g10/tdbio.c:237
+#: g10/tdbio.c:232
msgid "trustdb transaction too large\n"
msgstr "zbyt du�e zlecenie dla bazy zaufania\n"
-#: g10/tdbio.c:429
+#: g10/tdbio.c:424
#, c-format
msgid "%s: can't access: %s\n"
msgstr "%s: dost�p niemo�liwy: %s\n"
-#: g10/ringedit.c:298 g10/tdbio.c:445
-#, c-format
-msgid "%s: can't create directory: %s\n"
-msgstr "%s: nie mog� utworzy� katalogu: %s\n"
-
-#: g10/ringedit.c:304 g10/tdbio.c:448
-#, c-format
-msgid "%s: directory created\n"
-msgstr "%s: katalog utworzony\n"
-
-#: g10/tdbio.c:452
+#: g10/tdbio.c:438
#, c-format
msgid "%s: directory does not exist!\n"
msgstr "%s: katalog nie istnieje!\n"
-#: g10/openfile.c:182 g10/openfile.c:253 g10/ringedit.c:1348 g10/tdbio.c:458
+#: g10/openfile.c:216 g10/openfile.c:284 g10/ringedit.c:1363 g10/tdbio.c:444
#, c-format
msgid "%s: can't create: %s\n"
-msgstr "%s: nie mog� utworzy�: %s\n"
+msgstr "%s: nie mo�na utworzy�: %s\n"
-#: g10/tdbio.c:473 g10/tdbio.c:522
+#: g10/tdbio.c:459 g10/tdbio.c:508
#, c-format
msgid "%s: can't create lock\n"
-msgstr "%s: nie mog� utworzy� blokady\n"
+msgstr "%s: nie mo�na utworzy� blokady\n"
-#: g10/tdbio.c:487
+#: g10/tdbio.c:473
#, c-format
msgid "%s: failed to create version record: %s"
-msgstr "%s: stworzenie zapisu o wersji nie powiod�o si�: %s"
+msgstr "%s: utworzenie zapisu o wersji nie powiod�o si�: %s"
-#: g10/tdbio.c:491
+#: g10/tdbio.c:477
#, c-format
msgid "%s: invalid trustdb created\n"
-msgstr "%s: stworzony niepoprawny plik bazy zaufania\n"
+msgstr "%s: utworzono niepoprawny plik bazy zaufania\n"
-#: g10/tdbio.c:494
+#: g10/tdbio.c:480
#, c-format
msgid "%s: trustdb created\n"
msgstr "%s: baza zaufania utworzona\n"
-#: g10/tdbio.c:531
+#: g10/tdbio.c:517
#, c-format
msgid "%s: invalid trustdb\n"
msgstr "%s: niepoprawny plik bazy zaufania\n"
-#: g10/tdbio.c:564
+#: g10/tdbio.c:550
#, c-format
msgid "%s: failed to create hashtable: %s\n"
msgstr "%s: tworzenie tablicy skr�t�w nie powiod�o si�: %s\n"
-#: g10/tdbio.c:572
+#: g10/tdbio.c:558
#, c-format
msgid "%s: error updating version record: %s\n"
msgstr "%s: b��d przy uaktualnianiu numeru wersji: %s\n"
-#: g10/tdbio.c:588 g10/tdbio.c:627 g10/tdbio.c:649 g10/tdbio.c:679
-#: g10/tdbio.c:704 g10/tdbio.c:1568 g10/tdbio.c:1595
+#: g10/tdbio.c:574 g10/tdbio.c:613 g10/tdbio.c:635 g10/tdbio.c:665
+#: g10/tdbio.c:690 g10/tdbio.c:1556 g10/tdbio.c:1583
#, c-format
msgid "%s: error reading version record: %s\n"
msgstr "%s: b��d odczytu numeru wersji: %s\n"
-#: g10/tdbio.c:601 g10/tdbio.c:660
+#: g10/tdbio.c:587 g10/tdbio.c:646
#, c-format
msgid "%s: error writing version record: %s\n"
msgstr "%s: b��d zapisu numeru wersji: %s\n"
-#: g10/tdbio.c:1247
+#: g10/tdbio.c:1235
#, c-format
msgid "trustdb: lseek failed: %s\n"
msgstr "baza zaufania: procedura lseek() zawiod�a: %s\n"
-#: g10/tdbio.c:1255
+#: g10/tdbio.c:1243
#, c-format
msgid "trustdb: read failed (n=%d): %s\n"
msgstr "baza zaufania: procedura read() (n=%d) zawiod�a: %s\n"
-#: g10/tdbio.c:1276
+#: g10/tdbio.c:1264
#, c-format
msgid "%s: not a trustdb file\n"
msgstr "%s: to nie jest plik bazy zaufania\n"
-#: g10/tdbio.c:1292
+#: g10/tdbio.c:1280
#, c-format
msgid "%s: version record with recnum %lu\n"
msgstr "%s: wpis wersji z numerem %lu\n"
-#: g10/tdbio.c:1297
+#: g10/tdbio.c:1285
#, c-format
msgid "%s: invalid file version %d\n"
msgstr "%s: niew�a�ciwa wersja pliku %d\n"
-#: g10/tdbio.c:1601
+#: g10/tdbio.c:1589
#, c-format
msgid "%s: error reading free record: %s\n"
-msgstr "%s: b��d odczytu pustego wpisu: %s\n"
+msgstr "%s: b��d odczytu wolnego wpisu: %s\n"
-#: g10/tdbio.c:1609
+#: g10/tdbio.c:1597
#, c-format
msgid "%s: error writing dir record: %s\n"
msgstr "%s: b��d zapisu wpisu katalogowego: %s\n"
-#: g10/tdbio.c:1619
+#: g10/tdbio.c:1607
#, c-format
msgid "%s: failed to zero a record: %s\n"
msgstr "%s: zerowanie rekordu nie powiod�o si�: %s\n"
-#: g10/tdbio.c:1649
+#: g10/tdbio.c:1637
#, c-format
msgid "%s: failed to append a record: %s\n"
msgstr "%s: dopisanie rekordu nie powiod�o si�: %s\n"
-#: g10/tdbio.c:1760
+#: g10/tdbio.c:1748
msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
msgstr ""
"Baza zaufania jest uszkodzona; prosz� uruchomi� \"gpgm --fix-trust-db\".\n"
-#: g10/trustdb.c:160
+#: g10/trustdb.c:168
#, 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"
-#: g10/trustdb.c:175
+#: g10/trustdb.c:183
#, 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"
-#: g10/trustdb.c:189
+#: g10/trustdb.c:197
#, c-format
msgid "trust record %lu: delete failed: %s\n"
msgstr "wpis zaufania %lu: usuni�cie nie powiod�o si� %s\n"
-#: g10/trustdb.c:203
+#: g10/trustdb.c:211
#, c-format
msgid "trustdb: sync failed: %s\n"
msgstr "baza zaufania: synchronizacja nie powiod�a si� %s\n"
-#: g10/trustdb.c:347
+#: g10/trustdb.c:376
#, c-format
msgid "error reading dir record for LID %lu: %s\n"
msgstr "b��d odczytu wpisu katalogowego dla LID %lu: %s\n"
-#: g10/trustdb.c:354
+#: g10/trustdb.c:383
#, c-format
msgid "lid %lu: expected dir record, got type %d\n"
msgstr "lid %lu: oczekiwany wpis katalogowy, napotkano typ %d\n"
-#: g10/trustdb.c:359
+#: g10/trustdb.c:388
#, c-format
msgid "no primary key for LID %lu\n"
msgstr "brak klucza g��wnego dla LID %lu\n"
-#: g10/trustdb.c:364
+#: g10/trustdb.c:393
#, c-format
msgid "error reading primary key for LID %lu: %s\n"
msgstr "b��d odczytu g��wnego klucza dla LID %lu: %s\n"
-#: g10/trustdb.c:403
+#: g10/trustdb.c:432
#, c-format
msgid "get_dir_record: search_record failed: %s\n"
msgstr "get_dir_record: funkcja search_record zawiod�a: %s\n"
-#: g10/trustdb.c:458
+#: g10/trustdb.c:487
#, c-format
msgid "NOTE: secret key %08lX is NOT protected.\n"
msgstr "UWAGA: klucz tajny %08lX NIE jest chroniony.\n"
-#: g10/trustdb.c:466
+#: g10/trustdb.c:495
#, c-format
msgid "key %08lX: secret key without public key - skipped\n"
msgstr "klucz %08lX: klucz tajny bez klucza jawnego - pomini�ty\n"
-#: g10/trustdb.c:473
+#: g10/trustdb.c:502
#, c-format
msgid "key %08lX: secret and public key don't match\n"
msgstr "klucz %08lX: klucz tajny nie pasuje do klucza jawnego\n"
-#: g10/trustdb.c:485
+#: g10/trustdb.c:514
#, c-format
msgid "key %08lX: can't put it into the trustdb\n"
msgstr "klucz %08lX: wpisanie do bazy zaufania niemo�liwe\n"
-#: g10/trustdb.c:491
+#: g10/trustdb.c:520
#, c-format
msgid "key %08lX: query record failed\n"
msgstr "klucz %08lX: wyszukanie zapisu nie powiod�o si�\n"
-#: g10/trustdb.c:500
+#: g10/trustdb.c:529
#, c-format
msgid "key %08lX: already in trusted key table\n"
msgstr "klucz %08lX: ju� znajduje si� w tablicy kluczy zaufanych\n"
-#: g10/trustdb.c:503
+#: g10/trustdb.c:532
#, c-format
msgid "key %08lX: accepted as trusted key.\n"
msgstr "Klucz %08lX: zaakceptowany jako klucz zaufany.\n"
-#: g10/trustdb.c:511
+#: g10/trustdb.c:540
#, c-format
msgid "enumerate secret keys failed: %s\n"
msgstr "wyliczenie kluczy tajnych nie powiod�o si� %s\n"
-#: g10/trustdb.c:877
+#: g10/trustdb.c:921
#, c-format
msgid "key %08lX.%lu: Good subkey binding\n"
msgstr "klucz %08lX.%lu Dobre dowi�zanie podklucza\n"
-#: g10/trustdb.c:883 g10/trustdb.c:918
+#: g10/trustdb.c:927 g10/trustdb.c:962
#, c-format
msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
msgstr "klucz %08lX.%lu: Niepoprawne dowi�zanie podklucza %s\n"
-#: g10/trustdb.c:895
+#: g10/trustdb.c:939
#, c-format
msgid "key %08lX.%lu: Valid key revocation\n"
msgstr "klucz %08lX.%lu: Poprawne uniewa�nienie klucza\n"
-#: g10/trustdb.c:901
+#: g10/trustdb.c:945
#, c-format
msgid "key %08lX.%lu: Invalid key revocation: %s\n"
msgstr "klucz %08lX.%lu: Niew�a�ciwe uniewa�nienie klucza: %s\n"
-#: g10/trustdb.c:912
+#: g10/trustdb.c:956
#, c-format
msgid "key %08lX.%lu: Valid subkey revocation\n"
msgstr "klucz %08lX.%lu: Poprawne uniewa�nienie podklucza\n"
-#: g10/trustdb.c:1023
+#: g10/trustdb.c:1067
msgid "Good self-signature"
msgstr "Poprawny podpis klucza nim samym"
-#: g10/trustdb.c:1033
+#: g10/trustdb.c:1077
msgid "Invalid self-signature"
msgstr "Niepoprawny podpis klucza nim samym"
-#: g10/trustdb.c:1060
+#: g10/trustdb.c:1104
msgid "Valid user ID revocation skipped due to a newer self signature"
msgstr ""
"Poprawne uniewa�nienie identyfikatora u�ytkownika pomini�te z powodu\n"
"nowszego podpisu tym samym kluczem"
-#: g10/trustdb.c:1066
+#: g10/trustdb.c:1110
msgid "Valid user ID revocation"
msgstr "Poprawne uniewa�nienie identyfikatora u�ytkownika"
-#: g10/trustdb.c:1071
+#: g10/trustdb.c:1115
msgid "Invalid user ID revocation"
msgstr "Niepoprawne uniewa�nienie identyfikatora u�ytkownika"
-#: g10/trustdb.c:1112
+#: g10/trustdb.c:1157
msgid "Valid certificate revocation"
msgstr "Poprawne uniewa�nienie certyfikatu"
-#: g10/trustdb.c:1113
+#: g10/trustdb.c:1158
msgid "Good certificate"
msgstr "Poprawny certyfikat"
-#: g10/trustdb.c:1134
+#: g10/trustdb.c:1186
msgid "Invalid certificate revocation"
msgstr "Niepoprawne uniewa�nienie certyfikatu"
-#: g10/trustdb.c:1135
+#: g10/trustdb.c:1187
msgid "Invalid certificate"
msgstr "Niepoprawny certyfikat"
-#: g10/trustdb.c:1152 g10/trustdb.c:1156
+#: g10/trustdb.c:1204 g10/trustdb.c:1208
#, c-format
msgid "sig record %lu[%d] points to wrong record.\n"
msgstr "zapis o podpisach %lu[%d] wskazuje na z�y wpis.\n"
-#: g10/trustdb.c:1208
+#: g10/trustdb.c:1267
msgid "duplicated certificate - deleted"
msgstr "podw�jny certyfikat - usuni�ty"
-#: g10/trustdb.c:1514
+#: g10/trustdb.c:1584
#, c-format
msgid "tdbio_search_dir failed: %s\n"
msgstr "Procedura tdbio_search_dir nie powiod�a si�: %s\n"
-#: g10/trustdb.c:1636
+#: g10/trustdb.c:1718
#, c-format
msgid "lid ?: insert failed: %s\n"
msgstr "lid ?: wpisanie nie powiod�o si�: %s\n"
-#: g10/trustdb.c:1641
+#: g10/trustdb.c:1723
#, c-format
msgid "lid %lu: insert failed: %s\n"
msgstr "lid %lu: wpisanie nie powiod�o si�: %s\n"
-#: g10/trustdb.c:1647
+#: g10/trustdb.c:1729
#, c-format
msgid "lid %lu: inserted\n"
msgstr "lid %lu: wpisany\n"
-#: g10/trustdb.c:1652
+#: g10/trustdb.c:1734
#, c-format
msgid "error reading dir record: %s\n"
msgstr "b��d podczas odczytu wpisu katalogowego: %s\n"
-#: g10/trustdb.c:1660 g10/trustdb.c:1714
+#: g10/trustdb.c:1742 g10/trustdb.c:1805
#, c-format
msgid "%lu keys processed\n"
msgstr "%lu kluczy przetworzonych\n"
-#: g10/trustdb.c:1662 g10/trustdb.c:1718
+#: g10/trustdb.c:1744 g10/trustdb.c:1811
#, c-format
msgid "\t%lu keys with errors\n"
msgstr "\t%lu kluczy z b��dami\n"
-#: g10/trustdb.c:1664
+#: g10/trustdb.c:1746
#, c-format
msgid "\t%lu keys inserted\n"
msgstr "\t%lu kluczy wpisanych\n"
-#: g10/trustdb.c:1667
+#: g10/trustdb.c:1749
#, c-format
msgid "enumerate keyblocks failed: %s\n"
msgstr "wyliczenie blok�w kluczy nie powiod�o si�: %s\n"
-#: g10/trustdb.c:1705
+#: g10/trustdb.c:1797
#, c-format
msgid "lid %lu: dir record w/o key - skipped\n"
msgstr "lid %lu: wpis katalogowy bez bloku klucza - pomini�ty\n"
-#: g10/trustdb.c:1716
+#: g10/trustdb.c:1807
+#, fuzzy, c-format
+msgid "\t%lu due to new pubkeys\n"
+msgstr "klucz %08lX: %d nowych podkluczy\n"
+
+#: g10/trustdb.c:1809
#, c-format
msgid "\t%lu keys skipped\n"
msgstr "\t%lu kluczy pomini�tych\n"
-#: g10/trustdb.c:1720
+#: g10/trustdb.c:1813
#, c-format
msgid "\t%lu keys updated\n"
msgstr "\t%lu kluczy uaktualnionych\n"
-#: g10/trustdb.c:2057
+#: g10/trustdb.c:2158
msgid "Ooops, no keys\n"
msgstr "Oops, brak kluczy\n"
-#: g10/trustdb.c:2061
+#: g10/trustdb.c:2162
msgid "Ooops, no user IDs\n"
msgstr "Oops, brak identyfikator�w u�ytkownik�w\n"
-#: g10/trustdb.c:2218
+#: g10/trustdb.c:2320
#, c-format
msgid "check_trust: search dir record failed: %s\n"
msgstr "check_trust: poszukiwanie wpisu katalogowego nie powiod�o si�: %s\n"
-#: g10/trustdb.c:2227
+#: g10/trustdb.c:2329
#, c-format
msgid "key %08lX: insert trust record failed: %s\n"
msgstr "klucz %08lX: wprowadzenie wpisu zaufania nie powiod�o si�: %s\n"
-#: g10/trustdb.c:2231
+#: g10/trustdb.c:2333
#, c-format
msgid "key %08lX.%lu: inserted into trustdb\n"
msgstr "Klucz %08lX.%lu: wprowadzony do bazy zaufania\n"
-#: g10/trustdb.c:2239
+#: g10/trustdb.c:2341
#, c-format
msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
msgstr ""
"Klucz %08lX.%lu: stworzony w przysz�o�ci (zaburzenia czasoprzestrzeni,\n"
"lub �le ustawiony zegar systemowy)\n"
-#: g10/trustdb.c:2248
+#: g10/trustdb.c:2356
#, c-format
msgid "key %08lX.%lu: expired at %s\n"
msgstr "klucz %08lX.%lu: okres wa�no�ci up�yn�� %s\n"
-#: g10/trustdb.c:2256
+#: g10/trustdb.c:2364
#, c-format
msgid "key %08lX.%lu: trust check failed: %s\n"
msgstr "klucz %08lX.%lu: b��d przy sprawdzaniu zaufania: %s\n"
-#: g10/trustdb.c:2362
+#: g10/trustdb.c:2515
#, c-format
msgid "user '%s' not found: %s\n"
msgstr "u�ytkownik '%s' nie odnaleziony: %s\n"
-#: g10/trustdb.c:2364
+#: g10/trustdb.c:2517
#, c-format
msgid "problem finding '%s' in trustdb: %s\n"
msgstr "problem podczas szukania '%s' w bazie zaufania: %s\n"
-#: g10/trustdb.c:2367
+#: g10/trustdb.c:2520
#, c-format
msgid "user '%s' not in trustdb - inserting\n"
msgstr "brak u�ytkownika '%s' w bazie zaufania - dodano\n"
-#: g10/trustdb.c:2370
+#: g10/trustdb.c:2523
#, c-format
msgid "failed to put '%s' into trustdb: %s\n"
msgstr "umieszczenie '%s' w Bazie Zaufania nie powiod�o si�: %s\n"
-#: g10/trustdb.c:2556 g10/trustdb.c:2586
+#: g10/trustdb.c:2709 g10/trustdb.c:2739
msgid "WARNING: can't yet handle long pref records\n"
msgstr "OSTRZE�ENIE: d�ugie wpisy ustawie� jeszcze nie s� obs�ugiwane.\n"
-#: g10/ringedit.c:318
+#: g10/verify.c:82
+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 ""
+
+#: g10/verify.c:147
+#, c-format
+msgid "input line %u too long or missing LF\n"
+msgstr ""
+
+#: g10/ringedit.c:302
#, c-format
msgid "%s: can't create keyring: %s\n"
msgstr "%s: stworzenie zbioru kluczy jest niemo�liwe: %s\n"
-#: g10/ringedit.c:335 g10/ringedit.c:1353
+#: g10/ringedit.c:319 g10/ringedit.c:1368
#, c-format
msgid "%s: keyring created\n"
msgstr "%s: zbi�r kluczy utworzony\n"
-#: g10/ringedit.c:1530
+#: g10/ringedit.c:1545
msgid "WARNING: 2 files with confidential information exists.\n"
msgstr "OSTRZE�ENIE: Istniej� dwa pliki z poufnymi informacjami.\n"
-#: g10/ringedit.c:1531
+#: g10/ringedit.c:1546
#, c-format
msgid "%s is the unchanged one\n"
msgstr "%s pozosta� bez zmian\n"
-#: g10/ringedit.c:1532
+#: g10/ringedit.c:1547
#, c-format
msgid "%s is the new one\n"
msgstr "%s zosta� utworzony\n"
-#: g10/ringedit.c:1533
+#: g10/ringedit.c:1548
msgid "Please fix this possible security flaw\n"
msgstr "Prosz� usun�� to naruszenie zasad bezpiecze�stwa\n"
@@ -3152,38 +3347,52 @@ msgstr ""
"podpisy sk�adane tym kluczem nie zapewniaj� bezpiecze�stwa!\n"
#. do not overwrite
-#: g10/openfile.c:65
+#: g10/openfile.c:79
#, c-format
msgid "File `%s' exists. "
msgstr "Plik '%s' ju� istnieje. "
-#: g10/openfile.c:67
+#: g10/openfile.c:81
msgid "Overwrite (y/N)? "
msgstr "Nadpisa� (t/N)? "
-#: g10/openfile.c:97
+#: g10/openfile.c:109
#, c-format
msgid "%s: unknown suffix\n"
msgstr "%s: nieznana ko�c�wka\n"
-#: g10/openfile.c:119
+#: g10/openfile.c:131
msgid "Enter new filename"
msgstr "Nazwa pliku"
-#: g10/openfile.c:160
+#: g10/openfile.c:172
msgid "writing to stdout\n"
msgstr "zapisywanie na wyj�cie standardowe\n"
-#: g10/openfile.c:219
+#: g10/openfile.c:250
#, c-format
msgid "assuming signed data in `%s'\n"
msgstr "przyj�to obecno�� podpisanych danych w '%s'\n"
-#: g10/openfile.c:269
+#: g10/openfile.c:300
#, c-format
msgid "%s: new options file created\n"
msgstr "%s: stworzono nowy plik ustawie�\n"
+#: g10/openfile.c:313
+#, c-format
+msgid "%s: can't create directory: %s\n"
+msgstr "%s: nie mo�na utworzy� katalogu: %s\n"
+
+#: g10/openfile.c:316
+#, c-format
+msgid "%s: directory created\n"
+msgstr "%s: katalog utworzony\n"
+
+#: g10/openfile.c:318
+msgid "you have to start GnuPG again, so it can read the new options file\n"
+msgstr ""
+
#: g10/encr-data.c:66
#, c-format
msgid "%s encrypted data\n"
@@ -3211,28 +3420,25 @@ msgstr ""
"brak mo�liwo�ci generacji dobrego klucza dla szyfru symetrycznego;\n"
"operacja by�a powtarzana %d razy!\n"
-#: g10/delkey.c:93
-#, fuzzy
+#: g10/delkey.c:94
msgid "there is a secret key for this public key!\n"
-msgstr "usuni�cie klucza ze zbioru kluczy publicznych"
+msgstr "dla tego klucza publicznego istnieje klucz tajny!\n"
-#: g10/delkey.c:95
+#: g10/delkey.c:96
msgid "use option \"--delete-secret-key\" to delete it first.\n"
-msgstr ""
+msgstr "nale�y najpierw go usun�� opcj� \"--delete-secret-key\".\n"
-#: g10/delkey.c:111
-#, fuzzy
+#: g10/delkey.c:114
msgid "can't do that in batchmode without \"--yes\"\n"
-msgstr "nie dzia�a w trybie wsadowym\n"
+msgstr "nie dzia�a w trybie wsadowym bez opcji \"--yes\"\n"
-#: g10/delkey.c:133
-#, fuzzy
+#: g10/delkey.c:136
msgid "Delete this key from the keyring? "
-msgstr "usuni�cie klucza ze zbioru kluczy publicznych"
+msgstr "Usun�� ten klucz ze zbioru? "
-#: g10/delkey.c:141
+#: g10/delkey.c:144
msgid "This is a secret key! - really delete? "
-msgstr ""
+msgstr "To jest klucz tajny - czy na pewno go usun��? "
#: g10/helptext.c:47
msgid ""
@@ -3283,22 +3489,22 @@ msgid ""
msgstr ""
"Wyb�r algorytmu.\n"
"\n"
-"DSA (zwany te� DSS) to algorytm podpisu cyfrowego i tylko do sk�adania\n"
-"podpis�w mo�e by� u�ywany. Jest to preferowany algorytm poniewa�\n"
-"sk�adane nim podpisy sprawdza si� du�o szybciej ni� te sk�adane\n"
-"algorytmem ElGamala.\n"
+"DSA (zwany te� DSS) to algorytm podpisu cyfrowego, i tylko do sk�adania\n"
+"podpis�w mo�e on by� u�ywany. Jest to preferowany algorytm poniewa� "
+"sk�adane\n"
+"nim podpisy sprawdza si� du�o szybciej ni� te sk�adane algorytmem ElGamala.\n"
"\n"
-"Algorytm ElGamala mo�e by� u�ywany zar�wno do podpis�w jak i do\n"
-"szyfrowania. Standard OpenPGP rozr�nia dwa typy tego algorytmu -\n"
-"tylko do szyfrowania, oraz do szyfrowania i podpisywania. Faktycznie\n"
-"algorytm pozostaje bez zmian ale pewne parametry musz� by� odpowiednio\n"
-"dobrane aby stworzy� klucz kt�rym mo�na sk�ada� bezpieczne\n"
-"podpisy. Ten program obs�uguje oba typy ale inne implementacje nnie\n"
-"musz� rozumie� kluczy do podpis�w i szyfrowania\n"
+"Algorytm ElGamala mo�e by� u�ywany zar�wno do podpis�w jak i do "
+"szyfrowania.\n"
+"Standard OpenPGP rozr�nia dwa typy tego algorytmu - tylko do szyfrowania,\n"
+"oraz do szyfrowania i podpisywania. Faktycznie algorytm pozostaje bez zmian\n"
+"ale pewne parametry musz� by� odpowiednio dobrane aby stworzy� klucz kt�rym\n"
+"mo�na sk�ada� bezpieczne podpisy. Ten program obs�uguje oba typy ale inne\n"
+"implementacje nie musz� rozumie� kluczy do podpis�w i szyfrowania\n"
"\n"
-"G��wny klucz musi by� kluczem podpisuj�cym, jest to powodem dla\n"
-"kt�rego w tym menu nie ma mo�no�ci wyboru klucza ElGamala do\n"
-"szyfrowania."
+"G��wny klucz musi by� kluczem podpisuj�cym, jest to powodem dla kt�rego w "
+"tym\n"
+"menu nie ma mo�no�ci wyboru klucza ElGamala do szyfrowania."
#: g10/helptext.c:85
msgid ""
@@ -3306,9 +3512,10 @@ msgid ""
"because they are not supported by all programs and signatures created\n"
"with them are quite large and very slow to verify."
msgstr ""
-"Ten typ klucza jest zdefiniowany w RFC2440, jednak�e jest on odradzany\n"
-"gdy� nie jest obs�ugiwany przez wszystkie programy, a podpisy nim\n"
-"sk�adane s� du�e i ich sprawdzanie trwa d�ugo."
+"Ten typ klucza jest zdefiniowany w RFC2440, jednak�e jest on odradzany gdy�\n"
+"nie jest obs�ugiwany przez wszystkie programy, a podpisy nim sk�adane s� "
+"du�e\n"
+"i ich sprawdzanie trwa d�ugo."
#: g10/helptext.c:92
msgid "Enter the size of the key"
@@ -3326,10 +3533,10 @@ msgid ""
"get a good error response - instead the system tries to interpret\n"
"the given value as an interval."
msgstr ""
-"Wprowad� ��dan� warto�� (jak w znaku zach�ty). \n"
-"Mo�na tu poda� dat� w formacie ISO (RRRR-MM-DD) ale nie da to\n"
-"w�a�ciwej obs�ugi b��d�w - system pr�buje interpretowa� podan� warto��\n"
-"jako okres."
+"Wprowad� ��dan� warto�� (jak w znaku zach�ty). Mo�na tu poda� dat� w "
+"formacie\n"
+"ISO (RRRR-MM-DD) ale nie da to w�a�ciwej obs�ugi b��d�w - system pr�buje\n"
+"interpretowa� podan� warto�� jako okres."
#: g10/helptext.c:118
msgid "Enter the name of the key holder"
@@ -3437,6 +3644,7 @@ msgstr ""
"Prosz� powr�trzy� wyra�enie przej�ciowe, aby upewni� si� �e nie by�o pomy�ki."
#: g10/helptext.c:213
+#, fuzzy
msgid "Give the name of the file to which the signature applies"
msgstr "Nazwa pliku kt�rego dotyczy podpis"
@@ -3451,15 +3659,60 @@ msgid ""
msgstr ""
"Nazwa pliku. Naci�ni�cie ENTER potwierdzi nazw� domy�ln� (w nawiasach)."
-#: g10/helptext.c:237
+#: g10/helptext.c:229
+msgid ""
+"You should specify a reason for the certification. Depending on the\n"
+"context you have the ability to choose from this list:\n"
+" \"Key has been compromised\"\n"
+" Use this if you have a reason to believe that unauthorized persons\n"
+" got access to your secret key.\n"
+" \"Key is superseeded\"\n"
+" Use this if you have replaced this key with a newer one.\n"
+" \"Key is no longer used\"\n"
+" Use this if you have retired this key.\n"
+" \"User ID is no longer valid\"\n"
+" 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 ""
+
+#: g10/helptext.c:245
+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 ""
+
+#: g10/helptext.c:260
msgid "No help available"
msgstr "Pomoc niedost�pna"
-#: g10/helptext.c:245
+#: g10/helptext.c:268
#, c-format
msgid "No help available for `%s'"
msgstr "Brak pomocy o '%s'"
+#~ msgid "set debugging flags"
+#~ msgstr "ustawienie opcji �ledzenia wykonania programu"
+
+#~ msgid "enable full debugging"
+#~ msgstr "w��czenie pe�nego �ledzenia programu"
+
+#~ msgid "do not write comment packets"
+#~ msgstr "nie zapisywa� pakiet�w z komentarzem"
+
+#~ msgid "(default is 1)"
+#~ msgstr "(domy�lnie 1)"
+
+#~ msgid "(default is 3)"
+#~ msgstr "(domy�lnie 3)"
+
+#~ msgid " (%d) ElGamal in a v3 packet\n"
+#~ msgstr ""
+#~ " (%d) Klucz dla algorytmu ElGamala w pakiecie w trzeciej wersji formatu\n"
+
+#~ msgid "Key generation can only be used in interactive mode\n"
+#~ msgstr "Generacj� klucza mo�na wykonywa� tylko w trybie interaktywnym\n"
+
#~ msgid "print all message digests"
#~ msgstr "wszystkie skr�ty wiadomo�ci"
@@ -3685,9 +3938,6 @@ msgstr "Brak pomocy o '%s'"
#~ msgid "read error: %s\n"
#~ msgstr "b��d odczytu: %s\n"
-#~ msgid "can't write to keyring: %s\n"
-#~ msgstr "niemo�liwy jest zapis do zbioru kluczy: %s\n"
-
#~ msgid "writing keyblock\n"
#~ msgstr "zapisuj� blok klucza\n"
@@ -3725,9 +3975,6 @@ msgstr "Brak pomocy o '%s'"
#~ msgid "chained sigrec %lu has a wrong owner\n"
#~ msgstr "powi�zany rekord podpisu %lu ma niew�a�ciwego w�a�ciciela\n"
-#~ msgid "'%s' is not a valid long keyID\n"
-#~ msgstr "'%s\" nie jest w�a�ciwym identyfikatorem klucza\n"
-
#~ msgid "key %08lX: no public key for trusted key - skipped\n"
#~ msgstr ""
#~ "klucz %08lX: brak klucza publicznego dla klucza zaufanego - pomini�ty\n"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 5d953207e..dc7c49aa7 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -5,7 +5,7 @@
#
msgid ""
msgstr ""
-"POT-Creation-Date: 1999-09-05 19:21+0200\n"
+"POT-Creation-Date: 2000-05-30 13:59+0200\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Date: 1998-11-20 23:46:36-0200\n"
"From: Thiago Jung Bauermann <[email protected]>\n"
@@ -21,11 +21,11 @@ msgstr ""
msgid "Warning: using insecure memory!\n"
msgstr "Aviso: usando mem�ria insegura!\n"
-#: util/secmem.c:275
+#: util/secmem.c:287
msgid "operation is not possible without initialized secure memory\n"
msgstr "a opera��o n�o � poss�vel sem mem�ria segura inicializada\n"
-#: util/secmem.c:276
+#: util/secmem.c:288
msgid "(you may have used the wrong program for this task)\n"
msgstr "(voc� pode ter usado o programa errado para esta tarefa)\n"
@@ -46,13 +46,13 @@ msgid "nN"
msgstr "nN"
# INICIO MENU
-#: g10/keyedit.c:564 util/miscutil.c:308
+#: g10/keyedit.c:580 util/miscutil.c:308
msgid "quit"
msgstr "sair"
#: util/miscutil.c:311
msgid "qQ"
-msgstr ""
+msgstr "qQ"
#: util/errors.c:54
msgid "general error"
@@ -102,7 +102,6 @@ msgstr "chave p�blica n�o encontrada"
msgid "unknown cipher algorithm"
msgstr "algoritmo de criptografia desconhecido"
-# keyring == molho ???
#: util/errors.c:66
msgid "can't open the keyring"
msgstr "n�o � poss�vel abrir o chaveiro"
@@ -156,7 +155,6 @@ msgstr "erro na abertura de arquivo"
msgid "file create error"
msgstr "erro na cria��o de arquivo"
-# frase secreta ???
#: util/errors.c:79
msgid "invalid passphrase"
msgstr "frase secreta inv�lida"
@@ -249,21 +247,77 @@ msgstr "erro na rede"
msgid "not encrypted"
msgstr "n�o criptografado"
-#: util/logger.c:218
+#: util/errors.c:103
+msgid "not processed"
+msgstr "n�o processado(s)"
+
+#: util/logger.c:224
#, c-format
msgid "... this is a bug (%s:%d:%s)\n"
msgstr "... isto � um bug (%s:%d:%s)\n"
-#: util/logger.c:224
+#: util/logger.c:230
#, c-format
msgid "you found a bug ... (%s:%d)\n"
msgstr "voc� encontrou um bug ... (%s:%d)\n"
-#: cipher/random.c:452
+#: cipher/random.c:311 g10/import.c:127 g10/keygen.c:1150
+#, c-format
+msgid "can't open `%s': %s\n"
+msgstr "imposs�vel abrir `%s': %s\n"
+
+#: cipher/random.c:315
+#, fuzzy, c-format
+msgid "can't stat `%s': %s\n"
+msgstr "imposs�vel abrir `%s': %s\n"
+
+#: cipher/random.c:320
+#, c-format
+msgid "`%s' is not a regular file - ignored\n"
+msgstr ""
+
+#: cipher/random.c:325
+msgid "note: random_seed file is empty\n"
+msgstr ""
+
+#: cipher/random.c:331
+msgid "warning: invalid size of random_seed file - not used\n"
+msgstr ""
+
+#: cipher/random.c:339
+#, fuzzy, c-format
+msgid "can't read `%s': %s\n"
+msgstr "imposs�vel abrir `%s': %s\n"
+
+#: cipher/random.c:377
+msgid "note: random_seed file not updated\n"
+msgstr ""
+
+#: cipher/random.c:397
+#, fuzzy, c-format
+msgid "can't create `%s': %s\n"
+msgstr "imposs�vel criar %s: %s\n"
+
+#: cipher/random.c:404
+#, fuzzy, c-format
+msgid "can't write `%s': %s\n"
+msgstr "imposs�vel abrir `%s': %s\n"
+
+#: cipher/random.c:407
+#, fuzzy, c-format
+msgid "can't close `%s': %s\n"
+msgstr "imposs�vel abrir `%s': %s\n"
+
+#: cipher/random.c:418
+#, c-format
+msgid "too many random bits requested; the limit is %d\n"
+msgstr ""
+
+#: cipher/random.c:647
msgid "WARNING: using insecure random number generator!!\n"
msgstr "AVISO: usando gerador de n�meros aleat�rios inseguro!\n"
-#: cipher/random.c:453
+#: cipher/random.c:648
msgid ""
"The random number generator is only a kludge to let\n"
"it run - it is in no way a strong RNG!\n"
@@ -277,7 +331,7 @@ msgstr ""
"N�O USE NENHUM DADO GERADO POR ESTE PROGRAMA!\n"
"\n"
-#: cipher/rndlinux.c:135
+#: cipher/rndlinux.c:141
#, c-format
msgid ""
"\n"
@@ -289,7 +343,7 @@ msgstr ""
"para que o sistema possa coletar mais entropia!\n"
"(S�o necess�rios mais %d bytes)\n"
-#: g10/g10.c:185
+#: g10/g10.c:195
msgid ""
"@Commands:\n"
" "
@@ -297,140 +351,144 @@ msgstr ""
"@Comandos:\n"
" "
-#: g10/g10.c:187
+#: g10/g10.c:197
msgid "|[file]|make a signature"
msgstr "|[arquivo]|fazer uma assinatura"
-#: g10/g10.c:188
+#: g10/g10.c:198
msgid "|[file]|make a clear text signature"
msgstr "|[arquivo]|fazer uma assinatura em texto puro"
-#: g10/g10.c:189
+#: g10/g10.c:199
msgid "make a detached signature"
msgstr "fazer uma assinatura separada"
-#: g10/g10.c:190
+#: g10/g10.c:200
msgid "encrypt data"
msgstr "criptografar dados"
-#: g10/g10.c:191
+#: g10/g10.c:201
msgid "encryption only with symmetric cipher"
msgstr ""
"criptografar apenas com criptografia\n"
"sim�trica"
-#: g10/g10.c:192
+#: g10/g10.c:202
msgid "store only"
msgstr "apenas armazenar"
-#: g10/g10.c:193
+#: g10/g10.c:203
msgid "decrypt data (default)"
msgstr "descriptografar dados (padr�o)"
-#: g10/g10.c:194
+#: g10/g10.c:204
msgid "verify a signature"
msgstr "verificar uma assinatura"
-#: g10/g10.c:195
+#: g10/g10.c:206
msgid "list keys"
msgstr "listar as chaves"
-#: g10/g10.c:197
+#: g10/g10.c:208
msgid "list keys and signatures"
msgstr "listar as chaves e as assinaturas"
-#: g10/g10.c:198
+#: g10/g10.c:209
msgid "check key signatures"
msgstr "verificar as assinaturas das chaves"
-#: g10/g10.c:199
+#: g10/g10.c:210
msgid "list keys and fingerprints"
msgstr "listar as chaves e as impress�es digitais"
-#: g10/g10.c:200
+#: g10/g10.c:211
msgid "list secret keys"
msgstr "listar as chaves secretas"
-#: g10/g10.c:201
+#: g10/g10.c:212
msgid "generate a new key pair"
msgstr "gerar um novo par de chaves"
-#: g10/g10.c:202
+#: g10/g10.c:213
msgid "remove key from the public keyring"
msgstr "remover a chave do chaveiro p�blico"
-#: g10/g10.c:203
+#: g10/g10.c:215
+msgid "remove key from the secret keyring"
+msgstr "remover a chave do chaveiro secreto"
+
+#: g10/g10.c:216
msgid "sign a key"
msgstr "assinar uma chave"
-#: g10/g10.c:204
+#: g10/g10.c:217
msgid "sign a key locally"
msgstr "assinar uma chave localmente"
-#: g10/g10.c:205
+#: g10/g10.c:218
msgid "sign or edit a key"
msgstr "assinar ou editar uma chave"
-#: g10/g10.c:206
+#: g10/g10.c:219
msgid "generate a revocation certificate"
msgstr "gerar um certificado de revoga��o"
-#: g10/g10.c:207
+#: g10/g10.c:220
msgid "export keys"
msgstr "exportar chaves"
-#: g10/g10.c:208
+#: g10/g10.c:221
msgid "export keys to a key server"
msgstr "exportar chaves para um servidor"
-#: g10/g10.c:209
+#: g10/g10.c:222
msgid "import keys from a key server"
msgstr "importar chaves de um servidor"
-#: g10/g10.c:212
+#: g10/g10.c:226
msgid "import/merge keys"
msgstr "importar/fundir chaves"
-#: g10/g10.c:214
+#: g10/g10.c:228
msgid "list only the sequence of packets"
msgstr "listar apenas as seq��ncias de pacotes"
# ownertrust ???
-#: g10/g10.c:216
+#: g10/g10.c:230
msgid "export the ownertrust values"
msgstr "exportar os valores de confian�a"
-#: g10/g10.c:218
+#: g10/g10.c:232
msgid "import ownertrust values"
msgstr "importar os valores de confian�a"
-#: g10/g10.c:220
+#: g10/g10.c:234
msgid "update the trust database"
msgstr "atualizar o banco de dados de confiabilidade"
-#: g10/g10.c:222
+#: g10/g10.c:236
msgid "|[NAMES]|check the trust database"
msgstr "|[NOMES]|verificar o banco de dados de confiabilidade"
-#: g10/g10.c:223
+#: g10/g10.c:237
msgid "fix a corrupted trust database"
msgstr ""
"consertar um banco de dados de confiabilidade\n"
"danificado"
-#: g10/g10.c:224
+#: g10/g10.c:238
msgid "De-Armor a file or stdin"
msgstr "retirar a armadura de um arquivo ou de \"stdin\""
-#: g10/g10.c:225
+#: g10/g10.c:240
msgid "En-Armor a file or stdin"
msgstr "criar armadura para um arquivo ou \"stdin\""
-#: g10/g10.c:226
+#: g10/g10.c:242
msgid "|algo [files]|print message digests"
msgstr "|algo [arquivos]|imprimir \"digests\" de mensagens"
-#: g10/g10.c:230
+#: g10/g10.c:246
msgid ""
"@\n"
"Options:\n"
@@ -440,185 +498,171 @@ msgstr ""
"Op��es:\n"
" "
-#: g10/g10.c:232
+#: g10/g10.c:248
msgid "create ascii armored output"
msgstr "criar sa�da com armadura ascii"
-#: g10/g10.c:233
+#: g10/g10.c:250
msgid "|NAME|encrypt for NAME"
msgstr "|NOME|criptografar para NOME"
-#: g10/g10.c:236
+#: g10/g10.c:253
msgid "|NAME|use NAME as default recipient"
msgstr "|NOME|usar NOME como destinat�rio padr�o"
-#: g10/g10.c:238
+#: g10/g10.c:255
msgid "use the default key as default recipient"
msgstr "usar a chave padr�o como destinat�rio padr�o"
-#: g10/g10.c:242
+#: g10/g10.c:259
msgid "use this user-id to sign or decrypt"
msgstr ""
"usar este identificador de usu�rio para\n"
"assinar ou descriptografar"
-#: g10/g10.c:243
+#: g10/g10.c:260
msgid "|N|set compress level N (0 disables)"
msgstr ""
"|N|estabelecer n�vel de compress�o N\n"
"(0 desabilita)"
-#: g10/g10.c:245
+#: g10/g10.c:262
msgid "use canonical text mode"
msgstr "usar modo de texto can�nico"
-#: g10/g10.c:246
+#: g10/g10.c:263
msgid "use as output file"
msgstr "usar como arquivo de sa�da"
-#: g10/g10.c:247
+#: g10/g10.c:264
msgid "verbose"
msgstr "detalhado"
-#: g10/g10.c:248
+#: g10/g10.c:265
msgid "be somewhat more quiet"
msgstr "ser mais silencioso"
-#: g10/g10.c:249
+#: g10/g10.c:266
msgid "don't use the terminal at all"
msgstr "nunca usar o terminal"
-#: g10/g10.c:250
+#: g10/g10.c:267
msgid "force v3 signatures"
msgstr "for�ar assinaturas v3"
-#: g10/g10.c:251
+#: g10/g10.c:268
msgid "always use a MDC for encryption"
msgstr "sempre usar um MDC para criptografar"
-#: g10/g10.c:252
+#: g10/g10.c:269
msgid "do not make any changes"
msgstr "n�o fazer altera��es"
#. { oInteractive, "interactive", 0, N_("prompt before overwriting") },
-#: g10/g10.c:254
+#: g10/g10.c:271
msgid "batch mode: never ask"
msgstr "modo n�o-interativo: nunca perguntar"
-#: g10/g10.c:255
+#: g10/g10.c:272
msgid "assume yes on most questions"
msgstr "assumir sim para a maioria das perguntas"
-#: g10/g10.c:256
+#: g10/g10.c:273
msgid "assume no on most questions"
msgstr "assumir n�o para a maioria das perguntas"
-#: g10/g10.c:257
+#: g10/g10.c:274
msgid "add this keyring to the list of keyrings"
msgstr "adicionar este chaveiro � lista de chaveiros"
-#: g10/g10.c:258
+#: g10/g10.c:275
msgid "add this secret keyring to the list"
msgstr "adicionar este chaveiro secreto � lista"
-#: g10/g10.c:259
+#: g10/g10.c:276
msgid "|NAME|use NAME as default secret key"
msgstr "|NOME|usar NOME como chave secreta padr�o"
-#: g10/g10.c:260
+#: g10/g10.c:277
msgid "|HOST|use this keyserver to lookup keys"
msgstr "|ENDERE�O|usar este servidor para buscar chaves"
-#: g10/g10.c:261
+#: g10/g10.c:278
msgid "|NAME|set terminal charset to NAME"
msgstr ""
"|NOME|definir mapa de caracteres do terminal como\n"
"NOME"
-#: g10/g10.c:262
+#: g10/g10.c:279
msgid "read options from file"
msgstr "ler op��es do arquivo"
-#: g10/g10.c:264
-msgid "set debugging flags"
-msgstr "definir par�metros de depura��o"
-
-#: g10/g10.c:265
-msgid "enable full debugging"
-msgstr "habilitar depura��o completa"
-
-#: g10/g10.c:266
+#: g10/g10.c:283
msgid "|FD|write status info to this FD"
msgstr ""
"|DA|escrever informa��es de estado para o\n"
"descritor de arquivo DA"
-#: g10/g10.c:267
-msgid "do not write comment packets"
-msgstr "n�o escrever pacotes de coment�rio"
-
-#: g10/g10.c:268
-msgid "(default is 1)"
-msgstr "(o padr�o � 1)"
-
-#: g10/g10.c:269
-msgid "(default is 3)"
-msgstr "(o padr�o � 3)"
-
-#: g10/g10.c:271
+#: g10/g10.c:288
msgid "|FILE|load extension module FILE"
msgstr "|ARQUIVO|carregar m�dulo de extens�o ARQUIVO"
-#: g10/g10.c:272
+#: g10/g10.c:289
msgid "emulate the mode described in RFC1991"
msgstr "emular o modo descrito no RFC1991"
-#: g10/g10.c:273
+#: g10/g10.c:290
msgid "set all packet, cipher and digest options to OpenPGP behavior"
msgstr ""
"configurar todas as op��es de pacote,\n"
"criptografia e \"digest\" para comportamento\n"
"OpenPGP"
-#: g10/g10.c:274
+#: g10/g10.c:291
msgid "|N|use passphrase mode N"
msgstr "|N|usar frase secreta modo N"
-#: g10/g10.c:276
+#: g10/g10.c:293
msgid "|NAME|use message digest algorithm NAME for passphrases"
msgstr ""
"|NOME|usar algoritmo de \"digest\" de mensagens NOME\n"
"para frases secretas"
-#: g10/g10.c:278
+#: g10/g10.c:295
msgid "|NAME|use cipher algorithm NAME for passphrases"
msgstr ""
"|NOME|usar algoritmo de criptografia NOME para\n"
"frases secretas"
-#: g10/g10.c:279
+#: g10/g10.c:296
msgid "|NAME|use cipher algorithm NAME"
msgstr "|NOME|usar algoritmo de criptografia NOME"
-#: g10/g10.c:280
+#: g10/g10.c:297
msgid "|NAME|use message digest algorithm NAME"
msgstr "|NOME|usar algoritmo de \"digest\" de mensagens NOME"
-#: g10/g10.c:281
+#: g10/g10.c:298
msgid "|N|use compress algorithm N"
msgstr "|N|usar algoritmo de compress�o N"
-#: g10/g10.c:282
+#: g10/g10.c:299
msgid "throw keyid field of encrypted packets"
msgstr ""
"eliminar o campo keyid dos pacotes\n"
"criptografados"
-#: g10/g10.c:283
+#: g10/g10.c:300
msgid "|NAME=VALUE|use this notation data"
msgstr "|NOME=VALOR|usar estes dados de nota��o"
-#: g10/g10.c:285
+#: g10/g10.c:303
+msgid ""
+"@\n"
+"(See the man page for a complete listing of all commands and options)\n"
+msgstr ""
+
+#: g10/g10.c:306
msgid ""
"@\n"
"Examples:\n"
@@ -638,15 +682,15 @@ msgstr ""
" --list-keys [nomes] mostrar chaves\n"
" --fingerprint [nomes] mostrar impress�es digitais\n"
-#: g10/g10.c:370
+#: g10/g10.c:399
msgid "Please report bugs to <[email protected]>.\n"
msgstr "Por favor comunique bugs para <[email protected]>.\n"
-#: g10/g10.c:374
+#: g10/g10.c:403
msgid "Usage: gpg [options] [files] (-h for help)"
msgstr "Uso: gpg [op��es] [arquivos] (-h para ajuda)"
-#: g10/g10.c:377
+#: g10/g10.c:406
msgid ""
"Syntax: gpg [options] [files]\n"
"sign, check, encrypt or decrypt\n"
@@ -656,7 +700,7 @@ msgstr ""
"assina, verifica, criptografa ou descriptografa\n"
"a opera��o padr�o depende dos dados de entrada\n"
-#: g10/g10.c:382
+#: g10/g10.c:413
msgid ""
"\n"
"Supported algorithms:\n"
@@ -664,185 +708,185 @@ msgstr ""
"\n"
"Algoritmos suportados:\n"
-#: g10/g10.c:456
+#: g10/g10.c:492
msgid "usage: gpg [options] "
msgstr "uso: gpg [op��es] "
-#: g10/g10.c:509
+#: g10/g10.c:545
msgid "conflicting commands\n"
msgstr "comandos conflitantes\n"
-#: g10/g10.c:644
+#: g10/g10.c:687
#, c-format
msgid "NOTE: no default option file `%s'\n"
msgstr "NOTA: arquivo de op��es padr�o `%s' inexistente\n"
-#: g10/g10.c:648
+#: g10/g10.c:691
#, c-format
msgid "option file `%s': %s\n"
msgstr "arquivo de op��es `%s': %s\n"
-#: g10/g10.c:655
+#: g10/g10.c:698
#, c-format
msgid "reading options from `%s'\n"
msgstr "lendo op��es de `%s'\n"
-#: g10/g10.c:835
+#: g10/g10.c:885
#, c-format
msgid "%s is not a valid character set\n"
msgstr "%s n�o � um conjunto de caracteres v�lido\n"
-#: g10/g10.c:892 g10/g10.c:901
+#: g10/g10.c:945 g10/g10.c:954
#, c-format
msgid "NOTE: %s is not for normal use!\n"
msgstr "NOTA: %s n�o � para uso normal!\n"
-#: g10/g10.c:894
+#: g10/g10.c:947
#, c-format
msgid "%s not allowed with %s!\n"
msgstr "%s n�o � permitido com %s!\n"
-#: g10/g10.c:897
+#: g10/g10.c:950
#, c-format
msgid "%s makes no sense with %s!\n"
msgstr "%s n�o faz sentido com %s!\n"
-#: g10/g10.c:916 g10/g10.c:928
+#: g10/g10.c:969 g10/g10.c:981
msgid "selected cipher algorithm is invalid\n"
msgstr "o algoritmo de criptografia selecionado n�o � v�lido\n"
-#: g10/g10.c:922 g10/g10.c:934
+#: g10/g10.c:975 g10/g10.c:987
msgid "selected digest algorithm is invalid\n"
msgstr "o algoritmo de \"digest\" selecionado n�o � v�lido\n"
-#: g10/g10.c:938
+#: g10/g10.c:991
msgid "the given policy URL is invalid\n"
msgstr "a URL de pol�tica dada � inv�lida\n"
-#: g10/g10.c:941
+#: g10/g10.c:994
#, c-format
msgid "compress algorithm must be in range %d..%d\n"
msgstr "o algoritmo de compress�o deve estar na faixa %d..%d\n"
-#: g10/g10.c:943
+#: g10/g10.c:996
msgid "completes-needed must be greater than 0\n"
msgstr "completes-needed deve ser maior que 0\n"
-#: g10/g10.c:945
+#: g10/g10.c:998
msgid "marginals-needed must be greater than 1\n"
msgstr "marginals-needed deve ser maior que 1\n"
-#: g10/g10.c:947
+#: g10/g10.c:1000
msgid "max-cert-depth must be in range 1 to 255\n"
msgstr "max-cert-depth deve estar na entre 1 e 255\n"
-#: g10/g10.c:950
+#: g10/g10.c:1003
msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
msgstr "NOTA: o modo S2K simples (0) n�o � recomend�vel\n"
-#: g10/g10.c:954
+#: g10/g10.c:1007
msgid "invalid S2K mode; must be 0, 1 or 3\n"
msgstr "modo S2K inv�lido: deve ser 0, 1 ou 3\n"
-#: g10/g10.c:1031
+#: g10/g10.c:1092
#, c-format
msgid "failed to initialize the TrustDB: %s\n"
msgstr "falha ao inicializar o banco de dados de confiabilidade: %s\n"
-#: g10/g10.c:1037
+#: g10/g10.c:1098
msgid "--store [filename]"
msgstr "--store [nome_do_arquivo]"
-#: g10/g10.c:1044
+#: g10/g10.c:1105
msgid "--symmetric [filename]"
msgstr "--symmetric [nome_do_arquivo]"
-#: g10/g10.c:1052
+#: g10/g10.c:1113
msgid "--encrypt [filename]"
msgstr "--encrypt [nome_do_arquivo]"
-#: g10/g10.c:1065
+#: g10/g10.c:1126
msgid "--sign [filename]"
msgstr "--sign [nome_do_arquivo]"
-#: g10/g10.c:1078
+#: g10/g10.c:1139
msgid "--sign --encrypt [filename]"
msgstr "--sign --encrypt [nome_do_arquivo]"
-#: g10/g10.c:1092
+#: g10/g10.c:1153
msgid "--clearsign [filename]"
msgstr "--clearsign [nome_do_arquivo]"
-#: g10/g10.c:1104
+#: g10/g10.c:1170
msgid "--decrypt [filename]"
msgstr "--decrypt [nome_do_arquivo]"
-#: g10/g10.c:1112
+#: g10/g10.c:1178
msgid "--sign-key user-id"
msgstr "--sign-key id-usu�rio"
-#: g10/g10.c:1120
+#: g10/g10.c:1186
msgid "--lsign-key user-id"
msgstr "--lsign-key id-usu�rio"
-#: g10/g10.c:1128
+#: g10/g10.c:1194
msgid "--edit-key user-id [commands]"
msgstr "--edit-key id-usu�rio [comandos]"
-#: g10/g10.c:1144
+#: g10/g10.c:1210
msgid "--delete-secret-key user-id"
msgstr "--delete-secret-key id-usu�rio"
-#: g10/g10.c:1147
+#: g10/g10.c:1213
msgid "--delete-key user-id"
msgstr "--delete-key id-usu�rio"
-#: g10/encode.c:259 g10/g10.c:1171 g10/sign.c:366
+#: g10/encode.c:260 g10/g10.c:1250 g10/sign.c:373
#, c-format
msgid "can't open %s: %s\n"
msgstr "imposs�vel abrir %s: %s\n"
-#: g10/g10.c:1182
+#: g10/g10.c:1265
msgid "-k[v][v][v][c] [user-id] [keyring]"
msgstr "-k[v][v][v][c] [id-usu�rio] [chaveiro]"
-#: g10/g10.c:1243
+#: g10/g10.c:1331
#, c-format
msgid "dearmoring failed: %s\n"
msgstr "retirada de armadura falhou: %s\n"
-#: g10/g10.c:1251
+#: g10/g10.c:1339
#, c-format
msgid "enarmoring failed: %s\n"
msgstr "cria��o de armadura falhou: %s\n"
# "hash" poderia ser "espalhamento", mas n�o fica claro
-#: g10/g10.c:1319
+#: g10/g10.c:1407
#, c-format
msgid "invalid hash algorithm `%s'\n"
msgstr "algoritmo de hash inv�lido `%s'\n"
-#: g10/g10.c:1400
+#: g10/g10.c:1488
msgid "[filename]"
msgstr "[nome_do_arquivo]"
-#: g10/g10.c:1404
+#: g10/g10.c:1492
msgid "Go ahead and type your message ...\n"
msgstr "V� em frente e digite sua mensagem ...\n"
-#: g10/decrypt.c:59 g10/g10.c:1407 g10/verify.c:66
+#: g10/decrypt.c:59 g10/g10.c:1495 g10/verify.c:68 g10/verify.c:113
#, c-format
msgid "can't open `%s'\n"
msgstr "imposs�vel abrir `%s'\n"
-#: g10/g10.c:1576
+#: g10/g10.c:1665
msgid ""
"the first character of a notation name must be a letter or an underscore\n"
msgstr ""
"o primeiro caractere de um nome de nota��o deve ser uma letra ou um "
"sublinhado\n"
-#: g10/g10.c:1582
+#: g10/g10.c:1671
msgid ""
"a notation name must have only letters, digits, dots or underscores and end "
"with an '='\n"
@@ -850,84 +894,88 @@ msgstr ""
"um nome de nota��o deve ter apenas letras, d�gitos, pontos ou sublinhados e "
"terminar com '='\n"
-#: g10/g10.c:1588
+#: g10/g10.c:1677
msgid "dots in a notation name must be surrounded by other characters\n"
msgstr ""
"pontos em um nome de nota��o devem estar cercados por outros caracteres\n"
-#: g10/g10.c:1596
+#: g10/g10.c:1685
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"
-#: g10/armor.c:296
+#: g10/armor.c:302
#, c-format
msgid "armor: %s\n"
msgstr "armadura: %s\n"
-#: g10/armor.c:319
+#: g10/armor.c:331
msgid "invalid armor header: "
msgstr "cabe�alho de armadura inv�lido: "
-#: g10/armor.c:326
+#: g10/armor.c:338
msgid "armor header: "
msgstr "cabe�alho de armadura: "
-#: g10/armor.c:337
+#: g10/armor.c:349
msgid "invalid clearsig header\n"
msgstr "cabe�alho de assinatura em texto puro inv�lido\n"
-#: g10/armor.c:389
+#: g10/armor.c:401
msgid "nested clear text signatures\n"
msgstr "assinaturas em texto puro aninhadas\n"
-#: g10/armor.c:500
+#: g10/armor.c:525
msgid "invalid dash escaped line: "
msgstr "linha com h�fen inv�lida: "
-#: g10/armor.c:512
+#: g10/armor.c:537
msgid "unexpected armor:"
msgstr "armadura inesperada:"
-#: g10/armor.c:629
+#: g10/armor.c:654
#, c-format
msgid "invalid radix64 character %02x skipped\n"
msgstr "caractere radix64 inv�lido %02x ignorado\n"
-#: g10/armor.c:672
+#: g10/armor.c:697
msgid "premature eof (no CRC)\n"
msgstr "fim de arquivo prematuro (sem CRC)\n"
-#: g10/armor.c:706
+#: g10/armor.c:731
msgid "premature eof (in CRC)\n"
msgstr "fim de arquivo prematuro (no CRC)\n"
-#: g10/armor.c:710
+#: g10/armor.c:735
msgid "malformed CRC\n"
msgstr "CRC malformado\n"
-#: g10/armor.c:714
+#: g10/armor.c:739
#, c-format
msgid "CRC error; %06lx - %06lx\n"
msgstr "erro de CRC; %06lx - %06lx\n"
-#: g10/armor.c:731
+#: g10/armor.c:756
msgid "premature eof (in Trailer)\n"
msgstr "fim de arquivo prematuro (no \"Trailer\")\n"
-#: g10/armor.c:735
+#: g10/armor.c:760
msgid "error in trailer line\n"
msgstr "erro na linha \"trailer\"\n"
-#: g10/armor.c:1001
+#: g10/armor.c:912
+msgid "For info see http://www.gnupg.org"
+msgstr ""
+
+#: g10/armor.c:1033
msgid "no valid OpenPGP data found.\n"
msgstr "nenhum dado OpenPGP v�lido encontrado.\n"
-#: g10/armor.c:1005
+#: g10/armor.c:1038
#, c-format
msgid "invalid armor: line longer than %d characters\n"
msgstr "armadura inv�lida: linha maior que %d caracteres\n"
-#: g10/armor.c:1009
+#: g10/armor.c:1042
msgid ""
"quoted printable character in armor - probably a buggy MTA has been used\n"
msgstr ""
@@ -944,13 +992,42 @@ msgstr " Impress�o digital:"
msgid "Fingerprint:"
msgstr "Impress�o digital:"
-# ???
+#: g10/pkclist.c:116
+msgid "No reason specified"
+msgstr ""
+
+#: g10/pkclist.c:118
+#, fuzzy
+msgid "Key is superseeded"
+msgstr "A chave � protegida.\n"
+
+#: g10/pkclist.c:120
+#, fuzzy
+msgid "Key has been compromised"
+msgstr "Esta chave foi desativada"
+
+#: g10/pkclist.c:122
+msgid "Key is no longer used"
+msgstr ""
+
+#: g10/pkclist.c:124
+msgid "User ID is no longer valid"
+msgstr ""
+
+#: g10/pkclist.c:128
+msgid "Reason for revocation: "
+msgstr ""
+
+#: g10/pkclist.c:145
+msgid "Revocation comment: "
+msgstr ""
+
#. a string with valid answers
-#: g10/pkclist.c:197
+#: g10/pkclist.c:303
msgid "sSmMqQ"
-msgstr ""
+msgstr "sSmMqQ"
-#: g10/pkclist.c:201
+#: g10/pkclist.c:307
#, c-format
msgid ""
"No trust value assigned to %lu:\n"
@@ -959,7 +1036,7 @@ msgstr ""
"Nenhum valor de confian�a designado para %lu:\n"
"%4u%c/%08lX %s \""
-#: g10/pkclist.c:213
+#: g10/pkclist.c:319
msgid ""
"Please decide how far you trust this user to correctly\n"
"verify other users' keys (by looking at passports,\n"
@@ -982,23 +1059,23 @@ msgstr ""
" 4 = Eu confio completamente\n"
" s = Mostrar mais informa��es\n"
-#: g10/pkclist.c:222
+#: g10/pkclist.c:328
msgid " m = back to the main menu\n"
-msgstr " m = volta ao menu principal\n"
+msgstr " m = voltar ao menu principal\n"
-#: g10/pkclist.c:224
+#: g10/pkclist.c:330
msgid " q = quit\n"
msgstr " q = sair\n"
-#: g10/pkclist.c:230
+#: g10/pkclist.c:336
msgid "Your decision? "
msgstr "Sua decis�o? "
-#: g10/pkclist.c:252
+#: g10/pkclist.c:358
msgid "Certificates leading to an ultimately trusted key:\n"
msgstr "Certificados que levam a uma chave confiada plenamente:\n"
-#: g10/pkclist.c:323
+#: g10/pkclist.c:429
msgid ""
"Could not find a valid trust path to the key. Let's see whether we\n"
"can assign some missing owner trust values.\n"
@@ -1008,13 +1085,13 @@ msgstr ""
"Vamos ver se � poss�vel designar alguns valores de confian�a ausentes.\n"
"\n"
-#: g10/pkclist.c:329
+#: g10/pkclist.c:435
msgid ""
"No path leading to one of our keys found.\n"
"\n"
msgstr "Nenhuma rota encontrada que leve a uma de nossas chaves.\n"
-#: g10/pkclist.c:331
+#: g10/pkclist.c:437
msgid ""
"No certificates with undefined trust found.\n"
"\n"
@@ -1022,7 +1099,7 @@ msgstr ""
"Nenhum certificado com confian�a indefinida encontrado.\n"
"\n"
-#: g10/pkclist.c:333
+#: g10/pkclist.c:439
msgid ""
"No trust values changed.\n"
"\n"
@@ -1030,36 +1107,36 @@ msgstr ""
"Nenhum valor de confian�a modificado.\n"
"\n"
-#: g10/pkclist.c:350
+#: g10/pkclist.c:457
#, c-format
msgid "key %08lX: key has been revoked!\n"
msgstr "chave %08lX: a chave foi revogada!\n"
-#: g10/pkclist.c:356 g10/pkclist.c:366 g10/pkclist.c:475
+#: g10/pkclist.c:464 g10/pkclist.c:476 g10/pkclist.c:598
msgid "Use this key anyway? "
msgstr "Usa esta chave de qualquer modo? "
-#: g10/pkclist.c:360
+#: g10/pkclist.c:469
#, c-format
msgid "key %08lX: subkey has been revoked!\n"
msgstr "chave %08lX: a subchave foi revogada!\n"
-#: g10/pkclist.c:390
+#: g10/pkclist.c:512
#, c-format
msgid "%08lX: key has expired\n"
msgstr "%08lX: a chave expirou\n"
-#: g10/pkclist.c:396
+#: g10/pkclist.c:518
#, c-format
msgid "%08lX: no info to calculate a trust probability\n"
msgstr "%08lX: sem informa��o para calcular probabilidade de confian�a\n"
-#: g10/pkclist.c:410
+#: g10/pkclist.c:533
#, c-format
msgid "%08lX: We do NOT trust this key\n"
msgstr "%08lX: N�s N�O confiamos nesta chave\n"
-#: g10/pkclist.c:416
+#: g10/pkclist.c:539
#, c-format
msgid ""
"%08lX: It is not sure that this key really belongs to the owner\n"
@@ -1068,15 +1145,15 @@ msgstr ""
"%08lX: N�o se tem certeza de que esta chave realmente pertence ao dono,\n"
"mas � aceita de qualquer modo\n"
-#: g10/pkclist.c:422
+#: g10/pkclist.c:545
msgid "This key probably belongs to the owner\n"
msgstr "Esta chave provavelmente pertence ao dono\n"
-#: g10/pkclist.c:427
+#: g10/pkclist.c:550
msgid "This key belongs to us\n"
msgstr "Esta chave pertence a n�s\n"
-#: g10/pkclist.c:470
+#: g10/pkclist.c:593
msgid ""
"It is NOT certain that the key belongs to its owner.\n"
"If you *really* know what you are doing, you may answer\n"
@@ -1088,65 +1165,65 @@ msgstr ""
"sim � pr�xima pergunta\n"
"\n"
-#: g10/pkclist.c:484 g10/pkclist.c:507
+#: g10/pkclist.c:607 g10/pkclist.c:630
msgid "WARNING: Using untrusted key!\n"
msgstr "AVISO: Usando chave n�o confi�vel!\n"
-#: g10/pkclist.c:528
+#: g10/pkclist.c:651
msgid "WARNING: This key has been revoked by its owner!\n"
msgstr "AVISO: Esta chave foi revogada pelo seu dono!\n"
-#: g10/pkclist.c:529
+#: g10/pkclist.c:652
msgid " This could mean that the signature is forgery.\n"
-msgstr " Isto pode significar que a assinatura � falsificada.\n"
+msgstr " Isto pode significar que a assinatura � falsificada.\n"
-#: g10/pkclist.c:533
+#: g10/pkclist.c:657
msgid "WARNING: This subkey has been revoked by its owner!\n"
msgstr "AVISO: Esta subchave foi revogada pelo seu dono!\n"
-#: g10/pkclist.c:554
+#: g10/pkclist.c:679
msgid "Note: This key has expired!\n"
msgstr "Nota: Esta chave expirou!\n"
-#: g10/pkclist.c:562
+#: g10/pkclist.c:687
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"
-#: g10/pkclist.c:564
+#: g10/pkclist.c:689
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"
-#: g10/pkclist.c:581
+#: g10/pkclist.c:706
msgid "WARNING: We do NOT trust this key!\n"
msgstr "AVISO: N�s N�O confiamos nesta chave!\n"
-#: g10/pkclist.c:582
+#: g10/pkclist.c:707
msgid " The signature is probably a FORGERY.\n"
-msgstr " A assinatura � provavelmente uma FALSIFICA��O.\n"
+msgstr " A assinatura � provavelmente uma FALSIFICA��O.\n"
-#: g10/pkclist.c:589
+#: g10/pkclist.c:714
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"
-#: g10/pkclist.c:592
+#: g10/pkclist.c:717
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"
-#: g10/pkclist.c:694 g10/pkclist.c:716 g10/pkclist.c:841 g10/pkclist.c:886
+#: g10/pkclist.c:819 g10/pkclist.c:841 g10/pkclist.c:967 g10/pkclist.c:1012
#, c-format
msgid "%s: skipped: %s\n"
msgstr "%s: ignorado: %s\n"
-#: g10/pkclist.c:702 g10/pkclist.c:868
+#: g10/pkclist.c:827 g10/pkclist.c:994
#, c-format
msgid "%s: skipped: public key already present\n"
msgstr "%s: ignorado: a chave p�blica j� est� presente\n"
-#: g10/pkclist.c:729
+#: g10/pkclist.c:854
msgid ""
"You did not specify a user ID. (you may use \"-r\")\n"
"\n"
@@ -1154,98 +1231,101 @@ msgstr ""
"Voc� n�o especificou um identificador de usu�rio. (pode-se usar \"-r\")\n"
"\n"
-#: g10/pkclist.c:739
+#: g10/pkclist.c:864
msgid "Enter the user ID: "
msgstr "Digite o identificador de usu�rio: "
-#: g10/pkclist.c:751
+#: g10/pkclist.c:876
msgid "No such user ID.\n"
msgstr "Identificador de usu�rio inexistente.\n"
-#: g10/pkclist.c:756
-#, fuzzy
+#: g10/pkclist.c:881
msgid "skipped: public key already set as default recipient\n"
-msgstr "%s: ignorado: a chave p�blica j� est� presente\n"
+msgstr "ignorado: chave p�blica j� marcada como destinat�rio padr�o\n"
-#: g10/pkclist.c:778
+#: g10/pkclist.c:904
msgid "Public key is disabled.\n"
msgstr "A chave p�blica est� desativada.\n"
-#: g10/pkclist.c:785
-#, fuzzy
+#: g10/pkclist.c:911
msgid "skipped: public key already set with --encrypt-to\n"
-msgstr "%s: ignorado: a chave p�blica j� est� presente\n"
+msgstr "ignorado: chave p�blica j� marcada com --encrypt-to\n"
-#: g10/pkclist.c:816
+#: g10/pkclist.c:942
#, c-format
msgid "unknown default recipient `%s'\n"
msgstr "destinat�rio padr�o desconhecido `%s'\n"
-#: g10/pkclist.c:849
+#: g10/pkclist.c:975
#, c-format
msgid "%s: error checking key: %s\n"
msgstr "%s: erro na verifica��o da chave: %s\n"
-#: g10/pkclist.c:854
+#: g10/pkclist.c:980
#, c-format
msgid "%s: skipped: public key is disabled\n"
msgstr "%s: ignorado: a chave p�blica est� desativada\n"
-#: g10/pkclist.c:892
+#: g10/pkclist.c:1018
msgid "no valid addressees\n"
msgstr "nenhum endere�o v�lido\n"
-#: g10/keygen.c:122
+#: g10/keygen.c:175
msgid "writing self signature\n"
msgstr "escrevendo auto-assinatura\n"
# key binding ???
-#: g10/keygen.c:160
+#: g10/keygen.c:213
msgid "writing key binding signature\n"
msgstr "escrevendo assinatura ligada a uma chave\n"
-#: g10/keygen.c:386
+#: g10/keygen.c:261 g10/keygen.c:345
+#, fuzzy, c-format
+msgid "keysize invalid; using %u bits\n"
+msgstr "O tamanho de chave pedido � %u bits\n"
+
+#: g10/keygen.c:266 g10/keygen.c:350
+#, fuzzy, c-format
+msgid "keysize rounded up to %u bits\n"
+msgstr "arredondado para %u bits\n"
+
+#: g10/keygen.c:456
msgid "Please select what kind of key you want:\n"
msgstr "Por favor selecione o tipo de chave desejado:\n"
-#: g10/keygen.c:388
+#: g10/keygen.c:458
#, c-format
msgid " (%d) DSA and ElGamal (default)\n"
msgstr " (%d) DSA e ElGamal (padr�o)\n"
-#: g10/keygen.c:389
+#: g10/keygen.c:459
#, c-format
msgid " (%d) DSA (sign only)\n"
msgstr " (%d) DSA (apenas assinatura)\n"
-#: g10/keygen.c:391
+#: g10/keygen.c:461
#, c-format
msgid " (%d) ElGamal (encrypt only)\n"
msgstr " (%d) ElGamal (apenas criptografia)\n"
-#: g10/keygen.c:392
+#: g10/keygen.c:462
#, c-format
msgid " (%d) ElGamal (sign and encrypt)\n"
msgstr " (%d) ElGamal (assinatura e criptografia)\n"
-#: g10/keygen.c:394
-#, c-format
-msgid " (%d) ElGamal in a v3 packet\n"
-msgstr " (%d) ElGamal em um pacote v3\n"
-
-#: g10/keygen.c:399
+#: g10/keygen.c:465
msgid "Your selection? "
msgstr "Sua op��o? "
-#: g10/keygen.c:409
+#: g10/keygen.c:475
msgid "Do you really want to create a sign and encrypt key? "
msgstr "Voc� realmente quer criar uma chave para assinatura e criptografia? "
-#: g10/keygen.c:430
+#: g10/keygen.c:489
msgid "Invalid selection.\n"
msgstr "Op��o inv�lida.\n"
-#: g10/keygen.c:442
+#: g10/keygen.c:501
#, c-format
msgid ""
"About to generate a new %s keypair.\n"
@@ -1258,15 +1338,15 @@ msgstr ""
" tamanho padr�o � 1024 bits\n"
" tamanho m�ximo sugerido � 2048 bits\n"
-#: g10/keygen.c:449
+#: g10/keygen.c:508
msgid "What keysize do you want? (1024) "
msgstr "Que tamanho de chave voc� quer? (1024) "
-#: g10/keygen.c:454
+#: g10/keygen.c:513
msgid "DSA only allows keysizes from 512 to 1024\n"
msgstr "DSA permite apenas tamanhos de 512 a 1024\n"
-#: g10/keygen.c:456
+#: g10/keygen.c:515
msgid "keysize too small; 768 is smallest value allowed.\n"
msgstr "tamanho muito pequeno; 768 � o valor m�nimo permitido.\n"
@@ -1278,12 +1358,12 @@ msgstr "tamanho muito pequeno; 768 � o valor m�nimo permitido.\n"
#. * So, before you complain about this limitation, I suggest that
#. * you start a discussion with Marvin about this theme and then
#. * do whatever you want.
-#: g10/keygen.c:466
+#: g10/keygen.c:525
#, c-format
msgid "keysize too large; %d is largest value allowed.\n"
msgstr "tamanho muito grande; %d � o valor m�ximo permitido.\n"
-#: g10/keygen.c:471
+#: g10/keygen.c:530
msgid ""
"Keysizes larger than 2048 are not suggested because\n"
"computations take REALLY long!\n"
@@ -1291,11 +1371,11 @@ msgstr ""
"Tamanhos de chave maiores que 2048 n�o s�o recomendados\n"
"porque o tempo de computa��o � REALMENTE longo!\n"
-#: g10/keygen.c:474
+#: g10/keygen.c:533
msgid "Are you sure that you want this keysize? "
msgstr "Voc� tem certeza de que quer este tamanho de chave? "
-#: g10/keygen.c:475
+#: g10/keygen.c:534
msgid ""
"Okay, but keep in mind that your monitor and keyboard radiation is also very "
"vulnerable to attacks!\n"
@@ -1303,21 +1383,21 @@ msgstr ""
"Tudo bem, mas tenha em mente que a radia��o de seu monitor e teclado tamb�m "
"� vulner�vel a ataques!\n"
-#: g10/keygen.c:483
+#: g10/keygen.c:542
msgid "Do you really need such a large keysize? "
msgstr "Voc� realmente precisa de uma chave t�o grande? "
-#: g10/keygen.c:489
+#: g10/keygen.c:548
#, c-format
msgid "Requested keysize is %u bits\n"
msgstr "O tamanho de chave pedido � %u bits\n"
-#: g10/keygen.c:492 g10/keygen.c:496
+#: g10/keygen.c:551 g10/keygen.c:555
#, c-format
msgid "rounded up to %u bits\n"
msgstr "arredondado para %u bits\n"
-#: g10/keygen.c:509
+#: g10/keygen.c:603
msgid ""
"Please specify how long the key should be valid.\n"
" 0 = key does not expire\n"
@@ -1333,29 +1413,37 @@ msgstr ""
" <n>m = chave expira em n meses\n"
" <n>y = chave expira em n anos\n"
-#: g10/keygen.c:526
+#: g10/keygen.c:618
msgid "Key is valid for? (0) "
msgstr "A chave � valida por? (0) "
-#: g10/keygen.c:547
+#: g10/keygen.c:623
msgid "invalid value\n"
msgstr "valor inv�lido\n"
-#: g10/keygen.c:552
+#: g10/keygen.c:628
msgid "Key does not expire at all\n"
msgstr "A chave n�o expira nunca\n"
#. print the date when the key expires
-#: g10/keygen.c:558
+#: g10/keygen.c:634
#, c-format
msgid "Key expires at %s\n"
msgstr "A chave expira em %s\n"
-#: g10/keygen.c:563
+#: g10/keygen.c:637
+msgid ""
+"Your system can't display dates beyond 2038.\n"
+"However, it will be correctly handled up to 2106.\n"
+msgstr ""
+"Seu sistema n�o consegue mostrar datas al�m de 2038.\n"
+"Apesar disso, elas ser�o corretamente manipuladas at� 2106.\n"
+
+#: g10/keygen.c:642
msgid "Is this correct (y/n)? "
msgstr "Est� correto (s/n)? "
-#: g10/keygen.c:606
+#: g10/keygen.c:685
msgid ""
"\n"
"You need a User-ID to identify your key; the software constructs the user "
@@ -1371,44 +1459,44 @@ msgstr ""
" \"Heinrich Heine (Der Dichter) <[email protected]>\"\n"
"\n"
-#: g10/keygen.c:617
+#: g10/keygen.c:697
msgid "Real name: "
msgstr "Nome completo: "
-#: g10/keygen.c:621
+#: g10/keygen.c:701
msgid "Invalid character in name\n"
msgstr "Caractere inv�lido no nome\n"
-#: g10/keygen.c:623
+#: g10/keygen.c:703
msgid "Name may not start with a digit\n"
msgstr "O nome n�o pode come�ar com um d�gito\n"
-#: g10/keygen.c:625
+#: g10/keygen.c:705
msgid "Name must be at least 5 characters long\n"
msgstr "O nome deve ter pelo menos 5 caracteres\n"
-#: g10/keygen.c:633
+#: g10/keygen.c:713
msgid "Email address: "
msgstr "Endere�o de correio eletr�nico: "
-#: g10/keygen.c:644
+#: g10/keygen.c:724
msgid "Not a valid email address\n"
msgstr "Endere�o eletr�nico inv�lido\n"
-#: g10/keygen.c:652
+#: g10/keygen.c:732
msgid "Comment: "
msgstr "Coment�rio: "
-#: g10/keygen.c:658
+#: g10/keygen.c:738
msgid "Invalid character in comment\n"
msgstr "Caractere inv�lido no coment�rio\n"
-#: g10/keygen.c:680
+#: g10/keygen.c:761
#, c-format
msgid "You are using the `%s' character set.\n"
msgstr "Voc� est� usando o conjunto de caracteres `%s'.\n"
-#: g10/keygen.c:686
+#: g10/keygen.c:767
#, c-format
msgid ""
"You selected this USER-ID:\n"
@@ -1419,15 +1507,28 @@ msgstr ""
" \"%s\"\n"
"\n"
-#: g10/keygen.c:689
+#: g10/keygen.c:771
+msgid "Please don't put the email address into the real name or the comment\n"
+msgstr ""
+
+#: g10/keygen.c:776
msgid "NnCcEeOoQq"
msgstr "NnCcEeOoSs"
-#: g10/keygen.c:699
+#: g10/keygen.c:786
+#, fuzzy
+msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
+msgstr "Muda (N)ome, (C)oment�rio, (E)ndere�o ou (O)k/(S)air? "
+
+#: g10/keygen.c:787
msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
msgstr "Muda (N)ome, (C)oment�rio, (E)ndere�o ou (O)k/(S)air? "
-#: g10/keygen.c:751
+#: g10/keygen.c:806
+msgid "Please correct the error first\n"
+msgstr ""
+
+#: g10/keygen.c:844
msgid ""
"You need a Passphrase to protect your secret key.\n"
"\n"
@@ -1435,11 +1536,11 @@ msgstr ""
"Voc� precisa de uma frase secreta para proteger sua chave.\n"
"\n"
-#: g10/keyedit.c:456 g10/keygen.c:759
+#: g10/keyedit.c:468 g10/keygen.c:852
msgid "passphrase not correctly repeated; try again.\n"
msgstr "A frase secreta n�o foi repetida corretamente; tente outra vez.\n"
-#: g10/keygen.c:765
+#: g10/keygen.c:858
msgid ""
"You don't want a passphrase - this is probably a *bad* idea!\n"
"I will do it anyway. You can change your passphrase at any time,\n"
@@ -1451,7 +1552,7 @@ msgstr ""
"qualquer hora, usando este programa com a op��o \"--edit-key\".\n"
"\n"
-#: g10/keygen.c:786
+#: g10/keygen.c:879
msgid ""
"We need to generate a lot of random bytes. It is a good idea to perform\n"
"some other action (type on the keyboard, move the mouse, utilize the\n"
@@ -1463,33 +1564,29 @@ msgstr ""
"gera��o dos n�meros primos; isso d� ao gerador de n�meros aleat�rios\n"
"uma chance melhor de conseguir entropia suficiente.\n"
-#: g10/keygen.c:856
-msgid "Key generation can only be used in interactive mode\n"
-msgstr "A gera��o de chaves s� pode ser feita em modo interativo\n"
-
-#: g10/keygen.c:864
+#: g10/keygen.c:1325
msgid "DSA keypair will have 1024 bits.\n"
msgstr "O par de chaves DSA ter� 1024 bits.\n"
-#: g10/keygen.c:870
+#: g10/keygen.c:1368
msgid "Key generation canceled.\n"
msgstr "Gera��o de chave cancelada.\n"
-#: g10/keygen.c:880
-#, c-format
-msgid "writing public certificate to `%s'\n"
+#: g10/keygen.c:1465
+#, fuzzy, c-format
+msgid "writing public key to `%s'\n"
msgstr "escrevendo certificado p�blico para `%s'\n"
-#: g10/keygen.c:881
-#, c-format
-msgid "writing secret certificate to `%s'\n"
+#: g10/keygen.c:1466
+#, fuzzy, c-format
+msgid "writing secret key to `%s'\n"
msgstr "escrevendo certificado privado para `%s'\n"
-#: g10/keygen.c:958
+#: g10/keygen.c:1562
msgid "public and secret key created and signed.\n"
msgstr "chaves p�blica e privada criadas e assinadas.\n"
-#: g10/keygen.c:960
+#: g10/keygen.c:1567
msgid ""
"Note that this key cannot be used for encryption. You may want to use\n"
"the command \"--edit-key\" to generate a secondary key for this purpose.\n"
@@ -1497,12 +1594,12 @@ msgstr ""
"Note que esta chave n�o pode ser usada para criptografia. Voc� pode usar\n"
"o comando \"--edit-key\" para gerar uma chave secund�ria para esse fim.\n"
-#: g10/keygen.c:974 g10/keygen.c:1073
+#: g10/keygen.c:1584 g10/keygen.c:1685
#, c-format
msgid "Key generation failed: %s\n"
msgstr "A gera��o de chaves falhou: %s\n"
-#: g10/keygen.c:1018 g10/sig-check.c:312 g10/sign.c:105
+#: g10/keygen.c:1628 g10/sig-check.c:318 g10/sign.c:111
#, c-format
msgid ""
"key has been created %lu second in future (time warp or clock problem)\n"
@@ -1510,7 +1607,7 @@ msgstr ""
"a chave foi criada %lu segundo no futuro\n"
"(viagem no tempo ou problema no rel�gio)\n"
-#: g10/keygen.c:1020 g10/sig-check.c:314 g10/sign.c:107
+#: g10/keygen.c:1630 g10/sig-check.c:320 g10/sign.c:113
#, c-format
msgid ""
"key has been created %lu seconds in future (time warp or clock problem)\n"
@@ -1518,12 +1615,12 @@ msgstr ""
"a chave foi criada %lu segundos no futuro\n"
"(viagem no tempo ou problema no rel�gio)\n"
-#: g10/keygen.c:1051
+#: g10/keygen.c:1663
msgid "Really create? "
msgstr "Realmente criar? "
-#: g10/encode.c:91 g10/openfile.c:156 g10/openfile.c:246 g10/tdbio.c:468
-#: g10/tdbio.c:529
+#: g10/encode.c:91 g10/openfile.c:168 g10/openfile.c:277 g10/tdbio.c:454
+#: g10/tdbio.c:515
#, c-format
msgid "%s: can't open: %s\n"
msgstr "%s: imposs�vel abrir: %s\n"
@@ -1533,302 +1630,307 @@ msgstr "%s: imposs�vel abrir: %s\n"
msgid "error creating passphrase: %s\n"
msgstr "erro na cria��o da frase secreta: %s\n"
-#: g10/encode.c:171 g10/encode.c:318
+#: g10/encode.c:171 g10/encode.c:319
#, c-format
msgid "%s: WARNING: empty file\n"
msgstr "%s: AVISO: arquivo vazio\n"
-#: g10/encode.c:265
+#: g10/encode.c:266
#, c-format
msgid "reading from `%s'\n"
msgstr "lendo de `%s'\n"
-#: g10/encode.c:482
+#: g10/encode.c:483
#, c-format
msgid "%s/%s encrypted for: %s\n"
msgstr "%s/%s criptografado para: %s\n"
-#: g10/export.c:147
+#: g10/export.c:153
#, c-format
msgid "%s: user not found: %s\n"
msgstr "%s: usu�rio n�o encontrado: %s\n"
-#: g10/export.c:156
+#: g10/export.c:162
#, c-format
msgid "certificate read problem: %s\n"
msgstr "erro de leitura do certificado: %s\n"
-#: g10/export.c:165
+#: g10/export.c:171
#, c-format
msgid "key %08lX: not a rfc2440 key - skipped\n"
msgstr "chave %08lX: n�o � uma chave rfc2440 - ignorada\n"
-#: g10/export.c:203
+#: g10/export.c:182
+#, fuzzy, c-format
+msgid "key %08lX: not protected - skipped\n"
+msgstr "chave %08lX: n�o � uma chave rfc2440 - ignorada\n"
+
+#: g10/export.c:232
msgid "WARNING: nothing exported\n"
msgstr "AVISO: nada exportado\n"
-#: g10/getkey.c:206
+#: g10/getkey.c:211
msgid "too many entries in pk cache - disabled\n"
msgstr "entradas demais no cache pk - desativado\n"
-#: g10/getkey.c:345
+#: g10/getkey.c:350
msgid "too many entries in unk cache - disabled\n"
msgstr "entradas demais no cache unk - desativado\n"
-#: g10/getkey.c:1289 g10/getkey.c:1328
+#: g10/getkey.c:1308 g10/getkey.c:1347
msgid "RSA key cannot be used in this version\n"
msgstr "chave RSA n�o pode ser usada nesta vers�o\n"
-#: g10/getkey.c:1291 g10/getkey.c:1330
+#: g10/getkey.c:1310 g10/getkey.c:1349
msgid "No key for user ID\n"
msgstr "Nenhuma chave para identificador de usu�rio\n"
-#: g10/getkey.c:1369 g10/getkey.c:1409
+#: g10/getkey.c:1388 g10/getkey.c:1428
msgid "No user ID for key\n"
msgstr "Nenhum identificador de usu�rio para chave\n"
-#: g10/getkey.c:1565 g10/getkey.c:1621
+#: g10/getkey.c:1642 g10/getkey.c:1698
#, c-format
msgid "using secondary key %08lX instead of primary key %08lX\n"
msgstr "usando chave secund�ria %08lX ao inv�s de chave prim�ria %08lX\n"
-#: g10/import.c:118
-#, c-format
-msgid "can't open `%s': %s\n"
-msgstr "imposs�vel abrir `%s': %s\n"
+#: g10/getkey.c:2017
+#, fuzzy
+msgid "[User id not found]"
+msgstr "%s: usu�rio n�o encontrado\n"
-#: g10/import.c:162
+#: g10/import.c:181
#, c-format
msgid "skipping block of type %d\n"
msgstr "ignorando bloco do tipo %d\n"
-#: g10/import.c:169 g10/trustdb.c:1658 g10/trustdb.c:1697
+#: g10/import.c:188 g10/trustdb.c:1740 g10/trustdb.c:1781
#, c-format
msgid "%lu keys so far processed\n"
msgstr "%lu chaves processadas at� agora\n"
-#: g10/import.c:174
+#: g10/import.c:193
#, c-format
msgid "error reading `%s': %s\n"
msgstr "erro na leitura de `%s': %s\n"
-#: g10/import.c:177
+#: g10/import.c:203
#, c-format
msgid "Total number processed: %lu\n"
msgstr "N�mero total processado: %lu\n"
-#: g10/import.c:179
+#: g10/import.c:205
#, c-format
msgid " w/o user IDs: %lu\n"
msgstr " sem IDs de usu�rios: %lu\n"
-#: g10/import.c:181
+#: g10/import.c:207
#, c-format
msgid " imported: %lu"
msgstr " importados: %lu"
-#: g10/import.c:187
+#: g10/import.c:213
#, c-format
msgid " unchanged: %lu\n"
msgstr " n�o modificados: %lu\n"
-#: g10/import.c:189
+#: g10/import.c:215
#, c-format
msgid " new user IDs: %lu\n"
msgstr " novos IDs de usu�rios: %lu\n"
-#: g10/import.c:191
+#: g10/import.c:217
#, c-format
msgid " new subkeys: %lu\n"
msgstr " novas subchaves: %lu\n"
-#: g10/import.c:193
+#: g10/import.c:219
#, c-format
msgid " new signatures: %lu\n"
msgstr " novas assinaturas: %lu\n"
-#: g10/import.c:195
+#: g10/import.c:221
#, c-format
msgid " new key revocations: %lu\n"
msgstr " novas revoga��es de chaves: %lu\n"
-#: g10/import.c:197
+#: g10/import.c:223
#, c-format
msgid " secret keys read: %lu\n"
msgstr " chaves secretas lidas: %lu\n"
-#: g10/import.c:199
+#: g10/import.c:225
#, c-format
msgid " secret keys imported: %lu\n"
msgstr " chaves secretas importadas: %lu\n"
-#: g10/import.c:201
+#: g10/import.c:227
#, c-format
msgid " secret keys unchanged: %lu\n"
msgstr " chaves secretas n�o modificadas: %lu\n"
-#: g10/import.c:362 g10/import.c:554
+#: g10/import.c:386 g10/import.c:578
#, c-format
msgid "key %08lX: no user ID\n"
msgstr "chave %08lX: sem ID de usu�rio\n"
-#: g10/import.c:376
+#: g10/import.c:400
#, c-format
msgid "key %08lX: no valid user IDs\n"
msgstr "chave %08lX: sem IDs de usu�rios v�lidos\n"
-#: g10/import.c:378
+#: g10/import.c:402
msgid "this may be caused by a missing self-signature\n"
msgstr "isto pode ser causado por falta de auto-assinatura\n"
-#: g10/import.c:389 g10/import.c:621
+#: g10/import.c:413 g10/import.c:645
#, c-format
msgid "key %08lX: public key not found: %s\n"
msgstr "chave %08lX: chave p�blica n�o encontrada: %s\n"
-#: g10/import.c:395
+#: g10/import.c:419
msgid "no default public keyring\n"
msgstr "sem chaveiro p�blico padr�o\n"
-#: g10/import.c:399 g10/openfile.c:186 g10/sign.c:268 g10/sign.c:580
+#: g10/import.c:423 g10/openfile.c:220 g10/sign.c:275 g10/sign.c:587
#, c-format
msgid "writing to `%s'\n"
msgstr "escrevendo para `%s'\n"
-#: g10/import.c:402 g10/import.c:460 g10/import.c:569 g10/import.c:670
+#: g10/import.c:426 g10/import.c:484 g10/import.c:593 g10/import.c:694
#, c-format
msgid "can't lock keyring `%s': %s\n"
msgstr "imposs�vel bloquear chaveiro `%s': %s\n"
-#: g10/import.c:405 g10/import.c:463 g10/import.c:572 g10/import.c:673
+#: g10/import.c:429 g10/import.c:487 g10/import.c:596 g10/import.c:697
#, c-format
msgid "error writing keyring `%s': %s\n"
msgstr "erro na escrita do chaveiro `%s': %s\n"
-#: g10/import.c:410
+#: g10/import.c:434
#, c-format
msgid "key %08lX: public key imported\n"
msgstr "chave %08lX: chave p�blica importada\n"
-#: g10/import.c:427
+#: g10/import.c:451
#, c-format
msgid "key %08lX: doesn't match our copy\n"
msgstr "chave %08lX: n�o corresponde � nossa c�pia\n"
-#: g10/import.c:436 g10/import.c:629
+#: g10/import.c:460 g10/import.c:653
#, c-format
msgid "key %08lX: can't locate original keyblock: %s\n"
msgstr "chave %08lX: imposs�vel localizar bloco de chaves original: %s\n"
-#: g10/import.c:442 g10/import.c:635
+#: g10/import.c:466 g10/import.c:659
#, c-format
msgid "key %08lX: can't read original keyblock: %s\n"
msgstr "chave %08lX: imposs�vel ler bloco de chaves original: %s\n"
-#: g10/import.c:469
+#: g10/import.c:493
#, c-format
msgid "key %08lX: 1 new user ID\n"
msgstr "chave %8lX: 1 novo ID de usu�rio\n"
-#: g10/import.c:472
+#: g10/import.c:496
#, c-format
msgid "key %08lX: %d new user IDs\n"
msgstr "chave %08lX: %d novos IDs de usu�rios\n"
-#: g10/import.c:475
+#: g10/import.c:499
#, c-format
msgid "key %08lX: 1 new signature\n"
msgstr "chave %08lX: 1 nova assinatura\n"
-#: g10/import.c:478
+#: g10/import.c:502
#, c-format
msgid "key %08lX: %d new signatures\n"
msgstr "chave %08lX: %d novas assinaturas\n"
-#: g10/import.c:481
+#: g10/import.c:505
#, c-format
msgid "key %08lX: 1 new subkey\n"
msgstr "chave %08lX: 1 nova subchave\n"
-#: g10/import.c:484
+#: g10/import.c:508
#, c-format
msgid "key %08lX: %d new subkeys\n"
msgstr "chave %08lX: %d novas subchaves\n"
-#: g10/import.c:494
+#: g10/import.c:518
#, c-format
msgid "key %08lX: not changed\n"
msgstr "chave %08lX: n�o modificada\n"
-#: g10/import.c:577
+#: g10/import.c:601
#, c-format
msgid "key %08lX: secret key imported\n"
msgstr "chave %08lX: chave secreta importada\n"
#. we can't merge secret keys
-#: g10/import.c:581
+#: g10/import.c:605
#, c-format
msgid "key %08lX: already in secret keyring\n"
msgstr "chave %08lX: j� est� no chaveiro secreto\n"
-#: g10/import.c:586
+#: g10/import.c:610
#, c-format
msgid "key %08lX: secret key not found: %s\n"
msgstr "chave %08lX: chave secreta n�o encontrada: %s\n"
-#: g10/import.c:615
+#: g10/import.c:639
#, c-format
msgid "key %08lX: 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"
-#: g10/import.c:646
+#: g10/import.c:670
#, c-format
msgid "key %08lX: invalid revocation certificate: %s - rejected\n"
msgstr "chave %08lX: certificado de revoga��o inv�lido: %s - rejeitado\n"
-#: g10/import.c:678
+#: g10/import.c:702
#, c-format
msgid "key %08lX: revocation certificate imported\n"
msgstr "chave %08lX: certificado de revoga��o importado\n"
-#: g10/import.c:711
+#: g10/import.c:744
#, c-format
msgid "key %08lX: no user ID for signature\n"
msgstr "chave %08lX: nenhum ID de usu�rio para assinatura\n"
-#: g10/import.c:718 g10/import.c:742
+#: g10/import.c:751 g10/import.c:775
#, c-format
msgid "key %08lX: unsupported public key algorithm\n"
msgstr "chave %08lX: algoritmo de chave p�blica n�o suportado\n"
-#: g10/import.c:719
+#: g10/import.c:752
#, c-format
msgid "key %08lX: invalid self-signature\n"
msgstr "chave %08lX: auto-assinatura inv�lida\n"
-#: g10/import.c:734
+#: g10/import.c:767
#, c-format
msgid "key %08lX: no subkey for key binding\n"
msgstr "chave %08lX: sem subchave para liga��o de chaves\n"
-#: g10/import.c:743
+#: g10/import.c:776
#, c-format
msgid "key %08lX: invalid subkey binding\n"
msgstr "chave %08lX: liga��o de subchave inv�lida\n"
-#: g10/import.c:769
+#: g10/import.c:803
#, c-format
msgid "key %08lX: accepted non self-signed user ID '"
msgstr "chave %08lX: aceito ID de usu�rio sem auto-assinatura '"
-#: g10/import.c:798
+#: g10/import.c:832
#, c-format
msgid "key %08lX: skipped user ID '"
msgstr "chave %08lX: ignorado ID de usu�rio '"
-#: g10/import.c:821
+#: g10/import.c:855
#, c-format
msgid "key %08lX: skipped subkey\n"
msgstr "chave %08lX: subchave ignorada\n"
@@ -1837,98 +1939,98 @@ msgstr "chave %08lX: subchave ignorada\n"
#. * to import non-exportable signature when we have the
#. * the secret key used to create this signature - it
#. * seems that this makes sense
-#: g10/import.c:846
+#: g10/import.c:880
#, c-format
msgid "key %08lX: non exportable signature (class %02x) - skipped\n"
msgstr "chave %08lX: assinatura n�o export�vel (classe %02x) - ignorada\n"
-#: g10/import.c:855
+#: g10/import.c:889
#, c-format
msgid "key %08lX: revocation certificate at wrong place - skipped\n"
msgstr "chave %08lX: certificado de revoga��o no local errado - ignorada\n"
-#: g10/import.c:863
+#: g10/import.c:897
#, c-format
msgid "key %08lX: invalid revocation certificate: %s - skipped\n"
msgstr "chave %08lX: certificado de revoga��o inv�lido: %s - ignorada\n"
-#: g10/import.c:963
+#: g10/import.c:997
#, c-format
msgid "key %08lX: duplicated user ID detected - merged\n"
msgstr "chave %08lX: detectado ID de usu�rio duplicado - unido\n"
-#: g10/import.c:1014
+#: g10/import.c:1048
#, c-format
msgid "key %08lX: revocation certificate added\n"
msgstr "chave %08lX: certificado de revoga��o adicionado\n"
-#: g10/import.c:1128 g10/import.c:1183
+#: g10/import.c:1162 g10/import.c:1215
#, c-format
msgid "key %08lX: our copy has no self-signature\n"
msgstr "chave %08lX: nossa c�pia n�o tem auto-assinatura\n"
-#: g10/delkey.c:64 g10/keyedit.c:93
+#: g10/delkey.c:64 g10/keyedit.c:94
#, c-format
msgid "%s: user not found\n"
msgstr "%s: usu�rio n�o encontrado\n"
-#: g10/keyedit.c:154
+#: g10/keyedit.c:155
msgid "[revocation]"
msgstr "[revoga��o]"
-#: g10/keyedit.c:155
+#: g10/keyedit.c:156
msgid "[self-signature]"
msgstr "[auto-assinatura]"
-#: g10/keyedit.c:219
+#: g10/keyedit.c:220
msgid "1 bad signature\n"
msgstr "1 assinatura incorreta\n"
-#: g10/keyedit.c:221
+#: g10/keyedit.c:222
#, c-format
msgid "%d bad signatures\n"
msgstr "%d assinaturas incorretas\n"
-#: g10/keyedit.c:223
+#: g10/keyedit.c:224
msgid "1 signature not checked due to a missing key\n"
msgstr "1 assinatura n�o verificada por falta de chave\n"
-#: g10/keyedit.c:225
+#: g10/keyedit.c:226
#, c-format
msgid "%d signatures not checked due to missing keys\n"
msgstr "%d assinaturas n�o verificadas por falta de chaves\n"
-#: g10/keyedit.c:227
+#: g10/keyedit.c:228
msgid "1 signature not checked due to an error\n"
msgstr "1 assinatura n�o verificada devido a um erro\n"
-#: g10/keyedit.c:229
+#: g10/keyedit.c:230
#, c-format
msgid "%d signatures not checked due to errors\n"
msgstr "%d assinaturas n�o verificadas devido a erros\n"
-#: g10/keyedit.c:231
+#: g10/keyedit.c:232
msgid "1 user ID without valid self-signature detected\n"
msgstr "1 ID de usu�rio sem auto-assinatura v�lida detectado\n"
-#: g10/keyedit.c:233
+#: g10/keyedit.c:234
#, c-format
msgid "%d user IDs without valid self-signatures detected\n"
msgstr "%d IDs de usu�rios sem auto-assinaturas v�lidas detectados\n"
#. Fixme: see whether there is a revocation in which
#. * case we should allow to sign it again.
-#: g10/keyedit.c:313
+#: g10/keyedit.c:316
#, c-format
msgid "Already signed by key %08lX\n"
msgstr "J� assinado pela chave %08lX\n"
-#: g10/keyedit.c:321
+#: g10/keyedit.c:324
#, c-format
msgid "Nothing to sign with key %08lX\n"
msgstr "Nada para assinar com a chave %08lX\n"
-#: g10/keyedit.c:330
+#: g10/keyedit.c:333
msgid ""
"Are you really sure that you want to sign this key\n"
"with your key: \""
@@ -1936,7 +2038,7 @@ msgstr ""
"Voc� tem certeza de que quer assinar esta chave com\n"
"sua chave: \""
-#: g10/keyedit.c:339
+#: g10/keyedit.c:342
msgid ""
"The signature will be marked as non-exportable.\n"
"\n"
@@ -1944,29 +2046,34 @@ msgstr ""
"A assinatura ser� marcada como n�o-export�vel.\n"
"\n"
-#: g10/keyedit.c:344
+#: g10/keyedit.c:347
msgid "Really sign? "
msgstr "Realmente assinar? "
-#: g10/keyedit.c:370 g10/keyedit.c:1832 g10/keyedit.c:1881 g10/sign.c:128
+#: g10/keyedit.c:373 g10/keyedit.c:1869 g10/keyedit.c:1931 g10/sign.c:135
#, c-format
msgid "signing failed: %s\n"
msgstr "assinatura falhou: %s\n"
-#: g10/keyedit.c:423
+#: g10/keyedit.c:427
msgid "This key is not protected.\n"
msgstr "Esta chave n�o � protegida.\n"
-#: g10/keyedit.c:426
+#: g10/keyedit.c:431
+#, fuzzy
+msgid "Secret parts of primary key are not available.\n"
+msgstr "chave secreta n�o dispon�vel"
+
+#: g10/keyedit.c:435
msgid "Key is protected.\n"
msgstr "A chave � protegida.\n"
-#: g10/keyedit.c:443
+#: g10/keyedit.c:455
#, c-format
msgid "Can't edit this key: %s\n"
msgstr "Imposs�vel editar esta chave: %s\n"
-#: g10/keyedit.c:448
+#: g10/keyedit.c:460
msgid ""
"Enter the new passphrase for this secret key.\n"
"\n"
@@ -1974,7 +2081,7 @@ msgstr ""
"Digite a nova frase para esta chave secreta.\n"
"\n"
-#: g10/keyedit.c:460
+#: g10/keyedit.c:472
msgid ""
"You don't want a passphrase - this is probably a *bad* idea!\n"
"\n"
@@ -1982,396 +2089,397 @@ msgstr ""
"Voc� n�o quer uma frase secreta - provavelmente isto � uma *m�* id�ia!\n"
"\n"
-#: g10/keyedit.c:463
+#: g10/keyedit.c:475
msgid "Do you really want to do this? "
msgstr "Voc� realmente quer fazer isso? "
-#: g10/keyedit.c:524
+#: g10/keyedit.c:539
msgid "moving a key signature to the correct place\n"
msgstr "movendo a assinatura da chave para o local correto\n"
-#: g10/keyedit.c:564
+#: g10/keyedit.c:580
msgid "quit this menu"
msgstr "sair deste menu"
-#: g10/keyedit.c:565
+#: g10/keyedit.c:581
msgid "q"
-msgstr ""
+msgstr "q"
-#: g10/keyedit.c:566
+#: g10/keyedit.c:582
msgid "save"
-msgstr ""
+msgstr "save"
-#: g10/keyedit.c:566
+#: g10/keyedit.c:582
msgid "save and quit"
msgstr "gravar e sair"
-#: g10/keyedit.c:567
+#: g10/keyedit.c:583
msgid "help"
-msgstr ""
+msgstr "help"
-#: g10/keyedit.c:567
+#: g10/keyedit.c:583
msgid "show this help"
msgstr "mostra esta ajuda"
-#: g10/keyedit.c:569
+#: g10/keyedit.c:585
msgid "fpr"
-msgstr ""
+msgstr "fpr"
-#: g10/keyedit.c:569
+#: g10/keyedit.c:585
msgid "show fingerprint"
msgstr "mostra impress�o digital"
-#: g10/keyedit.c:570
+#: g10/keyedit.c:586
msgid "list"
-msgstr ""
+msgstr "list"
-#: g10/keyedit.c:570
+#: g10/keyedit.c:586
msgid "list key and user IDs"
msgstr "lista chave e identificadores de usu�rios"
-# ???
-#: g10/keyedit.c:571
+#: g10/keyedit.c:587
msgid "l"
-msgstr ""
+msgstr "l"
-#: g10/keyedit.c:572
+#: g10/keyedit.c:588
msgid "uid"
-msgstr ""
+msgstr "uid"
-#: g10/keyedit.c:572
+#: g10/keyedit.c:588
msgid "select user ID N"
msgstr "seleciona ID de usu�rio N"
-#: g10/keyedit.c:573
+#: g10/keyedit.c:589
msgid "key"
-msgstr ""
+msgstr "key"
-#: g10/keyedit.c:573
+#: g10/keyedit.c:589
msgid "select secondary key N"
msgstr "seleciona chave secund�ria N"
-#: g10/keyedit.c:574
+#: g10/keyedit.c:590
msgid "check"
-msgstr ""
+msgstr "check"
-#: g10/keyedit.c:574
+#: g10/keyedit.c:590
msgid "list signatures"
msgstr "lista assinaturas"
-# ???
-#: g10/keyedit.c:575
+#: g10/keyedit.c:591
msgid "c"
-msgstr ""
+msgstr "c"
-#: g10/keyedit.c:576
+#: g10/keyedit.c:592
msgid "sign"
-msgstr ""
+msgstr "sign"
-#: g10/keyedit.c:576
+#: g10/keyedit.c:592
msgid "sign the key"
msgstr "assina a chave"
-# ???
-#: g10/keyedit.c:577
+#: g10/keyedit.c:593
msgid "s"
-msgstr ""
+msgstr "s"
-#: g10/keyedit.c:578
+#: g10/keyedit.c:594
msgid "lsign"
-msgstr ""
+msgstr "lsign"
-#: g10/keyedit.c:578
+#: g10/keyedit.c:594
msgid "sign the key locally"
msgstr "assina a chave localmente"
-#: g10/keyedit.c:579
+#: g10/keyedit.c:595
msgid "debug"
-msgstr ""
+msgstr "debug"
-#: g10/keyedit.c:580
+#: g10/keyedit.c:596
msgid "adduid"
-msgstr ""
+msgstr "adduid"
-#: g10/keyedit.c:580
+#: g10/keyedit.c:596
msgid "add a user ID"
msgstr "adiciona um novo ID de usu�rio"
-#: g10/keyedit.c:581
+#: g10/keyedit.c:597
msgid "deluid"
-msgstr ""
+msgstr "deluid"
-#: g10/keyedit.c:581
+#: g10/keyedit.c:597
msgid "delete user ID"
msgstr "remove ID de usu�rio"
-#: g10/keyedit.c:582
+#: g10/keyedit.c:598
msgid "addkey"
-msgstr ""
+msgstr "addkey"
-#: g10/keyedit.c:582
+#: g10/keyedit.c:598
msgid "add a secondary key"
msgstr "adiciona nova chave secund�ria"
-#: g10/keyedit.c:583
+#: g10/keyedit.c:599
msgid "delkey"
-msgstr ""
+msgstr "delkey"
-#: g10/keyedit.c:583
+#: g10/keyedit.c:599
msgid "delete a secondary key"
msgstr "remove uma chave secund�ria"
-#: g10/keyedit.c:584
+#: g10/keyedit.c:600
msgid "delsig"
-msgstr ""
+msgstr "delsig"
-#: g10/keyedit.c:584
+#: g10/keyedit.c:600
msgid "delete signatures"
msgstr "remove assinaturas"
-#: g10/keyedit.c:585
+#: g10/keyedit.c:601
msgid "expire"
-msgstr ""
+msgstr "expire"
-#: g10/keyedit.c:585
+#: g10/keyedit.c:601
msgid "change the expire date"
msgstr "muda a data de validade"
-#: g10/keyedit.c:586
+#: g10/keyedit.c:602
msgid "toggle"
-msgstr ""
+msgstr "toggle"
-#: g10/keyedit.c:586
+#: g10/keyedit.c:602
msgid "toggle between secret and public key listing"
msgstr "alterna entre listagem de chave secreta e p�blica"
-#: g10/keyedit.c:588
+#: g10/keyedit.c:604
msgid "t"
-msgstr ""
+msgstr "t"
-#: g10/keyedit.c:589
+#: g10/keyedit.c:605
msgid "pref"
-msgstr ""
+msgstr "pref"
-#: g10/keyedit.c:589
+#: g10/keyedit.c:605
msgid "list preferences"
msgstr "lista prefer�ncias"
-#: g10/keyedit.c:590
+#: g10/keyedit.c:606
msgid "passwd"
-msgstr ""
+msgstr "passwd"
-#: g10/keyedit.c:590
+#: g10/keyedit.c:606
msgid "change the passphrase"
msgstr "muda a frase secreta"
-#: g10/keyedit.c:591
+#: g10/keyedit.c:607
msgid "trust"
-msgstr ""
+msgstr "trust"
-#: g10/keyedit.c:591
+#: g10/keyedit.c:607
msgid "change the ownertrust"
msgstr "muda os valores de confian�a"
-#: g10/keyedit.c:592
+#: g10/keyedit.c:608
msgid "revsig"
-msgstr ""
+msgstr "revsig"
-#: g10/keyedit.c:592
+#: g10/keyedit.c:608
msgid "revoke signatures"
msgstr "revoga assinaturas"
-#: g10/keyedit.c:593
+#: g10/keyedit.c:609
msgid "revkey"
-msgstr ""
+msgstr "revkey"
-#: g10/keyedit.c:593
+#: g10/keyedit.c:609
msgid "revoke a secondary key"
msgstr "revoga uma chave secund�ria"
-#: g10/keyedit.c:594
+#: g10/keyedit.c:610
msgid "disable"
-msgstr ""
+msgstr "disable"
-#: g10/keyedit.c:594
+#: g10/keyedit.c:610
msgid "disable a key"
msgstr "desativa uma chave"
-#: g10/keyedit.c:595
+#: g10/keyedit.c:611
msgid "enable"
-msgstr ""
+msgstr "enable"
-#: g10/keyedit.c:595
+#: g10/keyedit.c:611
msgid "enable a key"
msgstr "ativa uma chave"
-#: g10/delkey.c:107 g10/keyedit.c:614
+#: g10/delkey.c:110 g10/keyedit.c:630
msgid "can't do that in batchmode\n"
msgstr "imposs�vel fazer isso em modo n�o-interativo\n"
#. check that they match
#. fixme: check that they both match
-#: g10/keyedit.c:652
+#: g10/keyedit.c:668
msgid "Secret key is available.\n"
msgstr "Chave secreta dispon�vel.\n"
-#: g10/keyedit.c:681
+#: g10/keyedit.c:697
msgid "Command> "
msgstr "Comando> "
-#: g10/keyedit.c:711
+#: g10/keyedit.c:727
msgid "Need the secret key to do this.\n"
msgstr "A chave secreta � necess�ria para fazer isto.\n"
-#: g10/keyedit.c:758
+#: g10/keyedit.c:731
+msgid "Please use the command \"toggle\" first.\n"
+msgstr ""
+
+#: g10/keyedit.c:778
msgid "Really sign all user IDs? "
msgstr "Realmente assinar todos os IDs de usu�rio? "
-#: g10/keyedit.c:759
+#: g10/keyedit.c:779
msgid "Hint: Select the user IDs to sign\n"
msgstr "Sugest�o: Selecione os IDs de usu�rio para assinar\n"
-#: g10/keyedit.c:786 g10/keyedit.c:968
+#: g10/keyedit.c:811 g10/keyedit.c:993
#, c-format
msgid "update of trustdb failed: %s\n"
msgstr "atualiza��o do banco de dados de confiabilidade falhou: %s\n"
-#: g10/keyedit.c:797 g10/keyedit.c:818
+#: g10/keyedit.c:822 g10/keyedit.c:843
msgid "You must select at least one user ID.\n"
msgstr "Voc� precisa selecionar pelo menos um ID de usu�rio.\n"
-#: g10/keyedit.c:799
+#: g10/keyedit.c:824
msgid "You can't delete the last user ID!\n"
msgstr "Voc� n�o pode remover o �ltimo ID de usu�rio!\n"
-#: g10/keyedit.c:802
+#: g10/keyedit.c:827
msgid "Really remove all selected user IDs? "
msgstr "Realmente remover todos os IDs de usu�rio selecionados? "
-#: g10/keyedit.c:803
+#: g10/keyedit.c:828
msgid "Really remove this user ID? "
msgstr "Realmente remover este ID de usu�rio? "
-#: g10/keyedit.c:839 g10/keyedit.c:861
+#: g10/keyedit.c:864 g10/keyedit.c:886
msgid "You must select at least one key.\n"
msgstr "Voc� deve selecionar pelo menos uma chave.\n"
-#: g10/keyedit.c:843
+#: g10/keyedit.c:868
msgid "Do you really want to delete the selected keys? "
msgstr "Voc� realmente quer remover as chaves selecionadas? "
-#: g10/keyedit.c:844
+#: g10/keyedit.c:869
msgid "Do you really want to delete this key? "
msgstr "Voc� realmente quer remover esta chave? "
-#: g10/keyedit.c:865
+#: g10/keyedit.c:890
msgid "Do you really want to revoke the selected keys? "
msgstr "Voc� realmente quer revogar as chaves selecionadas? "
-#: g10/keyedit.c:866
+#: g10/keyedit.c:891
msgid "Do you really want to revoke this key? "
msgstr "Voc� realmente quer revogar esta chave? "
-#: g10/keyedit.c:932
+#: g10/keyedit.c:957
msgid "Save changes? "
msgstr "Salvar altera��es? "
-#: g10/keyedit.c:935
+#: g10/keyedit.c:960
msgid "Quit without saving? "
msgstr "Sair sem salvar? "
-#: g10/keyedit.c:946
+#: g10/keyedit.c:971
#, c-format
msgid "update failed: %s\n"
msgstr "atualiza��o falhou: %s\n"
-#: g10/keyedit.c:953
+#: g10/keyedit.c:978
#, c-format
msgid "update secret failed: %s\n"
msgstr "atualiza��o da chave secreta falhou: %s\n"
-#: g10/keyedit.c:960
+#: g10/keyedit.c:985
msgid "Key not changed so no update needed.\n"
msgstr "Chave n�o alterada, nenhuma atualiza��o � necess�ria.\n"
# help ou ajuda ???
-#: g10/keyedit.c:975
+#: g10/keyedit.c:1000
msgid "Invalid command (try \"help\")\n"
msgstr "Comando inv�lido (tente \"help\")\n"
-#: g10/keyedit.c:1065
+#: g10/keyedit.c:1093
msgid "This key has been disabled"
msgstr "Esta chave foi desativada"
-#: g10/keyedit.c:1336
+#: g10/keyedit.c:1364
msgid "Delete this good signature? (y/N/q)"
-msgstr "Deletar esat assinatura v�lida? (s/N/q)"
+msgstr "Deletar esta assinatura v�lida? (s/N/q)"
-#: g10/keyedit.c:1340
+#: g10/keyedit.c:1368
msgid "Delete this invalid signature? (y/N/q)"
msgstr "Deletar esta assinatura inv�lida? (s/N/q)"
-#: g10/keyedit.c:1344
+#: g10/keyedit.c:1372
msgid "Delete this unknown signature? (y/N/q)"
msgstr "Deletar esta assinatura desconhecida? (s/N/q)"
-#: g10/keyedit.c:1350
+#: g10/keyedit.c:1378
msgid "Really delete this self-signature? (y/N)"
msgstr "Realmente remover esta auto-assinatura? (s/N)"
-#: g10/keyedit.c:1364
+#: g10/keyedit.c:1392
#, c-format
msgid "Deleted %d signature.\n"
msgstr "%d assinatura removida.\n"
-#: g10/keyedit.c:1365
+#: g10/keyedit.c:1393
#, c-format
msgid "Deleted %d signatures.\n"
msgstr "%d assinaturas removidas.\n"
-#: g10/keyedit.c:1368
+#: g10/keyedit.c:1396
msgid "Nothing deleted.\n"
msgstr "Nada removido.\n"
-#: g10/keyedit.c:1437
+#: g10/keyedit.c:1465
msgid "Please remove selections from the secret keys.\n"
msgstr "Por favor remova as sele��es das chaves secretas.\n"
-#: g10/keyedit.c:1443
+#: g10/keyedit.c:1471
msgid "Please select at most one secondary key.\n"
msgstr "Por favor selecione no m�ximo uma chave secund�ria.\n"
-#: g10/keyedit.c:1447
+#: g10/keyedit.c:1475
msgid "Changing expiration time for a secondary key.\n"
msgstr "Modificando a data de validade para uma chave secund�ria.\n"
-#: g10/keyedit.c:1449
+#: g10/keyedit.c:1477
msgid "Changing expiration time for the primary key.\n"
msgstr "Modificando a data de validade para uma chave prim�ria.\n"
-#: g10/keyedit.c:1490
+#: g10/keyedit.c:1519
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"
-#: g10/keyedit.c:1506
+#: g10/keyedit.c:1535
msgid "No corresponding signature in secret ring\n"
msgstr "Nenhuma assinatura correspondente no chaveiro secreto\n"
-#: g10/keyedit.c:1566
+#: g10/keyedit.c:1596
#, c-format
msgid "No user ID with index %d\n"
msgstr "Nenhum ID de usu�rio com �ndice %d\n"
-#: g10/keyedit.c:1612
+#: g10/keyedit.c:1642
#, c-format
msgid "No secondary key with index %d\n"
msgstr "Nenhuma chave secund�ria com �ndice %d\n"
-#: g10/keyedit.c:1710
+#: g10/keyedit.c:1740
msgid "user ID: \""
msgstr "ID de usu�rio: \""
-#: g10/keyedit.c:1713
+#: g10/keyedit.c:1743
#, c-format
msgid ""
"\"\n"
@@ -2380,137 +2488,146 @@ msgstr ""
"\"\n"
"assinado com sua chave %08lX em %s\n"
-#: g10/keyedit.c:1717
+#: g10/keyedit.c:1747
msgid "Create a revocation certificate for this signature? (y/N)"
msgstr "Gerar um certificado de revoga��o para esta assinatura? (s/N)"
#. FIXME: detect duplicates here
-#: g10/keyedit.c:1740
-#, fuzzy
+#: g10/keyedit.c:1771
msgid "You have signed these user IDs:\n"
-msgstr "Voc� n�o pode remover o �ltimo ID de usu�rio!\n"
+msgstr "Voc� assinou estes IDs de usu�rio:\n"
-#: g10/keyedit.c:1754 g10/keyedit.c:1789
-#, fuzzy, c-format
+#: g10/keyedit.c:1785 g10/keyedit.c:1820
+#, c-format
msgid " signed by %08lX at %s\n"
-msgstr ""
-"\"\n"
-"assinado com sua chave %08lX em %s\n"
+msgstr " assinado por %08lX em %s\n"
-#: g10/keyedit.c:1759
-#, fuzzy, c-format
+#: g10/keyedit.c:1790
+#, c-format
msgid " revoked by %08lX at %s\n"
-msgstr ""
-"\"\n"
-"assinado com sua chave %08lX em %s\n"
+msgstr " revogado por %08lX em %s\n"
-#: g10/keyedit.c:1779
-#, fuzzy
+#: g10/keyedit.c:1810
msgid "You are about to revoke these signatures:\n"
-msgstr "Voc� realmente quer revogar as chaves selecionadas? "
+msgstr "Voc� est� prestes a revogar estas assinaturas:\n"
-#: g10/keyedit.c:1797
+#: g10/keyedit.c:1828
msgid "Really create the revocation certificates? (y/N)"
msgstr "Realmente gerar os certificados de revoga��o? (s/N)"
-#: g10/keyedit.c:1820
+#: g10/keyedit.c:1857
msgid "no secret key\n"
msgstr "nenhuma chave secreta\n"
+#. of subkey
+#: g10/keylist.c:318 g10/mainproc.c:740
+#, fuzzy, c-format
+msgid " [expires: %s]"
+msgstr "A chave expira em %s\n"
+
#: g10/mainproc.c:213
#, c-format
msgid "public key is %08lX\n"
msgstr "a chave p�blica � %08lX\n"
-#: g10/mainproc.c:244
+#: g10/mainproc.c:248
msgid "public key encrypted data: good DEK\n"
msgstr "dados criptografados com chave p�blica: DEK v�lido\n"
-#: g10/mainproc.c:275
+#: g10/mainproc.c:281
#, c-format
msgid "encrypted with %u-bit %s key, ID %08lX, created %s\n"
msgstr "criptografado com chave %u-bit %s, ID %08lX, criada em %s\n"
-#: g10/mainproc.c:285
+#: g10/mainproc.c:291
#, c-format
msgid "encrypted with %s key, ID %08lX\n"
msgstr "criptografado com chave %s, ID %08lX\n"
-#: g10/mainproc.c:291
+#: g10/mainproc.c:297
msgid "no secret key for decryption available\n"
msgstr "nenhuma chave secreta para descriptografia dispon�vel\n"
-#: g10/mainproc.c:300
+#: g10/mainproc.c:306
#, c-format
msgid "public key decryption failed: %s\n"
msgstr "descriptografia de chave p�blica falhou: %s\n"
-#: g10/mainproc.c:330
+#: g10/mainproc.c:342
msgid "decryption okay\n"
msgstr "descriptografia correta\n"
-#: g10/mainproc.c:335
+#: g10/mainproc.c:347
msgid "WARNING: encrypted message has been manipulated!\n"
msgstr "CUIDADO: a mensagem criptografada foi manipulada!\n"
-#: g10/mainproc.c:340
+#: g10/mainproc.c:352
#, c-format
msgid "decryption failed: %s\n"
msgstr "descriptografia falhou: %s\n"
-#: g10/mainproc.c:358
+#: g10/mainproc.c:371
msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
msgstr "NOTA: o remetente solicitou \"apenas-para-seus-olhos\"\n"
-#: g10/mainproc.c:360
+#: g10/mainproc.c:373
#, c-format
msgid "original file name='%.*s'\n"
msgstr "nome de arquivo original='%.*s'\n"
-#: g10/mainproc.c:587 g10/mainproc.c:596
+#: g10/mainproc.c:524
+msgid "standalone revocation - use \"gpg --import\" to apply\n"
+msgstr "revoga��o isolada - use \"gpg --import\" para aplic�-la\n"
+
+#: g10/mainproc.c:611 g10/mainproc.c:620
msgid "WARNING: invalid notation data found\n"
msgstr "AVISO: dados de nota��o inv�lidos encontrados\n"
-#: g10/mainproc.c:599
+#: g10/mainproc.c:623
msgid "Notation: "
msgstr "Nota��o: "
-#: g10/mainproc.c:606
+#: g10/mainproc.c:630
msgid "Policy: "
msgstr "Pol�tica: "
-#: g10/mainproc.c:1025
+#: g10/mainproc.c:1057
msgid "signature verification suppressed\n"
msgstr "verifica��o de assinatura suprimida\n"
-#: g10/mainproc.c:1031
+#: g10/mainproc.c:1063
#, c-format
msgid "Signature made %.*s using %s key ID %08lX\n"
msgstr "Assinatura feita em %.*s usando %s, ID da chave %08lX\n"
#. just in case that we have no userid
-#: g10/mainproc.c:1057 g10/mainproc.c:1068
+#: g10/mainproc.c:1089 g10/mainproc.c:1100
msgid "BAD signature from \""
msgstr "Assinatura INCORRETA de \""
-#: g10/mainproc.c:1058 g10/mainproc.c:1069
+#: g10/mainproc.c:1090 g10/mainproc.c:1101
msgid "Good signature from \""
msgstr "Assinatura correta de \""
-#: g10/mainproc.c:1060
+#: g10/mainproc.c:1092
msgid " aka \""
msgstr " ou \""
-#: g10/mainproc.c:1115
+#: g10/mainproc.c:1148
#, c-format
msgid "Can't check signature: %s\n"
msgstr "Imposs�vel verificar assinatura: %s\n"
-#: g10/mainproc.c:1212
+#: g10/mainproc.c:1209
+#, c-format
+msgid "standalone signature of class 0x%02x\n"
+msgstr "assinatura isolada da classe 0x%02x\n"
+
+#: g10/mainproc.c:1250
msgid "old style (PGP 2.x) signature\n"
msgstr "formato de assinatura antigo (PGP2.x)\n"
-#: g10/mainproc.c:1217
+#: g10/mainproc.c:1255
msgid "invalid root packet detected in proc_tree()\n"
msgstr "pacote raiz inv�lido detectado em proc_tree()\n"
@@ -2541,12 +2658,12 @@ msgstr ""
"este algoritmo de criptografia � depreciado; por favor use algum\n"
"algoritmo padr�o!\n"
-#: g10/parse-packet.c:113
+#: g10/parse-packet.c:115
#, c-format
msgid "can't handle public key algorithm %d\n"
msgstr "imposs�vel manipular algoritmo de chave p�blica %d\n"
-#: g10/parse-packet.c:939
+#: g10/parse-packet.c:956
#, c-format
msgid "subpacket of type %d has critical bit set\n"
msgstr "subpacote do tipo %d tem bit cr�tico ligado\n"
@@ -2587,15 +2704,19 @@ msgstr "Repita a frase secreta: "
msgid "data not saved; use option \"--output\" to save it\n"
msgstr "dados n�o salvos; use a op��o \"--output\" para salv�-los\n"
-#: g10/plaintext.c:315
+#: g10/plaintext.c:317
+msgid "Detached signature.\n"
+msgstr "Assinatura separada.\n"
+
+#: g10/plaintext.c:321
msgid "Please enter name of data file: "
msgstr "Por favor digite o nome do arquivo de dados: "
-#: g10/plaintext.c:336
+#: g10/plaintext.c:342
msgid "reading stdin ...\n"
msgstr "lendo de \"stdin\" ...\n"
-#: g10/plaintext.c:379
+#: g10/plaintext.c:385
#, c-format
msgid "can't open signed data `%s'\n"
msgstr "imposs�vel abrir dados assinados `%s'\n"
@@ -2613,525 +2734,589 @@ 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"
-#: g10/pubkey-enc.c:191
+#: g10/pubkey-enc.c:156
+#, fuzzy, c-format
+msgid "cipher algorithm %d is unknown or disabled\n"
+msgstr "algoritmo de prote��o %d n�o � suportado\n"
+
+#: g10/pubkey-enc.c:195
#, c-format
msgid "NOTE: cipher algorithm %d not found in preferences\n"
msgstr "NOTA: algoritmo de criptografia %d n�o encontrado nas prefer�ncias\n"
-#: g10/seckey-cert.c:55
+#: g10/pubkey-enc.c:201
+#, fuzzy, c-format
+msgid "NOTE: secret key %08lX expired at %s\n"
+msgstr "NOTA: chave de assinatura expirou %s\n"
+
+#: g10/hkp.c:62
+#, c-format
+msgid "requesting key %08lX from %s ...\n"
+msgstr ""
+
+#: g10/hkp.c:75
+#, fuzzy, c-format
+msgid "can't get key from keyserver: %s\n"
+msgstr "imposs�vel escrever para o chaveiro: %s\n"
+
+#: g10/hkp.c:98 g10/hkp.c:136
+msgid "no keyserver known (use option --keyserver)\n"
+msgstr ""
+
+#: g10/hkp.c:106
+#, fuzzy, c-format
+msgid "%s: not a valid key ID\n"
+msgstr "%s n�o � um mapa de caracteres v�lido\n"
+
+#: g10/hkp.c:158
+#, fuzzy, c-format
+msgid "can't connect to `%s': %s\n"
+msgstr "imposs�vel abrir `%s': %s\n"
+
+#: g10/hkp.c:182
+#, fuzzy, c-format
+msgid "error sending to `%s': %s\n"
+msgstr "erro na leitura de `%s': %s\n"
+
+#: g10/hkp.c:194
+#, c-format
+msgid "success sending to `%s' (status=%u)\n"
+msgstr ""
+
+#: g10/hkp.c:197
+#, c-format
+msgid "failed sending to `%s': status=%u\n"
+msgstr ""
+
+#: g10/seckey-cert.c:53
+#, fuzzy
+msgid "secret key parts are not available\n"
+msgstr "chave secreta n�o dispon�vel"
+
+#: g10/seckey-cert.c:59
#, c-format
msgid "protection algorithm %d is not supported\n"
msgstr "algoritmo de prote��o %d n�o � suportado\n"
-#: g10/seckey-cert.c:171
+#: g10/seckey-cert.c:175
msgid "Invalid passphrase; please try again ...\n"
msgstr "Frase secreta inv�lida; por favor tente novamente ...\n"
-#: g10/seckey-cert.c:227
+#: g10/seckey-cert.c:231
msgid "WARNING: Weak key detected - please change passphrase again.\n"
msgstr ""
"AVISO: Chave fraca detectada - por favor mude a frase secreta novamente.\n"
-#: g10/sig-check.c:199
+#: g10/sig-check.c:202
msgid "assuming bad MDC due to an unknown critical bit\n"
msgstr "assumindo MDC incorreto devido a um bit cr�tico desconhecido\n"
-#: g10/sig-check.c:295
+#: g10/sig-check.c:300
msgid ""
"this is a PGP generated ElGamal key which is NOT secure for signatures!\n"
msgstr ""
"esta � uma chave ElGamal gerada pelo PGP que N�O � segura para assinaturas!\n"
-#: g10/sig-check.c:303
+#: g10/sig-check.c:308
#, c-format
msgid "public key is %lu second newer than the signature\n"
msgstr "a chave p�blica � %lu segundo mais nova que a assinatura\n"
-#: g10/sig-check.c:304
+#: g10/sig-check.c:309
#, c-format
msgid "public key is %lu seconds newer than the signature\n"
msgstr "a chave p�blica � %lu segundos mais nova que a assinatura\n"
-#: g10/sig-check.c:320
+#: g10/sig-check.c:327
#, c-format
msgid "NOTE: signature key expired %s\n"
msgstr "NOTA: chave de assinatura expirou %s\n"
-#: g10/sig-check.c:377
+#: g10/sig-check.c:385
msgid "assuming bad signature due to an unknown critical bit\n"
msgstr "assumindo assinatura incorreta devido a um bit cr�tico desconhecido\n"
-#: g10/sign.c:132
+#: g10/sign.c:139
#, c-format
msgid "%s signature from: %s\n"
msgstr "assinatura %s de: %s\n"
-#: g10/sign.c:263 g10/sign.c:575
+#: g10/sign.c:270 g10/sign.c:582
#, c-format
msgid "can't create %s: %s\n"
msgstr "imposs�vel criar %s: %s\n"
-#: g10/sign.c:361
+#: g10/sign.c:368
msgid "signing:"
msgstr "assinando:"
-#: g10/sign.c:404
+#: g10/sign.c:411
#, c-format
msgid "WARNING: `%s' is an empty file\n"
msgstr "AVISO: `%s' � um arquivo vazio\n"
-#: g10/textfilter.c:128
+#: g10/textfilter.c:134
#, 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"
-#: g10/textfilter.c:197
+#: g10/textfilter.c:231
#, c-format
msgid "input line longer than %d characters\n"
msgstr "linha de entrada maior que %d caracteres\n"
-#: g10/tdbio.c:121 g10/tdbio.c:1635
+#: g10/tdbio.c:116 g10/tdbio.c:1623
#, c-format
msgid "trustdb rec %lu: lseek failed: %s\n"
msgstr "banco de dados de confiabilidade rec %lu: lseek falhou: %s\n"
-#: g10/tdbio.c:127 g10/tdbio.c:1642
+#: g10/tdbio.c:122 g10/tdbio.c:1630
#, c-format
msgid "trustdb rec %lu: write failed (n=%d): %s\n"
msgstr "banco de dados de confiabilidade rec %lu: escrita falhou (n=%d): %s\n"
-#: g10/tdbio.c:237
+#: g10/tdbio.c:232
msgid "trustdb transaction too large\n"
msgstr "transa��o de banco de dados de confiabilidade muito grande\n"
-#: g10/tdbio.c:429
+#: g10/tdbio.c:424
#, c-format
msgid "%s: can't access: %s\n"
msgstr "%s: imposs�vel acessar: %s\n"
-#: g10/ringedit.c:298 g10/tdbio.c:445
-#, c-format
-msgid "%s: can't create directory: %s\n"
-msgstr "%s: imposs�vel criar diret�rio: %s\n"
-
-#: g10/ringedit.c:304 g10/tdbio.c:448
-#, c-format
-msgid "%s: directory created\n"
-msgstr "%s: diret�rio criado\n"
-
-#: g10/tdbio.c:452
+#: g10/tdbio.c:438
#, c-format
msgid "%s: directory does not exist!\n"
msgstr "%s: diret�rio inexistente!\n"
-#: g10/openfile.c:182 g10/openfile.c:253 g10/ringedit.c:1348 g10/tdbio.c:458
+#: g10/openfile.c:216 g10/openfile.c:284 g10/ringedit.c:1363 g10/tdbio.c:444
#, c-format
msgid "%s: can't create: %s\n"
msgstr "%s: imposs�vel criar: %s\n"
-#: g10/tdbio.c:473 g10/tdbio.c:522
+#: g10/tdbio.c:459 g10/tdbio.c:508
#, c-format
msgid "%s: can't create lock\n"
msgstr "%s: imposs�vel criar trava\n"
-#: g10/tdbio.c:487
+#: g10/tdbio.c:473
#, c-format
msgid "%s: failed to create version record: %s"
msgstr "%s: falha ao criar registro de vers�o: %s"
-#: g10/tdbio.c:491
+#: g10/tdbio.c:477
#, c-format
msgid "%s: invalid trustdb created\n"
msgstr "%s: banco de dados de confiabilidade inv�lido criado\n"
-#: g10/tdbio.c:494
+#: g10/tdbio.c:480
#, c-format
msgid "%s: trustdb created\n"
msgstr "%s: banco de dados de confiabilidade criado\n"
-#: g10/tdbio.c:531
+#: g10/tdbio.c:517
#, c-format
msgid "%s: invalid trustdb\n"
msgstr "%s: banco de dados de confiabilidade inv�lido\n"
-#: g10/tdbio.c:564
+#: g10/tdbio.c:550
#, c-format
msgid "%s: failed to create hashtable: %s\n"
msgstr "%s: falha ao criar tabela de \"hash\": %s\n"
-#: g10/tdbio.c:572
+#: g10/tdbio.c:558
#, c-format
msgid "%s: error updating version record: %s\n"
msgstr "%s: erro atualizando registro de vers�o: %s\n"
-#: g10/tdbio.c:588 g10/tdbio.c:627 g10/tdbio.c:649 g10/tdbio.c:679
-#: g10/tdbio.c:704 g10/tdbio.c:1568 g10/tdbio.c:1595
+#: g10/tdbio.c:574 g10/tdbio.c:613 g10/tdbio.c:635 g10/tdbio.c:665
+#: g10/tdbio.c:690 g10/tdbio.c:1556 g10/tdbio.c:1583
#, c-format
msgid "%s: error reading version record: %s\n"
msgstr "%s: erro lendo registro de vers�o: %s\n"
-#: g10/tdbio.c:601 g10/tdbio.c:660
+#: g10/tdbio.c:587 g10/tdbio.c:646
#, c-format
msgid "%s: error writing version record: %s\n"
msgstr "%s: erro escrevendo registro de vers�o: %s\n"
-#: g10/tdbio.c:1247
+#: g10/tdbio.c:1235
#, c-format
msgid "trustdb: lseek failed: %s\n"
msgstr "banco de dados de confiabilidade: lseek falhou: %s\n"
-#: g10/tdbio.c:1255
+#: g10/tdbio.c:1243
#, c-format
msgid "trustdb: read failed (n=%d): %s\n"
msgstr "banco de dados de confiabilidade: leitura falhou (n=%d): %s\n"
-#: g10/tdbio.c:1276
+#: g10/tdbio.c:1264
#, c-format
msgid "%s: not a trustdb file\n"
msgstr "%s: n�o � um banco de dados de confiabilidade\n"
-#: g10/tdbio.c:1292
+#: g10/tdbio.c:1280
#, c-format
msgid "%s: version record with recnum %lu\n"
msgstr "%s: registro de vers�o com recnum %lu\n"
-#: g10/tdbio.c:1297
+#: g10/tdbio.c:1285
#, c-format
msgid "%s: invalid file version %d\n"
msgstr "%s: vers�o de arquivo inv�lida %d\n"
-#: g10/tdbio.c:1601
+#: g10/tdbio.c:1589
#, c-format
msgid "%s: error reading free record: %s\n"
msgstr "%s: erro lendo registro livre: %s\n"
-#: g10/tdbio.c:1609
+#: g10/tdbio.c:1597
#, c-format
msgid "%s: error writing dir record: %s\n"
msgstr "%s: erro escrevendo registro de diret�rio: %s\n"
-#: g10/tdbio.c:1619
+#: g10/tdbio.c:1607
#, c-format
msgid "%s: failed to zero a record: %s\n"
msgstr "%s: falha ao zerar um registro: %s\n"
-#: g10/tdbio.c:1649
+#: g10/tdbio.c:1637
#, c-format
msgid "%s: failed to append a record: %s\n"
msgstr "%s: falha ao anexar um registro: %s\n"
-#: g10/tdbio.c:1760
+#: g10/tdbio.c:1748
msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
msgstr ""
"O banco de dados de confiabilidade est� danificado; por favor rode\n"
"\"gpg --fix-trust-db\".\n"
-#: g10/trustdb.c:160
+#: g10/trustdb.c:168
#, c-format
msgid "trust record %lu, req type %d: read failed: %s\n"
msgstr "registro de confian�a %lu, tipo req %d: falha na leitura: %s\n"
-#: g10/trustdb.c:175
+#: g10/trustdb.c:183
#, c-format
msgid "trust record %lu, type %d: write failed: %s\n"
msgstr "registro de confian�a %lu, tipo %d: escrita falhou: %s\n"
-#: g10/trustdb.c:189
+#: g10/trustdb.c:197
#, c-format
msgid "trust record %lu: delete failed: %s\n"
msgstr "registro de confian�a %lu: remo��o falhou: %s\n"
-#: g10/trustdb.c:203
+#: g10/trustdb.c:211
#, c-format
msgid "trustdb: sync failed: %s\n"
msgstr "banco de dados de confiabilidade: sincroniza��o falhou: %s\n"
-#: g10/trustdb.c:347
+#: g10/trustdb.c:376
#, c-format
msgid "error reading dir record for LID %lu: %s\n"
msgstr "erro lendo registro de diret�rio para LID %lu: %s\n"
-#: g10/trustdb.c:354
+#: g10/trustdb.c:383
#, c-format
msgid "lid %lu: expected dir record, got type %d\n"
msgstr "lid %lu: registro de diret�rio esperado, tipo %d recebido\n"
-#: g10/trustdb.c:359
+#: g10/trustdb.c:388
#, c-format
msgid "no primary key for LID %lu\n"
msgstr "nenhuma chave prim�ria para LID %lu\n"
-#: g10/trustdb.c:364
+#: g10/trustdb.c:393
#, c-format
msgid "error reading primary key for LID %lu: %s\n"
msgstr "erro lendo chave prim�ria para LID %lu: %s\n"
-#: g10/trustdb.c:403
+#: g10/trustdb.c:432
#, c-format
msgid "get_dir_record: search_record failed: %s\n"
msgstr "get_dir_record: search_record falhou: %s\n"
-#: g10/trustdb.c:458
+#: g10/trustdb.c:487
#, c-format
msgid "NOTE: secret key %08lX is NOT protected.\n"
msgstr "NOTA: a chave secreta %08lX N�O est� protegida.\n"
-#: g10/trustdb.c:466
+#: g10/trustdb.c:495
#, c-format
msgid "key %08lX: secret key without public key - skipped\n"
msgstr "chave %08lX: chave secreta sem chave p�blica - ignorada\n"
-#: g10/trustdb.c:473
+#: g10/trustdb.c:502
#, c-format
msgid "key %08lX: secret and public key don't match\n"
msgstr "chave %08lX: chaves secreta e p�blica n�o s�o correspondentes\n"
-#: g10/trustdb.c:485
+#: g10/trustdb.c:514
#, c-format
msgid "key %08lX: can't put it into the trustdb\n"
msgstr ""
"chave %08lX: imposs�vel coloc�-la no banco de dados de confiabilidade\n"
-#: g10/trustdb.c:491
+#: g10/trustdb.c:520
#, c-format
msgid "key %08lX: query record failed\n"
msgstr "chave %08lX: pedido de registro falhou\n"
-#: g10/trustdb.c:500
+#: g10/trustdb.c:529
#, c-format
msgid "key %08lX: already in trusted key table\n"
msgstr "chave %08lX: j� est� na tabela de chaves confi�veis\n"
-#: g10/trustdb.c:503
+#: g10/trustdb.c:532
#, c-format
msgid "key %08lX: accepted as trusted key.\n"
msgstr "chave %08lX: aceita como chave confi�vel.\n"
-#: g10/trustdb.c:511
+#: g10/trustdb.c:540
#, c-format
msgid "enumerate secret keys failed: %s\n"
msgstr "enumera��o de chaves secretas falhou: %s\n"
-#: g10/trustdb.c:877
+#: g10/trustdb.c:921
#, c-format
msgid "key %08lX.%lu: Good subkey binding\n"
msgstr "chave %08lX.%lu: Liga��o de subchave v�lida\n"
-#: g10/trustdb.c:883 g10/trustdb.c:918
+#: g10/trustdb.c:927 g10/trustdb.c:962
#, c-format
msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
msgstr "chave %08lX.%lu: Liga��o de subchave inv�lida: %s\n"
-#: g10/trustdb.c:895
+#: g10/trustdb.c:939
#, c-format
msgid "key %08lX.%lu: Valid key revocation\n"
msgstr "chave %08lX.%lu: Revoga��o de chave v�lida\n"
-#: g10/trustdb.c:901
+#: g10/trustdb.c:945
#, c-format
msgid "key %08lX.%lu: Invalid key revocation: %s\n"
msgstr "chave %08lX.%lu: Revoga��o de chave inv�lida: %s\n"
-#: g10/trustdb.c:912
+#: g10/trustdb.c:956
#, c-format
msgid "key %08lX.%lu: Valid subkey revocation\n"
msgstr "chave %08lX.%lu: Revoga��o de subchave v�lida\n"
-#: g10/trustdb.c:1023
+#: g10/trustdb.c:1067
msgid "Good self-signature"
msgstr "Auto-assinatura v�lida"
-#: g10/trustdb.c:1033
+#: g10/trustdb.c:1077
msgid "Invalid self-signature"
msgstr "Auto-assinatura inv�lida"
-#: g10/trustdb.c:1060
+#: g10/trustdb.c:1104
msgid "Valid user ID revocation skipped due to a newer self signature"
msgstr ""
"Revoga��o v�lida de ID de usu�rio ignorada devido a nova auto-assinatura"
-#: g10/trustdb.c:1066
+#: g10/trustdb.c:1110
msgid "Valid user ID revocation"
msgstr "Revoga��o de ID de usu�rio v�lida"
-#: g10/trustdb.c:1071
+#: g10/trustdb.c:1115
msgid "Invalid user ID revocation"
msgstr "Revoga��o de ID de usu�rio inv�lida"
-#: g10/trustdb.c:1112
+#: g10/trustdb.c:1157
msgid "Valid certificate revocation"
msgstr "Certificado de revoga��o v�lido"
-#: g10/trustdb.c:1113
+#: g10/trustdb.c:1158
msgid "Good certificate"
msgstr "Certificado correto"
-#: g10/trustdb.c:1134
+#: g10/trustdb.c:1186
msgid "Invalid certificate revocation"
msgstr "Certificado de revoga��o inv�lido"
-#: g10/trustdb.c:1135
+#: g10/trustdb.c:1187
msgid "Invalid certificate"
msgstr "Certificado inv�lido"
-#: g10/trustdb.c:1152 g10/trustdb.c:1156
+#: g10/trustdb.c:1204 g10/trustdb.c:1208
#, c-format
msgid "sig record %lu[%d] points to wrong record.\n"
msgstr "registro de assinatura %lu[%d] aponta para registro errado.\n"
-#: g10/trustdb.c:1208
+#: g10/trustdb.c:1267
msgid "duplicated certificate - deleted"
msgstr "certificado duplicado - removido"
-#: g10/trustdb.c:1514
+#: g10/trustdb.c:1584
#, c-format
msgid "tdbio_search_dir failed: %s\n"
msgstr "tdbio_search_dir falhou: %s\n"
-#: g10/trustdb.c:1636
+#: g10/trustdb.c:1718
#, c-format
msgid "lid ?: insert failed: %s\n"
msgstr "lid ?: inser��o falhou: %s\n"
-#: g10/trustdb.c:1641
+#: g10/trustdb.c:1723
#, c-format
msgid "lid %lu: insert failed: %s\n"
msgstr "lid %lu: inser��o falhou: %s\n"
-#: g10/trustdb.c:1647
+#: g10/trustdb.c:1729
#, c-format
msgid "lid %lu: inserted\n"
msgstr "lid %lu: inserido\n"
-#: g10/trustdb.c:1652
+#: g10/trustdb.c:1734
#, c-format
msgid "error reading dir record: %s\n"
msgstr "erro lendo registro de diret�rio: %s\n"
-#: g10/trustdb.c:1660 g10/trustdb.c:1714
+#: g10/trustdb.c:1742 g10/trustdb.c:1805
#, c-format
msgid "%lu keys processed\n"
msgstr "%lu chaves processadas\n"
-#: g10/trustdb.c:1662 g10/trustdb.c:1718
+#: g10/trustdb.c:1744 g10/trustdb.c:1811
#, c-format
msgid "\t%lu keys with errors\n"
msgstr "\t%lu chaves com erros\n"
-#: g10/trustdb.c:1664
+#: g10/trustdb.c:1746
#, c-format
msgid "\t%lu keys inserted\n"
msgstr "\t%lu chaves inseridas\n"
-#: g10/trustdb.c:1667
+#: g10/trustdb.c:1749
#, c-format
msgid "enumerate keyblocks failed: %s\n"
msgstr "enumera��o de blocos de chaves falhou: %s\n"
-#: g10/trustdb.c:1705
+#: g10/trustdb.c:1797
#, c-format
msgid "lid %lu: dir record w/o key - skipped\n"
msgstr "lid %lu: registro de diret�rio sem chave - ignorado\n"
-#: g10/trustdb.c:1716
+#: g10/trustdb.c:1807
+#, c-format
+msgid "\t%lu due to new pubkeys\n"
+msgstr "\t%lu devido a novas chaves p�blicas\n"
+
+#: g10/trustdb.c:1809
#, c-format
msgid "\t%lu keys skipped\n"
msgstr "\t%lu chaves ignoradas\n"
-#: g10/trustdb.c:1720
+#: g10/trustdb.c:1813
#, c-format
msgid "\t%lu keys updated\n"
msgstr "\t%lu chaves atualizadas\n"
-#: g10/trustdb.c:2057
+#: g10/trustdb.c:2158
msgid "Ooops, no keys\n"
msgstr "Ooops, nenhuma chave\n"
-#: g10/trustdb.c:2061
+#: g10/trustdb.c:2162
msgid "Ooops, no user IDs\n"
msgstr "Ooops, nenhum ID de usu�rio\n"
-#: g10/trustdb.c:2218
+#: g10/trustdb.c:2320
#, c-format
msgid "check_trust: search dir record failed: %s\n"
msgstr "check_trust: busca de registro de diret�rio falhou: %s\n"
-#: g10/trustdb.c:2227
+#: g10/trustdb.c:2329
#, c-format
msgid "key %08lX: insert trust record failed: %s\n"
msgstr "chave %08lX: inser��o de registro de confian�a falhou: %s\n"
-#: g10/trustdb.c:2231
+#: g10/trustdb.c:2333
#, c-format
msgid "key %08lX.%lu: inserted into trustdb\n"
msgstr "chave %08lX.%lu: inserida no banco de dados de confiabilidade\n"
-#: g10/trustdb.c:2239
+#: g10/trustdb.c:2341
#, c-format
msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
msgstr ""
"chave %08lX.%lu: criada no futuro (viagem no tempo ou problema no relogio)\n"
-#: g10/trustdb.c:2248
+#: g10/trustdb.c:2356
#, c-format
msgid "key %08lX.%lu: expired at %s\n"
msgstr "chave %08lX.%lu: expirou em %s\n"
-#: g10/trustdb.c:2256
+#: g10/trustdb.c:2364
#, c-format
msgid "key %08lX.%lu: trust check failed: %s\n"
msgstr "chave %08lX.%lu: verifica��o de confian�a falhou: %s\n"
-#: g10/trustdb.c:2362
+#: g10/trustdb.c:2515
#, c-format
msgid "user '%s' not found: %s\n"
msgstr "usu�rio `%s' n�o encontrado: %s\n"
-#: g10/trustdb.c:2364
+#: g10/trustdb.c:2517
#, c-format
msgid "problem finding '%s' in trustdb: %s\n"
msgstr "problemas na procura de `%s' no banco de dados de confiabilidade: %s\n"
-#: g10/trustdb.c:2367
+#: g10/trustdb.c:2520
#, c-format
msgid "user '%s' not in trustdb - inserting\n"
msgstr ""
"usu�rio `%s' n�o encontrado no banco de dados de confiabilidade - inserindo\n"
-#: g10/trustdb.c:2370
+#: g10/trustdb.c:2523
#, c-format
msgid "failed to put '%s' into trustdb: %s\n"
msgstr "falha ao colocar `%s' no banco de dados de confiabilidade: %s\n"
-#: g10/trustdb.c:2556 g10/trustdb.c:2586
+#: g10/trustdb.c:2709 g10/trustdb.c:2739
msgid "WARNING: can't yet handle long pref records\n"
msgstr "AVISO: ainda � imposs�vel manipular registros de prefer�ncias longos\n"
-#: g10/ringedit.c:318
+#: g10/verify.c:82
+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 ""
+"a assinatura n�o p�de ser verificada.\n"
+"Por favor lembre-se de que o arquivo com a assinatura (.sig ou .asc)\n"
+"deve ser o primeiro arquivo dado na linha de comando.\n"
+
+#: g10/verify.c:147
+#, c-format
+msgid "input line %u too long or missing LF\n"
+msgstr "linha %u muito longa ou sem LF\n"
+
+#: g10/ringedit.c:302
#, c-format
msgid "%s: can't create keyring: %s\n"
msgstr "%s: imposs�vel criar chaveiro: %s\n"
-#: g10/ringedit.c:335 g10/ringedit.c:1353
+#: g10/ringedit.c:319 g10/ringedit.c:1368
#, c-format
msgid "%s: keyring created\n"
msgstr "%s: chaveiro criado\n"
-#: g10/ringedit.c:1530
+#: g10/ringedit.c:1545
msgid "WARNING: 2 files with confidential information exists.\n"
msgstr "AVISO: existem 2 arquivos com informa��es confidenciais.\n"
-#: g10/ringedit.c:1531
+#: g10/ringedit.c:1546
#, c-format
msgid "%s is the unchanged one\n"
msgstr "%s � o n�o modificado\n"
-#: g10/ringedit.c:1532
+#: g10/ringedit.c:1547
#, c-format
msgid "%s is the new one\n"
msgstr "%s � o novo\n"
-#: g10/ringedit.c:1533
+#: g10/ringedit.c:1548
msgid "Please fix this possible security flaw\n"
msgstr "Por favor conserte este poss�vel furo de seguran�a\n"
@@ -3156,38 +3341,54 @@ msgstr ""
"para assinaturas!\n"
#. do not overwrite
-#: g10/openfile.c:65
+#: g10/openfile.c:79
#, c-format
msgid "File `%s' exists. "
msgstr "Arquivo `%s' j� existe. "
-#: g10/openfile.c:67
+#: g10/openfile.c:81
msgid "Overwrite (y/N)? "
msgstr "Sobrescrever (s/N)? "
-#: g10/openfile.c:97
+#: g10/openfile.c:109
#, c-format
msgid "%s: unknown suffix\n"
msgstr "%s: sufixo desconhecido\n"
-#: g10/openfile.c:119
+#: g10/openfile.c:131
msgid "Enter new filename"
msgstr "Digite novo nome de arquivo"
-#: g10/openfile.c:160
+#: g10/openfile.c:172
msgid "writing to stdout\n"
msgstr "escrevendo em \"stdout\"\n"
-#: g10/openfile.c:219
+#: g10/openfile.c:250
#, c-format
msgid "assuming signed data in `%s'\n"
msgstr "assumindo dados assinados em `%s'\n"
-#: g10/openfile.c:269
+#: g10/openfile.c:300
#, c-format
msgid "%s: new options file created\n"
msgstr "%s: novo arquivo de op��es criado\n"
+#: g10/openfile.c:313
+#, c-format
+msgid "%s: can't create directory: %s\n"
+msgstr "%s: imposs�vel criar diret�rio: %s\n"
+
+#: g10/openfile.c:316
+#, c-format
+msgid "%s: directory created\n"
+msgstr "%s: diret�rio criado\n"
+
+#: g10/openfile.c:318
+msgid "you have to start GnuPG again, so it can read the new options file\n"
+msgstr ""
+"voc� deve reiniciar o GnuPG, para que ele possa ler o novo arquivo\n"
+"de op��es\n"
+
#: g10/encr-data.c:66
#, c-format
msgid "%s encrypted data\n"
@@ -3216,28 +3417,25 @@ msgstr ""
"imposs�vel evitar chave fraca para criptografia sim�trica;\n"
"%d tentativas!\n"
-#: g10/delkey.c:93
-#, fuzzy
+#: g10/delkey.c:94
msgid "there is a secret key for this public key!\n"
-msgstr "remover a chave do chaveiro p�blico"
+msgstr "h� uma chave secreta para esta chave p�blica!\n"
-#: g10/delkey.c:95
+#: g10/delkey.c:96
msgid "use option \"--delete-secret-key\" to delete it first.\n"
-msgstr ""
+msgstr "use a op��o \"--delete-secret-key\" para delet�-la antes.\n"
-#: g10/delkey.c:111
-#, fuzzy
+#: g10/delkey.c:114
msgid "can't do that in batchmode without \"--yes\"\n"
-msgstr "imposs�vel fazer isso em modo n�o-interativo\n"
+msgstr "imposs�vel fazer isso em modo n�o-interativo sem \"--yes\"\n"
-#: g10/delkey.c:133
-#, fuzzy
+#: g10/delkey.c:136
msgid "Delete this key from the keyring? "
-msgstr "remover a chave do chaveiro p�blico"
+msgstr "Deletar esta chave do chaveiro? "
-#: g10/delkey.c:141
+#: g10/delkey.c:144
msgid "This is a secret key! - really delete? "
-msgstr ""
+msgstr "Esta � uma chave secreta! - realmente deletar? "
#: g10/helptext.c:47
msgid ""
@@ -3450,15 +3648,59 @@ msgstr ""
"Por favor digite um novo nome de arquivo. Se voc� apenas apertar RETURN o\n"
"arquivo padr�o (que � mostrado em colchetes) ser� usado."
-#: g10/helptext.c:237
+#: g10/helptext.c:229
+msgid ""
+"You should specify a reason for the certification. Depending on the\n"
+"context you have the ability to choose from this list:\n"
+" \"Key has been compromised\"\n"
+" Use this if you have a reason to believe that unauthorized persons\n"
+" got access to your secret key.\n"
+" \"Key is superseeded\"\n"
+" Use this if you have replaced this key with a newer one.\n"
+" \"Key is no longer used\"\n"
+" Use this if you have retired this key.\n"
+" \"User ID is no longer valid\"\n"
+" 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 ""
+
+#: g10/helptext.c:245
+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 ""
+
+#: g10/helptext.c:260
msgid "No help available"
msgstr "Nenhuma ajuda dispon�vel"
-#: g10/helptext.c:245
+#: g10/helptext.c:268
#, c-format
msgid "No help available for `%s'"
msgstr "Nenhuma ajuda dispon�vel para `%s'"
+#~ msgid "set debugging flags"
+#~ msgstr "definir par�metros de depura��o"
+
+#~ msgid "enable full debugging"
+#~ msgstr "habilitar depura��o completa"
+
+#~ msgid "do not write comment packets"
+#~ msgstr "n�o escrever pacotes de coment�rio"
+
+#~ msgid "(default is 1)"
+#~ msgstr "(o padr�o � 1)"
+
+#~ msgid "(default is 3)"
+#~ msgstr "(o padr�o � 3)"
+
+#~ msgid " (%d) ElGamal in a v3 packet\n"
+#~ msgstr " (%d) ElGamal em um pacote v3\n"
+
+#~ msgid "Key generation can only be used in interactive mode\n"
+#~ msgstr "A gera��o de chaves s� pode ser feita em modo interativo\n"
+
#, fuzzy
#~ msgid "tdbio_search_sdir failed: %s\n"
#~ msgstr "tdbio_search_dir falhou: %s\n"
@@ -3561,9 +3803,6 @@ msgstr "Nenhuma ajuda dispon�vel para `%s'"
#~ msgid "read error: %s\n"
#~ msgstr "erro de leitura: %s\n"
-#~ msgid "can't write to keyring: %s\n"
-#~ msgstr "imposs�vel escrever para o chaveiro: %s\n"
-
#~ msgid "writing keyblock\n"
#~ msgstr "escrevendo bloco de chaves\n"
@@ -3602,10 +3841,6 @@ msgstr "Nenhuma ajuda dispon�vel para `%s'"
#~ msgstr "sigrec em cadeia %lu possui dono errado\n"
#, fuzzy
-#~ msgid "'%s' is not a valid long keyID\n"
-#~ msgstr "%s n�o � um mapa de caracteres v�lido\n"
-
-#, fuzzy
#~ msgid "key %08lX: no public key for trusted key - skipped\n"
#~ msgstr "chave %08lX: chave secreta sem chave p�blica - ignorada\n"
diff --git a/po/pt_PT.po b/po/pt_PT.po
index 03d6e51cf..2d4211a93 100644
--- a/po/pt_PT.po
+++ b/po/pt_PT.po
@@ -7,23 +7,23 @@
msgid ""
msgstr ""
"Project-Id-Version: gnupg\n"
-"POT-Creation-Date: 1999-09-05 19:21+0200\n"
+"POT-Creation-Date: 2000-05-30 13:59+0200\n"
"PO-Revision-Date: 1999-09-09 20:28+0000\n"
"Last-Translator: Pedro Morais <[email protected]>\n"
"Language-Team: pt\n"
+"MIME-Version:\n"
"Content-Type:\n"
"Content-Transfer-Encoding:\n"
-"MIME-Version:\n"
#: util/secmem.c:79
msgid "Warning: using insecure memory!\n"
msgstr "Aviso: a utilizar mem�ria insegura!\n"
-#: util/secmem.c:275
+#: util/secmem.c:287
msgid "operation is not possible without initialized secure memory\n"
msgstr "a opera��o n�o � poss�vel sem mem�ria segura inicializada\n"
-#: util/secmem.c:276
+#: util/secmem.c:288
msgid "(you may have used the wrong program for this task)\n"
msgstr "(voc� pode ter usado o programa errado para esta tarefa)\n"
@@ -44,7 +44,7 @@ msgid "nN"
msgstr "nN"
# INICIO MENU
-#: g10/keyedit.c:564 util/miscutil.c:308
+#: g10/keyedit.c:580 util/miscutil.c:308
msgid "quit"
msgstr "sair"
@@ -244,21 +244,77 @@ msgstr "erro na rede"
msgid "not encrypted"
msgstr "n�o encriptado"
-#: util/logger.c:218
+#: util/errors.c:103
+msgid "not processed"
+msgstr "n�o processado"
+
+#: util/logger.c:224
#, c-format
msgid "... this is a bug (%s:%d:%s)\n"
msgstr "... isto � um bug (%s:%d:%s)\n"
-#: util/logger.c:224
+#: util/logger.c:230
#, c-format
msgid "you found a bug ... (%s:%d)\n"
msgstr "voc� encontrou um bug ... (%s:%d)\n"
-#: cipher/random.c:452
+#: cipher/random.c:311 g10/import.c:127 g10/keygen.c:1150
+#, c-format
+msgid "can't open `%s': %s\n"
+msgstr "imposs�vel abrir `%s': %s\n"
+
+#: cipher/random.c:315
+#, fuzzy, c-format
+msgid "can't stat `%s': %s\n"
+msgstr "imposs�vel abrir `%s': %s\n"
+
+#: cipher/random.c:320
+#, c-format
+msgid "`%s' is not a regular file - ignored\n"
+msgstr ""
+
+#: cipher/random.c:325
+msgid "note: random_seed file is empty\n"
+msgstr ""
+
+#: cipher/random.c:331
+msgid "warning: invalid size of random_seed file - not used\n"
+msgstr ""
+
+#: cipher/random.c:339
+#, fuzzy, c-format
+msgid "can't read `%s': %s\n"
+msgstr "imposs�vel abrir `%s': %s\n"
+
+#: cipher/random.c:377
+msgid "note: random_seed file not updated\n"
+msgstr ""
+
+#: cipher/random.c:397
+#, fuzzy, c-format
+msgid "can't create `%s': %s\n"
+msgstr "imposs�vel criar %s: %s\n"
+
+#: cipher/random.c:404
+#, fuzzy, c-format
+msgid "can't write `%s': %s\n"
+msgstr "imposs�vel abrir `%s': %s\n"
+
+#: cipher/random.c:407
+#, fuzzy, c-format
+msgid "can't close `%s': %s\n"
+msgstr "imposs�vel abrir `%s': %s\n"
+
+#: cipher/random.c:418
+#, c-format
+msgid "too many random bits requested; the limit is %d\n"
+msgstr ""
+
+#: cipher/random.c:647
msgid "WARNING: using insecure random number generator!!\n"
msgstr "AVISO: a utilizar gerador de n�meros aleat�rios inseguro!\n"
-#: cipher/random.c:453
+#: cipher/random.c:648
msgid ""
"The random number generator is only a kludge to let\n"
"it run - it is in no way a strong RNG!\n"
@@ -272,7 +328,7 @@ msgstr ""
"N�O USE NENHUM DADO GERADO POR ESTE PROGRAMA!\n"
"\n"
-#: cipher/rndlinux.c:135
+#: cipher/rndlinux.c:141
#, c-format
msgid ""
"\n"
@@ -283,7 +339,7 @@ msgstr ""
"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"
-#: g10/g10.c:185
+#: g10/g10.c:195
msgid ""
"@Commands:\n"
" "
@@ -291,136 +347,140 @@ msgstr ""
"@Comandos:\n"
" "
-#: g10/g10.c:187
+#: g10/g10.c:197
msgid "|[file]|make a signature"
msgstr "|[ficheiro]|fazer uma assinatura"
-#: g10/g10.c:188
+#: g10/g10.c:198
msgid "|[file]|make a clear text signature"
msgstr "|[ficheiro]|fazer uma assinatura em texto puro"
-#: g10/g10.c:189
+#: g10/g10.c:199
msgid "make a detached signature"
msgstr "fazer uma assinatura separada"
-#: g10/g10.c:190
+#: g10/g10.c:200
msgid "encrypt data"
msgstr "encriptar dados"
-#: g10/g10.c:191
+#: g10/g10.c:201
msgid "encryption only with symmetric cipher"
msgstr "encriptar apenas com cifra sim�trica"
-#: g10/g10.c:192
+#: g10/g10.c:202
msgid "store only"
msgstr "apenas armazenar"
-#: g10/g10.c:193
+#: g10/g10.c:203
msgid "decrypt data (default)"
msgstr "desencriptar dados (ac��o por omiss�o)"
-#: g10/g10.c:194
+#: g10/g10.c:204
msgid "verify a signature"
msgstr "verificar uma assinatura"
-#: g10/g10.c:195
+#: g10/g10.c:206
msgid "list keys"
msgstr "listar as chaves"
-#: g10/g10.c:197
+#: g10/g10.c:208
msgid "list keys and signatures"
msgstr "listar as chaves e as assinaturas"
-#: g10/g10.c:198
+#: g10/g10.c:209
msgid "check key signatures"
msgstr "verificar as assinaturas das chaves"
-#: g10/g10.c:199
+#: g10/g10.c:210
msgid "list keys and fingerprints"
msgstr "listar as chaves e as impress�es digitais"
-#: g10/g10.c:200
+#: g10/g10.c:211
msgid "list secret keys"
msgstr "listar as chaves secretas"
-#: g10/g10.c:201
+#: g10/g10.c:212
msgid "generate a new key pair"
msgstr "gerar um novo par de chaves"
-#: g10/g10.c:202
+#: g10/g10.c:213
msgid "remove key from the public keyring"
msgstr "remover a chave do porta-chaves p�blico"
-#: g10/g10.c:203
+#: g10/g10.c:215
+msgid "remove key from the secret keyring"
+msgstr "remover a chave do porta-chaves secreto"
+
+#: g10/g10.c:216
msgid "sign a key"
msgstr "assinar uma chave"
-#: g10/g10.c:204
+#: g10/g10.c:217
msgid "sign a key locally"
msgstr "assinar uma chave localmente"
-#: g10/g10.c:205
+#: g10/g10.c:218
msgid "sign or edit a key"
msgstr "assinar ou editar uma chave"
-#: g10/g10.c:206
+#: g10/g10.c:219
msgid "generate a revocation certificate"
msgstr "gerar um certificado de revoga��o"
-#: g10/g10.c:207
+#: g10/g10.c:220
msgid "export keys"
msgstr "exportar chaves"
-#: g10/g10.c:208
+#: g10/g10.c:221
msgid "export keys to a key server"
msgstr "exportar chaves para um servidor"
-#: g10/g10.c:209
+#: g10/g10.c:222
msgid "import keys from a key server"
msgstr "importar chaves de um servidor"
-#: g10/g10.c:212
+#: g10/g10.c:226
msgid "import/merge keys"
msgstr "importar/fundir chaves"
-#: g10/g10.c:214
+#: g10/g10.c:228
msgid "list only the sequence of packets"
msgstr "listar apenas as sequ�ncias de pacotes"
# ownertrust ???
-#: g10/g10.c:216
+#: g10/g10.c:230
msgid "export the ownertrust values"
msgstr "exportar os valores de confian�a"
-#: g10/g10.c:218
+#: g10/g10.c:232
msgid "import ownertrust values"
msgstr "importar os valores de confian�a"
-#: g10/g10.c:220
+#: g10/g10.c:234
msgid "update the trust database"
msgstr "actualizar a base de dados de confian�a"
-#: g10/g10.c:222
+#: g10/g10.c:236
msgid "|[NAMES]|check the trust database"
msgstr "|[NOMES]|verificar a base de dados de confian�a"
-#: g10/g10.c:223
+#: g10/g10.c:237
msgid "fix a corrupted trust database"
msgstr "consertar uma base de dados de confian�a"
-#: g10/g10.c:224
+#: g10/g10.c:238
msgid "De-Armor a file or stdin"
msgstr "retirar armadura de um ficheiro ou do \"stdin\""
-#: g10/g10.c:225
+#: g10/g10.c:240
msgid "En-Armor a file or stdin"
msgstr "criar armadura para um ficheiro ou \"stdin\""
-#: g10/g10.c:226
+#: g10/g10.c:242
msgid "|algo [files]|print message digests"
msgstr "|algo [ficheiros]|imprimir \"digests\" de mensagens"
-#: g10/g10.c:230
+#: g10/g10.c:246
msgid ""
"@\n"
"Options:\n"
@@ -430,184 +490,171 @@ msgstr ""
"Op��es:\n"
" "
-#: g10/g10.c:232
+#: g10/g10.c:248
msgid "create ascii armored output"
msgstr "criar sa�da com armadura ascii"
-#: g10/g10.c:233
+#: g10/g10.c:250
msgid "|NAME|encrypt for NAME"
msgstr "|NOME|encriptar para NOME"
-#: g10/g10.c:236
+#: g10/g10.c:253
msgid "|NAME|use NAME as default recipient"
msgstr "|NOME|usar NOME como destinat�rio padr�o"
-#: g10/g10.c:238
+#: g10/g10.c:255
msgid "use the default key as default recipient"
msgstr "usar a chave padr�o como destinat�rio padr�o"
-#: g10/g10.c:242
+#: g10/g10.c:259
msgid "use this user-id to sign or decrypt"
msgstr ""
"usar este identificador de utilizador para\n"
"assinar ou desencriptar"
-#: g10/g10.c:243
+#: g10/g10.c:260
msgid "|N|set compress level N (0 disables)"
msgstr ""
"|N|estabelecer n�vel de compress�o N\n"
"(0 desactiva)"
-#: g10/g10.c:245
+#: g10/g10.c:262
msgid "use canonical text mode"
msgstr "usar modo de texto can�nico"
-#: g10/g10.c:246
+#: g10/g10.c:263
msgid "use as output file"
msgstr "usar como ficheiro de sa�da"
-#: g10/g10.c:247
+#: g10/g10.c:264
msgid "verbose"
msgstr "detalhado"
-#: g10/g10.c:248
+#: g10/g10.c:265
msgid "be somewhat more quiet"
msgstr "ser mais silencioso"
-#: g10/g10.c:249
+#: g10/g10.c:266
msgid "don't use the terminal at all"
msgstr "nunca usar o terminal"
-#: g10/g10.c:250
+#: g10/g10.c:267
msgid "force v3 signatures"
msgstr "for�ar assinaturas v3"
-#: g10/g10.c:251
+#: g10/g10.c:268
msgid "always use a MDC for encryption"
msgstr "sempre usar um MDC para encriptar"
-#: g10/g10.c:252
+#: g10/g10.c:269
msgid "do not make any changes"
msgstr "n�o fazer altera��es"
-#: g10/g10.c:254
+#. { oInteractive, "interactive", 0, N_("prompt before overwriting") },
+#: g10/g10.c:271
msgid "batch mode: never ask"
msgstr "modo n�o-interactivo: nunca perguntar"
-#: g10/g10.c:255
+#: g10/g10.c:272
msgid "assume yes on most questions"
msgstr "assumir sim para a maioria das perguntas"
-#: g10/g10.c:256
+#: g10/g10.c:273
msgid "assume no on most questions"
msgstr "assumir n�o para a maioria das perguntas"
-#: g10/g10.c:257
+#: g10/g10.c:274
msgid "add this keyring to the list of keyrings"
-msgstr
+msgstr ""
"adicionar este porta-chaves\n"
"� lista de porta-chaves"
-#: g10/g10.c:258
+#: g10/g10.c:275
msgid "add this secret keyring to the list"
msgstr "adicionar este porta-chaves secreto � lista"
-#: g10/g10.c:259
+#: g10/g10.c:276
msgid "|NAME|use NAME as default secret key"
msgstr "|NOME|usar NOME como chave secreta por omiss�o"
-#: g10/g10.c:260
+#: g10/g10.c:277
msgid "|HOST|use this keyserver to lookup keys"
msgstr "|ENDERE�O|usar este servidor para buscar chaves"
-#: g10/g10.c:261
+#: g10/g10.c:278
msgid "|NAME|set terminal charset to NAME"
msgstr ""
"|NOME|definir mapa de caracteres do terminal como\n"
"NOME"
-#: g10/g10.c:262
+#: g10/g10.c:279
msgid "read options from file"
msgstr "ler op��es do ficheiro"
-#: g10/g10.c:264
-msgid "set debugging flags"
-msgstr "definir par�metros de depura��o"
-
-#: g10/g10.c:265
-msgid "enable full debugging"
-msgstr "habilitar depura��o completa"
-
-#: g10/g10.c:266
+#: g10/g10.c:283
msgid "|FD|write status info to this FD"
msgstr ""
"|DF|escrever informa��es de estado para o\n"
"descritor de ficheiro DF"
-#: g10/g10.c:267
-msgid "do not write comment packets"
-msgstr "n�o escrever pacotes de coment�rio"
-
-#: g10/g10.c:268
-msgid "(default is 1)"
-msgstr "(por omiss�o 1)"
-
-#: g10/g10.c:269
-msgid "(default is 3)"
-msgstr "(por omiss�o 3)"
-
-#: g10/g10.c:271
+#: g10/g10.c:288
msgid "|FILE|load extension module FILE"
msgstr "|FICHEIRO|carregar m�dulo de extens�o FICHEIRO"
-#: g10/g10.c:272
+#: g10/g10.c:289
msgid "emulate the mode described in RFC1991"
msgstr "emular o modo descrito no RFC1991"
-#: g10/g10.c:273
+#: g10/g10.c:290
msgid "set all packet, cipher and digest options to OpenPGP behavior"
msgstr ""
"configurar todas as op��es de pacote,\n"
"criptografia e \"digest\" para comportamento\n"
"OpenPGP"
-#: g10/g10.c:274
+#: g10/g10.c:291
msgid "|N|use passphrase mode N"
msgstr "|N|usar mode de frase secreta N"
-#: g10/g10.c:276
+#: g10/g10.c:293
msgid "|NAME|use message digest algorithm NAME for passphrases"
msgstr ""
"|NOME|usar algoritmo de \"digest\" de mensagens NOME\n"
"para frases secretas"
-#: g10/g10.c:278
+#: g10/g10.c:295
msgid "|NAME|use cipher algorithm NAME for passphrases"
msgstr ""
"|NOME|usar algoritmo de criptografia NOME para\n"
"frases secretas"
-#: g10/g10.c:279
+#: g10/g10.c:296
msgid "|NAME|use cipher algorithm NAME"
msgstr "|NOME|usar algoritmo de criptografia NOME"
-#: g10/g10.c:280
+#: g10/g10.c:297
msgid "|NAME|use message digest algorithm NAME"
msgstr "|NOME|usar algoritmo de \"digest\" de mensagens NOME"
-#: g10/g10.c:281
+#: g10/g10.c:298
msgid "|N|use compress algorithm N"
msgstr "|N|usar algoritmo de compress�o N"
-#: g10/g10.c:282
+#: g10/g10.c:299
msgid "throw keyid field of encrypted packets"
msgstr "eliminar campo keyid dos pacotes encriptados"
-#: g10/g10.c:283
+#: g10/g10.c:300
msgid "|NAME=VALUE|use this notation data"
msgstr "|NOME=VALOR|usar estes dados de nota��o"
-#: g10/g10.c:285
+#: g10/g10.c:303
+msgid ""
+"@\n"
+"(See the man page for a complete listing of all commands and options)\n"
+msgstr ""
+
+#: g10/g10.c:306
msgid ""
"@\n"
"Examples:\n"
@@ -627,15 +674,15 @@ msgstr ""
" --list-keys [nomes] mostrar chaves\n"
" --fingerprint [nomes] mostrar impress�es digitais\n"
-#: g10/g10.c:370
+#: g10/g10.c:399
msgid "Please report bugs to <[email protected]>.\n"
msgstr "Por favor comunique bugs para <[email protected]>.\n"
-#: g10/g10.c:374
+#: g10/g10.c:403
msgid "Usage: gpg [options] [files] (-h for help)"
msgstr "Uso: gpg [op��es] [ficheiros] (-h para ajuda)"
-#: g10/g10.c:377
+#: g10/g10.c:406
msgid ""
"Syntax: gpg [options] [files]\n"
"sign, check, encrypt or decrypt\n"
@@ -645,7 +692,7 @@ msgstr ""
"assina, verifica, encripta ou desencripta\n"
"a opera��o por omiss�o depende dos dados de entrada\n"
-#: g10/g10.c:382
+#: g10/g10.c:413
msgid ""
"\n"
"Supported algorithms:\n"
@@ -653,185 +700,185 @@ msgstr ""
"\n"
"Algoritmos suportados:\n"
-#: g10/g10.c:456
+#: g10/g10.c:492
msgid "usage: gpg [options] "
msgstr "uso: gpg [op��es] "
-#: g10/g10.c:509
+#: g10/g10.c:545
msgid "conflicting commands\n"
msgstr "comandos em conflito\n"
-#: g10/g10.c:644
+#: g10/g10.c:687
#, c-format
msgid "NOTE: no default option file `%s'\n"
msgstr "NOTA: ficheiro de op��es por omiss�o `%s' inexistente\n"
-#: g10/g10.c:648
+#: g10/g10.c:691
#, c-format
msgid "option file `%s': %s\n"
msgstr "ficheiro de op��es `%s': %s\n"
-#: g10/g10.c:655
+#: g10/g10.c:698
#, c-format
msgid "reading options from `%s'\n"
msgstr "a ler op��es de `%s'\n"
-#: g10/g10.c:835
+#: g10/g10.c:885
#, c-format
msgid "%s is not a valid character set\n"
msgstr "%s n�o � um conjunto de caracteres v�lido\n"
-#: g10/g10.c:892 g10/g10.c:901
+#: g10/g10.c:945 g10/g10.c:954
#, c-format
msgid "NOTE: %s is not for normal use!\n"
msgstr "NOTA: %s n�o � para uso normal!\n"
-#: g10/g10.c:894
+#: g10/g10.c:947
#, c-format
msgid "%s not allowed with %s!\n"
msgstr "%s n�o � permitido com %s!\n"
-#: g10/g10.c:897
+#: g10/g10.c:950
#, c-format
msgid "%s makes no sense with %s!\n"
msgstr "%s n�o faz sentido com %s!\n"
-#: g10/g10.c:916 g10/g10.c:928
+#: g10/g10.c:969 g10/g10.c:981
msgid "selected cipher algorithm is invalid\n"
msgstr "o algoritmo de cifragem selecionado n�o � v�lido\n"
-#: g10/g10.c:922 g10/g10.c:934
+#: g10/g10.c:975 g10/g10.c:987
msgid "selected digest algorithm is invalid\n"
msgstr "o algoritmo de \"digest\" selecionado n�o � v�lido\n"
-#: g10/g10.c:938
+#: g10/g10.c:991
msgid "the given policy URL is invalid\n"
msgstr "a URL de pol�tica dada � inv�lida\n"
-#: g10/g10.c:941
+#: g10/g10.c:994
#, c-format
msgid "compress algorithm must be in range %d..%d\n"
msgstr "o algoritmo de compress�o deve estar na faixa %d..%d\n"
-#: g10/g10.c:943
+#: g10/g10.c:996
msgid "completes-needed must be greater than 0\n"
msgstr "completes-needed deve ser maior que 0\n"
-#: g10/g10.c:945
+#: g10/g10.c:998
msgid "marginals-needed must be greater than 1\n"
msgstr "marginals-needed deve ser maior que 1\n"
-#: g10/g10.c:947
+#: g10/g10.c:1000
msgid "max-cert-depth must be in range 1 to 255\n"
msgstr "max-cert-depth deve estar na entre 1 e 255\n"
-#: g10/g10.c:950
+#: g10/g10.c:1003
msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
msgstr "NOTA: o modo S2K simples (0) n�o � recomend�vel\n"
-#: g10/g10.c:954
+#: g10/g10.c:1007
msgid "invalid S2K mode; must be 0, 1 or 3\n"
msgstr "modo S2K inv�lido: deve ser 0, 1 ou 3\n"
-#: g10/g10.c:1031
+#: g10/g10.c:1092
#, c-format
msgid "failed to initialize the TrustDB: %s\n"
msgstr "falha ao inicializar a base de dados de confian�a: %s\n"
-#: g10/g10.c:1037
+#: g10/g10.c:1098
msgid "--store [filename]"
msgstr "--store [nome_do_ficheiro]"
-#: g10/g10.c:1044
+#: g10/g10.c:1105
msgid "--symmetric [filename]"
msgstr "--symmetric [nome_do_ficheiro]"
-#: g10/g10.c:1052
+#: g10/g10.c:1113
msgid "--encrypt [filename]"
msgstr "--encrypt [nome_do_ficheiro]"
-#: g10/g10.c:1065
+#: g10/g10.c:1126
msgid "--sign [filename]"
msgstr "--sign [nome_do_ficheiro]"
-#: g10/g10.c:1078
+#: g10/g10.c:1139
msgid "--sign --encrypt [filename]"
msgstr "--sign --encrypt [nome_do_ficheiro]"
-#: g10/g10.c:1092
+#: g10/g10.c:1153
msgid "--clearsign [filename]"
msgstr "--clearsign [nome_do_ficheiro]"
-#: g10/g10.c:1104
+#: g10/g10.c:1170
msgid "--decrypt [filename]"
msgstr "--decrypt [nome_do_ficheiro]"
-#: g10/g10.c:1112
+#: g10/g10.c:1178
msgid "--sign-key user-id"
msgstr "--sign-key id-utilizador"
-#: g10/g10.c:1120
+#: g10/g10.c:1186
msgid "--lsign-key user-id"
msgstr "--lsign-key id-utilizador"
-#: g10/g10.c:1128
+#: g10/g10.c:1194
msgid "--edit-key user-id [commands]"
msgstr "--edit-key id-utilizador [comandos]"
-#: g10/g10.c:1144
+#: g10/g10.c:1210
msgid "--delete-secret-key user-id"
msgstr "--delete-secret-key id-utilizador"
-#: g10/g10.c:1147
+#: g10/g10.c:1213
msgid "--delete-key user-id"
msgstr "--delete-key id-utilizador"
-#: g10/encode.c:259 g10/g10.c:1171 g10/sign.c:366
+#: g10/encode.c:260 g10/g10.c:1250 g10/sign.c:373
#, c-format
msgid "can't open %s: %s\n"
msgstr "imposs�vel abrir %s: %s\n"
-#: g10/g10.c:1182
+#: g10/g10.c:1265
msgid "-k[v][v][v][c] [user-id] [keyring]"
msgstr "-k[v][v][v][c] [id-utilizador] [porta-chaves]"
-#: g10/g10.c:1243
+#: g10/g10.c:1331
#, c-format
msgid "dearmoring failed: %s\n"
msgstr "retirada de armadura falhou: %s\n"
-#: g10/g10.c:1251
+#: g10/g10.c:1339
#, c-format
msgid "enarmoring failed: %s\n"
msgstr "cria��o de armadura falhou: %s\n"
# "hash" poderia ser "espalhamento", mas n�o fica claro
-#: g10/g10.c:1319
+#: g10/g10.c:1407
#, c-format
msgid "invalid hash algorithm `%s'\n"
msgstr "algoritmo de hash inv�lido `%s'\n"
-#: g10/g10.c:1400
+#: g10/g10.c:1488
msgid "[filename]"
msgstr "[nome_do_ficheiro]"
-#: g10/g10.c:1404
+#: g10/g10.c:1492
msgid "Go ahead and type your message ...\n"
msgstr "Digite a sua mensagem ...\n"
-#: g10/decrypt.c:59 g10/g10.c:1407 g10/verify.c:66
+#: g10/decrypt.c:59 g10/g10.c:1495 g10/verify.c:68 g10/verify.c:113
#, c-format
msgid "can't open `%s'\n"
msgstr "imposs�vel abrir `%s'\n"
-#: g10/g10.c:1576
+#: g10/g10.c:1665
msgid ""
"the first character of a notation name must be a letter or an underscore\n"
msgstr ""
"o primeiro caracter de um nome de nota��o deve ser uma letra ou um "
"sublinhado\n"
-#: g10/g10.c:1582
+#: g10/g10.c:1671
msgid ""
"a notation name must have only letters, digits, dots or underscores and end "
"with an '='\n"
@@ -839,84 +886,88 @@ msgstr ""
"um nome de nota��o deve ter apenas letras, d�gitos, pontos ou sublinhados e "
"terminar com '='\n"
-#: g10/g10.c:1588
+#: g10/g10.c:1677
msgid "dots in a notation name must be surrounded by other characters\n"
msgstr ""
"pontos num nome de nota��o devem estar cercados por outros caracteres\n"
-#: g10/g10.c:1596
+#: g10/g10.c:1685
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"
-#: g10/armor.c:296
+#: g10/armor.c:302
#, c-format
msgid "armor: %s\n"
msgstr "armadura: %s\n"
-#: g10/armor.c:319
+#: g10/armor.c:331
msgid "invalid armor header: "
msgstr "cabe�alho de armadura inv�lido: "
-#: g10/armor.c:326
+#: g10/armor.c:338
msgid "armor header: "
msgstr "cabe�alho de armadura: "
-#: g10/armor.c:337
+#: g10/armor.c:349
msgid "invalid clearsig header\n"
msgstr "cabe�alho de assinatura em texto puro inv�lido\n"
-#: g10/armor.c:389
+#: g10/armor.c:401
msgid "nested clear text signatures\n"
msgstr "assinaturas em texto puro aninhadas\n"
-#: g10/armor.c:500
+#: g10/armor.c:525
msgid "invalid dash escaped line: "
msgstr "linha com h�fen inv�lida: "
-#: g10/armor.c:512
+#: g10/armor.c:537
msgid "unexpected armor:"
msgstr "armadura inesperada:"
-#: g10/armor.c:629
+#: g10/armor.c:654
#, c-format
msgid "invalid radix64 character %02x skipped\n"
msgstr "caracter radix64 inv�lido %02x ignorado\n"
-#: g10/armor.c:672
+#: g10/armor.c:697
msgid "premature eof (no CRC)\n"
msgstr "fim de ficheiro prematuro (sem CRC)\n"
-#: g10/armor.c:706
+#: g10/armor.c:731
msgid "premature eof (in CRC)\n"
msgstr "fim de ficheiro prematuro (no CRC)\n"
-#: g10/armor.c:710
+#: g10/armor.c:735
msgid "malformed CRC\n"
msgstr "CRC malformado\n"
-#: g10/armor.c:714
+#: g10/armor.c:739
#, c-format
msgid "CRC error; %06lx - %06lx\n"
msgstr "erro de CRC; %06lx - %06lx\n"
-#: g10/armor.c:731
+#: g10/armor.c:756
msgid "premature eof (in Trailer)\n"
msgstr "fim de ficheiro prematuro (no \"Trailer\")\n"
-#: g10/armor.c:735
+#: g10/armor.c:760
msgid "error in trailer line\n"
msgstr "erro na linha \"trailer\"\n"
-#: g10/armor.c:1001
+#: g10/armor.c:912
+msgid "For info see http://www.gnupg.org"
+msgstr ""
+
+#: g10/armor.c:1033
msgid "no valid OpenPGP data found.\n"
msgstr "nenhum dado OpenPGP v�lido encontrado.\n"
-#: g10/armor.c:1005
+#: g10/armor.c:1038
#, c-format
msgid "invalid armor: line longer than %d characters\n"
msgstr "armadura inv�lida: linha maior que %d caracteres\n"
-#: g10/armor.c:1009
+#: g10/armor.c:1042
msgid ""
"quoted printable character in armor - probably a buggy MTA has been used\n"
msgstr ""
@@ -933,12 +984,42 @@ msgstr " Impress�o digital:"
msgid "Fingerprint:"
msgstr "Impress�o digital:"
+#: g10/pkclist.c:116
+msgid "No reason specified"
+msgstr ""
+
+#: g10/pkclist.c:118
+#, fuzzy
+msgid "Key is superseeded"
+msgstr "A chave � protegida.\n"
+
+#: g10/pkclist.c:120
+#, fuzzy
+msgid "Key has been compromised"
+msgstr "Esta chave foi desactivada"
+
+#: g10/pkclist.c:122
+msgid "Key is no longer used"
+msgstr ""
+
+#: g10/pkclist.c:124
+msgid "User ID is no longer valid"
+msgstr ""
+
+#: g10/pkclist.c:128
+msgid "Reason for revocation: "
+msgstr ""
+
+#: g10/pkclist.c:145
+msgid "Revocation comment: "
+msgstr ""
+
#. a string with valid answers
-#: g10/pkclist.c:197
+#: g10/pkclist.c:303
msgid "sSmMqQ"
msgstr "sSmMqQ"
-#: g10/pkclist.c:201
+#: g10/pkclist.c:307
#, c-format
msgid ""
"No trust value assigned to %lu:\n"
@@ -947,7 +1028,7 @@ msgstr ""
"Nenhum valor de confian�a designado para %lu:\n"
"%4u%c/%08lX %s \""
-#: g10/pkclist.c:213
+#: g10/pkclist.c:319
msgid ""
"Please decide how far you trust this user to correctly\n"
"verify other users' keys (by looking at passports,\n"
@@ -969,23 +1050,23 @@ msgstr ""
" 4 = Eu confio completamente\n"
" s = Mostrar mais informa��es\n"
-#: g10/pkclist.c:222
+#: g10/pkclist.c:328
msgid " m = back to the main menu\n"
msgstr " m = volta ao menu principal\n"
-#: g10/pkclist.c:224
+#: g10/pkclist.c:330
msgid " q = quit\n"
msgstr " q = sair\n"
-#: g10/pkclist.c:230
+#: g10/pkclist.c:336
msgid "Your decision? "
msgstr "Decis�o? "
-#: g10/pkclist.c:252
+#: g10/pkclist.c:358
msgid "Certificates leading to an ultimately trusted key:\n"
msgstr "Certificados que levam a uma chave confiada plenamente:\n"
-#: g10/pkclist.c:323
+#: g10/pkclist.c:429
msgid ""
"Could not find a valid trust path to the key. Let's see whether we\n"
"can assign some missing owner trust values.\n"
@@ -995,15 +1076,15 @@ msgstr ""
"Vamos ver se � poss�vel designar alguns valores de confian�a ausentes.\n"
"\n"
-#: g10/pkclist.c:329
+#: g10/pkclist.c:435
msgid ""
"No path leading to one of our keys found.\n"
"\n"
-msgstr
+msgstr ""
"Nenhuma rota encontrada que leve a uma de nossas chaves.\n"
"\n"
-#: g10/pkclist.c:331
+#: g10/pkclist.c:437
msgid ""
"No certificates with undefined trust found.\n"
"\n"
@@ -1011,7 +1092,7 @@ msgstr ""
"Nenhum certificado com confian�a indefinida encontrado.\n"
"\n"
-#: g10/pkclist.c:333
+#: g10/pkclist.c:439
msgid ""
"No trust values changed.\n"
"\n"
@@ -1019,36 +1100,36 @@ msgstr ""
"Nenhum valor de confian�a modificado.\n"
"\n"
-#: g10/pkclist.c:350
+#: g10/pkclist.c:457
#, c-format
msgid "key %08lX: key has been revoked!\n"
msgstr "chave %08lX: a chave foi revogada!\n"
-#: g10/pkclist.c:356 g10/pkclist.c:366 g10/pkclist.c:475
+#: g10/pkclist.c:464 g10/pkclist.c:476 g10/pkclist.c:598
msgid "Use this key anyway? "
msgstr "Usar esta chave de qualquer modo? "
-#: g10/pkclist.c:360
+#: g10/pkclist.c:469
#, c-format
msgid "key %08lX: subkey has been revoked!\n"
msgstr "chave %08lX: a subchave foi revogada!\n"
-#: g10/pkclist.c:390
+#: g10/pkclist.c:512
#, c-format
msgid "%08lX: key has expired\n"
msgstr "%08lX: a chave expirou\n"
-#: g10/pkclist.c:396
+#: g10/pkclist.c:518
#, c-format
msgid "%08lX: no info to calculate a trust probability\n"
msgstr "%08lX: sem informa��o para calcular probabilidade de confian�a\n"
-#: g10/pkclist.c:410
+#: g10/pkclist.c:533
#, c-format
msgid "%08lX: We do NOT trust this key\n"
msgstr "%08lX: N�s N�O confiamos nesta chave\n"
-#: g10/pkclist.c:416
+#: g10/pkclist.c:539
#, c-format
msgid ""
"%08lX: It is not sure that this key really belongs to the owner\n"
@@ -1057,15 +1138,15 @@ msgstr ""
"%08lX: N�o se tem certeza de que esta chave realmente pertence ao dono,\n"
"mas � aceite de qualquer modo\n"
-#: g10/pkclist.c:422
+#: g10/pkclist.c:545
msgid "This key probably belongs to the owner\n"
msgstr "Esta chave provavelmente pertence ao dono\n"
-#: g10/pkclist.c:427
+#: g10/pkclist.c:550
msgid "This key belongs to us\n"
msgstr "Esta chave pertence-nos\n"
-#: g10/pkclist.c:470
+#: g10/pkclist.c:593
msgid ""
"It is NOT certain that the key belongs to its owner.\n"
"If you *really* know what you are doing, you may answer\n"
@@ -1077,65 +1158,65 @@ msgstr ""
"sim � pr�xima pergunta\n"
"\n"
-#: g10/pkclist.c:484 g10/pkclist.c:507
+#: g10/pkclist.c:607 g10/pkclist.c:630
msgid "WARNING: Using untrusted key!\n"
msgstr "AVISO: Utilizando chave n�o confi�vel!\n"
-#: g10/pkclist.c:528
+#: g10/pkclist.c:651
msgid "WARNING: This key has been revoked by its owner!\n"
msgstr "AVISO: Esta chave foi revogada pelo seu dono!\n"
-#: g10/pkclist.c:529
+#: g10/pkclist.c:652
msgid " This could mean that the signature is forgery.\n"
msgstr " Isto pode significar que a assinatura � falsificada.\n"
-#: g10/pkclist.c:533
+#: g10/pkclist.c:657
msgid "WARNING: This subkey has been revoked by its owner!\n"
msgstr "AVISO: Esta subchave foi revogada pelo seu dono!\n"
-#: g10/pkclist.c:554
+#: g10/pkclist.c:679
msgid "Note: This key has expired!\n"
msgstr "Nota: Esta chave expirou!\n"
-#: g10/pkclist.c:562
+#: g10/pkclist.c:687
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"
-#: g10/pkclist.c:564
+#: g10/pkclist.c:689
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"
-#: g10/pkclist.c:581
+#: g10/pkclist.c:706
msgid "WARNING: We do NOT trust this key!\n"
msgstr "AVISO: N�s N�O confiamos nesta chave!\n"
-#: g10/pkclist.c:582
+#: g10/pkclist.c:707
msgid " The signature is probably a FORGERY.\n"
msgstr " A assinatura � provavelmente uma FALSIFICA��O.\n"
-#: g10/pkclist.c:589
+#: g10/pkclist.c:714
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"
-#: g10/pkclist.c:592
+#: g10/pkclist.c:717
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"
-#: g10/pkclist.c:694 g10/pkclist.c:716 g10/pkclist.c:841 g10/pkclist.c:886
+#: g10/pkclist.c:819 g10/pkclist.c:841 g10/pkclist.c:967 g10/pkclist.c:1012
#, c-format
msgid "%s: skipped: %s\n"
msgstr "%s: ignorado: %s\n"
-#: g10/pkclist.c:702 g10/pkclist.c:868
+#: g10/pkclist.c:827 g10/pkclist.c:994
#, c-format
msgid "%s: skipped: public key already present\n"
msgstr "%s: ignorado: a chave p�blica j� est� presente\n"
-#: g10/pkclist.c:729
+#: g10/pkclist.c:854
msgid ""
"You did not specify a user ID. (you may use \"-r\")\n"
"\n"
@@ -1143,96 +1224,101 @@ msgstr ""
"Voc� n�o especificou um identificador de utilizador. (pode-se usar \"-r\")\n"
"\n"
-#: g10/pkclist.c:739
+#: g10/pkclist.c:864
msgid "Enter the user ID: "
msgstr "Digite o identificador de utilizador: "
-#: g10/pkclist.c:751
+#: g10/pkclist.c:876
msgid "No such user ID.\n"
msgstr "Identificador de utilizador inexistente.\n"
-#: g10/pkclist.c:756
+#: g10/pkclist.c:881
msgid "skipped: public key already set as default recipient\n"
msgstr "ignorado: chave p�blica j� colocada como destinat�rio por omiss�o\n"
-#: g10/pkclist.c:778
+#: g10/pkclist.c:904
msgid "Public key is disabled.\n"
msgstr "A chave p�blica est� desativada.\n"
-#: g10/pkclist.c:785
+#: g10/pkclist.c:911
msgid "skipped: public key already set with --encrypt-to\n"
msgstr "ignorado: a chave p�blica j� colocada com --encrypt-to\n"
-#: g10/pkclist.c:816
+#: g10/pkclist.c:942
#, c-format
msgid "unknown default recipient `%s'\n"
msgstr "destinat�rio padr�o desconhecido `%s'\n"
-#: g10/pkclist.c:849
+#: g10/pkclist.c:975
#, c-format
msgid "%s: error checking key: %s\n"
msgstr "%s: erro na verifica��o da chave: %s\n"
-#: g10/pkclist.c:854
+#: g10/pkclist.c:980
#, c-format
msgid "%s: skipped: public key is disabled\n"
msgstr "%s: ignorado: a chave p�blica est� desactivada\n"
-#: g10/pkclist.c:892
+#: g10/pkclist.c:1018
msgid "no valid addressees\n"
msgstr "nenhum endere�o v�lido\n"
-#: g10/keygen.c:122
+#: g10/keygen.c:175
msgid "writing self signature\n"
msgstr "escrevendo auto-assinatura\n"
# key binding ???
-#: g10/keygen.c:160
+#: g10/keygen.c:213
msgid "writing key binding signature\n"
msgstr "escrevendo assinatura ligada a uma chave\n"
-#: g10/keygen.c:386
+#: g10/keygen.c:261 g10/keygen.c:345
+#, fuzzy, c-format
+msgid "keysize invalid; using %u bits\n"
+msgstr "O tamanho de chave pedido � %u bits\n"
+
+#: g10/keygen.c:266 g10/keygen.c:350
+#, fuzzy, c-format
+msgid "keysize rounded up to %u bits\n"
+msgstr "arredondado para %u bits\n"
+
+#: g10/keygen.c:456
msgid "Please select what kind of key you want:\n"
msgstr "Por favor selecione o tipo de chave desejado:\n"
-#: g10/keygen.c:388
+#: g10/keygen.c:458
#, c-format
msgid " (%d) DSA and ElGamal (default)\n"
msgstr " (%d) DSA e ElGamal (por omiss�o)\n"
-#: g10/keygen.c:389
+#: g10/keygen.c:459
#, c-format
msgid " (%d) DSA (sign only)\n"
msgstr " (%d) DSA (apenas assinatura)\n"
-#: g10/keygen.c:391
+#: g10/keygen.c:461
#, c-format
msgid " (%d) ElGamal (encrypt only)\n"
msgstr " (%d) ElGamal (apenas encrip��o)\n"
-#: g10/keygen.c:392
+#: g10/keygen.c:462
#, c-format
msgid " (%d) ElGamal (sign and encrypt)\n"
msgstr " (%d) ElGamal (assinatura e encripta��o)\n"
-#: g10/keygen.c:394
-#, c-format
-msgid " (%d) ElGamal in a v3 packet\n"
-msgstr " (%d) ElGamal num pacote v3\n"
-
-#: g10/keygen.c:399
+#: g10/keygen.c:465
msgid "Your selection? "
msgstr "Op��o? "
-#: g10/keygen.c:409
+#: g10/keygen.c:475
msgid "Do you really want to create a sign and encrypt key? "
msgstr "Voc� quer realmente criar uma chave para assinatura e criptografia? "
-#: g10/keygen.c:430
+#: g10/keygen.c:489
msgid "Invalid selection.\n"
msgstr "Op��o inv�lida.\n"
-#: g10/keygen.c:442
+#: g10/keygen.c:501
#, c-format
msgid ""
"About to generate a new %s keypair.\n"
@@ -1245,24 +1331,32 @@ msgstr ""
" tamanho por omiss�o � 1024 bits\n"
" tamanho m�ximo sugerido � 2048 bits\n"
-#: g10/keygen.c:449
+#: g10/keygen.c:508
msgid "What keysize do you want? (1024) "
msgstr "Qual o tamanho de chave desejado? (1024) "
-#: g10/keygen.c:454
+#: g10/keygen.c:513
msgid "DSA only allows keysizes from 512 to 1024\n"
msgstr "DSA permite apenas tamanhos de 512 a 1024\n"
-#: g10/keygen.c:456
+#: g10/keygen.c:515
msgid "keysize too small; 768 is smallest value allowed.\n"
msgstr "tamanho muito pequeno; 768 � o valor m�nimo permitido.\n"
-#: g10/keygen.c:466
+#. It is ridiculous and an annoyance to use larger key sizes!
+#. * GnuPG can handle much larger sizes; but it takes an eternity
+#. * to create such a key (but less than the time the Sirius
+#. * Computer Corporation needs to process one of the usual
+#. * complaints) and {de,en}cryption although needs some time.
+#. * So, before you complain about this limitation, I suggest that
+#. * you start a discussion with Marvin about this theme and then
+#. * do whatever you want.
+#: g10/keygen.c:525
#, c-format
msgid "keysize too large; %d is largest value allowed.\n"
msgstr "tamanho muito grande; %d � o valor m�ximo permitido.\n"
-#: g10/keygen.c:471
+#: g10/keygen.c:530
msgid ""
"Keysizes larger than 2048 are not suggested because\n"
"computations take REALLY long!\n"
@@ -1270,33 +1364,33 @@ msgstr ""
"Tamanhos de chave maiores que 2048 n�o s�o recomendados\n"
"porque o tempo de computa��o � REALMENTE longo!\n"
-#: g10/keygen.c:474
+#: g10/keygen.c:533
msgid "Are you sure that you want this keysize? "
msgstr "Voc� tem certeza de que quer este tamanho de chave? "
-#: g10/keygen.c:475
+#: g10/keygen.c:534
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"
-#: g10/keygen.c:483
+#: g10/keygen.c:542
msgid "Do you really need such a large keysize? "
msgstr "Voc� precisa realmente de uma chave t�o grande? "
-#: g10/keygen.c:489
+#: g10/keygen.c:548
#, c-format
msgid "Requested keysize is %u bits\n"
msgstr "O tamanho de chave pedido � %u bits\n"
-#: g10/keygen.c:492 g10/keygen.c:496
+#: g10/keygen.c:551 g10/keygen.c:555
#, c-format
msgid "rounded up to %u bits\n"
msgstr "arredondado para %u bits\n"
-#: g10/keygen.c:509
+#: g10/keygen.c:603
msgid ""
"Please specify how long the key should be valid.\n"
" 0 = key does not expire\n"
@@ -1312,29 +1406,37 @@ msgstr ""
" <n>m = chave expira em n meses\n"
" <n>y = chave expira em n anos\n"
-#: g10/keygen.c:526
+#: g10/keygen.c:618
msgid "Key is valid for? (0) "
msgstr "A chave � valida por? (0) "
-#: g10/keygen.c:547
+#: g10/keygen.c:623
msgid "invalid value\n"
msgstr "valor inv�lido\n"
-#: g10/keygen.c:552
+#: g10/keygen.c:628
msgid "Key does not expire at all\n"
msgstr "A chave n�o expira nunca\n"
#. print the date when the key expires
-#: g10/keygen.c:558
+#: g10/keygen.c:634
#, c-format
msgid "Key expires at %s\n"
msgstr "A chave expira em %s\n"
-#: g10/keygen.c:563
+#: g10/keygen.c:637
+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"
+
+#: g10/keygen.c:642
msgid "Is this correct (y/n)? "
msgstr "Est� correto (s/n)? "
-#: g10/keygen.c:606
+#: g10/keygen.c:685
msgid ""
"\n"
"You need a User-ID to identify your key; the software constructs the user "
@@ -1344,50 +1446,51 @@ msgid ""
"\n"
msgstr ""
"\n"
-"Voc� precisa de um identificador de utilizador para identificar sua chave; o\n"
+"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"
" \"Heinrich Heine (Der Dichter) <[email protected]>\"\n"
"\n"
-#: g10/keygen.c:617
+#: g10/keygen.c:697
msgid "Real name: "
msgstr "Nome completo: "
-#: g10/keygen.c:621
+#: g10/keygen.c:701
msgid "Invalid character in name\n"
msgstr "Caracter inv�lido no nome\n"
-#: g10/keygen.c:623
+#: g10/keygen.c:703
msgid "Name may not start with a digit\n"
msgstr "O nome n�o pode come�ar com um d�gito\n"
-#: g10/keygen.c:625
+#: g10/keygen.c:705
msgid "Name must be at least 5 characters long\n"
msgstr "O nome deve ter pelo menos 5 caracteres\n"
-#: g10/keygen.c:633
+#: g10/keygen.c:713
msgid "Email address: "
msgstr "Endere�o de correio eletr�nico: "
-#: g10/keygen.c:644
+#: g10/keygen.c:724
msgid "Not a valid email address\n"
msgstr "Endere�o eletr�nico inv�lido\n"
-#: g10/keygen.c:652
+#: g10/keygen.c:732
msgid "Comment: "
msgstr "Coment�rio: "
-#: g10/keygen.c:658
+#: g10/keygen.c:738
msgid "Invalid character in comment\n"
msgstr "Caracter inv�lido no coment�rio\n"
-#: g10/keygen.c:680
+#: g10/keygen.c:761
#, c-format
msgid "You are using the `%s' character set.\n"
msgstr "Voc� est� usando o conjunto de caracteres `%s'.\n"
-#: g10/keygen.c:686
+#: g10/keygen.c:767
#, c-format
msgid ""
"You selected this USER-ID:\n"
@@ -1398,15 +1501,28 @@ msgstr ""
" \"%s\"\n"
"\n"
-#: g10/keygen.c:689
+#: g10/keygen.c:771
+msgid "Please don't put the email address into the real name or the comment\n"
+msgstr ""
+
+#: g10/keygen.c:776
msgid "NnCcEeOoQq"
msgstr "NnCcEeOoSs"
-#: g10/keygen.c:699
+#: g10/keygen.c:786
+#, fuzzy
+msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
+msgstr "Mudar (N)ome, (C)oment�rio, (E)ndere�o ou (O)k/(S)air? "
+
+#: g10/keygen.c:787
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? "
-#: g10/keygen.c:751
+#: g10/keygen.c:806
+msgid "Please correct the error first\n"
+msgstr ""
+
+#: g10/keygen.c:844
msgid ""
"You need a Passphrase to protect your secret key.\n"
"\n"
@@ -1414,11 +1530,11 @@ msgstr ""
"Voc� precisa de uma frase secreta para proteger a sua chave.\n"
"\n"
-#: g10/keyedit.c:456 g10/keygen.c:759
+#: g10/keyedit.c:468 g10/keygen.c:852
msgid "passphrase not correctly repeated; try again.\n"
msgstr "a frase secreta n�o foi repetida corretamente; tente outra vez.\n"
-#: g10/keygen.c:765
+#: g10/keygen.c:858
msgid ""
"You don't want a passphrase - this is probably a *bad* idea!\n"
"I will do it anyway. You can change your passphrase at any time,\n"
@@ -1430,7 +1546,7 @@ msgstr ""
"qualquer hora, usando este programa com a op��o \"--edit-key\".\n"
"\n"
-#: g10/keygen.c:786
+#: g10/keygen.c:879
msgid ""
"We need to generate a lot of random bytes. It is a good idea to perform\n"
"some other action (type on the keyboard, move the mouse, utilize the\n"
@@ -1442,33 +1558,29 @@ msgstr ""
"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"
-#: g10/keygen.c:856
-msgid "Key generation can only be used in interactive mode\n"
-msgstr "A gera��o de chaves s� pode ser feita em modo interactivo\n"
-
-#: g10/keygen.c:864
+#: g10/keygen.c:1325
msgid "DSA keypair will have 1024 bits.\n"
msgstr "O par de chaves DSA ter� 1024 bits.\n"
-#: g10/keygen.c:870
+#: g10/keygen.c:1368
msgid "Key generation canceled.\n"
msgstr "Gera��o de chave cancelada.\n"
-#: g10/keygen.c:880
-#, c-format
-msgid "writing public certificate to `%s'\n"
+#: g10/keygen.c:1465
+#, fuzzy, c-format
+msgid "writing public key to `%s'\n"
msgstr "escrevendo certificado p�blico para `%s'\n"
-#: g10/keygen.c:881
-#, c-format
-msgid "writing secret certificate to `%s'\n"
+#: g10/keygen.c:1466
+#, fuzzy, c-format
+msgid "writing secret key to `%s'\n"
msgstr "escrevendo certificado privado para `%s'\n"
-#: g10/keygen.c:958
+#: g10/keygen.c:1562
msgid "public and secret key created and signed.\n"
msgstr "chaves p�blica e privada criadas e assinadas.\n"
-#: g10/keygen.c:960
+#: g10/keygen.c:1567
msgid ""
"Note that this key cannot be used for encryption. You may want to use\n"
"the command \"--edit-key\" to generate a secondary key for this purpose.\n"
@@ -1476,12 +1588,12 @@ msgstr ""
"Note que esta chave n�o pode ser usada para encripta��o. Voc� pode usar\n"
"o comando \"--edit-key\" para gerar uma chave secund�ria para esse fim.\n"
-#: g10/keygen.c:974 g10/keygen.c:1073
+#: g10/keygen.c:1584 g10/keygen.c:1685
#, c-format
msgid "Key generation failed: %s\n"
msgstr "A gera��o de chaves falhou: %s\n"
-#: g10/keygen.c:1018 g10/sig-check.c:312 g10/sign.c:105
+#: g10/keygen.c:1628 g10/sig-check.c:318 g10/sign.c:111
#, c-format
msgid ""
"key has been created %lu second in future (time warp or clock problem)\n"
@@ -1489,7 +1601,7 @@ msgstr ""
"a chave foi criada %lu segundo no futuro\n"
"(viagem no tempo ou problema no rel�gio)\n"
-#: g10/keygen.c:1020 g10/sig-check.c:314 g10/sign.c:107
+#: g10/keygen.c:1630 g10/sig-check.c:320 g10/sign.c:113
#, c-format
msgid ""
"key has been created %lu seconds in future (time warp or clock problem)\n"
@@ -1497,12 +1609,12 @@ msgstr ""
"a chave foi criada %lu segundos no futuro\n"
"(viagem no tempo ou problema no rel�gio)\n"
-#: g10/keygen.c:1051
+#: g10/keygen.c:1663
msgid "Really create? "
msgstr "Realmente criar? "
-#: g10/encode.c:91 g10/openfile.c:156 g10/openfile.c:246 g10/tdbio.c:468
-#: g10/tdbio.c:529
+#: g10/encode.c:91 g10/openfile.c:168 g10/openfile.c:277 g10/tdbio.c:454
+#: g10/tdbio.c:515
#, c-format
msgid "%s: can't open: %s\n"
msgstr "%s: imposs�vel abrir: %s\n"
@@ -1512,396 +1624,407 @@ msgstr "%s: imposs�vel abrir: %s\n"
msgid "error creating passphrase: %s\n"
msgstr "erro na cria��o da frase secreta: %s\n"
-#: g10/encode.c:171 g10/encode.c:318
+#: g10/encode.c:171 g10/encode.c:319
#, c-format
msgid "%s: WARNING: empty file\n"
msgstr "%s: AVISO: ficheiro vazio\n"
-#: g10/encode.c:265
+#: g10/encode.c:266
#, c-format
msgid "reading from `%s'\n"
msgstr "lendo de `%s'\n"
-#: g10/encode.c:482
+#: g10/encode.c:483
#, c-format
msgid "%s/%s encrypted for: %s\n"
msgstr "%s/%s encriptado para: %s\n"
-#: g10/export.c:147
+#: g10/export.c:153
#, c-format
msgid "%s: user not found: %s\n"
msgstr "%s: utilizador n�o encontrado: %s\n"
-#: g10/export.c:156
+#: g10/export.c:162
#, c-format
msgid "certificate read problem: %s\n"
msgstr "erro de leitura do certificado: %s\n"
-#: g10/export.c:165
+#: g10/export.c:171
#, c-format
msgid "key %08lX: not a rfc2440 key - skipped\n"
msgstr "chave %08lX: n�o � uma chave rfc2440 - ignorada\n"
-#: g10/export.c:203
+#: g10/export.c:182
+#, fuzzy, c-format
+msgid "key %08lX: not protected - skipped\n"
+msgstr "chave %08lX: n�o � uma chave rfc2440 - ignorada\n"
+
+#: g10/export.c:232
msgid "WARNING: nothing exported\n"
msgstr "AVISO: nada exportado\n"
-#: g10/getkey.c:206
+#: g10/getkey.c:211
msgid "too many entries in pk cache - disabled\n"
msgstr "entradas demais no cache pk - desactivado\n"
-#: g10/getkey.c:345
+#: g10/getkey.c:350
msgid "too many entries in unk cache - disabled\n"
msgstr "entradas demais no cache unk - desactivado\n"
-#: g10/getkey.c:1289 g10/getkey.c:1328
+#: g10/getkey.c:1308 g10/getkey.c:1347
msgid "RSA key cannot be used in this version\n"
msgstr "chave RSA n�o pode ser usada nesta vers�o\n"
-#: g10/getkey.c:1291 g10/getkey.c:1330
+#: g10/getkey.c:1310 g10/getkey.c:1349
msgid "No key for user ID\n"
msgstr "Nenhuma chave para identificador de utilizador\n"
-#: g10/getkey.c:1369 g10/getkey.c:1409
+#: g10/getkey.c:1388 g10/getkey.c:1428
msgid "No user ID for key\n"
msgstr "Nenhum identificador de utilizador para chave\n"
-#: g10/getkey.c:1565 g10/getkey.c:1621
+#: g10/getkey.c:1642 g10/getkey.c:1698
#, c-format
msgid "using secondary key %08lX instead of primary key %08lX\n"
msgstr "usando chave secund�ria %08lX ao inv�s de chave prim�ria %08lX\n"
-#: g10/import.c:118
-#, c-format
-msgid "can't open `%s': %s\n"
-msgstr "imposs�vel abrir `%s': %s\n"
+#: g10/getkey.c:2017
+#, fuzzy
+msgid "[User id not found]"
+msgstr "%s: utilizador n�o encontrado\n"
-#: g10/import.c:162
+#: g10/import.c:181
#, c-format
msgid "skipping block of type %d\n"
msgstr "ignorando bloco do tipo %d\n"
-#: g10/import.c:169 g10/trustdb.c:1658 g10/trustdb.c:1697
+#: g10/import.c:188 g10/trustdb.c:1740 g10/trustdb.c:1781
#, c-format
msgid "%lu keys so far processed\n"
msgstr "%lu chaves processadas at� agora\n"
-#: g10/import.c:174
+#: g10/import.c:193
#, c-format
msgid "error reading `%s': %s\n"
msgstr "erro na leitura de `%s': %s\n"
-#: g10/import.c:177
+#: g10/import.c:203
#, c-format
msgid "Total number processed: %lu\n"
msgstr "N�mero total processado: %lu\n"
-#: g10/import.c:179
+#: g10/import.c:205
#, c-format
msgid " w/o user IDs: %lu\n"
msgstr " sem IDs de utilizadores: %lu\n"
-#: g10/import.c:181
+#: g10/import.c:207
#, c-format
msgid " imported: %lu"
msgstr " importados: %lu"
-#: g10/import.c:187
+#: g10/import.c:213
#, c-format
msgid " unchanged: %lu\n"
msgstr " n�o modificados: %lu\n"
-#: g10/import.c:189
+#: g10/import.c:215
#, c-format
msgid " new user IDs: %lu\n"
msgstr " novos IDs de utilizadores: %lu\n"
-#: g10/import.c:191
+#: g10/import.c:217
#, c-format
msgid " new subkeys: %lu\n"
msgstr " novas subchaves: %lu\n"
-#: g10/import.c:193
+#: g10/import.c:219
#, c-format
msgid " new signatures: %lu\n"
msgstr " novas assinaturas: %lu\n"
-#: g10/import.c:195
+#: g10/import.c:221
#, c-format
msgid " new key revocations: %lu\n"
msgstr " novas revoga��es de chaves: %lu\n"
-#: g10/import.c:197
+#: g10/import.c:223
#, c-format
msgid " secret keys read: %lu\n"
msgstr " chaves secretas lidas: %lu\n"
-#: g10/import.c:199
+#: g10/import.c:225
#, c-format
msgid " secret keys imported: %lu\n"
msgstr " chaves secretas importadas: %lu\n"
-#: g10/import.c:201
+#: g10/import.c:227
#, c-format
msgid " secret keys unchanged: %lu\n"
msgstr " chaves secretas n�o modificadas: %lu\n"
-#: g10/import.c:362 g10/import.c:554
+#: g10/import.c:386 g10/import.c:578
#, c-format
msgid "key %08lX: no user ID\n"
msgstr "chave %08lX: sem ID de utilizador\n"
-#: g10/import.c:376
+#: g10/import.c:400
#, c-format
msgid "key %08lX: no valid user IDs\n"
msgstr "chave %08lX: sem IDs de utilizadores v�lidos\n"
-#: g10/import.c:378
+#: g10/import.c:402
msgid "this may be caused by a missing self-signature\n"
msgstr "isto pode ser causado por falta de auto-assinatura\n"
-#: g10/import.c:389 g10/import.c:621
+#: g10/import.c:413 g10/import.c:645
#, c-format
msgid "key %08lX: public key not found: %s\n"
msgstr "chave %08lX: chave p�blica n�o encontrada: %s\n"
-#: g10/import.c:395
+#: g10/import.c:419
msgid "no default public keyring\n"
msgstr "sem porta-chaves p�blico padr�o\n"
-#: g10/import.c:399 g10/openfile.c:186 g10/sign.c:268 g10/sign.c:580
+#: g10/import.c:423 g10/openfile.c:220 g10/sign.c:275 g10/sign.c:587
#, c-format
msgid "writing to `%s'\n"
msgstr "a escrever para `%s'\n"
-#: g10/import.c:402 g10/import.c:460 g10/import.c:569 g10/import.c:670
+#: g10/import.c:426 g10/import.c:484 g10/import.c:593 g10/import.c:694
#, c-format
msgid "can't lock keyring `%s': %s\n"
msgstr "imposs�vel trancar porta-chaves `%s': %s\n"
-#: g10/import.c:405 g10/import.c:463 g10/import.c:572 g10/import.c:673
+#: g10/import.c:429 g10/import.c:487 g10/import.c:596 g10/import.c:697
#, c-format
msgid "error writing keyring `%s': %s\n"
msgstr "erro na escrita do porta-chaves `%s': %s\n"
-#: g10/import.c:410
+#: g10/import.c:434
#, c-format
msgid "key %08lX: public key imported\n"
msgstr "chave %08lX: chave p�blica importada\n"
-#: g10/import.c:427
+#: g10/import.c:451
#, c-format
msgid "key %08lX: doesn't match our copy\n"
msgstr "chave %08lX: n�o corresponde � nossa c�pia\n"
-#: g10/import.c:436 g10/import.c:629
+#: g10/import.c:460 g10/import.c:653
#, c-format
msgid "key %08lX: can't locate original keyblock: %s\n"
msgstr "chave %08lX: imposs�vel localizar bloco de chaves original: %s\n"
-#: g10/import.c:442 g10/import.c:635
+#: g10/import.c:466 g10/import.c:659
#, c-format
msgid "key %08lX: can't read original keyblock: %s\n"
msgstr "chave %08lX: imposs�vel ler bloco de chaves original: %s\n"
-#: g10/import.c:469
+#: g10/import.c:493
#, c-format
msgid "key %08lX: 1 new user ID\n"
msgstr "chave %8lX: 1 novo ID de utilizador\n"
-#: g10/import.c:472
+#: g10/import.c:496
#, c-format
msgid "key %08lX: %d new user IDs\n"
msgstr "chave %08lX: %d novos IDs de utilizadores\n"
-#: g10/import.c:475
+#: g10/import.c:499
#, c-format
msgid "key %08lX: 1 new signature\n"
msgstr "chave %08lX: 1 nova assinatura\n"
-#: g10/import.c:478
+#: g10/import.c:502
#, c-format
msgid "key %08lX: %d new signatures\n"
msgstr "chave %08lX: %d novas assinaturas\n"
-#: g10/import.c:481
+#: g10/import.c:505
#, c-format
msgid "key %08lX: 1 new subkey\n"
msgstr "chave %08lX: 1 nova subchave\n"
-#: g10/import.c:484
+#: g10/import.c:508
#, c-format
msgid "key %08lX: %d new subkeys\n"
msgstr "chave %08lX: %d novas subchaves\n"
-#: g10/import.c:494
+#: g10/import.c:518
#, c-format
msgid "key %08lX: not changed\n"
msgstr "chave %08lX: n�o modificada\n"
-#: g10/import.c:577
+#: g10/import.c:601
#, c-format
msgid "key %08lX: secret key imported\n"
msgstr "chave %08lX: chave secreta importada\n"
#. we can't merge secret keys
-#: g10/import.c:581
+#: g10/import.c:605
#, c-format
msgid "key %08lX: already in secret keyring\n"
msgstr "chave %08lX: j� est� no porta-chaves secreto\n"
-#: g10/import.c:586
+#: g10/import.c:610
#, c-format
msgid "key %08lX: secret key not found: %s\n"
msgstr "chave %08lX: chave secreta n�o encontrada: %s\n"
-#: g10/import.c:615
+#: g10/import.c:639
#, c-format
msgid "key %08lX: 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"
-#: g10/import.c:646
+#: g10/import.c:670
#, c-format
msgid "key %08lX: invalid revocation certificate: %s - rejected\n"
msgstr "chave %08lX: certificado de revoga��o inv�lido: %s - rejeitado\n"
-#: g10/import.c:678
+#: g10/import.c:702
#, c-format
msgid "key %08lX: revocation certificate imported\n"
msgstr "chave %08lX: certificado de revoga��o importado\n"
-#: g10/import.c:711
+#: g10/import.c:744
#, c-format
msgid "key %08lX: no user ID for signature\n"
msgstr "chave %08lX: nenhum ID de utilizador para assinatura\n"
-#: g10/import.c:718 g10/import.c:742
+#: g10/import.c:751 g10/import.c:775
#, c-format
msgid "key %08lX: unsupported public key algorithm\n"
msgstr "chave %08lX: algoritmo de chave p�blica n�o suportado\n"
-#: g10/import.c:719
+#: g10/import.c:752
#, c-format
msgid "key %08lX: invalid self-signature\n"
msgstr "chave %08lX: auto-assinatura inv�lida\n"
-#: g10/import.c:734
+#: g10/import.c:767
#, c-format
msgid "key %08lX: no subkey for key binding\n"
msgstr "chave %08lX: sem subchave para liga��o de chaves\n"
-#: g10/import.c:743
+#: g10/import.c:776
#, c-format
msgid "key %08lX: invalid subkey binding\n"
msgstr "chave %08lX: liga��o de subchave inv�lida\n"
-#: g10/import.c:769
+#: g10/import.c:803
#, c-format
msgid "key %08lX: accepted non self-signed user ID '"
msgstr "chave %08lX: aceite ID de utilizador sem auto-assinatura '"
-#: g10/import.c:798
+#: g10/import.c:832
#, c-format
msgid "key %08lX: skipped user ID '"
msgstr "chave %08lX: ignorado ID de utilizador '"
-#: g10/import.c:821
+#: g10/import.c:855
#, c-format
msgid "key %08lX: skipped subkey\n"
msgstr "chave %08lX: subchave ignorada\n"
-#: g10/import.c:846
+#. here we violate the rfc a bit by still allowing
+#. * to import non-exportable signature when we have the
+#. * the secret key used to create this signature - it
+#. * seems that this makes sense
+#: g10/import.c:880
#, c-format
msgid "key %08lX: non exportable signature (class %02x) - skipped\n"
msgstr "chave %08lX: assinatura n�o export�vel (classe %02x) - ignorada\n"
-#: g10/import.c:855
+#: g10/import.c:889
#, c-format
msgid "key %08lX: revocation certificate at wrong place - skipped\n"
msgstr "chave %08lX: certificado de revoga��o no local errado - ignorado\n"
-#: g10/import.c:863
+#: g10/import.c:897
#, c-format
msgid "key %08lX: invalid revocation certificate: %s - skipped\n"
msgstr "chave %08lX: certificado de revoga��o inv�lido: %s - ignorado\n"
-#: g10/import.c:963
+#: g10/import.c:997
#, c-format
msgid "key %08lX: duplicated user ID detected - merged\n"
msgstr "chave %08lX: detectado ID de utilizador duplicado - fundido\n"
-#: g10/import.c:1014
+#: g10/import.c:1048
#, c-format
msgid "key %08lX: revocation certificate added\n"
msgstr "chave %08lX: certificado de revoga��o adicionado\n"
-#: g10/import.c:1128 g10/import.c:1183
+#: g10/import.c:1162 g10/import.c:1215
#, c-format
msgid "key %08lX: our copy has no self-signature\n"
msgstr "chave %08lX: a nossa c�pia n�o tem auto-assinatura\n"
-#: g10/delkey.c:64 g10/keyedit.c:93
+#: g10/delkey.c:64 g10/keyedit.c:94
#, c-format
msgid "%s: user not found\n"
msgstr "%s: utilizador n�o encontrado\n"
-#: g10/keyedit.c:154
+#: g10/keyedit.c:155
msgid "[revocation]"
msgstr "[revoga��o]"
-#: g10/keyedit.c:155
+#: g10/keyedit.c:156
msgid "[self-signature]"
msgstr "[auto-assinatura]"
-#: g10/keyedit.c:219
+#: g10/keyedit.c:220
msgid "1 bad signature\n"
msgstr "1 assinatura incorrecta\n"
-#: g10/keyedit.c:221
+#: g10/keyedit.c:222
#, c-format
msgid "%d bad signatures\n"
msgstr "%d assinaturas incorrectas\n"
-#: g10/keyedit.c:223
+#: g10/keyedit.c:224
msgid "1 signature not checked due to a missing key\n"
msgstr "1 assinatura n�o verificada por falta de chave\n"
-#: g10/keyedit.c:225
+#: g10/keyedit.c:226
#, c-format
msgid "%d signatures not checked due to missing keys\n"
msgstr "%d assinaturas n�o verificadas por falta de chaves\n"
-#: g10/keyedit.c:227
+#: g10/keyedit.c:228
msgid "1 signature not checked due to an error\n"
msgstr "1 assinatura n�o verificada devido a um erro\n"
-#: g10/keyedit.c:229
+#: g10/keyedit.c:230
#, c-format
msgid "%d signatures not checked due to errors\n"
msgstr "%d assinaturas n�o verificadas devido a erros\n"
-#: g10/keyedit.c:231
+#: g10/keyedit.c:232
msgid "1 user ID without valid self-signature detected\n"
msgstr "1 ID de utilizador sem auto-assinatura v�lida detectado\n"
-#: g10/keyedit.c:233
+#: g10/keyedit.c:234
#, c-format
msgid "%d user IDs without valid self-signatures detected\n"
msgstr "%d IDs de utilizadores sem auto-assinaturas v�lidas detectados\n"
-#: g10/keyedit.c:313
+#. Fixme: see whether there is a revocation in which
+#. * case we should allow to sign it again.
+#: g10/keyedit.c:316
#, c-format
msgid "Already signed by key %08lX\n"
msgstr "J� assinado pela chave %08lX\n"
-#: g10/keyedit.c:321
+#: g10/keyedit.c:324
#, c-format
msgid "Nothing to sign with key %08lX\n"
msgstr "Nada para assinar com a chave %08lX\n"
-#: g10/keyedit.c:330
+#: g10/keyedit.c:333
msgid ""
"Are you really sure that you want to sign this key\n"
"with your key: \""
@@ -1909,7 +2032,7 @@ msgstr ""
"Voc� tem certeza de que quer assinar esta chave com\n"
"a sua chave: \""
-#: g10/keyedit.c:339
+#: g10/keyedit.c:342
msgid ""
"The signature will be marked as non-exportable.\n"
"\n"
@@ -1917,29 +2040,34 @@ msgstr ""
"A assinatura ser� marcada como n�o-export�vel.\n"
"\n"
-#: g10/keyedit.c:344
+#: g10/keyedit.c:347
msgid "Really sign? "
msgstr "Realmente assinar? "
-#: g10/keyedit.c:370 g10/keyedit.c:1832 g10/keyedit.c:1881 g10/sign.c:128
+#: g10/keyedit.c:373 g10/keyedit.c:1869 g10/keyedit.c:1931 g10/sign.c:135
#, c-format
msgid "signing failed: %s\n"
msgstr "assinatura falhou: %s\n"
-#: g10/keyedit.c:423
+#: g10/keyedit.c:427
msgid "This key is not protected.\n"
msgstr "Esta chave n�o � protegida.\n"
-#: g10/keyedit.c:426
+#: g10/keyedit.c:431
+#, fuzzy
+msgid "Secret parts of primary key are not available.\n"
+msgstr "chave secreta n�o dispon�vel"
+
+#: g10/keyedit.c:435
msgid "Key is protected.\n"
msgstr "A chave � protegida.\n"
-#: g10/keyedit.c:443
+#: g10/keyedit.c:455
#, c-format
msgid "Can't edit this key: %s\n"
msgstr "Imposs�vel editar esta chave: %s\n"
-#: g10/keyedit.c:448
+#: g10/keyedit.c:460
msgid ""
"Enter the new passphrase for this secret key.\n"
"\n"
@@ -1947,7 +2075,7 @@ msgstr ""
"Digite a nova frase para esta chave secreta.\n"
"\n"
-#: g10/keyedit.c:460
+#: g10/keyedit.c:472
msgid ""
"You don't want a passphrase - this is probably a *bad* idea!\n"
"\n"
@@ -1955,391 +2083,397 @@ msgstr ""
"Voc� n�o quer uma frase secreta - provavelmente isto � uma *m�* id�ia!\n"
"\n"
-#: g10/keyedit.c:463
+#: g10/keyedit.c:475
msgid "Do you really want to do this? "
msgstr "Voc� quer realmente fazer isso? "
-#: g10/keyedit.c:524
+#: g10/keyedit.c:539
msgid "moving a key signature to the correct place\n"
msgstr "a mover a assinatura da chave para o local correcto\n"
-#: g10/keyedit.c:564
+#: g10/keyedit.c:580
msgid "quit this menu"
msgstr "sair deste menu"
-#: g10/keyedit.c:565
+#: g10/keyedit.c:581
msgid "q"
msgstr "q"
-#: g10/keyedit.c:566
+#: g10/keyedit.c:582
msgid "save"
msgstr "save"
-#: g10/keyedit.c:566
+#: g10/keyedit.c:582
msgid "save and quit"
msgstr "gravar e sair"
-#: g10/keyedit.c:567
+#: g10/keyedit.c:583
msgid "help"
msgstr "help"
-#: g10/keyedit.c:567
+#: g10/keyedit.c:583
msgid "show this help"
msgstr "mostra esta ajuda"
-#: g10/keyedit.c:569
+#: g10/keyedit.c:585
msgid "fpr"
msgstr "fpr"
-#: g10/keyedit.c:569
+#: g10/keyedit.c:585
msgid "show fingerprint"
msgstr "mostra impress�o digital"
-#: g10/keyedit.c:570
+#: g10/keyedit.c:586
msgid "list"
msgstr "list"
-#: g10/keyedit.c:570
+#: g10/keyedit.c:586
msgid "list key and user IDs"
msgstr "lista chave e identificadores de utilizadores"
-#: g10/keyedit.c:571
+#: g10/keyedit.c:587
msgid "l"
msgstr "l"
-#: g10/keyedit.c:572
+#: g10/keyedit.c:588
msgid "uid"
msgstr "uid"
-#: g10/keyedit.c:572
+#: g10/keyedit.c:588
msgid "select user ID N"
msgstr "seleciona ID de utilizador N"
-#: g10/keyedit.c:573
+#: g10/keyedit.c:589
msgid "key"
msgstr "key"
-#: g10/keyedit.c:573
+#: g10/keyedit.c:589
msgid "select secondary key N"
msgstr "seleciona chave secund�ria N"
-#: g10/keyedit.c:574
+#: g10/keyedit.c:590
msgid "check"
msgstr "check"
-#: g10/keyedit.c:574
+#: g10/keyedit.c:590
msgid "list signatures"
msgstr "lista assinaturas"
-#: g10/keyedit.c:575
+#: g10/keyedit.c:591
msgid "c"
msgstr "c"
-#: g10/keyedit.c:576
+#: g10/keyedit.c:592
msgid "sign"
msgstr "sign"
-#: g10/keyedit.c:576
+#: g10/keyedit.c:592
msgid "sign the key"
msgstr "assina a chave"
-#: g10/keyedit.c:577
+#: g10/keyedit.c:593
msgid "s"
msgstr "s"
-#: g10/keyedit.c:578
+#: g10/keyedit.c:594
msgid "lsign"
msgstr "lsign"
-#: g10/keyedit.c:578
+#: g10/keyedit.c:594
msgid "sign the key locally"
msgstr "assina a chave localmente"
-#: g10/keyedit.c:579
+#: g10/keyedit.c:595
msgid "debug"
msgstr "debug"
-#: g10/keyedit.c:580
+#: g10/keyedit.c:596
msgid "adduid"
msgstr "adduid"
-#: g10/keyedit.c:580
+#: g10/keyedit.c:596
msgid "add a user ID"
msgstr "adiciona um novo ID de utilizador"
-#: g10/keyedit.c:581
+#: g10/keyedit.c:597
msgid "deluid"
msgstr "deluid"
-#: g10/keyedit.c:581
+#: g10/keyedit.c:597
msgid "delete user ID"
msgstr "remove ID de utilizador"
-#: g10/keyedit.c:582
+#: g10/keyedit.c:598
msgid "addkey"
msgstr "addkey"
-#: g10/keyedit.c:582
+#: g10/keyedit.c:598
msgid "add a secondary key"
msgstr "adiciona nova chave secund�ria"
-#: g10/keyedit.c:583
+#: g10/keyedit.c:599
msgid "delkey"
msgstr "delkey"
-#: g10/keyedit.c:583
+#: g10/keyedit.c:599
msgid "delete a secondary key"
msgstr "remove uma chave secund�ria"
-#: g10/keyedit.c:584
+#: g10/keyedit.c:600
msgid "delsig"
msgstr "delsig"
-#: g10/keyedit.c:584
+#: g10/keyedit.c:600
msgid "delete signatures"
msgstr "remove assinaturas"
-#: g10/keyedit.c:585
+#: g10/keyedit.c:601
msgid "expire"
msgstr "expire"
-#: g10/keyedit.c:585
+#: g10/keyedit.c:601
msgid "change the expire date"
msgstr "muda a data de validade"
-#: g10/keyedit.c:586
+#: g10/keyedit.c:602
msgid "toggle"
msgstr "toggle"
-#: g10/keyedit.c:586
+#: g10/keyedit.c:602
msgid "toggle between secret and public key listing"
msgstr "alterna entre listagem de chave secreta e p�blica"
-#: g10/keyedit.c:588
+#: g10/keyedit.c:604
msgid "t"
msgstr "t"
-#: g10/keyedit.c:589
+#: g10/keyedit.c:605
msgid "pref"
msgstr "pref"
-#: g10/keyedit.c:589
+#: g10/keyedit.c:605
msgid "list preferences"
msgstr "lista prefer�ncias"
-#: g10/keyedit.c:590
+#: g10/keyedit.c:606
msgid "passwd"
msgstr "passwd"
-#: g10/keyedit.c:590
+#: g10/keyedit.c:606
msgid "change the passphrase"
msgstr "muda a frase secreta"
-#: g10/keyedit.c:591
+#: g10/keyedit.c:607
msgid "trust"
msgstr "trust"
-#: g10/keyedit.c:591
+#: g10/keyedit.c:607
msgid "change the ownertrust"
msgstr "muda os valores de confian�a"
-#: g10/keyedit.c:592
+#: g10/keyedit.c:608
msgid "revsig"
msgstr "revsig"
-#: g10/keyedit.c:592
+#: g10/keyedit.c:608
msgid "revoke signatures"
msgstr "revoga assinaturas"
-#: g10/keyedit.c:593
+#: g10/keyedit.c:609
msgid "revkey"
msgstr "revkey"
-#: g10/keyedit.c:593
+#: g10/keyedit.c:609
msgid "revoke a secondary key"
msgstr "revoga uma chave secund�ria"
-#: g10/keyedit.c:594
+#: g10/keyedit.c:610
msgid "disable"
msgstr "disable"
-#: g10/keyedit.c:594
+#: g10/keyedit.c:610
msgid "disable a key"
msgstr "desactiva uma chave"
-#: g10/keyedit.c:595
+#: g10/keyedit.c:611
msgid "enable"
msgstr "enable"
-#: g10/keyedit.c:595
+#: g10/keyedit.c:611
msgid "enable a key"
msgstr "activa uma chave"
-#: g10/delkey.c:107 g10/keyedit.c:614
+#: g10/delkey.c:110 g10/keyedit.c:630
msgid "can't do that in batchmode\n"
msgstr "imposs�vel fazer isso em modo n�o-interativo\n"
-#: g10/keyedit.c:652
+#. check that they match
+#. fixme: check that they both match
+#: g10/keyedit.c:668
msgid "Secret key is available.\n"
msgstr "Chave secreta dispon�vel.\n"
-#: g10/keyedit.c:681
+#: g10/keyedit.c:697
msgid "Command> "
msgstr "Comando> "
-#: g10/keyedit.c:711
+#: g10/keyedit.c:727
msgid "Need the secret key to do this.\n"
msgstr "A chave secreta � necess�ria para fazer isto.\n"
-#: g10/keyedit.c:758
+#: g10/keyedit.c:731
+msgid "Please use the command \"toggle\" first.\n"
+msgstr ""
+
+#: g10/keyedit.c:778
msgid "Really sign all user IDs? "
msgstr "Realmente assinar todos os IDs de utilizador? "
-#: g10/keyedit.c:759
+#: g10/keyedit.c:779
msgid "Hint: Select the user IDs to sign\n"
msgstr "Sugest�o: Selecione os IDs de utilizador para assinar\n"
-#: g10/keyedit.c:786 g10/keyedit.c:968
+#: g10/keyedit.c:811 g10/keyedit.c:993
#, c-format
msgid "update of trustdb failed: %s\n"
msgstr "actualiza��o da base de dados de confian�a falhou: %s\n"
-#: g10/keyedit.c:797 g10/keyedit.c:818
+#: g10/keyedit.c:822 g10/keyedit.c:843
msgid "You must select at least one user ID.\n"
msgstr "Voc� precisa selecionar pelo menos um ID de utilizador.\n"
-#: g10/keyedit.c:799
+#: g10/keyedit.c:824
msgid "You can't delete the last user ID!\n"
msgstr "Voc� n�o pode remover o �ltimo ID de utilizador!\n"
-#: g10/keyedit.c:802
+#: g10/keyedit.c:827
msgid "Really remove all selected user IDs? "
msgstr "Realmente remover todos os IDs de utilizador seleccionados? "
-#: g10/keyedit.c:803
+#: g10/keyedit.c:828
msgid "Really remove this user ID? "
msgstr "Realmente remover este ID de utilizador? "
-#: g10/keyedit.c:839 g10/keyedit.c:861
+#: g10/keyedit.c:864 g10/keyedit.c:886
msgid "You must select at least one key.\n"
msgstr "Voc� deve selecionar pelo menos uma chave.\n"
-#: g10/keyedit.c:843
+#: g10/keyedit.c:868
msgid "Do you really want to delete the selected keys? "
msgstr "Voc� quer realmente remover as chaves selecionadas? "
-#: g10/keyedit.c:844
+#: g10/keyedit.c:869
msgid "Do you really want to delete this key? "
msgstr "Voc� quer realmente remover esta chave? "
-#: g10/keyedit.c:865
+#: g10/keyedit.c:890
msgid "Do you really want to revoke the selected keys? "
msgstr "Voc� quer realmente revogar as chaves selecionadas? "
-#: g10/keyedit.c:866
+#: g10/keyedit.c:891
msgid "Do you really want to revoke this key? "
msgstr "Voc� quer realmente revogar esta chave? "
-#: g10/keyedit.c:932
+#: g10/keyedit.c:957
msgid "Save changes? "
msgstr "Gravar altera��es? "
-#: g10/keyedit.c:935
+#: g10/keyedit.c:960
msgid "Quit without saving? "
msgstr "Sair sem gravar? "
-#: g10/keyedit.c:946
+#: g10/keyedit.c:971
#, c-format
msgid "update failed: %s\n"
msgstr "actualiza��o falhou: %s\n"
-#: g10/keyedit.c:953
+#: g10/keyedit.c:978
#, c-format
msgid "update secret failed: %s\n"
msgstr "actualiza��o da chave secreta falhou: %s\n"
-#: g10/keyedit.c:960
+#: g10/keyedit.c:985
msgid "Key not changed so no update needed.\n"
msgstr "Chave n�o alterada, nenhuma actualiza��o � necess�ria.\n"
# help ou ajuda ???
-#: g10/keyedit.c:975
+#: g10/keyedit.c:1000
msgid "Invalid command (try \"help\")\n"
msgstr "Comando inv�lido (tente \"help\")\n"
-#: g10/keyedit.c:1065
+#: g10/keyedit.c:1093
msgid "This key has been disabled"
msgstr "Esta chave foi desactivada"
-#: g10/keyedit.c:1336
+#: g10/keyedit.c:1364
msgid "Delete this good signature? (y/N/q)"
msgstr "Apagar esta assinatura v�lida? (s/N/q)"
-#: g10/keyedit.c:1340
+#: g10/keyedit.c:1368
msgid "Delete this invalid signature? (y/N/q)"
msgstr "Apagar esta assinatura inv�lida? (s/N/q)"
-#: g10/keyedit.c:1344
+#: g10/keyedit.c:1372
msgid "Delete this unknown signature? (y/N/q)"
msgstr "Apagar esta assinatura desconhecida? (s/N/q)"
-#: g10/keyedit.c:1350
+#: g10/keyedit.c:1378
msgid "Really delete this self-signature? (y/N)"
msgstr "Realmente remover esta auto-assinatura? (s/N)"
-#: g10/keyedit.c:1364
+#: g10/keyedit.c:1392
#, c-format
msgid "Deleted %d signature.\n"
msgstr "%d assinatura removida.\n"
-#: g10/keyedit.c:1365
+#: g10/keyedit.c:1393
#, c-format
msgid "Deleted %d signatures.\n"
msgstr "%d assinaturas removidas.\n"
-#: g10/keyedit.c:1368
+#: g10/keyedit.c:1396
msgid "Nothing deleted.\n"
msgstr "Nada removido.\n"
-#: g10/keyedit.c:1437
+#: g10/keyedit.c:1465
msgid "Please remove selections from the secret keys.\n"
msgstr "Por favor remova as selec��es das chaves secretas.\n"
-#: g10/keyedit.c:1443
+#: g10/keyedit.c:1471
msgid "Please select at most one secondary key.\n"
msgstr "Por favor seleccione no m�ximo uma chave secund�ria.\n"
-#: g10/keyedit.c:1447
+#: g10/keyedit.c:1475
msgid "Changing expiration time for a secondary key.\n"
msgstr "A modificar a data de validade para uma chave secund�ria.\n"
-#: g10/keyedit.c:1449
+#: g10/keyedit.c:1477
msgid "Changing expiration time for the primary key.\n"
msgstr "Modificar a data de validade para uma chave prim�ria.\n"
-#: g10/keyedit.c:1490
+#: g10/keyedit.c:1519
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"
-#: g10/keyedit.c:1506
+#: g10/keyedit.c:1535
msgid "No corresponding signature in secret ring\n"
msgstr "Nenhuma assinatura correspondente no porta-chaves secreto\n"
-#: g10/keyedit.c:1566
+#: g10/keyedit.c:1596
#, c-format
msgid "No user ID with index %d\n"
msgstr "Nenhum ID de utilizador com �ndice %d\n"
-#: g10/keyedit.c:1612
+#: g10/keyedit.c:1642
#, c-format
msgid "No secondary key with index %d\n"
msgstr "Nenhuma chave secund�ria com �ndice %d\n"
-#: g10/keyedit.c:1710
+#: g10/keyedit.c:1740
msgid "user ID: \""
msgstr "ID de utilizador: \""
-#: g10/keyedit.c:1713
+#: g10/keyedit.c:1743
#, c-format
msgid ""
"\"\n"
@@ -2348,130 +2482,146 @@ msgstr ""
"\"\n"
"assinado com sua chave %08lX em %s\n"
-#: g10/keyedit.c:1717
+#: g10/keyedit.c:1747
msgid "Create a revocation certificate for this signature? (y/N)"
msgstr "Gerar um certificado de revoga��o para esta assinatura? (s/N)"
-#: g10/keyedit.c:1740
+#. FIXME: detect duplicates here
+#: g10/keyedit.c:1771
msgid "You have signed these user IDs:\n"
msgstr "Assinou estes identificadores de utilizadores:\n"
-#: g10/keyedit.c:1754 g10/keyedit.c:1789
+#: g10/keyedit.c:1785 g10/keyedit.c:1820
#, c-format
msgid " signed by %08lX at %s\n"
msgstr " assinado por %08lX em %s\n"
-#: g10/keyedit.c:1759
+#: g10/keyedit.c:1790
#, c-format
msgid " revoked by %08lX at %s\n"
msgstr " revogado por %08lX em %s\n"
-#: g10/keyedit.c:1779
+#: g10/keyedit.c:1810
msgid "You are about to revoke these signatures:\n"
msgstr "Est� prestes a revogar estas assinaturas:\n"
-#: g10/keyedit.c:1797
+#: g10/keyedit.c:1828
msgid "Really create the revocation certificates? (y/N)"
msgstr "Realmente gerar os certificados de revoga��o? (s/N)"
-#: g10/keyedit.c:1820
+#: g10/keyedit.c:1857
msgid "no secret key\n"
msgstr "nenhuma chave secreta\n"
+#. of subkey
+#: g10/keylist.c:318 g10/mainproc.c:740
+#, fuzzy, c-format
+msgid " [expires: %s]"
+msgstr "A chave expira em %s\n"
+
#: g10/mainproc.c:213
#, c-format
msgid "public key is %08lX\n"
msgstr "a chave p�blica � %08lX\n"
-#: g10/mainproc.c:244
+#: g10/mainproc.c:248
msgid "public key encrypted data: good DEK\n"
msgstr "dados encriptados com chave p�blica: DEK v�lido\n"
-#: g10/mainproc.c:275
+#: g10/mainproc.c:281
#, c-format
msgid "encrypted with %u-bit %s key, ID %08lX, created %s\n"
msgstr "encriptado com chave %u-bit %s, ID %08lX, criada em %s\n"
-#: g10/mainproc.c:285
+#: g10/mainproc.c:291
#, c-format
msgid "encrypted with %s key, ID %08lX\n"
msgstr "encriptado com chave %s, ID %08lX\n"
-#: g10/mainproc.c:291
+#: g10/mainproc.c:297
msgid "no secret key for decryption available\n"
msgstr "nenhuma chave secreta para desencripta��o dispon�vel\n"
-#: g10/mainproc.c:300
+#: g10/mainproc.c:306
#, c-format
msgid "public key decryption failed: %s\n"
msgstr "desencripta��o de chave p�blica falhou: %s\n"
-#: g10/mainproc.c:330
+#: g10/mainproc.c:342
msgid "decryption okay\n"
msgstr "desencripta��o correcta\n"
-#: g10/mainproc.c:335
+#: g10/mainproc.c:347
msgid "WARNING: encrypted message has been manipulated!\n"
msgstr "CUIDADO: a mensagem encriptada foi manipulada!\n"
-#: g10/mainproc.c:340
+#: g10/mainproc.c:352
#, c-format
msgid "decryption failed: %s\n"
msgstr "desencripta��o falhou: %s\n"
-#: g10/mainproc.c:358
+#: g10/mainproc.c:371
msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
msgstr "NOTA: o remetente solicitou \"apenas-para-seus-olhos\"\n"
-#: g10/mainproc.c:360
+#: g10/mainproc.c:373
#, c-format
msgid "original file name='%.*s'\n"
msgstr "nome do ficheiro original='%.*s'\n"
-#: g10/mainproc.c:587 g10/mainproc.c:596
+#: g10/mainproc.c:524
+msgid "standalone revocation - use \"gpg --import\" to apply\n"
+msgstr "revoca��o solit�ria - utilize \"gpg --import\" para aplicar\n"
+
+#: g10/mainproc.c:611 g10/mainproc.c:620
msgid "WARNING: invalid notation data found\n"
msgstr "AVISO: dados de nota��o inv�lidos encontrados\n"
-#: g10/mainproc.c:599
+#: g10/mainproc.c:623
msgid "Notation: "
msgstr "Nota��o: "
-#: g10/mainproc.c:606
+#: g10/mainproc.c:630
msgid "Policy: "
msgstr "Pol�tica: "
-#: g10/mainproc.c:1025
+#: g10/mainproc.c:1057
msgid "signature verification suppressed\n"
msgstr "verifica��o de assinatura suprimida\n"
-#: g10/mainproc.c:1031
+#: g10/mainproc.c:1063
#, c-format
msgid "Signature made %.*s using %s key ID %08lX\n"
msgstr "Assinatura feita em %.*s usando %s, ID da chave %08lX\n"
#. just in case that we have no userid
-#: g10/mainproc.c:1057 g10/mainproc.c:1068
+#: g10/mainproc.c:1089 g10/mainproc.c:1100
msgid "BAD signature from \""
msgstr "Assinatura INCORRECTA de \""
-#: g10/mainproc.c:1058 g10/mainproc.c:1069
+#: g10/mainproc.c:1090 g10/mainproc.c:1101
msgid "Good signature from \""
msgstr "Assinatura correta de \""
-#: g10/mainproc.c:1060
+#: g10/mainproc.c:1092
msgid " aka \""
msgstr " ou \""
-#: g10/mainproc.c:1115
+#: g10/mainproc.c:1148
#, c-format
msgid "Can't check signature: %s\n"
msgstr "Imposs�vel verificar assinatura: %s\n"
-#: g10/mainproc.c:1212
+#: g10/mainproc.c:1209
+#, c-format
+msgid "standalone signature of class 0x%02x\n"
+msgstr "assinatura de classe 0x%02x\n"
+
+#: g10/mainproc.c:1250
msgid "old style (PGP 2.x) signature\n"
msgstr "formato de assinatura antigo (PGP2.x)\n"
-#: g10/mainproc.c:1217
+#: g10/mainproc.c:1255
msgid "invalid root packet detected in proc_tree()\n"
msgstr "pacote raiz inv�lido detectado em proc_tree()\n"
@@ -2502,12 +2652,12 @@ msgstr ""
"este algoritmo de criptografia n�o � recomendado;\n"
"por favor use um algoritmo mais standard!\n"
-#: g10/parse-packet.c:113
+#: g10/parse-packet.c:115
#, c-format
msgid "can't handle public key algorithm %d\n"
msgstr "imposs�vel manipular algoritmo de chave p�blica %d\n"
-#: g10/parse-packet.c:939
+#: g10/parse-packet.c:956
#, c-format
msgid "subpacket of type %d has critical bit set\n"
msgstr "subpacote do tipo %d tem bit cr�tico ligado\n"
@@ -2548,15 +2698,19 @@ msgstr "Repita a frase secreta: "
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"
-#: g10/plaintext.c:315
+#: g10/plaintext.c:317
+msgid "Detached signature.\n"
+msgstr "Assinatura desacoplada.\n"
+
+#: g10/plaintext.c:321
msgid "Please enter name of data file: "
msgstr "Por favor digite o nome do ficheiro de dados: "
-#: g10/plaintext.c:336
+#: g10/plaintext.c:342
msgid "reading stdin ...\n"
msgstr "lendo do \"stdin\" ...\n"
-#: g10/plaintext.c:379
+#: g10/plaintext.c:385
#, c-format
msgid "can't open signed data `%s'\n"
msgstr "imposs�vel abrir dados assinados `%s'\n"
@@ -2574,524 +2728,588 @@ 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"
-#: g10/pubkey-enc.c:191
+#: g10/pubkey-enc.c:156
+#, fuzzy, c-format
+msgid "cipher algorithm %d is unknown or disabled\n"
+msgstr "algoritmo de protec��o %d n�o � suportado\n"
+
+#: g10/pubkey-enc.c:195
#, c-format
msgid "NOTE: cipher algorithm %d not found in preferences\n"
msgstr "NOTA: algoritmo de cifragem %d n�o encontrado nas prefer�ncias\n"
-#: g10/seckey-cert.c:55
+#: g10/pubkey-enc.c:201
+#, fuzzy, c-format
+msgid "NOTE: secret key %08lX expired at %s\n"
+msgstr "NOTA: chave de assinatura expirou %s\n"
+
+#: g10/hkp.c:62
+#, c-format
+msgid "requesting key %08lX from %s ...\n"
+msgstr ""
+
+#: g10/hkp.c:75
+#, fuzzy, c-format
+msgid "can't get key from keyserver: %s\n"
+msgstr "importar chaves de um servidor"
+
+#: g10/hkp.c:98 g10/hkp.c:136
+msgid "no keyserver known (use option --keyserver)\n"
+msgstr ""
+
+#: g10/hkp.c:106
+#, fuzzy, c-format
+msgid "%s: not a valid key ID\n"
+msgstr "%s n�o � um conjunto de caracteres v�lido\n"
+
+#: g10/hkp.c:158
+#, fuzzy, c-format
+msgid "can't connect to `%s': %s\n"
+msgstr "imposs�vel abrir `%s': %s\n"
+
+#: g10/hkp.c:182
+#, fuzzy, c-format
+msgid "error sending to `%s': %s\n"
+msgstr "erro na leitura de `%s': %s\n"
+
+#: g10/hkp.c:194
+#, c-format
+msgid "success sending to `%s' (status=%u)\n"
+msgstr ""
+
+#: g10/hkp.c:197
+#, c-format
+msgid "failed sending to `%s': status=%u\n"
+msgstr ""
+
+#: g10/seckey-cert.c:53
+#, fuzzy
+msgid "secret key parts are not available\n"
+msgstr "chave secreta n�o dispon�vel"
+
+#: g10/seckey-cert.c:59
#, c-format
msgid "protection algorithm %d is not supported\n"
msgstr "algoritmo de protec��o %d n�o � suportado\n"
-#: g10/seckey-cert.c:171
+#: g10/seckey-cert.c:175
msgid "Invalid passphrase; please try again ...\n"
msgstr "Frase secreta inv�lida; por favor tente novamente ...\n"
-#: g10/seckey-cert.c:227
+#: g10/seckey-cert.c:231
msgid "WARNING: Weak key detected - please change passphrase again.\n"
msgstr ""
"AVISO: Chave fraca detectada - por favor mude a frase secreta novamente.\n"
-#: g10/sig-check.c:199
+#: g10/sig-check.c:202
msgid "assuming bad MDC due to an unknown critical bit\n"
msgstr "assumindo MDC incorrecto devido a um bit cr�tico desconhecido\n"
-#: g10/sig-check.c:295
+#: g10/sig-check.c:300
msgid ""
"this is a PGP generated ElGamal key which is NOT secure for signatures!\n"
msgstr ""
"esta � uma chave ElGamal gerada pelo PGP que N�O � segura para assinaturas!\n"
-#: g10/sig-check.c:303
+#: g10/sig-check.c:308
#, c-format
msgid "public key is %lu second newer than the signature\n"
msgstr "a chave p�blica � %lu segundo mais nova que a assinatura\n"
-#: g10/sig-check.c:304
+#: g10/sig-check.c:309
#, c-format
msgid "public key is %lu seconds newer than the signature\n"
msgstr "a chave p�blica � %lu segundos mais nova que a assinatura\n"
-#: g10/sig-check.c:320
+#: g10/sig-check.c:327
#, c-format
msgid "NOTE: signature key expired %s\n"
msgstr "NOTA: chave de assinatura expirou %s\n"
-#: g10/sig-check.c:377
+#: g10/sig-check.c:385
msgid "assuming bad signature due to an unknown critical bit\n"
msgstr "assumindo assinatura incorrecta devido a um bit cr�tico desconhecido\n"
-#: g10/sign.c:132
+#: g10/sign.c:139
#, c-format
msgid "%s signature from: %s\n"
msgstr "assinatura %s de: %s\n"
-#: g10/sign.c:263 g10/sign.c:575
+#: g10/sign.c:270 g10/sign.c:582
#, c-format
msgid "can't create %s: %s\n"
msgstr "imposs�vel criar %s: %s\n"
-#: g10/sign.c:361
+#: g10/sign.c:368
msgid "signing:"
msgstr "a assinar:"
-#: g10/sign.c:404
+#: g10/sign.c:411
#, c-format
msgid "WARNING: `%s' is an empty file\n"
msgstr "AVISO: `%s' � um ficheiro vazio\n"
-#: g10/textfilter.c:128
+#: g10/textfilter.c:134
#, 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"
-#: g10/textfilter.c:197
+#: g10/textfilter.c:231
#, c-format
msgid "input line longer than %d characters\n"
msgstr "linha de entrada maior que %d caracteres\n"
-#: g10/tdbio.c:121 g10/tdbio.c:1635
+#: g10/tdbio.c:116 g10/tdbio.c:1623
#, c-format
msgid "trustdb rec %lu: lseek failed: %s\n"
msgstr "base de dados de confian�a rec %lu: lseek falhou: %s\n"
-#: g10/tdbio.c:127 g10/tdbio.c:1642
+#: g10/tdbio.c:122 g10/tdbio.c:1630
#, 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"
-#: g10/tdbio.c:237
+#: g10/tdbio.c:232
msgid "trustdb transaction too large\n"
msgstr "transa��o de base de dados de confian�a muito grande\n"
-#: g10/tdbio.c:429
+#: g10/tdbio.c:424
#, c-format
msgid "%s: can't access: %s\n"
msgstr "%s: imposs�vel aceder: %s\n"
-#: g10/ringedit.c:298 g10/tdbio.c:445
-#, c-format
-msgid "%s: can't create directory: %s\n"
-msgstr "%s: imposs�vel criar directoria: %s\n"
-
-#: g10/ringedit.c:304 g10/tdbio.c:448
-#, c-format
-msgid "%s: directory created\n"
-msgstr "%s: directoria criada\n"
-
-#: g10/tdbio.c:452
+#: g10/tdbio.c:438
#, c-format
msgid "%s: directory does not exist!\n"
msgstr "%s: diretoria inexistente!\n"
-#: g10/openfile.c:182 g10/openfile.c:253 g10/ringedit.c:1348 g10/tdbio.c:458
+#: g10/openfile.c:216 g10/openfile.c:284 g10/ringedit.c:1363 g10/tdbio.c:444
#, c-format
msgid "%s: can't create: %s\n"
msgstr "%s: imposs�vel criar: %s\n"
-#: g10/tdbio.c:473 g10/tdbio.c:522
+#: g10/tdbio.c:459 g10/tdbio.c:508
#, c-format
msgid "%s: can't create lock\n"
msgstr "%s: imposs�vel criar tranca\n"
-#: g10/tdbio.c:487
+#: g10/tdbio.c:473
#, c-format
msgid "%s: failed to create version record: %s"
msgstr "%s: falha ao criar registo de vers�o: %s"
-#: g10/tdbio.c:491
+#: g10/tdbio.c:477
#, c-format
msgid "%s: invalid trustdb created\n"
msgstr "%s: base de dados de confian�a inv�lida criada\n"
-#: g10/tdbio.c:494
+#: g10/tdbio.c:480
#, c-format
msgid "%s: trustdb created\n"
msgstr "%s: base de dados de confian�a criada\n"
-#: g10/tdbio.c:531
+#: g10/tdbio.c:517
#, c-format
msgid "%s: invalid trustdb\n"
msgstr "%s: base de dados de confian�a inv�lida\n"
-#: g10/tdbio.c:564
+#: g10/tdbio.c:550
#, c-format
msgid "%s: failed to create hashtable: %s\n"
msgstr "%s: falha ao criar tabela de \"hash\": %s\n"
-#: g10/tdbio.c:572
+#: g10/tdbio.c:558
#, c-format
msgid "%s: error updating version record: %s\n"
msgstr "%s: erro a actualizar registo de vers�o: %s\n"
-#: g10/tdbio.c:588 g10/tdbio.c:627 g10/tdbio.c:649 g10/tdbio.c:679
-#: g10/tdbio.c:704 g10/tdbio.c:1568 g10/tdbio.c:1595
+#: g10/tdbio.c:574 g10/tdbio.c:613 g10/tdbio.c:635 g10/tdbio.c:665
+#: g10/tdbio.c:690 g10/tdbio.c:1556 g10/tdbio.c:1583
#, c-format
msgid "%s: error reading version record: %s\n"
msgstr "%s: erro ao ler registo de vers�o: %s\n"
-#: g10/tdbio.c:601 g10/tdbio.c:660
+#: g10/tdbio.c:587 g10/tdbio.c:646
#, c-format
msgid "%s: error writing version record: %s\n"
msgstr "%s: erro ao escrever registo de vers�o: %s\n"
-#: g10/tdbio.c:1247
+#: g10/tdbio.c:1235
#, c-format
msgid "trustdb: lseek failed: %s\n"
msgstr "base de dados de confian�a: lseek falhou: %s\n"
-#: g10/tdbio.c:1255
+#: g10/tdbio.c:1243
#, c-format
msgid "trustdb: read failed (n=%d): %s\n"
msgstr "base de dados de confian�a: leitura falhou (n=%d): %s\n"
-#: g10/tdbio.c:1276
+#: g10/tdbio.c:1264
#, c-format
msgid "%s: not a trustdb file\n"
msgstr "%s: n�o � um base de dados de confian�a\n"
-#: g10/tdbio.c:1292
+#: g10/tdbio.c:1280
#, c-format
msgid "%s: version record with recnum %lu\n"
msgstr "%s: registo de vers�o com recnum %lu\n"
-#: g10/tdbio.c:1297
+#: g10/tdbio.c:1285
#, c-format
msgid "%s: invalid file version %d\n"
msgstr "%s: vers�o de ficheiro inv�lida %d\n"
-#: g10/tdbio.c:1601
+#: g10/tdbio.c:1589
#, c-format
msgid "%s: error reading free record: %s\n"
msgstr "%s: erro ao ler registo livre: %s\n"
-#: g10/tdbio.c:1609
+#: g10/tdbio.c:1597
#, c-format
msgid "%s: error writing dir record: %s\n"
msgstr "%s: erro ao escrever registo de diret�rio: %s\n"
-#: g10/tdbio.c:1619
+#: g10/tdbio.c:1607
#, c-format
msgid "%s: failed to zero a record: %s\n"
msgstr "%s: falha ao zerar um registo: %s\n"
-#: g10/tdbio.c:1649
+#: g10/tdbio.c:1637
#, c-format
msgid "%s: failed to append a record: %s\n"
msgstr "%s: falha ao anexar um registo: %s\n"
-#: g10/tdbio.c:1760
+#: g10/tdbio.c:1748
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"
"\"gpg --fix-trustdb\".\n"
-#: g10/trustdb.c:160
+#: g10/trustdb.c:168
#, 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"
-#: g10/trustdb.c:175
+#: g10/trustdb.c:183
#, c-format
msgid "trust record %lu, type %d: write failed: %s\n"
msgstr "registo de confian�a %lu, tipo %d: escrita falhou: %s\n"
-#: g10/trustdb.c:189
+#: g10/trustdb.c:197
#, c-format
msgid "trust record %lu: delete failed: %s\n"
msgstr "registo de confian�a %lu: remo��o falhou: %s\n"
-#: g10/trustdb.c:203
+#: g10/trustdb.c:211
#, c-format
msgid "trustdb: sync failed: %s\n"
msgstr "base de dados de confian�a: sincroniza��o falhou: %s\n"
-#: g10/trustdb.c:347
+#: g10/trustdb.c:376
#, c-format
msgid "error reading dir record for LID %lu: %s\n"
msgstr "erro lendo registo de direct�rio para LID %lu: %s\n"
-#: g10/trustdb.c:354
+#: g10/trustdb.c:383
#, c-format
msgid "lid %lu: expected dir record, got type %d\n"
msgstr "lid %lu: registo de direct�rio esperado, tipo %d recebido\n"
-#: g10/trustdb.c:359
+#: g10/trustdb.c:388
#, c-format
msgid "no primary key for LID %lu\n"
msgstr "nenhuma chave prim�ria para LID %lu\n"
-#: g10/trustdb.c:364
+#: g10/trustdb.c:393
#, c-format
msgid "error reading primary key for LID %lu: %s\n"
msgstr "erro ao ler chave prim�ria para LID %lu: %s\n"
-#: g10/trustdb.c:403
+#: g10/trustdb.c:432
#, c-format
msgid "get_dir_record: search_record failed: %s\n"
msgstr "get_dir_record: search_record falhou: %s\n"
-#: g10/trustdb.c:458
+#: g10/trustdb.c:487
#, c-format
msgid "NOTE: secret key %08lX is NOT protected.\n"
msgstr "NOTA: a chave secreta %08lX N�O est� protegida.\n"
-#: g10/trustdb.c:466
+#: g10/trustdb.c:495
#, c-format
msgid "key %08lX: secret key without public key - skipped\n"
msgstr "chave %08lX: chave secreta sem chave p�blica - ignorada\n"
-#: g10/trustdb.c:473
+#: g10/trustdb.c:502
#, c-format
msgid "key %08lX: secret and public key don't match\n"
msgstr "chave %08lX: chaves secreta e p�blica n�o s�o correspondentes\n"
-#: g10/trustdb.c:485
+#: g10/trustdb.c:514
#, c-format
msgid "key %08lX: can't put it into the trustdb\n"
msgstr "chave %08lX: imposs�vel coloc�-la na base de dados de confian�a\n"
-#: g10/trustdb.c:491
+#: g10/trustdb.c:520
#, c-format
msgid "key %08lX: query record failed\n"
msgstr "chave %08lX: pedido de registo falhou\n"
-#: g10/trustdb.c:500
+#: g10/trustdb.c:529
#, c-format
msgid "key %08lX: already in trusted key table\n"
msgstr "chave %08lX: j� est� na tabela de chaves confi�veis\n"
-#: g10/trustdb.c:503
+#: g10/trustdb.c:532
#, c-format
msgid "key %08lX: accepted as trusted key.\n"
msgstr "chave %08lX: aceite como chave confi�vel.\n"
-#: g10/trustdb.c:511
+#: g10/trustdb.c:540
#, c-format
msgid "enumerate secret keys failed: %s\n"
msgstr "enumera��o de chaves secretas falhou: %s\n"
-#: g10/trustdb.c:877
+#: g10/trustdb.c:921
#, c-format
msgid "key %08lX.%lu: Good subkey binding\n"
msgstr "chave %08lX.%lu: Liga��o de subchave v�lida\n"
-#: g10/trustdb.c:883 g10/trustdb.c:918
+#: g10/trustdb.c:927 g10/trustdb.c:962
#, c-format
msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
msgstr "chave %08lX.%lu: Liga��o de subchave inv�lida: %s\n"
-#: g10/trustdb.c:895
+#: g10/trustdb.c:939
#, c-format
msgid "key %08lX.%lu: Valid key revocation\n"
msgstr "chave %08lX.%lu: Revoga��o de chave v�lida\n"
-#: g10/trustdb.c:901
+#: g10/trustdb.c:945
#, c-format
msgid "key %08lX.%lu: Invalid key revocation: %s\n"
msgstr "chave %08lX.%lu: Revoga��o de chave inv�lida: %s\n"
-#: g10/trustdb.c:912
+#: g10/trustdb.c:956
#, c-format
msgid "key %08lX.%lu: Valid subkey revocation\n"
msgstr "chave %08lX.%lu: Revoga��o de subchave v�lida\n"
-#: g10/trustdb.c:1023
+#: g10/trustdb.c:1067
msgid "Good self-signature"
msgstr "Auto-assinatura v�lida"
-#: g10/trustdb.c:1033
+#: g10/trustdb.c:1077
msgid "Invalid self-signature"
msgstr "Auto-assinatura inv�lida"
-#: g10/trustdb.c:1060
+#: g10/trustdb.c:1104
msgid "Valid user ID revocation skipped due to a newer self signature"
msgstr ""
"Revoga��o v�lida de ID de utilizador ignorada devido a nova auto-assinatura"
-#: g10/trustdb.c:1066
+#: g10/trustdb.c:1110
msgid "Valid user ID revocation"
msgstr "Revoga��o de ID de utilizador v�lida"
-#: g10/trustdb.c:1071
+#: g10/trustdb.c:1115
msgid "Invalid user ID revocation"
msgstr "Revoga��o de ID de utilizador inv�lida"
-#: g10/trustdb.c:1112
+#: g10/trustdb.c:1157
msgid "Valid certificate revocation"
msgstr "Certificado de revoga��o v�lido"
-#: g10/trustdb.c:1113
+#: g10/trustdb.c:1158
msgid "Good certificate"
msgstr "Certificado correcto"
-#: g10/trustdb.c:1134
+#: g10/trustdb.c:1186
msgid "Invalid certificate revocation"
msgstr "Certificado de revoga��o inv�lido"
-#: g10/trustdb.c:1135
+#: g10/trustdb.c:1187
msgid "Invalid certificate"
msgstr "Certificado inv�lido"
-#: g10/trustdb.c:1152 g10/trustdb.c:1156
+#: g10/trustdb.c:1204 g10/trustdb.c:1208
#, c-format
msgid "sig record %lu[%d] points to wrong record.\n"
msgstr "registo de assinatura %lu[%d] aponta para registo errado.\n"
-#: g10/trustdb.c:1208
+#: g10/trustdb.c:1267
msgid "duplicated certificate - deleted"
msgstr "certificado duplicado - removido"
-#: g10/trustdb.c:1514
+#: g10/trustdb.c:1584
#, c-format
msgid "tdbio_search_dir failed: %s\n"
msgstr "tdbio_search_dir falhou: %s\n"
-#: g10/trustdb.c:1636
+#: g10/trustdb.c:1718
#, c-format
msgid "lid ?: insert failed: %s\n"
msgstr "lid ?: inser��o falhou: %s\n"
-#: g10/trustdb.c:1641
+#: g10/trustdb.c:1723
#, c-format
msgid "lid %lu: insert failed: %s\n"
msgstr "lid %lu: inser��o falhou: %s\n"
-#: g10/trustdb.c:1647
+#: g10/trustdb.c:1729
#, c-format
msgid "lid %lu: inserted\n"
msgstr "lid %lu: inserido\n"
-#: g10/trustdb.c:1652
+#: g10/trustdb.c:1734
#, c-format
msgid "error reading dir record: %s\n"
msgstr "erro ao ler registo de direct�rio: %s\n"
-#: g10/trustdb.c:1660 g10/trustdb.c:1714
+#: g10/trustdb.c:1742 g10/trustdb.c:1805
#, c-format
msgid "%lu keys processed\n"
msgstr "%lu chaves processadas\n"
-#: g10/trustdb.c:1662 g10/trustdb.c:1718
+#: g10/trustdb.c:1744 g10/trustdb.c:1811
#, c-format
msgid "\t%lu keys with errors\n"
msgstr "\t%lu chaves com erros\n"
-#: g10/trustdb.c:1664
+#: g10/trustdb.c:1746
#, c-format
msgid "\t%lu keys inserted\n"
msgstr "\t%lu chaves inseridas\n"
-#: g10/trustdb.c:1667
+#: g10/trustdb.c:1749
#, c-format
msgid "enumerate keyblocks failed: %s\n"
msgstr "enumera��o de blocos de chaves falhou: %s\n"
-#: g10/trustdb.c:1705
+#: g10/trustdb.c:1797
#, c-format
msgid "lid %lu: dir record w/o key - skipped\n"
msgstr "lid %lu: registo de direct�rio sem chave - ignorado\n"
-#: g10/trustdb.c:1716
+#: g10/trustdb.c:1807
+#, c-format
+msgid "\t%lu due to new pubkeys\n"
+msgstr "\t%lu devido a novas chaves p�blicas\n"
+
+#: g10/trustdb.c:1809
#, c-format
msgid "\t%lu keys skipped\n"
msgstr "\t%lu chaves ignoradas\n"
-#: g10/trustdb.c:1720
+#: g10/trustdb.c:1813
#, c-format
msgid "\t%lu keys updated\n"
msgstr "\t%lu chaves actualizadas\n"
-#: g10/trustdb.c:2057
+#: g10/trustdb.c:2158
msgid "Ooops, no keys\n"
msgstr "Ooops, nenhuma chave\n"
-#: g10/trustdb.c:2061
+#: g10/trustdb.c:2162
msgid "Ooops, no user IDs\n"
msgstr "Ooops, nenhum ID de utilizador\n"
-#: g10/trustdb.c:2218
+#: g10/trustdb.c:2320
#, c-format
msgid "check_trust: search dir record failed: %s\n"
msgstr "check_trust: busca de registo de direct�rio falhou: %s\n"
-#: g10/trustdb.c:2227
+#: g10/trustdb.c:2329
#, c-format
msgid "key %08lX: insert trust record failed: %s\n"
msgstr "chave %08lX: inser��o de registo de confian�a falhou: %s\n"
-#: g10/trustdb.c:2231
+#: g10/trustdb.c:2333
#, c-format
msgid "key %08lX.%lu: inserted into trustdb\n"
msgstr "chave %08lX.%lu: inserida na base de dados de confian�a\n"
-#: g10/trustdb.c:2239
+#: g10/trustdb.c:2341
#, c-format
msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
msgstr ""
"chave %08lX.%lu: criada no futuro (viagem no tempo ou problema no relogio)\n"
-#: g10/trustdb.c:2248
+#: g10/trustdb.c:2356
#, c-format
msgid "key %08lX.%lu: expired at %s\n"
msgstr "chave %08lX.%lu: expirou em %s\n"
-#: g10/trustdb.c:2256
+#: g10/trustdb.c:2364
#, c-format
msgid "key %08lX.%lu: trust check failed: %s\n"
msgstr "chave %08lX.%lu: verifica��o de confian�a falhou: %s\n"
-#: g10/trustdb.c:2362
+#: g10/trustdb.c:2515
#, c-format
msgid "user '%s' not found: %s\n"
msgstr "utilizador `%s' n�o encontrado: %s\n"
-#: g10/trustdb.c:2364
+#: g10/trustdb.c:2517
#, c-format
msgid "problem finding '%s' in trustdb: %s\n"
msgstr "problemas na procura de `%s' na base de dados de confian�a: %s\n"
-#: g10/trustdb.c:2367
+#: g10/trustdb.c:2520
#, c-format
msgid "user '%s' not in trustdb - inserting\n"
msgstr ""
"utilizador `%s' n�o encontrado na base de dados de confian�a - a inserir\n"
-#: g10/trustdb.c:2370
+#: g10/trustdb.c:2523
#, c-format
msgid "failed to put '%s' into trustdb: %s\n"
msgstr "falha ao colocar `%s' na base de dados de confian�a: %s\n"
-#: g10/trustdb.c:2556 g10/trustdb.c:2586
+#: g10/trustdb.c:2709 g10/trustdb.c:2739
msgid "WARNING: can't yet handle long pref records\n"
msgstr "AVISO: ainda � imposs�vel manipular registos de prefer�ncias longos\n"
-#: g10/ringedit.c:318
+#: g10/verify.c:82
+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 ""
+"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"
+
+#: g10/verify.c:147
+#, c-format
+msgid "input line %u too long or missing LF\n"
+msgstr "linha de entrada %u demasiado longa ou falta o LF\n"
+
+#: g10/ringedit.c:302
#, c-format
msgid "%s: can't create keyring: %s\n"
msgstr "%s: imposs�vel criar porta-chaves: %s\n"
-#: g10/ringedit.c:335 g10/ringedit.c:1353
+#: g10/ringedit.c:319 g10/ringedit.c:1368
#, c-format
msgid "%s: keyring created\n"
msgstr "%s: porta-chaves criado\n"
-#: g10/ringedit.c:1530
+#: g10/ringedit.c:1545
msgid "WARNING: 2 files with confidential information exists.\n"
msgstr "AVISO: existem 2 ficheiros com informa��es confidenciais.\n"
-#: g10/ringedit.c:1531
+#: g10/ringedit.c:1546
#, c-format
msgid "%s is the unchanged one\n"
msgstr "%s � o n�o modificado\n"
-#: g10/ringedit.c:1532
+#: g10/ringedit.c:1547
#, c-format
msgid "%s is the new one\n"
msgstr "%s � o novo\n"
-#: g10/ringedit.c:1533
+#: g10/ringedit.c:1548
msgid "Please fix this possible security flaw\n"
msgstr "Por favor conserte esta poss�vel falha de seguran�a\n"
@@ -3114,38 +3332,53 @@ msgstr ""
"ignorado `%s': esta � uma chave ElGamal gerada pelo PGP que n�o � segura "
"para assinaturas!\n"
-#: g10/openfile.c:65
+#. do not overwrite
+#: g10/openfile.c:79
#, c-format
msgid "File `%s' exists. "
msgstr "Arquivo `%s' j� existe. "
-#: g10/openfile.c:67
+#: g10/openfile.c:81
msgid "Overwrite (y/N)? "
msgstr "Escrever por cima (s/N)? "
-#: g10/openfile.c:97
+#: g10/openfile.c:109
#, c-format
msgid "%s: unknown suffix\n"
msgstr "%s: sufixo desconhecido\n"
-#: g10/openfile.c:119
+#: g10/openfile.c:131
msgid "Enter new filename"
msgstr "Digite novo nome de ficheiro"
-#: g10/openfile.c:160
+#: g10/openfile.c:172
msgid "writing to stdout\n"
msgstr "a escrever em \"stdout\"\n"
-#: g10/openfile.c:219
+#: g10/openfile.c:250
#, c-format
msgid "assuming signed data in `%s'\n"
msgstr "a assumir dados assinados em `%s'\n"
-#: g10/openfile.c:269
+#: g10/openfile.c:300
#, c-format
msgid "%s: new options file created\n"
msgstr "%s: novo ficheiro de op��es criado\n"
+#: g10/openfile.c:313
+#, c-format
+msgid "%s: can't create directory: %s\n"
+msgstr "%s: imposs�vel criar directoria: %s\n"
+
+#: g10/openfile.c:316
+#, c-format
+msgid "%s: directory created\n"
+msgstr "%s: directoria criada\n"
+
+#: g10/openfile.c:318
+msgid "you have to start GnuPG again, so it can read the new options file\n"
+msgstr "vai ter de reiniciar o GnuPG, para poder ler as novas op��es\n"
+
#: g10/encr-data.c:66
#, c-format
msgid "%s encrypted data\n"
@@ -3174,23 +3407,23 @@ msgstr ""
"imposs�vel evitar chave fraca para criptografia sim�trica;\n"
"tentei %d vezes!\n"
-#: g10/delkey.c:93
+#: g10/delkey.c:94
msgid "there is a secret key for this public key!\n"
msgstr "h� uma chave secreta para esta chave p�blica!\n"
-#: g10/delkey.c:95
+#: g10/delkey.c:96
msgid "use option \"--delete-secret-key\" to delete it first.\n"
msgstr "utilize a op��o \"--delete-secret-key\" para a apagar primeiro.\n"
-#: g10/delkey.c:111
+#: g10/delkey.c:114
msgid "can't do that in batchmode without \"--yes\"\n"
msgstr "imposs�vel fazer isso em modo n�o-interactivo sem utilizar \"--yes\"\n"
-#: g10/delkey.c:133
+#: g10/delkey.c:136
msgid "Delete this key from the keyring? "
msgstr "Remover esta chave do porta-chaves?"
-#: g10/delkey.c:141
+#: g10/delkey.c:144
msgid "This is a secret key! - really delete? "
msgstr "Esta chave � secreta! - apagar de qualquer modo? "
@@ -3400,14 +3633,59 @@ 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 digite um novo nome de ficheiro. Se voc� apenas carregar em RETURN\n"
+"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."
-#: g10/helptext.c:237
+#: g10/helptext.c:229
+msgid ""
+"You should specify a reason for the certification. Depending on the\n"
+"context you have the ability to choose from this list:\n"
+" \"Key has been compromised\"\n"
+" Use this if you have a reason to believe that unauthorized persons\n"
+" got access to your secret key.\n"
+" \"Key is superseeded\"\n"
+" Use this if you have replaced this key with a newer one.\n"
+" \"Key is no longer used\"\n"
+" Use this if you have retired this key.\n"
+" \"User ID is no longer valid\"\n"
+" 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 ""
+
+#: g10/helptext.c:245
+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 ""
+
+#: g10/helptext.c:260
msgid "No help available"
msgstr "Nenhuma ajuda dispon�vel"
-#: g10/helptext.c:245
+#: g10/helptext.c:268
#, c-format
msgid "No help available for `%s'"
msgstr "Nenhuma ajuda dispon�vel para `%s'"
+
+#~ msgid "set debugging flags"
+#~ msgstr "definir par�metros de depura��o"
+
+#~ msgid "enable full debugging"
+#~ msgstr "habilitar depura��o completa"
+
+#~ msgid "do not write comment packets"
+#~ msgstr "n�o escrever pacotes de coment�rio"
+
+#~ msgid "(default is 1)"
+#~ msgstr "(por omiss�o 1)"
+
+#~ msgid "(default is 3)"
+#~ msgstr "(por omiss�o 3)"
+
+#~ msgid " (%d) ElGamal in a v3 packet\n"
+#~ msgstr " (%d) ElGamal num pacote v3\n"
+
+#~ msgid "Key generation can only be used in interactive mode\n"
+#~ msgstr "A gera��o de chaves s� pode ser feita em modo interactivo\n"
diff --git a/po/ru.po b/po/ru.po
index 2dc1ba340..3c077e184 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -9,7 +9,7 @@
# QingLong <qinglong@Bolizm> (couldn't send an email to let you know)
msgid ""
msgstr ""
-"POT-Creation-Date: 1999-09-05 19:21+0200\n"
+"POT-Creation-Date: 2000-05-30 13:59+0200\n"
"Content-Type: text/plain; charset=\n"
"Date: 1998-01-26 22:08:36+0100\n"
"From: Gregory Steuck <[email protected]>\n"
@@ -28,11 +28,11 @@ msgstr ""
"��� �������� ����� ������, ��������� ��������� suid(root).\n"
"���������� ��� ����� � �������������� ����� �������.\n"
-#: util/secmem.c:275
+#: util/secmem.c:287
msgid "operation is not possible without initialized secure memory\n"
msgstr ""
-#: util/secmem.c:276
+#: util/secmem.c:288
msgid "(you may have used the wrong program for this task)\n"
msgstr ""
@@ -52,7 +52,7 @@ msgstr ""
msgid "nN"
msgstr ""
-#: g10/keyedit.c:564 util/miscutil.c:308
+#: g10/keyedit.c:580 util/miscutil.c:308
msgid "quit"
msgstr "�����"
@@ -298,22 +298,79 @@ msgstr "����� ������"
msgid "not encrypted"
msgstr "����������� ������"
-#: util/logger.c:218
+#: util/errors.c:103
+#, fuzzy
+msgid "not processed"
+msgstr "�� ��������������"
+
+#: util/logger.c:224
#, fuzzy, c-format
msgid "... this is a bug (%s:%d:%s)\n"
msgstr "��-�� ... ������ � ��������� (%s:%d:%s)\n"
-#: util/logger.c:224
+#: util/logger.c:230
#, c-format
msgid "you found a bug ... (%s:%d)\n"
msgstr "�� ����� ������ � ��������� ... (%s:%d)\n"
-#: cipher/random.c:452
+#: cipher/random.c:311 g10/import.c:127 g10/keygen.c:1150
+#, fuzzy, c-format
+msgid "can't open `%s': %s\n"
+msgstr "���������� ������� ���� `%s': %s\n"
+
+#: cipher/random.c:315
+#, fuzzy, c-format
+msgid "can't stat `%s': %s\n"
+msgstr "���������� ������� ���� `%s': %s\n"
+
+#: cipher/random.c:320
+#, c-format
+msgid "`%s' is not a regular file - ignored\n"
+msgstr ""
+
+#: cipher/random.c:325
+msgid "note: random_seed file is empty\n"
+msgstr ""
+
+#: cipher/random.c:331
+msgid "warning: invalid size of random_seed file - not used\n"
+msgstr ""
+
+#: cipher/random.c:339
+#, fuzzy, c-format
+msgid "can't read `%s': %s\n"
+msgstr "���������� ������� ���� `%s': %s\n"
+
+#: cipher/random.c:377
+msgid "note: random_seed file not updated\n"
+msgstr ""
+
+#: cipher/random.c:397
+#, fuzzy, c-format
+msgid "can't create `%s': %s\n"
+msgstr "%s: ���������� �������: %s\n"
+
+#: cipher/random.c:404
+#, fuzzy, c-format
+msgid "can't write `%s': %s\n"
+msgstr "���������� ������� ���� `%s': %s\n"
+
+#: cipher/random.c:407
+#, fuzzy, c-format
+msgid "can't close `%s': %s\n"
+msgstr "���������� ������� ���� `%s': %s\n"
+
+#: cipher/random.c:418
+#, c-format
+msgid "too many random bits requested; the limit is %d\n"
+msgstr ""
+
+#: cipher/random.c:647
#, fuzzy
msgid "WARNING: using insecure random number generator!!\n"
msgstr "��������: ������������ ���������� ��������� ��������� �����!\n"
-#: cipher/random.c:453
+#: cipher/random.c:648
msgid ""
"The random number generator is only a kludge to let\n"
"it run - it is in no way a strong RNG!\n"
@@ -327,7 +384,7 @@ msgstr ""
"�� ����������� ������� ���������� ���� ����������!\n"
"\n"
-#: cipher/rndlinux.c:135
+#: cipher/rndlinux.c:141
#, c-format
msgid ""
"\n"
@@ -338,7 +395,7 @@ msgstr ""
"������������ ��������� ������. ����������, ��������� ���-������, �����\n"
"�� ����� ������� �������������� ��������� �����! (����� ��� %d ����)\n"
-#: g10/g10.c:185
+#: g10/g10.c:195
msgid ""
"@Commands:\n"
" "
@@ -346,142 +403,147 @@ msgstr ""
"@�������:\n"
" "
-#: g10/g10.c:187
+#: g10/g10.c:197
#, fuzzy
msgid "|[file]|make a signature"
msgstr "|[����]|������� �������"
-#: g10/g10.c:188
+#: g10/g10.c:198
#, fuzzy
msgid "|[file]|make a clear text signature"
msgstr "|[����]|������� ��������� �������"
-#: g10/g10.c:189
+#: g10/g10.c:199
msgid "make a detached signature"
msgstr "������� ��������� �������"
-#: g10/g10.c:190
+#: g10/g10.c:200
msgid "encrypt data"
msgstr "����������� ������"
-#: g10/g10.c:191
+#: g10/g10.c:201
msgid "encryption only with symmetric cipher"
msgstr "����������� ������������ ����������"
-#: g10/g10.c:192
+#: g10/g10.c:202
msgid "store only"
msgstr "������ ���������"
-#: g10/g10.c:193
+#: g10/g10.c:203
msgid "decrypt data (default)"
msgstr "������������ ������ (�� ���������)"
-#: g10/g10.c:194
+#: g10/g10.c:204
msgid "verify a signature"
msgstr "��������� �������"
-#: g10/g10.c:195
+#: g10/g10.c:206
msgid "list keys"
msgstr "������ ������"
-#: g10/g10.c:197
+#: g10/g10.c:208
msgid "list keys and signatures"
msgstr "������ ������ � ��������"
-#: g10/g10.c:198
+#: g10/g10.c:209
msgid "check key signatures"
msgstr "��������� ������� �� �����"
-#: g10/g10.c:199
+#: g10/g10.c:210
msgid "list keys and fingerprints"
msgstr "������ ������ � �� \"����������� �������\""
-#: g10/g10.c:200
+#: g10/g10.c:211
msgid "list secret keys"
msgstr "������ ��������� ������"
-#: g10/g10.c:201
+#: g10/g10.c:212
msgid "generate a new key pair"
msgstr "������������� ����� ���� ������ (�������� � ���������)"
-#: g10/g10.c:202
+#: g10/g10.c:213
msgid "remove key from the public keyring"
msgstr "������� ���� �� ������"
-#: g10/g10.c:203
+#: g10/g10.c:215
+#, fuzzy
+msgid "remove key from the secret keyring"
+msgstr "������� ���� �� ������"
+
+#: g10/g10.c:216
#, fuzzy
msgid "sign a key"
msgstr "��������� ����"
-#: g10/g10.c:204
+#: g10/g10.c:217
#, fuzzy
msgid "sign a key locally"
msgstr "��������� ����"
-#: g10/g10.c:205
+#: g10/g10.c:218
msgid "sign or edit a key"
msgstr "��������� ��� ������������� ����"
-#: g10/g10.c:206
+#: g10/g10.c:219
msgid "generate a revocation certificate"
msgstr "������������� ���������� ����������"
-#: g10/g10.c:207
+#: g10/g10.c:220
msgid "export keys"
msgstr "�������������� �����"
-#: g10/g10.c:208
+#: g10/g10.c:221
msgid "export keys to a key server"
msgstr ""
-#: g10/g10.c:209
+#: g10/g10.c:222
msgid "import keys from a key server"
msgstr ""
-#: g10/g10.c:212
+#: g10/g10.c:226
msgid "import/merge keys"
msgstr "�������������/�������� �����"
-#: g10/g10.c:214
+#: g10/g10.c:228
msgid "list only the sequence of packets"
msgstr "���������� ������ ������������������ �������"
-#: g10/g10.c:216
+#: g10/g10.c:230
#, fuzzy
msgid "export the ownertrust values"
msgstr "�������������� ��������� �������\n"
-#: g10/g10.c:218
+#: g10/g10.c:232
#, fuzzy
msgid "import ownertrust values"
msgstr "������������� ��������� �������\n"
-#: g10/g10.c:220
+#: g10/g10.c:234
#, fuzzy
msgid "update the trust database"
msgstr "|[�����]|��������� ���� ������ �������"
-#: g10/g10.c:222
+#: g10/g10.c:236
msgid "|[NAMES]|check the trust database"
msgstr "|[�����]|��������� ���� ������ �������"
-#: g10/g10.c:223
+#: g10/g10.c:237
msgid "fix a corrupted trust database"
msgstr "��������� ����������� ���� ������ �������"
-#: g10/g10.c:224
+#: g10/g10.c:238
msgid "De-Armor a file or stdin"
msgstr "������������ stdin ��� ���� �� ASCII-�������������"
-#: g10/g10.c:225
+#: g10/g10.c:240
msgid "En-Armor a file or stdin"
msgstr "������������ stdin ��� ���� � ASCII-�������������"
-#: g10/g10.c:226
+#: g10/g10.c:242
msgid "|algo [files]|print message digests"
msgstr "|algo [files]|���������� �������� ���������"
-#: g10/g10.c:230
+#: g10/g10.c:246
msgid ""
"@\n"
"Options:\n"
@@ -491,178 +553,164 @@ msgstr ""
"���������:\n"
" "
-#: g10/g10.c:232
+#: g10/g10.c:248
msgid "create ascii armored output"
msgstr "����� � ASCII-�������������"
-#: g10/g10.c:233
+#: g10/g10.c:250
#, fuzzy
msgid "|NAME|encrypt for NAME"
msgstr "|���|������������ ������������ ���������� ���"
-#: g10/g10.c:236
+#: g10/g10.c:253
#, fuzzy
msgid "|NAME|use NAME as default recipient"
msgstr "|���|������������ ��� � �������� ���������� ����� �� ���������"
-#: g10/g10.c:238
+#: g10/g10.c:255
msgid "use the default key as default recipient"
msgstr ""
-#: g10/g10.c:242
+#: g10/g10.c:259
msgid "use this user-id to sign or decrypt"
msgstr ""
"������������ ��������� ������������� ������������ ��� ������� ��� �����������"
-#: g10/g10.c:243
+#: g10/g10.c:260
msgid "|N|set compress level N (0 disables)"
msgstr "|N|���������� ������� ������ (0 - �� �������)"
-#: g10/g10.c:245
+#: g10/g10.c:262
msgid "use canonical text mode"
msgstr "������������ ������������ ��������� �����"
-#: g10/g10.c:246
+#: g10/g10.c:263
msgid "use as output file"
msgstr "������������ � �������� ��������� �����"
-#: g10/g10.c:247
+#: g10/g10.c:264
msgid "verbose"
msgstr "������������"
-#: g10/g10.c:248
+#: g10/g10.c:265
msgid "be somewhat more quiet"
msgstr ""
-#: g10/g10.c:249
+#: g10/g10.c:266
msgid "don't use the terminal at all"
msgstr ""
-#: g10/g10.c:250
+#: g10/g10.c:267
#, fuzzy
msgid "force v3 signatures"
msgstr "��������� ������� �� �����"
-#: g10/g10.c:251
+#: g10/g10.c:268
#, fuzzy
msgid "always use a MDC for encryption"
msgstr "������������ ��������� ������������� ������������ ��� ����������"
-#: g10/g10.c:252
+#: g10/g10.c:269
msgid "do not make any changes"
msgstr "Keine wirklichen �nderungen durchf�hren"
#. { oInteractive, "interactive", 0, N_("prompt before overwriting") },
-#: g10/g10.c:254
+#: g10/g10.c:271
msgid "batch mode: never ask"
msgstr "�������� �����: ������ �� ����������"
-#: g10/g10.c:255
+#: g10/g10.c:272
msgid "assume yes on most questions"
msgstr "�������� \"��\" �� ����������� ��������"
-#: g10/g10.c:256
+#: g10/g10.c:273
msgid "assume no on most questions"
msgstr "�������� \"���\" �� ����������� ��������"
-#: g10/g10.c:257
+#: g10/g10.c:274
msgid "add this keyring to the list of keyrings"
msgstr "�������� ��� ������ � ������ ������ ������"
-#: g10/g10.c:258
+#: g10/g10.c:275
msgid "add this secret keyring to the list"
msgstr "�������� ��� ��������� ������ � ������ ������ ������"
-#: g10/g10.c:259
+#: g10/g10.c:276
msgid "|NAME|use NAME as default secret key"
msgstr "|���|������������ ��� � �������� ���������� ����� �� ���������"
-#: g10/g10.c:260
+#: g10/g10.c:277
msgid "|HOST|use this keyserver to lookup keys"
msgstr ""
-#: g10/g10.c:261
+#: g10/g10.c:278
#, fuzzy
msgid "|NAME|set terminal charset to NAME"
msgstr "|���|������������ ������������ ���������� ���"
-#: g10/g10.c:262
+#: g10/g10.c:279
msgid "read options from file"
msgstr "������ ��������� �� �����"
-#: g10/g10.c:264
-msgid "set debugging flags"
-msgstr "���������� ���������� �����"
-
-#: g10/g10.c:265
-msgid "enable full debugging"
-msgstr "��������� ��� �������"
-
-#: g10/g10.c:266
+#: g10/g10.c:283
msgid "|FD|write status info to this FD"
msgstr "|FD| ���������� ���������� � ��������� � ���������� (FD)"
-#: g10/g10.c:267
-msgid "do not write comment packets"
-msgstr "�� ������ ������ � �������������"
-
-#: g10/g10.c:268
-msgid "(default is 1)"
-msgstr "(�� ��������� 1)"
-
-#: g10/g10.c:269
-msgid "(default is 3)"
-msgstr "(�� ��������� 3)"
-
-#: g10/g10.c:271
+#: g10/g10.c:288
#, fuzzy
msgid "|FILE|load extension module FILE"
msgstr "|����|��������� ���� � ������������ ��������"
-#: g10/g10.c:272
+#: g10/g10.c:289
msgid "emulate the mode described in RFC1991"
msgstr "����������� ����� ��������� � RFC1991"
-#: g10/g10.c:273
+#: g10/g10.c:290
msgid "set all packet, cipher and digest options to OpenPGP behavior"
msgstr ""
-#: g10/g10.c:274
+#: g10/g10.c:291
#, fuzzy
msgid "|N|use passphrase mode N"
msgstr "|N|������������ �������� ����� ������ N\n"
-#: g10/g10.c:276
+#: g10/g10.c:293
#, fuzzy
msgid "|NAME|use message digest algorithm NAME for passphrases"
msgstr "|���|������������ ���-�������� ��� ��� �������� ����"
-#: g10/g10.c:278
+#: g10/g10.c:295
#, fuzzy
msgid "|NAME|use cipher algorithm NAME for passphrases"
msgstr "|���|������������ ������������ ���������� ��� ��� �������� ����"
-#: g10/g10.c:279
+#: g10/g10.c:296
msgid "|NAME|use cipher algorithm NAME"
msgstr "|���|������������ ������������ ���������� ���"
-#: g10/g10.c:280
+#: g10/g10.c:297
msgid "|NAME|use message digest algorithm NAME"
msgstr "|���|������������ ���-�������� ���"
-#: g10/g10.c:281
+#: g10/g10.c:298
msgid "|N|use compress algorithm N"
msgstr "|N|������������ �������� ������ N"
-#: g10/g10.c:282
+#: g10/g10.c:299
msgid "throw keyid field of encrypted packets"
msgstr "����������� ���� keyid � ������������� �������"
-#: g10/g10.c:283
+#: g10/g10.c:300
msgid "|NAME=VALUE|use this notation data"
msgstr ""
-#: g10/g10.c:285
+#: g10/g10.c:303
+msgid ""
+"@\n"
+"(See the man page for a complete listing of all commands and options)\n"
+msgstr ""
+
+#: g10/g10.c:306
#, fuzzy
msgid ""
"@\n"
@@ -683,17 +731,17 @@ msgstr ""
" --list-keys [names] �������� ������ ������\n"
" --fingerprint [names] �������� \"��������� �������\" ������\n"
-#: g10/g10.c:370
+#: g10/g10.c:399
msgid "Please report bugs to <[email protected]>.\n"
msgstr ""
"����������, ����������� ��������� �� ������� �� ������ "
-#: g10/g10.c:374
+#: g10/g10.c:403
msgid "Usage: gpg [options] [files] (-h for help)"
msgstr "�������������: gpg [���������] [�����] (-h ��� ������)"
-#: g10/g10.c:377
+#: g10/g10.c:406
msgid ""
"Syntax: gpg [options] [files]\n"
"sign, check, encrypt or decrypt\n"
@@ -703,7 +751,7 @@ msgstr ""
"�����������, ��������� �������, ������� ��� ��������������\n"
"����� ������ ������� �� ������� ������\n"
-#: g10/g10.c:382
+#: g10/g10.c:413
msgid ""
"\n"
"Supported algorithms:\n"
@@ -711,274 +759,278 @@ msgstr ""
"\n"
"�������������� ���������:\n"
-#: g10/g10.c:456
+#: g10/g10.c:492
msgid "usage: gpg [options] "
msgstr "�������������: gpg [���������] "
-#: g10/g10.c:509
+#: g10/g10.c:545
msgid "conflicting commands\n"
msgstr "Widerspr�chliche Kommandos\n"
-#: g10/g10.c:644
+#: g10/g10.c:687
#, fuzzy, c-format
msgid "NOTE: no default option file `%s'\n"
msgstr "���������: ���� ���������� �� ��������� `%s' �����������\n"
-#: g10/g10.c:648
+#: g10/g10.c:691
#, c-format
msgid "option file `%s': %s\n"
msgstr "���� ���������� `%s': %s\n"
-#: g10/g10.c:655
+#: g10/g10.c:698
#, c-format
msgid "reading options from `%s'\n"
msgstr "�������� ��������� �� `%s'\n"
-#: g10/g10.c:835
+#: g10/g10.c:885
#, fuzzy, c-format
msgid "%s is not a valid character set\n"
msgstr "������������ ������ � �����������.\n"
-#: g10/g10.c:892 g10/g10.c:901
+#: g10/g10.c:945 g10/g10.c:954
#, c-format
msgid "NOTE: %s is not for normal use!\n"
msgstr ""
-#: g10/g10.c:894
+#: g10/g10.c:947
#, c-format
msgid "%s not allowed with %s!\n"
msgstr ""
-#: g10/g10.c:897
+#: g10/g10.c:950
#, c-format
msgid "%s makes no sense with %s!\n"
msgstr ""
-#: g10/g10.c:916 g10/g10.c:928
+#: g10/g10.c:969 g10/g10.c:981
msgid "selected cipher algorithm is invalid\n"
msgstr "������ ������������ �������� ����������\n"
-#: g10/g10.c:922 g10/g10.c:934
+#: g10/g10.c:975 g10/g10.c:987
msgid "selected digest algorithm is invalid\n"
msgstr "������ ������������ ��������-��������\n"
-#: g10/g10.c:938
+#: g10/g10.c:991
msgid "the given policy URL is invalid\n"
msgstr ""
-#: g10/g10.c:941
+#: g10/g10.c:994
#, c-format
msgid "compress algorithm must be in range %d..%d\n"
msgstr "�������� �������� ����� ����� �������� �� %d �� %d\n"
-#: g10/g10.c:943
+#: g10/g10.c:996
msgid "completes-needed must be greater than 0\n"
msgstr "completes-needed ������ ���� ������ 0\n"
-#: g10/g10.c:945
+#: g10/g10.c:998
msgid "marginals-needed must be greater than 1\n"
msgstr "marginals-needed ������ ���� ������ 1\n"
-#: g10/g10.c:947
+#: g10/g10.c:1000
msgid "max-cert-depth must be in range 1 to 255\n"
msgstr ""
-#: g10/g10.c:950
+#: g10/g10.c:1003
#, fuzzy
msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
msgstr "���������: ������� S2K ����� (0) ����� �� �������������\n"
-#: g10/g10.c:954
+#: g10/g10.c:1007
msgid "invalid S2K mode; must be 0, 1 or 3\n"
msgstr "������������ ����� S2K: ������ ���� 0, 1 ��� 3\n"
-#: g10/g10.c:1031
+#: g10/g10.c:1092
#, c-format
msgid "failed to initialize the TrustDB: %s\n"
msgstr "������ ������������� ���� ������ �������: %s\n"
-#: g10/g10.c:1037
+#: g10/g10.c:1098
msgid "--store [filename]"
msgstr "--store [��� �����]"
-#: g10/g10.c:1044
+#: g10/g10.c:1105
msgid "--symmetric [filename]"
msgstr "--symmetric [��� �����]"
-#: g10/g10.c:1052
+#: g10/g10.c:1113
msgid "--encrypt [filename]"
msgstr "--encrypt [��� �����]"
-#: g10/g10.c:1065
+#: g10/g10.c:1126
msgid "--sign [filename]"
msgstr "--sign [��� �����]"
-#: g10/g10.c:1078
+#: g10/g10.c:1139
msgid "--sign --encrypt [filename]"
msgstr "--sign --encrypt [��� �����]"
-#: g10/g10.c:1092
+#: g10/g10.c:1153
msgid "--clearsign [filename]"
msgstr "--clearsign [��� �����]"
-#: g10/g10.c:1104
+#: g10/g10.c:1170
msgid "--decrypt [filename]"
msgstr "--decrypt [��� �����]"
-#: g10/g10.c:1112
+#: g10/g10.c:1178
msgid "--sign-key user-id"
msgstr ""
-#: g10/g10.c:1120
+#: g10/g10.c:1186
#, fuzzy
msgid "--lsign-key user-id"
msgstr "--delete-key ���-������������"
-#: g10/g10.c:1128
+#: g10/g10.c:1194
#, fuzzy
msgid "--edit-key user-id [commands]"
msgstr "--edit-key ���-������������"
-#: g10/g10.c:1144
+#: g10/g10.c:1210
#, fuzzy
msgid "--delete-secret-key user-id"
msgstr "--delete-secret-key ���-������������"
-#: g10/g10.c:1147
+#: g10/g10.c:1213
#, fuzzy
msgid "--delete-key user-id"
msgstr "--delete-key ���-������������"
-#: g10/encode.c:259 g10/g10.c:1171 g10/sign.c:366
+#: g10/encode.c:260 g10/g10.c:1250 g10/sign.c:373
#, c-format
msgid "can't open %s: %s\n"
msgstr "���������� ������� ���� `%s': %s\n"
-#: g10/g10.c:1182
+#: g10/g10.c:1265
#, fuzzy
msgid "-k[v][v][v][c] [user-id] [keyring]"
msgstr "-k[v][v][v][c] [������������� ������������] [������ ������]"
-#: g10/g10.c:1243
+#: g10/g10.c:1331
#, c-format
msgid "dearmoring failed: %s\n"
msgstr "������ �������������: %s\n"
-#: g10/g10.c:1251
+#: g10/g10.c:1339
#, c-format
msgid "enarmoring failed: %s\n"
msgstr "������ �����������: %s\n"
-#: g10/g10.c:1319
+#: g10/g10.c:1407
#, c-format
msgid "invalid hash algorithm `%s'\n"
msgstr "������������ ���-�������� `%s'\n"
-#: g10/g10.c:1400
+#: g10/g10.c:1488
msgid "[filename]"
msgstr "[��� �����]"
-#: g10/g10.c:1404
+#: g10/g10.c:1492
msgid "Go ahead and type your message ...\n"
msgstr ""
-#: g10/decrypt.c:59 g10/g10.c:1407 g10/verify.c:66
+#: g10/decrypt.c:59 g10/g10.c:1495 g10/verify.c:68 g10/verify.c:113
#, c-format
msgid "can't open `%s'\n"
msgstr "���������� ������� ���� `%s'\n"
-#: g10/g10.c:1576
+#: g10/g10.c:1665
msgid ""
"the first character of a notation name must be a letter or an underscore\n"
msgstr ""
-#: g10/g10.c:1582
+#: g10/g10.c:1671
msgid ""
"a notation name must have only letters, digits, dots or underscores and end "
"with an '='\n"
msgstr ""
-#: g10/g10.c:1588
+#: g10/g10.c:1677
msgid "dots in a notation name must be surrounded by other characters\n"
msgstr ""
-#: g10/g10.c:1596
+#: g10/g10.c:1685
msgid "a notation value must not use any control characters\n"
msgstr ""
-#: g10/armor.c:296
+#: g10/armor.c:302
#, fuzzy, c-format
msgid "armor: %s\n"
msgstr "���������: %s\n"
-#: g10/armor.c:319
+#: g10/armor.c:331
msgid "invalid armor header: "
msgstr ""
-#: g10/armor.c:326
+#: g10/armor.c:338
msgid "armor header: "
msgstr ""
-#: g10/armor.c:337
+#: g10/armor.c:349
#, fuzzy
msgid "invalid clearsig header\n"
msgstr "������������ ������ ��������� �������\n"
-#: g10/armor.c:389
+#: g10/armor.c:401
#, fuzzy
msgid "nested clear text signatures\n"
msgstr "|[����]|������� ��������� �������"
-#: g10/armor.c:500
+#: g10/armor.c:525
msgid "invalid dash escaped line: "
msgstr "������������ ������ ������������ � �������: "
-#: g10/armor.c:512
+#: g10/armor.c:537
#, fuzzy
msgid "unexpected armor:"
msgstr "����������� ������"
-#: g10/armor.c:629
+#: g10/armor.c:654
#, fuzzy, c-format
msgid "invalid radix64 character %02x skipped\n"
msgstr "������������ ��� ��������� radix64 ������ %02x ��������\n"
-#: g10/armor.c:672
+#: g10/armor.c:697
msgid "premature eof (no CRC)\n"
msgstr "����������� ����� ����� (��� CRC)\n"
-#: g10/armor.c:706
+#: g10/armor.c:731
msgid "premature eof (in CRC)\n"
msgstr "����������� ����� ����� (� CRC)\n"
-#: g10/armor.c:710
+#: g10/armor.c:735
msgid "malformed CRC\n"
msgstr "������������ ����� CRC\n"
-#: g10/armor.c:714
+#: g10/armor.c:739
#, c-format
msgid "CRC error; %06lx - %06lx\n"
msgstr "������ CRC; %06lx - %06lx\n"
-#: g10/armor.c:731
+#: g10/armor.c:756
msgid "premature eof (in Trailer)\n"
msgstr "����������� ����� ����� (� ������)\n"
-#: g10/armor.c:735
+#: g10/armor.c:760
msgid "error in trailer line\n"
msgstr "������ � ����������� ������\n"
-#: g10/armor.c:1001
+#: g10/armor.c:912
+msgid "For info see http://www.gnupg.org"
+msgstr ""
+
+#: g10/armor.c:1033
#, fuzzy
msgid "no valid OpenPGP data found.\n"
msgstr "�� ������� ���������� RFC1991 ��� OpenPGP ������.\n"
-#: g10/armor.c:1005
+#: g10/armor.c:1038
#, c-format
msgid "invalid armor: line longer than %d characters\n"
msgstr ""
-#: g10/armor.c:1009
+#: g10/armor.c:1042
msgid ""
"quoted printable character in armor - probably a buggy MTA has been used\n"
msgstr ""
@@ -994,14 +1046,44 @@ msgstr ""
msgid "Fingerprint:"
msgstr "�������� \"��������� ������\""
+#: g10/pkclist.c:116
+msgid "No reason specified"
+msgstr ""
+
+#: g10/pkclist.c:118
+#, fuzzy
+msgid "Key is superseeded"
+msgstr "���� ���� �������.\n"
+
+#: g10/pkclist.c:120
+#, fuzzy
+msgid "Key has been compromised"
+msgstr "���������: ���� �������� ����� ��� �����!\n"
+
+#: g10/pkclist.c:122
+msgid "Key is no longer used"
+msgstr ""
+
+#: g10/pkclist.c:124
+msgid "User ID is no longer valid"
+msgstr ""
+
+#: g10/pkclist.c:128
+msgid "Reason for revocation: "
+msgstr ""
+
+#: g10/pkclist.c:145
+msgid "Revocation comment: "
+msgstr ""
+
# valid user replies (not including 1..4)
#. a string with valid answers
-#: g10/pkclist.c:197
+#: g10/pkclist.c:303
#, fuzzy
msgid "sSmMqQ"
msgstr "sSmMqQ"
-#: g10/pkclist.c:201
+#: g10/pkclist.c:307
#, fuzzy, c-format
msgid ""
"No trust value assigned to %lu:\n"
@@ -1010,7 +1092,7 @@ msgstr ""
"�� ���������� ��������� ������� ��� %lu:\n"
"%4u%c/%08lX %s \""
-#: g10/pkclist.c:213
+#: g10/pkclist.c:319
#, fuzzy
msgid ""
"Please decide how far you trust this user to correctly\n"
@@ -1035,23 +1117,23 @@ msgstr ""
" 4 = ���� ���������\n"
" s = ����������, �������� �������������� ����������\n"
-#: g10/pkclist.c:222
+#: g10/pkclist.c:328
msgid " m = back to the main menu\n"
msgstr " m = ������� � ������� ����\n"
-#: g10/pkclist.c:224
+#: g10/pkclist.c:330
msgid " q = quit\n"
msgstr ""
-#: g10/pkclist.c:230
+#: g10/pkclist.c:336
msgid "Your decision? "
msgstr "���� �������? "
-#: g10/pkclist.c:252
+#: g10/pkclist.c:358
msgid "Certificates leading to an ultimately trusted key:\n"
msgstr ""
-#: g10/pkclist.c:323
+#: g10/pkclist.c:429
msgid ""
"Could not find a valid trust path to the key. Let's see whether we\n"
"can assign some missing owner trust values.\n"
@@ -1062,70 +1144,70 @@ msgstr ""
"��������� ����������� �������� \"������� ���������\"\n"
"\n"
-#: g10/pkclist.c:329
+#: g10/pkclist.c:435
msgid ""
"No path leading to one of our keys found.\n"
"\n"
msgstr ""
-#: g10/pkclist.c:331
+#: g10/pkclist.c:437
msgid ""
"No certificates with undefined trust found.\n"
"\n"
msgstr ""
-#: g10/pkclist.c:333
+#: g10/pkclist.c:439
#, fuzzy
msgid ""
"No trust values changed.\n"
"\n"
msgstr "�������� ���������� ������� �� ��������.\n"
-#: g10/pkclist.c:350
+#: g10/pkclist.c:457
#, fuzzy, c-format
msgid "key %08lX: key has been revoked!\n"
msgstr "build_sigrecs: ���� ist widerrufen\n"
-#: g10/pkclist.c:356 g10/pkclist.c:366 g10/pkclist.c:475
+#: g10/pkclist.c:464 g10/pkclist.c:476 g10/pkclist.c:598
msgid "Use this key anyway? "
msgstr "��� ����� ������������ ���� ����?"
-#: g10/pkclist.c:360
+#: g10/pkclist.c:469
#, fuzzy, c-format
msgid "key %08lX: subkey has been revoked!\n"
msgstr "build_sigrecs: ���� ist widerrufen\n"
-#: g10/pkclist.c:390
+#: g10/pkclist.c:512
#, fuzzy, c-format
msgid "%08lX: key has expired\n"
msgstr "���������: ���� �������� ����� ��� �����!\n"
-#: g10/pkclist.c:396
+#: g10/pkclist.c:518
#, c-format
msgid "%08lX: no info to calculate a trust probability\n"
msgstr ""
-#: g10/pkclist.c:410
+#: g10/pkclist.c:533
#, fuzzy, c-format
msgid "%08lX: We do NOT trust this key\n"
msgstr "��������: �� �� �������� ����� �����!\n"
-#: g10/pkclist.c:416
+#: g10/pkclist.c:539
#, c-format
msgid ""
"%08lX: It is not sure that this key really belongs to the owner\n"
"but it is accepted anyway\n"
msgstr ""
-#: g10/pkclist.c:422
+#: g10/pkclist.c:545
msgid "This key probably belongs to the owner\n"
msgstr ""
-#: g10/pkclist.c:427
+#: g10/pkclist.c:550
msgid "This key belongs to us\n"
msgstr ""
-#: g10/pkclist.c:470
+#: g10/pkclist.c:593
msgid ""
"It is NOT certain that the key belongs to its owner.\n"
"If you *really* know what you are doing, you may answer\n"
@@ -1136,65 +1218,65 @@ msgstr ""
"��� ������ ��� ����������. ��������� \"��\" �� ��������� ������,\n"
"������ ���� �� *�������������* ��������� ��� �������.\n"
-#: g10/pkclist.c:484 g10/pkclist.c:507
+#: g10/pkclist.c:607 g10/pkclist.c:630
msgid "WARNING: Using untrusted key!\n"
msgstr "��������: ������������ ���� � �������� ��� �������!\n"
-#: g10/pkclist.c:528
+#: g10/pkclist.c:651
msgid "WARNING: This key has been revoked by its owner!\n"
msgstr "��������: �������� ����� ��� ������� ���!\n"
-#: g10/pkclist.c:529
+#: g10/pkclist.c:652
msgid " This could mean that the signature is forgery.\n"
msgstr " ��� ����� ��������, ��� ������� ����������.\n"
-#: g10/pkclist.c:533
+#: g10/pkclist.c:657
#, fuzzy
msgid "WARNING: This subkey has been revoked by its owner!\n"
msgstr "��������: �������� ����� ��� ������� ���!\n"
-#: g10/pkclist.c:554
+#: g10/pkclist.c:679
msgid "Note: This key has expired!\n"
msgstr "���������: ���� �������� ����� ��� �����!\n"
-#: g10/pkclist.c:562
+#: g10/pkclist.c:687
msgid "WARNING: This key is not certified with a trusted signature!\n"
msgstr "��������: ���� ���� �� ������� ���������� ��������!\n"
-#: g10/pkclist.c:564
+#: g10/pkclist.c:689
msgid ""
" There is no indication that the signature belongs to the owner.\n"
msgstr ""
" ��� ������� �������� �� ��, ��� ���� ����������� ��� ���������.\n"
-#: g10/pkclist.c:581
+#: g10/pkclist.c:706
msgid "WARNING: We do NOT trust this key!\n"
msgstr "��������: �� �� �������� ����� �����!\n"
-#: g10/pkclist.c:582
+#: g10/pkclist.c:707
msgid " The signature is probably a FORGERY.\n"
msgstr " ������� �������� -- ��������.\n"
-#: g10/pkclist.c:589
+#: g10/pkclist.c:714
msgid ""
"WARNING: This key is not certified with sufficiently trusted signatures!\n"
msgstr "��������: ���� ���� �� ������� ���������� ����������� ���������!\n"
-#: g10/pkclist.c:592
+#: g10/pkclist.c:717
msgid " It is not certain that the signature belongs to the owner.\n"
msgstr " ��� �����������, ��� ������� ����������� ���������.\n"
-#: g10/pkclist.c:694 g10/pkclist.c:716 g10/pkclist.c:841 g10/pkclist.c:886
+#: g10/pkclist.c:819 g10/pkclist.c:841 g10/pkclist.c:967 g10/pkclist.c:1012
#, c-format
msgid "%s: skipped: %s\n"
msgstr "%s: ��������: %s\n"
-#: g10/pkclist.c:702 g10/pkclist.c:868
+#: g10/pkclist.c:827 g10/pkclist.c:994
#, c-format
msgid "%s: skipped: public key already present\n"
msgstr ""
-#: g10/pkclist.c:729
+#: g10/pkclist.c:854
msgid ""
"You did not specify a user ID. (you may use \"-r\")\n"
"\n"
@@ -1203,97 +1285,102 @@ msgstr ""
"\"-r\").\n"
"\n"
-#: g10/pkclist.c:739
+#: g10/pkclist.c:864
msgid "Enter the user ID: "
msgstr "������� ������������� ������������: "
-#: g10/pkclist.c:751
+#: g10/pkclist.c:876
msgid "No such user ID.\n"
msgstr "��� ������ �������������� ������������.\n"
-#: g10/pkclist.c:756
+#: g10/pkclist.c:881
msgid "skipped: public key already set as default recipient\n"
msgstr ""
-#: g10/pkclist.c:778
+#: g10/pkclist.c:904
#, fuzzy
msgid "Public key is disabled.\n"
msgstr "�������� ���� �� ������"
-#: g10/pkclist.c:785
+#: g10/pkclist.c:911
msgid "skipped: public key already set with --encrypt-to\n"
msgstr ""
-#: g10/pkclist.c:816
+#: g10/pkclist.c:942
#, fuzzy, c-format
msgid "unknown default recipient `%s'\n"
msgstr "���������: ���� ���������� �� ��������� `%s' �����������\n"
-#: g10/pkclist.c:849
+#: g10/pkclist.c:975
#, c-format
msgid "%s: error checking key: %s\n"
msgstr "%s: ������ ��� �������� �����: %s\n"
-#: g10/pkclist.c:854
+#: g10/pkclist.c:980
#, c-format
msgid "%s: skipped: public key is disabled\n"
msgstr ""
-#: g10/pkclist.c:892
+#: g10/pkclist.c:1018
msgid "no valid addressees\n"
msgstr "��� ���������� �������\n"
-#: g10/keygen.c:122
+#: g10/keygen.c:175
msgid "writing self signature\n"
msgstr "������� ����-�������\n"
-#: g10/keygen.c:160
+#: g10/keygen.c:213
msgid "writing key binding signature\n"
msgstr "������� \"key-binding\" �������\n"
-#: g10/keygen.c:386
+#: g10/keygen.c:261 g10/keygen.c:345
+#, fuzzy, c-format
+msgid "keysize invalid; using %u bits\n"
+msgstr "����������� ���� ����� ����� %u ���\n"
+
+#: g10/keygen.c:266 g10/keygen.c:350
+#, fuzzy, c-format
+msgid "keysize rounded up to %u bits\n"
+msgstr "��������� �� %u ���\n"
+
+#: g10/keygen.c:456
msgid "Please select what kind of key you want:\n"
msgstr "�������� �������� ��� �����:\n"
-#: g10/keygen.c:388
+#: g10/keygen.c:458
#, c-format
msgid " (%d) DSA and ElGamal (default)\n"
msgstr " (%d) DSA � ElGamal (�� ���������)\n"
-#: g10/keygen.c:389
+#: g10/keygen.c:459
#, c-format
msgid " (%d) DSA (sign only)\n"
msgstr " (%d) DSA (������ �������)\n"
-#: g10/keygen.c:391
+#: g10/keygen.c:461
#, c-format
msgid " (%d) ElGamal (encrypt only)\n"
msgstr " (%d) ElGamal (������ ����������)\n"
-#: g10/keygen.c:392
+#: g10/keygen.c:462
#, c-format
msgid " (%d) ElGamal (sign and encrypt)\n"
msgstr " (%d) ElGamal (������� � ����������)\n"
-#: g10/keygen.c:394
-#, c-format
-msgid " (%d) ElGamal in a v3 packet\n"
-msgstr " (%d) ElGamal � v3-������\n"
-
-#: g10/keygen.c:399
+#: g10/keygen.c:465
msgid "Your selection? "
msgstr "��� �����? "
-#: g10/keygen.c:409
+#: g10/keygen.c:475
#, fuzzy
msgid "Do you really want to create a sign and encrypt key? "
msgstr "�� ������������� ������ ������� ��������� �����? "
-#: g10/keygen.c:430
+#: g10/keygen.c:489
msgid "Invalid selection.\n"
msgstr "������������ �����.\n"
-#: g10/keygen.c:442
+#: g10/keygen.c:501
#, c-format
msgid ""
"About to generate a new %s keypair.\n"
@@ -1306,15 +1393,15 @@ msgstr ""
" ����� ����� �� ���������: 1024 ����\n"
" ������������ ������������� ����� �����: 2048 ���\n"
-#: g10/keygen.c:449
+#: g10/keygen.c:508
msgid "What keysize do you want? (1024) "
msgstr "������ ������� ���� �� �������? (1024)"
-#: g10/keygen.c:454
+#: g10/keygen.c:513
msgid "DSA only allows keysizes from 512 to 1024\n"
msgstr "���������� ������ DSA ������ - �� 512 �� 1024 ���\n"
-#: g10/keygen.c:456
+#: g10/keygen.c:515
msgid "keysize too small; 768 is smallest value allowed.\n"
msgstr "������� ��������� ����� �����, ���������� �������� - 768.\n"
@@ -1326,12 +1413,12 @@ msgstr "������� ��������� ����� �����, ���������� �������� - 768.\n"
#. * So, before you complain about this limitation, I suggest that
#. * you start a discussion with Marvin about this theme and then
#. * do whatever you want.
-#: g10/keygen.c:466
+#: g10/keygen.c:525
#, fuzzy, c-format
msgid "keysize too large; %d is largest value allowed.\n"
msgstr "������� ��������� ����� �����, ���������� �������� - 768.\n"
-#: g10/keygen.c:471
+#: g10/keygen.c:530
#, fuzzy
msgid ""
"Keysizes larger than 2048 are not suggested because\n"
@@ -1340,11 +1427,11 @@ msgstr ""
"����� ������ ������ 2048 �� �������������, ������ ��� ������������������ "
"����� ����� �������!\n"
-#: g10/keygen.c:474
+#: g10/keygen.c:533
msgid "Are you sure that you want this keysize? "
msgstr "�� ������������� ������ ���� ����� �����? "
-#: g10/keygen.c:475
+#: g10/keygen.c:534
msgid ""
"Okay, but keep in mind that your monitor and keyboard radiation is also very "
"vulnerable to attacks!\n"
@@ -1352,21 +1439,21 @@ msgstr ""
"��, ������ �� ���������, ��� ��������� ����� ���������� � �������� ����\n"
"������ ��� �������� ��� ����.\n"
-#: g10/keygen.c:483
+#: g10/keygen.c:542
msgid "Do you really need such a large keysize? "
msgstr "��� ������������� ����� ����� ������� ����? "
-#: g10/keygen.c:489
+#: g10/keygen.c:548
#, c-format
msgid "Requested keysize is %u bits\n"
msgstr "����������� ���� ����� ����� %u ���\n"
-#: g10/keygen.c:492 g10/keygen.c:496
+#: g10/keygen.c:551 g10/keygen.c:555
#, c-format
msgid "rounded up to %u bits\n"
msgstr "��������� �� %u ���\n"
-#: g10/keygen.c:509
+#: g10/keygen.c:603
msgid ""
"Please specify how long the key should be valid.\n"
" 0 = key does not expire\n"
@@ -1382,29 +1469,35 @@ msgstr ""
" <n>m = ���� �������� ����� n �������\n"
" <n>y = ���� �������� ����� n ���\n"
-#: g10/keygen.c:526
+#: g10/keygen.c:618
msgid "Key is valid for? (0) "
msgstr "���� ������������ � �������? (0) "
-#: g10/keygen.c:547
+#: g10/keygen.c:623
msgid "invalid value\n"
msgstr "������������ ��������.\n"
-#: g10/keygen.c:552
+#: g10/keygen.c:628
msgid "Key does not expire at all\n"
msgstr "���������� ����.\n"
#. print the date when the key expires
-#: g10/keygen.c:558
+#: g10/keygen.c:634
#, c-format
msgid "Key expires at %s\n"
msgstr "���� ��������� �� %s\n"
-#: g10/keygen.c:563
+#: g10/keygen.c:637
+msgid ""
+"Your system can't display dates beyond 2038.\n"
+"However, it will be correctly handled up to 2106.\n"
+msgstr ""
+
+#: g10/keygen.c:642
msgid "Is this correct (y/n)? "
msgstr "��� �����? (y/n) "
-#: g10/keygen.c:606
+#: g10/keygen.c:685
msgid ""
"\n"
"You need a User-ID to identify your key; the software constructs the user "
@@ -1420,44 +1513,44 @@ msgstr ""
" \"Vasya Pupkin (KRUTOI) <[email protected]>\"\n"
"\n"
-#: g10/keygen.c:617
+#: g10/keygen.c:697
msgid "Real name: "
msgstr "���� ��� (\"��� �������\"): "
-#: g10/keygen.c:621
+#: g10/keygen.c:701
msgid "Invalid character in name\n"
msgstr "������������ ������ � �����\n"
-#: g10/keygen.c:623
+#: g10/keygen.c:703
msgid "Name may not start with a digit\n"
msgstr "������ ��� �� ����� ���������� � �����.\n"
-#: g10/keygen.c:625
+#: g10/keygen.c:705
msgid "Name must be at least 5 characters long\n"
msgstr "������ ��� ������ �������� �� ����� ��� �� 5�� ��������.\n"
-#: g10/keygen.c:633
+#: g10/keygen.c:713
msgid "Email address: "
msgstr "E-Mail: "
-#: g10/keygen.c:644
+#: g10/keygen.c:724
msgid "Not a valid email address\n"
msgstr "������������ E-Mail\n"
-#: g10/keygen.c:652
+#: g10/keygen.c:732
msgid "Comment: "
msgstr "�����������: "
-#: g10/keygen.c:658
+#: g10/keygen.c:738
msgid "Invalid character in comment\n"
msgstr "������������ ������ � �����������.\n"
-#: g10/keygen.c:680
+#: g10/keygen.c:761
#, c-format
msgid "You are using the `%s' character set.\n"
msgstr ""
-#: g10/keygen.c:686
+#: g10/keygen.c:767
#, c-format
msgid ""
"You selected this USER-ID:\n"
@@ -1468,16 +1561,29 @@ msgstr ""
" \"%s\"\n"
"\n"
-#: g10/keygen.c:689
+#: g10/keygen.c:771
+msgid "Please don't put the email address into the real name or the comment\n"
+msgstr ""
+
+#: g10/keygen.c:776
msgid "NnCcEeOoQq"
msgstr ""
-#: g10/keygen.c:699
+#: g10/keygen.c:786
+#, fuzzy
+msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
+msgstr "��������: N=���, C=�����������, E=E-Mail, O=Okay/Q=�����? "
+
+#: g10/keygen.c:787
#, fuzzy
msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
msgstr "��������: N=���, C=�����������, E=E-Mail, O=Okay/Q=�����? "
-#: g10/keygen.c:751
+#: g10/keygen.c:806
+msgid "Please correct the error first\n"
+msgstr ""
+
+#: g10/keygen.c:844
msgid ""
"You need a Passphrase to protect your secret key.\n"
"\n"
@@ -1485,11 +1591,11 @@ msgstr ""
"��� ������ ������ ����� ����� �������� �����.\n"
"\n"
-#: g10/keyedit.c:456 g10/keygen.c:759
+#: g10/keyedit.c:468 g10/keygen.c:852
msgid "passphrase not correctly repeated; try again.\n"
msgstr "�������� ����� �� ���� ��������������, ���������� �����.\n"
-#: g10/keygen.c:765
+#: g10/keygen.c:858
msgid ""
"You don't want a passphrase - this is probably a *bad* idea!\n"
"I will do it anyway. You can change your passphrase at any time,\n"
@@ -1501,7 +1607,7 @@ msgstr ""
"�����, �������� ��� ��������� � ���������� \"--edit-key\".\n"
"\n"
-#: g10/keygen.c:786
+#: g10/keygen.c:879
#, fuzzy
msgid ""
"We need to generate a lot of random bytes. It is a good idea to perform\n"
@@ -1514,34 +1620,30 @@ msgstr ""
"��������� ������� ��� �������� ����������). ��� ���� ���������� ���������\n"
"����� ����������� ������� ���������� ��������.\n"
-#: g10/keygen.c:856
-msgid "Key generation can only be used in interactive mode\n"
-msgstr "��������� ����� ����� ���� ��������� ������ � ������������� ������.\n"
-
-#: g10/keygen.c:864
+#: g10/keygen.c:1325
msgid "DSA keypair will have 1024 bits.\n"
msgstr "�������� ���� DSA ����� ����� ����� 1024 ����.\n"
-#: g10/keygen.c:870
+#: g10/keygen.c:1368
#, fuzzy
msgid "Key generation canceled.\n"
msgstr "��������� ����� ��������: %s\n"
-#: g10/keygen.c:880
-#, c-format
-msgid "writing public certificate to `%s'\n"
+#: g10/keygen.c:1465
+#, fuzzy, c-format
+msgid "writing public key to `%s'\n"
msgstr "�������� ���������� ������������ � `%s'\n"
-#: g10/keygen.c:881
-#, c-format
-msgid "writing secret certificate to `%s'\n"
+#: g10/keygen.c:1466
+#, fuzzy, c-format
+msgid "writing secret key to `%s'\n"
msgstr "��������� ���������� ������������ � `%s'\n"
-#: g10/keygen.c:958
+#: g10/keygen.c:1562
msgid "public and secret key created and signed.\n"
msgstr "�������� � ��������� ����� ������� � ���������.\n"
-#: g10/keygen.c:960
+#: g10/keygen.c:1567
#, fuzzy
msgid ""
"Note that this key cannot be used for encryption. You may want to use\n"
@@ -1552,12 +1654,12 @@ msgstr ""
"���������������\n"
"����� ��� ����������.\n"
-#: g10/keygen.c:974 g10/keygen.c:1073
+#: g10/keygen.c:1584 g10/keygen.c:1685
#, c-format
msgid "Key generation failed: %s\n"
msgstr "��������� ����� �� �������: %s\n"
-#: g10/keygen.c:1018 g10/sig-check.c:312 g10/sign.c:105
+#: g10/keygen.c:1628 g10/sig-check.c:318 g10/sign.c:111
#, fuzzy, c-format
msgid ""
"key has been created %lu second in future (time warp or clock problem)\n"
@@ -1565,7 +1667,7 @@ msgstr ""
"�������� ���� ������������ � ������� (����������� ������� ��� ����������� "
"����������� ����)\n"
-#: g10/keygen.c:1020 g10/sig-check.c:314 g10/sign.c:107
+#: g10/keygen.c:1630 g10/sig-check.c:320 g10/sign.c:113
#, fuzzy, c-format
msgid ""
"key has been created %lu seconds in future (time warp or clock problem)\n"
@@ -1573,13 +1675,13 @@ msgstr ""
"�������� ���� ������������ � ������� (����������� ������� ��� ����������� "
"����������� ����)\n"
-#: g10/keygen.c:1051
+#: g10/keygen.c:1663
#, fuzzy
msgid "Really create? "
msgstr "������������� �������? "
-#: g10/encode.c:91 g10/openfile.c:156 g10/openfile.c:246 g10/tdbio.c:468
-#: g10/tdbio.c:529
+#: g10/encode.c:91 g10/openfile.c:168 g10/openfile.c:277 g10/tdbio.c:454
+#: g10/tdbio.c:515
#, c-format
msgid "%s: can't open: %s\n"
msgstr "%s: ���������� �������: %s\n"
@@ -1589,305 +1691,310 @@ msgstr "%s: ���������� �������: %s\n"
msgid "error creating passphrase: %s\n"
msgstr "������ ��� �������� �������� �����: %s\n"
-#: g10/encode.c:171 g10/encode.c:318
+#: g10/encode.c:171 g10/encode.c:319
#, fuzzy, c-format
msgid "%s: WARNING: empty file\n"
msgstr "%s: ��������������: ������ ����.\n"
-#: g10/encode.c:265
+#: g10/encode.c:266
#, c-format
msgid "reading from `%s'\n"
msgstr "�������� �� `%s'\n"
-#: g10/encode.c:482
+#: g10/encode.c:483
#, fuzzy, c-format
msgid "%s/%s encrypted for: %s\n"
msgstr "%s ����������� ���: %s\n"
-#: g10/export.c:147
+#: g10/export.c:153
#, fuzzy, c-format
msgid "%s: user not found: %s\n"
msgstr "%s: ������������ �� ������\n"
-#: g10/export.c:156
+#: g10/export.c:162
#, c-format
msgid "certificate read problem: %s\n"
msgstr ""
-#: g10/export.c:165
+#: g10/export.c:171
#, fuzzy, c-format
msgid "key %08lX: not a rfc2440 key - skipped\n"
msgstr "��������� ���� %08lX: �� ����� ���������������� ��������� �����.\n"
-#: g10/export.c:203
+#: g10/export.c:182
+#, fuzzy, c-format
+msgid "key %08lX: not protected - skipped\n"
+msgstr "��������� ���� %08lX: �� ����� ���������������� ��������� �����.\n"
+
+#: g10/export.c:232
#, fuzzy
msgid "WARNING: nothing exported\n"
msgstr "��������: ������������ ���� � �������� ��� �������!\n"
-#: g10/getkey.c:206
+#: g10/getkey.c:211
msgid "too many entries in pk cache - disabled\n"
msgstr ""
-#: g10/getkey.c:345
+#: g10/getkey.c:350
msgid "too many entries in unk cache - disabled\n"
msgstr ""
-#: g10/getkey.c:1289 g10/getkey.c:1328
+#: g10/getkey.c:1308 g10/getkey.c:1347
msgid "RSA key cannot be used in this version\n"
msgstr ""
-#: g10/getkey.c:1291 g10/getkey.c:1330
+#: g10/getkey.c:1310 g10/getkey.c:1349
#, fuzzy
msgid "No key for user ID\n"
msgstr "���� %08lX: ��� �������������� ������������\n"
-#: g10/getkey.c:1369 g10/getkey.c:1409
+#: g10/getkey.c:1388 g10/getkey.c:1428
#, fuzzy
msgid "No user ID for key\n"
msgstr "������ ��������� ����"
-#: g10/getkey.c:1565 g10/getkey.c:1621
+#: g10/getkey.c:1642 g10/getkey.c:1698
#, c-format
msgid "using secondary key %08lX instead of primary key %08lX\n"
msgstr "������������ �������������� ���� %09lX ������ ��������� %08lX%\n"
-#: g10/import.c:118
-#, fuzzy, c-format
-msgid "can't open `%s': %s\n"
-msgstr "���������� ������� ���� `%s': %s\n"
+#: g10/getkey.c:2017
+#, fuzzy
+msgid "[User id not found]"
+msgstr "%s: ������������ �� ������\n"
-#: g10/import.c:162
+#: g10/import.c:181
#, c-format
msgid "skipping block of type %d\n"
msgstr "���������� ���� ���� %d\n"
-#: g10/import.c:169 g10/trustdb.c:1658 g10/trustdb.c:1697
+#: g10/import.c:188 g10/trustdb.c:1740 g10/trustdb.c:1781
#, c-format
msgid "%lu keys so far processed\n"
msgstr ""
-#: g10/import.c:174
+#: g10/import.c:193
#, fuzzy, c-format
msgid "error reading `%s': %s\n"
msgstr "Fehler beim Erzeugen der \"Passphrase\": %s\n"
-#: g10/import.c:177
+#: g10/import.c:203
#, c-format
msgid "Total number processed: %lu\n"
msgstr ""
-#: g10/import.c:179
+#: g10/import.c:205
#, c-format
msgid " w/o user IDs: %lu\n"
msgstr ""
-#: g10/import.c:181
+#: g10/import.c:207
#, c-format
msgid " imported: %lu"
msgstr ""
-#: g10/import.c:187
+#: g10/import.c:213
#, c-format
msgid " unchanged: %lu\n"
msgstr ""
-#: g10/import.c:189
+#: g10/import.c:215
#, c-format
msgid " new user IDs: %lu\n"
msgstr ""
-#: g10/import.c:191
+#: g10/import.c:217
#, c-format
msgid " new subkeys: %lu\n"
msgstr ""
-#: g10/import.c:193
+#: g10/import.c:219
#, fuzzy, c-format
msgid " new signatures: %lu\n"
msgstr "���� %08lX: %d ����� ��������\n"
-#: g10/import.c:195
+#: g10/import.c:221
#, c-format
msgid " new key revocations: %lu\n"
msgstr ""
-#: g10/import.c:197
+#: g10/import.c:223
#, c-format
msgid " secret keys read: %lu\n"
msgstr ""
-#: g10/import.c:199
+#: g10/import.c:225
#, fuzzy, c-format
msgid " secret keys imported: %lu\n"
msgstr "���� %08lX: ��������� ���� ������������\n"
-#: g10/import.c:201
+#: g10/import.c:227
#, fuzzy, c-format
msgid " secret keys unchanged: %lu\n"
msgstr "����������� ������������ ��������� ����"
-#: g10/import.c:362 g10/import.c:554
+#: g10/import.c:386 g10/import.c:578
#, fuzzy, c-format
msgid "key %08lX: no user ID\n"
msgstr "���� %08lX: ��� �������������� ������������\n"
-#: g10/import.c:376
+#: g10/import.c:400
#, fuzzy, c-format
msgid "key %08lX: no valid user IDs\n"
msgstr "���� %08lX: ��� ���������� ��������������� �������������\n"
-#: g10/import.c:378
+#: g10/import.c:402
msgid "this may be caused by a missing self-signature\n"
msgstr "��� ����� ���� ������� ����������� ����-�������\n"
-#: g10/import.c:389 g10/import.c:621
+#: g10/import.c:413 g10/import.c:645
#, c-format
msgid "key %08lX: public key not found: %s\n"
msgstr "���� %08lX: �������� ���� �� ������: %s\n"
-#: g10/import.c:395
+#: g10/import.c:419
msgid "no default public keyring\n"
msgstr "��� ������ �������� ������ �� ���������\n"
-#: g10/import.c:399 g10/openfile.c:186 g10/sign.c:268 g10/sign.c:580
+#: g10/import.c:423 g10/openfile.c:220 g10/sign.c:275 g10/sign.c:587
#, c-format
msgid "writing to `%s'\n"
msgstr "������������ � `%s'\n"
-#: g10/import.c:402 g10/import.c:460 g10/import.c:569 g10/import.c:670
+#: g10/import.c:426 g10/import.c:484 g10/import.c:593 g10/import.c:694
#, fuzzy, c-format
msgid "can't lock keyring `%s': %s\n"
msgstr "���������� ������������� ������ �������� ������: %s\n"
-#: g10/import.c:405 g10/import.c:463 g10/import.c:572 g10/import.c:673
+#: g10/import.c:429 g10/import.c:487 g10/import.c:596 g10/import.c:697
#, fuzzy, c-format
msgid "error writing keyring `%s': %s\n"
msgstr "Fehler beim Erzeugen der \"Passphrase\": %s\n"
-#: g10/import.c:410
+#: g10/import.c:434
#, c-format
msgid "key %08lX: public key imported\n"
msgstr "���� %08lX: �������� ���� ������������\n"
-#: g10/import.c:427
+#: g10/import.c:451
#, c-format
msgid "key %08lX: doesn't match our copy\n"
msgstr "���� %08lX: �� ��������� � ����� ������\n"
-#: g10/import.c:436 g10/import.c:629
+#: g10/import.c:460 g10/import.c:653
#, c-format
msgid "key %08lX: can't locate original keyblock: %s\n"
msgstr "���� %08lX: ���������� ���������� original keyblock: %s\n"
-#: g10/import.c:442 g10/import.c:635
+#: g10/import.c:466 g10/import.c:659
#, c-format
msgid "key %08lX: can't read original keyblock: %s\n"
msgstr "���� %08lX: ���������� ��������� original keyblock: %s\n"
-#: g10/import.c:469
+#: g10/import.c:493
#, fuzzy, c-format
msgid "key %08lX: 1 new user ID\n"
msgstr "���� %08lX: 1 ����� ������������� ������������\n"
-#: g10/import.c:472
+#: g10/import.c:496
#, fuzzy, c-format
msgid "key %08lX: %d new user IDs\n"
msgstr "���� %08lX: %d ����� ��������������� �������������\n"
-#: g10/import.c:475
+#: g10/import.c:499
#, c-format
msgid "key %08lX: 1 new signature\n"
msgstr "���� %08lX: 1 ����� �������\n"
-#: g10/import.c:478
+#: g10/import.c:502
#, c-format
msgid "key %08lX: %d new signatures\n"
msgstr "���� %08lX: %d ����� ��������\n"
-#: g10/import.c:481
+#: g10/import.c:505
#, c-format
msgid "key %08lX: 1 new subkey\n"
msgstr "���� %08lX: 1 ����� ���-����\n"
-#: g10/import.c:484
+#: g10/import.c:508
#, c-format
msgid "key %08lX: %d new subkeys\n"
msgstr "���� %08lX: %d ����� ���-������\n"
-#: g10/import.c:494
+#: g10/import.c:518
#, c-format
msgid "key %08lX: not changed\n"
msgstr "���� %08lX: �� �������\n"
-#: g10/import.c:577
+#: g10/import.c:601
#, c-format
msgid "key %08lX: secret key imported\n"
msgstr "���� %08lX: ��������� ���� ������������\n"
#. we can't merge secret keys
-#: g10/import.c:581
+#: g10/import.c:605
#, c-format
msgid "key %08lX: already in secret keyring\n"
msgstr "���� %08lX: ��� �� ������ ��������� ������\n"
-#: g10/import.c:586
+#: g10/import.c:610
#, c-format
msgid "key %08lX: secret key not found: %s\n"
msgstr "���� %08lX: ��������� ���� �� ������: %s\n"
-#: g10/import.c:615
+#: g10/import.c:639
#, c-format
msgid "key %08lX: no public key - can't apply revocation certificate\n"
msgstr ""
"���� %08lX: ��� ��������� ����� - ���������� ��������� ���������� "
"����������\n"
-#: g10/import.c:646
+#: g10/import.c:670
#, c-format
msgid "key %08lX: invalid revocation certificate: %s - rejected\n"
msgstr "���� %08lX: ������������ ���������� ����������: %s - ���������\n"
-#: g10/import.c:678
+#: g10/import.c:702
#, c-format
msgid "key %08lX: revocation certificate imported\n"
msgstr "���� %08lX: ���������� ���������� ������������\n"
-#: g10/import.c:711
+#: g10/import.c:744
#, fuzzy, c-format
msgid "key %08lX: no user ID for signature\n"
msgstr "���� %08lX: ��� �������������� ������������ ��� �������\n"
-#: g10/import.c:718 g10/import.c:742
+#: g10/import.c:751 g10/import.c:775
#, c-format
msgid "key %08lX: unsupported public key algorithm\n"
msgstr "���� %08lX: ���������������� �������� ��������� �����\n"
-#: g10/import.c:719
+#: g10/import.c:752
#, c-format
msgid "key %08lX: invalid self-signature\n"
msgstr "���� %08lX: ������������ ����-�������\n"
-#: g10/import.c:734
+#: g10/import.c:767
#, fuzzy, c-format
msgid "key %08lX: no subkey for key binding\n"
msgstr "���� %08lX: ��� �������������� ������������\n"
-#: g10/import.c:743
+#: g10/import.c:776
#, fuzzy, c-format
msgid "key %08lX: invalid subkey binding\n"
msgstr "���� %08lX: ��� ���������� ��������������� �������������\n"
-#: g10/import.c:769
+#: g10/import.c:803
#, fuzzy, c-format
msgid "key %08lX: accepted non self-signed user ID '"
msgstr "���� %08lX: �������� ������������� ������������ '"
-#: g10/import.c:798
+#: g10/import.c:832
#, fuzzy, c-format
msgid "key %08lX: skipped user ID '"
msgstr "���� %08lX: �������� ������������� ������������ '"
-#: g10/import.c:821
+#: g10/import.c:855
#, fuzzy, c-format
msgid "key %08lX: skipped subkey\n"
msgstr "���� %08lX: 1 ����� ���-����\n"
@@ -1896,86 +2003,86 @@ msgstr "���� %08lX: 1 ����� ���-����\n"
#. * to import non-exportable signature when we have the
#. * the secret key used to create this signature - it
#. * seems that this makes sense
-#: g10/import.c:846
+#: g10/import.c:880
#, fuzzy, c-format
msgid "key %08lX: non exportable signature (class %02x) - skipped\n"
msgstr "���� %08lX: ���������� ���������� � ������������ ����� - ��������\n"
-#: g10/import.c:855
+#: g10/import.c:889
#, c-format
msgid "key %08lX: revocation certificate at wrong place - skipped\n"
msgstr "���� %08lX: ���������� ���������� � ������������ ����� - ��������\n"
-#: g10/import.c:863
+#: g10/import.c:897
#, c-format
msgid "key %08lX: invalid revocation certificate: %s - skipped\n"
msgstr "���� %08lX: ������������ ���������� ����������: %s - ��������\n"
-#: g10/import.c:963
+#: g10/import.c:997
#, c-format
msgid "key %08lX: duplicated user ID detected - merged\n"
msgstr ""
-#: g10/import.c:1014
+#: g10/import.c:1048
#, c-format
msgid "key %08lX: revocation certificate added\n"
msgstr "���� %08lX: ���������� ���������� ��������\n"
-#: g10/import.c:1128 g10/import.c:1183
+#: g10/import.c:1162 g10/import.c:1215
#, c-format
msgid "key %08lX: our copy has no self-signature\n"
msgstr "���� %08lX: ���� ����� �� ����� ����-�������\n"
-#: g10/delkey.c:64 g10/keyedit.c:93
+#: g10/delkey.c:64 g10/keyedit.c:94
#, c-format
msgid "%s: user not found\n"
msgstr "%s: ������������ �� ������\n"
-#: g10/keyedit.c:154
+#: g10/keyedit.c:155
msgid "[revocation]"
msgstr ""
-#: g10/keyedit.c:155
+#: g10/keyedit.c:156
#, fuzzy
msgid "[self-signature]"
msgstr "[����-�������]\n"
-#: g10/keyedit.c:219
+#: g10/keyedit.c:220
#, fuzzy
msgid "1 bad signature\n"
msgstr "1 ������ �������\n"
-#: g10/keyedit.c:221
+#: g10/keyedit.c:222
#, c-format
msgid "%d bad signatures\n"
msgstr "%d ������ ��������\n"
-#: g10/keyedit.c:223
+#: g10/keyedit.c:224
#, fuzzy
msgid "1 signature not checked due to a missing key\n"
msgstr "1 ������� �� ��������� ��-�� ���������� �����\n"
-#: g10/keyedit.c:225
+#: g10/keyedit.c:226
#, fuzzy, c-format
msgid "%d signatures not checked due to missing keys\n"
msgstr "%s �������� �� ��������� ��-�� ���������� ������\n"
-#: g10/keyedit.c:227
+#: g10/keyedit.c:228
#, fuzzy
msgid "1 signature not checked due to an error\n"
msgstr "1 ������� �� ��������� ��-�� ������\n"
-#: g10/keyedit.c:229
+#: g10/keyedit.c:230
#, c-format
msgid "%d signatures not checked due to errors\n"
msgstr "%s �������� �� ��������� ��-�� ������\n"
-#: g10/keyedit.c:231
+#: g10/keyedit.c:232
#, fuzzy
msgid "1 user ID without valid self-signature detected\n"
msgstr "��������� 1 ������������� ������������ ��� ���������� ����-�������\n"
-#: g10/keyedit.c:233
+#: g10/keyedit.c:234
#, fuzzy, c-format
msgid "%d user IDs without valid self-signatures detected\n"
msgstr ""
@@ -1983,52 +2090,57 @@ msgstr ""
#. Fixme: see whether there is a revocation in which
#. * case we should allow to sign it again.
-#: g10/keyedit.c:313
+#: g10/keyedit.c:316
#, fuzzy, c-format
msgid "Already signed by key %08lX\n"
msgstr "��� ��������� ������ %08lX.\n"
-#: g10/keyedit.c:321
+#: g10/keyedit.c:324
#, fuzzy, c-format
msgid "Nothing to sign with key %08lX\n"
msgstr "������ ����������� ������ %08lX\n"
-#: g10/keyedit.c:330
+#: g10/keyedit.c:333
#, fuzzy
msgid ""
"Are you really sure that you want to sign this key\n"
"with your key: \""
msgstr "�� ������������� �������, ��� ������ ��������� ���� ���� �����:\n"
-#: g10/keyedit.c:339
+#: g10/keyedit.c:342
msgid ""
"The signature will be marked as non-exportable.\n"
"\n"
msgstr ""
-#: g10/keyedit.c:344
+#: g10/keyedit.c:347
msgid "Really sign? "
msgstr "������������� ���������? "
-#: g10/keyedit.c:370 g10/keyedit.c:1832 g10/keyedit.c:1881 g10/sign.c:128
+#: g10/keyedit.c:373 g10/keyedit.c:1869 g10/keyedit.c:1931 g10/sign.c:135
#, fuzzy, c-format
msgid "signing failed: %s\n"
msgstr "������ ������������: %s\n"
-#: g10/keyedit.c:423
+#: g10/keyedit.c:427
msgid "This key is not protected.\n"
msgstr "���� ���� �� �������.\n"
-#: g10/keyedit.c:426
+#: g10/keyedit.c:431
+#, fuzzy
+msgid "Secret parts of primary key are not available.\n"
+msgstr "��������� ���� �� ����������"
+
+#: g10/keyedit.c:435
msgid "Key is protected.\n"
msgstr "���� ���� �������.\n"
-#: g10/keyedit.c:443
+#: g10/keyedit.c:455
#, c-format
msgid "Can't edit this key: %s\n"
msgstr "���������� ������������� ���� ����: %s\n"
-#: g10/keyedit.c:448
+#: g10/keyedit.c:460
msgid ""
"Enter the new passphrase for this secret key.\n"
"\n"
@@ -2036,7 +2148,7 @@ msgstr ""
"������� ����� �������� ����� ��� ����� ���������� �����.\n"
"\n"
-#: g10/keyedit.c:460
+#: g10/keyedit.c:472
msgid ""
"You don't want a passphrase - this is probably a *bad* idea!\n"
"\n"
@@ -2044,574 +2156,593 @@ msgstr ""
"�� �� ������ �������� ����� - ��� ������ ����� *������* ����!\n"
"\n"
-#: g10/keyedit.c:463
+#: g10/keyedit.c:475
msgid "Do you really want to do this? "
msgstr "�� ������������� ����� ������? "
-#: g10/keyedit.c:524
+#: g10/keyedit.c:539
msgid "moving a key signature to the correct place\n"
msgstr ""
-#: g10/keyedit.c:564
+#: g10/keyedit.c:580
msgid "quit this menu"
msgstr "����� �� ����"
-#: g10/keyedit.c:565
+#: g10/keyedit.c:581
msgid "q"
msgstr ""
-#: g10/keyedit.c:566
+#: g10/keyedit.c:582
msgid "save"
msgstr "��������"
-#: g10/keyedit.c:566
+#: g10/keyedit.c:582
msgid "save and quit"
msgstr "�������� � �����"
-#: g10/keyedit.c:567
+#: g10/keyedit.c:583
msgid "help"
msgstr "������"
-#: g10/keyedit.c:567
+#: g10/keyedit.c:583
msgid "show this help"
msgstr "�������� ������"
-#: g10/keyedit.c:569
+#: g10/keyedit.c:585
msgid "fpr"
msgstr ""
-#: g10/keyedit.c:569
+#: g10/keyedit.c:585
#, fuzzy
msgid "show fingerprint"
msgstr "�������� \"��������� ������\""
-#: g10/keyedit.c:570
+#: g10/keyedit.c:586
#, fuzzy
msgid "list"
msgstr "������"
-#: g10/keyedit.c:570
+#: g10/keyedit.c:586
#, fuzzy
msgid "list key and user IDs"
msgstr "������ ������ � ��������������� �������������"
-#: g10/keyedit.c:571
+#: g10/keyedit.c:587
msgid "l"
msgstr ""
-#: g10/keyedit.c:572
+#: g10/keyedit.c:588
msgid "uid"
msgstr ""
-#: g10/keyedit.c:572
+#: g10/keyedit.c:588
#, fuzzy
msgid "select user ID N"
msgstr "������� ������������� ������������ N"
-#: g10/keyedit.c:573
+#: g10/keyedit.c:589
msgid "key"
msgstr "����"
-#: g10/keyedit.c:573
+#: g10/keyedit.c:589
msgid "select secondary key N"
msgstr "������� �������������� ���� N"
-#: g10/keyedit.c:574
+#: g10/keyedit.c:590
msgid "check"
msgstr "��������"
-#: g10/keyedit.c:574
+#: g10/keyedit.c:590
#, fuzzy
msgid "list signatures"
msgstr "������ ������ � �� ��������"
-#: g10/keyedit.c:575
+#: g10/keyedit.c:591
msgid "c"
msgstr ""
-#: g10/keyedit.c:576
+#: g10/keyedit.c:592
msgid "sign"
msgstr "���������"
-#: g10/keyedit.c:576
+#: g10/keyedit.c:592
#, fuzzy
msgid "sign the key"
msgstr "��������� ����"
-#: g10/keyedit.c:577
+#: g10/keyedit.c:593
msgid "s"
msgstr ""
-#: g10/keyedit.c:578
+#: g10/keyedit.c:594
#, fuzzy
msgid "lsign"
msgstr "���������"
-#: g10/keyedit.c:578
+#: g10/keyedit.c:594
#, fuzzy
msgid "sign the key locally"
msgstr "��������� ����"
-#: g10/keyedit.c:579
+#: g10/keyedit.c:595
msgid "debug"
msgstr "�������"
-#: g10/keyedit.c:580
+#: g10/keyedit.c:596
msgid "adduid"
msgstr ""
-#: g10/keyedit.c:580
+#: g10/keyedit.c:596
#, fuzzy
msgid "add a user ID"
msgstr "�������� ������������� ������������"
-#: g10/keyedit.c:581
+#: g10/keyedit.c:597
msgid "deluid"
msgstr ""
-#: g10/keyedit.c:581
+#: g10/keyedit.c:597
#, fuzzy
msgid "delete user ID"
msgstr "������� ������������� ������������"
-#: g10/keyedit.c:582
+#: g10/keyedit.c:598
msgid "addkey"
msgstr ""
-#: g10/keyedit.c:582
+#: g10/keyedit.c:598
#, fuzzy
msgid "add a secondary key"
msgstr "�������� �������������� ����"
-#: g10/keyedit.c:583
+#: g10/keyedit.c:599
msgid "delkey"
msgstr ""
-#: g10/keyedit.c:583
+#: g10/keyedit.c:599
msgid "delete a secondary key"
msgstr "������� �������������� ����"
-#: g10/keyedit.c:584
+#: g10/keyedit.c:600
#, fuzzy
msgid "delsig"
msgstr "���������"
-#: g10/keyedit.c:584
+#: g10/keyedit.c:600
#, fuzzy
msgid "delete signatures"
msgstr "������ ������ � �� ��������"
-#: g10/keyedit.c:585
+#: g10/keyedit.c:601
msgid "expire"
msgstr ""
-#: g10/keyedit.c:585
+#: g10/keyedit.c:601
#, fuzzy
msgid "change the expire date"
msgstr "�������� �������� �����"
-#: g10/keyedit.c:586
+#: g10/keyedit.c:602
msgid "toggle"
msgstr ""
-#: g10/keyedit.c:586
+#: g10/keyedit.c:602
msgid "toggle between secret and public key listing"
msgstr "����������� ����� ������� ��������� � �������� ������"
-#: g10/keyedit.c:588
+#: g10/keyedit.c:604
msgid "t"
msgstr ""
-#: g10/keyedit.c:589
+#: g10/keyedit.c:605
msgid "pref"
msgstr ""
-#: g10/keyedit.c:589
+#: g10/keyedit.c:605
msgid "list preferences"
msgstr ""
-#: g10/keyedit.c:590
+#: g10/keyedit.c:606
msgid "passwd"
msgstr ""
-#: g10/keyedit.c:590
+#: g10/keyedit.c:606
#, fuzzy
msgid "change the passphrase"
msgstr "�������� �������� �����"
-#: g10/keyedit.c:591
+#: g10/keyedit.c:607
msgid "trust"
msgstr ""
-#: g10/keyedit.c:591
+#: g10/keyedit.c:607
msgid "change the ownertrust"
msgstr "�������� ��������� �������"
-#: g10/keyedit.c:592
+#: g10/keyedit.c:608
#, fuzzy
msgid "revsig"
msgstr "���������"
-#: g10/keyedit.c:592
+#: g10/keyedit.c:608
#, fuzzy
msgid "revoke signatures"
msgstr "��������� ������� �� �����"
-#: g10/keyedit.c:593
+#: g10/keyedit.c:609
#, fuzzy
msgid "revkey"
msgstr "����"
-#: g10/keyedit.c:593
+#: g10/keyedit.c:609
#, fuzzy
msgid "revoke a secondary key"
msgstr "������� �������������� ����"
-#: g10/keyedit.c:594
+#: g10/keyedit.c:610
msgid "disable"
msgstr ""
-#: g10/keyedit.c:594
+#: g10/keyedit.c:610
#, fuzzy
msgid "disable a key"
msgstr "������ ����"
-#: g10/keyedit.c:595
+#: g10/keyedit.c:611
msgid "enable"
msgstr ""
-#: g10/keyedit.c:595
+#: g10/keyedit.c:611
#, fuzzy
msgid "enable a key"
msgstr "������ ����"
-#: g10/delkey.c:107 g10/keyedit.c:614
+#: g10/delkey.c:110 g10/keyedit.c:630
msgid "can't do that in batchmode\n"
msgstr "���������� ������� ��� � �������� ������.\n"
#. check that they match
#. fixme: check that they both match
-#: g10/keyedit.c:652
+#: g10/keyedit.c:668
#, fuzzy
msgid "Secret key is available.\n"
msgstr "������� ��������� ����.\n"
-#: g10/keyedit.c:681
+#: g10/keyedit.c:697
#, fuzzy
msgid "Command> "
msgstr "�������> "
-#: g10/keyedit.c:711
+#: g10/keyedit.c:727
#, fuzzy
msgid "Need the secret key to do this.\n"
msgstr "����� ��� �������, ����� ��������� ����.\n"
-#: g10/keyedit.c:758
+#: g10/keyedit.c:731
+msgid "Please use the command \"toggle\" first.\n"
+msgstr ""
+
+#: g10/keyedit.c:778
#, fuzzy
msgid "Really sign all user IDs? "
msgstr "������������� ��������� ��� �������������� ������������? "
-#: g10/keyedit.c:759
+#: g10/keyedit.c:779
#, fuzzy
msgid "Hint: Select the user IDs to sign\n"
msgstr ""
"���������: �������� �������������� ������������ ������� ������ ���������\n"
-#: g10/keyedit.c:786 g10/keyedit.c:968
+#: g10/keyedit.c:811 g10/keyedit.c:993
#, fuzzy, c-format
msgid "update of trustdb failed: %s\n"
msgstr "���������� ���� ������ ������� �� �������: %s\n"
-#: g10/keyedit.c:797 g10/keyedit.c:818
+#: g10/keyedit.c:822 g10/keyedit.c:843
#, fuzzy
msgid "You must select at least one user ID.\n"
msgstr "�� ������ ������� ���� �� ���� ������������� ������������.\n"
-#: g10/keyedit.c:799
+#: g10/keyedit.c:824
#, fuzzy
msgid "You can't delete the last user ID!\n"
msgstr "�� �� ������ ������� ��������� ������������� ������������!\n"
-#: g10/keyedit.c:802
+#: g10/keyedit.c:827
#, fuzzy
msgid "Really remove all selected user IDs? "
msgstr "������������� ������� ��� ��������� �������������� ������������? "
-#: g10/keyedit.c:803
+#: g10/keyedit.c:828
#, fuzzy
msgid "Really remove this user ID? "
msgstr "������������� ������� ���� ������������� ������������? "
-#: g10/keyedit.c:839 g10/keyedit.c:861
+#: g10/keyedit.c:864 g10/keyedit.c:886
msgid "You must select at least one key.\n"
msgstr "�� ������ ������� ���� �� ���� ����.\n"
-#: g10/keyedit.c:843
+#: g10/keyedit.c:868
#, fuzzy
msgid "Do you really want to delete the selected keys? "
msgstr "�� ������������� ������ ������� ��������� �����? "
-#: g10/keyedit.c:844
+#: g10/keyedit.c:869
#, fuzzy
msgid "Do you really want to delete this key? "
msgstr "�� ������������� ������ ������� ���� ����? "
-#: g10/keyedit.c:865
+#: g10/keyedit.c:890
#, fuzzy
msgid "Do you really want to revoke the selected keys? "
msgstr "�� ������������� ������ ������� ��������� �����? "
-#: g10/keyedit.c:866
+#: g10/keyedit.c:891
#, fuzzy
msgid "Do you really want to revoke this key? "
msgstr "�� ������������� ������ ������� ���� ����? "
-#: g10/keyedit.c:932
+#: g10/keyedit.c:957
msgid "Save changes? "
msgstr "��������� ���������? "
-#: g10/keyedit.c:935
+#: g10/keyedit.c:960
msgid "Quit without saving? "
msgstr "����� ��� ����������? "
-#: g10/keyedit.c:946
+#: g10/keyedit.c:971
#, fuzzy, c-format
msgid "update failed: %s\n"
msgstr "���������� �� �������: %s\n"
-#: g10/keyedit.c:953
+#: g10/keyedit.c:978
#, fuzzy, c-format
msgid "update secret failed: %s\n"
msgstr "���������� ������� �� �������: %s\n"
-#: g10/keyedit.c:960
+#: g10/keyedit.c:985
msgid "Key not changed so no update needed.\n"
msgstr "���� �� ���������, ���������� �� �����.\n"
-#: g10/keyedit.c:975
+#: g10/keyedit.c:1000
msgid "Invalid command (try \"help\")\n"
msgstr "������������ ������� (���������� \"help\")\n"
-#: g10/keyedit.c:1065
+#: g10/keyedit.c:1093
#, fuzzy
msgid "This key has been disabled"
msgstr "���������: ���� �������� ����� ��� �����!\n"
-#: g10/keyedit.c:1336
+#: g10/keyedit.c:1364
msgid "Delete this good signature? (y/N/q)"
msgstr ""
-#: g10/keyedit.c:1340
+#: g10/keyedit.c:1368
msgid "Delete this invalid signature? (y/N/q)"
msgstr ""
-#: g10/keyedit.c:1344
+#: g10/keyedit.c:1372
#, fuzzy
msgid "Delete this unknown signature? (y/N/q)"
msgstr "������������� ���������� ����������"
-#: g10/keyedit.c:1350
+#: g10/keyedit.c:1378
#, fuzzy
msgid "Really delete this self-signature? (y/N)"
msgstr "������������� ���������� ����������"
-#: g10/keyedit.c:1364
+#: g10/keyedit.c:1392
#, fuzzy, c-format
msgid "Deleted %d signature.\n"
msgstr "%d ������ ��������\n"
-#: g10/keyedit.c:1365
+#: g10/keyedit.c:1393
#, fuzzy, c-format
msgid "Deleted %d signatures.\n"
msgstr "%d ������ ��������\n"
-#: g10/keyedit.c:1368
+#: g10/keyedit.c:1396
#, fuzzy
msgid "Nothing deleted.\n"
msgstr "��������: ������������ ���� � �������� ��� �������!\n"
-#: g10/keyedit.c:1437
+#: g10/keyedit.c:1465
msgid "Please remove selections from the secret keys.\n"
msgstr ""
-#: g10/keyedit.c:1443
+#: g10/keyedit.c:1471
#, fuzzy
msgid "Please select at most one secondary key.\n"
msgstr "�� ������ ������� ���� �� ���� ����.\n"
-#: g10/keyedit.c:1447
+#: g10/keyedit.c:1475
msgid "Changing expiration time for a secondary key.\n"
msgstr ""
-#: g10/keyedit.c:1449
+#: g10/keyedit.c:1477
msgid "Changing expiration time for the primary key.\n"
msgstr ""
-#: g10/keyedit.c:1490
+#: g10/keyedit.c:1519
msgid "You can't change the expiration date of a v3 key\n"
msgstr ""
-#: g10/keyedit.c:1506
+#: g10/keyedit.c:1535
msgid "No corresponding signature in secret ring\n"
msgstr ""
-#: g10/keyedit.c:1566
+#: g10/keyedit.c:1596
#, fuzzy, c-format
msgid "No user ID with index %d\n"
msgstr "��� �������������� ������������ � �������� %d\n"
-#: g10/keyedit.c:1612
+#: g10/keyedit.c:1642
#, c-format
msgid "No secondary key with index %d\n"
msgstr "��� ��������������� ����� � �������� %d\n"
-#: g10/keyedit.c:1710
+#: g10/keyedit.c:1740
#, fuzzy
msgid "user ID: \""
msgstr "������� ������������� ������������: "
-#: g10/keyedit.c:1713
+#: g10/keyedit.c:1743
#, fuzzy, c-format
msgid ""
"\"\n"
"signed with your key %08lX at %s\n"
msgstr "������ ����������� ������ %08lX\n"
-#: g10/keyedit.c:1717
+#: g10/keyedit.c:1747
#, fuzzy
msgid "Create a revocation certificate for this signature? (y/N)"
msgstr "������������� ���������� ����������"
#. FIXME: detect duplicates here
-#: g10/keyedit.c:1740
+#: g10/keyedit.c:1771
#, fuzzy
msgid "You have signed these user IDs:\n"
msgstr "�� �� ������ ������� ��������� ������������� ������������!\n"
-#: g10/keyedit.c:1754 g10/keyedit.c:1789
+#: g10/keyedit.c:1785 g10/keyedit.c:1820
#, fuzzy, c-format
msgid " signed by %08lX at %s\n"
msgstr "������ ����������� ������ %08lX\n"
-#: g10/keyedit.c:1759
+#: g10/keyedit.c:1790
#, fuzzy, c-format
msgid " revoked by %08lX at %s\n"
msgstr "������ ����������� ������ %08lX\n"
-#: g10/keyedit.c:1779
+#: g10/keyedit.c:1810
#, fuzzy
msgid "You are about to revoke these signatures:\n"
msgstr "M�chten Sie einige der ung�ltigen Signaturen entfernen? "
-#: g10/keyedit.c:1797
+#: g10/keyedit.c:1828
#, fuzzy
msgid "Really create the revocation certificates? (y/N)"
msgstr "������������� ���������� ����������"
-#: g10/keyedit.c:1820
+#: g10/keyedit.c:1857
#, fuzzy
msgid "no secret key\n"
msgstr "������ ��������� ����"
+#. of subkey
+#: g10/keylist.c:318 g10/mainproc.c:740
+#, fuzzy, c-format
+msgid " [expires: %s]"
+msgstr "���� ��������� �� %s\n"
+
#: g10/mainproc.c:213
#, fuzzy, c-format
msgid "public key is %08lX\n"
msgstr "�������� ���� �� ������"
-#: g10/mainproc.c:244
+#: g10/mainproc.c:248
#, fuzzy
msgid "public key encrypted data: good DEK\n"
msgstr "����������� �������� ������ �� ������� %s\n"
-#: g10/mainproc.c:275
+#: g10/mainproc.c:281
#, fuzzy, c-format
msgid "encrypted with %u-bit %s key, ID %08lX, created %s\n"
msgstr "(%u-��� %s ����, ID %08lX, ������ %s)\n"
-#: g10/mainproc.c:285
+#: g10/mainproc.c:291
#, fuzzy, c-format
msgid "encrypted with %s key, ID %08lX\n"
msgstr "������� ������� %.*s, ��������� %s ���� %08lX\n"
-#: g10/mainproc.c:291
+#: g10/mainproc.c:297
#, fuzzy
msgid "no secret key for decryption available\n"
msgstr "��������� ���� �� ����������"
-#: g10/mainproc.c:300
+#: g10/mainproc.c:306
#, c-format
msgid "public key decryption failed: %s\n"
msgstr "����������� �������� ������ �� ������� %s\n"
-#: g10/mainproc.c:330
+#: g10/mainproc.c:342
#, fuzzy
msgid "decryption okay\n"
msgstr "����������� �� �������: %s\n"
-#: g10/mainproc.c:335
+#: g10/mainproc.c:347
msgid "WARNING: encrypted message has been manipulated!\n"
msgstr ""
-#: g10/mainproc.c:340
+#: g10/mainproc.c:352
#, c-format
msgid "decryption failed: %s\n"
msgstr "����������� �� �������: %s\n"
-#: g10/mainproc.c:358
+#: g10/mainproc.c:371
#, fuzzy
msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
msgstr "���������: ����������� �������� \"������-���-�����-����\"\n"
-#: g10/mainproc.c:360
+#: g10/mainproc.c:373
#, c-format
msgid "original file name='%.*s'\n"
msgstr ""
-#: g10/mainproc.c:587 g10/mainproc.c:596
+#: g10/mainproc.c:524
+msgid "standalone revocation - use \"gpg --import\" to apply\n"
+msgstr ""
+
+#: g10/mainproc.c:611 g10/mainproc.c:620
#, fuzzy
msgid "WARNING: invalid notation data found\n"
msgstr "�� ������� ���������� RFC1991 ��� OpenPGP ������.\n"
-#: g10/mainproc.c:599
+#: g10/mainproc.c:623
msgid "Notation: "
msgstr ""
-#: g10/mainproc.c:606
+#: g10/mainproc.c:630
msgid "Policy: "
msgstr ""
-#: g10/mainproc.c:1025
+#: g10/mainproc.c:1057
msgid "signature verification suppressed\n"
msgstr ""
-#: g10/mainproc.c:1031
+#: g10/mainproc.c:1063
#, c-format
msgid "Signature made %.*s using %s key ID %08lX\n"
msgstr "������� ������� %.*s, ��������� %s ���� %08lX\n"
#. just in case that we have no userid
-#: g10/mainproc.c:1057 g10/mainproc.c:1068
+#: g10/mainproc.c:1089 g10/mainproc.c:1100
msgid "BAD signature from \""
msgstr "������ ������� �� \""
-#: g10/mainproc.c:1058 g10/mainproc.c:1069
+#: g10/mainproc.c:1090 g10/mainproc.c:1101
msgid "Good signature from \""
msgstr "������� ������� �� \""
-#: g10/mainproc.c:1060
+#: g10/mainproc.c:1092
msgid " aka \""
msgstr ""
-#: g10/mainproc.c:1115
+#: g10/mainproc.c:1148
#, c-format
msgid "Can't check signature: %s\n"
msgstr "���������� ��������� �������: %s\n"
-#: g10/mainproc.c:1212
+#: g10/mainproc.c:1209
+#, fuzzy, c-format
+msgid "standalone signature of class 0x%02x\n"
+msgstr "������� ������������ ����"
+
+#: g10/mainproc.c:1250
msgid "old style (PGP 2.x) signature\n"
msgstr ""
-#: g10/mainproc.c:1217
+#: g10/mainproc.c:1255
msgid "invalid root packet detected in proc_tree()\n"
msgstr ""
@@ -2640,12 +2771,12 @@ msgstr ""
msgid "this cipher algorithm is depreciated; please use a more standard one!\n"
msgstr ""
-#: g10/parse-packet.c:113
+#: g10/parse-packet.c:115
#, fuzzy, c-format
msgid "can't handle public key algorithm %d\n"
msgstr "���������� ������������� ������ �������� ������: %s\n"
-#: g10/parse-packet.c:939
+#: g10/parse-packet.c:956
#, c-format
msgid "subpacket of type %d has critical bit set\n"
msgstr ""
@@ -2689,15 +2820,20 @@ msgstr "��������� �������� �����: %s\n"
msgid "data not saved; use option \"--output\" to save it\n"
msgstr "������ �� ���� ���������; �������������� --\"output\" ��� ����������\n"
-#: g10/plaintext.c:315
+#: g10/plaintext.c:317
+#, fuzzy
+msgid "Detached signature.\n"
+msgstr "%d ������ ��������\n"
+
+#: g10/plaintext.c:321
msgid "Please enter name of data file: "
msgstr "����������, ������� ��� ����� ������: "
-#: g10/plaintext.c:336
+#: g10/plaintext.c:342
msgid "reading stdin ...\n"
msgstr ""
-#: g10/plaintext.c:379
+#: g10/plaintext.c:385
#, c-format
msgid "can't open signed data `%s'\n"
msgstr "���������� ������� ����������� ������ `%s' .\n"
@@ -2717,531 +2853,592 @@ msgstr "��, �� -- ��������� ����������.\n"
msgid "old encoding of the DEK is not supported\n"
msgstr "�������� ������ %d �� ��������������\n"
-#: g10/pubkey-enc.c:191
+#: g10/pubkey-enc.c:156
+#, fuzzy, c-format
+msgid "cipher algorithm %d is unknown or disabled\n"
+msgstr "�������� ������ %d �� ��������������\n"
+
+#: g10/pubkey-enc.c:195
#, fuzzy, c-format
msgid "NOTE: cipher algorithm %d not found in preferences\n"
msgstr "���������: ������������ �������� %d �� ������ � �������������\n"
-#: g10/seckey-cert.c:55
+#: g10/pubkey-enc.c:201
+#, fuzzy, c-format
+msgid "NOTE: secret key %08lX expired at %s\n"
+msgstr "��������������: ���� ������� ������� %s\n"
+
+#: g10/hkp.c:62
+#, c-format
+msgid "requesting key %08lX from %s ...\n"
+msgstr ""
+
+#: g10/hkp.c:75
+#, fuzzy, c-format
+msgid "can't get key from keyserver: %s\n"
+msgstr "���������� �������� � ������ ������: %s\n"
+
+#: g10/hkp.c:98 g10/hkp.c:136
+msgid "no keyserver known (use option --keyserver)\n"
+msgstr ""
+
+#: g10/hkp.c:106
+#, fuzzy, c-format
+msgid "%s: not a valid key ID\n"
+msgstr "������������ ������ � �����������.\n"
+
+#: g10/hkp.c:158
+#, fuzzy, c-format
+msgid "can't connect to `%s': %s\n"
+msgstr "���������� ������� ���� `%s': %s\n"
+
+#: g10/hkp.c:182
+#, fuzzy, c-format
+msgid "error sending to `%s': %s\n"
+msgstr "Fehler beim Erzeugen der \"Passphrase\": %s\n"
+
+#: g10/hkp.c:194
+#, c-format
+msgid "success sending to `%s' (status=%u)\n"
+msgstr ""
+
+#: g10/hkp.c:197
+#, c-format
+msgid "failed sending to `%s': status=%u\n"
+msgstr ""
+
+#: g10/seckey-cert.c:53
+#, fuzzy
+msgid "secret key parts are not available\n"
+msgstr "��������� ���� �� ����������"
+
+#: g10/seckey-cert.c:59
#, fuzzy, c-format
msgid "protection algorithm %d is not supported\n"
msgstr "�������� ������ %d �� ��������������\n"
-#: g10/seckey-cert.c:171
+#: g10/seckey-cert.c:175
msgid "Invalid passphrase; please try again ...\n"
msgstr "������������ �������� �����, ���������� ����� ...\n"
-#: g10/seckey-cert.c:227
+#: g10/seckey-cert.c:231
#, fuzzy
msgid "WARNING: Weak key detected - please change passphrase again.\n"
msgstr "��������������: ��������� ������ ���� - ������� �������� �����.\n"
-#: g10/sig-check.c:199
+#: g10/sig-check.c:202
msgid "assuming bad MDC due to an unknown critical bit\n"
msgstr ""
-#: g10/sig-check.c:295
+#: g10/sig-check.c:300
msgid ""
"this is a PGP generated ElGamal key which is NOT secure for signatures!\n"
msgstr "���� ElGamal ����, ��������� PGP, �� ������� ��� �������� ��������!\n"
-#: g10/sig-check.c:303
+#: g10/sig-check.c:308
#, fuzzy, c-format
msgid "public key is %lu second newer than the signature\n"
msgstr "���� %08lX: ��� �������������� ������������ ��� �������\n"
-#: g10/sig-check.c:304
+#: g10/sig-check.c:309
#, fuzzy, c-format
msgid "public key is %lu seconds newer than the signature\n"
msgstr "���� %08lX: ��� �������������� ������������ ��� �������\n"
-#: g10/sig-check.c:320
+#: g10/sig-check.c:327
#, fuzzy, c-format
msgid "NOTE: signature key expired %s\n"
msgstr "��������������: ���� ������� ������� %s\n"
-#: g10/sig-check.c:377
+#: g10/sig-check.c:385
msgid "assuming bad signature due to an unknown critical bit\n"
msgstr ""
-#: g10/sign.c:132
+#: g10/sign.c:139
#, fuzzy, c-format
msgid "%s signature from: %s\n"
msgstr "������ ������� �� \""
-#: g10/sign.c:263 g10/sign.c:575
+#: g10/sign.c:270 g10/sign.c:582
#, fuzzy, c-format
msgid "can't create %s: %s\n"
msgstr "%s: ���������� �������: %s\n"
-#: g10/sign.c:361
+#: g10/sign.c:368
#, fuzzy
msgid "signing:"
msgstr "���������"
-#: g10/sign.c:404
+#: g10/sign.c:411
#, fuzzy, c-format
msgid "WARNING: `%s' is an empty file\n"
msgstr "%s: ��������������: ������ ����.\n"
-#: g10/textfilter.c:128
+#: g10/textfilter.c:134
#, c-format
msgid "can't handle text lines longer than %d characters\n"
msgstr ""
-#: g10/textfilter.c:197
+#: g10/textfilter.c:231
#, c-format
msgid "input line longer than %d characters\n"
msgstr ""
-#: g10/tdbio.c:121 g10/tdbio.c:1635
+#: g10/tdbio.c:116 g10/tdbio.c:1623
#, fuzzy, c-format
msgid "trustdb rec %lu: lseek failed: %s\n"
msgstr "���������� ������� �� �������: %s\n"
-#: g10/tdbio.c:127 g10/tdbio.c:1642
+#: g10/tdbio.c:122 g10/tdbio.c:1630
#, c-format
msgid "trustdb rec %lu: write failed (n=%d): %s\n"
msgstr ""
-#: g10/tdbio.c:237
+#: g10/tdbio.c:232
msgid "trustdb transaction too large\n"
msgstr ""
-#: g10/tdbio.c:429
+#: g10/tdbio.c:424
#, fuzzy, c-format
msgid "%s: can't access: %s\n"
msgstr "%s: ���������� �������: %s\n"
-#: g10/ringedit.c:298 g10/tdbio.c:445
-#, fuzzy, c-format
-msgid "%s: can't create directory: %s\n"
-msgstr "%s: ���������� �������: %s\n"
-
-#: g10/ringedit.c:304 g10/tdbio.c:448
-#, fuzzy, c-format
-msgid "%s: directory created\n"
-msgstr "%s: ���������� �������: %s\n"
-
-#: g10/tdbio.c:452
+#: g10/tdbio.c:438
#, c-format
msgid "%s: directory does not exist!\n"
msgstr ""
-#: g10/openfile.c:182 g10/openfile.c:253 g10/ringedit.c:1348 g10/tdbio.c:458
+#: g10/openfile.c:216 g10/openfile.c:284 g10/ringedit.c:1363 g10/tdbio.c:444
#, fuzzy, c-format
msgid "%s: can't create: %s\n"
msgstr "%s: ���������� �������: %s\n"
-#: g10/tdbio.c:473 g10/tdbio.c:522
+#: g10/tdbio.c:459 g10/tdbio.c:508
#, fuzzy, c-format
msgid "%s: can't create lock\n"
msgstr "%s: ���������� �������: %s\n"
-#: g10/tdbio.c:487
+#: g10/tdbio.c:473
#, c-format
msgid "%s: failed to create version record: %s"
msgstr ""
-#: g10/tdbio.c:491
+#: g10/tdbio.c:477
#, fuzzy, c-format
msgid "%s: invalid trustdb created\n"
msgstr "%s: ���������� �������: %s\n"
-#: g10/tdbio.c:494
+#: g10/tdbio.c:480
#, fuzzy, c-format
msgid "%s: trustdb created\n"
msgstr "%s: ���������� �������: %s\n"
-#: g10/tdbio.c:531
+#: g10/tdbio.c:517
#, fuzzy, c-format
msgid "%s: invalid trustdb\n"
msgstr "���������� ���� ������ ������� �� �������: %s\n"
-#: g10/tdbio.c:564
+#: g10/tdbio.c:550
#, fuzzy, c-format
msgid "%s: failed to create hashtable: %s\n"
msgstr "%s: ���������� �������: %s\n"
-#: g10/tdbio.c:572
+#: g10/tdbio.c:558
#, fuzzy, c-format
msgid "%s: error updating version record: %s\n"
msgstr "Fehler beim Erzeugen der \"Passphrase\": %s\n"
-#: g10/tdbio.c:588 g10/tdbio.c:627 g10/tdbio.c:649 g10/tdbio.c:679
-#: g10/tdbio.c:704 g10/tdbio.c:1568 g10/tdbio.c:1595
+#: g10/tdbio.c:574 g10/tdbio.c:613 g10/tdbio.c:635 g10/tdbio.c:665
+#: g10/tdbio.c:690 g10/tdbio.c:1556 g10/tdbio.c:1583
#, fuzzy, c-format
msgid "%s: error reading version record: %s\n"
msgstr "Fehler beim Erzeugen der \"Passphrase\": %s\n"
-#: g10/tdbio.c:601 g10/tdbio.c:660
+#: g10/tdbio.c:587 g10/tdbio.c:646
#, fuzzy, c-format
msgid "%s: error writing version record: %s\n"
msgstr "Fehler beim Erzeugen der \"Passphrase\": %s\n"
-#: g10/tdbio.c:1247
+#: g10/tdbio.c:1235
#, fuzzy, c-format
msgid "trustdb: lseek failed: %s\n"
msgstr "���������� ������� �� �������: %s\n"
-#: g10/tdbio.c:1255
+#: g10/tdbio.c:1243
#, fuzzy, c-format
msgid "trustdb: read failed (n=%d): %s\n"
msgstr "���������� ���� ������ ������� �� �������: %s\n"
-#: g10/tdbio.c:1276
+#: g10/tdbio.c:1264
#, fuzzy, c-format
msgid "%s: not a trustdb file\n"
msgstr "���������� ���� ������ ������� �� �������: %s\n"
-#: g10/tdbio.c:1292
+#: g10/tdbio.c:1280
#, c-format
msgid "%s: version record with recnum %lu\n"
msgstr ""
-#: g10/tdbio.c:1297
+#: g10/tdbio.c:1285
#, fuzzy, c-format
msgid "%s: invalid file version %d\n"
msgstr "������������ ������ ��������� �������\n"
-#: g10/tdbio.c:1601
+#: g10/tdbio.c:1589
#, fuzzy, c-format
msgid "%s: error reading free record: %s\n"
msgstr "Fehler beim Erzeugen der \"Passphrase\": %s\n"
-#: g10/tdbio.c:1609
+#: g10/tdbio.c:1597
#, fuzzy, c-format
msgid "%s: error writing dir record: %s\n"
msgstr "Fehler beim Erzeugen der \"Passphrase\": %s\n"
-#: g10/tdbio.c:1619
+#: g10/tdbio.c:1607
#, c-format
msgid "%s: failed to zero a record: %s\n"
msgstr ""
-#: g10/tdbio.c:1649
+#: g10/tdbio.c:1637
#, c-format
msgid "%s: failed to append a record: %s\n"
msgstr ""
-#: g10/tdbio.c:1760
+#: g10/tdbio.c:1748
#, fuzzy
msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
msgstr "���� ������ ������� ���������: ��������� \"gpgm --fix-trust-db\".\n"
-#: g10/trustdb.c:160
+#: g10/trustdb.c:168
#, c-format
msgid "trust record %lu, req type %d: read failed: %s\n"
msgstr ""
-#: g10/trustdb.c:175
+#: g10/trustdb.c:183
#, c-format
msgid "trust record %lu, type %d: write failed: %s\n"
msgstr ""
-#: g10/trustdb.c:189
+#: g10/trustdb.c:197
#, fuzzy, c-format
msgid "trust record %lu: delete failed: %s\n"
msgstr "���������� ������� �� �������: %s\n"
-#: g10/trustdb.c:203
+#: g10/trustdb.c:211
#, fuzzy, c-format
msgid "trustdb: sync failed: %s\n"
msgstr "���������� ���� ������ ������� �� �������: %s\n"
-#: g10/trustdb.c:347
+#: g10/trustdb.c:376
#, fuzzy, c-format
msgid "error reading dir record for LID %lu: %s\n"
msgstr "Fehler beim Erzeugen der \"Passphrase\": %s\n"
-#: g10/trustdb.c:354
+#: g10/trustdb.c:383
#, c-format
msgid "lid %lu: expected dir record, got type %d\n"
msgstr ""
-#: g10/trustdb.c:359
+#: g10/trustdb.c:388
#, c-format
msgid "no primary key for LID %lu\n"
msgstr ""
-#: g10/trustdb.c:364
+#: g10/trustdb.c:393
#, fuzzy, c-format
msgid "error reading primary key for LID %lu: %s\n"
msgstr "Fehler beim Erzeugen der \"Passphrase\": %s\n"
-#: g10/trustdb.c:403
+#: g10/trustdb.c:432
#, fuzzy, c-format
msgid "get_dir_record: search_record failed: %s\n"
msgstr "���������� ������� �� �������: %s\n"
-#: g10/trustdb.c:458
+#: g10/trustdb.c:487
#, fuzzy, c-format
msgid "NOTE: secret key %08lX is NOT protected.\n"
msgstr "���� ���� �� �������.\n"
-#: g10/trustdb.c:466
+#: g10/trustdb.c:495
#, fuzzy, c-format
msgid "key %08lX: secret key without public key - skipped\n"
msgstr "��������� ���� %08lX: �� ����� ���������������� ��������� �����.\n"
-#: g10/trustdb.c:473
+#: g10/trustdb.c:502
#, c-format
msgid "key %08lX: secret and public key don't match\n"
msgstr "���� %08lX: ��������� � ��������� ����� �� ���������.\n"
-#: g10/trustdb.c:485
+#: g10/trustdb.c:514
#, fuzzy, c-format
msgid "key %08lX: can't put it into the trustdb\n"
msgstr "���� %08lX.%lu: ���������� �������� � ���� ������ �������\n"
-#: g10/trustdb.c:491
+#: g10/trustdb.c:520
#, fuzzy, c-format
msgid "key %08lX: query record failed\n"
msgstr "���� %08lX: ������ ������ �� ������\n"
-#: g10/trustdb.c:500
+#: g10/trustdb.c:529
#, fuzzy, c-format
msgid "key %08lX: already in trusted key table\n"
msgstr "���� %08lX: ��� �� ������ ��������� ������\n"
-#: g10/trustdb.c:503
+#: g10/trustdb.c:532
#, fuzzy, c-format
msgid "key %08lX: accepted as trusted key.\n"
msgstr "���� %08lX: ��� �� ������ ��������� ������\n"
-#: g10/trustdb.c:511
+#: g10/trustdb.c:540
#, fuzzy, c-format
msgid "enumerate secret keys failed: %s\n"
msgstr "���������� ������� �� �������: %s\n"
-#: g10/trustdb.c:877
+#: g10/trustdb.c:921
#, fuzzy, c-format
msgid "key %08lX.%lu: Good subkey binding\n"
msgstr "���� %08lX: ��� �������������� ������������\n"
-#: g10/trustdb.c:883 g10/trustdb.c:918
+#: g10/trustdb.c:927 g10/trustdb.c:962
#, fuzzy, c-format
msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
msgstr "���� %08lX: ��� ���������� ��������������� �������������\n"
-#: g10/trustdb.c:895
+#: g10/trustdb.c:939
#, fuzzy, c-format
msgid "key %08lX.%lu: Valid key revocation\n"
msgstr "���� %08lX.%lu: ���� �������� ����� %s\n"
-#: g10/trustdb.c:901
+#: g10/trustdb.c:945
#, fuzzy, c-format
msgid "key %08lX.%lu: Invalid key revocation: %s\n"
msgstr "���� %08lX: �������� ���� �� ������: %s\n"
-#: g10/trustdb.c:912
+#: g10/trustdb.c:956
#, fuzzy, c-format
msgid "key %08lX.%lu: Valid subkey revocation\n"
msgstr "���� %08lX: ��� ���������� ��������������� �������������\n"
-#: g10/trustdb.c:1023
+#: g10/trustdb.c:1067
#, fuzzy
msgid "Good self-signature"
msgstr "[����-�������]\n"
-#: g10/trustdb.c:1033
+#: g10/trustdb.c:1077
#, fuzzy
msgid "Invalid self-signature"
msgstr "���� %08lX: ������������ ����-�������\n"
-#: g10/trustdb.c:1060
+#: g10/trustdb.c:1104
msgid "Valid user ID revocation skipped due to a newer self signature"
msgstr ""
-#: g10/trustdb.c:1066
+#: g10/trustdb.c:1110
#, fuzzy
msgid "Valid user ID revocation"
msgstr "������������ �����.\n"
-#: g10/trustdb.c:1071
+#: g10/trustdb.c:1115
#, fuzzy
msgid "Invalid user ID revocation"
msgstr "������������ �����.\n"
-#: g10/trustdb.c:1112
+#: g10/trustdb.c:1157
#, fuzzy
msgid "Valid certificate revocation"
msgstr "������ ����������"
-#: g10/trustdb.c:1113
+#: g10/trustdb.c:1158
#, fuzzy
msgid "Good certificate"
msgstr "������ ����������"
-#: g10/trustdb.c:1134
+#: g10/trustdb.c:1186
#, fuzzy
msgid "Invalid certificate revocation"
msgstr "������ ����������"
-#: g10/trustdb.c:1135
+#: g10/trustdb.c:1187
#, fuzzy
msgid "Invalid certificate"
msgstr "������ ����������"
-#: g10/trustdb.c:1152 g10/trustdb.c:1156
+#: g10/trustdb.c:1204 g10/trustdb.c:1208
#, c-format
msgid "sig record %lu[%d] points to wrong record.\n"
msgstr ""
-#: g10/trustdb.c:1208
+#: g10/trustdb.c:1267
#, fuzzy
msgid "duplicated certificate - deleted"
msgstr "������ ����������"
-#: g10/trustdb.c:1514
+#: g10/trustdb.c:1584
#, fuzzy, c-format
msgid "tdbio_search_dir failed: %s\n"
msgstr "������ �������������: %s\n"
-#: g10/trustdb.c:1636
+#: g10/trustdb.c:1718
#, fuzzy, c-format
msgid "lid ?: insert failed: %s\n"
msgstr "���������� ������� �� �������: %s\n"
-#: g10/trustdb.c:1641
+#: g10/trustdb.c:1723
#, fuzzy, c-format
msgid "lid %lu: insert failed: %s\n"
msgstr "���������� ������� �� �������: %s\n"
-#: g10/trustdb.c:1647
+#: g10/trustdb.c:1729
#, c-format
msgid "lid %lu: inserted\n"
msgstr ""
-#: g10/trustdb.c:1652
+#: g10/trustdb.c:1734
#, fuzzy, c-format
msgid "error reading dir record: %s\n"
msgstr "Fehler beim Erzeugen der \"Passphrase\": %s\n"
-#: g10/trustdb.c:1660 g10/trustdb.c:1714
+#: g10/trustdb.c:1742 g10/trustdb.c:1805
#, c-format
msgid "%lu keys processed\n"
msgstr ""
-#: g10/trustdb.c:1662 g10/trustdb.c:1718
+#: g10/trustdb.c:1744 g10/trustdb.c:1811
#, fuzzy, c-format
msgid "\t%lu keys with errors\n"
msgstr "������ ������ �����"
-#: g10/trustdb.c:1664
+#: g10/trustdb.c:1746
#, c-format
msgid "\t%lu keys inserted\n"
msgstr ""
-#: g10/trustdb.c:1667
+#: g10/trustdb.c:1749
#, fuzzy, c-format
msgid "enumerate keyblocks failed: %s\n"
msgstr "���������� ������� �� �������: %s\n"
-#: g10/trustdb.c:1705
+#: g10/trustdb.c:1797
#, c-format
msgid "lid %lu: dir record w/o key - skipped\n"
msgstr ""
-#: g10/trustdb.c:1716
+#: g10/trustdb.c:1807
+#, fuzzy, c-format
+msgid "\t%lu due to new pubkeys\n"
+msgstr "���� %08lX: %d ����� ���-������\n"
+
+#: g10/trustdb.c:1809
#, fuzzy, c-format
msgid "\t%lu keys skipped\n"
msgstr "%s: ��������: %s\n"
-#: g10/trustdb.c:1720
+#: g10/trustdb.c:1813
#, c-format
msgid "\t%lu keys updated\n"
msgstr ""
-#: g10/trustdb.c:2057
+#: g10/trustdb.c:2158
msgid "Ooops, no keys\n"
msgstr ""
-#: g10/trustdb.c:2061
+#: g10/trustdb.c:2162
#, fuzzy
msgid "Ooops, no user IDs\n"
msgstr "������ ������ � ��������������� �������������"
-#: g10/trustdb.c:2218
+#: g10/trustdb.c:2320
#, fuzzy, c-format
msgid "check_trust: search dir record failed: %s\n"
msgstr "���� %08lX.%lu: ������� ������������� ������ �� �������: %s\n"
-#: g10/trustdb.c:2227
+#: g10/trustdb.c:2329
#, fuzzy, c-format
msgid "key %08lX: insert trust record failed: %s\n"
msgstr "���� %08lX.%lu: ������� ������������� ������ �� �������: %s\n"
-#: g10/trustdb.c:2231
+#: g10/trustdb.c:2333
#, c-format
msgid "key %08lX.%lu: inserted into trustdb\n"
msgstr "���� %08lX.%lu: �������� � ���� ������ �������\n"
-#: g10/trustdb.c:2239
+#: g10/trustdb.c:2341
#, c-format
msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
msgstr ""
"���� %08lX.%lu: ������������ � ������� (����������� ����������� ����)\n"
-#: g10/trustdb.c:2248
+#: g10/trustdb.c:2356
#, c-format
msgid "key %08lX.%lu: expired at %s\n"
msgstr "���� %08lX.%lu: ���� �������� ����� %s\n"
-#: g10/trustdb.c:2256
+#: g10/trustdb.c:2364
#, c-format
msgid "key %08lX.%lu: trust check failed: %s\n"
msgstr "���� %08lX.%lu: �������� ������� �� �������: %s\n"
-#: g10/trustdb.c:2362
+#: g10/trustdb.c:2515
#, fuzzy, c-format
msgid "user '%s' not found: %s\n"
msgstr "%s: ������������ �� ������\n"
-#: g10/trustdb.c:2364
+#: g10/trustdb.c:2517
#, fuzzy, c-format
msgid "problem finding '%s' in trustdb: %s\n"
msgstr "������ ������������� ���� ������ �������: %s\n"
-#: g10/trustdb.c:2367
+#: g10/trustdb.c:2520
#, fuzzy, c-format
msgid "user '%s' not in trustdb - inserting\n"
msgstr "���������� ���� ������ ������� �� �������: %s\n"
-#: g10/trustdb.c:2370
+#: g10/trustdb.c:2523
#, fuzzy, c-format
msgid "failed to put '%s' into trustdb: %s\n"
msgstr "������ ������������� ���� ������ �������: %s\n"
-#: g10/trustdb.c:2556 g10/trustdb.c:2586
+#: g10/trustdb.c:2709 g10/trustdb.c:2739
msgid "WARNING: can't yet handle long pref records\n"
msgstr ""
-#: g10/ringedit.c:318
+#: g10/verify.c:82
+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 ""
+
+#: g10/verify.c:147
+#, c-format
+msgid "input line %u too long or missing LF\n"
+msgstr ""
+
+#: g10/ringedit.c:302
#, fuzzy, c-format
msgid "%s: can't create keyring: %s\n"
msgstr "%s: ���������� �������: %s\n"
-#: g10/ringedit.c:335 g10/ringedit.c:1353
+#: g10/ringedit.c:319 g10/ringedit.c:1368
#, fuzzy, c-format
msgid "%s: keyring created\n"
msgstr "%s: ���������� �������: %s\n"
-#: g10/ringedit.c:1530
+#: g10/ringedit.c:1545
msgid "WARNING: 2 files with confidential information exists.\n"
msgstr ""
-#: g10/ringedit.c:1531
+#: g10/ringedit.c:1546
#, fuzzy, c-format
msgid "%s is the unchanged one\n"
msgstr "����������� ������������ ��������� ����"
-#: g10/ringedit.c:1532
+#: g10/ringedit.c:1547
#, c-format
msgid "%s is the new one\n"
msgstr ""
-#: g10/ringedit.c:1533
+#: g10/ringedit.c:1548
msgid "Please fix this possible security flaw\n"
msgstr ""
@@ -3262,40 +3459,54 @@ msgid ""
msgstr "���� ElGamal ����, ��������� PGP, �� ������� ��� �������� ��������!\n"
#. do not overwrite
-#: g10/openfile.c:65
+#: g10/openfile.c:79
#, c-format
msgid "File `%s' exists. "
msgstr "���� `%s' ����������. "
-#: g10/openfile.c:67
+#: g10/openfile.c:81
msgid "Overwrite (y/N)? "
msgstr "���������� (y/N)? "
-#: g10/openfile.c:97
+#: g10/openfile.c:109
#, c-format
msgid "%s: unknown suffix\n"
msgstr ""
-#: g10/openfile.c:119
+#: g10/openfile.c:131
#, fuzzy
msgid "Enter new filename"
msgstr "--store [��� �����]"
-#: g10/openfile.c:160
+#: g10/openfile.c:172
#, fuzzy
msgid "writing to stdout\n"
msgstr "������������ � `%s'\n"
-#: g10/openfile.c:219
+#: g10/openfile.c:250
#, fuzzy, c-format
msgid "assuming signed data in `%s'\n"
msgstr "���������� ������� ����������� ������ `%s' .\n"
-#: g10/openfile.c:269
+#: g10/openfile.c:300
#, c-format
msgid "%s: new options file created\n"
msgstr ""
+#: g10/openfile.c:313
+#, fuzzy, c-format
+msgid "%s: can't create directory: %s\n"
+msgstr "%s: ���������� �������: %s\n"
+
+#: g10/openfile.c:316
+#, fuzzy, c-format
+msgid "%s: directory created\n"
+msgstr "%s: ���������� �������: %s\n"
+
+#: g10/openfile.c:318
+msgid "you have to start GnuPG again, so it can read the new options file\n"
+msgstr ""
+
#: g10/encr-data.c:66
#, fuzzy, c-format
msgid "%s encrypted data\n"
@@ -3325,25 +3536,25 @@ msgstr ""
"�� ���������� �������� ������� ����� � ������������ ���������; ��������� %d "
"���!\n"
-#: g10/delkey.c:93
+#: g10/delkey.c:94
msgid "there is a secret key for this public key!\n"
msgstr "Es gibt einen privaten ���� zu diesem �ffentlichen ����!\n"
-#: g10/delkey.c:95
+#: g10/delkey.c:96
msgid "use option \"--delete-secret-key\" to delete it first.\n"
msgstr ""
"Benutzen Sie das Kommando \"--delete-secret-key\", um ihn vorab zu "
"entfernen.\n"
-#: g10/delkey.c:111
+#: g10/delkey.c:114
msgid "can't do that in batchmode without \"--yes\"\n"
msgstr "Dies kann im Batchmodus ohne \"--yes\" nicht durchgef�hrt werden.\n"
-#: g10/delkey.c:133
+#: g10/delkey.c:136
msgid "Delete this key from the keyring? "
msgstr "Diesen ���� aus dem ����ring l�schen? "
-#: g10/delkey.c:141
+#: g10/delkey.c:144
msgid "This is a secret key! - really delete? "
msgstr "Dies ist ein privater ����! - Wirklich l�schen? "
@@ -3513,15 +3724,60 @@ msgid ""
"file (which is shown in brackets) will be used."
msgstr ""
-#: g10/helptext.c:237
+#: g10/helptext.c:229
+msgid ""
+"You should specify a reason for the certification. Depending on the\n"
+"context you have the ability to choose from this list:\n"
+" \"Key has been compromised\"\n"
+" Use this if you have a reason to believe that unauthorized persons\n"
+" got access to your secret key.\n"
+" \"Key is superseeded\"\n"
+" Use this if you have replaced this key with a newer one.\n"
+" \"Key is no longer used\"\n"
+" Use this if you have retired this key.\n"
+" \"User ID is no longer valid\"\n"
+" 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 ""
+
+#: g10/helptext.c:245
+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 ""
+
+#: g10/helptext.c:260
msgid "No help available"
msgstr "������ �����������."
-#: g10/helptext.c:245
+#: g10/helptext.c:268
#, c-format
msgid "No help available for `%s'"
msgstr "������ ��� `%s' �����������."
+#~ msgid "set debugging flags"
+#~ msgstr "���������� ���������� �����"
+
+#~ msgid "enable full debugging"
+#~ msgstr "��������� ��� �������"
+
+#~ msgid "do not write comment packets"
+#~ msgstr "�� ������ ������ � �������������"
+
+#~ msgid "(default is 1)"
+#~ msgstr "(�� ��������� 1)"
+
+#~ msgid "(default is 3)"
+#~ msgstr "(�� ��������� 3)"
+
+#~ msgid " (%d) ElGamal in a v3 packet\n"
+#~ msgstr " (%d) ElGamal � v3-������\n"
+
+#~ msgid "Key generation can only be used in interactive mode\n"
+#~ msgstr ""
+#~ "��������� ����� ����� ���� ��������� ������ � ������������� ������.\n"
+
# ################################
# ####### Help msgids ############
# ################################
@@ -3609,9 +3865,6 @@ msgstr "������ ��� `%s' �����������."
#~ msgid "read error: %s\n"
#~ msgstr "������ ������: %s\n"
-#~ msgid "can't write to keyring: %s\n"
-#~ msgstr "���������� �������� � ������ ������: %s\n"
-
#~ msgid "writing keyblock\n"
#~ msgstr "������������ ���� �����\n"
@@ -3648,10 +3901,6 @@ msgstr "������ ��� `%s' �����������."
#~ msgstr "�������������: gpgm [���������] "
#, fuzzy
-#~ msgid "'%s' is not a valid long keyID\n"
-#~ msgstr "������������ ������ � �����������.\n"
-
-#, fuzzy
#~ msgid "key %08lX: no public key for trusted key - skipped\n"
#~ msgstr "��������� ���� %08lX: �� ����� ���������������� ��������� �����.\n"
diff --git a/po/sv.po b/po/sv.po
new file mode 100644
index 000000000..33a6b3959
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,3732 @@
+# Swedish messages for gnupg
+# Copyright (C) 1999 Free Software Foundation, Inc.
+# Daniel Resare <[email protected]>, 1999.
+#
+# Thanks to Andr� Dahlqvist <[email protected]> for
+# many improvements
+#
+# Also many thanks to my wife Olivia <[email protected]> for
+# patience, help and suggestions
+#
+# $Id$
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gnupg 1.0.0h\n"
+"POT-Creation-Date: 2000-05-30 13:59+0200\n"
+"PO-Revision-Date: 2000-02-16 08:19+01:00\n"
+"Last-Translator: Daniel Resare <[email protected]>\n"
+"Language-Team: Swedish <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: util/secmem.c:79
+msgid "Warning: using insecure memory!\n"
+msgstr "Varning: anv�nder os�kert minne!\n"
+
+#: util/secmem.c:287
+msgid "operation is not possible without initialized secure memory\n"
+msgstr "operationen �r ej m�jlig utan tillg�ng till s�kert minne\n"
+
+#: util/secmem.c:288
+msgid "(you may have used the wrong program for this task)\n"
+msgstr "(du kan ha anv�nt fel program f�r denna uppgift)\n"
+
+#: util/miscutil.c:277 util/miscutil.c:306
+msgid "yes"
+msgstr "ja"
+
+#: util/miscutil.c:278 util/miscutil.c:309
+msgid "yY"
+msgstr "jJ"
+
+#: util/miscutil.c:279 util/miscutil.c:307
+msgid "no"
+msgstr "nej"
+
+#: util/miscutil.c:280 util/miscutil.c:310
+msgid "nN"
+msgstr "nN"
+
+#: g10/keyedit.c:580 util/miscutil.c:308
+msgid "quit"
+msgstr "avsluta"
+
+#: util/miscutil.c:311
+msgid "qQ"
+msgstr "aA"
+
+#: util/errors.c:54
+msgid "general error"
+msgstr "allm�nt fel"
+
+#: util/errors.c:55
+msgid "unknown packet type"
+msgstr "ok�nd pakettyp"
+
+#: util/errors.c:56
+msgid "unknown version"
+msgstr "ok�nd version"
+
+#: util/errors.c:57
+msgid "unknown pubkey algorithm"
+msgstr "ok�nd algoritm f�r publik nyckel"
+
+# jag �r inte n�jd med �vers�ttningen digest -> kontrollsumma,
+# om du har ett b�ttre f�rslag kontakta mig g�rna p�
+# [email protected]. Andra f�rslag jag s�gat �r digest (o�versatt),
+# fingeravtryck, indatakarakteristik, sammandrag och sammanfattning
+#: util/errors.c:58
+msgid "unknown digest algorithm"
+msgstr "ok�nd algoritm f�r ber�kning av kontrollsumma"
+
+#: util/errors.c:59
+msgid "bad public key"
+msgstr "felaktig publik nyckel"
+
+#: util/errors.c:60
+msgid "bad secret key"
+msgstr "felaktig hemlig nyckel"
+
+#: util/errors.c:61
+msgid "bad signature"
+msgstr "felaktig signatur"
+
+#: util/errors.c:62
+msgid "checksum error"
+msgstr "fel vid ber�kning av kontrollsumma"
+
+#: util/errors.c:63
+msgid "bad passphrase"
+msgstr "felaktig l�senordsfras"
+
+#: util/errors.c:64
+msgid "public key not found"
+msgstr "hittade inte publik nyckel"
+
+#: util/errors.c:65
+msgid "unknown cipher algorithm"
+msgstr "ok�nd chifferalgoritm"
+
+#: util/errors.c:66
+msgid "can't open the keyring"
+msgstr "kan inte �ppna nyckelringen"
+
+#: util/errors.c:67
+msgid "invalid packet"
+msgstr "felaktigt paket"
+
+#: util/errors.c:68
+msgid "invalid armor"
+msgstr "felaktigt skal"
+
+#: util/errors.c:69
+msgid "no such user id"
+msgstr "ok�nd anv�ndaridentitet"
+
+#: util/errors.c:70
+msgid "secret key not available"
+msgstr "den hemliga nyckeln �r inte tillg�nglig"
+
+#: util/errors.c:71
+msgid "wrong secret key used"
+msgstr "fel hemlig nyckel har anv�nts"
+
+#: util/errors.c:72
+msgid "not supported"
+msgstr "ej st�dd"
+
+#: util/errors.c:73
+msgid "bad key"
+msgstr "felaktig nyckel"
+
+#: util/errors.c:74
+msgid "file read error"
+msgstr "fel vid l�sning av fil"
+
+#: util/errors.c:75
+msgid "file write error"
+msgstr "fel vid skrivning av fil"
+
+#: util/errors.c:76
+msgid "unknown compress algorithm"
+msgstr "ok�nd komprimeringsalgoritm"
+
+#: util/errors.c:77
+msgid "file open error"
+msgstr "fel vid �ppnande av fil"
+
+#: util/errors.c:78
+msgid "file create error"
+msgstr "fel vid skapande av fil"
+
+#: util/errors.c:79
+msgid "invalid passphrase"
+msgstr "felaktig l�senordsfras"
+
+#: util/errors.c:80
+msgid "unimplemented pubkey algorithm"
+msgstr "algoritmen f�r publik nyckel �r ej implementerad"
+
+#: util/errors.c:81
+msgid "unimplemented cipher algorithm"
+msgstr "chifferalgorimten �r ej implementerad"
+
+#: util/errors.c:82
+msgid "unknown signature class"
+msgstr "ok�nd signaturklass"
+
+#: util/errors.c:83
+msgid "trust database error"
+msgstr "fel i tillitsdatabasen"
+
+# MPI st�r f�r Multiple Precision Integer (tror jag)
+#: util/errors.c:84
+msgid "bad MPI"
+msgstr "felaktig MPI"
+
+#: util/errors.c:85
+msgid "resource limit"
+msgstr "resursbegr�nsning"
+
+#: util/errors.c:86
+msgid "invalid keyring"
+msgstr "felaktig nyckelring"
+
+#: util/errors.c:87
+msgid "bad certificate"
+msgstr "felaktigt certifikat"
+
+#: util/errors.c:88
+msgid "malformed user id"
+msgstr "felformaterad anv�ndaridentitet"
+
+#: util/errors.c:89
+msgid "file close error"
+msgstr "fel vid st�ngning av fil"
+
+#: util/errors.c:90
+msgid "file rename error"
+msgstr "fel vid namnbyte av fil"
+
+#: util/errors.c:91
+msgid "file delete error"
+msgstr "fel vid borttagande av fil"
+
+#: util/errors.c:92
+msgid "unexpected data"
+msgstr "ov�ntad data"
+
+#: util/errors.c:93
+msgid "timestamp conflict"
+msgstr "konflikt mellan tidsst�mplar"
+
+#: util/errors.c:94
+msgid "unusable pubkey algorithm"
+msgstr "oanv�ndbar algoritm f�r publika nycklar"
+
+#: util/errors.c:95
+msgid "file exists"
+msgstr "filen finns"
+
+#: util/errors.c:96
+msgid "weak key"
+msgstr "svag nyckel"
+
+#: util/errors.c:97
+msgid "invalid argument"
+msgstr "felaktigt argument"
+
+#: util/errors.c:98
+msgid "bad URI"
+msgstr "felaktig URI"
+
+#: util/errors.c:99
+msgid "unsupported URI"
+msgstr "ej st�dd URI"
+
+#: util/errors.c:100
+msgid "network error"
+msgstr "n�tverksfel"
+
+#: util/errors.c:102
+msgid "not encrypted"
+msgstr "ej krypterad"
+
+#: util/errors.c:103
+msgid "not processed"
+msgstr "inte behandlade"
+
+#: util/logger.c:224
+#, c-format
+msgid "... this is a bug (%s:%d:%s)\n"
+msgstr "... detta �r en bugg (%s:%d:%s)\n"
+
+#: util/logger.c:230
+#, c-format
+msgid "you found a bug ... (%s:%d)\n"
+msgstr "du har hittat en bugg ... (%s:%d)\\n\n"
+
+#: cipher/random.c:311 g10/import.c:127 g10/keygen.c:1150
+#, c-format
+msgid "can't open `%s': %s\n"
+msgstr "kan inte �ppna \"%s\": %s\n"
+
+#: cipher/random.c:315
+#, fuzzy, c-format
+msgid "can't stat `%s': %s\n"
+msgstr "kan inte �ppna \"%s\": %s\n"
+
+#: cipher/random.c:320
+#, c-format
+msgid "`%s' is not a regular file - ignored\n"
+msgstr ""
+
+#: cipher/random.c:325
+msgid "note: random_seed file is empty\n"
+msgstr ""
+
+#: cipher/random.c:331
+msgid "warning: invalid size of random_seed file - not used\n"
+msgstr ""
+
+#: cipher/random.c:339
+#, fuzzy, c-format
+msgid "can't read `%s': %s\n"
+msgstr "kan inte �ppna \"%s\": %s\n"
+
+#: cipher/random.c:377
+msgid "note: random_seed file not updated\n"
+msgstr ""
+
+#: cipher/random.c:397
+#, fuzzy, c-format
+msgid "can't create `%s': %s\n"
+msgstr "kan inte skapa %s: %s\n"
+
+#: cipher/random.c:404
+#, fuzzy, c-format
+msgid "can't write `%s': %s\n"
+msgstr "kan inte �ppna \"%s\": %s\n"
+
+#: cipher/random.c:407
+#, fuzzy, c-format
+msgid "can't close `%s': %s\n"
+msgstr "kan inte �ppna \"%s\": %s\n"
+
+#: cipher/random.c:418
+#, c-format
+msgid "too many random bits requested; the limit is %d\n"
+msgstr ""
+
+#: cipher/random.c:647
+msgid "WARNING: using insecure random number generator!!\n"
+msgstr "VARNING: anv�nder en os�ker slumptalsgenerator!!\n"
+
+#: cipher/random.c:648
+msgid ""
+"The random number generator is only a kludge to let\n"
+"it run - it is in no way a strong RNG!\n"
+"\n"
+"DON'T USE ANY DATA GENERATED BY THIS PROGRAM!!\n"
+"\n"
+msgstr ""
+"Slumptalsgeneratorn �r bara ett lappverk f�r att\n"
+"f� den att fungera - den �r inte p� n�got s�tt en\n"
+"stark slumptalsgenerator!\n"
+"\n"
+"ANV�ND INGEN DATA GENERERAD AV DETTA PROGRAM!!\n"
+"\n"
+
+#: cipher/rndlinux.c:141
+#, c-format
+msgid ""
+"\n"
+"Not enough random bytes available. Please do some other work to give\n"
+"the OS a chance to collect more entropy! (Need %d more bytes)\n"
+msgstr ""
+"\n"
+"Otillr�cklig m�ngd slumpdata tillg�ngliga. Jobba med andra saker\n"
+"en stund f�r att ge operativsystemet en chans att samla mer entropi!\n"
+"(Beh�ver %d fler byte)\n"
+
+#: g10/g10.c:195
+msgid ""
+"@Commands:\n"
+" "
+msgstr ""
+"@Kommandon:\n"
+" "
+
+#: g10/g10.c:197
+msgid "|[file]|make a signature"
+msgstr "|[fil]|skapa en signatur"
+
+#: g10/g10.c:198
+msgid "|[file]|make a clear text signature"
+msgstr "|[fil]|skapa en klartext-signatur"
+
+#: g10/g10.c:199
+msgid "make a detached signature"
+msgstr "skapa en signatur i en separat fil"
+
+#: g10/g10.c:200
+msgid "encrypt data"
+msgstr "kryptera data"
+
+#: g10/g10.c:201
+msgid "encryption only with symmetric cipher"
+msgstr "endast kryptering med symmetriskt chiffer"
+
+#: g10/g10.c:202
+msgid "store only"
+msgstr "endast lagring"
+
+#: g10/g10.c:203
+msgid "decrypt data (default)"
+msgstr "dekryptera data (normall�ge)"
+
+#: g10/g10.c:204
+msgid "verify a signature"
+msgstr "verifiera en signatur"
+
+#: g10/g10.c:206
+msgid "list keys"
+msgstr "r�kna upp nycklar"
+
+#: g10/g10.c:208
+msgid "list keys and signatures"
+msgstr "r�kna upp nycklar och signaturer"
+
+#: g10/g10.c:209
+msgid "check key signatures"
+msgstr "verifiera nyckelsignaturer"
+
+#: g10/g10.c:210
+msgid "list keys and fingerprints"
+msgstr "r�kna upp nycklar och fingeravtryck"
+
+#: g10/g10.c:211
+msgid "list secret keys"
+msgstr "r�kna upp hemliga nycklar"
+
+#: g10/g10.c:212
+msgid "generate a new key pair"
+msgstr "generera ett nytt nyckelpar"
+
+#: g10/g10.c:213
+msgid "remove key from the public keyring"
+msgstr "ta bort en nyckel fr�n den publika nyckelringen"
+
+#: g10/g10.c:215
+msgid "remove key from the secret keyring"
+msgstr "ta bort en nyckel fr�n den hemliga nyckelringen"
+
+#: g10/g10.c:216
+msgid "sign a key"
+msgstr "signera en nyckel"
+
+#: g10/g10.c:217
+msgid "sign a key locally"
+msgstr "signera en nyckel lokalt"
+
+#: g10/g10.c:218
+msgid "sign or edit a key"
+msgstr "signera eller redigera en nyckel"
+
+#: g10/g10.c:219
+msgid "generate a revocation certificate"
+msgstr "generera ett �terkallelesecertifikat"
+
+#: g10/g10.c:220
+msgid "export keys"
+msgstr "exportera nycklar"
+
+#: g10/g10.c:221
+msgid "export keys to a key server"
+msgstr "exportera nycklar till en nyckelserver"
+
+#: g10/g10.c:222
+msgid "import keys from a key server"
+msgstr "importera nycklar fr�n en nyckelserver"
+
+#: g10/g10.c:226
+msgid "import/merge keys"
+msgstr "importera/sl� ihop nycklar"
+
+#: g10/g10.c:228
+msgid "list only the sequence of packets"
+msgstr "skriv endast ut paketsekvensen"
+
+#: g10/g10.c:230
+msgid "export the ownertrust values"
+msgstr "exportera de v�rden som representerar �gartillit"
+
+#: g10/g10.c:232
+msgid "import ownertrust values"
+msgstr "importera v�rden som representerar �gartillit"
+
+#: g10/g10.c:234
+msgid "update the trust database"
+msgstr "uppdatera tillitsdatabasen"
+
+#: g10/g10.c:236
+msgid "|[NAMES]|check the trust database"
+msgstr "|[NAMN]|kontrollera tillitsdatabasen"
+
+#: g10/g10.c:237
+msgid "fix a corrupted trust database"
+msgstr "reparera en korrupt tillitsdatabas"
+
+#: g10/g10.c:238
+msgid "De-Armor a file or stdin"
+msgstr "Skala av en fil eller standard in"
+
+#: g10/g10.c:240
+msgid "En-Armor a file or stdin"
+msgstr "Skapa ett skal f�r en fil eller standard in"
+
+#: g10/g10.c:242
+msgid "|algo [files]|print message digests"
+msgstr "|algo [filer]|skriv ut kontrollsummor"
+
+#: g10/g10.c:246
+msgid ""
+"@\n"
+"Options:\n"
+" "
+msgstr ""
+"@\n"
+"Flaggor:\n"
+" "
+
+#: g10/g10.c:248
+msgid "create ascii armored output"
+msgstr "skapa utdata med ett ascii-skal"
+
+#: g10/g10.c:250
+msgid "|NAME|encrypt for NAME"
+msgstr "|NAMN|kryptera f�r NAMN"
+
+#: g10/g10.c:253
+msgid "|NAME|use NAME as default recipient"
+msgstr "|NAMN|anv�nd NAMN som standardv�rdet f�r mottagare"
+
+#: g10/g10.c:255
+msgid "use the default key as default recipient"
+msgstr "anv�nd standardnyckeln som standardmottagare"
+
+#: g10/g10.c:259
+msgid "use this user-id to sign or decrypt"
+msgstr "anv�nd denna anv�ndaridentitet f�r att signera eller dekryptera"
+
+#: g10/g10.c:260
+msgid "|N|set compress level N (0 disables)"
+msgstr "|N|s�tt kompressionsniv�n till N (0 f�r att sl� av kompression)"
+
+#: g10/g10.c:262
+msgid "use canonical text mode"
+msgstr "anv�nd \"ursprunglig text\"-l�get"
+
+#: g10/g10.c:263
+msgid "use as output file"
+msgstr "anv�nd som fil f�r utdata"
+
+#: g10/g10.c:264
+msgid "verbose"
+msgstr "utf�rlig"
+
+#: g10/g10.c:265
+msgid "be somewhat more quiet"
+msgstr "var n�got tystare"
+
+#: g10/g10.c:266
+msgid "don't use the terminal at all"
+msgstr "anv�nd inte terminalen alls"
+
+#: g10/g10.c:267
+msgid "force v3 signatures"
+msgstr "anv�nd v3-signaturer"
+
+#: g10/g10.c:268
+msgid "always use a MDC for encryption"
+msgstr "anv�nd alltid en MDC f�r kryptering"
+
+#: g10/g10.c:269
+msgid "do not make any changes"
+msgstr "g�r inga �ndringar"
+
+#. { oInteractive, "interactive", 0, N_("prompt before overwriting") },
+#: g10/g10.c:271
+msgid "batch mode: never ask"
+msgstr "batch-l�ge: fr�ga aldrig"
+
+#: g10/g10.c:272
+msgid "assume yes on most questions"
+msgstr "anta att svaret �r ja p� de flesta fr�gor"
+
+#: g10/g10.c:273
+msgid "assume no on most questions"
+msgstr "anta att svaret �r nej p� de flesta fr�gor"
+
+#: g10/g10.c:274
+msgid "add this keyring to the list of keyrings"
+msgstr "l�gg till denna nyckelring till listan av nyckelringar"
+
+#: g10/g10.c:275
+msgid "add this secret keyring to the list"
+msgstr "l�gg till denna hemliga nyckelring till listan"
+
+#: g10/g10.c:276
+msgid "|NAME|use NAME as default secret key"
+msgstr "|NAMN|anv�nd NAMN som f�rvald hemlig nyckel"
+
+#: g10/g10.c:277
+msgid "|HOST|use this keyserver to lookup keys"
+msgstr "|V�RD|anv�nd denna nyckelserver f�r att sl� upp nycklar"
+
+#: g10/g10.c:278
+msgid "|NAME|set terminal charset to NAME"
+msgstr "|NAMN|s�tt teckentabellen f�r terminalen till NAMN"
+
+#: g10/g10.c:279
+msgid "read options from file"
+msgstr "l�s flaggor fr�n fil"
+
+#: g10/g10.c:283
+msgid "|FD|write status info to this FD"
+msgstr "|FD|skriv statusinformation till denna FD"
+
+#: g10/g10.c:288
+msgid "|FILE|load extension module FILE"
+msgstr "|FIL|ladda till�ggsmodul FIL"
+
+#: g10/g10.c:289
+msgid "emulate the mode described in RFC1991"
+msgstr "imitera l�get som beskrivs i RFC1991"
+
+#: g10/g10.c:290
+msgid "set all packet, cipher and digest options to OpenPGP behavior"
+msgstr "st�ll om alla flaggor s� att gpg f�ljer OpenPGP-standarden"
+
+#: g10/g10.c:291
+msgid "|N|use passphrase mode N"
+msgstr "|N|anv�nd l�senordsl�get N"
+
+#: g10/g10.c:293
+msgid "|NAME|use message digest algorithm NAME for passphrases"
+msgstr "|NAMN|anv�nd kontrollsummealgoritmen NAMN f�r l�senordsfraser"
+
+#: g10/g10.c:295
+msgid "|NAME|use cipher algorithm NAME for passphrases"
+msgstr "|NAMN|anv�nd chifferalgoritmen NAMN f�r l�senordsfraser"
+
+#: g10/g10.c:296
+msgid "|NAME|use cipher algorithm NAME"
+msgstr "|NAMN|anv�nd chifferalgoritmen NAMN"
+
+#: g10/g10.c:297
+msgid "|NAME|use message digest algorithm NAME"
+msgstr "|NAMN|anv�nd kontrollsummealgoritmen NAMN"
+
+#: g10/g10.c:298
+msgid "|N|use compress algorithm N"
+msgstr "|N|anv�nd komprimeringsalgoritmen N"
+
+#: g10/g10.c:299
+msgid "throw keyid field of encrypted packets"
+msgstr "sl�ng bort nyckelidentitetsf�ltet fr�n krypterade paket"
+
+#: g10/g10.c:300
+msgid "|NAME=VALUE|use this notation data"
+msgstr "|NAMN=V�RDE|anv�nd detta s�tt f�r att beskriva data"
+
+#: g10/g10.c:303
+msgid ""
+"@\n"
+"(See the man page for a complete listing of all commands and options)\n"
+msgstr ""
+
+#: g10/g10.c:306
+msgid ""
+"@\n"
+"Examples:\n"
+"\n"
+" -se -r Bob [file] sign and encrypt for user Bob\n"
+" --clearsign [file] make a clear text signature\n"
+" --detach-sign [file] make a detached signature\n"
+" --list-keys [names] show keys\n"
+" --fingerprint [names] show fingerprints\n"
+msgstr ""
+"@\n"
+"Exempel:\n"
+"\n"
+"-se -r Bo [fil] signera och kryptera f�r anv�ndaren Bo\n"
+"--clearsign [fil] skapa en klartextsignatur\n"
+"--detach-sign [fil] skapa en signatur i en separat fil\n"
+"--list-keys [namn] visa nycklar\n"
+"--fingerprint [namn] visa fingeravtryck\n"
+
+#: g10/g10.c:399
+msgid "Please report bugs to <[email protected]>.\n"
+msgstr ""
+"Rapportera g�rna fel till <[email protected]>.\n"
+"Rapportera g�rna fel eller synpunkter p� �vers�ttningen till <[email protected]>.\n"
+
+#: g10/g10.c:403
+msgid "Usage: gpg [options] [files] (-h for help)"
+msgstr "Anv�ndning: gpg [flaggor] [filer] (-h f�r hj�lp)"
+
+#: g10/g10.c:406
+msgid ""
+"Syntax: gpg [options] [files]\n"
+"sign, check, encrypt or decrypt\n"
+"default operation depends on the input data\n"
+msgstr ""
+"Syntax: gpg [flaggor] [filer]\n"
+"signera, kontrollera, kryptera eller dekryptera\n"
+"vilken operation som utf�rs beror p� programmets indata\n"
+
+#: g10/g10.c:413
+msgid ""
+"\n"
+"Supported algorithms:\n"
+msgstr ""
+"\n"
+"St�dda algoritmer:\n"
+
+#: g10/g10.c:492
+msgid "usage: gpg [options] "
+msgstr "anv�ndning: gpg [flaggor] "
+
+#: g10/g10.c:545
+msgid "conflicting commands\n"
+msgstr "motstridiga kommandon\n"
+
+#: g10/g10.c:687
+#, c-format
+msgid "NOTE: no default option file `%s'\n"
+msgstr "NOTERA: inst�llningsfilen \"%s\" saknas\n"
+
+#: g10/g10.c:691
+#, c-format
+msgid "option file `%s': %s\n"
+msgstr "inst�llningsfil \"%s\": %s\n"
+
+#: g10/g10.c:698
+#, c-format
+msgid "reading options from `%s'\n"
+msgstr "l�ser flaggor fr�n \"%s\"\n"
+
+#: g10/g10.c:885
+#, c-format
+msgid "%s is not a valid character set\n"
+msgstr "%s �r ingen giltig teckentabell\n"
+
+#: g10/g10.c:945 g10/g10.c:954
+#, c-format
+msgid "NOTE: %s is not for normal use!\n"
+msgstr "NOTERA: %s �r inte f�r normal anv�ndning!\n"
+
+#: g10/g10.c:947
+#, c-format
+msgid "%s not allowed with %s!\n"
+msgstr "%s �r inte till�ten tillsammans med %s!\n"
+
+#: g10/g10.c:950
+#, c-format
+msgid "%s makes no sense with %s!\n"
+msgstr "det �r ingen po�ng att anv�nda %s tillsammans med %s!\n"
+
+#: g10/g10.c:969 g10/g10.c:981
+msgid "selected cipher algorithm is invalid\n"
+msgstr "den valda chifferalgoritmen �r ogiltig\n"
+
+#: g10/g10.c:975 g10/g10.c:987
+msgid "selected digest algorithm is invalid\n"
+msgstr "den valda kontrollsummealgoritmen �r ogiltig\n"
+
+#: g10/g10.c:991
+msgid "the given policy URL is invalid\n"
+msgstr "angiven URL �r ogiltig\n"
+
+#: g10/g10.c:994
+#, c-format
+msgid "compress algorithm must be in range %d..%d\n"
+msgstr "kompressionsalgoritmen m�ste vara i intervallet %d..%d\n"
+
+# jag bed�mer att detta och de f�ljande �r interna felmeddelanden
+# som det �r i princip om�jligt att �vers�tta p� p� ett bra s�tt.
+# Sannolikheten f�r att anv�ndaren drabbas av felmeddelandet
+# �r �nd� litet. Eventuellt borde meddelandena inte alls
+# �vers�ttas f�r att g�ra eventuell fels�kning l�ttare
+# f�r internationella fels�kare
+#: g10/g10.c:996
+msgid "completes-needed must be greater than 0\n"
+msgstr "variabeln \"completes-needed\" m�ste ha ett v�rde som �r st�rre �n 0\n"
+
+#: g10/g10.c:998
+msgid "marginals-needed must be greater than 1\n"
+msgstr "variabeln \"marginals-needed\" m�ste vara st�rre �n 1\n"
+
+#: g10/g10.c:1000
+msgid "max-cert-depth must be in range 1 to 255\n"
+msgstr "variabeln \"max-cert-depth\" m�ste ha ett v�rde mellan 1 och 255\n"
+
+#: g10/g10.c:1003
+msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
+msgstr "NOTERA: enkelt S2K-l�ge (0) rekommenderas inte\n"
+
+#: g10/g10.c:1007
+msgid "invalid S2K mode; must be 0, 1 or 3\n"
+msgstr "ogiltigt S2K-l�ge; m�ste vara 0, 1 eller 3\n"
+
+#: g10/g10.c:1092
+#, c-format
+msgid "failed to initialize the TrustDB: %s\n"
+msgstr "misslyckades med att initialisera tillitsdatabasen: %s\n"
+
+#: g10/g10.c:1098
+msgid "--store [filename]"
+msgstr "--store [filnamn]"
+
+#: g10/g10.c:1105
+msgid "--symmetric [filename]"
+msgstr "--symmetric [filnamn]"
+
+#: g10/g10.c:1113
+msgid "--encrypt [filename]"
+msgstr "--encrypt [filnamn]"
+
+#: g10/g10.c:1126
+msgid "--sign [filename]"
+msgstr "--sign [filnamn]"
+
+#: g10/g10.c:1139
+msgid "--sign --encrypt [filename]"
+msgstr "--sign --encrypt [filnamn]"
+
+#: g10/g10.c:1153
+msgid "--clearsign [filename]"
+msgstr "--clearsign [filnamn]"
+
+#: g10/g10.c:1170
+msgid "--decrypt [filename]"
+msgstr "--decrypt [filnamn]"
+
+#: g10/g10.c:1178
+msgid "--sign-key user-id"
+msgstr "--sign-key anv�ndaridentitet"
+
+#: g10/g10.c:1186
+msgid "--lsign-key user-id"
+msgstr "--lsign-key anv�ndaridentitet"
+
+#: g10/g10.c:1194
+msgid "--edit-key user-id [commands]"
+msgstr "--edit-key anv�ndaridentitet [kommandon]"
+
+#: g10/g10.c:1210
+msgid "--delete-secret-key user-id"
+msgstr "--delete-secret-key anv�ndaridentitet"
+
+#: g10/g10.c:1213
+msgid "--delete-key user-id"
+msgstr "--delete-key anv�ndaridentitet"
+
+# Filnamn b�de med och utan fnuttar finns. lite ologiskt. Vill n�gon
+# fixa en patch?
+#: g10/encode.c:260 g10/g10.c:1250 g10/sign.c:373
+#, c-format
+msgid "can't open %s: %s\n"
+msgstr "kan inte �ppna %s: %s\n"
+
+#: g10/g10.c:1265
+msgid "-k[v][v][v][c] [user-id] [keyring]"
+msgstr "-k[v][v][v][c] [anv�ndaridentitet] [nyckelring]"
+
+#: g10/g10.c:1331
+#, c-format
+msgid "dearmoring failed: %s\n"
+msgstr "misslyckades med att ta bort skalet: %s\n"
+
+#: g10/g10.c:1339
+#, c-format
+msgid "enarmoring failed: %s\n"
+msgstr "misslyckades med att skapa skal: %s\n"
+
+#: g10/g10.c:1407
+#, c-format
+msgid "invalid hash algorithm `%s'\n"
+msgstr "felaktig hash-algoritm \"%s\"\n"
+
+#: g10/g10.c:1488
+msgid "[filename]"
+msgstr "[filnamn]"
+
+#: g10/g10.c:1492
+msgid "Go ahead and type your message ...\n"
+msgstr "Skriv ditt meddelande h�r ...\n"
+
+# se f�rra kommentaren
+#: g10/decrypt.c:59 g10/g10.c:1495 g10/verify.c:68 g10/verify.c:113
+#, c-format
+msgid "can't open `%s'\n"
+msgstr "kan inte �ppna \"%s\"\n"
+
+#: g10/g10.c:1665
+msgid ""
+"the first character of a notation name must be a letter or an underscore\n"
+msgstr ""
+"det f�rsta tecknet i ett notationsnamn m�ste vara en bokstav eller\n"
+"ett understrykningstecken (_)\n"
+
+#: g10/g10.c:1671
+msgid ""
+"a notation name must have only letters, digits, dots or underscores and end "
+"with an '='\n"
+msgstr ""
+"ett notationsnamn kan bara inneh�lla bokst�ver, siffror, punkter eller\n"
+"understrykningstecken och sluta med ett likhetstecken\n"
+
+#: g10/g10.c:1677
+msgid "dots in a notation name must be surrounded by other characters\n"
+msgstr "punkter i ett notationsnamn m�ste vara omgivna av andra tecken\n"
+
+#: g10/g10.c:1685
+msgid "a notation value must not use any control characters\n"
+msgstr "ett notationsv�rde f�r inte ineh�lla n�gra kontrolltecken\n"
+
+#: g10/armor.c:302
+#, c-format
+msgid "armor: %s\n"
+msgstr "skal: %s\n"
+
+#: g10/armor.c:331
+msgid "invalid armor header: "
+msgstr "felaktig rubrikrad i skalet: "
+
+#: g10/armor.c:338
+msgid "armor header: "
+msgstr "rad i skalet: "
+
+#: g10/armor.c:349
+msgid "invalid clearsig header\n"
+msgstr "felaktig rubrikrad i klartextsignatur\n"
+
+#: g10/armor.c:401
+msgid "nested clear text signatures\n"
+msgstr "flera klartextsignaturer g�r in i varandra\n"
+
+#: g10/armor.c:525
+msgid "invalid dash escaped line: "
+msgstr "felaktig bindestreck-kodad rad: "
+
+#: g10/armor.c:537
+msgid "unexpected armor:"
+msgstr "ov�ntat skal:"
+
+#: g10/armor.c:654
+#, c-format
+msgid "invalid radix64 character %02x skipped\n"
+msgstr "ogiltigt radix64-tecken %02x hoppades �ver\n"
+
+#: g10/armor.c:697
+msgid "premature eof (no CRC)\n"
+msgstr "f�r tidigt filslut (ingen CRC-summa)\n"
+
+#: g10/armor.c:731
+msgid "premature eof (in CRC)\n"
+msgstr "f�r tidigt filslut (i CRC-summan)\n"
+
+#: g10/armor.c:735
+msgid "malformed CRC\n"
+msgstr "felformaterad CRC-summa\n"
+
+#: g10/armor.c:739
+#, c-format
+msgid "CRC error; %06lx - %06lx\n"
+msgstr "CRC-fel; %06lx - %06lx\n"
+
+#: g10/armor.c:756
+msgid "premature eof (in Trailer)\n"
+msgstr "f�r tidigt filslut (i den avslutande raden)\n"
+
+#: g10/armor.c:760
+msgid "error in trailer line\n"
+msgstr "fel i avslutande rad\n"
+
+#: g10/armor.c:912
+msgid "For info see http://www.gnupg.org"
+msgstr ""
+
+#: g10/armor.c:1033
+msgid "no valid OpenPGP data found.\n"
+msgstr "hittade ingen giltig OpenPGP-data.\n"
+
+#: g10/armor.c:1038
+#, c-format
+msgid "invalid armor: line longer than %d characters\n"
+msgstr "felaktigt skal: raden �r l�ngre �n %d tecken\n"
+
+#: g10/armor.c:1042
+msgid ""
+"quoted printable character in armor - probably a buggy MTA has been used\n"
+msgstr ""
+"tecken kodade enligt \"quoted printable\"-standarden funna i skalet - detta\n"
+"beror sannolikt p� att en felaktig epostserver eller epostklient har "
+"anv�nts\n"
+
+#. Translators: this shoud fit into 24 bytes to that the fingerprint
+#. * data is properly aligned with the user ID
+#: g10/pkclist.c:53
+msgid " Fingerprint:"
+msgstr " Fingeravtryck:"
+
+#: g10/pkclist.c:80
+msgid "Fingerprint:"
+msgstr "Fingeravtryck:"
+
+#: g10/pkclist.c:116
+msgid "No reason specified"
+msgstr ""
+
+#: g10/pkclist.c:118
+#, fuzzy
+msgid "Key is superseeded"
+msgstr "Nyckeln �r skyddad.\n"
+
+#: g10/pkclist.c:120
+#, fuzzy
+msgid "Key has been compromised"
+msgstr "Denna nyckel har deaktiverats"
+
+#: g10/pkclist.c:122
+msgid "Key is no longer used"
+msgstr ""
+
+#: g10/pkclist.c:124
+msgid "User ID is no longer valid"
+msgstr ""
+
+#: g10/pkclist.c:128
+msgid "Reason for revocation: "
+msgstr ""
+
+#: g10/pkclist.c:145
+msgid "Revocation comment: "
+msgstr ""
+
+# v�rdena st�r f�r s = show me more info, m = back to menu, q = quit
+# hur skall s�dant internationaliseras p� ett bra s�tt?
+#. a string with valid answers
+#: g10/pkclist.c:303
+msgid "sSmMqQ"
+msgstr "sSmMqQ"
+
+#: g10/pkclist.c:307
+#, c-format
+msgid ""
+"No trust value assigned to %lu:\n"
+"%4u%c/%08lX %s \""
+msgstr ""
+"%lu har inte tilldelats n�got tillitsv�rde:\n"
+"%4u%c/%08lX %s \""
+
+#: g10/pkclist.c:319
+msgid ""
+"Please decide how far you trust this user to correctly\n"
+"verify other users' keys (by looking at passports,\n"
+"checking fingerprints from different sources...)?\n"
+"\n"
+" 1 = Don't know\n"
+" 2 = I do NOT trust\n"
+" 3 = I trust marginally\n"
+" 4 = I trust fully\n"
+" s = please show me more information\n"
+msgstr ""
+"Var god best�m hur mycket du litar p� denna anv�ndare\n"
+"n�r det g�ller att korrekt verifiera andra anv�ndares nycklar\n"
+"(genom att unders�ka pass, unders�ka fingeravtryck fr�n olika\n"
+"k�llor...)?\n"
+"\n"
+" 1 = Vet ej\n"
+" 2 = Jag litar INTE p� denna anv�ndare\n"
+" 3 = Jag litar marginellt p� denna anv�ndare\n"
+" 4 = Jag litar fullst�ndigt p� denna anv�ndare\n"
+" s = visa mig mer information\n"
+
+#: g10/pkclist.c:328
+msgid " m = back to the main menu\n"
+msgstr " m = g� tillbaka till huvudmenyn\n"
+
+# q skall bytas ut mot a s�fort det kollas upp s� att q ocks� funkar.
+#: g10/pkclist.c:330
+msgid " q = quit\n"
+msgstr " q = avsluta\n"
+
+#: g10/pkclist.c:336
+msgid "Your decision? "
+msgstr "Vad v�ljer du? "
+
+#: g10/pkclist.c:358
+msgid "Certificates leading to an ultimately trusted key:\n"
+msgstr "Certifikat som leder till en p�litlig nyckel:\n"
+
+#: g10/pkclist.c:429
+msgid ""
+"Could not find a valid trust path to the key. Let's see whether we\n"
+"can assign some missing owner trust values.\n"
+"\n"
+msgstr ""
+"Kunde inte hitta n�gon giltig tillitsv�g till nyckeln. L�t oss se om vi kan\n"
+"tilldela n�gra av de �gartillitsv�rden som saknas\n"
+"\n"
+
+#: g10/pkclist.c:435
+msgid ""
+"No path leading to one of our keys found.\n"
+"\n"
+msgstr ""
+"En av de funna nycklarna saknar tillitsv�g.\n"
+"\n"
+
+#: g10/pkclist.c:437
+msgid ""
+"No certificates with undefined trust found.\n"
+"\n"
+msgstr ""
+"Hittade inga certifikat med odefinierat tillitv�rde\n"
+"\n"
+
+#: g10/pkclist.c:439
+msgid ""
+"No trust values changed.\n"
+"\n"
+msgstr ""
+"Inga tillitsv�rden �ndrade.\n"
+"\n"
+
+#: g10/pkclist.c:457
+#, c-format
+msgid "key %08lX: key has been revoked!\n"
+msgstr "nyckeln %08lX: nyckeln har �terkallats!\n"
+
+#: g10/pkclist.c:464 g10/pkclist.c:476 g10/pkclist.c:598
+msgid "Use this key anyway? "
+msgstr "Vill du anv�nda nyckeln trots det? "
+
+#: g10/pkclist.c:469
+#, c-format
+msgid "key %08lX: subkey has been revoked!\n"
+msgstr "nyckeln %08lX: en undernyckel har �terkallats!\n"
+
+#: g10/pkclist.c:512
+#, c-format
+msgid "%08lX: key has expired\n"
+msgstr "%08lX: nyckeln har blivit f�r gammal\n"
+
+#: g10/pkclist.c:518
+#, c-format
+msgid "%08lX: no info to calculate a trust probability\n"
+msgstr "%08lX: det finns ingen information f�r att ber�kna ett tillitv�rde\n"
+
+#: g10/pkclist.c:533
+#, c-format
+msgid "%08lX: We do NOT trust this key\n"
+msgstr "%08lX: Vi litar INTE p� denna nyckel\n"
+
+#: g10/pkclist.c:539
+#, c-format
+msgid ""
+"%08lX: It is not sure that this key really belongs to the owner\n"
+"but it is accepted anyway\n"
+msgstr ""
+"%08lX: Det �r inte s�kert att denna nyckel verkligen tillh�r �garen\n"
+"men den accepteras trots detta\n"
+
+#: g10/pkclist.c:545
+msgid "This key probably belongs to the owner\n"
+msgstr "Denna nyckel tillh�r sannolikt �garen\n"
+
+#: g10/pkclist.c:550
+msgid "This key belongs to us\n"
+msgstr "Denna nyckel tillh�r oss\n"
+
+#: g10/pkclist.c:593
+msgid ""
+"It is NOT certain that the key belongs to its owner.\n"
+"If you *really* know what you are doing, you may answer\n"
+"the next question with yes\n"
+"\n"
+msgstr ""
+"Det �r INTE s�kert att nyckeln tillh�r sin �gare. Om du\n"
+"*verkligen* vet vad du g�r, kan du svara ja p� n�sta fr�ga\n"
+"\n"
+
+#: g10/pkclist.c:607 g10/pkclist.c:630
+msgid "WARNING: Using untrusted key!\n"
+msgstr "VARNING: Anv�nder en nyckel som inte �r betrodd!\n"
+
+#: g10/pkclist.c:651
+msgid "WARNING: This key has been revoked by its owner!\n"
+msgstr "VARNING: Denna nyckel har �terkallats av sin �gare!\n"
+
+#: g10/pkclist.c:652
+msgid " This could mean that the signature is forgery.\n"
+msgstr " Detta kan betyda att signaturen �r en f�rfalskning.\n"
+
+#: g10/pkclist.c:657
+msgid "WARNING: This subkey has been revoked by its owner!\n"
+msgstr "VARNING: Denna undernyckel har �terkallats av sin �gare!\n"
+
+#: g10/pkclist.c:679
+msgid "Note: This key has expired!\n"
+msgstr "Notera: Denna nyckel har g�tt ut!\n"
+
+#: g10/pkclist.c:687
+msgid "WARNING: This key is not certified with a trusted signature!\n"
+msgstr "VARNING: Denna nyckel �r inte certifierad med en p�litlig signatur!\n"
+
+#: g10/pkclist.c:689
+msgid ""
+" There is no indication that the signature belongs to the owner.\n"
+msgstr ""
+" Det finns inget som indikerar att signaturen tillh�r �garen.\n"
+
+#: g10/pkclist.c:706
+msgid "WARNING: We do NOT trust this key!\n"
+msgstr "VARNING: Vi litar INTE p� denna nyckel!\n"
+
+#: g10/pkclist.c:707
+msgid " The signature is probably a FORGERY.\n"
+msgstr " Signaturen �r sannolikt en F�RFALSKNING.\n"
+
+#: g10/pkclist.c:714
+msgid ""
+"WARNING: This key is not certified with sufficiently trusted signatures!\n"
+msgstr ""
+"VARNING: Denna nyckel �r inte certifierad med signaturer med ett\n"
+"tillr�ckligt h�gt tillitsv�rde!\n"
+
+#: g10/pkclist.c:717
+msgid " It is not certain that the signature belongs to the owner.\n"
+msgstr " Det �r inte s�kert att signaturen tillh�r �garen.\n"
+
+#: g10/pkclist.c:819 g10/pkclist.c:841 g10/pkclist.c:967 g10/pkclist.c:1012
+#, c-format
+msgid "%s: skipped: %s\n"
+msgstr "%s: %s �verhoppad\n"
+
+#: g10/pkclist.c:827 g10/pkclist.c:994
+#, c-format
+msgid "%s: skipped: public key already present\n"
+msgstr "%s: hoppade �ver: publik nyckel finns redan\n"
+
+#: g10/pkclist.c:854
+msgid ""
+"You did not specify a user ID. (you may use \"-r\")\n"
+"\n"
+msgstr "Du specificerade ingen anv�ndaridentitet. (du kan anv�nda \"-r\")\n"
+
+#: g10/pkclist.c:864
+msgid "Enter the user ID: "
+msgstr "Ange anv�ndaridentiteten: "
+
+#: g10/pkclist.c:876
+msgid "No such user ID.\n"
+msgstr "Hittade inte anv�ndaridentiteten.\n"
+
+#: g10/pkclist.c:881
+msgid "skipped: public key already set as default recipient\n"
+msgstr ""
+"hoppade �ver: den publika nyckeln �r redan satt som f�rvald mottagare\n"
+
+#: g10/pkclist.c:904
+msgid "Public key is disabled.\n"
+msgstr "Den publika nyckeln �r deaktiverad\n"
+
+#: g10/pkclist.c:911
+msgid "skipped: public key already set with --encrypt-to\n"
+msgstr "hoppade �ver: publik nyckel �r redan angiven med --encrypt-to\n"
+
+#: g10/pkclist.c:942
+#, c-format
+msgid "unknown default recipient `%s'\n"
+msgstr "den f�rvalda mottagaren \"%s\" �r ok�nd\n"
+
+#: g10/pkclist.c:975
+#, c-format
+msgid "%s: error checking key: %s\n"
+msgstr "%s: fel vid kontroll av nyckeln: %s\n"
+
+#: g10/pkclist.c:980
+#, c-format
+msgid "%s: skipped: public key is disabled\n"
+msgstr "%s: hoppade �ver: den publika nyckeln �r deaktiverad\n"
+
+#: g10/pkclist.c:1018
+msgid "no valid addressees\n"
+msgstr "inga giltiga adresser\n"
+
+#: g10/keygen.c:175
+msgid "writing self signature\n"
+msgstr "skriver sj�lvsignatur\n"
+
+#: g10/keygen.c:213
+msgid "writing key binding signature\n"
+msgstr "skriver signatur knuten till nyckeln\n"
+
+#: g10/keygen.c:261 g10/keygen.c:345
+#, fuzzy, c-format
+msgid "keysize invalid; using %u bits\n"
+msgstr "Den efterfr�gade nyckelstorleken �r %u bitar\n"
+
+#: g10/keygen.c:266 g10/keygen.c:350
+#, fuzzy, c-format
+msgid "keysize rounded up to %u bits\n"
+msgstr "avrundade upp�t till %u bitar\n"
+
+#: g10/keygen.c:456
+msgid "Please select what kind of key you want:\n"
+msgstr "V�lj vilken typ av nyckel du vill ha:\n"
+
+#: g10/keygen.c:458
+#, c-format
+msgid " (%d) DSA and ElGamal (default)\n"
+msgstr " (%d) DSA och ElGamal (standardvalet)\n"
+
+#: g10/keygen.c:459
+#, c-format
+msgid " (%d) DSA (sign only)\n"
+msgstr " (%d) DSA (endast signering)\n"
+
+#: g10/keygen.c:461
+#, c-format
+msgid " (%d) ElGamal (encrypt only)\n"
+msgstr " (%d) ElGamal (endast kryptering)\n"
+
+#: g10/keygen.c:462
+#, c-format
+msgid " (%d) ElGamal (sign and encrypt)\n"
+msgstr " (%d) ElGamal (signering och kryptering)\n"
+
+#: g10/keygen.c:465
+msgid "Your selection? "
+msgstr "Vad v�ljer du? "
+
+#: g10/keygen.c:475
+msgid "Do you really want to create a sign and encrypt key? "
+msgstr "Vill du verkligen skapa en nyckel f�r signering och kryptering? "
+
+#: g10/keygen.c:489
+msgid "Invalid selection.\n"
+msgstr "Felaktigt val.\n"
+
+#: g10/keygen.c:501
+#, c-format
+msgid ""
+"About to generate a new %s keypair.\n"
+" minimum keysize is 768 bits\n"
+" default keysize is 1024 bits\n"
+" highest suggested keysize is 2048 bits\n"
+msgstr ""
+"Kommer att generera ett nytt %s nyckelpar.\n"
+" den minimala nyckelstorleken �r 768 bitar\n"
+" den f�rvalda nyckelstorleken �r 1024 bitar\n"
+" den st�rsta f�reslagna nyckelstorleken �r 2048 bitar\n"
+
+#: g10/keygen.c:508
+msgid "What keysize do you want? (1024) "
+msgstr "Vilken nyckelstorlek vill du ha? (1024) "
+
+#: g10/keygen.c:513
+msgid "DSA only allows keysizes from 512 to 1024\n"
+msgstr "DSA till�ter bara nyckelstorlekar fr�n 512 till 1024\n"
+
+#: g10/keygen.c:515
+msgid "keysize too small; 768 is smallest value allowed.\n"
+msgstr "nyckelstorleken �r f�r liten; 768 �r det minst till�tna v�rdet.\n"
+
+#. It is ridiculous and an annoyance to use larger key sizes!
+#. * GnuPG can handle much larger sizes; but it takes an eternity
+#. * to create such a key (but less than the time the Sirius
+#. * Computer Corporation needs to process one of the usual
+#. * complaints) and {de,en}cryption although needs some time.
+#. * So, before you complain about this limitation, I suggest that
+#. * you start a discussion with Marvin about this theme and then
+#. * do whatever you want.
+#: g10/keygen.c:525
+#, c-format
+msgid "keysize too large; %d is largest value allowed.\n"
+msgstr "nyckelstorleken �r f�r stor; %d �r det st�rsta till�tna v�rdet\n"
+
+#: g10/keygen.c:530
+msgid ""
+"Keysizes larger than 2048 are not suggested because\n"
+"computations take REALLY long!\n"
+msgstr ""
+"Nyckelstorlekar st�rre �n 2048 �r inte att rekommendera\n"
+"eftersom ber�kningar tar MYCKET l�ng tid!\n"
+
+#: g10/keygen.c:533
+msgid "Are you sure that you want this keysize? "
+msgstr "�r du s�ker p� att du vill ha denna nyckelstorlek? "
+
+#: g10/keygen.c:534
+msgid ""
+"Okay, but keep in mind that your monitor and keyboard radiation is also very "
+"vulnerable to attacks!\n"
+msgstr ""
+"Ok, men kom ih�g att din bildsk�rm och ditt tangentbord ocks� s�nder\n"
+"avsl�jande str�lning som kan avlyssnas!\n"
+
+#: g10/keygen.c:542
+msgid "Do you really need such a large keysize? "
+msgstr "Beh�ver du verkligen en s� stor nyckelstorlek? "
+
+#: g10/keygen.c:548
+#, c-format
+msgid "Requested keysize is %u bits\n"
+msgstr "Den efterfr�gade nyckelstorleken �r %u bitar\n"
+
+#: g10/keygen.c:551 g10/keygen.c:555
+#, c-format
+msgid "rounded up to %u bits\n"
+msgstr "avrundade upp�t till %u bitar\n"
+
+# borde kolla upp m�jligheterna i k�llkoden att anv�nda v m � ist�llet f�r wmy
+#: g10/keygen.c:603
+msgid ""
+"Please specify how long the key should be valid.\n"
+" 0 = key does not expire\n"
+" <n> = key expires in n days\n"
+" <n>w = key expires in n weeks\n"
+" <n>m = key expires in n months\n"
+" <n>y = key expires in n years\n"
+msgstr ""
+"Specificera hur l�nge nyckeln skall vara giltig.\n"
+" 0 = nyckeln blir aldrig ogiltig\n"
+" <n> = nyckeln blir ogiltig efter n dagar\n"
+" <n>w = nyckeln blir ogiltig efter n veckor\n"
+" <n>m = nyckeln blir ogiltig efter n m�nader\n"
+" <n>y = nyckeln blir ogiltig efter n �r\n"
+
+#: g10/keygen.c:618
+msgid "Key is valid for? (0) "
+msgstr "F�r hur l�ng tid �r nyckeln giltig? (0) "
+
+#: g10/keygen.c:623
+msgid "invalid value\n"
+msgstr "ogiltigt v�rde\n"
+
+#: g10/keygen.c:628
+msgid "Key does not expire at all\n"
+msgstr "Nyckeln g�r aldrig ut\n"
+
+#. print the date when the key expires
+#: g10/keygen.c:634
+#, c-format
+msgid "Key expires at %s\n"
+msgstr "Nyckeln g�r ut vid f�ljande tidpunkt: %s\n"
+
+#: g10/keygen.c:637
+msgid ""
+"Your system can't display dates beyond 2038.\n"
+"However, it will be correctly handled up to 2106.\n"
+msgstr ""
+"Ditt system kan inte visa datum senare �n �r 2038.\n"
+"Datum fram till �r 2106 kommer dock att hanteras korrekt.\n"
+
+#: g10/keygen.c:642
+msgid "Is this correct (y/n)? "
+msgstr "St�mmer detta (j/n)? "
+
+#: g10/keygen.c:685
+msgid ""
+"\n"
+"You need a User-ID to identify your key; the software constructs the user "
+"id\n"
+"from Real Name, Comment and Email Address in this form:\n"
+" \"Heinrich Heine (Der Dichter) <[email protected]>\"\n"
+"\n"
+msgstr ""
+"\n"
+"Du beh�ver en anv�ndaridentitet f�r att identifiera din nyckel; mjukvaran\n"
+"konstruerar en anv�ndaridentitet fr�n namn, kommentar och epostadress\n"
+"enligt f�ljande form: \n"
+" \"Gustav Vasa (Brutal kung) <[email protected]>\"\n"
+"\n"
+
+#: g10/keygen.c:697
+msgid "Real name: "
+msgstr "Namn: "
+
+#: g10/keygen.c:701
+msgid "Invalid character in name\n"
+msgstr "Ogiltigt tecken i namnet\n"
+
+#: g10/keygen.c:703
+msgid "Name may not start with a digit\n"
+msgstr "Namnet f�r inte b�rja med en siffra\n"
+
+#: g10/keygen.c:705
+msgid "Name must be at least 5 characters long\n"
+msgstr "Namnet m�ste vara �tminstone 5 tecken l�ngt\n"
+
+#: g10/keygen.c:713
+msgid "Email address: "
+msgstr "Epostadress: "
+
+#: g10/keygen.c:724
+msgid "Not a valid email address\n"
+msgstr "Epostadressen �r ogiltig\n"
+
+#: g10/keygen.c:732
+msgid "Comment: "
+msgstr "Kommentar: "
+
+#: g10/keygen.c:738
+msgid "Invalid character in comment\n"
+msgstr "Ogiltigt tecken i kommentaren\n"
+
+#: g10/keygen.c:761
+#, c-format
+msgid "You are using the `%s' character set.\n"
+msgstr "Du anv�nder teckenupps�ttningen \"%s\"\n"
+
+#: g10/keygen.c:767
+#, c-format
+msgid ""
+"You selected this USER-ID:\n"
+" \"%s\"\n"
+"\n"
+msgstr ""
+"Du valde f�ljande anv�ndaridentitet:\n"
+" \"%s\"\n"
+"\n"
+
+#: g10/keygen.c:771
+msgid "Please don't put the email address into the real name or the comment\n"
+msgstr ""
+
+#: g10/keygen.c:776
+msgid "NnCcEeOoQq"
+msgstr "NnKkEeOoAa"
+
+#: g10/keygen.c:786
+#, fuzzy
+msgid "Change (N)ame, (C)omment, (E)mail or (Q)uit? "
+msgstr "�ndra (N)amn, (K)ommentar, (E)post eller (O)k/(A)vsluta? "
+
+#: g10/keygen.c:787
+msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
+msgstr "�ndra (N)amn, (K)ommentar, (E)post eller (O)k/(A)vsluta? "
+
+#: g10/keygen.c:806
+msgid "Please correct the error first\n"
+msgstr ""
+
+# fel kapitalisering i originalet?
+#: g10/keygen.c:844
+msgid ""
+"You need a Passphrase to protect your secret key.\n"
+"\n"
+msgstr ""
+"Du beh�ver en l�senordsfras f�r att skydda din hemliga nyckel\n"
+"\n"
+
+#: g10/keyedit.c:468 g10/keygen.c:852
+msgid "passphrase not correctly repeated; try again.\n"
+msgstr "l�senordsfrasen upprepades ej korrekt; f�rs�k igen.\n"
+
+#: g10/keygen.c:858
+msgid ""
+"You don't want a passphrase - this is probably a *bad* idea!\n"
+"I will do it anyway. You can change your passphrase at any time,\n"
+"using this program with the option \"--edit-key\".\n"
+"\n"
+msgstr ""
+"Du vill inte ha n�gon l�senordsfras - det �r sannolikt en *d�lig* id�!\n"
+"Jag kommer att g�ra det �nd�. Du kan �ndra din l�senordsfras n�rsomhelst\n"
+"om du anv�nder detta program med flaggan \"--edit-key\".\n"
+
+#: g10/keygen.c:879
+msgid ""
+"We need to generate a lot of random bytes. It is a good idea to perform\n"
+"some other action (type on the keyboard, move the mouse, utilize the\n"
+"disks) during the prime generation; this gives the random number\n"
+"generator a better chance to gain enough entropy.\n"
+msgstr ""
+"Vi beh�ver generera ett stor m�ngd slumpm�ssig data. Det �r en bra id�\n"
+"att g�ra n�got annat (skriva p� tangentbordet, r�ra musen, anv�nda\n"
+"h�rddisken) under primtalsgenereringen; detta ger slumptalsgeneratorn\n"
+"en st�rre chans att samla ihop en tillr�cklig m�ngd entropi.\n"
+
+#: g10/keygen.c:1325
+msgid "DSA keypair will have 1024 bits.\n"
+msgstr "DSA-nyckelparet kommer att ha 1024 bitar.\n"
+
+#: g10/keygen.c:1368
+msgid "Key generation canceled.\n"
+msgstr "Skapandet av nycklar avbr�ts.\n"
+
+#: g10/keygen.c:1465
+#, fuzzy, c-format
+msgid "writing public key to `%s'\n"
+msgstr "Skriver publikt certifikat till \"%s\"\n"
+
+#: g10/keygen.c:1466
+#, fuzzy, c-format
+msgid "writing secret key to `%s'\n"
+msgstr "skriver hemligt certifikat till \"%s\"\n"
+
+#: g10/keygen.c:1562
+msgid "public and secret key created and signed.\n"
+msgstr "publik och hemlig nyckel skapad och signerad.\n"
+
+#: g10/keygen.c:1567
+msgid ""
+"Note that this key cannot be used for encryption. You may want to use\n"
+"the command \"--edit-key\" to generate a secondary key for this purpose.\n"
+msgstr ""
+"Notera att denna nyckel inte kan anv�ndas f�r kryptering. Du kommer kanske\n"
+"att vilja anv�nda kommandot \"--edit-key\" f�r att generera en sekund�r\n"
+"nyckel f�r detta syfte.\n"
+
+#: g10/keygen.c:1584 g10/keygen.c:1685
+#, c-format
+msgid "Key generation failed: %s\n"
+msgstr "Nyckelgenereringen misslyckades: %s\n"
+
+# c-format beh�vs inte i singularis
+#: g10/keygen.c:1628 g10/sig-check.c:318 g10/sign.c:111
+#, c-format
+msgid ""
+"key has been created %lu second in future (time warp or clock problem)\n"
+msgstr ""
+"nyckeln �r skapad %lu sekund in i framtiden (problemet �r\n"
+"relaterat till tidsresande eller en felst�lld klocka)\n"
+
+#: g10/keygen.c:1630 g10/sig-check.c:320 g10/sign.c:113
+#, c-format
+msgid ""
+"key has been created %lu seconds in future (time warp or clock problem)\n"
+msgstr ""
+"nyckeln �r skapad %lu sekunder in i framtiden (problemet �r\n"
+"relaterat till tidsresande eller en felst�lld klocka)\n"
+
+#: g10/keygen.c:1663
+msgid "Really create? "
+msgstr "Vill du verkligen skapa? "
+
+#: g10/encode.c:91 g10/openfile.c:168 g10/openfile.c:277 g10/tdbio.c:454
+#: g10/tdbio.c:515
+#, c-format
+msgid "%s: can't open: %s\n"
+msgstr "%s: kan inte �ppna: %s\n"
+
+#: g10/encode.c:113
+#, c-format
+msgid "error creating passphrase: %s\n"
+msgstr "fel vid skapandet av l�senordsfras: %s\n"
+
+#: g10/encode.c:171 g10/encode.c:319
+#, c-format
+msgid "%s: WARNING: empty file\n"
+msgstr "%s: VARNING: tom fil\n"
+
+#: g10/encode.c:266
+#, c-format
+msgid "reading from `%s'\n"
+msgstr "l�ser fr�n \"%s\"\n"
+
+#: g10/encode.c:483
+#, c-format
+msgid "%s/%s encrypted for: %s\n"
+msgstr "%s/%s krypterad f�r: %s\n"
+
+#: g10/export.c:153
+#, c-format
+msgid "%s: user not found: %s\n"
+msgstr "%s: hittade inte anv�ndaren: %s\n"
+
+#: g10/export.c:162
+#, c-format
+msgid "certificate read problem: %s\n"
+msgstr "fel vid l�sning av certifikat: %s\n"
+
+#: g10/export.c:171
+#, c-format
+msgid "key %08lX: not a rfc2440 key - skipped\n"
+msgstr "nyckeln %08lX f�ljer inte standarden RFC2440 - �verhoppad\n"
+
+#: g10/export.c:182
+#, fuzzy, c-format
+msgid "key %08lX: not protected - skipped\n"
+msgstr "nyckeln %08lX f�ljer inte standarden RFC2440 - �verhoppad\n"
+
+#: g10/export.c:232
+msgid "WARNING: nothing exported\n"
+msgstr "VARNING: exporterade ingenting\n"
+
+#: g10/getkey.c:211
+msgid "too many entries in pk cache - disabled\n"
+msgstr "f�r m�nga poster i pk-cachen - inaktiverad\n"
+
+#: g10/getkey.c:350
+msgid "too many entries in unk cache - disabled\n"
+msgstr "f�r m�nga poster i unk-cachen - inaktiverad\n"
+
+#: g10/getkey.c:1308 g10/getkey.c:1347
+msgid "RSA key cannot be used in this version\n"
+msgstr "det g�r inte att anv�nda RSA-nycklar i denna version\n"
+
+#: g10/getkey.c:1310 g10/getkey.c:1349
+msgid "No key for user ID\n"
+msgstr "Ingen nyckel f�r anv�ndaridentiteten\n"
+
+#: g10/getkey.c:1388 g10/getkey.c:1428
+msgid "No user ID for key\n"
+msgstr "Inget anv�ndarid f�r nyckel\n"
+
+#: g10/getkey.c:1642 g10/getkey.c:1698
+#, c-format
+msgid "using secondary key %08lX instead of primary key %08lX\n"
+msgstr "anv�nder sekund�ra nyckeln %08lX ist�llet f�r prim�rnyckeln %08lX\n"
+
+#: g10/getkey.c:2017
+#, fuzzy
+msgid "[User id not found]"
+msgstr "%s: hittade inte anv�ndaren\n"
+
+#: g10/import.c:181
+#, c-format
+msgid "skipping block of type %d\n"
+msgstr "hoppar �ver block av typen %d\n"
+
+#: g10/import.c:188 g10/trustdb.c:1740 g10/trustdb.c:1781
+#, c-format
+msgid "%lu keys so far processed\n"
+msgstr "har behandlat %lu nycklar hittills\n"
+
+#: g10/import.c:193
+#, c-format
+msgid "error reading `%s': %s\n"
+msgstr "fel vid l�sning av \"%s\": %s\n"
+
+#: g10/import.c:203
+#, c-format
+msgid "Total number processed: %lu\n"
+msgstr " Totalt antal behandlade enheter: %lu\n"
+
+#: g10/import.c:205
+#, c-format
+msgid " w/o user IDs: %lu\n"
+msgstr " utan anv�ndaridentiteter: %lu\n"
+
+#: g10/import.c:207
+#, c-format
+msgid " imported: %lu"
+msgstr " importerade: %lu"
+
+#: g10/import.c:213
+#, c-format
+msgid " unchanged: %lu\n"
+msgstr " of�r�ndrade: %lu\n"
+
+#: g10/import.c:215
+#, c-format
+msgid " new user IDs: %lu\n"
+msgstr " nya anv�ndaridentiteter: %lu\n"
+
+#: g10/import.c:217
+#, c-format
+msgid " new subkeys: %lu\n"
+msgstr " nya undernycklar: %lu\n"
+
+#: g10/import.c:219
+#, c-format
+msgid " new signatures: %lu\n"
+msgstr " nya signaturer: %lu\n"
+
+#: g10/import.c:221
+#, c-format
+msgid " new key revocations: %lu\n"
+msgstr " nya �terkallelser av nycklar: %lu\n"
+
+#: g10/import.c:223
+#, c-format
+msgid " secret keys read: %lu\n"
+msgstr " antal l�sta hemliga nycklar: %lu\n"
+
+#: g10/import.c:225
+#, c-format
+msgid " secret keys imported: %lu\n"
+msgstr "antal importerade hemliga nycklar: %lu\n"
+
+#: g10/import.c:227
+#, c-format
+msgid " secret keys unchanged: %lu\n"
+msgstr "antal of�r�ndrade hemliga nycklar: %lu\n"
+
+#: g10/import.c:386 g10/import.c:578
+#, c-format
+msgid "key %08lX: no user ID\n"
+msgstr "nyckel %08lX: ingen anv�ndaridentitet\n"
+
+#: g10/import.c:400
+#, c-format
+msgid "key %08lX: no valid user IDs\n"
+msgstr "nyckel %08lX: inga giltiga anv�ndaridentiteter\n"
+
+#: g10/import.c:402
+msgid "this may be caused by a missing self-signature\n"
+msgstr "detta kan bero p� att det saknas en sj�lvsignatur\n"
+
+#: g10/import.c:413 g10/import.c:645
+#, c-format
+msgid "key %08lX: public key not found: %s\n"
+msgstr "nyckel %08lX: hittade ingen publik nyckel: %s\n"
+
+#: g10/import.c:419
+msgid "no default public keyring\n"
+msgstr "ingen f�rvald publik nyckel\n"
+
+#: g10/import.c:423 g10/openfile.c:220 g10/sign.c:275 g10/sign.c:587
+#, c-format
+msgid "writing to `%s'\n"
+msgstr "skriver till \"%s\"\n"
+
+#: g10/import.c:426 g10/import.c:484 g10/import.c:593 g10/import.c:694
+#, c-format
+msgid "can't lock keyring `%s': %s\n"
+msgstr "kan inte l�sa nyckelringen \"%s\": %s\n"
+
+#: g10/import.c:429 g10/import.c:487 g10/import.c:596 g10/import.c:697
+#, c-format
+msgid "error writing keyring `%s': %s\n"
+msgstr "fel vid skrivning av nyckelringen \"%s\": %s\n"
+
+#: g10/import.c:434
+#, c-format
+msgid "key %08lX: public key imported\n"
+msgstr "nyckel %08lX: importerade publik nyckel\n"
+
+#: g10/import.c:451
+#, c-format
+msgid "key %08lX: doesn't match our copy\n"
+msgstr "nyckel %08lX: matchar inte v�r lokala kopia\n"
+
+#: g10/import.c:460 g10/import.c:653
+#, c-format
+msgid "key %08lX: can't locate original keyblock: %s\n"
+msgstr "nyckel %08lX: kan inte hitta det ursprungliga nyckelblocket: %s\n"
+
+#: g10/import.c:466 g10/import.c:659
+#, c-format
+msgid "key %08lX: can't read original keyblock: %s\n"
+msgstr "nyckel %08lX: kan inte l�sa det ursprungliga nyckelblocket %s\n"
+
+#: g10/import.c:493
+#, c-format
+msgid "key %08lX: 1 new user ID\n"
+msgstr "nyckel %08lX: 1 ny anv�ndaridentitet\n"
+
+#: g10/import.c:496
+#, c-format
+msgid "key %08lX: %d new user IDs\n"
+msgstr "nyckel %08lX: %d nya anv�ndaridentiteter\n"
+
+#: g10/import.c:499
+#, c-format
+msgid "key %08lX: 1 new signature\n"
+msgstr "nyckel %08lX: 1 ny signatur\n"
+
+#: g10/import.c:502
+#, c-format
+msgid "key %08lX: %d new signatures\n"
+msgstr "nyckel %08lX: %d nya signaturer\n"
+
+#: g10/import.c:505
+#, c-format
+msgid "key %08lX: 1 new subkey\n"
+msgstr "nyckel %08lX: 1 ny undernyckel\n"
+
+#: g10/import.c:508
+#, c-format
+msgid "key %08lX: %d new subkeys\n"
+msgstr "nyckel %08lX: %d nya undernycklar\n"
+
+#: g10/import.c:518
+#, c-format
+msgid "key %08lX: not changed\n"
+msgstr "nyckel %08lX: inte f�r�ndrad\n"
+
+#: g10/import.c:601
+#, c-format
+msgid "key %08lX: secret key imported\n"
+msgstr "nyckel %08lX: den hemliga nyckeln �r importerad\n"
+
+#. we can't merge secret keys
+#: g10/import.c:605
+#, c-format
+msgid "key %08lX: already in secret keyring\n"
+msgstr "nyckel %08lX: finns redan i den hemliga nyckelringen\n"
+
+#: g10/import.c:610
+#, c-format
+msgid "key %08lX: secret key not found: %s\n"
+msgstr "nyckel %08lX: hittade inte den hemliga nyckeln: %s\n"
+
+#: g10/import.c:639
+#, c-format
+msgid "key %08lX: no public key - can't apply revocation certificate\n"
+msgstr ""
+"nyckel %08lX: ingen publik nyckel - kan inte till�mpa "
+"�terkallelsecertifikatet\n"
+
+#: g10/import.c:670
+#, c-format
+msgid "key %08lX: invalid revocation certificate: %s - rejected\n"
+msgstr "nyckel %08lX: ogiltigt �terkallelsecertifikat: %s - avvisat\n"
+
+#: g10/import.c:702
+#, c-format
+msgid "key %08lX: revocation certificate imported\n"
+msgstr "nyckel %08lX: �terkallelsecertifikat importerat\n"
+
+#: g10/import.c:744
+#, c-format
+msgid "key %08lX: no user ID for signature\n"
+msgstr "nyckel %08lX: ingen anv�ndaridentitet f�r signaturen\n"
+
+#: g10/import.c:751 g10/import.c:775
+#, c-format
+msgid "key %08lX: unsupported public key algorithm\n"
+msgstr "nyckel %08lX: algoritmen f�r publik nyckel ej st�dd\n"
+
+#: g10/import.c:752
+#, c-format
+msgid "key %08lX: invalid self-signature\n"
+msgstr "nyckel %08lX: ogiltig sj�lvsignatur\n"
+
+#: g10/import.c:767
+#, c-format
+msgid "key %08lX: no subkey for key binding\n"
+msgstr "nyckel %08lX: ingen undernyckel f�r nyckelbindning\n"
+
+#: g10/import.c:776
+#, c-format
+msgid "key %08lX: invalid subkey binding\n"
+msgstr "nyckel %08lX: ogiltig undernyckelbindning\n"
+
+# vad inneb�r fnutten i slutet?
+#: g10/import.c:803
+#, c-format
+msgid "key %08lX: accepted non self-signed user ID '"
+msgstr "nyckel %08lX: accepterade icke sj�lvsignerad anv�ndaridentitet '"
+
+#: g10/import.c:832
+#, c-format
+msgid "key %08lX: skipped user ID '"
+msgstr "nyckel %08lX: hoppade �ver anv�ndaridentitet '"
+
+#: g10/import.c:855
+#, c-format
+msgid "key %08lX: skipped subkey\n"
+msgstr "nyckel %08lX: hoppade �ver undernyckel\n"
+
+#. here we violate the rfc a bit by still allowing
+#. * to import non-exportable signature when we have the
+#. * the secret key used to create this signature - it
+#. * seems that this makes sense
+#: g10/import.c:880
+#, c-format
+msgid "key %08lX: non exportable signature (class %02x) - skipped\n"
+msgstr "nyckel %08lX: icke exporterbar signatur (klass %02x) - hoppade �ver\n"
+
+#: g10/import.c:889
+#, c-format
+msgid "key %08lX: revocation certificate at wrong place - skipped\n"
+msgstr "nyckel %08lX: �terkallelsecertifikat p� fel plats - hoppade �ver\n"
+
+#: g10/import.c:897
+#, c-format
+msgid "key %08lX: invalid revocation certificate: %s - skipped\n"
+msgstr "nyckel %08lX: felaktigt �terkallelsecertifikat: %s - hoppade �ver\n"
+
+#: g10/import.c:997
+#, c-format
+msgid "key %08lX: duplicated user ID detected - merged\n"
+msgstr "nyckel %08lX: anv�ndaridentitet hittades tv� g�nger - slog ihop\n"
+
+#: g10/import.c:1048
+#, c-format
+msgid "key %08lX: revocation certificate added\n"
+msgstr "nyckel %08lX: lade till �terkallelsecertifikat\n"
+
+#: g10/import.c:1162 g10/import.c:1215
+#, c-format
+msgid "key %08lX: our copy has no self-signature\n"
+msgstr "nyckel %08lX: v�r kopia har ingen sj�lvsignatur\n"
+
+#: g10/delkey.c:64 g10/keyedit.c:94
+#, c-format
+msgid "%s: user not found\n"
+msgstr "%s: hittade inte anv�ndaren\n"
+
+#: g10/keyedit.c:155
+msgid "[revocation]"
+msgstr "[�terkallelse]"
+
+#: g10/keyedit.c:156
+msgid "[self-signature]"
+msgstr "[sj�lvsignatur]"
+
+#: g10/keyedit.c:220
+msgid "1 bad signature\n"
+msgstr "1 felaktig signatur\n"
+
+#: g10/keyedit.c:222
+#, c-format
+msgid "%d bad signatures\n"
+msgstr "%d felaktiga signaturer\n"
+
+#: g10/keyedit.c:224
+msgid "1 signature not checked due to a missing key\n"
+msgstr "1 signatur verifierades inte eftersom nyckeln saknades\n"
+
+#: g10/keyedit.c:226
+#, c-format
+msgid "%d signatures not checked due to missing keys\n"
+msgstr "%d signaturer verifierades inte eftersom nycklar saknades\n"
+
+#: g10/keyedit.c:228
+msgid "1 signature not checked due to an error\n"
+msgstr "1 signatur verifierades inte eftersom ett fel uppstod\n"
+
+#: g10/keyedit.c:230
+#, c-format
+msgid "%d signatures not checked due to errors\n"
+msgstr "%d signaturer verifierades inte eftersom fel uppstod\n"
+
+#: g10/keyedit.c:232
+msgid "1 user ID without valid self-signature detected\n"
+msgstr "1 anv�ndaridentitet utan giltig sj�lvsignatur hittades\n"
+
+#: g10/keyedit.c:234
+#, c-format
+msgid "%d user IDs without valid self-signatures detected\n"
+msgstr "%d anv�ndaridentiteter utan giltig sj�lvsignatur hittades\n"
+
+#. Fixme: see whether there is a revocation in which
+#. * case we should allow to sign it again.
+#: g10/keyedit.c:316
+#, c-format
+msgid "Already signed by key %08lX\n"
+msgstr "Redan signerad av nyckeln %08lX\n"
+
+#: g10/keyedit.c:324
+#, c-format
+msgid "Nothing to sign with key %08lX\n"
+msgstr "Det finns inget att signera med nyckeln %08lX\n"
+
+#: g10/keyedit.c:333
+msgid ""
+"Are you really sure that you want to sign this key\n"
+"with your key: \""
+msgstr ""
+"�r du verkligen s�ker p� att du vill signera denna nyckel\n"
+"med din nyckel: \""
+
+#: g10/keyedit.c:342
+msgid ""
+"The signature will be marked as non-exportable.\n"
+"\n"
+msgstr ""
+"Signaturen kommer att markeras som icke exporterbar.\n"
+"\n"
+
+#: g10/keyedit.c:347
+msgid "Really sign? "
+msgstr "Vill du verkligen signera? "
+
+#: g10/keyedit.c:373 g10/keyedit.c:1869 g10/keyedit.c:1931 g10/sign.c:135
+#, c-format
+msgid "signing failed: %s\n"
+msgstr "signeringen misslyckades: %s\n"
+
+#: g10/keyedit.c:427
+msgid "This key is not protected.\n"
+msgstr "Denna nyckel �r inte skyddad.\n"
+
+#: g10/keyedit.c:431
+#, fuzzy
+msgid "Secret parts of primary key are not available.\n"
+msgstr "den hemliga nyckeln �r inte tillg�nglig"
+
+#: g10/keyedit.c:435
+msgid "Key is protected.\n"
+msgstr "Nyckeln �r skyddad.\n"
+
+#: g10/keyedit.c:455
+#, c-format
+msgid "Can't edit this key: %s\n"
+msgstr "Kan inte redigera denna nyckel: %s\n"
+
+#: g10/keyedit.c:460
+msgid ""
+"Enter the new passphrase for this secret key.\n"
+"\n"
+msgstr ""
+"Skriv in den nya l�senordsfrasen f�r denna hemliga nyckel.\n"
+"\n"
+
+#: g10/keyedit.c:472
+msgid ""
+"You don't want a passphrase - this is probably a *bad* idea!\n"
+"\n"
+msgstr ""
+"Du vill inte ha n�gon l�senordsfras - detta �r sannolikt en d�lig id�!\n"
+"\n"
+
+#: g10/keyedit.c:475
+msgid "Do you really want to do this? "
+msgstr "Vill du verkligen g�ra detta? "
+
+#: g10/keyedit.c:539
+msgid "moving a key signature to the correct place\n"
+msgstr "flyttar en nyckelsignatur till den r�tta platsen\n"
+
+#: g10/keyedit.c:580
+msgid "quit this menu"
+msgstr "avsluta denna meny"
+
+#: g10/keyedit.c:581
+msgid "q"
+msgstr "q"
+
+#: g10/keyedit.c:582
+msgid "save"
+msgstr "save"
+
+#: g10/keyedit.c:582
+msgid "save and quit"
+msgstr "spara och avsluta"
+
+#: g10/keyedit.c:583
+msgid "help"
+msgstr "help"
+
+#: g10/keyedit.c:583
+msgid "show this help"
+msgstr "visa denna hj�lp"
+
+# skall dessa �vers�ttas?
+#: g10/keyedit.c:585
+msgid "fpr"
+msgstr "fpr"
+
+#: g10/keyedit.c:585
+msgid "show fingerprint"
+msgstr "visa fingeravtryck"
+
+#: g10/keyedit.c:586
+msgid "list"
+msgstr "list"
+
+#: g10/keyedit.c:586
+msgid "list key and user IDs"
+msgstr "r�kna upp nycklar och anv�ndaridentiteter"
+
+#: g10/keyedit.c:587
+msgid "l"
+msgstr "l"
+
+#: g10/keyedit.c:588
+msgid "uid"
+msgstr "uid"
+
+#: g10/keyedit.c:588
+msgid "select user ID N"
+msgstr "v�lj anv�ndaridentitet N"
+
+#: g10/keyedit.c:589
+msgid "key"
+msgstr "key"
+
+#: g10/keyedit.c:589
+msgid "select secondary key N"
+msgstr "v�lj sekund�r nyckel N"
+
+#: g10/keyedit.c:590
+msgid "check"
+msgstr "check"
+
+#: g10/keyedit.c:590
+msgid "list signatures"
+msgstr "r�kna upp signaturer"
+
+#: g10/keyedit.c:591
+msgid "c"
+msgstr "c"
+
+#: g10/keyedit.c:592
+msgid "sign"
+msgstr "sign"
+
+#: g10/keyedit.c:592
+msgid "sign the key"
+msgstr "signera nyckeln"
+
+#: g10/keyedit.c:593
+msgid "s"
+msgstr "s"
+
+#: g10/keyedit.c:594
+msgid "lsign"
+msgstr "lsign"
+
+#: g10/keyedit.c:594
+msgid "sign the key locally"
+msgstr "signera nyckeln lokalt"
+
+#: g10/keyedit.c:595
+msgid "debug"
+msgstr "debug"
+
+#: g10/keyedit.c:596
+msgid "adduid"
+msgstr "adduid"
+
+#: g10/keyedit.c:596
+msgid "add a user ID"
+msgstr "l�gg till en anv�ndaridentitet"
+
+#: g10/keyedit.c:597
+msgid "deluid"
+msgstr "deluid"
+
+#: g10/keyedit.c:597
+msgid "delete user ID"
+msgstr "ta bort en anv�ndaridentitet"
+
+#: g10/keyedit.c:598
+msgid "addkey"
+msgstr "addkey"
+
+#: g10/keyedit.c:598
+msgid "add a secondary key"
+msgstr "l�gg till en sekund�r nyckel"
+
+#: g10/keyedit.c:599
+msgid "delkey"
+msgstr "delkey"
+
+#: g10/keyedit.c:599
+msgid "delete a secondary key"
+msgstr "ta bort en sekund�r nyckel"
+
+#: g10/keyedit.c:600
+msgid "delsig"
+msgstr "delsig"
+
+#: g10/keyedit.c:600
+msgid "delete signatures"
+msgstr "ta bort signaturer"
+
+#: g10/keyedit.c:601
+msgid "expire"
+msgstr "expire"
+
+#: g10/keyedit.c:601
+msgid "change the expire date"
+msgstr "�ndra utg�ngsdatum"
+
+#: g10/keyedit.c:602
+msgid "toggle"
+msgstr "toggle"
+
+#: g10/keyedit.c:602
+msgid "toggle between secret and public key listing"
+msgstr "hoppa mellan utskrift av hemliga och publika nycklar"
+
+#: g10/keyedit.c:604
+msgid "t"
+msgstr "t"
+
+#: g10/keyedit.c:605
+msgid "pref"
+msgstr "pref"
+
+#: g10/keyedit.c:605
+msgid "list preferences"
+msgstr "skriv ut inst�llningar"
+
+#: g10/keyedit.c:606
+msgid "passwd"
+msgstr "passwd"
+
+#: g10/keyedit.c:606
+msgid "change the passphrase"
+msgstr "�ndra l�senordsfrasen"
+
+#: g10/keyedit.c:607
+msgid "trust"
+msgstr "trust"
+
+# originalet borde ha ett value
+#: g10/keyedit.c:607
+msgid "change the ownertrust"
+msgstr "�ndra �gartillitsv�rdet"
+
+#: g10/keyedit.c:608
+msgid "revsig"
+msgstr "revsig"
+
+#: g10/keyedit.c:608
+msgid "revoke signatures"
+msgstr "�terkalla signaturer"
+
+#: g10/keyedit.c:609
+msgid "revkey"
+msgstr "revkey"
+
+#: g10/keyedit.c:609
+msgid "revoke a secondary key"
+msgstr "�terkalla en sekund�r nyckel"
+
+#: g10/keyedit.c:610
+msgid "disable"
+msgstr "disable"
+
+#: g10/keyedit.c:610
+msgid "disable a key"
+msgstr "deaktivera en nyckel"
+
+#: g10/keyedit.c:611
+msgid "enable"
+msgstr "enable"
+
+#: g10/keyedit.c:611
+msgid "enable a key"
+msgstr "aktivera en nyckel"
+
+#: g10/delkey.c:110 g10/keyedit.c:630
+msgid "can't do that in batchmode\n"
+msgstr "kan ej g�ra detta i batch-l�ge\n"
+
+#. check that they match
+#. fixme: check that they both match
+#: g10/keyedit.c:668
+msgid "Secret key is available.\n"
+msgstr "Den hemliga nyckeln finns tillg�nglig.\n"
+
+#: g10/keyedit.c:697
+msgid "Command> "
+msgstr "Kommando> "
+
+#: g10/keyedit.c:727
+msgid "Need the secret key to do this.\n"
+msgstr "Den hemliga nyckeln beh�vs f�r att g�ra detta.\n"
+
+#: g10/keyedit.c:731
+msgid "Please use the command \"toggle\" first.\n"
+msgstr ""
+
+#: g10/keyedit.c:778
+msgid "Really sign all user IDs? "
+msgstr "Vill du verkligen signera alla anv�ndaridentiteter? "
+
+#: g10/keyedit.c:779
+msgid "Hint: Select the user IDs to sign\n"
+msgstr "Tips: V�lj det anv�ndarid du vill signera\n"
+
+#: g10/keyedit.c:811 g10/keyedit.c:993
+#, c-format
+msgid "update of trustdb failed: %s\n"
+msgstr "uppdateringen av tillitsdatabasen misslyckades: %s\n"
+
+#: g10/keyedit.c:822 g10/keyedit.c:843
+msgid "You must select at least one user ID.\n"
+msgstr "Du m�ste v�lja �tminstone en anv�ndaridentitet.\n"
+
+#: g10/keyedit.c:824
+msgid "You can't delete the last user ID!\n"
+msgstr "Du kan inte ta bort den sista anv�ndaridentiteten!\n"
+
+#: g10/keyedit.c:827
+msgid "Really remove all selected user IDs? "
+msgstr "Vill du verkligen ta bort alla valda anv�ndaridentiteter? "
+
+#: g10/keyedit.c:828
+msgid "Really remove this user ID? "
+msgstr "Vill du verkligen ta bort denna anv�ndaridentitet? "
+
+#: g10/keyedit.c:864 g10/keyedit.c:886
+msgid "You must select at least one key.\n"
+msgstr "Du m�ste v�lja �tminstone en nyckel.\n"
+
+#: g10/keyedit.c:868
+msgid "Do you really want to delete the selected keys? "
+msgstr "Vill du verkligen ta bort valda nycklar? "
+
+#: g10/keyedit.c:869
+msgid "Do you really want to delete this key? "
+msgstr "Vill du verkligen ta bort denna nyckel? "
+
+#: g10/keyedit.c:890
+msgid "Do you really want to revoke the selected keys? "
+msgstr "Vill du verkligen �terkalla de valda nycklarna? "
+
+#: g10/keyedit.c:891
+msgid "Do you really want to revoke this key? "
+msgstr "Vill du verkligen �terkalla denna nyckel? "
+
+#: g10/keyedit.c:957
+msgid "Save changes? "
+msgstr "Spara �ndringarna? "
+
+#: g10/keyedit.c:960
+msgid "Quit without saving? "
+msgstr "Avsluta utan att spara? "
+
+#: g10/keyedit.c:971
+#, c-format
+msgid "update failed: %s\n"
+msgstr "uppdateringen misslyckades: %s\n"
+
+#: g10/keyedit.c:978
+#, c-format
+msgid "update secret failed: %s\n"
+msgstr "misslyckades med att uppdatera hemligheten: %s\n"
+
+#: g10/keyedit.c:985
+msgid "Key not changed so no update needed.\n"
+msgstr "Nyckeln �r of�r�ndrad s� det beh�vs ingen uppdatering.\n"
+
+#: g10/keyedit.c:1000
+msgid "Invalid command (try \"help\")\n"
+msgstr "Ogiltigt kommando (f�rs�k med \"help\")\n"
+
+#: g10/keyedit.c:1093
+msgid "This key has been disabled"
+msgstr "Denna nyckel har deaktiverats"
+
+#: g10/keyedit.c:1364
+msgid "Delete this good signature? (y/N/q)"
+msgstr "Vill du radera denna korrekta signatur? (j/N/a)"
+
+#: g10/keyedit.c:1368
+msgid "Delete this invalid signature? (y/N/q)"
+msgstr "Vill du radera denna ogiltiga signatur? (j/N/a)"
+
+#: g10/keyedit.c:1372
+msgid "Delete this unknown signature? (y/N/q)"
+msgstr "Vill du radera denna ok�nda signatur? (j/N/a)"
+
+#: g10/keyedit.c:1378
+msgid "Really delete this self-signature? (y/N)"
+msgstr "Vill du radera denna sj�lvsignatur? (j/N)"
+
+# skulle lika g�rna kunna heta 1 signatur va?
+#: g10/keyedit.c:1392
+#, c-format
+msgid "Deleted %d signature.\n"
+msgstr "Raderade %d signatur.\n"
+
+#: g10/keyedit.c:1393
+#, c-format
+msgid "Deleted %d signatures.\n"
+msgstr "Raderade %d signaturer.\n"
+
+#: g10/keyedit.c:1396
+msgid "Nothing deleted.\n"
+msgstr "Ingenting raderat.\n"
+
+#: g10/keyedit.c:1465
+msgid "Please remove selections from the secret keys.\n"
+msgstr "Tag bort markeringar fr�n de hemliga nycklarna.\n"
+
+#: g10/keyedit.c:1471
+msgid "Please select at most one secondary key.\n"
+msgstr "V�lj som mest en sekund�r nyckel.\n"
+
+#: g10/keyedit.c:1475
+msgid "Changing expiration time for a secondary key.\n"
+msgstr "�ndrar giltighetstid f�r en sekund�r nyckel.\n"
+
+#: g10/keyedit.c:1477
+msgid "Changing expiration time for the primary key.\n"
+msgstr "�ndrar giltighetstid f�r den prim�ra nyckeln.\n"
+
+#: g10/keyedit.c:1519
+msgid "You can't change the expiration date of a v3 key\n"
+msgstr "Du kan inte �ndra giltighetsdatum f�r en v3-nyckel\n"
+
+#: g10/keyedit.c:1535
+msgid "No corresponding signature in secret ring\n"
+msgstr "Det finns ingen motsvarande signatur i den hemliga nyckelringen\n"
+
+#: g10/keyedit.c:1596
+#, c-format
+msgid "No user ID with index %d\n"
+msgstr "Ingen anv�ndaridentitet med index %d\n"
+
+#: g10/keyedit.c:1642
+#, c-format
+msgid "No secondary key with index %d\n"
+msgstr "Ingen sekund�r nyckel med index %d\n"
+
+#: g10/keyedit.c:1740
+msgid "user ID: \""
+msgstr "anv�ndaridentitet: \""
+
+#: g10/keyedit.c:1743
+#, c-format
+msgid ""
+"\"\n"
+"signed with your key %08lX at %s\n"
+msgstr ""
+"\"\n"
+"signerad med din nyckel %08lX %s\n"
+
+#: g10/keyedit.c:1747
+msgid "Create a revocation certificate for this signature? (y/N)"
+msgstr "Vill du skapa ett �terkallelsecertifikat f�r denna signatur? (j/N)"
+
+#. FIXME: detect duplicates here
+#: g10/keyedit.c:1771
+msgid "You have signed these user IDs:\n"
+msgstr "Du har signerat f�ljande anv�ndaridentiteter:\n"
+
+#: g10/keyedit.c:1785 g10/keyedit.c:1820
+#, c-format
+msgid " signed by %08lX at %s\n"
+msgstr " signerad av %08lX %s\n"
+
+#: g10/keyedit.c:1790
+#, c-format
+msgid " revoked by %08lX at %s\n"
+msgstr " �terkallad av %08lX %s\n"
+
+#: g10/keyedit.c:1810
+msgid "You are about to revoke these signatures:\n"
+msgstr "Du st�r i begrepp att �terkalla dessa signaturer:\n"
+
+#: g10/keyedit.c:1828
+msgid "Really create the revocation certificates? (y/N)"
+msgstr "Vill du verkligen skapa �terkallelsecertifikaten? (j/N)"
+
+#: g10/keyedit.c:1857
+msgid "no secret key\n"
+msgstr "ingen hemlig nyckel\n"
+
+#. of subkey
+#: g10/keylist.c:318 g10/mainproc.c:740
+#, fuzzy, c-format
+msgid " [expires: %s]"
+msgstr "Nyckeln g�r ut vid f�ljande tidpunkt: %s\n"
+
+#: g10/mainproc.c:213
+#, c-format
+msgid "public key is %08lX\n"
+msgstr "den publika nyckeln �r %08lX\n"
+
+# DEK betyder Data Encryption Key, Meddelandet �r f�rvirrande
+# men efter att ha kikat i koden har jag kommit fram till att
+# meddelandet bara visas om verbose-flaggan �r satt, och d�
+# markerar meddelandet att get_session_key lyckades hitta
+# r�tt publik nyckel att kryptera datat med. Jag tycker
+# inte att svenska �vers�ttningen �r mycket obskyrare �n engelska
+# originalet iallafall.
+#: g10/mainproc.c:248
+msgid "public key encrypted data: good DEK\n"
+msgstr "data krypterad med publik nyckel: korrekt krypteringsnyckel\n"
+
+#: g10/mainproc.c:281
+#, c-format
+msgid "encrypted with %u-bit %s key, ID %08lX, created %s\n"
+msgstr "krypterad med %u-bitars %s-nyckel, ID %08lX, skapad %s\n"
+
+#: g10/mainproc.c:291
+#, c-format
+msgid "encrypted with %s key, ID %08lX\n"
+msgstr "krypterad med %s-nyckel, ID %08lX\n"
+
+#: g10/mainproc.c:297
+msgid "no secret key for decryption available\n"
+msgstr "det finns ingen hemlig nyckel tillg�nglig f�r dekryptering\n"
+
+#: g10/mainproc.c:306
+#, c-format
+msgid "public key decryption failed: %s\n"
+msgstr "dekryptering med publik nyckel misslyckades: %s\n"
+
+#: g10/mainproc.c:342
+msgid "decryption okay\n"
+msgstr "dekrypteringen lyckades\n"
+
+#: g10/mainproc.c:347
+msgid "WARNING: encrypted message has been manipulated!\n"
+msgstr "VARNING: det krypterade meddelandet har �ndrats!\n"
+
+#: g10/mainproc.c:352
+#, c-format
+msgid "decryption failed: %s\n"
+msgstr "dekrypteringen misslyckades: %s\n"
+
+#: g10/mainproc.c:371
+msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
+msgstr "NOTERA: avs�ndaren efterfr�gade \"endast-f�r-dina-�gon\"\n"
+
+#: g10/mainproc.c:373
+#, c-format
+msgid "original file name='%.*s'\n"
+msgstr "ursprungligt filnamn=\"%.*s\"\n"
+
+#: g10/mainproc.c:524
+msgid "standalone revocation - use \"gpg --import\" to apply\n"
+msgstr ""
+"frist�ende �terkallelsecertifikat - anv�nd \"gpg --import\" f�r\n"
+"att applicera\n"
+
+#: g10/mainproc.c:611 g10/mainproc.c:620
+msgid "WARNING: invalid notation data found\n"
+msgstr "VARNING: ogiltig notationsdata hittades\n"
+
+#: g10/mainproc.c:623
+msgid "Notation: "
+msgstr "Notation: "
+
+# finns det n�gon bra svensk �vers�ttning av policy?
+#: g10/mainproc.c:630
+msgid "Policy: "
+msgstr "Policy: "
+
+#: g10/mainproc.c:1057
+msgid "signature verification suppressed\n"
+msgstr "signaturen verifierades inte\n"
+
+#: g10/mainproc.c:1063
+#, c-format
+msgid "Signature made %.*s using %s key ID %08lX\n"
+msgstr "Signerades %.*s med hj�lp av %s-nyckeln med ID %08lX\n"
+
+#. just in case that we have no userid
+#: g10/mainproc.c:1089 g10/mainproc.c:1100
+msgid "BAD signature from \""
+msgstr "FELAKTIG signatur fr�n \""
+
+#: g10/mainproc.c:1090 g10/mainproc.c:1101
+msgid "Good signature from \""
+msgstr "Korrekt signatur fr�n \""
+
+#: g10/mainproc.c:1092
+msgid " aka \""
+msgstr " �ven k�nd som \""
+
+#: g10/mainproc.c:1148
+#, c-format
+msgid "Can't check signature: %s\n"
+msgstr "Kan inte verifiera signaturen: %s\n"
+
+#: g10/mainproc.c:1209
+#, c-format
+msgid "standalone signature of class 0x%02x\n"
+msgstr "frist�ende signatur av klassen 0x%02x\n"
+
+#: g10/mainproc.c:1250
+msgid "old style (PGP 2.x) signature\n"
+msgstr "signatur av den gamla (PGP 2.x) typen\n"
+
+#: g10/mainproc.c:1255
+msgid "invalid root packet detected in proc_tree()\n"
+msgstr "felaktigt rotpaket hittades i proc_tree()\n"
+
+#: g10/misc.c:94
+#, c-format
+msgid "can't disable core dumps: %s\n"
+msgstr "kan inte deaktivera minnesutskrifter: %s\n"
+
+#: g10/misc.c:97
+msgid "WARNING: program may create a core file!\n"
+msgstr "VARNING: programmet kan komma att skapa en minnesutskrift!\n"
+
+#: g10/misc.c:205
+msgid "Experimental algorithms should not be used!\n"
+msgstr "Experimentella algoritmer b�r inte anv�ndas!\n"
+
+# maila gnupg-bugs om konstigt felmeddelande, man skapar nycklar i pluralis
+#: g10/misc.c:219
+msgid ""
+"RSA keys are deprecated; please consider creating a new key and use this key "
+"in the future\n"
+msgstr ""
+"RSA-nycklar �r f�rlegade; �verv�g att skapa nya nycklar och anv�nd dessa i "
+"framtiden\n"
+
+# XXX
+#: g10/misc.c:241
+msgid "this cipher algorithm is depreciated; please use a more standard one!\n"
+msgstr ""
+"avr�der fr�n denna chifferalgoritm, anv�nd ist�llet en mer normal algoritm!\n"
+
+#: g10/parse-packet.c:115
+#, c-format
+msgid "can't handle public key algorithm %d\n"
+msgstr "kan inte hantera algoritm %d f�r publik nyckelhantering\n"
+
+#: g10/parse-packet.c:956
+#, c-format
+msgid "subpacket of type %d has critical bit set\n"
+msgstr "underpaket av typen %d har den bit satt som markerar den som kritisk\n"
+
+#: g10/passphrase.c:159
+msgid ""
+"\n"
+"You need a passphrase to unlock the secret key for\n"
+"user: \""
+msgstr ""
+"\n"
+"Du beh�ver en l�senordsfras f�r att l�sa upp den hemliga nyckeln f�r\n"
+"anv�ndaren: \""
+
+#: g10/passphrase.c:168
+#, c-format
+msgid "%u-bit %s key, ID %08lX, created %s"
+msgstr "%u-bits %s-nyckel, ID %08lX, skapad %s"
+
+#: g10/passphrase.c:173
+#, c-format
+msgid " (main key ID %08lX)"
+msgstr " (huvudnyckelns identitet %08lX)"
+
+#: g10/passphrase.c:190
+msgid "can't query password in batchmode\n"
+msgstr "kan inte fr�ga efter l�senord i batch-l�ge\n"
+
+#: g10/passphrase.c:194
+msgid "Enter passphrase: "
+msgstr "Ange l�senordsfras: "
+
+#: g10/passphrase.c:198
+msgid "Repeat passphrase: "
+msgstr "Repetera l�senordsfrasen: "
+
+#: g10/plaintext.c:63
+msgid "data not saved; use option \"--output\" to save it\n"
+msgstr "data sparades inte, anv�nd flaggan \"--output\" f�r att spara den\n"
+
+#: g10/plaintext.c:317
+msgid "Detached signature.\n"
+msgstr "L�skopplad signatur.\n"
+
+#: g10/plaintext.c:321
+msgid "Please enter name of data file: "
+msgstr "Ange namnet p� datafilen: "
+
+#: g10/plaintext.c:342
+msgid "reading stdin ...\n"
+msgstr "l�ser fr�n standard in ...\n"
+
+#: g10/plaintext.c:385
+#, c-format
+msgid "can't open signed data `%s'\n"
+msgstr "kan inte �ppna signerad data \"%s\"\n"
+
+#: g10/pubkey-enc.c:79
+#, c-format
+msgid "anonymous receiver; trying secret key %08lX ...\n"
+msgstr "anonym mottagare, f�rs�ker anv�nda den hemliga nyckeln %08lX ...\n"
+
+#: g10/pubkey-enc.c:85
+msgid "okay, we are the anonymous recipient.\n"
+msgstr "ok, vi �r den hemliga mottagaren.\n"
+
+#: g10/pubkey-enc.c:137
+msgid "old encoding of the DEK is not supported\n"
+msgstr "gammal kodning av krypteringsnyckeln st�ds inte\n"
+
+#: g10/pubkey-enc.c:156
+#, fuzzy, c-format
+msgid "cipher algorithm %d is unknown or disabled\n"
+msgstr "skyddsalgoritmen %d st�ds inte\n"
+
+#: g10/pubkey-enc.c:195
+#, c-format
+msgid "NOTE: cipher algorithm %d not found in preferences\n"
+msgstr "NOTERA: chifferalgoritmen %d finns inte i inst�llningarna\n"
+
+#: g10/pubkey-enc.c:201
+#, fuzzy, c-format
+msgid "NOTE: secret key %08lX expired at %s\n"
+msgstr "NOTERA: signaturnyckeln �r f�r gammal, gick ut vid %s\n"
+
+#: g10/hkp.c:62
+#, c-format
+msgid "requesting key %08lX from %s ...\n"
+msgstr ""
+
+#: g10/hkp.c:75
+#, fuzzy, c-format
+msgid "can't get key from keyserver: %s\n"
+msgstr "importera nycklar fr�n en nyckelserver"
+
+#: g10/hkp.c:98 g10/hkp.c:136
+msgid "no keyserver known (use option --keyserver)\n"
+msgstr ""
+
+#: g10/hkp.c:106
+#, fuzzy, c-format
+msgid "%s: not a valid key ID\n"
+msgstr "%s �r ingen giltig teckentabell\n"
+
+#: g10/hkp.c:158
+#, fuzzy, c-format
+msgid "can't connect to `%s': %s\n"
+msgstr "kan inte �ppna \"%s\": %s\n"
+
+#: g10/hkp.c:182
+#, fuzzy, c-format
+msgid "error sending to `%s': %s\n"
+msgstr "fel vid l�sning av \"%s\": %s\n"
+
+#: g10/hkp.c:194
+#, c-format
+msgid "success sending to `%s' (status=%u)\n"
+msgstr ""
+
+#: g10/hkp.c:197
+#, c-format
+msgid "failed sending to `%s': status=%u\n"
+msgstr ""
+
+#: g10/seckey-cert.c:53
+#, fuzzy
+msgid "secret key parts are not available\n"
+msgstr "den hemliga nyckeln �r inte tillg�nglig"
+
+#: g10/seckey-cert.c:59
+#, c-format
+msgid "protection algorithm %d is not supported\n"
+msgstr "skyddsalgoritmen %d st�ds inte\n"
+
+#: g10/seckey-cert.c:175
+msgid "Invalid passphrase; please try again ...\n"
+msgstr "Ogiltig l�senordsfras, f�rs�k igen ...\n"
+
+# �r det nyckeln som �r svag, konstigt
+#: g10/seckey-cert.c:231
+msgid "WARNING: Weak key detected - please change passphrase again.\n"
+msgstr "VARNING: Uppt�ckte en svag nyckel - byt l�senordsfras igen.\n"
+
+#: g10/sig-check.c:202
+msgid "assuming bad MDC due to an unknown critical bit\n"
+msgstr "antar att MDC �r felaktig eftersom en ok�nd kritisk bit �r satt\n"
+
+#: g10/sig-check.c:300
+msgid ""
+"this is a PGP generated ElGamal key which is NOT secure for signatures!\n"
+msgstr ""
+"detta �r en PGP-genererad ElGamal-nyckel som INTE �r s�ker f�r signaturer!\n"
+
+# beh�vs verkligen c-format h�r?
+#: g10/sig-check.c:308
+#, c-format
+msgid "public key is %lu second newer than the signature\n"
+msgstr "den publika nyckeln �r %lu sekund nyare �n signaturen\n"
+
+#: g10/sig-check.c:309
+#, c-format
+msgid "public key is %lu seconds newer than the signature\n"
+msgstr "den publika nyckeln �r %lu sekunder nyare �n signaturen\n"
+
+#: g10/sig-check.c:327
+#, c-format
+msgid "NOTE: signature key expired %s\n"
+msgstr "NOTERA: signaturnyckeln �r f�r gammal, gick ut vid %s\n"
+
+#: g10/sig-check.c:385
+msgid "assuming bad signature due to an unknown critical bit\n"
+msgstr ""
+"antar att signaturen �r felaktig eftersom en ok�nd kritisk bit �r satt\n"
+
+#: g10/sign.c:139
+#, c-format
+msgid "%s signature from: %s\n"
+msgstr "%s-signatur fr�n: %s\n"
+
+#: g10/sign.c:270 g10/sign.c:582
+#, c-format
+msgid "can't create %s: %s\n"
+msgstr "kan inte skapa %s: %s\n"
+
+#: g10/sign.c:368
+msgid "signing:"
+msgstr "signerar:"
+
+#: g10/sign.c:411
+#, c-format
+msgid "WARNING: `%s' is an empty file\n"
+msgstr "VARNING: \"%s\" �r en tom fil\n"
+
+#: g10/textfilter.c:134
+#, c-format
+msgid "can't handle text lines longer than %d characters\n"
+msgstr "kan inte hantera text med rader l�ngre �n %d tecken\n"
+
+#: g10/textfilter.c:231
+#, c-format
+msgid "input line longer than %d characters\n"
+msgstr "indataraden �r l�ngre �n %d tecken\n"
+
+#: g10/tdbio.c:116 g10/tdbio.c:1623
+#, c-format
+msgid "trustdb rec %lu: lseek failed: %s\n"
+msgstr "tillitsdatabasposten %lu: lseek misslyckades: %s\n"
+
+#: g10/tdbio.c:122 g10/tdbio.c:1630
+#, c-format
+msgid "trustdb rec %lu: write failed (n=%d): %s\n"
+msgstr "tillitsdatabasposten %lu: skrivning misslyckades (n=%d): %s\n"
+
+#: g10/tdbio.c:232
+msgid "trustdb transaction too large\n"
+msgstr "tillitsdatabastransaktion f�r stor\n"
+
+#: g10/tdbio.c:424
+#, c-format
+msgid "%s: can't access: %s\n"
+msgstr "%s: ingen �tkomst: %s\n"
+
+#: g10/tdbio.c:438
+#, c-format
+msgid "%s: directory does not exist!\n"
+msgstr "%s: katalogen finns inte!\n"
+
+#: g10/openfile.c:216 g10/openfile.c:284 g10/ringedit.c:1363 g10/tdbio.c:444
+#, c-format
+msgid "%s: can't create: %s\n"
+msgstr "%s: kan inte skapa: %s\n"
+
+#: g10/tdbio.c:459 g10/tdbio.c:508
+#, c-format
+msgid "%s: can't create lock\n"
+msgstr "%s: kan inte skapa l�s\n"
+
+#: g10/tdbio.c:473
+#, c-format
+msgid "%s: failed to create version record: %s"
+msgstr "%s: misslyckades med att skapa versionspost: %s"
+
+#: g10/tdbio.c:477
+#, c-format
+msgid "%s: invalid trustdb created\n"
+msgstr "%s: felaktig tillitsdatabas skapad\n"
+
+#: g10/tdbio.c:480
+#, c-format
+msgid "%s: trustdb created\n"
+msgstr "%s: tillitsdatabas skapad\n"
+
+#: g10/tdbio.c:517
+#, c-format
+msgid "%s: invalid trustdb\n"
+msgstr "%s: felaktig tillitsdatabas\n"
+
+#: g10/tdbio.c:550
+#, c-format
+msgid "%s: failed to create hashtable: %s\n"
+msgstr "%s: misslyckades med att skapa hash-tabell: %s\n"
+
+#: g10/tdbio.c:558
+#, c-format
+msgid "%s: error updating version record: %s\n"
+msgstr "%s: fel vid uppdatering av versionspost: %s\n"
+
+#: g10/tdbio.c:574 g10/tdbio.c:613 g10/tdbio.c:635 g10/tdbio.c:665
+#: g10/tdbio.c:690 g10/tdbio.c:1556 g10/tdbio.c:1583
+#, c-format
+msgid "%s: error reading version record: %s\n"
+msgstr "%s: fel vid l�sning av versionspost: %s\n"
+
+#: g10/tdbio.c:587 g10/tdbio.c:646
+#, c-format
+msgid "%s: error writing version record: %s\n"
+msgstr "%s: fel vid skrivning av versionspost: %s\n"
+
+#: g10/tdbio.c:1235
+#, c-format
+msgid "trustdb: lseek failed: %s\n"
+msgstr "tillitsdatabas: lseek misslyckades: %s\n"
+
+#: g10/tdbio.c:1243
+#, c-format
+msgid "trustdb: read failed (n=%d): %s\n"
+msgstr "tillitsdatabas: l�sning misslyckades (n=%d): %s\n"
+
+#: g10/tdbio.c:1264
+#, c-format
+msgid "%s: not a trustdb file\n"
+msgstr "%s: ej en tillitsdatabasfil\n"
+
+#: g10/tdbio.c:1280
+#, c-format
+msgid "%s: version record with recnum %lu\n"
+msgstr "%s: versionspost med postnummer %lu\n"
+
+#: g10/tdbio.c:1285
+#, c-format
+msgid "%s: invalid file version %d\n"
+msgstr "%s: ogiltig filversion %d\n"
+
+#: g10/tdbio.c:1589
+#, c-format
+msgid "%s: error reading free record: %s\n"
+msgstr "%s: fel vid l�sning av ledig post: %s\n"
+
+#: g10/tdbio.c:1597
+#, c-format
+msgid "%s: error writing dir record: %s\n"
+msgstr "%s: fel vid l�sning av katalogpost: %s\n"
+
+#: g10/tdbio.c:1607
+#, c-format
+msgid "%s: failed to zero a record: %s\n"
+msgstr "%s: misslyckades med att nollst�lla en post: %s\n"
+
+#: g10/tdbio.c:1637
+#, c-format
+msgid "%s: failed to append a record: %s\n"
+msgstr "%s: misslyckades med att l�gga till en post: %s\n"
+
+#: g10/tdbio.c:1748
+msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
+msgstr "tillitsdatabasen �r trasig, k�r \"gpg --fix-trustdb\".\n"
+
+# req �r nog felstavat i originalet d� det syftar p� record och inte
+# request
+#: g10/trustdb.c:168
+#, c-format
+msgid "trust record %lu, req type %d: read failed: %s\n"
+msgstr "tillitspost %lu, posttyp %d: kunde inte l�sa: %s\n"
+
+#: g10/trustdb.c:183
+#, c-format
+msgid "trust record %lu, type %d: write failed: %s\n"
+msgstr "tillitspost: %lu, typ %d: kunde inte skriva: %s\n"
+
+#: g10/trustdb.c:197
+#, c-format
+msgid "trust record %lu: delete failed: %s\n"
+msgstr "tillitspost %lu: kunde inte radera: %s\n"
+
+#: g10/trustdb.c:211
+#, c-format
+msgid "trustdb: sync failed: %s\n"
+msgstr "tillitsdatabas: synkronisering misslyckades: %s\n"
+
+# LID betyder local id och �r serienumret i den lokala databasen
+# f�r en given nyckel
+#: g10/trustdb.c:376
+#, c-format
+msgid "error reading dir record for LID %lu: %s\n"
+msgstr "fel vid l�sning av katalogpost f�r lokalt id %lu: %s\n"
+
+#: g10/trustdb.c:383
+#, c-format
+msgid "lid %lu: expected dir record, got type %d\n"
+msgstr "lokalt id %lu: v�ntade en katalogpost, fick en post av typen %d\n"
+
+#: g10/trustdb.c:388
+#, c-format
+msgid "no primary key for LID %lu\n"
+msgstr "ingen prim�r nyckel f�r lokalt id %lu\n"
+
+#: g10/trustdb.c:393
+#, c-format
+msgid "error reading primary key for LID %lu: %s\n"
+msgstr "fel vid l�sning av prim�r nyckel f�r lokalt id %lu: %s\n"
+
+#: g10/trustdb.c:432
+#, c-format
+msgid "get_dir_record: search_record failed: %s\n"
+msgstr "get_dir_record: search_record misslyckades: %s\n"
+
+#: g10/trustdb.c:487
+#, c-format
+msgid "NOTE: secret key %08lX is NOT protected.\n"
+msgstr "NOTERA: den hemliga nyckeln %08lX �r INTE skyddad.\n"
+
+#: g10/trustdb.c:495
+#, c-format
+msgid "key %08lX: secret key without public key - skipped\n"
+msgstr "nyckel %08lX: hemlig nyckel utan publik nyckel - hoppade �ver\n"
+
+#: g10/trustdb.c:502
+#, c-format
+msgid "key %08lX: secret and public key don't match\n"
+msgstr "nyckel %08lX: hemlig och publik nyckel st�mmer inte �verens\n"
+
+#: g10/trustdb.c:514
+#, c-format
+msgid "key %08lX: can't put it into the trustdb\n"
+msgstr "nyckel %08lX: kan inte l�gga till i tillitsdatabasen\n"
+
+#: g10/trustdb.c:520
+#, c-format
+msgid "key %08lX: query record failed\n"
+msgstr "nyckel %08lX: uppslagning av post misslyckades\n"
+
+#: g10/trustdb.c:529
+#, c-format
+msgid "key %08lX: already in trusted key table\n"
+msgstr "nyckel %08lX: finns redan i tabellen �ver p�litliga nycklar\n"
+
+#: g10/trustdb.c:532
+#, c-format
+msgid "key %08lX: accepted as trusted key.\n"
+msgstr "nyckel %08lX: accepterad som en p�litlig nyckel\n"
+
+#: g10/trustdb.c:540
+#, c-format
+msgid "enumerate secret keys failed: %s\n"
+msgstr "numrering av hemliga nycklar misslyckades: %s\n"
+
+#: g10/trustdb.c:921
+#, c-format
+msgid "key %08lX.%lu: Good subkey binding\n"
+msgstr "nyckel: %08lX.%lu: Korrekt bindning till undernyckel\n"
+
+#: g10/trustdb.c:927 g10/trustdb.c:962
+#, c-format
+msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
+msgstr "nyckel %08lX.%lu: Felaktig bindning till undernyckel: %s\n"
+
+#: g10/trustdb.c:939
+#, c-format
+msgid "key %08lX.%lu: Valid key revocation\n"
+msgstr "nyckel %08lX.%lu: Giltig �terkallelse av nyckel\n"
+
+#: g10/trustdb.c:945
+#, c-format
+msgid "key %08lX.%lu: Invalid key revocation: %s\n"
+msgstr "nyckel %08lX.%lu: Felaktig �terkallelse av nyckel: %s\n"
+
+#: g10/trustdb.c:956
+#, c-format
+msgid "key %08lX.%lu: Valid subkey revocation\n"
+msgstr "nyckel %08lX.%lu: Giltig �terkallelse av undernyckel\n"
+
+#: g10/trustdb.c:1067
+msgid "Good self-signature"
+msgstr "Korrekt sj�lvsignatur"
+
+#: g10/trustdb.c:1077
+msgid "Invalid self-signature"
+msgstr "Felaktig sj�lvsignatur"
+
+# detta verkar mycket m�rkligt. N�gon borde kanske f� en f�rklaring fr�n
+# gnupg-utvecklarna?
+#: g10/trustdb.c:1104
+msgid "Valid user ID revocation skipped due to a newer self signature"
+msgstr ""
+"Hoppade �ver en giltig �terkallelse av anv�ndaridentiteten p�\n"
+"grund av en nyare sj�lvsignatur"
+
+#: g10/trustdb.c:1110
+msgid "Valid user ID revocation"
+msgstr "Giltig �terkallelse av anv�ndaridentitet"
+
+#: g10/trustdb.c:1115
+msgid "Invalid user ID revocation"
+msgstr "Ogiltig �terkallelse av anv�ndaridentitet"
+
+#: g10/trustdb.c:1157
+msgid "Valid certificate revocation"
+msgstr "Giltig �terkallelse av certifikat"
+
+#: g10/trustdb.c:1158
+msgid "Good certificate"
+msgstr "Korrekt certifikat"
+
+#: g10/trustdb.c:1186
+msgid "Invalid certificate revocation"
+msgstr "Ogiltig �terkallelse av certifikat "
+
+#: g10/trustdb.c:1187
+msgid "Invalid certificate"
+msgstr "Ogiltigt certifikat"
+
+#: g10/trustdb.c:1204 g10/trustdb.c:1208
+#, c-format
+msgid "sig record %lu[%d] points to wrong record.\n"
+msgstr "signaturpost %lu[%d] pekar mot fel post.\n"
+
+#: g10/trustdb.c:1267
+msgid "duplicated certificate - deleted"
+msgstr "dubblett av certifikat - borttaget"
+
+#: g10/trustdb.c:1584
+#, c-format
+msgid "tdbio_search_dir failed: %s\n"
+msgstr "tdbio_search_dir misslyckades: %s\n"
+
+#: g10/trustdb.c:1718
+#, c-format
+msgid "lid ?: insert failed: %s\n"
+msgstr "lokalt id ?: till�gg misslyckades: %s\n"
+
+#: g10/trustdb.c:1723
+#, c-format
+msgid "lid %lu: insert failed: %s\n"
+msgstr "lokalt id %lu: till�gg misslyckades: %s\n"
+
+#: g10/trustdb.c:1729
+#, c-format
+msgid "lid %lu: inserted\n"
+msgstr "lokalt id %lu: lades till\n"
+
+#: g10/trustdb.c:1734
+#, c-format
+msgid "error reading dir record: %s\n"
+msgstr "fel vid l�sning av katalogpost: %s\n"
+
+#: g10/trustdb.c:1742 g10/trustdb.c:1805
+#, c-format
+msgid "%lu keys processed\n"
+msgstr "%lu nycklar behandlade\n"
+
+#: g10/trustdb.c:1744 g10/trustdb.c:1811
+#, c-format
+msgid "\t%lu keys with errors\n"
+msgstr "\t%lu nycklar med fel\n"
+
+#: g10/trustdb.c:1746
+#, c-format
+msgid "\t%lu keys inserted\n"
+msgstr "\t%lu nycklar tillagda\n"
+
+#: g10/trustdb.c:1749
+#, c-format
+msgid "enumerate keyblocks failed: %s\n"
+msgstr "numrering av nyckelblock misslyckades: %s\n"
+
+#: g10/trustdb.c:1797
+#, c-format
+msgid "lid %lu: dir record w/o key - skipped\n"
+msgstr "lokalt id %lu: katalogpost utan nyckel - hoppade �ver\n"
+
+#: g10/trustdb.c:1807
+#, c-format
+msgid "\t%lu due to new pubkeys\n"
+msgstr "\t%lu p� grund av nya publika nycklar\n"
+
+#: g10/trustdb.c:1809
+#, c-format
+msgid "\t%lu keys skipped\n"
+msgstr "\t%lu nycklar hoppades �ver\n"
+
+#: g10/trustdb.c:1813
+#, c-format
+msgid "\t%lu keys updated\n"
+msgstr "\t%lu nycklar uppdaterades\n"
+
+#: g10/trustdb.c:2158
+msgid "Ooops, no keys\n"
+msgstr "Ooops, inga nycklar\n"
+
+#: g10/trustdb.c:2162
+msgid "Ooops, no user IDs\n"
+msgstr "Ooops, inga anv�ndaridentiteter\n"
+
+#: g10/trustdb.c:2320
+#, c-format
+msgid "check_trust: search dir record failed: %s\n"
+msgstr "check_trust: s�kning av katalogpost misslyckades: %s\n"
+
+#: g10/trustdb.c:2329
+#, c-format
+msgid "key %08lX: insert trust record failed: %s\n"
+msgstr "nyckel %08lX: till�gg av tillitspost misslyckades: %s\n"
+
+#: g10/trustdb.c:2333
+#, c-format
+msgid "key %08lX.%lu: inserted into trustdb\n"
+msgstr "nyckel %08lX.%lu: lades till i tillitsdatabasen\n"
+
+#: g10/trustdb.c:2341
+#, c-format
+msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
+msgstr ""
+"nyckel %08lX.%lu: skapad i framtiden (problemet �r relaterat till\n"
+"tidsresande eller en felst�lld klocka)\n"
+
+#: g10/trustdb.c:2356
+#, c-format
+msgid "key %08lX.%lu: expired at %s\n"
+msgstr "nyckel %08lX.%lu: gick ut %s\n"
+
+#: g10/trustdb.c:2364
+#, c-format
+msgid "key %08lX.%lu: trust check failed: %s\n"
+msgstr "nyckel %08lX.%lu: tillitskontroll misslyckades: %s\n"
+
+#: g10/trustdb.c:2515
+#, c-format
+msgid "user '%s' not found: %s\n"
+msgstr "anv�ndaren \"%s\" hittades inte: %s\n"
+
+#: g10/trustdb.c:2517
+#, c-format
+msgid "problem finding '%s' in trustdb: %s\n"
+msgstr "problem att hitta \"%s\" i tillitsdatabasen: %s\n"
+
+#: g10/trustdb.c:2520
+#, c-format
+msgid "user '%s' not in trustdb - inserting\n"
+msgstr "anv�ndaren \"%s\" finns inte tillitsdatabasen - l�gger till\n"
+
+#: g10/trustdb.c:2523
+#, c-format
+msgid "failed to put '%s' into trustdb: %s\n"
+msgstr "misslyckades med att placera \"%s\" i tillitsdatabasen: %s\n"
+
+#: g10/trustdb.c:2709 g10/trustdb.c:2739
+msgid "WARNING: can't yet handle long pref records\n"
+msgstr "VARNING: kan �nnu inte hantera l�nga inst�llningsposter\n"
+
+#: g10/verify.c:82
+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 ""
+"signaturen kunde inte verifieras.\n"
+"Kom ih�g att signaturfilen (.sig eller .asc)\n"
+"ska vara den f�rst angivna filen p� kommandoraden\n"
+
+#: g10/verify.c:147
+#, c-format
+msgid "input line %u too long or missing LF\n"
+msgstr "raden %u �r f�r l�ng, eller saknar nyradstecken\n"
+
+#: g10/ringedit.c:302
+#, c-format
+msgid "%s: can't create keyring: %s\n"
+msgstr "%s: kan inte skapa nyckelring: %s\n"
+
+#: g10/ringedit.c:319 g10/ringedit.c:1368
+#, c-format
+msgid "%s: keyring created\n"
+msgstr "%s: nyckelring skapad\n"
+
+# m�rkligt felmeddelande, kolla upp
+#: g10/ringedit.c:1545
+msgid "WARNING: 2 files with confidential information exists.\n"
+msgstr "VARNING: det finns 2 filer med konfidentiell information.\n"
+
+#: g10/ringedit.c:1546
+#, c-format
+msgid "%s is the unchanged one\n"
+msgstr "%s �r den of�r�ndrade\n"
+
+#: g10/ringedit.c:1547
+#, c-format
+msgid "%s is the new one\n"
+msgstr "%s �r den nya\n"
+
+#: g10/ringedit.c:1548
+msgid "Please fix this possible security flaw\n"
+msgstr "L�s detta potentiella s�kerhetsproblem\n"
+
+# om n�gon kan tala om f�r mig vad detta betyder skulle jag bli j�tteglad!
+#: g10/skclist.c:88 g10/skclist.c:125
+msgid "key is not flagged as insecure - can't use it with the faked RNG!\n"
+msgstr ""
+"nyckeln �r inte markerad os�ker - g�r inte att anv�nda med fejkad RNG!\n"
+
+#: g10/skclist.c:113
+#, c-format
+msgid "skipped `%s': %s\n"
+msgstr "hoppade �ver \"%s\": %s\n"
+
+#: g10/skclist.c:119
+#, c-format
+msgid ""
+"skipped `%s': this is a PGP generated ElGamal key which is not secure for "
+"signatures!\n"
+msgstr ""
+"hoppade �ver \"%s\": detta �r en nyckel av ElGamal-typ genererad av PGP\n"
+"som inte �r s�ker f�r signaturer!\n"
+
+#. do not overwrite
+#: g10/openfile.c:79
+#, c-format
+msgid "File `%s' exists. "
+msgstr "Filen \"%s\" finns. "
+
+#: g10/openfile.c:81
+msgid "Overwrite (y/N)? "
+msgstr "Skriv �ver (j/N)? "
+
+#: g10/openfile.c:109
+#, c-format
+msgid "%s: unknown suffix\n"
+msgstr "%s: ok�nt suffix\n"
+
+#: g10/openfile.c:131
+msgid "Enter new filename"
+msgstr "Ange nytt filnamn"
+
+#: g10/openfile.c:172
+msgid "writing to stdout\n"
+msgstr "skriver till standard ut\n"
+
+#: g10/openfile.c:250
+#, c-format
+msgid "assuming signed data in `%s'\n"
+msgstr "antar att signera data finns i filen \"%s\"\n"
+
+#: g10/openfile.c:300
+#, c-format
+msgid "%s: new options file created\n"
+msgstr "%s: ny inst�llningsfil skapad\n"
+
+#: g10/openfile.c:313
+#, c-format
+msgid "%s: can't create directory: %s\n"
+msgstr "%s: kan inte skapa katalog: %s\n"
+
+#: g10/openfile.c:316
+#, c-format
+msgid "%s: directory created\n"
+msgstr "%s: katalog skapad\n"
+
+# GnuPG borde v�l ers�ttas med %s?
+#: g10/openfile.c:318
+msgid "you have to start GnuPG again, so it can read the new options file\n"
+msgstr "du m�ste starta om GnuPG, s� att den nya inst�llningsfilen kan l�sas\n"
+
+#: g10/encr-data.c:66
+#, c-format
+msgid "%s encrypted data\n"
+msgstr "%s krypterad data\n"
+
+#: g10/encr-data.c:68
+#, c-format
+msgid "encrypted with unknown algorithm %d\n"
+msgstr "krypterad med en ok�nd algoritm %d\n"
+
+#: g10/encr-data.c:85
+msgid ""
+"WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
+msgstr ""
+"VARNING: meddelandet krypterades med en svag nyckel i det symmetriska\n"
+"chiffret.\n"
+
+#: g10/seskey.c:52
+msgid "weak key created - retrying\n"
+msgstr "skapade en svag nyckel - f�rs�ker igen\n"
+
+#: g10/seskey.c:57
+#, c-format
+msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
+msgstr ""
+"kan inte undvika en svag nyckel f�r symmetriskt chiffer; f�rs�kte\n"
+"%d g�nger!\n"
+
+#: g10/delkey.c:94
+msgid "there is a secret key for this public key!\n"
+msgstr "det finns en hemlig nyckel tillh�rande denna publika nyckel!\n"
+
+#: g10/delkey.c:96
+msgid "use option \"--delete-secret-key\" to delete it first.\n"
+msgstr "anv�nd flaggan \"--delete-secret-key\" f�r att ta bort den f�rst.\n"
+
+#: g10/delkey.c:114
+msgid "can't do that in batchmode without \"--yes\"\n"
+msgstr "kan inte g�ra s� i batch-l�ge utan flaggan \"--yes\"\n"
+
+#: g10/delkey.c:136
+msgid "Delete this key from the keyring? "
+msgstr "Vill du ta bort denna nyckel fr�n nyckelringen? "
+
+#: g10/delkey.c:144
+msgid "This is a secret key! - really delete? "
+msgstr "Detta �r en hemlig nyckel! - vill du verkligen ta bort den? "
+
+#: g10/helptext.c:47
+msgid ""
+"It's up to you to assign a value here; this value will never be exported\n"
+"to any 3rd party. We need it to implement the web-of-trust; it has nothing\n"
+"to do with the (implicitly created) web-of-certificates."
+msgstr ""
+"Det �r upp till dig att ange ett v�rde h�r. Detta v�rde kommer aldrig att\n"
+"exporteras till n�gon tredje part. Vi beh�ver det f�r att implementera\n"
+"\"n�tet av tillit\". Det har inget att g�ra med det (implicit skapade)\n"
+"n�tet av certifikat."
+
+#: g10/helptext.c:53
+msgid "If you want to use this revoked key anyway, answer \"yes\"."
+msgstr "Om du vill anv�nda denna �terkallade nyckel �nd�, svara \"ja\"."
+
+#: g10/helptext.c:57
+msgid "If you want to use this untrusted key anyway, answer \"yes\"."
+msgstr "Om du vill anv�nda denna otillf�rlitliga nyckel �nd�, svara \"ja\"."
+
+#: g10/helptext.c:61
+msgid ""
+"Enter the user ID of the addressee to whom you want to send the message."
+msgstr "Ange anv�ndaridentiteten till vilken du vill skicka meddelandet."
+
+#: g10/helptext.c:65
+msgid ""
+"Select the algorithm to use.\n"
+"\n"
+"DSA (aka DSS) is the digital signature algorithm which can only be used\n"
+"for signatures. This is the suggested algorithm because verification of\n"
+"DSA signatures are much faster than those of ElGamal.\n"
+"\n"
+"ElGamal is an algorithm which can be used for signatures and encryption.\n"
+"OpenPGP distinguishs between two flavors of this algorithms: an encrypt "
+"only\n"
+"and a sign+encrypt; actually it is the same, but some parameters must be\n"
+"selected in a special way to create a safe key for signatures: this program\n"
+"does this but other OpenPGP implementations are not required to understand\n"
+"the signature+encryption flavor.\n"
+"\n"
+"The first (primary) key must always be a key which is capable of signing;\n"
+"this is the reason why the encryption only ElGamal key is not available in\n"
+"this menu."
+msgstr ""
+"V�lj vilken algoritm du vill anv�nda.\n"
+"\n"
+"DSA (�ven k�nd som DSS) �r den algoritm f�r digitala signaturer som bara\n"
+"kan anv�ndas f�r just signaturer. Detta �r den rekommenderade algoritmen\n"
+"eftersom verifiering av DSA-signaturer �r mycket snabbare �n\n"
+"ElGamal-signaturer.\n"
+"\n"
+"ElGamal �r en algoritm som kan anv�ndas f�r signaturer och kryptering.\n"
+"OpenPGP-standarden skiljer p� tv� varianter av denna algoritm: en som bara\n"
+"kan anv�ndas f�r kryptering och en som b�de kan signera och kryptera.\n"
+"Egentligen �r det samma algoritm, men vissa parametrar m�ste v�ljas p�\n"
+"ett speciellt s�tt f�r att skapa en s�ker nyckel f�r signaturer: detta "
+"program\n"
+"g�r detta men andra OpenPGP-implementationer beh�ver inte f�rst�\n"
+"signatur+kryptering varianten.\n"
+"\n"
+"Den f�rsta (prim�ra) nyckeln m�ste alltid vara en nyckel som kan anv�ndas\n"
+"f�r att skapa signaturer. Detta �r anledningen till att den ElGamal-variant\n"
+"som bara krypterar inte �r tillg�nglig i denna meny"
+
+#: g10/helptext.c:85
+#, fuzzy
+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 ""
+"Trots att dessa nycklar �r definierade i RFC2440 �r det inte rekommenderat\n"
+"att anv�nda dem eftersom de inte st�ds i alla program och signaturer\n"
+"skapade med dem �r stora och mycket l�ngsamma att verifiera.\n"
+
+#: g10/helptext.c:92
+msgid "Enter the size of the key"
+msgstr "Ange storleken p� nyckeln"
+
+#: g10/helptext.c:96 g10/helptext.c:101 g10/helptext.c:113 g10/helptext.c:145
+#: g10/helptext.c:150 g10/helptext.c:155 g10/helptext.c:160
+msgid "Answer \"yes\" or \"no\""
+msgstr "Svara \"ja\" eller \"nej\""
+
+#: g10/helptext.c:106
+msgid ""
+"Enter the required value as shown in the prompt.\n"
+"It is possible to enter a ISO date (YYYY-MM-DD) but you won't\n"
+"get a good error response - instead the system tries to interpret\n"
+"the given value as an interval."
+msgstr ""
+"Ange v�rdet som kr�vs som det visas vid prompten.\n"
+"Det �r m�jligt att ange ett ISO-datum (����-MM-DD) men du kommer\n"
+"inte att f� n�got vettigt felmeddelande - ist�llet kommer systemet\n"
+"att f�rs�ka tolka det angivna v�rdet som ett intervall."
+
+#: g10/helptext.c:118
+msgid "Enter the name of the key holder"
+msgstr "Ange namnet p� nyckelns �gare"
+
+#: g10/helptext.c:123
+msgid "please enter an optional but highly suggested email address"
+msgstr "ange en epostadress. Detta �r valfritt men rekommenderas varmt"
+
+#: g10/helptext.c:127
+msgid "Please enter an optional comment"
+msgstr "Ange en valfri kommentar"
+
+#: g10/helptext.c:132
+msgid ""
+"N to change the name.\n"
+"C to change the comment.\n"
+"E to change the email address.\n"
+"O to continue with key generation.\n"
+"Q to to quit the key generation."
+msgstr ""
+"N f�r att �ndra namnet.\n"
+"C f�r att �ndra kommentaren.\n"
+"E f�r att �ndra epostadressen.\n"
+"O f�r att forts�tta med nyckelgenerering.\n"
+"Q f�r att avsluta nyckelgenereringen."
+
+#: g10/helptext.c:141
+msgid "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
+msgstr "Svara \"ja\" (eller bara \"j\") om du vill generera denna undernyckel."
+
+# felstavat original
+#: g10/helptext.c:164
+msgid "Answer \"yes\" is you want to sign ALL the user IDs"
+msgstr "Svara \"ja\" om du vill signera ALLA anv�ndaridentiteter"
+
+#: g10/helptext.c:168
+msgid ""
+"Answer \"yes\" if you really want to delete this user ID.\n"
+"All certificates are then also lost!"
+msgstr ""
+"Svara \"ja\" om du verkligen vill ta bort denna anv�ndaridentitet.\n"
+"Alla certifikat kommer att g� f�rlorade!"
+
+#: g10/helptext.c:173
+msgid "Answer \"yes\" if it is okay to delete the subkey"
+msgstr "Svara \"ja\" om du vill ta bort denna undernyckel"
+
+#: g10/helptext.c:178
+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 ""
+"Detta �r en giltig signatur p� nyckeln. Normalt sett vill du inte\n"
+"ta bort denna signatur eftersom den kan vara viktig f�r att skapa\n"
+"en tillitskoppling till nyckeln eller en annan nyckel som �r\n"
+"certifierad av denna nyckel."
+
+#: g10/helptext.c:183
+msgid ""
+"This signature can't be checked because you don't have the\n"
+"corresponding key. You should postpone its deletion until you\n"
+"know which key was used because this signing key might establish\n"
+"a trust connection through another already certified key."
+msgstr ""
+"Denna signatur kan inte verifieras eftersom du inte har den\n"
+"motsvarande nyckeln. Du b�r v�nta med att ta bort den tills du\n"
+"vet vilken nyckel som anv�ndes eftersom den nyckeln kanske uppr�ttar\n"
+"en tillitskoppling genom en annan redan certifierad nyckel."
+
+#: g10/helptext.c:189
+msgid ""
+"The signature is not valid. It does make sense to remove it from\n"
+"your keyring."
+msgstr ""
+"Denna signatur �r inte giltig. Det �r rimligt att ta bort den fr�n\n"
+"din nyckelring."
+
+# borde inge GnuPG bytas ut mot gpg eller �nnu b�ttre %s?
+#: g10/helptext.c:193
+msgid ""
+"This is a signature which binds the user ID to the key. It is\n"
+"usually not a good idea to remove such a signature. Actually\n"
+"GnuPG might not be able to use this key anymore. So do this\n"
+"only if this self-signature is for some reason not valid and\n"
+"a second one is available."
+msgstr ""
+"Detta �r en signatur som knyter anv�ndaridentiteten till denna nyckel.\n"
+"Det �r oftast inte en bra id� att ta bort en s�dan signatur. Till\n"
+"och med kan det bli s� att GnuPG kanske inte kan anv�nda denna nyckel\n"
+"mer. S� g�r bara detta om denna sj�lvsignatur av n�gon anledning �r\n"
+"ogiltig och det finns en andra signatur som tillg�nglig."
+
+# ej klar, eller?
+#: g10/helptext.c:202
+msgid ""
+"Please enter the passhrase; this is a secret sentence \n"
+" Blurb, blurb,.... "
+msgstr ""
+"Ange en l�senordsfras. Detta �r en hemlig mening\n"
+"[hj�lptexten ej f�rdigst�lld]"
+
+#: g10/helptext.c:209
+msgid "Please repeat the last passphrase, so you are sure what you typed in."
+msgstr "Reptera l�senordsfrasen, s� du �r s�ker p� vad du skrev in."
+
+# # felstavat/ologiskt original
+#: g10/helptext.c:213
+msgid "Give the name of the file to which the signature applies"
+msgstr "Ange namnet p� den fil signaturen g�ller"
+
+#: g10/helptext.c:218
+msgid "Answer \"yes\" if it is okay to overwrite the file"
+msgstr "Svara \"ja\" om det du vill skriva �ver filen"
+
+#: g10/helptext.c:223
+msgid ""
+"Please enter a new filename. If you just hit RETURN the default\n"
+"file (which is shown in brackets) will be used."
+msgstr ""
+"Ange ett nytt filnamn. Om du bara trycker RETUR kommer standarfilnamnet\n"
+"(som anges i hakparenteser) att anv�ndas."
+
+#: g10/helptext.c:229
+msgid ""
+"You should specify a reason for the certification. Depending on the\n"
+"context you have the ability to choose from this list:\n"
+" \"Key has been compromised\"\n"
+" Use this if you have a reason to believe that unauthorized persons\n"
+" got access to your secret key.\n"
+" \"Key is superseeded\"\n"
+" Use this if you have replaced this key with a newer one.\n"
+" \"Key is no longer used\"\n"
+" Use this if you have retired this key.\n"
+" \"User ID is no longer valid\"\n"
+" 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 ""
+
+#: g10/helptext.c:245
+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 ""
+
+#: g10/helptext.c:260
+msgid "No help available"
+msgstr "Det finns ingen hj�lp tillg�nglig"
+
+#: g10/helptext.c:268
+#, c-format
+msgid "No help available for `%s'"
+msgstr "Det finns ingen hj�lp tillg�nglig f�r \"%s\""
+
+#~ msgid "set debugging flags"
+#~ msgstr "s�tt debug-flaggor"
+
+#~ msgid "enable full debugging"
+#~ msgstr "aktivera fullt debug-l�ge"
+
+#~ msgid "do not write comment packets"
+#~ msgstr "skriv inte ut kommentarpaket"
+
+#~ msgid "(default is 1)"
+#~ msgstr "(standardv�rdet �r 1)"
+
+#~ msgid "(default is 3)"
+#~ msgstr "(standardv�rdet �r 3)"
+
+#~ msgid " (%d) ElGamal in a v3 packet\n"
+#~ msgstr " (%d) ElGamal i ett v3-paket\n"
+
+#~ msgid "Key generation can only be used in interactive mode\n"
+#~ msgstr "Nycklar kan bara genereras i interaktivt l�ge\n"
diff --git a/scripts/ChangeLog b/scripts/ChangeLog
index ce00b3698..1b00eae3b 100644
--- a/scripts/ChangeLog
+++ b/scripts/ChangeLog
@@ -1,28 +1,46 @@
-Wed Sep 15 16:22:17 CEST 1999 Werner Koch <[email protected]>
+Fri May 12 14:01:20 CEST 2000 Werner Koch <[email protected]>
+
+ * gnupg.spec.in: New version from Fabio with some updated descriptions.
+
+Mon May 1 15:38:04 CEST 2000 Werner Koch <[email protected]>
+
+ * gnupg.spec.in: New version from Fabio.
+
+Fri Mar 17 16:26:05 CET 2000 Werner Koch <[email protected]>
+
+ * config.gues, config.sub: Support for s390-ibm-linux-gnu. Thanks
+ to Holger Smolinski.
+
+Thu Mar 2 15:37:46 CET 2000 Werner Koch <[email protected]>
+
+ * config.guess: Add support for QNX. By Sam Roberts.
+ * config.sub: Ditto.
+Thu Sep 23 09:49:25 1999 Werner Koch ([email protected])
+
+ * commit: Remove leading and trailing empty lines when copying
+ Changes to Changelog
+
+Wed Sep 15 16:22:17 CEST 1999 Werner Koch <[email protected]>
* gnupg.spec: Add Portuguese description
Thu Sep 2 16:40:55 CEST 1999 Werner Koch <[email protected]>
-
* mkdiff: changed format of diff file name and made script more
general.
Wed Aug 4 10:34:18 CEST 1999 Werner Koch <[email protected]>
-
* config.guess: Updated from gnu/common and applied my emx patch again.
* config.sub: Updated from gnu/common.
Wed Jul 14 19:42:08 CEST 1999 Werner Koch <[email protected]>
-
* ltmain.sh, ltconfig.sh : Updated to libtool 1.3.3
Mon Jul 12 14:55:34 CEST 1999 Werner Koch <[email protected]>
-
* autogen.sh: Run libtoolize
Sat May 22 22:47:26 CEST 1999 Werner Koch <[email protected]>
diff --git a/scripts/autogen.sh b/scripts/autogen.sh
index 23cb5bd0d..e1ed0f645 100755
--- a/scripts/autogen.sh
+++ b/scripts/autogen.sh
@@ -7,7 +7,6 @@ DIE=no
autoconf_vers=2.13
automake_vers=1.4
aclocal_vers=1.4
-libtool_vers=1.3
if (autoconf --version) < /dev/null > /dev/null 2>&1 ; then
if (autoconf --version | awk 'NR==1 { if( $3 >= '$autoconf_vers') \
@@ -65,31 +64,12 @@ if (gettext --version </dev/null 2>/dev/null | awk 'NR==1 { split($4,A,"\."); \
fi
-if (libtool --version) < /dev/null > /dev/null 2>&1 ; then
- if (libtool --version | awk 'NR==1 { if( $4 >= '$libtool_vers') \
- exit 1; exit 0; }');
- then
- echo "**Error**: "\`libtool\'" is too old."
- echo ' (version ' $libtool_vers ' or newer is required)'
- DIE="yes"
- fi
-else
- echo
- echo "**Error**: You must have "\`libtool\'" installed to compile $PGM."
- echo ' (version ' $libtool_vers ' or newer is required)'
- DIE="yes"
-fi
-
-
if test "$DIE" = "yes"; then
exit 1
fi
echo "Running gettextize... Ignore non-fatal messages."
echo "no" | gettextize --force
-echo "Running libtoolize... Ignore non-fatal messages."
-echo "no" | libtoolize
-
echo "Running aclocal..."
aclocal
diff --git a/scripts/commit b/scripts/commit
index 992f93c3d..6bfa0a615 100755
--- a/scripts/commit
+++ b/scripts/commit
@@ -11,15 +11,25 @@ addr="<`id -un`@`hostname -d`>"
for i in `find . -name Changes -print`; do
dir=`dirname $i`
if [ -s $dir/Changes ]; then
- lines=`wc -l <$dir/Changes`
- echo "$date $name $addr" >$dir/ChangeLog.new
- echo >>$dir/ChangeLog.new
- cat $dir/Changes >>$dir/ChangeLog.new
- [ -f $dir/ChangeLog ] && cat $dir/ChangeLog >>$dir/ChangeLog.new
- echo -n > $dir/Changes
- [ -f $dir/ChangeLog ] && rm $dir/ChangeLog
- mv $dir/ChangeLog.new $dir/ChangeLog
- echo "$lines new lines in $dir/ChangeLog"
+ awk '
+ state == 0 && /^[ \t]*$/ { next }
+ state == 0 { state = 1 }
+ /^[ \t]*$/ { empty++; next }
+ { while ( empty > 0 ) { print ""; empty--; }; print }
+ ' < $dir/Changes > $dir/Changes.tmp
+ if [ -s $dir/Changes.tmp ]; then
+ lines=`wc -l <$dir/Changes.tmp`
+ echo "$date $name $addr" >$dir/ChangeLog.new
+ echo >>$dir/ChangeLog.new
+ cat $dir/Changes.tmp >>$dir/ChangeLog.new
+ echo >>$dir/ChangeLog.new
+ [ -f $dir/ChangeLog ] && cat $dir/ChangeLog >>$dir/ChangeLog.new
+ echo -n > $dir/Changes
+ [ -f $dir/ChangeLog ] && rm $dir/ChangeLog
+ mv $dir/ChangeLog.new $dir/ChangeLog
+ echo "$lines new lines in $dir/ChangeLog"
+ fi
+ rm $dir/Changes.tmp || true
fi
done
@@ -49,5 +59,5 @@ for i in `find . -name cvs-add -print`; do
fi
done
-cvs commit -m "See ChangeLog: $date $name" $*
+cvs -z3 commit -m "See ChangeLog: $date $name" $*
diff --git a/scripts/config.guess b/scripts/config.guess
index 46b3ea319..50fd53e39 100755
--- a/scripts/config.guess
+++ b/scripts/config.guess
@@ -10,7 +10,7 @@
#
# This program 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
+# 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
@@ -68,6 +68,9 @@ trap 'rm -f $dummy.c $dummy.o $dummy; exit 1' 1 2 15
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ *:QNX:*:*)
+ echo i386-pc-qnx
+ exit 0 ;;
alpha:OSF1:*:*)
if test $UNAME_RELEASE = "V4.0"; then
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
@@ -226,30 +229,30 @@ EOF
exit 0 ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
- # "atarist" or "atariste" at least should have a processor
+ # "atarist" or "atariste" at least should have a processor
# > m68000). The system name ranges from "MiNT" over "FreeMiNT"
# to the lowercase version "mint" (or "freemint"). Finally
# the system name "TOS" denotes a system which is actually not
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
+ echo m68k-atari-mint${UNAME_RELEASE}
exit 0 ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit 0 ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
+ echo m68k-atari-mint${UNAME_RELEASE}
exit 0 ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit 0 ;;
+ echo m68k-milan-mint${UNAME_RELEASE}
+ exit 0 ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
- exit 0 ;;
+ echo m68k-hades-mint${UNAME_RELEASE}
+ exit 0 ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
- exit 0 ;;
+ echo m68k-unknown-mint${UNAME_RELEASE}
+ exit 0 ;;
sun3*:NetBSD:*:*)
echo m68k-sun-netbsd${UNAME_RELEASE}
exit 0 ;;
@@ -272,8 +275,8 @@ EOF
echo powerpc-apple-machten${UNAME_RELEASE}
exit 0 ;;
macppc:NetBSD:*:*)
- echo powerpc-apple-netbsd${UNAME_RELEASE}
- exit 0 ;;
+ echo powerpc-apple-netbsd${UNAME_RELEASE}
+ exit 0 ;;
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
exit 0 ;;
@@ -287,7 +290,7 @@ EOF
echo clipper-intergraph-clix${UNAME_RELEASE}
exit 0 ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
- sed 's/^ //' << EOF >$dummy.c
+ sed 's/^ //' << EOF >$dummy.c
#ifdef __cplusplus
int main (int argc, char *argv[]) {
#else
@@ -326,19 +329,19 @@ EOF
echo m88k-motorola-sysv3
exit 0 ;;
AViiON:dgux:*:*)
- # DG/UX returns AViiON for all architectures
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
-o ${TARGET_BINARY_INTERFACE}x = x ] ; then
echo m88k-dg-dgux${UNAME_RELEASE}
else
echo m88k-dg-dguxbcs${UNAME_RELEASE}
fi
- else echo i586-dg-dgux${UNAME_RELEASE}
- fi
- exit 0 ;;
- M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ else echo i586-dg-dgux${UNAME_RELEASE}
+ fi
+ exit 0 ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
exit 0 ;;
M88*:*:R3*:*)
@@ -356,13 +359,13 @@ EOF
exit 0 ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
i?86:AIX:*:*)
echo i386-ibm-aix
exit 0 ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- sed 's/^ //' << EOF >$dummy.c
+ sed 's/^ //' << EOF >$dummy.c
#include <sys/systemcfg.h>
main()
@@ -402,9 +405,9 @@ EOF
ibmrt:4.4BSD:*|romp-ibm:BSD:*)
echo romp-ibm-bsd4.4
exit 0 ;;
- ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and
echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit 0 ;; # report: romp-ibm BSD 4.3
+ exit 0 ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
echo rs6000-bull-bosx
exit 0 ;;
@@ -419,39 +422,39 @@ EOF
exit 0 ;;
9000/[34678]??:HP-UX:*:*)
case "${UNAME_MACHINE}" in
- 9000/31? ) HP_ARCH=m68000 ;;
- 9000/[34]?? ) HP_ARCH=m68k ;;
+ 9000/31? ) HP_ARCH=m68000 ;;
+ 9000/[34]?? ) HP_ARCH=m68k ;;
9000/[678][0-9][0-9])
- sed 's/^ //' << EOF >$dummy.c
- #include <stdlib.h>
- #include <unistd.h>
+ sed 's/^ //' << EOF >$dummy.c
+ #include <stdlib.h>
+ #include <unistd.h>
- int main ()
- {
- #if defined(_SC_KERNEL_BITS)
- long bits = sysconf(_SC_KERNEL_BITS);
- #endif
- long cpu = sysconf (_SC_CPU_VERSION);
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
- switch (cpu)
- {
- case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
- case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
- case CPU_PA_RISC2_0:
- #if defined(_SC_KERNEL_BITS)
- switch (bits)
- {
- case 64: puts ("hppa2.0w"); break;
- case 32: puts ("hppa2.0n"); break;
- default: puts ("hppa2.0"); break;
- } break;
- #else /* !defined(_SC_KERNEL_BITS) */
- puts ("hppa2.0"); break;
- #endif
- default: puts ("hppa1.0"); break;
- }
- exit (0);
- }
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
EOF
($CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
rm -f $dummy.c $dummy
@@ -460,7 +463,7 @@ EOF
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
exit 0 ;;
3050*:HI-UX:*:*)
- sed 's/^ //' << EOF >$dummy.c
+ sed 's/^ //' << EOF >$dummy.c
#include <unistd.h>
int
main ()
@@ -468,7 +471,7 @@ EOF
long cpu = sysconf (_SC_CPU_VERSION);
/* The order matters, because CPU_IS_HP_MC68K erroneously returns
true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
- results, however. */
+ results, however. */
if (CPU_IS_PA_RISC (cpu))
{
switch (cpu)
@@ -519,25 +522,25 @@ EOF
exit 0 ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
- exit 0 ;;
+ exit 0 ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
- exit 0 ;;
+ exit 0 ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
- exit 0 ;;
+ exit 0 ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
- exit 0 ;;
+ exit 0 ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
- exit 0 ;;
+ exit 0 ;;
CRAY*X-MP:*:*:*)
echo xmp-cray-unicos
- exit 0 ;;
+ exit 0 ;;
CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos${UNAME_RELEASE}
exit 0 ;;
@@ -554,12 +557,12 @@ EOF
exit 0 ;;
CRAY-2:*:*:*)
echo cray2-cray-unicos
- exit 0 ;;
+ exit 0 ;;
F300:UNIX_System_V:*:*)
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit 0 ;;
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit 0 ;;
F301:UNIX_System_V:*:*)
echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'`
exit 0 ;;
@@ -631,16 +634,17 @@ EOF
ld_help_string=`cd /; ld --help 2>&1`
ld_supported_emulations=`echo $ld_help_string \
| sed -ne '/supported emulations:/!d
- s/[ ][ ]*/ /g
+ s/[ ][ ]*/ /g
s/.*supported emulations: *//
s/ .*//
p'`
- case "$ld_supported_emulations" in
+ case "$ld_supported_emulations" in
i?86linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 ;;
i?86coff) echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 ;;
sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
armlinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
m68klinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
+ elf_s390) echo "${UNAME_MACHINE}-ibm-linux-gnu" ; exit 0 ;;
elf32ppc)
# Determine Lib Version
cat >$dummy.c <<EOF
@@ -668,13 +672,13 @@ EOF
if test "$?" = 0 ; then
LIBC="libc1"
fi
- fi
+ fi
rm -f $dummy.c $dummy
echo powerpc-unknown-linux-gnu${LIBC} ; exit 0 ;;
esac
if test "${UNAME_MACHINE}" = "alpha" ; then
- sed 's/^ //' <<EOF >$dummy.s
+ sed 's/^ //' <<EOF >$dummy.s
.globl main
.ent main
main:
@@ -789,11 +793,11 @@ EOF
echo i386-sequent-sysv4
exit 0 ;;
i?86:UNIX_SV:4.2MP:2.*)
- # Unixware is an offshoot of SVR4, but it has its own version
- # number series starting with 2...
- # I am not positive that other SVR4 systems won't match this,
- # I just have to hope. -- rms.
- # Use sysv4.2uw... so that sysv4* matches it.
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
+ # I just have to hope. -- rms.
+ # Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
exit 0 ;;
i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
@@ -830,10 +834,10 @@ EOF
fi
exit 0 ;;
pc:*:*:*)
- # uname -m prints for DJGPP always 'pc', but it prints nothing about
- # the processor, so we play safe by assuming i386.
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i386.
echo i386-pc-msdosdjgpp
- exit 0 ;;
+ exit 0 ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
exit 0 ;;
@@ -862,8 +866,8 @@ EOF
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
&& echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
- /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4 && exit 0 ;;
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && echo i486-ncr-sysv4 && exit 0 ;;
m68*:LynxOS:2.*:*)
echo m68k-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
@@ -897,9 +901,9 @@ EOF
fi
exit 0 ;;
PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
- echo i586-unisys-sysv4
- exit 0 ;;
+ echo i586-unisys-sysv4
+ exit 0 ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <[email protected]>.
# How about differentiating between stratus architectures? -djm
@@ -917,11 +921,11 @@ EOF
exit 0 ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
+ echo mips-nec-sysv${UNAME_RELEASE}
else
- echo mips-unknown-sysv${UNAME_RELEASE}
+ echo mips-unknown-sysv${UNAME_RELEASE}
fi
- exit 0 ;;
+ exit 0 ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo powerpc-be-beos
exit 0 ;;
@@ -964,11 +968,11 @@ main ()
#include <sys/param.h>
printf ("m68k-sony-newsos%s\n",
#ifdef NEWSOS4
- "4"
+ "4"
#else
""
#endif
- ); exit (0);
+ ); exit (0);
#endif
#endif
@@ -1046,7 +1050,7 @@ main ()
#endif
#if defined(__EMX__)
- printf ("i386-pc-os2_emx"); exit(0);
+ printf ("i386-pc-os2_emx"); exit(0);
#endif
exit (1);
diff --git a/scripts/config.sub b/scripts/config.sub
index 2436b4534..0159f7208 100755
--- a/scripts/config.sub
+++ b/scripts/config.sub
@@ -12,7 +12,7 @@
#
# This program 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
+# 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
@@ -34,7 +34,7 @@
# and recognize all the CPU types, system types and aliases
# that are meaningful with *any* GNU software.
# Each package is responsible for reporting which valid configurations
-# it does not support. The user should be able to distinguish
+# it does not support. The user should be able to distinguish
# a failure to support a valid configuration from a meaningless
# configuration.
@@ -166,7 +166,7 @@ case $basic_machine in
| arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
| 580 | i960 | h8300 \
| hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
- | alpha | alphaev[4-7] | alphaev56 | alphapca5[67] \
+ | alpha | alphaev[4-7] | alphaev56 | alphapca5[67] | s390 \
| we32k | ns16k | clipper | i370 | sh | powerpc | powerpcle \
| 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \
| mips64orion | mips64orionel | mipstx39 | mipstx39el \
@@ -185,6 +185,12 @@ case $basic_machine in
i[34567]86)
basic_machine=$basic_machine-pc
;;
+ s390 | s390-ibm)
+ basic_machine=s390-ibm
+ ;;
+ s390-redhat)
+ basic_machine=s390-redhat
+ ;;
# Object if more than one company name word.
*-*-*)
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
@@ -600,7 +606,7 @@ case $basic_machine in
pbb)
basic_machine=m68k-tti
;;
- pc532 | pc532-*)
+ pc532 | pc532-*)
basic_machine=ns32k-pc532
;;
pentium | p5 | k5 | k6 | nexen)
@@ -627,12 +633,12 @@ case $basic_machine in
power) basic_machine=rs6000-ibm
;;
ppc) basic_machine=powerpc-unknown
- ;;
+ ;;
ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppcle | powerpclittle | ppc-le | powerpc-little)
basic_machine=powerpcle-unknown
- ;;
+ ;;
ppcle-* | powerpclittle-*)
basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
@@ -756,8 +762,8 @@ case $basic_machine in
os=-vms
;;
vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
- ;;
+ basic_machine=f301-fujitsu
+ ;;
vxworks960)
basic_machine=i960-wrs
os=-vxworks
@@ -782,7 +788,7 @@ case $basic_machine in
basic_machine=xmp-cray
os=-unicos
;;
- xps | xps100)
+ xps | xps100)
basic_machine=xps100-honeywell
;;
z8k-*-coff)
@@ -830,7 +836,7 @@ case $basic_machine in
sparc | sparcv9)
basic_machine=sparc-sun
;;
- cydra)
+ cydra)
basic_machine=cydra-cydrome
;;
orion)
@@ -872,8 +878,8 @@ esac
if [ x"$os" != x"" ]
then
case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
+ # First match some system type aliases
+ # that might get confused with valid system types.
# -solaris* is a basic system type, with this one exception.
-solaris1 | -solaris1.*)
os=`echo $os | sed -e 's|solaris1|sunos4|'`
@@ -881,6 +887,9 @@ case $os in
-solaris)
os=-solaris2
;;
+ -qnx)
+ os=-qnx
+ ;;
-svr4*)
os=-sysv4
;;
@@ -948,7 +957,7 @@ case $os in
os=-sysv
;;
-ns2 )
- os=-nextstep2
+ os=-nextstep2
;;
# Preserve the version number of sinix5.
-sinix5.*)
@@ -984,8 +993,8 @@ case $os in
-xenix)
os=-xenix
;;
- -*mint | -*MiNT)
- os=-mint
+ -*mint | -*MiNT)
+ os=-mint
;;
-none)
;;
@@ -1018,7 +1027,7 @@ case $basic_machine in
arm*-semi)
os=-aout
;;
- pdp11-*)
+ pdp11-*)
os=-none
;;
*-dec | vax-*)
@@ -1108,19 +1117,19 @@ case $basic_machine in
*-next)
os=-nextstep3
;;
- *-gould)
+ *-gould)
os=-sysv
;;
- *-highlevel)
+ *-highlevel)
os=-bsd
;;
*-encore)
os=-bsd
;;
- *-sgi)
+ *-sgi)
os=-irix
;;
- *-siemens)
+ *-siemens)
os=-sysv4
;;
*-masscomp)
diff --git a/scripts/distfiles b/scripts/distfiles
index 804b73f88..13127323a 100644
--- a/scripts/distfiles
+++ b/scripts/distfiles
@@ -7,6 +7,4 @@ missing
gnupg.spec.in
autogen.sh
ChangeLog
-ltconfig
-ltmain.sh
diff --git a/scripts/gnupg.spec.in b/scripts/gnupg.spec.in
index e116ea3b4..5ee69276c 100644
--- a/scripts/gnupg.spec.in
+++ b/scripts/gnupg.spec.in
@@ -4,21 +4,42 @@
#
%define version @pkg_version@
%define name gnupg
-Summary: GPL public key crypto
+Summary: GNU Utility for data encryption and digital signatures
+Summary(it): Utility GNU per la sicurezza nelle comunicazioni e nell'archiviazione dei dati.
+Summary(cs): GNU n�stroj pro �ifrovanou komunikaci a bezpe�n� ukl�d�n� dat
+Summary(fr): Utilitaire GNU de chiffrement et d'authentification des communications et des donn�es
+Vendor: GNU Privacy Guard Project
Name: %{name}
Version: %{version}
Release: 1
Copyright: GPL
Group: Applications/Cryptography
+Group(cs): Aplikace/�ifrov�n�
+Group(fr): Applications/Cryptographie
Source: ftp://ftp.gnupg.org/pub/gcrypt/%{name}-%{version}.tar.gz
URL: http://www.gnupg.org
Provides: gpg openpgp
BuildRoot: /tmp/rpmbuild_%{name}
%changelog
+* Mon May 01 2000 Fabio Coatti <[email protected]>
+- Some corrections in French description, thanks to Ga�l Qu�ri
+<[email protected]>; Some corrections to Italian descriptions.
+
+* Tue Apr 25 2000 Fabio Coatti <[email protected]>
+- Removed the no longer needed patch for man page by Keith Owens
+
+* Wed Mar 1 2000 Petr Kri�tof <[email protected]>
+- Czech descriptions added; some fixes and updates.
+
+* Sat Jan 15 2000 Keith Owens <[email protected]>
+- Add missing man page as separate patch instead of updating the tar file.
+
+* Mon Dec 27 1999 Fabio Coatti <[email protected]>
+- Upgraded for 1.0.1 (added missing gpg.1 man page)
+
* Sat May 29 1999 Fabio Coatti <[email protected]>
-- Some corrections in French description, thanks to
-Ga�l Qu�ri <[email protected]>
+- Some corrections in French description, thanks to Ga�l Qu�ri <[email protected]>
* Mon May 17 1999 Fabio Coatti <[email protected]>
- Added French description, provided by
@@ -28,8 +49,7 @@ Christophe Labouisse <[email protected]>
- Upgraded for 0.9.6 (removed gpgm)
* Tue Jan 12 1999 Fabio Coatti <[email protected]>
-- LINGUAS variable is now unset in configure to ensure that all
- languages will be built. (Thanks to Luca Olivetti <[email protected]>)
+- LINGUAS variable is now unset in configure to ensure that all languages will be built. (Thanks to Luca Olivetti <[email protected]>)
* Sat Jan 02 1999 Fabio Coatti <[email protected]>
- Added pl language file.
@@ -43,19 +63,44 @@ root, gpg is suid.
- Updates for version 0.4.5 of GnuPG (.mo files)
%description
-GnuPG is a complete and free replacement for PGP. Because it does not
-use IDEA or RSA it can be used without any restrictions. GnuPG is in
-compliance with the OpenPGP specification (RFC2440).
+GnuPG (GNU Privacy Guard) is a GNU utility for encrypting data and
+creating digital signatures. GnuPG has advanced key management
+capabilities and is compliant with the proposed OpenPGP Internet
+standard described in RFC2440. Since GnuPG doesn't use any patented
+algorithm, it is not compatible with any version of PGP2 (PGP2.x uses
+only IDEA, patented worldwide, and RSA, which is patented in the US
+until 9/20/00).
%description -l it
-GnuPG � un sostituto completo e gratuito per il PGP. Non utilizzando
-IDEA o RSA pu� essere utilizzato senza restrizioni. GnuPG � conforme
-alle specifiche OpenPGP (RFC2440).
+GnuPG (GNU Privacy Guard) � una utility GNU per la cifratura di dati e
+la creazione di firme digitali. Possiede una gestione avanzata delle
+chiavi ed � conforme allo standard Internet OpenPGP, descritto nella
+RFC 2440. Non utilizzando algoritmi brevettati, non � compatibile con
+PGP2 (PGP2.x usa solo IDEA, coperto da brevetto mondiale, ed RSA,
+brevettato negli USA con scadenza 20/09/2000). Questi algoritmi sono
+utilizzabili da GnuPG tramite moduli esterni.
%description -l fr
-GnuPG est un remplacement complet et � libre � de PGP. Comme il n'utilise
-ni IDEA ni RSA il peut �tre utilis� sans restriction. GnuPG est conforme
-� la sp�cification OpenPGP (RFC2440).
+GnuPG est un utilitaire GNU destin� � chiffrer des donn�es et � cr�er
+des signatures �lectroniques. Il a des capacit�s avanc�es de gestion de
+cl�s et il est conforme � la norme propos�e OpenPGP d�crite dans la
+RFC2440. Comme GnuPG n'utilise pas d'algorithme brevet�, il n'est
+compatible avec aucune version de PGP2 (PGP2.x ne sait utiliser que
+l'IDEA brevet� dans le monde entier et RSA, brevet� aux �tats-Unis
+jusqu'au 20 septembre 2000).
+
+%description -l cs
+GnuPG je GNU n�stroj pro bezpe�nou komunikaci a ukl�d�n� dat. M��e b�t
+pou�it na �ifrov�n� dat a vytv��en� digit�ln�ch podpis�. Obsahuje
+funkce pro pokro�ilou spr�vu kl��� a vyhovuje navrhovan�mu OpenPGP
+Internet standardu podle RFC2440. Byl vytvo�en jako kompletn�
+n�hrada za PGP. Proto�e neobsahuje �ifrovac� algoritmy IDEA nebo RSA,
+m��e b�t pou��v�n bez omezen�.
+Proto�e GnuPG nepou��v� ��dn� patentovan� algoritmus, nem��e b�t �pln�
+kompatibiln� s PGP verze 2. PGP 2.x pou��v� algoritmy IDEA (patentov�no
+celosv�tov�) a RSA (patentov�no ve Spojen�ch st�tech do 20. z���
+2000). Tyto algoritmy lze zav�st do GnuPG pomoc� extern�ch modul�.
+
%prep
rm -rf $RPM_BUILD_ROOT
@@ -67,7 +112,7 @@ rm -rf $RPM_BUILD_DIR/%{name}-%{version}
if test -n "$LINGUAS"; then
unset LINGUAS
fi
-CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=/usr
+CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=/usr --enable-shared
make
%install
@@ -94,14 +139,7 @@ make install-strip prefix=$RPM_BUILD_ROOT/usr
%attr (-,root,root) /usr/man/man1/gpg.1
%attr (4755,root,root) /usr/bin/gpg
-%attr (-,root,root) /usr/share/locale/de/LC_MESSAGES/%{name}.mo
-%attr (-,root,root) /usr/share/locale/it/LC_MESSAGES/%{name}.mo
-%attr (-,root,root) /usr/share/locale/fr/LC_MESSAGES/%{name}.mo
-%attr (-,root,root) /usr/share/locale/ru/LC_MESSAGES/%{name}.mo
-%attr (-,root,root) /usr/share/locale/es_ES/LC_MESSAGES/%{name}.mo
-%attr (-,root,root) /usr/share/locale/pt_BR/LC_MESSAGES/%{name}.mo
-%attr (-,root,root) /usr/share/locale/pl/LC_MESSAGES/%{name}.mo
-
+%attr (-,root,root) /usr/share/locale/*/*/%{name}.mo
%attr (-,root,root) /usr/lib/%{name}
%attr (-,root,root) /usr/share/%{name}
diff --git a/scripts/gnupgbug b/scripts/gnupgbug
new file mode 100644
index 000000000..7cde6aa16
--- /dev/null
+++ b/scripts/gnupgbug
@@ -0,0 +1,185 @@
+#!/bin/sh
+
+#
+# File a bug against the GNU Privacy Guard.
+#
+
+#
+# Copyright (c) 2000 Thomas Roessler <[email protected]>
+#
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program 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, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+
+DEBIAN_SUBMIT="[email protected]"
+
+
+include_file ()
+{
+ echo
+ echo "--- Begin $1"
+ sed -e 's/^-/- -/' $1 | egrep -v '^[ ]*(#|$)'
+ echo "--- End $1"
+ echo
+}
+
+case `echo -n` in
+"") n=-n; c= ;;
+ *) n=; c='\c' ;;
+esac
+
+
+exec > /dev/tty
+exec < /dev/tty
+
+SCRATCH=${TMPDIR-/tmp}/`basename $0`.`hostname`.$$
+
+mkdir ${SCRATCH} || \
+{
+ echo "`basename $0`: Can't create temporary directory." >& 2 ;
+ exit 1 ;
+}
+
+trap "rm -r -f ${SCRATCH} ; trap '' 0 ; exit" 0 1 2
+
+TEMPLATE=${SCRATCH}/template.txt
+
+echo "Please enter a one-line description of the problem you experience:"
+echo $n "> $c"
+read SUBJECT
+
+echo $n "Do you want to include your personal GnuPG configuration files? [Y|n]$c"
+read personal
+case "$personal" in
+[nN]*) personal=no ;;
+ *) personal=yes ;;
+esac
+
+if test -f /etc/debian_version ; then
+ DEBIAN=yes
+ echo $n "Checking whether GnuPG has been installed as a package... $c"
+ GNUPGVERSION="`dpkg -l gnupg | grep ^i | awk '{print $3}'`" 2> /dev/null
+ if test "$GNUPGVERSION" ; then
+ DPKG=yes
+ else
+ DPKG=no
+ fi
+ echo "$DPKG"
+ if test "$DPKG" = "no" ; then
+ echo $n "File this bug with Debian? [Y|n]$c"
+ read $DPKG
+ case "$DPKG" in
+ [nN]) DPKG=no ;;
+ *) DPKG=yes ;;
+ esac
+ fi
+else
+ DEBIAN=no
+ DPKG=no
+fi
+
+test "$MUTTVERSION" || MUTTVERSION="`mutt -v | head -1 | awk '{print $2}' | tr -d i`"
+test "$DPKG" = "yes" && SUBMIT="$SUBMIT, $DEBIAN_SUBMIT"
+
+
+exec > ${TEMPLATE}
+
+echo "Subject: mutt-$MUTTVERSION: $SUBJECT"
+echo "To: $SUBMIT"
+echo "Cc: $LOGNAME"
+echo
+echo "Package: mutt"
+echo "Version: $MUTTVERSION"
+echo
+echo "-- Please type your report below this line"
+echo
+echo
+echo
+
+if test "$DEBIAN" = "yes" ; then
+ echo "Obtaining Debian-specific information..." > /dev/tty
+ bug -p -s dummy mutt | \
+ sed -n -e "/^-- System Information/,/^---/p" | \
+ grep -v '^---'
+fi
+
+echo
+echo "-- Mutt Version Information"
+echo
+mutt -v
+
+if test "$personal" = "yes" ; then
+ CANDIDATES=".muttrc-${MUTTVERSION} .muttrc .mutt/muttrc-${MUTTVERSION} .mutt/muttrc"
+ MATCHED="none"
+ for f in $CANDIDATES; do
+ if test -f "${HOME}/$f" ; then
+ MATCHED="${HOME}/$f"
+ break
+ fi
+ done
+
+ if test "$MATCHED" = "none" ; then
+ echo "Warning: Can't find your personal .muttrc." >&2
+ else
+ include_file $MATCHED
+ fi
+fi
+
+if test "$global" = "yes" ; then
+ CANDIDATES="Muttrc-${MUTTVERSION} Muttrc"
+ DIRECTORIES="/etc /usr/local/share/mutt"
+ MATCHED="none"
+ for d in $DIRECTORIES ; do
+ for f in $CANDIDATES; do
+ if test -f $d/$f ; then
+ MATCHED="$d/$f"
+ break
+ fi
+ done
+ test "$MATCHED" = "none" || break
+ done
+
+ if test "$MATCHED" = "none" ; then
+ echo "Warning: Can't find global Muttrc." >&2
+ else
+ include_file $MATCHED
+ fi
+fi
+
+exec > /dev/tty
+
+cp $TEMPLATE $SCRATCH/mutt-bug.txt
+
+input="e"
+while : ; do
+ if test "$input" = "e" ; then
+ ${VISUAL-vi} $SCRATCH/mutt-bug.txt
+ if cmp $SCRATCH/mutt-bug.txt ${TEMPLATE} > /dev/null ; then
+ echo "Warning: Bug report was not modified!"
+ fi
+ fi
+
+ echo $n "Submit, Edit, Print, Quit? [S|e|p|q]$c"
+ read _input
+ input="`echo $_input | tr EPSQ epsq`"
+ case $input in
+ e*) ;;
+ p*) ${PAGER-more} $SCRATCH/mutt-bug.txt ;;
+ s*|"") /usr/sbin/sendmail -t < $SCRATCH/mutt-bug.txt ; exit ;;
+ q*) exit
+ esac
+done
+
diff --git a/scripts/mk-w32-dist b/scripts/mk-w32-dist
new file mode 100755
index 000000000..4761d0dfb
--- /dev/null
+++ b/scripts/mk-w32-dist
@@ -0,0 +1,28 @@
+#!/bin/sh
+# Hmm, we need the not real free zip utility - this should be
+# avoided. The easiest way will be to use an installer program.
+
+set -e
+
+cd dist-w32
+
+if [ -f ../README ]; then
+ srcdir=..
+elif [ -f ../../gnupg-stable/README ]; then
+ srcdir=../../gnupg-stable
+elif [ -f ../../../gnupg-stable/README ]; then
+ srcdir=../../../gnupg-stable
+else
+ echo "cannot figure out the source dir" >&2
+ exit 1
+fi
+
+rm * || true
+ln ../g10/gpg gpg.exe
+i386--mingw32-strip gpg.exe
+man -T latin1 -l ../doc/gpg.1 >gpg.man
+todos gpg.man
+ln ${srcdir}/README .
+ln ${srcdir}/doc/README.W32 .
+for i in ${srcdir}/po/*.gmo; do ln $i "$(basename $i .gmo).mo" ; done
+zip "gnupg-w32-$(cat ${srcdir}/VERSION).zip" *
diff --git a/tools/ChangeLog b/tools/ChangeLog
index f3b32eac0..e936bfcd9 100644
--- a/tools/ChangeLog
+++ b/tools/ChangeLog
@@ -1,3 +1,7 @@
+Tue May 23 09:19:00 CEST 2000 Werner Koch <[email protected]>
+
+ * ring-a-party: New.
+
Thu Jul 8 16:21:27 CEST 1999 Werner Koch <[email protected]>
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 2cf2e20ea..b4050abf9 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -2,8 +2,8 @@
EXTRA_DIST = lspgpot
INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/intl
-needed_libs = ../cipher/libcipher.la \
- ../mpi/libmpi.la ../util/libutil.la @INTLLIBS@
+needed_libs = ../cipher/libcipher.a \
+ ../mpi/libmpi.a ../util/libutil.a @INTLLIBS@
noinst_PROGRAMS = mpicalc bftest clean-sat mk-tdata shmtest
diff --git a/tools/ring-a-party b/tools/ring-a-party
new file mode 100755
index 000000000..561b51336
--- /dev/null
+++ b/tools/ring-a-party
@@ -0,0 +1,103 @@
+#!/bin/sh
+# ring-a-party - print a keyring suitable for a key signing party
+
+if [ $# -lt 1 ]; then
+ echo "usage: ring-a-party keyring [headerline]" >&2
+ exit 1
+fi
+
+keyring="$1"
+hdrline="$1"
+if [ $# -gt 1 ]; then
+ hdrline="$2"
+fi
+
+if [ ! -f $keyring ]; then
+ echo "ring-a-party: '$keyring': no such file" >&2
+ exit 1
+fi
+
+echo "ring-a-party: output will be written to 'a.pub'" >&2
+
+
+gpg --dry-run --with-fingerprint --with-colons $keyring \
+ | gawk -v "KEYRING=$hdrline" '
+BEGIN { FS=":"
+ algos[1] = "RSA";
+ algos[16] = "ElGamal";
+ algos[17] = "DSA";
+ any = 0;
+ lines = -1;
+ page = 0;
+ now = strftime("%b %d %H:%M %Y");
+ }
+$1 == "pub" {
+ if( any ) myflush();
+ uidcount = 0;
+ signencrypt = 0;
+ uids[uidcount++] = $10;
+ nbits = $3;
+ keyid = substr($5,9);
+ created = $6;
+ expires = $7;
+ algostr = mapalgo($4);
+ if( $4 == 20 || $4 == 1 ) signencrypt = 1;
+ any = 1;
+ }
+$1 == "fpr" { fpr = $10 }
+$1 == "uid" { uids[uidcount++] = $10 }
+$1 == "sub" { if( $4 != 17 && $4 != 3 ) signencrypt=1 }
+
+function myflush()
+{
+ # fixme: take lines to print here into account
+ if( lines > 50 || lines == -1 ) {
+ if( lines != -1 ) printf "\f";
+ page++;
+ printf "%s %-50.50s Page %d\n\n", now, KEYRING, page ;
+ printf "Type Bits KeyID Created Expires Algorithm Use\n";
+ lines = 1;
+ }
+ printf "pub %04d 0x%s %10s %10s %-10s %15s\n",
+ nbits, keyid, created, expires == ""? "----------":expires, algostr,
+ signencrypt == 1? "Sign & Encrypt":"Sign only";
+ length(fpr) == 40 ? printfpr20( fpr ) : printfpr16( fpr );
+ lnes += 2;
+ for( i=0; i < uidcount; i++ ) {
+ printf "uid %s\n", uids[i];
+ lines++;
+ }
+ printf "\n\n";
+ lines += 2;
+}
+
+function mapalgo( no )
+{
+ if( no in algos )
+ return algos[no];
+ return sprintf( "algoID=%ds", no );
+}
+
+
+function printfpr16( s )
+{
+ printf "f16 Fingerprint16 =";
+ for(i=0; i < 16; i++ ) {
+ if( i == 8 ) printf " ";
+ printf " %s", substr( s, i*2, 2 );
+ }
+ printf "\n"
+}
+
+function printfpr20( s )
+{
+ printf "f20 Fingerprint20 =";
+ for(i=0; i < 10; i++ ) {
+ if( i == 5 ) printf " ";
+ printf " %s", substr( s, i*4, 4 );
+ }
+ printf "\n"
+}
+
+' | tee a.pub | gpg --print-mds
+
diff --git a/util/ChangeLog b/util/ChangeLog
index d5b661095..c6d64aa6a 100644
--- a/util/ChangeLog
+++ b/util/ChangeLog
@@ -1,3 +1,70 @@
+Tue May 30 16:37:55 CEST 2000 Werner Koch <[email protected]>
+
+ * iobuf.c (iobuf_cancel): Fix for MSDOS.
+
+Fri Apr 14 19:37:08 CEST 2000 Werner Koch <[email protected]>
+
+ * dotlock.c (disable_dotlock): New. Implmented this in the module.
+
+2000-03-09 14:04:22 Werner Koch ([email protected])
+
+ * argparse.c (default_strusage): Changed year of default copyright.
+
+Tue Mar 7 18:45:31 CET 2000 Werner Koch <[email protected]>
+
+ * secmem.c (lock_pool): No more warning for QNX. By Sam Roberts.
+
+2000-03-02 15:51:04 Werner Koch ([email protected])
+
+ * ttyio.c (tty_print_utf8_string): Oops.
+
+Thu Mar 2 15:37:46 CET 2000 Werner Koch <[email protected]>
+
+ * ttyio.c (tty_print_utf8_string2): New to allow a max output size.
+
+Wed Feb 23 10:07:57 CET 2000 Werner Koch <[email protected]>
+
+ * miscutil.c (asctimestamp): Fix for possible buffer overflow by
+ large system returned date format string.
+
+Fri Dec 31 14:08:15 CET 1999 Werner Koch <[email protected]>
+
+ * logger.c (log_inc_errorcount): New.
+
+Sat Dec 4 12:30:28 CET 1999 Werner Koch <[email protected]>
+
+ * iobuf.c (iobuf_cancel): Broadcast the new Cancel mesaage to all
+ filters.
+
+Mon Nov 22 11:14:53 CET 1999 Werner Koch <[email protected]>
+
+ * strgutil.c (strcasecmp): New.
+
+ * secmem.c (pool_is_mmapped): Made volatile.
+
+Sat Oct 9 20:34:41 CEST 1999 Werner Koch <[email protected]>
+
+ * Makefile.am: Removed libtool.
+
+Fri Oct 8 20:32:01 CEST 1999 Werner Koch <[email protected]>
+
+ * w32reg.c: New.
+ * simple-gettext.c: Use the Registry to locate the mo file.
+
+ * http.c (send_request): Add support for proxys; suggested by
+ Walter Hofmann.
+ (http_open_document): Pass flags to http_open.
+
+Fri Sep 17 12:56:42 CEST 1999 Werner Koch <[email protected]>
+
+
+ * secmem.c (lock_pool): Check for ENOSYS return my mlock() on
+ old SCOs.
+
+ * ttyio.c (do_get): Replaced #if __MINGW32__ by #ifdef becuase
+ gcc 2.95.1 assigns a floating point value (0.2) to this macro,
+ which in turn can't be used in an expression.
+
Wed Sep 15 16:22:17 CEST 1999 Werner Koch <[email protected]>
@@ -71,7 +138,7 @@ Sat Jun 26 12:15:59 CEST 1999 Werner Koch <[email protected]>
Fri Jun 18 00:18:02 CEST 1999 Michael Roth <[email protected]>
* iobuf.c: file_filter() Detection of EOF on terminals
- improved/fixed (see Bug #21).
+ improved/fixed (see Bug #21).
Mon Jun 14 21:18:54 CEST 1999 Michael Roth <[email protected]>
diff --git a/util/Makefile.am b/util/Makefile.am
index 95096c7e7..5870fb6a9 100644
--- a/util/Makefile.am
+++ b/util/Makefile.am
@@ -2,13 +2,13 @@
INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/intl
-noinst_LTLIBRARIES = libutil.la
+noinst_LIBRARIES = libutil.a
-libutil_la_LDFLAGS =
-libutil_la_SOURCES = g10u.c logger.c fileutil.c miscutil.c strgutil.c \
+#libutil_a_LDFLAGS =
+libutil_a_SOURCES = g10u.c logger.c fileutil.c miscutil.c strgutil.c \
ttyio.c argparse.c memory.c secmem.c errors.c iobuf.c \
- dotlock.c http.c simple-gettext.c
+ dotlock.c http.c simple-gettext.c w32reg.c
http-test: http.c
diff --git a/util/argparse.c b/util/argparse.c
index c6f405f62..929d62a79 100644
--- a/util/argparse.c
+++ b/util/argparse.c
@@ -892,7 +892,7 @@ default_strusage( int level )
switch( level ) {
case 11: p = "foo"; break;
case 13: p = "0.0"; break;
- case 14: p = "Copyright (C) 1999 Free Software Foundation, Inc."; break;
+ case 14: p = "Copyright (C) 2000 Free Software Foundation, Inc."; break;
case 15: p =
"This program comes with ABSOLUTELY NO WARRANTY.\n"
"This is free software, and you are welcome to redistribute it\n"
diff --git a/util/dotlock.c b/util/dotlock.c
index 369a3d42a..fc8ddae36 100644
--- a/util/dotlock.c
+++ b/util/dotlock.c
@@ -1,5 +1,5 @@
/* dotlock.c - dotfile locking
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998,2000 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -42,14 +42,22 @@ struct dotlock_handle {
char *tname; /* name of lockfile template */
char *lockname; /* name of the real lockfile */
int locked; /* lock status */
+ int disable; /* locking */
};
static DOTLOCK all_lockfiles;
+static int never_lock;
static int read_lockfile( const char *name );
static void remove_lockfiles(void);
+void
+disable_dotlock(void)
+{
+ never_lock = 1;
+}
+
/****************
* Create a lockfile with the given name and return an object of
* type DOTLOCK which may be used later to actually do the lock.
@@ -88,6 +96,17 @@ create_dotlock( const char *file_to_lock )
return NULL;
h = m_alloc_clear( sizeof *h );
+ if( never_lock ) {
+ h->disable = 1;
+ #ifdef _REENTRANT
+ /* fixme: aquire mutex on all_lockfiles */
+ #endif
+ h->next = all_lockfiles;
+ all_lockfiles = h;
+ return h;
+ }
+
+
#ifndef HAVE_DOSISH_SYSTEM
sprintf( pidstr, "%10d\n", (int)getpid() );
/* fixme: add the hostname to the second line (FQDN or IP addr?) */
@@ -191,6 +210,10 @@ make_dotlock( DOTLOCK h, long timeout )
const char *maybe_dead="";
int backoff=0;
+ if( h->disable ) {
+ return 0;
+ }
+
if( h->locked ) {
log_debug("oops, `%s' is already locked\n", h->lockname );
return 0;
@@ -259,6 +282,10 @@ release_dotlock( DOTLOCK h )
#else
int pid;
+ if( h->disable ) {
+ return 0;
+ }
+
if( !h->locked ) {
log_debug("oops, `%s' is not locked\n", h->lockname );
return 0;
@@ -333,11 +360,13 @@ remove_lockfiles()
while( h ) {
h2 = h->next;
- if( h->locked )
- unlink( h->lockname );
- unlink(h->tname);
- m_free(h->tname);
- m_free(h->lockname);
+ if( !h->disable ) {
+ if( h->locked )
+ unlink( h->lockname );
+ unlink(h->tname);
+ m_free(h->tname);
+ m_free(h->lockname);
+ }
m_free(h);
h = h2;
}
diff --git a/util/errors.c b/util/errors.c
index 0590f8ed8..e1551d03d 100644
--- a/util/errors.c
+++ b/util/errors.c
@@ -100,6 +100,7 @@ g10_errstr( int err )
X(NETWORK ,N_("network error"))
X(SELFTEST_FAILED,"selftest failed")
X(NOT_ENCRYPTED ,N_("not encrypted"))
+ X(NOT_PROCESSED ,N_("not processed"))
default: p = buf; sprintf(buf, "g10err=%d", err); break;
}
#undef X
diff --git a/util/http.c b/util/http.c
index 4bac8d845..d3bc44fe3 100644
--- a/util/http.c
+++ b/util/http.c
@@ -74,7 +74,7 @@ http_open( HTTP_HD hd, HTTP_REQ_TYPE reqtype, const char *url,
{
int rc;
- if( flags || !(reqtype == HTTP_REQ_GET || reqtype == HTTP_REQ_POST) )
+ if( !(reqtype == HTTP_REQ_GET || reqtype == HTTP_REQ_POST) )
return G10ERR_INV_ARG;
/* initialize the handle */
@@ -82,6 +82,7 @@ http_open( HTTP_HD hd, HTTP_REQ_TYPE reqtype, const char *url,
hd->sock = -1;
hd->initialized = 1;
hd->req_type = reqtype;
+ hd->flags = flags;
rc = parse_uri( &hd->uri, url );
if( !rc ) {
@@ -148,10 +149,7 @@ http_open_document( HTTP_HD hd, const char *document, unsigned int flags )
{
int rc;
- if( flags )
- return G10ERR_INV_ARG;
-
- rc = http_open( hd, HTTP_REQ_GET, document, 0 );
+ rc = http_open( hd, HTTP_REQ_GET, document, flags );
if( rc )
return rc;
@@ -427,21 +425,47 @@ send_request( HTTP_HD hd )
byte *request, *p;
ushort port;
int rc;
+ const char *http_proxy = NULL;
server = *hd->uri->host? hd->uri->host : "localhost";
port = hd->uri->port? hd->uri->port : 80;
- hd->sock = connect_server( server, port );
+ if( (hd->flags & HTTP_FLAG_TRY_PROXY)
+ && (http_proxy = getenv( "http_proxy" )) ) {
+ PARSED_URI uri;
+
+ rc = parse_uri( &uri, http_proxy );
+ if (rc) {
+ log_error("invalid $http_proxy: %s\n", g10_errstr(rc));
+ release_parsed_uri( uri );
+ return G10ERR_NETWORK;
+ }
+ hd->sock = connect_server( *uri->host? uri->host : "localhost",
+ uri->port? uri->port : 80 );
+ release_parsed_uri( uri );
+ }
+ else
+ hd->sock = connect_server( server, port );
+
if( hd->sock == -1 )
return G10ERR_NETWORK;
p = build_rel_path( hd->uri );
- request = m_alloc( strlen(p) + 20 );
- sprintf( request, "%s %s%s HTTP/1.0\r\n",
+ request = m_alloc( strlen(server) + strlen(p) + 50 );
+ if( http_proxy ) {
+ sprintf( request, "%s http://%s:%hu%s%s HTTP/1.0\r\n",
+ hd->req_type == HTTP_REQ_GET ? "GET" :
+ hd->req_type == HTTP_REQ_HEAD? "HEAD":
+ hd->req_type == HTTP_REQ_POST? "POST": "OOPS",
+ server, port, *p == '/'? "":"/", p );
+ }
+ else {
+ sprintf( request, "%s %s%s HTTP/1.0\r\n",
hd->req_type == HTTP_REQ_GET ? "GET" :
hd->req_type == HTTP_REQ_HEAD? "HEAD":
hd->req_type == HTTP_REQ_POST? "POST": "OOPS",
*p == '/'? "":"/", p );
+ }
m_free(p);
rc = write_server( hd->sock, request, strlen(request) );
diff --git a/util/iobuf.c b/util/iobuf.c
index 83c1e475d..0254ca78c 100644
--- a/util/iobuf.c
+++ b/util/iobuf.c
@@ -80,6 +80,8 @@ static int underflow(IOBUF a);
* IOBUFCTRL_FLUSH: called by iobuf_flush() to write out the collected stuff.
* *RET_LAN is the number of bytes in BUF.
*
+ * IOBUFCTRL_CANCEL: send to all filters on behalf of iobuf_cancel. The
+ * filter may take appropriate action on this message.
*/
static int
file_filter(void *opaque, int control, IOBUF chain, byte *buf, size_t *ret_len)
@@ -497,13 +499,41 @@ int
iobuf_cancel( IOBUF a )
{
const char *s;
+ IOBUF a2;
+ int rc;
+ #ifdef HAVE_DOSISH_SYSTEM
+ char *remove_name = NULL;
+ #endif
if( a && a->use == 2 ) {
s = iobuf_get_real_fname(a);
- if( s && *s )
- remove(s); /* remove the file. Fixme: this will fail for MSDOZE*/
- } /* because the file is still open */
- return iobuf_close(a);
+ if( s && *s ) {
+ #ifdef HAVE_DOSISH_SYSTEM
+ remove_name = m_strdup ( s );
+ #else
+ remove(s);
+ #endif
+ }
+ }
+
+ /* send a cancel message to all filters */
+ for( a2 = a; a2 ; a2 = a2->chain ) {
+ size_t dummy;
+ if( a2->filter )
+ a2->filter( a2->filter_ov, IOBUFCTRL_CANCEL, a2->chain,
+ NULL, &dummy );
+ }
+
+ rc = iobuf_close(a);
+ #ifdef HAVE_DOSISH_SYSTEM
+ if ( remove_name ) {
+ /* Argg, MSDOS does not allow to remove open files. So
+ * we have to do it here */
+ remove ( remove_name );
+ m_free ( remove_name );
+ }
+ #endif
+ return rc;
}
diff --git a/util/logger.c b/util/logger.c
index a1fb1f3d7..d9e908aec 100644
--- a/util/logger.c
+++ b/util/logger.c
@@ -101,6 +101,12 @@ log_get_errorcount( int clear)
return n;
}
+void
+log_inc_errorcount()
+{
+ errorcount++;
+}
+
void
g10_log_print_prefix(const char *text)
diff --git a/util/miscutil.c b/util/miscutil.c
index eb72415bb..0b87f1b84 100644
--- a/util/miscutil.c
+++ b/util/miscutil.c
@@ -147,7 +147,7 @@ asctimestamp( u32 stamp )
tp = localtime( &atime );
#ifdef HAVE_STRFTIME
#if defined(HAVE_NL_LANGINFO)
- mem2str( fmt, nl_langinfo(D_T_FMT), DIM(fmt) );
+ mem2str( fmt, nl_langinfo(D_T_FMT), DIM(fmt)-3 );
if( strstr( fmt, "%Z" ) == NULL )
strcat( fmt, " %Z");
strftime( buffer, DIM(buffer)-1, fmt, tp );
diff --git a/util/secmem.c b/util/secmem.c
index 3f253d6db..54836cbcf 100644
--- a/util/secmem.c
+++ b/util/secmem.c
@@ -58,7 +58,7 @@ struct memblock_struct {
static void *pool;
static volatile int pool_okay; /* may be checked in an atexit function */
-static int pool_is_mmapped;
+static volatile int pool_is_mmapped;
static size_t poolsize; /* allocated length */
static size_t poollen; /* used length */
static MEMBLOCK *unused_blocks;
@@ -97,8 +97,11 @@ lock_pool( void *p, size_t n )
#ifdef EAGAIN /* OpenBSD returns this */
&& errno != EAGAIN
#endif
+ #ifdef ENOSYS /* Some SCOs return this (function not implemented) */
+ && errno != ENOSYS
+ #endif
)
- log_error("can�t lock memory: %s\n", strerror(err));
+ log_error("can't lock memory: %s\n", strerror(err));
show_warning = 1;
}
@@ -134,11 +137,20 @@ lock_pool( void *p, size_t n )
#ifdef EAGAIN /* OpenBSD returns this */
&& errno != EAGAIN
#endif
+ #ifdef ENOSYS /* Some SCOs return this (function not implemented) */
+ && errno != ENOSYS
+ #endif
)
- log_error("can�t lock memory: %s\n", strerror(err));
+ log_error("can't lock memory: %s\n", strerror(err));
show_warning = 1;
}
+ #elif defined ( __QNX__ )
+ /* QNX does not page at all, so the whole secure memory stuff does
+ * not make much sense. However it is still of use because it
+ * wipes out the memory on a free().
+ * Therefore it is sufficient to suppress the warning
+ */
#else
log_info("Please note that you don't have secure memory on this system\n");
#endif
@@ -374,7 +386,7 @@ m_is_secure( const void *p )
/****************
* Warning: This code might be called by an interrupt handler
- * and frankly, thre should really be such a handler,
+ * and frankly, there should really be such a handler,
* to make sure that the memory is wiped out.
* We hope that the OS wipes out mlocked memory after
* receiving a SIGKILL - it really should do so, otherwise
diff --git a/util/simple-gettext.c b/util/simple-gettext.c
index bf25e8b18..a45ecb2b2 100644
--- a/util/simple-gettext.c
+++ b/util/simple-gettext.c
@@ -242,19 +242,21 @@ set_gettext_file( const char *filename )
#endif
) {
/* absolute path - use it as is */
- log_info("trying `%s'\n", filename );
domain = load_domain( filename );
}
- else { /* relative path - append ".mo" and get DIR from env */
+ else { /* relative path - append ".mo" and get dir from the environment */
char *buf = NULL;
- const char *s;
+ char *dir;
- s = getenv("MINGW32_NLS_DIR");
- if( s && (buf=malloc(strlen(s)+strlen(filename)+1+3+1)) ) {
- strcpy(stpcpy(stpcpy(stpcpy( buf, s),"/"), filename),".mo");
+ dir = read_w32_registry_string( NULL,
+ "Control Panel\\Mingw32\\NLS",
+ "MODir" );
+ if( dir && (buf=malloc(strlen(dir)+strlen(filename)+1+3+1)) ) {
+ strcpy(stpcpy(stpcpy(stpcpy( buf, dir),"/"), filename),".mo");
domain = load_domain( buf );
free(buf);
}
+ free(dir);
}
if( !domain )
return -1;
@@ -464,5 +466,20 @@ gettext( const char *msgid )
return msgid;
}
+#if 0
+ unsigned int cp1, cp2;
+
+ cp1 = GetConsoleCP();
+ cp2 = GetConsoleOutputCP();
+
+ log_info("InputCP=%u OutputCP=%u\n", cp1, cp2 );
+
+ if( !SetConsoleOutputCP( 1252 ) )
+ log_info("SetConsoleOutputCP failed: %d\n", (int)GetLastError() );
+
+ cp1 = GetConsoleCP();
+ cp2 = GetConsoleOutputCP();
+ log_info("InputCP=%u OutputCP=%u after switch1\n", cp1, cp2 );
+#endif
#endif /* USE_SIMPLE_GETTEXT */
diff --git a/util/strgutil.c b/util/strgutil.c
index 9ab63a047..861bf0d6b 100644
--- a/util/strgutil.c
+++ b/util/strgutil.c
@@ -559,6 +559,18 @@ strlwr(char *s)
}
#endif
+#ifndef HAVE_STRCASECMP
+int
+strcasecmp( const char *a, const char *b )
+{
+ for( ; *a && *b; a++, b++ ) {
+ if( *a != *b && toupper(*a) != toupper(*b) )
+ break;
+ }
+ return *(const byte*)a - *(const byte*)b;
+}
+#endif
+
/****************
* mingw32/cpd has a memicmp()
*/
diff --git a/util/ttyio.c b/util/ttyio.c
index 6c1a5059a..8d0824aad 100644
--- a/util/ttyio.c
+++ b/util/ttyio.c
@@ -107,23 +107,6 @@ init_ttyfp(void)
SetConsoleMode(con.in, DEF_INPMODE );
SetConsoleMode(con.out, DEF_OUTMODE );
-#warning DEBUG CODE
- {
- unsigned int cp1, cp2;
-
- cp1 = GetConsoleCP();
- cp2 = GetConsoleOutputCP();
-
- log_info("InputCP=%u OutputCP=%u\n", cp1, cp2 );
-
- if( !SetConsoleOutputCP( 1252 ) )
- log_info("SetConsoleOutputCP failed: %d\n", (int)GetLastError() );
-
- cp1 = GetConsoleCP();
- cp2 = GetConsoleOutputCP();
- log_info("InputCP=%u OutputCP=%u after switch1\n", cp1, cp2 );
-
- }
#elif defined(__EMX__)
ttyfp = stdout; /* Fixme: replace by the real functions: see wklib */
#else
@@ -253,7 +236,7 @@ tty_print_string( byte *p, size_t n )
}
void
-tty_print_utf8_string( byte *p, size_t n )
+tty_print_utf8_string2( byte *p, size_t n, size_t max_n )
{
size_t i;
char *buf;
@@ -268,15 +251,26 @@ tty_print_utf8_string( byte *p, size_t n )
}
if( i < n ) {
buf = utf8_to_native( p, n );
+ if( strlen( buf ) > max_n ) {
+ buf[max_n] = 0;
+ }
+ /*(utf8 conversion already does the control character quoting)*/
tty_printf("%s", buf );
m_free( buf );
}
- else
+ else {
+ if( n > max_n ) {
+ n = max_n;
+ }
tty_print_string( p, n );
+ }
}
-
-
+void
+tty_print_utf8_string( byte *p, size_t n )
+{
+ tty_print_utf8_string2( p, n, n );
+}
static char *
@@ -304,7 +298,7 @@ do_get( const char *prompt, int hidden )
buf = m_alloc(n=50);
i = 0;
- #if __MINGW32__ /* windoze version */
+ #ifdef __MINGW32__ /* windoze version */
if( hidden )
SetConsoleMode(con.in, HID_INPMODE );
@@ -419,7 +413,7 @@ tty_kill_prompt()
last_prompt_len = 0;
if( !last_prompt_len )
return;
- #if __MINGW32__
+ #ifdef __MINGW32__
tty_printf("\r%*s\r", last_prompt_len, "");
#else
{
diff --git a/util/w32reg.c b/util/w32reg.c
new file mode 100644
index 000000000..0cf38090f
--- /dev/null
+++ b/util/w32reg.c
@@ -0,0 +1,88 @@
+/* w32reg.c - MS-Windows Registry access
+ * Copyright (C) 1999 Free Software Foundation, Inc.
+ *
+ * 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 2 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <config.h>
+#ifdef __MINGW32__ /* This module is only used in this environment */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdarg.h>
+#include <windows.h>
+#include "util.h"
+#include "memory.h"
+
+
+/****************
+ * Return a string from the Win32 Registry or NULL in case of
+ * error. Caller must release the return value. A NUKK for root
+ * is an alias fro HKEY_CURRENT_USER
+ * NOTE: The value is allocated with a plain malloc() - use free() and not
+ * the usual m_free()!!!
+ */
+char *
+read_w32_registry_string( const char *root, const char *dir, const char *name )
+{
+ HKEY root_key, key_handle;
+ DWORD n1, nbytes;
+ char *result = NULL;
+
+ if( !root )
+ root_key = HKEY_CURRENT_USER;
+ else if( !strcmp( root, "HKEY_CLASSES_ROOT" ) )
+ root_key = HKEY_CLASSES_ROOT;
+ else if( !strcmp( root, "HKEY_CURRENT_USER" ) )
+ root_key = HKEY_CURRENT_USER;
+ else if( !strcmp( root, "HKEY_LOCAL_MACHINE" ) )
+ root_key = HKEY_LOCAL_MACHINE;
+ else if( !strcmp( root, "HKEY_USERS" ) )
+ root_key = HKEY_USERS;
+ else if( !strcmp( root, "HKEY_PERFORMANCE_DATA" ) )
+ root_key = HKEY_PERFORMANCE_DATA;
+ else if( !strcmp( root, "HKEY_CURRENT_CONFIG" ) )
+ root_key = HKEY_CURRENT_CONFIG;
+ else
+ return NULL;
+
+ if( RegOpenKeyEx( root_key, dir, 0, KEY_READ, &key_handle ) )
+ return NULL; /* no need for a RegClose, so return direct */
+
+ nbytes = 1;
+ if( RegQueryValueEx( key_handle, name, 0, NULL, NULL, &nbytes ) )
+ goto leave;
+ result = malloc( (n1=nbytes+1) );
+ if( !result )
+ goto leave;
+ if( RegQueryValueEx( key_handle, name, 0, NULL, result, &n1 ) ) {
+ free(result); result = NULL;
+ goto leave;
+ }
+ result[nbytes] = 0; /* make sure it is really a string */
+
+ leave:
+ RegCloseKey( key_handle );
+ return result;
+}
+
+
+
+
+
+#endif /* __MINGW32__ */