From 30f76b34cc7a8ae809350098ff452d9061da9bd7 Mon Sep 17 00:00:00 2001 From: Benjamin Schieder Date: Mon, 1 May 2006 15:56:37 +0000 Subject: [PATCH] Benjamin Schieder: devicemapper: when setting up an encrypted swap area, switch to /dev/urandom when /dev/random is exhausted tested and found to be working [2006042709405218849] (https://www.rocklinux.net/submaster) git-svn-id: http://www.rocklinux.org/svn/rock-linux/trunk@7567 c5f82cb5-29bc-0310-9cd0-bff59a50e3bc --- package/base/device-mapper/etc_conf_dm_initrd_dm | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/package/base/device-mapper/etc_conf_dm_initrd_dm b/package/base/device-mapper/etc_conf_dm_initrd_dm index feb7b9be8..b49ef7fbb 100644 --- a/package/base/device-mapper/etc_conf_dm_initrd_dm +++ b/package/base/device-mapper/etc_conf_dm_initrd_dm @@ -198,15 +198,22 @@ while read device mountpoint status ; do echo "setting up encryption" echo -n "gathering entropy ... " ent="" - while [ -z "${ent:128}" ] ; do - read -n 1 e < /dev/random + while read -n 1 -t 1 e < /dev/random ; do + [ -n "${ent:128}" ] && break + [ "${e}" == "\n" ] && continue + ent="${ent}${e}" + echo -n "." + done + [ -z "${ent:128}" ] && echo -n " switching to urandom ... " + while read -n 1 e < /dev/urandom ; do + [ -n "${ent:128}" ] && break [ "${e}" == "\n" ] && continue ent="${ent}${e}" echo -n "." done ent="`echo ${ent} | md5sum`" ent=${ent%% *} - echo + echo " done" echo -n "setting up encryption ... " encryptedname=${device//\//_}_encrypted encryptedname=${encryptedname#_}