Best regards, Marek
========================================
06.03.2026 - UPDATE!!!
========================================
Image: https://kvc.pl/user/pages/04.repositories/15.sftpplug/images/sftplug.jpg
Secure FTP plugin (SFTP/SCP) - technical status update
I am replacing the first post with a clear technical overview of what is already implemented and stable.
Download and full technical documentation
Please use the project page as the primary source:
https://kvc.pl/repositories/sftpplug
There is a Download sftpplug.zip button at the top of that page.
The same page also contains the full technical description, architecture notes, and current refactor status.
Why this route:
- Direct forum/browser downloads can sometimes trigger false-positive reputation flags in AV/EDR or browser security mechanisms.
- Using the official project page as the canonical entry point reduces confusion and keeps release + documentation in one place.
Transfer and file operations
- Native SFTP and SCP support.
- Download/upload with resume logic in SFTP path.
- Shell transfer fallback for restricted hosts (when SFTP subsystem is blocked and SCP is limited/unavailable).
- Remote permissions/time operations (`chmod`, `touch`) including shell-assisted paths in SCP mode.
- Remote checksum support (MD5/SHA1/SHA256/SHA512) with parsed command output.
- Password authentication.
- Keyboard-interactive authentication.
- Public key authentication (`.pem`, `.ppk`, optional `.pub`).
- Pageant agent support.
- Native PPK v2/v3 conversion path (without external puttygen dependency in normal flow).
- Session import from PuTTY: `HKCU\Software\SimonTatham\PuTTY\Sessions`
- Session import from WinSCP: `HKCU\Software\Martin Prikryl\WinSCP 2\Sessions`
- Imported sessions are converted into plugin INI entries.
- Proxy support: HTTP CONNECT / SOCKS4 / SOCKS4a / SOCKS5.
- IPv4 / IPv6 modes.
- If "Protect password with password manager" is enabled, password is stored via TC master-password API (`CryptProc`) and INI contains marker: ``.
Code: Select all
password=! - If that mode is not used, plugin stores password with Windows DPAPI (`dpapi:` prefix).
- Legacy XOR is kept read-only for backward compatibility with old INI entries.
This path is intended for shell-only/restricted servers.
Download
- Primary shell read path: `cat`.
- Fallback read path: `base64` stream decode.
- Implemented as streaming/on-the-fly processing (no full file buffering in RAM).
- Chunked `base64` upload via shell command pipeline.
- Current safe default chunk size is conservative to avoid command-line truncation on restrictive shells.
- Data is appended server-side in chunks and reconstructed without external tools.
- libssh2 calls are isolated behind backend/session/channel abstractions.
- Resource handling is being moved to RAII patterns (`unique_ptr`, handle wrappers).
- Long legacy functions are being split into smaller units.
- UI coupling is being reduced incrementally.
- The plugin now targets modern x64 build flow.
- Main focus remains: stability first, then cleanup of legacy C-style sections.
- Shell fallback is intentionally optional and only used when enabled/needed.

