Ian Robertson


Crypt::OpenSSL::RSA - RSA encoding and decoding, using the openSSL libraries

Crypt::OpenSSL::Random - Routines for accessing the OpenSSL pseudo-random number generator


  use Crypt::OpenSSL::Random;

  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);


Crypt::OpenSSL::Random provides the ability to seed and query the OpenSSL library's pseudo-random number generator


None by default.

Static Methods


This function, 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.


This function, is similar to c<random_bytes>, but the resulting sequence of bytes are 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.


This function 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!


This function seeds the PRNG with data from the specified entropy gathering daemon. Returns the number of bytes read from the daemon on succes, or -1 if not enough bytes were read, or if the connection to the daemon failed.


This function returns true if the PRNG has sufficient seeding.


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.


Ian Robertson, iroberts@cpan.com


perl(1), rand(3), RAND_add(3), RAND_egd(3), RAND_bytes(3).

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 62:

'=item' outside of any '=over'

Around line 93:

You forgot a '=back' before '=head1'

Hosting generously
sponsored by Bytemark