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

archetech / archon / 30831203771
94%
main: 95%

Build:
Build:
LAST BUILD BRANCH: fix/1288-runtime-wallet-recovery
DEFAULT BRANCH: main
Ran 03 Aug 2026 04:17PM 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

03 Aug 2026 04:13PM UTC coverage: 94.137% (-0.008%) from 94.145%
30831203771

Pull #836

github

macterra
docs: add SECURITY.md documenting key generation and entropy

The repo had no SECURITY.md and no disclosure policy — only a
point-in-time SECURITY_AUDIT.md from February. This adds the reporting
route and documents where private keys come from.

The substance is the entropy chain, written up because "the private key
is 256 bits" is true of the value and misleading about the entropy:

  bip39.generateMnemonic()  -> 128 bits (12 words; bip39's default, called
                               with no strength argument)
  mnemonicToSeedSync        -> 512-bit seed, still 128 bits of entropy
  HD derive m/44'/0'/N'/0/i -> 32-byte secp256k1 key, 128 bits of entropy

128 bits is the right choice rather than a shortfall: secp256k1 offers
~128-bit security via Pollard's rho, so the seed is matched to the curve
and a 24-word mnemonic would not make the keys harder to attack. The real
consequence is correlation — one mnemonic compromises every DID derived
from it, so separate mnemonics rather than separate accounts are what
isolate identities.

Also documented: vault keypairs are independently generated at ~256 bits
and are NOT recoverable from the seed (the opposite trade-off, worth
knowing before assuming a seed backup covers everything); DIDComm X25519
keys ARE seed-derived; the RNG throws rather than degrading to
Math.random() on any path; and the mnemonic is stored under PBKDF2-SHA512
at 100k iterations plus AES-GCM.

Every claim was verified against the code and by executing the relevant
paths, including confirming bip39's default strength empirically rather
than from its docs.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Pull Request #836: docs: add SECURITY.md documenting key generation and entropy

3605 of 4060 branches covered (88.79%)

Branch coverage included in aggregate %.

8229 of 8511 relevant lines covered (96.69%)

687.18 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30831203771.1 03 Aug 2026 04:17PM UTC 176
95.15
GitHub Action Run
Source Files on build 30831203771
  • 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 #30831203771
  • Pull Request #836
  • PR Base - main (#30776942573)
  • 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