crypto: testmgr - extend camellia test-vectors for camellia-aesni/avx2

Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
crypto: tcrypt - add async cipher speed tests for blowfish and camellia

Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
crypto: tcrypt - randomize speed test memory

Running speed tests on uniform memory can give better performance results than on random/real-world data. Therefore randomize memory
to be used by speed tests.

Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
crypto: blowfish - add AVX2/x86_64 implementation of blowfish cipher

TODO: test performance on real hardware.

Performance tests using Intel Architecture Code Analyzer Version - 2.0.1:

Estimates assume that latencies and throughput of 256-bit AVX2 instructions
are same as of 128-bit AVX instructions, except vpgatherdd that is estimated as
following:
 *1: Dispatches 8 load uops, that can be dispatched to two load ports, and 2
     helper uops for merging loads. This also is nearly same as estimating
     case where there is only one load port with gather hardware with 4 cycles
     latency.
 *2: Dedicated gather hardware on two load ports, 1 uop with latency of 8
     cycles (can fetch parallel on two ports) + 2 helper uops.
 *3: Dedicated gather hardware on two load port, 1 uop with latency of 4
     cycles (can fetch parallel on two ports) + 2 helper uops.

blowfish-32way, cycles/byte:
 *1:	4.22
 *2:	3.76
 *3:	2.62

Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
crypto: twofish - add AVX2/x86_64 assembler implementation of twofish cipher

TODO: benchmarks on real hardware.

Performance tests using Intel Architecture Code Analyzer Version - 2.0.1:

Estimates assume that latencies and throughput of 256-bit AVX2 instructions
are same as of 128-bit AVX instructions, except vpgatherdd that is estimated as
following:
 *1: Dispatches 8 load uops, that can be dispatched to two load ports, and 2
     helper uops for merging loads. This also is nearly same as estimating
     case where there is only one load port with gather hardware with 4 cycles
     latency.
 *2: Dedicated gather hardware on two load ports, 1 uop with latency of 8
     cycles (can fetch parallel on two ports) + 2 helper uops.
 *3: Dedicated gather hardware on two load port, 1 uop with latency of 4
     cycles (can fetch parallel on two ports) + 2 helper uops.

twofish-16way, cycles/byte:
 *1:    5.40
 *2:    5.80
 *3:    3.87

Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
crypto: serpent - add AVX2/x86_64 assembler implementation of serpent cipher

TODO: benchmarks on real hardware.

Performance tests using Intel Architecture Code Analyzer Version - 2.0.1:

Estimate assume that latencies and throughput of 256-bit AVX2 instructions
are same as of 128-bit AVX instructions on Ivy Bridge.

serpent-16way, cycles/byte: 4.84

Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
crypto: camellia - add AVX2/AES-NI/x86_64 assembler implementation of camellia cipher

TODO: benchmarks on real hardware.

Performance tests using Intel Architecture Code Analyzer Version - 2.0.1:

Estimate assume that latencies and throughput of 256-bit AVX2 instructions
are same as of 128-bit AVX instructions on Ivy Bridge.

serpent-32way, cycles/byte: ~3

Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>