mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-05-07 02:09:06 +00:00
feat(web): implement secure core-web tunnel with Noise protocol (#1976)
Implement end-to-end encryption for core-web connections using the Noise protocol framework with the following changes: Client-side (easytier/src/web_client/): - Add security.rs module with Noise handshake implementation - Add upgrade_client_tunnel() for client-side handshake - Add Noise frame encryption/decryption via TunnelFilter - Integrate GetFeature RPC for capability negotiation - Support secure_mode option to enforce encrypted connections - Handle graceful fallback for backward compatibility Server-side (easytier-web/): - Accept Noise handshake in client_manager - Expose encryption support via GetFeature RPC The implementation uses Noise_NN_25519_ChaChaPoly_SHA256 pattern for encryption without authentication. Provides backward compatibility with automatic fallback to plaintext connections.
This commit is contained in:
@@ -472,11 +472,17 @@ async fn init_web_client(app: AppHandle, url: Option<String>) -> Result<(), Stri
|
||||
|
||||
let hooks = Arc::new(manager::GuiHooks { app: app.clone() });
|
||||
|
||||
let web_client =
|
||||
web_client::run_web_client(url.as_str(), None, None, instance_manager, Some(hooks))
|
||||
.await
|
||||
.with_context(|| "Failed to initialize web client")
|
||||
.map_err(|e| format!("{:#}", e))?;
|
||||
let web_client = web_client::run_web_client(
|
||||
url.as_str(),
|
||||
None,
|
||||
None,
|
||||
false,
|
||||
instance_manager,
|
||||
Some(hooks),
|
||||
)
|
||||
.await
|
||||
.with_context(|| "Failed to initialize web client")
|
||||
.map_err(|e| format!("{:#}", e))?;
|
||||
*web_client_guard = Some(web_client);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user