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.
This commit is contained in:
@@ -12345,10 +12345,10 @@ async processMessage(data) {
|
||||
}
|
||||
}
|
||||
// Public method to send files
|
||||
async sendFile(file) {
|
||||
async sendFile(file, options = {}) {
|
||||
// Enforce verification gate for file transfers
|
||||
this._enforceVerificationGate('sendFile');
|
||||
|
||||
|
||||
if (!this.isConnected()) {
|
||||
throw new Error('Connection not ready for file transfer. Please ensure the connection is established.');
|
||||
}
|
||||
@@ -12371,7 +12371,7 @@ async processMessage(data) {
|
||||
|
||||
|
||||
try {
|
||||
const fileId = await this.fileTransferSystem.sendFile(file);
|
||||
const fileId = await this.fileTransferSystem.sendFile(file, options);
|
||||
return fileId;
|
||||
} catch (error) {
|
||||
this._secureLog('error', 'File transfer error:', { errorType: error?.constructor?.name || 'Unknown' });
|
||||
|
||||
Reference in New Issue
Block a user