Thread (1 message) 1 message, 1 author, 2015-12-17

Re: Unit of /proc/sys/kernel/random/poolsize

From: Michael Kerrisk (man-pages) <hidden>
Date: 2015-12-17 07:51:57
Subsystem: the rest · Maintainer: Linus Torvalds

Possibly related (same subject, not in this thread)

Hello Tom,

On 10/22/2011 02:13 PM, Tom Gundersen wrote:
Hi,

This might not be so much a bug report, as a request for clarification.

In random(4) it is explained that /proc/sys/kernel/random/poolsize
contains the value in bits or bytes in >=2.6 and 2.4 respectively.
However, the example in the preceding paragraph assumes a 2.4 kernel
is being used, and treats the value as if it were in bytes.

I ran across this as I maintain the initscripts for Arch Linux, where
we have been (mistakenly) following the example even though we use a
3.0 kernel. Maybe it would be worthwhile to change the example into
the 2.6 interface, or at least include a word of caution?

I realise that using a value which is too large, probably does no harm
at all, but not being cryptography expert, I'd rather not take the
chance.
Long after the fact... I applied the patch below.
Okay?

Thanks for the report.

Cheers,

Michael

PS I am going to be in Oslo a couple of times in coming months.
Perhaps we could meet up for a beer or so.
diff --git a/man4/random.4 b/man4/random.4
index 2519981..4a32aac 100644
--- a/man4/random.4
+++ b/man4/random.4
@@ -171,7 +171,7 @@ This reduces the actual amount of noise in the entropy pool
 below the estimate.
 In order to counteract this effect, it helps to carry
 entropy pool information across shut-downs and start-ups.
-To do this, add the following lines to an appropriate script
+To do this, add the lines to an appropriate script
 which is run during the Linux system start-up sequence:
 
 .nf
@@ -186,7 +186,8 @@ which is run during the Linux system start-up sequence:
     fi
     chmod 600 $random_seed
     poolfile=/proc/sys/kernel/random/poolsize
-    [ \-r $poolfile ] && bytes=\`cat $poolfile\` || bytes=512
+    [ \-r $poolfile ] && bits=\`cat $poolfile\` || bits=4096
+    bytes=$(expr $bits / 8)
     dd if=/dev/urandom of=$random_seed count=1 bs=$bytes
 .fi
 
@@ -201,9 +202,14 @@ run during the Linux system shutdown:
     touch $random_seed
     chmod 600 $random_seed
     poolfile=/proc/sys/kernel/random/poolsize
-    [ \-r $poolfile ] && bytes=\`cat $poolfile\` || bytes=512
+    [ \-r $poolfile ] && bits=\`cat $poolfile\` || bits=4096
+    bytes=$(expr $bits / 8)
     dd if=/dev/urandom of=$random_seed count=1 bs=$bytes
 .fi
+
+In the above examples, we assume Linux 2.6.0 or later, where
+.IR /proc/sys/kernel/random/poolsize
+returns the size of the entropy pool in bits (see below).
 .SS /proc Interface
 The files in the directory
 .I /proc/sys/kernel/random

-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help