UltraLocked

File Transfer

Air-Gapped QR File Transfer

Transfer files between two UltraLocked devices using animated QR codes. Completely air-gapped—works with airplane mode enabled, no network permissions needed. Fountain coding handles missed scans automatically.

How It Works

Air-gapped transfer uses a 4-phase protocol:

  1. Key Exchange — Both devices display and scan QR codes to establish encryption
  2. SAS Verification — Verbally confirm a 6-character code to prevent interception
  3. Transmission — Sender displays animated QR codes; receiver scans them
  4. Completion — File appears in receiver's vault with integrity verification

Starting a Transfer

To Send a File:

  1. Open any file in your vault
  2. Tap the Share button
  3. Select Send via QR
  4. Display your QR code for the receiver to scan

To Receive a File:

  1. Open your vault
  2. Tap Receive File
  3. Scan the sender's QR code
  4. Display your QR code for the sender to scan

SAS Verification

After key exchange, both devices display a 6-character code like A3F-7K2. This is your Short Authentication String (SAS).

You must verbally confirm these codes match.

  • If codes match: Tap Confirm to proceed
  • If codes don't match: Immediately cancel—someone may be intercepting

Always Verify Out Loud

SAS verification is your protection against man-in-the-middle attacks. Never skip this step. If someone is intercepting the transfer, they cannot fake matching codes on both devices.

Fountain Coding

Unlike traditional file transfer, UltraLocked uses fountain codes (Luby Transform) for reliability:

  • No frame ordering required — Scan QR codes in any order
  • Handles missed scans — Works with 50%+ packet loss
  • No retransmission — Just keep scanning until complete
  • Self-healing — Missed frames don't break the transfer

The sender displays animated QR codes in a loop. The receiver scans continuously until the progress bar reaches 100%. When complete, a large green checkmark appears on both devices.

Transfer Limits

| Constraint | Limit | |------------|-------| | Maximum file size | 250 KB | | Key exchange timeout | 120 seconds | | Session timeout | 10 minutes | | QR frame rate | 3 FPS |

Supported File Types

Any file under 250 KB can be transferred:

  • Text files (.txt, .json, .md)
  • Small images (.jpg, .png under 250 KB)
  • PDF documents
  • Small binary files

Encryption Details

All transfers use end-to-end encryption:

  • P-256 ECDH — Elliptic curve key exchange
  • AES-256-GCM — Authenticated encryption per frame
  • HKDF-SHA256 — Key derivation from shared secret
  • SHA-256 verification — File integrity check on receipt

Keys are ephemeral—generated fresh for each transfer and destroyed immediately after.

Troubleshooting

QR codes not scanning:

  • Ensure good lighting on the sender's screen
  • Hold devices 6-12 inches apart
  • Clean camera lens
  • Increase screen brightness

Transfer taking too long:

  • Move to better lighting
  • Reduce distance between devices
  • Keep both devices steady

Key exchange timeout:

  • Restart the transfer on both devices
  • Ensure both devices have camera permissions
  • Check that screens are clearly visible to cameras

Security Considerations

  • No network access — Transfer works in airplane mode
  • Ephemeral keys — Destroyed after transfer completes
  • Visual confirmation — Both users see transfer progress
  • Perfect Forward Secrecy — Compromise of one transfer doesn't affect others
  • Memory protection — Session keys stored in secure memory

Still have questions?

Contact Support