ciphermesh 1.2.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -1
- package/README.pt-BR.md +4 -1
- package/package.json +1 -1
- package/src/client/ChatController.js +2 -0
- package/src/p2p/P2PChatController.js +2 -0
package/README.md
CHANGED
|
@@ -43,7 +43,7 @@ forwarding, survives CGNAT).
|
|
|
43
43
|
| 🔐 | **Real E2EE** | Curve25519 + XSalsa20-Poly1305 via libsodium, keys in `sodium_malloc` — never touch disk |
|
|
44
44
|
| 🔄 | **Perfect Forward Secrecy** | Double Ratchet: one key per message, compromise today ≠ read yesterday |
|
|
45
45
|
| 🕶️ | **Metadata resistance** | Fixed-bucket length padding on every ciphertext + opt-in cover traffic (`/cover`) to blur when you chat |
|
|
46
|
-
| 🕵️ | **TOFU + SAS** | Key-change detection (MITM alarm)
|
|
46
|
+
| 🕵️ | **TOFU + SAS** | Key-change detection (MITM alarm), 6-digit voice-verifiable codes, and inline **✓/✗** trust badges next to names |
|
|
47
47
|
| 🌐 | **LAN & internet** | Auto-detects Tailscale, shows the reachable address in the banner |
|
|
48
48
|
| 📨 | **Invites with QR** | `/invite` prints a `ciphermesh://` string + QR — paste it, you're in the right room |
|
|
49
49
|
| ✓✓ | **Encrypted read receipts** | The ✓✓ travels as ordinary ciphertext — the server can't tell it apart |
|
|
@@ -116,6 +116,7 @@ QR code) to whoever you want to pull in.
|
|
|
116
116
|
| Command | Description |
|
|
117
117
|
|---------|-------------|
|
|
118
118
|
| `/help` | All commands |
|
|
119
|
+
| `/tips` | Show a rotating security/UX tip |
|
|
119
120
|
| `/users` | Who's online (with away/status) |
|
|
120
121
|
| `/msg <nick> <text>` | Private message (DM) |
|
|
121
122
|
| `/reply <text>` | Reply quoting the last received message |
|
|
@@ -156,6 +157,8 @@ QR code) to whoever you want to pull in.
|
|
|
156
157
|
| `/receipts [on\|off]` | Send read receipts (✓✓) |
|
|
157
158
|
| `/audit [n]` | Local audit log |
|
|
158
159
|
|
|
160
|
+
A green **✓** next to a name marks a SAS-verified peer; a red **✗** flags a key that changed since you last saw it (possible MITM). A newly-arrived unverified peer triggers a one-time reminder to `/verify` them.
|
|
161
|
+
|
|
159
162
|
</details>
|
|
160
163
|
|
|
161
164
|
<details>
|
package/README.pt-BR.md
CHANGED
|
@@ -43,7 +43,7 @@ forwarding, imune a CGNAT).
|
|
|
43
43
|
| 🔐 | **E2EE de verdade** | Curve25519 + XSalsa20-Poly1305 via libsodium, chaves em `sodium_malloc` — nunca tocam o disco |
|
|
44
44
|
| 🔄 | **Perfect Forward Secrecy** | Double Ratchet: uma chave por mensagem — comprometer hoje ≠ ler ontem |
|
|
45
45
|
| 🕶️ | **Resistência a metadados** | Padding de comprimento em buckets fixos em todo ciphertext + cover traffic opcional (`/cover`) pra borrar quando você conversa |
|
|
46
|
-
| 🕵️ | **TOFU + SAS** | Alarme de troca de chave (MITM)
|
|
46
|
+
| 🕵️ | **TOFU + SAS** | Alarme de troca de chave (MITM), código de 6 dígitos verificável por voz e badges de confiança **✓/✗** inline ao lado dos nomes |
|
|
47
47
|
| 🌐 | **LAN e internet** | Detecta Tailscale sozinho e mostra o endereço alcançável no banner |
|
|
48
48
|
| 📨 | **Convites com QR** | `/invite` gera uma string `ciphermesh://` + QR — colou, caiu na sala certa |
|
|
49
49
|
| ✓✓ | **Read receipts cifrados** | O ✓✓ viaja como ciphertext comum — o servidor não distingue de mensagem |
|
|
@@ -116,6 +116,7 @@ quem você quiser puxar pra conversa.
|
|
|
116
116
|
| Comando | Descrição |
|
|
117
117
|
|---------|-----------|
|
|
118
118
|
| `/help` | Todos os comandos |
|
|
119
|
+
| `/tips` | Mostra uma dica rotativa de segurança/UX |
|
|
119
120
|
| `/users` | Quem está online (com away/status) |
|
|
120
121
|
| `/msg <nick> <texto>` | Mensagem privada (DM) |
|
|
121
122
|
| `/reply <texto>` | Responde citando a última mensagem recebida |
|
|
@@ -156,6 +157,8 @@ quem você quiser puxar pra conversa.
|
|
|
156
157
|
| `/receipts [on\|off]` | Envio de confirmação de leitura (✓✓) |
|
|
157
158
|
| `/audit [n]` | Log de auditoria local |
|
|
158
159
|
|
|
160
|
+
Um **✓** verde ao lado de um nome indica um peer verificado por SAS; um **✗** vermelho sinaliza uma chave que mudou desde a última vez (possível MITM). Um peer novo não-verificado dispara um lembrete único para `/verify`.
|
|
161
|
+
|
|
159
162
|
</details>
|
|
160
163
|
|
|
161
164
|
<details>
|
package/package.json
CHANGED
|
@@ -908,6 +908,7 @@ export class ChatController {
|
|
|
908
908
|
case '/help':
|
|
909
909
|
this.#ui.addInfoMessage('Available commands:');
|
|
910
910
|
this.#ui.addInfoMessage(' /help - Show this help');
|
|
911
|
+
this.#ui.addInfoMessage(' /tips - Show a security/UX tip');
|
|
911
912
|
this.#ui.addInfoMessage(' /users - List online users');
|
|
912
913
|
this.#ui.addInfoMessage(' /msg <nick> <text> - Send a private message (DM)');
|
|
913
914
|
this.#ui.addInfoMessage(' /reply <text> - Reply to the last received message');
|
|
@@ -925,6 +926,7 @@ export class ChatController {
|
|
|
925
926
|
this.#ui.addInfoMessage(' /verify-confirm <nick> - Confirm peer verification');
|
|
926
927
|
this.#ui.addInfoMessage(" /trust <nick> - Accept a peer's new key");
|
|
927
928
|
this.#ui.addInfoMessage(" /trustlist - Peers' trust status");
|
|
929
|
+
this.#ui.addInfoMessage(' (✓ = verified peer · ✗ = key changed — shown next to a name)');
|
|
928
930
|
this.#ui.addInfoMessage(' /clear - Clear the chat');
|
|
929
931
|
this.#ui.addInfoMessage(' /file <path> - Send a file (max 50MB)');
|
|
930
932
|
this.#ui.addInfoMessage(
|
|
@@ -677,6 +677,7 @@ export class P2PChatController {
|
|
|
677
677
|
case '/help':
|
|
678
678
|
this.#ui.addInfoMessage('Available commands (P2P mode):');
|
|
679
679
|
this.#ui.addInfoMessage(' /help - Show this help');
|
|
680
|
+
this.#ui.addInfoMessage(' /tips - Show a security/UX tip');
|
|
680
681
|
this.#ui.addInfoMessage(' /users - List connected peers');
|
|
681
682
|
this.#ui.addInfoMessage(' /msg <nick> <text> - Send a private message (DM)');
|
|
682
683
|
this.#ui.addInfoMessage(' /fingerprint - Show your fingerprint');
|
|
@@ -685,6 +686,7 @@ export class P2PChatController {
|
|
|
685
686
|
this.#ui.addInfoMessage(' /verify-confirm <nick> - Confirm verification');
|
|
686
687
|
this.#ui.addInfoMessage(' /trust <nick> - Accept a new key');
|
|
687
688
|
this.#ui.addInfoMessage(' /trustlist - Trust status');
|
|
689
|
+
this.#ui.addInfoMessage(' (✓ = verified peer · ✗ = key changed — shown next to a name)');
|
|
688
690
|
this.#ui.addInfoMessage(' /clear - Clear the chat');
|
|
689
691
|
this.#ui.addInfoMessage(' /file <path> - Send a file (max 50MB)');
|
|
690
692
|
this.#ui.addInfoMessage(
|