(self)
| 918 | self.assertEqual(a, c) |
| 919 | |
| 920 | def test_randbytes(self): |
| 921 | super().test_randbytes() |
| 922 | |
| 923 | # Mersenne Twister randbytes() is deterministic |
| 924 | # and does not depend on the endian and bitness. |
| 925 | seed = 8675309 |
| 926 | expected = b'3\xa8\xf9f\xf4\xa4\xd06\x19\x8f\x9f\x82\x02oe\xf0' |
| 927 | |
| 928 | self.gen.seed(seed) |
| 929 | self.assertEqual(self.gen.randbytes(16), expected) |
| 930 | |
| 931 | # randbytes(0) must not consume any entropy |
| 932 | self.gen.seed(seed) |
| 933 | self.assertEqual(self.gen.randbytes(0), b'') |
| 934 | self.assertEqual(self.gen.randbytes(16), expected) |
| 935 | |
| 936 | # Four randbytes(4) calls give the same output than randbytes(16) |
| 937 | self.gen.seed(seed) |
| 938 | self.assertEqual(b''.join([self.gen.randbytes(4) for _ in range(4)]), |
| 939 | expected) |
| 940 | |
| 941 | # Each randbytes(1), randbytes(2) or randbytes(3) call consumes |
| 942 | # 4 bytes of entropy |
| 943 | self.gen.seed(seed) |
| 944 | expected1 = expected[3::4] |
| 945 | self.assertEqual(b''.join(self.gen.randbytes(1) for _ in range(4)), |
| 946 | expected1) |
| 947 | |
| 948 | self.gen.seed(seed) |
| 949 | expected2 = b''.join(expected[i + 2: i + 4] |
| 950 | for i in range(0, len(expected), 4)) |
| 951 | self.assertEqual(b''.join(self.gen.randbytes(2) for _ in range(4)), |
| 952 | expected2) |
| 953 | |
| 954 | self.gen.seed(seed) |
| 955 | expected3 = b''.join(expected[i + 1: i + 4] |
| 956 | for i in range(0, len(expected), 4)) |
| 957 | self.assertEqual(b''.join(self.gen.randbytes(3) for _ in range(4)), |
| 958 | expected3) |
| 959 | |
| 960 | def test_randbytes_getrandbits(self): |
| 961 | # There is a simple relation between randbytes() and getrandbits() |
nothing calls this directly
no test coverage detected