Terminology and Conventions
Draft
This section is under construction.
RFC 2119 Keywords
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
Notation Conventions
Byte Notation
- Hexadecimal bytes:
0xNN(e.g.,0x43for ASCII 'C') - Byte sequences: space-separated hex (e.g.,
43 20 00 02) - ASCII characters in single quotes when relevant:
'C'=0x43
Concatenation
The || operator denotes byte concatenation:
A || B = bytes of A followed by bytes of B
Length Notation
- BE16: 2-byte unsigned integer, big-endian byte order
- BE32: 4-byte unsigned integer, big-endian byte order
Cryptographic Notation
- DH(a, B): X25519 or X448 Diffie-Hellman of private key
aand public keyB - HKDF(salt, ikm, info, len): HKDF-SHA512 key derivation
- AES-GCM(key, iv, aad, plaintext): AES-256-GCM authenticated encryption
- crypto_box(key, nonce, plaintext): NaCl XSalsa20-Poly1305
Glossary
| Term | Definition |
|---|---|
| Queue | A unidirectional message channel on an SMP server |
| Connection | A pair of queues enabling bidirectional communication |
| Agent | The SimpleX agent managing connections and encryption |
| Recipient | The party that created a queue and receives messages |
| Sender | The party that sends messages to a queue |
| SMP Server | A relay server hosting message queues |
| Contact Queue | The initial queue created by an invitation |
| Reply Queue | Queue created by the joiner for the return direction |
| Invitation Link | Out-of-band URI containing queue address and keys |