diff --git a/doc/DETAILS b/doc/DETAILS index 51a31a5b4..986b9080b 100644 --- a/doc/DETAILS +++ b/doc/DETAILS @@ -1,4 +1,7 @@ -*- text -*- + +NOTE: The definitive reference is the file from the SVN trunk. + Format of colon listings ======================== First an example: diff --git a/g10/ChangeLog b/g10/ChangeLog index 2c4cef774..bfe4f7a0c 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,3 +1,8 @@ +2006-08-21 Werner Koch + + * skclist.c (is_insecure): Also test for uppercase version of the + insecure string. + 2006-07-31 Werner Koch * openfile.c (open_outfile) [USE_ONLY_8DOT3]: Search backwards for diff --git a/g10/skclist.c b/g10/skclist.c index 21db10c6e..5e55e24ef 100644 --- a/g10/skclist.c +++ b/g10/skclist.c @@ -69,7 +69,8 @@ is_insecure( PKT_secret_key *sk ) continue; /* skip attribute packets */ if ( strstr( id->name, "(insecure!)" ) || strstr( id->name, "not secure" ) - || strstr( id->name, "do not use" ) ) { + || strstr( id->name, "do not use" ) + || strstr( id->name, "(INSECURE!)" ) ) { insecure = 1; break; } diff --git a/keyserver/ChangeLog b/keyserver/ChangeLog index a676d470e..355a8b94b 100644 --- a/keyserver/ChangeLog +++ b/keyserver/ChangeLog @@ -1,3 +1,19 @@ +2006-09-26 Werner Koch + + * gpgkeys_finger.c (get_key): Cast away signed/unsigned char ptr + mismatches. + + * ksutil.c (ks_hextobyte, ks_toupper, ks_strcasecmp): New. Use + them instead of there ascii_foo counterparts. + * gpgkeys_ldap.c (main): Replaced BUG by assert. + + * gpgkeys_curl.c, gpgkeys_hkp.c, gpgkeys_ldap.c, 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. + 2006-07-26 David Shaw * Makefile.am: Fix missing include path for gpgkeys_finger (needs diff --git a/keyserver/Makefile.am b/keyserver/Makefile.am index dafc853f3..9233fbe8c 100644 --- a/keyserver/Makefile.am +++ b/keyserver/Makefile.am @@ -36,7 +36,7 @@ gpgkeys_curl_SOURCES = gpgkeys_curl.c ksutil.c ksutil.h other_libs = $(LIBICONV) $(LIBINTL) $(CAPLIBS) gpgkeys_ldap_CPPFLAGS = @LDAP_CPPFLAGS@ -gpgkeys_ldap_LDADD = ../util/libutil.a @LDAPLIBS@ @NETLIBS@ $(other_libs) @GETOPT@ @W32LIBS@ +gpgkeys_ldap_LDADD = @LDAPLIBS@ @NETLIBS@ $(other_libs) @GETOPT@ @W32LIBS@ gpgkeys_finger_LDADD = ../util/libutil.a @NETLIBS@ $(other_libs) @GETOPT@ @W32LIBS@ 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 diff --git a/keyserver/gpgkeys_finger.c b/keyserver/gpgkeys_finger.c index 4124ebc72..c91022c4e 100644 --- a/keyserver/gpgkeys_finger.c +++ b/keyserver/gpgkeys_finger.c @@ -324,13 +324,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 diff --git a/keyserver/gpgkeys_ldap.c b/keyserver/gpgkeys_ldap.c index 357c874ea..216ed1e1d 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 @@ -29,6 +40,7 @@ #endif #include #include +#include #ifdef _WIN32 #include @@ -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 (!"invalid action"); if(!failed) ret=KEYSERVER_OK; diff --git a/keyserver/ksutil.c b/keyserver/ksutil.c index 64912bb2d..c302598c4 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 @@ -538,3 +549,54 @@ 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..0001bbade 100644 --- a/keyserver/ksutil.h +++ b/keyserver/ksutil.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 _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_ */ diff --git a/scripts/ChangeLog b/scripts/ChangeLog index 9c768fe5c..692598fff 100644 --- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,3 +1,7 @@ +2006-09-13 Werner Koch + + * autogen.sh: Better detection of the cross compiler. + 2006-04-03 Werner Koch * w32installer.nsi: Install curl and not http keyserver helper. diff --git a/scripts/autogen.sh b/scripts/autogen.sh index c39471eb6..232de1456 100755 --- a/scripts/autogen.sh +++ b/scripts/autogen.sh @@ -51,34 +51,26 @@ if test "$1" = "--build-w32"; then fi build=`$tsdir/scripts/config.guess` - # See whether we have the Debian cross compiler package or the - # old mingw32/cpd system - if i586-mingw32msvc-gcc --version >/dev/null 2>&1 ; then - host=i586-mingw32msvc - crossbindir=/usr/$host/bin - conf_CC="CC=${host}-gcc" - else - host=i386--mingw32 - if ! mingw32 --version >/dev/null; then - echo "We need at least version 0.3 of MingW32/CPD" >&2 - exit 1 - fi - echo "MingW32/CPD is no longer supported" >&2 - exit 1 - # crossbindir=`mingw32 --install-dir`/bin - # # Old autoconf version required us to setup the environment - # # with the proper tool names. - # CC=`mingw32 --get-path gcc` - # CPP=`mingw32 --get-path cpp` - # AR=`mingw32 --get-path ar` - # RANLIB=`mingw32 --get-path ranlib` - # export CC CPP AR RANLIB - # conf_CC="" + # Locate the cross compiler + crossbindir= + for host in i586-mingw32msvc i386-mingw32msvc; do + if ${host}-gcc --version >/dev/null 2>&1 ; then + crossbindir=/usr/${host}/bin + conf_CC="CC=${host}-gcc" + break; + fi + done + if [ -z "$crossbindir" ]; then + echo "Cross compiler kit not installed" >&2 + echo "Under Debian GNU/Linux, you may install it using" >&2 + echo " apt-get install mingw32 mingw32-runtime mingw32-binutils" >&2 + echo "Stop." >&2 + exit 1 fi if [ -f "$tsdir/config.log" ]; then if ! head $tsdir/config.log | grep "$host" >/dev/null; then - echo "Pease run a 'make distclean' first" >&2 + echo "Please run a 'make distclean' first" >&2 exit 1 fi fi