27 lines
386 B
Perl
Executable file
27 lines
386 B
Perl
Executable file
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;
|