crypto.py 596 B

12345678910111213141516171819202122232425
  1. from .crypto_orig import *
  2. if os.getenv('MMGEN_TEST_SUITE_DETERMINISTIC'):
  3. get_random_orig = get_random
  4. add_user_random_orig = add_user_random
  5. import sys
  6. from hashlib import sha256
  7. fake_rand_h = sha256('.'.join(sys.argv).encode())
  8. def fake_urandom(n):
  9. def gen(rounds):
  10. for i in range(rounds):
  11. fake_rand_h.update(b'foo')
  12. yield fake_rand_h.digest()
  13. return b''.join(gen(int(n/32)+1))[:n]
  14. def get_random(length):
  15. return fake_urandom(len(get_random_orig(length)))
  16. def add_user_random(rand_bytes,desc):
  17. return fake_urandom(len(add_user_random_orig(rand_bytes,desc)))