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

Add Ed448 support for mdoc issuer signatures and device keys

Abierto
#283 0 comentarios 0 reacciones 0 asignados Ver en GitHub
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

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.