OpenSourceCheck

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