On this page you will find the tools and patches I created in the process of porting eSTREAM ciphers into Linux.
Since WordPress has restrictions on the type of files I can upload, I’ve renamed the C++ and Python programs with .txt suffix.
- gentv.cpp: C++ program that calls Crypto++ to generate large test vectors. On the Internet, we can find many short test vectors. But test vectors that are large enough to span a page size is rare. So we roll-out our own.
- indent.py: Python script to auto-indent Bernstein’s Salsa20 x86 assemby code. This allows people to verify that I did not tamper with the assembly code while indenting it.
Patches submitted to firstname.lastname@example.org
Here they are. The dates are in GMT.
- 16 Dec 2007
[PATCH 1/2] Renamed salsa20_32.c to salsa20_glue.c
[PATCH 2/2] Salsa20 stream cipher algorithm (x86-64 version)
- 08 Dec 2007
[PATCH 1/2] salsa20_i586: Corrected order of source and destination buffers
[PATCH 2/2] salsa20_i586: Removed extraneous comments and functions
- 05 Dec 2007
[PATCH 1/2] tcrypt: Added salsa20-generic speed test
[PATCH 2/2] salsa20_i586: Salsa20 stream cipher algorithm (i586 version)
- 03 Dec 2007
[PATCH 1/2] salsa20_generic: Fix multi-page processing
[PATCH 2/2] tcrypt.h: Salsa20 large test vector
- 28 Nov 2007: Patch against commit 19f4711b…
[PATCH 1/2] tcrypt: Support for more test vectors
[PATCH 2/2] tcrypt: AES CTR large test vector
- 25 Nov 2007: Patch against commit 19f4711b…
[PATCH 1/1] Patch to resolve bug in CTR for large testvectors.
>>> This patch was not great – it worked but it could be clearer! Herbert proposed a better one. His patch (plus a small fix from me) is now in the cryptodev-2.6 tree.
- 21 Nov 2007: Patches related to Salsa20 (i586 version) and dm-crypt
[PATCH 1/3] salsa20: Renamed salsa20.c to salsa20_generic.c
[PATCH 2/3] salsa20_i586: Salsa20 stream cipher algorithm (i586 version)
>>> Herbert requested that I reformat the assembly code.
[PATCH 3/3] dm-crypt: Add support for stream ciphers using blkcipher interface
>>> On hold as dm-crypt may be moving to a “geniv” format eventually.
- 15 Nov 2007: Patch against commit ebb26a5b…
[PATCH 1/1] salsa20: Salsa20 stream cipher algorithm
Old patches. They did not make it into the kernel and are here for documentary purpose only.
- 12 Nov 2007: Patch against 2.6.24-rc1
[PATCH 1/3] estream: New crypto_type to support eSTREAM ciphers
[PATCH 2/3] stream: Wrapper for eSTREAM ciphers
[PATCH 3/3] salsa20: Salsa20 stream cipher algorithm
- 06 Nov 2007: Patch against 2.6.24-rc1
[PATCH 1/2] stream: Stream cipher wrapper
[PATCH 2/2] salsa20: Salsa20 stream cipher
- 25 Oct 2007
[PATCH 1/1] stream & salsa20
You would probably need to clone a copy of the latest kernel from the git repository using the command:
The download is about 600MB+. If you are only interested in the latest snapshot and do not need the full git log, you can add a “–depth 1” option. Enjoy!