summaryrefslogtreecommitdiffstats
path: root/tests/random.pm
diff options
context:
space:
mode:
Diffstat (limited to 'tests/random.pm')
-rw-r--r--tests/random.pm27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/random.pm b/tests/random.pm
new file mode 100644
index 0000000..be008ff
--- /dev/null
+++ b/tests/random.pm
@@ -0,0 +1,27 @@
1use strict;
2use warnings;
3
4use tests::arc4;
5
6my (@arc4);
7
8sub random_init {
9 if (@arc4 == 0) {
10 my ($seed) = @_;
11 $seed = 0 if !defined $seed;
12 @arc4 = arc4_init (pack ("V", $seed));
13 }
14}
15
16sub random_bytes {
17 random_init ();
18 my ($n) = @_;
19 return arc4_crypt (\@arc4, "\0" x $n);
20}
21
22sub random_ulong {
23 random_init ();
24 return unpack ("V", random_bytes (4));
25}
26
271;