Add Android HPKE sealing, bounded native key-file import, guarded export, explicit cloud-key selection, and retry-safe self-hosted setup. Route hosted pairing through account admission and preserve first-successful batch landing. Keep account eligibility failures and setup progress on the entry surface. Co-authored-by: Brain <1a02c72794dcd0f07058a353bc3a81f4028b8c77c92c87fce6d5c8b85970a20b@buzz.block.builderlab.xyz> Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Android HPKE verification
Activate the repository Hermit environment and use a Gradle-supported JDK (21). The Android SDK and Flutter dependencies must already be installed.
mobile/android/gradlew -p mobile/android :app:testDebugUnitTest \
--tests 'xyz.block.buzz.mobile.HostedHpke*Test'
python3 mobile/tool/hpke_android/check_interop.py
The focused JVM tests cover the published RFC 9180 P-256/HKDF-SHA256/AES-256-GCM base-mode known-answer vector, point/input rejection, fresh encapsulation, registered Flutter codec dispatch, plaintext buffer clearing and redacted errors.
The macOS interoperability check invokes the actual compiled Android sender
with the repository's public test-only backend fixture. Apple CryptoKit decrypts
its output with the fixture recipient key; changed ciphertext and AAD must fail.
--classes PATH selects separately compiled classes, including isolated mutation
builds. Never supply real identities or backups to these verification tools.
These checks do not prove the full hosted network flow, Android document-picker UI, or Android platform-provider behavior; those need device workflow evidence.