Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

data::entropy::rawsource::local(3pm) [debian man page]

Data::Entropy::RawSource::Local(3pm)			User Contributed Perl Documentation		      Data::Entropy::RawSource::Local(3pm)

NAME
Data::Entropy::RawSource::Local - read randomness from local device SYNOPSIS
use Data::Entropy::RawSource::Local; my $rawsrc = Data::Entropy::RawSource::Local->new; $rawsrc->sysread($c, 1); # and the rest of the I/O handle interface DESCRIPTION
This class provides a constructor to open an I/O handle connected to a local source of random octets. This may be a strong entropy source, depending on the OS, but not every OS has such a facility at all. There are no actual objects blessed into this class. Only the constructor belongs to this class; it returns "IO::File" objects. For use as a general entropy source, it is recommended to wrap the handle using "Data::Entropy::Source", which provides methods to extract entropy in more convenient forms than mere octets. On systems with a blocking /dev/random, such as Linux, the bits generated can be totally unbiased and uncorrelated. Such an entropy stream is suitable for all uses, including security applications. However, the rate of entropy generation is limited, so applications requiring a large amount of apparently-random data might prefer to fake it cryptographically (see Data::Entropy::RawSource::CryptCounter). On systems where /dev/random does not block, the bits generated are necessarily correlated to some extent, but it should be cryptographically difficult to detect the correlation. Such an entropy source is not suitable for all applications. Some other systems lack /dev/random entirely. If satisfactory entropy cannot be generated locally, consider downloading it from a server (see Data::Entropy::RawSource::RandomOrg and Data::Entropy::RawSource::RandomnumbersInfo). CONSTRUCTOR
Data::Entropy::RawSource::Local->new([FILENAME]) Opens a file handle referring to the randomness device, or "die"s on error. The device opened is /dev/random by default, but this may be overridden by giving a FILENAME argument. The default device name may in the future be different on different OSes, if their equivalent devices are in different places. METHODS
There are no actual objects blessed into this class. The constuctor returns "IO::File" objects. See IO::File for the interface. It is recommended to use unbuffered reads (the "sysread" method) rather than buffered reads (the "getc" method et al), to avoid wasting entropy that could be used by another process. SEE ALSO
Data::Entropy::RawSource::CryptCounter, Data::Entropy::RawSource::RandomOrg, Data::Entropy::RawSource::RandomnumbersInfo, Data::Entropy::Source, IO::File AUTHOR
Andrew Main (Zefram) <zefram@fysh.org> COPYRIGHT
Copyright (C) 2006, 2007, 2009, 2011 Andrew Main (Zefram) <zefram@fysh.org> LICENSE
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.12.3 2011-05-09 Data::Entropy::RawSource::Local(3pm)

Check Out this Related Man Page

Data::Entropy(3pm)					User Contributed Perl Documentation					Data::Entropy(3pm)

NAME
Data::Entropy - entropy (randomness) management SYNOPSIS
use Data::Entropy qw(entropy_source); $i = entropy_source->get_int(12345); use Data::Entropy qw(with_entropy_source); with_entropy_source $source, sub { @a = shuffle(@a); }; DESCRIPTION
This module maintains a concept of a current selection of entropy source. Algorithms that require entropy, such as those in Data::Entropy::Algorithms, can use the source nominated by this module, avoiding the need for entropy source objects to be explicitly passed around. This is convenient because usually one entropy source will be used for an entire program run and so an explicit entropy source parameter would rarely vary. There is also a default entropy source, avoiding the need to explicitly configure a source at all. If nothing is done to set a source then it defaults to the use of Rijndael (AES) in counter mode (see Data::Entropy::RawSource::CryptCounter and Crypt::Rijndael), keyed using Perl's built-in "rand" function. This gives a data stream that looks like concentrated entropy, but really only has at most the entropy of the "rand" seed. Within a single run it is cryptographically difficult to detect the correlation between parts of the pseudo-entropy stream. If more true entropy is required then it is necessary to configure a different entropy source. FUNCTIONS
entropy_source Returns the current entropy source, a "Data::Entropy::Source" object. This will be the source passed to the innermost call to "with_entropy_source", if any, or otherwise the default entropy source. with_entropy_source SOURCE, CLOSURE The SOURCE is selected, so that it will be returned by "entropy_source", and CLOSURE is called (with no arguments). The SOURCE is selected only during the dynamic scope of the call; after CLOSURE finishes, by whatever means, the previously selected entropy source is restored. SOURCE is normally a "Data::Entropy::Source" object. Alternatively, it may be "undef" to cause use of the default entropy source. It may also be a reference to a function of no arguments, which will be called to generate the actual source only if required. This avoids unnecessarily initialising the source object if it is uncertain whether any entropy will be required. The source-generating closure may return a normal source or "undef", but not another function reference. SEE ALSO
Data::Entropy::Algorithms, Data::Entropy::Source AUTHOR
Andrew Main (Zefram) <zefram@fysh.org> COPYRIGHT
Copyright (C) 2006, 2007, 2009, 2011 Andrew Main (Zefram) <zefram@fysh.org> LICENSE
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.12.3 2011-05-09 Data::Entropy(3pm)
Man Page