mirror of
https://github.com/J3vb/OwnCord.git
synced 2026-09-03 03:50:00 +03:00
Periodic key rotation: - Key holder rotates room key every 5 minutes for forward secrecy, independent of participant changes. Timer managed by key holder only. Offer retry mechanism: - Non-key-holders re-announce their public key after 10s timeout and wait 5s more before giving up. Covers lost offers from target disconnect during async key wrapping. - Key holder now re-sends room key offer on duplicate announces (peer may be re-requesting after a missed offer), instead of ignoring them. Key fingerprint verification: - New computeKeyFingerprint() in e2eeCrypto.ts — SHA-256 hash of raw public key formatted as "AB12 CD34 ..." for out-of-band verification. Can be displayed in UI for MITM detection. Server hardening: - Public key size limit tightened from 256 to 128 bytes (P-256 uncompressed = 65 bytes = ~88 base64 chars). Client hardening: - WebCrypto availability check at module load — throws descriptive error if crypto.subtle is unavailable (non-HTTPS context). - base64ToUint8() now wraps atob() in try-catch with clear error message. https://claude.ai/code/session_01KKo3RwjdmcNzkgXNfUkgNT