Skip to main content

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., 0x43 for 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 a and public key B
  • 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

TermDefinition
QueueA unidirectional message channel on an SMP server
ConnectionA pair of queues enabling bidirectional communication
AgentThe SimpleX agent managing connections and encryption
RecipientThe party that created a queue and receives messages
SenderThe party that sends messages to a queue
SMP ServerA relay server hosting message queues
Contact QueueThe initial queue created by an invitation
Reply QueueQueue created by the joiner for the return direction
Invitation LinkOut-of-band URI containing queue address and keys