Beta Shell
v2.0 · web2.us.cloudlogin.co
[FM]
[CMD]
[PHP]
[DB]
[INFO]
[SEC]
File Manager
~
/
usr
/
share
/
perl5
/
vendor_perl
/
Crypt
/
Random
Upload
5 items
Name
Size
Perms
Modified
Actions
[ .. / .. ]
Seed.pm
26.16 KB
-rw-r--r--
2013-02-16 17:16:22
Edit
Del
Source
-
drwxr-xr-x
2022-02-23 11:28:43
Del
Source.pm
3.23 KB
-rw-r--r--
2018-04-10 02:57:38
Edit
Del
Editing: Source.pm
(3.23 KB)
Path: /usr/share/perl5/vendor_perl/Crypt/Random/Source.pm
Back
package Crypt::Random::Source; # git description: v0.13-4-g0edcf44 # ABSTRACT: Get weak or strong random data from pluggable sources our $VERSION = '0.14'; use strict; use 5.008; use warnings; use Sub::Exporter -setup => { exports => [qw( get get_weak get_strong factory )], groups => { default => [qw(get get_weak get_strong)] }, }; use Crypt::Random::Source::Factory; our ( $factory, $weak, $strong, $any ); # silence some stupid destructor warnings END { undef $weak; undef $strong; undef $any; undef $factory } sub factory () { $factory ||= Crypt::Random::Source::Factory->new } sub _weak () { $weak ||= factory->get_weak } sub _strong () { $strong ||= factory->get_strong } sub _any () { $any ||= factory->get } sub get ($;@) { _any->get(@_) } sub get_weak ($;@) { _weak->get(@_) } sub get_strong ($;@) { _strong->get(@_) } # silence some stupid destructor warnings END { undef $weak; undef $strong; undef $any; undef $factory } 1; =pod =encoding UTF-8 =head1 NAME Crypt::Random::Source - Get weak or strong random data from pluggable sources =head1 VERSION version 0.14 =head1 SYNOPSIS use Crypt::Random::Source qw(get_strong); # get 10 cryptographically strong random bytes from an available source my $bytes = get_strong(10); =head1 DESCRIPTION This module provides implementations for a number of byte oriented sources of random data. See L<Crypt::Random::Source::Factory> for a more powerful way to locate sources, and the various sources for specific implementations. =head1 EXPORTS =over 4 =item get =item get_weak =item get_strong These functions delegate to a source chosen by an instance of L<Crypt::Random::Source::Factory>, calling get =back =head1 CAVEATS In versions prior to 0.13, C<rand> could be used as a result of calling C<get_weak>, or C<get>, if no random device was available. This implies that not explicitly asking for C<get_strong> on a non POSIX operating system (e.g. Win32 without the Win32 backend) could have resulted in non cryptographically random data. Relatedly, the characterization of C<urandom> as a weak source of randomness is also largely a misconception, see L<https://www.2uo.de/myths-about-urandom/> for example. =head1 SEE ALSO L<Crypt::Random>, L<Crypt::Util> =head1 SUPPORT Bugs may be submitted through L<the RT bug tracker|https://rt.cpan.org/Public/Dist/Display.html?Name=Crypt-Random-Source> (or L<bug-Crypt-Random-Source@rt.cpan.org|mailto:bug-Crypt-Random-Source@rt.cpan.org>). =head1 AUTHOR יובל קוג'מן (Yuval Kogman) <nothingmuch@woobling.org> =head1 CONTRIBUTORS =for stopwords Karen Etheridge Florian Ragwitz Graham Knop David Pottage Max Kanat-Alexander Edward Betts =over 4 =item * Karen Etheridge <ether@cpan.org> =item * Florian Ragwitz <rafl@debian.org> =item * Graham Knop <haarg@haarg.org> =item * David Pottage <spudsoup@cpan.org> =item * Max Kanat-Alexander <mkanat@es-compy.(none)> =item * Edward Betts <edward@4angle.com> =back =head1 COPYRIGHT AND LICENCE This software is copyright (c) 2008 by Yuval Kogman. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut __END__ # ex: set sw=4 et