aboutsummaryrefslogtreecommitdiffstats
path: root/package/system
diff options
context:
space:
mode:
authorPetr Štetiar <ynezz@true.cz>2019-05-20 14:02:20 +0200
committerPetr Štetiar <ynezz@true.cz>2019-06-11 08:06:28 +0200
commit714bd89fceee494282984d0ed76e4a3acde419e0 (patch)
tree77db2fe4ccdd5c9b7324bbb5c60e8fe945e444d5 /package/system
parentc53f62b1113459ade21f9540a41db66570097a7f (diff)
downloadupstream-714bd89fceee494282984d0ed76e4a3acde419e0.tar.gz
upstream-714bd89fceee494282984d0ed76e4a3acde419e0.tar.bz2
upstream-714bd89fceee494282984d0ed76e4a3acde419e0.zip
urng: add micro non-physical true RNG based on timing jitter
μrngd is OpenWrt's micro non-physical true random number generator based on timing jitter. Using the Jitter RNG core, the rngd provides an entropy source that feeds into the Linux /dev/random device if its entropy runs low. It updates the /dev/random entropy estimator such that the newly provided entropy unblocks /dev/random. The seeding of /dev/random also ensures that /dev/urandom benefits from entropy. Especially during boot time, when the entropy of Linux is low, the Jitter RNGd provides a source of sufficient entropy. Tested-by: Lucian Cristian <lucian.cristian@gmail.com> Signed-off-by: Petr Štetiar <ynezz@true.cz>
Diffstat (limited to 'package/system')
-rw-r--r--package/system/urngd/Makefile48
-rw-r--r--package/system/urngd/files/urngd.init17
2 files changed, 65 insertions, 0 deletions
diff --git a/package/system/urngd/Makefile b/package/system/urngd/Makefile
new file mode 100644
index 0000000000..218d602d52
--- /dev/null
+++ b/package/system/urngd/Makefile
@@ -0,0 +1,48 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=urngd
+PKG_RELEASE:=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL=https://github.com/ynezz/openwrt-urngd
+PKG_SOURCE_DATE:=2019-05-27
+PKG_SOURCE_VERSION:=41e4163b2e7f4c1c1f51cdfa487d6052ff859cf2
+PKG_MIRROR_HASH:=303595b7ec7367264a159dbd26d1d18c7ee3cf5e10bab25a315a7ec621b80ab4
+
+PKG_LICENSE:=GPL-2.0 BSD-3-Clause
+PKG_LICENSE_FILES:=
+
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/$(PKG_NAME)
+ SECTION:=utils
+ CATEGORY:=Base system
+ TITLE:=OpenWrt non-physical true random number generator based on timing jitter
+ DEPENDS:=+libubox
+endef
+
+define Package/$(PKG_NAME)/description
+ urngd is OpenWrt's micro non-physical true random number generator based on
+ timing jitter.
+
+ Using the Jitter RNG core, the rngd provides an entropy source that feeds into
+ the Linux /dev/random device if its entropy runs low. It updates the
+ /dev/random entropy estimator such that the newly provided entropy unblocks
+ /dev/random.
+
+ The seeding of /dev/random also ensures that /dev/urandom benefits from
+ entropy. Especially during boot time, when the entropy of Linux is low, the
+ Jitter RNGd provides a source of sufficient entropy.
+endef
+
+define Package/$(PKG_NAME)/install
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_BIN) ./files/$(PKG_NAME).init $(1)/etc/init.d/$(PKG_NAME)
+ $(INSTALL_DIR) $(1)/sbin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_NAME) $(1)/sbin/$(PKG_NAME)
+endef
+
+$(eval $(call BuildPackage,$(PKG_NAME)))
diff --git a/package/system/urngd/files/urngd.init b/package/system/urngd/files/urngd.init
new file mode 100644
index 0000000000..7531ca8f39
--- /dev/null
+++ b/package/system/urngd/files/urngd.init
@@ -0,0 +1,17 @@
+#!/bin/sh /etc/rc.common
+
+START=00
+
+USE_PROCD=1
+NAME=urngd
+PROG=/sbin/urngd
+
+start_service() {
+ procd_open_instance
+ procd_set_param command "$PROG"
+ procd_close_instance
+}
+
+reload_service() {
+ procd_send_signal $PROG
+}