Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e370409

Browse files
committed
Add test cases for internal SHA3 helpers
1 parent 21c8c92 commit e370409

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

Lib/test/test_hashlib.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,13 +339,34 @@ def test_blocksize_name(self):
339339
self.check_blocksize_name('sha256', 64, 32)
340340
self.check_blocksize_name('sha384', 128, 48)
341341
self.check_blocksize_name('sha512', 128, 64)
342+
343+
@requires_sha3
344+
def test_blocksize_name_sha3(self):
342345
self.check_blocksize_name('sha3_224', 144, 28)
343346
self.check_blocksize_name('sha3_256', 136, 32)
344347
self.check_blocksize_name('sha3_384', 104, 48)
345348
self.check_blocksize_name('sha3_512', 72, 64)
346349
self.check_blocksize_name('shake_128', 168, 0, 32)
347350
self.check_blocksize_name('shake_256', 136, 0, 64)
348351

352+
def check_sha3(self, name, capacity, rate, suffix):
353+
constructors = self.constructors_to_test[name]
354+
for hash_object_constructor in constructors:
355+
m = hash_object_constructor()
356+
self.assertEqual(capacity + rate, 1600)
357+
self.assertEqual(m._capacity_bits, capacity)
358+
self.assertEqual(m._rate_bits, rate)
359+
self.assertEqual(m._suffix, suffix)
360+
361+
@requires_sha3
362+
def test_extra_sha3(self):
363+
self.check_sha3('sha3_224', 448, 1152, b'\x06')
364+
self.check_sha3('sha3_256', 512, 1088, b'\x06')
365+
self.check_sha3('sha3_384', 768, 832, b'\x06')
366+
self.check_sha3('sha3_512', 1024, 576, b'\x06')
367+
self.check_sha3('shake_128', 256, 1344, b'\x1f')
368+
self.check_sha3('shake_256', 512, 1088, b'\x1f')
369+
349370
@requires_blake2
350371
def test_blocksize_name_blake2(self):
351372
self.check_blocksize_name('blake2b', 128, 64)

0 commit comments

Comments
 (0)