Skip to content

[WAL-1206] feat(wallet): support x509_hash request authentication on iOS#1940

Draft
szijpeter wants to merge 2 commits into
feature/wal-896from
fix/wal-896-ios-x509-parity
Draft

[WAL-1206] feat(wallet): support x509_hash request authentication on iOS#1940
szijpeter wants to merge 2 commits into
feature/wal-896from
fix/wal-896-ios-x509-parity

Conversation

@szijpeter

@szijpeter szijpeter commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Summary

Follow-up to #1885 that restores its disabled native iOS EHIC integration coverage. The corresponding Android scenarios are now re-enabled directly in #1885.

The iOS failure is not an intermittent EUDI verifier limitation: iOS did not advertise or authenticate the verifier's x509_hash client ID because PKIX certificate-path validation was marked unsupported. This draft implements native validation with Security.framework, updates the stale iOS EUDI trust anchor, and re-enables the native iOS EHIC scenarios.

Changes

  • validate iOS certificate paths with SecTrust, including explicit, chain-provided, and system trust anchors plus optional revocation policy
  • expose system trust-anchor support through the Kotlin/Swift bridge and Swift WalletConfiguration
  • add deterministic app-hosted XCTest coverage that accepts a trusted signed Request Object and rejects the same object with an unrelated anchor
  • keep SecTrust-dependent common tests on supported runners while excluding them from the standalone iOS Kotlin/Native executable, where Apple trust evaluation returns OSStatus -26276
  • update the native iOS EUDI fixture to the current PID Issuer CA 02 anchor
  • re-enable the EHIC receive/present and preview/submit scenarios on native iOS; the equivalent Android scenarios remain blocking in Feature/wal 896 #1885

Coordination

This overlaps with the broader X.509 utility work in #1901. That PR currently does not provide the iOS SecTrust path, so this draft is intended as a concrete implementation and integration proof that can either be incorporated there or kept as the focused follow-up to #1885.

Caveat

SecTrust evaluation does not work reliably from the standalone Kotlin/Native .kexe, so the affected common tests are excluded there. Equivalent trusted and untrusted Request Object validation is covered by app-hosted XCTest in the native iOS demo, through the public Swift WalletSDK facade. This remains a draft while the ownership split with #1901 is agreed.

@linear-code

linear-code Bot commented Jul 21, 2026

Copy link
Copy Markdown

WAL-896

WAL-1206

@coderabbitai

coderabbitai Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 3b5f8531-1fce-49c8-a20f-5157fe94d9ab

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@szijpeter szijpeter self-assigned this Jul 21, 2026
@szijpeter szijpeter added the ci:mobile Run mobile related CI workflows for this PR label Jul 21, 2026
@szijpeter szijpeter mentioned this pull request Jul 21, 2026
@szijpeter
szijpeter force-pushed the fix/wal-896-ios-x509-parity branch 2 times, most recently from 960c97f to ef8ab6d Compare July 21, 2026 12:38
@szijpeter szijpeter changed the title fix(wallet): restore mobile EHIC integration coverage fix(wallet): restore iOS EHIC integration coverage Jul 21, 2026
@szijpeter szijpeter changed the title fix(wallet): restore iOS EHIC integration coverage fix(wallet): support x509_hash request authentication on iOS Jul 21, 2026
@szijpeter szijpeter changed the title fix(wallet): support x509_hash request authentication on iOS [WAL-1206] feat(wallet): support x509_hash request authentication on iOS Jul 21, 2026
@szijpeter
szijpeter force-pushed the fix/wal-896-ios-x509-parity branch from ef8ab6d to af59332 Compare July 21, 2026 14:10
@sonarqubecloud

Copy link
Copy Markdown

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

Labels

ci:mobile Run mobile related CI workflows for this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant