summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Dubois <jand@activestate.com>2010-12-07 13:51:46 -0800
committerJan Dubois <jand@activestate.com>2010-12-07 14:20:53 -0800
commit9cef83062267e94311e1fd8744396e440642738e (patch)
tree91d98f7d1d66f9e760e1d3c0648374bca7087fa4
parent9d021ad4f2bddaf5f0cd07d1c565a2ebdc9f4d6d (diff)
downloadperl-9cef83062267e94311e1fd8744396e440642738e.tar.gz
Always build with crypt() support on Windows
The sources did support to drop win32/fcrypt.c from a Perl distribution and build without a crypt() implementation to account for the paranoia around distribution of encryption technology. However sources and binaries have been released for at least 10 years with all the code in place, so there is not much point in making it configurable.
-rw-r--r--README.win3210
-rw-r--r--win32/Makefile32
-rw-r--r--win32/config.bc2
-rw-r--r--win32/config.gc2
-rw-r--r--win32/config.gc642
-rw-r--r--win32/config.gc64nox2
-rw-r--r--win32/config.vc2
-rw-r--r--win32/config.vc642
-rw-r--r--win32/makefile.mk41
-rw-r--r--win32/win32.c7
-rw-r--r--win32/win32.h2
11 files changed, 18 insertions, 86 deletions
diff --git a/README.win32 b/README.win32
index f314b9dd92..cbd42e7678 100644
--- a/README.win32
+++ b/README.win32
@@ -382,16 +382,6 @@ You may also need to comment out the C<DELAYLOAD = ...> line in the
Makefile if you're using VC++ 6.0 without the latest service pack and
the linker reports an internal error.
-If you have either the source or a library that contains des_fcrypt(),
-enable the appropriate option in the makefile. A ready-to-use version
-of fcrypt.c, based on the version originally written by Eric Young at
-ftp://ftp.funet.fi/pub/crypt/mirrors/dsi/libdes/, is bundled with the
-distribution and CRYPT_SRC is set to use it.
-Alternatively, if you have built a library that contains des_fcrypt(),
-you can set CRYPT_LIB to point to the library name.
-Perl will also build without des_fcrypt(), but the crypt() builtin will
-fail at run time.
-
If you want build some core extensions statically into perl's dll, specify
them in the STATIC_EXT macro.
diff --git a/win32/Makefile b/win32/Makefile
index c60a61de5d..b1680cb82a 100644
--- a/win32/Makefile
+++ b/win32/Makefile
@@ -133,20 +133,6 @@ CCTYPE = MSVC60
#USE_SETARGV = define
#
-# if you want to have the crypt() builtin function implemented, leave this or
-# CRYPT_LIB uncommented. The fcrypt.c file named here contains a suitable
-# version of des_fcrypt().
-#
-CRYPT_SRC = fcrypt.c
-
-#
-# if you didn't set CRYPT_SRC and if you have des_fcrypt() available in a
-# library, uncomment this, and make sure the library exists (see README.win32)
-# Specify the full pathname of the library.
-#
-#CRYPT_LIB = fcrypt.lib
-
-#
# set this if you wish to use perl's malloc
# WARNING: Turning this on/off WILL break binary compatibility with extensions
# you may have compiled with/without it. Be prepared to recompile all
@@ -237,13 +223,6 @@ EXTRALIBDIRS =
##################### CHANGE THESE ONLY IF YOU MUST #####################
-!IF "$(CRYPT_SRC)$(CRYPT_LIB)" == ""
-D_CRYPT = undef
-!ELSE
-D_CRYPT = define
-CRYPT_FLAG = -DHAVE_DES_FCRYPT
-!ENDIF
-
!IF "$(USE_IMP_SYS)" == "define"
PERL_MALLOC = undef
DEBUG_MSTATS = undef
@@ -414,7 +393,7 @@ RSC = rc
INCLUDES = -I$(COREDIR) -I.\include -I. -I..
#PCHFLAGS = -Fpc:\temp\vcmoduls.pch -YX
-DEFINES = -DWIN32 -D_CONSOLE -DNO_STRICT $(CRYPT_FLAG)
+DEFINES = -DWIN32 -D_CONSOLE -DNO_STRICT
LOCDEFS = -DPERLDLL -DPERL_CORE
SUBSYS = console
CXX_FLAG = -TP -EHsc
@@ -473,7 +452,7 @@ BUILDOPT = $(BUILDOPT) -D_USE_32BIT_TIME_T
! ENDIF
!ENDIF
-LIBBASEFILES = $(CRYPT_LIB) \
+LIBBASEFILES = \
oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib \
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib \
netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib \
@@ -688,7 +667,8 @@ EXTRACORE_SRC = $(EXTRACORE_SRC) ..\perlio.c
WIN32_SRC = \
.\win32.c \
.\win32sck.c \
- .\win32thread.c
+ .\win32thread.c \
+ .\fcrypt.c
# We need this for miniperl build unless we override canned
# config.h #define building mini\*
@@ -696,9 +676,6 @@ WIN32_SRC = \
WIN32_SRC = $(WIN32_SRC) .\win32io.c
#!ENDIF
-!IF "$(CRYPT_SRC)" != ""
-WIN32_SRC = $(WIN32_SRC) .\$(CRYPT_SRC)
-!ENDIF
X2P_SRC = \
..\x2p\a2p.c \
@@ -798,7 +775,6 @@ CFG_VARS = \
"ld=$(LINK32)" \
"ccflags=$(EXTRACFLAGS) $(OPTIMIZE:"=\") $(DEFINES) $(BUILDOPT)" \
"cf_email=$(EMAIL)" \
- "d_crypt=$(D_CRYPT)" \
"d_mymalloc=$(PERL_MALLOC)" \
"libs=$(LIBFILES)" \
"incpath=$(CCINCDIR:"=\")" \
diff --git a/win32/config.bc b/win32/config.bc
index 8a2e7468da..eb5f72c33b 100644
--- a/win32/config.bc
+++ b/win32/config.bc
@@ -129,7 +129,7 @@ d_cmsghdr_s='undef'
d_const='define'
d_copysignl='undef'
d_cplusplus='undef'
-d_crypt='undef'
+d_crypt='define'
d_crypt_r='undef'
d_csh='undef'
d_ctermid='undef'
diff --git a/win32/config.gc b/win32/config.gc
index 5c90397bbe..5f41d1a3df 100644
--- a/win32/config.gc
+++ b/win32/config.gc
@@ -129,7 +129,7 @@ d_cmsghdr_s='undef'
d_const='define'
d_copysignl='undef'
d_cplusplus='undef'
-d_crypt='undef'
+d_crypt='define'
d_crypt_r='undef'
d_csh='undef'
d_ctermid='undef'
diff --git a/win32/config.gc64 b/win32/config.gc64
index 36f21ce258..b2932e0c9d 100644
--- a/win32/config.gc64
+++ b/win32/config.gc64
@@ -129,7 +129,7 @@ d_cmsghdr_s='undef'
d_const='define'
d_copysignl='undef'
d_cplusplus='undef'
-d_crypt='undef'
+d_crypt='define'
d_crypt_r='undef'
d_csh='undef'
d_ctermid='undef'
diff --git a/win32/config.gc64nox b/win32/config.gc64nox
index b9cd1cc4de..ac075ba97c 100644
--- a/win32/config.gc64nox
+++ b/win32/config.gc64nox
@@ -129,7 +129,7 @@ d_cmsghdr_s='undef'
d_const='define'
d_copysignl='undef'
d_cplusplus='undef'
-d_crypt='undef'
+d_crypt='define'
d_crypt_r='undef'
d_csh='undef'
d_ctermid='undef'
diff --git a/win32/config.vc b/win32/config.vc
index 937ab828e2..444c81d327 100644
--- a/win32/config.vc
+++ b/win32/config.vc
@@ -129,7 +129,7 @@ d_cmsghdr_s='undef'
d_const='define'
d_copysignl='undef'
d_cplusplus='undef'
-d_crypt='undef'
+d_crypt='define'
d_crypt_r='undef'
d_csh='undef'
d_ctermid='undef'
diff --git a/win32/config.vc64 b/win32/config.vc64
index 68a8ea79c9..e0cd5859db 100644
--- a/win32/config.vc64
+++ b/win32/config.vc64
@@ -129,7 +129,7 @@ d_cmsghdr_s='undef'
d_const='define'
d_copysignl='undef'
d_cplusplus='undef'
-d_crypt='undef'
+d_crypt='define'
d_crypt_r='undef'
d_csh='undef'
d_ctermid='undef'
diff --git a/win32/makefile.mk b/win32/makefile.mk
index 30dafb8cc9..b907143e0d 100644
--- a/win32/makefile.mk
+++ b/win32/makefile.mk
@@ -151,20 +151,6 @@ CCTYPE *= GCC
#USE_SETARGV *= define
#
-# if you want to have the crypt() builtin function implemented, leave this or
-# CRYPT_LIB uncommented. The fcrypt.c file named here contains a suitable
-# version of des_fcrypt().
-#
-CRYPT_SRC *= fcrypt.c
-
-#
-# if you didn't set CRYPT_SRC and if you have des_fcrypt() available in a
-# library, uncomment this, and make sure the library exists (see README.win32)
-# Specify the full pathname of the library.
-#
-#CRYPT_LIB *= fcrypt.lib
-
-#
# set this if you wish to use perl's malloc
# WARNING: Turning this on/off WILL break binary compatibility with extensions
# you may have compiled with/without it. Be prepared to recompile all
@@ -299,13 +285,6 @@ EXTRALIBDIRS *=
##################### CHANGE THESE ONLY IF YOU MUST #####################
-.IF "$(CRYPT_SRC)$(CRYPT_LIB)" == ""
-D_CRYPT = undef
-.ELSE
-D_CRYPT = define
-CRYPT_FLAG = -DHAVE_DES_FCRYPT
-.ENDIF
-
PERL_MALLOC *= undef
DEBUG_MSTATS *= undef
@@ -458,7 +437,7 @@ RSC = brcc32
#
INCLUDES = -I$(COREDIR) -I.\include -I. -I.. -I"$(CCINCDIR)"
#PCHFLAGS = -H -Hc -H=c:\temp\bcmoduls.pch
-DEFINES = -DWIN32 $(CRYPT_FLAG)
+DEFINES = -DWIN32
LOCDEFS = -DPERLDLL -DPERL_CORE
SUBSYS = console
CXX_FLAG = -P
@@ -466,7 +445,7 @@ CXX_FLAG = -P
LIBC = cw32mti.lib
# same libs as MSVC, except Borland doesn't have oldnames.lib
-LIBFILES = $(CRYPT_LIB) \
+LIBFILES = \
kernel32.lib user32.lib gdi32.lib winspool.lib \
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib \
netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib \
@@ -520,7 +499,7 @@ a = .a
#
INCLUDES = -I.\include -I. -I.. -I$(COREDIR)
-DEFINES = -DWIN32 $(CRYPT_FLAG)
+DEFINES = -DWIN32
.IF "$(WIN64)" == "define"
DEFINES += -DWIN64 -DCONSERVATIVE
.ENDIF
@@ -534,7 +513,7 @@ LIBC =
#LIBC = -lmsvcrt
# same libs as MSVC
-LIBFILES = $(CRYPT_LIB) $(LIBC) \
+LIBFILES = $(LIBC) \
-lmoldname -lkernel32 -luser32 -lgdi32 \
-lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 \
-loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr \
@@ -570,7 +549,7 @@ RSC = rc
INCLUDES = -I$(COREDIR) -I.\include -I. -I..
#PCHFLAGS = -Fpc:\temp\vcmoduls.pch -YX
-DEFINES = -DWIN32 -D_CONSOLE -DNO_STRICT $(CRYPT_FLAG)
+DEFINES = -DWIN32 -D_CONSOLE -DNO_STRICT
LOCDEFS = -DPERLDLL -DPERL_CORE
SUBSYS = console
CXX_FLAG = -TP -EHsc
@@ -629,7 +608,7 @@ BUILDOPT += -D_USE_32BIT_TIME_T
.ENDIF
.ENDIF
-LIBBASEFILES = $(CRYPT_LIB) \
+LIBBASEFILES = \
oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib \
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib \
netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib \
@@ -900,7 +879,8 @@ EXTRACORE_SRC += ..\perlio.c
WIN32_SRC = \
.\win32.c \
.\win32sck.c \
- .\win32thread.c
+ .\win32thread.c \
+ .\fcrypt.c
# We need this for miniperl build unless we override canned
# config.h #define building mini\*
@@ -908,10 +888,6 @@ WIN32_SRC = \
WIN32_SRC += .\win32io.c
#.ENDIF
-.IF "$(CRYPT_SRC)" != ""
-WIN32_SRC += .\$(CRYPT_SRC)
-.ENDIF
-
X2P_SRC = \
..\x2p\a2p.c \
..\x2p\hash.c \
@@ -1012,7 +988,6 @@ CFG_VARS = \
ld=$(LINK32) ~ \
ccflags=$(EXTRACFLAGS) $(OPTIMIZE) $(DEFINES) $(BUILDOPT) ~ \
cf_email=$(EMAIL) ~ \
- d_crypt=$(D_CRYPT) ~ \
d_mymalloc=$(PERL_MALLOC) ~ \
libs=$(LIBFILES:f) ~ \
incpath=$(CCINCDIR) ~ \
diff --git a/win32/win32.c b/win32/win32.c
index 721f4d6406..228dddedb8 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -2264,20 +2264,13 @@ win32_alarm(unsigned int sec)
return 0;
}
-#ifdef HAVE_DES_FCRYPT
extern char * des_fcrypt(const char *txt, const char *salt, char *cbuf);
-#endif
DllExport char *
win32_crypt(const char *txt, const char *salt)
{
dTHX;
-#ifdef HAVE_DES_FCRYPT
return des_fcrypt(txt, salt, w32_crypt_buffer);
-#else
- Perl_croak(aTHX_ "The crypt() function is unimplemented due to excessive paranoia.");
- return NULL;
-#endif
}
/* simulate flock by locking a range on the file */
diff --git a/win32/win32.h b/win32/win32.h
index 0d55d640df..65d6d319d0 100644
--- a/win32/win32.h
+++ b/win32/win32.h
@@ -422,9 +422,7 @@ struct thread_intern {
# ifdef USE_SOCKETS_AS_HANDLES
int Winit_socktype;
# endif
-# ifdef HAVE_DES_FCRYPT
char Wcrypt_buffer[30];
-# endif
# ifdef USE_RTL_THREAD_API
void * retv; /* slot for thread return value */
# endif