예제 #1
0
def test_padding_up_to_length_fits_in_same_block() -> None:
    actual = Sha1()
    expected = sha1_oracle()
    chunk = b"x" * (expected.block_size - 9)
    actual.update(chunk)
    expected.update(chunk)
    assert actual.digest().hex() == expected.digest().hex()
예제 #2
0
def test_prop_comparing_to_python_version(chunks: list[bytes]) -> None:
    actual = Sha1()
    expected = sha1_oracle()
    for chunk in chunks:
        actual.update(chunk)
        expected.update(chunk)
    assert actual.digest().hex() == expected.digest().hex()
예제 #3
0
def test_short() -> None:
    chunk = b"abc"
    actual = Sha1()
    expected = sha1_oracle()
    actual.update(chunk)
    expected.update(chunk)
    assert actual.digest().hex() == expected.digest().hex()
예제 #4
0
def test_empty() -> None:
    assert Sha1().digest().hex() == sha1_oracle().digest().hex()