f4jumble: Use BLAKE2b hashes for the long test vectors.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
This commit is contained in:
parent
fa1bd3773a
commit
bdf4c9ff9b
41
f4jumble.py
41
f4jumble.py
|
@ -91,7 +91,9 @@ def main():
|
||||||
return bytes(ret)
|
return bytes(ret)
|
||||||
rand = Rand(randbytes)
|
rand = Rand(randbytes)
|
||||||
|
|
||||||
test_vectors = []
|
plain_test_vectors = []
|
||||||
|
hashed_test_vectors = []
|
||||||
|
|
||||||
# Generate test vectors with various lengths:
|
# Generate test vectors with various lengths:
|
||||||
for l_M in [
|
for l_M in [
|
||||||
MIN_l_M,
|
MIN_l_M,
|
||||||
|
@ -102,19 +104,30 @@ def main():
|
||||||
3*l_H + 1,
|
3*l_H + 1,
|
||||||
257*l_H,
|
257*l_H,
|
||||||
257*l_H + 1,
|
257*l_H + 1,
|
||||||
(rand.u32() % (MAX_l_M - MIN_l_M)) + MIN_l_M,
|
|
||||||
MAX_l_M,
|
|
||||||
]:
|
]:
|
||||||
M = rand.b(l_M)
|
M = rand.b(l_M)
|
||||||
jumbled = f4jumble(M)
|
jumbled = f4jumble(M)
|
||||||
assert len(jumbled) == len(M)
|
assert len(jumbled) == len(M)
|
||||||
assert f4jumble_inv(jumbled) == M
|
assert f4jumble_inv(jumbled) == M
|
||||||
test_vectors.append(M)
|
|
||||||
|
|
||||||
test_vectors = [{
|
plain_test_vectors.append({
|
||||||
'normal': M,
|
'normal': M,
|
||||||
'jumbled': f4jumble(M),
|
'jumbled': jumbled,
|
||||||
} for M in test_vectors]
|
})
|
||||||
|
|
||||||
|
for l_M in [
|
||||||
|
(rand.u32() % (MAX_l_M - MIN_l_M)) + MIN_l_M,
|
||||||
|
MAX_l_M,
|
||||||
|
]:
|
||||||
|
M = bytes([i & 0xFF for i in range(l_M)])
|
||||||
|
jumbled = f4jumble(M)
|
||||||
|
assert len(jumbled) == len(M)
|
||||||
|
assert f4jumble_inv(jumbled) == M
|
||||||
|
|
||||||
|
hashed_test_vectors.append({
|
||||||
|
'length': l_M,
|
||||||
|
'jumbled_hash': blake2b(jumbled).digest()
|
||||||
|
})
|
||||||
|
|
||||||
render_tv(
|
render_tv(
|
||||||
args,
|
args,
|
||||||
|
@ -123,7 +136,17 @@ def main():
|
||||||
('normal', 'Vec<u8>'),
|
('normal', 'Vec<u8>'),
|
||||||
('jumbled', 'Vec<u8>'),
|
('jumbled', 'Vec<u8>'),
|
||||||
),
|
),
|
||||||
test_vectors,
|
plain_test_vectors,
|
||||||
|
)
|
||||||
|
print()
|
||||||
|
render_tv(
|
||||||
|
args,
|
||||||
|
'f4jumble',
|
||||||
|
(
|
||||||
|
('length', 'usize'),
|
||||||
|
('jumbled_hash', 'Vec<u8>'),
|
||||||
|
),
|
||||||
|
hashed_test_vectors,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue