All checks were successful
Demo images / Build & push demo images (push) Successful in 2m56s
Pins fips to Zazawowow/fips-native fast-join-pinned (upstream pinned rev 46494a74 + one patch: pending/queued discovery lookups re-fire the moment the tree parent lands instead of riding out timeouts started before the mesh could answer). Measured: session lands 225ms after the route appears; fresh-join route wait no longer stacks doomed lookups. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
49 lines
2.1 KiB
TOML
49 lines
2.1 KiB
TOML
# Embedded FIPS mesh node for the Archipelago companion app.
|
|
#
|
|
# Built for Android via cargo-ndk (see Android/app/build.gradle.kts, task
|
|
# buildRustArm64) into app/src/main/jniLibs/arm64-v8a/libarchy_fips_core.so.
|
|
# Also builds on the host so `cargo test` covers the non-JNI logic.
|
|
#
|
|
# `fips` is pinned to the fips-native fork rev that this integration was
|
|
# developed against — the fork carries Android support upstream lacks
|
|
# (Tun::from_fd for a VpnService-owned fd, cfg(target_os = "android") paths).
|
|
# Override with a local checkout when hacking on fips itself:
|
|
# CARGO_NET_OFFLINE=false cargo ndk ... --config 'patch."https://github.com/9qeklajc/fips-native".fips.path="/path/to/fips-native/fips"'
|
|
[package]
|
|
name = "archy-fips-core"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
license = "MIT"
|
|
publish = false
|
|
|
|
[lib]
|
|
name = "archy_fips_core"
|
|
# rlib for host tests; cdylib for the Android shared library.
|
|
crate-type = ["lib", "cdylib"]
|
|
|
|
[dependencies]
|
|
# default-features drops the ratatui TUI; tun-support enables Node::start_with_tun_fd.
|
|
# Zazawowow/fips-native `fast-join-pinned` = upstream pinned rev 46494a74 +
|
|
# discovery re-fire on topology change (fresh 5G join: first route no longer
|
|
# waits out doomed pre-join lookups). Upstream 9qeklajc denies pushes.
|
|
fips = { git = "https://github.com/Zazawowow/fips-native", rev = "07d21d4482be56b14295d2525e41f8386d1bfe6f", default-features = false, features = ["tun-support"] }
|
|
anyhow = "1.0"
|
|
serde_json = "1.0"
|
|
hex = "0.4"
|
|
# OS CSPRNG for identity generation (crypto rule: no thread-local RNG for keys).
|
|
getrandom = "0.2"
|
|
tokio = { version = "1", features = ["rt-multi-thread", "sync", "time", "macros"] }
|
|
tracing = "0.1"
|
|
# fcntl: force the VpnService TUN fd into blocking mode (see mesh::start).
|
|
libc = "0.2"
|
|
|
|
# The JNI surface only exists on Android; host builds skip it and drive the
|
|
# mesh module directly (tests).
|
|
[target.'cfg(target_os = "android")'.dependencies]
|
|
jni = "0.21"
|
|
# Bridge `tracing` (ours + fips) to logcat: `adb logcat -s archy-fips`.
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
|
paranoid-android = "0.2"
|
|
|
|
[workspace]
|