Skip to content

Fix remote Anisette client identity after 2FA (-80046) - #304

Closed
2foil wants to merge 1 commit into
claration:mainfrom
2foil:fix/auth-80046
Closed

2foil wants to merge 1 commit into
claration:mainfrom
2foil:fix/auth-80046

Conversation

@2foil

@2foil 2foil commented Oct 24, 2026

Copy link
Copy Markdown

Apple ID sign-in in v2.7.1 can fail with Authentication SRP error -80046 after a valid two-factor code is entered. Although main now defaults to a Mac Anisette server, AnisetteClient::new still replaces the server's /v3/client_info response with the hardcoded Windows/iTunes identity. This pairs the remote provider's authentication data with a different client identity.

Preserve the server-provided client identity for provisioning and authentication requests. Use a shared mac_anisette_state.plist filename so existing provisioning state is not reused after the provider/identity change, update the Settings reset action, and ignore the new state file in Git.

The production fix follows the approach proposed in #301 and discussed in #298. This PR adds offline regression coverage, explicit test feature dependencies, and Windows validation. The default server URL is already present in main; this PR does not change it.

Validation

  • The reporter confirmed that the patched v2.7.1 Windows x64 build signs in successfully after the original build failed at 2FA with -80046.
  • The v2.7.1 Windows x64 Release build passed: cargo build --locked --release -j 8 -p plumeimpactor --target x86_64-pc-windows-gnu.
  • After rebasing onto main, all three offline regression tests passed: cargo test --locked -j 8 -p plume_core -p omnisette --features plume_core/tweaks --lib -- --skip fetch_anisette. The two existing live Anisette tests are excluded by this filter.
  • The rebased Windows GUI passes cargo check --locked --release -j 8 -p plumeimpactor --target x86_64-pc-windows-gnu.
  • Restoring the original Windows identity override in an isolated copy makes the new HTTP fixture test fail with the expected Windows-versus-Mac identity assertion.
  • The changed Rust files pass rustfmt; git diff --check passes.

The local SSC provider path is unchanged. Remote users re-provision once; existing account and certificate files are not removed. Actual macOS/Linux sign-in has not been tested for this PR.

AI assistance

This patch and PR description were prepared with Codex assistance. The reporter manually tested the Windows build and confirmed successful sign-in. This disclosure is included in view of the repository's contribution policy; the code is not represented as manually authored.

Fixes #298.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] Authentication SRP error -80046 after entering 2FA code

2 participants