summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>1999-10-26 14:14:37 +0200
committerWerner Koch <wk@gnupg.org>1999-10-26 14:14:37 +0200
commitcf70ca8d68eb836b952f2c234f064b1afc205962 (patch)
treeaa33afbc79efd1f8538e5286b13d900321a8f14b
parentChanged the way it works - now needs an extra program to to most tasks. (diff)
downloadgnupg2-cf70ca8d68eb836b952f2c234f064b1afc205962.tar.xz
gnupg2-cf70ca8d68eb836b952f2c234f064b1afc205962.zip
See ChangeLog: Tue Oct 26 14:10:21 CEST 1999 Werner Koch
-rw-r--r--BUGS8
-rw-r--r--ChangeLog10
-rw-r--r--Makefile.am15
-rw-r--r--NEWS8
-rw-r--r--NOTES7
-rw-r--r--THANKS199
-rw-r--r--TODO10
-rw-r--r--VERSION2
-rwxr-xr-xchecks/genkey1024.test2
-rw-r--r--cipher/ChangeLog18
-rw-r--r--cipher/cipher.c366
-rw-r--r--cipher/elgamal.c4
-rw-r--r--cipher/md.c430
-rw-r--r--cipher/pubkey.c83
-rw-r--r--configure.in20
-rw-r--r--doc/ChangeLog36
-rw-r--r--doc/DETAILS8
-rw-r--r--doc/Makefile.am2
-rw-r--r--doc/gpg.sgml2
-rw-r--r--g10/ChangeLog52
-rw-r--r--g10/Makefile.am3
-rw-r--r--g10/build-packet.c10
-rw-r--r--g10/cipher.c18
-rw-r--r--g10/delkey.c2
-rw-r--r--g10/encode.c5
-rw-r--r--g10/encr-data.c61
-rw-r--r--g10/filter.h11
-rw-r--r--g10/g10.c95
-rw-r--r--g10/keydb.h5
-rw-r--r--g10/keygen.c4
-rw-r--r--g10/keyid.c103
-rw-r--r--g10/main.h28
-rw-r--r--g10/mainproc.c63
-rw-r--r--g10/mdfilter.c8
-rw-r--r--g10/misc.c30
-rw-r--r--g10/openfile.c48
-rw-r--r--g10/packet.h6
-rw-r--r--g10/passphrase.c38
-rw-r--r--g10/pkclist.c13
-rw-r--r--g10/plaintext.c42
-rw-r--r--g10/pubkey-enc.c5
-rw-r--r--g10/revoke.c6
-rw-r--r--g10/ringedit.c2
-rw-r--r--g10/seckey-cert.c78
-rw-r--r--g10/seskey.c61
-rw-r--r--g10/sig-check.c130
-rw-r--r--g10/sign.c149
-rw-r--r--g10/textfilter.c13
-rw-r--r--g10/trustdb.c8
-rw-r--r--include/ChangeLog4
-rw-r--r--include/cipher.h102
-rw-r--r--include/distfiles1
-rw-r--r--include/g10lib.h212
-rw-r--r--include/mpi.h5
-rw-r--r--po/ChangeLog1
-rw-r--r--po/de.po489
-rw-r--r--po/es_ES.po489
-rw-r--r--po/fr.po625
-rw-r--r--po/it.po496
-rw-r--r--po/pl.po489
-rw-r--r--po/pt_BR.po489
-rw-r--r--po/pt_PT.po524
-rw-r--r--po/ru.po489
-rw-r--r--scripts/ChangeLog5
-rwxr-xr-xscripts/commit28
-rwxr-xr-xscripts/mksnapshot2
-rw-r--r--tools/Makefile.am3
-rw-r--r--tools/bftest.c18
-rw-r--r--util/ChangeLog8
-rw-r--r--util/simple-gettext.c10
-rw-r--r--util/strgutil.c85
71 files changed, 4032 insertions, 2869 deletions
diff --git a/BUGS b/BUGS
index 81fdcf1bd..79eb95438 100644
--- a/BUGS
+++ b/BUGS
@@ -54,5 +54,11 @@ and after about half a day in the rsync snapshots.
for the last one. This happens on some systems when not using the
GNU ld. This need to be fixed in libtool.
+[ **] #25 1999-10-04 <wk@gnupg.org> 1.0
+ Validity check based on user name is only done when listing a key;
+ the key ID based checking (selecting the user ID with the most
+ validity) is used in all other cases. The Edit menu does not have
+ a way to disbly user ID based validity.
-Next #25
+
+Next #26
diff --git a/ChangeLog b/ChangeLog
index 2e2521122..683978517 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+Tue Oct 26 14:10:21 CEST 1999 Werner Koch <wk@gnupg.de>
+
+ * README-alpha: New
+
+ * 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.
+
Fri Sep 17 12:56:42 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
diff --git a/Makefile.am b/Makefile.am
index bf6e3e2da..1d3bec696 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,12 +1,15 @@
## Process this file with automake to produce Makefile.in
-if COMPILE_LIBGCRYPT
+#if COMPILE_LIBGCRYPT
+#gcrypt = gcrypt
+#my_clean_gcrypt =
+#else
+#gcrypt =
+#my_clean_gcrypt = gcrypt/Makefile
+#endif
+
gcrypt = gcrypt
my_clean_gcrypt =
-else
-gcrypt =
-my_clean_gcrypt = gcrypt/Makefile
-endif
if CROSS_COMPILING
checks =
@@ -15,7 +18,7 @@ checks = checks
endif
SUBDIRS = intl zlib util mpi cipher tools g10 po doc ${checks} ${gcrypt}
-EXTRA_DIST = VERSION PROJECTS BUGS
+EXTRA_DIST = README-alpha 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.
diff --git a/NEWS b/NEWS
index d5d2c5f13..b910d6376 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,11 @@
+Noteworthy changes in version 1.1.0 (1999-10-26)
+-----------------------------------
+
+ * Did a couple of changes for this new development series.
+ This release basically works on my machine but may have
+ serious problems.
+
+
Noteworthy changes in version 1.0.0 (1999-09-07)
-----------------------------------
diff --git a/NOTES b/NOTES
index 47a69df47..35f5183b9 100644
--- a/NOTES
+++ b/NOTES
@@ -1,4 +1,7 @@
+gcry_md_open() may return NULL in case of an unknown algorithm
+
+Return GCRYERR_NOMEM instead of using m_alloc in most library functions
SCO UnixWare/7.1.0 reported by Allan Clark <allanc@sco.com> for 0.9.8
@@ -11,3 +14,7 @@ Some other reported cpu-vendor-os strings:
sparc-sun-sunos4.1.2
i386-pc-sysv4.2 (USL Unixware v1.1.2)
+
+Johan Wevers <johanw@vulcan.xs4all.nl> is working on a NL translation.
+
+
diff --git a/THANKS b/THANKS
index cae2be5e1..b76a8d818 100644
--- a/THANKS
+++ b/THANKS
@@ -3,106 +3,109 @@ 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 allanc@sco.com
-Anand Kumria wildfire@progsoc.uts.edu.au
-Ariel T Glenn ariel@columbia.edu
-Bodo Moeller Bodo_Moeller@public.uni-hamburg.de
-Bryan Fullerton bryanf@samurai.com
-Brian Moore bem@cmc.net
-Brian Warner warner@lothar.com
-Caskey L. Dickson caskey@technocage.com
-Cees van de Griend cees-list@griend.xs4all.nl
-Charles Levert charles@comm.polymtl.ca
-Christian von Roques roques@pond.sub.org
-Christopher Oliver oliver@fritz.traverse.net
-Christian Recktenwald chris@citecs.de
-Daniel Eisenbud eisenbud@cs.swarthmore.edu
-Daniel Koening dan@mail.isis.de
-David Ellement ellement@sdd.hp.com
-Detlef Lannert lannert@lannert.rz.uni-duesseldorf.de
-Dirk Lattermann dlatt@t-online.de
-Ed Boraas ecxjo@esperanto.org
-Enzo Michelangeli em@MailAndNews.com
-Ernst Molitor ernst.molitor@uni-bonn.de
-Fabio Coatti cova@felix.unife.it
-Felix von Leitner leitner@amdiv.de
-Frank Heckenbach heckenb@mi.uni-erlangen.de
-Frank Stajano frank.stajano@cl.cam.ac.uk
-GaКl QuИri gqueri@mail.dotcom.fr
-Greg Louis glouis@dynamicro.on.ca
-Greg Troxel gdt@ir.bbn.com
-Gregory Steuck steuck@iname.com
-Geoff Keating geoffk@ozemail.com.au
-Harald Denker harry@hal.westfalen.de
-Hendrik Buschkamp buschkamp@rheumanet.org
-Holger Schurig holger@d.om.org
-Hugh Daniel hugh@toad.com
-Ian McKellar imckellar@harvestroad.com.au
-Janusz A. Urbanowicz alex@bofh.torun.pl
-James Troup james@nocrew.org
-Jean-loup Gailly gzip@prep.ai.mit.edu
-Jens Bachem bachem@rrz.uni-koeln.de
-Joachim Backes backes@rhrk.uni-kl.de
-John A. Martin jam@jamux.com
-Johnny Teveъen j.tevessen@gmx.de
-JЖrg Schilling schilling@fokus.gmd.de
-Jun Kuriyama kuriyama@sky.rim.or.jp
-Karl Fogel kfogel@guanabana.onshore.com
-Karsten Thygesen karthy@kom.auc.dk
-Katsuhiro Kondou kondou@nec.co.jp
-Kazu Yamamoto kazu@iijlab.net
-Lars Kellogg-Stedman lars@bu.edu
-Marco d'Itri md@linux.it
-Mark Adler madler@alumni.caltech.edu
-Mark Elbrecht snowball3@bigfoot.com
-Markus Friedl Markus.Friedl@informatik.uni-erlangen.de
-Martin Kahlert martin.kahlert@provi.de
+Allan Clark allanc@sco.com
+Anand Kumria wildfire@progsoc.uts.edu.au
+Ariel T Glenn ariel@columbia.edu
+Bodo Moeller Bodo_Moeller@public.uni-hamburg.de
+Brenno de Winter brenno@dewinter.com
+Brian Moore bem@cmc.net
+Brian Warner warner@lothar.com
+Bryan Fullerton bryanf@samurai.com
+Caskey L. Dickson caskey@technocage.com
+Cees van de Griend cees-list@griend.xs4all.nl
+Charles Levert charles@comm.polymtl.ca
+Christian von Roques roques@pond.sub.org
+Christopher Oliver oliver@fritz.traverse.net
+Christian Recktenwald chris@citecs.de
+Daniel Eisenbud eisenbud@cs.swarthmore.edu
+Daniel Koening dan@mail.isis.de
+David Ellement ellement@sdd.hp.com
+Detlef Lannert lannert@lannert.rz.uni-duesseldorf.de
+Dirk Lattermann dlatt@t-online.de
+Ed Boraas ecxjo@esperanto.org
+Enzo Michelangeli em@MailAndNews.com
+Ernst Molitor ernst.molitor@uni-bonn.de
+Fabio Coatti cova@felix.unife.it
+Felix von Leitner leitner@amdiv.de
+Frank Heckenbach heckenb@mi.uni-erlangen.de
+Frank Stajano frank.stajano@cl.cam.ac.uk
+GaКl QuИri gqueri@mail.dotcom.fr
+Greg Louis glouis@dynamicro.on.ca
+Greg Troxel gdt@ir.bbn.com
+Gregory Steuck steuck@iname.com
+Geoff Keating geoffk@ozemail.com.au
+Harald Denker harry@hal.westfalen.de
+Hendrik Buschkamp buschkamp@rheumanet.org
+Holger Schurig holger@d.om.org
+Hugh Daniel hugh@toad.com
+Ian McKellar imckellar@harvestroad.com.au
+Janusz A. Urbanowicz alex@bofh.torun.pl
+James Troup james@nocrew.org
+Jean-loup Gailly gzip@prep.ai.mit.edu
+Jens Bachem bachem@rrz.uni-koeln.de
+J Horacio MG homega@ciberia.es
+Joachim Backes backes@rhrk.uni-kl.de
+John A. Martin jam@jamux.com
+Johnny Teveъen j.tevessen@gmx.de
+JЖrg Schilling schilling@fokus.gmd.de
+Jun Kuriyama kuriyama@sky.rim.or.jp
+Karl Fogel kfogel@guanabana.onshore.com
+Karsten Thygesen karthy@kom.auc.dk
+Katsuhiro Kondou kondou@nec.co.jp
+Kazu Yamamoto kazu@iijlab.net
+Lars Kellogg-Stedman lars@bu.edu
+Marco d'Itri md@linux.it
+Mark Adler madler@alumni.caltech.edu
+Mark Elbrecht snowball3@bigfoot.com
+Markus Friedl Markus.Friedl@informatik.uni-erlangen.de
+Martin Kahlert martin.kahlert@provi.de
Martin Hamilton
-Martin Schulte schulte@thp.uni-koeln.de
-Matthew Skala mskala@ansuz.sooke.bc.ca
-Max Valianskiy maxcom@maxcom.ml.org
-Michael Roth mroth@nessie.de
-Michael Sobolev mss@despair.transas.com
-Nicolas Graner Nicolas.Graner@cri.u-psud.fr
-NIIBE Yutaka gniibe@chroot.org
+Martin Schulte schulte@thp.uni-koeln.de
+Matthew Skala mskala@ansuz.sooke.bc.ca
+Max Valianskiy maxcom@maxcom.ml.org
+Michael Fischer v. Mollard mfvm@gmx.de
+Michael Roth mroth@nessie.de
+Michael Sobolev mss@despair.transas.com
+Nicolas Graner Nicolas.Graner@cri.u-psud.fr
+NIIBE Yutaka gniibe@chroot.org
Niklas Hernaeus
-Nimrod Zimerman zimerman@forfree.at
-N J Doye nic@niss.ac.uk
-Oliver Haakert haakert@hsp.de
-Oskari JДДskelДinen f33003a@cc.hut.fi
-Paul D. Smith psmith@baynetworks.com
-Philippe Laliberte arsphl@oeil.qc.ca
-Peter Gutmann pgut001@cs.auckland.ac.nz
-QingLong qinglong@bolizm.ihep.su
-Ralph Gillen gillen@theochem.uni-duesseldorf.de
-Rat ratinox@peorth.gweep.net
-Reinhard Wobst R.Wobst@ifw-dresden.de
-RИmi Guyomarch rguyom@mail.dotcom.fr
-Reuben Sumner rasumner@wisdom.weizmann.ac.il
-Richard Outerbridge outer@interlog.com
-Roddy Strachan roddy@satlink.com.au
-Roland Rosenfeld roland@spinnaker.rhein.de
-Ross Golder rossigee@bigfoot.com
-Serge Munhoven munhoven@mema.ucl.ac.be
-SL Baur steve@xemacs.org
-Stefan Karrmann S.Karrmann@gmx.net
-Stefan Keller dres@cs.tu-berlin.de
-Steffen Ullrich ccrlphr@xensei.com
-Steffen Zahn zahn@berlin.snafu.de
-Steven Bakker steven@icoe.att.com
-Susanne Schultz schultz@hsp.de
-Thiago Jung Bauermann jungmann@cwb.matrix.com.br
-Thomas Roessler roessler@guug.de
-Tom Spindler dogcow@home.merit.edu
-Tom Zerucha tzeruch@ceddec.com
-Tomas Fasth tomas.fasth@twinspot.net
-Thomas Mikkelsen tbm@image.dk
-Ulf MЖller 3umoelle@informatik.uni-hamburg.de
-Urko Lusa ulusa@lacueva.ddns.org
-Walter Koch koch@hsp.de
-Werner Koch werner.koch@guug.de
-Wim Vandeputte bunbun@reptile.rug.ac.be
- nbecker@hns.com
+Nimrod Zimerman zimerman@forfree.at
+N J Doye nic@niss.ac.uk
+Oliver Haakert haakert@hsp.de
+Oskari JДДskelДinen f33003a@cc.hut.fi
+Paul D. Smith psmith@baynetworks.com
+Philippe Laliberte arsphl@oeil.qc.ca
+Peter Gutmann pgut001@cs.auckland.ac.nz
+QingLong qinglong@bolizm.ihep.su
+Ralph Gillen gillen@theochem.uni-duesseldorf.de
+Rat ratinox@peorth.gweep.net
+Reinhard Wobst R.Wobst@ifw-dresden.de
+RИmi Guyomarch rguyom@mail.dotcom.fr
+Reuben Sumner rasumner@wisdom.weizmann.ac.il
+Richard Outerbridge outer@interlog.com
+Roddy Strachan roddy@satlink.com.au
+Roland Rosenfeld roland@spinnaker.rhein.de
+Ross Golder rossigee@bigfoot.com
+Serge Munhoven munhoven@mema.ucl.ac.be
+SL Baur steve@xemacs.org
+Stefan Karrmann S.Karrmann@gmx.net
+Stefan Keller dres@cs.tu-berlin.de
+Steffen Ullrich ccrlphr@xensei.com
+Steffen Zahn zahn@berlin.snafu.de
+Steven Bakker steven@icoe.att.com
+Susanne Schultz schultz@hsp.de
+Thiago Jung Bauermann jungmann@cwb.matrix.com.br
+Thomas Roessler roessler@guug.de
+Tom Spindler dogcow@home.merit.edu
+Tom Zerucha tzeruch@ceddec.com
+Tomas Fasth tomas.fasth@twinspot.net
+Thomas Mikkelsen tbm@image.dk
+Ulf MЖller 3umoelle@informatik.uni-hamburg.de
+Urko Lusa ulusa@lacueva.ddns.org
+Walter Koch koch@hsp.de
+Werner Koch werner.koch@guug.de
+Wim Vandeputte bunbun@reptile.rug.ac.be
+ nbecker@hns.com
Thanks to the German Unix User Group for providing FTP space,
Martin Hamilton for hosting the mailing list and HSP for
diff --git a/TODO b/TODO
index 090fdcdd0..c78aebf05 100644
--- a/TODO
+++ b/TODO
@@ -1,10 +1,10 @@
- * try to do --verify even if the files are swapped on the commandline
- (requested by Herny Spencer) or change the error message to
- a more clear one.
+ * Implement the AXP syscall to enable bus traps for GLIB 2
+
+ * parse a paramter file to do automatic key generation and to set
+ parameters for the keygen menu. Far easier than to do a dialog for
+ each required parameter.
-Scheduled for 1.1
------------------
* With option -i prompt before adding a key to the keyring and show some
info what we are about to add.
diff --git a/VERSION b/VERSION
index aabf0c6cb..9084fa2f7 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.0pre1.1
+1.1.0
diff --git a/checks/genkey1024.test b/checks/genkey1024.test
index 81cb24fce..59bdcf0af 100755
--- a/checks/genkey1024.test
+++ b/checks/genkey1024.test
@@ -13,7 +13,7 @@ fi
LANG=
LANGUAGE=
-expect - <<EOF >/dev/null
+expect - <<EOF
#set timeout -1
set timeout 8
match_max 100000
diff --git a/cipher/ChangeLog b/cipher/ChangeLog
index 944510a38..ea23ca182 100644
--- a/cipher/ChangeLog
+++ b/cipher/ChangeLog
@@ -1,3 +1,21 @@
+Tue Oct 26 14:10:21 CEST 1999 Werner Koch <wk@gnupg.de>
+
+ * elgamal.c (sign): Hugh found strange code here. Replaced by BUG().
+
+ * cipher.c: Merged with gcrypt/symapi.c.
+
+ * pubkey.c (string_to_pubkey_algo): Renamed function to ...
+ (gcry_pk_map_name): ... this.
+ (pubkey_algo_to_string): Renamed function to ...
+ (gcry_pk_algo_name): ... this.
+ (gcry_pk_algo_info): New.
+ * pubkey.c: Merged with gcrypt/pkapi.c.
+
+ * md.c (md_reset): Clear finalized; thanks to Ulf Moeller for
+ fixing this bug.
+
+ * md.c: Merged with gcrypt/mdapi.c
+
Wed Sep 15 14:39:59 CEST 1999 Michael Roth <mroth@nessie.de>
* des.c: Various speed improvements: One bit pre rotation
diff --git a/cipher/cipher.c b/cipher/cipher.c
index 7224ab69d..277dd13f0 100644
--- a/cipher/cipher.c
+++ b/cipher/cipher.c
@@ -24,6 +24,8 @@
#include <string.h>
#include <errno.h>
#include <assert.h>
+
+#include "g10lib.h"
#include "util.h"
#include "errors.h"
#include "cipher.h"
@@ -32,9 +34,10 @@
#include "cast5.h"
#include "dynload.h"
-
#define MAX_BLOCKSIZE 16
#define TABLE_SIZE 10
+#define CTX_MAGIC_NORMAL 0x24091964
+#define CTX_MAGIC_SECURE 0x46919042
struct cipher_table_s {
const char *name;
@@ -50,10 +53,11 @@ struct cipher_table_s {
static struct cipher_table_s cipher_table[TABLE_SIZE];
static int disabled_algos[TABLE_SIZE];
-
-struct cipher_handle_s {
+struct gcry_cipher_handle {
+ int magic;
int algo;
int mode;
+ unsigned int flags;
size_t blocksize;
byte iv[MAX_BLOCKSIZE]; /* (this should be ulong aligned) */
byte lastiv[MAX_BLOCKSIZE];
@@ -209,16 +213,13 @@ load_cipher_modules(void)
}
-
-
-
-
-
/****************
- * Map a string to the cipher algo
+ * Map a string to the cipher algo.
+ * Returns: The algo ID of the cipher for the gioven name or
+ * 0 if the name is not known.
*/
int
-string_to_cipher_algo( const char *string )
+gcry_cipher_map_name( const char *string )
{
int i;
const char *s;
@@ -234,7 +235,7 @@ string_to_cipher_algo( const char *string )
/****************
* Map a cipher algo to a string
*/
-const char *
+static const char *
cipher_algo_to_string( int algo )
{
int i;
@@ -247,8 +248,20 @@ cipher_algo_to_string( int algo )
return NULL;
}
+/****************
+ * This function simply returns the name of the algorithm or some constant
+ * string when there is no algo. It will never return NULL.
+ */
+const char *
+gcry_cipher_algo_name( int algo )
+{
+ const char *s = cipher_algo_to_string( algo );
+ return s? s: "";
+}
-void
+
+
+static void
disable_cipher_algo( int algo )
{
int i;
@@ -266,7 +279,7 @@ disable_cipher_algo( int algo )
/****************
* Return 0 if the cipher algo is available
*/
-int
+static int
check_cipher_algo( int algo )
{
int i;
@@ -285,7 +298,7 @@ check_cipher_algo( int algo )
}
-unsigned
+static unsigned
cipher_get_keylen( int algo )
{
int i;
@@ -305,7 +318,7 @@ cipher_get_keylen( int algo )
return 0;
}
-unsigned
+static unsigned
cipher_get_blocksize( int algo )
{
int i;
@@ -328,70 +341,98 @@ cipher_get_blocksize( int algo )
/****************
* Open a cipher handle for use with algorithm ALGO, in mode MODE
- * and put it into secure memory if SECURE is true.
+ * and return the handle. Return NULL and set the internal error variable
+ * if something goes wrong.
*/
-CIPHER_HANDLE
-cipher_open( int algo, int mode, int secure )
+
+GCRY_CIPHER_HD
+gcry_cipher_open( int algo, int mode, unsigned int flags )
{
- CIPHER_HANDLE hd;
- int i;
+ GCRY_CIPHER_HD h;
+ int idx;
+ int secure = (flags & GCRY_CIPHER_SECURE);
fast_random_poll();
- do {
- for(i=0; cipher_table[i].name; i++ )
- if( cipher_table[i].algo == algo )
- break;
- } while( !cipher_table[i].name && load_cipher_modules() );
- if( !cipher_table[i].name ) {
- log_fatal("cipher_open: algorithm %d not available\n", algo );
+
+ /* check whether the algo is available */
+ if( check_cipher_algo( algo ) ) {
+ set_lasterr( GCRYERR_INV_ALGO );
return NULL;
}
- /* ? perform selftest here and mark this with a flag in cipher_table ? */
+ /* check flags */
+ if( (flags & ~(GCRY_CIPHER_SECURE|GCRY_CIPHER_ENABLE_SYNC)) ) {
+ set_lasterr( GCRYERR_INV_ARG );
+ return NULL;
+ }
+
+ /* get the table index of the algo */
+ for(idx=0; cipher_table[idx].name; idx++ )
+ if( cipher_table[idx].algo == algo )
+ break;
+ if( !cipher_table[idx].name )
+ BUG(); /* check_cipher_algo() should have loaded the algo */
- hd = secure ? m_alloc_secure_clear( sizeof *hd
- + cipher_table[i].contextsize
- - sizeof(PROPERLY_ALIGNED_TYPE) )
- : m_alloc_clear( sizeof *hd + cipher_table[i].contextsize
- - sizeof(PROPERLY_ALIGNED_TYPE) );
- hd->algo = algo;
- hd->blocksize = cipher_table[i].blocksize;
- hd->setkey = cipher_table[i].setkey;
- hd->encrypt = cipher_table[i].encrypt;
- hd->decrypt = cipher_table[i].decrypt;
if( algo == CIPHER_ALGO_DUMMY )
- hd->mode = CIPHER_MODE_DUMMY;
- else if( mode == CIPHER_MODE_AUTO_CFB ) {
- #warning Remove this code and the AUTO:CFB macro.
- if( algo >= 100 )
- hd->mode = CIPHER_MODE_CFB;
- else
- hd->mode = CIPHER_MODE_PHILS_CFB;
+ mode = GCRY_CIPHER_MODE_NONE; /* force this mode for dummy algo */
+
+ /* check that a valid mode has been requested */
+ switch( mode ) {
+ case GCRY_CIPHER_MODE_ECB:
+ case GCRY_CIPHER_MODE_CBC:
+ case GCRY_CIPHER_MODE_CFB:
+ break;
+ case GCRY_CIPHER_MODE_NONE:
+ /* FIXME: issue a warning when this mode is used */
+ break;
+ default:
+ set_lasterr( GCRYERR_INV_ALGO );
+ return NULL;
}
- else
- hd->mode = mode;
- return hd;
+ /* ? perform selftest here and mark this with a flag in cipher_table ? */
+
+ h = secure ? m_alloc_secure_clear( sizeof *h
+ + cipher_table[idx].contextsize
+ - sizeof(PROPERLY_ALIGNED_TYPE) )
+ : m_alloc_clear( sizeof *h + cipher_table[idx].contextsize
+ - sizeof(PROPERLY_ALIGNED_TYPE) );
+ h->magic = secure ? CTX_MAGIC_SECURE : CTX_MAGIC_NORMAL;
+ h->algo = algo;
+ h->mode = mode;
+ h->flags = flags;
+ h->blocksize = cipher_table[idx].blocksize;
+ h->setkey = cipher_table[idx].setkey;
+ h->encrypt = cipher_table[idx].encrypt;
+ h->decrypt = cipher_table[idx].decrypt;
+
+ return h;
}
void
-cipher_close( CIPHER_HANDLE c )
+gcry_cipher_close( GCRY_CIPHER_HD h )
{
- m_free(c);
+ if( !h )
+ return;
+ if( h->magic != CTX_MAGIC_SECURE && h->magic != CTX_MAGIC_NORMAL ) {
+ fatal_invalid_arg("gcry_cipher_close: already closed/invalid handle");
+ return;
+ }
+ h->magic = 0;
+ m_free(h);
}
-int
-cipher_setkey( CIPHER_HANDLE c, byte *key, unsigned keylen )
+static int
+cipher_setkey( GCRY_CIPHER_HD c, byte *key, unsigned keylen )
{
return (*c->setkey)( &c->context.c, key, keylen );
}
-
-void
-cipher_setiv( CIPHER_HANDLE c, const byte *iv, unsigned ivlen )
+static void
+cipher_setiv( GCRY_CIPHER_HD c, const byte *iv, unsigned ivlen )
{
memset( c->iv, 0, c->blocksize );
if( iv ) {
@@ -408,7 +449,7 @@ cipher_setiv( CIPHER_HANDLE c, const byte *iv, unsigned ivlen )
static void
-do_ecb_encrypt( CIPHER_HANDLE c, byte *outbuf, byte *inbuf, unsigned nblocks )
+do_ecb_encrypt( GCRY_CIPHER_HD c, byte *outbuf, byte *inbuf, unsigned nblocks )
{
unsigned n;
@@ -420,7 +461,7 @@ do_ecb_encrypt( CIPHER_HANDLE c, byte *outbuf, byte *inbuf, unsigned nblocks )
}
static void
-do_ecb_decrypt( CIPHER_HANDLE c, byte *outbuf, byte *inbuf, unsigned nblocks )
+do_ecb_decrypt( GCRY_CIPHER_HD c, byte *outbuf, byte *inbuf, unsigned nblocks )
{
unsigned n;
@@ -432,7 +473,7 @@ do_ecb_decrypt( CIPHER_HANDLE c, byte *outbuf, byte *inbuf, unsigned nblocks )
}
static void
-do_cbc_encrypt( CIPHER_HANDLE c, byte *outbuf, byte *inbuf, unsigned nblocks )
+do_cbc_encrypt( GCRY_CIPHER_HD c, byte *outbuf, byte *inbuf, unsigned nblocks )
{
unsigned int n;
byte *ivp;
@@ -453,7 +494,7 @@ do_cbc_encrypt( CIPHER_HANDLE c, byte *outbuf, byte *inbuf, unsigned nblocks )
}
static void
-do_cbc_decrypt( CIPHER_HANDLE c, byte *outbuf, byte *inbuf, unsigned nblocks )
+do_cbc_decrypt( GCRY_CIPHER_HD c, byte *outbuf, byte *inbuf, unsigned nblocks )
{
unsigned int n;
byte *ivp;
@@ -476,7 +517,7 @@ do_cbc_decrypt( CIPHER_HANDLE c, byte *outbuf, byte *inbuf, unsigned nblocks )
static void
-do_cfb_encrypt( CIPHER_HANDLE c, byte *outbuf, byte *inbuf, unsigned nbytes )
+do_cfb_encrypt( GCRY_CIPHER_HD c, byte *outbuf, byte *inbuf, unsigned nbytes )
{
byte *ivp;
size_t blocksize = c->blocksize;
@@ -520,7 +561,7 @@ do_cfb_encrypt( CIPHER_HANDLE c, byte *outbuf, byte *inbuf, unsigned nbytes )
}
static void
-do_cfb_decrypt( CIPHER_HANDLE c, byte *outbuf, byte *inbuf, unsigned nbytes )
+do_cfb_decrypt( GCRY_CIPHER_HD c, byte *outbuf, byte *inbuf, unsigned nbytes )
{
byte *ivp;
ulong temp;
@@ -582,23 +623,22 @@ do_cfb_decrypt( CIPHER_HANDLE c, byte *outbuf, byte *inbuf, unsigned nbytes )
* inbuf and outbuf may overlap or be the same.
* Depending on the mode some some contraints apply to NBYTES.
*/
-void
-cipher_encrypt( CIPHER_HANDLE c, byte *outbuf, byte *inbuf, unsigned nbytes )
+static void
+cipher_encrypt( GCRY_CIPHER_HD c, byte *outbuf, byte *inbuf, unsigned nbytes )
{
switch( c->mode ) {
- case CIPHER_MODE_ECB:
+ case GCRY_CIPHER_MODE_ECB:
assert(!(nbytes%8));
do_ecb_encrypt(c, outbuf, inbuf, nbytes/8 );
break;
- case CIPHER_MODE_CBC:
+ case GCRY_CIPHER_MODE_CBC:
assert(!(nbytes%8)); /* fixme: should be blocksize */
do_cbc_encrypt(c, outbuf, inbuf, nbytes/8 );
break;
- case CIPHER_MODE_CFB:
- case CIPHER_MODE_PHILS_CFB:
+ case GCRY_CIPHER_MODE_CFB:
do_cfb_encrypt(c, outbuf, inbuf, nbytes );
break;
- case CIPHER_MODE_DUMMY:
+ case GCRY_CIPHER_MODE_NONE:
if( inbuf != outbuf )
memmove( outbuf, inbuf, nbytes );
break;
@@ -608,27 +648,53 @@ cipher_encrypt( CIPHER_HANDLE c, byte *outbuf, byte *inbuf, unsigned nbytes )
/****************
+ * Encrypt IN and write it to OUT. If IN is NULL, in-place encryption has
+ * been requested,
+ */
+int
+gcry_cipher_encrypt( GCRY_CIPHER_HD h, byte *out, size_t outsize,
+ const byte *in, size_t inlen )
+{
+ if( !in ) {
+ /* caller requested in-place encryption */
+ /* actullay cipher_encrypt() does not need to know about it, but
+ * we may chnage this to get better performace */
+ cipher_encrypt( h, out, out, outsize );
+ }
+ else {
+ if( outsize < inlen )
+ return set_lasterr( GCRYERR_TOO_SHORT );
+ /* fixme: check that the inlength is a multipe of the blocksize
+ * if a blockoriented mode is used, or modify cipher_encrypt to
+ * return an error in this case */
+ cipher_encrypt( h, out, in, inlen );
+ }
+ return 0;
+}
+
+
+
+/****************
* Decrypt INBUF to OUTBUF with the mode selected at open.
* inbuf and outbuf may overlap or be the same.
* Depending on the mode some some contraints apply to NBYTES.
*/
-void
-cipher_decrypt( CIPHER_HANDLE c, byte *outbuf, byte *inbuf, unsigned nbytes )
+static void
+cipher_decrypt( GCRY_CIPHER_HD c, byte *outbuf, byte *inbuf, unsigned nbytes )
{
switch( c->mode ) {
- case CIPHER_MODE_ECB:
+ case GCRY_CIPHER_MODE_ECB:
assert(!(nbytes%8));
do_ecb_decrypt(c, outbuf, inbuf, nbytes/8 );
break;
- case CIPHER_MODE_CBC:
+ case GCRY_CIPHER_MODE_CBC:
assert(!(nbytes%8)); /* fixme: should assert on blocksize */
do_cbc_decrypt(c, outbuf, inbuf, nbytes/8 );
break;
- case CIPHER_MODE_CFB:
- case CIPHER_MODE_PHILS_CFB:
+ case GCRY_CIPHER_MODE_CFB:
do_cfb_decrypt(c, outbuf, inbuf, nbytes );
break;
- case CIPHER_MODE_DUMMY:
+ case GCRY_CIPHER_MODE_NONE:
if( inbuf != outbuf )
memmove( outbuf, inbuf, nbytes );
break;
@@ -637,18 +703,160 @@ cipher_decrypt( CIPHER_HANDLE c, byte *outbuf, byte *inbuf, unsigned nbytes )
}
+int
+gcry_cipher_decrypt( GCRY_CIPHER_HD h, byte *out, size_t outsize,
+ const byte *in, size_t inlen )
+{
+ if( !in ) {
+ /* caller requested in-place encryption */
+ /* actullay cipher_encrypt() does not need to know about it, but
+ * we may chnage this to get better performace */
+ cipher_decrypt( h, out, out, outsize );
+ }
+ else {
+ if( outsize < inlen )
+ return set_lasterr( GCRYERR_TOO_SHORT );
+ /* fixme: check that the inlength is a multipe of the blocksize
+ * if a blockoriented mode is used, or modify cipher_encrypt to
+ * return an error in this case */
+ cipher_decrypt( h, out, in, inlen );
+ }
+ return 0;
+}
+
+
/****************
* Used for PGP's somewhat strange CFB mode. Only works if
- * the handle is in PHILS_CFB mode
+ * the corresponding flag is set.
*/
-void
-cipher_sync( CIPHER_HANDLE c )
+static void
+cipher_sync( GCRY_CIPHER_HD c )
{
- if( c->mode == CIPHER_MODE_PHILS_CFB && c->unused ) {
+ if( (c->flags & GCRY_CIPHER_ENABLE_SYNC) && c->unused ) {
memmove(c->iv + c->unused, c->iv, c->blocksize - c->unused );
memcpy(c->iv, c->lastiv + c->blocksize - c->unused, c->unused);
c->unused = 0;
}
}
+
+int
+gcry_cipher_ctl( GCRY_CIPHER_HD h, int cmd, void *buffer, size_t buflen)
+{
+ switch( cmd ) {
+ case GCRYCTL_SET_KEY:
+ cipher_setkey( h, buffer, buflen );
+ break;
+ case GCRYCTL_SET_IV:
+ cipher_setiv( h, buffer, buflen );
+ break;
+ case GCRYCTL_CFB_SYNC:
+ cipher_sync( h );
+ break;
+
+ case GCRYCTL_DISABLE_ALGO:
+ /* this one expects a NULL handle and buffer pointing to an
+ * integer with the algo number.
+ */
+ if( h || !buffer || buflen != sizeof(int) )
+ return set_lasterr( GCRYERR_INV_ARG );
+ disable_cipher_algo( *(int*)buffer );
+ break;
+
+ default:
+ return set_lasterr( GCRYERR_INV_OP );
+ }
+ return 0;
+}
+
+
+/****************
+ * Return information about the cipher handle.
+ * -1 is returned on error and gcry_errno() may be used to get more information
+ * about the error.
+ */
+int
+gcry_cipher_info( GCRY_CIPHER_HD h, int cmd, void *buffer, size_t *nbytes)
+{
+ switch( cmd ) {
+ default:
+ set_lasterr( GCRYERR_INV_OP );
+ return -1;
+ }
+ return 0;
+}
+
+/****************
+ * Return information about the given cipher algorithm
+ * WHAT select the kind of information returned:
+ * GCRYCTL_GET_KEYLEN:
+ * Return the length of the key, if the algorithm
+ * supports multiple key length, the maximum supported value
+ * is returnd. The length is return as number of octets.
+ * buffer and nbytes must be zero.
+ * The keylength is returned in _bytes_.
+ * GCRYCTL_GET_BLKLEN:
+ * Return the blocklength of the algorithm counted in octets.
+ * buffer and nbytes must be zero.
+ * GCRYCTL_TEST_ALGO:
+ * Returns 0 when the specified algorithm is available for use.
+ * buffer and nbytes must be zero.
+ *
+ * On error the value -1 is returned and the error reason may be
+ * retrieved by gcry_errno().
+ * Note: Because this function is in most caes used to return an
+ * integer value, we can make it easier for the caller to just look at
+ * the return value. The caller will in all cases consult the value
+ * and thereby detecting whether a error occured or not (i.e. while checking
+ * the block size)
+ */
+int
+gcry_cipher_algo_info( int algo, int what, void *buffer, size_t *nbytes)
+{
+ unsigned int ui;
+
+ switch( what ) {
+ case GCRYCTL_GET_KEYLEN:
+ if( buffer || nbytes ) {
+ set_lasterr( GCRYERR_INV_ARG );
+ break;
+ }
+ ui = cipher_get_keylen( algo );
+ if( ui > 0 && ui <= 512 )
+ return (int)ui/8;
+ /* the only reason is an invalid algo or a strange blocksize */
+ set_lasterr( GCRYERR_INV_ALGO );
+ break;
+
+ case GCRYCTL_GET_BLKLEN:
+ if( buffer || nbytes ) {
+ set_lasterr( GCRYERR_INV_ARG );
+ break;
+ }
+ ui = cipher_get_blocksize( algo );
+ if( ui > 0 && ui < 10000 )
+ return (int)ui;
+ /* the only reason is an invalid algo or a strange blocksize */
+ set_lasterr( GCRYERR_INV_ALGO );
+ break;
+
+ case GCRYCTL_TEST_ALGO:
+ if( buffer || nbytes ) {
+ set_lasterr( GCRYERR_INV_ARG );
+ break;
+ }
+ if( check_cipher_algo( algo ) ) {
+ set_lasterr( GCRYERR_INV_ALGO );
+ break;
+ }
+ return 0;
+
+ default:
+ set_lasterr( GCRYERR_INV_OP );
+ }
+ return -1;
+}
+
+
+
diff --git a/cipher/elgamal.c b/cipher/elgamal.c
index bbf9c2782..9f98ce2e0 100644
--- a/cipher/elgamal.c
+++ b/cipher/elgamal.c
@@ -351,8 +351,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..f0dc9394e 100644
--- a/cipher/md.c
+++ b/cipher/md.c
@@ -24,6 +24,8 @@
#include <string.h>
#include <errno.h>
#include <assert.h>
+
+#include "g10lib.h"
#include "util.h"
#include "cipher.h"
#include "errors.h"
@@ -31,9 +33,38 @@
#include "rmd.h"
+struct md_digest_list_s;
+
+/* this structure is put right after the GCRY_MD_HD buffer, so that
+ * only one memory block is needed. */
+struct gcry_md_context {
+ int magic;
+ int secure;
+ FILE *debug;
+ int finalized;
+ struct md_digest_list_s *list;
+};
+#define CTX_MAGIC_NORMAL 0x11071961
+#define CTX_MAGIC_SECURE 0x16917011
+
+static const char * digest_algo_to_string( int algo );
+static int check_digest_algo( int algo );
+static GCRY_MD_HD md_open( int algo, int secure );
+static int md_enable( GCRY_MD_HD hd, int algo );
+static GCRY_MD_HD md_copy( GCRY_MD_HD a );
+static void md_close(GCRY_MD_HD a);
+static void md_write( GCRY_MD_HD a, byte *inbuf, size_t inlen);
+static void md_final(GCRY_MD_HD a);
+static byte *md_read( GCRY_MD_HD a, int algo );
+static int md_get_algo( GCRY_MD_HD a );
+static int md_digest_length( int algo );
+static const byte *md_asn_oid( int algo, size_t *asnlen, size_t *mdlen );
+static void md_start_debug( GCRY_MD_HD a, const char *suffix );
+static void md_stop_debug( GCRY_MD_HD a );
+
/****************
* This structure is used for the list of available algorithms
- * and for the list of algorithms in MD_HANDLE.
+ * and for the list of algorithms in GCRY_MD_HD.
*/
struct md_digest_list_s {
struct md_digest_list_s *next;
@@ -146,7 +177,7 @@ load_digest_module( int req_algo )
* Map a string to the digest algo
*/
int
-string_to_digest_algo( const char *string )
+gcry_md_map_name( const char *string )
{
struct md_digest_list_s *r;
@@ -162,7 +193,7 @@ string_to_digest_algo( const char *string )
/****************
* Map a digest algo to a string
*/
-const char *
+static const char *
digest_algo_to_string( int algo )
{
struct md_digest_list_s *r;
@@ -175,8 +206,21 @@ digest_algo_to_string( int algo )
return NULL;
}
+/****************
+ * This function simply returns the name of the algorithm or some constant
+ * string when there is no algo. It will never return NULL.
+ * Use the macro gcry_md_test_algo() to check whether the algorithm
+ * is valid.
+ */
+const char *
+gcry_md_algo_name( int algo )
+{
+ const char *s = digest_algo_to_string( algo );
+ return s? s: "?";
+}
-int
+
+static int
check_digest_algo( int algo )
{
struct md_digest_list_s *r;
@@ -196,37 +240,73 @@ check_digest_algo( int algo )
* More algorithms may be added by md_enable(). The initial algorithm
* may be 0.
*/
-MD_HANDLE
+static GCRY_MD_HD
md_open( int algo, int secure )
{
- MD_HANDLE hd;
- int bufsize;
-
- if( secure ) {
- bufsize = 512 - sizeof( *hd );
- hd = m_alloc_secure_clear( sizeof *hd + bufsize );
- }
- else {
- bufsize = 1024 - sizeof( *hd );
- hd = m_alloc_clear( sizeof *hd + bufsize );
+ GCRY_MD_HD hd;
+ struct gcry_md_context *ctx;
+ int bufsize = secure? 512 : 1024;
+ size_t n;
+
+ /* Allocate a memory area to hold the caller visible buffer with it's
+ * control information and the data required by this module. Set the
+ * context pointer at the beginning to this area.
+ * We have to use this strange scheme because we want to hide the
+ * internal data but have a variable sized buffer.
+ *
+ * +---+------+---........------+-------------+
+ * !ctx! bctl ! buffer ! private !
+ * +---+------+---........------+-------------+
+ * ! ^
+ * !---------------------------!
+ *
+ * We have to make sture that private is well aligned.
+ */
+ n = sizeof( struct gcry_md_handle ) + bufsize;
+ n = ((n + sizeof(PROPERLY_ALIGNED_TYPE)-1)
+ / sizeof(PROPERLY_ALIGNED_TYPE) ) * sizeof(PROPERLY_ALIGNED_TYPE);
+
+ /* allocate and set the Context pointer to the private data */
+ hd = secure ? m_alloc_secure( n + sizeof( struct gcry_md_context ) )
+ : m_alloc( n + sizeof( struct gcry_md_context ) );
+ hd->ctx = ctx = (struct gcry_md_context*)( (char*)hd + n );
+ /* setup the globally visible data (bctl in the diagram)*/
+ hd->bufsize = n - sizeof( struct gcry_md_handle ) + 1;
+ hd->bufpos = 0;
+ /* initialize the private data */
+ memset( hd->ctx, 0, sizeof *hd->ctx );
+ ctx->magic = secure ? CTX_MAGIC_SECURE : CTX_MAGIC_NORMAL;
+ ctx->secure = secure;
+ fast_random_poll(); /* FIXME: should we really do that? */
+ if( algo && md_enable( hd, algo ) ) {
+ md_close( hd );
+ return NULL;
}
+ return hd;
+}
+
- hd->bufsize = bufsize+1; /* hd has already one byte allocated */
- hd->secure = secure;
- if( algo )
- md_enable( hd, algo );
- fast_random_poll();
+GCRY_MD_HD
+gcry_md_open( int algo, unsigned int flags )
+{
+ GCRY_MD_HD hd;
+ /* fixme: check that algo is available and that only valid
+ * flag values are used */
+ hd = md_open( algo, (flags & GCRY_MD_FLAG_SECURE) );
return hd;
}
-void
-md_enable( MD_HANDLE h, int algo )
+
+
+static int
+md_enable( GCRY_MD_HD hd, int algo )
{
+ struct gcry_md_context *h = hd->ctx;
struct md_digest_list_s *r, *ac;
for( ac=h->list; ac; ac = ac->next )
if( ac->algo == algo )
- return ; /* already enabled */
+ return 0; /* already enabled */
/* find the algorithm */
do {
for(r = digest_list; r; r = r->next )
@@ -234,8 +314,8 @@ md_enable( MD_HANDLE h, int algo )
break;
} while( !r && load_digest_module( algo ) );
if( !r ) {
- log_error("md_enable: algorithm %d not available\n", algo );
- return;
+ log_debug("md_enable: algorithm %d not available\n", algo );
+ return set_lasterr( GCRYERR_INV_ALGO );
}
/* and allocate a new list entry */
ac = h->secure? m_alloc_secure( sizeof *ac + r->contextsize
@@ -247,20 +327,37 @@ md_enable( MD_HANDLE h, int algo )
h->list = ac;
/* and init this instance */
(*ac->init)( &ac->context.c );
+ return 0;
}
-MD_HANDLE
-md_copy( MD_HANDLE a )
+int
+gcry_md_enable( GCRY_MD_HD hd, int algo )
{
- MD_HANDLE b;
- struct md_digest_list_s *ar, *br;
+ return md_enable( hd, algo );
+}
- if( a->bufcount )
- md_write( a, NULL, 0 );
- b = a->secure ? m_alloc_secure( sizeof *b + a->bufsize - 1 )
- : m_alloc( sizeof *b + a->bufsize - 1 );
- memcpy( b, a, sizeof *a + a->bufsize - 1 );
+static GCRY_MD_HD
+md_copy( GCRY_MD_HD ahd )
+{
+ struct gcry_md_context *a = ahd->ctx;
+ struct gcry_md_context *b;
+ GCRY_MD_HD bhd;
+ struct md_digest_list_s *ar, *br;
+ size_t n;
+
+ if( ahd->bufpos )
+ md_write( ahd, NULL, 0 );
+
+ n = (char*)ahd->ctx - (char*)ahd;
+ bhd = a->secure ? m_alloc_secure( n + sizeof( struct gcry_md_context ) )
+ : m_alloc( n + sizeof( struct gcry_md_context ) );
+ bhd->ctx = b = (struct gcry_md_context*)( (char*)bhd + n );
+ /* no need to copy the buffer due to the write above */
+ assert( ahd->bufsize == (n - sizeof( struct gcry_md_handle ) + 1) );
+ bhd->bufsize = ahd->bufsize;
+ bhd->bufpos = 0; assert( !ahd->bufpos );
+ memcpy( b, a, sizeof *a );
b->list = NULL;
b->debug = NULL;
/* and now copy the complete list of algorithms */
@@ -277,38 +374,43 @@ md_copy( MD_HANDLE a )
}
if( a->debug )
- md_start_debug( b, "unknown" );
- return b;
+ md_start_debug( bhd, "unknown" );
+ return bhd;
}
+GCRY_MD_HD
+gcry_md_copy( GCRY_MD_HD hd )
+{
+ return md_copy( hd );
+}
/****************
* Reset all contexts and discard any buffered stuff. This may be used
* instead of a md_close(); md_open().
*/
void
-md_reset( MD_HANDLE a )
+gcry_md_reset( GCRY_MD_HD a )
{
struct md_digest_list_s *r;
- a->bufcount = 0;
- for( r=a->list; r; r = r->next ) {
+ a->bufpos = a->ctx->finalized = 0;
+ for( r=a->ctx->list; r; r = r->next ) {
memset( r->context.c, 0, r->contextsize );
(*r->init)( &r->context.c );
}
}
-void
-md_close(MD_HANDLE a)
+static void
+md_close(GCRY_MD_HD a)
{
struct md_digest_list_s *r, *r2;
if( !a )
return;
- if( a->debug )
+ if( a->ctx->debug )
md_stop_debug(a);
- for(r=a->list; r; r = r2 ) {
+ for(r=a->ctx->list; r; r = r2 ) {
r2 = r->next;
m_free(r);
}
@@ -317,60 +419,86 @@ md_close(MD_HANDLE a)
void
-md_write( MD_HANDLE a, byte *inbuf, size_t inlen)
+gcry_md_close( GCRY_MD_HD hd )
+{
+ md_close( hd );
+}
+
+
+static void
+md_write( GCRY_MD_HD a, byte *inbuf, size_t inlen)
{
struct md_digest_list_s *r;
- if( a->debug ) {
- if( a->bufcount && fwrite(a->buffer, a->bufcount, 1, a->debug ) != 1 )
+ if( a->ctx->debug ) {
+ if( a->bufpos && fwrite(a->buf, a->bufpos, 1, a->ctx->debug ) != 1 )
BUG();
- if( inlen && fwrite(inbuf, inlen, 1, a->debug ) != 1 )
+ if( inlen && fwrite(inbuf, inlen, 1, a->ctx->debug ) != 1 )
BUG();
}
- for(r=a->list; r; r = r->next ) {
- (*r->write)( &r->context.c, a->buffer, a->bufcount );
+ for(r=a->ctx->list; r; r = r->next ) {
+ if( a->bufpos )
+ (*r->write)( &r->context.c, a->buf, a->bufpos );
(*r->write)( &r->context.c, inbuf, inlen );
}
- a->bufcount = 0;
+ a->bufpos = 0;
}
-
void
-md_final(MD_HANDLE a)
+gcry_md_write( GCRY_MD_HD hd, const byte *inbuf, size_t inlen)
+{
+ md_write( hd, (byte*)inbuf, inlen );
+}
+
+
+
+static void
+md_final(GCRY_MD_HD a)
{
struct md_digest_list_s *r;
- if( a->finalized )
+ if( a->ctx->finalized )
return;
- if( a->bufcount )
+ if( a->bufpos )
md_write( a, NULL, 0 );
- for(r=a->list; r; r = r->next ) {
+ for(r=a->ctx->list; r; r = r->next ) {
(*r->final)( &r->context.c );
}
- a->finalized = 1;
+ a->ctx->finalized = 1;
+}
+
+
+int
+gcry_md_ctl( GCRY_MD_HD hd, int cmd, byte *buffer, size_t buflen)
+{
+ if( cmd == GCRYCTL_FINALIZE )
+ md_final( hd );
+ else
+ return GCRYERR_INV_OP;
+ return 0;
}
/****************
* if ALGO is null get the digest for the used algo (which should be only one)
*/
-byte *
-md_read( MD_HANDLE a, int algo )
+static byte *
+md_read( GCRY_MD_HD a, int algo )
{
struct md_digest_list_s *r;
if( !algo ) { /* return the first algorithm */
- if( (r=a->list) ) {
+ if( (r=a->ctx->list) ) {
if( r->next )
log_debug("more than algorithm in md_read(0)\n");
return (*r->read)( &r->context.c );
}
}
else {
- for(r=a->list; r; r = r->next )
+ for(r=a->ctx->list; r; r = r->next )
if( r->algo == algo )
return (*r->read)( &r->context.c );
}
@@ -378,6 +506,17 @@ md_read( MD_HANDLE a, int algo )
return NULL;
}
+/****************
+ * Read out the complete digest, this function implictly finalizes
+ * the hash.
+ */
+byte *
+gcry_md_read( GCRY_MD_HD hd, int algo )
+{
+ gcry_md_ctl( hd, GCRYCTL_FINALIZE, NULL, 0 );
+ return md_read( hd, algo);
+}
+
/****************
* This function combines md_final and md_read but keeps the context
@@ -388,22 +527,23 @@ md_read( MD_HANDLE a, int algo )
* hold the complete digest, the buffer is filled with as many bytes are
* possible and this value is returned.
*/
-int
-md_digest( MD_HANDLE a, int algo, byte *buffer, int buflen )
+#if 0
+static int
+md_digest( GCRY_MD_HD a, int algo, byte *buffer, int buflen )
{
struct md_digest_list_s *r = NULL;
char *context;
char *digest;
- if( a->bufcount )
+ if( a->bufpos )
md_write( a, NULL, 0 );
if( !algo ) { /* return digest for the first algorithm */
- if( (r=a->list) && r->next )
+ if( (r=a->ctx->list) && r->next )
log_debug("more than algorithm in md_digest(0)\n");
}
else {
- for(r=a->list; r; r = r->next )
+ for(r=a->ctx->list; r; r = r->next )
if( r->algo == algo )
break;
}
@@ -414,9 +554,9 @@ md_digest( MD_HANDLE a, int algo, byte *buffer, int buflen )
return r->mdlen;
/* I don't want to change the interface, so I simply work on a copy
- * the context (extra overhead - should be fixed)*/
- context = a->secure ? m_alloc_secure( r->contextsize )
- : m_alloc( r->contextsize );
+ * of the context (extra overhead - should be fixed)*/
+ context = a->ctx->secure ? m_alloc_secure( r->contextsize )
+ : m_alloc( r->contextsize );
memcpy( context, r->context.c, r->contextsize );
(*r->final)( context );
digest = (*r->read)( context );
@@ -428,14 +568,26 @@ md_digest( MD_HANDLE a, int algo, byte *buffer, int buflen )
m_free(context);
return buflen;
}
+#endif
-
+/****************
+ * Read out an intermediate digest.
+ */
int
-md_get_algo( MD_HANDLE a )
+gcry_md_get( GCRY_MD_HD hd, int algo, byte *buffer, int buflen )
+{
+ /*md_digest ... */
+ return GCRYERR_INTERNAL;
+}
+
+
+
+static int
+md_get_algo( GCRY_MD_HD a )
{
struct md_digest_list_s *r;
- if( (r=a->list) ) {
+ if( (r=a->ctx->list) ) {
if( r->next )
log_error("WARNING: more than algorithm in md_get_algo()\n");
return r->algo;
@@ -443,10 +595,18 @@ md_get_algo( MD_HANDLE a )
return 0;
}
+
+int
+gcry_md_get_algo( GCRY_MD_HD hd )
+{
+ return md_get_algo( hd ); /* fixme: we need error handling */
+}
+
+
/****************
* Return the length of the digest
*/
-int
+static int
md_digest_length( int algo )
{
struct md_digest_list_s *r;
@@ -457,14 +617,35 @@ md_digest_length( int algo )
return r->mdlen;
}
} while( !r && load_digest_module( algo ) );
- log_error("WARNING: no length for md algo %d\n", algo);
return 0;
}
+/****************
+ * Return the length of the digest in bytes.
+ * This function will return 0 in case of errors.
+ */
+unsigned int
+gcry_md_get_algo_dlen( int algo )
+{
+ /* we do some very quick checks here */
+ switch( algo )
+ {
+ case GCRY_MD_MD5: return 16;
+ case GCRY_MD_SHA1:
+ case GCRY_MD_RMD160: return 20;
+ default: {
+ int len = md_digest_length( algo );
+ if( !len )
+ set_lasterr( GCRYERR_INV_ALGO );
+ return 0;
+ }
+ }
+}
+
/* Hmmm: add a mode to enumerate the OIDs
* to make g10/sig-check.c more portable */
-const byte *
+static const byte *
md_asn_oid( int algo, size_t *asnlen, size_t *mdlen )
{
struct md_digest_list_s *r;
@@ -485,31 +666,92 @@ md_asn_oid( int algo, size_t *asnlen, size_t *mdlen )
}
+
+/****************
+ * Return information about the given cipher algorithm
+ * WHAT select the kind of information returned:
+ * GCRYCTL_TEST_ALGO:
+ * Returns 0 when the specified algorithm is available for use.
+ * buffer and nbytes must be zero.
+ * GCRYCTL_GET_ASNOID:
+ * Return the ASNOID of the algorithm in buffer. if buffer is NULL, only
+ * the required length is returned.
+ *
+ * On error the value -1 is returned and the error reason may be
+ * retrieved by gcry_errno().
+ * Note: Because this function is in most caes used to return an
+ * integer value, we can make it easier for the caller to just look at
+ * the return value. The caller will in all cases consult the value
+ * and thereby detecting whether a error occured or not (i.e. while checking
+ * the block size)
+ */
+int
+gcry_md_algo_info( int algo, int what, void *buffer, size_t *nbytes)
+{
+ switch( what ) {
+ case GCRYCTL_TEST_ALGO:
+ if( buffer || nbytes ) {
+ set_lasterr( GCRYERR_INV_ARG );
+ return -1;
+ }
+ if( check_digest_algo( algo ) ) {
+ set_lasterr( GCRYERR_INV_ALGO );
+ return -1;
+ }
+ break;
+
+ case GCRYCTL_GET_ASNOID: {
+ size_t asnlen;
+ const char *asn = md_asn_oid( algo, &asnlen, NULL );
+ if( buffer && *nbytes >= asnlen ) {
+ memcpy( buffer, asn, asnlen );
+ *nbytes = asnlen;
+ return 0;
+ }
+ if( !buffer && nbytes ) {
+ *nbytes = asnlen;
+ return 0;
+ }
+ set_lasterr( buffer ? GCRYERR_TOO_SHORT : GCRYERR_INV_ARG );
+ return -1;
+ }
+ break;
+
+ default:
+ set_lasterr( GCRYERR_INV_OP );
+ return -1;
+ }
+ return 0;
+}
+
+
+
+
void
-md_start_debug( MD_HANDLE md, const char *suffix )
+md_start_debug( GCRY_MD_HD md, const char *suffix )
{
static int idx=0;
char buf[25];
- if( md->debug ) {
+ if( md->ctx->debug ) {
log_debug("Oops: md debug already started\n");
return;
}
idx++;
sprintf(buf, "dbgmd-%05d.%.10s", idx, suffix );
- md->debug = fopen(buf, "w");
- if( !md->debug )
+ md->ctx->debug = fopen(buf, "w");
+ if( !md->ctx->debug )
log_debug("md debug: can't open %s\n", buf );
}
void
-md_stop_debug( MD_HANDLE md )
+md_stop_debug( GCRY_MD_HD md )
{
- if( md->debug ) {
- if( md->bufcount )
+ if( md->ctx->debug ) {
+ if( md->bufpos )
md_write( md, NULL, 0 );
- fclose(md->debug);
- md->debug = NULL;
+ fclose(md->ctx->debug);
+ md->ctx->debug = NULL;
}
#ifdef HAVE_U64_TYPEDEF
{ /* a kludge to pull in the __muldi3 for Solaris */
@@ -521,3 +763,25 @@ md_stop_debug( MD_HANDLE md )
#endif
}
+
+
+/****************
+ * Return information about the digest handle.
+ * GCRYCTL_IS_SECURE:
+ * Returns 1 when the handle works on secured memory
+ * otherwise 0 is returned. There is no error return.
+ */
+int
+gcry_md_info( GCRY_MD_HD h, int cmd, void *buffer, size_t *nbytes)
+{
+ switch( cmd ) {
+ case GCRYCTL_IS_SECURE:
+ return h->ctx->secure;
+
+ default:
+ set_lasterr( GCRYERR_INV_OP );
+ return -1;
+ }
+ return 0;
+}
+
diff --git a/cipher/pubkey.c b/cipher/pubkey.c
index a03af3026..4561f2ffa 100644
--- a/cipher/pubkey.c
+++ b/cipher/pubkey.c
@@ -1,5 +1,5 @@
/* pubkey.c - pubkey dispatcher
- * Copyright (C) 1998 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@@ -24,6 +24,8 @@
#include <string.h>
#include <errno.h>
#include <assert.h>
+
+#include "g10lib.h"
#include "util.h"
#include "errors.h"
#include "mpi.h"
@@ -236,7 +238,7 @@ load_pubkey_modules(void)
* Map a string to the pubkey algo
*/
int
-string_to_pubkey_algo( const char *string )
+gcry_pk_map_name( const char *string )
{
int i;
const char *s;
@@ -254,7 +256,7 @@ string_to_pubkey_algo( const char *string )
* Map a pubkey algo to a string
*/
const char *
-pubkey_algo_to_string( int algo )
+gcry_pk_algo_name( int algo )
{
int i;
@@ -565,3 +567,78 @@ pubkey_verify( int algo, MPI hash, MPI *data, MPI *pkey,
return rc;
}
+
+int
+gcry_pk_encrypt( GCRY_SEXP *result, GCRY_SEXP data, GCRY_SEXP pkey )
+{
+ /* ... */
+ return 0;
+}
+
+int
+gcry_pk_decrypt( GCRY_SEXP *result, GCRY_SEXP data, GCRY_SEXP skey )
+{
+ /* ... */
+ return 0;
+}
+
+int
+gcry_pk_sign( GCRY_SEXP *result, GCRY_SEXP data, GCRY_SEXP skey )
+{
+ GCRY_SEXP s;
+ /* get the secret key */
+ s = NULL; /*gcry_sexp_find_token( skey, "private-key", 0 );*/
+ if( !s )
+ return -1; /* no private key */
+ /* ... */
+ return 0;
+}
+
+int
+gcry_pk_verify( GCRY_SEXP *result, GCRY_SEXP data, GCRY_SEXP pkey )
+{
+ /* ... */
+ return 0;
+}
+
+
+
+
+/****************
+ * Return information about the given algorithm
+ * WHAT select the kind of information returned:
+ * GCRYCTL_TEST_ALGO:
+ * Returns 0 when the specified algorithm is available for use.
+ * buffer and nbytes must be zero.
+ *
+ * On error the value -1 is returned and the error reason may be
+ * retrieved by gcry_errno().
+ * Note: Because this function is in most caes used to return an
+ * integer value, we can make it easier for the caller to just look at
+ * the return value. The caller will in all cases consult the value
+ * and thereby detecting whether a error occured or not (i.e. while checking
+ * the block size)
+ */
+int
+gcry_pk_algo_info( int algo, int what, void *buffer, size_t *nbytes)
+{
+ switch( what ) {
+ case GCRYCTL_TEST_ALGO:
+ if( buffer || nbytes ) {
+ set_lasterr( GCRYERR_INV_ARG );
+ return -1;
+ }
+ if( check_pubkey_algo( algo ) ) {
+ set_lasterr( GCRYERR_INV_ALGO );
+ return -1;
+ }
+ break;
+
+ default:
+ set_lasterr( GCRYERR_INV_OP );
+ return -1;
+ }
+ return 0;
+}
+
+
diff --git a/configure.in b/configure.in
index ef3479a4b..8f1ab0b20 100644
--- a/configure.in
+++ b/configure.in
@@ -109,22 +109,9 @@ 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]],
+ [ --enable-libgcrypt compile the libgcrypt [default=yes]],
[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)
@@ -680,10 +667,13 @@ AC_SUBST(ZLIBS)
changequote(,)dnl
tmp_pat='[a-zA-Z]'
changequote([,])dnl
-if echo "$VERSION" | grep $tmp_pat >/dev/null ; then
+if echo "$VERSION" | grep "$tmp_pat" >/dev/null ; then
AC_DEFINE(IS_DEVELOPMENT_VERSION)
fi
+dnl Temp workaround:
+GNUPG_LINK_FILES(gcrypt/gcrypt.h, gcrypt.h )
+
AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes)
GNUPG_DO_LINK_FILES
diff --git a/doc/ChangeLog b/doc/ChangeLog
new file mode 100644
index 000000000..b83adc839
--- /dev/null
+++ b/doc/ChangeLog
@@ -0,0 +1,36 @@
+Tue Oct 26 14:10:21 CEST 1999 Werner Koch <wk@gnupg.de>
+
+ * Makefile.am (SUBDIRS): Removed gph from this development series
+
+Mon Sep 6 19:59:08 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
+
+ * Makefile.am (SUBDIRS): New subdir gph for the manual.
+
+Thu Jul 22 20:03:03 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
+
+ * gpg.sgml (--always-trust): Added.
+
+Wed Jul 14 19:42:08 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
+
+ * Makefile.am: Create a dummy man page if docbook-to-man is missing.
+
+Wed Jun 16 20:16:21 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
+
+ * 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 <wk@isil.d.shuttle.de>
+
+ * Makefile.in.in: Use DESTDIR.
+
+Mon May 31 19:41:10 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
+
+ * gpg.1pod: Enhanced the Bugs section (Michael).
+
+Wed Feb 10 17:15:39 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
+
+ * gpg.1pod: Spelling and grammar corrections (John A. Martin)
+ * FAQ: Ditto.
+ * DETAILS: Ditto.
+
diff --git a/doc/DETAILS b/doc/DETAILS
index 7c1e11edf..a06b5888e 100644
--- a/doc/DETAILS
+++ b/doc/DETAILS
@@ -181,6 +181,14 @@ 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.
Key generation
diff --git a/doc/Makefile.am b/doc/Makefile.am
index ae5cdb506..9d06f9bd7 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,6 +1,6 @@
## Process this file with automake to create Makefile.in
-SUBDIRS = gph
+##SUBDIRS = gph
EXTRA_DIST = DETAILS gpg.sgml gpg.1 FAQ HACKING OpenPGP
diff --git a/doc/gpg.sgml b/doc/gpg.sgml
index 1297737fd..44220a16e 100644
--- a/doc/gpg.sgml
+++ b/doc/gpg.sgml
@@ -260,7 +260,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>
diff --git a/g10/ChangeLog b/g10/ChangeLog
index 32d5f36a4..b5ded0c28 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,5 +1,55 @@
-Sat Sep 18 12:16:08 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
+Tue Oct 26 14:10:21 CEST 1999 Werner Koch <wk@gnupg.de>
+
+ * misc.c (openpgp_cipher_test_algo): New.
+ (openpgp_pk_test_algo): New.
+ (openpgp_md_test_algo): New.
+
+ * g10.c (build_list): Changed to use the new functions from libgcrypt.
+
+ * ringedit.c (enum_keyblocks): Set .rt to 0 on open.
+
+ * 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.
+
+ * 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.
+
+ (clearsign_file): Use gcry_md_test_algo() and gcry_md_algo_name().
+
+ * 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 suffix instead of
+ appending it.
+
+ * encr-data.c (decrypt_data): Reset error on a weak key.
+ * cipher.c: Replaced the cipher and digest functions by the gcry_ ones.
+ * seckey-cert.c: Ditto.
+ * seskey.c: Ditto.
+ * g10.c (print_mds): Replaced digst functions with the new gcry_ ones.
+ * keyid.c: Ditto.
+ * mainproc.c: Ditto.
+ * passphrase.c: Ditto.
+ * sig-check.c: Ditto.
+ * sign.c: Ditto.
+
+ * pkclist.c (do_edit_ownertrust): Made the answer string const.
+
+ * basicdefs.h: New. Move some defs and decl to this header.
+
+ * 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.
+
+Sat Sep 18 12:16:08 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
* filter.h: Changed cipher handle types to the the GCRY_xxx ones.
replaces include cipher by system header include gcrypt.h.
diff --git a/g10/Makefile.am b/g10/Makefile.am
index af727cda8..d2fd427c0 100644
--- a/g10/Makefile.am
+++ b/g10/Makefile.am
@@ -4,7 +4,8 @@ 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.la ../mpi/libmpi.la ../util/libutil.la \
+ ../gcrypt/libgcrypt.la
#noinst_PROGRAMS = gpgd
bin_PROGRAMS = gpg
diff --git a/g10/build-packet.c b/g10/build-packet.c
index 4049f370f..5e56c2048 100644
--- a/g10/build-packet.c
+++ b/g10/build-packet.c
@@ -242,7 +242,7 @@ do_public_key( IOBUF out, int ctb, PKT_public_key *pk )
* Make a hash value from the public key certificate
*/
void
-hash_public_key( MD_HANDLE md, PKT_public_key *pk )
+hash_public_key( GCRY_MD_HD md, PKT_public_key *pk )
{
PACKET pkt;
int rc = 0;
@@ -293,10 +293,10 @@ hash_public_key( MD_HANDLE md, PKT_public_key *pk )
}
}
/* hash a header */
- md_putc( md, 0x99 );
+ gcry_md_putc( md, 0x99 );
pktlen &= 0xffff; /* can't handle longer packets */
- md_putc( md, pktlen >> 8 );
- md_putc( md, pktlen & 0xff );
+ gcry_md_putc( md, pktlen >> 8 );
+ gcry_md_putc( md, pktlen & 0xff );
}
/* hash the packet body */
while( (c=iobuf_get(a)) != -1 ) {
@@ -307,7 +307,7 @@ hash_public_key( MD_HANDLE md, PKT_public_key *pk )
i=0;
}
#endif
- md_putc( md, c );
+ gcry_md_putc( md, c );
}
#if 0
putc('\n', fp);
diff --git a/g10/cipher.c b/g10/cipher.c
index e458a807c..c0f10ff19 100644
--- a/g10/cipher.c
+++ b/g10/cipher.c
@@ -25,6 +25,7 @@
#include <errno.h>
#include <assert.h>
+#include <gcrypt.h>
#include "errors.h"
#include "iobuf.h"
#include "memory.h"
@@ -55,6 +56,8 @@ write_header( cipher_filter_context_t *cfx, IOBUF a )
if( use_mdc ) {
ed.mdc_method = DIGEST_ALGO_SHA1;
cfx->mdc_hash = gcry_md_open( DIGEST_ALGO_SHA1, 0 );
+ /*should we check the function works, or is it better to provide
+ a flag which makes the function die itself ?? FIXME */
/*md_start_debug( cfx->mdc_hash, "mdccreat" );*/
}
init_packet( &pkt );
@@ -70,13 +73,12 @@ write_header( cipher_filter_context_t *cfx, IOBUF a )
temp[nprefix] = temp[nprefix-2];
temp[nprefix+1] = temp[nprefix-1];
print_cipher_algo_note( cfx->dek->algo );
- if( gcry_cipher_open( &cfx->cipher_hd,
- cfx->dek->algo,
- CIPHER_MODE_CFB,
- GCRY_CIPHER_SECURE
- | (cfy->dek->algo >= 100 ?
- 0 : GCRY_CIPHER_ENABLE_SYNC) )
- ) {
+ if( !(cfx->cipher_hd = gcry_cipher_open( cfx->dek->algo,
+ GCRY_CIPHER_MODE_CFB,
+ GCRY_CIPHER_SECURE
+ | (cfx->dek->algo >= 100 ?
+ 0 : GCRY_CIPHER_ENABLE_SYNC)))
+ ) {
/* we should never get an error here cause we already checked, that
* the algorithm is available. */
BUG();
@@ -91,7 +93,7 @@ write_header( cipher_filter_context_t *cfx, IOBUF a )
/* log_hexdump( "prefix", temp, nprefix+2 ); */
if( cfx->mdc_hash )
gcry_md_write( cfx->mdc_hash, temp, nprefix+2 );
- rc = cipher_encrypt( cfx->cipher_hd, temp, nprefix+2, NULL, 0 );
+ rc = gcry_cipher_encrypt( cfx->cipher_hd, temp, nprefix+2, NULL, 0 );
if( !rc )
rc = gcry_cipher_sync( cfx->cipher_hd );
if( rc )
diff --git a/g10/delkey.c b/g10/delkey.c
index 8d4f1a5b0..a324fd631 100644
--- a/g10/delkey.c
+++ b/g10/delkey.c
@@ -124,7 +124,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..fe054fdab 100644
--- a/g10/encode.c
+++ b/g10/encode.c
@@ -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;
@@ -480,8 +481,8 @@ write_pubkey_enc_from_list( PK_LIST pk_list, DEK *dek, IOBUF out )
if( opt.verbose ) {
char *ustr = get_user_id_string( enc->keyid );
log_info(_("%s/%s encrypted for: %s\n"),
- pubkey_algo_to_string(enc->pubkey_algo),
- cipher_algo_to_string(dek->algo), ustr );
+ gcry_pk_algo_name(enc->pubkey_algo),
+ gcry_cipher_algo_name(dek->algo), ustr );
m_free(ustr);
}
/* and write it */
diff --git a/g10/encr-data.c b/g10/encr-data.c
index 0b3accf56..1dd6e0e77 100644
--- a/g10/encr-data.c
+++ b/g10/encr-data.c
@@ -56,7 +56,6 @@ decrypt_data( void *procctx, PKT_encrypted *ed, DEK *dek )
decode_filter_ctx_t dfx;
byte *p;
int rc=0, c, i;
- int algo_okay;
byte temp[32];
int blocksize;
unsigned nprefix;
@@ -71,27 +70,45 @@ decrypt_data( void *procctx, PKT_encrypted *ed, DEK *dek )
if( opt.verbose )
log_info(_("%s encrypted data\n"), gcry_cipher_algo_name( dek->algo ) );
- blocksize = gcry_cipher_get_blklen( dek->algo );
+ blocksize = gcry_cipher_get_algo_blklen( dek->algo );
if( blocksize < 1 || blocksize > 16 )
log_fatal("unsupported blocksize %u\n", blocksize );
nprefix = blocksize;
if( ed->len && ed->len < (nprefix+2) )
BUG();
---> We are currently working HERE!!!!
- if( ed->mdc_method )
- dfx.mdc_hash = md_open( ed->mdc_method, 0 );
- dfx.cipher_hd = cipher_open( dek->algo, CIPHER_MODE_AUTO_CFB, 1 );
+
+ if( ed->mdc_method ) {
+ dfx.mdc_hash = gcry_md_open( ed->mdc_method, 0 );
+ if( !dfx.mdc_hash )
+ BUG();
+ }
+ if( !(dfx.cipher_hd = gcry_cipher_open( dek->algo,
+ GCRY_CIPHER_MODE_CFB,
+ GCRY_CIPHER_SECURE
+ | (dek->algo >= 100 ?
+ 0 : GCRY_CIPHER_ENABLE_SYNC) ))
+ ) {
+ /* we should never get an error here cause we already checked, that
+ * the algorithm is available. What about a flag to let the function
+ * die in this case? */
+ BUG();
+ }
+
+
/* log_hexdump( "thekey", dek->key, dek->keylen );*/
- rc = cipher_setkey( dfx.cipher_hd, dek->key, dek->keylen );
- if( rc == G10ERR_WEAK_KEY )
+ rc = gcry_cipher_setkey( dfx.cipher_hd, dek->key, dek->keylen );
+ if( rc == GCRYERR_WEAK_KEY ) {
log_info(_("WARNING: message was encrypted with "
"a weak key in the symmetric cipher.\n"));
+ rc = 0;
+ }
else if( rc ) {
- log_error("key setup failed: %s\n", g10_errstr(rc) );
+ log_error("key setup failed: %s\n", gcry_strerror(rc) );
+ rc = map_gcry_rc(rc);
goto leave;
}
- cipher_setiv( dfx.cipher_hd, NULL, 0 );
+ gcry_cipher_setiv( dfx.cipher_hd, NULL, 0 );
if( ed->len ) {
for(i=0; i < (nprefix+2) && ed->len; i++, ed->len-- ) {
@@ -108,10 +125,10 @@ decrypt_data( void *procctx, PKT_encrypted *ed, DEK *dek )
else
temp[i] = c;
}
- cipher_decrypt( dfx.cipher_hd, temp, temp, nprefix+2);
+ gcry_cipher_decrypt( dfx.cipher_hd, temp, nprefix+2, NULL, 0 );
if( dfx.mdc_hash )
- md_write( dfx.mdc_hash, temp, nprefix+2 );
- cipher_sync( dfx.cipher_hd );
+ gcry_md_write( dfx.mdc_hash, temp, nprefix+2 );
+ gcry_cipher_sync( dfx.cipher_hd );
p = temp;
/* log_hexdump( "prefix", temp, nprefix+2 ); */
if( p[nprefix-2] != p[nprefix] || p[nprefix-1] != p[nprefix+1] ) {
@@ -127,20 +144,20 @@ decrypt_data( void *procctx, PKT_encrypted *ed, DEK *dek )
if( ed->mdc_method && dfx.eof_seen == 2 )
rc = G10ERR_INVALID_PACKET;
else if( ed->mdc_method ) { /* check the mdc */
- int datalen = md_digest_length( ed->mdc_method );
- md_final( dfx.mdc_hash );
+ int datalen = gcry_md_get_algo_dlen( ed->mdc_method );
if( datalen != 20
- || memcmp(md_read( dfx.mdc_hash, 0 ), dfx.defer, datalen) )
+ || memcmp(gcry_md_read( dfx.mdc_hash, 0 ), dfx.defer, datalen) )
rc = G10ERR_BAD_SIGN;
- log_hexdump("MDC calculated:", md_read( dfx.mdc_hash, 0), datalen);
+ log_hexdump("MDC calculated:", gcry_md_read( dfx.mdc_hash, 0), datalen);
log_hexdump("MDC message :", dfx.defer, 20);
}
leave:
- cipher_close(dfx.cipher_hd);
- md_close( dfx.mdc_hash );
+ gcry_cipher_close(dfx.cipher_hd);
+ gcry_md_close( dfx.mdc_hash );
return rc;
}
+
/* I think we should merge this with cipher_filter */
static int
mdc_decode_filter( void *opaque, int control, IOBUF a,
@@ -198,8 +215,8 @@ mdc_decode_filter( void *opaque, int control, IOBUF a,
}
if( n ) {
- cipher_decrypt( dfx->cipher_hd, buf, buf, n);
- md_write( dfx->mdc_hash, buf, n );
+ gcry_cipher_decrypt( dfx->cipher_hd, buf, n, NULL, 0);
+ gcry_md_write( dfx->mdc_hash, buf, n );
}
else {
assert( dfx->eof_seen );
@@ -225,7 +242,7 @@ decode_filter( void *opaque, int control, IOBUF a, byte *buf, size_t *ret_len)
n = iobuf_read( a, buf, size );
if( n == -1 ) n = 0;
if( n )
- cipher_decrypt( fc->cipher_hd, buf, buf, n);
+ gcry_cipher_decrypt( fc->cipher_hd, buf, n, NULL, 0);
else
rc = -1; /* eof */
*ret_len = n;
diff --git a/g10/filter.h b/g10/filter.h
index 02e4e2ed6..321a4ca9e 100644
--- a/g10/filter.h
+++ b/g10/filter.h
@@ -22,7 +22,9 @@
#include <gcrypt.h>
-#include "types.h"
+#include "basicdefs.h"
+
+
typedef struct {
GCRY_MD_HD md; /* catch all */
@@ -83,6 +85,13 @@ typedef struct {
} cipher_filter_context_t;
+typedef struct {
+ int header_okay;
+ PK_LIST pk_list;
+ cipher_filter_context_t cfx;
+} encrypt_filter_context_t;
+
+
typedef struct {
byte *buffer; /* malloced buffer */
diff --git a/g10/g10.c b/g10/g10.c
index 5fa2cade5..e1e8d885a 100644
--- a/g10/g10.c
+++ b/g10/g10.c
@@ -26,6 +26,7 @@
#include <ctype.h>
#include <unistd.h>
+#include <gcrypt.h>
#include "packet.h"
#include "iobuf.h"
@@ -36,7 +37,6 @@
#include "keydb.h"
#include "trustdb.h"
#include "mpi.h"
-#include "cipher.h"
#include "filter.h"
#include "ttyio.h"
#include "i18n.h"
@@ -353,8 +353,8 @@ int g10_errors_seen = 0;
static int utf8_strings = 0;
static int maybe_setuid = 1;
-static char *build_list( const char *text,
- const char *(*mapf)(int), int (*chkf)(int) );
+static char *build_list( const char *text, const char * (*mapf)(int),
+ int (*chkf)(int) );
static void set_cmd( enum cmd_and_opt_values *ret_cmd,
enum cmd_and_opt_values new_cmd );
static void print_hex( byte *p, size_t n );
@@ -388,20 +388,20 @@ strusage( int level )
case 31: p = _("\nSupported algorithms:\n"); break;
case 32:
if( !ciphers )
- ciphers = build_list("Cipher: ", cipher_algo_to_string,
- check_cipher_algo );
+ ciphers = build_list("Cipher: ", gcry_cipher_algo_name,
+ openpgp_cipher_test_algo );
p = ciphers;
break;
case 33:
if( !pubkeys )
- pubkeys = build_list("Pubkey: ", pubkey_algo_to_string,
- check_pubkey_algo );
+ pubkeys = build_list("Pubkey: ", gcry_pk_algo_name,
+ openpgp_pk_test_algo );
p = pubkeys;
break;
case 34:
if( !digests )
- digests = build_list("Hash: ", digest_algo_to_string,
- check_digest_algo );
+ digests = build_list("Hash: ", gcry_md_algo_name,
+ openpgp_md_test_algo );
p = digests;
break;
@@ -415,7 +415,6 @@ static char *
build_list( const char *text, const char * (*mapf)(int), int (*chkf)(int) )
{
int i;
- const char *s;
size_t n=strlen(text)+2;
char *list, *p;
@@ -423,16 +422,16 @@ build_list( const char *text, const char * (*mapf)(int), int (*chkf)(int) )
secmem_init( 0 ); /* drop setuid */
for(i=1; i < 110; i++ )
- if( !chkf(i) && (s=mapf(i)) )
- n += strlen(s) + 2;
+ if( !chkf(i) )
+ n += strlen(mapf(i)) + 2;
list = m_alloc( 21 + n ); *list = 0;
for(p=NULL, i=1; i < 110; i++ ) {
- if( !chkf(i) && (s=mapf(i)) ) {
+ if( !chkf(i) ) {
if( !p )
p = stpcpy( list, text );
else
p = stpcpy( p, ", ");
- p = stpcpy(p, s );
+ p = stpcpy(p, mapf(i) );
}
}
if( p )
@@ -577,8 +576,8 @@ main( int argc, char **argv )
opt.def_digest_algo = 0;
opt.def_compress_algo = 2;
opt.s2k_mode = 3; /* iterated+salted */
- opt.s2k_digest_algo = DIGEST_ALGO_RMD160;
- opt.s2k_cipher_algo = CIPHER_ALGO_BLOWFISH;
+ opt.s2k_digest_algo = GCRY_MD_RMD160;
+ opt.s2k_cipher_algo = GCRY_CIPHER_BLOWFISH;
opt.completes_needed = 1;
opt.marginals_needed = 3;
opt.max_cert_depth = 5;
@@ -798,8 +797,8 @@ main( int argc, char **argv )
opt.def_digest_algo = 0;
opt.def_compress_algo = 2;
opt.s2k_mode = 3; /* iterated+salted */
- opt.s2k_digest_algo = DIGEST_ALGO_RMD160;
- opt.s2k_cipher_algo = CIPHER_ALGO_BLOWFISH;
+ opt.s2k_digest_algo = GCRY_MD_RMD160;
+ opt.s2k_cipher_algo = GCRY_CIPHER_BLOWFISH;
break;
case oEmuChecksumBug: opt.emulate_bugs |= EMUBUG_GPGCHKSUM; break;
case oCompressSigs: opt.compress_sigs = 1; break;
@@ -853,11 +852,14 @@ main( int argc, char **argv )
case oNotation: add_notation_data( pargs.r.ret_str ); break;
case oUtf8Strings: utf8_strings = 1; break;
case oNoUtf8Strings: utf8_strings = 0; break;
- case oDisableCipherAlgo:
- disable_cipher_algo( string_to_cipher_algo(pargs.r.ret_str) );
+ case oDisableCipherAlgo: {
+ int algo = gcry_cipher_map_name(pargs.r.ret_str);
+ gcry_cipher_ctl( NULL, GCRYCTL_DISABLE_ALGO,
+ &algo, sizeof algo );
+ }
break;
case oDisablePubkeyAlgo:
- disable_pubkey_algo( string_to_pubkey_algo(pargs.r.ret_str) );
+ disable_pubkey_algo( gcry_pk_map_name(pargs.r.ret_str) );
break;
case oAllowNonSelfsignedUID:
opt.allow_non_selfsigned_uid = 1;
@@ -927,27 +929,27 @@ main( int argc, char **argv )
/* must do this after dropping setuid, because string_to...
* may try to load an module */
if( def_cipher_string ) {
- opt.def_cipher_algo = string_to_cipher_algo(def_cipher_string);
+ opt.def_cipher_algo = gcry_cipher_map_name(def_cipher_string);
m_free(def_cipher_string); def_cipher_string = NULL;
- if( check_cipher_algo(opt.def_cipher_algo) )
+ if( openpgp_cipher_test_algo(opt.def_cipher_algo) )
log_error(_("selected cipher algorithm is invalid\n"));
}
if( def_digest_string ) {
- opt.def_digest_algo = string_to_digest_algo(def_digest_string);
+ opt.def_digest_algo = gcry_md_map_name(def_digest_string);
m_free(def_digest_string); def_digest_string = NULL;
- if( check_digest_algo(opt.def_digest_algo) )
+ if( openpgp_md_test_algo(opt.def_digest_algo) )
log_error(_("selected digest algorithm is invalid\n"));
}
if( s2k_cipher_string ) {
- opt.s2k_cipher_algo = string_to_cipher_algo(s2k_cipher_string);
+ opt.s2k_cipher_algo = gcry_cipher_map_name(s2k_cipher_string);
m_free(s2k_cipher_string); s2k_cipher_string = NULL;
- if( check_cipher_algo(opt.s2k_cipher_algo) )
+ if( openpgp_cipher_test_algo(opt.s2k_cipher_algo) )
log_error(_("selected cipher algorithm is invalid\n"));
}
if( s2k_digest_string ) {
- opt.s2k_digest_algo = string_to_digest_algo(s2k_digest_string);
+ opt.s2k_digest_algo = gcry_md_map_name(s2k_digest_string);
m_free(s2k_digest_string); s2k_digest_string = NULL;
- if( check_digest_algo(opt.s2k_digest_algo) )
+ if( openpgp_md_test_algo(opt.s2k_digest_algo) )
log_error(_("selected digest algorithm is invalid\n"));
}
if( opt.set_policy_url ) {
@@ -1330,7 +1332,7 @@ main( int argc, char **argv )
wrong_args("--print-md algo [files]");
{
int all_algos = (**argv=='*' && !(*argv)[1]);
- int algo = all_algos? 0 : string_to_digest_algo(*argv);
+ int algo = all_algos? 0 : gcry_md_map_name(*argv);
if( !algo && !all_algos )
log_error(_("invalid hash algorithm `%s'\n"), *argv );
@@ -1509,8 +1511,9 @@ print_mds( const char *fname, int algo )
FILE *fp;
char buf[1024];
size_t n;
- MD_HANDLE md;
+ GCRY_MD_HD md;
char *pname;
+ int have_tiger = 0;
if( !fname ) {
fp = stdin;
@@ -1527,43 +1530,41 @@ print_mds( const char *fname, int algo )
return;
}
- md = md_open( 0, 0 );
+ md = gcry_md_open( 0, 0 );
if( algo )
- md_enable( md, algo );
+ gcry_md_enable( md, algo );
else {
- md_enable( md, DIGEST_ALGO_MD5 );
- md_enable( md, DIGEST_ALGO_SHA1 );
- md_enable( md, DIGEST_ALGO_RMD160 );
- if( !check_digest_algo(DIGEST_ALGO_TIGER) )
- md_enable( md, DIGEST_ALGO_TIGER );
+ gcry_md_enable( md, GCRY_MD_MD5 );
+ gcry_md_enable( md, GCRY_MD_SHA1 );
+ gcry_md_enable( md, GCRY_MD_RMD160 );
+ have_tiger = !gcry_md_enable( md, GCRY_MD_TIGER );
}
while( (n=fread( buf, 1, DIM(buf), fp )) )
- md_write( md, buf, n );
+ gcry_md_write( md, buf, n );
if( ferror(fp) )
log_error("%s%s\n", pname, strerror(errno) );
else {
- md_final(md);
if( algo ) {
if( fname )
fputs( pname, stdout );
- print_hex(md_read(md, algo), md_digest_length(algo) );
+ print_hex( gcry_md_read(md, algo), gcry_md_get_algo_dlen(algo) );
}
else {
printf( "%s MD5 = ", fname?pname:"" );
- print_hex(md_read(md, DIGEST_ALGO_MD5), 16 );
+ print_hex(gcry_md_read(md, GCRY_MD_MD5), 16 );
printf("\n%s SHA1 = ", fname?pname:"" );
- print_hex(md_read(md, DIGEST_ALGO_SHA1), 20 );
+ print_hex(gcry_md_read(md, GCRY_MD_SHA1), 20 );
printf("\n%sRMD160 = ", fname?pname:"" );
- print_hex(md_read(md, DIGEST_ALGO_RMD160), 20 );
- if( !check_digest_algo(DIGEST_ALGO_TIGER) ) {
+ print_hex(gcry_md_read(md, GCRY_MD_RMD160), 20 );
+ if( have_tiger ) {
printf("\n%s TIGER = ", fname?pname:"" );
- print_hex(md_read(md, DIGEST_ALGO_TIGER), 24 );
+ print_hex(gcry_md_read(md, GCRY_MD_TIGER), 24 );
}
}
putchar('\n');
}
- md_close(md);
+ gcry_md_close(md);
if( fp != stdin )
fclose(fp);
diff --git a/g10/keydb.h b/g10/keydb.h
index 20a8a6325..fe4f8be94 100644
--- a/g10/keydb.h
+++ b/g10/keydb.h
@@ -25,9 +25,8 @@
#include <gdbm.h>
#endif
-#include "types.h"
+#include "basicdefs.h"
#include "packet.h"
-#include "cipher.h"
#define MAX_FINGERPRINT_LEN 20
@@ -83,7 +82,6 @@ struct keyblock_pos_struct {
typedef struct keyblock_pos_struct KBPOS;
/* structure to hold a couple of public key certificates */
-typedef struct pk_list *PK_LIST;
struct pk_list {
PK_LIST next;
PKT_public_key *pk;
@@ -91,7 +89,6 @@ struct pk_list {
};
/* structure to hold a couple of secret key certificates */
-typedef struct sk_list *SK_LIST;
struct sk_list {
SK_LIST next;
PKT_secret_key *sk;
diff --git a/g10/keygen.c b/g10/keygen.c
index ceff09d10..0ed07e690 100644
--- a/g10/keygen.c
+++ b/g10/keygen.c
@@ -443,7 +443,7 @@ ask_keysize( int algo )
" minimum keysize is 768 bits\n"
" default keysize is 1024 bits\n"
" highest suggested keysize is 2048 bits\n"),
- pubkey_algo_to_string(algo) );
+ gcry_pk_algo_name(algo) );
for(;;) {
answer = cpr_get("keygen.size",
_("What keysize do you want? (1024) "));
@@ -686,7 +686,7 @@ 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 */
for(;;) {
- char *ansstr = _("NnCcEeOoQq");
+ const char *ansstr = _("NnCcEeOoQq");
if( strlen(ansstr) != 10 )
BUG();
diff --git a/g10/keyid.c b/g10/keyid.c
index 665b3be86..b4d745a7c 100644
--- a/g10/keyid.c
+++ b/g10/keyid.c
@@ -25,6 +25,7 @@
#include <errno.h>
#include <time.h>
#include <assert.h>
+#include <gcrypt.h>
#include "util.h"
#include "main.h"
#include "packet.h"
@@ -48,10 +49,10 @@ pubkey_letter( int algo )
}
-static MD_HANDLE
+static GCRY_MD_HD
do_fingerprint_md( PKT_public_key *pk )
{
- MD_HANDLE md;
+ GCRY_MD_HD md;
unsigned n;
unsigned nb[PUBKEY_MAX_NPKEY];
unsigned nn[PUBKEY_MAX_NPKEY];
@@ -59,7 +60,9 @@ do_fingerprint_md( PKT_public_key *pk )
int i;
int npkey = pubkey_get_npkey( pk->pubkey_algo );
- md = md_open( pk->version < 4 ? DIGEST_ALGO_RMD160 : DIGEST_ALGO_SHA1, 0);
+ md = gcry_md_open( pk->version < 4 ? GCRY_MD_RMD160 : GCRY_MD_SHA1, 0);
+ if( !md )
+ BUG();
n = pk->version < 4 ? 8 : 6;
for(i=0; i < npkey; i++ ) {
nb[i] = mpi_get_nbits(pk->pkey[i]);
@@ -67,19 +70,19 @@ do_fingerprint_md( PKT_public_key *pk )
n += 2 + nn[i];
}
- md_putc( md, 0x99 ); /* ctb */
- md_putc( md, n >> 8 ); /* 2 byte length header */
- md_putc( md, n );
+ gcry_md_putc( md, 0x99 ); /* ctb */
+ gcry_md_putc( md, n >> 8 ); /* 2 byte length header */
+ gcry_md_putc( md, n );
if( pk->version < 4 )
- md_putc( md, 3 );
+ gcry_md_putc( md, 3 );
else
- md_putc( md, 4 );
+ gcry_md_putc( md, 4 );
{ u32 a = pk->timestamp;
- md_putc( md, a >> 24 );
- md_putc( md, a >> 16 );
- md_putc( md, a >> 8 );
- md_putc( md, a );
+ gcry_md_putc( md, a >> 24 );
+ gcry_md_putc( md, a >> 16 );
+ gcry_md_putc( md, a >> 8 );
+ gcry_md_putc( md, a );
}
if( pk->version < 4 ) {
u16 a;
@@ -88,22 +91,22 @@ do_fingerprint_md( PKT_public_key *pk )
a = (u16)((pk->expiredate - pk->timestamp) / 86400L);
else
a = 0;
- md_putc( md, a >> 8 );
- md_putc( md, a );
+ gcry_md_putc( md, a >> 8 );
+ gcry_md_putc( md, a );
}
- md_putc( md, pk->pubkey_algo );
+ gcry_md_putc( md, pk->pubkey_algo );
for(i=0; i < npkey; i++ ) {
- md_putc( md, nb[i]>>8);
- md_putc( md, nb[i] );
- md_write( md, pp[i], nn[i] );
+ gcry_md_putc( md, nb[i]>>8);
+ gcry_md_putc( md, nb[i] );
+ gcry_md_write( md, pp[i], nn[i] );
m_free(pp[i]);
}
- md_final( md );
+ gcry_md_final( md );
return md;
}
-static MD_HANDLE
+static GCRY_MD_HD
do_fingerprint_md_sk( PKT_secret_key *sk )
{
PKT_public_key pk;
@@ -140,13 +143,13 @@ keyid_from_sk( PKT_secret_key *sk, u32 *keyid )
}
else {
const byte *dp;
- MD_HANDLE md;
+ GCRY_MD_HD md;
md = do_fingerprint_md_sk(sk);
- dp = md_read( md, 0 );
+ dp = gcry_md_read( md, 0 );
keyid[0] = dp[12] << 24 | dp[13] << 16 | dp[14] << 8 | dp[15] ;
keyid[1] = dp[16] << 24 | dp[17] << 16 | dp[18] << 8 | dp[19] ;
lowbits = keyid[1];
- md_close(md);
+ gcry_md_close(md);
}
return lowbits;
@@ -179,13 +182,13 @@ keyid_from_pk( PKT_public_key *pk, u32 *keyid )
}
else {
const byte *dp;
- MD_HANDLE md;
+ GCRY_MD_HD md;
md = do_fingerprint_md(pk);
- dp = md_read( md, 0 );
+ dp = gcry_md_read( md, 0 );
keyid[0] = dp[12] << 24 | dp[13] << 16 | dp[14] << 8 | dp[15] ;
keyid[1] = dp[16] << 24 | dp[17] << 16 | dp[18] << 8 | dp[19] ;
lowbits = keyid[1];
- md_close(md);
+ gcry_md_close(md);
pk->keyid[0] = keyid[0];
pk->keyid[1] = keyid[1];
}
@@ -348,34 +351,36 @@ fingerprint_from_pk( PKT_public_key *pk, byte *array, size_t *ret_len )
if( pk->version < 4 && is_RSA(pk->pubkey_algo) ) {
/* RSA in version 3 packets is special */
- MD_HANDLE md;
+ GCRY_MD_HD md;
- md = md_open( DIGEST_ALGO_MD5, 0);
+ md = gcry_md_open( DIGEST_ALGO_MD5, 0);
+ if( !md )
+ BUG();
if( pubkey_get_npkey( pk->pubkey_algo ) > 1 ) {
p = buf = mpi_get_buffer( pk->pkey[0], &n, NULL );
- md_write( md, p, n );
+ gcry_md_write( md, p, n );
m_free(buf);
p = buf = mpi_get_buffer( pk->pkey[1], &n, NULL );
- md_write( md, p, n );
+ gcry_md_write( md, p, n );
m_free(buf);
}
- md_final(md);
+ gcry_md_final(md);
if( !array )
array = m_alloc( 16 );
len = 16;
- memcpy(array, md_read(md, DIGEST_ALGO_MD5), 16 );
- md_close(md);
+ memcpy(array, gcry_md_read(md, DIGEST_ALGO_MD5), 16 );
+ gcry_md_close(md);
}
else {
- MD_HANDLE md;
+ GCRY_MD_HD md;
md = do_fingerprint_md(pk);
- dp = md_read( md, 0 );
- len = md_digest_length( md_get_algo( md ) );
+ dp = gcry_md_read( md, 0 );
+ len = gcry_md_get_algo_dlen( gcry_md_get_algo( md ) );
assert( len <= MAX_FINGERPRINT_LEN );
if( !array )
array = m_alloc( len );
memcpy(array, dp, len );
- md_close(md);
+ gcry_md_close(md);
}
*ret_len = len;
@@ -392,34 +397,36 @@ fingerprint_from_sk( PKT_secret_key *sk, byte *array, size_t *ret_len )
if( sk->version < 4 && is_RSA(sk->pubkey_algo) ) {
/* RSA in version 3 packets is special */
- MD_HANDLE md;
+ GCRY_MD_HD md;
- md = md_open( DIGEST_ALGO_MD5, 0);
+ md = gcry_md_open( DIGEST_ALGO_MD5, 0);
+ if( !md )
+ BUG();
if( pubkey_get_npkey( sk->pubkey_algo ) > 1 ) {
p = buf = mpi_get_buffer( sk->skey[1], &n, NULL );
- md_write( md, p, n );
+ gcry_md_write( md, p, n );
m_free(buf);
p = buf = mpi_get_buffer( sk->skey[0], &n, NULL );
- md_write( md, p, n );
+ gcry_md_write( md, p, n );
m_free(buf);
}
- md_final(md);
+ gcry_md_final(md);
if( !array )
array = m_alloc( 16 );
len = 16;
- memcpy(array, md_read(md, DIGEST_ALGO_MD5), 16 );
- md_close(md);
+ memcpy(array, gcry_md_read(md, GCRY_MD_MD5), 16 );
+ gcry_md_close(md);
}
else {
- MD_HANDLE md;
+ GCRY_MD_HD md;
md = do_fingerprint_md_sk(sk);
- dp = md_read( md, 0 );
- len = md_digest_length( md_get_algo( md ) );
+ dp = gcry_md_read( md, 0 );
+ len = gcry_md_get_algo_dlen( gcry_md_get_algo( md ) );
assert( len <= MAX_FINGERPRINT_LEN );
if( !array )
array = m_alloc( len );
memcpy(array, dp, len );
- md_close(md);
+ gcry_md_close(md);
}
*ret_len = len;
diff --git a/g10/main.h b/g10/main.h
index df04f408d..4ccc2f658 100644
--- a/g10/main.h
+++ b/g10/main.h
@@ -19,22 +19,16 @@
*/
#ifndef G10_MAIN_H
#define G10_MAIN_H
-#include "types.h"
+
+#include <gcrypt.h>
+#include "basicdefs.h"
#include "iobuf.h"
#include "mpi.h"
-#include "cipher.h"
#include "keydb.h"
-#define DEFAULT_CIPHER_ALGO CIPHER_ALGO_BLOWFISH
-#define DEFAULT_PUBKEY_ALGO PUBKEY_ALGO_ELGAMAL
-#define DEFAULT_DIGEST_ALGO DIGEST_ALGO_RMD160
-
-
-typedef struct {
- int header_okay;
- PK_LIST pk_list;
- cipher_filter_context_t cfx;
-} encrypt_filter_context_t;
+#define DEFAULT_CIPHER_ALGO GCRY_CIPHER_BLOWFISH
+#define DEFAULT_PUBKEY_ALGO GCRY_PUBKEY_ELGAMAL
+#define DEFAULT_DIGEST_ALGO GCRY_MD_RMD160
/*-- g10.c --*/
@@ -61,6 +55,10 @@ u16 checksum_mpi( MPI a );
u16 checksum_mpi_counted_nbits( MPI a );
u32 buffer_to_u32( const byte *buffer );
+int openpgp_cipher_test_algo( int algo );
+int openpgp_pk_test_algo( int algo );
+int openpgp_md_test_algo( int algo );
+
/*-- helptext.c --*/
void display_online_help( const char *keyword );
@@ -73,7 +71,7 @@ int encrypt_filter( void *opaque, int control,
/*-- sign.c --*/
-int complete_sig( PKT_signature *sig, PKT_secret_key *sk, MD_HANDLE md );
+int complete_sig( PKT_signature *sig, PKT_secret_key *sk, GCRY_MD_HD md );
int sign_file( STRLIST filenames, int detached, STRLIST locusr,
int do_encrypt, STRLIST remusr, const char *outfile );
int clearsign_file( const char *fname, STRLIST locusr, const char *outfile );
@@ -108,7 +106,7 @@ void copy_options_file( const char *destdir );
/*-- seskey.c --*/
void make_session_key( DEK *dek );
MPI encode_session_key( DEK *dek, unsigned nbits );
-MPI encode_md_value( int pubkey_algo, MD_HANDLE md,
+MPI encode_md_value( int pubkey_algo, GCRY_MD_HD md,
int hash_algo, unsigned nbits );
/*-- comment.c --*/
@@ -143,7 +141,7 @@ int verify_signatures( int nfiles, char **files );
int decrypt_message( const char *filename );
/*-- plaintext.c --*/
-int hash_datafiles( MD_HANDLE md, MD_HANDLE md2,
+int hash_datafiles( GCRY_MD_HD md, GCRY_MD_HD md2,
STRLIST files, const char *sigfilename, int textmode );
/*-- signal.c --*/
diff --git a/g10/mainproc.c b/g10/mainproc.c
index 4c93b4877..98034bec3 100644
--- a/g10/mainproc.c
+++ b/g10/mainproc.c
@@ -25,12 +25,12 @@
#include <assert.h>
#include <time.h>
+#include <gcrypt.h>
#include "packet.h"
#include "iobuf.h"
#include "memory.h"
#include "options.h"
#include "util.h"
-#include "cipher.h"
#include "keydb.h"
#include "filter.h"
#include "main.h"
@@ -266,7 +266,7 @@ print_failed_pkenc( struct kidlist_item *list )
{
for( ; list; list = list->next ) {
PKT_public_key *pk = m_alloc_clear( sizeof *pk );
- const char *algstr = pubkey_algo_to_string( list->pubkey_algo );
+ const char *algstr = gcry_pk_algo_name( list->pubkey_algo );
pk->pubkey_algo = list->pubkey_algo;
if( !get_pubkey( pk, list->kid ) ) {
@@ -361,7 +361,8 @@ proc_plaintext( CTX c, PACKET *pkt )
else if( opt.verbose )
log_info(_("original file name='%.*s'\n"), pt->namelen, pt->name);
free_md_filter_context( &c->mfx );
- c->mfx.md = md_open( 0, 0);
+ if( !(c->mfx.md = gcry_md_open( 0, 0)) )
+ BUG();
/* fixme: we may need to push the textfilter if we have sigclass 1
* and no armoring - Not yet tested
* Hmmm, why don't we need it at all if we have sigclass 1
@@ -372,7 +373,8 @@ proc_plaintext( CTX c, PACKET *pkt )
for(n=c->list; n; n = n->next ) {
if( n->pkt->pkttype == PKT_ONEPASS_SIG ) {
if( n->pkt->pkt.onepass_sig->digest_algo ) {
- md_enable( c->mfx.md, n->pkt->pkt.onepass_sig->digest_algo );
+ gcry_md_enable( c->mfx.md,
+ n->pkt->pkt.onepass_sig->digest_algo );
if( !any && n->pkt->pkt.onepass_sig->digest_algo
== DIGEST_ALGO_MD5 )
only_md5 = 1;
@@ -398,9 +400,9 @@ proc_plaintext( CTX c, PACKET *pkt )
}
}
if( !any ) { /* 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 );
+ gcry_md_enable( c->mfx.md, DIGEST_ALGO_RMD160 );
+ gcry_md_enable( c->mfx.md, DIGEST_ALGO_SHA1 );
+ gcry_md_enable( c->mfx.md, DIGEST_ALGO_MD5 );
}
if( only_md5 ) {
/* This is a kludge to work around a bug in pgp2. It does only
@@ -408,7 +410,8 @@ proc_plaintext( CTX c, PACKET *pkt )
* pgp mails we could see whether there is the signature packet
* in front of the plaintext. If someone needs this, send me a patch.
*/
- c->mfx.md2 = md_open( DIGEST_ALGO_MD5, 0);
+ if( !(c->mfx.md2 = gcry_md_open( DIGEST_ALGO_MD5, 0)) )
+ BUG();
}
#if 0
#warning md_start_debug is enabled
@@ -467,7 +470,7 @@ static int
do_check_sig( CTX c, KBNODE node, int *is_selfsig )
{
PKT_signature *sig;
- MD_HANDLE md = NULL, md2 = NULL;
+ GCRY_MD_HD md = NULL, md2 = NULL;
int algo, rc;
assert( node->pkt->pkttype == PKT_SIGNATURE );
@@ -476,27 +479,31 @@ do_check_sig( CTX c, KBNODE node, int *is_selfsig )
sig = node->pkt->pkt.signature;
algo = sig->digest_algo;
- if( (rc=check_digest_algo(algo)) )
+ if( (rc=openpgp_md_test_algo(algo)) )
return rc;
if( sig->sig_class == 0x00 ) {
if( c->mfx.md )
- md = md_copy( c->mfx.md );
+ md = gcry_md_copy( c->mfx.md );
else /* detached signature */
- md = md_open( 0, 0 ); /* signature_check() will enable the md*/
+ md = gcry_md_open( 0, 0 ); /* signature_check() will enable the md*/
+ if( !md )
+ BUG();
}
else if( sig->sig_class == 0x01 ) {
/* how do we know that we have to hash the (already hashed) text
* in canonical mode ??? (calculating both modes???) */
if( c->mfx.md ) {
- md = md_copy( c->mfx.md );
+ md = gcry_md_copy( c->mfx.md );
if( c->mfx.md2 )
- md2 = md_copy( c->mfx.md2 );
+ md2 = gcry_md_copy( c->mfx.md2 );
}
else { /* detached signature */
log_debug("Do we really need this here?");
- md = md_open( 0, 0 ); /* signature_check() will enable the md*/
- md2 = md_open( 0, 0 );
+ md = gcry_md_open( 0, 0 ); /* signature_check() will enable the md*/
+ md2 = gcry_md_open( 0, 0 );
+ if( !md || !md2 )
+ BUG();
}
}
else if( (sig->sig_class&~3) == 0x10
@@ -518,8 +525,8 @@ do_check_sig( CTX c, KBNODE node, int *is_selfsig )
rc = signature_check( sig, md );
if( rc == G10ERR_BAD_SIGN && md2 )
rc = signature_check( sig, md2 );
- md_close(md);
- md_close(md2);
+ gcry_md_close(md);
+ gcry_md_close(md2);
return rc;
}
@@ -1020,7 +1027,7 @@ static int
check_sig_and_print( CTX c, KBNODE node )
{
PKT_signature *sig = node->pkt->pkt.signature;
- const char *astr, *tstr;
+ const char *tstr;
int rc;
if( opt.skip_verify ) {
@@ -1029,9 +1036,9 @@ check_sig_and_print( CTX c, KBNODE node )
}
tstr = asctimestamp(sig->timestamp);
- astr = pubkey_algo_to_string( sig->pubkey_algo );
log_info(_("Signature made %.*s using %s key ID %08lX\n"),
- (int)strlen(tstr), tstr, astr? astr: "?", (ulong)sig->keyid[1] );
+ (int)strlen(tstr), tstr, gcry_pk_algo_name( sig->pubkey_algo ),
+ (ulong)sig->keyid[1] );
rc = do_check_sig(c, node, NULL );
if( rc == G10ERR_NO_PUBKEY && opt.keyserver_name ) {
@@ -1148,11 +1155,12 @@ proc_tree( CTX c, KBNODE node )
if( !c->have_data ) {
free_md_filter_context( &c->mfx );
/* prepare to create all requested message digests */
- c->mfx.md = md_open(0, 0);
+ if( !(c->mfx.md = gcry_md_open(0, 0)) )
+ BUG();
/* fixme: why looking for the signature packet and not 1passpacket*/
for( n1 = node; (n1 = find_next_kbnode(n1, PKT_SIGNATURE )); ) {
- md_enable( c->mfx.md, n1->pkt->pkt.signature->digest_algo);
+ gcry_md_enable( c->mfx.md, n1->pkt->pkt.signature->digest_algo);
}
/* ask for file and hash it */
if( c->sigs_only )
@@ -1177,18 +1185,21 @@ proc_tree( CTX c, KBNODE node )
if( !c->have_data ) {
/* detached signature */
free_md_filter_context( &c->mfx );
- c->mfx.md = md_open(sig->digest_algo, 0);
+ if( !(c->mfx.md = gcry_md_open(sig->digest_algo, 0)) )
+ BUG();
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 );
+ if( !(c->mfx.md2 = gcry_md_open( DIGEST_ALGO_MD5, 0 )) )
+ BUG();
}
else if( sig->digest_algo == DIGEST_ALGO_SHA1
&& sig->pubkey_algo == PUBKEY_ALGO_DSA
&& sig->sig_class == 0x01 ) {
/* enable the workaround also for pgp5 when the detached
* signature has been created in textmode */
- c->mfx.md2 = md_open( sig->digest_algo, 0 );
+ if( !(c->mfx.md2 = gcry_md_open( sig->digest_algo, 0 )) )
+ BUG();
}
/* Here we have another hack to work around a pgp 2 bug
* It works by not using the textmode for detached signatures;
diff --git a/g10/mdfilter.c b/g10/mdfilter.c
index 951fd730e..54eadcf6c 100644
--- a/g10/mdfilter.c
+++ b/g10/mdfilter.c
@@ -50,9 +50,9 @@ md_filter( void *opaque, int control,
i = iobuf_read( a, buf, size );
if( i == -1 ) i = 0;
if( i ) {
- md_write(mfx->md, buf, i );
+ gcry_md_write(mfx->md, buf, i );
if( mfx->md2 )
- md_write(mfx->md2, buf, i );
+ gcry_md_write(mfx->md2, buf, i );
}
else
rc = -1; /* eof */
@@ -67,8 +67,8 @@ md_filter( void *opaque, int control,
void
free_md_filter_context( md_filter_context_t *mfx )
{
- md_close(mfx->md);
- md_close(mfx->md2);
+ gcry_md_close(mfx->md);
+ gcry_md_close(mfx->md2);
mfx->md = NULL;
mfx->md2 = NULL;
mfx->maxbuf_size = 0;
diff --git a/g10/misc.c b/g10/misc.c
index 61f104a01..fb9d62f1f 100644
--- a/g10/misc.c
+++ b/g10/misc.c
@@ -31,6 +31,7 @@
#include <sys/time.h>
#include <sys/resource.h>
#endif
+#include <gcrypt.h>
#include "util.h"
#include "main.h"
#include "options.h"
@@ -265,3 +266,32 @@ map_gcry_rc( int rc )
}
}
+
+/****************
+ * Wrapper around the libgcrypt function with addional checks on
+ * openPGP contrainst for the algo ID.
+ */
+int
+openpgp_cipher_test_algo( int algo )
+{
+ if( algo < 0 || algo > 110 )
+ return GCRYERR_INV_ALGO;
+ return gcry_cipher_test_algo(algo);
+}
+
+int
+openpgp_pk_test_algo( int algo )
+{
+ if( algo < 0 || algo > 110 )
+ return GCRYERR_INV_ALGO;
+ return gcry_pk_test_algo(algo);
+}
+
+int
+openpgp_md_test_algo( int algo )
+{
+ if( algo < 0 || algo > 110 )
+ return GCRYERR_INV_ALGO;
+ return gcry_md_test_algo(algo);
+}
+
diff --git a/g10/openfile.c b/g10/openfile.c
index 4d16db500..4f73334b8 100644
--- a/g10/openfile.c
+++ b/g10/openfile.c
@@ -39,6 +39,14 @@
#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
+
+
/* FIXME: Implement opt.interactive. */
/****************
@@ -70,6 +78,7 @@ overwrite_filep( const char *fname )
}
+
/****************
* Strip know extensions from iname and return a newly allocated
* filename. Return NULL if we can't do that.
@@ -82,13 +91,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 +176,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 for 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 */
+ strcat( 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 +233,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")
diff --git a/g10/packet.h b/g10/packet.h
index 50ea65b3f..f3f8cbd9d 100644
--- a/g10/packet.h
+++ b/g10/packet.h
@@ -281,7 +281,7 @@ const byte *parse_sig_subpkt2( PKT_signature *sig,
/*-- build-packet.c --*/
int build_packet( IOBUF inp, PACKET *pkt );
u32 calc_packet_length( PACKET *pkt );
-void hash_public_key( MD_HANDLE md, PKT_public_key *pk );
+void hash_public_key( GCRY_MD_HD md, PKT_public_key *pk );
void build_sig_subpkt( PKT_signature *sig, sigsubpkttype_t type,
const byte *buffer, size_t buflen );
void build_sig_subpkt_from_sig( PKT_signature *sig );
@@ -313,7 +313,7 @@ int cmp_user_ids( PKT_user_id *a, PKT_user_id *b );
/*-- sig-check.c --*/
-int signature_check( PKT_signature *sig, MD_HANDLE digest );
+int signature_check( PKT_signature *sig, GCRY_MD_HD digest );
/*-- seckey-cert.c --*/
int is_secret_key_protected( PKT_secret_key *sk );
@@ -334,7 +334,7 @@ int encrypt_data( PKT_encrypted *ed, DEK *dek );
/*-- plaintext.c --*/
int handle_plaintext( PKT_plaintext *pt, md_filter_context_t *mfx,
int nooutput, int clearsig );
-int ask_for_detached_datafile( MD_HANDLE md, MD_HANDLE md2,
+int ask_for_detached_datafile( GCRY_MD_HD md, GCRY_MD_HD md2,
const char *inname, int textmode );
/*-- comment.c --*/
diff --git a/g10/passphrase.c b/g10/passphrase.c
index 6026ff7f9..46527d8f5 100644
--- a/g10/passphrase.c
+++ b/g10/passphrase.c
@@ -159,14 +159,14 @@ 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");
if( !get_pubkey( pk, keyid ) ) {
- const char *s = pubkey_algo_to_string( pk->pubkey_algo );
tty_printf( _("%u-bit %s key, ID %08lX, created %s"),
- nbits_from_pk( pk ), s?s:"?", (ulong)keyid[1],
+ nbits_from_pk( pk ),
+ gcry_pk_algo_name( pk->pubkey_algo ), (ulong)keyid[1],
strtimestamp(pk->timestamp) );
if( keyid[2] && keyid[3] && keyid[0] != keyid[2]
&& keyid[1] != keyid[3] )
@@ -229,22 +229,24 @@ passphrase_to_dek( u32 *keyid, int pubkey_algo,
static void
hash_passphrase( DEK *dek, char *pw, STRING2KEY *s2k, int create )
{
- MD_HANDLE md;
+ GCRY_MD_HD md;
int pass, i;
int used = 0;
int pwlen = strlen(pw);
assert( s2k->hash_algo );
- dek->keylen = cipher_get_keylen( dek->algo ) / 8;
+ dek->keylen = gcry_cipher_get_algo_keylen( dek->algo );
if( !(dek->keylen > 0 && dek->keylen <= DIM(dek->key)) )
BUG();
- md = md_open( s2k->hash_algo, 1);
+ if( !(md = gcry_md_open( s2k->hash_algo, GCRY_MD_FLAG_SECURE )) )
+ BUG();
+
for(pass=0; used < dek->keylen ; pass++ ) {
if( pass ) {
- md_reset(md);
+ gcry_md_reset(md);
for(i=0; i < pass; i++ ) /* preset the hash context */
- md_putc(md, 0 );
+ gcry_md_putc(md, 0 );
}
if( s2k->mode == 1 || s2k->mode == 3 ) {
@@ -264,28 +266,28 @@ hash_passphrase( DEK *dek, char *pw, STRING2KEY *s2k, int create )
}
/* a little bit complicated because we need a ulong for count */
while( count > len2 ) { /* maybe iterated+salted */
- md_write( md, s2k->salt, 8 );
- md_write( md, pw, pwlen );
+ gcry_md_write( md, s2k->salt, 8 );
+ gcry_md_write( md, pw, pwlen );
count -= len2;
}
if( count < 8 )
- md_write( md, s2k->salt, count );
+ gcry_md_write( md, s2k->salt, count );
else {
- md_write( md, s2k->salt, 8 );
+ gcry_md_write( md, s2k->salt, 8 );
count -= 8;
assert( count >= 0 );
- md_write( md, pw, count );
+ gcry_md_write( md, pw, count );
}
}
else
- md_write( md, pw, pwlen );
- md_final( md );
- i = md_digest_length( s2k->hash_algo );
+ gcry_md_write( md, pw, pwlen );
+ gcry_md_final( md );
+ i = gcry_md_get_algo_dlen( s2k->hash_algo );
if( i > dek->keylen - used )
i = dek->keylen - used;
- memcpy( dek->key+used, md_read(md, s2k->hash_algo), i );
+ memcpy( dek->key+used, gcry_md_read(md, s2k->hash_algo), i );
used += i;
}
- md_close(md);
+ gcry_md_close(md);
}
diff --git a/g10/pkclist.c b/g10/pkclist.c
index fab2f13a7..7559b1145 100644
--- a/g10/pkclist.c
+++ b/g10/pkclist.c
@@ -27,6 +27,7 @@
#include "options.h"
#include "packet.h"
+#include "main.h"
#include "errors.h"
#include "keydb.h"
#include "memory.h"
@@ -149,7 +150,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 +195,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 +204,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 );
@@ -460,7 +461,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 );
@@ -908,10 +909,10 @@ algo_available( int preftype, int algo )
if( preftype == PREFTYPE_SYM ) {
if( algo == CIPHER_ALGO_TWOFISH )
return 0; /* we don't want to generate Twofish messages for now*/
- return algo && !check_cipher_algo( algo );
+ return algo && !openpgp_cipher_test_algo( algo );
}
else if( preftype == PREFTYPE_HASH ) {
- return algo && !check_digest_algo( algo );
+ return algo && !openpgp_md_test_algo( algo );
}
else if( preftype == PREFTYPE_COMPR ) {
return !algo || algo == 1 || algo == 2;
diff --git a/g10/plaintext.c b/g10/plaintext.c
index f8f4dcaf7..592455f12 100644
--- a/g10/plaintext.c
+++ b/g10/plaintext.c
@@ -106,7 +106,7 @@ handle_plaintext( PKT_plaintext *pt, md_filter_context_t *mfx,
goto leave;
}
if( mfx->md )
- md_putc(mfx->md, c );
+ gcry_md_putc(mfx->md, c );
if( c == '\r' )
continue; /* fixme: this hack might be too simple */
if( fp ) {
@@ -132,7 +132,7 @@ handle_plaintext( PKT_plaintext *pt, md_filter_context_t *mfx,
goto leave;
}
if( mfx->md )
- md_write( mfx->md, buffer, len );
+ gcry_md_write( mfx->md, buffer, len );
if( fp ) {
if( fwrite( buffer, 1, len, fp ) != len ) {
log_error("Error writing to `%s': %s\n",
@@ -151,7 +151,7 @@ handle_plaintext( PKT_plaintext *pt, md_filter_context_t *mfx,
if( convert ) { /* text mode */
while( (c = iobuf_get(pt->buf)) != -1 ) {
if( mfx->md )
- md_putc(mfx->md, c );
+ gcry_md_putc(mfx->md, c );
if( convert && c == '\r' )
continue; /* fixme: this hack might be too simple */
if( fp ) {
@@ -180,7 +180,7 @@ handle_plaintext( PKT_plaintext *pt, md_filter_context_t *mfx,
if( len < 32768 )
eof = 1;
if( mfx->md )
- md_write( mfx->md, buffer, len );
+ gcry_md_write( mfx->md, buffer, len );
if( fp ) {
if( fwrite( buffer, 1, len, fp ) != len ) {
log_error("Error writing to `%s': %s\n",
@@ -210,26 +210,26 @@ handle_plaintext( PKT_plaintext *pt, md_filter_context_t *mfx,
if( !mfx->md )
continue;
if( state == 2 ) {
- md_putc(mfx->md, '\r' );
- md_putc(mfx->md, '\n' );
+ gcry_md_putc(mfx->md, '\r' );
+ gcry_md_putc(mfx->md, '\n' );
state = 0;
}
if( !state ) {
if( c == '\r' )
state = 1;
else
- md_putc(mfx->md, c );
+ gcry_md_putc(mfx->md, c );
}
else if( state == 1 ) {
if( c == '\n' )
state = 2;
else {
- md_putc(mfx->md, '\r' );
+ gcry_md_putc(mfx->md, '\r' );
if( c == '\r' )
state = 1;
else {
state = 0;
- md_putc(mfx->md, c );
+ gcry_md_putc(mfx->md, c );
}
}
}
@@ -253,7 +253,7 @@ handle_plaintext( PKT_plaintext *pt, md_filter_context_t *mfx,
}
static void
-do_hash( MD_HANDLE md, MD_HANDLE md2, IOBUF fp, int textmode )
+do_hash( GCRY_MD_HD md, GCRY_MD_HD md2, IOBUF fp, int textmode )
{
text_filter_context_t tfx;
int c;
@@ -267,27 +267,27 @@ do_hash( MD_HANDLE md, MD_HANDLE md2, IOBUF fp, int textmode )
int lc = -1;
while( (c = iobuf_get(fp)) != -1 ) {
if( c == '\n' && lc == '\r' )
- md_putc(md2, c);
+ gcry_md_putc(md2, c);
else if( c == '\n' ) {
- md_putc(md2, '\r');
- md_putc(md2, c);
+ gcry_md_putc(md2, '\r');
+ gcry_md_putc(md2, c);
}
else if( c != '\n' && lc == '\r' ) {
- md_putc(md2, '\n');
- md_putc(md2, c);
+ gcry_md_putc(md2, '\n');
+ gcry_md_putc(md2, c);
}
else
- md_putc(md2, c);
+ gcry_md_putc(md2, c);
if( md )
- md_putc(md, c );
+ gcry_md_putc(md, c );
lc = c;
}
}
else {
while( (c = iobuf_get(fp)) != -1 ) {
if( md )
- md_putc(md, c );
+ gcry_md_putc(md, c );
}
}
}
@@ -298,7 +298,7 @@ do_hash( MD_HANDLE md, MD_HANDLE md2, IOBUF fp, int textmode )
* INFILE is the name of the input file.
*/
int
-ask_for_detached_datafile( MD_HANDLE md, MD_HANDLE md2,
+ask_for_detached_datafile( GCRY_MD_HD md, GCRY_MD_HD md2,
const char *inname, int textmode )
{
char *answer = NULL;
@@ -308,7 +308,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",
@@ -353,7 +353,7 @@ ask_for_detached_datafile( MD_HANDLE md, MD_HANDLE md2,
* If FILES is NULL, hash stdin.
*/
int
-hash_datafiles( MD_HANDLE md, MD_HANDLE md2, STRLIST files,
+hash_datafiles( GCRY_MD_HD md, GCRY_MD_HD md2, STRLIST files,
const char *sigfilename, int textmode )
{
IOBUF fp;
diff --git a/g10/pubkey-enc.c b/g10/pubkey-enc.c
index af77a1e52..67bb50994 100644
--- a/g10/pubkey-enc.c
+++ b/g10/pubkey-enc.c
@@ -26,6 +26,7 @@
#include "util.h"
#include "memory.h"
#include "packet.h"
+#include "main.h"
#include "mpi.h"
#include "keydb.h"
#include "trustdb.h"
@@ -150,12 +151,12 @@ get_it( PKT_pubkey_enc *k, DEK *dek, PKT_secret_key *sk, u32 *keyid )
dek->algo = frame[n++];
if( dek->algo == CIPHER_ALGO_IDEA )
write_status(STATUS_RSA_OR_IDEA);
- rc = check_cipher_algo( dek->algo );
+ rc = openpgp_cipher_test_algo( dek->algo );
if( rc ) {
dek->algo = 0;
goto leave;
}
- if( (dek->keylen*8) != cipher_get_keylen( dek->algo ) ) {
+ if( dek->keylen != gcry_cipher_get_algo_keylen( dek->algo ) ) {
rc = G10ERR_WRONG_SECKEY;
goto leave;
}
diff --git a/g10/revoke.c b/g10/revoke.c
index d93c7a462..64c9c764c 100644
--- a/g10/revoke.c
+++ b/g10/revoke.c
@@ -113,7 +113,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");
}
@@ -243,8 +243,8 @@ ask_revoke_sig( KBNODE keyblock, KBNODE node, PKT_signature *sig ) ) {
}
tty_printf(_("user ID: \""));
- tty_print_string( unode->pkt->pkt.user_id->name,
- unode->pkt->pkt.user_id->len, 0 );
+ tty_print_utf8_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) );
diff --git a/g10/ringedit.c b/g10/ringedit.c
index 04d6753de..7db1b0b6b 100644
--- a/g10/ringedit.c
+++ b/g10/ringedit.c
@@ -737,7 +737,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..c153782bf 100644
--- a/g10/seckey-cert.c
+++ b/g10/seckey-cert.c
@@ -23,12 +23,13 @@
#include <stdlib.h>
#include <string.h>
#include <assert.h>
+
+#include <gcrypt.h>
#include "util.h"
#include "memory.h"
#include "packet.h"
#include "mpi.h"
#include "keydb.h"
-#include "cipher.h"
#include "main.h"
#include "options.h"
#include "i18n.h"
@@ -46,12 +47,12 @@ do_check( PKT_secret_key *sk )
if( sk->is_protected ) { /* remove the protection */
DEK *dek = NULL;
u32 keyid[4]; /* 4! because we need two of them */
- CIPHER_HANDLE cipher_hd=NULL;
+ GCRY_CIPHER_HD cipher_hd=NULL;
PKT_secret_key *save_sk;
- if( sk->protect.algo == CIPHER_ALGO_NONE )
+ if( sk->protect.algo == GCRY_CIPHER_NONE )
BUG();
- if( check_cipher_algo( sk->protect.algo ) ) {
+ if( openpgp_cipher_test_algo( sk->protect.algo ) ) {
log_info(_("protection algorithm %d is not supported\n"),
sk->protect.algo );
return G10ERR_CIPHER_ALGO;
@@ -66,12 +67,21 @@ do_check( PKT_secret_key *sk )
}
dek = passphrase_to_dek( keyid, sk->pubkey_algo, sk->protect.algo,
&sk->protect.s2k, 0 );
- cipher_hd = cipher_open( sk->protect.algo,
- CIPHER_MODE_AUTO_CFB, 1);
- cipher_setkey( cipher_hd, dek->key, dek->keylen );
+ if( !(cipher_hd = gcry_cipher_open( sk->protect.algo,
+ GCRY_CIPHER_MODE_CFB,
+ GCRY_CIPHER_SECURE
+ | (sk->protect.algo >= 100 ?
+ 0 : GCRY_CIPHER_ENABLE_SYNC) ) )
+ ) {
+ BUG();
+ }
+
+ if( gcry_cipher_setkey( cipher_hd, dek->key, dek->keylen ) )
+ log_fatal("set key failed: %s\n", gcry_strerror(-1) );
m_free(dek);
save_sk = copy_secret_key( NULL, sk );
- cipher_setiv( cipher_hd, sk->protect.iv, sk->protect.ivlen );
+ if( gcry_cipher_setiv( cipher_hd, sk->protect.iv, sk->protect.ivlen ))
+ log_fatal("set IV failed: %s\n", gcry_strerror(-1) );
csum = 0;
if( sk->version >= 4 ) {
int ndata;
@@ -81,7 +91,7 @@ do_check( PKT_secret_key *sk )
assert( mpi_is_opaque( sk->skey[i] ) );
p = mpi_get_opaque( sk->skey[i], &ndata );
data = m_alloc_secure( ndata );
- cipher_decrypt( cipher_hd, data, p, ndata );
+ gcry_cipher_decrypt( cipher_hd, data, ndata, p, ndata );
mpi_free( sk->skey[i] ); sk->skey[i] = NULL ;
p = data;
if( ndata < 2 ) {
@@ -109,9 +119,9 @@ do_check( PKT_secret_key *sk )
for(i=pubkey_get_npkey(sk->pubkey_algo);
i < pubkey_get_nskey(sk->pubkey_algo); i++ ) {
buffer = mpi_get_secure_buffer( sk->skey[i], &nbytes, NULL );
- cipher_sync( cipher_hd );
+ gcry_cipher_sync( cipher_hd );
assert( mpi_is_protected(sk->skey[i]) );
- cipher_decrypt( cipher_hd, buffer, buffer, nbytes );
+ gcry_cipher_decrypt( cipher_hd, buffer, nbytes, NULL, 0 );
mpi_set_buffer( sk->skey[i], buffer, nbytes, 0 );
mpi_clear_protect_flag( sk->skey[i] );
csum += checksum_mpi( sk->skey[i] );
@@ -121,7 +131,7 @@ do_check( PKT_secret_key *sk )
csum = sk->csum;
}
}
- cipher_close( cipher_hd );
+ gcry_cipher_close( cipher_hd );
/* now let's see whether we have used the right passphrase */
if( csum != sk->csum ) {
copy_secret_key( sk, save_sk );
@@ -215,23 +225,41 @@ protect_secret_key( PKT_secret_key *sk, DEK *dek )
return 0;
if( !sk->is_protected ) { /* okay, apply the protection */
- CIPHER_HANDLE cipher_hd=NULL;
+ GCRY_CIPHER_HD cipher_hd=NULL;
- if( check_cipher_algo( sk->protect.algo ) )
+ if( openpgp_cipher_test_algo( sk->protect.algo ) )
rc = G10ERR_CIPHER_ALGO; /* unsupport protection algorithm */
else {
print_cipher_algo_note( sk->protect.algo );
- cipher_hd = cipher_open( sk->protect.algo,
- CIPHER_MODE_AUTO_CFB, 1 );
- if( cipher_setkey( cipher_hd, dek->key, dek->keylen ) )
+ if( !(cipher_hd = gcry_cipher_open( sk->protect.algo,
+ GCRY_CIPHER_MODE_CFB,
+ GCRY_CIPHER_SECURE
+ | (sk->protect.algo >= 100 ?
+ 0 : GCRY_CIPHER_ENABLE_SYNC) ))
+ ) {
+ BUG();
+ }
+
+
+ rc = gcry_cipher_setkey( cipher_hd, dek->key, dek->keylen );
+ if( rc == GCRYERR_WEAK_KEY ) {
log_info(_("WARNING: Weak key detected"
" - please change passphrase again.\n"));
- sk->protect.ivlen = cipher_get_blocksize( sk->protect.algo );
+ rc = 0;
+ }
+ else if( rc )
+ BUG();
+
+ /* set the IV length */
+ { int blocksize = gcry_cipher_get_algo_blklen( sk->protect.algo );
+ if( blocksize != 8 && blocksize != 16 )
+ log_fatal("unsupported blocksize %d\n", blocksize );
+ sk->protect.ivlen = blocksize;
+ }
+
assert( sk->protect.ivlen <= DIM(sk->protect.iv) );
- if( sk->protect.ivlen != 8 && sk->protect.ivlen != 16 )
- BUG(); /* yes, we are very careful */
randomize_buffer(sk->protect.iv, sk->protect.ivlen, 1);
- cipher_setiv( cipher_hd, sk->protect.iv, sk->protect.ivlen );
+ gcry_cipher_setiv( cipher_hd, sk->protect.iv, sk->protect.ivlen );
if( sk->version >= 4 ) {
#define NMPIS (PUBKEY_MAX_NSKEY - PUBKEY_MAX_NPKEY)
byte *bufarr[NMPIS];
@@ -267,7 +295,7 @@ protect_secret_key( PKT_secret_key *sk, DEK *dek )
*p++ = csum >> 8;
*p++ = csum;
assert( p == data+ndata );
- cipher_encrypt( cipher_hd, data, data, ndata );
+ gcry_cipher_encrypt( cipher_hd, data, ndata, NULL, 0 );
for(i = pubkey_get_npkey(sk->pubkey_algo);
i < pubkey_get_nskey(sk->pubkey_algo); i++ ) {
mpi_free( sk->skey[i] );
@@ -284,9 +312,9 @@ protect_secret_key( PKT_secret_key *sk, DEK *dek )
i < pubkey_get_nskey(sk->pubkey_algo); i++ ) {
csum += checksum_mpi_counted_nbits( sk->skey[i] );
buffer = mpi_get_buffer( sk->skey[i], &nbytes, NULL );
- cipher_sync( cipher_hd );
+ gcry_cipher_sync( cipher_hd );
assert( !mpi_is_protected(sk->skey[i]) );
- cipher_encrypt( cipher_hd, buffer, buffer, nbytes );
+ gcry_cipher_encrypt( cipher_hd, buffer, nbytes, NULL, 0 );
mpi_set_buffer( sk->skey[i], buffer, nbytes, 0 );
mpi_set_protect_flag( sk->skey[i] );
m_free( buffer );
@@ -294,7 +322,7 @@ protect_secret_key( PKT_secret_key *sk, DEK *dek )
sk->csum = csum;
}
sk->is_protected = 1;
- cipher_close( cipher_hd );
+ gcry_cipher_close( cipher_hd );
}
}
return rc;
diff --git a/g10/seskey.c b/g10/seskey.c
index bb158abc0..db8f6c62c 100644
--- a/g10/seskey.c
+++ b/g10/seskey.c
@@ -23,6 +23,8 @@
#include <stdlib.h>
#include <string.h>
#include <assert.h>
+
+#include <gcrypt.h>
#include "util.h"
#include "cipher.h"
#include "mpi.h"
@@ -36,19 +38,28 @@
void
make_session_key( DEK *dek )
{
- CIPHER_HANDLE chd;
+ GCRY_CIPHER_HD chd;
int i, rc;
- dek->keylen = cipher_get_keylen( dek->algo ) / 8;
+ dek->keylen = gcry_cipher_get_algo_keylen( dek->algo );
+
+ if( !(chd = gcry_cipher_open( dek->algo, GCRY_CIPHER_MODE_CFB,
+ GCRY_CIPHER_SECURE
+ | (dek->algo >= 100 ?
+ 0 : GCRY_CIPHER_ENABLE_SYNC) ))
+ ) {
+ BUG();
+ }
- chd = cipher_open( dek->algo, CIPHER_MODE_AUTO_CFB, 1 );
randomize_buffer( dek->key, dek->keylen, 1 );
for(i=0; i < 16; i++ ) {
- rc = cipher_setkey( chd, dek->key, dek->keylen );
+ rc = gcry_cipher_setkey( chd, dek->key, dek->keylen );
if( !rc ) {
- cipher_close( chd );
+ gcry_cipher_close( chd );
return;
}
+ if( rc != GCRYERR_WEAK_KEY )
+ BUG();
log_info(_("weak key created - retrying\n") );
/* Renew the session key until we get a non-weak key. */
randomize_buffer( dek->key, dek->keylen, 1 );
@@ -141,8 +152,8 @@ encode_session_key( DEK *dek, unsigned nbits )
static MPI
-do_encode_md( MD_HANDLE md, int algo, size_t len, unsigned nbits,
- const byte *asn, size_t asnlen )
+do_encode_md( GCRY_MD_HD md, int algo, size_t len, unsigned nbits,
+ const byte *asn, size_t asnlen )
{
int nframe = (nbits+7) / 8;
byte *frame;
@@ -159,7 +170,8 @@ do_encode_md( MD_HANDLE md, int algo, size_t len, unsigned nbits,
*
* PAD consists of FF bytes.
*/
- frame = md_is_secure(md)? m_alloc_secure( nframe ) : m_alloc( nframe );
+ frame = gcry_md_is_secure(md)? m_alloc_secure( nframe )
+ : m_alloc( nframe );
n = 0;
frame[n++] = 0;
frame[n++] = algo;
@@ -168,9 +180,9 @@ do_encode_md( MD_HANDLE md, int algo, size_t len, unsigned nbits,
memset( frame+n, 0xff, i ); n += i;
frame[n++] = 0;
memcpy( frame+n, asn, asnlen ); n += asnlen;
- memcpy( frame+n, md_read(md, algo), len ); n += len;
+ memcpy( frame+n, gcry_md_read(md, algo), len ); n += len;
assert( n == nframe );
- a = md_is_secure(md)?
+ a = gcry_md_is_secure(md)?
mpi_alloc_secure( (nframe+BYTES_PER_MPI_LIMB-1) / BYTES_PER_MPI_LIMB )
: mpi_alloc( (nframe+BYTES_PER_MPI_LIMB-1) / BYTES_PER_MPI_LIMB );
mpi_set_buffer( a, frame, nframe, 0 );
@@ -180,24 +192,33 @@ do_encode_md( MD_HANDLE md, int algo, size_t len, unsigned nbits,
MPI
-encode_md_value( int pubkey_algo, MD_HANDLE md, int hash_algo, unsigned nbits )
+encode_md_value( int pubkey_algo, GCRY_MD_HD md, int hash_algo, unsigned nbits )
{
- int algo = hash_algo? hash_algo : md_get_algo(md);
- const byte *asn;
- size_t asnlen, mdlen;
+ int algo = hash_algo? hash_algo : gcry_md_get_algo(md);
MPI frame;
if( pubkey_algo == PUBKEY_ALGO_DSA ) {
- frame = md_is_secure(md)? mpi_alloc_secure((md_digest_length(hash_algo)
+ frame = gcry_md_is_secure(md)? mpi_alloc_secure(
+ (gcry_md_get_algo_dlen(hash_algo)
+BYTES_PER_MPI_LIMB-1) / BYTES_PER_MPI_LIMB )
- : mpi_alloc((md_digest_length(hash_algo)
+ : mpi_alloc((gcry_md_get_algo_dlen(hash_algo)
+BYTES_PER_MPI_LIMB-1) / BYTES_PER_MPI_LIMB );
- mpi_set_buffer( frame, md_read(md, hash_algo),
- md_digest_length(hash_algo), 0 );
+ mpi_set_buffer( frame, gcry_md_read(md, hash_algo),
+ gcry_md_get_algo_dlen(hash_algo), 0 );
}
else {
- asn = md_asn_oid( algo, &asnlen, &mdlen );
- frame = do_encode_md( md, algo, mdlen, nbits, asn, asnlen );
+ byte *asn;
+ size_t asnlen;
+
+ if( gcry_md_algo_info( algo, GCRYCTL_GET_ASNOID, NULL, &asnlen ) )
+ log_fatal("can't get OID of algo %d: %s\n",
+ algo, gcry_strerror(-1));
+ asn = m_alloc( asnlen );
+ if( gcry_md_algo_info( algo, GCRYCTL_GET_ASNOID, asn, &asnlen ) )
+ BUG();
+ frame = do_encode_md( md, algo, gcry_md_get_algo_dlen( algo ),
+ nbits, asn, asnlen );
+ m_free( asn );
}
return frame;
}
diff --git a/g10/sig-check.c b/g10/sig-check.c
index 773eff7ca..972c8778d 100644
--- a/g10/sig-check.c
+++ b/g10/sig-check.c
@@ -23,42 +23,43 @@
#include <stdlib.h>
#include <string.h>
#include <assert.h>
+
+#include <gcrypt.h>
#include "util.h"
#include "packet.h"
#include "memory.h"
#include "mpi.h"
#include "keydb.h"
-#include "cipher.h"
#include "main.h"
#include "status.h"
#include "i18n.h"
struct cmp_help_context_s {
PKT_signature *sig;
- MD_HANDLE md;
+ GCRY_MD_HD md;
};
-static int do_signature_check( PKT_signature *sig, MD_HANDLE digest,
+static int do_signature_check( PKT_signature *sig, GCRY_MD_HD digest,
u32 *r_expire );
static int do_check( PKT_public_key *pk, PKT_signature *sig,
- MD_HANDLE digest );
+ GCRY_MD_HD digest );
/****************
* Check the signature which is contained in SIG.
- * The MD_HANDLE should be currently open, so that this function
+ * The GCRY_MD_HD should be currently open, so that this function
* is able to append some data, before finalizing the digest.
*/
int
-signature_check( PKT_signature *sig, MD_HANDLE digest )
+signature_check( PKT_signature *sig, GCRY_MD_HD digest )
{
u32 dummy;
return do_signature_check( sig, digest, &dummy );
}
static int
-do_signature_check( PKT_signature *sig, MD_HANDLE digest, u32 *r_expire )
+do_signature_check( PKT_signature *sig, GCRY_MD_HD digest, u32 *r_expire )
{
PKT_public_key *pk = m_alloc_clear( sizeof *pk );
int rc=0;
@@ -84,36 +85,37 @@ do_signature_check( PKT_signature *sig, MD_HANDLE digest, u32 *r_expire )
* not possible to sign more than one identical document within
* one second. Some remote bacth processing applications might
* like this feature here */
- MD_HANDLE md;
+ GCRY_MD_HD md;
u32 a = sig->timestamp;
int i, nsig = pubkey_get_nsig( sig->pubkey_algo );
byte *p, *buffer;
- md = md_open( DIGEST_ALGO_RMD160, 0);
- md_putc( digest, sig->pubkey_algo );
- md_putc( digest, sig->digest_algo );
- md_putc( digest, (a >> 24) & 0xff );
- md_putc( digest, (a >> 16) & 0xff );
- md_putc( digest, (a >> 8) & 0xff );
- md_putc( digest, a & 0xff );
+ if( !(md = gcry_md_open( DIGEST_ALGO_RMD160, 0)) )
+ BUG();
+ gcry_md_putc( digest, sig->pubkey_algo );
+ gcry_md_putc( digest, sig->digest_algo );
+ gcry_md_putc( digest, (a >> 24) & 0xff );
+ gcry_md_putc( digest, (a >> 16) & 0xff );
+ gcry_md_putc( digest, (a >> 8) & 0xff );
+ gcry_md_putc( digest, a & 0xff );
for(i=0; i < nsig; i++ ) {
unsigned n = mpi_get_nbits( sig->data[i]);
- md_putc( md, n>>8);
- md_putc( md, n );
+ gcry_md_putc( md, n>>8);
+ gcry_md_putc( md, n );
p = mpi_get_buffer( sig->data[i], &n, NULL );
- md_write( md, p, n );
+ gcry_md_write( md, p, n );
m_free(p);
}
- md_final( md );
- p = make_radix64_string( md_read( md, 0 ), 20 );
+ gcry_md_final( md );
+ p = make_radix64_string( gcry_md_read( md, 0 ), 20 );
buffer = m_alloc( strlen(p) + 60 );
sprintf( buffer, "%s %s %lu",
p, strtimestamp( sig->timestamp ), (ulong)sig->timestamp );
write_status_text( STATUS_SIG_ID, buffer );
m_free(buffer);
m_free(p);
- md_close(md);
+ gcry_md_close(md);
}
return rc;
@@ -123,11 +125,11 @@ do_signature_check( PKT_signature *sig, MD_HANDLE digest, u32 *r_expire )
#if 0 /* not anymore used */
/****************
* Check the MDC which is contained in SIG.
- * The MD_HANDLE should be currently open, so that this function
+ * The GCRY_MD_HD should be currently open, so that this function
* is able to append some data, before finalizing the digest.
*/
int
-mdc_kludge_check( PKT_signature *sig, MD_HANDLE digest )
+mdc_kludge_check( PKT_signature *sig, GCRY_MD_HD digest )
{
int rc=0;
@@ -139,23 +141,23 @@ mdc_kludge_check( PKT_signature *sig, MD_HANDLE digest )
/* complete the digest */
if( sig->version >= 4 )
- md_putc( digest, sig->version );
- md_putc( digest, sig->sig_class );
+ gcry_md_putc( digest, sig->version );
+ gcry_md_putc( digest, sig->sig_class );
if( sig->version < 4 ) {
u32 a = sig->timestamp;
- md_putc( digest, (a >> 24) & 0xff );
- md_putc( digest, (a >> 16) & 0xff );
- md_putc( digest, (a >> 8) & 0xff );
- md_putc( digest, a & 0xff );
+ gcry_md_putc( digest, (a >> 24) & 0xff );
+ gcry_md_putc( digest, (a >> 16) & 0xff );
+ gcry_md_putc( digest, (a >> 8) & 0xff );
+ gcry_md_putc( digest, a & 0xff );
}
else {
byte buf[6];
size_t n;
- md_putc( digest, sig->pubkey_algo );
- md_putc( digest, sig->digest_algo );
+ gcry_md_putc( digest, sig->pubkey_algo );
+ gcry_md_putc( digest, sig->digest_algo );
if( sig->hashed_data ) {
n = (sig->hashed_data[0] << 8) | sig->hashed_data[1];
- md_write( digest, sig->hashed_data, n+2 );
+ gcry_md_write( digest, sig->hashed_data, n+2 );
n += 6;
}
else
@@ -167,7 +169,7 @@ mdc_kludge_check( PKT_signature *sig, MD_HANDLE digest )
buf[3] = n >> 16;
buf[4] = n >> 8;
buf[5] = n;
- md_write( digest, buf, 6 );
+ gcry_md_write( digest, buf, 6 );
}
md_final( digest );
@@ -221,7 +223,7 @@ cmp_help( void *opaque, MPI result )
size_t mdlen, asnlen;
struct cmp_help_context_s *ctx = opaque;
PKT_signature *sig = ctx->sig;
- MD_HANDLE digest = ctx->md;
+ GCRY_MD_HD digest = ctx->md;
old_enc = 0;
for(i=j=0; (c=mpi_getbyte(result, i)) != -1; i++ ) {
@@ -284,7 +286,7 @@ 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, GCRY_MD_HD digest )
{
MPI result = NULL;
int rc=0;
@@ -323,33 +325,33 @@ do_check( PKT_public_key *pk, PKT_signature *sig, MD_HANDLE digest )
}
- if( (rc=check_digest_algo(sig->digest_algo)) )
+ if( (rc=openpgp_md_test_algo(sig->digest_algo)) )
return rc;
- if( (rc=check_pubkey_algo(sig->pubkey_algo)) )
+ if( (rc=openpgp_pk_test_algo(sig->pubkey_algo)) )
return rc;
/* make sure the digest algo is enabled (in case of a detached signature)*/
- md_enable( digest, sig->digest_algo );
+ gcry_md_enable( digest, sig->digest_algo );
/* complete the digest */
if( sig->version >= 4 )
- md_putc( digest, sig->version );
- md_putc( digest, sig->sig_class );
+ gcry_md_putc( digest, sig->version );
+ gcry_md_putc( digest, sig->sig_class );
if( sig->version < 4 ) {
u32 a = sig->timestamp;
- md_putc( digest, (a >> 24) & 0xff );
- md_putc( digest, (a >> 16) & 0xff );
- md_putc( digest, (a >> 8) & 0xff );
- md_putc( digest, a & 0xff );
+ gcry_md_putc( digest, (a >> 24) & 0xff );
+ gcry_md_putc( digest, (a >> 16) & 0xff );
+ gcry_md_putc( digest, (a >> 8) & 0xff );
+ gcry_md_putc( digest, a & 0xff );
}
else {
byte buf[6];
size_t n;
- md_putc( digest, sig->pubkey_algo );
- md_putc( digest, sig->digest_algo );
+ gcry_md_putc( digest, sig->pubkey_algo );
+ gcry_md_putc( digest, sig->digest_algo );
if( sig->hashed_data ) {
n = (sig->hashed_data[0] << 8) | sig->hashed_data[1];
- md_write( digest, sig->hashed_data, n+2 );
+ gcry_md_write( digest, sig->hashed_data, n+2 );
n += 6;
}
else
@@ -361,9 +363,9 @@ do_check( PKT_public_key *pk, PKT_signature *sig, MD_HANDLE digest )
buf[3] = n >> 16;
buf[4] = n >> 8;
buf[5] = n;
- md_write( digest, buf, 6 );
+ gcry_md_write( digest, buf, 6 );
}
- md_final( digest );
+ gcry_md_final( digest );
result = encode_md_value( pk->pubkey_algo, digest, sig->digest_algo,
mpi_get_nbits(pk->pkey[0]));
@@ -385,7 +387,7 @@ do_check( PKT_public_key *pk, PKT_signature *sig, MD_HANDLE digest )
static void
-hash_uid_node( KBNODE unode, MD_HANDLE md, PKT_signature *sig )
+hash_uid_node( KBNODE unode, GCRY_MD_HD md, PKT_signature *sig )
{
PKT_user_id *uid = unode->pkt->pkt.user_id;
@@ -397,9 +399,9 @@ hash_uid_node( KBNODE unode, MD_HANDLE md, PKT_signature *sig )
buf[2] = uid->len >> 16;
buf[3] = uid->len >> 8;
buf[4] = uid->len;
- md_write( md, buf, 5 );
+ gcry_md_write( md, buf, 5 );
}
- md_write( md, uid->name, uid->len );
+ gcry_md_write( md, uid->name, uid->len );
}
/****************
@@ -417,7 +419,7 @@ check_key_signature( KBNODE root, KBNODE node, int *is_selfsig )
int
check_key_signature2( KBNODE root, KBNODE node, int *is_selfsig, u32 *r_expire)
{
- MD_HANDLE md;
+ GCRY_MD_HD md;
PKT_public_key *pk;
PKT_signature *sig;
int algo;
@@ -439,24 +441,26 @@ check_key_signature2( KBNODE root, KBNODE node, int *is_selfsig, u32 *r_expire)
sig->flags.valid? "good":"bad" );
#endif
- if( (rc=check_digest_algo(algo)) )
+ if( (rc=openpgp_md_test_algo(algo)) )
return rc;
if( sig->sig_class == 0x20 ) {
- md = md_open( algo, 0 );
+ if( !(md = gcry_md_open( algo, 0 )) )
+ BUG();
hash_public_key( md, pk );
rc = do_check( pk, sig, md );
- md_close(md);
+ gcry_md_close(md);
}
else if( sig->sig_class == 0x28 ) { /* subkey revocation */
KBNODE snode = find_prev_kbnode( root, node, PKT_PUBLIC_SUBKEY );
if( snode ) {
- md = md_open( algo, 0 );
+ if( !(md = gcry_md_open( algo, 0 )) )
+ BUG();
hash_public_key( md, pk );
hash_public_key( md, snode->pkt->pkt.public_key );
rc = do_check( pk, sig, md );
- md_close(md);
+ gcry_md_close(md);
}
else {
log_error("no subkey for subkey revocation packet\n");
@@ -474,11 +478,12 @@ check_key_signature2( KBNODE root, KBNODE node, int *is_selfsig, u32 *r_expire)
if( keyid[0] == sig->keyid[0] && keyid[1] == sig->keyid[1] )
*is_selfsig = 1;
}
- md = md_open( algo, 0 );
+ if( !(md = gcry_md_open( algo, 0 )) )
+ BUG();
hash_public_key( md, pk );
hash_public_key( md, snode->pkt->pkt.public_key );
rc = do_check( pk, sig, md );
- md_close(md);
+ gcry_md_close(md);
}
else {
log_error("no subkey for key signature packet\n");
@@ -492,7 +497,8 @@ check_key_signature2( KBNODE root, KBNODE node, int *is_selfsig, u32 *r_expire)
u32 keyid[2];
keyid_from_pk( pk, keyid );
- md = md_open( algo, 0 );
+ if( !(md = gcry_md_open( algo, 0 )) )
+ BUG();
hash_public_key( md, pk );
hash_uid_node( unode, md, sig );
if( keyid[0] == sig->keyid[0] && keyid[1] == sig->keyid[1] ) {
@@ -502,7 +508,7 @@ check_key_signature2( KBNODE root, KBNODE node, int *is_selfsig, u32 *r_expire)
}
else
rc = do_signature_check( sig, md, r_expire );
- md_close(md);
+ gcry_md_close(md);
}
else {
log_error("no user ID for key signature packet\n");
diff --git a/g10/sign.c b/g10/sign.c
index eb53794dc..1f577bef2 100644
--- a/g10/sign.c
+++ b/g10/sign.c
@@ -25,6 +25,7 @@
#include <errno.h>
#include <assert.h>
+#include <gcrypt.h>
#include "options.h"
#include "packet.h"
#include "errors.h"
@@ -94,7 +95,7 @@ mk_notation_and_policy( PKT_signature *sig )
static int
do_sign( PKT_secret_key *sk, PKT_signature *sig,
- MD_HANDLE md, int digest_algo )
+ GCRY_MD_HD md, int digest_algo )
{
MPI frame;
byte *dp;
@@ -113,10 +114,10 @@ do_sign( PKT_secret_key *sk, PKT_signature *sig,
print_pubkey_algo_note(sk->pubkey_algo);
if( !digest_algo )
- digest_algo = md_get_algo(md);
+ digest_algo = gcry_md_get_algo(md);
print_digest_algo_note( digest_algo );
- dp = md_read( md, digest_algo );
+ dp = gcry_md_read( md, digest_algo );
sig->digest_algo = digest_algo;
sig->digest_start[0] = dp[0];
sig->digest_start[1] = dp[1];
@@ -130,7 +131,7 @@ do_sign( PKT_secret_key *sk, PKT_signature *sig,
if( opt.verbose ) {
char *ustr = get_user_id_string( sig->keyid );
log_info(_("%s signature from: %s\n"),
- pubkey_algo_to_string(sk->pubkey_algo), ustr );
+ gcry_pk_algo_name(sk->pubkey_algo), ustr );
m_free(ustr);
}
}
@@ -140,7 +141,7 @@ do_sign( PKT_secret_key *sk, PKT_signature *sig,
int
-complete_sig( PKT_signature *sig, PKT_secret_key *sk, MD_HANDLE md )
+complete_sig( PKT_signature *sig, PKT_secret_key *sk, GCRY_MD_HD md )
{
int rc=0;
@@ -273,11 +274,12 @@ sign_file( STRLIST filenames, int detached, STRLIST locusr,
/* prepare to calculate the MD over the input */
if( opt.textmode && !outfile )
iobuf_push_filter( inp, text_filter, &tfx );
- mfx.md = md_open(0, 0);
+ if( !(mfx.md = gcry_md_open(0, 0)))
+ BUG();
for( sk_rover = sk_list; sk_rover; sk_rover = sk_rover->next ) {
PKT_secret_key *sk = sk_rover->sk;
- md_enable(mfx.md, hash_for(sk->pubkey_algo));
+ gcry_md_enable(mfx.md, hash_for(sk->pubkey_algo));
}
if( !multifile )
@@ -448,7 +450,7 @@ sign_file( STRLIST filenames, int detached, STRLIST locusr,
for( sk_rover = sk_list; sk_rover; sk_rover = sk_rover->next ) {
PKT_secret_key *sk;
PKT_signature *sig;
- MD_HANDLE md;
+ GCRY_MD_HD md;
sk = sk_rover->sk;
@@ -462,37 +464,37 @@ sign_file( STRLIST filenames, int detached, STRLIST locusr,
sig->timestamp = make_timestamp();
sig->sig_class = opt.textmode && !outfile? 0x01 : 0x00;
- md = md_copy( mfx.md );
+ md = gcry_md_copy( mfx.md );
if( sig->version >= 4 ) {
build_sig_subpkt_from_sig( sig );
- md_putc( md, sig->version );
+ gcry_md_putc( md, sig->version );
}
mk_notation_and_policy( sig );
- md_putc( md, sig->sig_class );
+ gcry_md_putc( md, sig->sig_class );
if( sig->version < 4 ) {
u32 a = sig->timestamp;
- md_putc( md, (a >> 24) & 0xff );
- md_putc( md, (a >> 16) & 0xff );
- md_putc( md, (a >> 8) & 0xff );
- md_putc( md, a & 0xff );
+ gcry_md_putc( md, (a >> 24) & 0xff );
+ gcry_md_putc( md, (a >> 16) & 0xff );
+ gcry_md_putc( md, (a >> 8) & 0xff );
+ gcry_md_putc( md, a & 0xff );
}
else {
byte buf[6];
size_t n;
- md_putc( md, sig->pubkey_algo );
- md_putc( md, sig->digest_algo );
+ gcry_md_putc( md, sig->pubkey_algo );
+ gcry_md_putc( md, sig->digest_algo );
if( sig->hashed_data ) {
n = (sig->hashed_data[0] << 8) | sig->hashed_data[1];
- md_write( md, sig->hashed_data, n+2 );
+ gcry_md_write( md, sig->hashed_data, n+2 );
n += 6;
}
else {
- md_putc( md, 0 ); /* always hash the length of the subpacket*/
- md_putc( md, 0 );
+ gcry_md_putc( md, 0 ); /* always hash the length of the subpacket*/
+ gcry_md_putc( md, 0 );
n = 6;
}
/* add some magic */
@@ -502,13 +504,13 @@ sign_file( STRLIST filenames, int detached, STRLIST locusr,
buf[3] = n >> 16;
buf[4] = n >> 8;
buf[5] = n;
- md_write( md, buf, 6 );
+ gcry_md_write( md, buf, 6 );
}
- md_final( md );
+ gcry_md_final( md );
rc = do_sign( sk, sig, md, hash_for(sig->pubkey_algo) );
- md_close( md );
+ gcry_md_close( md );
if( !rc ) { /* and write it */
init_packet(&pkt);
@@ -530,7 +532,7 @@ sign_file( STRLIST filenames, int detached, STRLIST locusr,
else
iobuf_close(out);
iobuf_close(inp);
- md_close( mfx.md );
+ gcry_md_close( mfx.md );
release_sk_list( sk_list );
release_pk_list( pk_list );
return rc;
@@ -545,7 +547,7 @@ int
clearsign_file( const char *fname, STRLIST locusr, const char *outfile )
{
armor_filter_context_t afx;
- MD_HANDLE textmd = NULL;
+ GCRY_MD_HD textmd = NULL;
IOBUF inp = NULL, out = NULL;
PACKET pkt;
int rc = 0;
@@ -594,21 +596,26 @@ 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 ] ) {
+ if( !openpgp_md_test_algo( i ) ) {
+ hashs_seen[ i & 0xff ] = 1;
+ if( any )
+ iobuf_put(out, ',' );
+ iobuf_writestr(out, gcry_md_algo_name( i ) );
+ any = 1;
+ }
}
}
assert(any);
@@ -620,10 +627,11 @@ clearsign_file( const char *fname, STRLIST locusr, const char *outfile )
}
- textmd = md_open(0, 0);
+ if( !(textmd = gcry_md_open(0, 0)) )
+ BUG();
for( sk_rover = sk_list; sk_rover; sk_rover = sk_rover->next ) {
PKT_secret_key *sk = sk_rover->sk;
- md_enable(textmd, hash_for(sk->pubkey_algo));
+ gcry_md_enable(textmd, hash_for(sk->pubkey_algo));
}
/*md_start_debug( textmd, "sign" );*/
copy_clearsig_text( out, inp, textmd,
@@ -638,7 +646,7 @@ clearsign_file( const char *fname, STRLIST locusr, const char *outfile )
for( sk_rover = sk_list; sk_rover; sk_rover = sk_rover->next ) {
PKT_secret_key *sk;
PKT_signature *sig;
- MD_HANDLE md;
+ GCRY_MD_HD md;
sk = sk_rover->sk;
@@ -652,36 +660,36 @@ clearsign_file( const char *fname, STRLIST locusr, const char *outfile )
sig->timestamp = make_timestamp();
sig->sig_class = 0x01;
- md = md_copy( textmd );
+ md = gcry_md_copy( textmd );
if( sig->version >= 4 ) {
build_sig_subpkt_from_sig( sig );
- md_putc( md, sig->version );
+ gcry_md_putc( md, sig->version );
}
mk_notation_and_policy( sig );
- md_putc( md, sig->sig_class );
+ gcry_md_putc( md, sig->sig_class );
if( sig->version < 4 ) {
u32 a = sig->timestamp;
- md_putc( md, (a >> 24) & 0xff );
- md_putc( md, (a >> 16) & 0xff );
- md_putc( md, (a >> 8) & 0xff );
- md_putc( md, a & 0xff );
+ gcry_md_putc( md, (a >> 24) & 0xff );
+ gcry_md_putc( md, (a >> 16) & 0xff );
+ gcry_md_putc( md, (a >> 8) & 0xff );
+ gcry_md_putc( md, a & 0xff );
}
else {
byte buf[6];
size_t n;
- md_putc( md, sig->pubkey_algo );
- md_putc( md, sig->digest_algo );
+ gcry_md_putc( md, sig->pubkey_algo );
+ gcry_md_putc( md, sig->digest_algo );
if( sig->hashed_data ) {
n = (sig->hashed_data[0] << 8) | sig->hashed_data[1];
- md_write( md, sig->hashed_data, n+2 );
+ gcry_md_write( md, sig->hashed_data, n+2 );
n += 6;
}
else {
- md_putc( md, 0 ); /* always hash the length of the subpacket*/
- md_putc( md, 0 );
+ gcry_md_putc( md, 0 ); /* always hash the length of the subpacket*/
+ gcry_md_putc( md, 0 );
n = 6;
}
/* add some magic */
@@ -691,13 +699,13 @@ clearsign_file( const char *fname, STRLIST locusr, const char *outfile )
buf[3] = n >> 16;
buf[4] = n >> 8;
buf[5] = n;
- md_write( md, buf, 6 );
+ gcry_md_write( md, buf, 6 );
}
- md_final( md );
+ gcry_md_final( md );
rc = do_sign( sk, sig, md, hash_for(sig->pubkey_algo) );
- md_close( md );
+ gcry_md_close( md );
if( !rc ) { /* and write it */
init_packet(&pkt);
@@ -719,7 +727,7 @@ clearsign_file( const char *fname, STRLIST locusr, const char *outfile )
else
iobuf_close(out);
iobuf_close(inp);
- md_close( textmd );
+ gcry_md_close( textmd );
release_sk_list( sk_list );
return rc;
}
@@ -741,7 +749,7 @@ make_keysig_packet( PKT_signature **ret_sig, PKT_public_key *pk,
{
PKT_signature *sig;
int rc=0;
- MD_HANDLE md;
+ GCRY_MD_HD md;
assert( (sigclass >= 0x10 && sigclass <= 0x13)
|| sigclass == 0x20 || sigclass == 0x18
@@ -754,7 +762,8 @@ make_keysig_packet( PKT_signature **ret_sig, PKT_public_key *pk,
default: digest_algo = DIGEST_ALGO_RMD160; break;
}
}
- md = md_open( digest_algo, 0 );
+ if( !(md = gcry_md_open( digest_algo, 0 )))
+ BUG();
/* hash the public key certificate and the user id */
hash_public_key( md, pk );
@@ -769,9 +778,9 @@ make_keysig_packet( PKT_signature **ret_sig, PKT_public_key *pk,
buf[2] = uid->len >> 16;
buf[3] = uid->len >> 8;
buf[4] = uid->len;
- md_write( md, buf, 5 );
+ gcry_md_write( md, buf, 5 );
}
- md_write( md, uid->name, uid->len );
+ gcry_md_write( md, uid->name, uid->len );
}
/* and make the signature packet */
sig = m_alloc_clear( sizeof *sig );
@@ -790,29 +799,29 @@ make_keysig_packet( PKT_signature **ret_sig, PKT_public_key *pk,
if( !rc ) {
mk_notation_and_policy( sig );
if( sig->version >= 4 )
- md_putc( md, sig->version );
- md_putc( md, sig->sig_class );
+ gcry_md_putc( md, sig->version );
+ gcry_md_putc( md, sig->sig_class );
if( sig->version < 4 ) {
u32 a = sig->timestamp;
- md_putc( md, (a >> 24) & 0xff );
- md_putc( md, (a >> 16) & 0xff );
- md_putc( md, (a >> 8) & 0xff );
- md_putc( md, a & 0xff );
+ gcry_md_putc( md, (a >> 24) & 0xff );
+ gcry_md_putc( md, (a >> 16) & 0xff );
+ gcry_md_putc( md, (a >> 8) & 0xff );
+ gcry_md_putc( md, a & 0xff );
}
else {
byte buf[6];
size_t n;
- md_putc( md, sig->pubkey_algo );
- md_putc( md, sig->digest_algo );
+ gcry_md_putc( md, sig->pubkey_algo );
+ gcry_md_putc( md, sig->digest_algo );
if( sig->hashed_data ) {
n = (sig->hashed_data[0] << 8) | sig->hashed_data[1];
- md_write( md, sig->hashed_data, n+2 );
+ gcry_md_write( md, sig->hashed_data, n+2 );
n += 6;
}
else {
- md_putc( md, 0 ); /* always hash the length of the subpacket*/
- md_putc( md, 0 );
+ gcry_md_putc( md, 0 ); /* always hash the length of the subpacket*/
+ gcry_md_putc( md, 0 );
n = 6;
}
/* add some magic */
@@ -822,15 +831,15 @@ make_keysig_packet( PKT_signature **ret_sig, PKT_public_key *pk,
buf[3] = n >> 16;
buf[4] = n >> 8;
buf[5] = n;
- md_write( md, buf, 6 );
+ gcry_md_write( md, buf, 6 );
}
- md_final(md);
+ gcry_md_final(md);
rc = complete_sig( sig, sk, md );
}
- md_close( md );
+ gcry_md_close( md );
if( rc )
free_seckey_enc( sig );
else
diff --git a/g10/textfilter.c b/g10/textfilter.c
index 3125925b6..3588156ad 100644
--- a/g10/textfilter.c
+++ b/g10/textfilter.c
@@ -25,6 +25,7 @@
#include <errno.h>
#include <assert.h>
+#include <gcrypt.h>
#include "errors.h"
#include "iobuf.h"
#include "memory.h"
@@ -141,7 +142,7 @@ text_filter( void *opaque, int control,
* md is updated as required by rfc2440
*/
int
-copy_clearsig_text( IOBUF out, IOBUF inp, MD_HANDLE md,
+copy_clearsig_text( IOBUF out, IOBUF inp, GCRY_MD_HD md,
int escape_dash, int escape_from, int pgp2mode )
{
unsigned maxlen;
@@ -166,15 +167,15 @@ copy_clearsig_text( IOBUF out, IOBUF inp, MD_HANDLE md,
/* update the message digest */
if( escape_dash ) {
if( pending_lf ) {
- md_putc( md, '\r' );
- md_putc( md, '\n' );
+ gcry_md_putc( md, '\r' );
+ gcry_md_putc( md, '\n' );
}
- md_write( md, buffer,
+ gcry_md_write( md, buffer,
len_without_trailing_chars( buffer, n,
pgp2mode? " \r\n":" \t\r\n"));
}
else
- md_write( md, buffer, n );
+ gcry_md_write( md, buffer, n );
pending_lf = buffer[n-1] == '\n';
/* write the output */
@@ -190,7 +191,7 @@ copy_clearsig_text( IOBUF out, IOBUF inp, MD_HANDLE md,
if( !pending_lf ) { /* make sure that the file ends with a LF */
iobuf_put( out, '\n');
if( !escape_dash )
- md_putc( md, '\n' );
+ gcry_md_putc( md, '\n' );
}
if( truncated )
diff --git a/g10/trustdb.c b/g10/trustdb.c
index 96b77a4ef..830316931 100644
--- a/g10/trustdb.c
+++ b/g10/trustdb.c
@@ -586,13 +586,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 +652,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, 0 );
putc('\"', fp);
m_free(p);
putc('\n', fp );
@@ -1000,7 +1000,7 @@ check_uidsigs( KBNODE keyblock, KBNODE keynode, u32 *mainkid, ulong lid,
(ulong)mainkid[1], lid );
assert(keynode->pkt->pkttype == PKT_USER_ID );
uid = keynode->pkt->pkt.user_id;
- print_string( log_stream(), uid->name, uid->len, '\"' );
+ print_utf8_string( log_stream(), uid->name, uid->len );
fputs("\"\n", log_stream());
}
diff --git a/include/ChangeLog b/include/ChangeLog
index e5c86ce85..f118fb32d 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,7 @@
+Tue Oct 26 14:10:21 CEST 1999 Werner Koch <wk@gnupg.de>
+
+ * g10lib.h: Moved from ../gcrypt to here.
+
Wed Sep 15 16:22:17 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
diff --git a/include/cipher.h b/include/cipher.h
index a3f0eeba2..9e1fba874 100644
--- a/include/cipher.h
+++ b/include/cipher.h
@@ -57,38 +57,6 @@
|| (a)==PUBKEY_ALGO_RSA_S )
#define is_ELGAMAL(a) ((a)==PUBKEY_ALGO_ELGAMAL || (a)==PUBKEY_ALGO_ELGAMAL_E)
-typedef struct {
- int algo;
- int keylen;
- byte key[32]; /* this is the largest used keylen (256 bit) */
-} DEK;
-
-struct cipher_handle_s;
-typedef struct cipher_handle_s *CIPHER_HANDLE;
-
-
-#define CIPHER_MODE_ECB 1
-#define CIPHER_MODE_CFB 2
-#define CIPHER_MODE_PHILS_CFB 3
-#define CIPHER_MODE_AUTO_CFB 4
-#define CIPHER_MODE_DUMMY 5 /* used with algo DUMMY for no encryption */
-#define CIPHER_MODE_CBC 6
-
-struct md_digest_list_s;
-
-struct gcry_md_context {
- int secure;
- FILE *debug;
- int finalized;
- struct md_digest_list_s *list;
- int bufcount;
- int bufsize;
- byte buffer[1];
-};
-
-typedef struct gcry_md_context *MD_HANDLE;
-
-
int g10c_debug_mode;
int g10_opt_verbose;
const char *g10_opt_homedir;
@@ -96,82 +64,12 @@ const char *g10_opt_homedir;
/*-- dynload.c --*/
void register_cipher_extension( const char *mainpgm, const char *fname );
-/*-- md.c --*/
-int string_to_digest_algo( const char *string );
-const char * digest_algo_to_string( int algo );
-int check_digest_algo( int algo );
-MD_HANDLE md_open( int algo, int secure );
-void md_enable( MD_HANDLE hd, int algo );
-MD_HANDLE md_copy( MD_HANDLE a );
-void md_reset( MD_HANDLE a );
-void md_close(MD_HANDLE a);
-void md_write( MD_HANDLE a, byte *inbuf, size_t inlen);
-void md_final(MD_HANDLE a);
-byte *md_read( MD_HANDLE a, int algo );
-int md_digest( MD_HANDLE a, int algo, byte *buffer, int buflen );
-int md_get_algo( MD_HANDLE a );
-int md_digest_length( int algo );
-const byte *md_asn_oid( int algo, size_t *asnlen, size_t *mdlen );
-void md_start_debug( MD_HANDLE a, const char *suffix );
-void md_stop_debug( MD_HANDLE a );
-#define md_is_secure(a) ((a)->secure)
-#define md_putc(h,c) \
- do { \
- if( (h)->bufcount == (h)->bufsize ) \
- md_write( (h), NULL, 0 ); \
- (h)->buffer[(h)->bufcount++] = (c) & 0xff; \
- } while(0)
/*-- rmd160.c --*/
void rmd160_hash_buffer( char *outbuf, const char *buffer, size_t length );
-/*-- cipher.c --*/
-int string_to_cipher_algo( const char *string );
-const char * cipher_algo_to_string( int algo );
-void disable_cipher_algo( int algo );
-int check_cipher_algo( int algo );
-unsigned cipher_get_keylen( int algo );
-unsigned cipher_get_blocksize( int algo );
-CIPHER_HANDLE cipher_open( int algo, int mode, int secure );
-void cipher_close( CIPHER_HANDLE c );
-int cipher_setkey( CIPHER_HANDLE c, byte *key, unsigned keylen );
-void cipher_setiv( CIPHER_HANDLE c, const byte *iv, unsigned ivlen );
-void cipher_encrypt( CIPHER_HANDLE c, byte *out, byte *in, unsigned nbytes );
-void cipher_decrypt( CIPHER_HANDLE c, byte *out, byte *in, unsigned nbytes );
-void cipher_sync( CIPHER_HANDLE c );
-
-/*-- pubkey.c --*/
-#define PUBKEY_MAX_NPKEY 4
-#define PUBKEY_MAX_NSKEY 6
-#define PUBKEY_MAX_NSIG 2
-#define PUBKEY_MAX_NENC 2
-
-int string_to_pubkey_algo( const char *string );
-const char * pubkey_algo_to_string( int algo );
-void disable_pubkey_algo( int algo );
-int check_pubkey_algo( int algo );
-int check_pubkey_algo2( int algo, unsigned use );
-int pubkey_get_npkey( int algo );
-int pubkey_get_nskey( int algo );
-int pubkey_get_nsig( int algo );
-int pubkey_get_nenc( int algo );
-unsigned pubkey_nbits( int algo, MPI *pkey );
-int pubkey_generate( int algo, unsigned nbits, MPI *skey, MPI **retfactors );
-int pubkey_check_secret_key( int algo, MPI *skey );
-int pubkey_encrypt( int algo, MPI *resarr, MPI data, MPI *pkey );
-int pubkey_decrypt( int algo, MPI *result, MPI *data, MPI *skey );
-int pubkey_sign( int algo, MPI *resarr, MPI hash, MPI *skey );
-int pubkey_verify( int algo, MPI hash, MPI *data, MPI *pkey,
- int (*cmp)(void *, MPI), void *opaque );
-
/*-- smallprime.c --*/
extern ushort small_prime_numbers[];
-/*-- primegen.c --*/
-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 );
-
#endif /*G10_CIPHER_H*/
diff --git a/include/distfiles b/include/distfiles
index cdbfde2b0..54389e650 100644
--- a/include/distfiles
+++ b/include/distfiles
@@ -9,5 +9,6 @@ util.h
i18n.h
host2net.h
http.h
+g10lib.h
ChangeLog
diff --git a/include/g10lib.h b/include/g10lib.h
new file mode 100644
index 000000000..3fa669a8c
--- /dev/null
+++ b/include/g10lib.h
@@ -0,0 +1,212 @@
+/* g10lib.h - internal defintions for libgcrypt
+ * Copyright (C) 1998 Free Software Foundation, Inc.
+ *
+ * This header is to be used inside of libgcrypt in place of gcrypt.h.
+ * This way we can easily distinguish between internal and external
+ * usage of gcrypt.h
+ *
+ * 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
+ */
+
+#ifndef G10LIB_H
+#define G10LIB_H 1
+
+#ifdef _GCRYPT_H
+ #error gcrypt.h already included
+#endif
+
+#include "gcrypt.h"
+
+#ifdef G10_I18N_H
+ #error i18n should not be included here
+#endif
+
+#define _(a) g10_gettext(a)
+#define N_(a) (a)
+
+/*-- gcrypt/global.c --*/
+int set_lasterr( int ec );
+
+/*-- gcrypt/misc.c --*/
+const char *g10_gettext( const char *key );
+int fatal_invalid_arg(const char *text);
+
+#if 0
+/* This used to be the old include/g10lib.h */
+
+#include "mpi.h"
+
+int g10c_debug_mode;
+int g10_opt_verbose;
+
+/********************************
+ ******* math functions *******
+ ********************************/
+MPI g10m_new( unsigned nbits );
+MPI g10m_new_secure( unsigned nbits );
+void g10m_release( MPI a );
+void g10m_resize( MPI a, unsigned nbits );
+MPI g10m_copy( MPI a );
+void g10m_swap( MPI a, MPI b);
+void g10m_set( MPI w, MPI u);
+void g10m_set_ui( MPI w, unsigned long u);
+void g10m_set_bytes( MPI a, unsigned nbits, unsigned char (*fnc)(int), int opaque );
+int g10m_cmp( MPI u, MPI v );
+int g10m_cmp_ui( MPI u, unsigned long v );
+
+
+void g10m_add(MPI w, MPI u, MPI v);
+void g10m_add_ui(MPI w, MPI u, unsigned long v );
+void g10m_sub( MPI w, MPI u, MPI v);
+void g10m_sub_ui(MPI w, MPI u, unsigned long v );
+
+void g10m_mul_ui(MPI w, MPI u, unsigned long v );
+void g10m_mul_2exp( MPI w, MPI u, unsigned long cnt);
+void g10m_mul( MPI w, MPI u, MPI v);
+void g10m_mulm( MPI w, MPI u, MPI v, MPI m);
+
+void g10m_fdiv_q( MPI quot, MPI dividend, MPI divisor );
+
+void g10m_powm( MPI res, MPI base, MPI exp, MPI mod);
+
+int g10m_gcd( MPI g, MPI a, MPI b );
+int g10m_invm( MPI x, MPI u, MPI v );
+
+unsigned g10m_get_nbits( MPI a );
+unsigned g10m_get_size( MPI a );
+
+void g10m_set_buffer( MPI a, const char *buffer, unsigned nbytes, int sign );
+
+
+/********************************************
+ ******* symmetric cipher functions *******
+ ********************************************/
+
+
+
+/*********************************************
+ ******* asymmetric cipher functions *******
+ *********************************************/
+
+
+
+
+/*********************************************
+ ******* cryptograhic hash functions *******
+ *********************************************/
+
+
+/*****************************************
+ ******* miscellaneous functions *******
+ *****************************************/
+
+const char *g10m_revision_string(int mode);
+const char *g10c_revision_string(int mode);
+const char *g10u_revision_string(int mode);
+
+MPI g10c_generate_secret_prime( unsigned nbits );
+char *g10c_get_random_bits( unsigned nbits, int level, int secure );
+
+
+void *g10_malloc( size_t n );
+void *g10_calloc( size_t n );
+void *g10_malloc_secure( size_t n );
+void *g10_calloc_secure( size_t n );
+void *g10_realloc( void *a, size_t n );
+void g10_free( void *p );
+char *g10_strdup( const char * a);
+
+void g10_log_bug( const char *fmt, ... );
+void g10_log_bug0( const char *, int );
+void g10_log_fatal( const char *fmt, ... );
+void g10_log_error( const char *fmt, ... );
+void g10_log_info( const char *fmt, ... );
+void g10_log_debug( const char *fmt, ... );
+void g10_log_hexdump( const char *text, char *buf, size_t len );
+void g10_log_mpidump( const char *text, MPI a );
+
+
+/***************************
+ ******* constants *******
+ **************************/
+#define CIPHER_ALGO_NONE 0
+#define CIPHER_ALGO_IDEA 1
+#define CIPHER_ALGO_3DES 2
+#define CIPHER_ALGO_CAST5 3
+#define CIPHER_ALGO_BLOWFISH 4 /* blowfish 128 bit key */
+#define CIPHER_ALGO_SAFER_SK128 5
+#define CIPHER_ALGO_DES_SK 6
+#define CIPHER_ALGO_BLOWFISH160 42 /* blowfish 160 bit key (not in OpenPGP)*/
+#define CIPHER_ALGO_DUMMY 110 /* no encryption at all */
+
+#define PUBKEY_ALGO_RSA 1
+#define PUBKEY_ALGO_RSA_E 2 /* RSA encrypt only */
+#define PUBKEY_ALGO_RSA_S 3 /* RSA sign only */
+#define PUBKEY_ALGO_ELGAMAL_E 16 /* encrypt only ElGamal (but not vor v3)*/
+#define PUBKEY_ALGO_DSA 17
+#define PUBKEY_ALGO_ELGAMAL 20 /* sign and encrypt elgamal */
+
+#define DIGEST_ALGO_MD5 1
+#define DIGEST_ALGO_SHA1 2
+#define DIGEST_ALGO_RMD160 3
+#define DIGEST_ALGO_TIGER 6
+
+#define is_RSA(a) ((a)==PUBKEY_ALGO_RSA || (a)==PUBKEY_ALGO_RSA_E \
+ || (a)==PUBKEY_ALGO_RSA_S )
+#define is_ELGAMAL(a) ((a)==PUBKEY_ALGO_ELGAMAL || (a)==PUBKEY_ALGO_ELGAMAL_E)
+
+#define G10ERR_GENERAL 1
+#define G10ERR_PUBKEY_ALGO 4
+#define G10ERR_DIGEST_ALGO 5
+#define G10ERR_BAD_PUBKEY 6
+#define G10ERR_BAD_SECKEY 7
+#define G10ERR_BAD_SIGN 8
+#define G10ERR_CIPHER_ALGO 12
+#define G10ERR_WRONG_SECKEY 18
+#define G10ERR_UNSUPPORTED 19
+#define G10ERR_NI_PUBKEY 27
+#define G10ERR_NI_CIPHER 28
+#define G10ERR_BAD_MPI 30
+#define G10ERR_WR_PUBKEY_ALGO 41
+
+
+/***********************************
+ ******* some handy macros *******
+ ***********************************/
+
+#ifndef BUG
+ #define BUG() g10_log_bug0( __FILE__ , __LINE__ )
+#endif
+
+#ifndef STR
+ #define STR(v) #v
+ #define STR2(v) STR(v)
+#endif
+
+#ifndef DIM
+ #define DIM(v) (sizeof(v)/sizeof((v)[0]))
+ #define DIMof(type,member) DIM(((type *)0)->member)
+#endif
+
+
+#define DBG_CIPHER g10c_debug_mode
+#define OPT_VERBOSE g10_opt_verbose
+
+#endif /* if 0 */
+
+
+#endif /* G10LIB_H */
diff --git a/include/mpi.h b/include/mpi.h
index 2293af8fd..dca6426da 100644
--- a/include/mpi.h
+++ b/include/mpi.h
@@ -54,7 +54,10 @@ struct gcry_mpi {
mpi_limb_t *d; /* array with the limbs */
};
-typedef struct gcry_mpi *MPI;
+#ifndef DID_MPI_TYPEDEF
+ typedef struct gcry_mpi *MPI;
+ #define DID_MPI_TYPEDEF
+#endif
#define MPI_NULL NULL
diff --git a/po/ChangeLog b/po/ChangeLog
index bb656dc45..b8ea71480 100644
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,6 +1,5 @@
Wed Sep 15 16:22:17 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
-
* pt_PT.po: New. Done by Pedro Morais.
* it.po: Updated by Marco.
diff --git a/po/de.po b/po/de.po
index f3b5ce330..071e6293f 100644
--- a/po/de.po
+++ b/po/de.po
@@ -3,7 +3,7 @@
# Walter Koch <koch@hsp.de>, 1998.
msgid ""
msgstr ""
-"POT-Creation-Date: 1999-09-05 19:21+0200\n"
+"POT-Creation-Date: 1999-10-26 13:53+0200\n"
"PO-Revision-Date: 1999-09-04 22:36+0200\n"
"Last-Translator: Walter Koch <koch@hsp.de>\n"
"Language-Team: German <de@li.org>\n"
@@ -17,11 +17,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:281
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:282
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"
@@ -282,7 +282,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:186
msgid ""
"@Commands:\n"
" "
@@ -290,135 +290,135 @@ msgstr ""
"@Befehle:\n"
" "
-#: g10/g10.c:187
+#: g10/g10.c:188
msgid "|[file]|make a signature"
msgstr "|[Datei]|Eine Unterschrift erzeugen"
-#: g10/g10.c:188
+#: g10/g10.c:189
msgid "|[file]|make a clear text signature"
msgstr "|[Datei]|Eine Klartextunterschrift erzeugen"
-#: g10/g10.c:189
+#: g10/g10.c:190
msgid "make a detached signature"
msgstr "Eine abgetrennte Unterschrift erzeugen"
-#: g10/g10.c:190
+#: g10/g10.c:191
msgid "encrypt data"
msgstr "Daten verschlЭsseln"
-#: g10/g10.c:191
+#: g10/g10.c:192
msgid "encryption only with symmetric cipher"
msgstr "Daten symmetrisch verschlЭsseln"
-#: g10/g10.c:192
+#: g10/g10.c:193
msgid "store only"
msgstr "Nur speichern"
-#: g10/g10.c:193
+#: g10/g10.c:194
msgid "decrypt data (default)"
msgstr "Daten entschlЭsseln (Voreinstellung)"
-#: g10/g10.c:194
+#: g10/g10.c:195
msgid "verify a signature"
msgstr "Signatur prЭfen"
-#: g10/g10.c:195
+#: g10/g10.c:196
msgid "list keys"
msgstr "Liste der SchlЭssel"
-#: g10/g10.c:197
+#: g10/g10.c:198
msgid "list keys and signatures"
msgstr "Liste der SchlЭssel und ihrer Signaturen"
-#: g10/g10.c:198
+#: g10/g10.c:199
msgid "check key signatures"
msgstr "Signaturen der SchlЭssel prЭfen"
-#: g10/g10.c:199
+#: g10/g10.c:200
msgid "list keys and fingerprints"
msgstr "Liste der SchlЭssel und ihrer \"FingerabdrЭcke\""
-#: g10/g10.c:200
+#: g10/g10.c:201
msgid "list secret keys"
msgstr "Liste der geheimen SchlЭssel"
-#: g10/g10.c:201
+#: g10/g10.c:202
msgid "generate a new key pair"
msgstr "Ein neues SchlЭsselpaar erzeugen"
-#: g10/g10.c:202
+#: g10/g10.c:203
msgid "remove key from the public keyring"
msgstr "SchlЭssel entfernen"
-#: g10/g10.c:203
+#: g10/g10.c:204
msgid "sign a key"
msgstr "SchlЭssel signieren"
-#: g10/g10.c:204
+#: g10/g10.c:205
msgid "sign a key locally"
msgstr "SchlЭssel nur auf diesem Rechner signieren"
-#: g10/g10.c:205
+#: g10/g10.c:206
msgid "sign or edit a key"
msgstr "Unterschreiben o. Bearbeiten eines SchlЭssels"
-#: g10/g10.c:206
+#: g10/g10.c:207
msgid "generate a revocation certificate"
msgstr "Ein SchlЭsselwiderruf-Zertifikat erzeugen"
-#: g10/g10.c:207
+#: g10/g10.c:208
msgid "export keys"
msgstr "SchlЭssel exportieren"
-#: g10/g10.c:208
+#: g10/g10.c:209
msgid "export keys to a key server"
msgstr "SchlЭssel zu einem SchlЭ.server exportieren"
-#: g10/g10.c:209
+#: g10/g10.c:210
msgid "import keys from a key server"
msgstr "SchlЭssel von einem SchlЭ.server importieren"
-#: g10/g10.c:212
+#: g10/g10.c:213
msgid "import/merge keys"
msgstr "SchlЭssel importieren/kombinieren"
-#: g10/g10.c:214
+#: g10/g10.c:215
msgid "list only the sequence of packets"
msgstr "Lediglich Struktur der Datenpakete anzeigen"
-#: g10/g10.c:216
+#: g10/g10.c:217
msgid "export the ownertrust values"
msgstr "Exportieren der \"Owner trust\" Werte"
-#: g10/g10.c:218
+#: g10/g10.c:219
msgid "import ownertrust values"
msgstr "Importieren der \"Owner trust\" Werte"
-#: g10/g10.c:220
+#: g10/g10.c:221
msgid "update the trust database"
msgstr "дndern der \"Trust\"-Datenbank"
-#: g10/g10.c:222
+#: g10/g10.c:223
msgid "|[NAMES]|check the trust database"
msgstr "|[NAMEN]|эberprЭfen der \"Trust\"-Datenbank"
-#: g10/g10.c:223
+#: g10/g10.c:224
msgid "fix a corrupted trust database"
msgstr "Reparieren einer beschДdigten \"Trust\"-Datenb."
-#: g10/g10.c:224
+#: g10/g10.c:225
msgid "De-Armor a file or stdin"
msgstr "Datei oder stdin von der ASCII-HЭlle befreien"
-#: g10/g10.c:225
+#: g10/g10.c:227
msgid "En-Armor a file or stdin"
msgstr "Datei oder stdin in eine ASCII-HЭlle einpacken"
-#: g10/g10.c:226
+#: g10/g10.c:229
msgid "|algo [files]|print message digests"
msgstr "|algo [Dateien]|Message-Digests fЭr die Dateien ausgeben"
-#: g10/g10.c:230
+#: g10/g10.c:233
msgid ""
"@\n"
"Options:\n"
@@ -428,172 +428,172 @@ msgstr ""
"Optionen:\n"
" "
-#: g10/g10.c:232
+#: g10/g10.c:235
msgid "create ascii armored output"
msgstr "Ausgabe mit ASCII-HЭlle versehen"
-#: g10/g10.c:233
+#: g10/g10.c:237
msgid "|NAME|encrypt for NAME"
msgstr "|NAME|VerschlЭsseln fЭr NAME"
-#: g10/g10.c:236
+#: g10/g10.c:240
msgid "|NAME|use NAME as default recipient"
msgstr "|NAME|NAME als voreingestellten EmpfДnger benutzen"
-#: g10/g10.c:238
+#: g10/g10.c:242
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:246
msgid "use this user-id to sign or decrypt"
msgstr "Mit dieser User-ID signieren"
-#: g10/g10.c:243
+#: g10/g10.c:247
msgid "|N|set compress level N (0 disables)"
msgstr "Kompressionsstufe auf N setzen (0=keine)"
-#: g10/g10.c:245
+#: g10/g10.c:249
msgid "use canonical text mode"
msgstr "Textmodus benutzen"
-#: g10/g10.c:246
+#: g10/g10.c:250
msgid "use as output file"
msgstr "Als Ausgabedatei benutzen"
-#: g10/g10.c:247
+#: g10/g10.c:251
msgid "verbose"
msgstr "Detaillierte Informationen"
-#: g10/g10.c:248
+#: g10/g10.c:252
msgid "be somewhat more quiet"
msgstr "Etwas weniger Infos"
-#: g10/g10.c:249
+#: g10/g10.c:253
msgid "don't use the terminal at all"
msgstr "das Terminal gar nicht benutzen"
-#: g10/g10.c:250
+#: g10/g10.c:254
msgid "force v3 signatures"
msgstr "v3 Signaturen erzwingen"
-#: g10/g10.c:251
+#: g10/g10.c:255
msgid "always use a MDC for encryption"
msgstr "Beim VerschlЭsseln ein Siegel (MDC) verwenden"
-#: g10/g10.c:252
+#: g10/g10.c:256
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:258
msgid "batch mode: never ask"
msgstr "Stapelmodus: Keine Abfragen"
-#: g10/g10.c:255
+#: g10/g10.c:259
msgid "assume yes on most questions"
msgstr "\"Ja\" als Standardantwort annehmen"
-#: g10/g10.c:256
+#: g10/g10.c:260
msgid "assume no on most questions"
msgstr "\"Nein\" als Standardantwort annehmen"
-#: g10/g10.c:257
+#: g10/g10.c:261
msgid "add this keyring to the list of keyrings"
msgstr "Als Жffentlichen SchlЭsselbund mitbenutzen"
-#: g10/g10.c:258
+#: g10/g10.c:262
msgid "add this secret keyring to the list"
msgstr "Als geheimen SchlЭsselbund mitbenutzen"
-#: g10/g10.c:259
+#: g10/g10.c:263
msgid "|NAME|use NAME as default secret key"
msgstr "|NAME|NAME als voreingestellten SchlЭssel benutzen"
-#: g10/g10.c:260
+#: g10/g10.c:264
msgid "|HOST|use this keyserver to lookup keys"
msgstr "|HOST|SchlЭssel bei diesem Server nachschlagen"
-#: g10/g10.c:261
+#: g10/g10.c:265
msgid "|NAME|set terminal charset to NAME"
msgstr "|NAME|Terminalzeichensatz NAME benutzen"
-#: g10/g10.c:262
+#: g10/g10.c:266
msgid "read options from file"
msgstr "Optionen aus der Datei lesen"
-#: g10/g10.c:264
+#: g10/g10.c:268
msgid "set debugging flags"
msgstr "Debug-Flags einschalten"
-#: g10/g10.c:265
+#: g10/g10.c:269
msgid "enable full debugging"
msgstr "Alle Debug-Flags einschalten"
-#: g10/g10.c:266
+#: g10/g10.c:270
msgid "|FD|write status info to this FD"
msgstr "|FD|Statusinfo auf FD (Dateihandle) ausgeben"
-#: g10/g10.c:267
+#: g10/g10.c:271
msgid "do not write comment packets"
msgstr "Keine Kommentarpakete schreiben"
-#: g10/g10.c:268
+#: g10/g10.c:272
msgid "(default is 1)"
msgstr "BenЖtigte Vollvertrauen (Voreinstellung 1)"
-#: g10/g10.c:269
+#: g10/g10.c:273
msgid "(default is 3)"
msgstr "BenЖtigte Teilvertrauen (Voreinstellung 3)"
-#: g10/g10.c:271
+#: g10/g10.c:275
msgid "|FILE|load extension module FILE"
msgstr "|DATEI|Erweiterungsmodul DATEI laden"
-#: g10/g10.c:272
+#: g10/g10.c:276
msgid "emulate the mode described in RFC1991"
msgstr "Den in RFC1991 beschriebenen Modus nachahmen"
-#: g10/g10.c:273
+#: g10/g10.c:277
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:278
msgid "|N|use passphrase mode N"
msgstr "|N|Verwenden des Mantra-Modus N"
-#: g10/g10.c:276
+#: g10/g10.c:280
msgid "|NAME|use message digest algorithm NAME for passphrases"
msgstr "|NAME|Hashverfahren NAME fЭr Mantras benutzen"
-#: g10/g10.c:278
+#: g10/g10.c:282
msgid "|NAME|use cipher algorithm NAME for passphrases"
msgstr "|NAME|VerschlЭ.verfahren NAME fЭr Mantras benutzen"
-#: g10/g10.c:279
+#: g10/g10.c:283
msgid "|NAME|use cipher algorithm NAME"
msgstr "|NAME|VerschlЭ.verfahren NAME benutzen"
-#: g10/g10.c:280
+#: g10/g10.c:284
msgid "|NAME|use message digest algorithm NAME"
msgstr "|NAME|Hashverfahren NAME benutzen"
-#: g10/g10.c:281
+#: g10/g10.c:285
msgid "|N|use compress algorithm N"
msgstr "|N|Komprimierverfahren N benutzen"
-#: g10/g10.c:282
+#: g10/g10.c:286
msgid "throw keyid field of encrypted packets"
msgstr "Entferne EmpfДnger-ID verschlЭsselter Pakete"
-#: g10/g10.c:283
+#: g10/g10.c:287
msgid "|NAME=VALUE|use this notation data"
msgstr "|NAME=WERT|verwende diese \"notation\"-Daten"
-#: g10/g10.c:285
+#: g10/g10.c:289
msgid ""
"@\n"
"Examples:\n"
@@ -613,17 +613,17 @@ msgstr ""
" --list-keys [Namen] SchlЭssel anzeigen\n"
" --fingerprint [Namen] \"FingerabdrЭcke\" anzeigen\n"
-#: g10/g10.c:370
+#: g10/g10.c:376
msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
msgstr ""
"Berichte Эber Bugs (Programmfehler) bitte an <gnupg-bugs@gnu.org>.\n"
"Sinn- oder Schreibfehler in den deutschen Texten bitte an <de@li.org>.\n"
-#: g10/g10.c:374
+#: g10/g10.c:380
msgid "Usage: gpg [options] [files] (-h for help)"
msgstr "Aufruf: gpg [Optionen] [Dateien] (-h fЭr Hilfe)"
-#: g10/g10.c:377
+#: g10/g10.c:383
msgid ""
"Syntax: gpg [options] [files]\n"
"sign, check, encrypt or decrypt\n"
@@ -633,7 +633,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:388
msgid ""
"\n"
"Supported algorithms:\n"
@@ -641,184 +641,184 @@ msgstr ""
"\n"
"UnterstЭtzte Verfahren:\n"
-#: g10/g10.c:456
+#: g10/g10.c:465
msgid "usage: gpg [options] "
msgstr "Aufruf: gpg [Optionen] "
-#: g10/g10.c:509
+#: g10/g10.c:518
msgid "conflicting commands\n"
msgstr "WidersprЭchliche Befehle\n"
-#: g10/g10.c:644
+#: g10/g10.c:653
#, 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:657
#, c-format
msgid "option file `%s': %s\n"
msgstr "Optionendatei '%s': %s\n"
-#: g10/g10.c:655
+#: g10/g10.c:664
#, c-format
msgid "reading options from `%s'\n"
msgstr "Optionen werden aus '%s' gelesen\n"
-#: g10/g10.c:835
+#: g10/g10.c:844
#, 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:911 g10/g10.c:920
#, 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:913
#, 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:916
#, 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:935 g10/g10.c:947
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:941 g10/g10.c:953
msgid "selected digest algorithm is invalid\n"
msgstr "Das ausgewДhlte Hashverfahren ist ungЭltig\n"
-#: g10/g10.c:938
+#: g10/g10.c:957
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:960
#, 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:962
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:964
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:966
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:969
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:973
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:1050
#, 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:1056
msgid "--store [filename]"
msgstr "--store [Dateiname]"
-#: g10/g10.c:1044
+#: g10/g10.c:1063
msgid "--symmetric [filename]"
msgstr "--symmetric [Dateiname]"
-#: g10/g10.c:1052
+#: g10/g10.c:1071
msgid "--encrypt [filename]"
msgstr "--encrypt [Dateiname]"
-#: g10/g10.c:1065
+#: g10/g10.c:1084
msgid "--sign [filename]"
msgstr "--sign [Dateiname]"
-#: g10/g10.c:1078
+#: g10/g10.c:1097
msgid "--sign --encrypt [filename]"
msgstr "--sign --encrypt [Dateiname]"
-#: g10/g10.c:1092
+#: g10/g10.c:1111
msgid "--clearsign [filename]"
msgstr "--clearsign [Dateiname]"
-#: g10/g10.c:1104
+#: g10/g10.c:1123
msgid "--decrypt [filename]"
msgstr "--decrypt [Dateiname]"
-#: g10/g10.c:1112
+#: g10/g10.c:1131
msgid "--sign-key user-id"
msgstr "--sign-key User-ID"
-#: g10/g10.c:1120
+#: g10/g10.c:1139
msgid "--lsign-key user-id"
msgstr "--lsign-key User-ID"
-#: g10/g10.c:1128
+#: g10/g10.c:1147
msgid "--edit-key user-id [commands]"
msgstr "--edit-key User-ID [Befehle]"
-#: g10/g10.c:1144
+#: g10/g10.c:1163
msgid "--delete-secret-key user-id"
msgstr "--delete-secret-key User-ID"
-#: g10/g10.c:1147
+#: g10/g10.c:1166
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:1190 g10/sign.c:368
#, 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:1201
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:1262
#, c-format
msgid "dearmoring failed: %s\n"
msgstr "Entfernen der ASCII-HЭlle ist fehlgeschlagen: %s\n"
-#: g10/g10.c:1251
+#: g10/g10.c:1270
#, c-format
msgid "enarmoring failed: %s\n"
msgstr "Anbringen der ASCII-HЭlle ist fehlgeschlagen: %s\n"
-#: g10/g10.c:1319
+#: g10/g10.c:1338
#, c-format
msgid "invalid hash algorithm `%s'\n"
msgstr "UngЭltiges Hashverfahren '%s'\n"
-#: g10/g10.c:1400
+#: g10/g10.c:1419
msgid "[filename]"
msgstr "[Dateiname]"
-#: g10/g10.c:1404
+#: g10/g10.c:1423
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:1426 g10/verify.c:66
#, c-format
msgid "can't open `%s'\n"
msgstr "'%s' kann nicht geЖffnet werden\n"
-#: g10/g10.c:1576
+#: g10/g10.c:1594
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:1600
msgid ""
"a notation name must have only letters, digits, dots or underscores and end "
"with an '='\n"
@@ -826,12 +826,12 @@ 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:1606
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:1614
msgid "a notation value must not use any control characters\n"
msgstr "Ein \"notation\"-Wert darf keine Kontrollzeichen verwenden\n"
@@ -912,21 +912,21 @@ msgstr ""
#. Translators: this shoud fit into 24 bytes to that the fingerprint
#. * data is properly aligned with the user ID
-#: g10/pkclist.c:53
+#: g10/pkclist.c:54
msgid " Fingerprint:"
msgstr " Fingerabdruck:"
-#: g10/pkclist.c:80
+#: g10/pkclist.c:81
msgid "Fingerprint:"
msgstr "Fingerabdruck:"
# valid user replies (not including 1..4)
#. a string with valid answers
-#: g10/pkclist.c:197
+#: g10/pkclist.c:198
msgid "sSmMqQ"
msgstr "sSmMqQ"
-#: g10/pkclist.c:201
+#: g10/pkclist.c:202
#, c-format
msgid ""
"No trust value assigned to %lu:\n"
@@ -935,7 +935,7 @@ msgstr ""
"Es ist kein \"Owner trust\" fЭr %lu definiert:\n"
"%4u%c/%08lX %s \""
-#: g10/pkclist.c:213
+#: g10/pkclist.c:214
msgid ""
"Please decide how far you trust this user to correctly\n"
"verify other users' keys (by looking at passports,\n"
@@ -958,23 +958,23 @@ msgstr ""
" 4 = Ich vertraue ihm vollstДndig\n"
" s = Bitte weitere Information anzeigen\n"
-#: g10/pkclist.c:222
+#: g10/pkclist.c:223
msgid " m = back to the main menu\n"
msgstr " m = ZurЭck zum MenЭ\n"
-#: g10/pkclist.c:224
+#: g10/pkclist.c:225
msgid " q = quit\n"
msgstr " q = verlassen\n"
-#: g10/pkclist.c:230
+#: g10/pkclist.c:231
msgid "Your decision? "
msgstr "Ihre Auswahl? "
-#: g10/pkclist.c:252
+#: g10/pkclist.c:253
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:324
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 +985,7 @@ msgstr ""
"ermitteln kЖnnen.\n"
"\n"
-#: g10/pkclist.c:329
+#: g10/pkclist.c:330
msgid ""
"No path leading to one of our keys found.\n"
"\n"
@@ -993,7 +993,7 @@ msgstr ""
"Kein Pfad fЭhrt zu einen unserer SchlЭsseln.\n"
"\n"
-#: g10/pkclist.c:331
+#: g10/pkclist.c:332
msgid ""
"No certificates with undefined trust found.\n"
"\n"
@@ -1001,7 +1001,7 @@ msgstr ""
"Keine Zertifikate mit undefinierten Vertrauen gefunden.\n"
"\n"
-#: g10/pkclist.c:333
+#: g10/pkclist.c:334
msgid ""
"No trust values changed.\n"
"\n"
@@ -1009,38 +1009,38 @@ msgstr ""
"Keine \"trust\" Werte geДndert.\n"
"\n"
-#: g10/pkclist.c:350
+#: g10/pkclist.c:351
#, 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:357 g10/pkclist.c:367 g10/pkclist.c:476
msgid "Use this key anyway? "
msgstr "Diesen SchlЭssel trotzdem benutzen?"
-#: g10/pkclist.c:360
+#: g10/pkclist.c:361
#, 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:391
#, c-format
msgid "%08lX: key has expired\n"
msgstr "%08lX: SchlЭssel ist verfallen!\n"
-#: g10/pkclist.c:396
+#: g10/pkclist.c:397
#, 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:411
#, 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:417
#, c-format
msgid ""
"%08lX: It is not sure that this key really belongs to the owner\n"
@@ -1049,18 +1049,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:423
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:428
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:471
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 +1071,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:485 g10/pkclist.c:508
msgid "WARNING: Using untrusted key!\n"
msgstr "WARNUNG: Ein SchlЭssel ohne gesichertes Vertrauen wird benutzt!\n"
-#: g10/pkclist.c:528
+#: g10/pkclist.c:529
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:530
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:534
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:555
msgid "Note: This key has expired!\n"
msgstr "Hinweis: Dieser SchlЭssel ist verfallen!\n"
-#: g10/pkclist.c:562
+#: g10/pkclist.c:563
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:565
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:582
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:583
msgid " The signature is probably a FORGERY.\n"
msgstr " Die Signatur ist wahrscheinlich eine FдLSCHUNG.\n"
-#: g10/pkclist.c:589
+#: g10/pkclist.c:590
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:593
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:695 g10/pkclist.c:717 g10/pkclist.c:842 g10/pkclist.c:887
#, c-format
msgid "%s: skipped: %s\n"
msgstr "%s: Эbersprungen: %s\n"
-#: g10/pkclist.c:702 g10/pkclist.c:868
+#: g10/pkclist.c:703 g10/pkclist.c:869
#, 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:730
msgid ""
"You did not specify a user ID. (you may use \"-r\")\n"
"\n"
@@ -1141,44 +1141,44 @@ msgstr ""
"Sie gaben keine User-ID angegeben (Benutzen Sie die Option \"-r\").\n"
"\n"
-#: g10/pkclist.c:739
+#: g10/pkclist.c:740
msgid "Enter the user ID: "
msgstr "Geben Sie die User-ID ein: "
-#: g10/pkclist.c:751
+#: g10/pkclist.c:752
msgid "No such user ID.\n"
msgstr "Keine solche User-ID vorhanden.\n"
-#: g10/pkclist.c:756
+#: g10/pkclist.c:757
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:779
msgid "Public key is disabled.\n"
msgstr "жffentlicher SchlЭssel ist abgeschaltet.\n"
-#: g10/pkclist.c:785
+#: g10/pkclist.c:786
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:817
#, c-format
msgid "unknown default recipient `%s'\n"
msgstr "Unbekannter voreingestellter EmpfДnger '%s'\n"
-#: g10/pkclist.c:849
+#: g10/pkclist.c:850
#, 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:855
#, 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:893
msgid "no valid addressees\n"
msgstr "Keine gЭltigen Adressaten\n"
@@ -1492,7 +1492,7 @@ msgstr ""
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:1018 g10/sig-check.c:314 g10/sign.c:106
#, c-format
msgid ""
"key has been created %lu second in future (time warp or clock problem)\n"
@@ -1500,7 +1500,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:1020 g10/sig-check.c:316 g10/sign.c:108
#, c-format
msgid ""
"key has been created %lu seconds in future (time warp or clock problem)\n"
@@ -1512,7 +1512,7 @@ msgstr ""
msgid "Really create? "
msgstr "Wirklich erzeugen? "
-#: g10/encode.c:91 g10/openfile.c:156 g10/openfile.c:246 g10/tdbio.c:468
+#: g10/encode.c:91 g10/openfile.c:163 g10/openfile.c:272 g10/tdbio.c:468
#: g10/tdbio.c:529
#, c-format
msgid "%s: can't open: %s\n"
@@ -1523,17 +1523,17 @@ 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"
@@ -1681,7 +1681,7 @@ msgstr "SchlЭssel %08lX: жffentlicher SchlЭssel nicht gefunden: %s\n"
msgid "no default public keyring\n"
msgstr "Kein voreingestellter Жffentlicher SchlЭsselbund\n"
-#: g10/import.c:399 g10/openfile.c:186 g10/sign.c:268 g10/sign.c:580
+#: g10/import.c:399 g10/openfile.c:215 g10/sign.c:269 g10/sign.c:582
#, c-format
msgid "writing to `%s'\n"
msgstr "Schreiben nach '%s'\n"
@@ -1856,7 +1856,7 @@ msgstr "SchlЭssel %08lX: Doppelte User-ID entdeckt - zusammengefЭhrt\n"
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:1128 g10/import.c:1181
#, c-format
msgid "key %08lX: our copy has no self-signature\n"
msgstr "SchlЭssel %08lX: Unsere Kopie hat keine Eigenbeglaubigung\n"
@@ -1942,7 +1942,7 @@ msgstr ""
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:370 g10/keyedit.c:1832 g10/keyedit.c:1881 g10/sign.c:129
#, c-format
msgid "signing failed: %s\n"
msgstr "Beglaubigung fehlgeschlagen: %s\n"
@@ -2437,91 +2437,91 @@ msgstr "kein geheimer SchlЭssel zur EntschlЭsselung vorhanden\n"
msgid "public key decryption failed: %s\n"
msgstr "EntschlЭsselung mit Жffentlichem SchlЭssel fehlgeschlagen: %s\n"
-#: g10/mainproc.c:330
+#: g10/mainproc.c:332
msgid "decryption okay\n"
msgstr "EnschlЭsselung fehlgeschlagen: %s\n"
-#: g10/mainproc.c:335
+#: g10/mainproc.c:337
msgid "WARNING: encrypted message has been manipulated!\n"
msgstr "Warnung: VerschlЭsselte Botschaft ist manipuliert worden!\n"
-#: g10/mainproc.c:340
+#: g10/mainproc.c:342
#, c-format
msgid "decryption failed: %s\n"
msgstr "EnschlЭsselung fehlgeschlagen: %s\n"
-#: g10/mainproc.c:358
+#: g10/mainproc.c:360
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:362
#, 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:596 g10/mainproc.c:605
msgid "WARNING: invalid notation data found\n"
msgstr "WARNUNG: UngЭltige \"Notation\"-Daten gefunden\n"
-#: g10/mainproc.c:599
+#: g10/mainproc.c:608
msgid "Notation: "
msgstr "\"Notation\": "
-#: g10/mainproc.c:606
+#: g10/mainproc.c:615
msgid "Policy: "
msgstr "Richtlinie: "
-#: g10/mainproc.c:1025
+#: g10/mainproc.c:1034
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:1039
#, 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:1066 g10/mainproc.c:1077
msgid "BAD signature from \""
msgstr "FALSCHE Unterschrift von \""
-#: g10/mainproc.c:1058 g10/mainproc.c:1069
+#: g10/mainproc.c:1067 g10/mainproc.c:1078
msgid "Good signature from \""
msgstr "Korrekte Unterschrift von \""
-#: g10/mainproc.c:1060
+#: g10/mainproc.c:1069
msgid " aka \""
msgstr " alias \""
-#: g10/mainproc.c:1115
+#: g10/mainproc.c:1124
#, 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:1225
msgid "old style (PGP 2.x) signature\n"
msgstr "Unterschrift nach alter (PGP 2.x) Art\n"
-#: g10/mainproc.c:1217
+#: g10/mainproc.c:1230
msgid "invalid root packet detected in proc_tree()\n"
msgstr "ungЭltiges root-Paket in proc_tree() entdeckt\n"
-#: g10/misc.c:94
+#: g10/misc.c:95
#, c-format
msgid "can't disable core dumps: %s\n"
msgstr "core-dump-Dateierzeugung kann nicht abgeschaltet werden: %s\n"
-#: g10/misc.c:97
+#: g10/misc.c:98
msgid "WARNING: program may create a core file!\n"
msgstr "WARNUNG: Programm kЖnnte eine core-dump-Datei schreiben!\n"
-#: g10/misc.c:205
+#: g10/misc.c:206
msgid "Experimental algorithms should not be used!\n"
msgstr "Experimentiermethoden sollten nicht benutzt werden!\n"
-#: g10/misc.c:219
+#: g10/misc.c:220
msgid ""
"RSA keys are deprecated; please consider creating a new key and use this key "
"in the future\n"
@@ -2529,7 +2529,7 @@ msgstr ""
"RSA SchlЭssel sind nicht erwЭnscht; bitte denken Sie darЭber nach, einen\n"
"neuen SchlЭssel zu erzeugen und diesen in Zukunft zu benutzen\n"
-#: g10/misc.c:241
+#: g10/misc.c:242
msgid "this cipher algorithm is depreciated; please use a more standard one!\n"
msgstr ""
"Diese VerschlЭsselungsmethode taugt nicht mehr viel; verwenden Sie eine "
@@ -2555,7 +2555,7 @@ msgstr ""
"Sie benЖtigen ein Mantra, um den geheimen SchlЭssel zu entsperren.\n"
"Benutzer: \""
-#: g10/passphrase.c:168
+#: g10/passphrase.c:167
#, c-format
msgid "%u-bit %s key, ID %08lX, created %s"
msgstr "%u-Bit %s SchlЭssel, ID %08lX, erzeugt %s"
@@ -2582,6 +2582,11 @@ 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:311
+#, fuzzy
+msgid "Detached signature.\n"
+msgstr "%d Beglaubigungen entfernt.\n"
+
#: g10/plaintext.c:315
msgid "Please enter name of data file: "
msgstr "Bitte geben Sie den Namen der Datendatei ein: "
@@ -2595,99 +2600,99 @@ msgstr "lese stdin ...\n"
msgid "can't open signed data `%s'\n"
msgstr "kann signierte Datei '%s' nicht Жffnen.\n"
-#: g10/pubkey-enc.c:79
+#: g10/pubkey-enc.c:80
#, c-format
msgid "anonymous receiver; trying secret key %08lX ...\n"
msgstr "Ungenannter EmpfДnger: Versuch mit geheimen SchlЭssel %08lX ...\n"
-#: g10/pubkey-enc.c:85
+#: g10/pubkey-enc.c:86
msgid "okay, we are the anonymous recipient.\n"
msgstr "Alles klar, wir sind der ungenannte EmpfДnger.\n"
-#: g10/pubkey-enc.c:137
+#: g10/pubkey-enc.c:138
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:192
#, 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/seckey-cert.c:56
#, 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:181
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:246
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:201
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:297
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:305
#, 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:306
#, 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:322
#, 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:379
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:133
#, 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:264 g10/sign.c:577
#, c-format
msgid "can't create %s: %s\n"
msgstr "%s kann nicht erzeugt werden: %s\n"
-#: g10/sign.c:361
+#: g10/sign.c:363
msgid "signing:"
msgstr "unterschreibe:"
-#: g10/sign.c:404
+#: g10/sign.c:406
#, 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:129
#, 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:198
#, c-format
msgid "input line longer than %d characters\n"
msgstr "Eingabezeile ist lДnger als %d Zeichen\n"
@@ -2726,7 +2731,7 @@ msgstr "%s: Verzeichnis erzeugt\n"
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:211 g10/openfile.c:279 g10/ringedit.c:1350 g10/tdbio.c:458
#, c-format
msgid "%s: can't create: %s\n"
msgstr "%s: kann nicht erzeugt werden: %s\n"
@@ -3117,26 +3122,26 @@ msgstr "WARNUNG: Lange 'Pref'-Records kЖnnen noch nicht benutzt werden\n"
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:335 g10/ringedit.c:1355
#, c-format
msgid "%s: keyring created\n"
msgstr "%s: SchlЭsselbund erstellt\n"
-#: g10/ringedit.c:1530
+#: g10/ringedit.c:1532
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:1533
#, c-format
msgid "%s is the unchanged one\n"
msgstr "%s ist der UnverДnderte\n"
-#: g10/ringedit.c:1532
+#: g10/ringedit.c:1534
#, c-format
msgid "%s is the new one\n"
msgstr "%s ist der Neue\n"
-#: g10/ringedit.c:1533
+#: g10/ringedit.c:1535
msgid "Please fix this possible security flaw\n"
msgstr "Bitte diesen potentiellen Sicherheitsmangel beseitigen\n"
@@ -3161,59 +3166,59 @@ msgstr ""
"ist fЭr Signaturen NICHT sicher genug!\n"
#. do not overwrite
-#: g10/openfile.c:65
+#: g10/openfile.c:73
#, c-format
msgid "File `%s' exists. "
msgstr "Datei '%s' existiert bereits. "
-#: g10/openfile.c:67
+#: g10/openfile.c:75
msgid "Overwrite (y/N)? "
msgstr "эberschreiben (j/N)? "
-#: g10/openfile.c:97
+#: g10/openfile.c:104
#, c-format
msgid "%s: unknown suffix\n"
msgstr "%s: unbekannte Dateinamenerweiterung\n"
-#: g10/openfile.c:119
+#: g10/openfile.c:126
msgid "Enter new filename"
msgstr "Neuen Dateinamen eingeben"
-#: g10/openfile.c:160
+#: g10/openfile.c:167
msgid "writing to stdout\n"
msgstr "Schreiben auf die Standardausgabe\n"
-#: g10/openfile.c:219
+#: g10/openfile.c:245
#, 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:295
#, c-format
msgid "%s: new options file created\n"
msgstr "%s: neue Optionendatei erstellt\n"
#: g10/encr-data.c:66
#, c-format
-msgid "%s encrypted data\n"
-msgstr "%s verschlЭsselte Daten\n"
-
-#: g10/encr-data.c:68
-#, c-format
msgid "encrypted with unknown algorithm %d\n"
msgstr "Mit unbekanntem Verfahren verschlЭsselt %d\n"
-#: g10/encr-data.c:85
+#: g10/encr-data.c:71
+#, c-format
+msgid "%s encrypted data\n"
+msgstr "%s verschlЭsselte Daten\n"
+
+#: g10/encr-data.c:101
msgid ""
"WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
msgstr ""
"Warnung: Botschaft wurde mit einem unsicheren SchlЭssel verschlЭsselt.\n"
-#: g10/seskey.c:52
+#: g10/seskey.c:63
msgid "weak key created - retrying\n"
msgstr "Unsicherer SchlЭssel erzeugt - neuer Versuch\n"
-#: g10/seskey.c:57
+#: g10/seskey.c:68
#, c-format
msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
msgstr ""
diff --git a/po/es_ES.po b/po/es_ES.po
index 04ab34bf8..944806eea 100644
--- a/po/es_ES.po
+++ b/po/es_ES.po
@@ -7,7 +7,7 @@
# GPG version: 0.9.7
msgid ""
msgstr ""
-"POT-Creation-Date: 1999-09-05 19:21+0200\n"
+"POT-Creation-Date: 1999-10-26 13:53+0200\n"
"PO-Revision-Date: 1999-06-06 18:33+0200\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Date: 1998-11-13 10:49:25+0100\n"
@@ -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:281
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:282
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"
@@ -291,7 +291,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:186
msgid ""
"@Commands:\n"
" "
@@ -299,138 +299,138 @@ msgstr ""
"@Comandos:\n"
" "
-#: g10/g10.c:187
+#: g10/g10.c:188
msgid "|[file]|make a signature"
msgstr "|[file]|hace una firma"
-#: g10/g10.c:188
+#: g10/g10.c:189
msgid "|[file]|make a clear text signature"
msgstr "|[file]|hace una firma en texto claro"
-#: g10/g10.c:189
+#: g10/g10.c:190
msgid "make a detached signature"
msgstr "hace una firma separada"
-#: g10/g10.c:190
+#: g10/g10.c:191
msgid "encrypt data"
msgstr "cifra datos"
-#: g10/g10.c:191
+#: g10/g10.c:192
msgid "encryption only with symmetric cipher"
msgstr "cifra sСlo con un cifrado simИtrico"
-#: g10/g10.c:192
+#: g10/g10.c:193
msgid "store only"
msgstr "sСlo almacenar"
-#: g10/g10.c:193
+#: g10/g10.c:194
msgid "decrypt data (default)"
msgstr "descifra datos (predefinido)"
-#: g10/g10.c:194
+#: g10/g10.c:195
msgid "verify a signature"
msgstr "verifica una firma"
-#: g10/g10.c:195
+#: g10/g10.c:196
msgid "list keys"
msgstr "lista claves"
-#: g10/g10.c:197
+#: g10/g10.c:198
msgid "list keys and signatures"
msgstr "lista claves y firmas"
-#: g10/g10.c:198
+#: g10/g10.c:199
msgid "check key signatures"
msgstr "comprueba las firmas de las claves"
-#: g10/g10.c:199
+#: g10/g10.c:200
msgid "list keys and fingerprints"
msgstr "lista claves y huellas dactilares"
-#: g10/g10.c:200
+#: g10/g10.c:201
msgid "list secret keys"
msgstr "lista claves secretas"
-#: g10/g10.c:201
+#: g10/g10.c:202
msgid "generate a new key pair"
msgstr "genera un nuevo par de claves"
-#: g10/g10.c:202
+#: g10/g10.c:203
msgid "remove key from the public keyring"
msgstr "elimina la clave del anillo pЗblico"
-#: g10/g10.c:203
+#: g10/g10.c:204
#, fuzzy
msgid "sign a key"
msgstr "firma la clave"
-#: g10/g10.c:204
+#: g10/g10.c:205
#, fuzzy
msgid "sign a key locally"
msgstr "firma la clave localmente"
-#: g10/g10.c:205
+#: g10/g10.c:206
msgid "sign or edit a key"
msgstr "firma o modifica una clave"
-#: g10/g10.c:206
+#: g10/g10.c:207
msgid "generate a revocation certificate"
msgstr "genera un certificado de revocaciСn"
-#: g10/g10.c:207
+#: g10/g10.c:208
msgid "export keys"
msgstr "exporta claves"
-#: g10/g10.c:208
+#: g10/g10.c:209
msgid "export keys to a key server"
msgstr "exporta claves a un servidor de claves"
-#: g10/g10.c:209
+#: g10/g10.c:210
msgid "import keys from a key server"
msgstr "importa claves desde un servidor de claves"
-#: g10/g10.c:212
+#: g10/g10.c:213
msgid "import/merge keys"
msgstr "importa/fusiona claves"
-#: g10/g10.c:214
+#: g10/g10.c:215
msgid "list only the sequence of packets"
msgstr "lista sСlo la secuencia de paquetes"
-#: g10/g10.c:216
+#: g10/g10.c:217
msgid "export the ownertrust values"
msgstr "exporta los valores de confianza"
-#: g10/g10.c:218
+#: g10/g10.c:219
msgid "import ownertrust values"
msgstr "importa los valores de confianza"
-#: g10/g10.c:220
+#: g10/g10.c:221
#, fuzzy
msgid "update the trust database"
msgstr "|[NOMBRES]|actualiza la base de datos de confianza"
-#: g10/g10.c:222
+#: g10/g10.c:223
msgid "|[NAMES]|check the trust database"
msgstr "|[NOMBRES]|comprueba la base de datos de confianza"
-#: g10/g10.c:223
+#: g10/g10.c:224
msgid "fix a corrupted trust database"
msgstr "arregla una base de datos de confianza daЯada"
-#: g10/g10.c:224
+#: g10/g10.c:225
msgid "De-Armor a file or stdin"
msgstr "quita la armadura de un fichero o stdin"
-#: g10/g10.c:225
+#: g10/g10.c:227
msgid "En-Armor a file or stdin"
msgstr "crea la armadura a un fichero o stdin"
-#: g10/g10.c:226
+#: g10/g10.c:229
msgid "|algo [files]|print message digests"
msgstr "|algo [ficheros]|imprime resЗmenes de mensaje"
-#: g10/g10.c:230
+#: g10/g10.c:233
msgid ""
"@\n"
"Options:\n"
@@ -440,173 +440,173 @@ msgstr ""
"Opciones:\n"
" "
-#: g10/g10.c:232
+#: g10/g10.c:235
msgid "create ascii armored output"
msgstr "crea una salida ascii con armadura"
-#: g10/g10.c:233
+#: g10/g10.c:237
msgid "|NAME|encrypt for NAME"
msgstr "|NOMBRE|cifra para NOMBRE"
-#: g10/g10.c:236
+#: g10/g10.c:240
#, fuzzy
msgid "|NAME|use NAME as default recipient"
msgstr "|NOMBRE|usa NOMBRE como clave secreta por defecto"
-#: g10/g10.c:238
+#: g10/g10.c:242
msgid "use the default key as default recipient"
msgstr ""
-#: g10/g10.c:242
+#: g10/g10.c:246
msgid "use this user-id to sign or decrypt"
msgstr "usa este usuario para firmar o descifrar"
-#: g10/g10.c:243
+#: g10/g10.c:247
msgid "|N|set compress level N (0 disables)"
msgstr "|N|establece nivel de compresiСn N (0 no comprime)"
-#: g10/g10.c:245
+#: g10/g10.c:249
msgid "use canonical text mode"
msgstr "usa modo de texto canСnico"
-#: g10/g10.c:246
+#: g10/g10.c:250
msgid "use as output file"
msgstr "usa como fichero de salida"
-#: g10/g10.c:247
+#: g10/g10.c:251
msgid "verbose"
msgstr "prolijo"
-#: g10/g10.c:248
+#: g10/g10.c:252
msgid "be somewhat more quiet"
msgstr "algo mАs discreto"
-#: g10/g10.c:249
+#: g10/g10.c:253
msgid "don't use the terminal at all"
msgstr ""
-#: g10/g10.c:250
+#: g10/g10.c:254
msgid "force v3 signatures"
msgstr "fuerza firmas v3"
-#: g10/g10.c:251
+#: g10/g10.c:255
msgid "always use a MDC for encryption"
msgstr "siempre usa un MCD para cifrar"
-#: g10/g10.c:252
+#: g10/g10.c:256
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:258
msgid "batch mode: never ask"
msgstr "proceso por lotes: nunca preguntar"
-#: g10/g10.c:255
+#: g10/g10.c:259
msgid "assume yes on most questions"
msgstr "asume \"sМ\" en casi todas las preguntas"
-#: g10/g10.c:256
+#: g10/g10.c:260
msgid "assume no on most questions"
msgstr "asume \"no\" en casi todas las preguntas"
-#: g10/g10.c:257
+#: g10/g10.c:261
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:262
msgid "add this secret keyring to the list"
msgstr "aЯade este anillo secreto a la lista"
-#: g10/g10.c:259
+#: g10/g10.c:263
msgid "|NAME|use NAME as default secret key"
msgstr "|NOMBRE|usa NOMBRE como clave secreta por defecto"
-#: g10/g10.c:260
+#: g10/g10.c:264
msgid "|HOST|use this keyserver to lookup keys"
msgstr "|SERVIDOR|usa este servidor de claves"
-#: g10/g10.c:261
+#: g10/g10.c:265
msgid "|NAME|set terminal charset to NAME"
msgstr "|NOMBRE|usa el juego de caracteres NOMBRE"
-#: g10/g10.c:262
+#: g10/g10.c:266
msgid "read options from file"
msgstr "lee opciones del fichero"
-#: g10/g10.c:264
+#: g10/g10.c:268
msgid "set debugging flags"
msgstr "establece los parАmetros de depuraciСn"
-#: g10/g10.c:265
+#: g10/g10.c:269
msgid "enable full debugging"
msgstr "habilita depuraciСn completa"
-#: g10/g10.c:266
+#: g10/g10.c:270
msgid "|FD|write status info to this FD"
msgstr "|DF|escribe informaciСn de estado en descriptor DF"
-#: g10/g10.c:267
+#: g10/g10.c:271
msgid "do not write comment packets"
msgstr "no escribe paquetes de comentario"
-#: g10/g10.c:268
+#: g10/g10.c:272
msgid "(default is 1)"
msgstr "(por defecto es 1)"
-#: g10/g10.c:269
+#: g10/g10.c:273
msgid "(default is 3)"
msgstr "(por defecto es 3)"
-#: g10/g10.c:271
+#: g10/g10.c:275
msgid "|FILE|load extension module FILE"
msgstr "|FICHERO|carga mСdulo de extensiones FICHERO"
-#: g10/g10.c:272
+#: g10/g10.c:276
msgid "emulate the mode described in RFC1991"
msgstr "emula el modo descrito en la RFC1991"
-#: g10/g10.c:273
+#: g10/g10.c:277
msgid "set all packet, cipher and digest options to OpenPGP behavior"
msgstr ""
-#: g10/g10.c:274
+#: g10/g10.c:278
msgid "|N|use passphrase mode N"
msgstr "|N|usa modo de contraseЯa N"
-#: g10/g10.c:276
+#: g10/g10.c:280
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:282
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:283
msgid "|NAME|use cipher algorithm NAME"
msgstr "|NOMBRE|usa el algoritmo de cifrado NOMBRE"
-#: g10/g10.c:280
+#: g10/g10.c:284
msgid "|NAME|use message digest algorithm NAME"
msgstr "|NOMBRE|usa algoritmo de resumen de mensaje NOMBRE"
-#: g10/g10.c:281
+#: g10/g10.c:285
msgid "|N|use compress algorithm N"
msgstr "|N|usa el algoritmo de compresiСn N"
-#: g10/g10.c:282
+#: g10/g10.c:286
msgid "throw keyid field of encrypted packets"
msgstr "elimina el campo keyid de los paquetes cifrados"
-#: g10/g10.c:283
+#: g10/g10.c:287
msgid "|NAME=VALUE|use this notation data"
msgstr ""
-#: g10/g10.c:285
+#: g10/g10.c:289
msgid ""
"@\n"
"Examples:\n"
@@ -626,15 +626,15 @@ msgstr ""
" --list-keys [nombres] muestra las claves\n"
" --fingerprint [nombres] muestra las huellas dactilares\n"
-#: g10/g10.c:370
+#: g10/g10.c:376
msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
msgstr "Por favor, informe de posibles \"bugs\" a <gnupg-bugs@gnu.org>.\n"
-#: g10/g10.c:374
+#: g10/g10.c:380
msgid "Usage: gpg [options] [files] (-h for help)"
msgstr "Uso: gpg [opciones] [ficheros] (-h para ayuda)"
-#: g10/g10.c:377
+#: g10/g10.c:383
msgid ""
"Syntax: gpg [options] [files]\n"
"sign, check, encrypt or decrypt\n"
@@ -644,7 +644,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:388
msgid ""
"\n"
"Supported algorithms:\n"
@@ -652,197 +652,197 @@ msgstr ""
"\n"
"Algoritmos soportados:\n"
-#: g10/g10.c:456
+#: g10/g10.c:465
msgid "usage: gpg [options] "
msgstr "uso: gpg [opciones] "
-#: g10/g10.c:509
+#: g10/g10.c:518
msgid "conflicting commands\n"
msgstr "comandos incompatibles\n"
-#: g10/g10.c:644
+#: g10/g10.c:653
#, 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:657
#, c-format
msgid "option file `%s': %s\n"
msgstr "fichero de opciones `%s': %s\n"
-#: g10/g10.c:655
+#: g10/g10.c:664
#, c-format
msgid "reading options from `%s'\n"
msgstr "leyendo opciones desde `%s'\n"
-#: g10/g10.c:835
+#: g10/g10.c:844
#, 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:911 g10/g10.c:920
#, c-format
msgid "NOTE: %s is not for normal use!\n"
msgstr ""
-#: g10/g10.c:894
+#: g10/g10.c:913
#, c-format
msgid "%s not allowed with %s!\n"
msgstr ""
-#: g10/g10.c:897
+#: g10/g10.c:916
#, c-format
msgid "%s makes no sense with %s!\n"
msgstr ""
-#: g10/g10.c:916 g10/g10.c:928
+#: g10/g10.c:935 g10/g10.c:947
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:941 g10/g10.c:953
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:957
msgid "the given policy URL is invalid\n"
msgstr ""
-#: g10/g10.c:941
+#: g10/g10.c:960
#, 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:962
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:964
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:966
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:969
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:973
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:1050
#, 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:1056
msgid "--store [filename]"
msgstr "--store [nombre_fichero]"
-#: g10/g10.c:1044
+#: g10/g10.c:1063
msgid "--symmetric [filename]"
msgstr "--symmetric [nombre_fichero]"
-#: g10/g10.c:1052
+#: g10/g10.c:1071
msgid "--encrypt [filename]"
msgstr "--encrypt [nombre_fichero]"
-#: g10/g10.c:1065
+#: g10/g10.c:1084
msgid "--sign [filename]"
msgstr "--sign [nombre_fichero]"
-#: g10/g10.c:1078
+#: g10/g10.c:1097
msgid "--sign --encrypt [filename]"
msgstr "--sign --encrypt [nombre_fichero]"
-#: g10/g10.c:1092
+#: g10/g10.c:1111
msgid "--clearsign [filename]"
msgstr "--clearsign [nombre_fichero]"
-#: g10/g10.c:1104
+#: g10/g10.c:1123
msgid "--decrypt [filename]"
msgstr "--decrypt [nombre_fichero]"
-#: g10/g10.c:1112
+#: g10/g10.c:1131
msgid "--sign-key user-id"
msgstr ""
-#: g10/g10.c:1120
+#: g10/g10.c:1139
#, fuzzy
msgid "--lsign-key user-id"
msgstr "--delete-key nombre_usuario"
-#: g10/g10.c:1128
+#: g10/g10.c:1147
#, fuzzy
msgid "--edit-key user-id [commands]"
msgstr "--edit-key nombre_usuario [comandos]"
-#: g10/g10.c:1144
+#: g10/g10.c:1163
#, fuzzy
msgid "--delete-secret-key user-id"
msgstr "--delete-secret-key nombre_usuario"
-#: g10/g10.c:1147
+#: g10/g10.c:1166
#, fuzzy
msgid "--delete-key user-id"
msgstr "--delete-key nombre_usuario"
-#: g10/encode.c:259 g10/g10.c:1171 g10/sign.c:366
+#: g10/encode.c:260 g10/g10.c:1190 g10/sign.c:368
#, c-format
msgid "can't open %s: %s\n"
msgstr "no puede abrirse `%s': %s\n"
-#: g10/g10.c:1182
+#: g10/g10.c:1201
#, fuzzy
msgid "-k[v][v][v][c] [user-id] [keyring]"
msgstr "-k[v][v][v][c] [id_usuario] [anillo]"
-#: g10/g10.c:1243
+#: g10/g10.c:1262
#, c-format
msgid "dearmoring failed: %s\n"
msgstr "eliminaciСn de armadura fallida: %s\n"
-#: g10/g10.c:1251
+#: g10/g10.c:1270
#, c-format
msgid "enarmoring failed: %s\n"
msgstr "creaciСn de armadura fallida: %s\n"
-#: g10/g10.c:1319
+#: g10/g10.c:1338
#, 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:1419
msgid "[filename]"
msgstr "[nombre_fichero]"
-#: g10/g10.c:1404
+#: g10/g10.c:1423
msgid "Go ahead and type your message ...\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:1426 g10/verify.c:66
#, c-format
msgid "can't open `%s'\n"
msgstr "no puede abrirse `%s'\n"
-#: g10/g10.c:1576
+#: g10/g10.c:1594
msgid ""
"the first character of a notation name must be a letter or an underscore\n"
msgstr ""
-#: g10/g10.c:1582
+#: g10/g10.c:1600
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:1606
msgid "dots in a notation name must be surrounded by other characters\n"
msgstr ""
-#: g10/g10.c:1596
+#: g10/g10.c:1614
msgid "a notation value must not use any control characters\n"
msgstr ""
@@ -923,22 +923,22 @@ msgstr ""
#. Translators: this shoud fit into 24 bytes to that the fingerprint
#. * data is properly aligned with the user ID
-#: g10/pkclist.c:53
+#: g10/pkclist.c:54
#, fuzzy
msgid " Fingerprint:"
msgstr " importadas: %lu"
-#: g10/pkclist.c:80
+#: g10/pkclist.c:81
#, fuzzy
msgid "Fingerprint:"
msgstr "muestra huella dactilar"
#. a string with valid answers
-#: g10/pkclist.c:197
+#: g10/pkclist.c:198
msgid "sSmMqQ"
msgstr "iImMqQ"
-#: g10/pkclist.c:201
+#: g10/pkclist.c:202
#, c-format
msgid ""
"No trust value assigned to %lu:\n"
@@ -947,7 +947,7 @@ msgstr ""
"No hay confianza definida para el propietario %lu:\n"
"%4u%c/%08lX %s \""
-#: g10/pkclist.c:213
+#: g10/pkclist.c:214
msgid ""
"Please decide how far you trust this user to correctly\n"
"verify other users' keys (by looking at passports,\n"
@@ -969,23 +969,23 @@ msgstr ""
" 4 = Me fМo completamente\n"
" i = Mostrar mАs informaciСn\n"
-#: g10/pkclist.c:222
+#: g10/pkclist.c:223
msgid " m = back to the main menu\n"
msgstr " m = volver al menЗ principal\n"
-#: g10/pkclist.c:224
+#: g10/pkclist.c:225
msgid " q = quit\n"
msgstr " q = salir\n"
-#: g10/pkclist.c:230
+#: g10/pkclist.c:231
msgid "Your decision? "
msgstr "Su decisiСn: "
-#: g10/pkclist.c:252
+#: g10/pkclist.c:253
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:324
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 +995,7 @@ msgstr ""
"si es posible asignar algunos valores de confianza perdidos.\n"
"\n"
-#: g10/pkclist.c:329
+#: g10/pkclist.c:330
msgid ""
"No path leading to one of our keys found.\n"
"\n"
@@ -1003,7 +1003,7 @@ msgstr ""
"No se ha encontrado ninguna ruta con una de nuestras claves.\n"
"\n"
-#: g10/pkclist.c:331
+#: g10/pkclist.c:332
msgid ""
"No certificates with undefined trust found.\n"
"\n"
@@ -1011,7 +1011,7 @@ msgstr ""
"No se ha encontrado ningЗn certificado sin valor de confianza.\n"
"\n"
-#: g10/pkclist.c:333
+#: g10/pkclist.c:334
msgid ""
"No trust values changed.\n"
"\n"
@@ -1019,36 +1019,36 @@ msgstr ""
"No se cambiС ningЗn valor de confianza.\n"
"\n"
-#: g10/pkclist.c:350
+#: g10/pkclist.c:351
#, 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:357 g10/pkclist.c:367 g10/pkclist.c:476
msgid "Use this key anyway? "
msgstr "©Usar esta clave de todas formas? "
-#: g10/pkclist.c:360
+#: g10/pkclist.c:361
#, 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:391
#, c-format
msgid "%08lX: key has expired\n"
msgstr "%08lX: clave caducada\n"
-#: g10/pkclist.c:396
+#: g10/pkclist.c:397
#, 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:411
#, 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:417
#, c-format
msgid ""
"%08lX: It is not sure that this key really belongs to the owner\n"
@@ -1058,15 +1058,15 @@ msgstr ""
"proprietario\n"
"pero se acepta igualmente\n"
-#: g10/pkclist.c:422
+#: g10/pkclist.c:423
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:428
msgid "This key belongs to us\n"
msgstr "Esta clave nos pertenece\n"
-#: g10/pkclist.c:470
+#: g10/pkclist.c:471
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 +1078,66 @@ msgstr ""
"\"sМ\" a la siguiente pregunta.\n"
"\n"
-#: g10/pkclist.c:484 g10/pkclist.c:507
+#: g10/pkclist.c:485 g10/pkclist.c:508
msgid "WARNING: Using untrusted key!\n"
msgstr "ATENCIсN: ║Usando una clave no fiable!\n"
-#: g10/pkclist.c:528
+#: g10/pkclist.c:529
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:530
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:534
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:555
msgid "Note: This key has expired!\n"
msgstr "Nota: ║Esta clave estА caducada!\n"
-#: g10/pkclist.c:562
+#: g10/pkclist.c:563
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:565
msgid ""
" There is no indication that the signature belongs to the owner.\n"
msgstr " No hay indicios de que la firma pertenezca al propietario.\n"
-#: g10/pkclist.c:581
+#: g10/pkclist.c:582
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:583
msgid " The signature is probably a FORGERY.\n"
msgstr " La firma es probablemente una FALSIFICACIсN.\n"
-#: g10/pkclist.c:589
+#: g10/pkclist.c:590
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:593
msgid " It is not certain that the signature belongs to the owner.\n"
msgstr " No es seguro que la firma pertenezca al propietario.\n"
-#: g10/pkclist.c:694 g10/pkclist.c:716 g10/pkclist.c:841 g10/pkclist.c:886
+#: g10/pkclist.c:695 g10/pkclist.c:717 g10/pkclist.c:842 g10/pkclist.c:887
#, c-format
msgid "%s: skipped: %s\n"
msgstr "%s: ignorado: %s\n"
-#: g10/pkclist.c:702 g10/pkclist.c:868
+#: g10/pkclist.c:703 g10/pkclist.c:869
#, fuzzy, c-format
msgid "%s: skipped: public key already present\n"
msgstr "%s: problema lectura del bloque de clave: %s\n"
-#: g10/pkclist.c:729
+#: g10/pkclist.c:730
msgid ""
"You did not specify a user ID. (you may use \"-r\")\n"
"\n"
@@ -1145,45 +1145,45 @@ msgstr ""
"No se ha especificado un ID de usuario (puede usar \"-r\")\n"
"\n"
-#: g10/pkclist.c:739
+#: g10/pkclist.c:740
msgid "Enter the user ID: "
msgstr "Introduzca el ID de usuario: "
-#: g10/pkclist.c:751
+#: g10/pkclist.c:752
msgid "No such user ID.\n"
msgstr "ID de usuario inexistente.\n"
-#: g10/pkclist.c:756
+#: g10/pkclist.c:757
#, fuzzy
msgid "skipped: public key already set as default recipient\n"
msgstr "%s: problema lectura del bloque de clave: %s\n"
-#: g10/pkclist.c:778
+#: g10/pkclist.c:779
#, fuzzy
msgid "Public key is disabled.\n"
msgstr "la clave pЗblica es %08lX\n"
-#: g10/pkclist.c:785
+#: g10/pkclist.c:786
#, fuzzy
msgid "skipped: public key already set with --encrypt-to\n"
msgstr "%s: problema lectura del bloque de clave: %s\n"
-#: g10/pkclist.c:816
+#: g10/pkclist.c:817
#, fuzzy, c-format
msgid "unknown default recipient `%s'\n"
msgstr "NOTA: no existe el fichero de opciones predefinido `%s'\n"
-#: g10/pkclist.c:849
+#: g10/pkclist.c:850
#, c-format
msgid "%s: error checking key: %s\n"
msgstr "%s: error comprobando la clave: %s\n"
-#: g10/pkclist.c:854
+#: g10/pkclist.c:855
#, fuzzy, c-format
msgid "%s: skipped: public key is disabled\n"
msgstr "%s: problema lectura del bloque de clave: %s\n"
-#: g10/pkclist.c:892
+#: g10/pkclist.c:893
msgid "no valid addressees\n"
msgstr "no hay direcciones vАlidas\n"
@@ -1499,7 +1499,7 @@ msgstr ""
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:1018 g10/sig-check.c:314 g10/sign.c:106
#, c-format
msgid ""
"key has been created %lu second in future (time warp or clock problem)\n"
@@ -1507,7 +1507,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:1020 g10/sig-check.c:316 g10/sign.c:108
#, c-format
msgid ""
"key has been created %lu seconds in future (time warp or clock problem)\n"
@@ -1519,7 +1519,7 @@ msgstr ""
msgid "Really create? "
msgstr "©Crear de verdad? "
-#: g10/encode.c:91 g10/openfile.c:156 g10/openfile.c:246 g10/tdbio.c:468
+#: g10/encode.c:91 g10/openfile.c:163 g10/openfile.c:272 g10/tdbio.c:468
#: g10/tdbio.c:529
#, c-format
msgid "%s: can't open: %s\n"
@@ -1530,17 +1530,17 @@ 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"
@@ -1689,7 +1689,7 @@ msgstr "clave %08lX: clave pЗblica no encontrada: %s\n"
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:399 g10/openfile.c:215 g10/sign.c:269 g10/sign.c:582
#, c-format
msgid "writing to `%s'\n"
msgstr "escribiendo en `%s'\n"
@@ -1862,7 +1862,7 @@ msgstr "clave %08lX: detectado usuario duplicado - fusionada\n"
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:1128 g10/import.c:1181
#, c-format
msgid "key %08lX: our copy has no self-signature\n"
msgstr "clave %08lX: nuestra copia no tiene autofirma\n"
@@ -1949,7 +1949,7 @@ msgstr ""
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:370 g10/keyedit.c:1832 g10/keyedit.c:1881 g10/sign.c:129
#, c-format
msgid "signing failed: %s\n"
msgstr "firma fallida: %s\n"
@@ -2463,90 +2463,90 @@ msgstr "Clave secreta no disponible"
msgid "public key decryption failed: %s\n"
msgstr "descifrado de la clave pЗblica fallido: %s\n"
-#: g10/mainproc.c:330
+#: g10/mainproc.c:332
msgid "decryption okay\n"
msgstr "descifrado correcto\n"
-#: g10/mainproc.c:335
+#: g10/mainproc.c:337
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:342
#, c-format
msgid "decryption failed: %s\n"
msgstr "descifrado fallido: %s\n"
-#: g10/mainproc.c:358
+#: g10/mainproc.c:360
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:362
#, c-format
msgid "original file name='%.*s'\n"
msgstr "nombre fichero original='%.*s'\n"
-#: g10/mainproc.c:587 g10/mainproc.c:596
+#: g10/mainproc.c:596 g10/mainproc.c:605
#, fuzzy
msgid "WARNING: invalid notation data found\n"
msgstr "no se han encontrados datos OpenPGP vАlidos\n"
-#: g10/mainproc.c:599
+#: g10/mainproc.c:608
msgid "Notation: "
msgstr ""
-#: g10/mainproc.c:606
+#: g10/mainproc.c:615
msgid "Policy: "
msgstr ""
-#: g10/mainproc.c:1025
+#: g10/mainproc.c:1034
msgid "signature verification suppressed\n"
msgstr "suprimida la verificaciСn de la firma\n"
-#: g10/mainproc.c:1031
+#: g10/mainproc.c:1039
#, c-format
msgid "Signature made %.*s using %s key ID %08lX\n"
msgstr "Firma creada %.*s usando identificativo de clave %s %08lX\n"
#. just in case that we have no userid
-#: g10/mainproc.c:1057 g10/mainproc.c:1068
+#: g10/mainproc.c:1066 g10/mainproc.c:1077
msgid "BAD signature from \""
msgstr "Firma INCORRECTA de \""
-#: g10/mainproc.c:1058 g10/mainproc.c:1069
+#: g10/mainproc.c:1067 g10/mainproc.c:1078
msgid "Good signature from \""
msgstr "Firma correcta de \""
-#: g10/mainproc.c:1060
+#: g10/mainproc.c:1069
msgid " aka \""
msgstr "tambiИn conocido como \""
-#: g10/mainproc.c:1115
+#: g10/mainproc.c:1124
#, c-format
msgid "Can't check signature: %s\n"
msgstr "Imposible comprobar la firma: %s\n"
-#: g10/mainproc.c:1212
+#: g10/mainproc.c:1225
msgid "old style (PGP 2.x) signature\n"
msgstr "firma viejo estilo (PGP 2.x)\n"
-#: g10/mainproc.c:1217
+#: g10/mainproc.c:1230
msgid "invalid root packet detected in proc_tree()\n"
msgstr "paquete raМz no vАlido detectado en proc_tree()\n"
-#: g10/misc.c:94
+#: g10/misc.c:95
#, c-format
msgid "can't disable core dumps: %s\n"
msgstr "no se pueden desactivar los core dumps: %s\n"
-#: g10/misc.c:97
+#: g10/misc.c:98
msgid "WARNING: program may create a core file!\n"
msgstr "ATENCIсN: ║el programa podrМa crear un fichero core dump!\n"
-#: g10/misc.c:205
+#: g10/misc.c:206
msgid "Experimental algorithms should not be used!\n"
msgstr "║No se deberМan usar algoritmos experimentales!\n"
-#: g10/misc.c:219
+#: g10/misc.c:220
msgid ""
"RSA keys are deprecated; please consider creating a new key and use this key "
"in the future\n"
@@ -2554,7 +2554,7 @@ msgstr ""
"Las claves RSA estАn en desuso, considere la creaciСn de una nueva clave "
"para futuros usos\n"
-#: g10/misc.c:241
+#: g10/misc.c:242
msgid "this cipher algorithm is depreciated; please use a more standard one!\n"
msgstr ""
"este algoritmo de cifrado estА en desuso, considere el uso de uno mАs "
@@ -2580,7 +2580,7 @@ msgstr ""
"Necesita una contraseЯa para desbloquear la clave secreta\n"
"del usuario: \""
-#: g10/passphrase.c:168
+#: g10/passphrase.c:167
#, c-format
msgid "%u-bit %s key, ID %08lX, created %s"
msgstr "clave %2$s de %1$u bits, ID %3$08lX, creada el %4$s"
@@ -2607,6 +2607,11 @@ 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:311
+#, fuzzy
+msgid "Detached signature.\n"
+msgstr "%d firmas incorrectas\n"
+
#: g10/plaintext.c:315
msgid "Please enter name of data file: "
msgstr "Introduzca el nombre del fichero de datos: "
@@ -2620,92 +2625,92 @@ msgstr "leyendo stdin...\n"
msgid "can't open signed data `%s'\n"
msgstr "imposible abrir datos firmados `%s'\n"
-#: g10/pubkey-enc.c:79
+#: g10/pubkey-enc.c:80
#, c-format
msgid "anonymous receiver; trying secret key %08lX ...\n"
msgstr "destinatario anСnimo, probando clave secreta %08lX ...\n"
-#: g10/pubkey-enc.c:85
+#: g10/pubkey-enc.c:86
msgid "okay, we are the anonymous recipient.\n"
msgstr "de acuerdo, somos el destinatario anСnimo.\n"
-#: g10/pubkey-enc.c:137
+#: g10/pubkey-enc.c:138
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:192
#, 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/seckey-cert.c:56
#, 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:181
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:246
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:201
msgid "assuming bad MDC due to an unknown critical bit\n"
msgstr "asumiendo firma mala debido a un bit crМtico desconocido\n"
-#: g10/sig-check.c:295
+#: g10/sig-check.c:297
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:305
#, 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:306
#, 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:322
#, 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:379
msgid "assuming bad signature due to an unknown critical bit\n"
msgstr "asumiendo firma mala debido a un bit crМtico desconocido\n"
-#: g10/sign.c:132
+#: g10/sign.c:133
#, c-format
msgid "%s signature from: %s\n"
msgstr "firma %s de %s\n"
-#: g10/sign.c:263 g10/sign.c:575
+#: g10/sign.c:264 g10/sign.c:577
#, c-format
msgid "can't create %s: %s\n"
msgstr "no puede crearse %s: %s\n"
-#: g10/sign.c:361
+#: g10/sign.c:363
msgid "signing:"
msgstr "firmando:"
-#: g10/sign.c:404
+#: g10/sign.c:406
#, 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:129
#, 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:198
#, c-format
msgid "input line longer than %d characters\n"
msgstr "lМnea de longitud superior a %d caracteres\n"
@@ -2745,7 +2750,7 @@ msgstr "%s: directorio creado\n"
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:211 g10/openfile.c:279 g10/ringedit.c:1350 g10/tdbio.c:458
#, c-format
msgid "%s: can't create: %s\n"
msgstr "%s: no puede crearse: %s\n"
@@ -3137,26 +3142,26 @@ msgstr "ATENCмON: todavМa no puedo tratar registros de preferencias largos\n"
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:335 g10/ringedit.c:1355
#, c-format
msgid "%s: keyring created\n"
msgstr "%s: anillo creado\n"
-#: g10/ringedit.c:1530
+#: g10/ringedit.c:1532
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:1533
#, 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:1534
#, c-format
msgid "%s is the new one\n"
msgstr "%s es el nuevo\n"
-#: g10/ringedit.c:1533
+#: g10/ringedit.c:1535
msgid "Please fix this possible security flaw\n"
msgstr "Por favor arregle este posible fallo de seguridad\n"
@@ -3179,60 +3184,60 @@ msgstr ""
"para las firmas\n"
#. do not overwrite
-#: g10/openfile.c:65
+#: g10/openfile.c:73
#, c-format
msgid "File `%s' exists. "
msgstr "El fichero `%s' ya existe. "
-#: g10/openfile.c:67
+#: g10/openfile.c:75
msgid "Overwrite (y/N)? "
msgstr "©Sobreescribir (s/N)? "
-#: g10/openfile.c:97
+#: g10/openfile.c:104
#, c-format
msgid "%s: unknown suffix\n"
msgstr ""
-#: g10/openfile.c:119
+#: g10/openfile.c:126
#, fuzzy
msgid "Enter new filename"
msgstr "--store [nombre_fichero]"
-#: g10/openfile.c:160
+#: g10/openfile.c:167
msgid "writing to stdout\n"
msgstr "escribiendo en stdout\n"
-#: g10/openfile.c:219
+#: g10/openfile.c:245
#, 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:295
#, c-format
msgid "%s: new options file created\n"
msgstr "%s: se ha creado un nuevo fichero de opciones\n"
#: g10/encr-data.c:66
#, c-format
-msgid "%s encrypted data\n"
-msgstr "datos cifrados %s\n"
-
-#: g10/encr-data.c:68
-#, c-format
msgid "encrypted with unknown algorithm %d\n"
msgstr "cifrado con algoritmo desconocido %d\n"
-#: g10/encr-data.c:85
+#: g10/encr-data.c:71
+#, c-format
+msgid "%s encrypted data\n"
+msgstr "datos cifrados %s\n"
+
+#: g10/encr-data.c:101
msgid ""
"WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
msgstr ""
"ATENCIсN: mensaje cifrado con una clave dИbil en el cifrado simИtrico.\n"
-#: g10/seskey.c:52
+#: g10/seskey.c:63
msgid "weak key created - retrying\n"
msgstr "creada clave dИbil - reintentando\n"
-#: g10/seskey.c:57
+#: g10/seskey.c:68
#, c-format
msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
msgstr ""
diff --git a/po/fr.po b/po/fr.po
index 44b3776a2..7016408bc 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -2,11 +2,14 @@
# Copyright (C) 1998, 1999 Free Software Foundation, Inc.
# GaКl QuИri <gqueri@mail.dotcom.fr>, 1998.
#
+# La version la plus rИcente peut Йtre trouvИe Ю :
+# Latest version can be found at :
+# <http://www.multimania.com/gqueri/gnupg/po.html>
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.1\n"
+"POT-Creation-Date: 1999-10-26 13:53+0200\n"
+"PO-Revision-Date: 1999-10-06 21:43+0200\n"
"Last-Translator: GaКl QuИri <gqueri@mail.dotcom.fr>\n"
"Language-Team: French <traduc@traduc.org>\n"
"MIME-Version: 1.0\n"
@@ -17,13 +20,13 @@ 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:281
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:282
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"
@@ -101,7 +104,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 +160,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"
@@ -283,7 +286,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:186
msgid ""
"@Commands:\n"
" "
@@ -291,136 +294,136 @@ msgstr ""
"@Commandes:\n"
" "
-#: g10/g10.c:187
+#: g10/g10.c:188
msgid "|[file]|make a signature"
msgstr "|[fichier]|faire une signature"
-#: g10/g10.c:188
+#: g10/g10.c:189
msgid "|[file]|make a clear text signature"
msgstr "|[fichier]|faire une signature en texte clair"
-#: g10/g10.c:189
+#: g10/g10.c:190
msgid "make a detached signature"
msgstr "faire une signature dИtachИe"
-#: g10/g10.c:190
+#: g10/g10.c:191
msgid "encrypt data"
msgstr "chiffrer les donnИes"
-#: g10/g10.c:191
+#: g10/g10.c:192
msgid "encryption only with symmetric cipher"
msgstr "chiffrement symИtrique seulement"
-#: g10/g10.c:192
+#: g10/g10.c:193
msgid "store only"
msgstr "pas d'action"
-#: g10/g10.c:193
+#: g10/g10.c:194
msgid "decrypt data (default)"
msgstr "dИchiffrer les donnИes (dИfaut)"
-#: g10/g10.c:194
+#: g10/g10.c:195
msgid "verify a signature"
msgstr "vИrifier une signature"
-#: g10/g10.c:195
+#: g10/g10.c:196
msgid "list keys"
msgstr "lister les clИs"
-#: g10/g10.c:197
+#: g10/g10.c:198
msgid "list keys and signatures"
msgstr "lister les clИs et les signatures"
-#: g10/g10.c:198
+#: g10/g10.c:199
msgid "check key signatures"
msgstr "vИrifier les signatures des clИs"
-#: g10/g10.c:199
+#: g10/g10.c:200
msgid "list keys and fingerprints"
msgstr "lister les clИs et les empreintes"
-#: g10/g10.c:200
+#: g10/g10.c:201
msgid "list secret keys"
msgstr "lister les clИs secrХtes"
-#: g10/g10.c:201
+#: g10/g10.c:202
msgid "generate a new key pair"
msgstr "gИnИrer une nouvelle paire de clИs"
-#: g10/g10.c:202
+#: g10/g10.c:203
msgid "remove key from the public keyring"
msgstr "enlever la clИ du porte-clИs public"
-#: g10/g10.c:203
+#: g10/g10.c:204
msgid "sign a key"
msgstr "signer une clИ"
-#: g10/g10.c:204
+#: g10/g10.c:205
msgid "sign a key locally"
msgstr "signer une clИ localement"
-#: g10/g10.c:205
+#: g10/g10.c:206
msgid "sign or edit a key"
msgstr "signer ou Иditer une clИ"
-#: g10/g10.c:206
+#: g10/g10.c:207
msgid "generate a revocation certificate"
msgstr "gИnИrer un certificat de rИvocation"
-#: g10/g10.c:207
+#: g10/g10.c:208
msgid "export keys"
msgstr "exporter les clИs"
-#: g10/g10.c:208
+#: g10/g10.c:209
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:210
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:213
msgid "import/merge keys"
msgstr "importer/fusionner les clИs"
-#: g10/g10.c:214
+#: g10/g10.c:215
msgid "list only the sequence of packets"
msgstr "ne lister que les paquets"
-#: g10/g10.c:216
+#: g10/g10.c:217
msgid "export the ownertrust values"
msgstr "exporter les indices de confiance"
-#: g10/g10.c:218
+#: g10/g10.c:219
msgid "import ownertrust values"
msgstr "importer les indices de confiance"
#
-#: g10/g10.c:220
+#: g10/g10.c:221
msgid "update the trust database"
msgstr "mettre la base de confiance Ю jour"
-#: g10/g10.c:222
+#: g10/g10.c:223
msgid "|[NAMES]|check the trust database"
msgstr "|[NOMS]|vИrifier la base de confiance"
-#: g10/g10.c:223
+#: g10/g10.c:224
msgid "fix a corrupted trust database"
msgstr "rИparer une base de confiance corrompue"
-#: g10/g10.c:224
+#: g10/g10.c:225
msgid "De-Armor a file or stdin"
msgstr "Enlever l'armure d'un fichier ou de stdin"
-#: g10/g10.c:225
+#: g10/g10.c:227
msgid "En-Armor a file or stdin"
msgstr "Mettre une armure Ю un fichier ou Ю stdin"
-#: g10/g10.c:226
+#: g10/g10.c:229
msgid "|algo [files]|print message digests"
msgstr "|alg. [fich.]|indiquer les fonctions de hachage"
-#: g10/g10.c:230
+#: g10/g10.c:233
msgid ""
"@\n"
"Options:\n"
@@ -430,169 +433,169 @@ msgstr ""
"Options:\n"
" "
-#: g10/g10.c:232
+#: g10/g10.c:235
msgid "create ascii armored output"
msgstr "crИer une sortie ascii avec armure"
-#: g10/g10.c:233
+#: g10/g10.c:237
msgid "|NAME|encrypt for NAME"
msgstr "|NOM|chiffrer pour NOM"
-#: g10/g10.c:236
+#: g10/g10.c:240
msgid "|NAME|use NAME as default recipient"
msgstr "|NOM|utiliser NOM comme rИcipient par dИfaut"
-#: g10/g10.c:238
+#: g10/g10.c:242
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:246
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:247
msgid "|N|set compress level N (0 disables)"
msgstr "|N|niveau de compression N (0 dИsactive)"
-#: g10/g10.c:245
+#: g10/g10.c:249
msgid "use canonical text mode"
msgstr "utiliser le mode texte canonique"
-#: g10/g10.c:246
+#: g10/g10.c:250
msgid "use as output file"
msgstr "utiliser comme fichier de sortie"
-#: g10/g10.c:247
+#: g10/g10.c:251
msgid "verbose"
msgstr "bavard"
-#: g10/g10.c:248
+#: g10/g10.c:252
msgid "be somewhat more quiet"
msgstr "devenir beaucoup plus silencieux"
-#: g10/g10.c:249
+#: g10/g10.c:253
msgid "don't use the terminal at all"
msgstr "ne pas utiliser du tout le terminal"
#
-#: g10/g10.c:250
+#: g10/g10.c:254
msgid "force v3 signatures"
msgstr "forcer les signatures en v3"
-#: g10/g10.c:251
+#: g10/g10.c:255
msgid "always use a MDC for encryption"
msgstr "toujours utiliser un sceau pour le chiffrement"
-#: g10/g10.c:252
+#: g10/g10.c:256
msgid "do not make any changes"
msgstr "ne rien changer"
#. { oInteractive, "interactive", 0, N_("prompt before overwriting") },
-#: g10/g10.c:254
+#: g10/g10.c:258
msgid "batch mode: never ask"
msgstr "mode automatique : ne jamais rien demander"
-#: g10/g10.c:255
+#: g10/g10.c:259
msgid "assume yes on most questions"
msgstr "rИpondre oui Ю la plupart des questions"
-#: g10/g10.c:256
+#: g10/g10.c:260
msgid "assume no on most questions"
msgstr "rИpondre non Ю la plupart des questions"
-#: g10/g10.c:257
+#: g10/g10.c:261
msgid "add this keyring to the list of keyrings"
msgstr "ajouter ce porte-clИs Ю la liste"
-#: g10/g10.c:258
+#: g10/g10.c:262
msgid "add this secret keyring to the list"
msgstr "ajouter ce porte-clИs secret Ю la liste"
-#: g10/g10.c:259
+#: g10/g10.c:263
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:264
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:265
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:266
msgid "read options from file"
msgstr "lire les options du fichier"
-#: g10/g10.c:264
+#: g10/g10.c:268
msgid "set debugging flags"
msgstr "choisir les attributs de dИboguage"
-#: g10/g10.c:265
+#: g10/g10.c:269
msgid "enable full debugging"
msgstr "permettre un dИboguage complet"
-#: g10/g10.c:266
+#: g10/g10.c:270
msgid "|FD|write status info to this FD"
msgstr "|FD|Иcrire l'Иtat sur ce descripteur"
-#: g10/g10.c:267
+#: g10/g10.c:271
msgid "do not write comment packets"
msgstr "ne pas Иcrire de paquets de commentaire"
-#: g10/g10.c:268
+#: g10/g10.c:272
msgid "(default is 1)"
msgstr "nombre de signatures complХtes requises (1)"
-#: g10/g10.c:269
+#: g10/g10.c:273
msgid "(default is 3)"
msgstr "nombre de signatures marginales requises (3)"
-#: g10/g10.c:271
+#: g10/g10.c:275
msgid "|FILE|load extension module FILE"
msgstr "|FICH|charger le module d'extension FICH"
-#: g10/g10.c:272
+#: g10/g10.c:276
msgid "emulate the mode described in RFC1991"
msgstr "imiter le mode dИcrit dans la RFC1991"
-#: g10/g10.c:273
+#: g10/g10.c:277
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:278
msgid "|N|use passphrase mode N"
msgstr "|N|coder les mots de passe suivant le mode N"
-#: g10/g10.c:276
+#: g10/g10.c:280
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:282
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:283
msgid "|NAME|use cipher algorithm NAME"
msgstr "|NOM|utiliser l'algorithme de chiffrement NOM"
-#: g10/g10.c:280
+#: g10/g10.c:284
msgid "|NAME|use message digest algorithm NAME"
msgstr "|NOM|utiliser la fonction de hachage NOM"
-#: g10/g10.c:281
+#: g10/g10.c:285
msgid "|N|use compress algorithm N"
msgstr "|N|utiliser l'algorithme de compression N"
-#: g10/g10.c:282
+#: g10/g10.c:286
msgid "throw keyid field of encrypted packets"
msgstr "supprimer l'ident. des paquets chiffrИs"
-#: g10/g10.c:283
+#: g10/g10.c:287
msgid "|NAME=VALUE|use this notation data"
msgstr "|NOM=VALEUR|utiliser ces donnИes de notation"
-#: g10/g10.c:285
+#: g10/g10.c:289
msgid ""
"@\n"
"Examples:\n"
@@ -612,25 +615,25 @@ msgstr ""
" --list-keys [utilisateur] montrer les clИs\n"
" --fingerprint [utilisateur] montrer les empreintes\n"
-#: g10/g10.c:370
+#: g10/g10.c:376
msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
msgstr "Rapporter toutes anomalies Ю <gnupg-bugs@gnu.org>.\n"
-#: g10/g10.c:374
+#: g10/g10.c:380
msgid "Usage: gpg [options] [files] (-h for help)"
msgstr "Utilisation: gpg [options] [fichiers] (-h pour l'aide)"
-#: g10/g10.c:377
+#: g10/g10.c:383
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:388
msgid ""
"\n"
"Supported algorithms:\n"
@@ -638,184 +641,184 @@ msgstr ""
"\n"
"Algorithmes supportИs :\n"
-#: g10/g10.c:456
+#: g10/g10.c:465
msgid "usage: gpg [options] "
msgstr "utilisation: gpg [options] "
-#: g10/g10.c:509
+#: g10/g10.c:518
msgid "conflicting commands\n"
msgstr "commandes en conflit\n"
-#: g10/g10.c:644
+#: g10/g10.c:653
#, 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:657
#, c-format
msgid "option file `%s': %s\n"
msgstr "fichier d'options `%s' : %s\n"
-#: g10/g10.c:655
+#: g10/g10.c:664
#, c-format
msgid "reading options from `%s'\n"
msgstr "lire les options de `%s'\n"
-#: g10/g10.c:835
+#: g10/g10.c:844
#, 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:911 g10/g10.c:920
#, 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:913
#, 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:916
#, 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:935 g10/g10.c:947
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:941 g10/g10.c:953
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:957
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:960
#, 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:962
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:964
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:966
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:969
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:973
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:1050
#, 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:1056
msgid "--store [filename]"
msgstr "--store [nom du fichier]"
-#: g10/g10.c:1044
+#: g10/g10.c:1063
msgid "--symmetric [filename]"
msgstr "--symmetric [nom du fichier]"
-#: g10/g10.c:1052
+#: g10/g10.c:1071
msgid "--encrypt [filename]"
msgstr "--encrypt [nom du fichier]"
-#: g10/g10.c:1065
+#: g10/g10.c:1084
msgid "--sign [filename]"
msgstr "--sign [nom du fichier]"
-#: g10/g10.c:1078
+#: g10/g10.c:1097
msgid "--sign --encrypt [filename]"
msgstr "--sign --encrypt [nom du fichier]"
-#: g10/g10.c:1092
+#: g10/g10.c:1111
msgid "--clearsign [filename]"
msgstr "--clearsign [nom du fichier]"
-#: g10/g10.c:1104
+#: g10/g10.c:1123
msgid "--decrypt [filename]"
msgstr "--decrypt [nom du fichier]"
-#: g10/g10.c:1112
+#: g10/g10.c:1131
msgid "--sign-key user-id"
msgstr "--sign-key utilisateur"
-#: g10/g10.c:1120
+#: g10/g10.c:1139
msgid "--lsign-key user-id"
msgstr "--lsign-key utilisateur"
-#: g10/g10.c:1128
+#: g10/g10.c:1147
msgid "--edit-key user-id [commands]"
msgstr "--edit-key utilisateur [commandes]"
-#: g10/g10.c:1144
+#: g10/g10.c:1163
msgid "--delete-secret-key user-id"
msgstr "--delete-secret-key utilisateur"
-#: g10/g10.c:1147
+#: g10/g10.c:1166
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:1190 g10/sign.c:368
#, 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:1201
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:1262
#, c-format
msgid "dearmoring failed: %s\n"
msgstr "suppression d'armure non rИussie : %s\n"
-#: g10/g10.c:1251
+#: g10/g10.c:1270
#, c-format
msgid "enarmoring failed: %s\n"
msgstr "construction d'armure non rИussie : %s \n"
-#: g10/g10.c:1319
+#: g10/g10.c:1338
#, c-format
msgid "invalid hash algorithm `%s'\n"
msgstr "algorithme de hachage `%s' invalide\n"
-#: g10/g10.c:1400
+#: g10/g10.c:1419
msgid "[filename]"
msgstr "[nom du fichier]"
-#: g10/g10.c:1404
+#: g10/g10.c:1423
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:1426 g10/verify.c:66
#, 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:1594
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:1600
msgid ""
"a notation name must have only letters, digits, dots or underscores and end "
"with an '='\n"
@@ -824,13 +827,13 @@ msgstr ""
"des points ou des traits de soulignement et doit se terminer par un signe "
"Иgal\n"
-#: g10/g10.c:1588
+#: g10/g10.c:1606
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:1614
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"
@@ -911,20 +914,20 @@ msgstr ""
#. Translators: this shoud fit into 24 bytes to that the fingerprint
#. * data is properly aligned with the user ID
-#: g10/pkclist.c:53
+#: g10/pkclist.c:54
msgid " Fingerprint:"
msgstr " Empreinte : %lu"
-#: g10/pkclist.c:80
+#: g10/pkclist.c:81
msgid "Fingerprint:"
msgstr "Empreinte :"
#. a string with valid answers
-#: g10/pkclist.c:197
+#: g10/pkclist.c:198
msgid "sSmMqQ"
msgstr "sSmMqQ"
-#: g10/pkclist.c:201
+#: g10/pkclist.c:202
#, c-format
msgid ""
"No trust value assigned to %lu:\n"
@@ -933,7 +936,7 @@ msgstr ""
"Pas de confiance dИfinie pour %lu :\n"
"%4u%c/%08lX %s \""
-#: g10/pkclist.c:213
+#: g10/pkclist.c:214
msgid ""
"Please decide how far you trust this user to correctly\n"
"verify other users' keys (by looking at passports,\n"
@@ -957,32 +960,32 @@ msgstr ""
" 4 = je le crois totalement\n"
" s = montrez-moi plus d'informations\n"
-#: g10/pkclist.c:222
+#: g10/pkclist.c:223
msgid " m = back to the main menu\n"
msgstr " m = retour au menu principal\n"
-#: g10/pkclist.c:224
+#: g10/pkclist.c:225
msgid " q = quit\n"
msgstr " q = quitter\n"
-#: g10/pkclist.c:230
+#: g10/pkclist.c:231
msgid "Your decision? "
msgstr "Votre dИcision ? "
-#: g10/pkclist.c:252
+#: g10/pkclist.c:253
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:324
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:330
msgid ""
"No path leading to one of our keys found.\n"
"\n"
@@ -990,7 +993,7 @@ msgstr ""
"Aucun chemin menant vers une de nos clИs n'a ИtИ trouvИ.\n"
"\n"
-#: g10/pkclist.c:331
+#: g10/pkclist.c:332
msgid ""
"No certificates with undefined trust found.\n"
"\n"
@@ -998,7 +1001,7 @@ msgstr ""
"Aucun certificat Ю confiance indИfinie n'a ИtИ trouvИ.\n"
"\n"
-#: g10/pkclist.c:333
+#: g10/pkclist.c:334
msgid ""
"No trust values changed.\n"
"\n"
@@ -1006,36 +1009,36 @@ msgstr ""
"Pas d'indice de confiance changИ.\n"
"\n"
-#: g10/pkclist.c:350
+#: g10/pkclist.c:351
#, 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:357 g10/pkclist.c:367 g10/pkclist.c:476
msgid "Use this key anyway? "
msgstr "Utiliser cette clИ quand-mЙme ? "
-#: g10/pkclist.c:360
+#: g10/pkclist.c:361
#, 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:391
#, c-format
msgid "%08lX: key has expired\n"
msgstr "%08lX : la clИ a expirИ\n"
-#: g10/pkclist.c:396
+#: g10/pkclist.c:397
#, 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:411
#, 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:417
#, c-format
msgid ""
"%08lX: It is not sure that this key really belongs to the owner\n"
@@ -1044,15 +1047,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:423
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:428
msgid "This key belongs to us\n"
msgstr "Cette clИ nous appartient\n"
-#: g10/pkclist.c:470
+#: g10/pkclist.c:471
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 +1067,67 @@ msgstr ""
"oui Ю la prochaine question\n"
"\n"
-#: g10/pkclist.c:484 g10/pkclist.c:507
+#: g10/pkclist.c:485 g10/pkclist.c:508
msgid "WARNING: Using untrusted key!\n"
msgstr "ATTENTION : Utilisation d'une clИ sans confiance !\n"
-#: g10/pkclist.c:528
+#: g10/pkclist.c:529
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:530
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:534
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:555
msgid "Note: This key has expired!\n"
msgstr "Note : Cette clИ a expirИ !\n"
-#: g10/pkclist.c:562
+#: g10/pkclist.c:563
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:565
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:582
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:583
msgid " The signature is probably a FORGERY.\n"
msgstr " La signature est certainement FAUSSE.\n"
-#: g10/pkclist.c:589
+#: g10/pkclist.c:590
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:593
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:695 g10/pkclist.c:717 g10/pkclist.c:842 g10/pkclist.c:887
#, c-format
msgid "%s: skipped: %s\n"
msgstr "%s : ignorИ : %s\n"
-#: g10/pkclist.c:702 g10/pkclist.c:868
+#: g10/pkclist.c:703 g10/pkclist.c:869
#, 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:730
msgid ""
"You did not specify a user ID. (you may use \"-r\")\n"
"\n"
@@ -1133,42 +1136,42 @@ msgstr ""
"\"-r\")\n"
"\n"
-#: g10/pkclist.c:739
+#: g10/pkclist.c:740
msgid "Enter the user ID: "
msgstr "Entrez le nom d'utilisateur : "
-#: g10/pkclist.c:751
+#: g10/pkclist.c:752
msgid "No such user ID.\n"
msgstr "Pas de tel utilisateur.\n"
-#: g10/pkclist.c:756
+#: g10/pkclist.c:757
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:779
msgid "Public key is disabled.\n"
msgstr "La clИ publique est dИsactivИe.\n"
-#: g10/pkclist.c:785
+#: g10/pkclist.c:786
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:817
#, c-format
msgid "unknown default recipient `%s'\n"
msgstr "rИcipient par dИfaut `%s' inconnu\n"
-#: g10/pkclist.c:849
+#: g10/pkclist.c:850
#, 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:855
#, 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:893
msgid "no valid addressees\n"
msgstr "pas de destinataire valide\n"
@@ -1482,7 +1485,7 @@ 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:1018 g10/sig-check.c:314 g10/sign.c:106
#, c-format
msgid ""
"key has been created %lu second in future (time warp or clock problem)\n"
@@ -1490,7 +1493,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:1020 g10/sig-check.c:316 g10/sign.c:108
#, c-format
msgid ""
"key has been created %lu seconds in future (time warp or clock problem)\n"
@@ -1502,28 +1505,28 @@ msgstr ""
msgid "Really create? "
msgstr "CrИer vraiment ? "
-#: g10/encode.c:91 g10/openfile.c:156 g10/openfile.c:246 g10/tdbio.c:468
+#: g10/encode.c:91 g10/openfile.c:163 g10/openfile.c:272 g10/tdbio.c:468
#: g10/tdbio.c:529
#, 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"
@@ -1672,7 +1675,7 @@ msgstr "clИ %08lX : clИ publique pas trouvИe: %s\n"
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:399 g10/openfile.c:215 g10/sign.c:269 g10/sign.c:582
#, c-format
msgid "writing to `%s'\n"
msgstr "Иcriture de `%s'\n"
@@ -1680,7 +1683,7 @@ msgstr "Иcriture de `%s'\n"
#: g10/import.c:402 g10/import.c:460 g10/import.c:569 g10/import.c:670
#, 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
#, c-format
@@ -1700,12 +1703,12 @@ msgstr "clИ %08lX : ne ressemble pas Ю notre copie\n"
#: g10/import.c:436 g10/import.c:629
#, 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
#, 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
#, c-format
@@ -1762,8 +1765,8 @@ msgstr "clИ %08lX : clИ secrХte pas trouvИe: %s\n"
#, 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
#, c-format
@@ -1844,7 +1847,7 @@ msgstr "clИ %08lX: nom d'utilisateur doublon fusionnИ\n"
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:1128 g10/import.c:1181
#, c-format
msgid "key %08lX: our copy has no self-signature\n"
msgstr "clИ %08lX : notre copie n'a pas d'auto-signature\n"
@@ -1930,7 +1933,7 @@ msgstr ""
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:370 g10/keyedit.c:1832 g10/keyedit.c:1881 g10/sign.c:129
#, c-format
msgid "signing failed: %s\n"
msgstr "la signature a ИchouИ : %s\n"
@@ -1946,7 +1949,7 @@ msgstr "La clИ est protИgИe.\n"
#: g10/keyedit.c:443
#, 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
msgid ""
@@ -2366,28 +2369,22 @@ msgstr "GИnИrer un certificat de rИvocation pour cette signature ? (o/N)"
#. FIXME: detect duplicates here
#: g10/keyedit.c:1740
-#, fuzzy
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
+#, 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
+#, 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
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
msgid "Really create the revocation certificates? (y/N)"
@@ -2425,89 +2422,89 @@ msgstr "aucune clИ secrХte n'est disponible pour le dИchiffrement\n"
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:332
msgid "decryption okay\n"
msgstr "le dИchiffrement a rИussi\n"
-#: g10/mainproc.c:335
+#: g10/mainproc.c:337
msgid "WARNING: encrypted message has been manipulated!\n"
msgstr "ATTENTION: le message chiffrИ a ИtИ manipulИ !\n"
-#: g10/mainproc.c:340
+#: g10/mainproc.c:342
#, c-format
msgid "decryption failed: %s\n"
msgstr "le dИchiffrement a ИchouИ : %s\n"
-#: g10/mainproc.c:358
+#: g10/mainproc.c:360
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:362
#, 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:596 g10/mainproc.c:605
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:608
msgid "Notation: "
msgstr "Notation : "
-#: g10/mainproc.c:606
+#: g10/mainproc.c:615
msgid "Policy: "
msgstr "Politique : "
-#: g10/mainproc.c:1025
+#: g10/mainproc.c:1034
msgid "signature verification suppressed\n"
msgstr "vИrification de signature supprimИe\n"
-#: g10/mainproc.c:1031
+#: g10/mainproc.c:1039
#, 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:1066 g10/mainproc.c:1077
msgid "BAD signature from \""
msgstr "MAUVAISE signature de \""
-#: g10/mainproc.c:1058 g10/mainproc.c:1069
+#: g10/mainproc.c:1067 g10/mainproc.c:1078
msgid "Good signature from \""
msgstr "Bonne signature de \""
-#: g10/mainproc.c:1060
+#: g10/mainproc.c:1069
msgid " aka \""
msgstr " alias \""
-#: g10/mainproc.c:1115
+#: g10/mainproc.c:1124
#, 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:1225
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:1230
msgid "invalid root packet detected in proc_tree()\n"
msgstr "paquet racine invalide dИtectИ dans proc_tree()\n"
-#: g10/misc.c:94
+#: g10/misc.c:95
#, 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
+#: g10/misc.c:98
msgid "WARNING: program may create a core file!\n"
msgstr "ATTENTION : Le programme peut crИer un fichier ╚ core ╩ !\n"
-#: g10/misc.c:205
+#: g10/misc.c:206
msgid "Experimental algorithms should not be used!\n"
msgstr "Les algorithmes expИrimentaux ne devraient pas Йtre utilisИs !\n"
-#: g10/misc.c:219
+#: g10/misc.c:220
msgid ""
"RSA keys are deprecated; please consider creating a new key and use this key "
"in the future\n"
@@ -2515,7 +2512,7 @@ msgstr ""
"Les clИs RSA sont dИconseillИes : considИrez crИer une nouvelle clИ\n"
"et l'utiliser dans l'avenir\n"
-#: g10/misc.c:241
+#: g10/misc.c:242
msgid "this cipher algorithm is depreciated; please use a more standard one!\n"
msgstr ""
"Cet algorithme de chiffrement est dИconseillИ ; utilisez-en un\n"
@@ -2524,7 +2521,7 @@ msgstr ""
#: g10/parse-packet.c:113
#, 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
#, c-format
@@ -2541,7 +2538,7 @@ msgstr ""
"Vous avez besoin d'un mot de passe pour dИverrouiller la clИ secrХte pour\n"
"l'utilisateur: \""
-#: g10/passphrase.c:168
+#: g10/passphrase.c:167
#, c-format
msgid "%u-bit %s key, ID %08lX, created %s"
msgstr "clИ de %u bits %s, ID %08lX, crИИe le %s"
@@ -2569,6 +2566,11 @@ msgstr ""
"donnИes non enregistrИes ; utilisez l'option \"--output\" pour\n"
"les enregistrer\n"
+#: g10/plaintext.c:311
+#, fuzzy
+msgid "Detached signature.\n"
+msgstr "%d signature supprimИe.\n"
+
#: g10/plaintext.c:315
msgid "Please enter name of data file: "
msgstr "Entrez le nom d'un fichier de donnИes : "
@@ -2580,98 +2582,98 @@ msgstr "lecture de l'entrИe standard...\n"
#: g10/plaintext.c:379
#, 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
+#: g10/pubkey-enc.c:80
#, c-format
msgid "anonymous receiver; trying secret key %08lX ...\n"
msgstr "destinataire anonyme ; essai de la clИ secrХte %08lX ...\n"
-#: g10/pubkey-enc.c:85
+#: g10/pubkey-enc.c:86
msgid "okay, we are the anonymous recipient.\n"
msgstr "d'accord, nous sommes le rИcipient anonyme.\n"
-#: g10/pubkey-enc.c:137
+#: g10/pubkey-enc.c:138
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:192
#, 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/seckey-cert.c:56
#, 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:181
msgid "Invalid passphrase; please try again ...\n"
msgstr "Mot de passe invalide ; rИessayez...\n"
-#: g10/seckey-cert.c:227
+#: g10/seckey-cert.c:246
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:201
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:297
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:305
#, 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:306
#, 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:322
#, 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:379
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:133
#, 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:264 g10/sign.c:577
#, 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:363
msgid "signing:"
msgstr "signature :"
-#: g10/sign.c:404
+#: g10/sign.c:406
#, 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:129
#, 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:198
#, c-format
msgid "input line longer than %d characters\n"
msgstr "la ligne d'entrИe est plus longue que %d caractХres\n"
@@ -2695,12 +2697,12 @@ msgstr "transaction de base de confiance trop volumineuse\n"
#: g10/tdbio.c:429
#, c-format
msgid "%s: can't access: %s\n"
-msgstr "%s : ne peut accИder : %s\n"
+msgstr "%s : impossible d'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"
+msgstr "%s : impossible de crИer le rИpertoire : %s\n"
#: g10/ringedit.c:304 g10/tdbio.c:448
#, c-format
@@ -2712,20 +2714,20 @@ msgstr "%s : rИpertoire crИИ\n"
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:211 g10/openfile.c:279 g10/ringedit.c:1350 g10/tdbio.c:458
#, 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
#, 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
#, 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
#, c-format
@@ -2809,7 +2811,7 @@ msgstr "%s : n'a pu mettre un enregistrement Ю zИro : %s\n"
#: g10/tdbio.c:1649
#, 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
msgid "the trustdb is corrupted; please run \"gpg --fix-trustdb\".\n"
@@ -2882,7 +2884,7 @@ msgstr "clИ %08lX : les clИs secrХte et publique ne correspondent pas\n"
#: g10/trustdb.c:485
#, 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
#, c-format
@@ -3097,7 +3099,7 @@ msgstr "l'utilisateur '%s' n'est pas dans la base de confiance - insertion\n"
#: g10/trustdb.c:2370
#, 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
msgid "WARNING: can't yet handle long pref records\n"
@@ -3108,29 +3110,29 @@ msgstr ""
#: g10/ringedit.c:318
#, 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:335 g10/ringedit.c:1355
#, c-format
msgid "%s: keyring created\n"
msgstr "%s : porte-clИs crИИ\n"
-#: g10/ringedit.c:1530
+#: g10/ringedit.c:1532
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:1533
#, c-format
msgid "%s is the unchanged one\n"
msgstr "%s est le fichier original\n"
-#: g10/ringedit.c:1532
+#: g10/ringedit.c:1534
#, c-format
msgid "%s is the new one\n"
msgstr "%s est le nouveau\n"
-#: g10/ringedit.c:1533
+#: g10/ringedit.c:1535
msgid "Please fix this possible security flaw\n"
msgstr "RИparez ce problХme de sИcuritИ possible\n"
@@ -3155,88 +3157,85 @@ msgstr ""
"sШre pour les signatures !\n"
#. do not overwrite
-#: g10/openfile.c:65
+#: g10/openfile.c:73
#, c-format
msgid "File `%s' exists. "
msgstr "Le fichier `%s' existe. "
-#: g10/openfile.c:67
+#: g10/openfile.c:75
msgid "Overwrite (y/N)? "
msgstr "RИИcrire (o/N)? "
-#: g10/openfile.c:97
+#: g10/openfile.c:104
#, c-format
msgid "%s: unknown suffix\n"
msgstr "%s : suffixe inconnu\n"
-#: g10/openfile.c:119
+#: g10/openfile.c:126
msgid "Enter new filename"
msgstr "Entrez le nouveau nom de fichier"
-#: g10/openfile.c:160
+#: g10/openfile.c:167
msgid "writing to stdout\n"
msgstr "Иcriture vers la sortie standard\n"
-#: g10/openfile.c:219
+#: g10/openfile.c:245
#, 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:295
#, c-format
msgid "%s: new options file created\n"
msgstr "%s : nouveau fichier d'options crИИ\n"
#: g10/encr-data.c:66
#, c-format
-msgid "%s encrypted data\n"
-msgstr "donnИes chiffrИes avec %s\n"
-
-#: g10/encr-data.c:68
-#, c-format
msgid "encrypted with unknown algorithm %d\n"
msgstr "chiffrИ avec l'algorithme inconnu %d\n"
-#: g10/encr-data.c:85
+#: g10/encr-data.c:71
+#, c-format
+msgid "%s encrypted data\n"
+msgstr "donnИes chiffrИes avec %s\n"
+
+#: g10/encr-data.c:101
msgid ""
"WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
msgstr ""
"ATTENTION : Le message a ИtИ chiffrИ avec une clИ faible pendant le\n"
"chiffrement symИtrique.\n"
-#: g10/seskey.c:52
+#: g10/seskey.c:63
msgid "weak key created - retrying\n"
msgstr "clИ faible gИnИrИe - nouvel essai\n"
-#: g10/seskey.c:57
+#: g10/seskey.c:68
#, 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
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
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
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
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
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 +3297,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,8 +3451,8 @@ 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:237
msgid "No help available"
@@ -3463,3 +3462,29 @@ msgstr "Pas d'aide disponible"
#, c-format
msgid "No help available for `%s'"
msgstr "Pas d'aide disponible pour `%s'"
+
+#~ msgid "not processed"
+#~ msgstr "non traitИ"
+
+#~ msgid "standalone revocation - use \"gpg --import\" to apply\n"
+#~ msgstr "rИvocation autonome - utilisez ╚ gpg --import ╩ pour l'appliquer\n"
+
+#~ msgid "standalone signature of class 0x%02x\n"
+#~ msgstr "signature autonome de classe 0x%02x\n"
+
+#~ msgid "\t%lu due to new pubkeys\n"
+#~ msgstr "\t%lu Ю cause de nouvelles clИs publiques\n"
+
+#~ 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"
+
+#~ 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"
diff --git a/po/it.po b/po/it.po
index 744110ff5..9c2dd6a1e 100644
--- a/po/it.po
+++ b/po/it.po
@@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: gnupg-1.0.0\n"
-"POT-Creation-Date: 1999-09-05 19:21+0200\n"
+"POT-Creation-Date: 1999-10-26 13:53+0200\n"
"PO-Revision-Date: 1999-09-09 15:51+02:00\n"
"Last-Translator: Marco d'Itri <md@linux.it>\n"
"Language-Team: Italian <it@li.org>\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:281
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:282
msgid "(you may have used the wrong program for this task)\n"
msgstr "(potresti avere usato il programma sbagliato per questa funzione)\n"
@@ -282,7 +282,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:186
msgid ""
"@Commands:\n"
" "
@@ -290,135 +290,135 @@ msgstr ""
"@Comandi:\n"
" "
-#: g10/g10.c:187
+#: g10/g10.c:188
msgid "|[file]|make a signature"
msgstr "|[file]|fai una firma"
-#: g10/g10.c:188
+#: g10/g10.c:189
msgid "|[file]|make a clear text signature"
msgstr "|[file]|fai una firma mantenendo il testo in chiaro"
-#: g10/g10.c:189
+#: g10/g10.c:190
msgid "make a detached signature"
msgstr "fai una firma separata"
-#: g10/g10.c:190
+#: g10/g10.c:191
msgid "encrypt data"
msgstr "cifra dati"
-#: g10/g10.c:191
+#: g10/g10.c:192
msgid "encryption only with symmetric cipher"
msgstr "cifra solo con un cifrario simmetrico"
-#: g10/g10.c:192
+#: g10/g10.c:193
msgid "store only"
msgstr "immagazzina soltanto"
-#: g10/g10.c:193
+#: g10/g10.c:194
msgid "decrypt data (default)"
msgstr "decifra dati (predefinito)"
-#: g10/g10.c:194
+#: g10/g10.c:195
msgid "verify a signature"
msgstr "verifica una firma"
-#: g10/g10.c:195
+#: g10/g10.c:196
msgid "list keys"
msgstr "elenca le chiavi"
-#: g10/g10.c:197
+#: g10/g10.c:198
msgid "list keys and signatures"
msgstr "elenca le chiavi e le firme"
-#: g10/g10.c:198
+#: g10/g10.c:199
msgid "check key signatures"
msgstr "controlla le firme delle chiavi"
-#: g10/g10.c:199
+#: g10/g10.c:200
msgid "list keys and fingerprints"
msgstr "elenca le chiavi e le impronte digitali"
-#: g10/g10.c:200
+#: g10/g10.c:201
msgid "list secret keys"
msgstr "elenca le chiavi segrete"
-#: g10/g10.c:201
+#: g10/g10.c:202
msgid "generate a new key pair"
msgstr "genera una nuova coppia di chiavi"
-#: g10/g10.c:202
+#: g10/g10.c:203
msgid "remove key from the public keyring"
msgstr "rimuove una chiave dal portachiavi pubblico"
-#: g10/g10.c:203
+#: g10/g10.c:204
msgid "sign a key"
msgstr "firma una chiave"
-#: g10/g10.c:204
+#: g10/g10.c:205
msgid "sign a key locally"
msgstr "firma localmente una chiave"
-#: g10/g10.c:205
+#: g10/g10.c:206
msgid "sign or edit a key"
msgstr "firma o modifica una chiave"
-#: g10/g10.c:206
+#: g10/g10.c:207
msgid "generate a revocation certificate"
msgstr "genera un certificato di revoca"
-#: g10/g10.c:207
+#: g10/g10.c:208
msgid "export keys"
msgstr "esporta delle chiavi"
-#: g10/g10.c:208
+#: g10/g10.c:209
msgid "export keys to a key server"
msgstr "esporta le chiavi a un key server"
-#: g10/g10.c:209
+#: g10/g10.c:210
msgid "import keys from a key server"
msgstr "importa le chiavi da un key server"
-#: g10/g10.c:212
+#: g10/g10.c:213
msgid "import/merge keys"
msgstr "importa/aggiungi delle chiavi"
-#: g10/g10.c:214
+#: g10/g10.c:215
msgid "list only the sequence of packets"
msgstr "elenca solo la sequenza dei pacchetti"
-#: g10/g10.c:216
+#: g10/g10.c:217
msgid "export the ownertrust values"
msgstr "esporta i valori di fiducia"
-#: g10/g10.c:218
+#: g10/g10.c:219
msgid "import ownertrust values"
msgstr "importa i valori di fiducia"
-#: g10/g10.c:220
+#: g10/g10.c:221
msgid "update the trust database"
msgstr "aggiorna il database della fiducia"
-#: g10/g10.c:222
+#: g10/g10.c:223
msgid "|[NAMES]|check the trust database"
msgstr "|[NOMI]|controlla il database della fiducia"
-#: g10/g10.c:223
+#: g10/g10.c:224
msgid "fix a corrupted trust database"
msgstr "ripara un database della fiducia rovinato"
-#: g10/g10.c:224
+#: g10/g10.c:225
msgid "De-Armor a file or stdin"
msgstr "rimuovi l'armatura a un file o a stdin"
-#: g10/g10.c:225
+#: g10/g10.c:227
msgid "En-Armor a file or stdin"
msgstr "crea l'armatura a un file o a stdin"
-#: g10/g10.c:226
+#: g10/g10.c:229
msgid "|algo [files]|print message digests"
msgstr "|algo [files]|stampa tutti i message digests"
-#: g10/g10.c:230
+#: g10/g10.c:233
msgid ""
"@\n"
"Options:\n"
@@ -428,170 +428,170 @@ msgstr ""
"Opzioni:\n"
" "
-#: g10/g10.c:232
+#: g10/g10.c:235
msgid "create ascii armored output"
msgstr "crea un output ascii con armatura"
-#: g10/g10.c:233
+#: g10/g10.c:237
msgid "|NAME|encrypt for NAME"
msgstr "|NOME|cifra per NOME"
-#: g10/g10.c:236
+#: g10/g10.c:240
msgid "|NAME|use NAME as default recipient"
msgstr "|NOME|usa NOME come destinatario predefinito"
-#: g10/g10.c:238
+#: g10/g10.c:242
msgid "use the default key as default recipient"
msgstr "usa la chiave predefinita come destinatario predefinito"
-#: g10/g10.c:242
+#: g10/g10.c:246
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:247
msgid "|N|set compress level N (0 disables)"
msgstr "|N|imposta il livello di compressione (0 disab.)"
-#: g10/g10.c:245
+#: g10/g10.c:249
msgid "use canonical text mode"
msgstr "usa il modo testo canonico"
-#: g10/g10.c:246
+#: g10/g10.c:250
msgid "use as output file"
msgstr "usa come file di output"
-#: g10/g10.c:247
+#: g10/g10.c:251
msgid "verbose"
msgstr "prolisso"
-#: g10/g10.c:248
+#: g10/g10.c:252
msgid "be somewhat more quiet"
msgstr "meno prolisso"
-#: g10/g10.c:249
+#: g10/g10.c:253
msgid "don't use the terminal at all"
msgstr "non usa per niente il terminale"
-#: g10/g10.c:250
+#: g10/g10.c:254
msgid "force v3 signatures"
msgstr "forza l'uso di firme v3"
-#: g10/g10.c:251
+#: g10/g10.c:255
msgid "always use a MDC for encryption"
msgstr "usa sempre un MDC per cifrare"
-#: g10/g10.c:252
+#: g10/g10.c:256
msgid "do not make any changes"
msgstr "non fa cambiamenti"
#. { oInteractive, "interactive", 0, N_("prompt before overwriting") },
-#: g10/g10.c:254
+#: g10/g10.c:258
msgid "batch mode: never ask"
msgstr "modo batch: non fa domande"
-#: g10/g10.c:255
+#: g10/g10.c:259
msgid "assume yes on most questions"
msgstr "assumi \"sЛ\" per quasi tutte le domande"
-#: g10/g10.c:256
+#: g10/g10.c:260
msgid "assume no on most questions"
msgstr "assumi \"no\" per quasi tutte le domande"
-#: g10/g10.c:257
+#: g10/g10.c:261
msgid "add this keyring to the list of keyrings"
msgstr "aggiungi questo portachiavi alla lista"
-#: g10/g10.c:258
+#: g10/g10.c:262
msgid "add this secret keyring to the list"
msgstr "aggiungi questo portachiavi segreto alla lista"
-#: g10/g10.c:259
+#: g10/g10.c:263
msgid "|NAME|use NAME as default secret key"
msgstr "|NOME|usa NOME come chiave segreta predefinita"
-#: g10/g10.c:260
+#: g10/g10.c:264
msgid "|HOST|use this keyserver to lookup keys"
msgstr "|HOST|cerca le chiavi in questo keyserver"
-#: g10/g10.c:261
+#: g10/g10.c:265
msgid "|NAME|set terminal charset to NAME"
msgstr "|NOME|imposta il set di caratteri del terminale NOME"
-#: g10/g10.c:262
+#: g10/g10.c:266
msgid "read options from file"
msgstr "leggi le opzioni dal file"
-#: g10/g10.c:264
+#: g10/g10.c:268
msgid "set debugging flags"
msgstr "imposta i flag di debugging"
-#: g10/g10.c:265
+#: g10/g10.c:269
msgid "enable full debugging"
msgstr "abilita il debugging completo"
-#: g10/g10.c:266
+#: g10/g10.c:270
msgid "|FD|write status info to this FD"
msgstr "|FD|scrivi le informazioni di stato su questo FD"
-#: g10/g10.c:267
+#: g10/g10.c:271
msgid "do not write comment packets"
msgstr "non scrivere pacchetti di commento"
-#: g10/g10.c:268
+#: g10/g10.c:272
msgid "(default is 1)"
msgstr "(predefinito Х 1)"
-#: g10/g10.c:269
+#: g10/g10.c:273
msgid "(default is 3)"
msgstr "(predefinito Х 3)"
-#: g10/g10.c:271
+#: g10/g10.c:275
msgid "|FILE|load extension module FILE"
msgstr "|FILE|carica il modulo di estensione FILE"
-#: g10/g10.c:272
+#: g10/g10.c:276
msgid "emulate the mode described in RFC1991"
msgstr "emula il modo descritto in RFC 1991"
-#: g10/g10.c:273
+#: g10/g10.c:277
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:278
msgid "|N|use passphrase mode N"
msgstr "|N|usa il modo N per la passphrase"
-#: g10/g10.c:276
+#: g10/g10.c:280
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:282
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:283
msgid "|NAME|use cipher algorithm NAME"
msgstr "|NOME|usa l'algoritmo di cifratura NOME"
-#: g10/g10.c:280
+#: g10/g10.c:284
msgid "|NAME|use message digest algorithm NAME"
msgstr "|NOME|usa l'algoritmo di message digest NOME"
-#: g10/g10.c:281
+#: g10/g10.c:285
msgid "|N|use compress algorithm N"
msgstr "|N|usa l'algoritmo di compressione N"
-#: g10/g10.c:282
+#: g10/g10.c:286
msgid "throw keyid field of encrypted packets"
msgstr "elimina il campo keyid dei pacchetti cifrati"
-#: g10/g10.c:283
+#: g10/g10.c:287
msgid "|NAME=VALUE|use this notation data"
msgstr "|NOME=VALORE|usa questi dati per una nota"
-#: g10/g10.c:285
+#: g10/g10.c:289
msgid ""
"@\n"
"Examples:\n"
@@ -611,15 +611,15 @@ msgstr ""
" --list-keys [nomi] mostra le chiavi\n"
" --fingerprint [nomi] mostra le impronte digitali\n"
-#: g10/g10.c:370
+#: g10/g10.c:376
msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
msgstr "Per favore segnala i bug a <gnupg-bugs@gnu.org>.\n"
-#: g10/g10.c:374
+#: g10/g10.c:380
msgid "Usage: gpg [options] [files] (-h for help)"
msgstr "Uso: gpg [opzioni] [files] (-h per l'aiuto)"
-#: g10/g10.c:377
+#: g10/g10.c:383
msgid ""
"Syntax: gpg [options] [files]\n"
"sign, check, encrypt or decrypt\n"
@@ -629,7 +629,7 @@ msgstr ""
"firma, controlla, cifra o decifra\n"
"l'operazione predefinita dipende dai dati di input\n"
-#: g10/g10.c:382
+#: g10/g10.c:388
msgid ""
"\n"
"Supported algorithms:\n"
@@ -637,184 +637,184 @@ msgstr ""
"\n"
"Algoritmi gestiti:\n"
-#: g10/g10.c:456
+#: g10/g10.c:465
msgid "usage: gpg [options] "
msgstr "uso: gpg [opzioni] "
-#: g10/g10.c:509
+#: g10/g10.c:518
msgid "conflicting commands\n"
msgstr "comandi in conflitto\n"
-#: g10/g10.c:644
+#: g10/g10.c:653
#, 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:657
#, c-format
msgid "option file `%s': %s\n"
msgstr "file con le opzioni `%s': %s\n"
-#: g10/g10.c:655
+#: g10/g10.c:664
#, c-format
msgid "reading options from `%s'\n"
msgstr "lettura delle opzioni da `%s'\n"
-#: g10/g10.c:835
+#: g10/g10.c:844
#, 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:911 g10/g10.c:920
#, 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:913
#, c-format
msgid "%s not allowed with %s!\n"
msgstr "Non Х permesso usare %s con %s!\n"
-#: g10/g10.c:897
+#: g10/g10.c:916
#, 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:935 g10/g10.c:947
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:941 g10/g10.c:953
msgid "selected digest algorithm is invalid\n"
msgstr "l'algoritmo di digest selezionato non Х valido\n"
-#: g10/g10.c:938
+#: g10/g10.c:957
msgid "the given policy URL is invalid\n"
msgstr "L'URL della policy indicato non Х valido\n"
-#: g10/g10.c:941
+#: g10/g10.c:960
#, 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:962
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:964
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:966
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:969
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:973
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:1050
#, c-format
msgid "failed to initialize the TrustDB: %s\n"
msgstr "inizializzazione del trustdb fallita: %s\n"
-#: g10/g10.c:1037
+#: g10/g10.c:1056
msgid "--store [filename]"
msgstr "--store [nomefile]"
-#: g10/g10.c:1044
+#: g10/g10.c:1063
msgid "--symmetric [filename]"
msgstr "--symmetric [nomefile]"
-#: g10/g10.c:1052
+#: g10/g10.c:1071
msgid "--encrypt [filename]"
msgstr "--encrypt [nomefile]"
-#: g10/g10.c:1065
+#: g10/g10.c:1084
msgid "--sign [filename]"
msgstr "--sign [nomefile]"
-#: g10/g10.c:1078
+#: g10/g10.c:1097
msgid "--sign --encrypt [filename]"
msgstr "--sign --encrypt [nomefile]"
-#: g10/g10.c:1092
+#: g10/g10.c:1111
msgid "--clearsign [filename]"
msgstr "--clearsign [nomefile]"
-#: g10/g10.c:1104
+#: g10/g10.c:1123
msgid "--decrypt [filename]"
msgstr "--decrypt [nomefile]"
-#: g10/g10.c:1112
+#: g10/g10.c:1131
msgid "--sign-key user-id"
msgstr "--sign-key user-id"
-#: g10/g10.c:1120
+#: g10/g10.c:1139
msgid "--lsign-key user-id"
msgstr "--lsign-key user-id"
-#: g10/g10.c:1128
+#: g10/g10.c:1147
msgid "--edit-key user-id [commands]"
msgstr "--edit-key user-id [comandi]"
-#: g10/g10.c:1144
+#: g10/g10.c:1163
msgid "--delete-secret-key user-id"
msgstr "--delete-secret-key user-id"
-#: g10/g10.c:1147
+#: g10/g10.c:1166
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:1190 g10/sign.c:368
#, c-format
msgid "can't open %s: %s\n"
msgstr "impossibile aprire `%s': %s\n"
-#: g10/g10.c:1182
+#: g10/g10.c:1201
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:1262
#, c-format
msgid "dearmoring failed: %s\n"
msgstr "rimozione dell'armatura fallita: %s\n"
-#: g10/g10.c:1251
+#: g10/g10.c:1270
#, c-format
msgid "enarmoring failed: %s\n"
msgstr "creazione dell'armatura fallita: %s\n"
-#: g10/g10.c:1319
+#: g10/g10.c:1338
#, c-format
msgid "invalid hash algorithm `%s'\n"
msgstr "algoritmo di hash non valido `%s'\n"
-#: g10/g10.c:1400
+#: g10/g10.c:1419
msgid "[filename]"
msgstr "[nomefile]"
-#: g10/g10.c:1404
+#: g10/g10.c:1423
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:1426 g10/verify.c:66
#, c-format
msgid "can't open `%s'\n"
msgstr "impossibile aprire `%s'\n"
-#: g10/g10.c:1576
+#: g10/g10.c:1594
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:1600
msgid ""
"a notation name must have only letters, digits, dots or underscores and end "
"with an '='\n"
@@ -822,11 +822,11 @@ 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:1606
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:1614
msgid "a notation value must not use any control characters\n"
msgstr "il valore di una nota non deve usare caratteri di controllo\n"
@@ -907,22 +907,22 @@ msgstr ""
#. Translators: this shoud fit into 24 bytes to that the fingerprint
#. * data is properly aligned with the user ID
-#: g10/pkclist.c:53
+#: g10/pkclist.c:54
msgid " Fingerprint:"
msgstr " Impronta digitale:"
-#: g10/pkclist.c:80
+#: g10/pkclist.c:81
msgid "Fingerprint:"
msgstr "Impronta digitale:"
# 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:198
msgid "sSmMqQ"
msgstr "sSmMqQ"
-#: g10/pkclist.c:201
+#: g10/pkclist.c:202
#, c-format
msgid ""
"No trust value assigned to %lu:\n"
@@ -931,7 +931,7 @@ msgstr ""
"Nessun valore di fiducia assegnato a %lu:\n"
"%4u%c/%08lX %s \""
-#: g10/pkclist.c:213
+#: g10/pkclist.c:214
msgid ""
"Please decide how far you trust this user to correctly\n"
"verify other users' keys (by looking at passports,\n"
@@ -953,23 +953,23 @@ msgstr ""
" 4 = Mi fido completamente\n"
" s = mostrami ulteriori informazioni\n"
-#: g10/pkclist.c:222
+#: g10/pkclist.c:223
msgid " m = back to the main menu\n"
msgstr " m = torna al menЫ principale\n"
-#: g10/pkclist.c:224
+#: g10/pkclist.c:225
msgid " q = quit\n"
msgstr " q = abbandona\n"
-#: g10/pkclist.c:230
+#: g10/pkclist.c:231
msgid "Your decision? "
msgstr "Cosa hai deciso? "
-#: g10/pkclist.c:252
+#: g10/pkclist.c:253
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:324
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 +979,20 @@ msgstr ""
"se possiamo assegnare qualche valore di fiducia del proprietario mancante.\n"
"\n"
-#: g10/pkclist.c:329
+#: g10/pkclist.c:330
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:332
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:334
msgid ""
"No trust values changed.\n"
"\n"
@@ -1000,36 +1000,36 @@ msgstr ""
"Nessun valore di fiducia modificato.\n"
"\n"
-#: g10/pkclist.c:350
+#: g10/pkclist.c:351
#, 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:357 g10/pkclist.c:367 g10/pkclist.c:476
msgid "Use this key anyway? "
msgstr "Uso lo stesso questa chiave? "
-#: g10/pkclist.c:360
+#: g10/pkclist.c:361
#, 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:391
#, c-format
msgid "%08lX: key has expired\n"
msgstr "%08lX: la chiave Х scaduta\n"
-#: g10/pkclist.c:396
+#: g10/pkclist.c:397
#, 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:411
#, 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:417
#, c-format
msgid ""
"%08lX: It is not sure that this key really belongs to the owner\n"
@@ -1038,15 +1038,15 @@ msgstr ""
"%08lX: Non Х sicuro che questa chiave appartenga veramente al proprietario\n"
"ma Х accettata comunque\n"
-#: g10/pkclist.c:422
+#: g10/pkclist.c:423
msgid "This key probably belongs to the owner\n"
msgstr "Questa chiave probabilmente appartiene al proprietario\n"
-#: g10/pkclist.c:427
+#: g10/pkclist.c:428
msgid "This key belongs to us\n"
msgstr "Questa chiave ci appartiene\n"
-#: g10/pkclist.c:470
+#: g10/pkclist.c:471
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 +1058,65 @@ msgstr ""
"prossima domanda.\n"
"\n"
-#: g10/pkclist.c:484 g10/pkclist.c:507
+#: g10/pkclist.c:485 g10/pkclist.c:508
msgid "WARNING: Using untrusted key!\n"
msgstr "ATTENZIONE: uso di una chiave non fidata!\n"
-#: g10/pkclist.c:528
+#: g10/pkclist.c:529
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:530
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:534
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:555
msgid "Note: This key has expired!\n"
msgstr "Nota: questa chiave Х scaduta!\n"
-#: g10/pkclist.c:562
+#: g10/pkclist.c:563
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:565
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:582
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:583
msgid " The signature is probably a FORGERY.\n"
msgstr " La firma Х probabilmente un FALSO.\n"
-#: g10/pkclist.c:589
+#: g10/pkclist.c:590
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:593
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:695 g10/pkclist.c:717 g10/pkclist.c:842 g10/pkclist.c:887
#, c-format
msgid "%s: skipped: %s\n"
msgstr "%s: saltata: %s\n"
-#: g10/pkclist.c:702 g10/pkclist.c:868
+#: g10/pkclist.c:703 g10/pkclist.c:869
#, 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:730
msgid ""
"You did not specify a user ID. (you may use \"-r\")\n"
"\n"
@@ -1124,42 +1124,42 @@ msgstr ""
"Non hai specificato un user ID. (puoi usare \"-r\")\n"
"\n"
-#: g10/pkclist.c:739
+#: g10/pkclist.c:740
msgid "Enter the user ID: "
msgstr "Inserisci l'user ID: "
-#: g10/pkclist.c:751
+#: g10/pkclist.c:752
msgid "No such user ID.\n"
msgstr "User ID inesistente.\n"
-#: g10/pkclist.c:756
+#: g10/pkclist.c:757
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:779
msgid "Public key is disabled.\n"
msgstr "La chiave pubblica Х disabilitata.\n"
-#: g10/pkclist.c:785
+#: g10/pkclist.c:786
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:817
#, c-format
msgid "unknown default recipient `%s'\n"
msgstr "destinatario predefinito `%s' sconosciuto\n"
-#: g10/pkclist.c:849
+#: g10/pkclist.c:850
#, 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:855
#, c-format
msgid "%s: skipped: public key is disabled\n"
msgstr "%s: saltato: chiave pubblica disabilitata\n"
-#: g10/pkclist.c:892
+#: g10/pkclist.c:893
msgid "no valid addressees\n"
msgstr "nessun indirizzo valido\n"
@@ -1470,7 +1470,7 @@ msgstr ""
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:1018 g10/sig-check.c:314 g10/sign.c:106
#, c-format
msgid ""
"key has been created %lu second in future (time warp or clock problem)\n"
@@ -1478,7 +1478,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:1020 g10/sig-check.c:316 g10/sign.c:108
#, c-format
msgid ""
"key has been created %lu seconds in future (time warp or clock problem)\n"
@@ -1490,7 +1490,7 @@ msgstr ""
msgid "Really create? "
msgstr "Crea davvero? "
-#: g10/encode.c:91 g10/openfile.c:156 g10/openfile.c:246 g10/tdbio.c:468
+#: g10/encode.c:91 g10/openfile.c:163 g10/openfile.c:272 g10/tdbio.c:468
#: g10/tdbio.c:529
#, c-format
msgid "%s: can't open: %s\n"
@@ -1501,17 +1501,17 @@ 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"
@@ -1658,7 +1658,7 @@ msgstr "chiave %08lX: chiave pubblica non trovata: %s\n"
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:399 g10/openfile.c:215 g10/sign.c:269 g10/sign.c:582
#, c-format
msgid "writing to `%s'\n"
msgstr "scrittura in `%s'\n"
@@ -1830,7 +1830,7 @@ msgstr "chiave %08lX: trovato un user ID duplicato - unito\n"
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:1128 g10/import.c:1181
#, c-format
msgid "key %08lX: our copy has no self-signature\n"
msgstr "chiave %08lX: la nostra copia non ha autofirma\n"
@@ -1916,7 +1916,7 @@ msgstr ""
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:370 g10/keyedit.c:1832 g10/keyedit.c:1881 g10/sign.c:129
#, c-format
msgid "signing failed: %s\n"
msgstr "firma fallita: %s\n"
@@ -2404,89 +2404,89 @@ msgstr "nessuna chiave disponibile per decifrare\n"
msgid "public key decryption failed: %s\n"
msgstr "decifratura della chiave pubblica fallita: %s\n"
-#: g10/mainproc.c:330
+#: g10/mainproc.c:332
msgid "decryption okay\n"
msgstr "decifratura corretta\n"
-#: g10/mainproc.c:335
+#: g10/mainproc.c:337
msgid "WARNING: encrypted message has been manipulated!\n"
msgstr "ATTENZIONE: il messaggio cifrato Х stato manipolato!\n"
-#: g10/mainproc.c:340
+#: g10/mainproc.c:342
#, c-format
msgid "decryption failed: %s\n"
msgstr "decifratura fallita: %s\n"
-#: g10/mainproc.c:358
+#: g10/mainproc.c:360
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:362
#, 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:596 g10/mainproc.c:605
msgid "WARNING: invalid notation data found\n"
msgstr "ATTENZIONE: trovati dati di una nota non validi\n"
-#: g10/mainproc.c:599
+#: g10/mainproc.c:608
msgid "Notation: "
msgstr "Nota: "
-#: g10/mainproc.c:606
+#: g10/mainproc.c:615
msgid "Policy: "
msgstr "Policy: "
-#: g10/mainproc.c:1025
+#: g10/mainproc.c:1034
msgid "signature verification suppressed\n"
msgstr "verifica della firma soppressa\n"
-#: g10/mainproc.c:1031
+#: g10/mainproc.c:1039
#, 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:1066 g10/mainproc.c:1077
msgid "BAD signature from \""
msgstr "Firma NON corretta da \""
-#: g10/mainproc.c:1058 g10/mainproc.c:1069
+#: g10/mainproc.c:1067 g10/mainproc.c:1078
msgid "Good signature from \""
msgstr "Firma valida da \""
-#: g10/mainproc.c:1060
+#: g10/mainproc.c:1069
msgid " aka \""
msgstr " anche noto come \""
-#: g10/mainproc.c:1115
+#: g10/mainproc.c:1124
#, c-format
msgid "Can't check signature: %s\n"
msgstr "Impossibile controllare la firma: %s\n"
-#: g10/mainproc.c:1212
+#: g10/mainproc.c:1225
msgid "old style (PGP 2.x) signature\n"
msgstr "firma vecchio stile (PGP 2.x)\n"
-#: g10/mainproc.c:1217
+#: g10/mainproc.c:1230
msgid "invalid root packet detected in proc_tree()\n"
msgstr "individuato un pacchetto radice non valido in proc_tree()\n"
-#: g10/misc.c:94
+#: g10/misc.c:95
#, c-format
msgid "can't disable core dumps: %s\n"
msgstr "impossibile disabilitare i core dump: %s\n"
-#: g10/misc.c:97
+#: g10/misc.c:98
msgid "WARNING: program may create a core file!\n"
msgstr "ATTENZIONE: il programma potrebbe creare un file core!\n"
-#: g10/misc.c:205
+#: g10/misc.c:206
msgid "Experimental algorithms should not be used!\n"
msgstr "Gli algoritmi sperimentali non dovrebbero essere usati!\n"
-#: g10/misc.c:219
+#: g10/misc.c:220
msgid ""
"RSA keys are deprecated; please consider creating a new key and use this key "
"in the future\n"
@@ -2495,7 +2495,7 @@ msgstr ""
"chiave\n"
"e usarla in futuro\n"
-#: g10/misc.c:241
+#: g10/misc.c:242
msgid "this cipher algorithm is depreciated; please use a more standard one!\n"
msgstr "questo algoritmo di cifratura Х deprecato; usane uno piЫ standard!\n"
@@ -2519,7 +2519,7 @@ msgstr ""
"Ti serve una passphrase per sbloccare la chiave segreta\n"
"dell'utente: \""
-#: g10/passphrase.c:168
+#: g10/passphrase.c:167
#, c-format
msgid "%u-bit %s key, ID %08lX, created %s"
msgstr "chiave %2$s di %1$u bit, ID %3$08lX, creata il %4$s"
@@ -2546,6 +2546,11 @@ 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:311
+#, fuzzy
+msgid "Detached signature.\n"
+msgstr "Cancellata %d firma.\n"
+
#: g10/plaintext.c:315
msgid "Please enter name of data file: "
msgstr "Inserisci il nome del file di dati: "
@@ -2559,95 +2564,95 @@ msgstr "viene letto stdin...\n"
msgid "can't open signed data `%s'\n"
msgstr "impossibile aprire i dati firmati `%s'\n"
-#: g10/pubkey-enc.c:79
+#: g10/pubkey-enc.c:80
#, c-format
msgid "anonymous receiver; trying secret key %08lX ...\n"
msgstr "destinatario anonimo; provo la chiave segreta %08lX ...\n"
-#: g10/pubkey-enc.c:85
+#: g10/pubkey-enc.c:86
msgid "okay, we are the anonymous recipient.\n"
msgstr "bene, siamo il destinatario anonimo.\n"
-#: g10/pubkey-enc.c:137
+#: g10/pubkey-enc.c:138
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:192
#, 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/seckey-cert.c:56
#, 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:181
msgid "Invalid passphrase; please try again ...\n"
msgstr "Passphrase non valida; riprova...\n"
-#: g10/seckey-cert.c:227
+#: g10/seckey-cert.c:246
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:201
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:297
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:305
#, 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:306
#, 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:322
#, 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:379
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:133
#, 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:264 g10/sign.c:577
#, c-format
msgid "can't create %s: %s\n"
msgstr "impossibile creare %s: %s\n"
-#: g10/sign.c:361
+#: g10/sign.c:363
msgid "signing:"
msgstr "firma:"
-#: g10/sign.c:404
+#: g10/sign.c:406
#, c-format
msgid "WARNING: `%s' is an empty file\n"
msgstr "ATTENZIONE: `%s' Х un file vuoto\n"
-#: g10/textfilter.c:128
+#: g10/textfilter.c:129
#, 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:198
#, c-format
msgid "input line longer than %d characters\n"
msgstr "linea di input piЫ lunga di %d caratteri\n"
@@ -2686,7 +2691,7 @@ msgstr "%s: directory creata\n"
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:211 g10/openfile.c:279 g10/ringedit.c:1350 g10/tdbio.c:458
#, c-format
msgid "%s: can't create: %s\n"
msgstr "%s: impossibile creare: %s\n"
@@ -3073,26 +3078,26 @@ msgstr "ATTENZIONE: non Х ancora possibile gestire record pref lunghi\n"
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:335 g10/ringedit.c:1355
#, c-format
msgid "%s: keyring created\n"
msgstr "%s: portachiavi creato\n"
-#: g10/ringedit.c:1530
+#: g10/ringedit.c:1532
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:1533
#, c-format
msgid "%s is the unchanged one\n"
msgstr "%s Х quello non modificato\n"
-#: g10/ringedit.c:1532
+#: g10/ringedit.c:1534
#, c-format
msgid "%s is the new one\n"
msgstr "%s Х quello nuovo\n"
-#: g10/ringedit.c:1533
+#: g10/ringedit.c:1535
msgid "Please fix this possible security flaw\n"
msgstr "Per favore risolvete questo possibile problema di sicurezza\n"
@@ -3117,60 +3122,60 @@ msgstr ""
"le firme!\n"
#. do not overwrite
-#: g10/openfile.c:65
+#: g10/openfile.c:73
#, c-format
msgid "File `%s' exists. "
msgstr "Il file `%s' esiste. "
-#: g10/openfile.c:67
+#: g10/openfile.c:75
msgid "Overwrite (y/N)? "
msgstr "Sovrascrivo (s/N)? "
-#: g10/openfile.c:97
+#: g10/openfile.c:104
#, c-format
msgid "%s: unknown suffix\n"
msgstr "%s: suffisso sconosciuto\n"
-#: g10/openfile.c:119
+#: g10/openfile.c:126
msgid "Enter new filename"
msgstr "Inserire il nuovo nome del file"
-#: g10/openfile.c:160
+#: g10/openfile.c:167
msgid "writing to stdout\n"
msgstr "scrivo su stdout\n"
-#: g10/openfile.c:219
+#: g10/openfile.c:245
#, 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:295
#, c-format
msgid "%s: new options file created\n"
msgstr "%s: creato un nuovo file delle opzioni\n"
#: g10/encr-data.c:66
#, c-format
-msgid "%s encrypted data\n"
-msgstr "dati cifrati con %s\n"
-
-#: g10/encr-data.c:68
-#, c-format
msgid "encrypted with unknown algorithm %d\n"
msgstr "cifrato con l'algoritmo sconosciuto %d\n"
-#: g10/encr-data.c:85
+#: g10/encr-data.c:71
+#, c-format
+msgid "%s encrypted data\n"
+msgstr "dati cifrati con %s\n"
+
+#: g10/encr-data.c:101
msgid ""
"WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
msgstr ""
"ATTENZIONE: il messaggio era stato cifrato usando una chiave debole\n"
"per il cifrario simmetrico\n"
-#: g10/seskey.c:52
+#: g10/seskey.c:63
msgid "weak key created - retrying\n"
msgstr "creata una chiave debole - riprovo\n"
-#: g10/seskey.c:57
+#: g10/seskey.c:68
#, c-format
msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
msgstr ""
@@ -3218,8 +3223,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 +3349,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."
@@ -3420,4 +3425,3 @@ msgstr "Non Х disponibile un aiuto"
#, c-format
msgid "No help available for `%s'"
msgstr "Non Х disponibile un aiuto per `%s'"
-
diff --git a/po/pl.po b/po/pl.po
index 068834188..4b7705d1b 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: gnupg-0.9.11\n"
-"POT-Creation-Date: 1999-09-05 19:21+0200\n"
+"POT-Creation-Date: 1999-10-26 13:53+0200\n"
"PO-Revision-Date: 1999-09-07 10:59+02:00\n"
"Last-Translator: Janusz A. Urbanowicz <alex@bofh.net.pl>\n"
"Language-Team: Polish <pl@li.org>\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:281
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:282
msgid "(you may have used the wrong program for this task)\n"
msgstr "(prawdopodobnie u©ywany program jest niewЁa╤ciwy dlatego zadania)\n"
@@ -293,7 +293,7 @@ msgstr ""
"ProszЙ kontynuowaФ inne dziaЁania aby system mСgЁ zebraФ odpowiedni╠\n"
"ilo╤Ф entropii do ich wygenerowania (brakuje %d bajtСw).\n"
-#: g10/g10.c:185
+#: g10/g10.c:186
msgid ""
"@Commands:\n"
" "
@@ -301,135 +301,135 @@ msgstr ""
"@Polecenia:\n"
" "
-#: g10/g10.c:187
+#: g10/g10.c:188
msgid "|[file]|make a signature"
msgstr "|[plik]|zЁo©enie podpisu"
-#: g10/g10.c:188
+#: g10/g10.c:189
msgid "|[file]|make a clear text signature"
msgstr "|[plik]|zЁo©enie podpisu na czytelnym dokumencie"
-#: g10/g10.c:189
+#: g10/g10.c:190
msgid "make a detached signature"
msgstr "sporz╠dzenie podpisu oddzielonego od dokumentu"
-#: g10/g10.c:190
+#: g10/g10.c:191
msgid "encrypt data"
msgstr "szyfrowanie danych"
-#: g10/g10.c:191
+#: g10/g10.c:192
msgid "encryption only with symmetric cipher"
msgstr "szyfrowanie tylko szyfrem symetrycznym"
-#: g10/g10.c:192
+#: g10/g10.c:193
msgid "store only"
msgstr "tylko zapis"
-#: g10/g10.c:193
+#: g10/g10.c:194
msgid "decrypt data (default)"
msgstr "odszyfrowywanie danych (domy╤lnie)"
-#: g10/g10.c:194
+#: g10/g10.c:195
msgid "verify a signature"
msgstr "sprawdzenie podpisu"
-#: g10/g10.c:195
+#: g10/g10.c:196
msgid "list keys"
msgstr "lista kluczy"
-#: g10/g10.c:197
+#: g10/g10.c:198
msgid "list keys and signatures"
msgstr "lista kluczy i podpisСw"
-#: g10/g10.c:198
+#: g10/g10.c:199
msgid "check key signatures"
msgstr "sprawdzenie podpisСw kluczy"
-#: g10/g10.c:199
+#: g10/g10.c:200
msgid "list keys and fingerprints"
msgstr "lista kluczy i ich odciskСw"
-#: g10/g10.c:200
+#: g10/g10.c:201
msgid "list secret keys"
msgstr "lista kluczy tajnych"
-#: g10/g10.c:201
+#: g10/g10.c:202
msgid "generate a new key pair"
msgstr "generacja nowej pary klucza"
-#: g10/g10.c:202
+#: g10/g10.c:203
msgid "remove key from the public keyring"
msgstr "usuniЙcie klucza ze zbioru kluczy publicznych"
-#: g10/g10.c:203
+#: g10/g10.c:204
msgid "sign a key"
msgstr "zЁo©enie podpisu na kluczu"
-#: g10/g10.c:204
+#: g10/g10.c:205
msgid "sign a key locally"
msgstr "zЁo©enie lokalnego podpisu na kluczu"
-#: g10/g10.c:205
+#: g10/g10.c:206
msgid "sign or edit a key"
msgstr "podpisanie lub modyfikacja klucza"
-#: g10/g10.c:206
+#: g10/g10.c:207
msgid "generate a revocation certificate"
msgstr "generacja certyfikatu uniewa©nienia klucza"
-#: g10/g10.c:207
+#: g10/g10.c:208
msgid "export keys"
msgstr "eksport kluczy do pliku"
-#: g10/g10.c:208
+#: g10/g10.c:209
msgid "export keys to a key server"
msgstr "eksport kluczy do serwera kluczy"
-#: g10/g10.c:209
+#: g10/g10.c:210
msgid "import keys from a key server"
msgstr "import kluczy z serwera kluczy"
-#: g10/g10.c:212
+#: g10/g10.c:213
msgid "import/merge keys"
msgstr "import/doЁ╠czenie kluczy"
-#: g10/g10.c:214
+#: g10/g10.c:215
msgid "list only the sequence of packets"
msgstr "wypisane sekwencji pakietСw"
-#: g10/g10.c:216
+#: g10/g10.c:217
msgid "export the ownertrust values"
msgstr "eksport warto╤ci zaufania"
-#: g10/g10.c:218
+#: g10/g10.c:219
msgid "import ownertrust values"
msgstr "wczytanie warto╤Фi zaufania"
-#: g10/g10.c:220
+#: g10/g10.c:221
msgid "update the trust database"
msgstr "uaktualnienie bazy zaufania"
-#: g10/g10.c:222
+#: g10/g10.c:223
msgid "|[NAMES]|check the trust database"
msgstr "|[NAZWY]|sprawdzenie bazy zaufania"
-#: g10/g10.c:223
+#: g10/g10.c:224
msgid "fix a corrupted trust database"
msgstr "naprawa uszkodzonej Bazy Zaufania"
-#: g10/g10.c:224
+#: g10/g10.c:225
msgid "De-Armor a file or stdin"
msgstr "zdjЙcie opakowania ASCII pliku lub potoku"
-#: g10/g10.c:225
+#: g10/g10.c:227
msgid "En-Armor a file or stdin"
msgstr "opakowanie ASCII pliku lub potoku"
-#: g10/g10.c:226
+#: g10/g10.c:229
msgid "|algo [files]|print message digests"
msgstr "|algo [pliki]|skrСty wiadomo╤ci"
-#: g10/g10.c:230
+#: g10/g10.c:233
msgid ""
"@\n"
"Options:\n"
@@ -439,168 +439,168 @@ msgstr ""
"Opcje:\n"
" "
-#: g10/g10.c:232
+#: g10/g10.c:235
msgid "create ascii armored output"
msgstr "plik wynikowy w opakowaniu ASCII"
-#: g10/g10.c:233
+#: g10/g10.c:237
msgid "|NAME|encrypt for NAME"
msgstr "|NAZWA|szyfrowanie dla odbiorcy NAZWA"
-#: g10/g10.c:236
+#: g10/g10.c:240
msgid "|NAME|use NAME as default recipient"
msgstr "|NAZWA|u©ycie NAZWA jako domy╤lnego adresata"
-#: g10/g10.c:238
+#: g10/g10.c:242
msgid "use the default key as default recipient"
msgstr "domy╤lny klucz jest domy╤lnym adresatem"
-#: g10/g10.c:242
+#: g10/g10.c:246
msgid "use this user-id to sign or decrypt"
msgstr "identyfikator do podpisania lub odszyfrowania"
-#: g10/g10.c:243
+#: g10/g10.c:247
msgid "|N|set compress level N (0 disables)"
msgstr "|N|poziom kompresji N (0 - brak)"
-#: g10/g10.c:245
+#: g10/g10.c:249
msgid "use canonical text mode"
msgstr "kanoniczny format tekstowy"
-#: g10/g10.c:246
+#: g10/g10.c:250
msgid "use as output file"
msgstr "plik wyj╤ciowy"
-#: g10/g10.c:247
+#: g10/g10.c:251
msgid "verbose"
msgstr "z informacjami dodatkowymi"
-#: g10/g10.c:248
+#: g10/g10.c:252
msgid "be somewhat more quiet"
msgstr "mniej komunikatСww"
-#: g10/g10.c:249
+#: g10/g10.c:253
msgid "don't use the terminal at all"
msgstr "bez odwoЁaЯ do terminala"
-#: g10/g10.c:250
+#: g10/g10.c:254
msgid "force v3 signatures"
msgstr "wymuszenie trzeciej wersji formatu podpisСw"
-#: g10/g10.c:251
+#: g10/g10.c:255
msgid "always use a MDC for encryption"
msgstr "do szyfrowania bЙdzie u©ywany MDC"
-#: g10/g10.c:252
+#: g10/g10.c:256
msgid "do not make any changes"
msgstr "pozostawienie bez zmian"
#. { oInteractive, "interactive", 0, N_("prompt before overwriting") },
-#: g10/g10.c:254
+#: g10/g10.c:258
msgid "batch mode: never ask"
msgstr "tryb wsadowy: ©adnych pytaЯ"
-#: g10/g10.c:255
+#: g10/g10.c:259
msgid "assume yes on most questions"
msgstr "automatyczna odpowied╪ tak na wiЙkszo╤Ф pytaЯ"
-#: g10/g10.c:256
+#: g10/g10.c:260
msgid "assume no on most questions"
msgstr "automatyczna odpowied╪ nie na wiЙkszo╤Ф pytaЯ"
-#: g10/g10.c:257
+#: g10/g10.c:261
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:262
msgid "add this secret keyring to the list"
msgstr "dodaФ zbiСr kluczy tajnych do listy"
-#: g10/g10.c:259
+#: g10/g10.c:263
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:264
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:265
msgid "|NAME|set terminal charset to NAME"
msgstr "|NAZWA|zestaw znakСw terminala NAZWA"
-#: g10/g10.c:262
+#: g10/g10.c:266
msgid "read options from file"
msgstr "wczytanie opcji z pliku"
-#: g10/g10.c:264
+#: g10/g10.c:268
msgid "set debugging flags"
msgstr "ustawienie opcji ╤ledzenia wykonania programu"
-#: g10/g10.c:265
+#: g10/g10.c:269
msgid "enable full debugging"
msgstr "umo©liwienie peЁnego ╤ledzenia programu"
-#: g10/g10.c:266
+#: g10/g10.c:270
msgid "|FD|write status info to this FD"
msgstr "|FD|zapisaФ opis stanu do FD"
-#: g10/g10.c:267
+#: g10/g10.c:271
msgid "do not write comment packets"
msgstr "nie zapisywaФ pakietСw z komentarzem"
-#: g10/g10.c:268
+#: g10/g10.c:272
msgid "(default is 1)"
msgstr "(domy╤lnie 1)"
-#: g10/g10.c:269
+#: g10/g10.c:273
msgid "(default is 3)"
msgstr "(domy╤lnie 3)"
-#: g10/g10.c:271
+#: g10/g10.c:275
msgid "|FILE|load extension module FILE"
msgstr "|PLIK|Ёadowanie moduЁu rozszerzenia z PLIK"
-#: g10/g10.c:272
+#: g10/g10.c:276
msgid "emulate the mode described in RFC1991"
msgstr "emulacja trybu opisanego w RFC1991"
-#: g10/g10.c:273
+#: g10/g10.c:277
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:278
msgid "|N|use passphrase mode N"
msgstr "|N|N-ty tryb wprowadzania wyra©enia przej╤ciowego"
-#: g10/g10.c:276
+#: g10/g10.c:280
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:282
msgid "|NAME|use cipher algorithm NAME for passphrases"
msgstr "|ALG|algorytmu szyfruj╠cy ALG dla hasЁa"
-#: g10/g10.c:279
+#: g10/g10.c:283
msgid "|NAME|use cipher algorithm NAME"
msgstr "|NAZWA|algorytm szyfruj╠cy NAZWA"
-#: g10/g10.c:280
+#: g10/g10.c:284
msgid "|NAME|use message digest algorithm NAME"
msgstr "|NAZWA|algorytm obliczania skrСtСw wiadomo╤ci NAZWA"
-#: g10/g10.c:281
+#: g10/g10.c:285
msgid "|N|use compress algorithm N"
msgstr "|N|algorytm kompresji N"
-#: g10/g10.c:282
+#: g10/g10.c:286
msgid "throw keyid field of encrypted packets"
msgstr "usuniЙcie identyfikatorСw kluczy z pakietСw"
-#: g10/g10.c:283
+#: g10/g10.c:287
msgid "|NAME=VALUE|use this notation data"
msgstr "|NAZWA=TRE╕ф|adnotacje"
-#: g10/g10.c:285
+#: g10/g10.c:289
msgid ""
"@\n"
"Examples:\n"
@@ -621,15 +621,15 @@ msgstr ""
" --list-keys [nazwy] pokazuje klucze\n"
" --fingerprint [nazwy] pokazuje odciski kluczy\n"
-#: g10/g10.c:370
+#: g10/g10.c:376
msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
msgstr "BЁЙdy prosimy zgЁaszaФ na adres <gnupg-bugs@gnu.org>.\n"
-#: g10/g10.c:374
+#: g10/g10.c:380
msgid "Usage: gpg [options] [files] (-h for help)"
msgstr "WywoЁanie: gpg [opcje] [pliki] (-h podaje pomoc)"
-#: g10/g10.c:377
+#: g10/g10.c:383
msgid ""
"Syntax: gpg [options] [files]\n"
"sign, check, encrypt or decrypt\n"
@@ -639,7 +639,7 @@ msgstr ""
"podpisywanie, sprawdzanie podpisСw, szyfrowanie, deszyfrowanie\n"
"domy╤lnie wykonywana operacja zale©y od danych wej╤ciowych\n"
-#: g10/g10.c:382
+#: g10/g10.c:388
msgid ""
"\n"
"Supported algorithms:\n"
@@ -647,182 +647,182 @@ msgstr ""
"\n"
"ObsЁugiwane algorytmy:\n"
-#: g10/g10.c:456
+#: g10/g10.c:465
msgid "usage: gpg [options] "
msgstr "wywoЁanie: gpg [opcje]"
-#: g10/g10.c:509
+#: g10/g10.c:518
msgid "conflicting commands\n"
msgstr "sprzeczne polecenia\n"
-#: g10/g10.c:644
+#: g10/g10.c:653
#, 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:657
#, c-format
msgid "option file `%s': %s\n"
msgstr "plik opcji '%s': %s\n"
-#: g10/g10.c:655
+#: g10/g10.c:664
#, c-format
msgid "reading options from `%s'\n"
msgstr "odczyt opcji z '%s'\n"
-#: g10/g10.c:835
+#: g10/g10.c:844
#, 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:911 g10/g10.c:920
#, 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:913
#, c-format
msgid "%s not allowed with %s!\n"
msgstr "%s jest niedozwolony z %s!\n"
-#: g10/g10.c:897
+#: g10/g10.c:916
#, 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:935 g10/g10.c:947
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:941 g10/g10.c:953
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:957
msgid "the given policy URL is invalid\n"
msgstr "podany URL regulaminu jest niepoprawny\n"
-#: g10/g10.c:941
+#: g10/g10.c:960
#, 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:962
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:964
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:966
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:969
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:973
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:1050
#, 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:1056
msgid "--store [filename]"
msgstr "--store [plik]"
-#: g10/g10.c:1044
+#: g10/g10.c:1063
msgid "--symmetric [filename]"
msgstr "--symmetric [plik]"
-#: g10/g10.c:1052
+#: g10/g10.c:1071
msgid "--encrypt [filename]"
msgstr "--encrypt [plik]"
-#: g10/g10.c:1065
+#: g10/g10.c:1084
msgid "--sign [filename]"
msgstr "--sign [plik]"
-#: g10/g10.c:1078
+#: g10/g10.c:1097
msgid "--sign --encrypt [filename]"
msgstr "--sign --encrypt [plik]"
-#: g10/g10.c:1092
+#: g10/g10.c:1111
msgid "--clearsign [filename]"
msgstr "--clearsign [plik]\""
-#: g10/g10.c:1104
+#: g10/g10.c:1123
msgid "--decrypt [filename]"
msgstr "--decrypt [plik]"
-#: g10/g10.c:1112
+#: g10/g10.c:1131
msgid "--sign-key user-id"
msgstr "--sign-key nazwa u©ytkownika"
-#: g10/g10.c:1120
+#: g10/g10.c:1139
msgid "--lsign-key user-id"
msgstr "--lsign-key nazwa u©ytkownika"
-#: g10/g10.c:1128
+#: g10/g10.c:1147
msgid "--edit-key user-id [commands]"
msgstr "--edit-key nazwa u©ytkownika [polecenia]"
-#: g10/g10.c:1144
+#: g10/g10.c:1163
msgid "--delete-secret-key user-id"
msgstr "--delete-secret-key nazwa u©ytkownika"
-#: g10/g10.c:1147
+#: g10/g10.c:1166
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:1190 g10/sign.c:368
#, c-format
msgid "can't open %s: %s\n"
msgstr "nie mo©na otworzyФ %s: %s\n"
-#: g10/g10.c:1182
+#: g10/g10.c:1201
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:1262
#, 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:1270
#, c-format
msgid "enarmoring failed: %s\n"
msgstr "opakowywanie ASCII nie powiodЁo siЙ: %s\n"
-#: g10/g10.c:1319
+#: g10/g10.c:1338
#, c-format
msgid "invalid hash algorithm `%s'\n"
msgstr "niewЁa╤ciwy algorytm skrСtu '%s'\n"
-#: g10/g10.c:1400
+#: g10/g10.c:1419
msgid "[filename]"
msgstr "[nazwa pliku]"
-#: g10/g10.c:1404
+#: g10/g10.c:1423
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:1426 g10/verify.c:66
#, c-format
msgid "can't open `%s'\n"
msgstr "nie mo©na otworzyФ '%s'\n"
-#: g10/g10.c:1576
+#: g10/g10.c:1594
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"
-#: g10/g10.c:1582
+#: g10/g10.c:1600
msgid ""
"a notation name must have only letters, digits, dots or underscores and end "
"with an '='\n"
@@ -830,11 +830,11 @@ msgstr ""
"nazwa adnotacji mo©e zawieraФ tylko litery, cyfry, kropki,\n"
"podkre╤lenia, i musi koЯczyФ siЙ '='\n"
-#: g10/g10.c:1588
+#: g10/g10.c:1606
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:1614
msgid "a notation value must not use any control characters\n"
msgstr "warto╤Ф adnotacji nie mo©e zawieraФ znakСw steruj╠cych\n"
@@ -915,20 +915,20 @@ msgstr ""
#. Translators: this shoud fit into 24 bytes to that the fingerprint
#. * data is properly aligned with the user ID
-#: g10/pkclist.c:53
+#: g10/pkclist.c:54
msgid " Fingerprint:"
msgstr " Odcisk:"
-#: g10/pkclist.c:80
+#: g10/pkclist.c:81
msgid "Fingerprint:"
msgstr "Odcisk klucza:"
#. a string with valid answers
-#: g10/pkclist.c:197
+#: g10/pkclist.c:198
msgid "sSmMqQ"
msgstr "iIpPwW"
-#: g10/pkclist.c:201
+#: g10/pkclist.c:202
#, c-format
msgid ""
"No trust value assigned to %lu:\n"
@@ -937,7 +937,7 @@ msgstr ""
"Brak warto╤ci zaufania dla %lu:\n"
"%4u%c/%08lX %s \""
-#: g10/pkclist.c:213
+#: g10/pkclist.c:214
msgid ""
"Please decide how far you trust this user to correctly\n"
"verify other users' keys (by looking at passports,\n"
@@ -960,23 +960,23 @@ msgstr ""
" 4 = W peЁni mu ufam.\n"
" i = potrzebujЙ wiЙcej informacji\n"
-#: g10/pkclist.c:222
+#: g10/pkclist.c:223
msgid " m = back to the main menu\n"
msgstr " p = powrСt do gЁСwnego menu\n"
-#: g10/pkclist.c:224
+#: g10/pkclist.c:225
msgid " q = quit\n"
msgstr "w = wyj╤cie\n"
-#: g10/pkclist.c:230
+#: g10/pkclist.c:231
msgid "Your decision? "
msgstr "Twoja decyzja? "
-#: g10/pkclist.c:252
+#: g10/pkclist.c:253
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:324
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 +986,7 @@ msgstr ""
"Sprawd╪my czy mo©na przypisaФ brakuj╠ce warto╤ci zaufania.\n"
"\n"
-#: g10/pkclist.c:329
+#: g10/pkclist.c:330
msgid ""
"No path leading to one of our keys found.\n"
"\n"
@@ -994,7 +994,7 @@ msgstr ""
"Brak ╤cie©ki prowadz╠cej do ktСrego╤ z naszych kluczy.\n"
"\n"
-#: g10/pkclist.c:331
+#: g10/pkclist.c:332
msgid ""
"No certificates with undefined trust found.\n"
"\n"
@@ -1002,7 +1002,7 @@ msgstr ""
"Brak certyfikatСw o niezdefiniowanym poziomie zaufania.\n"
"\n"
-#: g10/pkclist.c:333
+#: g10/pkclist.c:334
msgid ""
"No trust values changed.\n"
"\n"
@@ -1010,36 +1010,36 @@ msgstr ""
"Parametry zaufania nie zostaЁy zmienione.\n"
"\n"
-#: g10/pkclist.c:350
+#: g10/pkclist.c:351
#, 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:357 g10/pkclist.c:367 g10/pkclist.c:476
msgid "Use this key anyway? "
msgstr "U©yФ tego klucza pomimo to? "
-#: g10/pkclist.c:360
+#: g10/pkclist.c:361
#, 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:391
#, 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:397
#, 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:411
#, 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:417
#, c-format
msgid ""
"%08lX: It is not sure that this key really belongs to the owner\n"
@@ -1048,16 +1048,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:423
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:428
msgid "This key belongs to us\n"
msgstr "Ten klucz nale©y do nas\n"
-#: g10/pkclist.c:470
+#: g10/pkclist.c:471
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 +1068,67 @@ 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:485 g10/pkclist.c:508
msgid "WARNING: Using untrusted key!\n"
msgstr "OSTRZE╞ENIE: u©ywany jest klucz nie obdarzony zaufaniem!\n"
-#: g10/pkclist.c:528
+#: g10/pkclist.c:529
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:530
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:534
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:555
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:563
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:565
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"
-#: g10/pkclist.c:581
+#: g10/pkclist.c:582
msgid "WARNING: We do NOT trust this key!\n"
msgstr "OSTRZE╞ENIE: NIE UFAMY temu kluczowi!\n"
-#: g10/pkclist.c:582
+#: g10/pkclist.c:583
msgid " The signature is probably a FORGERY.\n"
msgstr " Ten podpis prawdopodobnie jest FAёSZERSTWEM.\n"
-#: g10/pkclist.c:589
+#: g10/pkclist.c:590
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:593
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"
-#: g10/pkclist.c:694 g10/pkclist.c:716 g10/pkclist.c:841 g10/pkclist.c:886
+#: g10/pkclist.c:695 g10/pkclist.c:717 g10/pkclist.c:842 g10/pkclist.c:887
#, c-format
msgid "%s: skipped: %s\n"
msgstr "%s: pominiЙty: %s\n"
-#: g10/pkclist.c:702 g10/pkclist.c:868
+#: g10/pkclist.c:703 g10/pkclist.c:869
#, 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:730
msgid ""
"You did not specify a user ID. (you may use \"-r\")\n"
"\n"
@@ -1136,42 +1136,42 @@ 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:740
msgid "Enter the user ID: "
msgstr "Wprowad╪ identyfikator u©ytkownika (user ID): "
-#: g10/pkclist.c:751
+#: g10/pkclist.c:752
msgid "No such user ID.\n"
msgstr "Brak takiego identyfikatora u©ytkownika.\n"
-#: g10/pkclist.c:756
+#: g10/pkclist.c:757
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:779
msgid "Public key is disabled.\n"
msgstr "Klucz publiczny wyЁ╠czony z uzycia.\n"
-#: g10/pkclist.c:785
+#: g10/pkclist.c:786
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:817
#, c-format
msgid "unknown default recipient `%s'\n"
msgstr "nieznany domy╤lny adresat '%s'\n"
-#: g10/pkclist.c:849
+#: g10/pkclist.c:850
#, 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:855
#, 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:893
msgid "no valid addressees\n"
msgstr "brak poprawnych adresСw\n"
@@ -1488,7 +1488,7 @@ msgstr ""
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:1018 g10/sig-check.c:314 g10/sign.c:106
#, c-format
msgid ""
"key has been created %lu second in future (time warp or clock problem)\n"
@@ -1496,7 +1496,7 @@ msgstr ""
"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:1020 g10/sig-check.c:316 g10/sign.c:108
#, c-format
msgid ""
"key has been created %lu seconds in future (time warp or clock problem)\n"
@@ -1508,7 +1508,7 @@ msgstr ""
msgid "Really create? "
msgstr "Na pewno generowaФ? "
-#: g10/encode.c:91 g10/openfile.c:156 g10/openfile.c:246 g10/tdbio.c:468
+#: g10/encode.c:91 g10/openfile.c:163 g10/openfile.c:272 g10/tdbio.c:468
#: g10/tdbio.c:529
#, c-format
msgid "%s: can't open: %s\n"
@@ -1519,17 +1519,17 @@ 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"
@@ -1676,7 +1676,7 @@ msgstr "klucz %08lX: brak klucza publicznego: %s\n"
msgid "no default public keyring\n"
msgstr "brak domy╤lnego zbioru kluczy publicznych\n"
-#: g10/import.c:399 g10/openfile.c:186 g10/sign.c:268 g10/sign.c:580
+#: g10/import.c:399 g10/openfile.c:215 g10/sign.c:269 g10/sign.c:582
#, c-format
msgid "writing to `%s'\n"
msgstr "zapis do '%s'\n"
@@ -1853,7 +1853,7 @@ msgstr "key %08lX: powtСrzony identyfikator u©ytkownika - doЁ╠czony\n"
msgid "key %08lX: revocation certificate added\n"
msgstr "klucz %08lX: dodany certyfikat uniewa©nienia\n"
-#: g10/import.c:1128 g10/import.c:1183
+#: g10/import.c:1128 g10/import.c:1181
#, c-format
msgid "key %08lX: our copy has no self-signature\n"
msgstr "klucz %08lX: dostЙpna kopia nie jest podpisana ni╠ sam╠\n"
@@ -1940,7 +1940,7 @@ msgstr ""
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:370 g10/keyedit.c:1832 g10/keyedit.c:1881 g10/sign.c:129
#, c-format
msgid "signing failed: %s\n"
msgstr "zЁo©enie podpisu nie powiodЁo siЙ: %s\n"
@@ -2434,45 +2434,45 @@ msgstr "odszyfrowuj╠cy klucz tajny do jest niedostЙpny\n"
msgid "public key decryption failed: %s\n"
msgstr "bЁ╠d odszyfrowywania kluczem publicznym: %s\n"
-#: g10/mainproc.c:330
+#: g10/mainproc.c:332
msgid "decryption okay\n"
msgstr "odszyfrowane poprawnie\n"
-#: g10/mainproc.c:335
+#: g10/mainproc.c:337
msgid "WARNING: encrypted message has been manipulated!\n"
msgstr "OSTRZE╞ENIE: zaszyfrowana wiadomo╤Ф byЁa manipulowana!\n"
-#: g10/mainproc.c:340
+#: g10/mainproc.c:342
#, c-format
msgid "decryption failed: %s\n"
msgstr "bЁ╠d odszyfrowywania: %s\n"
-#: g10/mainproc.c:358
+#: g10/mainproc.c:360
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:362
#, 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:596 g10/mainproc.c:605
msgid "WARNING: invalid notation data found\n"
msgstr "OSTRZE╞ENIE: niepoprawne dane w adnotacji\n"
-#: g10/mainproc.c:599
+#: g10/mainproc.c:608
msgid "Notation: "
msgstr "Adnotacja:"
-#: g10/mainproc.c:606
+#: g10/mainproc.c:615
msgid "Policy: "
msgstr "Regulamin:"
-#: g10/mainproc.c:1025
+#: g10/mainproc.c:1034
msgid "signature verification suppressed\n"
msgstr "wymuszono pominiЙcie sprawdzenia podpisu\n"
-#: g10/mainproc.c:1031
+#: g10/mainproc.c:1039
#, c-format
msgid "Signature made %.*s using %s key ID %08lX\n"
msgstr ""
@@ -2480,45 +2480,45 @@ 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:1066 g10/mainproc.c:1077
msgid "BAD signature from \""
msgstr "NIEPOPRAWNY podpis zЁo©ony przez \""
-#: g10/mainproc.c:1058 g10/mainproc.c:1069
+#: g10/mainproc.c:1067 g10/mainproc.c:1078
msgid "Good signature from \""
msgstr "Poprawny podpis zЁo©ony przez \""
-#: g10/mainproc.c:1060
+#: g10/mainproc.c:1069
msgid " aka \""
msgstr " alias \""
-#: g10/mainproc.c:1115
+#: g10/mainproc.c:1124
#, c-format
msgid "Can't check signature: %s\n"
msgstr "Nie mogЙ sprawdziФ podpisu: %s\n"
-#: g10/mainproc.c:1212
+#: g10/mainproc.c:1225
msgid "old style (PGP 2.x) signature\n"
msgstr "podpis starego typu (PGP 2.x)\n"
-#: g10/mainproc.c:1217
+#: g10/mainproc.c:1230
msgid "invalid root packet detected in proc_tree()\n"
msgstr "wykryto niepoprawny pakiet pierwotny w proc_tree()\n"
-#: g10/misc.c:94
+#: g10/misc.c:95
#, c-format
msgid "can't disable core dumps: %s\n"
msgstr "nie mo©na wyЁ╠czyФ zrzutСw pamiЙci: %s\n"
-#: g10/misc.c:97
+#: g10/misc.c:98
msgid "WARNING: program may create a core file!\n"
msgstr "OSTRZE╞ENIE: program mo©e stworzyФ plik zrzutu pamiЙci!\n"
-#: g10/misc.c:205
+#: g10/misc.c:206
msgid "Experimental algorithms should not be used!\n"
msgstr "Nie nale©y u©ywaФ algorytmСw do╤wiadczalnych!\n"
-#: g10/misc.c:219
+#: g10/misc.c:220
msgid ""
"RSA keys are deprecated; please consider creating a new key and use this key "
"in the future\n"
@@ -2526,7 +2526,7 @@ msgstr ""
"Klucze RSA s╠ odradzane; proszЙ rozwa©yФ przej╤cie na inne algorytmy po\n"
"wygenerowaniu odpowiednich kluczy.\n"
-#: g10/misc.c:241
+#: g10/misc.c:242
msgid "this cipher algorithm is depreciated; please use a more standard one!\n"
msgstr ""
"ten algorytm szyfruj╠cy jest odradzany; proszЙ u©ywaФ bardziej "
@@ -2552,7 +2552,7 @@ msgstr ""
"Musisz podaФ wyra©enie przej╤ciowe (hasЁo) aby uaktywniФ klucz tajny\n"
"dla u©ytkownika: \""
-#: g10/passphrase.c:168
+#: g10/passphrase.c:167
#, c-format
msgid "%u-bit %s key, ID %08lX, created %s"
msgstr "dЁugo╤Ф %u bitСw, typ %s, klucz %08lX, stworzony %s"
@@ -2579,6 +2579,11 @@ 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:311
+#, fuzzy
+msgid "Detached signature.\n"
+msgstr "%d podpis usuniЙty.\n"
+
#: g10/plaintext.c:315
msgid "Please enter name of data file: "
msgstr "Nazwa pliku danych: "
@@ -2592,97 +2597,97 @@ msgstr "czytam strumieЯ standardowego wej╤cia\n"
msgid "can't open signed data `%s'\n"
msgstr "nie mo©na otworzyФ podpisanego pliku '%s'\n"
-#: g10/pubkey-enc.c:79
+#: g10/pubkey-enc.c:80
#, c-format
msgid "anonymous receiver; trying secret key %08lX ...\n"
msgstr "adresat anonimowy; prСbujЙ klucz tajny %08lX ...\n"
-#: g10/pubkey-enc.c:85
+#: g10/pubkey-enc.c:86
msgid "okay, we are the anonymous recipient.\n"
msgstr "OK, to my jeste╤my adresatem anonimowym.\n"
-#: g10/pubkey-enc.c:137
+#: g10/pubkey-enc.c:138
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:192
#, 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/seckey-cert.c:56
#, 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:181
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:246
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"
-#: g10/sig-check.c:199
+#: g10/sig-check.c:201
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:297
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:305
#, 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:306
#, 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:322
#, 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:379
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:133
#, 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:264 g10/sign.c:577
#, c-format
msgid "can't create %s: %s\n"
msgstr "nie mogЙ stworzyФ %s: %s\n"
-#: g10/sign.c:361
+#: g10/sign.c:363
msgid "signing:"
msgstr "podpis:"
-#: g10/sign.c:404
+#: g10/sign.c:406
#, 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:129
#, 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"
-#: g10/textfilter.c:197
+#: g10/textfilter.c:198
#, c-format
msgid "input line longer than %d characters\n"
msgstr "linia dЁu©sza ni© %d znakСw\n"
@@ -2721,7 +2726,7 @@ msgstr "%s: katalog utworzony\n"
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:211 g10/openfile.c:279 g10/ringedit.c:1350 g10/tdbio.c:458
#, c-format
msgid "%s: can't create: %s\n"
msgstr "%s: nie mogЙ utworzyФ: %s\n"
@@ -3108,26 +3113,26 @@ msgstr "OSTRZE╞ENIE: dЁugie wpisy ustawieЯ jeszcze nie s╠ obsЁugiwane.\n"
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:335 g10/ringedit.c:1355
#, c-format
msgid "%s: keyring created\n"
msgstr "%s: zbiСr kluczy utworzony\n"
-#: g10/ringedit.c:1530
+#: g10/ringedit.c:1532
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:1533
#, c-format
msgid "%s is the unchanged one\n"
msgstr "%s pozostaЁ bez zmian\n"
-#: g10/ringedit.c:1532
+#: g10/ringedit.c:1534
#, c-format
msgid "%s is the new one\n"
msgstr "%s zostaЁ utworzony\n"
-#: g10/ringedit.c:1533
+#: g10/ringedit.c:1535
msgid "Please fix this possible security flaw\n"
msgstr "ProszЙ usun╠Ф to naruszenie zasad bezpieczeЯstwa\n"
@@ -3152,59 +3157,59 @@ msgstr ""
"podpisy skЁadane tym kluczem nie zapewniaj╠ bezpieczeЯstwa!\n"
#. do not overwrite
-#: g10/openfile.c:65
+#: g10/openfile.c:73
#, c-format
msgid "File `%s' exists. "
msgstr "Plik '%s' ju© istnieje. "
-#: g10/openfile.c:67
+#: g10/openfile.c:75
msgid "Overwrite (y/N)? "
msgstr "NadpisaФ (t/N)? "
-#: g10/openfile.c:97
+#: g10/openfile.c:104
#, c-format
msgid "%s: unknown suffix\n"
msgstr "%s: nieznana koЯcСwka\n"
-#: g10/openfile.c:119
+#: g10/openfile.c:126
msgid "Enter new filename"
msgstr "Nazwa pliku"
-#: g10/openfile.c:160
+#: g10/openfile.c:167
msgid "writing to stdout\n"
msgstr "zapisywanie na wyj╤cie standardowe\n"
-#: g10/openfile.c:219
+#: g10/openfile.c:245
#, 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:295
#, c-format
msgid "%s: new options file created\n"
msgstr "%s: stworzono nowy plik ustawieЯ\n"
#: g10/encr-data.c:66
#, c-format
-msgid "%s encrypted data\n"
-msgstr "%s zaszyfrowane dane\n"
-
-#: g10/encr-data.c:68
-#, c-format
msgid "encrypted with unknown algorithm %d\n"
msgstr "zaszyfrowane nieznanym algorytmem %d\n"
-#: g10/encr-data.c:85
+#: g10/encr-data.c:71
+#, c-format
+msgid "%s encrypted data\n"
+msgstr "%s zaszyfrowane dane\n"
+
+#: g10/encr-data.c:101
msgid ""
"WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
msgstr ""
"OSTRZE╞ENIE: wiadomo╤Ф byЁa szyfrowana sЁabym kluczem szyfru symetrycznego.\n"
-#: g10/seskey.c:52
+#: g10/seskey.c:63
msgid "weak key created - retrying\n"
msgstr "wygenerowano sЁaby klucz - operacja zostaje powtСrzona\n"
-#: g10/seskey.c:57
+#: g10/seskey.c:68
#, c-format
msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
msgstr ""
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 5d953207e..5b393ceb1 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: 1999-10-26 13:53+0200\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Date: 1998-11-20 23:46:36-0200\n"
"From: Thiago Jung Bauermann <jungmann@usa.net>\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:281
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:282
msgid "(you may have used the wrong program for this task)\n"
msgstr "(vocЙ pode ter usado o programa errado para esta tarefa)\n"
@@ -289,7 +289,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:186
msgid ""
"@Commands:\n"
" "
@@ -297,140 +297,140 @@ msgstr ""
"@Comandos:\n"
" "
-#: g10/g10.c:187
+#: g10/g10.c:188
msgid "|[file]|make a signature"
msgstr "|[arquivo]|fazer uma assinatura"
-#: g10/g10.c:188
+#: g10/g10.c:189
msgid "|[file]|make a clear text signature"
msgstr "|[arquivo]|fazer uma assinatura em texto puro"
-#: g10/g10.c:189
+#: g10/g10.c:190
msgid "make a detached signature"
msgstr "fazer uma assinatura separada"
-#: g10/g10.c:190
+#: g10/g10.c:191
msgid "encrypt data"
msgstr "criptografar dados"
-#: g10/g10.c:191
+#: g10/g10.c:192
msgid "encryption only with symmetric cipher"
msgstr ""
"criptografar apenas com criptografia\n"
"simИtrica"
-#: g10/g10.c:192
+#: g10/g10.c:193
msgid "store only"
msgstr "apenas armazenar"
-#: g10/g10.c:193
+#: g10/g10.c:194
msgid "decrypt data (default)"
msgstr "descriptografar dados (padrЦo)"
-#: g10/g10.c:194
+#: g10/g10.c:195
msgid "verify a signature"
msgstr "verificar uma assinatura"
-#: g10/g10.c:195
+#: g10/g10.c:196
msgid "list keys"
msgstr "listar as chaves"
-#: g10/g10.c:197
+#: g10/g10.c:198
msgid "list keys and signatures"
msgstr "listar as chaves e as assinaturas"
-#: g10/g10.c:198
+#: g10/g10.c:199
msgid "check key signatures"
msgstr "verificar as assinaturas das chaves"
-#: g10/g10.c:199
+#: g10/g10.c:200
msgid "list keys and fingerprints"
msgstr "listar as chaves e as impressУes digitais"
-#: g10/g10.c:200
+#: g10/g10.c:201
msgid "list secret keys"
msgstr "listar as chaves secretas"
-#: g10/g10.c:201
+#: g10/g10.c:202
msgid "generate a new key pair"
msgstr "gerar um novo par de chaves"
-#: g10/g10.c:202
+#: g10/g10.c:203
msgid "remove key from the public keyring"
msgstr "remover a chave do chaveiro pЗblico"
-#: g10/g10.c:203
+#: g10/g10.c:204
msgid "sign a key"
msgstr "assinar uma chave"
-#: g10/g10.c:204
+#: g10/g10.c:205
msgid "sign a key locally"
msgstr "assinar uma chave localmente"
-#: g10/g10.c:205
+#: g10/g10.c:206
msgid "sign or edit a key"
msgstr "assinar ou editar uma chave"
-#: g10/g10.c:206
+#: g10/g10.c:207
msgid "generate a revocation certificate"
msgstr "gerar um certificado de revogaГЦo"
-#: g10/g10.c:207
+#: g10/g10.c:208
msgid "export keys"
msgstr "exportar chaves"
-#: g10/g10.c:208
+#: g10/g10.c:209
msgid "export keys to a key server"
msgstr "exportar chaves para um servidor"
-#: g10/g10.c:209
+#: g10/g10.c:210
msgid "import keys from a key server"
msgstr "importar chaves de um servidor"
-#: g10/g10.c:212
+#: g10/g10.c:213
msgid "import/merge keys"
msgstr "importar/fundir chaves"
-#: g10/g10.c:214
+#: g10/g10.c:215
msgid "list only the sequence of packets"
msgstr "listar apenas as seqЭЙncias de pacotes"
# ownertrust ???
-#: g10/g10.c:216
+#: g10/g10.c:217
msgid "export the ownertrust values"
msgstr "exportar os valores de confianГa"
-#: g10/g10.c:218
+#: g10/g10.c:219
msgid "import ownertrust values"
msgstr "importar os valores de confianГa"
-#: g10/g10.c:220
+#: g10/g10.c:221
msgid "update the trust database"
msgstr "atualizar o banco de dados de confiabilidade"
-#: g10/g10.c:222
+#: g10/g10.c:223
msgid "|[NAMES]|check the trust database"
msgstr "|[NOMES]|verificar o banco de dados de confiabilidade"
-#: g10/g10.c:223
+#: g10/g10.c:224
msgid "fix a corrupted trust database"
msgstr ""
"consertar um banco de dados de confiabilidade\n"
"danificado"
-#: g10/g10.c:224
+#: g10/g10.c:225
msgid "De-Armor a file or stdin"
msgstr "retirar a armadura de um arquivo ou de \"stdin\""
-#: g10/g10.c:225
+#: g10/g10.c:227
msgid "En-Armor a file or stdin"
msgstr "criar armadura para um arquivo ou \"stdin\""
-#: g10/g10.c:226
+#: g10/g10.c:229
msgid "|algo [files]|print message digests"
msgstr "|algo [arquivos]|imprimir \"digests\" de mensagens"
-#: g10/g10.c:230
+#: g10/g10.c:233
msgid ""
"@\n"
"Options:\n"
@@ -440,185 +440,185 @@ msgstr ""
"OpГУes:\n"
" "
-#: g10/g10.c:232
+#: g10/g10.c:235
msgid "create ascii armored output"
msgstr "criar saМda com armadura ascii"
-#: g10/g10.c:233
+#: g10/g10.c:237
msgid "|NAME|encrypt for NAME"
msgstr "|NOME|criptografar para NOME"
-#: g10/g10.c:236
+#: g10/g10.c:240
msgid "|NAME|use NAME as default recipient"
msgstr "|NOME|usar NOME como destinatАrio padrЦo"
-#: g10/g10.c:238
+#: g10/g10.c:242
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:246
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:247
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:249
msgid "use canonical text mode"
msgstr "usar modo de texto canТnico"
-#: g10/g10.c:246
+#: g10/g10.c:250
msgid "use as output file"
msgstr "usar como arquivo de saМda"
-#: g10/g10.c:247
+#: g10/g10.c:251
msgid "verbose"
msgstr "detalhado"
-#: g10/g10.c:248
+#: g10/g10.c:252
msgid "be somewhat more quiet"
msgstr "ser mais silencioso"
-#: g10/g10.c:249
+#: g10/g10.c:253
msgid "don't use the terminal at all"
msgstr "nunca usar o terminal"
-#: g10/g10.c:250
+#: g10/g10.c:254
msgid "force v3 signatures"
msgstr "forГar assinaturas v3"
-#: g10/g10.c:251
+#: g10/g10.c:255
msgid "always use a MDC for encryption"
msgstr "sempre usar um MDC para criptografar"
-#: g10/g10.c:252
+#: g10/g10.c:256
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:258
msgid "batch mode: never ask"
msgstr "modo nЦo-interativo: nunca perguntar"
-#: g10/g10.c:255
+#: g10/g10.c:259
msgid "assume yes on most questions"
msgstr "assumir sim para a maioria das perguntas"
-#: g10/g10.c:256
+#: g10/g10.c:260
msgid "assume no on most questions"
msgstr "assumir nЦo para a maioria das perguntas"
-#: g10/g10.c:257
+#: g10/g10.c:261
msgid "add this keyring to the list of keyrings"
msgstr "adicionar este chaveiro Ю lista de chaveiros"
-#: g10/g10.c:258
+#: g10/g10.c:262
msgid "add this secret keyring to the list"
msgstr "adicionar este chaveiro secreto Ю lista"
-#: g10/g10.c:259
+#: g10/g10.c:263
msgid "|NAME|use NAME as default secret key"
msgstr "|NOME|usar NOME como chave secreta padrЦo"
-#: g10/g10.c:260
+#: g10/g10.c:264
msgid "|HOST|use this keyserver to lookup keys"
msgstr "|ENDEREгO|usar este servidor para buscar chaves"
-#: g10/g10.c:261
+#: g10/g10.c:265
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:266
msgid "read options from file"
msgstr "ler opГУes do arquivo"
-#: g10/g10.c:264
+#: g10/g10.c:268
msgid "set debugging flags"
msgstr "definir parБmetros de depuraГЦo"
-#: g10/g10.c:265
+#: g10/g10.c:269
msgid "enable full debugging"
msgstr "habilitar depuraГЦo completa"
-#: g10/g10.c:266
+#: g10/g10.c:270
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
+#: g10/g10.c:271
msgid "do not write comment packets"
msgstr "nЦo escrever pacotes de comentАrio"
-#: g10/g10.c:268
+#: g10/g10.c:272
msgid "(default is 1)"
msgstr "(o padrЦo И 1)"
-#: g10/g10.c:269
+#: g10/g10.c:273
msgid "(default is 3)"
msgstr "(o padrЦo И 3)"
-#: g10/g10.c:271
+#: g10/g10.c:275
msgid "|FILE|load extension module FILE"
msgstr "|ARQUIVO|carregar mСdulo de extensЦo ARQUIVO"
-#: g10/g10.c:272
+#: g10/g10.c:276
msgid "emulate the mode described in RFC1991"
msgstr "emular o modo descrito no RFC1991"
-#: g10/g10.c:273
+#: g10/g10.c:277
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:278
msgid "|N|use passphrase mode N"
msgstr "|N|usar frase secreta modo N"
-#: g10/g10.c:276
+#: g10/g10.c:280
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:282
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:283
msgid "|NAME|use cipher algorithm NAME"
msgstr "|NOME|usar algoritmo de criptografia NOME"
-#: g10/g10.c:280
+#: g10/g10.c:284
msgid "|NAME|use message digest algorithm NAME"
msgstr "|NOME|usar algoritmo de \"digest\" de mensagens NOME"
-#: g10/g10.c:281
+#: g10/g10.c:285
msgid "|N|use compress algorithm N"
msgstr "|N|usar algoritmo de compressЦo N"
-#: g10/g10.c:282
+#: g10/g10.c:286
msgid "throw keyid field of encrypted packets"
msgstr ""
"eliminar o campo keyid dos pacotes\n"
"criptografados"
-#: g10/g10.c:283
+#: g10/g10.c:287
msgid "|NAME=VALUE|use this notation data"
msgstr "|NOME=VALOR|usar estes dados de notaГЦo"
-#: g10/g10.c:285
+#: g10/g10.c:289
msgid ""
"@\n"
"Examples:\n"
@@ -638,15 +638,15 @@ msgstr ""
" --list-keys [nomes] mostrar chaves\n"
" --fingerprint [nomes] mostrar impressУes digitais\n"
-#: g10/g10.c:370
+#: g10/g10.c:376
msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
msgstr "Por favor comunique bugs para <gnupg-bugs@gnu.org>.\n"
-#: g10/g10.c:374
+#: g10/g10.c:380
msgid "Usage: gpg [options] [files] (-h for help)"
msgstr "Uso: gpg [opГУes] [arquivos] (-h para ajuda)"
-#: g10/g10.c:377
+#: g10/g10.c:383
msgid ""
"Syntax: gpg [options] [files]\n"
"sign, check, encrypt or decrypt\n"
@@ -656,7 +656,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:388
msgid ""
"\n"
"Supported algorithms:\n"
@@ -664,185 +664,185 @@ msgstr ""
"\n"
"Algoritmos suportados:\n"
-#: g10/g10.c:456
+#: g10/g10.c:465
msgid "usage: gpg [options] "
msgstr "uso: gpg [opГУes] "
-#: g10/g10.c:509
+#: g10/g10.c:518
msgid "conflicting commands\n"
msgstr "comandos conflitantes\n"
-#: g10/g10.c:644
+#: g10/g10.c:653
#, 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:657
#, c-format
msgid "option file `%s': %s\n"
msgstr "arquivo de opГУes `%s': %s\n"
-#: g10/g10.c:655
+#: g10/g10.c:664
#, c-format
msgid "reading options from `%s'\n"
msgstr "lendo opГУes de `%s'\n"
-#: g10/g10.c:835
+#: g10/g10.c:844
#, 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:911 g10/g10.c:920
#, 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:913
#, c-format
msgid "%s not allowed with %s!\n"
msgstr "%s nЦo И permitido com %s!\n"
-#: g10/g10.c:897
+#: g10/g10.c:916
#, 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:935 g10/g10.c:947
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:941 g10/g10.c:953
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:957
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:960
#, 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:962
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:964
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:966
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:969
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:973
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:1050
#, 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:1056
msgid "--store [filename]"
msgstr "--store [nome_do_arquivo]"
-#: g10/g10.c:1044
+#: g10/g10.c:1063
msgid "--symmetric [filename]"
msgstr "--symmetric [nome_do_arquivo]"
-#: g10/g10.c:1052
+#: g10/g10.c:1071
msgid "--encrypt [filename]"
msgstr "--encrypt [nome_do_arquivo]"
-#: g10/g10.c:1065
+#: g10/g10.c:1084
msgid "--sign [filename]"
msgstr "--sign [nome_do_arquivo]"
-#: g10/g10.c:1078
+#: g10/g10.c:1097
msgid "--sign --encrypt [filename]"
msgstr "--sign --encrypt [nome_do_arquivo]"
-#: g10/g10.c:1092
+#: g10/g10.c:1111
msgid "--clearsign [filename]"
msgstr "--clearsign [nome_do_arquivo]"
-#: g10/g10.c:1104
+#: g10/g10.c:1123
msgid "--decrypt [filename]"
msgstr "--decrypt [nome_do_arquivo]"
-#: g10/g10.c:1112
+#: g10/g10.c:1131
msgid "--sign-key user-id"
msgstr "--sign-key id-usuАrio"
-#: g10/g10.c:1120
+#: g10/g10.c:1139
msgid "--lsign-key user-id"
msgstr "--lsign-key id-usuАrio"
-#: g10/g10.c:1128
+#: g10/g10.c:1147
msgid "--edit-key user-id [commands]"
msgstr "--edit-key id-usuАrio [comandos]"
-#: g10/g10.c:1144
+#: g10/g10.c:1163
msgid "--delete-secret-key user-id"
msgstr "--delete-secret-key id-usuАrio"
-#: g10/g10.c:1147
+#: g10/g10.c:1166
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:1190 g10/sign.c:368
#, c-format
msgid "can't open %s: %s\n"
msgstr "impossМvel abrir %s: %s\n"
-#: g10/g10.c:1182
+#: g10/g10.c:1201
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:1262
#, c-format
msgid "dearmoring failed: %s\n"
msgstr "retirada de armadura falhou: %s\n"
-#: g10/g10.c:1251
+#: g10/g10.c:1270
#, 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:1338
#, c-format
msgid "invalid hash algorithm `%s'\n"
msgstr "algoritmo de hash invАlido `%s'\n"
-#: g10/g10.c:1400
+#: g10/g10.c:1419
msgid "[filename]"
msgstr "[nome_do_arquivo]"
-#: g10/g10.c:1404
+#: g10/g10.c:1423
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:1426 g10/verify.c:66
#, c-format
msgid "can't open `%s'\n"
msgstr "impossМvel abrir `%s'\n"
-#: g10/g10.c:1576
+#: g10/g10.c:1594
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:1600
msgid ""
"a notation name must have only letters, digits, dots or underscores and end "
"with an '='\n"
@@ -850,12 +850,12 @@ 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:1606
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:1614
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"
@@ -936,21 +936,21 @@ msgstr ""
#. Translators: this shoud fit into 24 bytes to that the fingerprint
#. * data is properly aligned with the user ID
-#: g10/pkclist.c:53
+#: g10/pkclist.c:54
msgid " Fingerprint:"
msgstr " ImpressЦo digital:"
-#: g10/pkclist.c:80
+#: g10/pkclist.c:81
msgid "Fingerprint:"
msgstr "ImpressЦo digital:"
# ???
#. a string with valid answers
-#: g10/pkclist.c:197
+#: g10/pkclist.c:198
msgid "sSmMqQ"
msgstr ""
-#: g10/pkclist.c:201
+#: g10/pkclist.c:202
#, c-format
msgid ""
"No trust value assigned to %lu:\n"
@@ -959,7 +959,7 @@ msgstr ""
"Nenhum valor de confianГa designado para %lu:\n"
"%4u%c/%08lX %s \""
-#: g10/pkclist.c:213
+#: g10/pkclist.c:214
msgid ""
"Please decide how far you trust this user to correctly\n"
"verify other users' keys (by looking at passports,\n"
@@ -982,23 +982,23 @@ msgstr ""
" 4 = Eu confio completamente\n"
" s = Mostrar mais informaГУes\n"
-#: g10/pkclist.c:222
+#: g10/pkclist.c:223
msgid " m = back to the main menu\n"
msgstr " m = volta ao menu principal\n"
-#: g10/pkclist.c:224
+#: g10/pkclist.c:225
msgid " q = quit\n"
msgstr " q = sair\n"
-#: g10/pkclist.c:230
+#: g10/pkclist.c:231
msgid "Your decision? "
msgstr "Sua decisЦo? "
-#: g10/pkclist.c:252
+#: g10/pkclist.c:253
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:324
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 +1008,13 @@ msgstr ""
"Vamos ver se И possМvel designar alguns valores de confianГa ausentes.\n"
"\n"
-#: g10/pkclist.c:329
+#: g10/pkclist.c:330
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:332
msgid ""
"No certificates with undefined trust found.\n"
"\n"
@@ -1022,7 +1022,7 @@ msgstr ""
"Nenhum certificado com confianГa indefinida encontrado.\n"
"\n"
-#: g10/pkclist.c:333
+#: g10/pkclist.c:334
msgid ""
"No trust values changed.\n"
"\n"
@@ -1030,36 +1030,36 @@ msgstr ""
"Nenhum valor de confianГa modificado.\n"
"\n"
-#: g10/pkclist.c:350
+#: g10/pkclist.c:351
#, 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:357 g10/pkclist.c:367 g10/pkclist.c:476
msgid "Use this key anyway? "
msgstr "Usa esta chave de qualquer modo? "
-#: g10/pkclist.c:360
+#: g10/pkclist.c:361
#, 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:391
#, c-format
msgid "%08lX: key has expired\n"
msgstr "%08lX: a chave expirou\n"
-#: g10/pkclist.c:396
+#: g10/pkclist.c:397
#, 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:411
#, 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:417
#, c-format
msgid ""
"%08lX: It is not sure that this key really belongs to the owner\n"
@@ -1068,15 +1068,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:423
msgid "This key probably belongs to the owner\n"
msgstr "Esta chave provavelmente pertence ao dono\n"
-#: g10/pkclist.c:427
+#: g10/pkclist.c:428
msgid "This key belongs to us\n"
msgstr "Esta chave pertence a nСs\n"
-#: g10/pkclist.c:470
+#: g10/pkclist.c:471
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 +1088,65 @@ msgstr ""
"sim Ю prСxima pergunta\n"
"\n"
-#: g10/pkclist.c:484 g10/pkclist.c:507
+#: g10/pkclist.c:485 g10/pkclist.c:508
msgid "WARNING: Using untrusted key!\n"
msgstr "AVISO: Usando chave nЦo confiАvel!\n"
-#: g10/pkclist.c:528
+#: g10/pkclist.c:529
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:530
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:534
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:555
msgid "Note: This key has expired!\n"
msgstr "Nota: Esta chave expirou!\n"
-#: g10/pkclist.c:562
+#: g10/pkclist.c:563
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:565
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:582
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:583
msgid " The signature is probably a FORGERY.\n"
msgstr " A assinatura И provavelmente uma FALSIFICAгцO.\n"
-#: g10/pkclist.c:589
+#: g10/pkclist.c:590
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:593
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:695 g10/pkclist.c:717 g10/pkclist.c:842 g10/pkclist.c:887
#, c-format
msgid "%s: skipped: %s\n"
msgstr "%s: ignorado: %s\n"
-#: g10/pkclist.c:702 g10/pkclist.c:868
+#: g10/pkclist.c:703 g10/pkclist.c:869
#, 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:730
msgid ""
"You did not specify a user ID. (you may use \"-r\")\n"
"\n"
@@ -1154,44 +1154,44 @@ msgstr ""
"VocЙ nЦo especificou um identificador de usuАrio. (pode-se usar \"-r\")\n"
"\n"
-#: g10/pkclist.c:739
+#: g10/pkclist.c:740
msgid "Enter the user ID: "
msgstr "Digite o identificador de usuАrio: "
-#: g10/pkclist.c:751
+#: g10/pkclist.c:752
msgid "No such user ID.\n"
msgstr "Identificador de usuАrio inexistente.\n"
-#: g10/pkclist.c:756
+#: g10/pkclist.c:757
#, fuzzy
msgid "skipped: public key already set as default recipient\n"
msgstr "%s: ignorado: a chave pЗblica jА estА presente\n"
-#: g10/pkclist.c:778
+#: g10/pkclist.c:779
msgid "Public key is disabled.\n"
msgstr "A chave pЗblica estА desativada.\n"
-#: g10/pkclist.c:785
+#: g10/pkclist.c:786
#, fuzzy
msgid "skipped: public key already set with --encrypt-to\n"
msgstr "%s: ignorado: a chave pЗblica jА estА presente\n"
-#: g10/pkclist.c:816
+#: g10/pkclist.c:817
#, c-format
msgid "unknown default recipient `%s'\n"
msgstr "destinatАrio padrЦo desconhecido `%s'\n"
-#: g10/pkclist.c:849
+#: g10/pkclist.c:850
#, 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:855
#, 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:893
msgid "no valid addressees\n"
msgstr "nenhum endereГo vАlido\n"
@@ -1502,7 +1502,7 @@ msgstr ""
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:1018 g10/sig-check.c:314 g10/sign.c:106
#, c-format
msgid ""
"key has been created %lu second in future (time warp or clock problem)\n"
@@ -1510,7 +1510,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:1020 g10/sig-check.c:316 g10/sign.c:108
#, c-format
msgid ""
"key has been created %lu seconds in future (time warp or clock problem)\n"
@@ -1522,7 +1522,7 @@ msgstr ""
msgid "Really create? "
msgstr "Realmente criar? "
-#: g10/encode.c:91 g10/openfile.c:156 g10/openfile.c:246 g10/tdbio.c:468
+#: g10/encode.c:91 g10/openfile.c:163 g10/openfile.c:272 g10/tdbio.c:468
#: g10/tdbio.c:529
#, c-format
msgid "%s: can't open: %s\n"
@@ -1533,17 +1533,17 @@ 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"
@@ -1690,7 +1690,7 @@ msgstr "chave %08lX: chave pЗblica nЦo encontrada: %s\n"
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:399 g10/openfile.c:215 g10/sign.c:269 g10/sign.c:582
#, c-format
msgid "writing to `%s'\n"
msgstr "escrevendo para `%s'\n"
@@ -1862,7 +1862,7 @@ msgstr "chave %08lX: detectado ID de usuАrio duplicado - unido\n"
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:1128 g10/import.c:1181
#, c-format
msgid "key %08lX: our copy has no self-signature\n"
msgstr "chave %08lX: nossa cСpia nЦo tem auto-assinatura\n"
@@ -1948,7 +1948,7 @@ msgstr ""
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:370 g10/keyedit.c:1832 g10/keyedit.c:1881 g10/sign.c:129
#, c-format
msgid "signing failed: %s\n"
msgstr "assinatura falhou: %s\n"
@@ -2445,89 +2445,89 @@ msgstr "nenhuma chave secreta para descriptografia disponМvel\n"
msgid "public key decryption failed: %s\n"
msgstr "descriptografia de chave pЗblica falhou: %s\n"
-#: g10/mainproc.c:330
+#: g10/mainproc.c:332
msgid "decryption okay\n"
msgstr "descriptografia correta\n"
-#: g10/mainproc.c:335
+#: g10/mainproc.c:337
msgid "WARNING: encrypted message has been manipulated!\n"
msgstr "CUIDADO: a mensagem criptografada foi manipulada!\n"
-#: g10/mainproc.c:340
+#: g10/mainproc.c:342
#, c-format
msgid "decryption failed: %s\n"
msgstr "descriptografia falhou: %s\n"
-#: g10/mainproc.c:358
+#: g10/mainproc.c:360
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:362
#, 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:596 g10/mainproc.c:605
msgid "WARNING: invalid notation data found\n"
msgstr "AVISO: dados de notaГЦo invАlidos encontrados\n"
-#: g10/mainproc.c:599
+#: g10/mainproc.c:608
msgid "Notation: "
msgstr "NotaГЦo: "
-#: g10/mainproc.c:606
+#: g10/mainproc.c:615
msgid "Policy: "
msgstr "PolМtica: "
-#: g10/mainproc.c:1025
+#: g10/mainproc.c:1034
msgid "signature verification suppressed\n"
msgstr "verificaГЦo de assinatura suprimida\n"
-#: g10/mainproc.c:1031
+#: g10/mainproc.c:1039
#, 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:1066 g10/mainproc.c:1077
msgid "BAD signature from \""
msgstr "Assinatura INCORRETA de \""
-#: g10/mainproc.c:1058 g10/mainproc.c:1069
+#: g10/mainproc.c:1067 g10/mainproc.c:1078
msgid "Good signature from \""
msgstr "Assinatura correta de \""
-#: g10/mainproc.c:1060
+#: g10/mainproc.c:1069
msgid " aka \""
msgstr " ou \""
-#: g10/mainproc.c:1115
+#: g10/mainproc.c:1124
#, c-format
msgid "Can't check signature: %s\n"
msgstr "ImpossМvel verificar assinatura: %s\n"
-#: g10/mainproc.c:1212
+#: g10/mainproc.c:1225
msgid "old style (PGP 2.x) signature\n"
msgstr "formato de assinatura antigo (PGP2.x)\n"
-#: g10/mainproc.c:1217
+#: g10/mainproc.c:1230
msgid "invalid root packet detected in proc_tree()\n"
msgstr "pacote raiz invАlido detectado em proc_tree()\n"
-#: g10/misc.c:94
+#: g10/misc.c:95
#, c-format
msgid "can't disable core dumps: %s\n"
msgstr "impossМvel desativar core dumps: %s\n"
-#: g10/misc.c:97
+#: g10/misc.c:98
msgid "WARNING: program may create a core file!\n"
msgstr "AVISO: O programa pode criar um arquivo core!\n"
-#: g10/misc.c:205
+#: g10/misc.c:206
msgid "Experimental algorithms should not be used!\n"
msgstr "Algoritmos experimentais nЦo devem ser usados!\n"
-#: g10/misc.c:219
+#: g10/misc.c:220
msgid ""
"RSA keys are deprecated; please consider creating a new key and use this key "
"in the future\n"
@@ -2535,7 +2535,7 @@ msgstr ""
"Chaves RSA nЦo sЦo recomendАveis; por favor considere criar uma nova chave e "
"usА-la no futuro\n"
-#: g10/misc.c:241
+#: g10/misc.c:242
msgid "this cipher algorithm is depreciated; please use a more standard one!\n"
msgstr ""
"este algoritmo de criptografia И depreciado; por favor use algum\n"
@@ -2561,7 +2561,7 @@ msgstr ""
"VocЙ precisa de uma frase secreta para desbloquear a chave secreta do\n"
"usuАrio: \""
-#: g10/passphrase.c:168
+#: g10/passphrase.c:167
#, c-format
msgid "%u-bit %s key, ID %08lX, created %s"
msgstr "chave de %u-bit/%s, ID %08lX, criada em %s"
@@ -2587,6 +2587,11 @@ 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:311
+#, fuzzy
+msgid "Detached signature.\n"
+msgstr "%d assinatura removida.\n"
+
#: g10/plaintext.c:315
msgid "Please enter name of data file: "
msgstr "Por favor digite o nome do arquivo de dados: "
@@ -2600,92 +2605,92 @@ msgstr "lendo de \"stdin\" ...\n"
msgid "can't open signed data `%s'\n"
msgstr "impossМvel abrir dados assinados `%s'\n"
-#: g10/pubkey-enc.c:79
+#: g10/pubkey-enc.c:80
#, c-format
msgid "anonymous receiver; trying secret key %08lX ...\n"
msgstr "destinatАrio anТnimo; tentando chave secreta %08lX ...\n"
-#: g10/pubkey-enc.c:85
+#: g10/pubkey-enc.c:86
msgid "okay, we are the anonymous recipient.\n"
msgstr "certo, nСs somos o destinatАrio anТnimo.\n"
-#: g10/pubkey-enc.c:137
+#: g10/pubkey-enc.c:138
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:192
#, 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/seckey-cert.c:56
#, 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:181
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:246
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:201
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:297
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:305
#, 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:306
#, 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:322
#, 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:379
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:133
#, 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:264 g10/sign.c:577
#, c-format
msgid "can't create %s: %s\n"
msgstr "impossМvel criar %s: %s\n"
-#: g10/sign.c:361
+#: g10/sign.c:363
msgid "signing:"
msgstr "assinando:"
-#: g10/sign.c:404
+#: g10/sign.c:406
#, c-format
msgid "WARNING: `%s' is an empty file\n"
msgstr "AVISO: `%s' И um arquivo vazio\n"
-#: g10/textfilter.c:128
+#: g10/textfilter.c:129
#, 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:198
#, c-format
msgid "input line longer than %d characters\n"
msgstr "linha de entrada maior que %d caracteres\n"
@@ -2724,7 +2729,7 @@ msgstr "%s: diretСrio criado\n"
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:211 g10/openfile.c:279 g10/ringedit.c:1350 g10/tdbio.c:458
#, c-format
msgid "%s: can't create: %s\n"
msgstr "%s: impossМvel criar: %s\n"
@@ -3112,26 +3117,26 @@ msgstr "AVISO: ainda И impossМvel manipular registros de preferЙncias longos\n"
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:335 g10/ringedit.c:1355
#, c-format
msgid "%s: keyring created\n"
msgstr "%s: chaveiro criado\n"
-#: g10/ringedit.c:1530
+#: g10/ringedit.c:1532
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:1533
#, c-format
msgid "%s is the unchanged one\n"
msgstr "%s И o nЦo modificado\n"
-#: g10/ringedit.c:1532
+#: g10/ringedit.c:1534
#, c-format
msgid "%s is the new one\n"
msgstr "%s И o novo\n"
-#: g10/ringedit.c:1533
+#: g10/ringedit.c:1535
msgid "Please fix this possible security flaw\n"
msgstr "Por favor conserte este possМvel furo de seguranГa\n"
@@ -3156,60 +3161,60 @@ msgstr ""
"para assinaturas!\n"
#. do not overwrite
-#: g10/openfile.c:65
+#: g10/openfile.c:73
#, c-format
msgid "File `%s' exists. "
msgstr "Arquivo `%s' jА existe. "
-#: g10/openfile.c:67
+#: g10/openfile.c:75
msgid "Overwrite (y/N)? "
msgstr "Sobrescrever (s/N)? "
-#: g10/openfile.c:97
+#: g10/openfile.c:104
#, c-format
msgid "%s: unknown suffix\n"
msgstr "%s: sufixo desconhecido\n"
-#: g10/openfile.c:119
+#: g10/openfile.c:126
msgid "Enter new filename"
msgstr "Digite novo nome de arquivo"
-#: g10/openfile.c:160
+#: g10/openfile.c:167
msgid "writing to stdout\n"
msgstr "escrevendo em \"stdout\"\n"
-#: g10/openfile.c:219
+#: g10/openfile.c:245
#, c-format
msgid "assuming signed data in `%s'\n"
msgstr "assumindo dados assinados em `%s'\n"
-#: g10/openfile.c:269
+#: g10/openfile.c:295
#, c-format
msgid "%s: new options file created\n"
msgstr "%s: novo arquivo de opГУes criado\n"
#: g10/encr-data.c:66
#, c-format
-msgid "%s encrypted data\n"
-msgstr "dados criptografados com %s\n"
-
-#: g10/encr-data.c:68
-#, c-format
msgid "encrypted with unknown algorithm %d\n"
msgstr "criptografado com algoritmo desconhecido %d\n"
-#: g10/encr-data.c:85
+#: g10/encr-data.c:71
+#, c-format
+msgid "%s encrypted data\n"
+msgstr "dados criptografados com %s\n"
+
+#: g10/encr-data.c:101
msgid ""
"WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
msgstr ""
"AVISO: A mensagem foi criptografada com uma chave fraca na criptografia\n"
"simИtrica.\n"
-#: g10/seskey.c:52
+#: g10/seskey.c:63
msgid "weak key created - retrying\n"
msgstr "chave fraca criada - tentando novamente\n"
-#: g10/seskey.c:57
+#: g10/seskey.c:68
#, c-format
msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
msgstr ""
diff --git a/po/pt_PT.po b/po/pt_PT.po
index 03d6e51cf..03062f20b 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: 1999-10-26 13:53+0200\n"
"PO-Revision-Date: 1999-09-09 20:28+0000\n"
"Last-Translator: Pedro Morais <morais@poli.org>\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:281
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:282
msgid "(you may have used the wrong program for this task)\n"
msgstr "(vocЙ pode ter usado o programa errado para esta tarefa)\n"
@@ -283,7 +283,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:186
msgid ""
"@Commands:\n"
" "
@@ -291,136 +291,136 @@ msgstr ""
"@Comandos:\n"
" "
-#: g10/g10.c:187
+#: g10/g10.c:188
msgid "|[file]|make a signature"
msgstr "|[ficheiro]|fazer uma assinatura"
-#: g10/g10.c:188
+#: g10/g10.c:189
msgid "|[file]|make a clear text signature"
msgstr "|[ficheiro]|fazer uma assinatura em texto puro"
-#: g10/g10.c:189
+#: g10/g10.c:190
msgid "make a detached signature"
msgstr "fazer uma assinatura separada"
-#: g10/g10.c:190
+#: g10/g10.c:191
msgid "encrypt data"
msgstr "encriptar dados"
-#: g10/g10.c:191
+#: g10/g10.c:192
msgid "encryption only with symmetric cipher"
msgstr "encriptar apenas com cifra simИtrica"
-#: g10/g10.c:192
+#: g10/g10.c:193
msgid "store only"
msgstr "apenas armazenar"
-#: g10/g10.c:193
+#: g10/g10.c:194
msgid "decrypt data (default)"
msgstr "desencriptar dados (acГЦo por omissЦo)"
-#: g10/g10.c:194
+#: g10/g10.c:195
msgid "verify a signature"
msgstr "verificar uma assinatura"
-#: g10/g10.c:195
+#: g10/g10.c:196
msgid "list keys"
msgstr "listar as chaves"
-#: g10/g10.c:197
+#: g10/g10.c:198
msgid "list keys and signatures"
msgstr "listar as chaves e as assinaturas"
-#: g10/g10.c:198
+#: g10/g10.c:199
msgid "check key signatures"
msgstr "verificar as assinaturas das chaves"
-#: g10/g10.c:199
+#: g10/g10.c:200
msgid "list keys and fingerprints"
msgstr "listar as chaves e as impressУes digitais"
-#: g10/g10.c:200
+#: g10/g10.c:201
msgid "list secret keys"
msgstr "listar as chaves secretas"
-#: g10/g10.c:201
+#: g10/g10.c:202
msgid "generate a new key pair"
msgstr "gerar um novo par de chaves"
-#: g10/g10.c:202
+#: g10/g10.c:203
msgid "remove key from the public keyring"
msgstr "remover a chave do porta-chaves pЗblico"
-#: g10/g10.c:203
+#: g10/g10.c:204
msgid "sign a key"
msgstr "assinar uma chave"
-#: g10/g10.c:204
+#: g10/g10.c:205
msgid "sign a key locally"
msgstr "assinar uma chave localmente"
-#: g10/g10.c:205
+#: g10/g10.c:206
msgid "sign or edit a key"
msgstr "assinar ou editar uma chave"
-#: g10/g10.c:206
+#: g10/g10.c:207
msgid "generate a revocation certificate"
msgstr "gerar um certificado de revogaГЦo"
-#: g10/g10.c:207
+#: g10/g10.c:208
msgid "export keys"
msgstr "exportar chaves"
-#: g10/g10.c:208
+#: g10/g10.c:209
msgid "export keys to a key server"
msgstr "exportar chaves para um servidor"
-#: g10/g10.c:209
+#: g10/g10.c:210
msgid "import keys from a key server"
msgstr "importar chaves de um servidor"
-#: g10/g10.c:212
+#: g10/g10.c:213
msgid "import/merge keys"
msgstr "importar/fundir chaves"
-#: g10/g10.c:214
+#: g10/g10.c:215
msgid "list only the sequence of packets"
msgstr "listar apenas as sequЙncias de pacotes"
# ownertrust ???
-#: g10/g10.c:216
+#: g10/g10.c:217
msgid "export the ownertrust values"
msgstr "exportar os valores de confianГa"
-#: g10/g10.c:218
+#: g10/g10.c:219
msgid "import ownertrust values"
msgstr "importar os valores de confianГa"
-#: g10/g10.c:220
+#: g10/g10.c:221
msgid "update the trust database"
msgstr "actualizar a base de dados de confianГa"
-#: g10/g10.c:222
+#: g10/g10.c:223
msgid "|[NAMES]|check the trust database"
msgstr "|[NOMES]|verificar a base de dados de confianГa"
-#: g10/g10.c:223
+#: g10/g10.c:224
msgid "fix a corrupted trust database"
msgstr "consertar uma base de dados de confianГa"
-#: g10/g10.c:224
+#: g10/g10.c:225
msgid "De-Armor a file or stdin"
msgstr "retirar armadura de um ficheiro ou do \"stdin\""
-#: g10/g10.c:225
+#: g10/g10.c:227
msgid "En-Armor a file or stdin"
msgstr "criar armadura para um ficheiro ou \"stdin\""
-#: g10/g10.c:226
+#: g10/g10.c:229
msgid "|algo [files]|print message digests"
msgstr "|algo [ficheiros]|imprimir \"digests\" de mensagens"
-#: g10/g10.c:230
+#: g10/g10.c:233
msgid ""
"@\n"
"Options:\n"
@@ -430,184 +430,185 @@ msgstr ""
"OpГУes:\n"
" "
-#: g10/g10.c:232
+#: g10/g10.c:235
msgid "create ascii armored output"
msgstr "criar saМda com armadura ascii"
-#: g10/g10.c:233
+#: g10/g10.c:237
msgid "|NAME|encrypt for NAME"
msgstr "|NOME|encriptar para NOME"
-#: g10/g10.c:236
+#: g10/g10.c:240
msgid "|NAME|use NAME as default recipient"
msgstr "|NOME|usar NOME como destinatАrio padrЦo"
-#: g10/g10.c:238
+#: g10/g10.c:242
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:246
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:247
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:249
msgid "use canonical text mode"
msgstr "usar modo de texto canТnico"
-#: g10/g10.c:246
+#: g10/g10.c:250
msgid "use as output file"
msgstr "usar como ficheiro de saМda"
-#: g10/g10.c:247
+#: g10/g10.c:251
msgid "verbose"
msgstr "detalhado"
-#: g10/g10.c:248
+#: g10/g10.c:252
msgid "be somewhat more quiet"
msgstr "ser mais silencioso"
-#: g10/g10.c:249
+#: g10/g10.c:253
msgid "don't use the terminal at all"
msgstr "nunca usar o terminal"
-#: g10/g10.c:250
+#: g10/g10.c:254
msgid "force v3 signatures"
msgstr "forГar assinaturas v3"
-#: g10/g10.c:251
+#: g10/g10.c:255
msgid "always use a MDC for encryption"
msgstr "sempre usar um MDC para encriptar"
-#: g10/g10.c:252
+#: g10/g10.c:256
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:258
msgid "batch mode: never ask"
msgstr "modo nЦo-interactivo: nunca perguntar"
-#: g10/g10.c:255
+#: g10/g10.c:259
msgid "assume yes on most questions"
msgstr "assumir sim para a maioria das perguntas"
-#: g10/g10.c:256
+#: g10/g10.c:260
msgid "assume no on most questions"
msgstr "assumir nЦo para a maioria das perguntas"
-#: g10/g10.c:257
+#: g10/g10.c:261
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:262
msgid "add this secret keyring to the list"
msgstr "adicionar este porta-chaves secreto Ю lista"
-#: g10/g10.c:259
+#: g10/g10.c:263
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:264
msgid "|HOST|use this keyserver to lookup keys"
msgstr "|ENDEREгO|usar este servidor para buscar chaves"
-#: g10/g10.c:261
+#: g10/g10.c:265
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:266
msgid "read options from file"
msgstr "ler opГУes do ficheiro"
-#: g10/g10.c:264
+#: g10/g10.c:268
msgid "set debugging flags"
msgstr "definir parБmetros de depuraГЦo"
-#: g10/g10.c:265
+#: g10/g10.c:269
msgid "enable full debugging"
msgstr "habilitar depuraГЦo completa"
-#: g10/g10.c:266
+#: g10/g10.c:270
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
+#: g10/g10.c:271
msgid "do not write comment packets"
msgstr "nЦo escrever pacotes de comentАrio"
-#: g10/g10.c:268
+#: g10/g10.c:272
msgid "(default is 1)"
msgstr "(por omissЦo 1)"
-#: g10/g10.c:269
+#: g10/g10.c:273
msgid "(default is 3)"
msgstr "(por omissЦo 3)"
-#: g10/g10.c:271
+#: g10/g10.c:275
msgid "|FILE|load extension module FILE"
msgstr "|FICHEIRO|carregar mСdulo de extensЦo FICHEIRO"
-#: g10/g10.c:272
+#: g10/g10.c:276
msgid "emulate the mode described in RFC1991"
msgstr "emular o modo descrito no RFC1991"
-#: g10/g10.c:273
+#: g10/g10.c:277
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:278
msgid "|N|use passphrase mode N"
msgstr "|N|usar mode de frase secreta N"
-#: g10/g10.c:276
+#: g10/g10.c:280
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:282
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:283
msgid "|NAME|use cipher algorithm NAME"
msgstr "|NOME|usar algoritmo de criptografia NOME"
-#: g10/g10.c:280
+#: g10/g10.c:284
msgid "|NAME|use message digest algorithm NAME"
msgstr "|NOME|usar algoritmo de \"digest\" de mensagens NOME"
-#: g10/g10.c:281
+#: g10/g10.c:285
msgid "|N|use compress algorithm N"
msgstr "|N|usar algoritmo de compressЦo N"
-#: g10/g10.c:282
+#: g10/g10.c:286
msgid "throw keyid field of encrypted packets"
msgstr "eliminar campo keyid dos pacotes encriptados"
-#: g10/g10.c:283
+#: g10/g10.c:287
msgid "|NAME=VALUE|use this notation data"
msgstr "|NOME=VALOR|usar estes dados de notaГЦo"
-#: g10/g10.c:285
+#: g10/g10.c:289
msgid ""
"@\n"
"Examples:\n"
@@ -627,15 +628,15 @@ msgstr ""
" --list-keys [nomes] mostrar chaves\n"
" --fingerprint [nomes] mostrar impressУes digitais\n"
-#: g10/g10.c:370
+#: g10/g10.c:376
msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
msgstr "Por favor comunique bugs para <gnupg-bugs@gnu.org>.\n"
-#: g10/g10.c:374
+#: g10/g10.c:380
msgid "Usage: gpg [options] [files] (-h for help)"
msgstr "Uso: gpg [opГУes] [ficheiros] (-h para ajuda)"
-#: g10/g10.c:377
+#: g10/g10.c:383
msgid ""
"Syntax: gpg [options] [files]\n"
"sign, check, encrypt or decrypt\n"
@@ -645,7 +646,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:388
msgid ""
"\n"
"Supported algorithms:\n"
@@ -653,185 +654,185 @@ msgstr ""
"\n"
"Algoritmos suportados:\n"
-#: g10/g10.c:456
+#: g10/g10.c:465
msgid "usage: gpg [options] "
msgstr "uso: gpg [opГУes] "
-#: g10/g10.c:509
+#: g10/g10.c:518
msgid "conflicting commands\n"
msgstr "comandos em conflito\n"
-#: g10/g10.c:644
+#: g10/g10.c:653
#, 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:657
#, c-format
msgid "option file `%s': %s\n"
msgstr "ficheiro de opГУes `%s': %s\n"
-#: g10/g10.c:655
+#: g10/g10.c:664
#, c-format
msgid "reading options from `%s'\n"
msgstr "a ler opГУes de `%s'\n"
-#: g10/g10.c:835
+#: g10/g10.c:844
#, 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:911 g10/g10.c:920
#, 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:913
#, c-format
msgid "%s not allowed with %s!\n"
msgstr "%s nЦo И permitido com %s!\n"
-#: g10/g10.c:897
+#: g10/g10.c:916
#, 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:935 g10/g10.c:947
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:941 g10/g10.c:953
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:957
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:960
#, 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:962
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:964
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:966
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:969
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:973
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:1050
#, 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:1056
msgid "--store [filename]"
msgstr "--store [nome_do_ficheiro]"
-#: g10/g10.c:1044
+#: g10/g10.c:1063
msgid "--symmetric [filename]"
msgstr "--symmetric [nome_do_ficheiro]"
-#: g10/g10.c:1052
+#: g10/g10.c:1071
msgid "--encrypt [filename]"
msgstr "--encrypt [nome_do_ficheiro]"
-#: g10/g10.c:1065
+#: g10/g10.c:1084
msgid "--sign [filename]"
msgstr "--sign [nome_do_ficheiro]"
-#: g10/g10.c:1078
+#: g10/g10.c:1097
msgid "--sign --encrypt [filename]"
msgstr "--sign --encrypt [nome_do_ficheiro]"
-#: g10/g10.c:1092
+#: g10/g10.c:1111
msgid "--clearsign [filename]"
msgstr "--clearsign [nome_do_ficheiro]"
-#: g10/g10.c:1104
+#: g10/g10.c:1123
msgid "--decrypt [filename]"
msgstr "--decrypt [nome_do_ficheiro]"
-#: g10/g10.c:1112
+#: g10/g10.c:1131
msgid "--sign-key user-id"
msgstr "--sign-key id-utilizador"
-#: g10/g10.c:1120
+#: g10/g10.c:1139
msgid "--lsign-key user-id"
msgstr "--lsign-key id-utilizador"
-#: g10/g10.c:1128
+#: g10/g10.c:1147
msgid "--edit-key user-id [commands]"
msgstr "--edit-key id-utilizador [comandos]"
-#: g10/g10.c:1144
+#: g10/g10.c:1163
msgid "--delete-secret-key user-id"
msgstr "--delete-secret-key id-utilizador"
-#: g10/g10.c:1147
+#: g10/g10.c:1166
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:1190 g10/sign.c:368
#, c-format
msgid "can't open %s: %s\n"
msgstr "impossМvel abrir %s: %s\n"
-#: g10/g10.c:1182
+#: g10/g10.c:1201
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:1262
#, c-format
msgid "dearmoring failed: %s\n"
msgstr "retirada de armadura falhou: %s\n"
-#: g10/g10.c:1251
+#: g10/g10.c:1270
#, 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:1338
#, c-format
msgid "invalid hash algorithm `%s'\n"
msgstr "algoritmo de hash invАlido `%s'\n"
-#: g10/g10.c:1400
+#: g10/g10.c:1419
msgid "[filename]"
msgstr "[nome_do_ficheiro]"
-#: g10/g10.c:1404
+#: g10/g10.c:1423
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:1426 g10/verify.c:66
#, c-format
msgid "can't open `%s'\n"
msgstr "impossМvel abrir `%s'\n"
-#: g10/g10.c:1576
+#: g10/g10.c:1594
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:1600
msgid ""
"a notation name must have only letters, digits, dots or underscores and end "
"with an '='\n"
@@ -839,12 +840,12 @@ 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:1606
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:1614
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"
@@ -925,20 +926,20 @@ msgstr ""
#. Translators: this shoud fit into 24 bytes to that the fingerprint
#. * data is properly aligned with the user ID
-#: g10/pkclist.c:53
+#: g10/pkclist.c:54
msgid " Fingerprint:"
msgstr " ImpressЦo digital:"
-#: g10/pkclist.c:80
+#: g10/pkclist.c:81
msgid "Fingerprint:"
msgstr "ImpressЦo digital:"
#. a string with valid answers
-#: g10/pkclist.c:197
+#: g10/pkclist.c:198
msgid "sSmMqQ"
msgstr "sSmMqQ"
-#: g10/pkclist.c:201
+#: g10/pkclist.c:202
#, c-format
msgid ""
"No trust value assigned to %lu:\n"
@@ -947,7 +948,7 @@ msgstr ""
"Nenhum valor de confianГa designado para %lu:\n"
"%4u%c/%08lX %s \""
-#: g10/pkclist.c:213
+#: g10/pkclist.c:214
msgid ""
"Please decide how far you trust this user to correctly\n"
"verify other users' keys (by looking at passports,\n"
@@ -969,23 +970,23 @@ msgstr ""
" 4 = Eu confio completamente\n"
" s = Mostrar mais informaГУes\n"
-#: g10/pkclist.c:222
+#: g10/pkclist.c:223
msgid " m = back to the main menu\n"
msgstr " m = volta ao menu principal\n"
-#: g10/pkclist.c:224
+#: g10/pkclist.c:225
msgid " q = quit\n"
msgstr " q = sair\n"
-#: g10/pkclist.c:230
+#: g10/pkclist.c:231
msgid "Your decision? "
msgstr "DecisЦo? "
-#: g10/pkclist.c:252
+#: g10/pkclist.c:253
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:324
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 +996,15 @@ msgstr ""
"Vamos ver se И possМvel designar alguns valores de confianГa ausentes.\n"
"\n"
-#: g10/pkclist.c:329
+#: g10/pkclist.c:330
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:332
msgid ""
"No certificates with undefined trust found.\n"
"\n"
@@ -1011,7 +1012,7 @@ msgstr ""
"Nenhum certificado com confianГa indefinida encontrado.\n"
"\n"
-#: g10/pkclist.c:333
+#: g10/pkclist.c:334
msgid ""
"No trust values changed.\n"
"\n"
@@ -1019,36 +1020,36 @@ msgstr ""
"Nenhum valor de confianГa modificado.\n"
"\n"
-#: g10/pkclist.c:350
+#: g10/pkclist.c:351
#, 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:357 g10/pkclist.c:367 g10/pkclist.c:476
msgid "Use this key anyway? "
msgstr "Usar esta chave de qualquer modo? "
-#: g10/pkclist.c:360
+#: g10/pkclist.c:361
#, 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:391
#, c-format
msgid "%08lX: key has expired\n"
msgstr "%08lX: a chave expirou\n"
-#: g10/pkclist.c:396
+#: g10/pkclist.c:397
#, 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:411
#, 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:417
#, c-format
msgid ""
"%08lX: It is not sure that this key really belongs to the owner\n"
@@ -1057,15 +1058,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:423
msgid "This key probably belongs to the owner\n"
msgstr "Esta chave provavelmente pertence ao dono\n"
-#: g10/pkclist.c:427
+#: g10/pkclist.c:428
msgid "This key belongs to us\n"
msgstr "Esta chave pertence-nos\n"
-#: g10/pkclist.c:470
+#: g10/pkclist.c:471
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 +1078,65 @@ msgstr ""
"sim Ю prСxima pergunta\n"
"\n"
-#: g10/pkclist.c:484 g10/pkclist.c:507
+#: g10/pkclist.c:485 g10/pkclist.c:508
msgid "WARNING: Using untrusted key!\n"
msgstr "AVISO: Utilizando chave nЦo confiАvel!\n"
-#: g10/pkclist.c:528
+#: g10/pkclist.c:529
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:530
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:534
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:555
msgid "Note: This key has expired!\n"
msgstr "Nota: Esta chave expirou!\n"
-#: g10/pkclist.c:562
+#: g10/pkclist.c:563
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:565
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:582
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:583
msgid " The signature is probably a FORGERY.\n"
msgstr " A assinatura И provavelmente uma FALSIFICAгцO.\n"
-#: g10/pkclist.c:589
+#: g10/pkclist.c:590
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:593
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:695 g10/pkclist.c:717 g10/pkclist.c:842 g10/pkclist.c:887
#, c-format
msgid "%s: skipped: %s\n"
msgstr "%s: ignorado: %s\n"
-#: g10/pkclist.c:702 g10/pkclist.c:868
+#: g10/pkclist.c:703 g10/pkclist.c:869
#, 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:730
msgid ""
"You did not specify a user ID. (you may use \"-r\")\n"
"\n"
@@ -1143,42 +1144,42 @@ msgstr ""
"VocЙ nЦo especificou um identificador de utilizador. (pode-se usar \"-r\")\n"
"\n"
-#: g10/pkclist.c:739
+#: g10/pkclist.c:740
msgid "Enter the user ID: "
msgstr "Digite o identificador de utilizador: "
-#: g10/pkclist.c:751
+#: g10/pkclist.c:752
msgid "No such user ID.\n"
msgstr "Identificador de utilizador inexistente.\n"
-#: g10/pkclist.c:756
+#: g10/pkclist.c:757
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:779
msgid "Public key is disabled.\n"
msgstr "A chave pЗblica estА desativada.\n"
-#: g10/pkclist.c:785
+#: g10/pkclist.c:786
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:817
#, c-format
msgid "unknown default recipient `%s'\n"
msgstr "destinatАrio padrЦo desconhecido `%s'\n"
-#: g10/pkclist.c:849
+#: g10/pkclist.c:850
#, 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:855
#, 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:893
msgid "no valid addressees\n"
msgstr "nenhum endereГo vАlido\n"
@@ -1257,6 +1258,14 @@ msgstr "DSA permite apenas tamanhos de 512 a 1024\n"
msgid "keysize too small; 768 is smallest value allowed.\n"
msgstr "tamanho muito pequeno; 768 И o valor mМnimo permitido.\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:466
#, c-format
msgid "keysize too large; %d is largest value allowed.\n"
@@ -1279,8 +1288,8 @@ 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
msgid "Do you really need such a large keysize? "
@@ -1344,7 +1353,8 @@ 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) <heinrichh@duesseldorf.de>\"\n"
@@ -1481,7 +1491,7 @@ msgstr ""
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:1018 g10/sig-check.c:314 g10/sign.c:106
#, c-format
msgid ""
"key has been created %lu second in future (time warp or clock problem)\n"
@@ -1489,7 +1499,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:1020 g10/sig-check.c:316 g10/sign.c:108
#, c-format
msgid ""
"key has been created %lu seconds in future (time warp or clock problem)\n"
@@ -1501,7 +1511,7 @@ msgstr ""
msgid "Really create? "
msgstr "Realmente criar? "
-#: g10/encode.c:91 g10/openfile.c:156 g10/openfile.c:246 g10/tdbio.c:468
+#: g10/encode.c:91 g10/openfile.c:163 g10/openfile.c:272 g10/tdbio.c:468
#: g10/tdbio.c:529
#, c-format
msgid "%s: can't open: %s\n"
@@ -1512,17 +1522,17 @@ 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"
@@ -1669,7 +1679,7 @@ msgstr "chave %08lX: chave pЗblica nЦo encontrada: %s\n"
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:399 g10/openfile.c:215 g10/sign.c:269 g10/sign.c:582
#, c-format
msgid "writing to `%s'\n"
msgstr "a escrever para `%s'\n"
@@ -1812,6 +1822,10 @@ msgstr "chave %08lX: ignorado ID de utilizador '"
msgid "key %08lX: skipped subkey\n"
msgstr "chave %08lX: subchave ignorada\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:846
#, c-format
msgid "key %08lX: non exportable signature (class %02x) - skipped\n"
@@ -1837,7 +1851,7 @@ msgstr "chave %08lX: detectado ID de utilizador duplicado - fundido\n"
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:1128 g10/import.c:1181
#, 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"
@@ -1891,6 +1905,8 @@ msgstr "1 ID de utilizador sem auto-assinatura vАlida detectado\n"
msgid "%d user IDs without valid self-signatures detected\n"
msgstr "%d IDs de utilizadores 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
#, c-format
msgid "Already signed by key %08lX\n"
@@ -1921,7 +1937,7 @@ msgstr ""
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:370 g10/keyedit.c:1832 g10/keyedit.c:1881 g10/sign.c:129
#, c-format
msgid "signing failed: %s\n"
msgstr "assinatura falhou: %s\n"
@@ -2179,6 +2195,8 @@ msgstr "activa uma chave"
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
msgid "Secret key is available.\n"
msgstr "Chave secreta disponМvel.\n"
@@ -2352,6 +2370,7 @@ msgstr ""
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
msgid "You have signed these user IDs:\n"
msgstr "Assinou estes identificadores de utilizadores:\n"
@@ -2406,89 +2425,89 @@ msgstr "nenhuma chave secreta para desencriptaГЦo disponМvel\n"
msgid "public key decryption failed: %s\n"
msgstr "desencriptaГЦo de chave pЗblica falhou: %s\n"
-#: g10/mainproc.c:330
+#: g10/mainproc.c:332
msgid "decryption okay\n"
msgstr "desencriptaГЦo correcta\n"
-#: g10/mainproc.c:335
+#: g10/mainproc.c:337
msgid "WARNING: encrypted message has been manipulated!\n"
msgstr "CUIDADO: a mensagem encriptada foi manipulada!\n"
-#: g10/mainproc.c:340
+#: g10/mainproc.c:342
#, c-format
msgid "decryption failed: %s\n"
msgstr "desencriptaГЦo falhou: %s\n"
-#: g10/mainproc.c:358
+#: g10/mainproc.c:360
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:362
#, 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:596 g10/mainproc.c:605
msgid "WARNING: invalid notation data found\n"
msgstr "AVISO: dados de notaГЦo invАlidos encontrados\n"
-#: g10/mainproc.c:599
+#: g10/mainproc.c:608
msgid "Notation: "
msgstr "NotaГЦo: "
-#: g10/mainproc.c:606
+#: g10/mainproc.c:615
msgid "Policy: "
msgstr "PolМtica: "
-#: g10/mainproc.c:1025
+#: g10/mainproc.c:1034
msgid "signature verification suppressed\n"
msgstr "verificaГЦo de assinatura suprimida\n"
-#: g10/mainproc.c:1031
+#: g10/mainproc.c:1039
#, 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:1066 g10/mainproc.c:1077
msgid "BAD signature from \""
msgstr "Assinatura INCORRECTA de \""
-#: g10/mainproc.c:1058 g10/mainproc.c:1069
+#: g10/mainproc.c:1067 g10/mainproc.c:1078
msgid "Good signature from \""
msgstr "Assinatura correta de \""
-#: g10/mainproc.c:1060
+#: g10/mainproc.c:1069
msgid " aka \""
msgstr " ou \""
-#: g10/mainproc.c:1115
+#: g10/mainproc.c:1124
#, c-format
msgid "Can't check signature: %s\n"
msgstr "ImpossМvel verificar assinatura: %s\n"
-#: g10/mainproc.c:1212
+#: g10/mainproc.c:1225
msgid "old style (PGP 2.x) signature\n"
msgstr "formato de assinatura antigo (PGP2.x)\n"
-#: g10/mainproc.c:1217
+#: g10/mainproc.c:1230
msgid "invalid root packet detected in proc_tree()\n"
msgstr "pacote raiz invАlido detectado em proc_tree()\n"
-#: g10/misc.c:94
+#: g10/misc.c:95
#, c-format
msgid "can't disable core dumps: %s\n"
msgstr "impossМvel desactivar core dumps: %s\n"
-#: g10/misc.c:97
+#: g10/misc.c:98
msgid "WARNING: program may create a core file!\n"
msgstr "AVISO: O programa pode criar um ficheiro core!\n"
-#: g10/misc.c:205
+#: g10/misc.c:206
msgid "Experimental algorithms should not be used!\n"
msgstr "Algoritmos experimentais nЦo devem ser usados!\n"
-#: g10/misc.c:219
+#: g10/misc.c:220
msgid ""
"RSA keys are deprecated; please consider creating a new key and use this key "
"in the future\n"
@@ -2496,7 +2515,7 @@ msgstr ""
"Chaves RSA nЦo sЦo recomendАveis; por favor considere criar uma nova chave e "
"usА-la no futuro\n"
-#: g10/misc.c:241
+#: g10/misc.c:242
msgid "this cipher algorithm is depreciated; please use a more standard one!\n"
msgstr ""
"este algoritmo de criptografia nЦo И recomendado;\n"
@@ -2522,7 +2541,7 @@ msgstr ""
"VocЙ precisa de uma frase secreta para desbloquear a chave secreta do\n"
"utilizador: \""
-#: g10/passphrase.c:168
+#: g10/passphrase.c:167
#, c-format
msgid "%u-bit %s key, ID %08lX, created %s"
msgstr "chave de %u-bit/%s, ID %08lX, criada em %s"
@@ -2548,6 +2567,11 @@ 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:311
+#, fuzzy
+msgid "Detached signature.\n"
+msgstr "%d assinatura removida.\n"
+
#: g10/plaintext.c:315
msgid "Please enter name of data file: "
msgstr "Por favor digite o nome do ficheiro de dados: "
@@ -2561,92 +2585,92 @@ msgstr "lendo do \"stdin\" ...\n"
msgid "can't open signed data `%s'\n"
msgstr "impossМvel abrir dados assinados `%s'\n"
-#: g10/pubkey-enc.c:79
+#: g10/pubkey-enc.c:80
#, c-format
msgid "anonymous receiver; trying secret key %08lX ...\n"
msgstr "destinatАrio anСnimo; a tentar chave secreta %08lX ...\n"
-#: g10/pubkey-enc.c:85
+#: g10/pubkey-enc.c:86
msgid "okay, we are the anonymous recipient.\n"
msgstr "certo, nСs somos o destinatАrio anСnimo.\n"
-#: g10/pubkey-enc.c:137
+#: g10/pubkey-enc.c:138
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:192
#, 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/seckey-cert.c:56
#, 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:181
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:246
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:201
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:297
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:305
#, 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:306
#, 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:322
#, 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:379
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:133
#, 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:264 g10/sign.c:577
#, c-format
msgid "can't create %s: %s\n"
msgstr "impossМvel criar %s: %s\n"
-#: g10/sign.c:361
+#: g10/sign.c:363
msgid "signing:"
msgstr "a assinar:"
-#: g10/sign.c:404
+#: g10/sign.c:406
#, c-format
msgid "WARNING: `%s' is an empty file\n"
msgstr "AVISO: `%s' И um ficheiro vazio\n"
-#: g10/textfilter.c:128
+#: g10/textfilter.c:129
#, 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:198
#, c-format
msgid "input line longer than %d characters\n"
msgstr "linha de entrada maior que %d caracteres\n"
@@ -2685,7 +2709,7 @@ msgstr "%s: directoria criada\n"
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:211 g10/openfile.c:279 g10/ringedit.c:1350 g10/tdbio.c:458
#, c-format
msgid "%s: can't create: %s\n"
msgstr "%s: impossМvel criar: %s\n"
@@ -3072,26 +3096,26 @@ msgstr "AVISO: ainda И impossМvel manipular registos de preferЙncias longos\n"
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:335 g10/ringedit.c:1355
#, c-format
msgid "%s: keyring created\n"
msgstr "%s: porta-chaves criado\n"
-#: g10/ringedit.c:1530
+#: g10/ringedit.c:1532
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:1533
#, c-format
msgid "%s is the unchanged one\n"
msgstr "%s И o nЦo modificado\n"
-#: g10/ringedit.c:1532
+#: g10/ringedit.c:1534
#, c-format
msgid "%s is the new one\n"
msgstr "%s И o novo\n"
-#: g10/ringedit.c:1533
+#: g10/ringedit.c:1535
msgid "Please fix this possible security flaw\n"
msgstr "Por favor conserte esta possМvel falha de seguranГa\n"
@@ -3114,60 +3138,61 @@ 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:73
#, c-format
msgid "File `%s' exists. "
msgstr "Arquivo `%s' jА existe. "
-#: g10/openfile.c:67
+#: g10/openfile.c:75
msgid "Overwrite (y/N)? "
msgstr "Escrever por cima (s/N)? "
-#: g10/openfile.c:97
+#: g10/openfile.c:104
#, c-format
msgid "%s: unknown suffix\n"
msgstr "%s: sufixo desconhecido\n"
-#: g10/openfile.c:119
+#: g10/openfile.c:126
msgid "Enter new filename"
msgstr "Digite novo nome de ficheiro"
-#: g10/openfile.c:160
+#: g10/openfile.c:167
msgid "writing to stdout\n"
msgstr "a escrever em \"stdout\"\n"
-#: g10/openfile.c:219
+#: g10/openfile.c:245
#, c-format
msgid "assuming signed data in `%s'\n"
msgstr "a assumir dados assinados em `%s'\n"
-#: g10/openfile.c:269
+#: g10/openfile.c:295
#, c-format
msgid "%s: new options file created\n"
msgstr "%s: novo ficheiro de opГУes criado\n"
#: g10/encr-data.c:66
#, c-format
-msgid "%s encrypted data\n"
-msgstr "dados encriptados com %s\n"
-
-#: g10/encr-data.c:68
-#, c-format
msgid "encrypted with unknown algorithm %d\n"
msgstr "encriptado com algoritmo desconhecido %d\n"
-#: g10/encr-data.c:85
+#: g10/encr-data.c:71
+#, c-format
+msgid "%s encrypted data\n"
+msgstr "dados encriptados com %s\n"
+
+#: g10/encr-data.c:101
msgid ""
"WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
msgstr ""
"AVISO: A mensagem foi encriptada com uma chave fraca na criptografia\n"
"simИtrica.\n"
-#: g10/seskey.c:52
+#: g10/seskey.c:63
msgid "weak key created - retrying\n"
msgstr "chave fraca criada - tentando novamente\n"
-#: g10/seskey.c:57
+#: g10/seskey.c:68
#, c-format
msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
msgstr ""
@@ -3400,7 +3425,8 @@ 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
diff --git a/po/ru.po b/po/ru.po
index 2dc1ba340..1d2282e78 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: 1999-10-26 13:53+0200\n"
"Content-Type: text/plain; charset=\n"
"Date: 1998-01-26 22:08:36+0100\n"
"From: Gregory Steuck <steuck@iname.com>\n"
@@ -28,11 +28,11 @@ msgstr ""
"Эту проблему можно решить, установив программу suid(root).\n"
"Обратитесь для этого к администратору Вашей системы.\n"
-#: util/secmem.c:275
+#: util/secmem.c:281
msgid "operation is not possible without initialized secure memory\n"
msgstr ""
-#: util/secmem.c:276
+#: util/secmem.c:282
msgid "(you may have used the wrong program for this task)\n"
msgstr ""
@@ -338,7 +338,7 @@ msgstr ""
"Недостаточно случайных данных. Пожалуйста, поделайте что-нибудь, чтобы\n"
"ОС могла набрать дополнительные случайные числа! (нужно еще %d байт)\n"
-#: g10/g10.c:185
+#: g10/g10.c:186
msgid ""
"@Commands:\n"
" "
@@ -346,142 +346,142 @@ msgstr ""
"@Команды:\n"
" "
-#: g10/g10.c:187
+#: g10/g10.c:188
#, fuzzy
msgid "|[file]|make a signature"
msgstr "|[файл]|создать подпись"
-#: g10/g10.c:188
+#: g10/g10.c:189
#, fuzzy
msgid "|[file]|make a clear text signature"
msgstr "|[файл]|создать текстовую подпись"
-#: g10/g10.c:189
+#: g10/g10.c:190
msgid "make a detached signature"
msgstr "создать отдельную подпись"
-#: g10/g10.c:190
+#: g10/g10.c:191
msgid "encrypt data"
msgstr "зашифровать данные"
-#: g10/g10.c:191
+#: g10/g10.c:192
msgid "encryption only with symmetric cipher"
msgstr "зашифровать симметричным алгоритмом"
-#: g10/g10.c:192
+#: g10/g10.c:193
msgid "store only"
msgstr "только сохранить"
-#: g10/g10.c:193
+#: g10/g10.c:194
msgid "decrypt data (default)"
msgstr "расшифровать данные (по умолчанию)"
-#: g10/g10.c:194
+#: g10/g10.c:195
msgid "verify a signature"
msgstr "проверить подпись"
-#: g10/g10.c:195
+#: g10/g10.c:196
msgid "list keys"
msgstr "список ключей"
-#: g10/g10.c:197
+#: g10/g10.c:198
msgid "list keys and signatures"
msgstr "список ключей и подписей"
-#: g10/g10.c:198
+#: g10/g10.c:199
msgid "check key signatures"
msgstr "проверить подпись на ключе"
-#: g10/g10.c:199
+#: g10/g10.c:200
msgid "list keys and fingerprints"
msgstr "список ключей с их \"отпечатками пальцев\""
-#: g10/g10.c:200
+#: g10/g10.c:201
msgid "list secret keys"
msgstr "список секретных ключей"
-#: g10/g10.c:201
+#: g10/g10.c:202
msgid "generate a new key pair"
msgstr "сгенерировать новую пару ключей (открытый и секретный)"
-#: g10/g10.c:202
+#: g10/g10.c:203
msgid "remove key from the public keyring"
msgstr "удалить ключ со связки"
-#: g10/g10.c:203
+#: g10/g10.c:204
#, fuzzy
msgid "sign a key"
msgstr "подписать ключ"
-#: g10/g10.c:204
+#: g10/g10.c:205
#, fuzzy
msgid "sign a key locally"
msgstr "подписать ключ"
-#: g10/g10.c:205
+#: g10/g10.c:206
msgid "sign or edit a key"
msgstr "подписать или редактировать ключ"
-#: g10/g10.c:206
+#: g10/g10.c:207
msgid "generate a revocation certificate"
msgstr "сгенерировать отзывающий сертификат"
-#: g10/g10.c:207
+#: g10/g10.c:208
msgid "export keys"
msgstr "экспортировать ключи"
-#: g10/g10.c:208
+#: g10/g10.c:209
msgid "export keys to a key server"
msgstr ""
-#: g10/g10.c:209
+#: g10/g10.c:210
msgid "import keys from a key server"
msgstr ""
-#: g10/g10.c:212
+#: g10/g10.c:213
msgid "import/merge keys"
msgstr "импортировать/добавить ключи"
-#: g10/g10.c:214
+#: g10/g10.c:215
msgid "list only the sequence of packets"
msgstr "напечатать только последовательность пакетов"
-#: g10/g10.c:216
+#: g10/g10.c:217
#, fuzzy
msgid "export the ownertrust values"
msgstr "экспортировать параметры доверия\n"
-#: g10/g10.c:218
+#: g10/g10.c:219
#, fuzzy
msgid "import ownertrust values"
msgstr "импортировать параметры доверия\n"
-#: g10/g10.c:220
+#: g10/g10.c:221
#, fuzzy
msgid "update the trust database"
msgstr "|[ИМЕНА]|проверить базу данных доверия"
-#: g10/g10.c:222
+#: g10/g10.c:223
msgid "|[NAMES]|check the trust database"
msgstr "|[ИМЕНА]|проверить базу данных доверия"
-#: g10/g10.c:223
+#: g10/g10.c:224
msgid "fix a corrupted trust database"
msgstr "исправить разрушенную базу данных доверия"
-#: g10/g10.c:224
+#: g10/g10.c:225
msgid "De-Armor a file or stdin"
msgstr "Декодировать stdin или файл из ASCII-представления"
-#: g10/g10.c:225
+#: g10/g10.c:227
msgid "En-Armor a file or stdin"
msgstr "Закодировать stdin или файл в ASCII-представление"
-#: g10/g10.c:226
+#: g10/g10.c:229
msgid "|algo [files]|print message digests"
msgstr "|algo [files]|напечатать дайджест сообщения"
-#: g10/g10.c:230
+#: g10/g10.c:233
msgid ""
"@\n"
"Options:\n"
@@ -491,178 +491,178 @@ msgstr ""
"Параметры:\n"
" "
-#: g10/g10.c:232
+#: g10/g10.c:235
msgid "create ascii armored output"
msgstr "вывод в ASCII-представлении"
-#: g10/g10.c:233
+#: g10/g10.c:237
#, fuzzy
msgid "|NAME|encrypt for NAME"
msgstr "|ИМЯ|использовать шифровальный алгоритмом ИМЯ"
-#: g10/g10.c:236
+#: g10/g10.c:240
#, fuzzy
msgid "|NAME|use NAME as default recipient"
msgstr "|ИМЯ|использовать ИМЯ в качестве секретного ключа по умолчанию"
-#: g10/g10.c:238
+#: g10/g10.c:242
msgid "use the default key as default recipient"
msgstr ""
-#: g10/g10.c:242
+#: g10/g10.c:246
msgid "use this user-id to sign or decrypt"
msgstr ""
"использовать указанный идентификатор пользователя для подписи или расшифровки"
-#: g10/g10.c:243
+#: g10/g10.c:247
msgid "|N|set compress level N (0 disables)"
msgstr "|N|установить уровень сжатия (0 - не сжимать)"
-#: g10/g10.c:245
+#: g10/g10.c:249
msgid "use canonical text mode"
msgstr "использовать канонический текстовый режим"
-#: g10/g10.c:246
+#: g10/g10.c:250
msgid "use as output file"
msgstr "использовать в качестве выходного файла"
-#: g10/g10.c:247
+#: g10/g10.c:251
msgid "verbose"
msgstr "многословный"
-#: g10/g10.c:248
+#: g10/g10.c:252
msgid "be somewhat more quiet"
msgstr ""
-#: g10/g10.c:249
+#: g10/g10.c:253
msgid "don't use the terminal at all"
msgstr ""
-#: g10/g10.c:250
+#: g10/g10.c:254
#, fuzzy
msgid "force v3 signatures"
msgstr "проверить подпись на ключе"
-#: g10/g10.c:251
+#: g10/g10.c:255
#, fuzzy
msgid "always use a MDC for encryption"
msgstr "использовать указанный идентификатор пользователя для шифрования"
-#: g10/g10.c:252
+#: g10/g10.c:256
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:258
msgid "batch mode: never ask"
msgstr "пакетный режим: ничего не спрашивать"
-#: g10/g10.c:255
+#: g10/g10.c:259
msgid "assume yes on most questions"
msgstr "отвечать \"да\" на большинство вопросов"
-#: g10/g10.c:256
+#: g10/g10.c:260
msgid "assume no on most questions"
msgstr "отвечать \"нет\" на большинство вопросов"
-#: g10/g10.c:257
+#: g10/g10.c:261
msgid "add this keyring to the list of keyrings"
msgstr "добавить эту связку к списку связок ключей"
-#: g10/g10.c:258
+#: g10/g10.c:262
msgid "add this secret keyring to the list"
msgstr "добавить эту секретную связку к списку связок ключей"
-#: g10/g10.c:259
+#: g10/g10.c:263
msgid "|NAME|use NAME as default secret key"
msgstr "|ИМЯ|использовать ИМЯ в качестве секретного ключа по умолчанию"
-#: g10/g10.c:260
+#: g10/g10.c:264
msgid "|HOST|use this keyserver to lookup keys"
msgstr ""
-#: g10/g10.c:261
+#: g10/g10.c:265
#, fuzzy
msgid "|NAME|set terminal charset to NAME"
msgstr "|ИМЯ|использовать шифровальный алгоритмом ИМЯ"
-#: g10/g10.c:262
+#: g10/g10.c:266
msgid "read options from file"
msgstr "читать параметры из файла"
-#: g10/g10.c:264
+#: g10/g10.c:268
msgid "set debugging flags"
msgstr "установить отладочные флаги"
-#: g10/g10.c:265
+#: g10/g10.c:269
msgid "enable full debugging"
msgstr "разрешить всю отладку"
-#: g10/g10.c:266
+#: g10/g10.c:270
msgid "|FD|write status info to this FD"
msgstr "|FD| записывать информацию о состоянии в дескриптор (FD)"
-#: g10/g10.c:267
+#: g10/g10.c:271
msgid "do not write comment packets"
msgstr "не писать пакеты с комментариями"
-#: g10/g10.c:268
+#: g10/g10.c:272
msgid "(default is 1)"
msgstr "(по умолчанию 1)"
-#: g10/g10.c:269
+#: g10/g10.c:273
msgid "(default is 3)"
msgstr "(по умолчанию 3)"
-#: g10/g10.c:271
+#: g10/g10.c:275
#, fuzzy
msgid "|FILE|load extension module FILE"
msgstr "|ФАЙЛ|загрузить ФАЙЛ с расширяющими модулями"
-#: g10/g10.c:272
+#: g10/g10.c:276
msgid "emulate the mode described in RFC1991"
msgstr "эмулировать режим описанный в RFC1991"
-#: g10/g10.c:273
+#: g10/g10.c:277
msgid "set all packet, cipher and digest options to OpenPGP behavior"
msgstr ""
-#: g10/g10.c:274
+#: g10/g10.c:278
#, fuzzy
msgid "|N|use passphrase mode N"
msgstr "|N|использовать ключевую фразу режима N\n"
-#: g10/g10.c:276
+#: g10/g10.c:280
#, fuzzy
msgid "|NAME|use message digest algorithm NAME for passphrases"
msgstr "|ИМЯ|использовать хэш-алгоритм ИМЯ для ключевых фраз"
-#: g10/g10.c:278
+#: g10/g10.c:282
#, fuzzy
msgid "|NAME|use cipher algorithm NAME for passphrases"
msgstr "|ИМЯ|использовать шифровальный алгоритмом ИМЯ для ключевых фраз"
-#: g10/g10.c:279
+#: g10/g10.c:283
msgid "|NAME|use cipher algorithm NAME"
msgstr "|ИМЯ|использовать шифровальный алгоритмом ИМЯ"
-#: g10/g10.c:280
+#: g10/g10.c:284
msgid "|NAME|use message digest algorithm NAME"
msgstr "|ИМЯ|использовать хэш-алгоритм ИМЯ"
-#: g10/g10.c:281
+#: g10/g10.c:285
msgid "|N|use compress algorithm N"
msgstr "|N|использовать алгоритм сжатия N"
-#: g10/g10.c:282
+#: g10/g10.c:286
msgid "throw keyid field of encrypted packets"
msgstr "выбрасывать поле keyid у зашифрованных пакетов"
-#: g10/g10.c:283
+#: g10/g10.c:287
msgid "|NAME=VALUE|use this notation data"
msgstr ""
-#: g10/g10.c:285
+#: g10/g10.c:289
#, fuzzy
msgid ""
"@\n"
@@ -683,17 +683,17 @@ msgstr ""
" --list-keys [names] показать список ключей\n"
" --fingerprint [names] показать \"отпечатки пальцев\" ключей\n"
-#: g10/g10.c:370
+#: g10/g10.c:376
msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
msgstr ""
"Пожалуйста, отправляйте сообщения об ошибках по адресу "
"<gnupg-bugs@gnu.org>.\n"
-#: g10/g10.c:374
+#: g10/g10.c:380
msgid "Usage: gpg [options] [files] (-h for help)"
msgstr "Использование: gpg [параметры] [файлы] (-h для помощи)"
-#: g10/g10.c:377
+#: g10/g10.c:383
msgid ""
"Syntax: gpg [options] [files]\n"
"sign, check, encrypt or decrypt\n"
@@ -703,7 +703,7 @@ msgstr ""
"подписывает, проверяет подписи, шифрует или расшифровывает\n"
"режим работы зависит от входных данных\n"
-#: g10/g10.c:382
+#: g10/g10.c:388
msgid ""
"\n"
"Supported algorithms:\n"
@@ -711,198 +711,198 @@ msgstr ""
"\n"
"Поддерживаемые алгоритмы:\n"
-#: g10/g10.c:456
+#: g10/g10.c:465
msgid "usage: gpg [options] "
msgstr "Использование: gpg [параметры] "
-#: g10/g10.c:509
+#: g10/g10.c:518
msgid "conflicting commands\n"
msgstr "WidersprЭchliche Kommandos\n"
-#: g10/g10.c:644
+#: g10/g10.c:653
#, fuzzy, c-format
msgid "NOTE: no default option file `%s'\n"
msgstr "замечание: файл параметров по умолчанию `%s' отсутствует\n"
-#: g10/g10.c:648
+#: g10/g10.c:657
#, c-format
msgid "option file `%s': %s\n"
msgstr "файл параметров `%s': %s\n"
-#: g10/g10.c:655
+#: g10/g10.c:664
#, c-format
msgid "reading options from `%s'\n"
msgstr "читаются параметры из `%s'\n"
-#: g10/g10.c:835
+#: g10/g10.c:844
#, 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:911 g10/g10.c:920
#, c-format
msgid "NOTE: %s is not for normal use!\n"
msgstr ""
-#: g10/g10.c:894
+#: g10/g10.c:913
#, c-format
msgid "%s not allowed with %s!\n"
msgstr ""
-#: g10/g10.c:897
+#: g10/g10.c:916
#, c-format
msgid "%s makes no sense with %s!\n"
msgstr ""
-#: g10/g10.c:916 g10/g10.c:928
+#: g10/g10.c:935 g10/g10.c:947
msgid "selected cipher algorithm is invalid\n"
msgstr "выбран недопустимый алгоритм шифрования\n"
-#: g10/g10.c:922 g10/g10.c:934
+#: g10/g10.c:941 g10/g10.c:953
msgid "selected digest algorithm is invalid\n"
msgstr "выбран недопустимый дайджест-алгоритм\n"
-#: g10/g10.c:938
+#: g10/g10.c:957
msgid "the given policy URL is invalid\n"
msgstr ""
-#: g10/g10.c:941
+#: g10/g10.c:960
#, c-format
msgid "compress algorithm must be in range %d..%d\n"
msgstr "алгоритм упаковки может иметь значения от %d до %d\n"
-#: g10/g10.c:943
+#: g10/g10.c:962
msgid "completes-needed must be greater than 0\n"
msgstr "completes-needed должен быть больше 0\n"
-#: g10/g10.c:945
+#: g10/g10.c:964
msgid "marginals-needed must be greater than 1\n"
msgstr "marginals-needed должен быть больше 1\n"
-#: g10/g10.c:947
+#: g10/g10.c:966
msgid "max-cert-depth must be in range 1 to 255\n"
msgstr ""
-#: g10/g10.c:950
+#: g10/g10.c:969
#, fuzzy
msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
msgstr "замечание: простой S2K режим (0) очень не рекомендуется\n"
-#: g10/g10.c:954
+#: g10/g10.c:973
msgid "invalid S2K mode; must be 0, 1 or 3\n"
msgstr "недопустимый режим S2K: должен быть 0, 1 или 3\n"
-#: g10/g10.c:1031
+#: g10/g10.c:1050
#, c-format
msgid "failed to initialize the TrustDB: %s\n"
msgstr "Ошибка инициализации базы данных доверия: %s\n"
-#: g10/g10.c:1037
+#: g10/g10.c:1056
msgid "--store [filename]"
msgstr "--store [имя файла]"
-#: g10/g10.c:1044
+#: g10/g10.c:1063
msgid "--symmetric [filename]"
msgstr "--symmetric [имя файла]"
-#: g10/g10.c:1052
+#: g10/g10.c:1071
msgid "--encrypt [filename]"
msgstr "--encrypt [имя файла]"
-#: g10/g10.c:1065
+#: g10/g10.c:1084
msgid "--sign [filename]"
msgstr "--sign [имя файла]"
-#: g10/g10.c:1078
+#: g10/g10.c:1097
msgid "--sign --encrypt [filename]"
msgstr "--sign --encrypt [имя файла]"
-#: g10/g10.c:1092
+#: g10/g10.c:1111
msgid "--clearsign [filename]"
msgstr "--clearsign [имя файла]"
-#: g10/g10.c:1104
+#: g10/g10.c:1123
msgid "--decrypt [filename]"
msgstr "--decrypt [имя файла]"
-#: g10/g10.c:1112
+#: g10/g10.c:1131
msgid "--sign-key user-id"
msgstr ""
-#: g10/g10.c:1120
+#: g10/g10.c:1139
#, fuzzy
msgid "--lsign-key user-id"
msgstr "--delete-key имя-пользователя"
-#: g10/g10.c:1128
+#: g10/g10.c:1147
#, fuzzy
msgid "--edit-key user-id [commands]"
msgstr "--edit-key имя-пользователя"
-#: g10/g10.c:1144
+#: g10/g10.c:1163
#, fuzzy
msgid "--delete-secret-key user-id"
msgstr "--delete-secret-key имя-пользователя"
-#: g10/g10.c:1147
+#: g10/g10.c:1166
#, 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:1190 g10/sign.c:368
#, c-format
msgid "can't open %s: %s\n"
msgstr "невозможно открыть файл `%s': %s\n"
-#: g10/g10.c:1182
+#: g10/g10.c:1201
#, fuzzy
msgid "-k[v][v][v][c] [user-id] [keyring]"
msgstr "-k[v][v][v][c] [идентификатор пользователя] [связка ключей]"
-#: g10/g10.c:1243
+#: g10/g10.c:1262
#, c-format
msgid "dearmoring failed: %s\n"
msgstr "ошибка декодирования: %s\n"
-#: g10/g10.c:1251
+#: g10/g10.c:1270
#, c-format
msgid "enarmoring failed: %s\n"
msgstr "ошибка кодирования: %s\n"
-#: g10/g10.c:1319
+#: g10/g10.c:1338
#, c-format
msgid "invalid hash algorithm `%s'\n"
msgstr "недопустимый хэш-алгоритм `%s'\n"
-#: g10/g10.c:1400
+#: g10/g10.c:1419
msgid "[filename]"
msgstr "[имя файла]"
-#: g10/g10.c:1404
+#: g10/g10.c:1423
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:1426 g10/verify.c:66
#, c-format
msgid "can't open `%s'\n"
msgstr "невозможно открыть файл `%s'\n"
-#: g10/g10.c:1576
+#: g10/g10.c:1594
msgid ""
"the first character of a notation name must be a letter or an underscore\n"
msgstr ""
-#: g10/g10.c:1582
+#: g10/g10.c:1600
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:1606
msgid "dots in a notation name must be surrounded by other characters\n"
msgstr ""
-#: g10/g10.c:1596
+#: g10/g10.c:1614
msgid "a notation value must not use any control characters\n"
msgstr ""
@@ -985,23 +985,23 @@ msgstr ""
#. Translators: this shoud fit into 24 bytes to that the fingerprint
#. * data is properly aligned with the user ID
-#: g10/pkclist.c:53
+#: g10/pkclist.c:54
msgid " Fingerprint:"
msgstr ""
-#: g10/pkclist.c:80
+#: g10/pkclist.c:81
#, fuzzy
msgid "Fingerprint:"
msgstr "показать \"отпечаток пальца\""
# valid user replies (not including 1..4)
#. a string with valid answers
-#: g10/pkclist.c:197
+#: g10/pkclist.c:198
#, fuzzy
msgid "sSmMqQ"
msgstr "sSmMqQ"
-#: g10/pkclist.c:201
+#: g10/pkclist.c:202
#, fuzzy, c-format
msgid ""
"No trust value assigned to %lu:\n"
@@ -1010,7 +1010,7 @@ msgstr ""
"Не определены параметры доверия для %lu:\n"
"%4u%c/%08lX %s \""
-#: g10/pkclist.c:213
+#: g10/pkclist.c:214
#, fuzzy
msgid ""
"Please decide how far you trust this user to correctly\n"
@@ -1035,23 +1035,23 @@ msgstr ""
" 4 = Верю полностью\n"
" s = Пожалуйста, покажите дополнительную информацию\n"
-#: g10/pkclist.c:222
+#: g10/pkclist.c:223
msgid " m = back to the main menu\n"
msgstr " m = обратно в главное меню\n"
-#: g10/pkclist.c:224
+#: g10/pkclist.c:225
msgid " q = quit\n"
msgstr ""
-#: g10/pkclist.c:230
+#: g10/pkclist.c:231
msgid "Your decision? "
msgstr "Ваше решение? "
-#: g10/pkclist.c:252
+#: g10/pkclist.c:253
msgid "Certificates leading to an ultimately trusted key:\n"
msgstr ""
-#: g10/pkclist.c:323
+#: g10/pkclist.c:324
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 +1062,70 @@ msgstr ""
"некоторые недостающие значения \"доверия владельцу\"\n"
"\n"
-#: g10/pkclist.c:329
+#: g10/pkclist.c:330
msgid ""
"No path leading to one of our keys found.\n"
"\n"
msgstr ""
-#: g10/pkclist.c:331
+#: g10/pkclist.c:332
msgid ""
"No certificates with undefined trust found.\n"
"\n"
msgstr ""
-#: g10/pkclist.c:333
+#: g10/pkclist.c:334
#, fuzzy
msgid ""
"No trust values changed.\n"
"\n"
msgstr "Значения параметров доверия не изменены.\n"
-#: g10/pkclist.c:350
+#: g10/pkclist.c:351
#, 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:357 g10/pkclist.c:367 g10/pkclist.c:476
msgid "Use this key anyway? "
msgstr "Все равно использовать этот ключ?"
-#: g10/pkclist.c:360
+#: g10/pkclist.c:361
#, fuzzy, c-format
msgid "key %08lX: subkey has been revoked!\n"
msgstr "build_sigrecs: ключ ist widerrufen\n"
-#: g10/pkclist.c:390
+#: g10/pkclist.c:391
#, fuzzy, c-format
msgid "%08lX: key has expired\n"
msgstr "Замечание: Срок действия ключа уже истек!\n"
-#: g10/pkclist.c:396
+#: g10/pkclist.c:397
#, c-format
msgid "%08lX: no info to calculate a trust probability\n"
msgstr ""
-#: g10/pkclist.c:410
+#: g10/pkclist.c:411
#, fuzzy, c-format
msgid "%08lX: We do NOT trust this key\n"
msgstr "ВНИМАНИЕ: Мы НЕ доверяем этому ключу!\n"
-#: g10/pkclist.c:416
+#: g10/pkclist.c:417
#, 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:423
msgid "This key probably belongs to the owner\n"
msgstr ""
-#: g10/pkclist.c:427
+#: g10/pkclist.c:428
msgid "This key belongs to us\n"
msgstr ""
-#: g10/pkclist.c:470
+#: g10/pkclist.c:471
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 +1136,65 @@ msgstr ""
"кто указан его владельцем. Отвечайте \"да\" на следующий вопрос,\n"
"только если вы *действительно* понимаете что делаете.\n"
-#: g10/pkclist.c:484 g10/pkclist.c:507
+#: g10/pkclist.c:485 g10/pkclist.c:508
msgid "WARNING: Using untrusted key!\n"
msgstr "ВНИМАНИЕ: Используется ключ к которому нет доверия!\n"
-#: g10/pkclist.c:528
+#: g10/pkclist.c:529
msgid "WARNING: This key has been revoked by its owner!\n"
msgstr "ВНИМАНИЕ: Владелец ключа уже отозвал его!\n"
-#: g10/pkclist.c:529
+#: g10/pkclist.c:530
msgid " This could mean that the signature is forgery.\n"
msgstr " Это может означать, что подпись поддельная.\n"
-#: g10/pkclist.c:533
+#: g10/pkclist.c:534
#, fuzzy
msgid "WARNING: This subkey has been revoked by its owner!\n"
msgstr "ВНИМАНИЕ: Владелец ключа уже отозвал его!\n"
-#: g10/pkclist.c:554
+#: g10/pkclist.c:555
msgid "Note: This key has expired!\n"
msgstr "Замечание: Срок действия ключа уже истек!\n"
-#: g10/pkclist.c:562
+#: g10/pkclist.c:563
msgid "WARNING: This key is not certified with a trusted signature!\n"
msgstr "ВНИМАНИЕ: Этот ключ не заверен доверенной подписью!\n"
-#: g10/pkclist.c:564
+#: g10/pkclist.c:565
msgid ""
" There is no indication that the signature belongs to the owner.\n"
msgstr ""
" Нет никаких указания на то, что ключ принадлежит его владельцу.\n"
-#: g10/pkclist.c:581
+#: g10/pkclist.c:582
msgid "WARNING: We do NOT trust this key!\n"
msgstr "ВНИМАНИЕ: Мы НЕ доверяем этому ключу!\n"
-#: g10/pkclist.c:582
+#: g10/pkclist.c:583
msgid " The signature is probably a FORGERY.\n"
msgstr " Подпись вероятно -- ПОДДЕЛКА.\n"
-#: g10/pkclist.c:589
+#: g10/pkclist.c:590
msgid ""
"WARNING: This key is not certified with sufficiently trusted signatures!\n"
msgstr "ВНИМАНИЕ: Этот ключ не заверен достаточно доверенными подписями!\n"
-#: g10/pkclist.c:592
+#: g10/pkclist.c:593
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:695 g10/pkclist.c:717 g10/pkclist.c:842 g10/pkclist.c:887
#, c-format
msgid "%s: skipped: %s\n"
msgstr "%s: пропущен: %s\n"
-#: g10/pkclist.c:702 g10/pkclist.c:868
+#: g10/pkclist.c:703 g10/pkclist.c:869
#, c-format
msgid "%s: skipped: public key already present\n"
msgstr ""
-#: g10/pkclist.c:729
+#: g10/pkclist.c:730
msgid ""
"You did not specify a user ID. (you may use \"-r\")\n"
"\n"
@@ -1203,43 +1203,43 @@ msgstr ""
"\"-r\").\n"
"\n"
-#: g10/pkclist.c:739
+#: g10/pkclist.c:740
msgid "Enter the user ID: "
msgstr "Введите идентификатор пользователя: "
-#: g10/pkclist.c:751
+#: g10/pkclist.c:752
msgid "No such user ID.\n"
msgstr "Нет такого идентификатора пользователя.\n"
-#: g10/pkclist.c:756
+#: g10/pkclist.c:757
msgid "skipped: public key already set as default recipient\n"
msgstr ""
-#: g10/pkclist.c:778
+#: g10/pkclist.c:779
#, fuzzy
msgid "Public key is disabled.\n"
msgstr "Открытый ключ не найден"
-#: g10/pkclist.c:785
+#: g10/pkclist.c:786
msgid "skipped: public key already set with --encrypt-to\n"
msgstr ""
-#: g10/pkclist.c:816
+#: g10/pkclist.c:817
#, fuzzy, c-format
msgid "unknown default recipient `%s'\n"
msgstr "замечание: файл параметров по умолчанию `%s' отсутствует\n"
-#: g10/pkclist.c:849
+#: g10/pkclist.c:850
#, c-format
msgid "%s: error checking key: %s\n"
msgstr "%s: ошибка при проверке ключа: %s\n"
-#: g10/pkclist.c:854
+#: g10/pkclist.c:855
#, c-format
msgid "%s: skipped: public key is disabled\n"
msgstr ""
-#: g10/pkclist.c:892
+#: g10/pkclist.c:893
msgid "no valid addressees\n"
msgstr "нет допустимых адресов\n"
@@ -1557,7 +1557,7 @@ msgstr ""
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:1018 g10/sig-check.c:314 g10/sign.c:106
#, fuzzy, c-format
msgid ""
"key has been created %lu second in future (time warp or clock problem)\n"
@@ -1565,7 +1565,7 @@ msgstr ""
"открытый ключ сгенерирован в будущем (искривление времени или неправильно "
"установлены часы)\n"
-#: g10/keygen.c:1020 g10/sig-check.c:314 g10/sign.c:107
+#: g10/keygen.c:1020 g10/sig-check.c:316 g10/sign.c:108
#, fuzzy, c-format
msgid ""
"key has been created %lu seconds in future (time warp or clock problem)\n"
@@ -1578,7 +1578,7 @@ msgstr ""
msgid "Really create? "
msgstr "Действительно создать? "
-#: g10/encode.c:91 g10/openfile.c:156 g10/openfile.c:246 g10/tdbio.c:468
+#: g10/encode.c:91 g10/openfile.c:163 g10/openfile.c:272 g10/tdbio.c:468
#: g10/tdbio.c:529
#, c-format
msgid "%s: can't open: %s\n"
@@ -1589,17 +1589,17 @@ 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"
@@ -1749,7 +1749,7 @@ msgstr "ключ %08lX: открытый ключ не найден: %s\n"
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:399 g10/openfile.c:215 g10/sign.c:269 g10/sign.c:582
#, c-format
msgid "writing to `%s'\n"
msgstr "записывается в `%s'\n"
@@ -1921,7 +1921,7 @@ msgstr ""
msgid "key %08lX: revocation certificate added\n"
msgstr "ключ %08lX: отзывающий сертификат добавлен\n"
-#: g10/import.c:1128 g10/import.c:1183
+#: g10/import.c:1128 g10/import.c:1181
#, c-format
msgid "key %08lX: our copy has no self-signature\n"
msgstr "ключ %08lX: наша копия не имеет само-подписи\n"
@@ -2010,7 +2010,7 @@ msgstr ""
msgid "Really sign? "
msgstr "Действительно подписать? "
-#: g10/keyedit.c:370 g10/keyedit.c:1832 g10/keyedit.c:1881 g10/sign.c:128
+#: g10/keyedit.c:370 g10/keyedit.c:1832 g10/keyedit.c:1881 g10/sign.c:129
#, fuzzy, c-format
msgid "signing failed: %s\n"
msgstr "ошибка подписывания: %s\n"
@@ -2543,92 +2543,92 @@ msgstr "Секретный ключ не существует"
msgid "public key decryption failed: %s\n"
msgstr "расшифровка открытым ключом не удалась %s\n"
-#: g10/mainproc.c:330
+#: g10/mainproc.c:332
#, fuzzy
msgid "decryption okay\n"
msgstr "расшифровка не удалась: %s\n"
-#: g10/mainproc.c:335
+#: g10/mainproc.c:337
msgid "WARNING: encrypted message has been manipulated!\n"
msgstr ""
-#: g10/mainproc.c:340
+#: g10/mainproc.c:342
#, c-format
msgid "decryption failed: %s\n"
msgstr "расшифровка не удалась: %s\n"
-#: g10/mainproc.c:358
+#: g10/mainproc.c:360
#, fuzzy
msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
msgstr "замечание: отправитель запросил \"только-для-Ваших-глаз\"\n"
-#: g10/mainproc.c:360
+#: g10/mainproc.c:362
#, c-format
msgid "original file name='%.*s'\n"
msgstr ""
-#: g10/mainproc.c:587 g10/mainproc.c:596
+#: g10/mainproc.c:596 g10/mainproc.c:605
#, fuzzy
msgid "WARNING: invalid notation data found\n"
msgstr "не найдено допустимых RFC1991 или OpenPGP данных.\n"
-#: g10/mainproc.c:599
+#: g10/mainproc.c:608
msgid "Notation: "
msgstr ""
-#: g10/mainproc.c:606
+#: g10/mainproc.c:615
msgid "Policy: "
msgstr ""
-#: g10/mainproc.c:1025
+#: g10/mainproc.c:1034
msgid "signature verification suppressed\n"
msgstr ""
-#: g10/mainproc.c:1031
+#: g10/mainproc.c:1039
#, 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:1066 g10/mainproc.c:1077
msgid "BAD signature from \""
msgstr "ПЛОХАЯ подпись от \""
-#: g10/mainproc.c:1058 g10/mainproc.c:1069
+#: g10/mainproc.c:1067 g10/mainproc.c:1078
msgid "Good signature from \""
msgstr "Хорошая подпись от \""
-#: g10/mainproc.c:1060
+#: g10/mainproc.c:1069
msgid " aka \""
msgstr ""
-#: g10/mainproc.c:1115
+#: g10/mainproc.c:1124
#, c-format
msgid "Can't check signature: %s\n"
msgstr "Невозможно проверить подпись: %s\n"
-#: g10/mainproc.c:1212
+#: g10/mainproc.c:1225
msgid "old style (PGP 2.x) signature\n"
msgstr ""
-#: g10/mainproc.c:1217
+#: g10/mainproc.c:1230
msgid "invalid root packet detected in proc_tree()\n"
msgstr ""
-#: g10/misc.c:94
+#: g10/misc.c:95
#, fuzzy, c-format
msgid "can't disable core dumps: %s\n"
msgstr "невозможно открыть файл `%s': %s\n"
-#: g10/misc.c:97
+#: g10/misc.c:98
msgid "WARNING: program may create a core file!\n"
msgstr ""
-#: g10/misc.c:205
+#: g10/misc.c:206
msgid "Experimental algorithms should not be used!\n"
msgstr ""
-#: g10/misc.c:219
+#: g10/misc.c:220
msgid ""
"RSA keys are deprecated; please consider creating a new key and use this key "
"in the future\n"
@@ -2636,7 +2636,7 @@ msgstr ""
"Пользование RSA ключами не рекомендуется, пожалуйста, подумайте о создании\n"
"нового ключа для использования в будущем\n"
-#: g10/misc.c:241
+#: g10/misc.c:242
msgid "this cipher algorithm is depreciated; please use a more standard one!\n"
msgstr ""
@@ -2660,7 +2660,7 @@ msgstr ""
"Вам нужна ключевая фраза, чтобы отомкнуть ключ\n"
"пользователя: \""
-#: g10/passphrase.c:168
+#: g10/passphrase.c:167
#, fuzzy, c-format
msgid "%u-bit %s key, ID %08lX, created %s"
msgstr "(%u-бит %s ключ, ID %08lX, создан %s)\n"
@@ -2689,6 +2689,11 @@ msgstr "Повторите ключевую фразу: %s\n"
msgid "data not saved; use option \"--output\" to save it\n"
msgstr "данные не были сохранены; воспользуйтесь --\"output\" для сохранения\n"
+#: g10/plaintext.c:311
+#, fuzzy
+msgid "Detached signature.\n"
+msgstr "%d плохих подписей\n"
+
#: g10/plaintext.c:315
msgid "Please enter name of data file: "
msgstr "Пожалуйста, введите имя файла данных: "
@@ -2702,94 +2707,94 @@ msgstr ""
msgid "can't open signed data `%s'\n"
msgstr "невозможно открыть подписанные данные `%s' .\n"
-#: g10/pubkey-enc.c:79
+#: g10/pubkey-enc.c:80
#, c-format
msgid "anonymous receiver; trying secret key %08lX ...\n"
msgstr "анонимный получатель, пробуем секретный ключ %08lX ...\n"
-#: g10/pubkey-enc.c:85
+#: g10/pubkey-enc.c:86
#, fuzzy
msgid "okay, we are the anonymous recipient.\n"
msgstr "Ок, мы -- анонимный получатель.\n"
-#: g10/pubkey-enc.c:137
+#: g10/pubkey-enc.c:138
#, fuzzy
msgid "old encoding of the DEK is not supported\n"
msgstr "алгоритм защиты %d не поддерживается\n"
-#: g10/pubkey-enc.c:191
+#: g10/pubkey-enc.c:192
#, fuzzy, c-format
msgid "NOTE: cipher algorithm %d not found in preferences\n"
msgstr "замечание: шифровальный алгоритм %d не найден в предпочтениях\n"
-#: g10/seckey-cert.c:55
+#: g10/seckey-cert.c:56
#, fuzzy, c-format
msgid "protection algorithm %d is not supported\n"
msgstr "алгоритм защиты %d не поддерживается\n"
-#: g10/seckey-cert.c:171
+#: g10/seckey-cert.c:181
msgid "Invalid passphrase; please try again ...\n"
msgstr "Неправильная ключевая фраза, попробуйте снова ...\n"
-#: g10/seckey-cert.c:227
+#: g10/seckey-cert.c:246
#, fuzzy
msgid "WARNING: Weak key detected - please change passphrase again.\n"
msgstr "Предупреждение: обнаружен слабый ключ - смените ключевую фразу.\n"
-#: g10/sig-check.c:199
+#: g10/sig-check.c:201
msgid "assuming bad MDC due to an unknown critical bit\n"
msgstr ""
-#: g10/sig-check.c:295
+#: g10/sig-check.c:297
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:305
#, 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:306
#, 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:322
#, fuzzy, c-format
msgid "NOTE: signature key expired %s\n"
msgstr "предупреждение: ключ подписи устарел %s\n"
-#: g10/sig-check.c:377
+#: g10/sig-check.c:379
msgid "assuming bad signature due to an unknown critical bit\n"
msgstr ""
-#: g10/sign.c:132
+#: g10/sign.c:133
#, fuzzy, c-format
msgid "%s signature from: %s\n"
msgstr "ПЛОХАЯ подпись от \""
-#: g10/sign.c:263 g10/sign.c:575
+#: g10/sign.c:264 g10/sign.c:577
#, fuzzy, c-format
msgid "can't create %s: %s\n"
msgstr "%s: невозможно открыть: %s\n"
-#: g10/sign.c:361
+#: g10/sign.c:363
#, fuzzy
msgid "signing:"
msgstr "подписать"
-#: g10/sign.c:404
+#: g10/sign.c:406
#, fuzzy, c-format
msgid "WARNING: `%s' is an empty file\n"
msgstr "%s: предупреждение: пустой файл.\n"
-#: g10/textfilter.c:128
+#: g10/textfilter.c:129
#, c-format
msgid "can't handle text lines longer than %d characters\n"
msgstr ""
-#: g10/textfilter.c:197
+#: g10/textfilter.c:198
#, c-format
msgid "input line longer than %d characters\n"
msgstr ""
@@ -2828,7 +2833,7 @@ msgstr "%s: невозможно открыть: %s\n"
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:211 g10/openfile.c:279 g10/ringedit.c:1350 g10/tdbio.c:458
#, fuzzy, c-format
msgid "%s: can't create: %s\n"
msgstr "%s: невозможно открыть: %s\n"
@@ -3222,26 +3227,26 @@ msgstr ""
msgid "%s: can't create keyring: %s\n"
msgstr "%s: невозможно открыть: %s\n"
-#: g10/ringedit.c:335 g10/ringedit.c:1353
+#: g10/ringedit.c:335 g10/ringedit.c:1355
#, fuzzy, c-format
msgid "%s: keyring created\n"
msgstr "%s: невозможно открыть: %s\n"
-#: g10/ringedit.c:1530
+#: g10/ringedit.c:1532
msgid "WARNING: 2 files with confidential information exists.\n"
msgstr ""
-#: g10/ringedit.c:1531
+#: g10/ringedit.c:1533
#, fuzzy, c-format
msgid "%s is the unchanged one\n"
msgstr "Использован неправильный секретный ключ"
-#: g10/ringedit.c:1532
+#: g10/ringedit.c:1534
#, c-format
msgid "%s is the new one\n"
msgstr ""
-#: g10/ringedit.c:1533
+#: g10/ringedit.c:1535
msgid "Please fix this possible security flaw\n"
msgstr ""
@@ -3262,51 +3267,51 @@ msgid ""
msgstr "этот ElGamal ключ, созданный PGP, не надежен для создания подписей!\n"
#. do not overwrite
-#: g10/openfile.c:65
+#: g10/openfile.c:73
#, c-format
msgid "File `%s' exists. "
msgstr "Файл `%s' существует. "
-#: g10/openfile.c:67
+#: g10/openfile.c:75
msgid "Overwrite (y/N)? "
msgstr "Переписать (y/N)? "
-#: g10/openfile.c:97
+#: g10/openfile.c:104
#, c-format
msgid "%s: unknown suffix\n"
msgstr ""
-#: g10/openfile.c:119
+#: g10/openfile.c:126
#, fuzzy
msgid "Enter new filename"
msgstr "--store [имя файла]"
-#: g10/openfile.c:160
+#: g10/openfile.c:167
#, fuzzy
msgid "writing to stdout\n"
msgstr "записывается в `%s'\n"
-#: g10/openfile.c:219
+#: g10/openfile.c:245
#, fuzzy, c-format
msgid "assuming signed data in `%s'\n"
msgstr "невозможно открыть подписанные данные `%s' .\n"
-#: g10/openfile.c:269
+#: g10/openfile.c:295
#, c-format
msgid "%s: new options file created\n"
msgstr ""
#: g10/encr-data.c:66
-#, fuzzy, c-format
-msgid "%s encrypted data\n"
-msgstr "зашифровать данные"
-
-#: g10/encr-data.c:68
#, c-format
msgid "encrypted with unknown algorithm %d\n"
msgstr ""
-#: g10/encr-data.c:85
+#: g10/encr-data.c:71
+#, fuzzy, c-format
+msgid "%s encrypted data\n"
+msgstr "зашифровать данные"
+
+#: g10/encr-data.c:101
#, fuzzy
msgid ""
"WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
@@ -3314,11 +3319,11 @@ msgstr ""
"Предупреждение: сообщение было зашифровано, используя слабый ключ, в "
"симметричном алгоритме шифрования.\n"
-#: g10/seskey.c:52
+#: g10/seskey.c:63
msgid "weak key created - retrying\n"
msgstr "получился слабый ключ, пробуем еще раз\n"
-#: g10/seskey.c:57
+#: g10/seskey.c:68
#, c-format
msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
msgstr ""
diff --git a/scripts/ChangeLog b/scripts/ChangeLog
index ce00b3698..e74205530 100644
--- a/scripts/ChangeLog
+++ b/scripts/ChangeLog
@@ -1,3 +1,8 @@
+Tue Oct 26 14:10:21 CEST 1999 Werner Koch <wk@gnupg.de>
+
+ * commit: Remove leading and trailing empty lines when copying
+ Changes to Changelog
+
Wed Sep 15 16:22:17 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
diff --git a/scripts/commit b/scripts/commit
index 992f93c3d..18a9b4aa7 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
diff --git a/scripts/mksnapshot b/scripts/mksnapshot
index cca19d98d..7b534b98c 100755
--- a/scripts/mksnapshot
+++ b/scripts/mksnapshot
@@ -21,7 +21,7 @@ This is a snapshot of the current CVS head branch!
It may not compile or not work. Please don't report
bugs about this snapshot release it is just for your
-convenience and to reduce the load of out CVS server.
+convenience and to reduce the load of our CVS server.
Thanks,
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 2cf2e20ea..68d1044df 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -3,7 +3,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@
+ ../mpi/libmpi.la ../util/libutil.la ../gcrypt/libgcrypt.la @INTLLIBS@
+
noinst_PROGRAMS = mpicalc bftest clean-sat mk-tdata shmtest
diff --git a/tools/bftest.c b/tools/bftest.c
index 1b24b1c3f..8b8175901 100644
--- a/tools/bftest.c
+++ b/tools/bftest.c
@@ -27,8 +27,8 @@
#include <fcntl.h>
#endif
+#include <gcrypt.h>
#include "util.h"
-#include "cipher.h"
#include "i18n.h"
static void
@@ -62,7 +62,7 @@ int
main(int argc, char **argv)
{
int encode=0;
- CIPHER_HANDLE hd;
+ GCRY_CIPHER_HD hd;
char buf[4096];
int n, size=4096;
int algo;
@@ -92,21 +92,21 @@ main(int argc, char **argv)
if( argc != 3 )
my_usage();
argc--; argv++;
- algo = string_to_cipher_algo( *argv );
+ algo = gcry_cipher_map_name( *argv );
argc--; argv++;
- hd = cipher_open( algo, CIPHER_MODE_CFB, 0 );
- cipher_setkey( hd, *argv, strlen(*argv) );
- cipher_setiv( hd, NULL, 0 );
+ hd = gcry_cipher_open( algo, GCRY_CIPHER_MODE_CFB, 0 );
+ gcry_cipher_setkey( hd, *argv, strlen(*argv) );
+ gcry_cipher_setiv( hd, NULL, 0 );
while( (n = fread( buf, 1, size, stdin )) > 0 ) {
if( encode )
- cipher_encrypt( hd, buf, buf, n );
+ gcry_cipher_encrypt( hd, buf, n, buf, n );
else
- cipher_decrypt( hd, buf, buf, n );
+ gcry_cipher_decrypt( hd, buf, n, buf, n );
if( fwrite( buf, 1, n, stdout) != n )
log_fatal("write error\n");
}
- cipher_close(hd);
+ gcry_cipher_close(hd);
return 0;
}
diff --git a/util/ChangeLog b/util/ChangeLog
index 9d2220540..84fd83c62 100644
--- a/util/ChangeLog
+++ b/util/ChangeLog
@@ -1,3 +1,11 @@
+Tue Oct 26 14:10:21 CEST 1999 Werner Koch <wk@gnupg.de>
+
+ * simple-gettext.c (set_gettext_file): Check charset and do
+ mapping only for IBM850.
+ * strgutil.c (query_native_charset): New.
+ (get_native_charset): Try to get it from the system on the first call.
+ (ibm850_unicode): New table.
+
Fri Sep 17 12:56:42 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
diff --git a/util/simple-gettext.c b/util/simple-gettext.c
index 21f39382d..a128aff3c 100644
--- a/util/simple-gettext.c
+++ b/util/simple-gettext.c
@@ -217,6 +217,13 @@ load_domain( const char *filename )
free( domain );
return NULL;
}
+ /* Currently we have only a Latin-1 to IBM850 translation, so
+ * we simply mark everything mapped if we don't have this codepage. */
+ {
+ const char *s = get_native_charset();
+ if( !s || strcmp(s, "ibm850")
+ memset( domain->mapped, 1, domain->nstrings );
+ }
return domain;
}
@@ -242,7 +249,6 @@ 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 */
@@ -280,7 +286,7 @@ get_string( struct loaded_domain *domain, u32 idx )
byte *pp;
domain->mapped[idx] = 1;
- /* we assume Latin1 -> CP 850 for now */
+ /* currently we only support Latin-1 to CP 850 */
for( pp=p; *pp; pp++ ) {
if( (*pp & 0x80) ) {
switch( *pp ) {
diff --git a/util/strgutil.c b/util/strgutil.c
index 9ab63a047..ea9527bd8 100644
--- a/util/strgutil.c
+++ b/util/strgutil.c
@@ -65,6 +65,26 @@ static ushort latin2_unicode[128] = {
0x0159,0x016F,0x00FA,0x0171,0x00FC,0x00FD,0x0163,0x02D9
};
+static ushort ibm850_unicode[128] = {
+ 0x00c7,0x00fc,0x00e9,0x00e2,0x00e4,0x00e0,0x00e5,0x00e7,
+ 0x00ea,0x00eb,0x00e8,0x00ef,0x00ee,0x00ec,0x00c4,0x00c5,
+ 0x00c9,0x00e6,0x00c6,0x00f4,0x00f6,0x00f2,0x00fb,0x00f9,
+ 0x00ff,0x00d6,0x00dc,0x00f8,0x00a3,0x00d8,0x00d7,0x0192,
+ 0x00e1,0x00ed,0x00f3,0x00fa,0x00f1,0x00d1,0x00aa,0x00ba,
+ 0x00bf,0x00ae,0x00ac,0x00bd,0x00bc,0x00a1,0x00ab,0x00bb,
+ 0x2591,0x2592,0x2593,0x2502,0x2524,0x00c1,0x00c2,0x00c0,
+ 0x00a9,0x2563,0x2551,0x2557,0x255d,0x00a2,0x00a5,0x2510,
+ 0x2514,0x2534,0x252c,0x251c,0x2500,0x253c,0x00e3,0x00c3,
+ 0x255a,0x2554,0x2569,0x2566,0x2560,0x2550,0x256c,0x00a4,
+ 0x00f0,0x00d0,0x00ca,0x00cb,0x00c8,0x0131,0x00cd,0x00ce,
+ 0x00cf,0x2518,0x250c,0x2588,0x2584,0x00a6,0x00cc,0x2580,
+ 0x00d3,0x00df,0x00d4,0x00d2,0x00f5,0x00d5,0x00b5,0x00fe,
+ 0x00de,0x00da,0x00db,0x00d9,0x00fd,0x00dd,0x00af,0x00b4,
+ 0x00ad,0x00b1,0x2017,0x00be,0x00b6,0x00a7,0x00f7,0x00b8,
+ 0x00b0,0x00a8,0x00b7,0x00b9,0x00b3,0x00b2,0x25a0,0x00a0,
+};
+
+static int query_native_charset_done = 0;
static const char *active_charset_name = "iso-8859-1";
static ushort *active_charset = NULL;
@@ -291,9 +311,65 @@ string_count_chr( const char *string, int c )
}
+static const char*
+query_native_charset(void)
+{
+ #ifdef __MINGW32__
+ unsigned int cp;
+
+ cp = GetConsoleOutputCP();
+ if( cp != GetConsoleCP() ) {
+ /* The input cgarset is not equal to the output charset
+ * our system depends on it and therefore we will set
+ * same the same (this won't work on Windows 95) */
+ if( !SetConsoleCP( cp ) )
+ log_info("can't set Input-CP to Output-CP: %d\n",
+ (int)GetLastError() );
+ }
+ /* we could read the registry, but this seems to be too much work */
+ switch( cp ) {
+ case 850: return "ibm850";
+ case 437: return "ibm437";
+ case 1252: return "iso-8859-1";
+ default:
+ log_info("unknown MS-Windows CodePage %u "
+ "- trying to switch to Latin-1\n", cp );
+ /* try to set latin-1 */
+ if( !SetConsoleOutputCP( 1252 ) ) {
+ if( !SetConsoleCP( 1252 ) )
+ return "iso-8859-1";
+ else /* back off */
+ SetConsoleOutputCP( cp );
+ }
+ log_info("no information about MS-Windows CodePage %u\n", cp );
+ return NULL;
+ }
+ #else
+ return NULL; /* unknown */
+ #endif
+}
+
+
+const char*
+get_native_charset()
+{
+ if( !query_native_charset_done ) {
+ const char *s;
+
+ query_native_charset_done = 1;
+ s = query_native_charset();
+ if( s )
+ set_native_charset(s);
+ }
+
+ return active_charset_name;
+}
+
+
int
set_native_charset( const char *newset )
{
+ query_native_charset_done = 1; /* don't do this when we want to set one*/
if( !stricmp( newset, "iso-8859-1" ) ) {
active_charset_name = "iso-8859-1";
active_charset = NULL;
@@ -306,16 +382,15 @@ set_native_charset( const char *newset )
active_charset_name = "koi8-r";
active_charset = koi8_unicode;
}
+ else if( !stricmp( newset, "ibm850" ) || !stricmp( newset, "ibm437" ) ) {
+ active_charset_name = "ibm850";
+ active_charset = ibm850_unicode;
+ }
else
return G10ERR_GENERAL;
return 0;
}
-const char*
-get_native_charset()
-{
- return active_charset_name;
-}
/****************
* Convert string, which is in native encoding to UTF8 and return the