Ben Pfaff
78f3f31640
random: Add entropy test.
...
This test would have made the bug fixed in the previous commit obvious. It
would have printed the following:
average=0007c220
bit 0 1
0 5012 4988
1 5019 4981
2 5154 4846
3 4909 5091
4 5011 4989
5 5021 4979
6 4911 5089
7 4910 5090
8 5011 4989
9 5020 4980
10 5154 4846
11 5021 4979
12 5155 4845
13 5019 4981
14 5153 4847
15 5153 4847
16 5153 4847
17 5153 4847
18 5153 4847
19 5152 4848
20 10000 0
21 10000 0
22 10000 0
23 10000 0
24 10000 0
25 10000 0
26 10000 0
27 10000 0
28 10000 0
29 10000 0
30 10000 0
31 10000 0
(expected values are 5000)
nibble 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 696 646 564 693 542 545 612 611 687 663 645 560 674 566 592 704
1 625 589 597 571 638 623 604 663 670 652 650 557 541 683 686 651
2 628 644 659 672 648 569 585 616 623 647 681 600 586 675 601 566
3 683 665 717 549 633 613 701 592 663 531 545 800 623 608 590 487
4 622 657 777 557 720 608 613 598 657 678 551 654 615 596 598 499
5 10000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
6 10000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
7 10000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
(expected values are 625)
2010-11-15 09:34:18 -08:00
Ben Pfaff
7918636f05
random: Fix random number generator.
...
As written, this "32-bit" random number generator nevers returns a value
bigger than 0xfffe0. This fixes the problem.
2010-11-15 09:32:58 -08:00
Ben Pfaff
10df718e73
random: Get random seed from /dev/urandom.
...
Even though this PRNG is not meant to be cryptographically secure, there is
no reason not to get a high-quality seed.
CC: Stephen Hemminger <shemminger@vyatta.com>
2010-08-12 15:49:18 -07:00
Ben Pfaff
e519ea28d6
random: Implement a decent random number generator.
...
Until now this library has based its random number upon those returned
by libc's rand() function. This has always bugged me--it is not a good
solution since rand() varies in quality so much. This commit changes
the random library to use a simple but high-quality PRNG.
2010-08-11 15:56:09 -07:00
Ben Pfaff
a14bc59fb8
Update primary code license to Apache 2.0.
2009-06-15 15:11:30 -07:00
Ben Pfaff
064af42167
Import from old repository commit 61ef2b42a9c4ba8e1600f15bb0236765edc2ad45.
2009-07-08 13:19:16 -07:00