1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-03 22:56:33 +02:00

Clarified cURL and OpenLDAP license issues.

Made readline support work.
This commit is contained in:
Werner Koch 2006-09-22 11:39:45 +00:00
parent 43ab905823
commit b0a06d18a4
18 changed files with 290 additions and 57 deletions

View file

@ -1,3 +1,25 @@
2006-09-22 Werner Koch <wk@g10code.com>
* gpgkeys_curl.c, gpgkeys_hkp.c, gpgkeys_ldap.c, curl-shim.c:
* curl-shim.h, ksutil.c, ksutil.h: Add special license exception
for OpenSSL. This helps to avoid license conflicts if OpenLDAP or
cURL is linked against OpenSSL and we would thus indirectly link
to OpenSSL. This is considered a bug fix and forgives all
possible violations, pertaining to this issue, possibly occured in
the past.
* Makefile.am (gpg2keys_ldap_LDADD): For license reasons do not
link against common_libs.
(gpg2keys_curl_LDADD, gpg2keys_hkp_LDADD): Ditto.
* ksutil.c (ks_hextobyte, ks_toupper, ks_strcasecmp): New.
Identical to the ascii_foo versions from jnlib.
* gpgkeys_ldap.c: Include assert.h.
(main): Replace BUG by assert.
(build_attrs): Use ks_hextobyte and ks_strcasecmp.
* gpgkeys_finger.c (get_key): Resolved signed/unisgned char
mismatch.
2006-09-19 Werner Koch <wk@g10code.com>
* no-libgcrypt.c: New. Taken from ../tools.

View file

@ -18,6 +18,10 @@
## Process this file with automake to produce Makefile.in
# Note that we have renamed the resulting binaries to from gpgkeys_foo
# to gpg2keys_foo to allow for a non-conflicting installation of
# gnupg1 and gnupg2. Having the same names for the helpers would
# otherwise lead to trouble when to uninstall one of them.
EXTRA_PROGRAMS = gpg2keys_ldap gpg2keys_hkp gpg2keys_finger gpg2keys_curl
EXTRA_SCRIPTS = gpg2keys_mailto
@ -32,7 +36,7 @@ libexec_PROGRAMS = $(GPGKEYS_LDAP) $(GPGKEYS_HKP) $(GPGKEYS_FINGER) \
libexec_SCRIPTS = $(GPGKEYS_MAILTO)
noinst_SCRIPTS = gpgkeys_test
common_libs = ../gl/libgnu.a ../common/libcommon.a ../jnlib/libjnlib.a
common_libs = ../gl/libgnu.a ../common/libcommon.a ../jnlib/libjnlib.a
other_libs = $(LIBICONV) $(LIBINTL) $(CAPLIBS)
gpg2keys_ldap_SOURCES = gpgkeys_ldap.c ksutil.c ksutil.h no-libgcrypt.c
@ -42,7 +46,7 @@ gpg2keys_curl_SOURCES = gpgkeys_curl.c ksutil.c ksutil.h no-libgcrypt.c
gpg2keys_ldap_CPPFLAGS = $(LDAP_CPPFLAGS) $(AM_CPPFLAGS)
gpg2keys_ldap_LDADD = $(common_libs) $(LDAPLIBS) $(NETLIBS) \
gpg2keys_ldap_LDADD = $(LDAPLIBS) $(NETLIBS) \
$(other_libs) $(W32LIBS)
gpg2keys_finger_LDADD = $(common_libs) $(LIBGCRYPT_LIBS) \
@ -50,10 +54,10 @@ gpg2keys_finger_LDADD = $(common_libs) $(LIBGCRYPT_LIBS) \
if FAKE_CURL
gpg2keys_curl_SOURCES += curl-shim.c curl-shim.h
gpg2keys_curl_LDADD = $(common_libs) $(NETLIBS) $(DNSLIBS) \
gpg2keys_curl_LDADD = $(NETLIBS) $(DNSLIBS) \
$(other_libs) $(W32LIBS)
gpg2keys_hkp_SOURCES += curl-shim.c curl-shim.h
gpg2keys_hkp_LDADD = $(common_libs) $(NETLIBS) $(DNSLIBS) \
gpg2keys_hkp_LDADD = $(NETLIBS) $(DNSLIBS) \
$(other_libs) $(W32LIBS)
else
gpg2keys_curl_CPPFLAGS = $(LIBCURL_CPPFLAGS) $(AM_CPPFLAGS)

View file

@ -19,6 +19,17 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA.
*
* In addition, as a special exception, the Free Software Foundation
* gives permission to link the code of the keyserver helper tools:
* gpgkeys_ldap, gpgkeys_curl and gpgkeys_hkp with the OpenSSL
* project's "OpenSSL" library (or with modified versions of it that
* use the same license as the "OpenSSL" library), and distribute the
* linked executables. You must obey the GNU General Public License
* in all respects for all of the code used other than "OpenSSL". If
* you modify this file, you may extend this exception to your version
* of the file, but you are not obligated to do so. If you do not
* wish to do so, delete this exception statement from your version.
*/
#include <config.h>

View file

@ -17,6 +17,17 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA.
*
* In addition, as a special exception, the Free Software Foundation
* gives permission to link the code of the keyserver helper tools:
* gpgkeys_ldap, gpgkeys_curl and gpgkeys_hkp with the OpenSSL
* project's "OpenSSL" library (or with modified versions of it that
* use the same license as the "OpenSSL" library), and distribute the
* linked executables. You must obey the GNU General Public License
* in all respects for all of the code used other than "OpenSSL". If
* you modify this file, you may extend this exception to your version
* of the file, but you are not obligated to do so. If you do not
* wish to do so, delete this exception statement from your version.
*/
#ifndef _CURL_SHIM_H_

View file

@ -17,6 +17,17 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA.
*
* In addition, as a special exception, the Free Software Foundation
* gives permission to link the code of the keyserver helper tools:
* gpgkeys_ldap, gpgkeys_curl and gpgkeys_hkp with the OpenSSL
* project's "OpenSSL" library (or with modified versions of it that
* use the same license as the "OpenSSL" library), and distribute the
* linked executables. You must obey the GNU General Public License
* in all respects for all of the code used other than "OpenSSL". If
* you modify this file, you may extend this exception to your version
* of the file, but you are not obligated to do so. If you do not
* wish to do so, delete this exception statement from your version.
*/
#include <config.h>

View file

@ -325,13 +325,13 @@ get_key (char *getkey)
if(gotit)
{
print_nocr(output,line);
if (!strncmp(line,END,strlen(END)))
print_nocr(output, (const char*)line);
if (!strncmp((char*)line,END,strlen(END)))
break;
}
else if(!strncmp(line,BEGIN,strlen(BEGIN)))
else if(!strncmp((char*)line,BEGIN,strlen(BEGIN)))
{
print_nocr(output,line);
print_nocr(output, (const char*)line);
gotit=1;
}
}

View file

@ -17,6 +17,17 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA.
*
* In addition, as a special exception, the Free Software Foundation
* gives permission to link the code of the keyserver helper tools:
* gpgkeys_ldap, gpgkeys_curl and gpgkeys_hkp with the OpenSSL
* project's "OpenSSL" library (or with modified versions of it that
* use the same license as the "OpenSSL" library), and distribute the
* linked executables. You must obey the GNU General Public License
* in all respects for all of the code used other than "OpenSSL". If
* you modify this file, you may extend this exception to your version
* of the file, but you are not obligated to do so. If you do not
* wish to do so, delete this exception statement from your version.
*/
#include <config.h>

View file

@ -17,6 +17,17 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA.
*
* In addition, as a special exception, the Free Software Foundation
* gives permission to link the code of the keyserver helper tools:
* gpgkeys_ldap, gpgkeys_curl and gpgkeys_hkp with the OpenSSL
* project's "OpenSSL" library (or with modified versions of it that
* use the same license as the "OpenSSL" library), and distribute the
* linked executables. You must obey the GNU General Public License
* in all respects for all of the code used other than "OpenSSL". If
* you modify this file, you may extend this exception to your version
* of the file, but you are not obligated to do so. If you do not
* wish to do so, delete this exception statement from your version.
*/
#include <config.h>
@ -29,6 +40,7 @@
#endif
#include <stdlib.h>
#include <errno.h>
#include <assert.h>
#ifdef _WIN32
#include <winsock2.h>
@ -355,7 +367,7 @@ build_attrs(LDAPMod ***modlist,char *line)
if((record=strsep(&line,":"))==NULL)
return;
if(ascii_strcasecmp("pub",record)==0)
if(ks_strcasecmp("pub",record)==0)
{
char *tok;
int disabled=0,revoked=0;
@ -461,7 +473,7 @@ build_attrs(LDAPMod ***modlist,char *line)
make_one_attr(modlist,"pgpDisabled",disabled?"1":"0");
make_one_attr(modlist,"pgpRevoked",revoked?"1":"0");
}
else if(ascii_strcasecmp("sub",record)==0)
else if(ks_strcasecmp("sub",record)==0)
{
char *tok;
@ -499,7 +511,7 @@ build_attrs(LDAPMod ***modlist,char *line)
/* Ignore the rest of the items for subkeys since the LDAP
schema doesn't store them. */
}
else if(ascii_strcasecmp("uid",record)==0)
else if(ks_strcasecmp("uid",record)==0)
{
char *userid,*tok;
@ -520,7 +532,7 @@ build_attrs(LDAPMod ***modlist,char *line)
while(*tok)
if(tok[0]=='%' && tok[1] && tok[2])
{
if((userid[i]=hextobyte(&tok[1]))==-1)
if((userid[i]=ks_hextobyte(&tok[1]))==-1)
userid[i]='?';
i++;
@ -536,7 +548,7 @@ build_attrs(LDAPMod ***modlist,char *line)
make_one_attr(modlist,"pgpUserID",userid);
}
else if(ascii_strcasecmp("sig",record)==0)
else if(ks_strcasecmp("sig",record)==0)
{
char *tok;
@ -2325,7 +2337,7 @@ main(int argc,char *argv[])
free(searchkey);
}
else
BUG();
assert (!"bad action");
if(!failed)
ret=KEYSERVER_OK;

View file

@ -17,6 +17,17 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA.
*
* In addition, as a special exception, the Free Software Foundation
* gives permission to link the code of the keyserver helper tools:
* gpgkeys_ldap, gpgkeys_curl and gpgkeys_hkp with the OpenSSL
* project's "OpenSSL" library (or with modified versions of it that
* use the same license as the "OpenSSL" library), and distribute the
* linked executables. You must obey the GNU General Public License
* in all respects for all of the code used other than "OpenSSL". If
* you modify this file, you may extend this exception to your version
* of the file, but you are not obligated to do so. If you do not
* wish to do so, delete this exception statement from your version.
*/
#include <config.h>
@ -538,3 +549,55 @@ curl_writer_finalize(struct curl_writer_ctx *ctx)
ctx->flags.done=1;
}
}
int
ks_hextobyte (const char *s)
{
int c;
if ( *s >= '0' && *s <= '9' )
c = 16 * (*s - '0');
else if ( *s >= 'A' && *s <= 'F' )
c = 16 * (10 + *s - 'A');
else if ( *s >= 'a' && *s <= 'f' )
c = 16 * (10 + *s - 'a');
else
return -1;
s++;
if ( *s >= '0' && *s <= '9' )
c += *s - '0';
else if ( *s >= 'A' && *s <= 'F' )
c += 10 + *s - 'A';
else if ( *s >= 'a' && *s <= 'f' )
c += 10 + *s - 'a';
else
return -1;
return c;
}
/* Non localized version of toupper. */
int
ks_toupper (int c)
{
if (c >= 'a' && c <= 'z')
c &= ~0x20;
return c;
}
/* Non localized version of strcasecmp. */
int
ks_strcasecmp (const char *a, const char *b)
{
if (a == b)
return 0;
for (; *a && *b; a++, b++)
{
if (*a != *b && ks_toupper (*a) != ks_toupper (*b))
break;
}
return *a == *b? 0 : (ks_toupper (*a) - ks_toupper (*b));
}

View file

@ -1,14 +1,14 @@
/* ksutil.h
* Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
*
* This file is part of GNUPG.
* This file is part of GnuPG.
*
* GNUPG is free software; you can redistribute it and/or modify
* 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,
* 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.
@ -17,6 +17,17 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA.
*
* In addition, as a special exception, the Free Software Foundation
* gives permission to link the code of the keyserver helper tools:
* gpgkeys_ldap, gpgkeys_curl and gpgkeys_hkp with the OpenSSL
* project's "OpenSSL" library (or with modified versions of it that
* use the same license as the "OpenSSL" library), and distribute the
* linked executables. You must obey the GNU General Public License
* in all respects for all of the code used other than "OpenSSL". If
* you modify this file, you may extend this exception to your version
* of the file, but you are not obligated to do so. If you do not
* wish to do so, delete this exception statement from your version.
*/
#ifndef _KSUTIL_H_
@ -127,4 +138,9 @@ struct curl_writer_ctx
size_t curl_writer(const void *ptr,size_t size,size_t nmemb,void *cw_ctx);
void curl_writer_finalize(struct curl_writer_ctx *ctx);
int ks_hextobyte (const char *s);
int ks_toupper (int c);
int ks_strcasecmp (const char *a, const char *b);
#endif /* !_KSUTIL_H_ */