Skip to content

SendBeam 1.9.0

Choose a tag to compare

@github-actions github-actions released this 07 Sep 15:25
· 76 commits to main since this release
33e760f

SendBeam v1.9.0

Cryptographic Verification

All release binaries and installer packages are cryptographically signed and verifiable end-to-end:

  1. Minisign (Ed25519):
# Verify SHA256SUMS.txt using the official SendBeam public key:
minisign -Vm SHA256SUMS.txt -P RWTcyDWHWbxnuo3LVM5mWoZrx0HDwSQzAZvXK1lPRcdtJxshUDxJh+rE
  1. 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
  1. SHA-256 Checksums:
# Verify downloaded asset checksum against the signed manifest:
sha256sum -c SHA256SUMS.txt --ignore-missing

Changes

SendBeam v1.9 — Release Gate

The v1.9 milestone (Trusted Handoffs: forward-secret authenticated ephemeral Diffie-Hellman key exchange sendbeam/3, authorized signed tombstones and mesh revocation lifecycle, ephemeral opaque blind rendezvous with truthful presence, shared native receiver with real consent for CLI and desktop, CLI targeted and broadcast delivery with bound peer identity, foreground browser pairing with transactional IndexedDB persistence, browser targeted send & incoming consent, desktop trusted-device flows with typed Wails v3 adapters and native smoke tests, production strict require-padding policy across all clients, and comprehensive cross-client integration) gates release on the checks below, each verified against merged main.

Every gate check requires deterministic test evidence, green CI execution across all platforms, and complete documentation synchronization.


1. Gate Checks

# Requirement Result Evidence
1 Reviewed Trusted-Session & Authorization ADR (ADR 0010 / V19-PR01)
Formally specify sendbeam/3: authenticated ephemeral Diffie-Hellman key agreement using X25519 (RFC 7748) and HKDF-SHA256 (RFC 5869), memory zeroization of ephemeral private keys, transcript and capability binding, replay/timestamp skew bounds (±5 min), mutual confirmation tags, downgrade defense (ErrProtocolDowngradeForbidden), and the authorization hierarchy distinguishing self-tombstones, pairwise unpairing, and cluster authority.
PASS Design established in docs/adr/0010-trusted-session-auth.md. Formalized mathematical derivations, state machine diagrams, error taxonomy, and authorization rules. Merged via PR #180 (3893766).
2 Forward-Secret Key Agreement Implementation (sendbeam/3 / V19-PR02)
Parallel implementation in Go (packages/wire/trusted_auth.go) and TypeScript (packages/protocol/src/trusted-auth.ts). Low-order curve point validation, memory zeroization, domain-separated mutual confirmation tags (NewTrustedAuthConfirmV3), replay cache (NonceReplayCache), cross-language canonical test vectors (packages/wire/testdata/trusted-session-v3-vectors.json), and adversarial test suites.
PASS Implementation in packages/wire/trusted_auth.go, trusted_auth_test.go, and packages/protocol/src/trusted-auth.ts, trusted-auth-v3.test.ts. Cross-language vectors passing byte-for-byte parity. Engine integration in packages/engine/trust/trusted_session.go. Merged via PR #181 (22b842b).
3 Unified Pairing Identity Persistence & Protected Credential Adapters (V19-PR03)
Non-destructive atomic migration (write -> verify -> switch), relationship (cluster_member vs contact) schema evolution, OS secret store abstraction with file secret resolver fallback (0600), and IndexedDB persistent storage in the browser.
PASS Credential adapters in packages/engine/trust/credential_store.go, identity_manager.go, trust_store.go, and packages/protocol/src/indexeddb-secret-store.ts, indexeddb-trust-store.ts. Test suites credential_store_test.go, identity_manager_test.go, indexeddb-stores.test.ts. Merged via PR #182 (a4abf87).
4 Real User-Triggered Revocation & Authorized Signed Tombstones (V19-PR04)
Authorized tombstone signing, monotonic sequence validation, active-session revocation checks, and transitive cluster revocation authorization rules.
PASS Tombstone storage in packages/engine/trust/tombstone_store.go, packages/protocol/src/tombstone-store.ts. Monotonic sequence validation in packages/wire/revocation.go. Revocation sync in packages/engine/trust/revocation_sync.go and revocation_sync_test.go. Merged via PR #183 (8bbff52).
5 Ephemeral Opaque Blind Rendezvous & Truthful Presence (V19-PR05)
15-minute epoch-rotated blind handles derived via HMAC from pairwise secret, opaque room orchestration, concurrency limits, and truthful presence without directory harvesting.
PASS Opaque rendezvous session in packages/engine/rendezvous/opaque_session.go, packages/protocol/src/opaque-rendezvous.ts. Handle rotation tests in opaque_session_test.go and opaque-rendezvous.test.ts. Truthful presence coordinator in presence_coordinator.go. Merged via PR #184 (76b1387).
6 Shared Native Receiver for CLI and Desktop (V19-PR06)
Unified packages/engine/receiver/listener.go powering both CLI listen and Desktop native background listener. Real interactive consent prompts, durable receive, and --once mode exiting after exactly one verified delivery.
PASS Native receiver engine in packages/engine/receiver/listener.go, types.go, policy.go. Comprehensive test suite in receiver_test.go (TestReceiverPolicyAutoAccept, TestReceiverConsentPromptAccept, TestReceiverConsentPromptDecline, TestReceiverOnceModeSingleDelivery). Merged via PR #191 (8dc9c11).
7 CLI Targeted & Broadcast Delivery with Bound Peer Identity (V19-PR07)
CLI @device resolution against trusted store, bounded concurrent dial/transfer orchestration, independent failure domains, table summary, and secret-free --json output.
PASS CLI send implementation in apps/cli/cmd/sendbeam/send.go, broadcast.go. Full test suite in apps/cli/cmd/sendbeam/send_test.go (TestExecuteSend_TargetDevice_SuccessfulSend, TestExecuteSend_Broadcast_MixedOutcomes, TestRenderBroadcastTable). Merged via PR #192 (8be4a6a).
8 Foreground Browser Pairing & Complete Trust Lifecycle (V19-PR08)
Full browser-to-browser and browser-to-CLI pairing ceremony using SPAKE2 over signaling, transactionally committing to IndexedDB, with device listing and unpairing.
PASS Browser pairing coordinator in packages/protocol/src/pairing-coordinator.ts, pairing-coordinator.test.ts. Pairing UI modal in apps/web/src/lib/trust/PairModal.svelte. Trust manager in apps/web/src/lib/trust/manager.ts. Merged via PR #193 (22b192c).
9 Browser Targeted Send, Multi-Send & Incoming Consent (V19-PR09)
Web UI recipient selector, broadcast delivery to multiple trusted devices, and incoming transfer consent modal with auto-accept policy support.
PASS Targeted send orchestration in apps/web/src/lib/trust/targeted-send.ts, targeted-send.test.ts. Incoming listener in apps/web/src/lib/trust/incoming-listener.ts, incoming-listener.test.ts. Modals IncomingTransferModal.svelte, DevicesModal.svelte. Merged via PR #194 (3dd453a).
10 Desktop Trusted-Device Flows, Typed Wails Adapters & Smoke Tests (V19-PR10)
Built desktop frontend (index.html) trusted devices panel, pairing offer/join modal, rename, unpair, and consent modals. Pure Go engine services (DeviceService, TransferService), typed Wails v3 bridge, and native artifact smoke tests (smoke_test.go).
PASS Engine services in apps/desktop/internal/engine/device_service.go, transfer_service.go. Frontend shell in apps/desktop/frontend/dist/index.html. Smoke tests in apps/desktop/internal/engine/smoke_test.go and render_safety_test.go. Merged via PR #195 (c6e5465).
11 Production Require-Padding Policy Across Clients (V19-PR11)
Mandatory fail-closed padding policy enforcement (ErrPaddingRequired, ErrUnpaddedFrame), browser capability advertisement (FEATURE_PADDING), production attack matrix parity replacing test-local simulation mocks, sanitized diagnostics redacting 64-hex character keys and unpadded payload sizes, and UI configuration in Desktop and Web.
PASS Wire/protocol policy validation in packages/wire/errors.go, packages/protocol/src/capability.ts. Frame flag enforcement in wire/transfer_receiver.go, wire/transfer_sender.go, and protocol twins. Attack matrix Vectors 14 and 17 modernized in packages/wire/attack_matrix_test.go and packages/protocol/src/attack-matrix.test.ts. Diagnostics redaction in engine/diagnostics/diagnostics.go and web/diagnostics.ts. Merged via PR #196 (9fcc763).
12 Cross-Client Integration, Security Review Closure & Release-Artifact Gate (V19-PR12)
End-to-end integration across all client pairings, mutual strict padding transfer validation in listener engine (TestReceiverRequirePaddingMutualSuccess), documentation sweep, and release artifact verification.
PASS Full test suite clean across packages/wire, packages/engine, apps/cli, apps/server, apps/desktop/internal, packages/protocol, apps/web. Differential parity verified across 2,000 cases per codec. Documentation synchronized in docs/protocol.md, docs/threat-model.md, docs/trust-model.md, docs/compat-matrix.md, README.md.

2. Release Artifacts Matrix

The standard SendBeam distribution artifact set is produced and cryptographically signed on release tags (v*):