Release
Independent security-review readiness
Komms has a revision-bound external-review package and reproducible source archive process. It does not yet have an assigned reviewer, completed review, external findings, retest, residual-risk statement, or independent security assurance.
This document records readiness and the remaining external action. The canonical P0-06 status remains the release evidence ledger.
1. Review package
The package entry point is
security-review/stable-v1/README.md.
It contains:
- the exact assets, security invariants, architecture/trust boundaries, attack surfaces, work packages, source map, build commands, known limitations, and exclusions;
- a prepared RFP with independence, team, scope, disclosure, data-handling, deliverable, and retest requirements;
- a researched four-candidate shortlist with first-party evidence and unresolved diligence;
- a stable finding/severity/disposition/retest/publication format; and
- a bounded deterministic archive policy.
Minimum scope includes PQXDH, Double Ratchet state, downgrade behavior, sealed envelopes, recipient-authenticated group origins, device authority and recovery, opaque storage/migration, atomic transitions, first-contact admission, Connect discovery, mailbox custody, root-free backup/restore, and malformed input. Rendezvous, wake, RPC, UniFFI, and shell seams remain in scope where they can violate the stable endpoint contract.
No genuine external findings were supplied while this package was prepared. The project's documented limitations and audit-finding crosswalk are maintainer-authored inputs, not external findings.
2. Deterministic review target
The review target is an exact committed Git tree. Build its handoff archive with:
python3 scripts/security_review_package.py \
--revision <40-hex-review-revision> \
--output-dir security-review-artifactsValidate reproducibility without retaining another copy:
python3 scripts/security_review_package.py \
--revision <40-hex-review-revision> \
--checkVerify a handed-off archive and its report:
python3 scripts/security_review_package.py \
--verify-report <package-report.json> \
--archive <package.tar.gz>The builder rejects:
- a source tree beyond 4,096 files or 64 MiB;
- symlinks, submodules, special entries, unsafe paths, and duplicate archive members;
- omission of any required review document or implementation prefix;
- a tar beyond 96 MiB or compressed archive beyond 64 MiB; and
- an existing output with different bytes.
Tar entry time comes from the fixed commit and gzip time is zero. The report binds commit, tree, file/byte counts, archive name/size/SHA-256, package version, required inputs, and the explicit unassigned/no-findings/no-assurance state. The duplicated source archive is locally generated; its compact digest report is retained with project evidence.
The prepared target is commit
78b504df6423f5ca204199b4dbfdecc5c694b031, tree
6f2555cbcee87966f210af76c7315a1d9be21936. Its 787 tracked files total
20,310,981 bytes. The deterministic archive is 9,654,286 bytes with SHA-256
63984ad25f428b44334818f25ecef3e5951215de08fa9da1a30720fe06420ef9.
The retained
package report
has SHA-256
b82b80ace160d9b83f8d3e84a7ea51bc20e28c55e56d72f0c2aa315447fa0f94.
3. Candidate research
The unranked research shortlist is:
- NCC Group Cryptography Services;
- Trail of Bits;
- Least Authority; and
- Cure53.
The selection rationale and first-party sources are in
REVIEWERS.md. Research establishes
only plausible fit. It does not establish current availability, lack of
conflict, the practitioners who would perform the work, sufficient allocation,
publication/retest terms, or an acceptable price.
No candidate has been contacted. Issuing the RFP, discussing commercial terms, or spending funds requires explicit founder authorization.
4. Expected evidence
P0-06 requires one durable chain:
exact source/archive
-> named conflict-checked external team and accepted scope
-> initial report and complete finding index
-> exact correction commits and maintainer dispositions
-> reviewer retest of every finding
-> final public report and residual-risk statementDisputed and accepted-risk findings remain visible. A maintainer test is not a reviewer retest. A private clean-report claim without public scope, findings, limitations, dispositions, and residual risk does not satisfy the gate.
Independent interoperability is a separate P0-06 requirement. The current Komms adapter and all 51 cases originate from the Komms implementation process. A separately produced implementation or fixture producer must run the public kit with its provenance and independence recorded.
5. Remaining action
The one review-readiness action outside the repository is:
With explicit authorization and an approved budget, issue the prepared RFP, select a named conflict-checked team, bind the accepted scope to the retained archive digest, and commission the public review plus retest.
Until that occurs, public wording remains “prepared for external review” or “not independently reviewed,” never “audited,” “approved,” or “certified.”