symm: Implement Bernstein's Salsa20 stream cipher and its variants.
[catacomb] / symm / Makefile.am
index bd7710b..575858e 100644 (file)
@@ -369,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.