- Android/rust/archy-fips-core: leaf-only fips node as a JNI cdylib (fips pinned to the fips-native fork rev with VpnService fd support), built by gradle via cargo-ndk (arm64), tested on host - ArchyVpnService: split-tunnel VpnService routing only fd00::/8 (MTU 1280, foreground specialUse); FipsManager handles the one-time VPN consent and silent auto-start — no settings surface at all - pairing QR now fully configures the mesh: fnpub/fip/fhost/fudp/ftcp plus fanchors (the node's seed-anchor list, npub@addr/transport) so the phone can rendezvous through public anchors when the LAN endpoint is unreachable - default seed anchors gain the two dual-transport join.fips.network test anchors (23.182.128.74:443/tcp, 217.77.8.91:443/tcp); anchor adverts are Nostr kind-37195 events - device token rides the password field end-to-end: backend accepts tokens wherever it accepts the password, so scan = instant login (WebSocket auth + WebView form injection unchanged); token logins skip TOTP - ServerEntry.meshIp + IPv6-bracketed URLs; WebView retries the mesh address on main-frame errors, auto-login and origin checks honor it - companion v0.5.0 (versionCode 20), arm64 abiFilter; FipsNative.available gates everything so non-arm64 still runs as a plain companion Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
18 lines
786 B
Rust
18 lines
786 B
Rust
//! Embedded FIPS mesh node for the Archipelago companion app.
|
|
//!
|
|
//! The phone runs a real, leaf-only FIPS node in-process: Android's
|
|
//! `VpnService` owns the TUN fd (routing only `fd00::/8`, so normal traffic
|
|
//! never touches the tunnel) and hands it to [`fips::Node::start_with_tun_fd`].
|
|
//! Peering is outbound-only — the pairing QR carries the node's npub and
|
|
//! transport endpoints, and FIPS nodes accept inbound peers without prior
|
|
//! registration, so no server-side enrollment step exists.
|
|
//!
|
|
//! The JNI surface (`jni_glue`, Android-only) is deliberately tiny and
|
|
//! JSON-over-strings, mirroring the myco / nostr-vpn embedding pattern:
|
|
//! `generateIdentity`, `deriveIdentity`, `start`, `stop`, `isRunning`.
|
|
|
|
pub mod mesh;
|
|
|
|
#[cfg(target_os = "android")]
|
|
mod jni_glue;
|