diff --git a/api/did-registry.yaml b/api/did-registry.yaml index b482cae..7a45b07 100644 --- a/api/did-registry.yaml +++ b/api/did-registry.yaml @@ -101,11 +101,13 @@ components: oneOf: - $ref: '#/components/schemas/JsonWebKey2020VerificationMethod' - $ref: '#/components/schemas/RsaVerificationKey2018VerificationMethod' + - $ref: '#/components/schemas/Ed25519VerificationKey2019' discriminator: propertyName: type mapping: RsaVerificationKey2018: '#/components/schemas/RsaVerificationKey2018VerificationMethod' JsonWebKey2020: '#/components/schemas/JsonWebKey2020VerificationMethod' + Ed25519VerificationKey2019: '#/components/schemas/Ed25519VerificationKey2019' required: - id - '@context' @@ -139,6 +141,16 @@ components: type: string publicKeyJwk: $ref: '#/components/schemas/JWK' + Ed25519VerificationKey2019: + type: object + allOf: + - $ref: '#/components/schemas/VerificationMethod' + - type: object + properties: + controller: + type: string + publicKeyJwk: + $ref: '#/components/schemas/JWK' JWK: type: object properties: diff --git a/src/main/java/org/fiware/iam/tir/repository/DidWebService.java b/src/main/java/org/fiware/iam/tir/repository/DidWebService.java index 90a0ce4..589b056 100644 --- a/src/main/java/org/fiware/iam/tir/repository/DidWebService.java +++ b/src/main/java/org/fiware/iam/tir/repository/DidWebService.java @@ -8,6 +8,7 @@ import lombok.RequiredArgsConstructor; import org.fiware.iam.did.model.DIDDocumentVO; import org.fiware.iam.did.model.DIDDocumentVerificationMethodInnerVO; +import org.fiware.iam.did.model.Ed25519VerificationKey2019VO; import org.fiware.iam.did.model.JsonWebKey2020VerificationMethodVO; import org.fiware.iam.did.model.RsaVerificationKey2018VerificationMethodVO; @@ -57,7 +58,9 @@ private Optional retrieveCertificate(DIDDocumentVerificationMethodInnerV return ((JsonWebKey2020VerificationMethodVO) verificationMethodVO).getPublicKeyJwk(); } else if (verificationMethodVO instanceof RsaVerificationKey2018VerificationMethodVO) { return ((RsaVerificationKey2018VerificationMethodVO) verificationMethodVO).getPublicKeyJwk(); - } else { + } else if (verificationMethodVO instanceof RsaVerificationKey2018VerificationMethodVO) { + return ((Ed25519VerificationKey2019VO) verificationMethodVO).getPublicKeyJwk(); + }else { throw new IllegalArgumentException("Verification method type %s not supported.".formatted(verificationMethodVO.getType())); } })