diff --git a/ChangeLog b/ChangeLog index 7cbabb0c1c..a0d47fb720 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,27 @@ +2000-03-03 Geoff Keating + + * Makeconfig (rpath-dirs): Add crypt. + (all-subdirs): Remove md5crypt. + * crypt/sysdeps/unix/crypt.c: Move to crypt/. + * crypt/sysdeps/unix/crypt-entry.c: Move to crypt/. + * sysdeps/generic/crypt-entry.c: Delete. + * crypt/sysdeps/unix/crypt.h: Move to crypt/. + * sysdeps/generic/crypt.h: Delete. + * crypt/sysdeps/unix/crypt-private.h: Move to crypt/. + * crypt/sysdeps/unix/crypt_util.c: Move to crypt/. + * crypt/sysdeps/unix/des_impl.c: Move to sunrpc/. + * sysdeps/generic/des_impl.c: Delete. + * crypt/sysdeps/unix/ufc-crypt.h: Move to crypt/. + * crypt/sysdeps: Delete. + * crypt/crypt_util.c: Don't use `patchlevel.h'. + * md5-crypt/Versions: Move to crypt/. + * md5-crypt/md5-crypt.c: Move to crypt/. + * md5-crypt/md5.c: Move to crypt/. + * md5-crypt/md5c-test.c: Move to crypt/. + * md5-crypt/md5test.c: Move to crypt/. + * md5-crypt: Delete. + * crypt/Makefile: Adjust for new structure. + 2000-03-03 Paul Eggert * posix/regex.c (MB_LEN_MAX): Include to define; diff --git a/Makeconfig b/Makeconfig index 285b747014..6d87892d74 100644 --- a/Makeconfig +++ b/Makeconfig @@ -414,7 +414,7 @@ link-libc = -Wl,-rpath-link=$(rpath-link) \ $(common-objpfx)libc.so$(libc.so-version) \ $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib) # This is how to find at build-time things that will be installed there. -rpath-dirs = math elf dlfcn nss nis rt resolv +rpath-dirs = math elf dlfcn nss nis rt resolv crypt rpath-link = \ $(common-objdir):$(subst $(empty) ,:,$(patsubst ../$(subdir),.,$(rpath-dirs:%=$(common-objpfx)%))) elfobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)elf) @@ -781,7 +781,7 @@ endif all-subdirs = csu assert ctype locale intl catgets math setjmp signal \ stdlib stdio-common $(stdio) malloc string wcsmbs time dirent \ grp pwd posix io termios resource misc socket sysvipc gmon \ - gnulib iconv iconvdata wctype manual shadow md5-crypt po argp \ + gnulib iconv iconvdata wctype manual shadow po argp \ crypt $(add-ons) nss localedata timezone rt debug \ $(sysdep-subdirs) $(dlfcn) $(binfmt-subdir) all-subdirs := $(filter-out $(sysdep-inhibit-subdirs),$(all-subdirs)) diff --git a/crypt/Makefile b/crypt/Makefile index 1be33be001..a9ce7da41e 100644 --- a/crypt/Makefile +++ b/crypt/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1996 Free Software Foundation, Inc. +# Copyright (C) 1996, 2000 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -17,20 +17,35 @@ # Boston, MA 02111-1307, USA. # -# Sub-makefile for DES crypt portion of the library. +# Sub-makefile for crypt() portion of the library. # subdir := crypt -tests = cert +headers := crypt.h + +distribute := md5.h + +extra-libs := libcrypt +extra-libs-others := $(extra-libs) + +libcrypt-routines := crypt-entry md5-crypt md5 crypt crypt_util + +tests = cert md5test md5c-test include ../Makeconfig -rpath-dirs += md5-crypt +ifeq ($(crypt-in-libc),yes) +routines += $(libcrypt-routines) +endif + +$(objpfx)md5test: $(objpfx)md5.o include ../Rules -ifeq ($(build-shared),yes) -$(objpfx)cert: $(common-objpfx)md5-crypt/libcrypt.so$(libcrypt.so-version) -else -$(objpfx)cert: $(common-objpfx)md5-crypt/libcrypt.a -endif +LDLIBS-cert = crypt/libcrypt +LDLIBS-md5c-test = crypt/libcrypt + +# Depend on libc.so so a DT_NEEDED is generated in the shared objects. +# This ensures they will load libc.so for needed symbols if loaded by +# a statically-linked program that hasn't already loaded it. +$(objpfx)libcrypt.so: $(common-objpfx)libc.so diff --git a/md5-crypt/Versions b/crypt/Versions similarity index 100% rename from md5-crypt/Versions rename to crypt/Versions diff --git a/crypt/sysdeps/unix/crypt-entry.c b/crypt/crypt-entry.c similarity index 100% rename from crypt/sysdeps/unix/crypt-entry.c rename to crypt/crypt-entry.c diff --git a/crypt/sysdeps/unix/crypt-private.h b/crypt/crypt-private.h similarity index 100% rename from crypt/sysdeps/unix/crypt-private.h rename to crypt/crypt-private.h diff --git a/crypt/sysdeps/unix/crypt.c b/crypt/crypt.c similarity index 100% rename from crypt/sysdeps/unix/crypt.c rename to crypt/crypt.c diff --git a/crypt/sysdeps/unix/crypt.h b/crypt/crypt.h similarity index 100% rename from crypt/sysdeps/unix/crypt.h rename to crypt/crypt.h diff --git a/crypt/sysdeps/unix/crypt_util.c b/crypt/crypt_util.c similarity index 99% rename from crypt/sysdeps/unix/crypt_util.c rename to crypt/crypt_util.c index 671571c51d..1eb2d4cc63 100644 --- a/crypt/sysdeps/unix/crypt_util.c +++ b/crypt/crypt_util.c @@ -1,7 +1,7 @@ /* * UFC-crypt: ultra fast crypt(3) implementation * - * Copyright (C) 1991, 92, 93, 96, 97, 98 Free Software Foundation, Inc. + * Copyright (C) 1991, 92, 93, 96, 97, 98, 2000 Free Software Foundation, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -34,7 +34,6 @@ #endif #ifndef DOS -#include "patchlevel.h" #include "ufc-crypt.h" #else /* @@ -61,8 +60,6 @@ STATIC void shuffle_sb (long64 *k, ufc_long saltbits); #endif -static const char patchlevel_str[] = PATCHLEVEL; - /* * Permutation done once on the 56 bit * key derived from the original 8 byte ASCII key. diff --git a/md5-crypt/md5-crypt.c b/crypt/md5-crypt.c similarity index 100% rename from md5-crypt/md5-crypt.c rename to crypt/md5-crypt.c diff --git a/md5-crypt/md5.c b/crypt/md5.c similarity index 100% rename from md5-crypt/md5.c rename to crypt/md5.c diff --git a/md5-crypt/md5.h b/crypt/md5.h similarity index 100% rename from md5-crypt/md5.h rename to crypt/md5.h diff --git a/md5-crypt/md5c-test.c b/crypt/md5c-test.c similarity index 100% rename from md5-crypt/md5c-test.c rename to crypt/md5c-test.c diff --git a/md5-crypt/md5test.c b/crypt/md5test.c similarity index 100% rename from md5-crypt/md5test.c rename to crypt/md5test.c diff --git a/crypt/sysdeps/mach/hurd/Implies b/crypt/sysdeps/mach/hurd/Implies deleted file mode 100644 index 03a772586f..0000000000 --- a/crypt/sysdeps/mach/hurd/Implies +++ /dev/null @@ -1,2 +0,0 @@ -# The Hurd uses Unix like DES crypto function. -unix diff --git a/crypt/sysdeps/unix/Makefile b/crypt/sysdeps/unix/Makefile deleted file mode 100644 index 65810482d0..0000000000 --- a/crypt/sysdeps/unix/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -ifeq ($(subdir),md5-crypt) -libcrypt-routines += crypt crypt_util -dont_distribute += crypt.c crypt_util.c -endif diff --git a/crypt/sysdeps/unix/patchlevel.h b/crypt/sysdeps/unix/patchlevel.h deleted file mode 100644 index 450c091f60..0000000000 --- a/crypt/sysdeps/unix/patchlevel.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * UFC-crypt: ultra fast crypt(3) implementation - * - * Copyright (C) 1991, 1992, 1993, 1996 Free Software Foundation, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; see the file COPYING.LIB. If not, - * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * @(#)patchlevel.h 1.13 9/10/96 - * - */ - -#define PATCHLEVEL "UFC-crypt, patchlevel 1e, @(#)patchlevel.h 1.13 9/10/96" diff --git a/crypt/sysdeps/unix/ufc-crypt.h b/crypt/ufc-crypt.h similarity index 100% rename from crypt/sysdeps/unix/ufc-crypt.h rename to crypt/ufc-crypt.h diff --git a/md5-crypt/Makefile b/md5-crypt/Makefile deleted file mode 100644 index 40186eceef..0000000000 --- a/md5-crypt/Makefile +++ /dev/null @@ -1,83 +0,0 @@ -# Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. -# This file is part of the GNU C Library. - -# The GNU C Library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Library General Public License as -# published by the Free Software Foundation; either version 2 of the -# License, or (at your option) any later version. - -# The GNU C Library 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 -# Library General Public License for more details. - -# You should have received a copy of the GNU Library General Public -# License along with the GNU C Library; see the file COPYING.LIB. If not, -# write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - -# -# Sub-makefile for MD5 crypt portion of the library. -# -subdir := md5-crypt - -headers := crypt.h - -distribute := md5.h - -tests := md5test md5c-test - -extra-libs := libcrypt -extra-libs-others := $(extra-libs) - -md5-routines := crypt-entry md5-crypt md5 -libcrypt-routines := $(md5-routines) - -onlymd5-routines := onlymd5-entry md5-crypt md5 -distribute += onlymd5-entry.c -extra-objs = $(patsubst %,onlymd5-entry%,$(object-suffixes)) - -include ../Makeconfig - -rpath-dirs += md5-crypt - -ifeq ($(crypt-in-libc),yes) -routines += $(libcrypt-routines) -endif - -$(objpfx)md5test: $(objpfx)md5.o - -include ../Rules - -ifeq ($(build-shared),yes) -libdepend = $(common-objpfx)md5-crypt/libcrypt.so$(libcrypt.so-version) -else -libdepend = $(common-objpfx)md5-crypt/libcrypt.a -endif - -$(objpfx)md5test $(objpfx)md5c-test: $(libdepend) - -.PHONY: libmd5crypt -libmd5crypt: $(foreach o,$(object-suffixes), \ - $(addprefix $(objpfx),$(patsubst %,$(libtype$o),md5crypt))) -ifeq ($(build-shared),yes) -libmd5crypt: $(objpfx)libmd5crypt.so -# Use the same soname as the real libcrypt, so that it can be used as a -# drop in replacement. -LDFLAGS-md5crypt.so = -Wl,-soname=lib$(libprefix)crypt.so$(libcrypt.so-version) -# We also use the same version script. -libmd5crypt-map := $(common-objpfx)libcrypt.map -endif - -define o-iterator-doit -$(objpfx)$(patsubst %,$(libtype$o),md5crypt): \ - $(onlymd5-routines:%=$(objpfx)%$o); $$(build-extra-lib) -endef -object-suffixes-left = $(object-suffixes) -include $(patsubst %,$(..)o-iterator.mk,$(object-suffixes)) - -# Depend on libc.so so a DT_NEEDED is generated in the shared objects. -# This ensures they will load libc.so for needed symbols if loaded by -# a statically-linked program that hasn't already loaded it. -$(objpfx)libcrypt.so: $(common-objpfx)libc.so -$(objpfx)libmd5crypt.so: $(common-objpfx)libc.so diff --git a/md5-crypt/onlymd5-entry.c b/md5-crypt/onlymd5-entry.c deleted file mode 100644 index d03fae9bd1..0000000000 --- a/md5-crypt/onlymd5-entry.c +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/crypt/sysdeps/unix/des_impl.c b/sunrpc/des_impl.c similarity index 100% rename from crypt/sysdeps/unix/des_impl.c rename to sunrpc/des_impl.c diff --git a/sysdeps/generic/crypt-entry.c b/sysdeps/generic/crypt-entry.c deleted file mode 100644 index 8248ed9ba3..0000000000 --- a/sysdeps/generic/crypt-entry.c +++ /dev/null @@ -1,72 +0,0 @@ -/* Wrapper around MD5 sum replacement for crypt function. - Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Ulrich Drepper , 1996. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -#include -#include -#include - - -/* Define our magic string to mark salt for MD5 encryption - replacement. This is meant to be the same as for other MD5 based - encryption implementations. */ -static const char md5_salt_prefix[] = "$1$"; - - -/* Prototypes for the MD5 encryption replacement functions. */ -extern char *__md5_crypt_r (const char *key, const char *salt, char *buffer, - int buflen); -extern char *__md5_crypt (const char *key, const char *salt); - -extern char *__crypt_r (const char *key, const char *salt, - struct crypt_data *__restrict data); - -/* We recognize an intended call of the MD5 crypt replacement function - by the first 3 characters of the salt string. If they match the - MD5 magic string we want MD5 encryption replacement. */ -char * -__crypt_r (key, salt, data) - const char *key; - const char *salt; - struct crypt_data *__restrict data; -{ - if (strncmp (md5_salt_prefix, salt, sizeof (md5_salt_prefix) - 1) == 0) - return __md5_crypt_r (key, salt, (char *) data, - sizeof (struct crypt_data)); - - /* We don't have DES encryption. */ - __set_errno (EOPNOTSUPP); - return NULL; -} -weak_alias (__crypt_r, crypt_r) - - -/* The same here, only we call the non-reentrant version. */ -char * -crypt (key, salt) - const char *key; - const char *salt; -{ - if (strncmp (md5_salt_prefix, salt, sizeof (md5_salt_prefix) - 1) == 0) - return __md5_crypt (key, salt); - - /* We don't have DES encryption. */ - __set_errno (EOPNOTSUPP); - return NULL; -} diff --git a/sysdeps/generic/crypt.h b/sysdeps/generic/crypt.h deleted file mode 100644 index 0713e950ba..0000000000 --- a/sysdeps/generic/crypt.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * UFC-crypt: ultra fast crypt(3) implementation - * - * Copyright (C) 1991, 92, 93, 96, 97, 98 Free Software Foundation, Inc. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library 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 - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with the GNU C Library; see the file COPYING.LIB. If not, - * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - * - * @(#)crypt.h 1.3 16 Sep 1996 - * - */ - -#ifndef _CRYPT_H - -#define _CRYPT_H 1 -#include - -__BEGIN_DECLS - -/* Encrypt at most 8 characters from KEY using salt to perturb DES. */ -extern char *crypt __P ((__const char *__key, __const char *__salt)); - - -#ifdef __USE_GNU -/* Reentrant versions of the functions above. The additional argument - points to a structure where the results are placed in. */ -struct crypt_data - { - char keysched[16 * 8]; - char sb0[32768]; - char sb1[32768]; - char sb2[32768]; - char sb3[32768]; - /* end-of-alignment-critical-data */ - char crypt_3_buf[14]; - char current_salt[2]; - long int current_saltbits; - int direction, initialized; - }; - -extern char *crypt_r __P ((__const char *__key, __const char *__salt, - struct crypt_data *__restrict __data)); -#endif - -__END_DECLS - -#endif /* crypt.h */ diff --git a/sysdeps/generic/des_impl.c b/sysdeps/generic/des_impl.c deleted file mode 100644 index f801a841fc..0000000000 --- a/sysdeps/generic/des_impl.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright (C) 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - The GNU C Library 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 - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with the GNU C Library; see the file COPYING.LIB. If not, - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* We must not distribute the DES implementation as part of the glibc. - So we have to provide a dummy version here. */ -#include - -int -_des_crypt (char *buf, unsigned len, struct desparams *desp) -{ - return 0; -} - -stub_warning (_des_crypt) -#include