Here is every piece of cryptography in the app.
Named, versioned, and traced to the RFC it comes from. Encryption protects your credentials and your sessions between your device and the servers you choose. The app operates no relay, no private network, and no SSH infrastructure of ours.
Describes Outrigger SSH 1.0.1; items marked 1.1 apply to version 1.1 and later · last updated 21 September 2026
Data flows and how each one is protected
| flow | endpoints | protection |
|---|---|---|
| Terminal session | your device ↔ the SSH server you chose | SSH v2 · ECDH/X25519 key negotiation · AES‑GCM |
| Authentication | your device → your SSH server | password inside the encrypted SSH channel, or an Ed25519 / ECDSA P‑256 signature |
| tmux commands (1.1) | your device → the SSH server you chose | additional channels on the already-authenticated SSH connection · no new login · each command is listed on the privacy page |
| File transfer (1.2) | your device ↔ the SSH server you chose | SFTP on an additional channel of the already-authenticated SSH connection · no new login · only when you send or get a file |
| Local secrets | never leave the device | iOS Keychain · P‑256 ECIES with SHA‑256 and AES‑GCM when the Secure Enclave is present |
| Optional ✦ assist | your device ↔ the AI provider you configured | HTTPS/TLS from the iOS stack · explicit consent before any context is sent · off by default |
The full inventory
| purpose | algorithms | size / hash | implementation |
|---|---|---|---|
| Session confidentiality + integrity | [email protected], [email protected] | 256 or 128‑bit key · 128‑bit GCM tag | SwiftNIO SSH / Swift Crypto |
| Key exchange | curve25519-sha256, [email protected] | X25519 · SHA‑256 | SwiftNIO SSH / Swift Crypto |
| Key exchange (NIST) | ecdh-sha2-nistp256/384/521 | P‑256/SHA‑256 · P‑384/SHA‑384 · P‑521/SHA‑512 | SwiftNIO SSH / CryptoKit |
| Server host keys | ssh-ed25519, ecdsa-sha2-nistp256/384/521 | Ed25519 · P‑256/P‑384/P‑521 | SwiftNIO SSH / CryptoKit |
| Client authentication | ssh-ed25519, ecdsa-sha2-nistp256 | Ed25519 · P‑256 | CryptoKit — P‑256 can live entirely in the Secure Enclave |
| Host-key fingerprint | SHA‑256 | 256‑bit | CryptoKit |
| Local secret wrapping | ECIES, cofactor variable‑IV X9.63 | P‑256 key · SHA‑256 · AES‑GCM | Security.framework + Secure Enclave |
| Optional HTTPS (✦ assist) | TLS, suites negotiated by iOS | per Apple system policy | URLSession / iOS TLS stack |
SSH v2 — RFC 4251 · 4253 · 4254
SFTP — draft-ietf-secsh-filexfer-02 (version 3, as OpenSSH)
AES-GCM for SSH — RFC 5647 + OpenSSH variants
ECDH for SSH — RFC 5656 · Curve25519 — RFC 8731
Ed25519 for SSH — RFC 8709 · ECDSA — RFC 5656
SHA-2 — FIPS 180-4 · AES — FIPS 197 · GCM — NIST SP 800-38D
Who implements it
None of the cryptography is ours. The SSH protocol, negotiation, and transport protection come from Apple's open-source SwiftNIO SSH (0.15.0) over SwiftNIO (2.102.0), with primitives from Swift Crypto (4.5.2) and the CryptoKit / Security.framework that ships with iOS. Terminal emulation is SwiftTerm (1.20.0), which has no cryptographic role. All of it is code you can read.
Remote terminal output is treated as untrusted input before it reaches the emulator: Outrigger removes remote image and clipboard control strings, bounds other operating-system controls, and does not advertise sixel support. This prevents a server from using unused graphics protocols for excessive memory allocation.
If a future version materially changes any algorithm or function on this page, the page and any required regulatory filings will change with it.
Keys and secrets
Host verification
On first contact with a server, Outrigger computes the SHA-256 fingerprint of the presented host key and stops the negotiation before any credential is sent. You approve that fingerprint explicitly or nothing happens. Every later connection requires an exact match; a changed key blocks the connection and puts a warning in front of you.
In version 1.1 and later, a lock in the title bar shows the connection details: the address actually connected to, the port, the transport, the verified host-key fingerprint, and the authentication method.
Verify it yourself
The app is closed source, but the promise on this page is about the network — and the network is observable no matter what the source says. You don't have to take our word for what leaves your phone. You can watch it, and what you watch is the running app, not a repository that may or may not match the binary.
The complete list of places Outrigger can ever send data:
Three ways to confirm that's all there is, easiest first:
Any of them shows the same short list: your servers, your AI provider if you opted in, and Apple system services such as StoreKit. There is no Outrigger backend, analytics endpoint, ad network, or account service.