Setup crypto algs differently for different protocols/versions.

This could use some kind of unification and cleanup. Still trying to figure out the best approach.
Add AES/GCM output->input test.

Also add "insecure random" class, so we can test with predictable random bytes.