Self-hosted SSH + SFTP + RDP in a browser — MobaXterm replacement
Go to file
Vantz Stockwell eda36c937b
All checks were successful
Build & Sign Wraith / Build Windows + Sign (push) Successful in 3m3s
fix: pure Rust EC key decryption — no openssl dependency
Replaced the openssl CLI fallback with pure Rust crypto for EC private
keys in SEC1 format (-----BEGIN EC PRIVATE KEY-----). Handles PKCS#5
encrypted keys (AES-128-CBC + MD5 EVP_BytesToKey KDF) and converts to
PKCS#8 PEM that russh can parse natively.

All crypto crates (md5, aes, cbc, sec1, pkcs8) were already in the dep
tree via russh — just promoted to direct dependencies. Zero new binary
dependencies, works on Windows without openssl installed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 20:08:55 -04:00
.gitea/workflows fix: attach installer .exe to Gitea release as downloadable asset 2026-03-24 16:48:01 -04:00
docs docs: Phase 7 complete — CLAUDE.md + Go migration checklist 2026-03-17 16:48:36 -04:00
src feat: SSH key file browser — Browse button to load keys from disk 2026-03-24 19:20:00 -04:00
src-tauri fix: pure Rust EC key decryption — no openssl dependency 2026-03-24 20:08:55 -04:00
.gitignore chore: add .gitignore, remove node_modules and target from tracking 2026-03-17 15:10:00 -04:00
CLAUDE.md docs: update CLAUDE.md test count to 82 2026-03-24 18:34:03 -04:00
index.html feat: Phase 1 complete — Tauri v2 foundation 2026-03-17 15:09:41 -04:00
package-lock.json feat: Phase 1 complete — Tauri v2 foundation 2026-03-17 15:09:41 -04:00
package.json feat: Phase 1 complete — Tauri v2 foundation 2026-03-17 15:09:41 -04:00
tsconfig.json feat: Phase 1 complete — Tauri v2 foundation 2026-03-17 15:09:41 -04:00
tsconfig.node.json feat: Phase 1 complete — Tauri v2 foundation 2026-03-17 15:09:41 -04:00
vite.config.ts feat: Phase 1 complete — Tauri v2 foundation 2026-03-17 15:09:41 -04:00