X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/ef75f31480979cec4927ec79fbb1431320b30d02..194e93f2c33fe6efcfccec3403c9481793b3db9a:/symm/Makefile.am diff --git a/symm/Makefile.am b/symm/Makefile.am index 7107f1f3..575858e5 100644 --- a/symm/Makefile.am +++ b/symm/Makefile.am @@ -46,10 +46,16 @@ EXTRA_DIST += multigen ## we generate it using `multigen'. Unfortunately, this needs to be done ## at the Automake level, which causes some interesting bootstrapping ## problems. +## +## Of course, now that we have this machinery for the complicated modes +## generation, we might as well use it for simpler things. include modes.am +include stubs.am EXTRA_DIST += modes.am.in modes.am +EXTRA_DIST += stubs.am.in stubs.am MAINTAINERCLEANFILES += $(srcdir)/modes.am +MAINTAINERCLEANFILES += $(srcdir)/stubs.am ## Generate the lists. $(srcdir)/modes.am: modes.am.in Makefile.am @@ -61,12 +67,19 @@ $(srcdir)/modes.am: modes.am.in Makefile.am hashmode="$(HASHMODES)" \ hashciphermode="$(HASHCIPHERMODES)" \ hashmacmode="$(HASHMACMODES)" +$(srcdir)/stubs.am: stubs.am.in Makefile.am + $(AM_V_GEN)$(multigen) -g $(srcdir)/stubs.am.in $(srcdir)/stubs.am \ + descr,hname,base="$(STUBS_HDR)" cname="$(STUBS_SRC)" ## Initialize lists of known classes. ALL_CIPHERS = $(CIPHER_MODES) ALL_HASHES = $(HASHES) ALL_MACS = $(MAC_MODES) +## Stub headers and sources. +STUBS_HDR = +STUBS_SRC = + ###-------------------------------------------------------------------------- ### Block ciphers. @@ -191,6 +204,7 @@ BLKCS += safer safersk libsymm_la_SOURCES += $(precomp)/safer-tab.c PRECOMPS += $(precomp)/safer-tab.c PRECOMP_PROGS += safer-mktab +STUBS_HDR += SAFER-SK,safersk,safer if !CROSS_COMPILING $(precomp)/safer-tab.c: $(AM_V_at)$(MKDIR_P) $(precomp) @@ -297,6 +311,8 @@ HASHES += sha ## The National Security Agency's `SHA-2' suite. HASHES += sha224 sha256 HASHES += sha384 sha512 +STUBS_HDR += SHA-224,sha224,sha256 +STUBS_HDR += SHA-384,sha384,sha512 ## Anderson and Biham's `Tiger' hash function. HASHES += tiger @@ -316,6 +332,7 @@ HASHES += whirlpool whirlpool256 libsymm_la_SOURCES += $(precomp)/whirlpool-tab.c PRECOMPS += $(precomp)/whirlpool-tab.c PRECOMP_PROGS += whirlpool-mktab +STUBS_HDR += Whirlpool-256,whirlpool256,whirlpool if !CROSS_COMPILING $(precomp)/whirlpool-tab.c: $(AM_V_at)$(MKDIR_P) $(precomp) @@ -352,6 +369,38 @@ TESTS += seal.$t EXTRA_DIST += t/seal ALL_CIPHERS += seal +## Bernstein's `Salsa20' stream cipher. Most of the test vectors come from +## the eSTREAM project, captured by the Internet Archive's Wayback Machine at +## +## http://web.archive.org/web/20070814004154/http://www.ecrypt.eu.org/stream/svn/viewcvs.cgi/ecrypt/trunk/submissions/salsa20.tar.gz?view=tar +## +## and automatically converted into the format we want. +EXTRA_DIST += salsa20-tvconv +pkginclude_HEADERS += salsa20.h salsa20-core.h +libsymm_la_SOURCES += salsa20.c +TESTS += salsa20.$t +ALL_CIPHERS += salsa20 salsa2012 salsa208 +ALL_CIPHERS += xsalsa20 xsalsa2012 xsalsa208 +STUBS_HDR += Salsa20/12,salsa2012,salsa20 +STUBS_HDR += Salsa20/8,salsa208,salsa20 +STUBS_HDR += XSalsa20,xsalsa20,salsa20 +STUBS_HDR += XSalsa20/12,xsalsa2012,salsa20 +STUBS_HDR += XSalsa20/8,xsalsa208,salsa20 +EXTRA_DIST += t/salsa20 +MAINTAINERCLEANFILES += t/salsa20 +salsa20.$t: t/salsa20 +SALSA20_ESTREAM_TV = t/salsa20.estream +SALSA20_ESTREAM_TV += t/salsa2012.estream +SALSA20_ESTREAM_TV += t/salsa208.estream +EXTRA_DIST += t/salsa20.local $(SALSA20_ESTREAM_TV) +t/salsa20: salsa20-tvconv t/salsa20.local $(SALSA20_ESTREAM_TV) + $(AM_V_GEN)cd $(srcdir) && \ + { echo "### GENERATED by salsa20-tvconv" && \ + cat t/salsa20.local && \ + ./salsa20-tvconv $(SALSA20_ESTREAM_TV); \ + } >t/salsa20.new && \ + mv t/salsa20.new t/salsa20 + ###-------------------------------------------------------------------------- ### Autogenerated mode implementations. @@ -391,6 +440,27 @@ pkginclude_HEADERS += $(GENMODES_H) $(GENMODES_H): modes/gen-stamp ###-------------------------------------------------------------------------- +### Autogenerated stub headers. + +## The master stamp file. +EXTRA_DIST += stub.h.in +EXTRA_DIST += stubs.gen-stamp +MAINTAINERCLEANFILES += stubs.gen-stamp +stubs.gen-stamp: Makefile.am + $(AM_V_at)$(MKDIR_P) $(srcdir)/stubs + $(AM_V_GEN)$(multigen) -g $(srcdir)/stub.h.in \ + $(srcdir)/@name.h descr,name,base="$(STUBS_HDR)" + $(AM_V_GEN)$(multigen) -g $(srcdir)/stub.c.in \ + $(srcdir)/@name.c name="$(STUBS_SRC)" + $(AM_V_at)touch $(srcdir)/stubs.gen-stamp + +## Generated stub headers. +BUILT_SOURCES += $(STUB_H) $(STUB_C) +MAINTAINERCLEANFILES += $(STUB_H) $(STUB_C) +pkginclude_HEADERS += $(STUB_H) +$(STUB_H) $(STUB_C): stubs.gen-stamp + +###-------------------------------------------------------------------------- ### Tables of classes for encryption, hashing, and message authentication. ## The skeleton for the class tables.