Python3 examples
One liner
from hdrbg import DRBG_SHA2_224
print(DRBG_SHA2_224(entropy=bytes(224),nonce=bytes(112)).get_bytes(16).hex())
8e171068da6c33b029ef73ec76085250
Dumping intermediate values
This is useful to people working on their own implemention of Hash DRBG. The verbosity is controlled by the logging level.
Use ‘DEBUG’ to dump all intermediate values
import logging
from hdrbg import DRBG_SHA2_224
logging.basicConfig(format='%(message)s', level='DEBUG')
print(DRBG_SHA2_224(entropy=bytes(224),nonce=bytes(112)).get_bytes(16).hex())
out_size = 55, cls.HASH_DIGEST_SIZE = 28, nloops = 2
temp = F6 5C DB CB 34 CC 86 02 50 8D 34 B9 48 3D B6 FC E2 D2 91 F7 D4 AF 5F 26 C6 A1 04 AB
temp = F6 5C DB CB 34 CC 86 02 50 8D 34 B9 48 3D B6 FC E2 D2 91 F7 D4 AF 5F 26 C6 A1 04 AB A5 32 19 C2 CD 29 0D FE 58 4F F9 8D E5 59 33 05 5C 98 75 DC 9C 12 6F FB 6E A1 CB 8D
out_size = 55, cls.HASH_DIGEST_SIZE = 28, nloops = 2
temp = 79 15 1E 55 02 FA A7 FE E4 87 DB 06 AD 3C AA 6C BC 2A 32 C7 15 EB 33 31 13 9B D8 61
temp = 79 15 1E 55 02 FA A7 FE E4 87 DB 06 AD 3C AA 6C BC 2A 32 C7 15 EB 33 31 13 9B D8 61 DF 73 10 3D 70 A9 DB 9D 1D C2 EB B5 0F EC D3 33 F8 2E 14 12 86 08 D1 21 6C C4 17 C2
C = 79 15 1E 55 02 FA A7 FE E4 87 DB 06 AD 3C AA 6C BC 2A 32 C7 15 EB 33 31 13 9B D8 61 DF 73 10 3D 70 A9 DB 9D 1D C2 EB B5 0F EC D3 33 F8 2E 14 12 86 08 D1 21 6C C4 17
V = F6 5C DB CB 34 CC 86 02 50 8D 34 B9 48 3D B6 FC E2 D2 91 F7 D4 AF 5F 26 C6 A1 04 AB A5 32 19 C2 CD 29 0D FE 58 4F F9 8D E5 59 33 05 5C 98 75 DC 9C 12 6F FB 6E A1 CB
reseed_counter = 1
C = 79 15 1E 55 02 FA A7 FE E4 87 DB 06 AD 3C AA 6C BC 2A 32 C7 15 EB 33 31 13 9B D8 61 DF 73 10 3D 70 A9 DB 9D 1D C2 EB B5 0F EC D3 33 F8 2E 14 12 86 08 D1 21 6C C4 17
V = 6F 71 FA 20 37 C7 2E 01 35 15 0F BF F5 7A 61 69 9E FC C4 BE EA 9A 92 57 DA 3C DD 48 D0 38 4B 05 B2 63 D6 C9 87 CF 90 7A 7B EF 5F 55 2B 91 F5 A3 CE 00 3C E3 C7 C0 52
reseed_counter = 2
8e171068da6c33b029ef73ec76085250