import { validateDcqlVp, validateJsonVC, validateJwtVC, } from '../../src/index.js'; import { JsonCredential } from '../../src/shared/dto/jsonCredential.dto.js'; import { EBSI } from '../../src/config.js'; describe('vc-vp-validator should', () => { describe('validate credentials', () => { describe('in json format', () => { it('validate a valid json verifiable credential', async () => { const credential: JsonCredential = { '@context': [ 'https://www.w3.org/2018/credentials/v1', 'https://api.vidchain.net/api/v1/contexts/v1', ], id: 'urn:uuid:ac6b728b-2241-490d-9b93-8d46c099b4c4', type: ['VerifiableCredential', 'TestType'], issuer: { id: 'did:web:staging.vidchain.net:api:v1:did-web-resolver:2e93cab0-af24-4d72-9bc1-f3b8a5c1135e', name: 'Postman Entity', }, credentialStatus: { type: 'RevocationList2021', id: 'https://staging.vidchain.net/api/v1/revocation/credential-status/status-list/88/credential/50', statusListCredential: 'https://staging.vidchain.net/api/v1/revocation/status-list/88', statusListIndex: '50', }, issuanceDate: '2024-04-08T07:58:34.000Z', credentialSubject: { id: 'did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbrm9DrgkBkYSUCCzbo4y1iQNrhkdDeARGNy8pux37YgL9MhuUiP5cnVhd1uDBXdNViJxwGbrdUPtJ6YYEnDQ8tPWAZUiTpGuQqLW8VAtCsxueo2YGZFVQeoiF8Tc4KGiCTv', name: 'Bianca', age: 30, }, proof: { type: 'JsonWebSignature2020', created: '2024-04-08T07:58:34.000Z', proofPurpose: 'assertionMethod', verificationMethod: 'did:web:staging.vidchain.net:api:v1:did-web-resolver:2e93cab0-af24-4d72-9bc1-f3b8a5c1135e#key-0', jws: 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDp3ZWI6c3RhZ2luZy52aWRjaGFpbi5uZXQ6YXBpOnYxOmRpZC13ZWItcmVzb2x2ZXI6MmU5M2NhYjAtYWYyNC00ZDcyLTliYzEtZjNiOGE1YzExMzVlI2tleS0wIn0.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vYXBpLnZpZGNoYWluLm5ldC9hcGkvdjEvY29udGV4dHMvdjEiXSwidHlwZSI6WyJWZXJpZmlhYmxlQ3JlZGVudGlhbCIsIlRlc3RUeXBlIl0sImlzc3VlciI6eyJpZCI6ImRpZDp3ZWI6c3RhZ2luZy52aWRjaGFpbi5uZXQ6YXBpOnYxOmRpZC13ZWItcmVzb2x2ZXI6MmU5M2NhYjAtYWYyNC00ZDcyLTliYzEtZjNiOGE1YzExMzVlIiwibmFtZSI6IlBvc3RtYW4gRW50aXR5In0sImlkIjoidXJuOnV1aWQ6YWM2YjcyOGItMjI0MS00OTBkLTliOTMtOGQ0NmMwOTliNGM0IiwiY3JlZGVudGlhbFN1YmplY3QiOnsiaWQiOiJkaWQ6a2V5OnoyZG16RDgxY2dQeDhWa2k3SmJ1dU1tRllyV1BnWW95dHlrVVozZXlxaHQxajlLYnJtOURyZ2tCa1lTVUNDemJvNHkxaVFOcmhrZERlQVJHTnk4cHV4MzdZZ0w5TWh1VWlQNWNuVmhkMXVEQlhkTlZpSnh3R2JyZFVQdEo2WVlFbkRROHRQV0FaVWlUcEd1UXFMVzhWQXRDc3h1ZW8yWUdaRlZRZW9pRjhUYzRLR2lDVHYiLCJuYW1lIjoiQmlhbmNhIiwiYWdlIjozMH0sImNyZWRlbnRpYWxTdGF0dXMiOnsidHlwZSI6IlJldm9jYXRpb25MaXN0MjAyMSIsImlkIjoiaHR0cHM6Ly9zdGFnaW5nLnZpZGNoYWluLm5ldC9hcGkvdjEvcmV2b2NhdGlvbi9jcmVkZW50aWFsLXN0YXR1cy9zdGF0dXMtbGlzdC84OC9jcmVkZW50aWFsLzUwIiwic3RhdHVzTGlzdENyZWRlbnRpYWwiOiJodHRwczovL3N0YWdpbmcudmlkY2hhaW4ubmV0L2FwaS92MS9yZXZvY2F0aW9uL3N0YXR1cy1saXN0Lzg4Iiwic3RhdHVzTGlzdEluZGV4IjoiNTAifX0sImlhdCI6MTcxMjU2MzExNCwiaXNzIjoiZGlkOndlYjpzdGFnaW5nLnZpZGNoYWluLm5ldDphcGk6djE6ZGlkLXdlYi1yZXNvbHZlcjoyZTkzY2FiMC1hZjI0LTRkNzItOWJjMS1mM2I4YTVjMTEzNWUifQ.NUc00DPnPjBPsJyIfC0qAMU__6PmzqcMDLT0spoSyG2OvUmaoR1E9t_O8cHK9m9meA6-S5yD5AT4PwWi9ehuOw', }, }; const validationResponse = await validateJsonVC(credential); expect(validationResponse).toEqual({ valid: true, }); }); it('validate a valid json verifiable credential that includes issued field', async () => { const credential: JsonCredential = { '@context': [ 'https://www.w3.org/2018/credentials/v1', 'https://w3id.org/vc/status-list/2021/v1', ], id: 'https://dev-studio.vidchain.net/vidcredentials-studio/api/v1/status-list-credential/223', type: ['VerifiableCredential', 'StatusList2021Credential'], issuer: 'did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbo61BKaHkxb55ZoeKgnxzzMmvRR9DPNdhJKrEyrvEsqDZ8mMHStY5Km9sshjSFswbMtRjiZAwvv8DFC3SucQ7HKL7PVeKnkUu6SQX4fYsEWyiVjRsazMEvHrYQ8DpyKbvSp', credentialSubject: { id: 'https://dev-studio.vidchain.net/vidcredentials-studio/api/v1/status-list-credential/223#list', type: 'RevocationList2021', encodedList: 'eJztyDERAAAIxDBLj39zIICFlUu6NQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeqGm7Nw1d2QXU', statusPurpose: 'revocation', }, proof: { type: 'JsonWebSignature2020', created: '2024-04-12T13:27:00.000Z', proofPurpose: 'assertionMethod', verificationMethod: 'did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbo61BKaHkxb55ZoeKgnxzzMmvRR9DPNdhJKrEyrvEsqDZ8mMHStY5Km9sshjSFswbMtRjiZAwvv8DFC3SucQ7HKL7PVeKnkUu6SQX4fYsEWyiVjRsazMEvHrYQ8DpyKbvSp#z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbo61BKaHkxb55ZoeKgnxzzMmvRR9DPNdhJKrEyrvEsqDZ8mMHStY5Km9sshjSFswbMtRjiZAwvv8DFC3SucQ7HKL7PVeKnkUu6SQX4fYsEWyiVjRsazMEvHrYQ8DpyKbvSp', jws: 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUtibzYxQkthSGt4YjU1Wm9lS2dueHp6TW12UlI5RFBOZGhKS3JFeXJ2RXNxRFo4bU1IU3RZNUttOXNzaGpTRnN3Yk10UmppWkF3dnY4REZDM1N1Y1E3SEtMN1BWZUtua1V1NlNRWDRmWXNFV3lpVmpSc2F6TUV2SHJZUThEcHlLYnZTcCN6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JvNjFCS2FIa3hiNTVab2VLZ254enpNbXZSUjlEUE5kaEpLckV5cnZFc3FEWjhtTUhTdFk1S205c3NoalNGc3diTXRSamlaQXd2djhERkMzU3VjUTdIS0w3UFZlS25rVXU2U1FYNGZZc0VXeWlWalJzYXpNRXZIcllROERweUtidlNwIn0.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vdzNpZC5vcmcvdmMvc3RhdHVzLWxpc3QvMjAyMS92MSJdLCJpZCI6Imh0dHBzOi8vZGV2LXN0dWRpby52aWRjaGFpbi5uZXQvdmlkY3JlZGVudGlhbHMtc3R1ZGlvL2FwaS92MS9zdGF0dXMtbGlzdC1jcmVkZW50aWFsLzIyMyIsInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJTdGF0dXNMaXN0MjAyMUNyZWRlbnRpYWwiXSwiaXNzdWVyIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JvNjFCS2FIa3hiNTVab2VLZ254enpNbXZSUjlEUE5kaEpLckV5cnZFc3FEWjhtTUhTdFk1S205c3NoalNGc3diTXRSamlaQXd2djhERkMzU3VjUTdIS0w3UFZlS25rVXU2U1FYNGZZc0VXeWlWalJzYXpNRXZIcllROERweUtidlNwIiwiaXNzdWVkIjoiMjAyNC0wNC0xMlQxMzoyNjo1OC41NjZaIiwiY3JlZGVudGlhbFN1YmplY3QiOnsiaWQiOiJodHRwczovL2Rldi1zdHVkaW8udmlkY2hhaW4ubmV0L3ZpZGNyZWRlbnRpYWxzLXN0dWRpby9hcGkvdjEvc3RhdHVzLWxpc3QtY3JlZGVudGlhbC8yMjMjbGlzdCIsInR5cGUiOiJSZXZvY2F0aW9uTGlzdDIwMjEiLCJlbmNvZGVkTGlzdCI6ImVKenR5REVSQUFBSXhEQkxqMzl6SUlDRmxVdTZOUUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFlcUdtN053MWQyUVhVIiwic3RhdHVzUHVycG9zZSI6InJldm9jYXRpb24ifX0sImlzcyI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUtibzYxQkthSGt4YjU1Wm9lS2dueHp6TW12UlI5RFBOZGhKS3JFeXJ2RXNxRFo4bU1IU3RZNUttOXNzaGpTRnN3Yk10UmppWkF3dnY4REZDM1N1Y1E3SEtMN1BWZUtua1V1NlNRWDRmWXNFV3lpVmpSc2F6TUV2SHJZUThEcHlLYnZTcCIsImlhdCI6MTcxMjkyODQyMH0.H2KMWdKhpUuQ-KdqxFIe6ydqX83ddFtSR3wVk-kmxNy6LVP3IG_a1rDkuzm88uSqb1d8d6HOZ2qGWjEjCmabog', }, issued: '2024-04-12T13:26:58.566Z', }; const validationResponse = await validateJsonVC(credential); expect(validationResponse).toEqual({ valid: true, }); }); it('not validate a json verifiable credential with invalid signature', async () => { const credential: JsonCredential = { '@context': [ 'https://www.w3.org/2018/credentials/v1', 'https://api.vidchain.net/api/v1/contexts/v1', ], id: 'urn:uuid:ac6b728b-2241-490d-9b93-8d46c099b4c4', type: ['VerifiableCredential', 'TestType'], issuer: { id: 'did:web:staging.vidchain.net:api:v1:did-web-resolver:2e93cab0-af24-4d72-9bc1-f3b8a5c1135e', name: 'Postman Entity', }, credentialStatus: { type: 'RevocationList2021', id: 'https://staging.vidchain.net/api/v1/revocation/credential-status/status-list/88/credential/50', statusListCredential: 'https://staging.vidchain.net/api/v1/revocation/status-list/88', statusListIndex: '50', }, issuanceDate: '2024-04-08T07:58:34.000Z', credentialSubject: { id: 'did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbrm9DrgkBkYSUCCzbo4y1iQNrhkdDeARGNy8pux37YgL9MhuUiP5cnVhd1uDBXdNViJxwGbrdUPtJ6YYEnDQ8tPWAZUiTpGuQqLW8VAtCsxueo2YGZFVQeoiF8Tc4KGiCTv', name: 'Bianca', age: 30, }, proof: { type: 'JsonWebSignature2020', created: '2024-04-08T07:58:34.000Z', proofPurpose: 'assertionMethod', verificationMethod: 'did:web:staging.vidchain.net:api:v1:did-web-resolver:2e93cab0-af24-4d72-9bc1-f3b8a5c1135e#key-0', jws: 'eyJhbGciOiJFUzI1NiIsInA5cCI6IkpXVCIsImtpZCI6ImRpZDp3ZWI6c3RhZ2luZy52aWRjaGFpbi5uZXQ6YXBpOnYxOmRpZC13ZWItcmVzb2x2ZXI6MmU5M2NhYjAtYWYyNC00ZDcyLTliYzEtZjNiOGE1YzExMzVlI2tleS0wIn0.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vYXBpLnZpZGNoYWluLm5ldC9hcGkvdjEvY29udGV4dHMvdjEiXSwidHlwZSI6WyJWZXJpZmlhYmxlQ3JlZGVudGlhbCIsIlRlc3RUeXBlIl0sImlzc3VlciI6eyJpZCI6ImRpZDp3ZWI6c3RhZ2luZy52aWRjaGFpbi5uZXQ6YXBpOnYxOmRpZC13ZWItcmVzb2x2ZXI6MmU5M2NhYjAtYWYyNC00ZDcyLTliYzEtZjNiOGE1YzExMzVlIiwibmFtZSI6IlBvc3RtYW4gRW50aXR5In0sImlkIjoidXJuOnV1aWQ6YWM2YjcyOGItMjI0MS00OTBkLTliOTMtOGQ0NmMwOTliNGM0IiwiY3JlZGVudGlhbFN1YmplY3QiOnsiaWQiOiJkaWQ6a2V5OnoyZG16RDgxY2dQeDhWa2k3SmJ1dU1tRllyV1BnWW95dHlrVVozZXlxaHQxajlLYnJtOURyZ2tCa1lTVUNDemJvNHkxaVFOcmhrZERlQVJHTnk4cHV4MzdZZ0w5TWh1VWlQNWNuVmhkMXVEQlhkTlZpSnh3R2JyZFVQdEo2WVlFbkRROHRQV0FaVWlUcEd1UXFMVzhWQXRDc3h1ZW8yWUdaRlZRZW9pRjhUYzRLR2lDVHYiLCJuYW1lIjoiQmlhbmNhIiwiYWdlIjozMH0sImNyZWRlbnRpYWxTdGF0dXMiOnsidHlwZSI6IlJldm9jYXRpb25MaXN0MjAyMSIsImlkIjoiaHR0cHM6Ly9zdGFnaW5nLnZpZGNoYWluLm5ldC9hcGkvdjEvcmV2b2NhdGlvbi9jcmVkZW50aWFsLXN0YXR1cy9zdGF0dXMtbGlzdC84OC9jcmVkZW50aWFsLzUwIiwic3RhdHVzTGlzdENyZWRlbnRpYWwiOiJodHRwczovL3N0YWdpbmcudmlkY2hhaW4ubmV0L2FwaS92MS9yZXZvY2F0aW9uL3N0YXR1cy1saXN0Lzg4Iiwic3RhdHVzTGlzdEluZGV4IjoiNTAifX0sImlhdCI6MTcxMjU2MzExNCwiaXNzIjoiZGlkOndlYjpzdGFnaW5nLnZpZGNoYWluLm5ldDphcGk6djE6ZGlkLXdlYi1yZXNvbHZlcjoyZTkzY2FiMC1hZjI0LTRkNzItOWJjMS1mM2I4YTVjMTEzNWUifQ.NUc00DPnPjBPsJyIfC0qAMU__6PmzqcMDLT0spoSyG2OvUmaoR1E9t_O8cHK9m9meA6-S5yD5AT4PwWi9ehuOw', }, }; const validationResponse = await validateJsonVC(credential); expect(validationResponse).toEqual({ valid: false, messages: [ 'urn:uuid:ac6b728b-2241-490d-9b93-8d46c099b4c4 signature is not correct', ], }); }); it('not validate an expired json verifiable credential', async () => { const credential: JsonCredential = { '@context': ['https://www.w3.org/2018/credentials/v1'], id: 'https://example.com/credential/2390', type: ['VerifiableCredential'], issuer: { id: 'did:web:dev.vidchain.net:api:v1:did-web-resolver:21581ebb-0a0e-4270-a8a3-5388d1a453eb', name: 'Validated ID', }, issuanceDate: '2024-03-22T09:12:29.000Z', validUntil: '2023-12-20T13:07:10Z', credentialSubject: { id: 'did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbt1uLa1XKfUyYPDVcRGaGVzR2jjj8kotjQVSDBFRT8rQttKo5vzubXx5ys6MsroStd1Qzu7SXjKPyugaA6nQCMUirMdQPxK58uCk54ZVnsWW6asnSXpQEon9yHTxFmGaUAG', personIdentifier: 'AB/AB/02635542Y', currentFamilyName: 'Julia', currentGivenName: 'Roberts', birthName: 'Julia', dateOfBirth: '1998-02-14', placeOfBirth: 'Brussels', currentAddress: '44, rue de Fame', gender: 'Female', }, proof: { type: 'JsonWebSignature2020', created: '2024-03-22T09:12:29.000Z', proofPurpose: 'assertionMethod', verificationMethod: 'did:web:dev.vidchain.net:api:v1:did-web-resolver:21581ebb-0a0e-4270-a8a3-5388d1a453eb#key-0', jws: 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDp3ZWI6ZGV2LnZpZGNoYWluLm5ldDphcGk6djE6ZGlkLXdlYi1yZXNvbHZlcjoyMTU4MWViYi0wYTBlLTQyNzAtYThhMy01Mzg4ZDFhNDUzZWIja2V5LTAifQ.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSJdLCJpZCI6Imh0dHBzOi8vZXhhbXBsZS5jb20vY3JlZGVudGlhbC8yMzkwIiwiaXNzdWVyIjp7ImlkIjoiZGlkOndlYjpkZXYudmlkY2hhaW4ubmV0OmFwaTp2MTpkaWQtd2ViLXJlc29sdmVyOjIxNTgxZWJiLTBhMGUtNDI3MC1hOGEzLTUzODhkMWE0NTNlYiIsIm5hbWUiOiJWYWxpZGF0ZWQgSUQifSwidHlwZSI6WyJWZXJpZmlhYmxlQ3JlZGVudGlhbCJdLCJjcmVkZW50aWFsU3ViamVjdCI6eyJpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUtidDF1TGExWEtmVXlZUERWY1JHYUdWelIyampqOGtvdGpRVlNEQkZSVDhyUXR0S281dnp1Ylh4NXlzNk1zcm9TdGQxUXp1N1NYaktQeXVnYUE2blFDTVVpck1kUVB4SzU4dUNrNTRaVm5zV1c2YXNuU1hwUUVvbjl5SFR4Rm1HYVVBRyIsInBlcnNvbklkZW50aWZpZXIiOiJBQi9BQi8wMjYzNTU0MlkiLCJjdXJyZW50RmFtaWx5TmFtZSI6Ikp1bGlhIiwiY3VycmVudEdpdmVuTmFtZSI6IlJvYmVydHMiLCJiaXJ0aE5hbWUiOiJKdWxpYSIsImRhdGVPZkJpcnRoIjoiMTk5OC0wMi0xNCIsInBsYWNlT2ZCaXJ0aCI6IkJydXNzZWxzIiwiY3VycmVudEFkZHJlc3MiOiI0NCwgcnVlIGRlIEZhbWUiLCJnZW5kZXIiOiJGZW1hbGUifSwidmFsaWRVbnRpbCI6IjIwMjMtMTItMjBUMTM6MDc6MTBaIn0sImlhdCI6MTcxMTA5ODc0OSwiaXNzIjoiZGlkOndlYjpkZXYudmlkY2hhaW4ubmV0OmFwaTp2MTpkaWQtd2ViLXJlc29sdmVyOjIxNTgxZWJiLTBhMGUtNDI3MC1hOGEzLTUzODhkMWE0NTNlYiJ9.cjYPY0pX2ZZE01F52GEgf1ZZz2UB22L0RFkehApQzm2FPfrFiNQjanohlQQiC9Irg5KE2CwZaL6dI6KURkwm1w', }, }; const validationResponse = await validateJsonVC(credential); expect(validationResponse).toEqual({ valid: false, messages: ['https://example.com/credential/2390 is expired'], }); }); it('not validate a not valid yet json verifiable credential', async () => { const credential: JsonCredential = { '@context': ['https://www.w3.org/2018/credentials/v1'], id: 'https://example.com/credential/2390', issuer: { id: 'did:web:dev.vidchain.net:api:v1:did-web-resolver:21581ebb-0a0e-4270-a8a3-5388d1a453eb', name: 'Validated ID', }, type: ['VerifiableCredential'], validFrom: '2123-12-20T13:07:10Z', credentialSubject: { id: 'did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbt1uLa1XKfUyYPDVcRGaGVzR2jjj8kotjQVSDBFRT8rQttKo5vzubXx5ys6MsroStd1Qzu7SXjKPyugaA6nQCMUirMdQPxK58uCk54ZVnsWW6asnSXpQEon9yHTxFmGaUAG', personIdentifier: 'AB/AB/02635542Y', currentFamilyName: 'Julia', currentGivenName: 'Roberts', birthName: 'Julia', dateOfBirth: '1998-02-14', placeOfBirth: 'Brussels', currentAddress: '44, rue de Fame', gender: 'Female', }, validUntil: '2123-12-20T13:07:10Z', proof: { type: 'JsonWebSignature2020', created: '2024-03-22T09:41:04.000Z', proofPurpose: 'assertionMethod', verificationMethod: 'did:web:dev.vidchain.net:api:v1:did-web-resolver:21581ebb-0a0e-4270-a8a3-5388d1a453eb#key-0', jws: 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDp3ZWI6ZGV2LnZpZGNoYWluLm5ldDphcGk6djE6ZGlkLXdlYi1yZXNvbHZlcjoyMTU4MWViYi0wYTBlLTQyNzAtYThhMy01Mzg4ZDFhNDUzZWIja2V5LTAifQ.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSJdLCJpZCI6Imh0dHBzOi8vZXhhbXBsZS5jb20vY3JlZGVudGlhbC8yMzkwIiwiaXNzdWVyIjp7ImlkIjoiZGlkOndlYjpkZXYudmlkY2hhaW4ubmV0OmFwaTp2MTpkaWQtd2ViLXJlc29sdmVyOjIxNTgxZWJiLTBhMGUtNDI3MC1hOGEzLTUzODhkMWE0NTNlYiIsIm5hbWUiOiJWYWxpZGF0ZWQgSUQifSwidHlwZSI6WyJWZXJpZmlhYmxlQ3JlZGVudGlhbCJdLCJ2YWxpZEZyb20iOiIyMTIzLTEyLTIwVDEzOjA3OjEwWiIsImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImlkIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2J0MXVMYTFYS2ZVeVlQRFZjUkdhR1Z6UjJqamo4a290alFWU0RCRlJUOHJRdHRLbzV2enViWHg1eXM2TXNyb1N0ZDFRenU3U1hqS1B5dWdhQTZuUUNNVWlyTWRRUHhLNTh1Q2s1NFpWbnNXVzZhc25TWHBRRW9uOXlIVHhGbUdhVUFHIiwicGVyc29uSWRlbnRpZmllciI6IkFCL0FCLzAyNjM1NTQyWSIsImN1cnJlbnRGYW1pbHlOYW1lIjoiSnVsaWEiLCJjdXJyZW50R2l2ZW5OYW1lIjoiUm9iZXJ0cyIsImJpcnRoTmFtZSI6Ikp1bGlhIiwiZGF0ZU9mQmlydGgiOiIxOTk4LTAyLTE0IiwicGxhY2VPZkJpcnRoIjoiQnJ1c3NlbHMiLCJjdXJyZW50QWRkcmVzcyI6IjQ0LCBydWUgZGUgRmFtZSIsImdlbmRlciI6IkZlbWFsZSJ9LCJ2YWxpZFVudGlsIjoiMjEyMy0xMi0yMFQxMzowNzoxMFoifSwiaWF0IjoxNzExMTAwNDY0LCJpc3MiOiJkaWQ6d2ViOmRldi52aWRjaGFpbi5uZXQ6YXBpOnYxOmRpZC13ZWItcmVzb2x2ZXI6MjE1ODFlYmItMGEwZS00MjcwLWE4YTMtNTM4OGQxYTQ1M2ViIn0.Lm5P3OPm7FIlw1_sDgV4Rz_k2a7M0rP9quzgY2Jr-029OUOuLGI_HSz21F-aKNVsaDcxaVS9MKwF941q7qd7PA', }, }; const validationResponse = await validateJsonVC(credential); expect(validationResponse).toEqual({ valid: false, messages: ['https://example.com/credential/2390 is not yet valid'], }); }); }); describe('in jwt format', () => { it('validate a valid jwt verifiable credential with did:ebsi', async () => { const credential = 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticWFhd0dSSDhMWFJQMXFwa2JoQVNuZEtIZWlOSGh2emRlaE5mR25CZ1lkeXVlbXpxeFpSTDluN2hnWHlwOWRWR0JaUW00cFZyUk5HYzFxcmlnYU1BNFM5aFNhV21VY0EzVTlKVGVlR3VZVmZpR0tlOGZ4Y28zekxkWHJ2SzhrVDVwZyN6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JxYWF3R1JIOExYUlAxcXBrYmhBU25kS0hlaU5IaHZ6ZGVoTmZHbkJnWWR5dWVtenF4WlJMOW43aGdYeXA5ZFZHQlpRbTRwVnJSTkdjMXFyaWdhTUE0UzloU2FXbVVjQTNVOUpUZWVHdVlWZmlHS2U4ZnhjbzN6TGRYcnZLOGtUNXBnIn0.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiXSwiaWQiOiJ1cm46dXVpZDoxMTQ2ODVjMi04NzEzLTQ2NGUtYTNjNi1hZDkyNDNhMjAwMDAiLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiVmVyaWZpYWJsZUF0dGVzdGF0aW9uIiwiVGVzdFR5cGVTY2hlbWEiXSwiY3JlZGVudGlhbFN1YmplY3QiOnsiaWQiOiJkaWQ6a2V5OnoyZG16RDgxY2dQeDhWa2k3SmJ1dU1tRllyV1BnWW95dHlrVVozZXlxaHQxajlLYnBHcllBWXFmMVhaRjc1bWdSUUM1aU1qdThKM1djd2NIVHhSOGZQVUJaNGR2U2d4b2MzTVpNWDVQM1JkSnBTalVBWU40bWFDNzduNVBqUTN4ZGJqOXdkRXRKM3JESG53azZiZTV6OExEaUNRSjZjZk1Hcld1UUpad1JUTjZWMzlNUEoiLCJuYW1lIjoiQmlhbmNhIiwiYWdlIjozMH0sImlzc3VlciI6eyJpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticWFhd0dSSDhMWFJQMXFwa2JoQVNuZEtIZWlOSGh2emRlaE5mR25CZ1lkeXVlbXpxeFpSTDluN2hnWHlwOWRWR0JaUW00cFZyUk5HYzFxcmlnYU1BNFM5aFNhV21VY0EzVTlKVGVlR3VZVmZpR0tlOGZ4Y28zekxkWHJ2SzhrVDVwZyIsIm5hbWUiOiJQb3N0bWFuIEVudGl0eSJ9LCJ2YWxpZEZyb20iOiIyMDI1LTA1LTIyVDExOjEyOjE4WiIsImNyZWRlbnRpYWxTY2hlbWEiOnsiaWQiOiJodHRwczovL2FwaS1jb25mb3JtYW5jZS5lYnNpLmV1L3RydXN0ZWQtc2NoZW1hcy1yZWdpc3RyeS92My9zY2hlbWFzL3pEcFdHVUJlbm1xWHp1cnNrcnk5TnNrNnZxMlI4dGhoOVZTZW9ScWd1b3lNRCIsInR5cGUiOiJGdWxsSnNvblNjaGVtYVZhbGlkYXRvcjIwMjEifSwiY3JlZGVudGlhbFN0YXR1cyI6eyJpZCI6Imh0dHBzOi8vZGV2LXN0dWRpby52aWRpZGVudGl0eS5uZXQvdmlkY3JlZGVudGlhbHMtc3R1ZGlvL2FwaS92MS9zdGF0dXMtbGlzdC1jcmVkZW50aWFsLzI4MiMzMjYiLCJzdGF0dXNMaXN0Q3JlZGVudGlhbCI6Imh0dHBzOi8vZGV2LXN0dWRpby52aWRpZGVudGl0eS5uZXQvdmlkY3JlZGVudGlhbHMtc3R1ZGlvL2FwaS92MS9zdGF0dXMtbGlzdC1jcmVkZW50aWFsLzI4MiIsInN0YXR1c0xpc3RJbmRleCI6IjMyNiIsInR5cGUiOiJSZXZvY2F0aW9uTGlzdDIwMjFTdGF0dXMiLCJzdGF0dXNQdXJwb3NlIjoicmV2b2NhdGlvbiJ9fSwibmJmIjoxNzQ3OTEyMzM4LCJpc3MiOiJkaWQ6a2V5OnoyZG16RDgxY2dQeDhWa2k3SmJ1dU1tRllyV1BnWW95dHlrVVozZXlxaHQxajlLYnFhYXdHUkg4TFhSUDFxcGtiaEFTbmRLSGVpTkhodnpkZWhOZkduQmdZZHl1ZW16cXhaUkw5bjdoZ1h5cDlkVkdCWlFtNHBWclJOR2MxcXJpZ2FNQTRTOWhTYVdtVWNBM1U5SlRlZUd1WVZmaUdLZThmeGNvM3pMZFhydks4a1Q1cGciLCJpYXQiOjE3NDc5MTIzMzgsInN1YiI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticEdyWUFZcWYxWFpGNzVtZ1JRQzVpTWp1OEozV2N3Y0hUeFI4ZlBVQlo0ZHZTZ3hvYzNNWk1YNVAzUmRKcFNqVUFZTjRtYUM3N241UGpRM3hkYmo5d2RFdEozckRIbndrNmJlNXo4TERpQ1FKNmNmTUdyV3VRSlp3UlRONlYzOU1QSiIsImp0aSI6InVybjp1dWlkOjExNDY4NWMyLTg3MTMtNDY0ZS1hM2M2LWFkOTI0M2EyMDAwMCJ9.s9nty9pg_aCt2M4wJ6YwvYgdmxL8Q-XQrFXmGCPFBWqcdcyFoQL6TqgDrgsMm0mpntfTy8uymjOEEBL5BG3Vng'; const validationResponse = await validateJwtVC(credential, { ebsiAuthority: EBSI.ebsiAuthority, }); expect(validationResponse).toEqual({ valid: true, }); }); it('validate a valid jwt verifiable credential with did:web', async () => { const credential = 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDp3ZWI6dHJ1c3QudmFsaWRhdGVkaWQuY29tI2tleS0wIn0.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vYXBpLnZpZGNoYWluLm5ldC9hcGkvdjEvY29udGV4dHMvdjEiXSwidHlwZSI6WyJWZXJpZmlhYmxlQ3JlZGVudGlhbCIsIkVtYWlsQ3JlZGVudGlhbCJdLCJpc3N1ZXIiOnsiaWQiOiJkaWQ6d2ViOnRydXN0LnZhbGlkYXRlZGlkLmNvbSIsIm5hbWUiOiJWYWxpZGF0ZWQgSUQgU0wifSwiaWQiOiJ1cm46dXVpZDoyZTkzMTlkNi1jNDRlLTRkMjktYjQxYy05NGJiZGRkYTdjMjkiLCJjcmVkZW50aWFsU3ViamVjdCI6eyJpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUtic3JmcnpnWXJNMmd0dGU0MVhDRWN5dUI3bVF2d0VBY01wUnZUM0JSMTJyUWMxQWRCcFJIN1BnRHNWYmM1dmRTRmI3R1NMTjl3b0RwN01SQmZSd3Q3SlpYNEpMRlExb3Z4cXBKbjlleGRQOVNlejlEck16YXZCRDJNVnFmUFI4NXQ0TCIsImVtYWlsIjoiZGZvbGNoY0Bob3RtYWlsLmNvbSJ9LCJjcmVkZW50aWFsU3RhdHVzIjp7InR5cGUiOiJSZXZvY2F0aW9uTGlzdDIwMjEiLCJpZCI6Imh0dHBzOi8vYXBpLnZpZGNoYWluLm5ldC9hcGkvdjEvcmV2b2NhdGlvbi9jcmVkZW50aWFsLXN0YXR1cy9zdGF0dXMtbGlzdC8zNi9jcmVkZW50aWFsLzE0MiIsInN0YXR1c0xpc3RDcmVkZW50aWFsIjoiaHR0cHM6Ly9hcGkudmlkY2hhaW4ubmV0L2FwaS92MS9yZXZvY2F0aW9uL3N0YXR1cy1saXN0LzM2Iiwic3RhdHVzTGlzdEluZGV4IjoiMTQyIn19LCJpYXQiOjE3MDY3MjQxNTAsImlzcyI6ImRpZDp3ZWI6dHJ1c3QudmFsaWRhdGVkaWQuY29tIn0.5g7HR4PbzRrwK_t-ty29UghPJCxufIrPg-t4k9bIscS2oaQi3cgrScUN6XOB6AqBPhT6AJz7sehS-rNxW0Gbdw'; const validationResponse = await validateJwtVC(credential); expect(validationResponse).toEqual({ valid: true, }); }); it('not validate a jwt verifiable credential with invalid signature', async () => { const credential = 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDp3ZWI6dHJ1c3QudmFsaWRhdGVkaWQuY29tI2tleS0wIn0.ewogICJ2YyI6IHsKICAgICJAY29udGV4dCI6IFsKICAgICAgImh0dHBzOi8vd3d3LnczLm9yZy8yMDE4L2NyZWRlbnRpYWxzL3YxIiwKICAgICAgImh0dHBzOi8vYXBpLnZpZGNoYWluLm5ldC9hcGkvdjEvY29udGV4dHMvdjEiCiAgICBdLAogICAgInR5cGUiOiBbCiAgICAgICJWZXJpZmlhYmxlQ3JlZGVudGlhbCIsCiAgICAgICJFbWFpbENyZWRlbnRpYWwiCiAgICBdLAogICAgImlzc3VlciI6IHsKICAgICAgImlkIjogImRpZDp3ZWI6dHJ1c3QudmFsaWRhdGVkaWQuY29tIiwKICAgICAgIm5hbWUiOiAiVmFsaWRhdGVkIElEIFNMIgogICAgfSwKICAgICJpZCI6ICJ1cm46dXVpZDoyZTkzMTlkNi1jNDRlLTRkMjktYjQxYy05NGJiZGRkYTdjMjkiLAogICAgImNyZWRlbnRpYWxTdWJqZWN0IjogewogICAgICAiaWQiOiAiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JzcmZyemdZck0yZ3R0ZTQxWENFY3l1QjdtUXZ3RUFjTXBSdlQzQlIxMnJRYzFBZEJwUkg3UGdEc1ZiYzV2ZFNGYjdHU0xOOXdvRHA3TVJCZlJ3dDdKWlg0SkxGUTFvdnhxcEpuOWV4ZFA5U2V6OURyTXphdkJEMk1WcWZQUjg1dDRMIiwKICAgICAgImVtYWlsIjogInRlc3RpbmdAaG90bWFpbC5jb20iCiAgICB9LAogICAgImNyZWRlbnRpYWxTdGF0dXMiOiB7CiAgICAgICJ0eXBlIjogIlJldm9jYXRpb25MaXN0MjAyMSIsCiAgICAgICJpZCI6ICJodHRwczovL2FwaS52aWRjaGFpbi5uZXQvYXBpL3YxL3Jldm9jYXRpb24vY3JlZGVudGlhbC1zdGF0dXMvc3RhdHVzLWxpc3QvMzYvY3JlZGVudGlhbC8xNDIiLAogICAgICAic3RhdHVzTGlzdENyZWRlbnRpYWwiOiAiaHR0cHM6Ly9hcGkudmlkY2hhaW4ubmV0L2FwaS92MS9yZXZvY2F0aW9uL3N0YXR1cy1saXN0LzM2IiwKICAgICAgInN0YXR1c0xpc3RJbmRleCI6ICIxNDIiCiAgICB9CiAgfSwKICAiaWF0IjogMTcwNjcyNDE1MCwKICAiaXNzIjogImRpZDp3ZWI6dHJ1c3QudmFsaWRhdGVkaWQuY29tIgp9.5g7HR4PbzRrwK_t-ty29UghPJCxufIrPg-t4k9bIscS2oaQi3cgrScUN6XOB6AqBPhT6AJz7sehS-rNxW0Gbdw'; const validationResponse = await validateJwtVC(credential, { ebsiAuthority: EBSI.ebsiAuthority, }); expect(validationResponse).toEqual({ valid: false, messages: [ 'urn:uuid:2e9319d6-c44e-4d29-b41c-94bbddda7c29 signature is not correct', ], }); }); }); }); describe('validate presentations', () => { describe('in json format', () => { it(' validate a valid json verifiable presentation using VerifiablePresentationValidator with DCQL', async () => { const presentation = { query_0: [ { id: 'urn:did:ed9934aa-784f-4d54-8bb3-dd7f5845c3d7', '@context': ['https://www.w3.org/2018/credentials/v1'], type: ['VerifiablePresentation'], holder: 'did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbp7cLZLRxsZuETk9BNg3oVaRTDQCN8uXayxyet5ZcjgZxvwnuMXYWGzs7LxX1s4GRbLUJwFJHFzEeNzBs6VwK8SJyjriKjE86xKFTEAwVs7qySHkr8Z3yimhsSL7bkcM7Nt', verifiableCredential: [ { '@context': [ 'https://www.w3.org/2018/credentials/v1', 'https://api.vidchain.net/api/v1/contexts/v1', ], type: ['VerifiableCredential', 'EmailCredential'], id: 'urn:uuid:1861412c-9e63-4559-b72e-d19049d2138a', issuer: { id: 'did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbo192gbRfxL17YDJKwoeuZJJv2nM8Mybypb7PRSgD7EB7y2A5beFeXofriDLZMFTLPSn2jHX94B3t2vJama86NdUuzZWPauk7EydiwaKuCifYF5tVv6x7Ed8WSmhf9N4oMv', name: 'Validated ID SL', }, credentialSubject: { id: 'did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbp7cLZLRxsZuETk9BNg3oVaRTDQCN8uXayxyet5ZcjgZxvwnuMXYWGzs7LxX1s4GRbLUJwFJHFzEeNzBs6VwK8SJyjriKjE86xKFTEAwVs7qySHkr8Z3yimhsSL7bkcM7Nt', email: 'bernat.marcilla@validatedid.com', }, proof: { type: 'JsonWebSignature2020', created: '2024-03-25T12:27:28.000Z', proofPurpose: 'assertionMethod', verificationMethod: 'did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbo192gbRfxL17YDJKwoeuZJJv2nM8Mybypb7PRSgD7EB7y2A5beFeXofriDLZMFTLPSn2jHX94B3t2vJama86NdUuzZWPauk7EydiwaKuCifYF5tVv6x7Ed8WSmhf9N4oMv#z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbo192gbRfxL17YDJKwoeuZJJv2nM8Mybypb7PRSgD7EB7y2A5beFeXofriDLZMFTLPSn2jHX94B3t2vJama86NdUuzZWPauk7EydiwaKuCifYF5tVv6x7Ed8WSmhf9N4oMv', jws: 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUtibzE5MmdiUmZ4TDE3WURKS3dvZXVaSkp2Mm5NOE15YnlwYjdQUlNnRDdFQjd5MkE1YmVGZVhvZnJpRExaTUZUTFBTbjJqSFg5NEIzdDJ2SmFtYTg2TmRVdXpaV1BhdWs3RXlkaXdhS3VDaWZZRjV0VnY2eDdFZDhXU21oZjlONG9NdiN6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JvMTkyZ2JSZnhMMTdZREpLd29ldVpKSnYybk04TXlieXBiN1BSU2dEN0VCN3kyQTViZUZlWG9mcmlETFpNRlRMUFNuMmpIWDk0QjN0MnZKYW1hODZOZFV1elpXUGF1azdFeWRpd2FLdUNpZllGNXRWdjZ4N0VkOFdTbWhmOU40b012In0.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vYXBpLnZpZGNoYWluLm5ldC9hcGkvdjEvY29udGV4dHMvdjEiXSwidHlwZSI6WyJWZXJpZmlhYmxlQ3JlZGVudGlhbCIsIkVtYWlsQ3JlZGVudGlhbCJdLCJpc3N1ZXIiOnsiaWQiOiJkaWQ6a2V5OnoyZG16RDgxY2dQeDhWa2k3SmJ1dU1tRllyV1BnWW95dHlrVVozZXlxaHQxajlLYm8xOTJnYlJmeEwxN1lESkt3b2V1WkpKdjJuTThNeWJ5cGI3UFJTZ0Q3RUI3eTJBNWJlRmVYb2ZyaURMWk1GVExQU24yakhYOTRCM3QydkphbWE4Nk5kVXV6WldQYXVrN0V5ZGl3YUt1Q2lmWUY1dFZ2Nng3RWQ4V1NtaGY5TjRvTXYiLCJuYW1lIjoiVmFsaWRhdGVkIElEIFNMIn0sImlkIjoidXJuOnV1aWQ6MTg2MTQxMmMtOWU2My00NTU5LWI3MmUtZDE5MDQ5ZDIxMzhhIiwiY3JlZGVudGlhbFN1YmplY3QiOnsiaWQiOiJkaWQ6a2V5OnoyZG16RDgxY2dQeDhWa2k3SmJ1dU1tRllyV1BnWW95dHlrVVozZXlxaHQxajlLYnA3Y0xaTFJ4c1p1RVRrOUJOZzNvVmFSVERRQ044dVhheXh5ZXQ1WmNqZ1p4dndudU1YWVdHenM3THhYMXM0R1JiTFVKd0ZKSEZ6RWVOekJzNlZ3SzhTSnlqcmlLakU4NnhLRlRFQXdWczdxeVNIa3I4WjN5aW1oc1NMN2JrY003TnQiLCJlbWFpbCI6ImJlcm5hdC5tYXJjaWxsYUB2YWxpZGF0ZWRpZC5jb20ifSwiY3JlZGVudGlhbFN0YXR1cyI6eyJ0eXBlIjoiUmV2b2NhdGlvbkxpc3QyMDIxIiwiaWQiOiJodHRwczovL2Rldi52aWRjaGFpbi5uZXQvYXBpL3YxL3Jldm9jYXRpb24vY3JlZGVudGlhbC1zdGF0dXMvc3RhdHVzLWxpc3QvMjI0L2NyZWRlbnRpYWwvMjYiLCJzdGF0dXNMaXN0Q3JlZGVudGlhbCI6Imh0dHBzOi8vZGV2LnZpZGNoYWluLm5ldC9hcGkvdjEvcmV2b2NhdGlvbi9zdGF0dXMtbGlzdC8yMjQiLCJzdGF0dXNMaXN0SW5kZXgiOiIyNiJ9fSwiaWF0IjoxNzExMzY5NjQ4LCJpc3MiOiJkaWQ6a2V5OnoyZG16RDgxY2dQeDhWa2k3SmJ1dU1tRllyV1BnWW95dHlrVVozZXlxaHQxajlLYm8xOTJnYlJmeEwxN1lESkt3b2V1WkpKdjJuTThNeWJ5cGI3UFJTZ0Q3RUI3eTJBNWJlRmVYb2ZyaURMWk1GVExQU24yakhYOTRCM3QydkphbWE4Nk5kVXV6WldQYXVrN0V5ZGl3YUt1Q2lmWUY1dFZ2Nng3RWQ4V1NtaGY5TjRvTXYifQ.n3x4ndKioax0w1H31Snh4f22pmcI5T7cp8_AMzGiUHygLUxnWXamG00-XiSNMzAe1YqZ8K7hNQ0ZyIbglAeVBQ', }, issuanceDate: '2024-03-25T12:27:28.000Z', credentialStatus: { type: 'RevocationList2021', id: 'https://dev.vidchain.net/api/v1/revocation/credential-status/status-list/224/credential/26', statusListCredential: 'https://dev.vidchain.net/api/v1/revocation/status-list/224', statusListIndex: '26', }, }, ], proof: { type: 'JsonWebSignature2020', created: '2024-01-31T18:02:30.000Z', proofPurpose: 'assertionMethod', verificationMethod: 'did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbp7cLZLRxsZuETk9BNg3oVaRTDQCN8uXayxyet5ZcjgZxvwnuMXYWGzs7LxX1s4GRbLUJwFJHFzEeNzBs6VwK8SJyjriKjE86xKFTEAwVs7qySHkr8Z3yimhsSL7bkcM7Nt', jws: 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticDdjTFpMUnhzWnVFVGs5Qk5nM29WYVJURFFDTjh1WGF5eHlldDVaY2pnWnh2d251TVhZV0d6czdMeFgxczRHUmJMVUp3RkpIRnpFZU56QnM2VndLOFNKeWpyaUtqRTg2eEtGVEVBd1ZzN3F5U0hrcjhaM3lpbWhzU0w3YmtjTTdOdCN6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JwN2NMWkxSeHNadUVUazlCTmczb1ZhUlREUUNOOHVYYXl4eWV0NVpjamdaeHZ3bnVNWFlXR3pzN0x4WDFzNEdSYkxVSndGSkhGekVlTnpCczZWd0s4U0p5anJpS2pFODZ4S0ZURUF3VnM3cXlTSGtyOFozeWltaHNTTDdia2NNN050In0.eyJpYXQiOjE3MTIzMTUxMTMsImV4cCI6NDg1OTc0MTcwMCwiaXNzIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JwN2NMWkxSeHNadUVUazlCTmczb1ZhUlREUUNOOHVYYXl4eWV0NVpjamdaeHZ3bnVNWFlXR3pzN0x4WDFzNEdSYkxVSndGSkhGekVlTnpCczZWd0s4U0p5anJpS2pFODZ4S0ZURUF3VnM3cXlTSGtyOFozeWltaHNTTDdia2NNN050IiwiYXVkIjoiYXVkaWVuY2UiLCJzdWIiOiJkaWQ6a2V5OnoyZG16RDgxY2dQeDhWa2k3SmJ1dU1tRllyV1BnWW95dHlrVVozZXlxaHQxajlLYnA3Y0xaTFJ4c1p1RVRrOUJOZzNvVmFSVERRQ044dVhheXh5ZXQ1WmNqZ1p4dndudU1YWVdHenM3THhYMXM0R1JiTFVKd0ZKSEZ6RWVOekJzNlZ3SzhTSnlqcmlLakU4NnhLRlRFQXdWczdxeVNIa3I4WjN5aW1oc1NMN2JrY003TnQiLCJuYmYiOjE3MTIzMTUxMTMsIm5vbmNlIjoiNzBjY2Y2ZTEtNGFjZi00YjQ4LWI4NTMtYmM1ZTVmNDUyM2IwIiwianRpIjoidXJuOmRpZDplZDk5MzRhYS03ODRmLTRkNTQtOGJiMy1kZDdmNTg0NWMzZDciLCJ2cCI6eyJpZCI6InVybjpkaWQ6ZWQ5OTM0YWEtNzg0Zi00ZDU0LThiYjMtZGQ3ZjU4NDVjM2Q3IiwiQGNvbnRleHQiOlsiaHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMvdjEiXSwidHlwZSI6WyJWZXJpZmlhYmxlUHJlc2VudGF0aW9uIl0sImhvbGRlciI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticDdjTFpMUnhzWnVFVGs5Qk5nM29WYVJURFFDTjh1WGF5eHlldDVaY2pnWnh2d251TVhZV0d6czdMeFgxczRHUmJMVUp3RkpIRnpFZU56QnM2VndLOFNKeWpyaUtqRTg2eEtGVEVBd1ZzN3F5U0hrcjhaM3lpbWhzU0w3YmtjTTdOdCIsInZlcmlmaWFibGVDcmVkZW50aWFsIjpbeyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vYXBpLnZpZGNoYWluLm5ldC9hcGkvdjEvY29udGV4dHMvdjEiXSwidHlwZSI6WyJWZXJpZmlhYmxlQ3JlZGVudGlhbCIsIkVtYWlsQ3JlZGVudGlhbCJdLCJpZCI6InVybjp1dWlkOjE4NjE0MTJjLTllNjMtNDU1OS1iNzJlLWQxOTA0OWQyMTM4YSIsImlzc3VlciI6eyJpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUtibzE5MmdiUmZ4TDE3WURKS3dvZXVaSkp2Mm5NOE15YnlwYjdQUlNnRDdFQjd5MkE1YmVGZVhvZnJpRExaTUZUTFBTbjJqSFg5NEIzdDJ2SmFtYTg2TmRVdXpaV1BhdWs3RXlkaXdhS3VDaWZZRjV0VnY2eDdFZDhXU21oZjlONG9NdiIsIm5hbWUiOiJWYWxpZGF0ZWQgSUQgU0wifSwiY3JlZGVudGlhbFN1YmplY3QiOnsiaWQiOiJkaWQ6a2V5OnoyZG16RDgxY2dQeDhWa2k3SmJ1dU1tRllyV1BnWW95dHlrVVozZXlxaHQxajlLYnA3Y0xaTFJ4c1p1RVRrOUJOZzNvVmFSVERRQ044dVhheXh5ZXQ1WmNqZ1p4dndudU1YWVdHenM3THhYMXM0R1JiTFVKd0ZKSEZ6RWVOekJzNlZ3SzhTSnlqcmlLakU4NnhLRlRFQXdWczdxeVNIa3I4WjN5aW1oc1NMN2JrY003TnQiLCJlbWFpbCI6ImJlcm5hdC5tYXJjaWxsYUB2YWxpZGF0ZWRpZC5jb20ifSwicHJvb2YiOnsidHlwZSI6Ikpzb25XZWJTaWduYXR1cmUyMDIwIiwiY3JlYXRlZCI6IjIwMjQtMDMtMjVUMTI6Mjc6MjguMDAwWiIsInByb29mUHVycG9zZSI6ImFzc2VydGlvbk1ldGhvZCIsInZlcmlmaWNhdGlvbk1ldGhvZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUtibzE5MmdiUmZ4TDE3WURKS3dvZXVaSkp2Mm5NOE15YnlwYjdQUlNnRDdFQjd5MkE1YmVGZVhvZnJpRExaTUZUTFBTbjJqSFg5NEIzdDJ2SmFtYTg2TmRVdXpaV1BhdWs3RXlkaXdhS3VDaWZZRjV0VnY2eDdFZDhXU21oZjlONG9NdiN6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JvMTkyZ2JSZnhMMTdZREpLd29ldVpKSnYybk04TXlieXBiN1BSU2dEN0VCN3kyQTViZUZlWG9mcmlETFpNRlRMUFNuMmpIWDk0QjN0MnZKYW1hODZOZFV1elpXUGF1azdFeWRpd2FLdUNpZllGNXRWdjZ4N0VkOFdTbWhmOU40b012IiwiandzIjoiZXlKaGJHY2lPaUpGVXpJMU5pSXNJblI1Y0NJNklrcFhWQ0lzSW10cFpDSTZJbVJwWkRwclpYazZlakprYlhwRU9ERmpaMUI0T0ZacmFUZEtZblYxVFcxR1dYSlhVR2RaYjNsMGVXdFZXak5sZVhGb2RERnFPVXRpYnpFNU1tZGlVbVo0VERFM1dVUktTM2R2WlhWYVNrcDJNbTVOT0UxNVlubHdZamRRVWxOblJEZEZRamQ1TWtFMVltVkdaVmh2Wm5KcFJFeGFUVVpVVEZCVGJqSnFTRmc1TkVJemRESjJTbUZ0WVRnMlRtUlZkWHBhVjFCaGRXczNSWGxrYVhkaFMzVkRhV1paUmpWMFZuWTJlRGRGWkRoWFUyMW9aamxPTkc5TmRpTjZNbVJ0ZWtRNE1XTm5VSGc0Vm10cE4wcGlkWFZOYlVaWmNsZFFaMWx2ZVhSNWExVmFNMlY1Y1doME1XbzVTMkp2TVRreVoySlNabmhNTVRkWlJFcExkMjlsZFZwS1NuWXliazA0VFhsaWVYQmlOMUJTVTJkRU4wVkNOM2t5UVRWaVpVWmxXRzltY21sRVRGcE5SbFJNVUZOdU1tcElXRGswUWpOME1uWktZVzFoT0RaT1pGVjFlbHBYVUdGMWF6ZEZlV1JwZDJGTGRVTnBabGxHTlhSV2RqWjROMFZrT0ZkVGJXaG1PVTQwYjAxMkluMC5leUoyWXlJNmV5SkFZMjl1ZEdWNGRDSTZXeUpvZEhSd2N6b3ZMM2QzZHk1M015NXZjbWN2TWpBeE9DOWpjbVZrWlc1MGFXRnNjeTkyTVNJc0ltaDBkSEJ6T2k4dllYQnBMblpwWkdOb1lXbHVMbTVsZEM5aGNHa3ZkakV2WTI5dWRHVjRkSE12ZGpFaVhTd2lkSGx3WlNJNld5SldaWEpwWm1saFlteGxRM0psWkdWdWRHbGhiQ0lzSWtWdFlXbHNRM0psWkdWdWRHbGhiQ0pkTENKcGMzTjFaWElpT25zaWFXUWlPaUprYVdRNmEyVjVPbm95WkcxNlJEZ3hZMmRRZURoV2EyazNTbUoxZFUxdFJsbHlWMUJuV1c5NWRIbHJWVm96WlhseGFIUXhhamxMWW04eE9USm5ZbEptZUV3eE4xbEVTa3QzYjJWMVdrcEtkakp1VFRoTmVXSjVjR0kzVUZKVFowUTNSVUkzZVRKQk5XSmxSbVZZYjJaeWFVUk1XazFHVkV4UVUyNHlha2hZT1RSQ00zUXlka3BoYldFNE5rNWtWWFY2V2xkUVlYVnJOMFY1WkdsM1lVdDFRMmxtV1VZMWRGWjJObmczUldRNFYxTnRhR1k1VGpSdlRYWWlMQ0p1WVcxbElqb2lWbUZzYVdSaGRHVmtJRWxFSUZOTUluMHNJbWxrSWpvaWRYSnVPblYxYVdRNk1UZzJNVFF4TW1NdE9XVTJNeTAwTlRVNUxXSTNNbVV0WkRFNU1EUTVaREl4TXpoaElpd2lZM0psWkdWdWRHbGhiRk4xWW1wbFkzUWlPbnNpYVdRaU9pSmthV1E2YTJWNU9ub3laRzE2UkRneFkyZFFlRGhXYTJrM1NtSjFkVTF0UmxseVYxQm5XVzk1ZEhsclZWb3paWGx4YUhReGFqbExZbkEzWTB4YVRGSjRjMXAxUlZSck9VSk9aek52Vm1GU1ZFUlJRMDQ0ZFZoaGVYaDVaWFExV21OcVoxcDRkbmR1ZFUxWVdWZEhlbk0zVEhoWU1YTTBSMUppVEZWS2QwWktTRVo2UldWT2VrSnpObFozU3poVFNubHFjbWxMYWtVNE5uaExSbFJGUVhkV2N6ZHhlVk5JYTNJNFdqTjVhVzFvYzFOTU4ySnJZMDAzVG5RaUxDSmxiV0ZwYkNJNkltSmxjbTVoZEM1dFlYSmphV3hzWVVCMllXeHBaR0YwWldScFpDNWpiMjBpZlN3aVkzSmxaR1Z1ZEdsaGJGTjBZWFIxY3lJNmV5SjBlWEJsSWpvaVVtVjJiMk5oZEdsdmJreHBjM1F5TURJeElpd2lhV1FpT2lKb2RIUndjem92TDJSbGRpNTJhV1JqYUdGcGJpNXVaWFF2WVhCcEwzWXhMM0psZG05allYUnBiMjR2WTNKbFpHVnVkR2xoYkMxemRHRjBkWE12YzNSaGRIVnpMV3hwYzNRdk1qSTBMMk55WldSbGJuUnBZV3d2TWpZaUxDSnpkR0YwZFhOTWFYTjBRM0psWkdWdWRHbGhiQ0k2SW1oMGRIQnpPaTh2WkdWMkxuWnBaR05vWVdsdUxtNWxkQzloY0drdmRqRXZjbVYyYjJOaGRHbHZiaTl6ZEdGMGRYTXRiR2x6ZEM4eU1qUWlMQ0p6ZEdGMGRYTk1hWE4wU1c1a1pYZ2lPaUl5TmlKOWZTd2lhV0YwSWpveE56RXhNelk1TmpRNExDSnBjM01pT2lKa2FXUTZhMlY1T25veVpHMTZSRGd4WTJkUWVEaFdhMmszU21KMWRVMXRSbGx5VjFCbldXOTVkSGxyVlZvelpYbHhhSFF4YWpsTFltOHhPVEpuWWxKbWVFd3hOMWxFU2t0M2IyVjFXa3BLZGpKdVRUaE5lV0o1Y0dJM1VGSlRaMFEzUlVJM2VUSkJOV0psUm1WWWIyWnlhVVJNV2sxR1ZFeFFVMjR5YWtoWU9UUkNNM1F5ZGtwaGJXRTROazVrVlhWNldsZFFZWFZyTjBWNVpHbDNZVXQxUTJsbVdVWTFkRloyTm5nM1JXUTRWMU50YUdZNVRqUnZUWFlpZlEubjN4NG5kS2lvYXgwdzFIMzFTbmg0ZjIycG1jSTVUN2NwOF9BTXpHaVVIeWdMVXhuV1hhbUcwMC1YaVNOTXpBZTFZcVo4SzdoTlEwWnlJYmdsQWVWQlEifSwiaXNzdWFuY2VEYXRlIjoiMjAyNC0wMy0yNVQxMjoyNzoyOC4wMDBaIiwiY3JlZGVudGlhbFN0YXR1cyI6eyJ0eXBlIjoiUmV2b2NhdGlvbkxpc3QyMDIxIiwiaWQiOiJodHRwczovL2Rldi52aWRjaGFpbi5uZXQvYXBpL3YxL3Jldm9jYXRpb24vY3JlZGVudGlhbC1zdGF0dXMvc3RhdHVzLWxpc3QvMjI0L2NyZWRlbnRpYWwvMjYiLCJzdGF0dXNMaXN0Q3JlZGVudGlhbCI6Imh0dHBzOi8vZGV2LnZpZGNoYWluLm5ldC9hcGkvdjEvcmV2b2NhdGlvbi9zdGF0dXMtbGlzdC8yMjQiLCJzdGF0dXNMaXN0SW5kZXgiOiIyNiJ9fV19fQ.hMvI0uKjFd6xKHObvwbs7NrVATVHIZCdMt5rpHBMBtutncQLmqHEf0I-yIHt-yFNH9V0KsZNHhygRk3iGlGb4g', }, }, ], }; const dcqlQuery = { credentials: [ { id: 'query_0', format: 'ldp_vc', meta: { type_values: [['EmailCredential']], }, }, ], }; const validationResult = await validateDcqlVp( presentation, 'audience', { dcqlQuery, }, ); expect(validationResult.valid).toBeTruthy(); }); it('not validate a json verifiable presentation with wrong audience', async () => { const presentation = { query_0: [ { '@context': ['https://www.w3.org/2018/credentials/v1'], type: 'VerifiablePresentation', verifiableCredential: [ { '@context': [ 'https://www.w3.org/2018/credentials/v1', 'https://api.vidchain.net/api/v1/contexts/v1', ], type: ['VerifiableCredential', 'VIDCredentialStudio'], id: 'urn:uuid:750aa677-1747-4e80-9218-3df2bcfe7139', issuer: { id: 'did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbo61BKaHkxb55ZoeKgnxzzMmvRR9DPNdhJKrEyrvEsqDZ8mMHStY5Km9sshjSFswbMtRjiZAwvv8DFC3SucQ7HKL7PVeKnkUu6SQX4fYsEWyiVjRsazMEvHrYQ8DpyKbvSp', name: 'Validated ID', }, credentialSubject: { id: 'did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbscq4iGVCd4KqCehfR58ezBkeG2AduwSQwdpz8Jywhwf1ngukBMSeTcacV3eBiYReCjCyPQcC1vrkjFa4qLpUvAP3CvS1w8aLv7u3ZsPwKG34e5QZDiamzrjQ3PoLpAPKfz', name: 'Bernat', role: 'superadmin', legalId: '1234', entity: 'Validated ID', }, proof: { type: 'JsonWebSignature2020', created: '2024-09-03T08:13:01.000Z', proofPurpose: 'assertionMethod', verificationMethod: 'did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbo61BKaHkxb55ZoeKgnxzzMmvRR9DPNdhJKrEyrvEsqDZ8mMHStY5Km9sshjSFswbMtRjiZAwvv8DFC3SucQ7HKL7PVeKnkUu6SQX4fYsEWyiVjRsazMEvHrYQ8DpyKbvSp#z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbo61BKaHkxb55ZoeKgnxzzMmvRR9DPNdhJKrEyrvEsqDZ8mMHStY5Km9sshjSFswbMtRjiZAwvv8DFC3SucQ7HKL7PVeKnkUu6SQX4fYsEWyiVjRsazMEvHrYQ8DpyKbvSp', jws: 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUtibzYxQkthSGt4YjU1Wm9lS2dueHp6TW12UlI5RFBOZGhKS3JFeXJ2RXNxRFo4bU1IU3RZNUttOXNzaGpTRnN3Yk10UmppWkF3dnY4REZDM1N1Y1E3SEtMN1BWZUtua1V1NlNRWDRmWXNFV3lpVmpSc2F6TUV2SHJZUThEcHlLYnZTcCN6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JvNjFCS2FIa3hiNTVab2VLZ254enpNbXZSUjlEUE5kaEpLckV5cnZFc3FEWjhtTUhTdFk1S205c3NoalNGc3diTXRSamlaQXd2djhERkMzU3VjUTdIS0w3UFZlS25rVXU2U1FYNGZZc0VXeWlWalJzYXpNRXZIcllROERweUtidlNwIn0.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vYXBpLnZpZGNoYWluLm5ldC9hcGkvdjEvY29udGV4dHMvdjEiXSwidHlwZSI6WyJWZXJpZmlhYmxlQ3JlZGVudGlhbCIsIlZJRENyZWRlbnRpYWxTdHVkaW8iXSwiaXNzdWVyIjp7ImlkIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JvNjFCS2FIa3hiNTVab2VLZ254enpNbXZSUjlEUE5kaEpLckV5cnZFc3FEWjhtTUhTdFk1S205c3NoalNGc3diTXRSamlaQXd2djhERkMzU3VjUTdIS0w3UFZlS25rVXU2U1FYNGZZc0VXeWlWalJzYXpNRXZIcllROERweUtidlNwIiwibmFtZSI6IlZhbGlkYXRlZCBJRCJ9LCJpZCI6InVybjp1dWlkOjc1MGFhNjc3LTE3NDctNGU4MC05MjE4LTNkZjJiY2ZlNzEzOSIsImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImlkIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JzY3E0aUdWQ2Q0S3FDZWhmUjU4ZXpCa2VHMkFkdXdTUXdkcHo4Snl3aHdmMW5ndWtCTVNlVGNhY1YzZUJpWVJlQ2pDeVBRY0MxdnJrakZhNHFMcFV2QVAzQ3ZTMXc4YUx2N3UzWnNQd0tHMzRlNVFaRGlhbXpyalEzUG9McEFQS2Z6IiwibmFtZSI6IkJlcm5hdCIsInJvbGUiOiJzdXBlcmFkbWluIiwibGVnYWxJZCI6IjEyMzQiLCJlbnRpdHkiOiJWYWxpZGF0ZWQgSUQifSwiY3JlZGVudGlhbFN0YXR1cyI6eyJ0eXBlIjoiU3RhdHVzTGlzdDIwMjFFbnRyeSIsImlkIjoiaHR0cHM6Ly9kZXYtc3R1ZGlvLnZpZGNoYWluLm5ldC92aWRjcmVkZW50aWFscy1zdHVkaW8vYXBpL3YxL3N0YXR1cy1saXN0LWNyZWRlbnRpYWwvMjIzIzEwNyIsInN0YXR1c0xpc3RDcmVkZW50aWFsIjoiaHR0cHM6Ly9kZXYtc3R1ZGlvLnZpZGNoYWluLm5ldC92aWRjcmVkZW50aWFscy1zdHVkaW8vYXBpL3YxL3N0YXR1cy1saXN0LWNyZWRlbnRpYWwvMjIzIiwic3RhdHVzTGlzdEluZGV4IjoiMTA3Iiwic3RhdHVzUHVycG9zZSI6InJldm9jYXRpb24ifSwiaXNzdWFuY2VEYXRlIjoiMjAyNC0wOS0wM1QwODoxMzowMVoifSwiaXNzIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JvNjFCS2FIa3hiNTVab2VLZ254enpNbXZSUjlEUE5kaEpLckV5cnZFc3FEWjhtTUhTdFk1S205c3NoalNGc3diTXRSamlaQXd2djhERkMzU3VjUTdIS0w3UFZlS25rVXU2U1FYNGZZc0VXeWlWalJzYXpNRXZIcllROERweUtidlNwIiwiaWF0IjoxNzI1MzUxMTgxfQ.JRI_Kr-tzO3rwTyACpSiXMHKsSMBkPqtSgpnDw5c9WXSoYTAMT0Q6KET7Na9DwVfhWkZ5sp6RQ0JNzqdOK6UDA', }, issuanceDate: '2024-09-03T08:13:01Z', credentialStatus: { type: 'StatusList2021Entry', id: 'https://dev-studio.vidchain.net/vidcredentials-studio/api/v1/status-list-credential/223#107', statusListCredential: 'https://dev-studio.vidchain.net/vidcredentials-studio/api/v1/status-list-credential/223', statusListIndex: '107', statusPurpose: 'revocation', }, }, ], proof: { type: 'JsonWebSignature2020', proofPurpose: 'assertionMethod', verificationMethod: 'did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbscq4iGVCd4KqCehfR58ezBkeG2AduwSQwdpz8Jywhwf1ngukBMSeTcacV3eBiYReCjCyPQcC1vrkjFa4qLpUvAP3CvS1w8aLv7u3ZsPwKG34e5QZDiamzrjQ3PoLpAPKfz#z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbscq4iGVCd4KqCehfR58ezBkeG2AduwSQwdpz8Jywhwf1ngukBMSeTcacV3eBiYReCjCyPQcC1vrkjFa4qLpUvAP3CvS1w8aLv7u3ZsPwKG34e5QZDiamzrjQ3PoLpAPKfz', created: '2024-10-16T14:27:00.132Z', jws: 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUtic2NxNGlHVkNkNEtxQ2VoZlI1OGV6QmtlRzJBZHV3U1F3ZHB6OEp5d2h3ZjFuZ3VrQk1TZVRjYWNWM2VCaVlSZUNqQ3lQUWNDMXZya2pGYTRxTHBVdkFQM0N2UzF3OGFMdjd1M1pzUHdLRzM0ZTVRWkRpYW16cmpRM1BvTHBBUEtmeiJ9.eyJpYXQiOjE3MjkwODg4MTksImlzcyI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUtic2NxNGlHVkNkNEtxQ2VoZlI1OGV6QmtlRzJBZHV3U1F3ZHB6OEp5d2h3ZjFuZ3VrQk1TZVRjYWNWM2VCaVlSZUNqQ3lQUWNDMXZya2pGYTRxTHBVdkFQM0N2UzF3OGFMdjd1M1pzUHdLRzM0ZTVRWkRpYW16cmpRM1BvTHBBUEtmeiIsInZwIjp7IkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy8yMDE4L2NyZWRlbnRpYWxzL3YxIl0sInR5cGUiOiJWZXJpZmlhYmxlUHJlc2VudGF0aW9uIiwidmVyaWZpYWJsZUNyZWRlbnRpYWwiOlt7IkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy8yMDE4L2NyZWRlbnRpYWxzL3YxIiwiaHR0cHM6Ly9hcGkudmlkY2hhaW4ubmV0L2FwaS92MS9jb250ZXh0cy92MSJdLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiVklEQ3JlZGVudGlhbFN0dWRpbyJdLCJpZCI6InVybjp1dWlkOjc1MGFhNjc3LTE3NDctNGU4MC05MjE4LTNkZjJiY2ZlNzEzOSIsImlzc3VlciI6eyJpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUtibzYxQkthSGt4YjU1Wm9lS2dueHp6TW12UlI5RFBOZGhKS3JFeXJ2RXNxRFo4bU1IU3RZNUttOXNzaGpTRnN3Yk10UmppWkF3dnY4REZDM1N1Y1E3SEtMN1BWZUtua1V1NlNRWDRmWXNFV3lpVmpSc2F6TUV2SHJZUThEcHlLYnZTcCIsIm5hbWUiOiJWYWxpZGF0ZWQgSUQifSwiY3JlZGVudGlhbFN1YmplY3QiOnsiaWQiOiJkaWQ6a2V5OnoyZG16RDgxY2dQeDhWa2k3SmJ1dU1tRllyV1BnWW95dHlrVVozZXlxaHQxajlLYnNjcTRpR1ZDZDRLcUNlaGZSNThlekJrZUcyQWR1d1NRd2RwejhKeXdod2Yxbmd1a0JNU2VUY2FjVjNlQmlZUmVDakN5UFFjQzF2cmtqRmE0cUxwVXZBUDNDdlMxdzhhTHY3dTNac1B3S0czNGU1UVpEaWFtenJqUTNQb0xwQVBLZnoiLCJuYW1lIjoiQmVybmF0Iiwicm9sZSI6InN1cGVyYWRtaW4iLCJsZWdhbElkIjoiMTIzNCIsImVudGl0eSI6IlZhbGlkYXRlZCBJRCJ9LCJwcm9vZiI6eyJ0eXBlIjoiSnNvbldlYlNpZ25hdHVyZTIwMjAiLCJjcmVhdGVkIjoiMjAyNC0wOS0wM1QwODoxMzowMS4wMDBaIiwicHJvb2ZQdXJwb3NlIjoiYXNzZXJ0aW9uTWV0aG9kIiwidmVyaWZpY2F0aW9uTWV0aG9kIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JvNjFCS2FIa3hiNTVab2VLZ254enpNbXZSUjlEUE5kaEpLckV5cnZFc3FEWjhtTUhTdFk1S205c3NoalNGc3diTXRSamlaQXd2djhERkMzU3VjUTdIS0w3UFZlS25rVXU2U1FYNGZZc0VXeWlWalJzYXpNRXZIcllROERweUtidlNwI3oyZG16RDgxY2dQeDhWa2k3SmJ1dU1tRllyV1BnWW95dHlrVVozZXlxaHQxajlLYm82MUJLYUhreGI1NVpvZUtnbnh6ek1tdlJSOURQTmRoSktyRXlydkVzcURaOG1NSFN0WTVLbTlzc2hqU0Zzd2JNdFJqaVpBd3Z2OERGQzNTdWNRN0hLTDdQVmVLbmtVdTZTUVg0ZllzRVd5aVZqUnNhek1FdkhyWVE4RHB5S2J2U3AiLCJqd3MiOiJleUpoYkdjaU9pSkZVekkxTmlJc0luUjVjQ0k2SWtwWFZDSXNJbXRwWkNJNkltUnBaRHByWlhrNmVqSmtiWHBFT0RGaloxQjRPRlpyYVRkS1luVjFUVzFHV1hKWFVHZFpiM2wwZVd0VldqTmxlWEZvZERGcU9VdGliell4UWt0aFNHdDRZalUxV205bFMyZHVlSHA2VFcxMlVsSTVSRkJPWkdoS1MzSkZlWEoyUlhOeFJGbzRiVTFJVTNSWk5VdHRPWE56YUdwVFJuTjNZazEwVW1wcFdrRjNkblk0UkVaRE0xTjFZMUUzU0V0TU4xQldaVXR1YTFWMU5sTlJXRFJtV1hORlYzbHBWbXBTYzJGNlRVVjJTSEpaVVRoRWNIbExZblpUY0NONk1tUnRla1E0TVdOblVIZzRWbXRwTjBwaWRYVk5iVVpaY2xkUVoxbHZlWFI1YTFWYU0yVjVjV2gwTVdvNVMySnZOakZDUzJGSWEzaGlOVFZhYjJWTFoyNTRlbnBOYlhaU1VqbEVVRTVrYUVwTGNrVjVjblpGYzNGRVdqaHRUVWhUZEZrMVMyMDVjM05vYWxOR2MzZGlUWFJTYW1sYVFYZDJkamhFUmtNelUzVmpVVGRJUzB3M1VGWmxTMjVyVlhVMlUxRllOR1paYzBWWGVXbFdhbEp6WVhwTlJYWkljbGxST0VSd2VVdGlkbE53SW4wLmV5SjJZeUk2ZXlKQVkyOXVkR1Y0ZENJNld5Sm9kSFJ3Y3pvdkwzZDNkeTUzTXk1dmNtY3ZNakF4T0M5amNtVmtaVzUwYVdGc2N5OTJNU0lzSW1oMGRIQnpPaTh2WVhCcExuWnBaR05vWVdsdUxtNWxkQzloY0drdmRqRXZZMjl1ZEdWNGRITXZkakVpWFN3aWRIbHdaU0k2V3lKV1pYSnBabWxoWW14bFEzSmxaR1Z1ZEdsaGJDSXNJbFpKUkVOeVpXUmxiblJwWVd4VGRIVmthVzhpWFN3aWFYTnpkV1Z5SWpwN0ltbGtJam9pWkdsa09tdGxlVHA2TW1SdGVrUTRNV05uVUhnNFZtdHBOMHBpZFhWTmJVWlpjbGRRWjFsdmVYUjVhMVZhTTJWNWNXaDBNV281UzJKdk5qRkNTMkZJYTNoaU5UVmFiMlZMWjI1NGVucE5iWFpTVWpsRVVFNWthRXBMY2tWNWNuWkZjM0ZFV2podFRVaFRkRmsxUzIwNWMzTm9hbE5HYzNkaVRYUlNhbWxhUVhkMmRqaEVSa016VTNWalVUZElTMHczVUZabFMyNXJWWFUyVTFGWU5HWlpjMFZYZVdsV2FsSnpZWHBOUlhaSWNsbFJPRVJ3ZVV0aWRsTndJaXdpYm1GdFpTSTZJbFpoYkdsa1lYUmxaQ0JKUkNKOUxDSnBaQ0k2SW5WeWJqcDFkV2xrT2pjMU1HRmhOamMzTFRFM05EY3ROR1U0TUMwNU1qRTRMVE5rWmpKaVkyWmxOekV6T1NJc0ltTnlaV1JsYm5ScFlXeFRkV0pxWldOMElqcDdJbWxrSWpvaVpHbGtPbXRsZVRwNk1tUnRla1E0TVdOblVIZzRWbXRwTjBwaWRYVk5iVVpaY2xkUVoxbHZlWFI1YTFWYU0yVjVjV2gwTVdvNVMySnpZM0UwYVVkV1EyUTBTM0ZEWldobVVqVTRaWHBDYTJWSE1rRmtkWGRUVVhka2NIbzRTbmwzYUhkbU1XNW5kV3RDVFZObFZHTmhZMVl6WlVKcFdWSmxRMnBEZVZCUlkwTXhkbkpyYWtaaE5IRk1jRlYyUVZBelEzWlRNWGM0WVV4Mk4zVXpXbk5RZDB0SE16UmxOVkZhUkdsaGJYcHlhbEV6VUc5TWNFRlFTMlo2SWl3aWJtRnRaU0k2SWtKbGNtNWhkQ0lzSW5KdmJHVWlPaUp6ZFhCbGNtRmtiV2x1SWl3aWJHVm5ZV3hKWkNJNklqRXlNelFpTENKbGJuUnBkSGtpT2lKV1lXeHBaR0YwWldRZ1NVUWlmU3dpWTNKbFpHVnVkR2xoYkZOMFlYUjFjeUk2ZXlKMGVYQmxJam9pVTNSaGRIVnpUR2x6ZERJd01qRkZiblJ5ZVNJc0ltbGtJam9pYUhSMGNITTZMeTlrWlhZdGMzUjFaR2x2TG5acFpHTm9ZV2x1TG01bGRDOTJhV1JqY21Wa1pXNTBhV0ZzY3kxemRIVmthVzh2WVhCcEwzWXhMM04wWVhSMWN5MXNhWE4wTFdOeVpXUmxiblJwWVd3dk1qSXpJekV3TnlJc0luTjBZWFIxYzB4cGMzUkRjbVZrWlc1MGFXRnNJam9pYUhSMGNITTZMeTlrWlhZdGMzUjFaR2x2TG5acFpHTm9ZV2x1TG01bGRDOTJhV1JqY21Wa1pXNTBhV0ZzY3kxemRIVmthVzh2WVhCcEwzWXhMM04wWVhSMWN5MXNhWE4wTFdOeVpXUmxiblJwWVd3dk1qSXpJaXdpYzNSaGRIVnpUR2x6ZEVsdVpHVjRJam9pTVRBM0lpd2ljM1JoZEhWelVIVnljRzl6WlNJNkluSmxkbTlqWVhScGIyNGlmU3dpYVhOemRXRnVZMlZFWVhSbElqb2lNakF5TkMwd09TMHdNMVF3T0RveE16b3dNVm9pZlN3aWFYTnpJam9pWkdsa09tdGxlVHA2TW1SdGVrUTRNV05uVUhnNFZtdHBOMHBpZFhWTmJVWlpjbGRRWjFsdmVYUjVhMVZhTTJWNWNXaDBNV281UzJKdk5qRkNTMkZJYTNoaU5UVmFiMlZMWjI1NGVucE5iWFpTVWpsRVVFNWthRXBMY2tWNWNuWkZjM0ZFV2podFRVaFRkRmsxUzIwNWMzTm9hbE5HYzNkaVRYUlNhbWxhUVhkMmRqaEVSa016VTNWalVUZElTMHczVUZabFMyNXJWWFUyVTFGWU5HWlpjMFZYZVdsV2FsSnpZWHBOUlhaSWNsbFJPRVJ3ZVV0aWRsTndJaXdpYVdGMElqb3hOekkxTXpVeE1UZ3hmUS5KUklfS3ItdHpPM3J3VHlBQ3BTaVhNSEtzU01Ca1BxdFNncG5EdzVjOVdYU29ZVEFNVDBRNktFVDdOYTlEd1ZmaFdrWjVzcDZSUTBKTnpxZE9LNlVEQSJ9LCJpc3N1YW5jZURhdGUiOiIyMDI0LTA5LTAzVDA4OjEzOjAxWiIsImNyZWRlbnRpYWxTdGF0dXMiOnsidHlwZSI6IlN0YXR1c0xpc3QyMDIxRW50cnkiLCJpZCI6Imh0dHBzOi8vZGV2LXN0dWRpby52aWRjaGFpbi5uZXQvdmlkY3JlZGVudGlhbHMtc3R1ZGlvL2FwaS92MS9zdGF0dXMtbGlzdC1jcmVkZW50aWFsLzIyMyMxMDciLCJzdGF0dXNMaXN0Q3JlZGVudGlhbCI6Imh0dHBzOi8vZGV2LXN0dWRpby52aWRjaGFpbi5uZXQvdmlkY3JlZGVudGlhbHMtc3R1ZGlvL2FwaS92MS9zdGF0dXMtbGlzdC1jcmVkZW50aWFsLzIyMyIsInN0YXR1c0xpc3RJbmRleCI6IjEwNyIsInN0YXR1c1B1cnBvc2UiOiJyZXZvY2F0aW9uIn19XX19._bc1ZDOpscJeivrMOyz4xE4KTbHlSo2Rh_w2xvjc7Lp7maho0YFoXGDP73boJimgCxD2QKkaDjy7zxANQjrMZw', }, }, ], }; const dcqlQuery = { credentials: [ { id: 'query_0', format: 'ldp_vc', meta: { type_values: [['VIDCredentialStudio']], }, }, ], }; const validationResult = await validateDcqlVp( presentation, 'audience', { dcqlQuery, }, ); expect(validationResult.valid).toBeFalsy(); expect(validationResult.messages[0]).toContain( 'ValidationError: JWT "aud" property MUST match the expected audience.', ); }); it('not validate a json verifiable presentation where the presentation holder does not match with credential holder', async () => { const presentation = { query_0: [ { id: 'urn:did:da75cf51-deaf-480a-a928-bbb213a2fc97', '@context': ['https://www.w3.org/2018/credentials/v1'], type: ['VerifiablePresentation'], holder: 'did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbp7cLZLRxsZuETk9BNg3oVaRTDQCN8uXayxyet5ZcjgZxvwnuMXYWGzs7LxX1s4GRbLUJwFJHFzEeNzBs6VwK8SJyjriKjE86xKFTEAwVs7qySHkr8Z3yimhsSL7bkcM7Nt', verifiableCredential: [ { '@context': [ 'https://www.w3.org/2018/credentials/v1', 'https://api.vidchain.net/api/v1/contexts/v1', ], id: 'urn:uuid:2e9319d6-c44e-4d29-b41c-94bbddda7c29', type: ['VerifiableCredential', 'EmailCredential'], issuer: { id: 'did:web:trust.validatedid.com', name: 'Validated ID SL', }, credentialStatus: { type: 'RevocationList2021', id: 'https://api.vidchain.net/api/v1/revocation/credential-status/status-list/36/credential/142', statusListCredential: 'https://api.vidchain.net/api/v1/revocation/status-list/36', statusListIndex: '142', }, issuanceDate: '2024-01-31T18:02:30.000Z', credentialSubject: { id: 'did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9KbsrfrzgYrM2gtte41XCEcyuB7mQvwEAcMpRvT3BR12rQc1AdBpRH7PgDsVbc5vdSFb7GSLN9woDp7MRBfRwt7JZX4JLFQ1ovxqpJn9exdP9Sez9DrMzavBD2MVqfPR85t4L', email: 'example@validatedid.com', }, proof: { type: 'JsonWebSignature2020', created: '2024-01-31T18:02:30.000Z', proofPurpose: 'assertionMethod', verificationMethod: 'did:web:trust.validatedid.com#key-0', jws: 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDp3ZWI6dHJ1c3QudmFsaWRhdGVkaWQuY29tI2tleS0wIn0.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vYXBpLnZpZGNoYWluLm5ldC9hcGkvdjEvY29udGV4dHMvdjEiXSwidHlwZSI6WyJWZXJpZmlhYmxlQ3JlZGVudGlhbCIsIkVtYWlsQ3JlZGVudGlhbCJdLCJpc3N1ZXIiOnsiaWQiOiJkaWQ6d2ViOnRydXN0LnZhbGlkYXRlZGlkLmNvbSIsIm5hbWUiOiJWYWxpZGF0ZWQgSUQgU0wifSwiaWQiOiJ1cm46dXVpZDoyZTkzMTlkNi1jNDRlLTRkMjktYjQxYy05NGJiZGRkYTdjMjkiLCJjcmVkZW50aWFsU3ViamVjdCI6eyJpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUtic3JmcnpnWXJNMmd0dGU0MVhDRWN5dUI3bVF2d0VBY01wUnZUM0JSMTJyUWMxQWRCcFJIN1BnRHNWYmM1dmRTRmI3R1NMTjl3b0RwN01SQmZSd3Q3SlpYNEpMRlExb3Z4cXBKbjlleGRQOVNlejlEck16YXZCRDJNVnFmUFI4NXQ0TCIsImVtYWlsIjoiZGZvbGNoY0Bob3RtYWlsLmNvbSJ9LCJjcmVkZW50aWFsU3RhdHVzIjp7InR5cGUiOiJSZXZvY2F0aW9uTGlzdDIwMjEiLCJpZCI6Imh0dHBzOi8vYXBpLnZpZGNoYWluLm5ldC9hcGkvdjEvcmV2b2NhdGlvbi9jcmVkZW50aWFsLXN0YXR1cy9zdGF0dXMtbGlzdC8zNi9jcmVkZW50aWFsLzE0MiIsInN0YXR1c0xpc3RDcmVkZW50aWFsIjoiaHR0cHM6Ly9hcGkudmlkY2hhaW4ubmV0L2FwaS92MS9yZXZvY2F0aW9uL3N0YXR1cy1saXN0LzM2Iiwic3RhdHVzTGlzdEluZGV4IjoiMTQyIn19LCJpYXQiOjE3MDY3MjQxNTAsImlzcyI6ImRpZDp3ZWI6dHJ1c3QudmFsaWRhdGVkaWQuY29tIn0.5g7HR4PbzRrwK_t-ty29UghPJCxufIrPg-t4k9bIscS2oaQi3cgrScUN6XOB6AqBPhT6AJz7sehS-rNxW0Gbdw', }, }, ], proof: { type: 'JsonWebSignature2020', created: '2024-01-31T18:02:30.000Z', proofPurpose: 'assertionMethod', verificationMethod: 'did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbp7cLZLRxsZuETk9BNg3oVaRTDQCN8uXayxyet5ZcjgZxvwnuMXYWGzs7LxX1s4GRbLUJwFJHFzEeNzBs6VwK8SJyjriKjE86xKFTEAwVs7qySHkr8Z3yimhsSL7bkcM7Nt#z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbp7cLZLRxsZuETk9BNg3oVaRTDQCN8uXayxyet5ZcjgZxvwnuMXYWGzs7LxX1s4GRbLUJwFJHFzEeNzBs6VwK8SJyjriKjE86xKFTEAwVs7qySHkr8Z3yimhsSL7bkcM7Nt', jws: 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticDdjTFpMUnhzWnVFVGs5Qk5nM29WYVJURFFDTjh1WGF5eHlldDVaY2pnWnh2d251TVhZV0d6czdMeFgxczRHUmJMVUp3RkpIRnpFZU56QnM2VndLOFNKeWpyaUtqRTg2eEtGVEVBd1ZzN3F5U0hrcjhaM3lpbWhzU0w3YmtjTTdOdCN6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JwN2NMWkxSeHNadUVUazlCTmczb1ZhUlREUUNOOHVYYXl4eWV0NVpjamdaeHZ3bnVNWFlXR3pzN0x4WDFzNEdSYkxVSndGSkhGekVlTnpCczZWd0s4U0p5anJpS2pFODZ4S0ZURUF3VnM3cXlTSGtyOFozeWltaHNTTDdia2NNN050In0.eyJpYXQiOjE3MTIzMTU0NDUsImV4cCI6NDg1OTc0MTcwMCwiaXNzIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JwN2NMWkxSeHNadUVUazlCTmczb1ZhUlREUUNOOHVYYXl4eWV0NVpjamdaeHZ3bnVNWFlXR3pzN0x4WDFzNEdSYkxVSndGSkhGekVlTnpCczZWd0s4U0p5anJpS2pFODZ4S0ZURUF3VnM3cXlTSGtyOFozeWltaHNTTDdia2NNN050IiwiYXVkIjoiYXVkaWVuY2UiLCJzdWIiOiJkaWQ6a2V5OnoyZG16RDgxY2dQeDhWa2k3SmJ1dU1tRllyV1BnWW95dHlrVVozZXlxaHQxajlLYnA3Y0xaTFJ4c1p1RVRrOUJOZzNvVmFSVERRQ044dVhheXh5ZXQ1WmNqZ1p4dndudU1YWVdHenM3THhYMXM0R1JiTFVKd0ZKSEZ6RWVOekJzNlZ3SzhTSnlqcmlLakU4NnhLRlRFQXdWczdxeVNIa3I4WjN5aW1oc1NMN2JrY003TnQiLCJuYmYiOjE3MTIzMTU0NDUsIm5vbmNlIjoiNzBjY2Y2ZTEtNGFjZi00YjQ4LWI4NTMtYmM1ZTVmNDUyM2IwIiwianRpIjoidXJuOmRpZDpkYTc1Y2Y1MS1kZWFmLTQ4MGEtYTkyOC1iYmIyMTNhMmZjOTciLCJ2cCI6eyJpZCI6InVybjpkaWQ6ZGE3NWNmNTEtZGVhZi00ODBhLWE5MjgtYmJiMjEzYTJmYzk3IiwiQGNvbnRleHQiOlsiaHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMvdjEiXSwidHlwZSI6WyJWZXJpZmlhYmxlUHJlc2VudGF0aW9uIl0sImhvbGRlciI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticDdjTFpMUnhzWnVFVGs5Qk5nM29WYVJURFFDTjh1WGF5eHlldDVaY2pnWnh2d251TVhZV0d6czdMeFgxczRHUmJMVUp3RkpIRnpFZU56QnM2VndLOFNKeWpyaUtqRTg2eEtGVEVBd1ZzN3F5U0hrcjhaM3lpbWhzU0w3YmtjTTdOdCIsInZlcmlmaWFibGVDcmVkZW50aWFsIjpbeyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vYXBpLnZpZGNoYWluLm5ldC9hcGkvdjEvY29udGV4dHMvdjEiXSwiaWQiOiJ1cm46dXVpZDoyZTkzMTlkNi1jNDRlLTRkMjktYjQxYy05NGJiZGRkYTdjMjkiLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiRW1haWxDcmVkZW50aWFsIl0sImlzc3VlciI6eyJpZCI6ImRpZDp3ZWI6dHJ1c3QudmFsaWRhdGVkaWQuY29tIiwibmFtZSI6IlZhbGlkYXRlZCBJRCBTTCJ9LCJjcmVkZW50aWFsU3RhdHVzIjp7InR5cGUiOiJSZXZvY2F0aW9uTGlzdDIwMjEiLCJpZCI6Imh0dHBzOi8vYXBpLnZpZGNoYWluLm5ldC9hcGkvdjEvcmV2b2NhdGlvbi9jcmVkZW50aWFsLXN0YXR1cy9zdGF0dXMtbGlzdC8zNi9jcmVkZW50aWFsLzE0MiIsInN0YXR1c0xpc3RDcmVkZW50aWFsIjoiaHR0cHM6Ly9hcGkudmlkY2hhaW4ubmV0L2FwaS92MS9yZXZvY2F0aW9uL3N0YXR1cy1saXN0LzM2Iiwic3RhdHVzTGlzdEluZGV4IjoiMTQyIn0sImlzc3VhbmNlRGF0ZSI6IjIwMjQtMDEtMzFUMTg6MDI6MzAuMDAwWiIsImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImlkIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JzcmZyemdZck0yZ3R0ZTQxWENFY3l1QjdtUXZ3RUFjTXBSdlQzQlIxMnJRYzFBZEJwUkg3UGdEc1ZiYzV2ZFNGYjdHU0xOOXdvRHA3TVJCZlJ3dDdKWlg0SkxGUTFvdnhxcEpuOWV4ZFA5U2V6OURyTXphdkJEMk1WcWZQUjg1dDRMIiwiZW1haWwiOiJleGFtcGxlQHZhbGlkYXRlZGlkLmNvbSJ9LCJwcm9vZiI6eyJ0eXBlIjoiSnNvbldlYlNpZ25hdHVyZTIwMjAiLCJjcmVhdGVkIjoiMjAyNC0wMS0zMVQxODowMjozMC4wMDBaIiwicHJvb2ZQdXJwb3NlIjoiYXNzZXJ0aW9uTWV0aG9kIiwidmVyaWZpY2F0aW9uTWV0aG9kIjoiZGlkOndlYjp0cnVzdC52YWxpZGF0ZWRpZC5jb20ja2V5LTAiLCJqd3MiOiJleUpoYkdjaU9pSkZVekkxTmlJc0luUjVjQ0k2SWtwWFZDSXNJbXRwWkNJNkltUnBaRHAzWldJNmRISjFjM1F1ZG1Gc2FXUmhkR1ZrYVdRdVkyOXRJMnRsZVMwd0luMC5leUoyWXlJNmV5SkFZMjl1ZEdWNGRDSTZXeUpvZEhSd2N6b3ZMM2QzZHk1M015NXZjbWN2TWpBeE9DOWpjbVZrWlc1MGFXRnNjeTkyTVNJc0ltaDBkSEJ6T2k4dllYQnBMblpwWkdOb1lXbHVMbTVsZEM5aGNHa3ZkakV2WTI5dWRHVjRkSE12ZGpFaVhTd2lkSGx3WlNJNld5SldaWEpwWm1saFlteGxRM0psWkdWdWRHbGhiQ0lzSWtWdFlXbHNRM0psWkdWdWRHbGhiQ0pkTENKcGMzTjFaWElpT25zaWFXUWlPaUprYVdRNmQyVmlPblJ5ZFhOMExuWmhiR2xrWVhSbFpHbGtMbU52YlNJc0ltNWhiV1VpT2lKV1lXeHBaR0YwWldRZ1NVUWdVMHdpZlN3aWFXUWlPaUoxY200NmRYVnBaRG95WlRrek1UbGtOaTFqTkRSbExUUmtNamt0WWpReFl5MDVOR0ppWkdSa1lUZGpNamtpTENKamNtVmtaVzUwYVdGc1UzVmlhbVZqZENJNmV5SnBaQ0k2SW1ScFpEcHJaWGs2ZWpKa2JYcEVPREZqWjFCNE9GWnJhVGRLWW5WMVRXMUdXWEpYVUdkWmIzbDBlV3RWV2pObGVYRm9kREZxT1V0aWMzSm1jbnBuV1hKTk1tZDBkR1UwTVZoRFJXTjVkVUkzYlZGMmQwVkJZMDF3VW5aVU0wSlNNVEp5VVdNeFFXUkNjRkpJTjFCblJITldZbU0xZG1SVFJtSTNSMU5NVGpsM2IwUndOMDFTUW1aU2QzUTNTbHBZTkVwTVJsRXhiM1o0Y1hCS2JqbGxlR1JRT1ZObGVqbEVjazE2WVhaQ1JESk5WbkZtVUZJNE5YUTBUQ0lzSW1WdFlXbHNJam9pWkdadmJHTm9ZMEJvYjNSdFlXbHNMbU52YlNKOUxDSmpjbVZrWlc1MGFXRnNVM1JoZEhWeklqcDdJblI1Y0dVaU9pSlNaWFp2WTJGMGFXOXVUR2x6ZERJd01qRWlMQ0pwWkNJNkltaDBkSEJ6T2k4dllYQnBMblpwWkdOb1lXbHVMbTVsZEM5aGNHa3ZkakV2Y21WMmIyTmhkR2x2Ymk5amNtVmtaVzUwYVdGc0xYTjBZWFIxY3k5emRHRjBkWE10YkdsemRDOHpOaTlqY21Wa1pXNTBhV0ZzTHpFME1pSXNJbk4wWVhSMWMweHBjM1JEY21Wa1pXNTBhV0ZzSWpvaWFIUjBjSE02THk5aGNHa3VkbWxrWTJoaGFXNHVibVYwTDJGd2FTOTJNUzl5WlhadlkyRjBhVzl1TDNOMFlYUjFjeTFzYVhOMEx6TTJJaXdpYzNSaGRIVnpUR2x6ZEVsdVpHVjRJam9pTVRReUluMTlMQ0pwWVhRaU9qRTNNRFkzTWpReE5UQXNJbWx6Y3lJNkltUnBaRHAzWldJNmRISjFjM1F1ZG1Gc2FXUmhkR1ZrYVdRdVkyOXRJbjAuNWc3SFI0UGJ6UnJ3S190LXR5MjlVZ2hQSkN4dWZJclBnLXQ0azliSXNjUzJvYVFpM2NnclNjVU42WE9CNkFxQlBoVDZBSno3c2VoUy1yTnhXMEdiZHcifX1dfX0.Vq6fXgHR6ZG6CaSPgeMsBcWwFYyqrTWLjPQ9Zy_OzR3sInGXoVicYdzkf7f83_NVzETxVW6VDDYOPfEohunwkw', }, }, ], }; const dcqlQuery = { credentials: [ { id: 'query_0', format: 'ldp_vc', meta: { type_values: [['EmailCredential']], }, }, ], }; const validationResult = await validateDcqlVp( presentation, 'audience', { dcqlQuery, }, ); expect(validationResult.valid).toBeFalsy(); expect(validationResult.messages).toEqual([ 'Presentation issuer does not match with credential holder. Credential Id: urn:uuid:2e9319d6-c44e-4d29-b41c-94bbddda7c29', ]); }); it('not validate a json verifiable presentation that presents an expired credential', async () => { const presentation = { query_0: [ { id: 'urn:did:49eb9b54-de39-4241-a703-9d5495ca8117', '@context': ['https://www.w3.org/2018/credentials/v1'], type: ['VerifiablePresentation'], holder: 'did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbp7cLZLRxsZuETk9BNg3oVaRTDQCN8uXayxyet5ZcjgZxvwnuMXYWGzs7LxX1s4GRbLUJwFJHFzEeNzBs6VwK8SJyjriKjE86xKFTEAwVs7qySHkr8Z3yimhsSL7bkcM7Nt', verifiableCredential: [ { '@context': ['https://www.w3.org/2018/credentials/v1'], id: 'vc:ebsi:conformance#2c53437a-e37d-415e-b073-a0acdb602370', type: [ 'VerifiableCredential', 'VerifiableAttestation', 'CTWalletCrossAuthorisedInTime', ], issuer: 'did:ebsi:zjHZjJ4Sy7r92BxXzFGs7qD', issuanceDate: '2024-03-25T15:48:28Z', issued: '2024-03-25T15:48:28Z', validFrom: '2024-03-25T15:48:28Z', expirationDate: '2024-03-26T15:48:28Z', credentialSubject: { id: 'did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbp7cLZLRxsZuETk9BNg3oVaRTDQCN8uXayxyet5ZcjgZxvwnuMXYWGzs7LxX1s4GRbLUJwFJHFzEeNzBs6VwK8SJyjriKjE86xKFTEAwVs7qySHkr8Z3yimhsSL7bkcM7Nt', }, credentialSchema: { id: 'https://api-conformance.ebsi.eu/trusted-schemas-registry/v3/schemas/z3MgUFUkb722uq4x3dv5yAJmnNmzDFeK5UC8x83QoeLJM', type: 'FullJsonSchemaValidator2021', }, termsOfUse: { id: 'https://api-conformance.ebsi.eu/trusted-issuers-registry/v5/issuers/did:ebsi:zjHZjJ4Sy7r92BxXzFGs7qD/attributes/bcdb6bc952c8c897ca1e605fce25f82604c76c16d479770014b7b262b93c0250', type: 'IssuanceCertificate', }, proof: { type: 'JsonWebSignature2020', created: '2024-03-25T12:27:28.000Z', proofPurpose: 'assertionMethod', verificationMethod: 'did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbp7cLZLRxsZuETk9BNg3oVaRTDQCN8uXayxyet5ZcjgZxvwnuMXYWGzs7LxX1s4GRbLUJwFJHFzEeNzBs6VwK8SJyjriKjE86xKFTEAwVs7qySHkr8Z3yimhsSL7bkcM7Nt#z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbo192gbRfxL17YDJKwoeuZJJv2nM8Mybypb7PRSgD7EB7y2A5beFeXofriDLZMFTLPSn2jHX94B3t2vJama86NdUuzZWPauk7EydiwaKuCifYF5tVv6x7Ed8WSmhf9N4oMv', jws: 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDplYnNpOnpqSFpqSjRTeTdyOTJCeFh6RkdzN3FEI1Q2aVBNVy1rOE80dXdaaWQyOUd3TGUtTmpnNDBFNmpOVDdoZExwSjNaU2cifQ.eyJqdGkiOiJ2YzplYnNpOmNvbmZvcm1hbmNlIzJjNTM0MzdhLWUzN2QtNDE1ZS1iMDczLWEwYWNkYjYwMjM3MCIsInN1YiI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticDdjTFpMUnhzWnVFVGs5Qk5nM29WYVJURFFDTjh1WGF5eHlldDVaY2pnWnh2d251TVhZV0d6czdMeFgxczRHUmJMVUp3RkpIRnpFZU56QnM2VndLOFNKeWpyaUtqRTg2eEtGVEVBd1ZzN3F5U0hrcjhaM3lpbWhzU0w3YmtjTTdOdCIsImlzcyI6ImRpZDplYnNpOnpqSFpqSjRTeTdyOTJCeFh6RkdzN3FEIiwibmJmIjoxNzExMzgxNzA4LCJleHAiOjE3MTE0NjgxMDgsImlhdCI6MTcxMTM4MTcwOCwidmMiOnsiQGNvbnRleHQiOlsiaHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMvdjEiXSwiaWQiOiJ2YzplYnNpOmNvbmZvcm1hbmNlIzJjNTM0MzdhLWUzN2QtNDE1ZS1iMDczLWEwYWNkYjYwMjM3MCIsInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJWZXJpZmlhYmxlQXR0ZXN0YXRpb24iLCJDVFdhbGxldENyb3NzQXV0aG9yaXNlZEluVGltZSJdLCJpc3N1ZXIiOiJkaWQ6ZWJzaTp6akhaako0U3k3cjkyQnhYekZHczdxRCIsImlzc3VhbmNlRGF0ZSI6IjIwMjQtMDMtMjVUMTU6NDg6MjhaIiwiaXNzdWVkIjoiMjAyNC0wMy0yNVQxNTo0ODoyOFoiLCJ2YWxpZEZyb20iOiIyMDI0LTAzLTI1VDE1OjQ4OjI4WiIsImV4cGlyYXRpb25EYXRlIjoiMjAyNC0wMy0yNlQxNTo0ODoyOFoiLCJjcmVkZW50aWFsU3ViamVjdCI6eyJpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticDdjTFpMUnhzWnVFVGs5Qk5nM29WYVJURFFDTjh1WGF5eHlldDVaY2pnWnh2d251TVhZV0d6czdMeFgxczRHUmJMVUp3RkpIRnpFZU56QnM2VndLOFNKeWpyaUtqRTg2eEtGVEVBd1ZzN3F5U0hrcjhaM3lpbWhzU0w3YmtjTTdOdCJ9LCJjcmVkZW50aWFsU2NoZW1hIjp7ImlkIjoiaHR0cHM6Ly9hcGktY29uZm9ybWFuY2UuZWJzaS5ldS90cnVzdGVkLXNjaGVtYXMtcmVnaXN0cnkvdjMvc2NoZW1hcy96M01nVUZVa2I3MjJ1cTR4M2R2NXlBSm1uTm16REZlSzVVQzh4ODNRb2VMSk0iLCJ0eXBlIjoiRnVsbEpzb25TY2hlbWFWYWxpZGF0b3IyMDIxIn0sInRlcm1zT2ZVc2UiOnsiaWQiOiJodHRwczovL2FwaS1jb25mb3JtYW5jZS5lYnNpLmV1L3RydXN0ZWQtaXNzdWVycy1yZWdpc3RyeS92NS9pc3N1ZXJzL2RpZDplYnNpOnpqSFpqSjRTeTdyOTJCeFh6RkdzN3FEL2F0dHJpYnV0ZXMvYmNkYjZiYzk1MmM4Yzg5N2NhMWU2MDVmY2UyNWY4MjYwNGM3NmMxNmQ0Nzk3NzAwMTRiN2IyNjJiOTNjMDI1MCIsInR5cGUiOiJJc3N1YW5jZUNlcnRpZmljYXRlIn19fQ.azlqOARyEQ5odSO1gW1Ud7_wXBYVCjE2K5G9X-Lty1t7E3JdrEXzPUOvUafYW5Lz5oy2Bu3T0EaVxNK5gxBH7w', }, }, ], proof: { type: 'JsonWebSignature2020', created: '2024-03-25T12:27:28.000Z', proofPurpose: 'assertionMethod', verificationMethod: 'did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbp7cLZLRxsZuETk9BNg3oVaRTDQCN8uXayxyet5ZcjgZxvwnuMXYWGzs7LxX1s4GRbLUJwFJHFzEeNzBs6VwK8SJyjriKjE86xKFTEAwVs7qySHkr8Z3yimhsSL7bkcM7Nt#z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbp7cLZLRxsZuETk9BNg3oVaRTDQCN8uXayxyet5ZcjgZxvwnuMXYWGzs7LxX1s4GRbLUJwFJHFzEeNzBs6VwK8SJyjriKjE86xKFTEAwVs7qySHkr8Z3yimhsSL7bkcM7Nt', jws: 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticDdjTFpMUnhzWnVFVGs5Qk5nM29WYVJURFFDTjh1WGF5eHlldDVaY2pnWnh2d251TVhZV0d6czdMeFgxczRHUmJMVUp3RkpIRnpFZU56QnM2VndLOFNKeWpyaUtqRTg2eEtGVEVBd1ZzN3F5U0hrcjhaM3lpbWhzU0w3YmtjTTdOdCN6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JwN2NMWkxSeHNadUVUazlCTmczb1ZhUlREUUNOOHVYYXl4eWV0NVpjamdaeHZ3bnVNWFlXR3pzN0x4WDFzNEdSYkxVSndGSkhGekVlTnpCczZWd0s4U0p5anJpS2pFODZ4S0ZURUF3VnM3cXlTSGtyOFozeWltaHNTTDdia2NNN050In0.eyJpYXQiOjE3MTIzMTgwNjgsImV4cCI6NDg1OTc0MTcwMCwiaXNzIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JwN2NMWkxSeHNadUVUazlCTmczb1ZhUlREUUNOOHVYYXl4eWV0NVpjamdaeHZ3bnVNWFlXR3pzN0x4WDFzNEdSYkxVSndGSkhGekVlTnpCczZWd0s4U0p5anJpS2pFODZ4S0ZURUF3VnM3cXlTSGtyOFozeWltaHNTTDdia2NNN050IiwiYXVkIjoiYXVkaWVuY2UiLCJzdWIiOiJkaWQ6a2V5OnoyZG16RDgxY2dQeDhWa2k3SmJ1dU1tRllyV1BnWW95dHlrVVozZXlxaHQxajlLYnA3Y0xaTFJ4c1p1RVRrOUJOZzNvVmFSVERRQ044dVhheXh5ZXQ1WmNqZ1p4dndudU1YWVdHenM3THhYMXM0R1JiTFVKd0ZKSEZ6RWVOekJzNlZ3SzhTSnlqcmlLakU4NnhLRlRFQXdWczdxeVNIa3I4WjN5aW1oc1NMN2JrY003TnQiLCJuYmYiOjE3MTIzMTgwNjgsIm5vbmNlIjoiNzBjY2Y2ZTEtNGFjZi00YjQ4LWI4NTMtYmM1ZTVmNDUyM2IwIiwianRpIjoidXJuOmRpZDo0OWViOWI1NC1kZTM5LTQyNDEtYTcwMy05ZDU0OTVjYTgxMTciLCJ2cCI6eyJpZCI6InVybjpkaWQ6NDllYjliNTQtZGUzOS00MjQxLWE3MDMtOWQ1NDk1Y2E4MTE3IiwiQGNvbnRleHQiOlsiaHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMvdjEiXSwidHlwZSI6WyJWZXJpZmlhYmxlUHJlc2VudGF0aW9uIl0sImhvbGRlciI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticDdjTFpMUnhzWnVFVGs5Qk5nM29WYVJURFFDTjh1WGF5eHlldDVaY2pnWnh2d251TVhZV0d6czdMeFgxczRHUmJMVUp3RkpIRnpFZU56QnM2VndLOFNKeWpyaUtqRTg2eEtGVEVBd1ZzN3F5U0hrcjhaM3lpbWhzU0w3YmtjTTdOdCIsInZlcmlmaWFibGVDcmVkZW50aWFsIjpbeyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSJdLCJpZCI6InZjOmVic2k6Y29uZm9ybWFuY2UjMmM1MzQzN2EtZTM3ZC00MTVlLWIwNzMtYTBhY2RiNjAyMzcwIiwidHlwZSI6WyJWZXJpZmlhYmxlQ3JlZGVudGlhbCIsIlZlcmlmaWFibGVBdHRlc3RhdGlvbiIsIkNUV2FsbGV0Q3Jvc3NBdXRob3Jpc2VkSW5UaW1lIl0sImlzc3VlciI6ImRpZDplYnNpOnpqSFpqSjRTeTdyOTJCeFh6RkdzN3FEIiwiaXNzdWFuY2VEYXRlIjoiMjAyNC0wMy0yNVQxNTo0ODoyOFoiLCJpc3N1ZWQiOiIyMDI0LTAzLTI1VDE1OjQ4OjI4WiIsInZhbGlkRnJvbSI6IjIwMjQtMDMtMjVUMTU6NDg6MjhaIiwiZXhwaXJhdGlvbkRhdGUiOiIyMDI0LTAzLTI2VDE1OjQ4OjI4WiIsImNyZWRlbnRpYWxTdWJqZWN0Ijp7ImlkIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JwN2NMWkxSeHNadUVUazlCTmczb1ZhUlREUUNOOHVYYXl4eWV0NVpjamdaeHZ3bnVNWFlXR3pzN0x4WDFzNEdSYkxVSndGSkhGekVlTnpCczZWd0s4U0p5anJpS2pFODZ4S0ZURUF3VnM3cXlTSGtyOFozeWltaHNTTDdia2NNN050In0sImNyZWRlbnRpYWxTY2hlbWEiOnsiaWQiOiJodHRwczovL2FwaS1jb25mb3JtYW5jZS5lYnNpLmV1L3RydXN0ZWQtc2NoZW1hcy1yZWdpc3RyeS92My9zY2hlbWFzL3ozTWdVRlVrYjcyMnVxNHgzZHY1eUFKbW5ObXpERmVLNVVDOHg4M1FvZUxKTSIsInR5cGUiOiJGdWxsSnNvblNjaGVtYVZhbGlkYXRvcjIwMjEifSwidGVybXNPZlVzZSI6eyJpZCI6Imh0dHBzOi8vYXBpLWNvbmZvcm1hbmNlLmVic2kuZXUvdHJ1c3RlZC1pc3N1ZXJzLXJlZ2lzdHJ5L3Y1L2lzc3VlcnMvZGlkOmVic2k6empIWmpKNFN5N3I5MkJ4WHpGR3M3cUQvYXR0cmlidXRlcy9iY2RiNmJjOTUyYzhjODk3Y2ExZTYwNWZjZTI1ZjgyNjA0Yzc2YzE2ZDQ3OTc3MDAxNGI3YjI2MmI5M2MwMjUwIiwidHlwZSI6Iklzc3VhbmNlQ2VydGlmaWNhdGUifSwicHJvb2YiOnsidHlwZSI6Ikpzb25XZWJTaWduYXR1cmUyMDIwIiwiY3JlYXRlZCI6IjIwMjQtMDMtMjVUMTI6Mjc6MjguMDAwWiIsInByb29mUHVycG9zZSI6ImFzc2VydGlvbk1ldGhvZCIsInZlcmlmaWNhdGlvbk1ldGhvZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticDdjTFpMUnhzWnVFVGs5Qk5nM29WYVJURFFDTjh1WGF5eHlldDVaY2pnWnh2d251TVhZV0d6czdMeFgxczRHUmJMVUp3RkpIRnpFZU56QnM2VndLOFNKeWpyaUtqRTg2eEtGVEVBd1ZzN3F5U0hrcjhaM3lpbWhzU0w3YmtjTTdOdCN6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JvMTkyZ2JSZnhMMTdZREpLd29ldVpKSnYybk04TXlieXBiN1BSU2dEN0VCN3kyQTViZUZlWG9mcmlETFpNRlRMUFNuMmpIWDk0QjN0MnZKYW1hODZOZFV1elpXUGF1azdFeWRpd2FLdUNpZllGNXRWdjZ4N0VkOFdTbWhmOU40b012IiwiandzIjoiZXlKaGJHY2lPaUpGVXpJMU5pSXNJblI1Y0NJNklrcFhWQ0lzSW10cFpDSTZJbVJwWkRwbFluTnBPbnBxU0ZwcVNqUlRlVGR5T1RKQ2VGaDZSa2R6TjNGRUkxUTJhVkJOVnkxck9FODBkWGRhYVdReU9VZDNUR1V0VG1wbk5EQkZObXBPVkRkb1pFeHdTak5hVTJjaWZRLmV5SnFkR2tpT2lKMll6cGxZbk5wT21OdmJtWnZjbTFoYm1ObEl6SmpOVE0wTXpkaExXVXpOMlF0TkRFMVpTMWlNRGN6TFdFd1lXTmtZall3TWpNM01DSXNJbk4xWWlJNkltUnBaRHByWlhrNmVqSmtiWHBFT0RGaloxQjRPRlpyYVRkS1luVjFUVzFHV1hKWFVHZFpiM2wwZVd0VldqTmxlWEZvZERGcU9VdGljRGRqVEZwTVVuaHpXblZGVkdzNVFrNW5NMjlXWVZKVVJGRkRUamgxV0dGNWVIbGxkRFZhWTJwblduaDJkMjUxVFZoWlYwZDZjemRNZUZneGN6UkhVbUpNVlVwM1JrcElSbnBGWlU1NlFuTTJWbmRMT0ZOS2VXcHlhVXRxUlRnMmVFdEdWRVZCZDFaek4zRjVVMGhyY2poYU0zbHBiV2h6VTB3M1ltdGpUVGRPZENJc0ltbHpjeUk2SW1ScFpEcGxZbk5wT25wcVNGcHFTalJUZVRkeU9USkNlRmg2Umtkek4zRkVJaXdpYm1KbUlqb3hOekV4TXpneE56QTRMQ0psZUhBaU9qRTNNVEUwTmpneE1EZ3NJbWxoZENJNk1UY3hNVE00TVRjd09Dd2lkbU1pT25zaVFHTnZiblJsZUhRaU9sc2lhSFIwY0hNNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TVRndlkzSmxaR1Z1ZEdsaGJITXZkakVpWFN3aWFXUWlPaUoyWXpwbFluTnBPbU52Ym1admNtMWhibU5sSXpKak5UTTBNemRoTFdVek4yUXROREUxWlMxaU1EY3pMV0V3WVdOa1lqWXdNak0zTUNJc0luUjVjR1VpT2xzaVZtVnlhV1pwWVdKc1pVTnlaV1JsYm5ScFlXd2lMQ0pXWlhKcFptbGhZbXhsUVhSMFpYTjBZWFJwYjI0aUxDSkRWRmRoYkd4bGRFTnliM056UVhWMGFHOXlhWE5sWkVsdVZHbHRaU0pkTENKcGMzTjFaWElpT2lKa2FXUTZaV0p6YVRwNmFraGFha28wVTNrM2Nqa3lRbmhZZWtaSGN6ZHhSQ0lzSW1semMzVmhibU5sUkdGMFpTSTZJakl3TWpRdE1ETXRNalZVTVRVNk5EZzZNamhhSWl3aWFYTnpkV1ZrSWpvaU1qQXlOQzB3TXkweU5WUXhOVG8wT0RveU9Gb2lMQ0oyWVd4cFpFWnliMjBpT2lJeU1ESTBMVEF6TFRJMVZERTFPalE0T2pJNFdpSXNJbVY0Y0dseVlYUnBiMjVFWVhSbElqb2lNakF5TkMwd015MHlObFF4TlRvME9Eb3lPRm9pTENKamNtVmtaVzUwYVdGc1UzVmlhbVZqZENJNmV5SnBaQ0k2SW1ScFpEcHJaWGs2ZWpKa2JYcEVPREZqWjFCNE9GWnJhVGRLWW5WMVRXMUdXWEpYVUdkWmIzbDBlV3RWV2pObGVYRm9kREZxT1V0aWNEZGpURnBNVW5oelduVkZWR3M1UWs1bk0yOVdZVkpVUkZGRFRqaDFXR0Y1ZUhsbGREVmFZMnBuV25oMmQyNTFUVmhaVjBkNmN6ZE1lRmd4Y3pSSFVtSk1WVXAzUmtwSVJucEZaVTU2UW5NMlZuZExPRk5LZVdweWFVdHFSVGcyZUV0R1ZFVkJkMVp6TjNGNVUwaHJjamhhTTNscGJXaHpVMHczWW10alRUZE9kQ0o5TENKamNtVmtaVzUwYVdGc1UyTm9aVzFoSWpwN0ltbGtJam9pYUhSMGNITTZMeTloY0drdFkyOXVabTl5YldGdVkyVXVaV0p6YVM1bGRTOTBjblZ6ZEdWa0xYTmphR1Z0WVhNdGNtVm5hWE4wY25rdmRqTXZjMk5vWlcxaGN5OTZNMDFuVlVaVmEySTNNakoxY1RSNE0yUjJOWGxCU20xdVRtMTZSRVpsU3pWVlF6aDRPRE5SYjJWTVNrMGlMQ0owZVhCbElqb2lSblZzYkVwemIyNVRZMmhsYldGV1lXeHBaR0YwYjNJeU1ESXhJbjBzSW5SbGNtMXpUMlpWYzJVaU9uc2lhV1FpT2lKb2RIUndjem92TDJGd2FTMWpiMjVtYjNKdFlXNWpaUzVsWW5OcExtVjFMM1J5ZFhOMFpXUXRhWE56ZFdWeWN5MXlaV2RwYzNSeWVTOTJOUzlwYzNOMVpYSnpMMlJwWkRwbFluTnBPbnBxU0ZwcVNqUlRlVGR5T1RKQ2VGaDZSa2R6TjNGRUwyRjBkSEpwWW5WMFpYTXZZbU5rWWpaaVl6azFNbU00WXpnNU4yTmhNV1UyTURWbVkyVXlOV1k0TWpZd05HTTNObU14Tm1RME56azNOekF3TVRSaU4ySXlOakppT1ROak1ESTFNQ0lzSW5SNWNHVWlPaUpKYzNOMVlXNWpaVU5sY25ScFptbGpZWFJsSW4xOWZRLmF6bHFPQVJ5RVE1b2RTTzFnVzFVZDdfd1hCWVZDakUySzVHOVgtTHR5MXQ3RTNKZHJFWHpQVU92VWFmWVc1THo1b3kyQnUzVDBFYVZ4Tks1Z3hCSDd3In19XX19.LJ-t3bH9yqfTXruOvrS8ifW7uRVfWprE6jRR2dxEGYTdYTx1hzdI88DF5WSZnBDCSYg6MnartXnEKnCcNmQ5Tg', }, }, ], }; const dcqlQuery = { credentials: [ { id: 'query_0', format: 'ldp_vc', meta: { type_values: [['CTWalletCrossAuthorisedInTime']], }, }, ], }; const validationResult = await validateDcqlVp( presentation, 'audience', { dcqlQuery, }, ); expect(validationResult.valid).toBeFalsy(); expect(validationResult.messages).toEqual([ 'vc:ebsi:conformance#2c53437a-e37d-415e-b073-a0acdb602370 is expired', ]); }); }); describe('in jwt format', () => { it(' validate a valid jwt verifiable presentation using VerifiablePresentationValidator with DCQL', async () => { const presentation = { query_0: [ 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticWZzcWVoQkJQN2tvQWdkY0c2VWVNSFFnSlpwUEs0SmlOVG1aVWJqM0pnZTg3ZUp4dmlUa3NmMmFBdXVMVE15YUdtRVBOOXZFUDNRUlIzQU1BVGVTa1dZQ2tMamV3UTRLbkw2OHdoSDN1b2twYjdlVmtkQnN2N3JkTU0zVHJBMmJOVSN6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JxZnNxZWhCQlA3a29BZ2RjRzZVZU1IUWdKWnBQSzRKaU5UbVpVYmozSmdlODdlSnh2aVRrc2YyYUF1dUxUTXlhR21FUE45dkVQM1FSUjNBTUFUZVNrV1lDa0xqZXdRNEtuTDY4d2hIM3Vva3BiN2VWa2RCc3Y3cmRNTTNUckEyYk5VIn0.eyJpYXQiOjE3Njg5MTk4NzcsImV4cCI6NDkyMjUxOTg3NiwiaXNzIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JxZnNxZWhCQlA3a29BZ2RjRzZVZU1IUWdKWnBQSzRKaU5UbVpVYmozSmdlODdlSnh2aVRrc2YyYUF1dUxUTXlhR21FUE45dkVQM1FSUjNBTUFUZVNrV1lDa0xqZXdRNEtuTDY4d2hIM3Vva3BiN2VWa2RCc3Y3cmRNTTNUckEyYk5VIiwiYXVkIjoiZGVjZW50cmFsaXplZF9pZGVudGlmaWVyOmRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUtickRGQmt0bktyR2tva1VTUHJIUm5VZVIyZmdvWnF0VFF0UFVXYmNMeldOVFNFSlVlTTVzdjJUN2U5TG51QzNnVmhMajZjWUd1ZEtxbkJUOUxGcXBYdFJFYzNQbjE4QWIzbjFvM3pYdnhkWm0yelBNU2NnR25rWHc2cEJ1dkRXS2d0TCIsInN1YiI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticWZzcWVoQkJQN2tvQWdkY0c2VWVNSFFnSlpwUEs0SmlOVG1aVWJqM0pnZTg3ZUp4dmlUa3NmMmFBdXVMVE15YUdtRVBOOXZFUDNRUlIzQU1BVGVTa1dZQ2tMamV3UTRLbkw2OHdoSDN1b2twYjdlVmtkQnN2N3JkTU0zVHJBMmJOVSIsIm5iZiI6MTc2ODkxOTg3Niwibm9uY2UiOiJLdnFZeXdLVlBTaVFUXzNXSnNFTi1BIiwianRpIjoidXJuOmRpZDpiNGY1NGQ4NS04ZDQwLTRlZjgtOTEzMy1hNjBkOTYyYWVjZTkiLCJ2cCI6eyJpZCI6InVybjpkaWQ6YjRmNTRkODUtOGQ0MC00ZWY4LTkxMzMtYTYwZDk2MmFlY2U5IiwiQGNvbnRleHQiOlsiaHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMvdjEiXSwidHlwZSI6WyJWZXJpZmlhYmxlUHJlc2VudGF0aW9uIl0sImhvbGRlciI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticWZzcWVoQkJQN2tvQWdkY0c2VWVNSFFnSlpwUEs0SmlOVG1aVWJqM0pnZTg3ZUp4dmlUa3NmMmFBdXVMVE15YUdtRVBOOXZFUDNRUlIzQU1BVGVTa1dZQ2tMamV3UTRLbkw2OHdoSDN1b2twYjdlVmtkQnN2N3JkTU0zVHJBMmJOVSIsInZlcmlmaWFibGVDcmVkZW50aWFsIjpbeyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiXSwidHlwZSI6WyJWZXJpZmlhYmxlQ3JlZGVudGlhbCIsIkVtYWlsQ3JlZGVudGlhbCJdLCJpZCI6InVybjp1dWlkOmMxOGVkYTQ4LTA5MGEtNDk1OS1iZjU4LTJkZWRlODk4NGNhYyIsImlzc3VlciI6eyJpZCI6ImRpZDp3ZWI6c3RhZ2luZy52aWRjaGFpbi5uZXQ6YXBpOnYxOmRpZC13ZWItcmVzb2x2ZXI6ZDNkZjQwOWQtMDE1Yi00MWI0LWFhMzEtYmQ3ZjQzODQwNTRmIiwibmFtZSI6IlZhbGlkYXRlZCBJRCBTTCJ9LCJjcmVkZW50aWFsU3ViamVjdCI6eyJpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticWZzcWVoQkJQN2tvQWdkY0c2VWVNSFFnSlpwUEs0SmlOVG1aVWJqM0pnZTg3ZUp4dmlUa3NmMmFBdXVMVE15YUdtRVBOOXZFUDNRUlIzQU1BVGVTa1dZQ2tMamV3UTRLbkw2OHdoSDN1b2twYjdlVmtkQnN2N3JkTU0zVHJBMmJOVSIsImVtYWlsIjoiaXNhYWMub2xsZUBzaWduYXR1cml0LmNvbSJ9LCJwcm9vZiI6eyJ0eXBlIjoiSnNvbldlYlNpZ25hdHVyZTIwMjAiLCJjcmVhdGVkIjoiMjAyNi0wMS0yMFQwOTo0Njo0MC4wMDBaIiwicHJvb2ZQdXJwb3NlIjoiYXNzZXJ0aW9uTWV0aG9kIiwidmVyaWZpY2F0aW9uTWV0aG9kIjoiZGlkOndlYjpzdGFnaW5nLnZpZGNoYWluLm5ldDphcGk6djE6ZGlkLXdlYi1yZXNvbHZlcjpkM2RmNDA5ZC0wMTViLTQxYjQtYWEzMS1iZDdmNDM4NDA1NGYja2V5LTAiLCJqd3MiOiJleUpoYkdjaU9pSkZVekkxTmlJc0luUjVjQ0k2SWtwWFZDSXNJbXRwWkNJNkltUnBaRHAzWldJNmMzUmhaMmx1Wnk1MmFXUmphR0ZwYmk1dVpYUTZZWEJwT25ZeE9tUnBaQzEzWldJdGNtVnpiMngyWlhJNlpETmtaalF3T1dRdE1ERTFZaTAwTVdJMExXRmhNekV0WW1RM1pqUXpPRFF3TlRSbUkydGxlUzB3SW4wLmV5SjJZeUk2ZXlKQVkyOXVkR1Y0ZENJNld5Sm9kSFJ3Y3pvdkwzZDNkeTUzTXk1dmNtY3Zibk12WTNKbFpHVnVkR2xoYkhNdmRqSWlYU3dpYVdRaU9pSjFjbTQ2ZFhWcFpEcGpNVGhsWkdFME9DMHdPVEJoTFRRNU5Ua3RZbVkxT0MweVpHVmtaVGc1T0RSallXTWlMQ0owZVhCbElqcGJJbFpsY21sbWFXRmliR1ZEY21Wa1pXNTBhV0ZzSWl3aVJXMWhhV3hEY21Wa1pXNTBhV0ZzSWwwc0ltTnlaV1JsYm5ScFlXeFRkV0pxWldOMElqcDdJbWxrSWpvaVpHbGtPbXRsZVRwNk1tUnRla1E0TVdOblVIZzRWbXRwTjBwaWRYVk5iVVpaY2xkUVoxbHZlWFI1YTFWYU0yVjVjV2gwTVdvNVMySnhabk54WldoQ1FsQTNhMjlCWjJSalJ6WlZaVTFJVVdkS1duQlFTelJLYVU1VWJWcFZZbW96U21kbE9EZGxTbmgyYVZScmMyWXlZVUYxZFV4VVRYbGhSMjFGVUU0NWRrVlFNMUZTVWpOQlRVRlVaVk5yVjFsRGEweHFaWGRSTkV0dVREWTRkMmhJTTNWdmEzQmlOMlZXYTJSQ2MzWTNjbVJOVFROVWNrRXlZazVWSWl3aVpXMWhhV3dpT2lKcGMyRmhZeTV2Ykd4bFFITnBaMjVoZEhWeWFYUXVZMjl0SW4wc0ltbHpjM1ZsY2lJNmV5SnBaQ0k2SW1ScFpEcDNaV0k2YzNSaFoybHVaeTUyYVdSamFHRnBiaTV1WlhRNllYQnBPbll4T21ScFpDMTNaV0l0Y21WemIyeDJaWEk2WkROa1pqUXdPV1F0TURFMVlpMDBNV0kwTFdGaE16RXRZbVEzWmpRek9EUXdOVFJtSWl3aWJtRnRaU0k2SWxaaGJHbGtZWFJsWkNCSlJDQlRUQ0o5TENKMllXeHBaRVp5YjIwaU9pSXlNREkyTFRBeExUSXdWREE1T2pRMk9qUXdXaUlzSW1OeVpXUmxiblJwWVd4VGRHRjBkWE1pT25zaWFXUWlPaUpvZEhSd2N6b3ZMM04wWVdkcGJtY3RjM1IxWkdsdkxuWnBaR05vWVdsdUxtNWxkQzkyYVdSamNtVmtaVzUwYVdGc2N5MXpkSFZrYVc4dllYQnBMM1l4TDNOMFlYUjFjeTFzYVhOMExXTnlaV1JsYm5ScFlXd3ZPVEVqT0Rjeklpd2ljM1JoZEhWelRHbHpkRU55WldSbGJuUnBZV3dpT2lKb2RIUndjem92TDNOMFlXZHBibWN0YzNSMVpHbHZMblpwWkdOb1lXbHVMbTVsZEM5MmFXUmpjbVZrWlc1MGFXRnNjeTF6ZEhWa2FXOHZZWEJwTDNZeEwzTjBZWFIxY3kxc2FYTjBMV055WldSbGJuUnBZV3d2T1RFaUxDSnpkR0YwZFhOTWFYTjBTVzVrWlhnaU9pSTROek1pTENKMGVYQmxJam9pVW1WMmIyTmhkR2x2Ymt4cGMzUXlNREl4VTNSaGRIVnpJaXdpYzNSaGRIVnpVSFZ5Y0c5elpTSTZJbkpsZG05allYUnBiMjRpZlgwc0ltNWlaaUk2TVRjMk9Ea3dNalF3TUN3aWFYTnpJam9pWkdsa09uZGxZanB6ZEdGbmFXNW5MblpwWkdOb1lXbHVMbTVsZERwaGNHazZkakU2Wkdsa0xYZGxZaTF5WlhOdmJIWmxjanBrTTJSbU5EQTVaQzB3TVRWaUxUUXhZalF0WVdFek1TMWlaRGRtTkRNNE5EQTFOR1lpTENKcFlYUWlPakUzTmpnNU1ESTBNREFzSW5OMVlpSTZJbVJwWkRwclpYazZlakprYlhwRU9ERmpaMUI0T0ZacmFUZEtZblYxVFcxR1dYSlhVR2RaYjNsMGVXdFZXak5sZVhGb2RERnFPVXRpY1daemNXVm9Ra0pRTjJ0dlFXZGtZMGMyVldWTlNGRm5TbHB3VUVzMFNtbE9WRzFhVldKcU0wcG5aVGczWlVwNGRtbFVhM05tTW1GQmRYVk1WRTE1WVVkdFJWQk9PWFpGVUROUlVsSXpRVTFCVkdWVGExZFpRMnRNYW1WM1VUUkxia3cyT0hkb1NETjFiMnR3WWpkbFZtdGtRbk4yTjNKa1RVMHpWSEpCTW1KT1ZTSXNJbXAwYVNJNkluVnlianAxZFdsa09tTXhPR1ZrWVRRNExUQTVNR0V0TkRrMU9TMWlaalU0TFRKa1pXUmxPRGs0TkdOaFl5SjkueEhjYjlrTmVnQmFhaXNEd0dDRVBaMVRLS3NhY3BCd3pPMjRfQWdyOEJRblkzamY1eGNpYnlXam16SW5RMXVnMW40S29uOFdQN2loZGpocFdBQi1JSHcifSwidmFsaWRGcm9tIjoiMjAyNi0wMS0yMFQwOTo0Njo0MFoiLCJjcmVkZW50aWFsU3RhdHVzIjp7ImlkIjoiaHR0cHM6Ly9zdGFnaW5nLXN0dWRpby52aWRjaGFpbi5uZXQvdmlkY3JlZGVudGlhbHMtc3R1ZGlvL2FwaS92MS9zdGF0dXMtbGlzdC1jcmVkZW50aWFsLzkxIzg3MyIsInN0YXR1c0xpc3RDcmVkZW50aWFsIjoiaHR0cHM6Ly9zdGFnaW5nLXN0dWRpby52aWRjaGFpbi5uZXQvdmlkY3JlZGVudGlhbHMtc3R1ZGlvL2FwaS92MS9zdGF0dXMtbGlzdC1jcmVkZW50aWFsLzkxIiwic3RhdHVzTGlzdEluZGV4IjoiODczIiwidHlwZSI6IlJldm9jYXRpb25MaXN0MjAyMVN0YXR1cyIsInN0YXR1c1B1cnBvc2UiOiJyZXZvY2F0aW9uIn19XX19.rrP242r0qjag_XCUhoqbiIHHO69dx79iAdeC_vpxexLUS424TNssFGVIEAL1wZNgdq2Jy8-Jl0roRNb72TTVKQ', ], }; const dcqlQuery = { credentials: [ { id: 'query_0', format: 'ldp_vc', meta: { type_values: [['EmailCredential']], }, }, ], }; const validationResult = await validateDcqlVp( presentation, 'decentralized_identifier:did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9KbrDFBktnKrGkokUSPrHRnUeR2fgoZqtTQtPUWbcLzWNTSEJUeM5sv2T7e9LnuC3gVhLj6cYGudKqnBT9LFqpXtREc3Pn18Ab3n1o3zXvxdZm2zPMScgGnkXw6pBuvDWKgtL', { dcqlQuery, }, ); expect(validationResult.valid).toBeTruthy(); }); it('not validate a jwt verifiable presentation where the presentation holder does not match with credential holder', async () => { const presentation = { query_0: [ 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticWZzcWVoQkJQN2tvQWdkY0c2VWVNSFFnSlpwUEs0SmlOVG1aVWJqM0pnZTg3ZUp4dmlUa3NmMmFBdXVMVE15YUdtRVBOOXZFUDNRUlIzQU1BVGVTa1dZQ2tMamV3UTRLbkw2OHdoSDN1b2twYjdlVmtkQnN2N3JkTU0zVHJBMmJOVSN6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JxZnNxZWhCQlA3a29BZ2RjRzZVZU1IUWdKWnBQSzRKaU5UbVpVYmozSmdlODdlSnh2aVRrc2YyYUF1dUxUTXlhR21FUE45dkVQM1FSUjNBTUFUZVNrV1lDa0xqZXdRNEtuTDY4d2hIM3Vva3BiN2VWa2RCc3Y3cmRNTTNUckEyYk5VIn0.eyJpYXQiOjE3Njg5MjAwMTAsImV4cCI6NDkyMjUyMDAxMCwiaXNzIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JxZnNxZWhCQlA3a29BZ2RjRzZVZU1IUWdKWnBQSzRKaU5UbVpVYmozSmdlODdlSnh2aVRrc2YyYUF1dUxUTXlhR21FUE45dkVQM1FSUjNBTUFUZVNrV1lDa0xqZXdRNEtuTDY4d2hIM3Vva3BiN2VWa2RCc3Y3cmRNTTNUckEyYk5VIiwiYXVkIjoiZGVjZW50cmFsaXplZF9pZGVudGlmaWVyOmRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUtickRGQmt0bktyR2tva1VTUHJIUm5VZVIyZmdvWnF0VFF0UFVXYmNMeldOVFNFSlVlTTVzdjJUN2U5TG51QzNnVmhMajZjWUd1ZEtxbkJUOUxGcXBYdFJFYzNQbjE4QWIzbjFvM3pYdnhkWm0yelBNU2NnR25rWHc2cEJ1dkRXS2d0TCIsInN1YiI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticWZzcWVoQkJQN2tvQWdkY0c2VWVNSFFnSlpwUEs0SmlOVG1aVWJqM0pnZTg3ZUp4dmlUa3NmMmFBdXVMVE15YUdtRVBOOXZFUDNRUlIzQU1BVGVTa1dZQ2tMamV3UTRLbkw2OHdoSDN1b2twYjdlVmtkQnN2N3JkTU0zVHJBMmJOVSIsIm5iZiI6MTc2ODkyMDAxMCwibm9uY2UiOiJ3VlpZNXI5ZzdzLWhUQWRBbklNc0t3IiwianRpIjoidXJuOmRpZDpkMzVhYWUwYi0xZWU0LTQxNjAtOTQ3Yy1jZmZmMDNkZGYyOGEiLCJ2cCI6eyJpZCI6InVybjpkaWQ6ZDM1YWFlMGItMWVlNC00MTYwLTk0N2MtY2ZmZjAzZGRmMjhhIiwiQGNvbnRleHQiOlsiaHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMvdjEiXSwidHlwZSI6WyJWZXJpZmlhYmxlUHJlc2VudGF0aW9uIl0sImhvbGRlciI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticWZzcWVoQkJQN2tvQWdkY0c2VWVNSFFnSlpwUEs0SmlOVG1aVWJqM0pnZTg3ZUp4dmlUa3NmMmFBdXVMVE15YUdtRVBOOXZFUDNRUlIzQU1BVGVTa1dZQ2tMamV3UTRLbkw2OHdoSDN1b2twYjdlVmtkQnN2N3JkTU0zVHJBMmJOVSIsInZlcmlmaWFibGVDcmVkZW50aWFsIjpbeyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vYXBpLnZpZGNoYWluLm5ldC9hcGkvdjEvY29udGV4dHMvdjEiXSwiaWQiOiJ1cm46dXVpZDphYzZiNzI4Yi0yMjQxLTQ5MGQtOWI5My04ZDQ2YzA5OWI0YzQiLCJ0eXBlIjpbIlZlcmlmaWFibGVDcmVkZW50aWFsIiwiVGVzdFR5cGUiXSwiaXNzdWVyIjp7ImlkIjoiZGlkOndlYjpzdGFnaW5nLnZpZGNoYWluLm5ldDphcGk6djE6ZGlkLXdlYi1yZXNvbHZlcjoyZTkzY2FiMC1hZjI0LTRkNzItOWJjMS1mM2I4YTVjMTEzNWUiLCJuYW1lIjoiUG9zdG1hbiBFbnRpdHkifSwiY3JlZGVudGlhbFN0YXR1cyI6eyJ0eXBlIjoiUmV2b2NhdGlvbkxpc3QyMDIxIiwiaWQiOiJodHRwczovL3N0YWdpbmcudmlkY2hhaW4ubmV0L2FwaS92MS9yZXZvY2F0aW9uL2NyZWRlbnRpYWwtc3RhdHVzL3N0YXR1cy1saXN0Lzg4L2NyZWRlbnRpYWwvNTAiLCJzdGF0dXNMaXN0Q3JlZGVudGlhbCI6Imh0dHBzOi8vc3RhZ2luZy52aWRjaGFpbi5uZXQvYXBpL3YxL3Jldm9jYXRpb24vc3RhdHVzLWxpc3QvODgiLCJzdGF0dXNMaXN0SW5kZXgiOiI1MCJ9LCJpc3N1YW5jZURhdGUiOiIyMDI0LTA0LTA4VDA3OjU4OjM0LjAwMFoiLCJjcmVkZW50aWFsU3ViamVjdCI6eyJpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticm05RHJna0JrWVNVQ0N6Ym80eTFpUU5yaGtkRGVBUkdOeThwdXgzN1lnTDlNaHVVaVA1Y25WaGQxdURCWGROVmlKeHdHYnJkVVB0SjZZWUVuRFE4dFBXQVpVaVRwR3VRcUxXOFZBdENzeHVlbzJZR1pGVlFlb2lGOFRjNEtHaUNUdiIsIm5hbWUiOiJCaWFuY2EiLCJhZ2UiOjMwfSwicHJvb2YiOnsidHlwZSI6Ikpzb25XZWJTaWduYXR1cmUyMDIwIiwiY3JlYXRlZCI6IjIwMjQtMDQtMDhUMDc6NTg6MzQuMDAwWiIsInByb29mUHVycG9zZSI6ImFzc2VydGlvbk1ldGhvZCIsInZlcmlmaWNhdGlvbk1ldGhvZCI6ImRpZDp3ZWI6c3RhZ2luZy52aWRjaGFpbi5uZXQ6YXBpOnYxOmRpZC13ZWItcmVzb2x2ZXI6MmU5M2NhYjAtYWYyNC00ZDcyLTliYzEtZjNiOGE1YzExMzVlI2tleS0wIiwiandzIjoiZXlKaGJHY2lPaUpGVXpJMU5pSXNJblI1Y0NJNklrcFhWQ0lzSW10cFpDSTZJbVJwWkRwM1pXSTZjM1JoWjJsdVp5NTJhV1JqYUdGcGJpNXVaWFE2WVhCcE9uWXhPbVJwWkMxM1pXSXRjbVZ6YjJ4MlpYSTZNbVU1TTJOaFlqQXRZV1l5TkMwMFpEY3lMVGxpWXpFdFpqTmlPR0UxWXpFeE16VmxJMnRsZVMwd0luMC5leUoyWXlJNmV5SkFZMjl1ZEdWNGRDSTZXeUpvZEhSd2N6b3ZMM2QzZHk1M015NXZjbWN2TWpBeE9DOWpjbVZrWlc1MGFXRnNjeTkyTVNJc0ltaDBkSEJ6T2k4dllYQnBMblpwWkdOb1lXbHVMbTVsZEM5aGNHa3ZkakV2WTI5dWRHVjRkSE12ZGpFaVhTd2lkSGx3WlNJNld5SldaWEpwWm1saFlteGxRM0psWkdWdWRHbGhiQ0lzSWxSbGMzUlVlWEJsSWwwc0ltbHpjM1ZsY2lJNmV5SnBaQ0k2SW1ScFpEcDNaV0k2YzNSaFoybHVaeTUyYVdSamFHRnBiaTV1WlhRNllYQnBPbll4T21ScFpDMTNaV0l0Y21WemIyeDJaWEk2TW1VNU0yTmhZakF0WVdZeU5DMDBaRGN5TFRsaVl6RXRaak5pT0dFMVl6RXhNelZsSWl3aWJtRnRaU0k2SWxCdmMzUnRZVzRnUlc1MGFYUjVJbjBzSW1sa0lqb2lkWEp1T25WMWFXUTZZV00yWWpjeU9HSXRNakkwTVMwME9UQmtMVGxpT1RNdE9HUTBObU13T1RsaU5HTTBJaXdpWTNKbFpHVnVkR2xoYkZOMVltcGxZM1FpT25zaWFXUWlPaUprYVdRNmEyVjVPbm95WkcxNlJEZ3hZMmRRZURoV2EyazNTbUoxZFUxdFJsbHlWMUJuV1c5NWRIbHJWVm96WlhseGFIUXhhamxMWW5KdE9VUnlaMnRDYTFsVFZVTkRlbUp2TkhreGFWRk9jbWhyWkVSbFFWSkhUbms0Y0hWNE16ZFpaMHc1VFdoMVZXbFFOV051Vm1oa01YVkVRbGhrVGxacFNuaDNSMkp5WkZWUWRFbzJXVmxGYmtSUk9IUlFWMEZhVldsVWNFZDFVWEZNVnpoV1FYUkRjM2gxWlc4eVdVZGFSbFpSWlc5cFJqaFVZelJMUjJsRFZIWWlMQ0p1WVcxbElqb2lRbWxoYm1OaElpd2lZV2RsSWpvek1IMHNJbU55WldSbGJuUnBZV3hUZEdGMGRYTWlPbnNpZEhsd1pTSTZJbEpsZG05allYUnBiMjVNYVhOME1qQXlNU0lzSW1sa0lqb2lhSFIwY0hNNkx5OXpkR0ZuYVc1bkxuWnBaR05vWVdsdUxtNWxkQzloY0drdmRqRXZjbVYyYjJOaGRHbHZiaTlqY21Wa1pXNTBhV0ZzTFhOMFlYUjFjeTl6ZEdGMGRYTXRiR2x6ZEM4NE9DOWpjbVZrWlc1MGFXRnNMelV3SWl3aWMzUmhkSFZ6VEdsemRFTnlaV1JsYm5ScFlXd2lPaUpvZEhSd2N6b3ZMM04wWVdkcGJtY3VkbWxrWTJoaGFXNHVibVYwTDJGd2FTOTJNUzl5WlhadlkyRjBhVzl1TDNOMFlYUjFjeTFzYVhOMEx6ZzRJaXdpYzNSaGRIVnpUR2x6ZEVsdVpHVjRJam9pTlRBaWZYMHNJbWxoZENJNk1UY3hNalUyTXpFeE5Dd2lhWE56SWpvaVpHbGtPbmRsWWpwemRHRm5hVzVuTG5acFpHTm9ZV2x1TG01bGREcGhjR2s2ZGpFNlpHbGtMWGRsWWkxeVpYTnZiSFpsY2pveVpUa3pZMkZpTUMxaFpqSTBMVFJrTnpJdE9XSmpNUzFtTTJJNFlUVmpNVEV6TldVaWZRLk5VYzAwRFBuUGpCUHNKeUlmQzBxQU1VX182UG16cWNNRExUMHNwb1N5RzJPdlVtYW9SMUU5dF9POGNISzltOW1lQTYtUzV5RDVBVDRQd1dpOWVodU93In19XX19.s-mnzimazhwhfH5lbwxPbTc-HXeirAoO-Ut6iI1ktgnVckuaKF8uM1r3W2VYlz9sQMtrzkkk-UcLv9kUjB4tTQ', ], }; const dcqlQuery = { credentials: [ { id: 'query_0', format: 'ldp_vc', meta: { type_values: [['TestType']], }, }, ], }; const validationResult = await validateDcqlVp( presentation, 'decentralized_identifier:did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9KbrDFBktnKrGkokUSPrHRnUeR2fgoZqtTQtPUWbcLzWNTSEJUeM5sv2T7e9LnuC3gVhLj6cYGudKqnBT9LFqpXtREc3Pn18Ab3n1o3zXvxdZm2zPMScgGnkXw6pBuvDWKgtL', { dcqlQuery, }, ); expect(validationResult.valid).toBeFalsy(); expect(validationResult.messages).toEqual([ 'Presentation issuer does not match with credential holder. Credential Id: urn:uuid:ac6b728b-2241-490d-9b93-8d46c099b4c4', ]); }); it('not validate a jwt verifiable presentation that presents a revoked credential', async () => { const presentation = { query_0: [ 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticWZzcWVoQkJQN2tvQWdkY0c2VWVNSFFnSlpwUEs0SmlOVG1aVWJqM0pnZTg3ZUp4dmlUa3NmMmFBdXVMVE15YUdtRVBOOXZFUDNRUlIzQU1BVGVTa1dZQ2tMamV3UTRLbkw2OHdoSDN1b2twYjdlVmtkQnN2N3JkTU0zVHJBMmJOVSN6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JxZnNxZWhCQlA3a29BZ2RjRzZVZU1IUWdKWnBQSzRKaU5UbVpVYmozSmdlODdlSnh2aVRrc2YyYUF1dUxUTXlhR21FUE45dkVQM1FSUjNBTUFUZVNrV1lDa0xqZXdRNEtuTDY4d2hIM3Vva3BiN2VWa2RCc3Y3cmRNTTNUckEyYk5VIn0.eyJpYXQiOjE3Njg5MjIwMDAsImV4cCI6NDkyMjUyMjAwMCwiaXNzIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JxZnNxZWhCQlA3a29BZ2RjRzZVZU1IUWdKWnBQSzRKaU5UbVpVYmozSmdlODdlSnh2aVRrc2YyYUF1dUxUTXlhR21FUE45dkVQM1FSUjNBTUFUZVNrV1lDa0xqZXdRNEtuTDY4d2hIM3Vva3BiN2VWa2RCc3Y3cmRNTTNUckEyYk5VIiwiYXVkIjoiZGVjZW50cmFsaXplZF9pZGVudGlmaWVyOmRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUtickRGQmt0bktyR2tva1VTUHJIUm5VZVIyZmdvWnF0VFF0UFVXYmNMeldOVFNFSlVlTTVzdjJUN2U5TG51QzNnVmhMajZjWUd1ZEtxbkJUOUxGcXBYdFJFYzNQbjE4QWIzbjFvM3pYdnhkWm0yelBNU2NnR25rWHc2cEJ1dkRXS2d0TCIsInN1YiI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticWZzcWVoQkJQN2tvQWdkY0c2VWVNSFFnSlpwUEs0SmlOVG1aVWJqM0pnZTg3ZUp4dmlUa3NmMmFBdXVMVE15YUdtRVBOOXZFUDNRUlIzQU1BVGVTa1dZQ2tMamV3UTRLbkw2OHdoSDN1b2twYjdlVmtkQnN2N3JkTU0zVHJBMmJOVSIsIm5iZiI6MTc2ODkyMjAwMCwibm9uY2UiOiIwTjJ2UzNkWGNWbjhwN3lramFXbmpBIiwianRpIjoidXJuOmRpZDpiM2QxOWNkNy0zMDMwLTQ1MDAtODFiZi01MWY1ZmZmYzgyMGMiLCJ2cCI6eyJpZCI6InVybjpkaWQ6YjNkMTljZDctMzAzMC00NTAwLTgxYmYtNTFmNWZmZmM4MjBjIiwiQGNvbnRleHQiOlsiaHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMvdjEiXSwidHlwZSI6WyJWZXJpZmlhYmxlUHJlc2VudGF0aW9uIl0sImhvbGRlciI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticWZzcWVoQkJQN2tvQWdkY0c2VWVNSFFnSlpwUEs0SmlOVG1aVWJqM0pnZTg3ZUp4dmlUa3NmMmFBdXVMVE15YUdtRVBOOXZFUDNRUlIzQU1BVGVTa1dZQ2tMamV3UTRLbkw2OHdoSDN1b2twYjdlVmtkQnN2N3JkTU0zVHJBMmJOVSIsInZlcmlmaWFibGVDcmVkZW50aWFsIjpbeyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiXSwidHlwZSI6WyJWZXJpZmlhYmxlQ3JlZGVudGlhbCIsIkVtYWlsQ3JlZGVudGlhbCJdLCJpZCI6InVybjp1dWlkOmI1YzcxODcyLTVlNzktNDg2Zi04NGMyLTMxNzFmOTBhMTU2ZiIsImlzc3VlciI6eyJpZCI6ImRpZDp3ZWI6c3RhZ2luZy52aWRjaGFpbi5uZXQ6YXBpOnYxOmRpZC13ZWItcmVzb2x2ZXI6ZDNkZjQwOWQtMDE1Yi00MWI0LWFhMzEtYmQ3ZjQzODQwNTRmIiwibmFtZSI6IlZhbGlkYXRlZCBJRCBTTCJ9LCJjcmVkZW50aWFsU3ViamVjdCI6eyJpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticWZzcWVoQkJQN2tvQWdkY0c2VWVNSFFnSlpwUEs0SmlOVG1aVWJqM0pnZTg3ZUp4dmlUa3NmMmFBdXVMVE15YUdtRVBOOXZFUDNRUlIzQU1BVGVTa1dZQ2tMamV3UTRLbkw2OHdoSDN1b2twYjdlVmtkQnN2N3JkTU0zVHJBMmJOVSIsImVtYWlsIjoiaXNhYWMub2xsZUBzaWduYXR1cml0LmNvbSJ9LCJwcm9vZiI6eyJ0eXBlIjoiSnNvbldlYlNpZ25hdHVyZTIwMjAiLCJjcmVhdGVkIjoiMjAyNi0wMS0yMFQxNTowNjoxOC4wMDBaIiwicHJvb2ZQdXJwb3NlIjoiYXNzZXJ0aW9uTWV0aG9kIiwidmVyaWZpY2F0aW9uTWV0aG9kIjoiZGlkOndlYjpzdGFnaW5nLnZpZGNoYWluLm5ldDphcGk6djE6ZGlkLXdlYi1yZXNvbHZlcjpkM2RmNDA5ZC0wMTViLTQxYjQtYWEzMS1iZDdmNDM4NDA1NGYja2V5LTAiLCJqd3MiOiJleUpoYkdjaU9pSkZVekkxTmlJc0luUjVjQ0k2SWtwWFZDSXNJbXRwWkNJNkltUnBaRHAzWldJNmMzUmhaMmx1Wnk1MmFXUmphR0ZwYmk1dVpYUTZZWEJwT25ZeE9tUnBaQzEzWldJdGNtVnpiMngyWlhJNlpETmtaalF3T1dRdE1ERTFZaTAwTVdJMExXRmhNekV0WW1RM1pqUXpPRFF3TlRSbUkydGxlUzB3SW4wLmV5SjJZeUk2ZXlKQVkyOXVkR1Y0ZENJNld5Sm9kSFJ3Y3pvdkwzZDNkeTUzTXk1dmNtY3Zibk12WTNKbFpHVnVkR2xoYkhNdmRqSWlYU3dpYVdRaU9pSjFjbTQ2ZFhWcFpEcGlOV00zTVRnM01pMDFaVGM1TFRRNE5tWXRPRFJqTWkwek1UY3haamt3WVRFMU5tWWlMQ0owZVhCbElqcGJJbFpsY21sbWFXRmliR1ZEY21Wa1pXNTBhV0ZzSWl3aVJXMWhhV3hEY21Wa1pXNTBhV0ZzSWwwc0ltTnlaV1JsYm5ScFlXeFRkV0pxWldOMElqcDdJbWxrSWpvaVpHbGtPbXRsZVRwNk1tUnRla1E0TVdOblVIZzRWbXRwTjBwaWRYVk5iVVpaY2xkUVoxbHZlWFI1YTFWYU0yVjVjV2gwTVdvNVMySnhabk54WldoQ1FsQTNhMjlCWjJSalJ6WlZaVTFJVVdkS1duQlFTelJLYVU1VWJWcFZZbW96U21kbE9EZGxTbmgyYVZScmMyWXlZVUYxZFV4VVRYbGhSMjFGVUU0NWRrVlFNMUZTVWpOQlRVRlVaVk5yVjFsRGEweHFaWGRSTkV0dVREWTRkMmhJTTNWdmEzQmlOMlZXYTJSQ2MzWTNjbVJOVFROVWNrRXlZazVWSWl3aVpXMWhhV3dpT2lKcGMyRmhZeTV2Ykd4bFFITnBaMjVoZEhWeWFYUXVZMjl0SW4wc0ltbHpjM1ZsY2lJNmV5SnBaQ0k2SW1ScFpEcDNaV0k2YzNSaFoybHVaeTUyYVdSamFHRnBiaTV1WlhRNllYQnBPbll4T21ScFpDMTNaV0l0Y21WemIyeDJaWEk2WkROa1pqUXdPV1F0TURFMVlpMDBNV0kwTFdGaE16RXRZbVEzWmpRek9EUXdOVFJtSWl3aWJtRnRaU0k2SWxaaGJHbGtZWFJsWkNCSlJDQlRUQ0o5TENKMllXeHBaRVp5YjIwaU9pSXlNREkyTFRBeExUSXdWREUxT2pBMk9qRTRXaUlzSW1OeVpXUmxiblJwWVd4VGRHRjBkWE1pT25zaWFXUWlPaUpvZEhSd2N6b3ZMM04wWVdkcGJtY3RjM1IxWkdsdkxuWnBaR05vWVdsdUxtNWxkQzkyYVdSamNtVmtaVzUwYVdGc2N5MXpkSFZrYVc4dllYQnBMM1l4TDNOMFlYUjFjeTFzYVhOMExXTnlaV1JsYm5ScFlXd3ZPVEVqT0RjMklpd2ljM1JoZEhWelRHbHpkRU55WldSbGJuUnBZV3dpT2lKb2RIUndjem92TDNOMFlXZHBibWN0YzNSMVpHbHZMblpwWkdOb1lXbHVMbTVsZEM5MmFXUmpjbVZrWlc1MGFXRnNjeTF6ZEhWa2FXOHZZWEJwTDNZeEwzTjBZWFIxY3kxc2FYTjBMV055WldSbGJuUnBZV3d2T1RFaUxDSnpkR0YwZFhOTWFYTjBTVzVrWlhnaU9pSTROellpTENKMGVYQmxJam9pVW1WMmIyTmhkR2x2Ymt4cGMzUXlNREl4VTNSaGRIVnpJaXdpYzNSaGRIVnpVSFZ5Y0c5elpTSTZJbkpsZG05allYUnBiMjRpZlgwc0ltNWlaaUk2TVRjMk9Ea3lNVFUzT0N3aWFYTnpJam9pWkdsa09uZGxZanB6ZEdGbmFXNW5MblpwWkdOb1lXbHVMbTVsZERwaGNHazZkakU2Wkdsa0xYZGxZaTF5WlhOdmJIWmxjanBrTTJSbU5EQTVaQzB3TVRWaUxUUXhZalF0WVdFek1TMWlaRGRtTkRNNE5EQTFOR1lpTENKcFlYUWlPakUzTmpnNU1qRTFOemdzSW5OMVlpSTZJbVJwWkRwclpYazZlakprYlhwRU9ERmpaMUI0T0ZacmFUZEtZblYxVFcxR1dYSlhVR2RaYjNsMGVXdFZXak5sZVhGb2RERnFPVXRpY1daemNXVm9Ra0pRTjJ0dlFXZGtZMGMyVldWTlNGRm5TbHB3VUVzMFNtbE9WRzFhVldKcU0wcG5aVGczWlVwNGRtbFVhM05tTW1GQmRYVk1WRTE1WVVkdFJWQk9PWFpGVUROUlVsSXpRVTFCVkdWVGExZFpRMnRNYW1WM1VUUkxia3cyT0hkb1NETjFiMnR3WWpkbFZtdGtRbk4yTjNKa1RVMHpWSEpCTW1KT1ZTSXNJbXAwYVNJNkluVnlianAxZFdsa09tSTFZemN4T0RjeUxUVmxOemt0TkRnMlppMDROR015TFRNeE56Rm1PVEJoTVRVMlppSjkuMkFIcjNHcmptT19tWFJrM0N0ZUVoUlBZUjFjSVVZaGk3OE9oaUNYSmZuR1dNR0kxQXo1QzhvcHVrcHVRN0lmQWNYLUZOY2tMd0JranVsMTlGLUVwTFEifSwidmFsaWRGcm9tIjoiMjAyNi0wMS0yMFQxNTowNjoxOFoiLCJjcmVkZW50aWFsU3RhdHVzIjp7ImlkIjoiaHR0cHM6Ly9zdGFnaW5nLXN0dWRpby52aWRjaGFpbi5uZXQvdmlkY3JlZGVudGlhbHMtc3R1ZGlvL2FwaS92MS9zdGF0dXMtbGlzdC1jcmVkZW50aWFsLzkxIzg3NiIsInN0YXR1c0xpc3RDcmVkZW50aWFsIjoiaHR0cHM6Ly9zdGFnaW5nLXN0dWRpby52aWRjaGFpbi5uZXQvdmlkY3JlZGVudGlhbHMtc3R1ZGlvL2FwaS92MS9zdGF0dXMtbGlzdC1jcmVkZW50aWFsLzkxIiwic3RhdHVzTGlzdEluZGV4IjoiODc2IiwidHlwZSI6IlJldm9jYXRpb25MaXN0MjAyMVN0YXR1cyIsInN0YXR1c1B1cnBvc2UiOiJyZXZvY2F0aW9uIn19XX19.qh6AwDNpWijOJoBeLUZDrC1hlJZJ_MB_nYTiI1ZD5hRINVswUco7ugOYhwFUpoUwgJlZ0YZUCIgZrFQ9sThdow', ], }; const dcqlQuery = { credentials: [ { id: 'query_0', format: 'ldp_vc', meta: { type_values: [['EmailCredential']], }, }, ], }; const validationResult = await validateDcqlVp( presentation, 'decentralized_identifier:did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9KbrDFBktnKrGkokUSPrHRnUeR2fgoZqtTQtPUWbcLzWNTSEJUeM5sv2T7e9LnuC3gVhLj6cYGudKqnBT9LFqpXtREc3Pn18Ab3n1o3zXvxdZm2zPMScgGnkXw6pBuvDWKgtL', { dcqlQuery, }, ); expect(validationResult.valid).toBeFalsy(); expect(validationResult.messages).toEqual([ 'urn:uuid:b5c71872-5e79-486f-84c2-3171f90a156f is revoked', ]); }); it('not validate a jwt verifiable presentation presenting a credential not satisfying DCQL query', async () => { const presentation = { query_0: [ 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticWZzcWVoQkJQN2tvQWdkY0c2VWVNSFFnSlpwUEs0SmlOVG1aVWJqM0pnZTg3ZUp4dmlUa3NmMmFBdXVMVE15YUdtRVBOOXZFUDNRUlIzQU1BVGVTa1dZQ2tMamV3UTRLbkw2OHdoSDN1b2twYjdlVmtkQnN2N3JkTU0zVHJBMmJOVSN6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JxZnNxZWhCQlA3a29BZ2RjRzZVZU1IUWdKWnBQSzRKaU5UbVpVYmozSmdlODdlSnh2aVRrc2YyYUF1dUxUTXlhR21FUE45dkVQM1FSUjNBTUFUZVNrV1lDa0xqZXdRNEtuTDY4d2hIM3Vva3BiN2VWa2RCc3Y3cmRNTTNUckEyYk5VIn0.eyJpYXQiOjE3Njg5MTk4NzcsImV4cCI6NDkyMjUxOTg3NiwiaXNzIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JxZnNxZWhCQlA3a29BZ2RjRzZVZU1IUWdKWnBQSzRKaU5UbVpVYmozSmdlODdlSnh2aVRrc2YyYUF1dUxUTXlhR21FUE45dkVQM1FSUjNBTUFUZVNrV1lDa0xqZXdRNEtuTDY4d2hIM3Vva3BiN2VWa2RCc3Y3cmRNTTNUckEyYk5VIiwiYXVkIjoiZGVjZW50cmFsaXplZF9pZGVudGlmaWVyOmRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUtickRGQmt0bktyR2tva1VTUHJIUm5VZVIyZmdvWnF0VFF0UFVXYmNMeldOVFNFSlVlTTVzdjJUN2U5TG51QzNnVmhMajZjWUd1ZEtxbkJUOUxGcXBYdFJFYzNQbjE4QWIzbjFvM3pYdnhkWm0yelBNU2NnR25rWHc2cEJ1dkRXS2d0TCIsInN1YiI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticWZzcWVoQkJQN2tvQWdkY0c2VWVNSFFnSlpwUEs0SmlOVG1aVWJqM0pnZTg3ZUp4dmlUa3NmMmFBdXVMVE15YUdtRVBOOXZFUDNRUlIzQU1BVGVTa1dZQ2tMamV3UTRLbkw2OHdoSDN1b2twYjdlVmtkQnN2N3JkTU0zVHJBMmJOVSIsIm5iZiI6MTc2ODkxOTg3Niwibm9uY2UiOiJLdnFZeXdLVlBTaVFUXzNXSnNFTi1BIiwianRpIjoidXJuOmRpZDpiNGY1NGQ4NS04ZDQwLTRlZjgtOTEzMy1hNjBkOTYyYWVjZTkiLCJ2cCI6eyJpZCI6InVybjpkaWQ6YjRmNTRkODUtOGQ0MC00ZWY4LTkxMzMtYTYwZDk2MmFlY2U5IiwiQGNvbnRleHQiOlsiaHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMvdjEiXSwidHlwZSI6WyJWZXJpZmlhYmxlUHJlc2VudGF0aW9uIl0sImhvbGRlciI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticWZzcWVoQkJQN2tvQWdkY0c2VWVNSFFnSlpwUEs0SmlOVG1aVWJqM0pnZTg3ZUp4dmlUa3NmMmFBdXVMVE15YUdtRVBOOXZFUDNRUlIzQU1BVGVTa1dZQ2tMamV3UTRLbkw2OHdoSDN1b2twYjdlVmtkQnN2N3JkTU0zVHJBMmJOVSIsInZlcmlmaWFibGVDcmVkZW50aWFsIjpbeyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiXSwidHlwZSI6WyJWZXJpZmlhYmxlQ3JlZGVudGlhbCIsIkVtYWlsQ3JlZGVudGlhbCJdLCJpZCI6InVybjp1dWlkOmMxOGVkYTQ4LTA5MGEtNDk1OS1iZjU4LTJkZWRlODk4NGNhYyIsImlzc3VlciI6eyJpZCI6ImRpZDp3ZWI6c3RhZ2luZy52aWRjaGFpbi5uZXQ6YXBpOnYxOmRpZC13ZWItcmVzb2x2ZXI6ZDNkZjQwOWQtMDE1Yi00MWI0LWFhMzEtYmQ3ZjQzODQwNTRmIiwibmFtZSI6IlZhbGlkYXRlZCBJRCBTTCJ9LCJjcmVkZW50aWFsU3ViamVjdCI6eyJpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticWZzcWVoQkJQN2tvQWdkY0c2VWVNSFFnSlpwUEs0SmlOVG1aVWJqM0pnZTg3ZUp4dmlUa3NmMmFBdXVMVE15YUdtRVBOOXZFUDNRUlIzQU1BVGVTa1dZQ2tMamV3UTRLbkw2OHdoSDN1b2twYjdlVmtkQnN2N3JkTU0zVHJBMmJOVSIsImVtYWlsIjoiaXNhYWMub2xsZUBzaWduYXR1cml0LmNvbSJ9LCJwcm9vZiI6eyJ0eXBlIjoiSnNvbldlYlNpZ25hdHVyZTIwMjAiLCJjcmVhdGVkIjoiMjAyNi0wMS0yMFQwOTo0Njo0MC4wMDBaIiwicHJvb2ZQdXJwb3NlIjoiYXNzZXJ0aW9uTWV0aG9kIiwidmVyaWZpY2F0aW9uTWV0aG9kIjoiZGlkOndlYjpzdGFnaW5nLnZpZGNoYWluLm5ldDphcGk6djE6ZGlkLXdlYi1yZXNvbHZlcjpkM2RmNDA5ZC0wMTViLTQxYjQtYWEzMS1iZDdmNDM4NDA1NGYja2V5LTAiLCJqd3MiOiJleUpoYkdjaU9pSkZVekkxTmlJc0luUjVjQ0k2SWtwWFZDSXNJbXRwWkNJNkltUnBaRHAzWldJNmMzUmhaMmx1Wnk1MmFXUmphR0ZwYmk1dVpYUTZZWEJwT25ZeE9tUnBaQzEzWldJdGNtVnpiMngyWlhJNlpETmtaalF3T1dRdE1ERTFZaTAwTVdJMExXRmhNekV0WW1RM1pqUXpPRFF3TlRSbUkydGxlUzB3SW4wLmV5SjJZeUk2ZXlKQVkyOXVkR1Y0ZENJNld5Sm9kSFJ3Y3pvdkwzZDNkeTUzTXk1dmNtY3Zibk12WTNKbFpHVnVkR2xoYkhNdmRqSWlYU3dpYVdRaU9pSjFjbTQ2ZFhWcFpEcGpNVGhsWkdFME9DMHdPVEJoTFRRNU5Ua3RZbVkxT0MweVpHVmtaVGc1T0RSallXTWlMQ0owZVhCbElqcGJJbFpsY21sbWFXRmliR1ZEY21Wa1pXNTBhV0ZzSWl3aVJXMWhhV3hEY21Wa1pXNTBhV0ZzSWwwc0ltTnlaV1JsYm5ScFlXeFRkV0pxWldOMElqcDdJbWxrSWpvaVpHbGtPbXRsZVRwNk1tUnRla1E0TVdOblVIZzRWbXRwTjBwaWRYVk5iVVpaY2xkUVoxbHZlWFI1YTFWYU0yVjVjV2gwTVdvNVMySnhabk54WldoQ1FsQTNhMjlCWjJSalJ6WlZaVTFJVVdkS1duQlFTelJLYVU1VWJWcFZZbW96U21kbE9EZGxTbmgyYVZScmMyWXlZVUYxZFV4VVRYbGhSMjFGVUU0NWRrVlFNMUZTVWpOQlRVRlVaVk5yVjFsRGEweHFaWGRSTkV0dVREWTRkMmhJTTNWdmEzQmlOMlZXYTJSQ2MzWTNjbVJOVFROVWNrRXlZazVWSWl3aVpXMWhhV3dpT2lKcGMyRmhZeTV2Ykd4bFFITnBaMjVoZEhWeWFYUXVZMjl0SW4wc0ltbHpjM1ZsY2lJNmV5SnBaQ0k2SW1ScFpEcDNaV0k2YzNSaFoybHVaeTUyYVdSamFHRnBiaTV1WlhRNllYQnBPbll4T21ScFpDMTNaV0l0Y21WemIyeDJaWEk2WkROa1pqUXdPV1F0TURFMVlpMDBNV0kwTFdGaE16RXRZbVEzWmpRek9EUXdOVFJtSWl3aWJtRnRaU0k2SWxaaGJHbGtZWFJsWkNCSlJDQlRUQ0o5TENKMllXeHBaRVp5YjIwaU9pSXlNREkyTFRBeExUSXdWREE1T2pRMk9qUXdXaUlzSW1OeVpXUmxiblJwWVd4VGRHRjBkWE1pT25zaWFXUWlPaUpvZEhSd2N6b3ZMM04wWVdkcGJtY3RjM1IxWkdsdkxuWnBaR05vWVdsdUxtNWxkQzkyYVdSamNtVmtaVzUwYVdGc2N5MXpkSFZrYVc4dllYQnBMM1l4TDNOMFlYUjFjeTFzYVhOMExXTnlaV1JsYm5ScFlXd3ZPVEVqT0Rjeklpd2ljM1JoZEhWelRHbHpkRU55WldSbGJuUnBZV3dpT2lKb2RIUndjem92TDNOMFlXZHBibWN0YzNSMVpHbHZMblpwWkdOb1lXbHVMbTVsZEM5MmFXUmpjbVZrWlc1MGFXRnNjeTF6ZEhWa2FXOHZZWEJwTDNZeEwzTjBZWFIxY3kxc2FYTjBMV055WldSbGJuUnBZV3d2T1RFaUxDSnpkR0YwZFhOTWFYTjBTVzVrWlhnaU9pSTROek1pTENKMGVYQmxJam9pVW1WMmIyTmhkR2x2Ymt4cGMzUXlNREl4VTNSaGRIVnpJaXdpYzNSaGRIVnpVSFZ5Y0c5elpTSTZJbkpsZG05allYUnBiMjRpZlgwc0ltNWlaaUk2TVRjMk9Ea3dNalF3TUN3aWFYTnpJam9pWkdsa09uZGxZanB6ZEdGbmFXNW5MblpwWkdOb1lXbHVMbTVsZERwaGNHazZkakU2Wkdsa0xYZGxZaTF5WlhOdmJIWmxjanBrTTJSbU5EQTVaQzB3TVRWaUxUUXhZalF0WVdFek1TMWlaRGRtTkRNNE5EQTFOR1lpTENKcFlYUWlPakUzTmpnNU1ESTBNREFzSW5OMVlpSTZJbVJwWkRwclpYazZlakprYlhwRU9ERmpaMUI0T0ZacmFUZEtZblYxVFcxR1dYSlhVR2RaYjNsMGVXdFZXak5sZVhGb2RERnFPVXRpY1daemNXVm9Ra0pRTjJ0dlFXZGtZMGMyVldWTlNGRm5TbHB3VUVzMFNtbE9WRzFhVldKcU0wcG5aVGczWlVwNGRtbFVhM05tTW1GQmRYVk1WRTE1WVVkdFJWQk9PWFpGVUROUlVsSXpRVTFCVkdWVGExZFpRMnRNYW1WM1VUUkxia3cyT0hkb1NETjFiMnR3WWpkbFZtdGtRbk4yTjNKa1RVMHpWSEpCTW1KT1ZTSXNJbXAwYVNJNkluVnlianAxZFdsa09tTXhPR1ZrWVRRNExUQTVNR0V0TkRrMU9TMWlaalU0TFRKa1pXUmxPRGs0TkdOaFl5SjkueEhjYjlrTmVnQmFhaXNEd0dDRVBaMVRLS3NhY3BCd3pPMjRfQWdyOEJRblkzamY1eGNpYnlXam16SW5RMXVnMW40S29uOFdQN2loZGpocFdBQi1JSHcifSwidmFsaWRGcm9tIjoiMjAyNi0wMS0yMFQwOTo0Njo0MFoiLCJjcmVkZW50aWFsU3RhdHVzIjp7ImlkIjoiaHR0cHM6Ly9zdGFnaW5nLXN0dWRpby52aWRjaGFpbi5uZXQvdmlkY3JlZGVudGlhbHMtc3R1ZGlvL2FwaS92MS9zdGF0dXMtbGlzdC1jcmVkZW50aWFsLzkxIzg3MyIsInN0YXR1c0xpc3RDcmVkZW50aWFsIjoiaHR0cHM6Ly9zdGFnaW5nLXN0dWRpby52aWRjaGFpbi5uZXQvdmlkY3JlZGVudGlhbHMtc3R1ZGlvL2FwaS92MS9zdGF0dXMtbGlzdC1jcmVkZW50aWFsLzkxIiwic3RhdHVzTGlzdEluZGV4IjoiODczIiwidHlwZSI6IlJldm9jYXRpb25MaXN0MjAyMVN0YXR1cyIsInN0YXR1c1B1cnBvc2UiOiJyZXZvY2F0aW9uIn19XX19.rrP242r0qjag_XCUhoqbiIHHO69dx79iAdeC_vpxexLUS424TNssFGVIEAL1wZNgdq2Jy8-Jl0roRNb72TTVKQ', ], }; const dcqlQuery = { credentials: [ { id: 'query_0', format: 'ldp_vc', meta: { type_values: [['TestType']], }, }, ], }; const validationResult = await validateDcqlVp( presentation, 'decentralized_identifier:did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9KbrDFBktnKrGkokUSPrHRnUeR2fgoZqtTQtPUWbcLzWNTSEJUeM5sv2T7e9LnuC3gVhLj6cYGudKqnBT9LFqpXtREc3Pn18Ab3n1o3zXvxdZm2zPMScgGnkXw6pBuvDWKgtL', { dcqlQuery, }, ); expect(validationResult.valid).toBeFalsy(); expect(validationResult.messages).toEqual([ 'Credential presented does not satisfy Presentation Query with id query_0.', ]); }); it('not validate a jwt verifiable presentation presenting a jwt credential, Presentation expired', async () => { const presentation = { 'verifiableattestation_a83dc638-d931-4da7-a68b-a356470308dd': [ 'eyJraWQiOiIiLCJhbGciOiJFUzI1NksiLCJ0eXAiOiJKV1QifQ.eyJpYXQiOjE3MDkxMTU0OTAsImV4cCI6MTc2OTc3MzAwOCwiaXNzIjoiZGVjZW50cmFsaXplZF9pZGVudGlmaWVyOmRpZDprZXk6elEzc2hpNE50UHh3NW9LZ2lrTEtnNGVNRmZvaEZaOUR2SlhaUVA3anZRWWdEbmhwNSIsImF1ZCI6ImRlY2VudHJhbGl6ZWRfaWRlbnRpZmllcjpkaWQ6a2V5OnoyZG16RDgxY2dQeDhWa2k3SmJ1dU1tRllyV1BnWW95dHlrVVozZXlxaHQxajlLYnI0eENBb0Y0bnhzdFNrRVZyRUQ3RlJjYWN2RGs4eVplN3RMYktRcTFyTWJFWDZOd2JheG1KQnR2QmdmS0tOTFVyOW9kbmEydDdlRmROTTk0Q1NBZ2tYSm96UEZUNjFhTXg1aG9tSFROYmNNOU5zeWRnaUxGZlR2bXhXcTZvclBIdHAiLCJzdWIiOiJkZWNlbnRyYWxpemVkX2lkZW50aWZpZXI6ZGlkOmtleTp6UTNzaGk0TnRQeHc1b0tnaWtMS2c0ZU1GZm9oRlo5RHZKWFpRUDdqdlFZZ0RuaHA1IiwibmJmIjoxNzA5MTE1NDkwLCJub25jZSI6IjQ0OTgzYzU3LWRiMjktNGQ0MC1hZjNlLWZjNzQyODkyNTgzYyIsInN0YXRlIjoiNjk1NDMxMDEtMmZmZC00MzY1LTk4NjctYThjNDA2YmZjMDk5IiwianRpIjoidXJuOmRpZDpmM2Q4NGFjYS00YWZlLTRlN2YtYjUwZS05NDFhZDFmN2U1YzUiLCJ2cCI6eyJpZCI6InVybjpkaWQ6ZjNkODRhY2EtNGFmZS00ZTdmLWI1MGUtOTQxYWQxZjdlNWM1IiwiQGNvbnRleHQiOlsiaHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMvdjEiXSwidHlwZSI6WyJWZXJpZmlhYmxlUHJlc2VudGF0aW9uIl0sImhvbGRlciI6ImRpZDprZXk6elEzc2hpNE50UHh3NW9LZ2lrTEtnNGVNRmZvaEZaOUR2SlhaUVA3anZRWWdEbmhwNSIsInZlcmlmaWFibGVDcmVkZW50aWFsIjpbImV5SmhiR2NpT2lKRlV6STFOaUlzSW5SNWNDSTZJa3BYVkNJc0ltdHBaQ0k2SW1ScFpEcGxZbk5wT25weWNtMVFkWFJLVFRWaloyUnFSMUZHTkdORWVUVmlJM1JDTmkxVWIya3hXbEpPUzNWZlJFZGlaR1ZyYlV4RE4yRTNUekowYWtSRFEzWmpVRmR5Y2tsTE0yTWlmUS5leUpxZEdraU9pSjFjbTQ2Wkdsa09qRXlNelExTmlJc0luTjFZaUk2SW1ScFpEcHJaWGs2ZWpKa2JYcEVPREZqWjFCNE9GWnJhVGRLWW5WMVRXMUdXWEpYVUdkWmIzbDBlV3RWV2pObGVYRm9kREZxT1V0aWNEZGpURnBNVW5oelduVkZWR3M1UWs1bk0yOVdZVkpVUkZGRFRqaDFXR0Y1ZUhsbGREVmFZMnBuV25oMmQyNTFUVmhaVjBkNmN6ZE1lRmd4Y3pSSFVtSk1WVXAzUmtwSVJucEZaVTU2UW5NMlZuZExPRk5LZVdweWFVdHFSVGcyZUV0R1ZFVkJkMVp6TjNGNVUwaHJjamhhTTNscGJXaHpVMHczWW10alRUZE9kQ0lzSW1semN5STZJbVJwWkRwbFluTnBPbnB5Y20xUWRYUktUVFZqWjJScVIxRkdOR05FZVRWaUlpd2libUptSWpveE5qTTFOekkwT0RBd0xDSmxlSEFpT2pFMk16Z3lNekEwTURBc0ltbGhkQ0k2TVRZek5UVTFNakF3TUN3aWRtTWlPbnNpUUdOdmJuUmxlSFFpT2xzaWFIUjBjSE02THk5M2QzY3Vkek11YjNKbkx6SXdNVGd2WTNKbFpHVnVkR2xoYkhNdmRqRWlYU3dpYVdRaU9pSjFjbTQ2Wkdsa09qRXlNelExTmlJc0luUjVjR1VpT2xzaVZtVnlhV1pwWVdKc1pVTnlaV1JsYm5ScFlXd2lMQ0pXWlhKcFptbGhZbXhsUVhSMFpYTjBZWFJwYjI0aVhTd2lhWE56ZFdWeUlqb2laR2xrT21WaWMyazZlbkp5YlZCMWRFcE5OV05uWkdwSFVVWTBZMFI1TldJaUxDSnBjM04xWVc1alpVUmhkR1VpT2lJeU1ESXhMVEV4TFRBeFZEQXdPakF3T2pBd1dpSXNJblpoYkdsa1JuSnZiU0k2SWpJd01qRXRNVEV0TURGVU1EQTZNREE2TURCYUlpd2lhWE56ZFdWa0lqb2lNakF5TVMweE1DMHpNRlF3TURvd01Eb3dNRm9pTENKamNtVmtaVzUwYVdGc1UzVmlhbVZqZENJNmV5SnBaQ0k2SW1ScFpEcHJaWGs2ZWpKa2JYcEVPREZqWjFCNE9GWnJhVGRLWW5WMVRXMUdXWEpYVUdkWmIzbDBlV3RWV2pObGVYRm9kREZxT1V0aWNEZGpURnBNVW5oelduVkZWR3M1UWs1bk0yOVdZVkpVUkZGRFRqaDFXR0Y1ZUhsbGREVmFZMnBuV25oMmQyNTFUVmhaVjBkNmN6ZE1lRmd4Y3pSSFVtSk1WVXAzUmtwSVJucEZaVTU2UW5NMlZuZExPRk5LZVdweWFVdHFSVGcyZUV0R1ZFVkJkMVp6TjNGNVUwaHJjamhhTTNscGJXaHpVMHczWW10alRUZE9kQ0lzSW5CbGNuTnZibUZzU1dSbGJuUnBabWxsY2lJNklrbFVMMFJGTHpFeU16UWlMQ0ptWVcxcGJIbE9ZVzFsSWpvaVEyRnpkR0ZtYVc5eWFTSXNJbVpwY25OMFRtRnRaU0k2SWtKcFlXNWpZU0lzSW1SaGRHVlBaa0pwY25Sb0lqb2lNVGt6TUMweE1DMHdNU0o5TENKamNtVmtaVzUwYVdGc1UyTm9aVzFoSWpwN0ltbGtJam9pYUhSMGNITTZMeTloY0drdGNHbHNiM1F1WldKemFTNWxkUzkwY25WemRHVmtMWE5qYUdWdFlYTXRjbVZuYVhOMGNua3Zkakl2YzJOb1pXMWhjeTh3ZURCbU5ERmhNV1kwT1RNMFpURXhaamhtT1RobE5EUTBaV1F6TkdaaU1EUXdOalExWkdOak1EUmpaV0ZrTW1GbE1qaG1ZMkV3TmpKbFlXSm1ZV014T0RFaUxDSjBlWEJsSWpvaVJuVnNiRXB6YjI1VFkyaGxiV0ZXWVd4cFpHRjBiM0l5TURJeEluMHNJbVY0Y0dseVlYUnBiMjVFWVhSbElqb2lNakF5TVMweE1TMHpNRlF3TURvd01Eb3dNRm9pZlgwLnpWUERKakhSVG41ZGwxdEVqN3hod3c4b3U4dUZBQWR6SUdSYzlxamRpLWZQbmN3a2dOQnVVUDBlc0ItTy1reVpmUWgwNWluVnlkLU9nQi1NMjZ1cWxnIl19fQ.wzMbr9AMT8MBp41Rolzcn5XFcoUtYqz5dF3OHBPrpOF8u7GYmJ9DWC0hmfFLS5Jm3431anEnA5PePQku3iIfSA', ], }; const dcqlQuery = { credentials: [ { id: 'verifiableattestation_a83dc638-d931-4da7-a68b-a356470308dd', format: 'jwt_vc_json', meta: { type_values: [['VerifiableAttestation']], }, }, ], }; const validationResult = await validateDcqlVp( presentation, 'decentralized_identifier:did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9Kbr4xCAoF4nxstSkEVrED7FRcacvDk8yZe7tLbKQq1rMbEX6NwbaxmJBtvBgfKKNLUr9odna2t7eFdNM94CSAgkXJozPFT61aMx5homHTNbcM9NsydgiLFfTvmxWq6orPHtp', { dcqlQuery, }, ); expect(validationResult.valid).toBeFalsy(); expect(validationResult.messages).toEqual([ 'Verifiable Presentation is expired. Presentation: urn:did:f3d84aca-4afe-4e7f-b50e-941ad1f7e5c5', ]); }); }); }); });