• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

archetech / archon / 30916659868
94%
main: 87%

Build:
Build:
LAST BUILD BRANCH: fix/python-response-interop
DEFAULT BRANCH: main
Ran 04 Aug 2026 02:03PM UTC
Jobs 1
Files 88
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

04 Aug 2026 02:00PM UTC coverage: 94.147%. Remained the same
30916659868

Pull #857

github

macterra
test(cipher): guard against a silent weak-RNG substitution

SECURITY.md calls the throw-rather-than-fall-back property "the property most
worth preserving", but nothing asserted it. The July 2026 Coldcard incident is
the worked example of why that matters: a build-configuration error bound seed
generation to a deterministic fallback PRNG instead of the hardware RNG,
cutting real entropy to roughly 40 bits, and it went unnoticed for five years
because degraded output still looks random.

Four tests, covering both directions:

- mnemonic and vault-key generation each draw from crypto.getRandomValues
- each path throws, rather than returning anything, when no CSPRNG exists

Writing this surfaced something the doc did not capture: there are TWO
independent RNG implementations in play. Mnemonics and salts go through
@noble/hashes randomBytes; vault keypairs go through @noble/secp256k1, which
ships its own. Separate packages on separate version lines, so a bump can
change one and not the other. Each now has its own test.

Verified non-vacuous rather than assumed: with a Coldcard-style deterministic
PRNG patched over the RNG in @noble/hashes (three copies, including the one
nested under @noble/curves) and in @noble/secp256k1, all four tests fail. They
pass again once the dependencies are restored. An earlier draft using
jest.resetModules() alone passed vacuously — the ESM module cache kept the
original crypto capture, so the throw path was never reached.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Pull Request #857: docs: trace where the entropy ultimately comes from

3609 of 4063 branches covered (88.83%)

Branch coverage included in aggregate %.

8230 of 8512 relevant lines covered (96.69%)

687.14 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30916659868.1 04 Aug 2026 02:03PM UTC 176
95.16
GitHub Action Run
Source Files on build 30916659868
  • Tree
  • List 88
  • Changed 73
  • Source Changed 0
  • Coverage Changed 73
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #30916659868
  • Pull Request #857
  • PR Base - main (#30852194125)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc