Test code for cprng_fast(9) based on Salsa20, ChaCha, or any similar
stateless stream cipher.  Tweakable bits:

- Rounds:               Set crypto_core_ROUNDS in crypto_core.h.
- buf32 vs buf64:       for x in c h; do ln -s cprng_bufN.$x cprng.$x; done
- Salsa20 vs ChaCha:    make CIPHER=salsa20, make CIPHER=chacha
- (Mis)alignment:	Set MISALIGNED_PTR, MISALIGNED_LEN in test.c.
- Cycle counting:	Set CYCLECOUNTER_RDTSC (x86), CYCLES_PER_NS in test.c.

crypto_core.h   Common crypto_core API for stream cipher core function.
crypto_test.h   Common crypto_test API for validation.

salsa20_core.c  Salsa20 stream cipher core function.
salsa20_test.c  Salsa20 self-tests.

chacha_core.c   ChaCha stream cipher core function.
chacha_test.c   ChaCha self-tests.

cprng_buf32.h
cprng_buf32.c   cprng abstraction with 32 bytes of buffer.  When the buffer is
		  exhausted, runs the cipher core again and uses 32 bytes to
                  rekey itself and uses 32 bytes to refresh the buffer.  Each
		  key is used only once, and the nonce is always zero.
		struct cprng takes 72 bytes.

cprng_buf64.h
cprng_buf64.c	cprng abstraction with 64 bytes of buffer.  When the buffer is
		  exhausted, runs the cipher core with the next nonce and uses
		  all 64 bytes to rekey itself.  The key is constant until the
		  PRNG is reseeded, and nonces are sequentially incrementing.
		struct cprng takes 116 bytes.

test.c          Main program to run self-tests and timings.
