From 98ce8b6074b34c39a844ab41563921227d2580ad Mon Sep 17 00:00:00 2001 From: Danny Hunn <32263414+DJHunn39@users.noreply.github.com> Date: Fri, 1 Nov 2024 17:15:13 +0000 Subject: [PATCH] fix: Remove unnecessary conditional (#2076) Signed-off-by: DJHunn39 --- .../OpenId4VcSiopVerifierService.ts | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/packages/openid4vc/src/openid4vc-verifier/OpenId4VcSiopVerifierService.ts b/packages/openid4vc/src/openid4vc-verifier/OpenId4VcSiopVerifierService.ts index 555ad5606..b6e6450e2 100644 --- a/packages/openid4vc/src/openid4vc-verifier/OpenId4VcSiopVerifierService.ts +++ b/packages/openid4vc/src/openid4vc-verifier/OpenId4VcSiopVerifierService.ts @@ -607,6 +607,7 @@ export class OpenId4VcSiopVerifierService { if (!encodedPresentation) throw new CredoError('Did not receive a presentation for verification.') let isValid: boolean + let reason: string | undefined // TODO: it might be better here to look at the presentation submission to know // If presentation includes a ~, we assume it's an SD-JWT-VC @@ -622,6 +623,7 @@ export class OpenId4VcSiopVerifierService { }) isValid = verificationResult.verification.isValid + reason = verificationResult.isValid ? undefined : verificationResult.error.message } else if (typeof encodedPresentation === 'string') { const verificationResult = await this.w3cCredentialService.verifyPresentation(agentContext, { presentation: encodedPresentation, @@ -633,6 +635,7 @@ export class OpenId4VcSiopVerifierService { }) isValid = verificationResult.isValid + reason = verificationResult.error?.message } else { const verificationResult = await this.w3cCredentialService.verifyPresentation(agentContext, { presentation: JsonTransformer.fromJSON(encodedPresentation, W3cJsonLdVerifiablePresentation), @@ -641,18 +644,12 @@ export class OpenId4VcSiopVerifierService { }) isValid = verificationResult.isValid - } - - // FIXME: we throw an error here as there's a bug in sphereon library where they - // don't check the returned 'verified' property and only catch errors thrown. - // Once https://github.com/Sphereon-Opensource/SIOP-OID4VP/pull/70 is merged we - // can remove this. - if (!isValid) { - throw new CredoError('Presentation verification failed.') + reason = verificationResult.error?.message } return { verified: isValid, + reason, } } catch (error) { agentContext.config.logger.warn('Error occurred during verification of presentation', {