Module Name: src
Committed By: riastradh
Date: Wed Aug 28 14:08:48 UTC 2024
Modified Files:
src/lib/libc/gen: getentropy.3
Log Message:
getentropy(3): Note intent to reseed on VM clone, and caveats.
Tidy markup and pacify some mandoc -Tlint complaints while here.
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork
To generate a diff of this commit:
cvs rdiff -u -r1.7 -r1.8 src/lib/libc/gen/getentropy.3
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libc/gen/getentropy.3
diff -u src/lib/libc/gen/getentropy.3:1.7 src/lib/libc/gen/getentropy.3:1.8
--- src/lib/libc/gen/getentropy.3:1.7 Thu Aug 15 23:44:49 2024
+++ src/lib/libc/gen/getentropy.3 Wed Aug 28 14:08:48 2024
@@ -1,4 +1,4 @@
-.\" $NetBSD: getentropy.3,v 1.7 2024/08/15 23:44:49 riastradh Exp $ $
+.\" $NetBSD: getentropy.3,v 1.8 2024/08/28 14:08:48 riastradh Exp $ $
.\"
.\" Copyright (c) 2020 The NetBSD Foundation, Inc.
.\" All rights reserved.
@@ -27,7 +27,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd February 28, 2023
+.Dd August 28, 2024
.Dt GETENTROPY 3
.Os
.Sh NAME
@@ -41,9 +41,8 @@
.Fn getentropy "void *buf" "size_t buflen"
.In limits.h
.Pp
-.Li #define GETENTROPY_MAX 256
+.Li #define GETENTROPY_MAX 256
.Sh DESCRIPTION
-.Pp
The
.Nm
function fills
@@ -99,6 +98,21 @@ However, the
interface alone can make no security guarantees without a physical
system configuration that includes random number generation hardware or
secret seed material from such hardware on another machine.
+.Pp
+.Nx
+attempts to reseed the system entropy pool when it has detected the
+system has been cloned as a guest in a virtual machine, so that
+subsequent calls to
+.Nm
+in the clones yield independent outputs.
+However, this relies on the virtual machine host to notify the guest,
+e.g. through the
+.Xr acpivmgenid 4
+device, and even so there is an unavoidable small window of time
+between when the virtual machine is actually cloned and when the system
+is reseeded during which
+.Nm
+may yield identical outputs in the clones.
.Sh SEE ALSO
.Xr arc4random 3 ,
.Xr rnd 4 ,