Files
securebit-chat/doc/API.md
T
lockbitchat c98a01b1d5
CodeQL Analysis / Analyze CodeQL (push) Canceled after 0s
Deploy Application / deploy (push) Canceled after 0s
Mirror to Codeberg / mirror (push) Canceled after 0s
Mirror to PrivacyGuides / mirror (push) Canceled after 0s
Add end-to-end encrypted voice messages; release v5.4.5
- Record voice notes in-browser, sent over the chunked AES-GCM file-transfer
  channel (per-file session key + signed SHA-256 integrity).
- Captured as PCM and encoded to WAV for universal playback (incl. iOS/Safari);
  auto-accepted and played inline from an in-memory blob, never written to disk.
- Composer mic button with live waveform + timer; desktop shows mic + send side
  by side, mobile swaps mic to send when typing.
- CSP media-src now allows blob: so recorded/received audio can play.
- Roadmap: Desktop Edition -> 5.0, new 5.5 'Secure Voice & Calls', later
  milestones shifted; version bumped to 5.4.5.
- Update README, docs (security/API/cryptography), and CHANGELOG.
2026-07-22 00:41:58 -04:00

1.8 KiB

API Notes

EnhancedSecureWebRTCManager

Verification

  • confirmVerification(userCode) validates a manually entered SAS code.
  • Verification succeeds only after both local and remote confirmations are present.
  • Protocol version 4.1 is enforced during offer/answer processing.

Privacy mode

  • relay-only configuration sets WebRTC iceTransportPolicy to "relay".
  • TURN availability is checked before claiming IP protection.

File transfer callbacks

  • setFileTransferCallbacks(onProgress, onReceived, onError, onIncomingRequest) updates manager fields and any live EnhancedSecureFileTransfer instance.
  • Passing null values detaches callbacks from the active transfer system.

Voice messages

  • sendFile(file, options) accepts an optional options object. options.voice ({ dur, bars }) marks the transfer as a voice note and rides along as unsigned metadata; options.uiId correlates progress events to a UI bubble before the fileId resolves.
  • onProgress receives { fileId, uiId, direction, progress, isVoice, voice }. onIncomingFileRequest and onReceived include isVoice and voice so the UI can auto-accept and render a voice bubble instead of a file card.

EnhancedSecureFileTransfer

Incoming transfers

  • metadata is validated before prompting
  • acceptance is explicit
  • receive buffers are allocated only after consent
  • file type acceptance is allowlist-based

Cleanup

  • pending sender consent promises are rejected on cleanup
  • consent timeouts are cleared immediately
  • retained received buffers are bounded
  • evicted download handles fail with a user-facing availability message

SecurePersistentKeyStorage

  • metadata is encrypted before storage
  • legacy plaintext records migrate lazily
  • corrupted encrypted metadata is ignored safely