257 lines
6.2 KiB
Plaintext
257 lines
6.2 KiB
Plaintext
########################################################################
|
|
#
|
|
# Copyright (c) 2009, Secure Endpoints Inc.
|
|
# All rights reserved.
|
|
#
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions
|
|
# are met:
|
|
#
|
|
# - Redistributions of source code must retain the above copyright
|
|
# notice, this list of conditions and the following disclaimer.
|
|
#
|
|
# - Redistributions in binary form must reproduce the above copyright
|
|
# notice, this list of conditions and the following disclaimer in
|
|
# the documentation and/or other materials provided with the
|
|
# distribution.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
# POSSIBILITY OF SUCH DAMAGE.
|
|
#
|
|
|
|
RELDIR=lib\hcrypto
|
|
|
|
AUXCFLAGS=$(AUXCFLAGS) -DKRB5 -I$(INCDIR)\hcrypto
|
|
|
|
!include ../../windows/NTMakefile.w32
|
|
|
|
# Include files
|
|
|
|
HCRYPTOINCLUDEDIR=$(INCDIR)\hcrypto
|
|
|
|
INCFILES= \
|
|
$(HCRYPTOINCLUDEDIR)\aes.h \
|
|
$(HCRYPTOINCLUDEDIR)\bn.h \
|
|
$(HCRYPTOINCLUDEDIR)\des.h \
|
|
$(HCRYPTOINCLUDEDIR)\dh.h \
|
|
$(HCRYPTOINCLUDEDIR)\dsa.h \
|
|
$(HCRYPTOINCLUDEDIR)\engine.h \
|
|
$(HCRYPTOINCLUDEDIR)\evp.h \
|
|
$(HCRYPTOINCLUDEDIR)\hmac.h \
|
|
$(HCRYPTOINCLUDEDIR)\md2.h \
|
|
$(HCRYPTOINCLUDEDIR)\md4.h \
|
|
$(HCRYPTOINCLUDEDIR)\md5.h \
|
|
$(HCRYPTOINCLUDEDIR)\pkcs12.h \
|
|
$(HCRYPTOINCLUDEDIR)\rand.h \
|
|
$(HCRYPTOINCLUDEDIR)\randi.h \
|
|
$(HCRYPTOINCLUDEDIR)\rc2.h \
|
|
$(HCRYPTOINCLUDEDIR)\rc4.h \
|
|
$(HCRYPTOINCLUDEDIR)\rsa.h \
|
|
$(HCRYPTOINCLUDEDIR)\sha.h \
|
|
$(HCRYPTOINCLUDEDIR)\ui.h
|
|
|
|
mkincdir:
|
|
!if !exist($(HCRYPTOINCLUDEDIR))
|
|
$(MKDIR) $(HCRYPTOINCLUDEDIR)
|
|
!endif
|
|
|
|
{}.h{$(HCRYPTOINCLUDEDIR)}.h:
|
|
$(CP) $** $@
|
|
|
|
all:: mkincdir
|
|
|
|
all:: $(INCFILES)
|
|
|
|
# libhcrypto
|
|
|
|
libhcrypt_OBJs = \
|
|
$(OBJ)\imath.obj \
|
|
$(OBJ)\iprime.obj \
|
|
$(OBJ)\aes.obj \
|
|
$(OBJ)\bn.obj \
|
|
$(OBJ)\camellia.obj \
|
|
$(OBJ)\camellia-ntt.obj \
|
|
$(OBJ)\des.obj \
|
|
$(OBJ)\dh.obj \
|
|
$(OBJ)\dh-imath.obj \
|
|
$(OBJ)\dsa.obj \
|
|
$(OBJ)\evp.obj \
|
|
$(OBJ)\evp-hcrypto.obj \
|
|
$(OBJ)\evp-aes-cts.obj \
|
|
$(OBJ)\engine.obj \
|
|
$(OBJ)\hmac.obj \
|
|
$(OBJ)\md2.obj \
|
|
$(OBJ)\md4.obj \
|
|
$(OBJ)\md5.obj \
|
|
$(OBJ)\pkcs5.obj \
|
|
$(OBJ)\pkcs12.obj \
|
|
$(OBJ)\rand-fortuna.obj \
|
|
$(OBJ)\rand-timer.obj \
|
|
$(OBJ)\rand.obj \
|
|
$(OBJ)\rc2.obj \
|
|
$(OBJ)\rc4.obj \
|
|
$(OBJ)\rijndael-alg-fst.obj \
|
|
$(OBJ)\rnd_keys.obj \
|
|
$(OBJ)\rsa.obj \
|
|
$(OBJ)\rsa-gmp.obj \
|
|
$(OBJ)\rsa-imath.obj \
|
|
$(OBJ)\sha.obj \
|
|
$(OBJ)\sha256.obj \
|
|
$(OBJ)\ui.obj
|
|
|
|
!ifndef STATICLIBS
|
|
|
|
$(LIBHCRYPTO): $(BINDIR)\libhcrypto.dll
|
|
|
|
$(BINDIR)\libhcrypto.dll: $(libhcrypt_OBJs) $(LIBROKEN) $(LIBASN1)
|
|
$(DLLGUILINK) -def:libhcrypto-exports.def -implib:$(LIBHCRYPTO)
|
|
$(DLLPREP)
|
|
|
|
!else
|
|
|
|
$(LIBHCRYPTO): $(libhcrypt_OBJs)
|
|
$(LIBCON)
|
|
|
|
!endif
|
|
|
|
{imath/}.c{$(OBJ)}.obj:
|
|
$(C2OBJ)
|
|
|
|
all:: $(LIBHCRYPTO)
|
|
|
|
clean::
|
|
-$(RM) $(LIBHCRYPTO)
|
|
|
|
# Tests
|
|
|
|
TESTLIB=$(OBJ)\libhctest.lib
|
|
|
|
$(TESTLIB): \
|
|
$(OBJ)\imath.obj \
|
|
$(OBJ)\des.obj \
|
|
$(OBJ)\ui.obj
|
|
$(LIBCON)
|
|
|
|
test-binaries: \
|
|
$(OBJ)\destest.exe \
|
|
$(OBJ)\mdtest.exe \
|
|
$(OBJ)\rc2test.exe \
|
|
$(OBJ)\rctest.exe \
|
|
$(OBJ)\test_bn.exe \
|
|
$(OBJ)\test_cipher.exe \
|
|
$(OBJ)\test_engine_dso.exe \
|
|
$(OBJ)\test_hmac.exe \
|
|
$(OBJ)\test_imath.exe \
|
|
$(OBJ)\test_pkcs5.exe \
|
|
$(OBJ)\test_pkcs12.exe \
|
|
$(OBJ)\test_rsa.exe \
|
|
$(OBJ)\test_dh.exe \
|
|
$(OBJ)\test_rand.exe \
|
|
$(OBJ)\test_crypto.sh
|
|
|
|
$(OBJ)\destest.exe: $(OBJ)\destest.obj $(TESTLIB) $(LIBROKEN)
|
|
$(EXECONLINK)
|
|
$(_VC_MANIFEST_EMBED_EXE)
|
|
$(_VC_MANIFEST_CLEAN)
|
|
|
|
|
|
$(OBJ)\mdtest.exe: $(OBJ)\mdtest.obj $(LIBHCRYPTO) $(LIBROKEN)
|
|
$(EXECONLINK)
|
|
$(_VC_MANIFEST_EMBED_EXE)
|
|
$(_VC_MANIFEST_CLEAN)
|
|
|
|
$(OBJ)\rc2test.exe: $(OBJ)\rc2test.obj $(LIBHCRYPTO) $(LIBROKEN)
|
|
$(EXECONLINK)
|
|
$(_VC_MANIFEST_EMBED_EXE)
|
|
$(_VC_MANIFEST_CLEAN)
|
|
|
|
$(OBJ)\rctest.exe: $(OBJ)\rctest.obj $(LIBHCRYPTO) $(LIBROKEN)
|
|
$(EXECONLINK)
|
|
$(_VC_MANIFEST_EMBED_EXE)
|
|
$(_VC_MANIFEST_CLEAN)
|
|
|
|
$(OBJ)\test_bn.exe: $(OBJ)\test_bn.obj $(LIBHCRYPTO) $(LIBROKEN) $(LIBASN1)
|
|
$(EXECONLINK)
|
|
$(_VC_MANIFEST_EMBED_EXE)
|
|
$(_VC_MANIFEST_CLEAN)
|
|
|
|
$(OBJ)\test_cipher.exe: $(OBJ)\test_cipher.obj $(LIBHCRYPTO) $(LIBROKEN) $(LIBVERS)
|
|
$(EXECONLINK)
|
|
$(_VC_MANIFEST_EMBED_EXE)
|
|
$(_VC_MANIFEST_CLEAN)
|
|
|
|
$(OBJ)\test_engine_dso.exe: $(OBJ)\test_engine_dso.obj $(LIBHCRYPTO) $(LIBROKEN) $(LIBASN1) $(LIBVERS)
|
|
$(EXECONLINK)
|
|
$(_VC_MANIFEST_EMBED_EXE)
|
|
$(_VC_MANIFEST_CLEAN)
|
|
|
|
$(OBJ)\test_hmac.exe: $(OBJ)\test_hmac.obj $(LIBHCRYPTO)
|
|
$(EXECONLINK)
|
|
$(_VC_MANIFEST_EMBED_EXE)
|
|
$(_VC_MANIFEST_CLEAN)
|
|
|
|
$(OBJ)\test_imath.exe: $(OBJ)\test_imath.obj $(TESTLIB) $(LIBROKEN)
|
|
$(EXECONLINK)
|
|
$(_VC_MANIFEST_EMBED_EXE)
|
|
$(_VC_MANIFEST_CLEAN)
|
|
|
|
$(OBJ)\test_pkcs5.exe: $(OBJ)\test_pkcs5.obj $(LIBHCRYPTO) $(LIBROKEN)
|
|
$(EXECONLINK)
|
|
$(_VC_MANIFEST_EMBED_EXE)
|
|
$(_VC_MANIFEST_CLEAN)
|
|
|
|
$(OBJ)\test_pkcs12.exe: $(OBJ)\test_pkcs12.obj $(LIBHCRYPTO) $(LIBASN1) $(LIBROKEN)
|
|
$(EXECONLINK)
|
|
$(_VC_MANIFEST_EMBED_EXE)
|
|
$(_VC_MANIFEST_CLEAN)
|
|
|
|
$(OBJ)\test_rsa.exe: $(OBJ)\test_rsa.obj $(LIBHCRYPTO) $(LIBROKEN) $(LIBASN1) $(LIBVERS)
|
|
$(EXECONLINK)
|
|
$(_VC_MANIFEST_EMBED_EXE)
|
|
$(_VC_MANIFEST_CLEAN)
|
|
|
|
$(OBJ)\test_dh.exe: $(OBJ)\test_dh.obj $(LIBHCRYPTO) $(LIBROKEN) $(LIBASN1) $(LIBVERS)
|
|
$(EXECONLINK)
|
|
$(_VC_MANIFEST_EMBED_EXE)
|
|
$(_VC_MANIFEST_CLEAN)
|
|
|
|
$(OBJ)\test_rand.exe: $(OBJ)\test_rand.obj $(LIBHCRYPTO) $(LIBROKEN) $(LIBASN1) $(LIBVERS)
|
|
$(EXECONLINK)
|
|
$(_VC_MANIFEST_EMBED_EXE)
|
|
$(_VC_MANIFEST_CLEAN)
|
|
|
|
$(OBJ)\test_crypto.sh: test_crypto.in NTMakefile
|
|
$(SED) -e "s,[@]srcdir[@],$(SRCDIR),g" -e "s,[@]exeext[@],.exe,g" < test_crypto.in > $@
|
|
|
|
test-run:
|
|
cd $(OBJ)
|
|
destest.exe
|
|
mdtest.exe
|
|
rc2test.exe
|
|
rctest.exe
|
|
test_bn.exe
|
|
test_cipher.exe
|
|
test_engine_dso.exe
|
|
test_hmac.exe
|
|
test_imath.exe
|
|
test_pkcs5.exe
|
|
test_pkcs12.exe
|
|
# test_rsa.exe
|
|
# test_dh.exe
|
|
!ifdef SH
|
|
$(SH) test_crypto.sh
|
|
!endif
|
|
cd $(SRCDIR)
|
|
|
|
test:: $(TESTLIB) test-binaries test-run
|