From 8af8d5d127f91c19795fff9661615f7a0332e800 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Wed, 29 Jan 2014 17:22:48 +0100 Subject: [PATCH] rng-tools: New package. 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 | 1 + config/rootfiles/common/i586/initscripts | 1 + config/rootfiles/common/rng-tools | 4 + config/rootfiles/core/76/filelists/rng-tools | 1 + lfs/initscripts | 1 + lfs/rng-tools | 77 ++++++++++++++++++++ make.sh | 1 + src/initscripts/init.d/rngd | 47 ++++++++++++ 8 files changed, 133 insertions(+) create mode 100644 config/rootfiles/common/rng-tools create mode 120000 config/rootfiles/core/76/filelists/rng-tools create mode 100644 lfs/rng-tools create mode 100644 src/initscripts/init.d/rngd diff --git a/config/rootfiles/common/armv5tel/initscripts b/config/rootfiles/common/armv5tel/initscripts index 1b8fbda006..d25af188d0 100644 --- a/config/rootfiles/common/armv5tel/initscripts +++ b/config/rootfiles/common/armv5tel/initscripts @@ -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 diff --git a/config/rootfiles/common/i586/initscripts b/config/rootfiles/common/i586/initscripts index ca47f807c6..3d82d40846 100644 --- a/config/rootfiles/common/i586/initscripts +++ b/config/rootfiles/common/i586/initscripts @@ -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 index 0000000000..596a911c13 --- /dev/null +++ b/config/rootfiles/common/rng-tools @@ -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 index 0000000000..a7853e41b3 --- /dev/null +++ b/config/rootfiles/core/76/filelists/rng-tools @@ -0,0 +1 @@ +../../../common/rng-tools \ No newline at end of file diff --git a/lfs/initscripts b/lfs/initscripts index eae451b24c..6968edef45 100644 --- a/lfs/initscripts +++ b/lfs/initscripts @@ -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 index 0000000000..8ca95cff8f --- /dev/null +++ b/lfs/rng-tools @@ -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 . # +# # +############################################################################### + +############################################################################### +# 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 cb047636f9..186e65f9a1 100755 --- 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 index 0000000000..cc1c10d7cc --- /dev/null +++ b/src/initscripts/init.d/rngd @@ -0,0 +1,47 @@ +#!/bin/sh +######################################################################## +# Begin $rc_base/init.d/rngd +# +# Description : Random Number Generator Daemon +# +# Authors : Michael Tremer +# +######################################################################## + +. /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 -- 2.39.2