Maxim Dounin
June 30, 2016 12:20PM
details: http://hg.nginx.org/nginx/rev/9eefb38f0005
branches:
changeset: 6603:9eefb38f0005
user: Maxim Dounin <mdounin@mdounin.ru>
date: Thu Jun 30 18:57:39 2016 +0300
description:
Internal md5 and sha1 implementations are now always used.

This reduces the number of moving parts in ABI compatibility checks.
Additionally, it also allows to use OpenSSL in FIPS mode while still
using md5 for non-security tasks.

diffstat:

auto/cc/acc | 1 -
auto/cc/clang | 6 --
auto/cc/gcc | 6 --
auto/cc/icc | 4 -
auto/cc/sunc | 4 -
auto/lib/conf | 29 ------------
auto/lib/make | 8 ---
auto/lib/md5/conf | 103 --------------------------------------------
auto/lib/md5/make | 96 -----------------------------------------
auto/lib/md5/makefile.bcc | 22 ---------
auto/lib/md5/makefile.msvc | 22 ---------
auto/lib/md5/makefile.owc | 11 ----
auto/lib/sha1/conf | 79 ---------------------------------
auto/lib/sha1/make | 96 -----------------------------------------
auto/lib/sha1/makefile.bcc | 22 ---------
auto/lib/sha1/makefile.msvc | 22 ---------
auto/lib/sha1/makefile.owc | 11 ----
auto/module | 18 ++++++-
auto/modules | 6 --
auto/options | 48 ++++++++++----------
auto/summary | 14 -----
src/core/ngx_md5.c | 6 --
src/core/ngx_md5.h | 32 -------------
src/core/ngx_module.h | 9 ---
src/core/ngx_sha1.c | 6 --
src/core/ngx_sha1.h | 22 ---------
26 files changed, 39 insertions(+), 664 deletions(-)

diffs (truncated from 1003 to 1000 lines):

diff --git a/auto/cc/acc b/auto/cc/acc
--- a/auto/cc/acc
+++ b/auto/cc/acc
@@ -12,4 +12,3 @@ CC_TEST_FLAGS="-Ae"

PCRE_OPT="$PCRE_OPT -Ae"
ZLIB_OPT="$ZLIB_OPT -Ae"
-MD5_OPT="$MD5_OPT -Ae"
diff --git a/auto/cc/clang b/auto/cc/clang
--- a/auto/cc/clang
+++ b/auto/cc/clang
@@ -66,12 +66,6 @@ else
PCRE_OPT="$PCRE_OPT -pipe"
fi

-if [ ".$MD5_OPT" = "." ]; then
- MD5_OPT="-O2 -pipe $CPU_OPT"
-else
- MD5_OPT="$MD5_OPT -pipe"
-fi
-
if [ ".$ZLIB_OPT" = "." ]; then
ZLIB_OPT="-O2 -pipe $CPU_OPT"
else
diff --git a/auto/cc/gcc b/auto/cc/gcc
--- a/auto/cc/gcc
+++ b/auto/cc/gcc
@@ -128,12 +128,6 @@ else
PCRE_OPT="$PCRE_OPT $PIPE"
fi

-if [ ".$MD5_OPT" = "." ]; then
- MD5_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
-else
- MD5_OPT="$MD5_OPT $PIPE"
-fi
-
if [ ".$ZLIB_OPT" = "." ]; then
ZLIB_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT"
else
diff --git a/auto/cc/icc b/auto/cc/icc
--- a/auto/cc/icc
+++ b/auto/cc/icc
@@ -43,10 +43,6 @@ if [ ".$PCRE_OPT" = "." ]; then
PCRE_OPT="-O $CPU_OPT"
fi

-if [ ".$MD5_OPT" = "." ]; then
- MD5_OPT="-O $CPU_OPT"
-fi
-
if [ ".$ZLIB_OPT" = "." ]; then
ZLIB_OPT="-O $CPU_OPT"
fi
diff --git a/auto/cc/sunc b/auto/cc/sunc
--- a/auto/cc/sunc
+++ b/auto/cc/sunc
@@ -145,10 +145,6 @@ if [ ".$PCRE_OPT" = "." ]; then
PCRE_OPT="$ngx_fast $IPO $CPU_OPT"
fi

-if [ ".$MD5_OPT" = "." ]; then
- MD5_OPT="$ngx_fast $IPO $CPU_OPT"
-fi
-
if [ ".$ZLIB_OPT" = "." ]; then
ZLIB_OPT="$ngx_fast $IPO $CPU_OPT"
fi
diff --git a/auto/lib/conf b/auto/lib/conf
--- a/auto/lib/conf
+++ b/auto/lib/conf
@@ -25,35 +25,6 @@ if [ $USE_OPENSSL = YES ]; then
. auto/lib/openssl/conf
fi

-if [ $USE_MD5 = YES ]; then
-
- if [ $USE_OPENSSL = YES ]; then
- have=NGX_HAVE_OPENSSL_MD5_H . auto/have
- have=NGX_OPENSSL_MD5 . auto/have
- have=NGX_HAVE_MD5 . auto/have
- MD5=YES
- MD5_LIB=OpenSSL
-
- else
- . auto/lib/md5/conf
- fi
-
-fi
-
-if [ $USE_SHA1 = YES ]; then
-
- if [ $USE_OPENSSL = YES ]; then
- have=NGX_HAVE_OPENSSL_SHA1_H . auto/have
- have=NGX_HAVE_SHA1 . auto/have
- SHA1=YES
- SHA1_LIB=OpenSSL
-
- else
- . auto/lib/sha1/conf
- fi
-
-fi
-
if [ $USE_ZLIB = YES ]; then
. auto/lib/zlib/conf
fi
diff --git a/auto/lib/make b/auto/lib/make
--- a/auto/lib/make
+++ b/auto/lib/make
@@ -7,14 +7,6 @@ if [ $PCRE != NONE -a $PCRE != NO -a $PC
. auto/lib/pcre/make
fi

-if [ $MD5 != NONE -a $MD5 != NO -a $MD5 != YES ]; then
- . auto/lib/md5/make
-fi
-
-if [ $SHA1 != NONE -a $SHA1 != NO -a $SHA1 != YES ]; then
- . auto/lib/sha1/make
-fi
-
if [ $OPENSSL != NONE -a $OPENSSL != NO -a $OPENSSL != YES ]; then
. auto/lib/openssl/make
fi
diff --git a/auto/lib/md5/conf b/auto/lib/md5/conf
deleted file mode 100644
--- a/auto/lib/md5/conf
+++ /dev/null
@@ -1,103 +0,0 @@
-
-# Copyright (C) Igor Sysoev
-# Copyright (C) Nginx, Inc.
-
-
-if [ $MD5 != NONE ]; then
-
- if grep MD5_Init $MD5/md5.h 2>&1 >/dev/null; then
- # OpenSSL md5
- OPENSSL_MD5=YES
- have=NGX_HAVE_OPENSSL_MD5 . auto/have
- have=NGX_OPENSSL_MD5 . auto/have
- else
- # rsaref md5
- OPENSSL_MD5=NO
- fi
-
- have=NGX_HAVE_MD5 . auto/have
- CORE_INCS="$CORE_INCS $MD5"
-
- case "$NGX_CC_NAME" in
-
- msvc | owc | bcc)
- LINK_DEPS="$LINK_DEPS $MD5/md5.lib"
- CORE_LIBS="$CORE_LIBS $MD5/md5.lib"
- ;;
-
- icc)
- LINK_DEPS="$LINK_DEPS $MD5/libmd5.a"
-
- # to allow -ipo optimization we link with the *.o but not library
- CORE_LIBS="$CORE_LIBS $MD5/md5_dgst.o"
-
- if [ $MD5_ASM = YES ]; then
- CORE_LIBS="$CORE_LIBS $MD5/asm/mx86-elf.o"
- fi
- ;;
-
- *)
- LINK_DEPS="$LINK_DEPS $MD5/libmd5.a"
- CORE_LIBS="$CORE_LIBS $MD5/libmd5.a"
- #CORE_LIBS="$CORE_LIBS -L $MD5 -lmd5"
- ;;
-
- esac
-
-else
-
- if [ "$NGX_PLATFORM" != win32 ]; then
-
- MD5=NO
-
- # FreeBSD, Solaris 10
-
- ngx_feature="md5 in system md library"
- ngx_feature_name=NGX_HAVE_MD5
- ngx_feature_run=no
- ngx_feature_incs="#include <md5.h>"
- ngx_feature_path=
- ngx_feature_libs="-lmd"
- ngx_feature_test="MD5_CTX md5; MD5Init(&md5)"
- . auto/feature
-
- ngx_md5_lib="system md"
-
- if [ $ngx_found = no ]; then
-
- # Solaris 8/9
-
- ngx_feature="md5 in system md5 library"
- ngx_feature_libs="-lmd5"
- . auto/feature
-
- ngx_md5_lib="system md5"
- fi
-
- if [ $ngx_found = no ]; then
-
- # OpenSSL crypto library
-
- ngx_feature="md5 in system OpenSSL crypto library"
- ngx_feature_name="NGX_OPENSSL_MD5"
- ngx_feature_incs="#include <openssl/md5.h>"
- ngx_feature_libs="-lcrypto"
- ngx_feature_test="MD5_CTX md5; MD5_Init(&md5)"
- . auto/feature
-
- ngx_md5_lib="system crypto"
-
- if [ $ngx_found = yes ]; then
- have=NGX_HAVE_OPENSSL_MD5_H . auto/have
- have=NGX_HAVE_MD5 . auto/have
- fi
- fi
-
- if [ $ngx_found = yes ]; then
- CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
- MD5=YES
- MD5_LIB=$ngx_md5_lib
- fi
- fi
-
-fi
diff --git a/auto/lib/md5/make b/auto/lib/md5/make
deleted file mode 100644
--- a/auto/lib/md5/make
+++ /dev/null
@@ -1,96 +0,0 @@
-
-# Copyright (C) Igor Sysoev
-# Copyright (C) Nginx, Inc.
-
-
-case "$NGX_CC_NAME" in
-
- msvc)
- ngx_makefile=makefile.msvc
- ngx_opt="CPU_OPT=\"$CPU_OPT\" LIBC=$LIBC MD5_ASM=$MD5_ASM"
- ngx_md5="MD5=\"$MD5\""
- ;;
-
- owc)
- ngx_makefile=makefile.owc
- ngx_opt="CPU_OPT=\"$CPU_OPT\""
- ngx_md5=`echo MD5=\"$MD5\" | sed -e "s/\//$ngx_regex_dirsep/g"`
- ;;
-
- bcc)
- ngx_makefile=makefile.bcc
- ngx_opt="-DCPU_OPT=\"$CPU_OPT\" -DMD5_ASM=$MD5_ASM"
- ngx_md5=`echo \-DMD5=\"$MD5\" | sed -e "s/\//$ngx_regex_dirsep/g"`
- ;;
-
-esac
-
-
-done=NO
-
-
-case "$NGX_PLATFORM" in
-
- win32)
- cat << END >> $NGX_MAKEFILE
-
-`echo "$MD5/md5.lib: $NGX_MAKEFILE" | sed -e "s/\//$ngx_regex_dirsep/g"`
- \$(MAKE) -f auto/lib/md5/$ngx_makefile $ngx_opt $ngx_md5
-
-END
-
- done=YES
- ;;
-
- SunOS:*:i86pc)
- if [ $MD5_ASM = YES ]; then
-
- cat << END >> $NGX_MAKEFILE
-
-$MD5/libmd5.a: $NGX_MAKEFILE
- cd $MD5 \\
- && \$(MAKE) CFLAGS="$MD5_OPT -DSOL -DMD5_ASM -DL_ENDIAN" \\
- CC="\$(CC)" CPP="\$(CPP)" \\
- MD5_ASM_OBJ=asm/mx86-sol.o clean libmd5.a
-
-END
-
- done=YES
- fi
- ;;
-
- # FreeBSD: i386
- # Linux: i686
-
- *:i386 | *:i686)
- if [ $MD5_ASM = YES ]; then
-
- cat << END >> $NGX_MAKEFILE
-
-$MD5/libmd5.a: $NGX_MAKEFILE
- cd $MD5 \\
- && \$(MAKE) CFLAGS="$MD5_OPT -DELF -DMD5_ASM -DL_ENDIAN" \\
- CC="\$(CC)" CPP="\$(CPP)" \\
- MD5_ASM_OBJ=asm/mx86-elf.o clean libmd5.a
-
-END
-
- done=YES
- fi
- ;;
-
-esac
-
-
-if [ $done = NO ]; then
-
- cat << END >> $NGX_MAKEFILE
-
-$MD5/libmd5.a: $NGX_MAKEFILE
- cd $MD5 \\
- && \$(MAKE) CFLAGS="$MD5_OPT" \\
- CC="\$(CC)" MD5_ASM_OBJ= clean libmd5.a
-
-END
-
-fi
diff --git a/auto/lib/md5/makefile.bcc b/auto/lib/md5/makefile.bcc
deleted file mode 100644
--- a/auto/lib/md5/makefile.bcc
+++ /dev/null
@@ -1,22 +0,0 @@
-
-# Copyright (C) Igor Sysoev
-# Copyright (C) Nginx, Inc.
-
-
-CFLAGS = -q -O2 -tWM $(CPU_OPT) -DL_ENDIAN
-
-!if "$(MD5_ASM)" == "YES"
-
-md5.lib:
- cd $(MD5)
- bcc32 -c $(CFLAGS) -DMD5_ASM md5_dgst.c
- tlib md5.lib +md5_dgst.obj +"asm\m-win32.obj"
-
-!else
-
-md5.lib:
- cd $(MD5)
- bcc32 -c $(CFLAGS) md5_dgst.c
- tlib md5.lib +md5_dgst.obj
-
-!endif
diff --git a/auto/lib/md5/makefile.msvc b/auto/lib/md5/makefile.msvc
deleted file mode 100644
--- a/auto/lib/md5/makefile.msvc
+++ /dev/null
@@ -1,22 +0,0 @@
-
-# Copyright (C) Igor Sysoev
-# Copyright (C) Nginx, Inc.
-
-
-CFLAGS = -nologo -O2 -Ob1 -Oi -Gs $(LIBC) $(CPU_OPT) -D L_ENDIAN
-
-!IF "$(MD5_ASM)" == "YES"
-
-md5.lib:
- cd $(MD5)
- cl -c $(CFLAGS) -D MD5_ASM md5_dgst.c
- link -lib -out:md5.lib md5_dgst.obj asm/m-win32.obj
-
-!ELSE
-
-md5.lib:
- cd $(MD5)
- cl -c $(CFLAGS) md5_dgst.c
- link -lib -out:md5.lib md5_dgst.obj
-
-!ENDIF
diff --git a/auto/lib/md5/makefile.owc b/auto/lib/md5/makefile.owc
deleted file mode 100644
--- a/auto/lib/md5/makefile.owc
+++ /dev/null
@@ -1,11 +0,0 @@
-
-# Copyright (C) Igor Sysoev
-# Copyright (C) Nginx, Inc.
-
-
-CFLAGS = -zq -bt=nt -bm -ot -op -oi -oe -s $(CPU_OPT)
-
-md5.lib:
- cd $(MD5)
- wcl386 -c $(CFLAGS) -dL_ENDIAN md5_dgst.c
- wlib -n md5.lib md5_dgst.obj
diff --git a/auto/lib/sha1/conf b/auto/lib/sha1/conf
deleted file mode 100644
--- a/auto/lib/sha1/conf
+++ /dev/null
@@ -1,79 +0,0 @@
-
-# Copyright (C) Igor Sysoev
-# Copyright (C) Nginx, Inc.
-
-
-if [ $SHA1 != NONE ]; then
-
- have=NGX_HAVE_SHA1 . auto/have
- CORE_INCS="$CORE_INCS $SHA1"
-
- case "$NGX_CC_NAME" in
-
- msvc | owc | bcc)
- LINK_DEPS="$LINK_DEPS $SHA1/sha1.lib"
- CORE_LIBS="$CORE_LIBS $SHA1/sha1.lib"
- ;;
-
- icc)
- LINK_DEPS="$LINK_DEPS $SHA1/libsha.a"
-
- # to allow -ipo optimization we link with the *.o but not library
- CORE_LIBS="$CORE_LIBS $SHA1/sha1_dgst.o"
-
- if [ $SHA1_ASM = YES ]; then
- CORE_LIBS="$CORE_LIBS $SHA1/asm/sx86-elf.o"
- fi
- ;;
-
- *)
- LINK_DEPS="$LINK_DEPS $SHA1/libsha.a"
- CORE_LIBS="$CORE_LIBS $SHA1/libsha.a"
- #CORE_LIBS="$CORE_LIBS -L $SHA1 -lsha"
- ;;
-
- esac
-
-else
-
- if [ "$NGX_PLATFORM" != win32 ]; then
-
- SHA1=NO
-
- # FreeBSD
-
- ngx_feature="sha1 in system md library"
- ngx_feature_name=NGX_HAVE_SHA1
- ngx_feature_run=no
- ngx_feature_incs="#include <sha.h>"
- ngx_feature_path=
- ngx_feature_libs="-lmd"
- ngx_feature_test="SHA_CTX sha1; SHA1_Init(&sha1)"
- . auto/feature
-
- ngx_sha1_lib="system md"
-
- if [ $ngx_found = no ]; then
-
- # OpenSSL crypto library
-
- ngx_feature="sha1 in system OpenSSL crypto library"
- ngx_feature_incs="#include <openssl/sha.h>"
- ngx_feature_libs="-lcrypto"
- . auto/feature
-
- ngx_sha1_lib="system crypto"
-
- if [ $ngx_found = yes ]; then
- have=NGX_HAVE_OPENSSL_SHA1_H . auto/have
- fi
- fi
-
- if [ $ngx_found = yes ]; then
- CORE_LIBS="$CORE_LIBS $ngx_feature_libs"
- SHA1=YES
- SHA1_LIB=$ngx_sha1_lib
- fi
- fi
-
-fi
diff --git a/auto/lib/sha1/make b/auto/lib/sha1/make
deleted file mode 100644
--- a/auto/lib/sha1/make
+++ /dev/null
@@ -1,96 +0,0 @@
-
-# Copyright (C) Igor Sysoev
-# Copyright (C) Nginx, Inc.
-
-
-case "$NGX_CC_NAME" in
-
- msvc)
- ngx_makefile=makefile.msvc
- ngx_opt="CPU_OPT=\"$CPU_OPT\" LIBC=$LIBC SHA1_ASM=$SHA1_ASM"
- ngx_sha1="SHA1=\"$SHA1\""
- ;;
-
- owc)
- ngx_makefile=makefile.owc
- ngx_opt="CPU_OPT=\"$CPU_OPT\""
- ngx_sha1=`echo SHA1=\"$SHA1\" | sed -e "s/\//$ngx_regex_dirsep/g"`
- ;;
-
- bcc)
- ngx_makefile=makefile.bcc
- ngx_opt="-DCPU_OPT=\"$CPU_OPT\" -DSHA1_ASM=$SHA1_ASM"
- ngx_sha1=`echo \-DSHA1=\"$SHA1\" | sed -e "s/\//$ngx_regex_dirsep/g"`
- ;;
-
-esac
-
-
-done=NO
-
-
-case "$NGX_PLATFORM" in
-
- win32)
- cat << END >> $NGX_MAKEFILE
-
-`echo "$SHA1/sha1.lib: $NGX_MAKEFILE" | sed -e "s/\//$ngx_regex_dirsep/g"`
- \$(MAKE) -f auto/lib/sha1/$ngx_makefile $ngx_opt $ngx_sha1
-
-END
-
- done=YES
- ;;
-
- SunOS:*:i86pc)
- if [ $SHA1_ASM = YES ]; then
-
- cat << END >> $NGX_MAKEFILE
-
-$SHA1/libsha.a: $NGX_MAKEFILE
- cd $SHA1 \\
- && \$(MAKE) CFLAGS="$SHA1_OPT -DSOL -DSHA1_ASM -DL_ENDIAN" \\
- CC="\$(CC)" CPP="\$(CPP)" \\
- SHA_ASM_OBJ=asm/sx86-sol.o clean libsha.a
-
-END
-
- done=YES
- fi
- ;;
-
- # FreeBSD: i386
- # Linux: i686
-
- *:i386 | *:i686)
- if [ $SHA1_ASM = YES ]; then
-
- cat << END >> $NGX_MAKEFILE
-
-$SHA1/libsha.a: $NGX_MAKEFILE
- cd $SHA1 \\
- && \$(MAKE) CFLAGS="$SHA1_OPT -DELF -DSHA1_ASM -DL_ENDIAN" \\
- CC="\$(CC)" CPP="\$(CPP)" \\
- SHA_ASM_OBJ=asm/sx86-elf.o clean libsha.a
-
-END
-
- done=YES
- fi
- ;;
-
-esac
-
-
-if [ $done = NO ]; then
-
- cat << END >> $NGX_MAKEFILE
-
-$SHA1/libsha.a: $NGX_MAKEFILE
- cd $SHA1 \\
- && \$(MAKE) CFLAGS="$SHA1_OPT" \\
- CC="\$(CC)" SHA_ASM_OBJ= clean libsha.a
-
-END
-
-fi
diff --git a/auto/lib/sha1/makefile.bcc b/auto/lib/sha1/makefile.bcc
deleted file mode 100644
--- a/auto/lib/sha1/makefile.bcc
+++ /dev/null
@@ -1,22 +0,0 @@
-
-# Copyright (C) Igor Sysoev
-# Copyright (C) Nginx, Inc.
-
-
-CFLAGS = -q -O2 -tWM $(CPU_OPT) -DL_ENDIAN
-
-!if "$(SHA1_ASM)" == "YES"
-
-sha1.lib:
- cd $(SHA1)
- bcc32 -c $(CFLAGS) -DSHA1_ASM sha1dgst.c
- tlib sha1.lib +sha1dgst.obj +"asm\s-win32.obj"
-
-!else
-
-sha1.lib:
- cd $(SHA1)
- bcc32 -c $(CFLAGS) sha1dgst.c
- tlib sha1.lib +sha1dgst.obj
-
-!endif
diff --git a/auto/lib/sha1/makefile.msvc b/auto/lib/sha1/makefile.msvc
deleted file mode 100644
--- a/auto/lib/sha1/makefile.msvc
+++ /dev/null
@@ -1,22 +0,0 @@
-
-# Copyright (C) Igor Sysoev
-# Copyright (C) Nginx, Inc.
-
-
-CFLAGS = -nologo -O2 -Ob1 -Oi -Gs $(LIBC) $(CPU_OPT) -D L_ENDIAN
-
-!IF "$(SHA1_ASM)" == "YES"
-
-sha1.lib:
- cd $(SHA1)
- cl -c $(CFLAGS) -D SHA1_ASM sha1dgst.c
- link -lib -out:sha1.lib sha1dgst.obj asm/s-win32.obj
-
-!ELSE
-
-sha1.lib:
- cd $(SHA1)
- cl -c $(CFLAGS) sha1dgst.c
- link -lib -out:sha1.lib sha1dgst.obj
-
-!ENDIF
diff --git a/auto/lib/sha1/makefile.owc b/auto/lib/sha1/makefile.owc
deleted file mode 100644
--- a/auto/lib/sha1/makefile.owc
+++ /dev/null
@@ -1,11 +0,0 @@
-
-# Copyright (C) Igor Sysoev
-# Copyright (C) Nginx, Inc.
-
-
-CFLAGS = -zq -bt=nt -bm -ot -op -oi -oe -s $(CPU_OPT)
-
-sha1.lib:
- cd $(SHA1)
- wcl386 -c $(CFLAGS) -dL_ENDIAN sha1dgst.c
- wlib -n sha1.lib sha1dgst.obj
diff --git a/auto/module b/auto/module
--- a/auto/module
+++ b/auto/module
@@ -48,10 +48,14 @@ if [ "$ngx_module_link" = DYNAMIC ]; the
fi
;;

- PCRE | OPENSSL | MD5 | SHA1 | ZLIB)
+ PCRE | OPENSSL | ZLIB)
eval USE_${lib}=YES
;;

+ MD5 | SHA1)
+ # obsolete
+ ;;
+
*)
libs="$libs $lib"
;;
@@ -79,10 +83,14 @@ elif [ "$ngx_module_link" = YES ]; then
do
case $lib in

- PCRE | OPENSSL | MD5 | SHA1 | ZLIB | LIBXSLT | LIBGD | PERL | GEOIP)
+ PCRE | OPENSSL | ZLIB | LIBXSLT | LIBGD | PERL | GEOIP)
eval USE_${lib}=YES
;;

+ MD5 | SHA1)
+ # obsolete
+ ;;
+
*)
CORE_LIBS="$CORE_LIBS $lib"
;;
@@ -109,10 +117,14 @@ elif [ "$ngx_module_link" = ADDON ]; the
do
case $lib in

- PCRE | OPENSSL | MD5 | SHA1 | ZLIB | LIBXSLT | LIBGD | PERL | GEOIP)
+ PCRE | OPENSSL | ZLIB | LIBXSLT | LIBGD | PERL | GEOIP)
eval USE_${lib}=YES
;;

+ MD5 | SHA1)
+ # obsolete
+ ;;
+
*)
CORE_LIBS="$CORE_LIBS $lib"
;;
diff --git a/auto/modules b/auto/modules
--- a/auto/modules
+++ b/auto/modules
@@ -101,7 +101,6 @@ fi


if [ $HTTP_CACHE = YES ]; then
- USE_MD5=YES
have=NGX_HTTP_CACHE . auto/have
HTTP_SRCS="$HTTP_SRCS $HTTP_FILE_CACHE_SRCS"
fi
@@ -522,8 +521,6 @@ if [ $HTTP_AUTH_REQUEST = YES ]; then
fi

if [ $HTTP_AUTH_BASIC = YES ]; then
- USE_MD5=YES
- USE_SHA1=YES
have=NGX_CRYPT . auto/have

ngx_module_name=ngx_http_auth_basic_module
@@ -682,7 +679,6 @@ fi

if [ $HTTP_PROXY = YES ]; then
have=NGX_HTTP_X_FORWARDED_FOR . auto/have
- #USE_MD5=YES

ngx_module_name=ngx_http_proxy_module
ngx_module_incs=
@@ -772,8 +768,6 @@ if [ $HTTP_BROWSER = YES ]; then
fi

if [ $HTTP_SECURE_LINK = YES ]; then
- USE_MD5=YES
-
ngx_module_name=ngx_http_secure_link_module
ngx_module_incs=
ngx_module_deps=
diff --git a/auto/options b/auto/options
--- a/auto/options
+++ b/auto/options
@@ -136,16 +136,6 @@ PCRE_JIT=NO
USE_OPENSSL=NO
OPENSSL=NONE

-USE_MD5=NO
-MD5=NONE
-MD5_OPT=
-MD5_ASM=NO
-
-USE_SHA1=NO
-SHA1=NONE
-SHA1_OPT=
-SHA1_ASM=NO
-
USE_ZLIB=NO
ZLIB=NONE
ZLIB_OPT=
@@ -333,13 +323,31 @@ use the \"--with-mail_ssl_module\" optio
--with-openssl=*) OPENSSL="$value" ;;
--with-openssl-opt=*) OPENSSL_OPT="$value" ;;

- --with-md5=*) MD5="$value" ;;
- --with-md5-opt=*) MD5_OPT="$value" ;;
- --with-md5-asm) MD5_ASM=YES ;;
+ --with-md5=*)
+ NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
+$0: warning: the \"--with-md5\" option is deprecated"
+ ;;
+ --with-md5-opt=*)
+ NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
+$0: warning: the \"--with-md5-opt\" option is deprecated"
+ ;;
+ --with-md5-asm)
+ NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
+$0: warning: the \"--with-md5-asm\" option is deprecated"
+ ;;

- --with-sha1=*) SHA1="$value" ;;
- --with-sha1-opt=*) SHA1_OPT="$value" ;;
- --with-sha1-asm) SHA1_ASM=YES ;;
+ --with-sha1=*)
+ NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
+$0: warning: the \"--with-sha1\" option is deprecated"
+ ;;
+ --with-sha1-opt=*)
+ NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
+$0: warning: the \"--with-sha1-opt\" option is deprecated"
+ ;;
+ --with-sha1-asm)
+ NGX_POST_CONF_MSG="$NGX_POST_CONF_MSG
+$0: warning: the \"--with-sha1-asm\" option is deprecated"
+ ;;

--with-zlib=*) ZLIB="$value" ;;
--with-zlib-opt=*) ZLIB_OPT="$value" ;;
@@ -511,14 +519,6 @@ cat << END
--with-pcre-opt=OPTIONS set additional build options for PCRE
--with-pcre-jit build PCRE with JIT compilation support

- --with-md5=DIR set path to md5 library sources
- --with-md5-opt=OPTIONS set additional build options for md5
- --with-md5-asm use md5 assembler sources
-
- --with-sha1=DIR set path to sha1 library sources
- --with-sha1-opt=OPTIONS set additional build options for sha1
- --with-sha1-asm use sha1 assembler sources
-
--with-zlib=DIR set path to zlib library sources
--with-zlib-opt=OPTIONS set additional build options for zlib
--with-zlib-asm=CPU use zlib assembler sources optimized
diff --git a/auto/summary b/auto/summary
--- a/auto/summary
+++ b/auto/summary
@@ -28,20 +28,6 @@ case $OPENSSL in
*) echo " + using OpenSSL library: $OPENSSL" ;;
esac

-case $MD5 in
- YES) echo " + md5: using $MD5_LIB library" ;;
- NONE) echo " + md5 library is not used" ;;
- NO) echo " + using builtin md5 code" ;;
- *) echo " + using md5 library: $MD5" ;;
-esac
-
-case $SHA1 in
- YES) echo " + sha1: using $SHA1_LIB library" ;;
- NONE) echo " + sha1 library is not used" ;;
- NO) echo " + sha1 library is not found" ;;
- *) echo " + using sha1 library: $SHA1" ;;
-esac
-
case $ZLIB in
YES) echo " + using system zlib library" ;;
NONE) echo " + zlib library is not used" ;;
diff --git a/src/core/ngx_md5.c b/src/core/ngx_md5.c
--- a/src/core/ngx_md5.c
+++ b/src/core/ngx_md5.c
@@ -3,8 +3,6 @@
* An internal implementation, based on Alexander Peslyak's
* public domain implementation:
* http://openwall.info/wiki/people/solar/software/public-domain-source-code/md5
- * It is not expected to be optimal and is used only
- * if no MD5 implementation was found in system.
*/


@@ -13,8 +11,6 @@
#include <ngx_md5.h>


-#if !(NGX_HAVE_MD5)
-
static const u_char *ngx_md5_body(ngx_md5_t *ctx, const u_char *data,
size_t size);

@@ -285,5 +281,3 @@ ngx_md5_body(ngx_md5_t *ctx, const u_cha

return p;
}
-
-#endif
diff --git a/src/core/ngx_md5.h b/src/core/ngx_md5.h
--- a/src/core/ngx_md5.h
+++ b/src/core/ngx_md5.h
@@ -13,36 +13,6 @@
#include <ngx_core.h>


-#if (NGX_HAVE_MD5)
-
-#if (NGX_HAVE_OPENSSL_MD5_H)
-#include <openssl/md5.h>
-#else
-#include <md5.h>
-#endif
-
-
-typedef MD5_CTX ngx_md5_t;
-
-
-#if (NGX_OPENSSL_MD5)
-
-#define ngx_md5_init MD5_Init
-#define ngx_md5_update MD5_Update
-#define ngx_md5_final MD5_Final
-
-#else
-
-#define ngx_md5_init MD5Init
-#define ngx_md5_update MD5Update
-#define ngx_md5_final MD5Final
-
-#endif
-
-
-#else /* !NGX_HAVE_MD5 */
-
-
typedef struct {
uint64_t bytes;
uint32_t a, b, c, d;
@@ -55,6 +25,4 @@ void ngx_md5_update(ngx_md5_t *ctx, cons
void ngx_md5_final(u_char result[16], ngx_md5_t *ctx);


-#endif
-
#endif /* _NGX_MD5_H_INCLUDED_ */
diff --git a/src/core/ngx_module.h b/src/core/ngx_module.h
--- a/src/core/ngx_module.h
+++ b/src/core/ngx_module.h
@@ -119,17 +119,8 @@
#define NGX_MODULE_SIGNATURE_16 "0"
#endif

-#if (NGX_HAVE_MD5)
-#define NGX_MODULE_SIGNATURE_17 "1"
-#else
#define NGX_MODULE_SIGNATURE_17 "0"
-#endif
-
-#if (NGX_HAVE_SHA1)
-#define NGX_MODULE_SIGNATURE_18 "1"
-#else
#define NGX_MODULE_SIGNATURE_18 "0"
-#endif

#if (NGX_HAVE_OPENAT)
#define NGX_MODULE_SIGNATURE_19 "1"
diff --git a/src/core/ngx_sha1.c b/src/core/ngx_sha1.c
--- a/src/core/ngx_sha1.c
+++ b/src/core/ngx_sha1.c
@@ -4,8 +4,6 @@
* Copyright (C) Nginx, Inc.
*
* An internal SHA1 implementation.
- * It is not expected to be optimal and is used only
- * if no SHA1 implementation was found in system.
*/


@@ -14,8 +12,6 @@
#include <ngx_sha1.h>


-#if !(NGX_HAVE_SHA1)
-
static const u_char *ngx_sha1_body(ngx_sha1_t *ctx, const u_char *data,
size_t size);

@@ -296,5 +292,3 @@ ngx_sha1_body(ngx_sha1_t *ctx, const u_c

return p;
}
-
-#endif
diff --git a/src/core/ngx_sha1.h b/src/core/ngx_sha1.h
--- a/src/core/ngx_sha1.h
+++ b/src/core/ngx_sha1.h
@@ -13,26 +13,6 @@
#include <ngx_core.h>


-#if (NGX_HAVE_SHA1)
-
-#if (NGX_HAVE_OPENSSL_SHA1_H)
-#include <openssl/sha.h>
-#else
-#include <sha.h>
-#endif
-
-
-typedef SHA_CTX ngx_sha1_t;
-
-
-#define ngx_sha1_init SHA1_Init
-#define ngx_sha1_update SHA1_Update
-#define ngx_sha1_final SHA1_Final
-
-
-#else /* !NGX_HAVE_SHA1 */
-
-
typedef struct {
uint64_t bytes;
uint32_t a, b, c, d, e, f;
@@ -45,6 +25,4 @@ void ngx_sha1_update(ngx_sha1_t *ctx, co
void ngx_sha1_final(u_char result[20], ngx_sha1_t *ctx);



_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[nginx] Internal md5 and sha1 implementations are now always used.

Maxim Dounin 954 June 30, 2016 12:20PM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 168
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready