示例#1
0
def test_unordered_ordered(hash_func):
    rng1 = SeededRNG(b"First",
                     b"Second",
                     ordered=[b"First_ord", b"Second_ord"],
                     hash_func=hash_func)
    rng2 = SeededRNG(b"First",
                     b"Second",
                     ordered=[b"Second_ord", b"First_ord"],
                     hash_func=hash_func)
    assert rng1 != rng2
示例#2
0
def test_from_type(dtype, hash_func, payload):
    payload_id = payloads.index(payload)
    rng = SeededRNG(*payload[0], **payload[1], hash_func=hash_func)
    seed_data = to_type[payload_id][dtype][hash_func.__name__]
    funcs_from = {bytes: SeededRNG.from_bytes, int: SeededRNG.from_int}

    assert rng == funcs_from[dtype](seed_data, hash_func=hash_func)
示例#3
0
def test_zeros(hash_func):
    assert SeededRNG(
        hash_func=hash_func)._seed == hash_func().digest_size * b"\x00"
示例#4
0
def test_unordered(hash_func):
    rng1 = SeededRNG(b"First", b"Second", hash_func=hash_func)
    rng2 = SeededRNG(b"Second", b"First", hash_func=hash_func)
    assert rng1 == rng2
示例#5
0
def test_eq_type(dtype, hash_func, payload):
    payload_id = payloads.index(payload)
    rng = SeededRNG(*payload[0], **payload[1], hash_func=hash_func)
    assert rng == to_type[payload_id][dtype][hash_func.__name__]
示例#6
0
def test_eq_seed(hash_func, payload):
    rng1 = SeededRNG(*payload[0], **payload[1], hash_func=hash_func)
    rng2 = SeededRNG(*payload[0], **payload[1], hash_func=hash_func)
    assert rng1 == rng2
示例#7
0
hash_funcs = [
    hashlib.md5, hashlib.sha1, hashlib.sha224, hashlib.sha256, hashlib.sha384,
    hashlib.sha512, hashlib.blake2s, hashlib.blake2b
]
payloads = [([b"First", b"Second"], {}), ([b"Second", b"First"], {}),
            ([], {
                "ordered": [b"First_ord", b"Second_ord"]
            }),
            ([b"First", b"Second"], {
                "ordered": [b"First_ord", b"Second_ord"]
            }),
            ([b"Second", b"First"], {
                "ordered": [b"First_ord", b"Second_ord"]
            })]
rng = SeededRNG(*payloads[3][0], **payloads[3][1], hash_func=hashlib.md5)

to_type = [None] * len(payloads)
to_type[0] = {
    bytes: {
        "openssl_md5":
        b'A]\xd7Q:\x83\x9c\xee\xbd\x8c1\xd9\xac\xb2\xae\xb4',
        "openssl_sha1":
        b'\x90\xb9$\xec\xfc8\xa7\xa6\xcf\xe3\x94c\xd7\xd3\xc4HG\xe0\x94\x91',
        "openssl_sha224":
        b"\xc0\xe2e\x10\xc4'\x07\r\x0f\xa6u]\x1d\xfd\x93u\x91\x85k\xa5b\xbb\x00CB\xabW3",
        "openssl_sha256":
        b'\x93\x0e\x81w\x1dj[\x15\xb5\xd2r\x80\x0bvY\x14\xe7\x95\xaa:\x99\xc3c\xad8\xaa7\xd9%zXa',
        "openssl_sha384":
        b'C\xeb\xf4L\x0bJ\x08*8\xc3\xbd\x15\xba\xb6\x17\x8aW8\x12O.L\xd8\xf9\xe0!\xe6\xd1\x83\x82\r\xf5\xa3\xa1\xd0\x04\xac\xaf\xf1X\xa2I\xb7\xa1u3\xf7:',
        "openssl_sha512":