Documentation
¶
Overview ¶
Jingle <-> SDP translation. This is deliberately in package main rather than in call/ or xmpp/: it's the only code that has to know both pion's SDP shapes and the XEP-0166/0167/0176/0320 XML structs, and neither of those packages may import the other (call stays decoupled from xmpp, same rule ui/crypto follow).
Only what an audio-only, rtcp-mux'd, trickle-ICE WebRTC call needs is translated today, but the content/SSRC plumbing is generalized to handle multiple m-lines (e.g. a future video content) so a second content doesn't require rewriting this file again. jingleContentsFromSDP/ sdpFromJingleContents are reused as-is for ICE restart's transport-replace/ -accept (see callsession.go's attemptICERestart/applyTransportReplace) - same offer/answer shapes, just with fresh ICE credentials.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package call is the (not yet wired up) audio-call package: Opus encode/decode, mic/speaker I/O, and a pion/webrtc peer connection for a single audio-only Jingle call.
|
Package call is the (not yet wired up) audio-call package: Opus encode/decode, mic/speaker I/O, and a pion/webrtc peer connection for a single audio-only Jingle call. |
|
Package crypto defines the e2ee seam kage's messaging path is built against.
|
Package crypto defines the e2ee seam kage's messaging path is built against. |
|
aesgcm
Package aesgcm implements XEP-0454 (OMEMO Media Sharing) file encryption using AES-256-GCM for end-to-end encrypted file sharing via HTTP Upload.
|
Package aesgcm implements XEP-0454 (OMEMO Media Sharing) file encryption using AES-256-GCM for end-to-end encrypted file sharing via HTTP Upload. |
|
gpg
Package gpg implements crypto.Encrypter by shelling out to the system gpg binary, reusing the user's existing keyring and gpg-agent for passphrases.
|
Package gpg implements crypto.Encrypter by shelling out to the system gpg binary, reusing the user's existing keyring and gpg-agent for passphrases. |
|
localstore
Package localstore provides fast, purely local at-rest encryption for message history: AES-256-GCM under a key derived from a password via Argon2id.
|
Package localstore provides fast, purely local at-rest encryption for message history: AES-256-GCM under a key derived from a password via Argon2id. |
|
omemo
Package omemo implements omemo.Store (github.com/jim-ww/omemo-go) backed by kage's shared sqlite database, one Store per (account, protocol) — the upstream Store interface is single-device/single-account by design, and an account speaking both OMEMO protocols maintains two separate Store instances (see account.go's setupOmemo).
|
Package omemo implements omemo.Store (github.com/jim-ww/omemo-go) backed by kage's shared sqlite database, one Store per (account, protocol) — the upstream Store interface is single-device/single-account by design, and an account speaking both OMEMO protocols maintains two separate Store instances (see account.go's setupOmemo). |
|
Package daemon implements kage's background service: the one process per user session that owns every configured account's XMPP connection, storage, and decryption (GPG/OMEMO).
|
Package daemon implements kage's background service: the one process per user session that owns every configured account's XMPP connection, storage, and decryption (GPG/OMEMO). |
|
Package ipc is the wire protocol between the kage TUI (a thin client) and the kage background daemon (--background mode), which owns all XMPP connections, storage, and decryption.
|
Package ipc is the wire protocol between the kage TUI (a thin client) and the kage background daemon (--background mode), which owns all XMPP connections, storage, and decryption. |
|
filepicker
Package filepicker provides a file picker component for Bubble Tea applications.
|
Package filepicker provides a file picker component for Bubble Tea applications. |
|
Package version holds kage's build version, set via -ldflags -X at build time (see flake.nix).
|
Package version holds kage's build version, set via -ldflags -X at build time (see flake.nix). |
|
Package xmpp wraps mellium.im/xmpp into a per-account client: dial/auth, roster fetch, sending messages, and listening for incoming stanzas.
|
Package xmpp wraps mellium.im/xmpp into a per-account client: dial/auth, roster fetch, sending messages, and listening for incoming stanzas. |