28 lines
386 B
Perl
28 lines
386 B
Perl
|
use strict;
|
||
|
use warnings;
|
||
|
|
||
|
use tests::arc4;
|
||
|
|
||
|
my (@arc4);
|
||
|
|
||
|
sub random_init {
|
||
|
if (@arc4 == 0) {
|
||
|
my ($seed) = @_;
|
||
|
$seed = 0 if !defined $seed;
|
||
|
@arc4 = arc4_init (pack ("V", $seed));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
sub random_bytes {
|
||
|
random_init ();
|
||
|
my ($n) = @_;
|
||
|
return arc4_crypt (\@arc4, "\0" x $n);
|
||
|
}
|
||
|
|
||
|
sub random_ulong {
|
||
|
random_init ();
|
||
|
return unpack ("V", random_bytes (4));
|
||
|
}
|
||
|
|
||
|
1;
|