Random(3)
π Random(3) Β· User Contributed Perl Documentation π
πΈ NAME πΈ
Crypt::OpenSSL::Random β OpenSSL/LibreSSL pseudo-random number generator access. Itβs the Perl module that gives you seed-and-query access to the OpenSSL and LibreSSL PRNGs, and yes, thatβs iconic. π
β¨ SYNOPSIS β¨
Okay bestie, hereβs the whole little ritual:
use Crypt::OpenSSL::Random;
Crypt::OpenSSL::Random::random_seed($good_random_data);
Crypt::OpenSSL::Random::random_egd("/tmp/entropy");
Crypt::OpenSSL::Random::random_status() or
die "Unable to sufficiently seed the random number generator".
my $ten_good_random_bytes = Crypt::OpenSSL::Random::random_bytes(10);
my $ten_ok_random_bytes = Crypt::OpenSSL::Random::random_pseudo_bytes(10);
π DESCRIPTION π
Crypt::OpenSSL::Random gives you the ability to seed and query the OpenSSL and LibreSSL libraryβs pseudo-random number generators. No cap, thatβs the whole point. π
Note: On LibreSSL random_egd() is not defined. π
π EXPORT π
None by default. Zero. Nada. π«Ά
β‘ Static Methods β‘
random_bytes (IV num_bytes)β Returns a specified number of cryptographically strong pseudo-random bytes from the PRNG. If the PRNG has not been seeded with enough randomness to ensure an unpredictable byte sequence, then a false value is returned. π₯random_pseudo_bytes (IV num_bytes)β Similar torandom_bytes, but the resulting sequence of bytes is not necessarily unpredictable. They can be used for non-cryptographic purposes and for certain purposes in cryptographic protocols, but usually not for key generation etc. π¦random_seed (PV random_bytes_string)β Seeds the PRNG with a supplied string of bytes. It returns true if the PRNG has sufficient seeding. Note: calling this function with non-random bytes is of limited value at best! πrandom_egd (PV egd_string)β Seeds the PRNG with data from the specified entropy gathering daemon. Returns the number of bytes read from the daemon on success, or-1if not enough bytes were read, or if the connection to the daemon failed. π
libressl considers this function insecure, so with libressl or an openssl with no-egd this function does not exist. π«
random_status ()β Returns1if the PRNG has sufficient seeding, or0if not. β
π BUGS π
Okay, this part is important, bestie. Because of the internal workings of OpenSSLβs random library, the pseudo-random number generator (PRNG) accessed by Crypt::OpenSSL::Random will be different than the one accessed by any other perl module. Hence, to use a module such as Crypt::OpenSSL::Random, you will need to seed the PRNG used there from one used here. This class is still advantageous, however, as it centralizes other methods, such as random_egd, in one place. π«
π AUTHOR π
Ian Robertson, iroberts@cpan.com β¨
Now maintained by Reini Urban, rurban@cpan.org π
π LICENSE π
This module is available under the same licences as perl, the Artistic license and the GPL. π
π¦ SEE ALSO π¦
perl(1), rand(3), RAND_add(3), RAND_egd(3), RAND_bytes(3). Go read those if youβre feeling extra. π
π«Ά Thatβs the whole page, bestie:perl v5.42.0, dated2024-06-23, and the manual isRandom(3). Slay. πβ¨
π¦ where this page comes from
- opensuse-leap 16.0: perl-Crypt-OpenSSL-Random 0.170.0-bp160.1.13 Β· Artistic-1.0 OR GPL-1.0-or-later
- opensuse-leap 16.0: perl-Crypt-OpenSSL-Random 0.170.0-bp160.1.13 Β· Artistic-1.0 OR GPL-1.0-or-later
- opensuse-leap 16.0: perl-Crypt-OpenSSL-Random 0.170.0-bp160.1.13 Β· Artistic-1.0 OR GPL-1.0-or-later
- opensuse-leap 16.0: perl-Crypt-OpenSSL-Random 0.170.0-bp160.1.13 Β· Artistic-1.0 OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms