Repository navigation
SendBeam 1.8.0
SendBeam v1.8.0
Cryptographic Verification
All release binaries and installer packages are cryptographically signed and verifiable end-to-end:
- Minisign (Ed25519):
# Verify SHA256SUMS.txt using the official SendBeam public key:
minisign -Vm SHA256SUMS.txt -P RWTcyDWHWbxnuo3LVM5mWoZrx0HDwSQzAZvXK1lPRcdtJxshUDxJh+rE- Sigstore Cosign (Keyless OIDC):
# Verify the GitHub Actions OIDC identity attestation:
cosign verify-blob --bundle SHA256SUMS.txt.sigstore.json --certificate-identity-regexp 'github.com/Akshay7273/sendbeam' --certificate-oidc-issuer https://token.actions.githubusercontent.com SHA256SUMS.txt- SHA-256 Checksums:
# Verify downloaded asset checksum against the signed manifest:
sha256sum -c SHA256SUMS.txt --ignore-missingChanges
SendBeam v1.8 — Release Gate
The v1.8 milestone (Protocol Assurance & Mobile Hardening: continuous native fuzzing across all untrusted input boundaries, deterministic cross-language differential parity harness, mobile WebKit / iOS Safari transfer hardening with dedicated CI profiling, expanded 20-vector adversarial attack matrix, and enhanced repository supply-chain posture with OpenSSF Scorecard and SHA-pinned GitHub Actions) gates release on the checks below, each verified against merged main.
Every gate check requires deterministic test evidence, green CI execution, and complete documentation synchronization.
1. Gate Checks
| # | Requirement | Result | Evidence |
|---|---|---|---|
| 1 | Continuous Fuzzing Infrastructure Establish comprehensive continuous fuzzing covering every untrusted byte boundary across Go packages ( packages/wire, packages/engine, apps/server). Commit deterministic seed corpora under standard testdata/fuzz/ paths. Integrate fast corpus replay smoke gate into pull request CI. Schedule matrix-parallel nightly fuzzing via GitHub Actions (fuzz.yml) with automated crash artifact retention and manual dispatch. Provide developer runner scripts (scripts/run_fuzz.sh), just recipes (just fuzz-smoke, just fuzz), and Google OSS-Fuzz container build script (scripts/oss-fuzz-build.sh). Document fuzzing architecture in docs/fuzzing.md. |
PASS | 22 native Go fuzz targets implemented in packages/wire/fuzz_test.go, journal_fuzz_test.go, padding_fuzz_test.go, pairing_fuzz_test.go, trusted_auth_fuzz_test.go, words_fuzz_test.go, revocation_fuzz_test.go; packages/engine/transfer/journal_fuzz_test.go, packages/engine/trust/trust_fuzz_test.go, packages/engine/updater/manifest_fuzz_test.go; apps/server/internal/signal/fuzz_test.go. Committed seed corpora across all targets under testdata/fuzz/. Fuzz smoke replay integrated in .github/workflows/ci.yml. Nightly matrix workflow .github/workflows/fuzz.yml. Runner script scripts/run_fuzz.sh and OSS-Fuzz container build script scripts/oss-fuzz-build.sh. Documented in docs/fuzzing.md and README. Merged via PR #161 (c305f9c). |
| 2 | Differential Cross-Language Parity Harness (Go ↔ TS) Build automated, deterministic differential testing harness synthesizing identical inputs across Go and TypeScript wire codecs. Generate 2,000 cases per surface per run using deterministic pseudo-random seeds. Verify byte-for-byte serialization identity and identical fail-closed rejection on invalid inputs across frame headers, revocation records, SPAKE2+ credentials, trusted-auth session challenges, invite codes, and safe transfer paths. Verify sensitivity via deliberate 1-byte encoder mutations. Gate CI on differential parity and run 10,000 cases nightly. |
PASS | Go vector generator packages/wire/differential_vector_gen_test.go synthesizing 2,000 cases per codec. TypeScript consumer suite packages/protocol/src/differential.test.ts. TS reverse generator exporting to packages/wire/testdata/diffgen-ts.jsonl and Go consumer suite packages/wire/differential_test.go. Verified deliberate 1-byte mutation pinpointing exact case ID fh_edge_0. CI differential gate in .github/workflows/ci.yml (2,000 cases/codec) and nightly workflow in .github/workflows/fuzz.yml (10,000 cases/codec). Developer tooling scripts/run_differential.sh and just differential. Documented in docs/fuzzing.md (Section 9). Merged via PR #162 (e192311). |
| 3 | Mobile WebKit & iOS Safari Hardening + Dedicated CI Profile Harden mobile transfer path against iOS Safari and WebKit browser engine constraints. Add dedicated Playwright mobile-webkit profile (iPhone 14 viewport, WebKit engine) to CI test matrix. Test mobile layout, responsive touch targets (>= 44x44px), PWA app-shell join flows, WebKit DataChannel backpressure (bufferedAmountLowThreshold) throttling, Page Visibility API suspension handling, and memory-bounded OPFS stream sink fallback. Enforce WebRTC trickle candidate sequencing and resolve engine supervisor lock inversions. |
PASS | Playwright mobile WebKit project added to apps/web/playwright.config.ts. 11 targeted end-to-end tests in apps/web/e2e/mobile-transfer.spec.ts passing green under mobile WebKit. Memory-bounded stream sink fallback in apps/web/src/lib/transfer/sink.ts. Worker-to-host streaming fix in apps/web/src/lib/transfer/transfer-core.ts. Receiver session teardown race fix in apps/web/src/lib/session/transfer.ts. Trickle candidate SDP serialization in packages/engine/rtc/peer.go. Supervisor relay cutover deadlock resolution in packages/engine/supervisor/supervisor.go and adaptive_conn.go. Updated docs/compat-matrix.md. Merged via PR #163 (e111e41). |
| 4 | Adversarial Attack Matrix Expansion (12 → 20+ Vectors) Expand the adversarial security attack matrix to 20 vectors across Go and TypeScript packages, enforcing existing protocol rules against malformed inputs and hostile peers: padding-oracle probe (13), bucket-downgrade coercion (14), update-manifest replay rejection (15), revocation race condition (16), revocation sequence rollback & domain monotonicity (17), relay frame corruption/reordering/truncation (18), durable transfer journal tampering (19), and pairing confirmation misuse (20). Update threat model with full 20-vector matrix table. |
PASS | New adversarial test suites implemented in packages/wire/attack_matrix_test.go (Vectors 13, 14, 17, 18, 19, 20), packages/engine/trust/attack_matrix_test.go (Vector 16), packages/engine/updater/attack_matrix_test.go (Vector 15), and packages/protocol/src/attack-matrix.test.ts (Vectors 1–20 complete parity). Comprehensive 20-vector attack matrix table and cross-references documented in docs/threat-model.md. Merged via PR #164 (3eaf8a4). |
| 5 | Security Posture: Disclosure Policy, OpenSSF Scorecard, SHA-Pinned Actions Formalize coordinated vulnerability disclosure policy ( SECURITY.md) with supported versions table, GitHub Private Vulnerability Reporting instructions, defined maintainer response SLAs, and scope boundaries. Configure low-noise grouped weekly automated dependency management in .github/dependabot.yml. Add OpenSSF Scorecard automated analysis workflow (.github/workflows/scorecard.yml) publishing SARIF to GitHub Code Scanning. Pin 100% of third-party GitHub Actions across all workflows by immutable 40-character commit SHA with inline version comments. Document branch protection and OpenSSF Best Practices self-certification in docs/supply-chain.md. |
PASS | SECURITY.md established at repository root. .github/dependabot.yml configured for weekly grouped updates. .github/workflows/scorecard.yml publishing to Security tab; OpenSSF Scorecard and Best Practices badges added to README.md. All third-party GitHub Actions pinned to full commit SHAs across .github/workflows/*.yml. docs/supply-chain.md updated with pinned action reference table, branch protection rulesets on main, and OpenSSF Best Practices questionnaire answers (Passing tier). Merged via PR #165 (73f5f42). |
| 6 | Milestone Gate Verification & Documentation Coherence Verify all 5 milestone PRs merged to main. CI runs 100% green with 0 failing checks across Go -race tests, TypeScript checks, ESLint, Prettier, Playwright e2e (including mobile-webkit and mobile-chrome), and distribution builds. Full documentation sweep: protocol.md (no wire changes invariant), threat-model.md (20-vector matrix), compat-matrix.md (mobile WebKit rows), fuzzing.md (continuous fuzzing guide), supply-chain.md (scorecard & pinned actions), SECURITY.md (security disclosure), README.md (badges, mobile support, security policy). Version metadata verification. |
PASS | Complete CI validation passing 100% green on main across all 22 checks. Local gate suite clean (just fmt, just lint, just typecheck, pnpm format:check, just test, just build). Full documentation synchronization complete across all references. Invariant verified: zero wire format changes in v1.8. |
2. Release Artifacts Matrix
The standard SendBeam distribution artifact set is produced and cryptographically signed on release tags (v*):
| Category | Artifact Name / Path | Platform / Target | Packaging / Format |
|---|---|---|---|
| CLI Binaries | sendbeam-cli-linux-amd64.tar.gz |
Linux (x86_64) |
Standalone tarball with license & readme |
sendbeam-cli-linux-arm64.tar.gz |
Linux (aarch64) |
Standalone tarball with license & readme | |
sendbeam-cli-darwin-amd64.tar.gz |
macOS (x86_64) |
Standalone tarball with license & readme |