import { EbsiWrapper } from '../../../../src/shared/middleware/ebsiWrapper.js'; import { EbsiVerifiableAttestation, ValidationError, } from '@cef-ebsi/verifiable-credential'; describe('EbsiWrapper should', () => { const ebsiWrapper = new EbsiWrapper(); it('validate an ebsi credential', async () => { const credential = 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDplYnNpOnp5eTFnNW43OEhyWko2dVptaVdhUGpzI1dUWkkzbXh3aTBKVTM4V0NaZFMzTHZxMzNmYjBLWkFXbkhfc0kxMjlaZTAifQ.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSJdLCJpZCI6InVybjp1dWlkOjUzOTQ4NGEwLWU2ZmItNDBiNS05MTljLTBkMGU4ZDA5OGRmZiIsInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJWZXJpZmlhYmxlQXR0ZXN0YXRpb24iLCJUZXN0VHlwZVNjaGVtYSJdLCJjcmVkZW50aWFsU3ViamVjdCI6eyJpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticEdyWUFZcWYxWFpGNzVtZ1JRQzVpTWp1OEozV2N3Y0hUeFI4ZlBVQlo0ZHZTZ3hvYzNNWk1YNVAzUmRKcFNqVUFZTjRtYUM3N241UGpRM3hkYmo5d2RFdEozckRIbndrNmJlNXo4TERpQ1FKNmNmTUdyV3VRSlp3UlRONlYzOU1QSiIsIm5hbWUiOiJCaWFuY2EiLCJhZ2UiOjMwfSwiaXNzdWVyIjoiZGlkOmVic2k6enl5MWc1bjc4SHJaSjZ1Wm1pV2FQanMiLCJ2YWxpZEZyb20iOiIyMDI1LTA1LTIyVDEzOjQzOjMxWiIsImNyZWRlbnRpYWxTY2hlbWEiOnsiaWQiOiJodHRwczovL2FwaS1jb25mb3JtYW5jZS5lYnNpLmV1L3RydXN0ZWQtc2NoZW1hcy1yZWdpc3RyeS92My9zY2hlbWFzL3pEcFdHVUJlbm1xWHp1cnNrcnk5TnNrNnZxMlI4dGhoOVZTZW9ScWd1b3lNRCIsInR5cGUiOiJGdWxsSnNvblNjaGVtYVZhbGlkYXRvcjIwMjEifSwiY3JlZGVudGlhbFN0YXR1cyI6eyJpZCI6Imh0dHBzOi8vYXBpLWNvbmZvcm1hbmNlLmVic2kuZXUvdHJ1c3RlZC1pc3N1ZXJzLXJlZ2lzdHJ5L3Y1L2lzc3VlcnMvZGlkOmVic2k6enl5MWc1bjc4SHJaSjZ1Wm1pV2FQanMvcHJveGllcy8weGZhZDVlZWY3MDkyNDdhNjZlZGE2NjFkM2FlNzU4YzE1OTE1MjQ3ZGIzODFhNWRhN2JhN2YyYWU2ODYyY2Q0NTIvc3RhdHVzLWxpc3QtY3JlZGVudGlhbC9lYWNkMzJiZC1kODEyLTRhYmQtYWFkNS00Y2ZlYTI1NTFmZTUjMzEiLCJzdGF0dXNMaXN0Q3JlZGVudGlhbCI6Imh0dHBzOi8vYXBpLWNvbmZvcm1hbmNlLmVic2kuZXUvdHJ1c3RlZC1pc3N1ZXJzLXJlZ2lzdHJ5L3Y1L2lzc3VlcnMvZGlkOmVic2k6enl5MWc1bjc4SHJaSjZ1Wm1pV2FQanMvcHJveGllcy8weGZhZDVlZWY3MDkyNDdhNjZlZGE2NjFkM2FlNzU4YzE1OTE1MjQ3ZGIzODFhNWRhN2JhN2YyYWU2ODYyY2Q0NTIvc3RhdHVzLWxpc3QtY3JlZGVudGlhbC9lYWNkMzJiZC1kODEyLTRhYmQtYWFkNS00Y2ZlYTI1NTFmZTUiLCJzdGF0dXNMaXN0SW5kZXgiOiIzMSIsInR5cGUiOiJTdGF0dXNMaXN0MjAyMUVudHJ5Iiwic3RhdHVzUHVycG9zZSI6InJldm9jYXRpb24ifSwiaXNzdWFuY2VEYXRlIjoiMjAyNS0wNS0yMlQxMzo0MzozMVoiLCJpc3N1ZWQiOiIyMDI1LTA1LTIyVDEzOjQzOjMxWiJ9LCJuYmYiOjE3NDc5MjE0MTEsImlzcyI6ImRpZDplYnNpOnp5eTFnNW43OEhyWko2dVptaVdhUGpzIiwiaWF0IjoxNzQ3OTIxNDExLCJzdWIiOiJkaWQ6a2V5OnoyZG16RDgxY2dQeDhWa2k3SmJ1dU1tRllyV1BnWW95dHlrVVozZXlxaHQxajlLYnBHcllBWXFmMVhaRjc1bWdSUUM1aU1qdThKM1djd2NIVHhSOGZQVUJaNGR2U2d4b2MzTVpNWDVQM1JkSnBTalVBWU40bWFDNzduNVBqUTN4ZGJqOXdkRXRKM3JESG53azZiZTV6OExEaUNRSjZjZk1Hcld1UUpad1JUTjZWMzlNUEoiLCJqdGkiOiJ1cm46dXVpZDo1Mzk0ODRhMC1lNmZiLTQwYjUtOTE5Yy0wZDBlOGQwOThkZmYifQ.wSSPhU-EEfzacPEdW7RY-zW0J1TuBWUFWDymCl-H77UjA9dg3tbjH4frLmfvKZeNa2G30YwfgPKUfe2qfcwhDw'; const result = await ebsiWrapper.validate(credential, { ebsiAuthority: 'api-conformance.ebsi.eu', }); expect(result).toStrictEqual({ '@context': ['https://www.w3.org/2018/credentials/v1'], credentialSchema: { id: 'https://api-conformance.ebsi.eu/trusted-schemas-registry/v3/schemas/zDpWGUBenmqXzurskry9Nsk6vq2R8thh9VSeoRqguoyMD', type: 'FullJsonSchemaValidator2021', }, credentialStatus: { id: 'https://api-conformance.ebsi.eu/trusted-issuers-registry/v5/issuers/did:ebsi:zyy1g5n78HrZJ6uZmiWaPjs/proxies/0xfad5eef709247a66eda661d3ae758c15915247db381a5da7ba7f2ae6862cd452/status-list-credential/eacd32bd-d812-4abd-aad5-4cfea2551fe5#31', statusListCredential: 'https://api-conformance.ebsi.eu/trusted-issuers-registry/v5/issuers/did:ebsi:zyy1g5n78HrZJ6uZmiWaPjs/proxies/0xfad5eef709247a66eda661d3ae758c15915247db381a5da7ba7f2ae6862cd452/status-list-credential/eacd32bd-d812-4abd-aad5-4cfea2551fe5', statusListIndex: '31', statusPurpose: 'revocation', type: 'StatusList2021Entry', }, credentialSubject: { age: 30, id: 'did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9KbpGrYAYqf1XZF75mgRQC5iMju8J3WcwcHTxR8fPUBZ4dvSgxoc3MZMX5P3RdJpSjUAYN4maC77n5PjQ3xdbj9wdEtJ3rDHnwk6be5z8LDiCQJ6cfMGrWuQJZwRTN6V39MPJ', name: 'Bianca', }, id: 'urn:uuid:539484a0-e6fb-40b5-919c-0d0e8d098dff', issuanceDate: '2025-05-22T13:43:31Z', issued: '2025-05-22T13:43:31Z', issuer: 'did:ebsi:zyy1g5n78HrZJ6uZmiWaPjs', type: ['VerifiableCredential', 'VerifiableAttestation', 'TestTypeSchema'], validFrom: '2025-05-22T13:43:31Z', } as EbsiVerifiableAttestation); }); it('not validate an ebsi credential with an invalid signature', async () => { const credential = 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDplYnNpOnpycm1QdXRKTTVjZ2RqR1FGNGNEeTViI3RCNi1Ub2kxWlJOS3VfREdiZGVrbUxDN2E3TzJ0akRDQ3ZjUFdycklLM2MifQ.eyJqdGkiOiJ1cm46ZGlkOjEyMzQ1NiIsInN1YiI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticDdjTFpMUnhzWnVFVGs5Qk5nM29WYVJURFFDTjh1WGF5eHlldDVaY2pnWnh2d251TVhZV0d6czdMeFgxczRHUmJMVUp3RkpIRnpFZU56QnM2VndLOFNKeWpyaUtqRTg2eEtGVEVBd1ZzN3F5U0hrcjhaM3lpbWhzU0w3YmtjTTdOdCIsImlzcyI6ImRpZDplYnNpOnpycm1QdXRKTTVjZ2RqR1FGNGNEeTViIiwibmJmIjoxNjM1NzI0ODAwLCJleHAiOjUxMDk0MzY4MDAsImlhdCI6MTYzNTU1MjAwMCwidmMiOnsiQGNvbnRleHQiOlsiaHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMvdjEiXSwiaWQiOiJ1cm46ZGlkOjEyMzQ1NiIsInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJWZXJpZmlhYmxlQXR0ZXN0YXRpb24iXSwiaXNzdWVyIjoiZGlkOmVic2k6enJybVB1dEpNNWNnZGpHUUY0Y0R5NWIiLCJpc3N1YW5jZURhdGUiOiIyMDIxLTExLTAxVDAwOjAwOjAwWiIsInZhbGlkRnJvbSI6IjIwMjEtMTEtMDFUMDA6MDA6MDBaIiwiaXNzdWVkIjoiMjAyMS0xMC0zMFQwMDowMDowMFoiLCJjcmVkZW50aWFsU3ViamVjdCI6eyJpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticDdjTFpMUnhzWnVFVGs5Qk5nM29WYVJURFFDTjh1WGF5eHlldDVaY2pnWnh2d251TVhZV0d6czdMeFgxczRHUmJMVUp3RkpIRnpFZU56QnM2VndLOFNKeWpyaUtqRTg2eEtGVEVBd1ZzN3F5U0hrcjhaM3lpbWhzU0w3YmtjTTdOdCIsInBlcnNvbmFsSWRlbnRpZmllciI6IklzL0RFLzEyMzQiLCJmYW1pbHlOYW1lIjoiQ2FzdGFmaW9yaSIsImZpcnN0TmFtZSI6IkJpYW5jYSIsImRhdGVPZkJpcnRoIjoiMTkzMC0xMC0wMSJ9LCJjcmVkZW50aWFsU2NoZW1hIjp7ImlkIjoiaHR0cHM6Ly9hcGktcGlsb3QuZWJzaS5ldS90cnVzdGVkLXNjaGVtYXMtcmVnaXN0cnkvdjIvc2NoZW1hcy8weDBmNDFhMWY0OTM0ZTExZjhmOThlNDQ0ZWQzNGZiMDQwNjQ1ZGNjMDRjZWFkMmFlMjhmY2EwNjJlYWJmYWMxODEiLCJ0eXBlIjoiRnVsbEpzb25TY2hlbWFWYWxpZGF0b3IyMDIxIn0sImV4cGlyYXRpb25EYXRlIjoiMjEzMS0xMS0zMFQwMDowMDowMFoifX0.yAZ72yi1DC5eEqJ9_O1dQ3VgFB-iT85mUY3SNvEt-Vul_jPKcRsR8ceS1ce08lJUTaM8X3HRMpHPU7qmPkLRvQ'; await expect( ebsiWrapper.validate(credential, { ebsiAuthority: 'api-conformance.ebsi.eu', }), ).rejects.toThrow({ name: 'ValidationError', message: 'VC JWT validation failed: invalid_signature: no matching public key found', } as ValidationError); }); it('not validate an ebsi credential expired', async () => { const credential = 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDplYnNpOnpycm1QdXRKTTVjZ2RqR1FGNGNEeTViI3RCNi1Ub2kxWlJOS3VfREdiZGVrbUxDN2E3TzJ0akRDQ3ZjUFdycklLM2MifQ.eyJqdGkiOiJ1cm46ZGlkOjEyMzQ1NiIsInN1YiI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticDdjTFpMUnhzWnVFVGs5Qk5nM29WYVJURFFDTjh1WGF5eHlldDVaY2pnWnh2d251TVhZV0d6czdMeFgxczRHUmJMVUp3RkpIRnpFZU56QnM2VndLOFNKeWpyaUtqRTg2eEtGVEVBd1ZzN3F5U0hrcjhaM3lpbWhzU0w3YmtjTTdOdCIsImlzcyI6ImRpZDplYnNpOnpycm1QdXRKTTVjZ2RqR1FGNGNEeTViIiwibmJmIjoxNjM1NzI0ODAwLCJleHAiOjE2MzgyMzA0MDAsImlhdCI6MTYzNTU1MjAwMCwidmMiOnsiQGNvbnRleHQiOlsiaHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMvdjEiXSwiaWQiOiJ1cm46ZGlkOjEyMzQ1NiIsInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJWZXJpZmlhYmxlQXR0ZXN0YXRpb24iXSwiaXNzdWVyIjoiZGlkOmVic2k6enJybVB1dEpNNWNnZGpHUUY0Y0R5NWIiLCJpc3N1YW5jZURhdGUiOiIyMDIxLTExLTAxVDAwOjAwOjAwWiIsInZhbGlkRnJvbSI6IjIwMjEtMTEtMDFUMDA6MDA6MDBaIiwiaXNzdWVkIjoiMjAyMS0xMC0zMFQwMDowMDowMFoiLCJjcmVkZW50aWFsU3ViamVjdCI6eyJpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticDdjTFpMUnhzWnVFVGs5Qk5nM29WYVJURFFDTjh1WGF5eHlldDVaY2pnWnh2d251TVhZV0d6czdMeFgxczRHUmJMVUp3RkpIRnpFZU56QnM2VndLOFNKeWpyaUtqRTg2eEtGVEVBd1ZzN3F5U0hrcjhaM3lpbWhzU0w3YmtjTTdOdCIsInBlcnNvbmFsSWRlbnRpZmllciI6IklUL0RFLzEyMzQiLCJmYW1pbHlOYW1lIjoiQ2FzdGFmaW9yaSIsImZpcnN0TmFtZSI6IkJpYW5jYSIsImRhdGVPZkJpcnRoIjoiMTkzMC0xMC0wMSJ9LCJjcmVkZW50aWFsU2NoZW1hIjp7ImlkIjoiaHR0cHM6Ly9hcGktcGlsb3QuZWJzaS5ldS90cnVzdGVkLXNjaGVtYXMtcmVnaXN0cnkvdjIvc2NoZW1hcy8weDBmNDFhMWY0OTM0ZTExZjhmOThlNDQ0ZWQzNGZiMDQwNjQ1ZGNjMDRjZWFkMmFlMjhmY2EwNjJlYWJmYWMxODEiLCJ0eXBlIjoiRnVsbEpzb25TY2hlbWFWYWxpZGF0b3IyMDIxIn0sImV4cGlyYXRpb25EYXRlIjoiMjAyMS0xMS0zMFQwMDowMDowMFoifX0.zVPDJjHRTn5dl1tEj7xhww8ou8uFAAdzIGRc9qjdi-fPncwkgNBuUP0esB-O-kyZfQh05inVyd-OgB-M26uqlg'; await expect( ebsiWrapper.validate(credential, { ebsiAuthority: 'api-conformance.ebsi.eu', }), ).rejects.toThrow({ name: 'ValidationError', message: 'The credential is not valid after: 2021-11-30T00:00:00Z', } as ValidationError); }); it('not validate an ebsi not yet valid credential', async () => { const credential = 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDplYnNpOnpycm1QdXRKTTVjZ2RqR1FGNGNEeTViI3RCNi1Ub2kxWlJOS3VfREdiZGVrbUxDN2E3TzJ0akRDQ3ZjUFdycklLM2MifQ.eyJqdGkiOiJ1cm46ZGlkOjEyMzQ1NiIsInN1YiI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticDdjTFpMUnhzWnVFVGs5Qk5nM29WYVJURFFDTjh1WGF5eHlldDVaY2pnWnh2d251TVhZV0d6czdMeFgxczRHUmJMVUp3RkpIRnpFZU56QnM2VndLOFNKeWpyaUtqRTg2eEtGVEVBd1ZzN3F5U0hrcjhaM3lpbWhzU0w3YmtjTTdOdCIsImlzcyI6ImRpZDplYnNpOnpycm1QdXRKTTVjZ2RqR1FGNGNEeTViIiwibmJmIjo0NzkxMzk4NDAwLCJleHAiOjUxMDk0MzY4MDAsImlhdCI6MTYzNTU1MjAwMCwidmMiOnsiQGNvbnRleHQiOlsiaHR0cHM6Ly93d3cudzMub3JnLzIwMTgvY3JlZGVudGlhbHMvdjEiXSwiaWQiOiJ1cm46ZGlkOjEyMzQ1NiIsInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJWZXJpZmlhYmxlQXR0ZXN0YXRpb24iXSwiaXNzdWVyIjoiZGlkOmVic2k6enJybVB1dEpNNWNnZGpHUUY0Y0R5NWIiLCJpc3N1YW5jZURhdGUiOiIyMTIxLTExLTAxVDAwOjAwOjAwWiIsInZhbGlkRnJvbSI6IjIxMjEtMTEtMDFUMDA6MDA6MDBaIiwiaXNzdWVkIjoiMjAyMS0xMC0zMFQwMDowMDowMFoiLCJjcmVkZW50aWFsU3ViamVjdCI6eyJpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticDdjTFpMUnhzWnVFVGs5Qk5nM29WYVJURFFDTjh1WGF5eHlldDVaY2pnWnh2d251TVhZV0d6czdMeFgxczRHUmJMVUp3RkpIRnpFZU56QnM2VndLOFNKeWpyaUtqRTg2eEtGVEVBd1ZzN3F5U0hrcjhaM3lpbWhzU0w3YmtjTTdOdCIsInBlcnNvbmFsSWRlbnRpZmllciI6IklUL0RFLzEyMzQiLCJmYW1pbHlOYW1lIjoiQ2FzdGFmaW9yaSIsImZpcnN0TmFtZSI6IkJpYW5jYSIsImRhdGVPZkJpcnRoIjoiMTkzMC0xMC0wMSJ9LCJjcmVkZW50aWFsU2NoZW1hIjp7ImlkIjoiaHR0cHM6Ly9hcGktcGlsb3QuZWJzaS5ldS90cnVzdGVkLXNjaGVtYXMtcmVnaXN0cnkvdjIvc2NoZW1hcy8weDBmNDFhMWY0OTM0ZTExZjhmOThlNDQ0ZWQzNGZiMDQwNjQ1ZGNjMDRjZWFkMmFlMjhmY2EwNjJlYWJmYWMxODEiLCJ0eXBlIjoiRnVsbEpzb25TY2hlbWFWYWxpZGF0b3IyMDIxIn0sImV4cGlyYXRpb25EYXRlIjoiMjEzMS0xMS0zMFQwMDowMDowMFoifX0.8hY9EQmmU1Nqa8prg8QmUSefHTKfHTsDd00MzwQBwUBMaDdO60wUe6CYU94SSWxGdwNDuX-Cs6DNsezOeP2boA'; await expect( ebsiWrapper.validate(credential, { ebsiAuthority: 'api-conformance.ebsi.eu', }), ).rejects.toThrow({ name: 'ValidationError', message: 'The credential is not valid before: 2121-11-01T00:00:00Z', } as ValidationError); }); it('validate a presentation using the EbsiWrapper', async () => { const presentation = 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUtickQ4bTJUN0c5bUtvSE5iSkU4dUVGZllOamhyZ1EycGFINXNqdW5MbnJQU1gxUTRTRWl5VjZHaHh2UFlCb0xlVFoyWURVTDI5ekFHdllpa2JMNUphVTdnc1J6Qkdxc2RBWjV2QXFiNnBiUmZLSm1FQlI4dmpjNm16eDJHaXRMdlJ6VSN6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JyRDhtMlQ3RzltS29ITmJKRTh1RUZmWU5qaHJnUTJwYUg1c2p1bkxuclBTWDFRNFNFaXlWNkdoeHZQWUJvTGVUWjJZRFVMMjl6QUd2WWlrYkw1SmFVN2dzUnpCR3FzZEFaNXZBcWI2cGJSZktKbUVCUjh2amM2bXp4MkdpdEx2UnpVIn0.eyJpYXQiOjE3NDc5MjQxNDUsImV4cCI6NDkwMzU5NzcxNywiaXNzIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JyRDhtMlQ3RzltS29ITmJKRTh1RUZmWU5qaHJnUTJwYUg1c2p1bkxuclBTWDFRNFNFaXlWNkdoeHZQWUJvTGVUWjJZRFVMMjl6QUd2WWlrYkw1SmFVN2dzUnpCR3FzZEFaNXZBcWI2cGJSZktKbUVCUjh2amM2bXp4MkdpdEx2UnpVIiwiYXVkIjoiaHR0cHMlM0ElMkYlMkZkZXYtc3R1ZGlvLnZpZGlkZW50aXR5Lm5ldCUyRnZpZGNyZWRlbnRpYWxzLXN0dWRpbyUyRm9pZGM0dmMlMkZ2MSUyRnZlcmlmaWVyJTJGZTE0MDlmNWEtMTFiMi00N2RjLThiMGUtZjVjODNmNzExY2FlIiwic3ViIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JyRDhtMlQ3RzltS29ITmJKRTh1RUZmWU5qaHJnUTJwYUg1c2p1bkxuclBTWDFRNFNFaXlWNkdoeHZQWUJvTGVUWjJZRFVMMjl6QUd2WWlrYkw1SmFVN2dzUnpCR3FzZEFaNXZBcWI2cGJSZktKbUVCUjh2amM2bXp4MkdpdEx2UnpVIiwibmJmIjoxNzQ3OTI0MTQ1LCJub25jZSI6IjE3NWYzYmYzLTk0NTktNDhhOS05OWRjLWM4MDA5NWZmOTcyOSIsImp0aSI6InVybjpkaWQ6NDhmZDJiZTUtYjdhMS00Njk3LWEzMTUtMDQ4MzEwNWE4MWNiIiwidnAiOnsiaWQiOiJ1cm46ZGlkOjQ4ZmQyYmU1LWI3YTEtNDY5Ny1hMzE1LTA0ODMxMDVhODFjYiIsIkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy8yMDE4L2NyZWRlbnRpYWxzL3YxIl0sInR5cGUiOlsiVmVyaWZpYWJsZVByZXNlbnRhdGlvbiJdLCJob2xkZXIiOiJkaWQ6a2V5OnoyZG16RDgxY2dQeDhWa2k3SmJ1dU1tRllyV1BnWW95dHlrVVozZXlxaHQxajlLYnJEOG0yVDdHOW1Lb0hOYkpFOHVFRmZZTmpocmdRMnBhSDVzanVuTG5yUFNYMVE0U0VpeVY2R2h4dlBZQm9MZVRaMllEVUwyOXpBR3ZZaWtiTDVKYVU3Z3NSekJHcXNkQVo1dkFxYjZwYlJmS0ptRUJSOHZqYzZtengyR2l0THZSelUiLCJ2ZXJpZmlhYmxlQ3JlZGVudGlhbCI6WyJleUpoYkdjaU9pSkZVekkxTmlJc0luUjVjQ0k2SWtwWFZDSXNJbXRwWkNJNkltUnBaRHBsWW5OcE9ucDVlVEZuTlc0M09FaHlXa28yZFZwdGFWZGhVR3B6STFkVVdra3piWGgzYVRCS1ZUTTRWME5hWkZNelRIWnhNek5tWWpCTFdrRlhia2hmYzBreE1qbGFaVEFpZlEuZXlKMll5STZleUpBWTI5dWRHVjRkQ0k2V3lKb2RIUndjem92TDNkM2R5NTNNeTV2Y21jdk1qQXhPQzlqY21Wa1pXNTBhV0ZzY3k5Mk1TSmRMQ0pwWkNJNkluVnlianAxZFdsa09qVmtaV1l5WldReUxUQTRaV1V0TkRVM01DMWhNemszTFRRek9UTmtNekkzWWpNNVpDSXNJblI1Y0dVaU9sc2lWbVZ5YVdacFlXSnNaVU55WldSbGJuUnBZV3dpTENKV1pYSnBabWxoWW14bFFYUjBaWE4wWVhScGIyNGlMQ0pVWlhOMFZIbHdaVk5qYUdWdFlTSmRMQ0pqY21Wa1pXNTBhV0ZzVTNWaWFtVmpkQ0k2ZXlKcFpDSTZJbVJwWkRwclpYazZlakprYlhwRU9ERmpaMUI0T0ZacmFUZEtZblYxVFcxR1dYSlhVR2RaYjNsMGVXdFZXak5sZVhGb2RERnFPVXRpY2tRNGJUSlVOMGM1YlV0dlNFNWlTa1U0ZFVWR1psbE9hbWh5WjFFeWNHRklOWE5xZFc1TWJuSlFVMWd4VVRSVFJXbDVWalpIYUhoMlVGbENiMHhsVkZveVdVUlZUREk1ZWtGSGRsbHBhMkpNTlVwaFZUZG5jMUo2UWtkeGMyUkJXalYyUVhGaU5uQmlVbVpMU20xRlFsSTRkbXBqTm0xNmVESkhhWFJNZGxKNlZTSXNJbTVoYldVaU9pSkNhV0Z1WTJFaUxDSmhaMlVpT2pNd2ZTd2lhWE56ZFdWeUlqb2laR2xrT21WaWMyazZlbmw1TVdjMWJqYzRTSEphU2paMVdtMXBWMkZRYW5NaUxDSjJZV3hwWkVaeWIyMGlPaUl5TURJMUxUQTFMVEl5VkRFek9qVXdPakl3V2lJc0ltTnlaV1JsYm5ScFlXeFRZMmhsYldFaU9uc2lhV1FpT2lKb2RIUndjem92TDJGd2FTMWpiMjVtYjNKdFlXNWpaUzVsWW5OcExtVjFMM1J5ZFhOMFpXUXRjMk5vWlcxaGN5MXlaV2RwYzNSeWVTOTJNeTl6WTJobGJXRnpMM3BFY0ZkSFZVSmxibTF4V0hwMWNuTnJjbms1VG5Ock5uWnhNbEk0ZEdob09WWlRaVzlTY1dkMWIzbE5SQ0lzSW5SNWNHVWlPaUpHZFd4c1NuTnZibE5qYUdWdFlWWmhiR2xrWVhSdmNqSXdNakVpZlN3aVkzSmxaR1Z1ZEdsaGJGTjBZWFIxY3lJNmV5SnBaQ0k2SW1oMGRIQnpPaTh2WVhCcExXTnZibVp2Y20xaGJtTmxMbVZpYzJrdVpYVXZkSEoxYzNSbFpDMXBjM04xWlhKekxYSmxaMmx6ZEhKNUwzWTFMMmx6YzNWbGNuTXZaR2xrT21WaWMyazZlbmw1TVdjMWJqYzRTSEphU2paMVdtMXBWMkZRYW5NdmNISnZlR2xsY3k4d2VHWmhaRFZsWldZM01Ea3lORGRoTmpabFpHRTJOakZrTTJGbE56VTRZekUxT1RFMU1qUTNaR0l6T0RGaE5XUmhOMkpoTjJZeVlXVTJPRFl5WTJRME5USXZjM1JoZEhWekxXeHBjM1F0WTNKbFpHVnVkR2xoYkM5bFlXTmtNekppWkMxa09ERXlMVFJoWW1RdFlXRmtOUzAwWTJabFlUSTFOVEZtWlRVak16TWlMQ0p6ZEdGMGRYTk1hWE4wUTNKbFpHVnVkR2xoYkNJNkltaDBkSEJ6T2k4dllYQnBMV052Ym1admNtMWhibU5sTG1WaWMya3VaWFV2ZEhKMWMzUmxaQzFwYzNOMVpYSnpMWEpsWjJsemRISjVMM1kxTDJsemMzVmxjbk12Wkdsa09tVmljMms2ZW5sNU1XYzFiamM0U0hKYVNqWjFXbTFwVjJGUWFuTXZjSEp2ZUdsbGN5OHdlR1poWkRWbFpXWTNNRGt5TkRkaE5qWmxaR0UyTmpGa00yRmxOelU0WXpFMU9URTFNalEzWkdJek9ERmhOV1JoTjJKaE4yWXlZV1UyT0RZeVkyUTBOVEl2YzNSaGRIVnpMV3hwYzNRdFkzSmxaR1Z1ZEdsaGJDOWxZV05rTXpKaVpDMWtPREV5TFRSaFltUXRZV0ZrTlMwMFkyWmxZVEkxTlRGbVpUVWlMQ0p6ZEdGMGRYTk1hWE4wU1c1a1pYZ2lPaUl6TXlJc0luUjVjR1VpT2lKVGRHRjBkWE5NYVhOME1qQXlNVVZ1ZEhKNUlpd2ljM1JoZEhWelVIVnljRzl6WlNJNkluSmxkbTlqWVhScGIyNGlmU3dpYVhOemRXRnVZMlZFWVhSbElqb2lNakF5TlMwd05TMHlNbFF4TXpvMU1Eb3lNRm9pTENKcGMzTjFaV1FpT2lJeU1ESTFMVEExTFRJeVZERXpPalV3T2pJd1dpSjlMQ0p1WW1ZaU9qRTNORGM1TWpFNE1qQXNJbWx6Y3lJNkltUnBaRHBsWW5OcE9ucDVlVEZuTlc0M09FaHlXa28yZFZwdGFWZGhVR3B6SWl3aWFXRjBJam94TnpRM09USXhPREl3TENKemRXSWlPaUprYVdRNmEyVjVPbm95WkcxNlJEZ3hZMmRRZURoV2EyazNTbUoxZFUxdFJsbHlWMUJuV1c5NWRIbHJWVm96WlhseGFIUXhhamxMWW5KRU9HMHlWRGRIT1cxTGIwaE9Za3BGT0hWRlJtWlpUbXBvY21kUk1uQmhTRFZ6YW5WdVRHNXlVRk5ZTVZFMFUwVnBlVlkyUjJoNGRsQlpRbTlNWlZSYU1sbEVWVXd5T1hwQlIzWlphV3RpVERWS1lWVTNaM05TZWtKSGNYTmtRVm8xZGtGeFlqWndZbEptUzBwdFJVSlNPSFpxWXpadGVuZ3lSMmwwVEhaU2VsVWlMQ0pxZEdraU9pSjFjbTQ2ZFhWcFpEbzFaR1ZtTW1Wa01pMHdPR1ZsTFRRMU56QXRZVE01TnkwME16a3paRE15TjJJek9XUWlmUS40LTlOeVlvc05falF3dTNEd0pLZXhJQ3htVC1aSWFDQUl0UUpMYTA2VTFzaFJpTUNIMjIxekppNmgxaWJwU0R5dU1HSnBUX19IWDRCTXhFSGNtZkF4dyJdfX0.VIJprq0ykkPmihwCHzIAOSw7IIB7X4X_fa4Vi-uVonmzk3srtGz2kQhxhecwyp2fmxvBOXDZfF8zDq3W3TElXQ'; const audience = 'https%3A%2F%2Fdev-studio.vididentity.net%2Fvidcredentials-studio%2Foidc4vc%2Fv1%2Fverifier%2Fe1409f5a-11b2-47dc-8b0e-f5c83f711cae'; const result = await ebsiWrapper.verifyPresentationJwt( presentation, audience, { ebsiAuthority: 'api-conformance.ebsi.eu', }, ); expect(result).toStrictEqual({ '@context': ['https://www.w3.org/2018/credentials/v1'], holder: 'did:key:z2dmzD81cgPx8Vki7JbuuMmFYrWPgYoytykUZ3eyqht1j9KbrD8m2T7G9mKoHNbJE8uEFfYNjhrgQ2paH5sjunLnrPSX1Q4SEiyV6GhxvPYBoLeTZ2YDUL29zAGvYikbL5JaU7gsRzBGqsdAZ5vAqb6pbRfKJmEBR8vjc6mzx2GitLvRzU', id: 'urn:did:48fd2be5-b7a1-4697-a315-0483105a81cb', type: ['VerifiablePresentation'], verifiableCredential: [ 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDplYnNpOnp5eTFnNW43OEhyWko2dVptaVdhUGpzI1dUWkkzbXh3aTBKVTM4V0NaZFMzTHZxMzNmYjBLWkFXbkhfc0kxMjlaZTAifQ.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSJdLCJpZCI6InVybjp1dWlkOjVkZWYyZWQyLTA4ZWUtNDU3MC1hMzk3LTQzOTNkMzI3YjM5ZCIsInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJWZXJpZmlhYmxlQXR0ZXN0YXRpb24iLCJUZXN0VHlwZVNjaGVtYSJdLCJjcmVkZW50aWFsU3ViamVjdCI6eyJpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUtickQ4bTJUN0c5bUtvSE5iSkU4dUVGZllOamhyZ1EycGFINXNqdW5MbnJQU1gxUTRTRWl5VjZHaHh2UFlCb0xlVFoyWURVTDI5ekFHdllpa2JMNUphVTdnc1J6Qkdxc2RBWjV2QXFiNnBiUmZLSm1FQlI4dmpjNm16eDJHaXRMdlJ6VSIsIm5hbWUiOiJCaWFuY2EiLCJhZ2UiOjMwfSwiaXNzdWVyIjoiZGlkOmVic2k6enl5MWc1bjc4SHJaSjZ1Wm1pV2FQanMiLCJ2YWxpZEZyb20iOiIyMDI1LTA1LTIyVDEzOjUwOjIwWiIsImNyZWRlbnRpYWxTY2hlbWEiOnsiaWQiOiJodHRwczovL2FwaS1jb25mb3JtYW5jZS5lYnNpLmV1L3RydXN0ZWQtc2NoZW1hcy1yZWdpc3RyeS92My9zY2hlbWFzL3pEcFdHVUJlbm1xWHp1cnNrcnk5TnNrNnZxMlI4dGhoOVZTZW9ScWd1b3lNRCIsInR5cGUiOiJGdWxsSnNvblNjaGVtYVZhbGlkYXRvcjIwMjEifSwiY3JlZGVudGlhbFN0YXR1cyI6eyJpZCI6Imh0dHBzOi8vYXBpLWNvbmZvcm1hbmNlLmVic2kuZXUvdHJ1c3RlZC1pc3N1ZXJzLXJlZ2lzdHJ5L3Y1L2lzc3VlcnMvZGlkOmVic2k6enl5MWc1bjc4SHJaSjZ1Wm1pV2FQanMvcHJveGllcy8weGZhZDVlZWY3MDkyNDdhNjZlZGE2NjFkM2FlNzU4YzE1OTE1MjQ3ZGIzODFhNWRhN2JhN2YyYWU2ODYyY2Q0NTIvc3RhdHVzLWxpc3QtY3JlZGVudGlhbC9lYWNkMzJiZC1kODEyLTRhYmQtYWFkNS00Y2ZlYTI1NTFmZTUjMzMiLCJzdGF0dXNMaXN0Q3JlZGVudGlhbCI6Imh0dHBzOi8vYXBpLWNvbmZvcm1hbmNlLmVic2kuZXUvdHJ1c3RlZC1pc3N1ZXJzLXJlZ2lzdHJ5L3Y1L2lzc3VlcnMvZGlkOmVic2k6enl5MWc1bjc4SHJaSjZ1Wm1pV2FQanMvcHJveGllcy8weGZhZDVlZWY3MDkyNDdhNjZlZGE2NjFkM2FlNzU4YzE1OTE1MjQ3ZGIzODFhNWRhN2JhN2YyYWU2ODYyY2Q0NTIvc3RhdHVzLWxpc3QtY3JlZGVudGlhbC9lYWNkMzJiZC1kODEyLTRhYmQtYWFkNS00Y2ZlYTI1NTFmZTUiLCJzdGF0dXNMaXN0SW5kZXgiOiIzMyIsInR5cGUiOiJTdGF0dXNMaXN0MjAyMUVudHJ5Iiwic3RhdHVzUHVycG9zZSI6InJldm9jYXRpb24ifSwiaXNzdWFuY2VEYXRlIjoiMjAyNS0wNS0yMlQxMzo1MDoyMFoiLCJpc3N1ZWQiOiIyMDI1LTA1LTIyVDEzOjUwOjIwWiJ9LCJuYmYiOjE3NDc5MjE4MjAsImlzcyI6ImRpZDplYnNpOnp5eTFnNW43OEhyWko2dVptaVdhUGpzIiwiaWF0IjoxNzQ3OTIxODIwLCJzdWIiOiJkaWQ6a2V5OnoyZG16RDgxY2dQeDhWa2k3SmJ1dU1tRllyV1BnWW95dHlrVVozZXlxaHQxajlLYnJEOG0yVDdHOW1Lb0hOYkpFOHVFRmZZTmpocmdRMnBhSDVzanVuTG5yUFNYMVE0U0VpeVY2R2h4dlBZQm9MZVRaMllEVUwyOXpBR3ZZaWtiTDVKYVU3Z3NSekJHcXNkQVo1dkFxYjZwYlJmS0ptRUJSOHZqYzZtengyR2l0THZSelUiLCJqdGkiOiJ1cm46dXVpZDo1ZGVmMmVkMi0wOGVlLTQ1NzAtYTM5Ny00MzkzZDMyN2IzOWQifQ.4-9NyYosN_jQwu3DwJKexICxmT-ZIaCAItQJLa06U1shRiMCH221zJi6h1ibpSDyuMGJpT__HX4BMxEHcmfAxw', ], }); }); it('not validate an invalid presentation (invalid audience)', async () => { const presentation = 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticDdjTFpMUnhzWnVFVGs5Qk5nM29WYVJURFFDTjh1WGF5eHlldDVaY2pnWnh2d251TVhZV0d6czdMeFgxczRHUmJMVUp3RkpIRnpFZU56QnM2VndLOFNKeWpyaUtqRTg2eEtGVEVBd1ZzN3F5U0hrcjhaM3lpbWhzU0w3YmtjTTdOdCN6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JwN2NMWkxSeHNadUVUazlCTmczb1ZhUlREUUNOOHVYYXl4eWV0NVpjamdaeHZ3bnVNWFlXR3pzN0x4WDFzNEdSYkxVSndGSkhGekVlTnpCczZWd0s4U0p5anJpS2pFODZ4S0ZURUF3VnM3cXlTSGtyOFozeWltaHNTTDdia2NNN050In0.eyJpYXQiOjE3MDkxMTQyMzMsImV4cCI6NTEwOTQzNjgwMCwiaXNzIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JwN2NMWkxSeHNadUVUazlCTmczb1ZhUlREUUNOOHVYYXl4eWV0NVpjamdaeHZ3bnVNWFlXR3pzN0x4WDFzNEdSYkxVSndGSkhGekVlTnpCczZWd0s4U0p5anJpS2pFODZ4S0ZURUF3VnM3cXlTSGtyOFozeWltaHNTTDdia2NNN050IiwiYXVkIjoiaHR0cHM6Ly9hcGktY29uZm9ybWFuY2UuZWJzaS5ldS9jb25mb3JtYW5jZS92My9hdXRoLW1vY2siLCJzdWIiOiJkaWQ6a2V5OnoyZG16RDgxY2dQeDhWa2k3SmJ1dU1tRllyV1BnWW95dHlrVVozZXlxaHQxajlLYnA3Y0xaTFJ4c1p1RVRrOUJOZzNvVmFSVERRQ044dVhheXh5ZXQ1WmNqZ1p4dndudU1YWVdHenM3THhYMXM0R1JiTFVKd0ZKSEZ6RWVOekJzNlZ3SzhTSnlqcmlLakU4NnhLRlRFQXdWczdxeVNIa3I4WjN5aW1oc1NMN2JrY003TnQiLCJuYmYiOjE3MDkxMTQyMzMsIm5vbmNlIjoiZDE0NDRkODItZDQ1Zi00MmJmLTkxNzktZTUzOTNmNjBjNTI0Iiwic3RhdGUiOiIwMGYzMTVkNS03NTk5LTQ4MGUtOGM4MC1jMWZlMWNjMDBlMzgiLCJqdGkiOiJ1cm46ZGlkOjgyNjZmNDJiLTFmZjYtNDA3Ni05ZjMyLWExNjc3YWIwYzliZCIsInZwIjp7ImlkIjoidXJuOmRpZDo4MjY2ZjQyYi0xZmY2LTQwNzYtOWYzMi1hMTY3N2FiMGM5YmQiLCJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSJdLCJ0eXBlIjpbIlZlcmlmaWFibGVQcmVzZW50YXRpb24iXSwiaG9sZGVyIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JwN2NMWkxSeHNadUVUazlCTmczb1ZhUlREUUNOOHVYYXl4eWV0NVpjamdaeHZ3bnVNWFlXR3pzN0x4WDFzNEdSYkxVSndGSkhGekVlTnpCczZWd0s4U0p5anJpS2pFODZ4S0ZURUF3VnM3cXlTSGtyOFozeWltaHNTTDdia2NNN050IiwidmVyaWZpYWJsZUNyZWRlbnRpYWwiOlsiZXlKaGJHY2lPaUpGVXpJMU5pSXNJblI1Y0NJNklrcFhWQ0lzSW10cFpDSTZJbVJwWkRwbFluTnBPbnB5Y20xUWRYUktUVFZqWjJScVIxRkdOR05FZVRWaUkzUkNOaTFVYjJreFdsSk9TM1ZmUkVkaVpHVnJiVXhETjJFM1R6SjBha1JEUTNaalVGZHlja2xMTTJNaWZRLmV5SnFkR2tpT2lKMWNtNDZaR2xrT2pFeU16UTFOaUlzSW5OMVlpSTZJbVJwWkRwclpYazZlakprYlhwRU9ERmpaMUI0T0ZacmFUZEtZblYxVFcxR1dYSlhVR2RaYjNsMGVXdFZXak5sZVhGb2RERnFPVXRpY0RkalRGcE1Vbmh6V25WRlZHczVRazVuTTI5V1lWSlVSRkZEVGpoMVdHRjVlSGxsZERWYVkycG5XbmgyZDI1MVRWaFpWMGQ2Y3pkTWVGZ3hjelJIVW1KTVZVcDNSa3BJUm5wRlpVNTZRbk0yVm5kTE9GTktlV3B5YVV0cVJUZzJlRXRHVkVWQmQxWnpOM0Y1VTBocmNqaGFNM2xwYldoelUwdzNZbXRqVFRkT2RDSXNJbWx6Y3lJNkltUnBaRHBsWW5OcE9ucHljbTFRZFhSS1RUVmpaMlJxUjFGR05HTkVlVFZpSWl3aWJtSm1Jam94TmpNMU56STBPREF3TENKbGVIQWlPalV4TURrME16WTRNREFzSW1saGRDSTZNVFl6TlRVMU1qQXdNQ3dpZG1NaU9uc2lRR052Ym5SbGVIUWlPbHNpYUhSMGNITTZMeTkzZDNjdWR6TXViM0puTHpJd01UZ3ZZM0psWkdWdWRHbGhiSE12ZGpFaVhTd2lhV1FpT2lKMWNtNDZaR2xrT2pFeU16UTFOaUlzSW5SNWNHVWlPbHNpVm1WeWFXWnBZV0pzWlVOeVpXUmxiblJwWVd3aUxDSldaWEpwWm1saFlteGxRWFIwWlhOMFlYUnBiMjRpWFN3aWFYTnpkV1Z5SWpvaVpHbGtPbVZpYzJrNmVuSnliVkIxZEVwTk5XTm5aR3BIVVVZMFkwUjVOV0lpTENKcGMzTjFZVzVqWlVSaGRHVWlPaUl5TURJeExURXhMVEF4VkRBd09qQXdPakF3V2lJc0luWmhiR2xrUm5KdmJTSTZJakl3TWpFdE1URXRNREZVTURBNk1EQTZNREJhSWl3aWFYTnpkV1ZrSWpvaU1qQXlNUzB4TUMwek1GUXdNRG93TURvd01Gb2lMQ0pqY21Wa1pXNTBhV0ZzVTNWaWFtVmpkQ0k2ZXlKcFpDSTZJbVJwWkRwclpYazZlakprYlhwRU9ERmpaMUI0T0ZacmFUZEtZblYxVFcxR1dYSlhVR2RaYjNsMGVXdFZXak5sZVhGb2RERnFPVXRpY0RkalRGcE1Vbmh6V25WRlZHczVRazVuTTI5V1lWSlVSRkZEVGpoMVdHRjVlSGxsZERWYVkycG5XbmgyZDI1MVRWaFpWMGQ2Y3pkTWVGZ3hjelJIVW1KTVZVcDNSa3BJUm5wRlpVNTZRbk0yVm5kTE9GTktlV3B5YVV0cVJUZzJlRXRHVkVWQmQxWnpOM0Y1VTBocmNqaGFNM2xwYldoelUwdzNZbXRqVFRkT2RDSXNJbkJsY25OdmJtRnNTV1JsYm5ScFptbGxjaUk2SWtsVUwwUkZMekV5TXpRaUxDSm1ZVzFwYkhsT1lXMWxJam9pUTJGemRHRm1hVzl5YVNJc0ltWnBjbk4wVG1GdFpTSTZJa0pwWVc1allTSXNJbVJoZEdWUFprSnBjblJvSWpvaU1Ua3pNQzB4TUMwd01TSjlMQ0pqY21Wa1pXNTBhV0ZzVTJOb1pXMWhJanA3SW1sa0lqb2lhSFIwY0hNNkx5OWhjR2t0Y0dsc2IzUXVaV0p6YVM1bGRTOTBjblZ6ZEdWa0xYTmphR1Z0WVhNdGNtVm5hWE4wY25rdmRqSXZjMk5vWlcxaGN5OHdlREJtTkRGaE1XWTBPVE0wWlRFeFpqaG1PVGhsTkRRMFpXUXpOR1ppTURRd05qUTFaR05qTURSalpXRmtNbUZsTWpobVkyRXdOakpsWVdKbVlXTXhPREVpTENKMGVYQmxJam9pUm5Wc2JFcHpiMjVUWTJobGJXRldZV3hwWkdGMGIzSXlNREl4SW4wc0ltVjRjR2x5WVhScGIyNUVZWFJsSWpvaU1qRXpNUzB4TVMwek1GUXdNRG93TURvd01Gb2lmWDAueUFaNzJ5aTFEQzVlRXFKOV9PMWRRM1ZnRkItaVQ4NW1VWTNTTnZFdC1WdWxfalBLY1JzUjhjZVMxY2UwOGxKVVRhTThYM0hSTXBIUFU3cW1Qa0xSdlEiXX19.mEXR5cQHnHnjntnO8JsfaOS1olzawim8T9Tq9Wxm02q7wi-PywBRwapuVyjzCMU4N5Hfqw0l2oI-cPWHj85_wA'; const audience = 'wrong-audience'; await expect( ebsiWrapper.verifyPresentationJwt(presentation, audience, { ebsiAuthority: 'api-conformance.ebsi.eu', }), ).rejects.toThrow({ name: 'ValidationError', message: 'JWT "aud" property MUST match the expected audience "wrong-audience"', } as ValidationError); }); it('not validate an ebsi presentation with an expired credential', async () => { const presentation = 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticDdjTFpMUnhzWnVFVGs5Qk5nM29WYVJURFFDTjh1WGF5eHlldDVaY2pnWnh2d251TVhZV0d6czdMeFgxczRHUmJMVUp3RkpIRnpFZU56QnM2VndLOFNKeWpyaUtqRTg2eEtGVEVBd1ZzN3F5U0hrcjhaM3lpbWhzU0w3YmtjTTdOdCN6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JwN2NMWkxSeHNadUVUazlCTmczb1ZhUlREUUNOOHVYYXl4eWV0NVpjamdaeHZ3bnVNWFlXR3pzN0x4WDFzNEdSYkxVSndGSkhGekVlTnpCczZWd0s4U0p5anJpS2pFODZ4S0ZURUF3VnM3cXlTSGtyOFozeWltaHNTTDdia2NNN050In0.eyJpYXQiOjE3MDkxMTU0OTAsImV4cCI6NTEwOTQzNjgwMCwiaXNzIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JwN2NMWkxSeHNadUVUazlCTmczb1ZhUlREUUNOOHVYYXl4eWV0NVpjamdaeHZ3bnVNWFlXR3pzN0x4WDFzNEdSYkxVSndGSkhGekVlTnpCczZWd0s4U0p5anJpS2pFODZ4S0ZURUF3VnM3cXlTSGtyOFozeWltaHNTTDdia2NNN050IiwiYXVkIjoiaHR0cHM6Ly9hcGktY29uZm9ybWFuY2UuZWJzaS5ldS9jb25mb3JtYW5jZS92My9hdXRoLW1vY2siLCJzdWIiOiJkaWQ6a2V5OnoyZG16RDgxY2dQeDhWa2k3SmJ1dU1tRllyV1BnWW95dHlrVVozZXlxaHQxajlLYnA3Y0xaTFJ4c1p1RVRrOUJOZzNvVmFSVERRQ044dVhheXh5ZXQ1WmNqZ1p4dndudU1YWVdHenM3THhYMXM0R1JiTFVKd0ZKSEZ6RWVOekJzNlZ3SzhTSnlqcmlLakU4NnhLRlRFQXdWczdxeVNIa3I4WjN5aW1oc1NMN2JrY003TnQiLCJuYmYiOjE3MDkxMTU0OTAsIm5vbmNlIjoiNDQ5ODNjNTctZGIyOS00ZDQwLWFmM2UtZmM3NDI4OTI1ODNjIiwic3RhdGUiOiI2OTU0MzEwMS0yZmZkLTQzNjUtOTg2Ny1hOGM0MDZiZmMwOTkiLCJqdGkiOiJ1cm46ZGlkOmYzZDg0YWNhLTRhZmUtNGU3Zi1iNTBlLTk0MWFkMWY3ZTVjNSIsInZwIjp7ImlkIjoidXJuOmRpZDpmM2Q4NGFjYS00YWZlLTRlN2YtYjUwZS05NDFhZDFmN2U1YzUiLCJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSJdLCJ0eXBlIjpbIlZlcmlmaWFibGVQcmVzZW50YXRpb24iXSwiaG9sZGVyIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JwN2NMWkxSeHNadUVUazlCTmczb1ZhUlREUUNOOHVYYXl4eWV0NVpjamdaeHZ3bnVNWFlXR3pzN0x4WDFzNEdSYkxVSndGSkhGekVlTnpCczZWd0s4U0p5anJpS2pFODZ4S0ZURUF3VnM3cXlTSGtyOFozeWltaHNTTDdia2NNN050IiwidmVyaWZpYWJsZUNyZWRlbnRpYWwiOlsiZXlKaGJHY2lPaUpGVXpJMU5pSXNJblI1Y0NJNklrcFhWQ0lzSW10cFpDSTZJbVJwWkRwbFluTnBPbnB5Y20xUWRYUktUVFZqWjJScVIxRkdOR05FZVRWaUkzUkNOaTFVYjJreFdsSk9TM1ZmUkVkaVpHVnJiVXhETjJFM1R6SjBha1JEUTNaalVGZHlja2xMTTJNaWZRLmV5SnFkR2tpT2lKMWNtNDZaR2xrT2pFeU16UTFOaUlzSW5OMVlpSTZJbVJwWkRwclpYazZlakprYlhwRU9ERmpaMUI0T0ZacmFUZEtZblYxVFcxR1dYSlhVR2RaYjNsMGVXdFZXak5sZVhGb2RERnFPVXRpY0RkalRGcE1Vbmh6V25WRlZHczVRazVuTTI5V1lWSlVSRkZEVGpoMVdHRjVlSGxsZERWYVkycG5XbmgyZDI1MVRWaFpWMGQ2Y3pkTWVGZ3hjelJIVW1KTVZVcDNSa3BJUm5wRlpVNTZRbk0yVm5kTE9GTktlV3B5YVV0cVJUZzJlRXRHVkVWQmQxWnpOM0Y1VTBocmNqaGFNM2xwYldoelUwdzNZbXRqVFRkT2RDSXNJbWx6Y3lJNkltUnBaRHBsWW5OcE9ucHljbTFRZFhSS1RUVmpaMlJxUjFGR05HTkVlVFZpSWl3aWJtSm1Jam94TmpNMU56STBPREF3TENKbGVIQWlPakUyTXpneU16QTBNREFzSW1saGRDSTZNVFl6TlRVMU1qQXdNQ3dpZG1NaU9uc2lRR052Ym5SbGVIUWlPbHNpYUhSMGNITTZMeTkzZDNjdWR6TXViM0puTHpJd01UZ3ZZM0psWkdWdWRHbGhiSE12ZGpFaVhTd2lhV1FpT2lKMWNtNDZaR2xrT2pFeU16UTFOaUlzSW5SNWNHVWlPbHNpVm1WeWFXWnBZV0pzWlVOeVpXUmxiblJwWVd3aUxDSldaWEpwWm1saFlteGxRWFIwWlhOMFlYUnBiMjRpWFN3aWFYTnpkV1Z5SWpvaVpHbGtPbVZpYzJrNmVuSnliVkIxZEVwTk5XTm5aR3BIVVVZMFkwUjVOV0lpTENKcGMzTjFZVzVqWlVSaGRHVWlPaUl5TURJeExURXhMVEF4VkRBd09qQXdPakF3V2lJc0luWmhiR2xrUm5KdmJTSTZJakl3TWpFdE1URXRNREZVTURBNk1EQTZNREJhSWl3aWFYTnpkV1ZrSWpvaU1qQXlNUzB4TUMwek1GUXdNRG93TURvd01Gb2lMQ0pqY21Wa1pXNTBhV0ZzVTNWaWFtVmpkQ0k2ZXlKcFpDSTZJbVJwWkRwclpYazZlakprYlhwRU9ERmpaMUI0T0ZacmFUZEtZblYxVFcxR1dYSlhVR2RaYjNsMGVXdFZXak5sZVhGb2RERnFPVXRpY0RkalRGcE1Vbmh6V25WRlZHczVRazVuTTI5V1lWSlVSRkZEVGpoMVdHRjVlSGxsZERWYVkycG5XbmgyZDI1MVRWaFpWMGQ2Y3pkTWVGZ3hjelJIVW1KTVZVcDNSa3BJUm5wRlpVNTZRbk0yVm5kTE9GTktlV3B5YVV0cVJUZzJlRXRHVkVWQmQxWnpOM0Y1VTBocmNqaGFNM2xwYldoelUwdzNZbXRqVFRkT2RDSXNJbkJsY25OdmJtRnNTV1JsYm5ScFptbGxjaUk2SWtsVUwwUkZMekV5TXpRaUxDSm1ZVzFwYkhsT1lXMWxJam9pUTJGemRHRm1hVzl5YVNJc0ltWnBjbk4wVG1GdFpTSTZJa0pwWVc1allTSXNJbVJoZEdWUFprSnBjblJvSWpvaU1Ua3pNQzB4TUMwd01TSjlMQ0pqY21Wa1pXNTBhV0ZzVTJOb1pXMWhJanA3SW1sa0lqb2lhSFIwY0hNNkx5OWhjR2t0Y0dsc2IzUXVaV0p6YVM1bGRTOTBjblZ6ZEdWa0xYTmphR1Z0WVhNdGNtVm5hWE4wY25rdmRqSXZjMk5vWlcxaGN5OHdlREJtTkRGaE1XWTBPVE0wWlRFeFpqaG1PVGhsTkRRMFpXUXpOR1ppTURRd05qUTFaR05qTURSalpXRmtNbUZsTWpobVkyRXdOakpsWVdKbVlXTXhPREVpTENKMGVYQmxJam9pUm5Wc2JFcHpiMjVUWTJobGJXRldZV3hwWkdGMGIzSXlNREl4SW4wc0ltVjRjR2x5WVhScGIyNUVZWFJsSWpvaU1qQXlNUzB4TVMwek1GUXdNRG93TURvd01Gb2lmWDAuelZQREpqSFJUbjVkbDF0RWo3eGh3dzhvdTh1RkFBZHpJR1JjOXFqZGktZlBuY3drZ05CdVVQMGVzQi1PLWt5WmZRaDA1aW5WeWQtT2dCLU0yNnVxbGciXX19.qSQw6hmWFIY8hsx1jpidl0NgHZoC2wnWvtmai_qk-HiOEzpYROusM-VBAwAX8TxHJHC66WAQKvRgqfgOTnMbIg'; const audience = 'https://api-conformance.ebsi.eu/conformance/v3/auth-mock'; await expect( ebsiWrapper.verifyPresentationJwt(presentation, audience, { ebsiAuthority: 'api-conformance.ebsi.eu', }), ).rejects.toThrow({ name: 'ValidationError', message: 'VC JWT validation failed. The credential is not valid after: 2021-11-30T00:00:00Z', } as ValidationError); }); it('not validate an ebsi presentation with a not yet valid credential', async () => { const presentation = 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUticDdjTFpMUnhzWnVFVGs5Qk5nM29WYVJURFFDTjh1WGF5eHlldDVaY2pnWnh2d251TVhZV0d6czdMeFgxczRHUmJMVUp3RkpIRnpFZU56QnM2VndLOFNKeWpyaUtqRTg2eEtGVEVBd1ZzN3F5U0hrcjhaM3lpbWhzU0w3YmtjTTdOdCN6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JwN2NMWkxSeHNadUVUazlCTmczb1ZhUlREUUNOOHVYYXl4eWV0NVpjamdaeHZ3bnVNWFlXR3pzN0x4WDFzNEdSYkxVSndGSkhGekVlTnpCczZWd0s4U0p5anJpS2pFODZ4S0ZURUF3VnM3cXlTSGtyOFozeWltaHNTTDdia2NNN050In0.eyJpYXQiOjE3MDkxMTUxODksImV4cCI6NTEwOTQzNjgwMCwiaXNzIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JwN2NMWkxSeHNadUVUazlCTmczb1ZhUlREUUNOOHVYYXl4eWV0NVpjamdaeHZ3bnVNWFlXR3pzN0x4WDFzNEdSYkxVSndGSkhGekVlTnpCczZWd0s4U0p5anJpS2pFODZ4S0ZURUF3VnM3cXlTSGtyOFozeWltaHNTTDdia2NNN050IiwiYXVkIjoiaHR0cHM6Ly9hcGktY29uZm9ybWFuY2UuZWJzaS5ldS9jb25mb3JtYW5jZS92My9hdXRoLW1vY2siLCJzdWIiOiJkaWQ6a2V5OnoyZG16RDgxY2dQeDhWa2k3SmJ1dU1tRllyV1BnWW95dHlrVVozZXlxaHQxajlLYnA3Y0xaTFJ4c1p1RVRrOUJOZzNvVmFSVERRQ044dVhheXh5ZXQ1WmNqZ1p4dndudU1YWVdHenM3THhYMXM0R1JiTFVKd0ZKSEZ6RWVOekJzNlZ3SzhTSnlqcmlLakU4NnhLRlRFQXdWczdxeVNIa3I4WjN5aW1oc1NMN2JrY003TnQiLCJuYmYiOjE3MDkxMTUxODksIm5vbmNlIjoiZDQxM2ZkN2EtNWM0NS00NGI1LTlmZTAtZmNhYzU4MGIxNjkyIiwic3RhdGUiOiI1M2Q1YTE3Ni1iYTNhLTRhMmUtYTQwMS1mY2YzNjc0MTI4ODIiLCJqdGkiOiJ1cm46ZGlkOmU2ZWMyMzMxLTYyNWMtNDVkMy05YmFlLWE4MjAwODIxY2ZmNSIsInZwIjp7ImlkIjoidXJuOmRpZDplNmVjMjMzMS02MjVjLTQ1ZDMtOWJhZS1hODIwMDgyMWNmZjUiLCJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSJdLCJ0eXBlIjpbIlZlcmlmaWFibGVQcmVzZW50YXRpb24iXSwiaG9sZGVyIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JwN2NMWkxSeHNadUVUazlCTmczb1ZhUlREUUNOOHVYYXl4eWV0NVpjamdaeHZ3bnVNWFlXR3pzN0x4WDFzNEdSYkxVSndGSkhGekVlTnpCczZWd0s4U0p5anJpS2pFODZ4S0ZURUF3VnM3cXlTSGtyOFozeWltaHNTTDdia2NNN050IiwidmVyaWZpYWJsZUNyZWRlbnRpYWwiOlsiZXlKaGJHY2lPaUpGVXpJMU5pSXNJblI1Y0NJNklrcFhWQ0lzSW10cFpDSTZJbVJwWkRwbFluTnBPbnB5Y20xUWRYUktUVFZqWjJScVIxRkdOR05FZVRWaUkzUkNOaTFVYjJreFdsSk9TM1ZmUkVkaVpHVnJiVXhETjJFM1R6SjBha1JEUTNaalVGZHlja2xMTTJNaWZRLmV5SnFkR2tpT2lKMWNtNDZaR2xrT2pFeU16UTFOaUlzSW5OMVlpSTZJbVJwWkRwclpYazZlakprYlhwRU9ERmpaMUI0T0ZacmFUZEtZblYxVFcxR1dYSlhVR2RaYjNsMGVXdFZXak5sZVhGb2RERnFPVXRpY0RkalRGcE1Vbmh6V25WRlZHczVRazVuTTI5V1lWSlVSRkZEVGpoMVdHRjVlSGxsZERWYVkycG5XbmgyZDI1MVRWaFpWMGQ2Y3pkTWVGZ3hjelJIVW1KTVZVcDNSa3BJUm5wRlpVNTZRbk0yVm5kTE9GTktlV3B5YVV0cVJUZzJlRXRHVkVWQmQxWnpOM0Y1VTBocmNqaGFNM2xwYldoelUwdzNZbXRqVFRkT2RDSXNJbWx6Y3lJNkltUnBaRHBsWW5OcE9ucHljbTFRZFhSS1RUVmpaMlJxUjFGR05HTkVlVFZpSWl3aWJtSm1Jam8wTnpreE16azROREF3TENKbGVIQWlPalV4TURrME16WTRNREFzSW1saGRDSTZNVFl6TlRVMU1qQXdNQ3dpZG1NaU9uc2lRR052Ym5SbGVIUWlPbHNpYUhSMGNITTZMeTkzZDNjdWR6TXViM0puTHpJd01UZ3ZZM0psWkdWdWRHbGhiSE12ZGpFaVhTd2lhV1FpT2lKMWNtNDZaR2xrT2pFeU16UTFOaUlzSW5SNWNHVWlPbHNpVm1WeWFXWnBZV0pzWlVOeVpXUmxiblJwWVd3aUxDSldaWEpwWm1saFlteGxRWFIwWlhOMFlYUnBiMjRpWFN3aWFYTnpkV1Z5SWpvaVpHbGtPbVZpYzJrNmVuSnliVkIxZEVwTk5XTm5aR3BIVVVZMFkwUjVOV0lpTENKcGMzTjFZVzVqWlVSaGRHVWlPaUl5TVRJeExURXhMVEF4VkRBd09qQXdPakF3V2lJc0luWmhiR2xrUm5KdmJTSTZJakl4TWpFdE1URXRNREZVTURBNk1EQTZNREJhSWl3aWFYTnpkV1ZrSWpvaU1qQXlNUzB4TUMwek1GUXdNRG93TURvd01Gb2lMQ0pqY21Wa1pXNTBhV0ZzVTNWaWFtVmpkQ0k2ZXlKcFpDSTZJbVJwWkRwclpYazZlakprYlhwRU9ERmpaMUI0T0ZacmFUZEtZblYxVFcxR1dYSlhVR2RaYjNsMGVXdFZXak5sZVhGb2RERnFPVXRpY0RkalRGcE1Vbmh6V25WRlZHczVRazVuTTI5V1lWSlVSRkZEVGpoMVdHRjVlSGxsZERWYVkycG5XbmgyZDI1MVRWaFpWMGQ2Y3pkTWVGZ3hjelJIVW1KTVZVcDNSa3BJUm5wRlpVNTZRbk0yVm5kTE9GTktlV3B5YVV0cVJUZzJlRXRHVkVWQmQxWnpOM0Y1VTBocmNqaGFNM2xwYldoelUwdzNZbXRqVFRkT2RDSXNJbkJsY25OdmJtRnNTV1JsYm5ScFptbGxjaUk2SWtsVUwwUkZMekV5TXpRaUxDSm1ZVzFwYkhsT1lXMWxJam9pUTJGemRHRm1hVzl5YVNJc0ltWnBjbk4wVG1GdFpTSTZJa0pwWVc1allTSXNJbVJoZEdWUFprSnBjblJvSWpvaU1Ua3pNQzB4TUMwd01TSjlMQ0pqY21Wa1pXNTBhV0ZzVTJOb1pXMWhJanA3SW1sa0lqb2lhSFIwY0hNNkx5OWhjR2t0Y0dsc2IzUXVaV0p6YVM1bGRTOTBjblZ6ZEdWa0xYTmphR1Z0WVhNdGNtVm5hWE4wY25rdmRqSXZjMk5vWlcxaGN5OHdlREJtTkRGaE1XWTBPVE0wWlRFeFpqaG1PVGhsTkRRMFpXUXpOR1ppTURRd05qUTFaR05qTURSalpXRmtNbUZsTWpobVkyRXdOakpsWVdKbVlXTXhPREVpTENKMGVYQmxJam9pUm5Wc2JFcHpiMjVUWTJobGJXRldZV3hwWkdGMGIzSXlNREl4SW4wc0ltVjRjR2x5WVhScGIyNUVZWFJsSWpvaU1qRXpNUzB4TVMwek1GUXdNRG93TURvd01Gb2lmWDAuOGhZOUVRbW1VMU5xYThwcmc4UW1VU2VmSFRLZkhUc0RkMDBNendRQndVQk1hRGRPNjB3VWU2Q1lVOTRTU1d4R2R3TkR1WC1DczZETnNlek9lUDJib0EiXX19.37X4MrlgMDxZtDEY9yirv0wdWu4JUwYqvHglLxuLxXW9Cs_-xsBkC5IO5aI11VYRa_cd_qM6z4hYSSWFdBrOUQ'; const audience = 'https://api-conformance.ebsi.eu/conformance/v3/auth-mock'; await expect( ebsiWrapper.verifyPresentationJwt(presentation, audience, { ebsiAuthority: 'api-conformance.ebsi.eu', }), ).rejects.toThrow({ name: 'ValidationError', message: 'VC JWT validation failed. The credential is not valid before: 2121-11-01T00:00:00Z', } as ValidationError); }); it('not validate an ebsi presentation with invalid signature', async () => { const presentation = 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImRpZDprZXk6ejJkbXpEODFjZ1B4OFZraTdKYnV1TW1GWXJXUGdZb3l0eWtVWjNleXFodDFqOUtickQ4bTJUN0c5bUtvSE5iSkU4dUVGZllOamhyZ1EycGFINXNqdW5MbnJQU1gxUTRTRWl5VjZHaHh2UFlCb0xlVFoyWURVTDI5ekFHdllpa2JMNUphVTdnc1J6Qkdxc2RBWjV2QXFiNnBiUmZLSm1FQlI4dmpjNm16eDJHaXRMdlJ6VSN6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JyRDhtMlQ3RzltS29ITmJKRTh1RUZmWU5qaHJnUTJwYUg1c2p1bkxuclBTWDFRNFNFaXlWNkdoeHZQWUJvTGVUWjJZRFVMMjl6QUd2WWlrYkw1SmFVN2dzUnpCR3FzZEFaNXZBcWI2cGJSZktKbUVCUjh2amM2bXp4MkdpdEx2UnpVIn0.eyJpYXQiOjE3NDc5MjQxNDUsImV4cCI6NDkwMzU5NzcxNywiaXNzIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JyRDhtMlQ3RzltS29ITmJKRTh1RUZmWU5qaHJnUTJwYUg1c2p1bkxuclBTWDFRNFNFaXlWNkdoeHZQWUJvTGVUWjJZRFVMMjl6QUd2WWlrYkw1SmFVN2dzUnpCR3FzZEFaNXZBcWI2cGJSZktKbUVCUjh2amM2bXp4MkdpdEx2UnpVIiwiYXVkIjoiaHR0cHMlM0ElMkYlMkZkZXYtc3R1ZGlvLnZpZGlkZW50aXR5Lm5ldCUyRnZpZGNyZWRlbnRpYWxzLXN0dWRpbyUyRm9pZGM0dmMlMkZ2MSUyRnZlcmlmaWVyJTJGZTE0MDlmNWEtMTFiMi00N2RjLThiMGUtZjVjODNmNzExY2FlIiwic3ViIjoiZGlkOmtleTp6MmRtekQ4MWNnUHg4VmtpN0pidXVNbUZZcldQZ1lveXR5a1VaM2V5cWh0MWo5S2JyRDhtMlQ3RzltS29ITmJKRTh1RUZmWU5qaHJnUTJwYUg1c2p1bkxuclBTWDFRNFNFaXlWNkdoeHZQWUJvTGVUWjJZRFVMMjl6QUd2WWlrYkw1SmFVN2dzUnpCR3FzZEFaNXZBcWI2cGJSZktKbUVCUjh2amM2bXp4MkdpdEx2UnpVIiwibmJmIjoxNzQ3OTI0MTQ1LCJub25jZSI6IjE3NWYzYmYzLTk0NTktNDhhOS05OWRjLWM4MDA5NWZmOTcyOSIsImp0aSI6InVybjpkaWQ6NDhmZDJiZTUtYjdhMS00Njk3LWEzMTUtMDQ4MzEwNWE4MWNiIiwidnAiOnsiaWQiOiJ1cm46ZGlkOjQ4ZmQyYmU1LWI3YTEtNDY5Ny1hMzE1LTA0ODMxMDVhODFjYiIsIkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy8yMDE4L2NyZWRlbnRpYWxzL3YxIl0sInR5cGUiOlsiVmVyaWZpYWJsZVByZXNlbnRhdGlvbiJdLCJob2xkZXIiOiJkaWQ6a2V5OnoyZG16RDgxY2dQeDhWa2k3SmJ1dU1tRllyV1BnWW95dHlrVVozZXlxaHQxajlLYnJEOG0yVDdHOW1Lb0hOYkpFOHVFRmZZTmpocmdRMnBhSDVzanVuTG5yUFNYMVE0U0VpeVY2R2h4dlBZQm9MZVRaMllEVUwyOXpBR3ZZaWtiTDVKYVU3Z3NSekJHcXNkQVo1dkFxYjZwYlJmS0ptRUJSOHZqYzZtengyR2l0THZSelUiLCJ2ZXJpZmlhYmxlQ3JlZGVudGlhbCI6WyJleUpoYkdjaU9pSkZVekkxTmlJc0luUjVjQ0k2SWtwWFZDSXNJbXRwWkNJNkltUnBaRHBsWW5OcE9ucDVlVEZuTlc0M09FaHlXa28yZFZwdGFWZGhVR3B6STFkVVdra3piWGgzYVRCS1ZUTTRWME5hWkZNelRIWnhNek5tWWpCTFdrRlhia2hmYzBreE1qbGFaVEFpZlEuZXlKMll5STZleUpBWTI5dWRHVjRkQ0k2V3lKb2RIUndjem92TDNkM2R5NTNNeTV2Y21jdk1qQXhPQzlqY21Wa1pXNTBhV0ZzY3k5Mk1TSmRMQ0pwWkNJNkluVnlianAxZFdsa09qVmtaV1l5WldReUxUQTRaV1V0TkRVM01DMWhNemszTFRRek9UTmtNekkzWWpNNVpDSXNJblI1Y0dVaU9sc2lWbVZ5YVdacFlXSnNaVU55WldSbGJuUnBZV3dpTENKV1pYSnBabWxoWW14bFFYUjBaWE4wWVhScGIyNGlMQ0pVWlhOMFZIbHdaVk5qYUdWdFlTSmRMQ0pqY21Wa1pXNTBhV0ZzVTNWaWFtVmpkQ0k2ZXlKcFpDSTZJbVJwWkRwclpYazZlakprYlhwRU9ERmpaMUI0T0ZacmFUZEtZblYxVFcxR1dYSlhVR2RaYjNsMGVXdFZXak5sZVhGb2RERnFPVXRpY2tRNGJUSlVOMGM1YlV0dlNFNWlTa1U0ZFVWR1psbE9hbWh5WjFFeWNHRklOWE5xZFc1TWJuSlFVMWd4VVRSVFJXbDVWalpIYUhoMlVGbENiMHhsVkZveVdVUlZUREk1ZWtGSGRsbHBhMkpNTlVwaFZUZG5jMUo2UWtkeGMyUkJXalYyUVhGaU5uQmlVbVpMU20xRlFsSTRkbXBqTm0xNmVESkhhWFJNZGxKNlZTSXNJbTVoYldVaU9pSkNhV0Z1WTJFaUxDSmhaMlVpT2pNd2ZTd2lhWE56ZFdWeUlqb2laR2xrT21WaWMyazZlbmw1TVdjMWJqYzRTSEphU2paMVdtMXBWMkZRYW5NaUxDSjJZV3hwWkVaeWIyMGlPaUl5TURJMUxUQTFMVEl5VkRFek9qVXdPakl3V2lJc0ltTnlaV1JsYm5ScFlXeFRZMmhsYldFaU9uc2lhV1FpT2lKb2RIUndjem92TDJGd2FTMWpiMjVtYjNKdFlXNWpaUzVsWW5OcExtVjFMM1J5ZFhOMFpXUXRjMk5vWlcxaGN5MXlaV2RwYzNSeWVTOTJNeTl6WTJobGJXRnpMM3BFY0ZkSFZVSmxibTF4V0hwMWNuTnJjbms1VG5Ock5uWnhNbEk0ZEdob09WWlRaVzlTY1dkMWIzbE5SQ0lzSW5SNWNHVWlPaUpHZFd4c1NuTnZibE5qYUdWdFlWWmhiR2xrWVhSdmNqSXdNakVpZlN3aVkzSmxaR1Z1ZEdsaGJGTjBZWFIxY3lJNmV5SnBaQ0k2SW1oMGRIQnpPaTh2WVhCcExXTnZibVp2Y20xaGJtTmxMbVZpYzJrdVpYVXZkSEoxYzNSbFpDMXBjM04xWlhKekxYSmxaMmx6ZEhKNUwzWTFMMmx6YzNWbGNuTXZaR2xrT21WaWMyazZlbmw1TVdjMWJqYzRTSEphU2paMVdtMXBWMkZRYW5NdmNISnZlR2xsY3k4d2VHWmhaRFZsWldZM01Ea3lORGRoTmpabFpHRTJOakZrTTJGbE56VTRZekUxT1RFMU1qUTNaR0l6T0RGaE5XUmhOMkpoTjJZeVlXVTJPRFl5WTJRME5USXZjM1JoZEhWekxXeHBjM1F0WTNKbFpHVnVkR2xoYkM5bFlXTmtNekppWkMxa09ERXlMVFJoWW1RdFlXRmtOUzAwWTJabFlUSTFOVEZtWlRVak16TWlMQ0p6ZEdGMGRYTk1hWE4wUTNKbFpHVnVkR2xoYkNJNkltaDBkSEJ6T2k4dllYQnBMV052Ym1admNtMWhibU5sTG1WaWMya3VaWFV2ZEhKMWMzUmxaQzFwYzNOMVpYSnpMWEpsWjJsemRISjVMM1kxTDJsemMzVmxjbk12Wkdsa09tVmljMms2ZW5sNU1XYzFiamM0U0hKYVNqWjFXbTFwVjJGUWFuTXZjSEp2ZUdsbGN5OHdlR1poWkRWbFpXWTNNRGt5TkRkaE5qWmxaR0UyTmpGa00yRmxOelU0WXpFMU9URTFNalEzWkdJek9ERmhOV1JoTjJKaE4yWXlZV1UyT0RZeVkyUTBOVEl2YzNSaGRIVnpMV3hwYzNRdFkzSmxaR1Z1ZEdsaGJDOWxZV05rTXpKaVpDMWtPREV5TFRSaFltUXRZV0ZrTlMwMFkyWmxZVEkxTlRGbVpUVWlMQ0p6ZEdGMGRYTk1hWE4wU1c1a1pYZ2lPaUl6TXlJc0luUjVjR1VpT2lKVGRHRjBkWE5NYVhOME1qQXlNVVZ1ZEhKNUlpd2ljM1JoZEhWelVIVnljRzl6WlNJNkluSmxkbTlqWVhScGIyNGlmU3dpYVhOemRXRnVZMlZFWVhSbElqb2lNakF5TlMwd05TMHlNbFF4TXpvMU1Eb3lNRm9pTENKcGMzTjFaV1FpT2lJeU1ESTFMVEExTFRJeVZERXpPalV3T2pJd1dpSjlMQ0p1WW1ZaU9qRTNORGM1TWpFNE1qQXNJbWx6Y3lJNkltUnBaRHBsWW5OcE9ucDVlVEZuTlc0M09FaHlXa28yZFZwdGFWZGhVR3B6SWl3aWFXRjBJam94TnpRM09USXhPREl3TENKemRXSWlPaUprYVdRNmEyVjVPbm95WkcxNlJEZ3hZMmRRZURoV2EyazNTbUoxZFUxdFJsbHlWMUJuV1c5NWRIbHJWVm96WlhseGFIUXhhamxMWW5KRU9HMHlWRGRIT1cxTGIwaE9Za3BGT0hWRlJtWlpUbXBvY21kUk1uQmhTRFZ6YW5WdVRHNXlVRk5ZTVZFMFUwVnBlVlkyUjJoNGRsQlpRbTlNWlZSYU1sbEVWVXd5T1hwQlIzWlphV3RpVERWS1lWVTNaM05TZWtKSGNYTmtRVm8xZGtGeFlqWndZbEptUzBwdFJVSlNPSFpxWXpadGVuZ3lSMmwwVEhaU2VsVWlMQ0pxZEdraU9pSjFjbTQ2ZFhWcFpEbzFaR1ZtTW1Wa01pMHdPR1ZsTFRRMU56QXRZVE01TnkwME16a3paRE15TjJJek9XUWlmUS40LTlOeVlvc05falF3dTNEd0pLZXhJQ3htVC1aSWFDQUl0UUpMYTA2VTFzaFJpTUNIMjIxekppNmgxaWJwU0R5dU1HSnBUX19IWDRCTXhFSGNtZkF4dyJdfX0.VIJprq0ykkPmihwCHzIAOSw7IIB7X4X_fa4Vi-uVonmzk3srtGz2kQhxhecwyp2fmxvBOXDZfF8zDq3W3TElQQ'; const audience = 'https%3A%2F%2Fdev-studio.vididentity.net%2Fvidcredentials-studio%2Foidc4vc%2Fv1%2Fverifier%2Fe1409f5a-11b2-47dc-8b0e-f5c83f711cae'; await expect( ebsiWrapper.verifyPresentationJwt(presentation, audience, { ebsiAuthority: 'api-conformance.ebsi.eu', }), ).rejects.toThrow({ name: 'ValidationError', message: 'VP JWT validation failed: invalid_signature: no matching public key found', } as ValidationError); }); });