rng-tools: New package.
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 29 Jan 2014 16:22:48 +0000 (17:22 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 29 Jan 2014 16:22:48 +0000 (17:22 +0100)
The rng daemon will be installed by default and will
also be installed when a hardware random number generator
is found. It will then read random data from the hardware
random number generator and will feed it into the kernel's
entropy pool.

If no HW RNG is available, a warning will be printed
at boot time.

config/rootfiles/common/armv5tel/initscripts
config/rootfiles/common/i586/initscripts
config/rootfiles/common/rng-tools [new file with mode: 0644]
config/rootfiles/core/76/filelists/rng-tools [new symlink]
lfs/initscripts
lfs/rng-tools [new file with mode: 0644]
make.sh
src/initscripts/init.d/rngd [new file with mode: 0644]

index 1b8fbda..d25af18 100644 (file)
@@ -225,6 +225,7 @@ etc/rc.d/rcsysinit.d/S75firstsetup
 etc/rc.d/rcsysinit.d/S80localnet
 etc/rc.d/rcsysinit.d/S90sysctl
 etc/rc.d/rcsysinit.d/S91network-vlans
+etc/rc.d/rcsysinit.d/S92rngd
 etc/rc.d/rc3.d/S15fireinfo
 #etc/sysconfig
 etc/sysconfig/createfiles
index ca47f80..3d82d40 100644 (file)
@@ -232,6 +232,7 @@ etc/rc.d/rcsysinit.d/S75firstsetup
 etc/rc.d/rcsysinit.d/S80localnet
 etc/rc.d/rcsysinit.d/S90sysctl
 etc/rc.d/rcsysinit.d/S91network-vlans
+etc/rc.d/rcsysinit.d/S92rngd
 etc/rc.d/rc3.d/S15fireinfo
 #etc/sysconfig
 etc/sysconfig/createfiles
diff --git a/config/rootfiles/common/rng-tools b/config/rootfiles/common/rng-tools
new file mode 100644 (file)
index 0000000..596a911
--- /dev/null
@@ -0,0 +1,4 @@
+usr/bin/rngtest
+usr/sbin/rngd
+#usr/share/man/man1/rngtest.1
+#usr/share/man/man8/rngd.8
diff --git a/config/rootfiles/core/76/filelists/rng-tools b/config/rootfiles/core/76/filelists/rng-tools
new file mode 120000 (symlink)
index 0000000..a7853e4
--- /dev/null
@@ -0,0 +1 @@
+../../../common/rng-tools
\ No newline at end of file
index eae451b..6968ede 100644 (file)
@@ -173,6 +173,7 @@ $(TARGET) :
        ln -sf ../init.d/localnet    /etc/rc.d/rcsysinit.d/S80localnet
        ln -sf ../init.d/sysctl      /etc/rc.d/rcsysinit.d/S90sysctl
        ln -sf ../init.d/network-vlans /etc/rc.d/rcsysinit.d/S91network-vlans
+       ln -sf ../init.d/rngd        /etc/rc.d/rcsysinit.d/S92rngd
        ln -sf ../init.d/wlanclient  /etc/rc.d/rc0.d/K82wlanclient
        ln -sf ../init.d/wlanclient  /etc/rc.d/rc3.d/S19wlanclient
        ln -sf ../init.d/wlanclient  /etc/rc.d/rc6.d/K82wlanclient
diff --git a/lfs/rng-tools b/lfs/rng-tools
new file mode 100644 (file)
index 0000000..8ca95cf
--- /dev/null
@@ -0,0 +1,77 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 4
+
+THISAPP    = rng-tools-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = ae89dbfcf08bdfbea19066cfbf599127
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr
+       cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
+       cd $(DIR_APP) && make $(EXTRA_INSTALL) install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
diff --git a/make.sh b/make.sh
index cb04763..186e65f 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -651,6 +651,7 @@ buildipfire() {
   ipfiremake sysstat
   ipfiremake vsftpd
   ipfiremake strongswan
+  ipfiremake rng-tools
   ipfiremake lsof
   ipfiremake br2684ctl
   ipfiremake pcmciautils
diff --git a/src/initscripts/init.d/rngd b/src/initscripts/init.d/rngd
new file mode 100644 (file)
index 0000000..cc1c10d
--- /dev/null
@@ -0,0 +1,47 @@
+#!/bin/sh
+########################################################################
+# Begin $rc_base/init.d/rngd
+#
+# Description : Random Number Generator Daemon
+#
+# Authors     : Michael Tremer <michael.tremer@ipfire.org>
+#
+########################################################################
+
+. /etc/sysconfig/rc
+. ${rc_functions}
+
+case "${1}" in
+       start)
+               if [ ! -e "/dev/hwrng" ]; then
+                       boot_mesg "No Hardware Random Number Generator found..." ${WARNING}
+                       echo_warning
+                       exit 0
+               fi
+
+               boot_mesg "Starting Random Number Generator Daemon..."
+               loadproc /usr/sbin/rngd
+               ;;
+
+       stop)
+               boot_mesg "Stopping Random Number Generator Daemon..."
+               killproc /usr/sbin/rngd
+               ;;
+
+       restart)
+               ${0} stop
+               sleep 1
+               ${0} start
+               ;;
+
+       status)
+               statusproc /usr/sbin/rngd
+               ;;
+
+       *)
+               echo "Usage: ${0} {start|stop|restart|status}"
+               exit 1
+               ;;
+esac
+
+# End $rc_base/init.d/rngd