X-Git-Url: https://git.distorted.org.uk/u/mdw/catacomb/blobdiff_plain/02b5177b421c7744a16ecde8101c377f7dab1b3d..f41f820e4b3e230d9314cc4323abf59babdd4e67:/Makefile.m4 diff --git a/Makefile.m4 b/Makefile.m4 index 3a941f4..f46c53c 100644 --- a/Makefile.m4 +++ b/Makefile.m4 @@ -1,6 +1,6 @@ ## -*-makefile-*- ## -## $Id: Makefile.m4,v 1.15 1999/11/22 14:08:30 mdw Exp $ +## $Id: Makefile.m4,v 1.32 2000/07/01 11:27:32 mdw Exp $ ## ## Makefile for Catacomb ## @@ -29,6 +29,55 @@ ##----- Revision history ---------------------------------------------------- ## ## $Log: Makefile.m4,v $ +## 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. ## @@ -77,6 +126,8 @@ AUTOMAKE_OPTIONS = foreign +SUBDIRS = tests + archincludedir = $(libdir)/catacomb/include ## --- List handling macros --- @@ -99,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') \ @@ -111,15 +169,28 @@ 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_sp.h: des-mktab - ./des-mktab >des_sp.h +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 -ptab.c ptab.h: genprimes - ./genprimes -h ptab.h -c ptab.c -m 256 -t "unsigned char" -i ptab +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 @@ -128,6 +199,8 @@ mptypes.h: mptypes 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') \ addsuffix(join(`hashes', `-', `hash_modes'), `.c') \ @@ -137,75 +210,152 @@ BUILT_SOURCES = \ lib_LTLIBRARIES = libcatacomb.la -libcatacomb_la_LDFLAGS = -version-info 0:4:0 +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 \ - rc4.h \ - rand.h noise.h \ - key.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') \ - allwithsuffix(`hashes', `hash_modes', `.h') + 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 \ - rc4.c \ - rand.c noise.c \ - key.c \ - mpx.c mpscan.c mparena.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-gcd.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 \ - mpmont.c mpmont-mexp.c \ - ptab.c pgen.c rabin.c \ - dsa-sign.c dsa-verify.c dsa-gen.c \ - dh-prime.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') \ addsuffix(join(`hashes', `-', `hash_modes'), `.c') \ addsuffix(`ciphers', `.c') addsuffix(`hashes', `.c') -des-base.lo: des_sp.h +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 --- -bin_PROGRAMS = key -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/*~ +# 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 --- @@ -216,28 +366,45 @@ define(`CTESTRIG', $1.t)dnl $1.to: $1.c $(COMPILE) -c -DTEST_RIG -DSRCDIR=\"$(srcdir)\" $(srcdir)/$1.c -o $1.to -$1.t: $1.to libcatacomb.la - $(CC) $(LDFLAGS) $1.to .libs/libcatacomb.a $(LIBS) -o $1.t') +$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', `)') adorn(`nl`'CTESTRIG(', join(`ciphers', `-', `cipher_modes'), `)') adorn(`nl`'CTESTRIG(', join(`hashes', `-', `hash_modes'), `)') +CTESTRIG(lcrand) CTESTRIG(mpx) -CTESTRIG(mptext) +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) +CTESTRIG(bbs-rand) +CTESTRIG(bbs-jump) +CTESTRIG(gfshare) +CTESTRIG(share) TESTS = testprogs -CLEANFILES = *.t *.to 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!) ---