Skip to content

Add SSH key authentication for SFTP connections - #1807

Open
anilbeesetti wants to merge 27 commits into
mainfrom
codex/sftp-ssh-key-auth
Open

Add SSH key authentication for SFTP connections#1807
anilbeesetti wants to merge 27 commits into
mainfrom
codex/sftp-ssh-key-auth

Conversation

@anilbeesetti

Copy link
Copy Markdown
Owner

Summary

  • add SFTP connections with password or SSH private-key authentication
  • securely stage, persist, replace, reconcile, and delete imported private keys
  • add strict SHA-256 TOFU host-key verification with trusted/presented mismatch details
  • add seekable SFTP streaming, Android SSHJ crypto-provider support, Room v8 migration, and connection UI

SSH-key authentication is intentionally scoped to SFTP. SMB, FTP, and WebDAV continue using their existing password authentication.

Fixes #1806

Testing

  • ./gradlew test ktlintCheck assembleDebug --rerun-tasks --console=plain — 516 tasks passed
  • :feature:network:testDebugUnitTest :feature:network:lintDebug ktlintCheck
  • release R8 minification passed
  • Room v7-to-v8 migration passed on a disposable emulator
  • Android instrumentation passed for X25519, ECDSA host-key decoding, and Ed25519 support without replacing Android's platform BC provider
  • disposable API 36 emulator against an ECDSA-only, Curve25519 SFTP server:
    • password reject/trust/save
    • unencrypted Ed25519 key
    • encrypted Ed25519 key with missing, incorrect, and correct passphrases
    • nested browsing and playback launch
    • process relaunch persistence
    • rotated-host mismatch showing both fingerprints with no Trust action
    • key-auth connection deletion

Seek interaction was not meaningful with the short disposable video fixture; playback launch and rendered output were verified.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FETURE_REQUEST] SSH Key configuration for FTP

1 participant