summaryrefslogtreecommitdiffstats
path: root/src/tests/random.pm
blob: be008ffc1adcc102f5907b236fc99b839d59d6a6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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;