From 1fe733d1590a9d51987bd357aaceb10deb66f525 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Wed, 5 Aug 2026 17:24:56 +0000 Subject: [PATCH] add_user_random(): new `osrand_bytes` param --- mmgen/crypto.py | 6 ++++-- test/overlay/fakemods/mmgen/crypto.py | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/mmgen/crypto.py b/mmgen/crypto.py index b148cb3c..d628b3f4 100755 --- a/mmgen/crypto.py +++ b/mmgen/crypto.py @@ -313,6 +313,7 @@ class Crypto: rand_bytes, *, desc, + osrand_bytes = 8, urand = {'data': b'', 'counter': 0}): assert type(rand_bytes) is bytes, 'add_user_random_chk1' @@ -326,8 +327,9 @@ class Crypto: # counter protects against very evil rng that might repeatedly output the same data urand['counter'] += 1 - os_rand = os.urandom(8) - assert len(os_rand) == 8, f'OS random number generator returned {len(os_rand)} (!= 8) bytes!' + os_rand = os.urandom(osrand_bytes) + assert len(os_rand) == osrand_bytes, ( + f'OS random number generator returned {len(os_rand)} (!= {osrand_bytes}) bytes!') import hmac key = hmac.digest( diff --git a/test/overlay/fakemods/mmgen/crypto.py b/test/overlay/fakemods/mmgen/crypto.py index 8aaccc14..fe6dfd49 100644 --- a/test/overlay/fakemods/mmgen/crypto.py +++ b/test/overlay/fakemods/mmgen/crypto.py @@ -11,5 +11,5 @@ if overlay_fake_os.getenv('MMGEN_TEST_SUITE_DETERMINISTIC'): Crypto.get_random = lambda self, length: overlay_fake_urandom( len(overlay_fake_get_random_orig(self, length))) - Crypto.add_user_random = lambda self, rand_bytes, desc: overlay_fake_urandom( - len(overlay_fake_add_user_random_orig(self, rand_bytes, desc=desc))) + Crypto.add_user_random = lambda self, rand_bytes, *, desc, osrand_bytes=8: overlay_fake_urandom( + len(overlay_fake_add_user_random_orig(self, rand_bytes, desc=desc, osrand_bytes=osrand_bytes)))