#!/usr/bin/env python3 """Regenerate the Go test vectors in crypto_test.go from the reference client. pip install --target=/tmp/pybydenv pybyd==0.0.75 cryptography PYTHONPATH=/tmp/pybydenv python3 gen_fixtures.py If the Go tests fail after a pybyd upgrade, run this: BYD rotating the bangcle tables is the likely cause, and bangcle_tables.bin needs replacing too (pybyd/data/bangcle_tables.bin inside the wheel). """ from pybyd._crypto.bangcle import BangcleCodec from pybyd._crypto.hashing import md5_hex, pwd_login_key, sha1_mixed, compute_checkcode c = BangcleCodec() for p in ["", "hello", '{"functionType":"pwdLogin"}', "ünïcodé ✓"]: print(f"{p!r} -> {c.encode_envelope(p)}") print("md5Hex(hunter2) ", md5_hex("hunter2")) print("pwdLoginKey(hunter2) ", pwd_login_key("hunter2")) print("sha1Mixed(abc) ", sha1_mixed("abc")) print("checkcode ", compute_checkcode({"zeta": "1", "alpha": "2"}))