Home | History | Annotate | Line # | Download | only in hcrypto
      1      1.1     elric ########################################################################
      2      1.1     elric #
      3  1.1.1.2  christos # Copyright (c) 2009-2016, Secure Endpoints Inc.
      4      1.1     elric # All rights reserved.
      5      1.1     elric # 
      6      1.1     elric # Redistribution and use in source and binary forms, with or without
      7      1.1     elric # modification, are permitted provided that the following conditions
      8      1.1     elric # are met:
      9      1.1     elric # 
     10      1.1     elric # - Redistributions of source code must retain the above copyright
     11      1.1     elric #   notice, this list of conditions and the following disclaimer.
     12      1.1     elric # 
     13      1.1     elric # - Redistributions in binary form must reproduce the above copyright
     14      1.1     elric #   notice, this list of conditions and the following disclaimer in
     15      1.1     elric #   the documentation and/or other materials provided with the
     16      1.1     elric #   distribution.
     17      1.1     elric # 
     18      1.1     elric # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     19      1.1     elric # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     20      1.1     elric # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
     21      1.1     elric # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
     22      1.1     elric # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
     23      1.1     elric # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
     24      1.1     elric # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
     25      1.1     elric # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     26      1.1     elric # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     27      1.1     elric # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
     28      1.1     elric # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     29      1.1     elric # POSSIBILITY OF SUCH DAMAGE.
     30      1.1     elric # 
     31      1.1     elric 
     32      1.1     elric SUBDIRS=libtommath
     33      1.1     elric 
     34      1.1     elric RELDIR=lib\hcrypto
     35      1.1     elric 
     36      1.1     elric !include ../../windows/NTMakefile.w32
     37      1.1     elric 
     38  1.1.1.2  christos HCRYPTOINCLUDEDIR = $(INCDIR)\hcrypto
     39  1.1.1.2  christos 
     40  1.1.1.2  christos HEIMBASEDIR = $(SRC)\lib\base
     41  1.1.1.2  christos 
     42  1.1.1.2  christos HX509DIR = $(SRC)\lib\hx509
     43  1.1.1.2  christos 
     44  1.1.1.2  christos !ifdef INCLUDE_openssl_crypto
     45  1.1.1.2  christos openssl_inc=-I$(INCLUDE_openssl_crypto)
     46  1.1.1.2  christos !endif
     47  1.1.1.2  christos 
     48  1.1.1.2  christos intcflags=-DKRB5 -DASN1_LIB -I$(HCRYPTOINCLUDEDIR) -DUSE_HCRYPTO_LTM=1 \
     49  1.1.1.2  christos 	-I$(HX509DIR) $(openssl_inc)
     50  1.1.1.2  christos 
     51      1.1     elric # Do dependencies first
     52      1.1     elric 
     53      1.1     elric all:: subdirs
     54      1.1     elric 
     55      1.1     elric clean:: clean-subdirs
     56      1.1     elric 
     57      1.1     elric test:: test-subdirs
     58      1.1     elric 
     59      1.1     elric # Include files
     60      1.1     elric 
     61      1.1     elric INCFILES=	\
     62      1.1     elric 	$(HCRYPTOINCLUDEDIR)\aes.h	\
     63      1.1     elric 	$(HCRYPTOINCLUDEDIR)\bn.h	\
     64      1.1     elric 	$(HCRYPTOINCLUDEDIR)\des.h	\
     65      1.1     elric 	$(HCRYPTOINCLUDEDIR)\dh.h	\
     66      1.1     elric 	$(HCRYPTOINCLUDEDIR)\dsa.h	\
     67      1.1     elric 	$(HCRYPTOINCLUDEDIR)\ec.h	\
     68      1.1     elric 	$(HCRYPTOINCLUDEDIR)\ecdh.h	\
     69      1.1     elric 	$(HCRYPTOINCLUDEDIR)\ecdsa.h	\
     70      1.1     elric 	$(HCRYPTOINCLUDEDIR)\engine.h	\
     71      1.1     elric 	$(HCRYPTOINCLUDEDIR)\evp.h	\
     72      1.1     elric 	$(HCRYPTOINCLUDEDIR)\evp-hcrypto.h	\
     73      1.1     elric 	$(HCRYPTOINCLUDEDIR)\evp-cc.h	\
     74  1.1.1.2  christos 	$(HCRYPTOINCLUDEDIR)\evp-openssl.h	\
     75  1.1.1.2  christos 	$(HCRYPTOINCLUDEDIR)\evp-pkcs11.h	\
     76  1.1.1.2  christos 	$(HCRYPTOINCLUDEDIR)\evp-wincng.h	\
     77  1.1.1.2  christos 	$(HCRYPTOINCLUDEDIR)\evp-w32.h	\
     78      1.1     elric 	$(HCRYPTOINCLUDEDIR)\hmac.h	\
     79      1.1     elric 	$(HCRYPTOINCLUDEDIR)\md4.h	\
     80      1.1     elric 	$(HCRYPTOINCLUDEDIR)\md5.h	\
     81      1.1     elric 	$(HCRYPTOINCLUDEDIR)\pkcs12.h	\
     82      1.1     elric 	$(HCRYPTOINCLUDEDIR)\rand.h	\
     83      1.1     elric 	$(HCRYPTOINCLUDEDIR)\randi.h	\
     84      1.1     elric 	$(HCRYPTOINCLUDEDIR)\rc2.h	\
     85      1.1     elric 	$(HCRYPTOINCLUDEDIR)\rc4.h	\
     86      1.1     elric 	$(HCRYPTOINCLUDEDIR)\rsa.h	\
     87      1.1     elric 	$(HCRYPTOINCLUDEDIR)\sha.h	\
     88  1.1.1.2  christos 	$(HCRYPTOINCLUDEDIR)\ui.h	\
     89  1.1.1.2  christos 	$(HCRYPTOINCLUDEDIR)\undef.h
     90      1.1     elric 
     91      1.1     elric mkincdir:
     92      1.1     elric !if !exist($(HCRYPTOINCLUDEDIR))
     93      1.1     elric 	$(MKDIR) $(HCRYPTOINCLUDEDIR)
     94      1.1     elric !endif
     95      1.1     elric 
     96      1.1     elric {}.h{$(HCRYPTOINCLUDEDIR)}.h:
     97      1.1     elric 	$(CP) $** $@
     98      1.1     elric 
     99      1.1     elric all:: mkincdir
    100      1.1     elric 
    101      1.1     elric all:: $(INCFILES)
    102      1.1     elric 
    103      1.1     elric # libhcrypto
    104      1.1     elric 
    105      1.1     elric libhcrypto_OBJs = 			\
    106      1.1     elric 	$(OBJ)\aes.obj			\
    107      1.1     elric 	$(OBJ)\bn.obj			\
    108      1.1     elric 	$(OBJ)\camellia.obj		\
    109      1.1     elric 	$(OBJ)\camellia-ntt.obj		\
    110      1.1     elric 	$(OBJ)\common.obj		\
    111      1.1     elric 	$(OBJ)\des.obj			\
    112      1.1     elric 	$(OBJ)\dh.obj			\
    113      1.1     elric 	$(OBJ)\dh-ltm.obj		\
    114      1.1     elric 	$(OBJ)\dh-tfm.obj		\
    115      1.1     elric 	$(OBJ)\dsa.obj			\
    116      1.1     elric 	$(OBJ)\evp.obj			\
    117      1.1     elric 	$(OBJ)\evp-hcrypto.obj		\
    118      1.1     elric 	$(OBJ)\evp-cc.obj		\
    119  1.1.1.2  christos 	$(OBJ)\evp-openssl.obj		\
    120  1.1.1.2  christos 	$(OBJ)\evp-pkcs11.obj		\
    121  1.1.1.2  christos 	$(OBJ)\evp-wincng.obj		\
    122  1.1.1.2  christos 	$(OBJ)\evp-w32.obj		\
    123      1.1     elric 	$(OBJ)\engine.obj		\
    124      1.1     elric 	$(OBJ)\hmac.obj			\
    125      1.1     elric 	$(OBJ)\md4.obj			\
    126      1.1     elric 	$(OBJ)\md5.obj			\
    127      1.1     elric 	$(OBJ)\pkcs5.obj		\
    128      1.1     elric 	$(OBJ)\pkcs12.obj		\
    129      1.1     elric 	$(OBJ)\rand-w32.obj		\
    130      1.1     elric 	$(OBJ)\rand.obj			\
    131      1.1     elric 	$(OBJ)\rc2.obj			\
    132      1.1     elric 	$(OBJ)\rc4.obj			\
    133      1.1     elric 	$(OBJ)\rijndael-alg-fst.obj	\
    134      1.1     elric 	$(OBJ)\rnd_keys.obj		\
    135      1.1     elric 	$(OBJ)\rsa.obj			\
    136      1.1     elric 	$(OBJ)\rsa-gmp.obj		\
    137      1.1     elric 	$(OBJ)\rsa-ltm.obj		\
    138      1.1     elric 	$(OBJ)\rsa-tfm.obj		\
    139      1.1     elric 	$(OBJ)\sha.obj			\
    140      1.1     elric 	$(OBJ)\sha256.obj		\
    141      1.1     elric 	$(OBJ)\sha512.obj		\
    142      1.1     elric 	$(OBJ)\ui.obj			\
    143      1.1     elric 	$(OBJ)\validate.obj
    144      1.1     elric 
    145      1.1     elric $(LIBHCRYPTO): $(libhcrypto_OBJs)
    146      1.1     elric 	$(LIBCON)
    147      1.1     elric 
    148      1.1     elric all:: $(LIBHCRYPTO)
    149      1.1     elric 
    150      1.1     elric clean::
    151      1.1     elric 	-$(RM) $(LIBHCRYPTO)
    152      1.1     elric 
    153      1.1     elric # Tests
    154      1.1     elric 
    155      1.1     elric TESTLIB=$(OBJ)\libhctest.lib
    156      1.1     elric 
    157      1.1     elric $(TESTLIB):		    \
    158      1.1     elric 	$(OBJ)\des.obj	    \
    159      1.1     elric 	$(OBJ)\ui.obj
    160      1.1     elric 	$(LIBCON)
    161      1.1     elric 
    162      1.1     elric test-binaries:				\
    163      1.1     elric 	$(OBJ)\destest.exe		\
    164      1.1     elric 	$(OBJ)\example_evp_cipher.exe	\
    165      1.1     elric 	$(OBJ)\mdtest.exe		\
    166      1.1     elric 	$(OBJ)\rc2test.exe		\
    167      1.1     elric 	$(OBJ)\rctest.exe		\
    168      1.1     elric 	$(OBJ)\test_bn.exe		\
    169  1.1.1.2  christos 	$(OBJ)\test_bulk.exe		\
    170      1.1     elric 	$(OBJ)\test_cipher.exe		\
    171      1.1     elric 	$(OBJ)\test_engine_dso.exe	\
    172      1.1     elric 	$(OBJ)\test_hmac.exe		\
    173      1.1     elric 	$(OBJ)\test_pkcs5.exe		\
    174      1.1     elric 	$(OBJ)\test_pkcs12.exe		\
    175      1.1     elric 	$(OBJ)\test_rsa.exe		\
    176      1.1     elric 	$(OBJ)\test_dh.exe		\
    177      1.1     elric 	$(OBJ)\test_rand.exe		\
    178      1.1     elric 	$(OBJ)\test_crypto.sh
    179      1.1     elric 
    180  1.1.1.2  christos $(OBJ)\destest.exe: $(OBJ)\destest.obj $(TESTLIB) $(LIBROKEN) $(LIBHEIMBASE)
    181  1.1.1.2  christos 	$(EXECONLINK)
    182  1.1.1.2  christos 	$(EXEPREP_NODIST)
    183  1.1.1.2  christos 
    184  1.1.1.2  christos $(OBJ)\example_evp_cipher.exe: $(OBJ)\example_evp_cipher.obj $(TESTLIB) $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE)
    185      1.1     elric 	$(EXECONLINK)
    186      1.1     elric 	$(EXEPREP_NODIST)
    187      1.1     elric 
    188  1.1.1.2  christos $(OBJ)\mdtest.exe: $(OBJ)\mdtest.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE) $(OBJ)\sha512.obj
    189      1.1     elric 	$(EXECONLINK)
    190      1.1     elric 	$(EXEPREP_NODIST)
    191      1.1     elric 
    192  1.1.1.2  christos $(OBJ)\rc2test.exe: $(OBJ)\rc2test.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE)
    193      1.1     elric 	$(EXECONLINK)
    194      1.1     elric 	$(EXEPREP_NODIST)
    195      1.1     elric 
    196  1.1.1.2  christos $(OBJ)\rctest.exe: $(OBJ)\rctest.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE)
    197      1.1     elric 	$(EXECONLINK)
    198      1.1     elric 	$(EXEPREP_NODIST)
    199      1.1     elric 
    200  1.1.1.2  christos $(OBJ)\test_bn.exe: $(OBJ)\test_bn.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE)
    201      1.1     elric 	$(EXECONLINK)
    202      1.1     elric 	$(EXEPREP_NODIST)
    203      1.1     elric 
    204  1.1.1.2  christos $(OBJ)\test_bulk.exe: $(OBJ)\test_bulk.obj $(TESTLIB) $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE) $(LIBVERS)
    205      1.1     elric 	$(EXECONLINK)
    206      1.1     elric 	$(EXEPREP_NODIST)
    207      1.1     elric 
    208  1.1.1.2  christos $(OBJ)\test_cipher.exe: $(OBJ)\test_cipher.obj $(TESTLIB) $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE) $(LIBVERS)
    209      1.1     elric 	$(EXECONLINK)
    210      1.1     elric 	$(EXEPREP_NODIST)
    211      1.1     elric 
    212  1.1.1.2  christos $(OBJ)\test_engine_dso.exe: $(OBJ)\test_engine_dso.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE) $(LIBVERS)
    213      1.1     elric 	$(EXECONLINK)
    214      1.1     elric 	$(EXEPREP_NODIST)
    215      1.1     elric 
    216  1.1.1.2  christos $(OBJ)\test_hmac.exe: $(OBJ)\test_hmac.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE)
    217      1.1     elric 	$(EXECONLINK)
    218      1.1     elric 	$(EXEPREP_NODIST)
    219      1.1     elric 
    220  1.1.1.2  christos $(OBJ)\test_pkcs5.exe: $(OBJ)\test_pkcs5.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE)
    221      1.1     elric 	$(EXECONLINK)
    222      1.1     elric 	$(EXEPREP_NODIST)
    223      1.1     elric 
    224  1.1.1.2  christos $(OBJ)\test_pkcs12.exe: $(OBJ)\test_pkcs12.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE)
    225      1.1     elric 	$(EXECONLINK)
    226      1.1     elric 	$(EXEPREP_NODIST)
    227      1.1     elric 
    228  1.1.1.2  christos $(OBJ)\test_rsa.exe: $(OBJ)\test_rsa.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE) $(LIBVERS)
    229      1.1     elric 	$(EXECONLINK)
    230      1.1     elric 	$(EXEPREP_NODIST)
    231      1.1     elric 
    232  1.1.1.2  christos $(OBJ)\test_dh.exe: $(OBJ)\test_dh.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE) $(LIBVERS)
    233      1.1     elric 	$(EXECONLINK)
    234      1.1     elric 	$(EXEPREP_NODIST)
    235      1.1     elric 
    236  1.1.1.2  christos $(OBJ)\test_rand.exe: $(OBJ)\test_rand.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHEIMBASE) $(LIBVERS)
    237      1.1     elric 	$(EXECONLINK)
    238      1.1     elric 	$(EXEPREP_NODIST)
    239      1.1     elric 
    240      1.1     elric SRCDIR2=$(SRCDIR:\=\\\\)
    241      1.1     elric 
    242      1.1     elric $(OBJ)\test_crypto.sh: test_crypto.in NTMakefile
    243      1.1     elric 	$(SED) -e "s,[@]srcdir[@],$(SRCDIR2),g" -e "s,[@]exeext[@],.exe,g" -e "s,\r,," < test_crypto.in > $@ || $(RM) $@
    244      1.1     elric 
    245      1.1     elric test-run:
    246      1.1     elric 	cd $(OBJ)
    247      1.1     elric !ifdef SH
    248  1.1.1.2  christos 	-$(SH) test_crypto.sh
    249      1.1     elric !endif
    250  1.1.1.2  christos 	-destest.exe
    251  1.1.1.2  christos 	-mdtest.exe
    252  1.1.1.2  christos 	-rc2test.exe
    253  1.1.1.2  christos 	-rctest.exe
    254  1.1.1.2  christos 	-test_bn.exe
    255  1.1.1.2  christos 	-test_bulk.exe --provider=hcrypto
    256  1.1.1.2  christos 	-test_bulk.exe --provider=w32crypto
    257  1.1.1.2  christos 	-test_cipher.exe
    258  1.1.1.2  christos 	-test_engine_dso.exe
    259  1.1.1.2  christos 	-test_hmac.exe
    260  1.1.1.2  christos 	-test_pkcs5.exe
    261  1.1.1.2  christos 	-test_pkcs12.exe
    262  1.1.1.2  christos 	-test_rsa.exe
    263  1.1.1.2  christos 	-test_dh.exe
    264      1.1     elric 	cd $(SRCDIR)
    265      1.1     elric 
    266      1.1     elric test:: $(TESTLIB) test-binaries test-run
    267      1.1     elric 
    268      1.1     elric test-exports:
    269      1.1     elric 	$(PERL) ..\..\cf\w32-check-exported-symbols.pl --vs version-script.map --def libhcrypto-exports.def
    270      1.1     elric 
    271      1.1     elric test:: test-exports
    272