Here is the code for the paper “Fast Software Polynomial Multiplication on ARM Processors using the NEON Engine”. It’s not very organized, but I guess it’s better than nothing…
This code was tested on ARM boards (PandaBoard, Arndale) running Linux. It’s possible to run on Android but it’s more contrived (tip: create a standalone toolchain, check the NDK docs).
It was tested with Code Sourcery 2012.09 GCC cross-compiler, but it should be possible (and easier, though slower) to compile it natively.
unzip relic_arm_ecc.zip mkdir -p relic_arm_ecc/build cd relic_arm_ecc/build CC=/path/to/arm-gcc sh ../preset/arm-ecc-128.sh .. make #If you're compiling natively, otherwise copy it to target bin/test_eb #This should run benchmarks bin/bench_eb
Edit ../preset/arm-ecc-128.sh to specify the path to GMP, it will make some parts run faster. You can also change the “-DCORTEX=9” to 8 or 15, which will fine tune some code for each Cortex processor. If you do edit it, apply the preset again and recompile.
unzip relic_arm_authenc.zip mkdir -p relic_arm_authenc/build cd relic_arm_authenc/build CC=/path/to/arm-gcc sh ../preset/arm-authenc.sh .. make #If you're compiling natively, otherwise copy it to target bin/test_ac #This should run benchmarks bin/bench_ac
Authors and License
See the RELIC page for the original RELIC authors. The ARM specific code was developed by Danilo F. Câmara and Conrado P. L. Gouvêa and is licensed with the same license from RELIC (LGPL with additional permissions for static linking).