Skein for ARMv7 with NEON
There are also Skein-256 and Skein-512 implementations that do not require NEON support.
The code is based on the optimized C version written by Doug Whiting, with the block functions rewritten in ARM assembly language.
For long messages the implementation reaches the following speeds in cycles per byte when tested on a Cortex-A8 processor:
See performance_test.txt for more detailed test output.
Compiling and running the test program
The Skein test program can be compiled using GCC as follows:
gcc *.c skein_block_cortexa8.S -DSKEIN_USE_ASM=256+512+1024
Or without NEON:
gcc *.c skein_block_noneon.S -DSKEIN_USE_ASM=256+512
In order for the performance test to have an accurate timer, you will need to enable user mode access to the ARM performance monitor registers.
One way to do this is to use the kernel module included in the userperf folder.