A Random Number Generation Engine for OpenSSL making use of the Arm instruction
RNDR.
Build Requirements
CMake
OpenSSL Development files (ie openssl-devel/libssl-dev)
The development files’ versions must match the version of OpenSSL which
will run the engine.
C compiler
OpenSSL
Perl
Target Host of Arm 64 CPU
Test and Run Requirements
OpenSSL
Host running on Arm 64 CPU which has access to RNDR and RNDRRS instructions
Installation
Run once:
mkdir build
cd build
cmake ../
Quick Install
make
make install
Configuring Build
cmake ../
Run cmake --help for details regarding configuration options.
Some useful configuration options are:
-DCMAKE_INSTALL_PREFIX=DIR install library to specified directory prefix
-DCMAKE_INSTALL_LIBDIR=DIR install library to specified directory
-DOPENSSL_ROOT_DIR=DIR set destination for OpenSSL root directory
-DCMAKE_C_FLAGS=FLAGS set additional CFLAGS for compilation
Installing to a non-default engine location
Engine libraries (eng_rndr.so) are installed by default to
${CMAKE_INSTALL_LIBDIR} where ${CMAKE_INSTALL_LIBDIR} usually refers to
/usr/local/lib/. This location can be overwritten in the
configurations using -DCMAKE_INSTALL_PREFIX=DIR.
i.e. To install the engine library to /usr/lib/aarch64-linux-gnu/engines-1.1/
AWS RNDR Engine for OpenSSL
A Random Number Generation Engine for OpenSSL making use of the Arm instruction RNDR.
Build Requirements
Test and Run Requirements
Installation
Run once:
Quick Install
Configuring Build
Run
cmake --helpfor details regarding configuration options.Some useful configuration options are:
Installing to a non-default engine location
Engine libraries (
eng_rndr.so) are installed by default to${CMAKE_INSTALL_LIBDIR}where${CMAKE_INSTALL_LIBDIR}usually refers to/usr/local/lib/. This location can be overwritten in the configurations using-DCMAKE_INSTALL_PREFIX=DIR.i.e. To install the engine library to
/usr/lib/aarch64-linux-gnu/engines-1.1/Testing
Verify that random number generation functions for the engine work.
The output will generate test run messages.
Test the engine built successfully and can be installed
This will generate the engines details and availability.
Test random number generating using the engine.
This will display the randomly generated 10 hex numbers.
Installation
Installation may require root privileges. To install, run:
Environment Variable
Set
export OPENSSL_ENGINES=INSTALLATION_DIRenvironment variable in shell startup files. This will allow openssl to find the RNDR engine.If using OpenSSL 1.0.2, the engine will be called
eng_rndr. If using OpenSSL 1.1.1 or above the engine will be calledlibeng_rndr.Verify installation works
openssl engine -t -c libeng_rndrDynamic Engine Installation
After installing update
openssl.cnfto contain the following.Verify installation works
openssl engine -t -cSecurity
See CONTRIBUTING for more information.
License
This project is licensed under the Apache-2.0 License.