| Cryptographic RNG (OS CSPRNG) | crypto.getRandomValues, rejection sampling, no modulo bias |
| NIST SP 800-22 statistical suite | 9 tests passed at 99.9% confidence (monobit, block-freq, runs, longest-run, serial 2- and 3-tuple, Shannon, serial correlation, ApEn) |
| BIP-0039 seed phrase compliance | 20/20 external phrase verification via reference Python implementation |
| RFC 4648 base32 compliance | 7/7 canonical test vectors match |
| RFC 4122 UUID v4 format | Version bit = 4, variant bit = 8 or 9-b |
| RFC 6238 TOTP URI format | Spec-compliant otpauth:// with percent-encoded unicode + special chars |
| SHA-256 implementation | Matches "abc" canonical vector ba7816bf...f20015ad |
| Uniqueness at scale | 100,000 generations, 0 collisions, 9,119 gens/sec |
| Weak-password resistance | 50,000 x 8 weak substrings (password, qwerty, admin, ...), 0 hits |
| Adversarial fuzz | 20 payloads (XSS, SQL, path traversal, null bytes, prototype pollution), 0 errors, 0 pollution |
| Zero client-side storage | localStorage / sessionStorage / cookies all empty |
| Zero third-party network | Only same-origin fetches (self-hash + .sig). CSP blocks everything else |
| CSP posture | default-src 'none'; connect-src 'self'; no external scripts / images / iframes / forms |
| Signed release | Ed25519, fingerprint 00b95edc...796ceb44 (full key in release-key section below) |
| TLS transport (hosted) | Let's Encrypt + HSTS 2y preload + COOP/COEP/CORP same-origin |