ADORSYS-GIS / ADORSYS-GIS/cloud-identity-wallet
Add Ed448 support for mdoc issuer signatures and device keys
- Lenguaje dominante
- Rust
- Estrellas
- 4
- Forks
- 0
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
ISO/IEC 18013-5 Table 22 lists Ed448 (EdDSA, OKP curve) as a mandatory curve for cipher suite 1. The current implementation detects Ed448 and explicitly rejects it with `UnsupportedAlgorithm` (issuer signature path) and `UnsupportedDeviceKeyType` (device key path). This is safe but incomplete — a conformant issuer using Ed448 would be rejected.
Unlike Brainpool, `aws-lc-rs` supports Ed448 natively (`aws_lc_rs::signature::ED448`), so no new third-party crate is required.
**Scope**
- Issuer signature: add Ed448 verification in `dispatch_verify` (verifier.rs). The EdDSA arm currently routes Ed25519 only and rejects Ed448 via parsed OID `1.3.101.113`. Add an Ed448 branch using `aws-lc-rs`.
- Device key binding: add Ed448 to the OKP path in `verify_device_key_binding` (crv=7, 57-byte x coordinate). Currently only Ed25519 (crv=6) is accepted.
**Acceptance Criteria**
- [ ] Ed448 issuer signatures verify successfully against a valid Ed448 DSC
- [ ] Ed448 device keys compare correctly in `verify_device_key_binding` (x-only, 57 bytes)
- [ ] `UnsupportedAlgorithm`/`UnsupportedDeviceKeyType` no longer returned for Ed448
- [ ] Tests: Ed448 happy path (both issuer sig and device key), Ed448 mismatch rejected
- [ ] No new third-party dependency (use `aws-lc-rs`)
**Priority:** near-zero real-world issuer usage today, but mandatory per Table 22.
**References**
- ISO/IEC 18013-5 Table 22 — cipher suite 1 curves
- RFC 8032 — Ed448
- RFC 8152 §13.2 — OKP key parameters (crv=7 Ed448)
Guía de contribución
Evaluación
Este issue todavía no se ha evaluado.