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