diff options
Diffstat (limited to 'vere/ext/nasm/perllib/gensv.pl')
-rwxr-xr-x | vere/ext/nasm/perllib/gensv.pl | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/vere/ext/nasm/perllib/gensv.pl b/vere/ext/nasm/perllib/gensv.pl new file mode 100755 index 0000000..b80ccbe --- /dev/null +++ b/vere/ext/nasm/perllib/gensv.pl @@ -0,0 +1,34 @@ +#!/usr/bin/perl +# +# Generate a list of rotation vectors so we always use the same set. +# This needs to be run on a platform with /dev/urandom. +# + +($n) = @ARGV; + +sysopen(UR, '/dev/urandom', O_RDONLY) or die; + +$maxlen = 78; + +print "\@random_sv_vectors = (\n"; +$outl = ' '; + +for ($i = 0; $i < $n; $i++) { + + die if (sysread(UR, $x8, 8) != 8); + @n = unpack("V*", $x8); + + $xl = sprintf(" [0x%08x, 0x%08x]%s", + $n[0], $n[1], + ($i == $n-1) ? '' : ','); + if (length($outl.$xl) > $maxlen) { + print $outl, "\n"; + $outl = ' '; + } + $outl .= $xl; +} +close(UR); + +print $outl, "\n"; +print ");\n"; +print "1;\n"; |