ADORSYS-GIS / ADORSYS-GIS/cloud-identity-wallet

Add VICAL-based trust store distribution for IACA roots

Open
#281 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
4
Forks
0
PR merge metrics
No merged PRs in 30d

Description

The current `StaticTrustStore` requires operators to manually configure trusted IACA root certificates at startup. ISO/IEC 18013-5 Annex C (informative) describes the Verified Issuer Certificate Authority List (VICAL) — a standardised, signed list of trusted IACA roots that a verifier can fetch and refresh automatically.

This is operational infrastructure, not a cryptographic correctness gap. It becomes relevant when the wallet needs to trust issuers across jurisdictions without a code/config change per issuer.

**Scope**
- Add a `VicalTrustStore` implementing the existing `IacaTrustStore` trait
- Fetch and parse a VICAL document (signed CBOR/COSE structure)
- Verify the VICAL signature against a configured VICAL provider key
- Extract IACA root certificates from the VICAL entries
- Support periodic refresh

**Acceptance Criteria**
- [ ] `VicalTrustStore` implements `IacaTrustStore` and is drop-in compatible with `verify_issuer_signature`
- [ ] VICAL document signature verified before any root is trusted
- [ ] Roots extracted and exposed via `trusted_roots()`
- [ ] Configurable refresh interval
- [ ] Tests: valid VICAL parsed and roots extracted, tampered VICAL rejected

**Priority:** Low operational convenience; `StaticTrustStore` is sufficient for known-issuer deployments.

**Note:** Annex C is informative, not normative. This is an enhancement, not a compliance requirement.

**References**
- ISO/IEC 18013-5 Annex C — VICAL (informative)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.