Skip to content

chore(mobile): declare non-exempt encryption usage in Info.plist#1474

Merged
wesbillman merged 1 commit into
mainfrom
export-compliance-plist
Jul 2, 2026
Merged

chore(mobile): declare non-exempt encryption usage in Info.plist#1474
wesbillman merged 1 commit into
mainfrom
export-compliance-plist

Conversation

@wesbillman

Copy link
Copy Markdown
Collaborator

Summary

Sets ITSAppUsesNonExemptEncryption to true in the iOS Info.plist for App Store export compliance.

The Flutter app implements NIP-44 v2 encryption in-app (mobile/lib/shared/crypto/nip44.dart: ChaCha20 + HMAC-SHA256 + HKDF via pointycastle, plus secp256k1 ECDH) rather than relying solely on Apple's OS encryption. Per Apple's export compliance rules, that makes the app's encryption non-exempt, so the key must be true. All algorithms are published standards (IETF/SECG), so the app classifies as mass-market 5D992.c under License Exception ENC §740.17(b)(1) — no CCATS or document uploads required; the remaining compliance answers are given once in App Store Connect.

Setting the key in the plist answers the encryption prompt up front so TestFlight and App Store submissions aren't blocked per build.

Test plan

  • Pre-commit and pre-push hooks pass (fmt, analyze, unit tests)
  • Confirm next TestFlight upload no longer prompts for encryption compliance

🤖 Generated with Claude Code

The Flutter app implements NIP-44 v2 (ChaCha20 + HMAC-SHA256 + HKDF via
pointycastle, secp256k1 ECDH) in-app rather than using Apple's OS
encryption, so ITSAppUsesNonExemptEncryption must be true. Setting the
key here answers the export compliance prompt up front so TestFlight
and App Store submissions aren't blocked per build.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@wesbillman wesbillman merged commit 453b8b1 into main Jul 2, 2026
25 checks passed
@wesbillman wesbillman deleted the export-compliance-plist branch July 2, 2026 20:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant