From eaefc0de7ed8100b09d372897d8903465b4dc5fe Mon Sep 17 00:00:00 2001 From: Moe Jangda Date: Fri, 8 Dec 2023 11:23:52 -0600 Subject: [PATCH] fix tests --- packages/credentials/src/compact-jwt.ts | 10 ++++++++-- packages/dids/src/did-resolver.ts | 3 +-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/credentials/src/compact-jwt.ts b/packages/credentials/src/compact-jwt.ts index 4f02b324f..4efe7864e 100644 --- a/packages/credentials/src/compact-jwt.ts +++ b/packages/credentials/src/compact-jwt.ts @@ -127,9 +127,15 @@ export class CompactJwt { */ static async verify(params: VerifyJwtParams) { const { decoded: decodedJwt, encoded: encodedJwt } = CompactJwt.parse({ compactJwt: params.compactJwt }); + // TODO: should really be looking for verificationMethod with authentication verification relationship - const verificationMethod = await CompactJwt.didResolver.dereference({ didUrl: decodedJwt.header.kid! }); - if (!utils.isVerificationMethod(verificationMethod)) { // ensure that appropriate verification method was found + const dereferenceResult = await CompactJwt.didResolver.dereference({ didUrl: decodedJwt.header.kid! }); + if (dereferenceResult.dereferencingMetadata.error) { + throw new Error(`Failed to resolve ${decodedJwt.header.kid}`); + } + + const verificationMethod = dereferenceResult.contentStream; + if (!verificationMethod || !utils.isVerificationMethod(verificationMethod)) { // ensure that appropriate verification method was found throw new Error('Verification failed: Expected kid in JWT header to dereference a DID Document Verification Method'); } diff --git a/packages/dids/src/did-resolver.ts b/packages/dids/src/did-resolver.ts index 8cd5fa6b4..9e66b5647 100644 --- a/packages/dids/src/did-resolver.ts +++ b/packages/dids/src/did-resolver.ts @@ -134,8 +134,7 @@ export class DidResolver { */ async dereference(params: DereferenceParams): Promise { const { didUrl } = params; - const { didDocument, didResolutionMetadata, didDocumentMetadata } = await this.resolve(didUrl); - + const { didDocument, didResolutionMetadata = {}, didDocumentMetadata = {} } = await this.resolve(didUrl); if (didResolutionMetadata.error) { return { dereferencingMetadata : didResolutionMetadata,