vibe.d beta banner
get vibe.d

Class SystemRNG

Operating system specific cryptography secure random number generator.

It uses the "CryptGenRandom" function for Windows and "/dev/urandom" for Posix. It's recommended to combine the output use additional processing generated random numbers via provided functions for systems where security matters.

Inherits from


Name Description
this Creates new system random generator


Name Type Description
dataAvailableForRead [get] bool Queries if there is data available for immediate, non-blocking read.
empty [get] bool Returns true iff the end of the input stream has been reached.
leastSize [get] ulong Returns the maximum number of bytes that are known to remain in this stream until the end is reached. After leastSize() bytes have been read, the stream will either have reached EOS and empty() returns true, or leastSize() returns again a number > 0.


Name Description
peek Returns a temporary reference to the data that is currently buffered.
read Fills the buffer new random numbers.


Windows "CryptGenRandom" RNG has known security vulnerabilities on Windows 2000 and Windows XP (assuming the attacker has control of the machine). Fixed for Windows XP Service Pack 3 and Windows Vista.

See Also


Ilya Shipunov


© 2013 RejectedSoftware e.K.


Subject to the terms of the MIT license, as written in the included LICENSE.txt file.