1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-06-27 02:02: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>
* textfilter.c (copy_clearsig_text) [__MINGW32__): Use CR,LF.

2
NEWS
View File

@ -1,6 +1,8 @@
* 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
packets which did use the gpg v3 partial length headers.

6
THANKS
View File

@ -7,9 +7,10 @@ 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
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
@ -42,6 +43,7 @@ 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
@ -61,6 +63,7 @@ Martin Hamilton
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
@ -99,6 +102,7 @@ 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 Hofmann Walter.Hofmann@physik.stud.uni-erlangen.de
Walter Koch koch@hsp.de
Werner Koch werner.koch@guug.de
Wim Vandeputte bunbun@reptile.rug.ac.be

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>
* 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 size_t entropy_buffer_size;
static char *entropy_dll;
/****************
* Load and initialize the winseed DLL
* NOTE: winseed is not part of the GnuPG distribution. It should be available
@ -84,7 +82,13 @@ load_and_init_winseed( void )
void *addr;
unsigned int reason = 0;
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 );
if( !hInstance )
@ -119,15 +123,14 @@ load_and_init_winseed( void )
g10_log_fatal("error creating winseed fast seeder: rc=%u\n", reason );
goto failure;
}
g10_log_info("slow and fast seeders created.\n");
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 );
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 = 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;
@ -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);
return -1; /* actually never reached */
}
g10_log_info("rndw32: slow poll level %d, need %u, got %u\n",
level, (unsigned int)length, (unsigned int)nbytes );
/*g10_log_info("rndw32: slow poll level %d, need %u, got %u\n",
level, (unsigned int)length, (unsigned int)nbytes );*/
(*add)( entropy_buffer, nbytes, requester );
if( length <= nbytes )
return 0; /* okay */
length -= nbytes;
g10_log_info("rndw32: need more\n");
}
}
@ -246,14 +248,6 @@ gnupgext_enum_func( int what, int *sequence, int *class, int *vers )
return ret;
}
#ifdef USE_STATIC_RNDW32
void
rndw32_set_dll_name( const char *name )
{
entropy_dll = m_strdup( name );
}
#endif
#ifndef IS_MODULE
void
rndw32_constructor(void)

View File

@ -680,7 +680,7 @@ 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

13
doc/FAQ
View File

@ -349,4 +349,17 @@
line is needed for modern signatures, to tell the parser which
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).
Installation instructions:
--------------------------
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)
4. Copy the file "entropy.dll" to this directory.
5. If you did not use the default directory "c:\gnupg", you
should put a line:
"set GNUPGHOME=c:\my_gnupg_directory"
into your autoexec.bat or wherever you setup the environment
variables. The create a file named "options" in this
directory with the contents:
"entropy-dll-name c:/my_gnupg_directory/entropy.dll"
(Please notice that you have to use a normal slash and not
a backslash here)
should enter a string with the directory into the Registry
under the key:
\\HKEY_CURRENT_USER\Software\GNU\GnuPG\HomeDir
Because the default location for the entropy DLL is also the
c:\gnupg; you have to set another Registry entry with the
full name of the DLL (e.g. "c:\foo\bar\entropy.dll") under
the key:
\\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
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.
Here we assume the directory "c:/gnu/locale/fr"
2. Set an environment Variable:
"set MINGW32_NLS_DIR=c:/gnu/locale/fr"
3. Select which language to use. If you want the French translation,
copy the file "fr.mo" to "c:/gnu/locale/fr/gnupg.mo".
2. Set the directory with the translations into the Registry under the key:
\\HKEY_CURRENT_USER\Control Panel\Mingw32\NLS\MODir
(Example entry: "c:/gnu/locale/fr")
3. Select which language to use and copy the currect translation file
under the name "gnupg.mo" into the directory set in step 2
(Example: "copy fr.mo c:\gnu\locale\fr\gnupg.mo")
4. Done.
Currently we only support the Codepages 437, 850 und Latin1. If you have

View File

@ -732,6 +732,12 @@ balancing using round-robin DNS you may notice
that you get different key servers.
</para></listitem></varlistentry>
<varlistentry>
<term>--honor-http-proxy</term>
<listitem><para>
Try to access the keyserver over the proxy set with the variable
"http_proxy".
</para></listitem></varlistentry>
<varlistentry>
<term>--keyring &ParmFile;</term>
@ -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.
</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>
</refsect1>
@ -1303,6 +1302,9 @@ constructed by cutting off the extension (".asc" or ".sig") of
<varlistentry>
<term>GNUPGHOME</term>
<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>
</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>
* import.c (import_keys): Changed calling interface, adjusted caller.

View File

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

View File

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

View File

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

View File

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

View File

@ -194,7 +194,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 ) {

View File

@ -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",

View File

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

View File

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

View File

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

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>
* 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>

View File

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

View File

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