X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/9183ab7bd0663fe637b75ba8ce55b79c59ef73e3..f41f820e4b3e230d9314cc4323abf59babdd4e67:/Makefile.m4 diff --git a/Makefile.m4 b/Makefile.m4 index d209903..f46c53c 100644 --- a/Makefile.m4 +++ b/Makefile.m4 @@ -1,6 +1,6 @@ ## -*-makefile-*- ## -## $Id: Makefile.m4,v 1.2 1999/10/23 12:55:35 mdw Exp $ +## $Id: Makefile.m4,v 1.32 2000/07/01 11:27:32 mdw Exp $ ## ## Makefile for Catacomb ## @@ -29,20 +29,105 @@ ##----- Revision history ---------------------------------------------------- ## ## $Log: Makefile.m4,v $ -## Revision 1.2 1999/10/23 12:55:35 mdw -## The `CVS' directory can't be hardlinked. Don't worry about this -## overmuch. +## Revision 1.32 2000/07/01 11:27:32 mdw +## Name changes and new files. +## +## Revision 1.31 2000/06/25 13:02:07 mdw +## Fix cleaning of generated files. +## +## Revision 1.30 2000/06/22 19:10:33 mdw +## Fix Makefile to test mp-sqrt.c. +## +## Revision 1.29 2000/06/22 19:04:19 mdw +## More new functions to be added. +## +## Revision 1.28 2000/06/18 23:31:18 mdw +## Rearrange build order to ensure that `mptypes.h' exists by the time it's +## needed. +## +## Revision 1.27 2000/06/17 13:28:50 mdw +## Minor tidying and fixing. +## +## Revision 1.26 2000/06/17 10:33:43 mdw +## Lots of new ciphers and other files. +## +## Revision 1.25 2000/02/12 18:55:40 mdw +## Make it all compile properly. +## +## Revision 1.24 2000/02/12 18:22:26 mdw +## Missed a file. Whoops. +## +## Revision 1.23 2000/02/12 18:21:01 mdw +## Overhaul of key management (again). +## +## Revision 1.22 1999/12/22 16:04:06 mdw +## Lots of new files. +## +## Revision 1.21 1999/12/13 15:47:58 mdw +## Fix a couple of minor bugs in the distribution set. +## +## Revision 1.19 1999/12/11 10:58:24 mdw +## Fix bug in test rig link flags. Add Karatsuba squaring. +## +## Revision 1.18 1999/12/10 23:30:01 mdw +## Lots of new files. ## +## Revision 1.17 1999/11/25 11:38:31 mdw +## Support for conversions between MPs and C integers. +## +## Revision 1.16 1999/11/22 20:51:33 mdw +## Add yet more source files. +## +## Revision 1.15 1999/11/22 14:08:30 mdw +## Improve dependencies for test programs. +## +## Revision 1.14 1999/11/22 00:17:09 mdw +## Create object files for test programs so that rebuilding doesn't take so +## long. +## +## Revision 1.12 1999/11/20 22:36:26 mdw +## Improve dependencies. Move mpx testing into mpx.c. +## +## Revision 1.11 1999/11/20 22:24:53 mdw +## Add Diffie-Hellman support. +## +## Revision 1.10 1999/11/19 19:28:24 mdw +## Add DSA files and tests. +## +## Revision 1.9 1999/11/17 18:05:35 mdw +## Many new files and test cases for multiprecision arithmetic. +## +## Revision 1.8 1999/11/13 01:56:07 mdw +## Include multiprecision maths stuff. +## +## Revision 1.7 1999/11/11 19:01:02 mdw +## Use `libtool' to generate a shared library. +## +## Revision 1.6 1999/11/11 17:47:34 mdw +## Updates for new configuration system, and `mptypes' generator. +## +## Revision 1.5 1999/11/11 00:59:17 mdw +## Minor reformatting. +## +## Revision 1.4 1999/10/24 10:20:36 mdw +## Modify for standalone distribution. The library's getting far too large +## to be sensibly embedded in other programs. +## +## Revision 1.3 1999/10/24 10:04:26 mdw ## Install headers in the right directory. ## ## Revision 1.2 1999/10/23 12:55:35 mdw ## The `CVS' directory can't be hardlinked. Don't worry about this ## overmuch. ## +## Revision 1.1 1999/09/03 08:41:11 mdw +## Initial import. ## AUTOMAKE_OPTIONS = foreign +SUBDIRS = tests + archincludedir = $(libdir)/catacomb/include ## --- List handling macros --- @@ -65,11 +150,18 @@ addsuffix(join(`$1', `-', `$2'), `$3')') ## --- Autogenerated source files --- -define(`ciphers', `_(des) _(des3) _(blowfish) _(idea) _(rc5)') -define(`cipher_modes', `_(ecb) _(cbc) _(cfb) _(ofb)') +define(`ciphers', `dnl +_(des) _(des3) dnl +_(idea) dnl +_(blowfish) _(twofish) dnl +_(rc2) _(rc5) dnl +_(cast128) _(cast256) dnl +_(rijndael) dnl +_(serpent)') +define(`cipher_modes', `_(ecb) _(cbc) _(cfb) _(ofb) _(counter)') define(`hashes', `_(md5) _(md4) _(rmd160) _(sha)') -define(`hash_modes', `_(hmac)') +define(`hash_modes', `_(mgf) _(hmac)') MODES = \ adorn(`$(srcdir)/', join(`ciphers', `-', `cipher_modes'), `.c') \ @@ -77,99 +169,249 @@ MODES = \ adorn(`$(srcdir)/', join(`hashes', `-', `hash_modes'), `.c') \ adorn(`$(srcdir)/', join(`hashes', `-', `hash_modes'), `.h') -$(MODES): $(srcdir)/genmodes +$(MODES): + cd $(srcdir); ./genmodes "lit(`ciphers')" "lit(`cipher_modes')" + cd $(srcdir); ./genmodes "lit(`hashes')" "lit(`hash_modes')" + +des-tab.h: des-mktab + ./des-mktab >des-tab.h + +blowfish-tab.h: blowfish-mktab + ./blowfish-mktab >blowfish-tab.h + +twofish-tab.h: twofish-mktab + ./twofish-mktab >twofish-tab.h + +rijndael-tab.h: rijndael-mktab + ./rijndael-mktab >rijndael-tab.h + +primetab.c primetab.h: genprimes + ./genprimes -h primetab.h -c primetab.c -m 255 \ + -t "unsigned char" -i primetab + +gfshare-tab.h: gfshare-mktab + ./gfshare-mktab >gfshare-tab.h archinclude_HEADERS = mptypes.h mptypes.h: mptypes - des_sp.h \ ./mptypes >mptypes.h BUILT_SOURCES = \ getdate.c \ + des-tab.h blowfish-tab.h twofish-tab.h rijndael-tab.h \ + gfshare-tab.h \ addsuffix(join(`ciphers', `-', `cipher_modes'), `.c') \ addsuffix(join(`ciphers', `-', `cipher_modes'), `.h') \ -INCLUDES = -I$(srcdir)/.. addsuffix(join(`hashes', `-', `hash_modes'), `.c') \ addsuffix(join(`hashes', `-', `hash_modes'), `.h') -include_HEADERS = \ -libcatacomb_la_LDFLAGS = -version-info 0:4:0 + +## --- Building the main library --- + +lib_LTLIBRARIES = libcatacomb.la + +libcatacomb_la_LDFLAGS = -version-info 2:0:0 ## Middle number is the patchlevel. Final number is the minor version. The ## difference between the first and last numbers is major version. -define(`emit', `$1.h ') pkginclude_HEADERS = \ - paranoia.h \ + arena.h paranoia.h \ blkc.h hash.h \ - mpx.h mpw.h mpscan.h mparena.h mp.h mptext.h mpmont.h \ - ptab.h pgen.h rabin.h \ - dsa.h dh.h \ + gcipher.h ghash.h gmac.h grand.h \ + ghash-def.h \ + rc4.h seal.h \ + rand.h noise.h fipstest.h maurer.h \ + key.h key-data.h passphrase.h pixie.h lmem.h \ + lcrand.h fibrand.h \ + mpx.h mpw.h mpscan.h mparena.h mp.h mptext.h mpint.h \ + mpbarrett.h mpmont.h mpcrt.h \ + mprand.h mpmul.h \ + primetab.h pfilt.h primorial.h rabin.h \ + pgen.h prim.h strongprime.h \ + bbs.h rsa.h dh.h dsarand.h dsa.h \ + oaep.h pkcs1.h \ + gfshare.h share.h \ allwithsuffix(`ciphers', `cipher_modes', `.h') \ -libcatacomb_a_SOURCES = \ + allwithsuffix(`hashes', `hash_modes', `.h') \ + addsuffix(`cipher_modes', `-def.h') \ + addsuffix(`hash_modes', `-def.h') -define(`emit', `$1.c ') libcatacomb_la_SOURCES = \ - des-base.c des-base.h des_sp.h bf_ikey.h daftstory.h \ - ptab.c pgen.c rabin.c \ - dsa-sign.c dsa-verify.c dsa-gen.c \ - dh-prime.c \ + grand.c keysz.c \ + des-base.c des-base.h \ + cast-s.c cast-sk.c cast-base.h cast-tab.h \ + serpent-sbox.h \ + daftstory.h \ + rc4.c seal.c \ + rand.c noise.c fipstest.c maurer.c \ + arena.c \ + passphrase.c pixie-client.c pixie-common.c lmem.c \ + lcrand.c fibrand.c \ + mpx.c mpx-kmul.c mpx-ksqr.c mpx-kmac.h mpscan.c mparena.c \ + mp-misc.c mp-mem.c mp-const.c mp-io.c mp-arith.c mp-test.c \ + mp-sqrt.c mp-gcd.c mp-jacobi.c mp-modsqrt.c \ + mpint.c \ + mptext.c mptext-file.c mptext-string.c mptext-dstr.c \ + mpbarrett.c mpmont.c mpmont-mexp.c \ + mpcrt.c mpmul.c \ + mprand.c \ + primetab.c pfilt.c rabin.c primorial.c \ + pgen.c pgen-stdev.c pgen-safe.c pgen-gcd.c prim.c strongprime.c \ + bbs-rand.c bbs-gen.c bbs-jump.c bbs-fetch.c \ + rsa-priv.c rsa-pub.c rsa-gen.c rsa-recover.c rsa-fetch.c \ + oaep.c pkcs1.c \ + dh-gen.c dh-fetch.c \ + dsarand.c dsa-sign.c dsa-verify.c dsa-gen.c dsa-fetch.c \ + gfshare.c share.c \ + key-data.c key-flags.c key-text.c key-binary.c key-pass.c \ + key-pack.c \ + key-misc.c key-file.c key-attr.c key-io.c key-moan.c key-error.c \ + key-fetch.c \ addsuffix(join(`ciphers', `-', `cipher_modes'), `.c') \ -noinst_PROGRAMS = des-mktab -LDADD = libcatacomb.a ../mLib/libmLib.a + addsuffix(join(`hashes', `-', `hash_modes'), `.c') \ + addsuffix(`ciphers', `.c') addsuffix(`hashes', `.c') + +des-base.lo: des-tab.h +blowfish.lo: blowfish-tab.h +twofish.lo: twofish-tab.h +rijndael.lo: rijndael-tab.h +mpx.lo: mptypes.h + ## --- Utility programs --- -noinst_PROGRAMS = des-mktab mptypes -LDADD = libcatacomb.a -bin_SCRIPTS = catacomb-config -noinst_PROGRAMS = des-mktab genprimes mptypes + +bin_PROGRAMS = dsig key pixie rspit +bin_SCRIPTS = catacomb-config xpixie +noinst_PROGRAMS = \ + genprimes mptypes \ + des-mktab blowfish-mktab twofish-mktab rijndael-mktab serpent-check \ + gfshare-mktab LDADD = libcatacomb.la + +dsig_SOURCES = dsig.c getdate.y getdate.h + +key_SOURCES = keyutil.c getdate.y getdate.h + +pixie_SOURCES = pixie.c pixie-common.c lmem.c arena.c +pixie_LDADD = + +rspit_SOURCES = rspit.c + +des_mktab_SOURCES = des-mktab.c +des_mktab_LDADD = + +blowfish_mktab_SOURCES = blowfish-mktab.c +blowfish_mktab_LDADD = + +twofish_mktab_SOURCES = twofish-mktab.c +twofish_mktab_LDADD = + +rijndael_mktab_SOURCES = rijndael-mktab.c +rijndael_mktab_LDADD = + +serpent_check_SOURCES = serpent-check.c +serpent_check_LDADD = + +gfshare_mktab_SOURCES = gfshare-mktab.c +gfshare_mktab_LDADD = + genprimes_SOURCES = genprimes.c genprimes_LDADD = mptypes_SOURCES = mptypes.c mptypes_LDADD = +## --- Install the pixie setuid-root if we can --- + +changequote(<, >) +install-exec-hook: + @pixie="$(bindir)/`echo pixie|sed $(transform)`"; \ + if chown root $$pixie && chmod 4755 $$pixie; then \ + echo "chown root $$pixie"; \ + echo "chmod 4755 $$pixie"; \ + else \ + echo "***"; \ + echo "*** You should probably install $$pixie setuid-root."; \ + echo "***"; \ + fi +changequote(`, ') + ## --- Documentation --- man_MANS = key.1 keyring.5 ## --- Other handy definitions --- -EXTRA_DIST = Makefile.m4 genmodes $(man_MANS) +EXTRA_DIST = \ + Makefile.m4 genmodes $(man_MANS) xpixie \ + README.cipher README.hash README.random README.mp dist-hook: @ln getdate.c $(distdir) || ln $(srcdir)/getdate.c $(distdir) || true - @mkdir $(distdir)/tests + @mkdir $(distdir)/tests || true @ln $(srcdir)/tests/* $(distdir)/tests || true @rm -f $(distdir)/tests/*~ -TESTS = \ - rc4.t \ - addsuffix(join(`ciphers', `-', `cipher_modes'), `.t') \ - addsuffix(join(`hashes', `-', `hash_modes'), `.t') \ - addsuffix(`ciphers', `.t') addsuffix(`hashes', `.t') - $(COMPILE) -DTEST_RIG -DSRCDIR=\"$(srcdir)\" \ - $(srcdir)/$1.c libcatacomb.a ../mLib/libmLib.a -o $1.t') - -`$1.t: $1.c libcatacomb.a - $(COMPILE) -DTEST_RIG -DSRCDIR=\"$(srcdir)\" $(srcdir)/$1.c libcatacomb.a $(LIBS) -o $1.t') +# kr=$$HOME/.catacomb/dsig-keyring; \ +# if [ -r $$kr ]; then \ +# cd $(distdir); \ +# ../key -k $$kr extract -f -secret KEYRING; \ +# find . -type f -print0 | ../dsig -k $$kr sign -0 -oMANIFEST; \ +# fi + +## --- Testing --- + +define(`testprogs', `') + +define(`CTESTRIG', +`define(`testprogs', testprogs \ $1.t)dnl -$1.t: $1.c libcatacomb.la +$1.to: $1.c + $(COMPILE) -c -DTEST_RIG -DSRCDIR=\"$(srcdir)\" $(srcdir)/$1.c -o $1.to +$1.t: $1.to $1.o libcatacomb.la + $(CC) $(CFLAGS) $(LDFLAGS) $1.to .libs/libcatacomb.a $(LIBS) -o $1.t') +CTESTRIG(rc4) +CTESTRIG(seal) adorn(`nl`'CTESTRIG(', `ciphers', `)') adorn(`nl`'CTESTRIG(', `hashes', `)') -CLEANFILES = *.t +adorn(`nl`'CTESTRIG(', join(`ciphers', `-', `cipher_modes'), `)') adorn(`nl`'CTESTRIG(', join(`hashes', `-', `hash_modes'), `)') +CTESTRIG(lcrand) +CTESTRIG(mpx) +CTESTRIG(mpx-kmul) +CTESTRIG(mpx-ksqr) +CTESTRIG(mp-arith) +CTESTRIG(mp-modsqrt) +CTESTRIG(mp-gcd) +CTESTRIG(mp-jacobi) +CTESTRIG(mp-sqrt) +CTESTRIG(mptext) +CTESTRIG(mpint) +CTESTRIG(mpbarrett) +CTESTRIG(mpmont) +CTESTRIG(mpmont-mexp) +CTESTRIG(mpcrt) +CTESTRIG(pgen) +CTESTRIG(dsa-gen) +CTESTRIG(dsa-sign) CTESTRIG(dsa-verify) -CLEANFILES = *.t mptypes.h +CTESTRIG(bbs-rand) +CTESTRIG(bbs-jump) +CTESTRIG(gfshare) +CTESTRIG(share) + TESTS = testprogs -CLEANFILES = *.t mptypes.h des_sp.h ptab.c ptab.h +CLEANFILES = \ + *.t *.to \ + mptypes.h primetab.c primetab.h \ + des-tab.h twofish-tab.h blowfish-tab.h gfshare-tab.h rijndael-tab.h ## --- Makefile building (haha!) --- $(srcdir)/Makefile.am: $(srcdir)/Makefile.m4 m4 $(srcdir)/Makefile.m4 >$(srcdir)/Makefile.am - $(MODES) $(srcdir)/des_sp.h \ - $(srcdir)/getdate.c getdate.c + +MAINTAINERCLEANFILES = \ $(srcdir)/Makefile.am \ $(srcdir)/getdate.c getdate.c \ $(MODES)