1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-06-29 02:22:45 +02:00

See ChangeLog: Fri Oct 8 20:32:01 CEST 1999 Werner Koch

This commit is contained in:
Werner Koch 1999-10-08 18:34:56 +00:00
parent 296f9de0bc
commit 5e66583143
35 changed files with 3234 additions and 2890 deletions

View File

@ -1,3 +1,11 @@
Fri Oct 8 20:32:01 CEST 1999 Werner Koch <wk@gnupg.de>
* configure.in: Fixed quoting in test for development version.
* THANKS: Add entries for Michael, Brenno and J Horacio who did
very nice Howto documents - I apoligize for forgetting to mention them
earlier.
Tue Sep 28 20:54:37 CEST 1999 Werner Koch <wk@gnupg.de> Tue Sep 28 20:54:37 CEST 1999 Werner Koch <wk@gnupg.de>
* textfilter.c (copy_clearsig_text) [__MINGW32__): Use CR,LF. * textfilter.c (copy_clearsig_text) [__MINGW32__): Use CR,LF.

2
NEWS
View File

@ -1,6 +1,8 @@
* New command --verify-files. * New command --verify-files.
* $http_proxy is now used when --honor-http-proxy is set.
* Fixed some minor bugs and the problem with conventional encrypted * Fixed some minor bugs and the problem with conventional encrypted
packets which did use the gpg v3 partial length headers. packets which did use the gpg v3 partial length headers.

200
THANKS
View File

@ -3,106 +3,110 @@ reporting problems, suggesting various improvements or submitting actual
code. Here is a list of those people. Help me keep it complete and free of code. Here is a list of those people. Help me keep it complete and free of
errors. errors.
Allan Clark allanc@sco.com Allan Clark allanc@sco.com
Anand Kumria wildfire@progsoc.uts.edu.au Anand Kumria wildfire@progsoc.uts.edu.au
Ariel T Glenn ariel@columbia.edu Ariel T Glenn ariel@columbia.edu
Bodo Moeller Bodo_Moeller@public.uni-hamburg.de Bodo Moeller Bodo_Moeller@public.uni-hamburg.de
Bryan Fullerton bryanf@samurai.com Brenno de Winter brenno@dewinter.com
Brian Moore bem@cmc.net Brian Moore bem@cmc.net
Brian Warner warner@lothar.com Brian Warner warner@lothar.com
Caskey L. Dickson caskey@technocage.com Bryan Fullerton bryanf@samurai.com
Cees van de Griend cees-list@griend.xs4all.nl Caskey L. Dickson caskey@technocage.com
Charles Levert charles@comm.polymtl.ca Cees van de Griend cees-list@griend.xs4all.nl
Christian von Roques roques@pond.sub.org Charles Levert charles@comm.polymtl.ca
Christopher Oliver oliver@fritz.traverse.net Christian von Roques roques@pond.sub.org
Christian Recktenwald chris@citecs.de Christopher Oliver oliver@fritz.traverse.net
Daniel Eisenbud eisenbud@cs.swarthmore.edu Christian Recktenwald chris@citecs.de
Daniel Koening dan@mail.isis.de Daniel Eisenbud eisenbud@cs.swarthmore.edu
David Ellement ellement@sdd.hp.com Daniel Koening dan@mail.isis.de
Detlef Lannert lannert@lannert.rz.uni-duesseldorf.de David Ellement ellement@sdd.hp.com
Dirk Lattermann dlatt@t-online.de Detlef Lannert lannert@lannert.rz.uni-duesseldorf.de
Ed Boraas ecxjo@esperanto.org Dirk Lattermann dlatt@t-online.de
Enzo Michelangeli em@MailAndNews.com Ed Boraas ecxjo@esperanto.org
Ernst Molitor ernst.molitor@uni-bonn.de Enzo Michelangeli em@MailAndNews.com
Fabio Coatti cova@felix.unife.it Ernst Molitor ernst.molitor@uni-bonn.de
Felix von Leitner leitner@amdiv.de Fabio Coatti cova@felix.unife.it
Frank Heckenbach heckenb@mi.uni-erlangen.de Felix von Leitner leitner@amdiv.de
Frank Stajano frank.stajano@cl.cam.ac.uk Frank Heckenbach heckenb@mi.uni-erlangen.de
Gaël Quéri gqueri@mail.dotcom.fr Frank Stajano frank.stajano@cl.cam.ac.uk
Greg Louis glouis@dynamicro.on.ca Gaël Quéri gqueri@mail.dotcom.fr
Greg Troxel gdt@ir.bbn.com Greg Louis glouis@dynamicro.on.ca
Gregory Steuck steuck@iname.com Greg Troxel gdt@ir.bbn.com
Geoff Keating geoffk@ozemail.com.au Gregory Steuck steuck@iname.com
Harald Denker harry@hal.westfalen.de Geoff Keating geoffk@ozemail.com.au
Hendrik Buschkamp buschkamp@rheumanet.org Harald Denker harry@hal.westfalen.de
Holger Schurig holger@d.om.org Hendrik Buschkamp buschkamp@rheumanet.org
Hugh Daniel hugh@toad.com Holger Schurig holger@d.om.org
Ian McKellar imckellar@harvestroad.com.au Hugh Daniel hugh@toad.com
Janusz A. Urbanowicz alex@bofh.torun.pl Ian McKellar imckellar@harvestroad.com.au
James Troup james@nocrew.org Janusz A. Urbanowicz alex@bofh.torun.pl
Jean-loup Gailly gzip@prep.ai.mit.edu James Troup james@nocrew.org
Jens Bachem bachem@rrz.uni-koeln.de Jean-loup Gailly gzip@prep.ai.mit.edu
Joachim Backes backes@rhrk.uni-kl.de Jens Bachem bachem@rrz.uni-koeln.de
John A. Martin jam@jamux.com J Horacio MG homega@ciberia.es
Johnny Teveßen j.tevessen@gmx.de Joachim Backes backes@rhrk.uni-kl.de
Jörg Schilling schilling@fokus.gmd.de John A. Martin jam@jamux.com
Jun Kuriyama kuriyama@sky.rim.or.jp Johnny Teveßen j.tevessen@gmx.de
Karl Fogel kfogel@guanabana.onshore.com Jörg Schilling schilling@fokus.gmd.de
Karsten Thygesen karthy@kom.auc.dk Jun Kuriyama kuriyama@sky.rim.or.jp
Katsuhiro Kondou kondou@nec.co.jp Karl Fogel kfogel@guanabana.onshore.com
Kazu Yamamoto kazu@iijlab.net Karsten Thygesen karthy@kom.auc.dk
Lars Kellogg-Stedman lars@bu.edu Katsuhiro Kondou kondou@nec.co.jp
Marco d'Itri md@linux.it Kazu Yamamoto kazu@iijlab.net
Mark Adler madler@alumni.caltech.edu Lars Kellogg-Stedman lars@bu.edu
Mark Elbrecht snowball3@bigfoot.com Marco d'Itri md@linux.it
Markus Friedl Markus.Friedl@informatik.uni-erlangen.de Mark Adler madler@alumni.caltech.edu
Martin Kahlert martin.kahlert@provi.de Mark Elbrecht snowball3@bigfoot.com
Markus Friedl Markus.Friedl@informatik.uni-erlangen.de
Martin Kahlert martin.kahlert@provi.de
Martin Hamilton Martin Hamilton
Martin Schulte schulte@thp.uni-koeln.de Martin Schulte schulte@thp.uni-koeln.de
Matthew Skala mskala@ansuz.sooke.bc.ca Matthew Skala mskala@ansuz.sooke.bc.ca
Max Valianskiy maxcom@maxcom.ml.org Max Valianskiy maxcom@maxcom.ml.org
Michael Roth mroth@nessie.de Michael Fischer v. Mollard mfvm@gmx.de
Michael Sobolev mss@despair.transas.com Michael Roth mroth@nessie.de
Nicolas Graner Nicolas.Graner@cri.u-psud.fr Michael Sobolev mss@despair.transas.com
NIIBE Yutaka gniibe@chroot.org Nicolas Graner Nicolas.Graner@cri.u-psud.fr
NIIBE Yutaka gniibe@chroot.org
Niklas Hernaeus Niklas Hernaeus
Nimrod Zimerman zimerman@forfree.at Nimrod Zimerman zimerman@forfree.at
N J Doye nic@niss.ac.uk N J Doye nic@niss.ac.uk
Oliver Haakert haakert@hsp.de Oliver Haakert haakert@hsp.de
Oskari Jääskeläinen f33003a@cc.hut.fi Oskari Jääskeläinen f33003a@cc.hut.fi
Paul D. Smith psmith@baynetworks.com Paul D. Smith psmith@baynetworks.com
Philippe Laliberte arsphl@oeil.qc.ca Philippe Laliberte arsphl@oeil.qc.ca
Peter Gutmann pgut001@cs.auckland.ac.nz Peter Gutmann pgut001@cs.auckland.ac.nz
QingLong qinglong@bolizm.ihep.su QingLong qinglong@bolizm.ihep.su
Ralph Gillen gillen@theochem.uni-duesseldorf.de Ralph Gillen gillen@theochem.uni-duesseldorf.de
Rat ratinox@peorth.gweep.net Rat ratinox@peorth.gweep.net
Reinhard Wobst R.Wobst@ifw-dresden.de Reinhard Wobst R.Wobst@ifw-dresden.de
Rémi Guyomarch rguyom@mail.dotcom.fr Rémi Guyomarch rguyom@mail.dotcom.fr
Reuben Sumner rasumner@wisdom.weizmann.ac.il Reuben Sumner rasumner@wisdom.weizmann.ac.il
Richard Outerbridge outer@interlog.com Richard Outerbridge outer@interlog.com
Roddy Strachan roddy@satlink.com.au Roddy Strachan roddy@satlink.com.au
Roland Rosenfeld roland@spinnaker.rhein.de Roland Rosenfeld roland@spinnaker.rhein.de
Ross Golder rossigee@bigfoot.com Ross Golder rossigee@bigfoot.com
Serge Munhoven munhoven@mema.ucl.ac.be Serge Munhoven munhoven@mema.ucl.ac.be
SL Baur steve@xemacs.org SL Baur steve@xemacs.org
Stefan Karrmann S.Karrmann@gmx.net Stefan Karrmann S.Karrmann@gmx.net
Stefan Keller dres@cs.tu-berlin.de Stefan Keller dres@cs.tu-berlin.de
Steffen Ullrich ccrlphr@xensei.com Steffen Ullrich ccrlphr@xensei.com
Steffen Zahn zahn@berlin.snafu.de Steffen Zahn zahn@berlin.snafu.de
Steven Bakker steven@icoe.att.com Steven Bakker steven@icoe.att.com
Susanne Schultz schultz@hsp.de Susanne Schultz schultz@hsp.de
Thiago Jung Bauermann jungmann@cwb.matrix.com.br Thiago Jung Bauermann jungmann@cwb.matrix.com.br
Thomas Roessler roessler@guug.de Thomas Roessler roessler@guug.de
Tom Spindler dogcow@home.merit.edu Tom Spindler dogcow@home.merit.edu
Tom Zerucha tzeruch@ceddec.com Tom Zerucha tzeruch@ceddec.com
Tomas Fasth tomas.fasth@twinspot.net Tomas Fasth tomas.fasth@twinspot.net
Thomas Mikkelsen tbm@image.dk Thomas Mikkelsen tbm@image.dk
Ulf Möller 3umoelle@informatik.uni-hamburg.de Ulf Möller 3umoelle@informatik.uni-hamburg.de
Urko Lusa ulusa@lacueva.ddns.org Urko Lusa ulusa@lacueva.ddns.org
Walter Koch koch@hsp.de Walter Hofmann Walter.Hofmann@physik.stud.uni-erlangen.de
Werner Koch werner.koch@guug.de Walter Koch koch@hsp.de
Wim Vandeputte bunbun@reptile.rug.ac.be Werner Koch werner.koch@guug.de
nbecker@hns.com Wim Vandeputte bunbun@reptile.rug.ac.be
nbecker@hns.com
Thanks to the German Unix User Group for providing FTP space, Thanks to the German Unix User Group for providing FTP space,
Martin Hamilton for hosting the mailing list and HSP for Martin Hamilton for hosting the mailing list and HSP for

View File

@ -1 +1 @@
1.0.0d 1.0.0e

View File

@ -1,3 +1,7 @@
Fri Oct 8 20:32:01 CEST 1999 Werner Koch <wk@gnupg.de>
* rndw32.c (load_and_init_winseed): Use the Registry to locate the DLL
Mon Oct 4 21:23:04 CEST 1999 Werner Koch <wk@gnupg.de> Mon Oct 4 21:23:04 CEST 1999 Werner Koch <wk@gnupg.de>
* md.c (md_reset): Clear finalized; thanks to Ulf Moeller for * md.c (md_reset): Clear finalized; thanks to Ulf Moeller for

View File

@ -68,8 +68,6 @@ static WIN32_SEEDER slow_seeder, fast_seeder;
static byte *entropy_buffer; static byte *entropy_buffer;
static size_t entropy_buffer_size; static size_t entropy_buffer_size;
static char *entropy_dll;
/**************** /****************
* Load and initialize the winseed DLL * Load and initialize the winseed DLL
* NOTE: winseed is not part of the GnuPG distribution. It should be available * NOTE: winseed is not part of the GnuPG distribution. It should be available
@ -84,7 +82,13 @@ load_and_init_winseed( void )
void *addr; void *addr;
unsigned int reason = 0; unsigned int reason = 0;
unsigned int n1, n2; unsigned int n1, n2;
const char *dllname = entropy_dll? entropy_dll : "c:/gnupg/entropy.dll"; const char *dllname;
dllname = read_w32_registry_string( "HKEY_LOCAL_MACHINE",
"Software\\GNU\\GnuPG",
"EntropyDLL" );
if( !dllname )
dllname = "c:/gnupg/entropy.dll";
hInstance = LoadLibrary( dllname ); hInstance = LoadLibrary( dllname );
if( !hInstance ) if( !hInstance )
@ -119,15 +123,14 @@ load_and_init_winseed( void )
g10_log_fatal("error creating winseed fast seeder: rc=%u\n", reason ); g10_log_fatal("error creating winseed fast seeder: rc=%u\n", reason );
goto failure; goto failure;
} }
g10_log_info("slow and fast seeders created.\n");
n1 = get_internal_seed_size( slow_seeder ); n1 = get_internal_seed_size( slow_seeder );
g10_log_info("slow buffer size=%u\n", n1); /*g10_log_info("slow buffer size=%u\n", n1);*/
n2 = get_internal_seed_size( fast_seeder ); n2 = get_internal_seed_size( fast_seeder );
g10_log_info("fast buffer size=%u\n", n2); /*g10_log_info("fast buffer size=%u\n", n2);*/
entropy_buffer_size = n1 > n2? n1: n2; entropy_buffer_size = n1 > n2? n1: n2;
entropy_buffer = m_alloc( entropy_buffer_size ); entropy_buffer = m_alloc( entropy_buffer_size );
g10_log_info("using a buffer of size=%u\n", entropy_buffer_size ); /*g10_log_info("using a buffer of size=%u\n", entropy_buffer_size );*/
return; return;
@ -173,13 +176,12 @@ gather_random( void (*add)(const void*, size_t, int), int requester,
g10_log_fatal("rndw32: get_seed(slow) failed: rc=%u\n", result); g10_log_fatal("rndw32: get_seed(slow) failed: rc=%u\n", result);
return -1; /* actually never reached */ return -1; /* actually never reached */
} }
g10_log_info("rndw32: slow poll level %d, need %u, got %u\n", /*g10_log_info("rndw32: slow poll level %d, need %u, got %u\n",
level, (unsigned int)length, (unsigned int)nbytes ); level, (unsigned int)length, (unsigned int)nbytes );*/
(*add)( entropy_buffer, nbytes, requester ); (*add)( entropy_buffer, nbytes, requester );
if( length <= nbytes ) if( length <= nbytes )
return 0; /* okay */ return 0; /* okay */
length -= nbytes; length -= nbytes;
g10_log_info("rndw32: need more\n");
} }
} }
@ -246,14 +248,6 @@ gnupgext_enum_func( int what, int *sequence, int *class, int *vers )
return ret; return ret;
} }
#ifdef USE_STATIC_RNDW32
void
rndw32_set_dll_name( const char *name )
{
entropy_dll = m_strdup( name );
}
#endif
#ifndef IS_MODULE #ifndef IS_MODULE
void void
rndw32_constructor(void) rndw32_constructor(void)

View File

@ -680,7 +680,7 @@ AC_SUBST(ZLIBS)
changequote(,)dnl changequote(,)dnl
tmp_pat='[a-zA-Z]' tmp_pat='[a-zA-Z]'
changequote([,])dnl 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) AC_DEFINE(IS_DEVELOPMENT_VERSION)
fi fi

13
doc/FAQ
View File

@ -349,4 +349,17 @@
line is needed for modern signatures, to tell the parser which line is needed for modern signatures, to tell the parser which
hash algorithm to use. hash algorithm to use.
Q: Now can a get list of key IDs used to encrypt a message?
A: gpg --batch --decrypt --status-fd 1 2>/dev/null \
| awk '/^\[GNUPG:\] ENC_TO / { print $3 }'
Q: PGP 5.x, 6.x does not like my secret key.
A: PGP probaly bails out on some private comment packets used by GnuPG.
These packets are fully in compliance with OpenPGP; however PGP is not
really OPenPGP aware. A workaround is to eport the secret keys with
this command:
gpg --export-secret-keys --no-comment -a your-key-id

View File

@ -17,6 +17,7 @@ without prior subscribing (but please request to CC you if you want
to get an answer). to get an answer).
Installation instructions: Installation instructions:
-------------------------- --------------------------
1. Unpack the ZIP archive (alright, you already did this) 1. Unpack the ZIP archive (alright, you already did this)
@ -25,14 +26,17 @@ Installation instructions:
3. Create a directory "c:\gnupg" (or any other as you like) 3. Create a directory "c:\gnupg" (or any other as you like)
4. Copy the file "entropy.dll" to this directory. 4. Copy the file "entropy.dll" to this directory.
5. If you did not use the default directory "c:\gnupg", you 5. If you did not use the default directory "c:\gnupg", you
should put a line: should enter a string with the directory into the Registry
"set GNUPGHOME=c:\my_gnupg_directory" under the key:
into your autoexec.bat or wherever you setup the environment \\HKEY_CURRENT_USER\Software\GNU\GnuPG\HomeDir
variables. The create a file named "options" in this Because the default location for the entropy DLL is also the
directory with the contents: c:\gnupg; you have to set another Registry entry with the
"entropy-dll-name c:/my_gnupg_directory/entropy.dll" full name of the DLL (e.g. "c:\foo\bar\entropy.dll") under
(Please notice that you have to use a normal slash and not the key:
a backslash here) \\HKEY_LOCAL_MACHINE\Software\GNU\GnuPG\EntropyDLL
Please use forward slashes and not the backslashes when
setting filenames for GnuPG into the Registry.
6. Enter "gpg" and see what happens 6. Enter "gpg" and see what happens
7. Read the file README and the online HOWTOs 7. Read the file README and the online HOWTOs
@ -41,10 +45,12 @@ Internationalization support:
----------------------------- -----------------------------
1. Decide where to store the translation files for your language. 1. Decide where to store the translation files for your language.
Here we assume the directory "c:/gnu/locale/fr" Here we assume the directory "c:/gnu/locale/fr"
2. Set an environment Variable: 2. Set the directory with the translations into the Registry under the key:
"set MINGW32_NLS_DIR=c:/gnu/locale/fr" \\HKEY_CURRENT_USER\Control Panel\Mingw32\NLS\MODir
3. Select which language to use. If you want the French translation, (Example entry: "c:/gnu/locale/fr")
copy the file "fr.mo" to "c:/gnu/locale/fr/gnupg.mo". 3. Select which language to use and copy the currect translation file
under the name "gnupg.mo" into the directory set in step 2
(Example: "copy fr.mo c:\gnu\locale\fr\gnupg.mo")
4. Done. 4. Done.
Currently we only support the Codepages 437, 850 und Latin1. If you have Currently we only support the Codepages 437, 850 und Latin1. If you have

View File

@ -732,6 +732,12 @@ balancing using round-robin DNS you may notice
that you get different key servers. that you get different key servers.
</para></listitem></varlistentry> </para></listitem></varlistentry>
<varlistentry>
<term>--honor-http-proxy</term>
<listitem><para>
Try to access the keyserver over the proxy set with the variable
"http_proxy".
</para></listitem></varlistentry>
<varlistentry> <varlistentry>
<term>--keyring &ParmFile;</term> <term>--keyring &ParmFile;</term>
@ -1228,13 +1234,6 @@ This is not for normal use. Use the source to see for what it might be useful.
This is not for normal use. Use the source to see for what it might be useful. This is not for normal use. Use the source to see for what it might be useful.
</para></listitem></varlistentry> </para></listitem></varlistentry>
<varlistentry>
<term>--entropy-dll-name &ParmFile;</term>
<listitem><para>
This option is only used for the Win32 version of GnuPG and changes the
default location (c:/gnupg/entropy.dll) of the Winseed DLL to &ParmFile;.
</para></listitem></varlistentry>
</variablelist> </variablelist>
</refsect1> </refsect1>
@ -1303,6 +1302,9 @@ constructed by cutting off the extension (".asc" or ".sig") of
<varlistentry> <varlistentry>
<term>GNUPGHOME</term> <term>GNUPGHOME</term>
<listitem><para>If set directory used instead of "~/.gnupg".</para></listitem> <listitem><para>If set directory used instead of "~/.gnupg".</para></listitem>
</varlistentry>
<term>http_proxy</term>
<listitem><para>Only honored when the option --honor-http-proxy is set.</para></listitem>
</varlistentry> </varlistentry>
</variablelist> </variablelist>

View File

@ -1,3 +1,14 @@
Fri Oct 8 20:32:01 CEST 1999 Werner Koch <wk@gnupg.de>
* ringedit.c (enum_keyblocks): Zero the entire kbpos out on open.
* g10.c (oEntropyDLL): Removed option.
(main): Made the warning on development versions more verbose.
* g10.c (oHonorHttpProxy): New option.
* hkp.c (hkp_ask_import,hkp_export): Implement this option.
* options.skel: Enable this option for new installations
Mon Oct 4 21:23:04 CEST 1999 Werner Koch <wk@gnupg.de> Mon Oct 4 21:23:04 CEST 1999 Werner Koch <wk@gnupg.de>
* import.c (import_keys): Changed calling interface, adjusted caller. * import.c (import_keys): Changed calling interface, adjusted caller.

View File

@ -178,7 +178,7 @@ enum cmd_and_opt_values { aNull = 0,
oAllowNonSelfsignedUID, oAllowNonSelfsignedUID,
oNoLiteral, oNoLiteral,
oSetFilesize, oSetFilesize,
oEntropyDLLName, oHonorHttpProxy,
oEmu3DESS2KBug, /* will be removed in 1.1 */ oEmu3DESS2KBug, /* will be removed in 1.1 */
aTest }; aTest };
@ -346,7 +346,7 @@ static ARGPARSE_OPTS opts[] = {
{ oAllowNonSelfsignedUID, "allow-non-selfsigned-uid", 0, "@" }, { oAllowNonSelfsignedUID, "allow-non-selfsigned-uid", 0, "@" },
{ oNoLiteral, "no-literal", 0, "@" }, { oNoLiteral, "no-literal", 0, "@" },
{ oSetFilesize, "set-filesize", 20, "@" }, { oSetFilesize, "set-filesize", 20, "@" },
{ oEntropyDLLName, "entropy-dll-name", 2, "@" }, { oHonorHttpProxy,"honor-http-proxy", 0, "@" },
{ oEmu3DESS2KBug, "emulate-3des-s2k-bug", 0, "@"}, { oEmu3DESS2KBug, "emulate-3des-s2k-bug", 0, "@"},
{0} }; {0} };
@ -586,7 +586,11 @@ main( int argc, char **argv )
opt.completes_needed = 1; opt.completes_needed = 1;
opt.marginals_needed = 3; opt.marginals_needed = 3;
opt.max_cert_depth = 5; opt.max_cert_depth = 5;
#ifdef __MINGW32__
opt.homedir = read_w32_registry_string( NULL, "Software\\GNU\\GnuPG", "HomeDir" );
#else
opt.homedir = getenv("GNUPGHOME"); opt.homedir = getenv("GNUPGHOME");
#endif
if( !opt.homedir || !*opt.homedir ) { if( !opt.homedir || !*opt.homedir ) {
#ifdef HAVE_DRIVE_LETTERS #ifdef HAVE_DRIVE_LETTERS
opt.homedir = "c:/gnupg"; opt.homedir = "c:/gnupg";
@ -865,22 +869,10 @@ main( int argc, char **argv )
case oDisablePubkeyAlgo: case oDisablePubkeyAlgo:
disable_pubkey_algo( string_to_pubkey_algo(pargs.r.ret_str) ); disable_pubkey_algo( string_to_pubkey_algo(pargs.r.ret_str) );
break; break;
case oAllowNonSelfsignedUID: case oAllowNonSelfsignedUID: opt.allow_non_selfsigned_uid = 1; break;
opt.allow_non_selfsigned_uid = 1; case oNoLiteral: opt.no_literal = 1; break;
break; case oSetFilesize: opt.set_filesize = pargs.r.ret_ulong; break;
case oNoLiteral: case oHonorHttpProxy: opt.honor_http_proxy = 1; break;
opt.no_literal = 1;
break;
case oSetFilesize:
opt.set_filesize = pargs.r.ret_ulong;
break;
case oEntropyDLLName:
#ifdef USE_STATIC_RNDW32
log_info("set dllname to `%s'\n", pargs.r.ret_str );
rndw32_set_dll_name( pargs.r.ret_str );
#endif
break;
default : pargs.err = configfp? 1:2; break; default : pargs.err = configfp? 1:2; break;
} }
@ -903,8 +895,11 @@ main( int argc, char **argv )
fprintf(stderr, "%s\n", strusage(15) ); fprintf(stderr, "%s\n", strusage(15) );
} }
#ifdef IS_DEVELOPMENT_VERSION #ifdef IS_DEVELOPMENT_VERSION
if( !opt.batch ) if( !opt.batch ) {
log_info("NOTE: this is a development version!\n"); log_info("NOTE: THIS IS A DEVELOPMENT VERSION!\n");
log_info("It is only intended for test purposes and should NOT be\n");
log_info("used in a production environment or with production keys!\n");
}
#endif #endif
if( opt.force_mdc ) { if( opt.force_mdc ) {
log_info("--force-mdc ignored because" log_info("--force-mdc ignored because"

View File

@ -55,6 +55,7 @@ hkp_ask_import( u32 *keyid )
struct http_context hd; struct http_context hd;
char *request; char *request;
int rc; int rc;
unsigned int hflags = opt.honor_http_proxy? HTTP_FLAG_TRY_PROXY : 0;
if( !opt.keyserver_name ) if( !opt.keyserver_name )
return -1; return -1;
@ -65,7 +66,7 @@ hkp_ask_import( u32 *keyid )
* nicer one */ * nicer one */
sprintf( request, "x-hkp://%s:11371/pks/lookup?op=get&search=0x%08lX", sprintf( request, "x-hkp://%s:11371/pks/lookup?op=get&search=0x%08lX",
opt.keyserver_name, (ulong)keyid[1] ); opt.keyserver_name, (ulong)keyid[1] );
rc = http_open_document( &hd, request, 0 ); rc = http_open_document( &hd, request, hflags );
if( rc ) { if( rc ) {
log_info("can't get key from keyserver: %s\n", log_info("can't get key from keyserver: %s\n",
rc == G10ERR_NETWORK? strerror(errno) rc == G10ERR_NETWORK? strerror(errno)
@ -120,6 +121,7 @@ hkp_export( STRLIST users )
struct http_context hd; struct http_context hd;
char *request; char *request;
unsigned int status; unsigned int status;
unsigned int hflags = opt.honor_http_proxy? HTTP_FLAG_TRY_PROXY : 0;
if( !opt.keyserver_name ) { if( !opt.keyserver_name ) {
log_error("no keyserver known (use option --keyserver)\n"); log_error("no keyserver known (use option --keyserver)\n");
@ -142,7 +144,7 @@ hkp_export( STRLIST users )
request = m_alloc( strlen( opt.keyserver_name ) + 100 ); request = m_alloc( strlen( opt.keyserver_name ) + 100 );
sprintf( request, "x-hkp://%s:11371/pks/add", opt.keyserver_name ); sprintf( request, "x-hkp://%s:11371/pks/add", opt.keyserver_name );
rc = http_open( &hd, HTTP_REQ_POST, request , 0 ); rc = http_open( &hd, HTTP_REQ_POST, request , hflags );
if( rc ) { if( rc ) {
log_error("can't connect to `%s': %s\n", log_error("can't connect to `%s': %s\n",
opt.keyserver_name, opt.keyserver_name,

View File

@ -509,7 +509,7 @@ do_check_sig( CTX c, KBNODE node, int *is_selfsig )
} }
else if( sig->sig_class == 0x20 ) { else if( sig->sig_class == 0x20 ) {
log_info(_("standalone revocation - " log_info(_("standalone revocation - "
"use \"gpg --import\" to apply\n"), sig->sig_class); "use \"gpg --import\" to apply\n"));
return G10ERR_NOT_PROCESSED; return G10ERR_NOT_PROCESSED;
} }
else { else {

View File

@ -83,6 +83,7 @@ struct {
int allow_non_selfsigned_uid; int allow_non_selfsigned_uid;
int no_literal; int no_literal;
ulong set_filesize; ulong set_filesize;
int honor_http_proxy;
} opt; } opt;

View File

@ -79,3 +79,8 @@ lock-once
# Use "host -l pgp.net | grep www" to figure out a keyserver. # Use "host -l pgp.net | grep www" to figure out a keyserver.
#keyserver wwwkeys.eu.pgp.net #keyserver wwwkeys.eu.pgp.net
# The environment variable http_proxy is only used when the
# this option is set.
honor-http-proxy

View File

@ -194,7 +194,7 @@ do_edit_ownertrust( ulong lid, int mode, unsigned *new_trust, int defer_help )
for(;;) { for(;;) {
/* a string with valid answers */ /* a string with valid answers */
char *ans = _("sSmMqQ"); const char *ans = _("sSmMqQ");
if( !did_help ) { if( !did_help ) {
if( !mode ) { if( !mode ) {

View File

@ -308,7 +308,7 @@ ask_for_detached_datafile( MD_HANDLE md, MD_HANDLE md2,
fp = open_sigfile( inname ); /* open default file */ fp = open_sigfile( inname ); /* open default file */
if( !fp && !opt.batch ) { if( !fp && !opt.batch ) {
int any=0; int any=0;
tty_printf("Detached signature.\n"); tty_printf(_("Detached signature.\n"));
do { do {
m_free(answer); m_free(answer);
answer = cpr_get("detached_signature.filename", answer = cpr_get("detached_signature.filename",

View File

@ -737,7 +737,7 @@ enum_keyblocks( int mode, KBPOS *kbpos, KBNODE *ret_root )
if( !mode || mode == 5 || mode == 100 ) { if( !mode || mode == 5 || mode == 100 ) {
int i; int i;
kbpos->fp = NULL; memset( kbpos, 0, sizeof *kbpos );
if( !mode ) { if( !mode ) {
kbpos->secret = 0; kbpos->secret = 0;
i = 0; i = 0;

View File

@ -49,6 +49,10 @@ typedef enum {
HTTP_REQ_POST = 3 HTTP_REQ_POST = 3
} HTTP_REQ_TYPE; } HTTP_REQ_TYPE;
enum { /* put flag values into an enum, so that gdb can display them */
HTTP_FLAG_TRY_PROXY = 1
};
struct http_context { struct http_context {
int initialized; int initialized;
unsigned int status_code; unsigned int status_code;
@ -61,6 +65,7 @@ struct http_context {
HTTP_REQ_TYPE req_type; HTTP_REQ_TYPE req_type;
byte *buffer; /* line buffer */ byte *buffer; /* line buffer */
unsigned buffer_size; unsigned buffer_size;
unsigned int flags;
}; };
typedef struct http_context *HTTP_HD; typedef struct http_context *HTTP_HD;

View File

@ -198,6 +198,12 @@ char *strlwr(char *a);
#define stricmp(a,b) strcasecmp( (a), (b) ) #define stricmp(a,b) strcasecmp( (a), (b) )
#endif #endif
/*-- w32reg.c --*/
#ifdef __MINGW32__
char *read_w32_registry_string( const char *root,
const char *dir, const char *name );
#endif
/**** other missing stuff ****/ /**** other missing stuff ****/
#ifndef HAVE_ATEXIT /* For SunOS */ #ifndef HAVE_ATEXIT /* For SunOS */
#define atexit(a) (on_exit((a),0)) #define atexit(a) (on_exit((a),0))

View File

@ -1,3 +1,7 @@
Fri Oct 8 20:32:01 CEST 1999 Werner Koch <wk@gnupg.de>
* fr.po: Updated for 1.0.0d.
Mon Oct 4 21:23:04 CEST 1999 Werner Koch <wk@gnupg.de> Mon Oct 4 21:23:04 CEST 1999 Werner Koch <wk@gnupg.de>
* pl.po: New version by Alex. * pl.po: New version by Alex.

624
po/de.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

634
po/fr.po

File diff suppressed because it is too large Load Diff

624
po/id.po

File diff suppressed because it is too large Load Diff

624
po/it.po

File diff suppressed because it is too large Load Diff

669
po/pl.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

624
po/ru.po

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,12 @@
Fri Oct 8 20:32:01 CEST 1999 Werner Koch <wk@gnupg.de>
* w32reg.c: New.
* simple-gettext.c: Use the Registry to locate the mo file.
* http.c (send_request): Add support for proxys; suggested by
Walter Hofmann.
(http_open_document): Pass flags to http_open.
Fri Sep 17 12:56:42 CEST 1999 Werner Koch <wk@isil.d.shuttle.de> Fri Sep 17 12:56:42 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>

View File

@ -8,7 +8,7 @@ noinst_LTLIBRARIES = libutil.la
libutil_la_LDFLAGS = libutil_la_LDFLAGS =
libutil_la_SOURCES = g10u.c logger.c fileutil.c miscutil.c strgutil.c \ libutil_la_SOURCES = g10u.c logger.c fileutil.c miscutil.c strgutil.c \
ttyio.c argparse.c memory.c secmem.c errors.c iobuf.c \ ttyio.c argparse.c memory.c secmem.c errors.c iobuf.c \
dotlock.c http.c simple-gettext.c dotlock.c http.c simple-gettext.c w32reg.c
http-test: http.c http-test: http.c

View File

@ -74,7 +74,7 @@ http_open( HTTP_HD hd, HTTP_REQ_TYPE reqtype, const char *url,
{ {
int rc; int rc;
if( flags || !(reqtype == HTTP_REQ_GET || reqtype == HTTP_REQ_POST) ) if( !(reqtype == HTTP_REQ_GET || reqtype == HTTP_REQ_POST) )
return G10ERR_INV_ARG; return G10ERR_INV_ARG;
/* initialize the handle */ /* initialize the handle */
@ -82,6 +82,7 @@ http_open( HTTP_HD hd, HTTP_REQ_TYPE reqtype, const char *url,
hd->sock = -1; hd->sock = -1;
hd->initialized = 1; hd->initialized = 1;
hd->req_type = reqtype; hd->req_type = reqtype;
hd->flags = flags;
rc = parse_uri( &hd->uri, url ); rc = parse_uri( &hd->uri, url );
if( !rc ) { if( !rc ) {
@ -148,10 +149,7 @@ http_open_document( HTTP_HD hd, const char *document, unsigned int flags )
{ {
int rc; int rc;
if( flags ) rc = http_open( hd, HTTP_REQ_GET, document, flags );
return G10ERR_INV_ARG;
rc = http_open( hd, HTTP_REQ_GET, document, 0 );
if( rc ) if( rc )
return rc; return rc;
@ -427,21 +425,47 @@ send_request( HTTP_HD hd )
byte *request, *p; byte *request, *p;
ushort port; ushort port;
int rc; int rc;
const char *http_proxy = NULL;
server = *hd->uri->host? hd->uri->host : "localhost"; server = *hd->uri->host? hd->uri->host : "localhost";
port = hd->uri->port? hd->uri->port : 80; port = hd->uri->port? hd->uri->port : 80;
hd->sock = connect_server( server, port ); if( (hd->flags & HTTP_FLAG_TRY_PROXY)
&& (http_proxy = getenv( "http_proxy" )) ) {
PARSED_URI uri;
rc = parse_uri( &uri, http_proxy );
if (rc) {
log_error("invalid $http_proxy: %s\n", g10_errstr(rc));
release_parsed_uri( uri );
return G10ERR_NETWORK;
}
hd->sock = connect_server( *uri->host? uri->host : "localhost",
uri->port? uri->port : 80 );
release_parsed_uri( uri );
}
else
hd->sock = connect_server( server, port );
if( hd->sock == -1 ) if( hd->sock == -1 )
return G10ERR_NETWORK; return G10ERR_NETWORK;
p = build_rel_path( hd->uri ); p = build_rel_path( hd->uri );
request = m_alloc( strlen(p) + 20 ); request = m_alloc( strlen(server) + strlen(p) + 50 );
sprintf( request, "%s %s%s HTTP/1.0\r\n", if( http_proxy ) {
sprintf( request, "%s http://%s:%hu%s%s HTTP/1.0\r\n",
hd->req_type == HTTP_REQ_GET ? "GET" :
hd->req_type == HTTP_REQ_HEAD? "HEAD":
hd->req_type == HTTP_REQ_POST? "POST": "OOPS",
server, port, *p == '/'? "":"/", p );
}
else {
sprintf( request, "%s %s%s HTTP/1.0\r\n",
hd->req_type == HTTP_REQ_GET ? "GET" : hd->req_type == HTTP_REQ_GET ? "GET" :
hd->req_type == HTTP_REQ_HEAD? "HEAD": hd->req_type == HTTP_REQ_HEAD? "HEAD":
hd->req_type == HTTP_REQ_POST? "POST": "OOPS", hd->req_type == HTTP_REQ_POST? "POST": "OOPS",
*p == '/'? "":"/", p ); *p == '/'? "":"/", p );
}
m_free(p); m_free(p);
rc = write_server( hd->sock, request, strlen(request) ); rc = write_server( hd->sock, request, strlen(request) );

View File

@ -242,19 +242,21 @@ set_gettext_file( const char *filename )
#endif #endif
) { ) {
/* absolute path - use it as is */ /* absolute path - use it as is */
log_info("trying `%s'\n", filename );
domain = load_domain( filename ); domain = load_domain( filename );
} }
else { /* relative path - append ".mo" and get DIR from env */ else { /* relative path - append ".mo" and get dir from the environment */
char *buf = NULL; char *buf = NULL;
const char *s; char *dir;
s = getenv("MINGW32_NLS_DIR"); dir = read_w32_registry_string( NULL,
if( s && (buf=malloc(strlen(s)+strlen(filename)+1+3+1)) ) { "Control Panel\\Mingw32\\NLS",
strcpy(stpcpy(stpcpy(stpcpy( buf, s),"/"), filename),".mo"); "MODir" );
if( dir && (buf=malloc(strlen(dir)+strlen(filename)+1+3+1)) ) {
strcpy(stpcpy(stpcpy(stpcpy( buf, dir),"/"), filename),".mo");
domain = load_domain( buf ); domain = load_domain( buf );
free(buf); free(buf);
} }
free(dir);
} }
if( !domain ) if( !domain )
return -1; return -1;