Tests for expected exceptions from CTS mode, and fixes arising from those tests.
Added TODO about stable mechanism to differentiate primitive block ciphers from block cipher modes.
Allow CAST6 and Noekeon to be used with OCB mode.
OCB mode requires a BlockCipherProvider (since it uses two instances of a block cipher), so implement this for CAST6/Noekeon.
Remove unnecessary tracking of workingKey/workingIV in Salsa20Engine - engine state already tracks these.
Implementation of XSalsa20 stream cipher, based on Salsa20Engine.
Salsa20Engine is refactored slightly to allow XSalsa20Engine to override key setup, algorithm name and nonce size.

XSalsa20 test vectors copied from CryptoPP (which generated them using nacl xsalsa20 implementation).
Add support for reduced round Salsa20 (e.g. Salsa20/12, Salsa20/8).
Test vectors generated with the reference implementations in estreambench-20080905.
Refactor Salsa20Engine to allow variants (e.g. ChaCha) to override key setup, block counter and state permutation.
Implementation of ChaCha variant of Salsa20 stream cipher.
Standard 20 round, and reduced round variants are supported.
Test vectors for 20/12/8 round variants generated with reference implementation from estreambench-20080905.
Registerize variables in core Salsa20 state permutation.
This boosts speed on 64 bit Java 7, OS X Macbook Pro 2.5GHz Core i5 from 100MB/s (23 c/b) to 114MB/s (21 c/b) (measured on long streams).
JCE registrations for ChaCha and XSalsa20
Fix Salsa20 reference in ChaCha test.
Add ChaCha and XSalsa20 to specs.
Poly1305 message authentication code, with tests and JCE registrations.

Poly1305 was designed by D.J. Bernstein.
The fast polynomial calculation in this implementation is adapted from the public domain 'poly1305-donna-unrolled' C implementation by Andrew M (@floodyberry) (https://github.com/floodyberry/poly1305-donna).
JCE registrations are provided for Poly1305-* for 128 bit AES era block ciphers (AES, Serpent, Twofish etc.)
Test cases generated from poly1305 reference and nacl implementations included.
Throughput tests for Macs included to compare Poly1305 performance against reference implementation and other Macs.
Fix calculation of throughput for rate adjusted MAC tests.
Remove object construction cost from MAC throughput tests and simplify them.
these are keystores, not digests
Merge branch 'keystore-typo' of https://github.com/ppelleti/bc-java
Merge branch 'feature/jce-cast6-neon-with-ocb' of https://github.com/timw/bc-java
update
added testing of OCB mode for a range of ciphers.
Merge branch 'feature/cts-exceptions' of https://github.com/timw/bc-java