BLKCS += cast128 cast256
libsymm_la_SOURCES += cast-s.c cast-sk.c cast-base.h
cast256.log: t/cast256
-EXTRA_DIST += t/cast256.aes
+EXTRA_DIST += t/cast256.aes t/cast256.local
MAINTAINERCLEANFILES += $(srcdir)/t/cast256
-t/cast256: t/cast256.aes
- $(AM_V_GEN)$(srcdir)/aes-trans CAST256 \
- <$(srcdir)/t/cast256.aes \
- >$(srcdir)/t/cast256.new && \
- mv $(srcdir)/t/cast256.new $(srcdir)/t/cast256
+t/cast256: t/cast256.aes t/cast256.local
+ $(AM_V_GEN)cd $(srcdir) && \
+ { ./aes-trans CAST256 <t/cast256.aes && \
+ cat t/cast256.local; \
+ } >t/cast256.new && \
+ mv t/cast256.new t/cast256
## IBM's `DES' block cipher, by Feistel, Coppersmith, and others.
BLKCS += des des3
mv $(precomp)/symm/mars-tab.c.new $(precomp)/symm/mars-tab.c
endif
mars.log: t/mars
-EXTRA_DIST += t/mars.aes
+EXTRA_DIST += t/mars.aes t/mars.local
MAINTAINERCLEANFILES += $(srcdir)/t/mars
-t/mars: t/mars.aes
- $(AM_V_GEN)$(srcdir)/aes-trans Mars \
- <$(srcdir)/t/mars.aes \
- >$(srcdir)/t/mars.new && \
- mv $(srcdir)/t/mars.new $(srcdir)/t/mars
+t/mars: t/mars.aes t/mars.local
+ $(AM_V_GEN)cd $(srcdir) && \
+ { ./aes-trans Mars <t/mars.aes && \
+ cat t/mars.local; \
+ } >t/mars.new && \
+ mv t/mars.new t/mars
## Daemen, Peeters, Van Assche and Rijmen's `Noekeon'.
BLKCS += noekeon
$(precomp)/symm/rijndael-tab.c
endif
rijndael.log: t/rijndael
-EXTRA_DIST += t/rijndael.aes
+EXTRA_DIST += t/rijndael.aes t/rijndael.local
MAINTAINERCLEANFILES += $(srcdir)/t/rijndael
-t/rijndael: t/rijndael.aes
- $(AM_V_GEN)$(srcdir)/aes-trans Rijndael \
- <$(srcdir)/t/rijndael.aes \
- >$(srcdir)/t/rijndael.new && \
- mv $(srcdir)/t/rijndael.new $(srcdir)/t/rijndael
+t/rijndael: t/rijndael.aes t/rijndael.local
+ $(AM_V_GEN)cd $(srcdir) && \
+ { ./aes-trans Rijndael <t/rijndael.aes && \
+ cat t/rijndael.local; \
+ } >t/rijndael.new && \
+ mv t/rijndael.new t/rijndael
## Massey's `SAFER' block ciphers.
BLKCS += safer safersk
check_PROGRAMS += serpent-check
TESTS += serpent-check
serpent.log: t/serpent
-EXTRA_DIST += t/serpent.aes
+EXTRA_DIST += t/serpent.aes t/serpent.local
MAINTAINERCLEANFILES += $(srcdir)/t/serpent
-t/serpent: t/serpent.aes
- $(AM_V_GEN)$(srcdir)/aes-trans Serpent -v rev=1 \
- <$(srcdir)/t/serpent.aes \
- >$(srcdir)/t/serpent.new && \
- mv $(srcdir)/t/serpent.new $(srcdir)/t/serpent
+t/serpent: t/serpent.aes t/serpent.local
+ $(AM_V_GEN)cd $(srcdir) && \
+ { ./aes-trans Serpent -v rev=1 <t/serpent.aes && \
+ cat t/serpent.local; \
+ } >t/serpent.new && \
+ mv t/serpent.new t/serpent
## The National Security Agency's `Skipjack' block cipher. You don't want to
## use this.
$(precomp)/symm/twofish-tab.c
endif
twofish.log: t/twofish
-EXTRA_DIST += t/twofish.aes
+EXTRA_DIST += t/twofish.aes t/twofish.local
MAINTAINERCLEANFILES += $(srcdir)/t/twofish
-t/twofish: t/twofish.aes
- $(AM_V_GEN)$(srcdir)/aes-trans Twofish \
- <$(srcdir)/t/twofish.aes \
- >$(srcdir)/t/twofish.new && \
- mv $(srcdir)/t/twofish.new $(srcdir)/t/twofish
+t/twofish: t/twofish.aes t/twofish.local
+ $(AM_V_GEN)cd $(srcdir) && \
+ { ./aes-trans Twofish <t/twofish.aes && \
+ cat t/twofish.local; \
+ } >t/twofish.new && \
+ mv t/twofish.new t/twofish
## The old NIST modes for DES.
BLKCCIPHERMODES += cbc cfb ecb ofb
## Counter mode.
BLKCCIPHERMODES += counter
+## CMAC mode.
+BLKCMACMODES += cmac pmac1
+
+## Various AEAD modes.
+pkginclude_HEADERS += ocb.h
+BLKCAEADMODES += ccm eax gcm ocb1 ocb3
+libsymm_la_SOURCES += ccm.c gcm.c ocb.c
+if CPUFAM_X86
+libsymm_la_SOURCES += gcm-x86ish-pclmul.S
+endif
+if CPUFAM_AMD64
+libsymm_la_SOURCES += gcm-x86ish-pclmul.S
+endif
+if CPUFAM_ARMEL
+libsymm_la_SOURCES += gcm-arm-crypto.S
+endif
+if CPUFAM_ARM64
+libsymm_la_SOURCES += gcm-arm64-pmull.S
+endif
+
+TESTS += gcm.t$(EXEEXT)
+EXTRA_DIST += t/gcm
+
###--------------------------------------------------------------------------
### Hash functions.
ALL_AEADS += chacha20-poly1305 salsa20-poly1305
ALL_AEADS += chacha12-poly1305 salsa2012-poly1305
ALL_AEADS += chacha8-poly1305 salsa208-poly1305
+ALL_AEADS += chacha20-naclbox salsa20-naclbox
+ALL_AEADS += chacha12-naclbox salsa2012-naclbox
+ALL_AEADS += chacha8-naclbox salsa208-naclbox
STUBS_HDR += ChaCha20-Poly1305,chacha20-poly1305,latinpoly
STUBS_HDR += ChaCha12-Poly1305,chacha12-poly1305,latinpoly
STUBS_HDR += ChaCha8-Poly1305,chacha8-poly1305,latinpoly
STUBS_HDR += Salsa20-Poly1305,salsa20-poly1305,latinpoly
STUBS_HDR += Salsa20/12-Poly1305,salsa2012-poly1305,latinpoly
STUBS_HDR += Salsa20/8-Poly1305,salsa208-poly1305,latinpoly
+STUBS_HDR += ChaCha20-NaClBox,chacha20-naclbox,latinpoly
+STUBS_HDR += ChaCha12-NaClBox,chacha12-naclbox,latinpoly
+STUBS_HDR += ChaCha8-NaClBox,chacha8-naclbox,latinpoly
+STUBS_HDR += Salsa20-NaClBox,salsa20-naclbox,latinpoly
+STUBS_HDR += Salsa20/12-NaClBox,salsa2012-naclbox,latinpoly
+STUBS_HDR += Salsa20/8-NaClBox,salsa208-naclbox,latinpoly
TESTS += chacha-poly1305.t$(EXEEXT)
TESTS += salsa20-poly1305.t$(EXEEXT)