1Hardware RNG based on CPU timing jitter 2======================================= 3 4The Jitter RNG provides a noise source using the CPU execution timing jitter. 5It does not depend on any system resource other than a high-resolution time 6stamp. It is a small-scale, yet fast entropy source that is viable in almost 7all environments and on a lot of CPU architectures. 8 9The implementation of the Jitter RNG is independent of any operating system. 10As such, it could even run on baremetal without any operating system. 11 12The design of the RNG is given in the documentation found in at 13http://www.chronox.de/jent.html 14 15API 16--- 17 18The API is documented in the man page jitterentropy.3. 19 20To use the Jitter RNG, the header file jitterentropy.h must be included. 21 22Build Instructions 23================== 24 25To generate the shared library `make` followed by `make install`. 26 27Android 28------- 29 30To compile the code on Android, use the following Makefile: 31 32arch/android/Android.mk -- NDK make file template that can be used to directly 33 compile the CPU Jitter RNG code into Android binaries 34 35Direct CPU instructions 36----------------------- 37 38If the function in jent_get_nstime is not available, you can replace the 39jitterentropy-base-user.h with examples from the arch/ directory. 40 41Testing 42======= 43 44There are numerous tests around the Jitter RNG. Yet, they are too big to be 45loaded into the official repository. Email me, if you want them. 46 47Version Numbers 48=============== 49The version numbers for this library have the following schema: 50MAJOR.MINOR.PATCHLEVEL 51 52Changes in the major number implies API and ABI incompatible changes, or 53functional changes that require consumer to be updated (as long as this 54number is zero, the API is not considered stable and can change without a 55bump of the major version). 56 57Changes in the minor version are API compatible, but the ABI may change. 58Functional enhancements only are added. Thus, a consumer can be left 59unchanged if enhancements are not considered. The consumer only needs to 60be recompiled. 61 62Patchlevel changes are API / ABI compatible. No functional changes, no 63enhancements are made. This release is a bug fixe release only. The 64consumer can be left unchanged and does not need to be recompiled. 65 66Author 67====== 68Stephan Mueller <smueller@chronox.de> 69