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 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 + + * 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 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 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 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 - </dev/null +expect - < + + * 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 * 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 #include #include + +#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; + } + + /* 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 */ + + if( algo == CIPHER_ALGO_DUMMY ) + 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; } /* ? perform selftest here and mark this with a flag in cipher_table ? */ - 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 + 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) ); - 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; - } - else - hd->mode = mode; + 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 hd; + 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; @@ -607,28 +647,54 @@ 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 #include #include + +#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; + GCRY_MD_HD hd; + struct gcry_md_context *ctx; + int bufsize = secure? 512 : 1024; + size_t n; - 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 ); - } + /* 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); - hd->bufsize = bufsize+1; /* hd has already one byte allocated */ - hd->secure = secure; - if( algo ) - md_enable( hd, algo ); - fast_random_poll(); + /* 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; } -void -md_enable( MD_HANDLE h, int algo ) + +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; +} + + + +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 +gcry_md_write( GCRY_MD_HD hd, const byte *inbuf, size_t inlen) +{ + md_write( hd, (byte*)inbuf, inlen ); } -void -md_final(MD_HANDLE a) +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 #include #include + +#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 + + * Makefile.am (SUBDIRS): Removed gph from this development series + +Mon Sep 6 19:59:08 CEST 1999 Werner Koch + + * Makefile.am (SUBDIRS): New subdir gph for the manual. + +Thu Jul 22 20:03:03 CEST 1999 Werner Koch + + * gpg.sgml (--always-trust): Added. + +Wed Jul 14 19:42:08 CEST 1999 Werner Koch + + * Makefile.am: Create a dummy man page if docbook-to-man is missing. + +Wed Jun 16 20:16:21 CEST 1999 Werner Koch + + * 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 + + * Makefile.in.in: Use DESTDIR. + +Mon May 31 19:41:10 CEST 1999 Werner Koch + + * gpg.1pod: Enhanced the Bugs section (Michael). + +Wed Feb 10 17:15:39 CET 1999 Werner Koch + + * 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. Final statistics on import process (this is one long line) + FILE_START + Start processing a file . 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. revsig 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. 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 +Tue Oct 26 14:10:21 CEST 1999 Werner Koch + * 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 * 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 #include +#include #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 -#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 #include +#include #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 #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 #include #include +#include #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 +#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 #include +#include #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 #include #endif +#include #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 #include #include + +#include #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 #include #include + +#include #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 #include #include + +#include #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 #include +#include #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 #include +#include #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 + + * g10lib.h: Moved from ../gcrypt to here. + Wed Sep 15 16:22:17 CEST 1999 Werner Koch 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 - * 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 , 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 \n" "Language-Team: German \n" @@ -17,11 +17,11 @@ msgstr "Warnung: Sensible Daten k # " 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 .\n" msgstr "" "Berichte Эber Bugs (Programmfehler) bitte an .\n" "Sinn- oder Schreibfehler in den deutschen Texten bitte an .\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 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 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 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 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 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 .\n" msgstr "Por favor, informe de posibles \"bugs\" a .\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 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 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 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 , 1998. # +# La version la plus rИcente peut Йtre trouvИe Ю : +# Latest version can be found at : +# 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 \n" "Language-Team: French \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 .\n" msgstr "Rapporter toutes anomalies Ю .\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 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 " #: 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 #: 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 #, 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 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 #: 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 #. 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 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 #: 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 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 #: 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 #: 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 \n" "Language-Team: Italian \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 .\n" msgstr "Per favore segnala i bug a .\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 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 #, 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 \n" "Language-Team: Polish \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 .\n" msgstr "BЁЙdy prosimy zgЁaszaФ na adres .\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 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 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 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 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 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 \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 .\n" msgstr "Por favor comunique bugs para .\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 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 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 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 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 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 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 \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 .\n" msgstr "Por favor comunique bugs para .\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) \"\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 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 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 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 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 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 (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 \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 .\n" msgstr "" "Пожалуйста, отправляйте сообщения об ошибках по адресу " ".\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: 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 " 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 " 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: 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 + + * commit: Remove leading and trailing empty lines when copying + Changes to Changelog + Wed Sep 15 16:22:17 CEST 1999 Werner Koch 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 #endif +#include #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 + + * 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 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