5fec0b53d9
Merge remote-tracking branch 'origin/feat/client/socks5-server'
2026-06-02 10:49:20 +00:00
2efd4cf7c5
Implement SOCKS5 server: local proxy forwarding through SSH channels
...
Convert socks5.rs to directory module with protocol parsing and server
implementation. Socks5Server binds to configurable address (default
127.0.0.1:1080), handles SOCKS5 handshake (no-auth), parses IPv4/IPv6/domain
addresses, and proxies bidirectionally via SSH direct_tcpip channels.
Domain names sent unresolved (SOCKS5h) to prevent DNS leaks (ADR-006).
No logging of request targets per privacy requirements.
2026-06-02 10:49:07 +00:00
4e4afd5020
Merge remote-tracking branch 'origin/feat/client/port-forwarding'
...
# Conflicts:
# crates/wraith-core/src/client/mod.rs
# crates/wraith-core/src/lib.rs
2026-06-02 10:46:54 +00:00
7336c0f13c
feat(client): implement port forwarding — local (-L) and remote (-R) forwards
...
- PortForwardSpec parses -L/-R spec strings: bind_addr:bind_port:target_host:target_port
- LocalForwarder binds TcpListener, accepts connections, opens SSH direct-tcpip channel, proxies bidirectionally
- RemoteForwarder sends tcpip_forward request, handles forwarded-tcpip channel opens, connects local target, proxies bidirectionally
- Both forwarders run concurrently with SOCKS5 server via Arc<Mutex<Handle>>
- Connection errors close individual channels without affecting other forwards or SSH session
- ForwardError type added with display and source chaining tests
- Unit tests: spec parsing, local forward bind/accept, remote forward proxy bidirectional
2026-06-02 10:45:43 +00:00
975778bfb1
Merge remote-tracking branch 'origin/feat/client/channel-manager'
2026-06-02 10:44:32 +00:00
d6a49a07d7
implement ChannelManager with SSH session management, channel ops, and reconnection
2026-06-02 10:44:21 +00:00
24b92227e7
Implement ServerHandler with auth delegation and channel dispatch
...
Convert server.rs to directory module (server/mod.rs + server/handler.rs).
ServerHandler implements russh::server::Handler with:
- auth_publickey() delegating to ServerAuthConfig with structured logging
- channel_open_direct_tcpip() routing wraith-* prefix to internal handler,
stub for regular TCP proxy
- ProxyConfig/ProxyMode types for outbound proxy configuration
- Unit tests for auth delegation, reserved destination routing, and
unknown channel type rejection
2026-06-02 10:40:05 +00:00
bf8233af61
fix: add rand dev-dep, install rustls CryptoProvider in TLS tests, fix iroh OsRng import
2026-06-02 10:32:29 +00:00
b3589a038e
Merge remote-tracking branch 'origin/feat/transport/iroh-transport' into transport/trait-and-types
...
# Conflicts:
# Cargo.lock
# crates/wraith-core/Cargo.toml
2026-06-02 10:30:12 +00:00
c3f5f3f504
Implement IrohTransport and IrohAcceptor (feature-gated iroh)
...
Add iroh QUIC P2P transport using tokio::io::join for stream duplexing
per ADR-003. Default relay is n0's https://relay.iroh.network/ (ADR-009).
Proxy URL passed to Endpoint::builder (ADR-010). Integration test marked
#[ignore] for CI since it requires iroh relay connectivity.
2026-06-02 10:29:40 +00:00
b559e335d3
Implement server-side auth with ServerAuthConfig (Ed25519 keys + cert-authority)
2026-06-02 10:21:28 +00:00
1054e3907e
Merge remote-tracking branch 'origin/feat/transport/tls-transport' into transport/trait-and-types
...
# Conflicts:
# crates/wraith-core/src/transport/tls.rs
2026-06-02 10:09:12 +00:00
f6d4705632
Implement TlsTransport and TlsAcceptor with tokio-rustls (feature-gated tls)
2026-06-02 10:08:29 +00:00
4052c4f19e
fix: add ssh-key dev-dependency for server_auth tests
2026-06-02 10:08:11 +00:00
eb032c87f1
Implement client-side SSH auth handler with ClientAuthConfig and ClientHandler
2026-06-02 10:03:56 +00:00
b4f4f2ed8c
Implement SSH key material loading with KeySource, load_private_key, load_public_keys, and CertAuthorityEntry
2026-06-02 09:52:39 +00:00
b157ab3799
Implement TcpTransport and TcpAcceptor for plain TCP connections
2026-06-02 09:23:35 +00:00
dddc6d7a4c
Define Transport trait, TransportAcceptor trait, TransportInfo, and TransportKind types
2026-06-02 09:17:50 +00:00
56d032afdb
Define error types for transport, auth, channel, and config layers
2026-06-02 09:16:23 +00:00
2bc15f1035
Initialize Cargo workspace with wraith-core, wraith, and wraith-napi crates
...
- Workspace root Cargo.toml with three crate members
- wraith-core: library with feature flags (tls, iroh, acme), core deps (russh, tokio, tracing, anyhow, thiserror, tokio-util), module skeleton (transport, client, server, auth, socks5, error)
- wraith: binary crate depending on wraith-core with clap derive
- wraith-napi: cdylib crate depending on wraith-core, napi, napi-derive
- .gitignore for target/ and node_modules/
2026-06-02 09:14:40 +00:00