Building from source on Ubuntu 26 (`cargo build` / `pnpm tauri build`), the
helper panics the first time it tries to build a TLS `ServerConfig`:
thread 'tokio-rt-worker' panicked at rustls-0.23.44/src/crypto/mod.rs:249:
Could not automatically determine the process-level CryptoProvider from
Rustls crate features. Call CryptoProvider::install_default() before this
point...
`cargo tree -p unlocker-helper -i rustls -e features` confirms `aws-lc-rs` is
the only rustls crypto backend resolved anywhere in the dependency tree (via
reqwest/hyper-rustls/tokio-rustls/axum-server) — `ring` doesn't appear at
all — so nothing is ambiguous about which provider to use, but nothing ever
calls `install_default()`.
Fix: add `rustls::crypto::aws_lc_rs::default_provider().install_default()`
near the top of `main()` in `crates/unlocker-helper/src/main.rs`, and add
`rustls` as a direct dependency of `unlocker-helper` in its `Cargo.toml`
(currently only transitive, so the crate can't even reference it).
Building from source on Ubuntu 26 (`cargo build` / `pnpm tauri build`), the
helper panics the first time it tries to build a TLS `ServerConfig`:
thread 'tokio-rt-worker' panicked at rustls-0.23.44/src/crypto/mod.rs:249:
Could not automatically determine the process-level CryptoProvider from
Rustls crate features. Call CryptoProvider::install_default() before this
point...
`cargo tree -p unlocker-helper -i rustls -e features` confirms `aws-lc-rs` is
the only rustls crypto backend resolved anywhere in the dependency tree (via
reqwest/hyper-rustls/tokio-rustls/axum-server) — `ring` doesn't appear at
all — so nothing is ambiguous about which provider to use, but nothing ever
calls `install_default()`.
Fix: add `rustls::crypto::aws_lc_rs::default_provider().install_default()`
near the top of `main()` in `crates/unlocker-helper/src/main.rs`, and add
`rustls` as a direct dependency of `unlocker-helper` in its `Cargo.toml`
(currently only transitive, so the crate can't even reference it).