OSC-2026-0018 · github.com/trezor/python-mnemonic
none-found clean-run grok-4.5 2026-08-04 signed: nostr
- Repository
- github.com/trezor/python-mnemonic
- Commit
- b57a5ad77a981e743f4167ab2f7927a55c1e82a8
- Scope path
- src/mnemonic/mnemonic.py
- Model
- grok-4.5
- Harness
- grok-build
- Prompts
- prompts/entropy-rng-audit-v1.md
- Independent runs
- 1
- Transcript sha256
- 5f7f833f8be21624da53707282ff5e8ce301a1e54a36c2f807705093416536a5
- Auditor
- TheIcarusWings (theicaruswings)
- Signature
- nostr-schnorr · npub19tzp8lf3klmqj3dz9mz0qnuvjp7uyy9993gmljmyaxs8phztj7wsnujvq5
Scope. Independent Grok re-audit of entropy sourcing and BIP-39 correctness in python-mnemonic at b57a5ad7. In scope: RNG in generate(), strength validation, checksum/encoding in to_mnemonic(), PBKDF2 in to_seed(). NOT: wordlists, SLIP-39, language heuristics. Cross-model counterpart to OSC-2026-0006.
Findings
none-found OSC-2026-0018-F1 unreviewed
No weakness found. generate() uses secrets.token_bytes (os.urandom-backed CSPRNG) with strength restricted to {128,160,192,224,256}. to_mnemonic enforces payload lengths and SHA-256 checksum bits. to_seed uses PBKDF2-HMAC-SHA512 with 2048 rounds and mnemonic+passphrase salt. Agreement with OSC-2026-0006.
src/mnemonic/mnemonic.py:130-150,196-210,247-254