Latest build · v0.9.4-rc · built 2026-05-27

Every change.In writing.

A dated record of every pre-release build and the hardening that went into it.

Pre-release internal log. Lumes has no public users yet, so these are hardening notes from a pre-audit build — not public security advisories. CVSS scores and advisory IDs are assigned only after public release and the pending external audit (Q3 2026).
v0.9.4-rclatest
2026-05-27
sha256: e84a · 1f0c · 9b22 · 4d31 …

Pre-audit internal hardening · attack surface reduced.

Security

Closed a ratchet message-key reuse window under fast successive sends.

Security

Closed a TOCTOU on the SecureString constant-time compare.

Changed

Argon2id parameters increased: m_cost 32 MiB → 64 MiB, t_cost 2 → 3.

Added

Hardened the release build pipeline; artefacts are now signed with SHA-256 + ML-DSA-65.

Added

Sealed-sender disambiguation: relay no longer sees recipient timing patterns.

Fixed

Fixed a disappearing-message race that could skip the prekey wipe.

Removed

Dev-mode verbose envelope error log (was leaking envelope size in debug builds).

v0.9.3
2026-04-22
sha256: a3f1 · 9e0c · 4b21 · 7d88 …

WebRTC signalling hardened; anti-replay window tightened.

Security

Closed an ICE-candidate replay accepted at the exact 30 s boundary.

Changed

WebRTC ICE candidates now individually Ed25519-signed (was: signed envelope only).

Changed

Anti-replay window narrowed from 60 s → 30 s; sequence-bound validation added.

Added

Short Authentication String (SAS) over verified channel for call setup.

v0.9.2
2026-03-30
sha256: c2e1 · 88a3 · f00d · 2715 …

Post-quantum dual signing reaches parity with classical.

Added

ML-DSA-65 signing alongside Ed25519 for every handshake transcript.

Added

liboqs integration via JSI bridge; native ML-KEM-768 / ML-DSA-65 on iOS & Android.

Security

Closed an Argon2id salt-entropy bias on first-launch derivation.

Security

Closed a dual-signature transcript canonicalisation mismatch that could allow signature substitution.

Changed

HKDF info label format: "lumes-v1-..." for forward compatibility.

v0.9.1
2026-02-19
sha256: 71b8 · 0cd3 · 4127 · ee9a …

Duress PIN, SecureString, anti-forensic foundation.

Added

Duress PIN with silent wipe; bypass for USB/MDM/custody hooks.

Added

Four-layer PIN enforcement on every secret unwrap.

Added

SecureString in-memory class with sodium.memzero on closure return.

Added

Argon2id-wrapped envelopes for all long-term secrets (Realm key, identity, prekey bundle).

Security

Closed a dev-mode envelope-size leak in debug builds.

v0.9.0
2026-01-12
sha256: d6 · 710a · fec9 · 22b3 · 5c…

First public pre-release · 12-layer architecture frozen.

Added

12-layer cryptographic stack documented in Docs.

Added

Full Signal-style Double Ratchet (3-step: DH out, chain advance, mk derive).

Added

ChaCha20-Poly1305 AEAD on every message body.

Added

Realm DB encrypted with 512-bit derived key.

Changed

Protocol version bump: keyset rev 0x0e2a.

v0.8.0
2025-11-04
sha256: 2a9f · 6703 · 11d8 · 50ee …

Forward-secure delete; group symmetric key rotation.

Added

Forward-secure delete: mk + spk + gsk zeroed (not just plaintext).

Changed

Group symmetric key rotation every N messages or on membership change.

Fixed

Memory leak in ratchet state cleanup on session close.

Subscribe

Get an email when we ship a security-relevant change.

No marketing. Security-relevant changes only.