diff options
author | Eli Zaretskii <eliz@gnu.org> | 2016-01-15 11:47:55 +0200 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2016-01-15 11:47:55 +0200 |
commit | 3ffe81e245d854a694ae1734f1b6a995bdc5e724 (patch) | |
tree | 2d8fccecc5b404f8fb71e15fe0ea6477a09a1857 /doc/lispref/numbers.texi | |
parent | fee0526a189f43e8470d78e8374bd425890fbe6f (diff) | |
download | emacs-3ffe81e245d854a694ae1734f1b6a995bdc5e724.tar.gz |
Make 'random' seeds cryptographically secure if possible
* configure.ac: Check for "/dev/urandom".
* src/sysdep.c (init_random) [HAVE_DEV_URANDOM]: Read the stream
for the seed from "/dev/urandom".
[WINDOWSNT]: Obtain the stream for the seed from w32 APIs.
* src/fns.c (Frandom): Update the doc string to indicate that
system entropy is used when available.
* src/w32.c: Include wincrypt.h.
(w32_init_crypt_random, w32_init_random): New functions, use the
CryptGenRandom API.
(globals_of_w32): Initialize w32_crypto_hprov handle to zero.
* src/w32.h (w32_init_random): Add prototype.
* doc/lispref/numbers.texi (Random Numbers): Document more details
about 't' as the argument to 'random'.
* etc/NEWS: Mention that '(random t)' now uses a cryptographically
strong seed if possible.
(Bug#22202)
Diffstat (limited to 'doc/lispref/numbers.texi')
-rw-r--r-- | doc/lispref/numbers.texi | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/doc/lispref/numbers.texi b/doc/lispref/numbers.texi index 20d3c4290f3..3a9483af967 100644 --- a/doc/lispref/numbers.texi +++ b/doc/lispref/numbers.texi @@ -1252,7 +1252,9 @@ any integer representable in Lisp, i.e., an integer between (@pxref{Integer Basics}). If @var{limit} is @code{t}, it means to choose a new seed as if Emacs -were restarting. +were restarting. The new seed will be set from the system entropy, if +that is available, or from the current time and Emacs process's PID +(@pxref{System Environment, emacs-pid}) if not. If @var{limit} is a string, it means to choose a new seed based on the string's contents. |