Batayan ti pannakaammo Iti sirok ti hood
Protocol ken dagiti pasamak
Ti aktual nga ikabil ti Nymchat iti alambre, para iti siasinoman a mangbangon a maibusor iti dayta, . panag-audit iti dayta, wenno panagbasa kadagiti pasamak manipud iti sabali a kliyente ti Nostr.
Daytoy a panid ket naipatarus babaen ti makina para iti kombeniente. Ti Ingles nga orihinal ti bersion nga agaplikar.
Dagiti kita ti pasamak
| Kita | Nausar para iti | Dagiti Pakaammo |
|---|---|---|
0 | Metadata ti profile | Standard Nostr profile: nagan, ladawan, bandera, maipapan iti, . lud16. |
5 | Dagiti kiddaw a panangikkat | NIP-09 nga. |
7 | Dagiti Reaksion | NIP-25, nga addaan iti a ['k', originalKind] tag isu a ti reaksion ket maipila a maibusor iti umno a kita ti kanal. |
13 | Marka | Ti tengnga a suson ti mensahe ti NIP-17. |
14 | Pribado a mensahe ti damag | Di napirmaan, ken pulos a di naipablaak a bukodna. |
1059 | Gift wrap | NIP-59 nga. No ania ti aktual a makadanon iti relay para kadagiti pribado a mensahe ken group chat. |
1984 | Panagreport | NIP-56 nga. |
9734 / 9735 | Zap request ken zap ti resibo | NIP-57 nga. |
10030 | Dagiti listaan ti kostumbre nga emoji pack | NIP-30 nga. |
20000 | Mensahe ti kanal ti Geohash | Ephemeral, nai-tag ['g', geohash]. |
23333 | Nainaganan a mensahe ti channel | Ephemeral, nai-tag ['d', channel]. |
24420 / 24421 | Public typing indicators ken dagiti resibo ti panagbasa | Nymchat-espesipiko, para kadagiti publiko a kanal. |
25051 / 25052 | Peer-to-peer a panagsenyas ken kasasaad ti panagiyakar ti file | Espesipiko ti Nymchat. |
30030 | Dagiti kostumbre nga emoji set | NIP-30 nga. |
30078 | Datos ti aplikasion | NIP-78 nga. Ag-sync dagiti surbey, ken dagiti na-encrypt a setting. |
69420 | Pribado a mabasa dagiti resibo ken kasasaad ti pannakaited | Nymchat-specific, awit kas damag iti uneg ti gift wrap. Maysa a naisina a kita manipud 14 inggagara, isu a dagiti dadduma a kliyente ti NIP-17 ket dida mangited kadagiti blangko a direkta a mensahe para iti tunggal maysa a resibo. |
NIPs Nymchat nga implementaren
| NIP | No ania ti itedna ken ni Nymchat |
|---|---|
| NIP-07 nga | Aglogin babaen ti browser extension. |
| NIP-09 nga | Dagiti kiddaw a panangikkat. |
| NIP-13 nga | Pammaneknek ti trabaho. Dagiti rumrummuar a mensahe ket mamina iti di kumurang a 16 a bit. |
| NIP-17 nga | Pribado a direkta a mensahe, ken ti nakaibatayan dagiti group chat. |
| NIP-25 | Dagiti Reaksion. |
| NIP-30 nga | Kostumbre nga emoji. |
| NIP-40 nga | Dagiti timestamp ti panagleppas — dagiti agpukaw a mensahe. |
| NIP-44 nga | Bersioned encryption, maus-usar para kadagiti seal, wraps ken settings sync. |
| NIP-46 nga | Remote nga panagpirma — . bunker://. |
| NIP-56 nga | Panagreport. |
| NIP-57 nga | Kimat ti zaps. |
| NIP-59 nga | Dagiti balkot ti regalo. |
| NIP-78 nga | Arbitrary nga datos ti aplikasion. |
| NIP-98 nga | HTTP auth, para kadagiti naisangayan a puntos ti panagpatingga. |
Kriptograpia
| Sadinno | Ania |
|---|---|
| Kinasiasino ken pirma | secp256k1 nga addaan kadagiti pirma ti Schnorr (BIP-340), a kas ti Nostr ket mangikeddeng. |
| Pribado a mensahe ken group chat | NIP-44 v2: ECDH iti secp256k1, HKDF-SHA256, ChaCha20 nga addaan iti HMAC-SHA256, ken padding isu a ti kaatiddog ti ciphertext ket saan a mangted ti kaatiddog ti mensahe iti adayo. |
| Dagiti sesion ti Bluetooth mesh | Arimbangaw XX — X25519, ChaCha20-Poly1305 (IETF), Ed25519 para kadagiti pirma ti anunsio, SHA-256 ken HMAC iti baba. |
| Kinasiasino iti panaginana | AES-GCM-256 nga. Ti tulbek ket naggapu manipud iti PBKDF2-SHA256 iti 310,000 nga iterasionda para iti password wenno PIN, wenno manipud iti WebAuthn PRF output babaen ti HKDF-SHA256 para iti passkey wenno biometric. |
| Tawag ken panagyakar ti file | Ti bukod a DTLS-SRTP ti WebRTC, a nakinegosio babaen ti NIP-17-nabalkot a panagsenyas. |
| Kinarandom | Ti plataporma CSPRNG iti intero — tulbek, nonces, ken ti gift-wrap timestamp jitter. |
Panangsalaknib ti metadata
Dua a detalye iti dalan ti gift-wrap ti maikari a awagan, gapu ta isuda ti mangisina iti NIP-59 manipud iti "na-encrypt, ngem nalawag manipud kenka agingga kadakuada":
- Tunggal wrap ket pirmaan ti a maminsan laeng a tulbek napataud para laeng iti dayta a mensahe, . isu nga awan ti dua a wraps a makibingbingay iti maysa a nangipatulod.
- Tunggal wrap's
created_atket naiparna a na-backdated agingga iti dua oras nga agus-usar ti CSPRNG, isu a saan a mailinya dagiti oras ti panangipatulod ken panangawat.
Dagiti chat ti grupo ket mangnayon iti agturong nga ephemeral umawat tulbek iti rabaw dayta — kitaen No kasano ti panagandar ti group encryption.
Dagiti crypto primitives ket adda iti js/nym-crypto.js ken
js/modules/key-vault.js iti web app, ken iti baba
android-ios-app/lib/core/crypto/ ken
lib/services/mesh/noise/ iti Flutter app. Ti
pagidulinan
ket AGPL-3.0 ken kompleto — awan ti naserraan a paset a mangala iti panagtalek.