OpenSourceCheck

OSC-2026-0028 · github.com/proto-at-block/bitkey

none-found clean-run grok-4.5 2026-08-04 signed: nostr

Repository
github.com/proto-at-block/bitkey
Commit
cf16705543d0c66ff982635733d380944cc2677d
Model
grok-4.5
Harness
grok-build
Prompts
prompts/entropy-rng-audit-v1.md
Independent runs
1
Transcript sha256
201a1f1b9fea088ca760a545c29879457b0be748b97b2c8238545a51d99b1dc6
Auditor
TheIcarusWings (theicaruswings)
Signature
nostr-schnorr · npub19tzp8lf3klmqj3dz9mz0qnuvjp7uyy9993gmljmyaxs8phztj7wsnujvq5

Scope. Independent entropy/RNG audit of bitkey at cf167055. In scope: BIP-32 seed generation (seed.c → crypto_random), EFR32 Secure Engine TRNG on w3-core/w1, STM32U5 TRNG+HMAC-DRBG on w3-uxc (non-seed image), Meson platform source selection, secp256k1 ECDSA RFC6979 and Schnorr auxiliary randomness. Out of scope: biometrics/PIN policy, PSBT authorization, UI, grant protocol. Cross-model independent counterpart (did not read OSC-2026-0026 findings before concluding).

Findings

none-found OSC-2026-0028-F1 unreviewed

No insufficient-entropy defect found in scope. Wallet seed (32 bytes) is generated on EFR32 core via crypto_random → sl_se_get_random (Secure Engine), fail-closed with ASSERT; Meson binds w3-core/w1 wallet to efr32mg24 crypto, not the STM32 HMAC-DRBG path. secp256k1 ECDSA uses libsecp256k1 default RFC6979 nonce; Schnorr auxiliary rand is SE TRNG. No software-PRNG fallback or Coldcard-class silent TRNG disable found for seed generation.

firmware/lib/wallet/src/seed.c:21-36; firmware/lib/wallet/src/seed_impl.h:6; firmware/lib/crypto/src/efr32/secure_rng.c:8-21; firmware/lib/crypto/meson.build:1-45; firmware/app/w3-core/application/meson.build:51,58; firmware/lib/crypto/src/ecc.c:103-128,184-207; firmware/lib/crypto/src/stm32/rng.c:39-62