From 04a0e61a7b203453fc82cdd85fc3cd2f22bb0c30 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Wed, 2 Jun 1999 12:25:59 +0000 Subject: [PATCH] See ChangeLog: Wed Jun 2 14:17:19 CEST 1999 Werner Koch --- NEWS | 3 + README | 154 ++++++++++++++++++++++++++----------------------- g10/ChangeLog | 5 ++ g10/mainproc.c | 15 ++++- po/ChangeLog | 4 ++ po/es_ES.po | 51 ++++++++-------- 6 files changed, 133 insertions(+), 99 deletions(-) diff --git a/NEWS b/NEWS index 17b4137d4..b5f64333e 100644 --- a/NEWS +++ b/NEWS @@ -8,6 +8,9 @@ the extension stripped. To revert to the old behaviour you can use the option --use-embedded-filename. + * Another hack to cope with pgp2 generated detached signatures. + + Noteworthy changes in version 0.9.7 ----------------------------------- diff --git a/README b/README index b10e4427a..ac26fd716 100644 --- a/README +++ b/README @@ -1,12 +1,12 @@ -----BEGIN PGP SIGNED MESSAGE----- - GnuPG - The GNU Privacy Guard - ------------------------------- - Version 0.9.6 + GnuPG - The GNU Privacy Guard + ------------------------------- + Version 0.9.7 GnuPG is now in Beta test and you should report all bugs to the mailing list (see below). The 0.9.x versions are released mainly - to fix all remaining serious bugs. As soon as version 1.0 is out, + to fix all remaining serious bugs. As soon as version 1.0 is out, development will continue with a 1.1 series and bug fixes for the 1.0 version as needed. @@ -23,7 +23,7 @@ "Key fingerprint = 6BD9 050F D8FC 941B 4341 2DCC 68B7 AB89 5754 8DCD" You may want to add this DSA key to your GnuPG pubring and use it in - the future to verify new releases. Because you verified this README + the future to verify new releases. Because you verified this README file and _checked_that_it_is_really_my PGP2 key 0C9857A5, you can be quite sure that the above fingerprint is correct. @@ -60,13 +60,17 @@ Here is a quick summary: - 1) "./configure" + 1) "./configure" 2) "make" 3) "make install" 4) You end up with a "gpg" binray in /usr/local/bin. + Note: Because some programs rely on the existence of a + binary named "gpgm"; you should install a symbolic link + from gpgm to gpg: + $ cd /usr/local/bin; ln -s gpg gpgm 5) To avoid swapping out of sensitive data, you can install "gpg" as suid root. If you don't do so, you may want to add the option @@ -88,7 +92,7 @@ The normal way to create a key is - gpg --gen-key + gpg --gen-key This asks some questions and then starts key generation. To create good random numbers for the key parameters, GnuPG needs to gather @@ -115,7 +119,7 @@ Next, you should create a revocation certificate in case someone gets knowledge of your secret key or you forgot your passphrase - gpg --gen-revoke your_user_id + gpg --gen-revoke your_user_id Run this command and store the revocation certificate away. The output is always ASCII armored, so that you can print it and (hopefully @@ -123,20 +127,20 @@ Now you can use your key to create digital signatures - gpg -s file + gpg -s file This creates a file "file.gpg" which is compressed and has a signature attached. - gpg -sa file + gpg -sa file Same as above, but creates a file "file.asc" which is ASCII armored - and and ready for sending by mail. It is better to use your + and and ready for sending by mail. It is better to use your mailers features to create signatures (The mailer uses GnuPG to do this) because the mailer has the ability to MIME encode such signatures - but this is not a security issue. - gpg -s -o out file + gpg -s -o out file Creates a signature of "file", but writes the output to the file "out". @@ -145,7 +149,7 @@ your key by putting it on a key server, a web page or in your .plan file) is now able to check whether you really signed this text - gpg --verify file + gpg --verify file GnuPG now checks whether the signature is valid and prints an appropriate message. If the signature is good, you know at least @@ -156,29 +160,29 @@ create a new file that is identical to the original. gpg can also run as a filter, so that you can pipe data to verify trough it - cat signed-file | gpg | wc -l + cat signed-file | gpg | wc -l which will check the signature of signed-file and then display the number of lines in the original file. To send a message encrypted to someone you can use - gpg -e -r heine file + gpg -e -r heine file This encrypts "file" with the public key of the user "heine" and writes it to "file.gpg" - echo "hello" | gpg -ea -r heine | mail heine + echo "hello" | gpg -ea -r heine | mail heine Ditto, but encrypts "hello\n" and mails it as ASCII armored message to the user with the mail address heine. - gpg -se -r heine file + gpg -se -r heine file This encrypts "file" with the public key of "heine" and writes it to "file.gpg" after signing it with your user id. - gpg -se -r heine -u Suttner file + gpg -se -r heine -u Suttner file Ditto, but sign the file with your alternative user id "Suttner" @@ -186,7 +190,7 @@ GnuPG has some options to help you publish public keys. This is called "exporting" a key, thus - gpg --export >all-my-keys + gpg --export >all-my-keys exports all the keys in the keyring and writes them (in a binary format) to "all-my-keys". You may then mail "all-my-keys" as an @@ -197,14 +201,14 @@ To mail a public key or put it on a web page you have to create the key in ASCII armored format - gpg --export --armor | mail panther@tiger.int + gpg --export --armor | mail panther@tiger.int This will send all your public keys to your friend panther. If you have received a key from someone else you can put it into your public keyring. This is called "importing" - gpg --import [filenames] + gpg --import [filenames] New keys are appended to your keyring and already existing keys are updated. Note that GnuPG does not import keys that @@ -218,7 +222,7 @@ every other program used for management of cryptographic keys) provides other solutions. - gpg --fingerprint + gpg --fingerprint prints the so called "fingerprint" of the given username which is a sequence of hex bytes (which you may have noticed in mail @@ -233,43 +237,43 @@ Suppose however that friend of yours knows someone who knows someone who has met the owner of the public key at some computer conference. Suppose that all the people between you and the public key holder - may now act as introducers to you. Introducers signing keys thereby + may now act as introducers to you. Introducers signing keys thereby certify that they know the owner of the keys they sign. If you then trust all the introducers to have correctly signed other keys, you can be be sure that the other key really belongs to the one who claims to own it.. There are 2 steps to validate a key: - 1. First check that there is a complete chain - of signed keys from the public key you want to use - and your key and verify each signature. - 2. Make sure that you have full trust in the certificates - of all the introduces between the public key holder and - you. + 1. First check that there is a complete chain + of signed keys from the public key you want to use + and your key and verify each signature. + 2. Make sure that you have full trust in the certificates + of all the introduces between the public key holder and + you. Step 2 is the more complicated part because there is no easy way for a computer to decide who is trustworthy and who is not. GnuPG leaves this decision to you and will ask you for a trust value (here also referenced as the owner-trust of a key) for every key - needed to check the chain of certificates. You may choose from: + needed to check the chain of certificates. You may choose from: a) "I don't know" - then it is not possible to use any - of the chains of certificates, in which this key is used - as an introducer, to validate the target key. Use this if - you don't know the introducer. + of the chains of certificates, in which this key is used + as an introducer, to validate the target key. Use this if + you don't know the introducer. b) "I do not trust" - Use this if you know that the introducer - does not do a good job in certifying other keys. The effect - is the same as with a) but for a) you may later want to - change the value because you got new information about this - introducer. + does not do a good job in certifying other keys. The effect + is the same as with a) but for a) you may later want to + change the value because you got new information about this + introducer. c) "I trust marginally" - Use this if you assume that the - introducer knows what he is doing. Together with some - other marginally trusted keys, GnuPG validates the target - key then as good. + introducer knows what he is doing. Together with some + other marginally trusted keys, GnuPG validates the target + key then as good. d) "I fully trust" - Use this if you really know that this - introducer does a good job when certifying other keys. - If all the introducer are of this trust value, GnuPG - normally needs only one chain of signatures to validate - a target key okay. (But this may be adjusted with the help - of some options). + introducer does a good job when certifying other keys. + If all the introducer are of this trust value, GnuPG + normally needs only one chain of signatures to validate + a target key okay. (But this may be adjusted with the help + of some options). This information is confidential because it gives your personal opinion on the trustworthiness of someone else. Therefore this data is not stored in the keyring but in the "trustdb" @@ -282,7 +286,7 @@ Okay, here is how GnuPG helps you with key management. Most stuff is done with the --edit-key command - gpg --edit-key + gpg --edit-key GnuPG displays some information about the key and then prompts for a command (enter "help" to see a list of commands and see @@ -322,37 +326,37 @@ * Only by the short keyid (prepend a zero if it begins with A..F): - "234567C4" - "0F34E556E" - "01347A56A" - "0xAB123456 + "234567C4" + "0F34E556E" + "01347A56A" + "0xAB123456 * By a complete keyid: - "234AABBCC34567C4" - "0F323456784E56EAB" - "01AB3FED1347A5612" - "0x234AABBCC34567C4" + "234AABBCC34567C4" + "0F323456784E56EAB" + "01AB3FED1347A5612" + "0x234AABBCC34567C4" * By a fingerprint: - "1234343434343434C434343434343434" - "123434343434343C3434343434343734349A3434" - "0E12343434343434343434EAB3484343434343434" + "1234343434343434C434343434343434" + "123434343434343C3434343434343734349A3434" + "0E12343434343434343434EAB3484343434343434" The first one is MD5 the others are ripemd160 or sha1. * By an exact string: - "=Heinrich Heine " + "=Heinrich Heine " * By an email address: - "" + "" * By word match - "+Heinrich Heine duesseldorf" + "+Heinrich Heine duesseldorf" All words must match excatly (not case sensitive) and appear in any order in the user ID. Words are any sequences of letters, @@ -360,15 +364,15 @@ * By the Local ID (from the trust DB): - "#34" + "#34" This may be used by a MUA to specify an exact key after selecting a key from GnuPG (by using a special option or an extra utility) * Or by the usual substring: - "Heine" - "*Heine" + "Heine" + "*Heine" The '*' indicates substring search explicitly. @@ -396,22 +400,22 @@ Esoteric commands ----------------- - gpg --list-packets datafile + gpg --list-packets datafile Use this to list the contents of a data file. If the file is encrypted you are asked for the passphrase, so that GnuPG is able to look at the inner structure of a encrypted packet. This command should list all kinds of rfc2440 messages. - gpgm --list-trustdb + gpgm --list-trustdb List the contents of the trust DB in a human readable format - gpgm --list-trustdb + gpgm --list-trustdb List the tree of certificates for the given usernames - gpgm --list-trust-path username + gpgm --list-trust-path username List the possible trust paths for the given username. The length of such a trust path is limited by the option --max-cert-depth @@ -429,21 +433,25 @@ See http://www.gnupg.org/mirrors.html for a list of FTP mirrors and use them if possible. + To avoid possible legal problems we have decided, not to use + the normal www.gnu.org webserver. + Please direct bug reports to or, better, post them to the mailing list (this is a closed list - subscribe before posting, see above (~line 33)). Please direct questions about GnuPG to the mailing list or one of the pgp newsgroups and give me more time to improve - GnuPG. Commercial support for GnuPG will be available soon. + GnuPG. Commercial support for GnuPG is also available; please + see the GNU service directory or search other resources. Have fun and remember: Echelon is looking at you kid. -----BEGIN PGP SIGNATURE----- -Version: GnuPG v0.9.5 (GNU/Linux) +Version: GnuPG v0.9.7 (GNU/Linux) Comment: For info see http://www.gnupg.org -iQB1AwUBNzFgoB0Z9MEMmFelAQG1EgL/UlmBc7X9UoSh0ge1FNSNncHQGIX8wHkG -0BHOkcHS9XNxZokgkxoUTSRDFlXxW9auWpYKYeNkkck8S9ExtOJK6FABme6Daof0 -Hfe4E7TA82T73gvsMMlN6wyys3k5gTRt -=FP1e +iQB1AwUBN1UgTx0Z9MEMmFelAQH93wMAt2JYGXSkJR9+VBeLlpKdjxoIylrlDWEL +Jk5U/tuuM8H8G4ZJi7lDEhJNX77Jbh2LI18eCJJdrmWPrmDCNK2udDwcyKV4nW3k +7Fzpc/j8fKJcICP+T9YU9wa0NJrrTg1v +=dgdp -----END PGP SIGNATURE----- diff --git a/g10/ChangeLog b/g10/ChangeLog index f3a51cd4c..a66b8af38 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,3 +1,8 @@ +Wed Jun 2 14:17:19 CEST 1999 Werner Koch + + * mainproc.c (proc_tree): Yet another bad hack to cope with + broken pgp2 created detached messages in textmode. + Tue Jun 1 16:01:46 CEST 1999 Werner Koch * openfile.c (make_outfile_name): New. diff --git a/g10/mainproc.c b/g10/mainproc.c index 3de95e61c..cb2388f06 100644 --- a/g10/mainproc.c +++ b/g10/mainproc.c @@ -1080,10 +1080,23 @@ proc_tree( CTX c, KBNODE node ) /* enable a workaround for a pgp2 bug */ c->mfx.md2 = md_open( DIGEST_ALGO_MD5, 0 ); } + #if 0 + #warning md_start_debug enabled + md_start_debug( c->mfx.md, "det1" ); + if( c->mfx.md2 ) + md_start_debug( c->mfx.md2, "det2" ); + #endif + /* Here we have another hack to work around a pgp 2 bug + * It works by not using the textmode for detached signatures; + * this will let the first signazure check (on md) fail + * but the second one (on md2) which adds an extra CR should + * then produce the "correct" hash. This is very, very ugly + * hack but it may help in some cases (and break others) + */ if( c->sigs_only ) rc = hash_datafiles( c->mfx.md, c->mfx.md2, c->signed_data, c->sigfilename, - sig->sig_class == 0x01 ); + c->mfx.md2? 0 :(sig->sig_class == 0x01) ); else rc = ask_for_detached_datafile( &c->mfx, iobuf_get_fname(c->iobuf)); diff --git a/po/ChangeLog b/po/ChangeLog index 09fa6e29f..4b9bfcba5 100644 --- a/po/ChangeLog +++ b/po/ChangeLog @@ -1,3 +1,7 @@ +Wed Jun 2 14:17:19 CEST 1999 Werner Koch + + * es_ES.po: Some patches (Urko Lusa). + Mon May 31 19:41:10 CEST 1999 Werner Koch * de.po: New version (Walter). diff --git a/po/es_ES.po b/po/es_ES.po index a3b040bd9..ed997d2e6 100644 --- a/po/es_ES.po +++ b/po/es_ES.po @@ -6,9 +6,10 @@ msgid "" msgstr "" "POT-Creation-Date: 1999-05-23 15:36+0200\n" +"PO-Revision-Date: 1999-05-29 13:16+0200\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Date: 1998-11-13 10:49:25+0100\n" -"From: Urko Lusa \n" +"From: Urko Lusa \n" "Updated: 1998-01-12\n" "By: Luca Olivetti \n" "Xgettext-Options: --default-domain=gnupg --directory=.. --add-comments " @@ -21,15 +22,15 @@ msgstr "" #: util/secmem.c:76 msgid "Warning: using insecure memory!\n" -msgstr "Aviso: ¡se está usando memoria insegura!\n" +msgstr "ATENCIÓN: ¡se está usando memoria insegura!\n" #: util/secmem.c:249 msgid "operation is not possible without initialized secure memory\n" -msgstr "" +msgstr "operación imposible sin memoria segura inicializada\n" #: util/secmem.c:250 msgid "(you may have used the wrong program for this task)\n" -msgstr "" +msgstr "(es posible que haya usado el programa incorrecto para esta tarea)\n" #: util/miscutil.c:156 msgid "yes" @@ -248,7 +249,7 @@ msgstr "Ha encontrado Vd. un bug... (%s:%d)\n" #: cipher/random.c:412 msgid "WARNING: using insecure random number generator!!\n" -msgstr "Aviso: ¡se está usando un generador de números aleatorios inseguro!\n" +msgstr "ATENCIÓN: ¡se está usando un generador de números aleatorios inseguro!\n" #: cipher/random.c:413 msgid "" @@ -622,7 +623,7 @@ msgstr "comandos incompatibles\n" #: g10/g10.c:580 #, c-format msgid "NOTE: no default option file `%s'\n" -msgstr "nota: no existe fichero de opciones predefinido `%s'\n" +msgstr "NOTA: no existe fichero de opciones predefinido `%s'\n" #: g10/g10.c:584 #, c-format @@ -666,7 +667,7 @@ msgstr "max-cert-depth debe estar en el rango 1-255\n" #: g10/g10.c:810 msgid "NOTE: simple S2K mode (0) is strongly discouraged\n" -msgstr "nota: el modo S2K simple (0) no es nada recomendable\n" +msgstr "NOTA: el modo S2K simple (0) no es nada recomendable\n" #: g10/g10.c:814 msgid "invalid S2K mode; must be 0, 1 or 3\n" @@ -825,7 +826,7 @@ msgstr "armadura inv #: g10/armor.c:1009 msgid "" "quoted printable character in armor - probably a buggy MTA has been used\n" -msgstr "" +msgstr "caracter \"quoted printable\" en la armadura - probablemente se usó un MTA defectuoso\n" #: g10/pkclist.c:137 #, c-format @@ -1013,7 +1014,7 @@ msgstr " La firma es probablemente una FALSIFICACI msgid "" "WARNING: This key is not certified with sufficiently trusted signatures!\n" msgstr "" -"AVISO: ¡Esta clave no está certificada con suficientes firmas de confianza!\n" +"ATENCIÓN: ¡Esta clave no está certificada con suficientes firmas de confianza!\n" #: g10/pkclist.c:516 msgid " It is not certain that the signature belongs to the owner.\n" @@ -1262,7 +1263,7 @@ msgstr "Caracter no v #: g10/keygen.c:669 #, c-format msgid "You are using the `%s' character set.\n" -msgstr "" +msgstr "Está usando el juego de caracteres `%s'.\n" #: g10/keygen.c:675 #, c-format @@ -1396,7 +1397,7 @@ msgstr "error creando contrase #: g10/encode.c:167 g10/encode.c:287 #, c-format msgid "%s: WARNING: empty file\n" -msgstr "%s: atención: fichero vacío\n" +msgstr "%s: ATENCIÓN: fichero vacío\n" #: g10/encode.c:237 #, c-format @@ -1546,7 +1547,7 @@ msgstr "escribiendo en `%s'\n" #: g10/import.c:379 g10/import.c:435 #, fuzzy msgid "can't lock keyring `%': %s\n" -msgstr "no puede bloquearse el anillo público: %s\n" +msgstr "no puede bloquearse el anillo público `%s': %s\n" #: g10/import.c:382 #, fuzzy @@ -1616,7 +1617,7 @@ msgstr "clave %08lX: sin cambios\n" #: g10/import.c:544 g10/import.c:645 #, fuzzy, c-format msgid "can't lock keyring `%s': %s\n" -msgstr "no puede bloquearse el anillo público: %s\n" +msgstr "no puede bloquearse el anillo público `%s': %s\n" #: g10/import.c:552 #, c-format @@ -1659,7 +1660,7 @@ msgstr "clave %08lX: no hay identificativo de usuario para la firma\n" #: g10/import.c:693 g10/import.c:717 #, c-format msgid "key %08lX: unsupported public key algorithm\n" -msgstr "clave %08lX: algoritmo da clave pública no soportado\n" +msgstr "clave %08lX: algoritmo de clave pública no soportado\n" #: g10/import.c:694 #, c-format @@ -1729,7 +1730,7 @@ msgstr "%s: usuario no encontrado\n" #: g10/keyedit.c:177 msgid "[revocation]" -msgstr "" +msgstr "[revocación]" #: g10/keyedit.c:178 msgid "[self-signature]" @@ -1795,7 +1796,7 @@ msgstr "" msgid "" "The signature will be marked as non-exportable.\n" "\n" -msgstr "" +msgstr "La firma se marcará como no exportable.\n" #: g10/keyedit.c:321 msgid "Really sign? " @@ -2219,7 +2220,7 @@ msgstr "descifrado correcto\n" #: g10/mainproc.c:252 msgid "WARNING: encrypted message has been manipulated!\n" -msgstr "" +msgstr "ATENCIÓN: ¡el mensaje cifrado ha sido manipulado!\n" #: g10/mainproc.c:257 #, c-format @@ -2228,7 +2229,7 @@ msgstr "descifrado fallido: %s\n" #: g10/mainproc.c:275 msgid "NOTE: sender requested \"for-your-eyes-only\"\n" -msgstr "nota: el remitente solicitó \"sólo-para-tus-ojos\"\n" +msgstr "NOTA: el remitente solicitó \"sólo-para-tus-ojos\"\n" #: g10/mainproc.c:277 #, c-format @@ -2369,7 +2370,7 @@ msgstr "la codificaci #: g10/pubkey-enc.c:191 #, c-format msgid "NOTE: cipher algorithm %d not found in preferences\n" -msgstr "nota: algoritmo de cifrado %d no encontrado en las preferencias\n" +msgstr "NOTA: algoritmo de cifrado %d no encontrado en las preferencias\n" #: g10/seckey-cert.c:55 #, c-format @@ -2382,7 +2383,7 @@ msgstr "Contrase #: g10/seckey-cert.c:227 msgid "WARNING: Weak key detected - please change passphrase again.\n" -msgstr "Aviso: detectada clave débil - por favor cambie la contraseña.\n" +msgstr "ATENCIÓN: detectada clave débil - por favor cambie la contraseña.\n" #: g10/sig-check.c:187 #, fuzzy @@ -2409,7 +2410,7 @@ msgstr "lid %lu: identificativo de usuario sin firma\n" #: g10/sig-check.c:308 #, c-format msgid "NOTE: signature key expired %s\n" -msgstr "atención: clave de la firma caducada el %s\n" +msgstr "ATENCIÓN clave de la firma caducada el %s\n" #: g10/sig-check.c:365 msgid "assuming bad signature due to an unknown critical bit\n" @@ -2432,7 +2433,7 @@ msgstr "firmando:" #: g10/sign.c:346 #, c-format msgid "WARNING: `%s' is an empty file\n" -msgstr "atención: '%s' es un fichero vacío\n" +msgstr "ATENCIÓN `%s' es un fichero vacío\n" #: g10/textfilter.c:128 #, fuzzy, c-format @@ -2780,7 +2781,7 @@ msgstr "autofirma no v #: g10/trustdb.c:1403 msgid "Valid user ID revocation skipped due to a newer self signature\n" msgstr "" -"Revocación válida de identificativo de usuario ignorada debido auna " +"Revocación válida de identificativo de usuario ignorada debido a una " "autofirma más reciente\n" #: g10/trustdb.c:1410 @@ -3023,7 +3024,7 @@ msgstr "" #: g10/skclist.c:113 #, c-format msgid "skipped `%s': %s\n" -msgstr "'%s' ignorado: %s\n" +msgstr "`%s' ignorado: %s\n" #: g10/skclist.c:119 #, c-format @@ -3031,7 +3032,7 @@ msgid "" "skipped `%s': this is a PGP generated ElGamal key which is not secure for " "signatures!\n" msgstr "" -"'%s' ignorada: ¡esta es una clave ElGamal generada por PGP\n" +"`%s' ignorada: ¡esta es una clave ElGamal generada por PGP\n" " que NO es segura para las firmas!\n" #. do not overwrite