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