diff options
author | Werner Koch <wk@gnupg.org> | 2006-09-22 13:39:45 +0200 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2006-09-22 13:39:45 +0200 |
commit | b0a06d18a4a4e5c3a17a5b3d187d808aabd837f0 (patch) | |
tree | 1bdc17b3307a2d9ef7f61c6131a089809faafec8 /keyserver | |
parent | Various updates (diff) | |
download | gnupg2-b0a06d18a4a4e5c3a17a5b3d187d808aabd837f0.tar.xz gnupg2-b0a06d18a4a4e5c3a17a5b3d187d808aabd837f0.zip |
Clarified cURL and OpenLDAP license issues.
Made readline support work.
Diffstat (limited to 'keyserver')
-rw-r--r-- | keyserver/ChangeLog | 22 | ||||
-rw-r--r-- | keyserver/Makefile.am | 12 | ||||
-rw-r--r-- | keyserver/curl-shim.c | 11 | ||||
-rw-r--r-- | keyserver/curl-shim.h | 11 | ||||
-rw-r--r-- | keyserver/gpgkeys_curl.c | 11 | ||||
-rw-r--r-- | keyserver/gpgkeys_finger.c | 8 | ||||
-rw-r--r-- | keyserver/gpgkeys_hkp.c | 11 | ||||
-rw-r--r-- | keyserver/gpgkeys_ldap.c | 24 | ||||
-rw-r--r-- | keyserver/ksutil.c | 63 | ||||
-rw-r--r-- | keyserver/ksutil.h | 22 |
10 files changed, 178 insertions, 17 deletions
diff --git a/keyserver/ChangeLog b/keyserver/ChangeLog index d58e1c8df..7a9851555 100644 --- a/keyserver/ChangeLog +++ b/keyserver/ChangeLog @@ -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. diff --git a/keyserver/Makefile.am b/keyserver/Makefile.am index cb7ff8d50..1d2e40910 100644 --- a/keyserver/Makefile.am +++ b/keyserver/Makefile.am @@ -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) diff --git a/keyserver/curl-shim.c b/keyserver/curl-shim.c index 12c7afa94..f9ab3be6c 100644 --- a/keyserver/curl-shim.c +++ b/keyserver/curl-shim.c @@ -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> diff --git a/keyserver/curl-shim.h b/keyserver/curl-shim.h index e942ec710..ad8e8e1d9 100644 --- a/keyserver/curl-shim.h +++ b/keyserver/curl-shim.h @@ -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_ diff --git a/keyserver/gpgkeys_curl.c b/keyserver/gpgkeys_curl.c index 9e4b56729..192f9ba66 100644 --- a/keyserver/gpgkeys_curl.c +++ b/keyserver/gpgkeys_curl.c @@ -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> diff --git a/keyserver/gpgkeys_finger.c b/keyserver/gpgkeys_finger.c index b4f7b6a78..58082790f 100644 --- a/keyserver/gpgkeys_finger.c +++ b/keyserver/gpgkeys_finger.c @@ -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; } } diff --git a/keyserver/gpgkeys_hkp.c b/keyserver/gpgkeys_hkp.c index e6de3634c..1692a5033 100644 --- a/keyserver/gpgkeys_hkp.c +++ b/keyserver/gpgkeys_hkp.c @@ -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> diff --git a/keyserver/gpgkeys_ldap.c b/keyserver/gpgkeys_ldap.c index b56cca1cf..df4279ff7 100644 --- a/keyserver/gpgkeys_ldap.c +++ b/keyserver/gpgkeys_ldap.c @@ -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; diff --git a/keyserver/ksutil.c b/keyserver/ksutil.c index 64912bb2d..18158fc81 100644 --- a/keyserver/ksutil.c +++ b/keyserver/ksutil.c @@ -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)); +} diff --git a/keyserver/ksutil.h b/keyserver/ksutil.h index 16c1ebf88..154054407 100644 --- a/keyserver/ksutil.h +++ b/keyserver/ksutil.h @@ -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_ */ |